From 1a6d0d5a5662152cef93c05629564390b1894783 Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Tue, 17 Oct 2017 16:05:30 -0700
Subject: [PATCH] v. 2.28c; fix to GDSClassesMapping

---
 README.rst                              |   9 ++++++
 generateDS.html                         |   8 ++---
 generateDS.py                           |  39 ++++++++++++++++++------
 generateDS.txt                          |   2 +-
 generateds_gui_notes.html               |   8 ++---
 generateds_gui_notes.txt                |   2 +-
 gui/generateds_gui.py                   |   2 +-
 librarytemplate_howto.html              |   8 ++---
 librarytemplate_howto.txt               |   2 +-
 process_includes.py                     |   2 +-
 setup.py                                |   2 +-
 tests/OnePer/oneperType00_2One.py       |   2 +-
 tests/OnePer/oneperType01_2One.py       |   3 +-
 tests/OnePer/oneperType02_2One.py       |   3 +-
 tests/OnePer/oneperType03_2One.py       |   2 +-
 tests/abstract_type1_sub.py             |   2 +-
 tests/abstract_type1_sup.py             |   3 +-
 tests/annotations1_sub.py               |   2 +-
 tests/annotations1_sup.py               |   4 +--
 tests/anonymous_type1_sub.py            |   2 +-
 tests/anonymous_type1_sup.py            |   5 +--
 tests/anysimpletype1_sub.py             |   2 +-
 tests/anysimpletype1_sup.py             |   3 +-
 tests/anywildcard1_sub.py               |   2 +-
 tests/anywildcard1_sup.py               |   3 +-
 tests/attr_groups1_sub.py               |   2 +-
 tests/attr_groups1_sup.py               |   2 +-
 tests/catalogtest1_sub.py               |   2 +-
 tests/catalogtest1_sup.py               |   2 +-
 tests/cdata1_sub.py                     |   2 +-
 tests/cdata1_sup.py                     |   3 +-
 tests/cleanupname1_sub.py               |   2 +-
 tests/cleanupname1_sup.py               |   7 +----
 tests/defaults_cases1_sub.py            |   2 +-
 tests/defaults_cases1_sup.py            |   4 +--
 tests/defaults_coverage1_sub.py         |   2 +-
 tests/defaults_coverage1_sup.py         |   4 +--
 tests/disable_xml_super1_sub.py         |   2 +-
 tests/disable_xml_super1_sup.py         |   2 +-
 tests/extensions1_sub.py                |   2 +-
 tests/extensions1_sup.py                |   4 +--
 tests/ipo1_sub.py                       |   2 +-
 tests/ipo1_sup.py                       |   5 +--
 tests/ipo2_sub.py                       |   2 +-
 tests/ipo2_sup.py                       |   5 +--
 tests/mapcleanname1_sub.py              |   2 +-
 tests/mapcleanname1_sup.py              |   3 +-
 tests/nested_def1_sub.py                |   2 +-
 tests/nested_def1_sup.py                |   5 +--
 tests/out1_sub.py                       |   2 +-
 tests/out1_sup.py                       |   5 +--
 tests/people_procincl1_sub.py           |   2 +-
 tests/people_procincl1_sup.py           |   5 +--
 tests/prefix_classname1_sub.py          |   2 +-
 tests/prefix_classname1_sup.py          |   5 +--
 tests/recursive_simpletype1_sub.py      |   2 +-
 tests/recursive_simpletype1_sup.py      |   2 +-
 tests/reference_simpletype1_sub.py      |   2 +-
 tests/reference_simpletype1_sup.py      |   2 +-
 tests/rem_dup_elems.xsd                 |   2 +-
 tests/rem_dup_elems1_sub.py             |   2 +-
 tests/rem_dup_elems1_sup.py             |   2 +-
 tests/simplecontent_restriction1_sub.py |   2 +-
 tests/simplecontent_restriction1_sup.py |   2 +-
 tests/simpletype_memberspecs1_sub.py    |   2 +-
 tests/simpletype_memberspecs1_sup.py    |   2 +-
 tests/simpletypes_other1_sub.py         |   2 +-
 tests/simpletypes_other1_sup.py         |   3 +-
 tests/to_etree1_sub.py                  |   2 +-
 tests/to_etree1_sup.py                  |   5 +--
 tests/validate_simpletypes1_sub.py      |   2 +-
 tests/validate_simpletypes1_sup.py      |   8 +----
 tests/validate_simpletypes2_sub.py      |   2 +-
 tests/validate_simpletypes2_sup.py      |   8 +----
 tutorial/generateds_tutorial.html       |   8 ++---
 tutorial/generateds_tutorial.txt        |   2 +-
 tutorial/generateds_tutorial.zip        | Bin 48774 -> 48767 bytes
 77 files changed, 125 insertions(+), 152 deletions(-)

diff --git a/README.rst b/README.rst
index 3cd952b..947c2d4 100644
--- a/README.rst
+++ b/README.rst
@@ -141,6 +141,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
+Version 2.28c (10/17/2017)
+
+- Fix for generation of GDSClassesMapping dictionary.  Formerly, we
+  were generating entries in this dictionary for some xs:element
+  items that were not at top level.  Fixed so that only xs:element
+  items at top level (immediately under the root/schema node) are
+  included in this dictionary.  Thanks to Christin Gunning for
+  reporting this and for guiding me on this change.
+
 Version 2.28b (08/22/2017)
 
 - Fix for Django models and forms generation -- "float" data type
diff --git a/generateDS.html b/generateDS.html
index 827ef04..11b7be4 100644
--- a/generateDS.html
+++ b/generateDS.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.14rc2.dev: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
 <title>generateDS -- Generate Data Structures from XML Schema</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -220,7 +220,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28c</td>
 </tr>
 </tbody>
 </table>
@@ -229,7 +229,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">August 22, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">October 17, 2017</td>
 </tr>
 </tbody>
 </table>
@@ -3380,7 +3380,7 @@ following among others:</p>
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateDS.txt">View document source</a>.
-Generated on: 2017-08-22 19:57 UTC.
+Generated on: 2017-10-17 23:02 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/generateDS.py b/generateDS.py
index 05ab66a..435cfa1 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -227,7 +227,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.28b'
+VERSION = '2.28c'
 ##VERSION##
 
 if sys.version_info.major == 2:
@@ -5967,11 +5967,32 @@ if __name__ == '__main__':
 
 def generateMain(outfile, prefix, root, generatedClasses):
     lines = []
-    for classType in MappingTypes:
-        mappedName = mapName(cleanupName(MappingTypes[classType]))
-        if mappedName in generatedClasses:
-            lines.append("    '%s': %s%s,\n" % (
-                classType, prefix, mappedName, ))
+    nsmap = SchemaLxmlTree.nsmap.copy()
+    if None in nsmap:
+        ns_prefix = nsmap.get(None)
+        del nsmap[None]
+        if 'xs' not in nsmap:
+            nsmap['xs'] = ns_prefix
+    if 'xs' not in nsmap and 'xsd' in nsmap:
+        nsmap['xs'] = nsmap['xsd']
+    top_lvl_elements = SchemaLxmlTree.xpath(
+        './xs:element', namespaces=nsmap)
+    for element in top_lvl_elements:
+        if 'ref' in element.attrib:
+            classType = element.attrib.get('ref')
+            name = classType
+        else:
+            classType = element.attrib.get('type')
+            name = element.attrib.get('name')
+        if classType is not None and name is not None:
+            _, classType = get_prefix_and_value(classType)
+            _, name = get_prefix_and_value(name)
+            mappedClassType = mapName(cleanupName(classType))
+            mappedName = mapName(name)
+            if (mappedClassType and mappedName and
+                    mappedClassType in generatedClasses):
+                lines.append("    '%s': %s%s,\n" % (
+                    mappedName, prefix, mappedClassType, ))
     lines.sort()
     exportDictLine = "GDSClassesMapping = {{\n{}}}\n\n\n".format(
         ''.join(lines))
@@ -6680,8 +6701,6 @@ def generate(outfileName, subclassFilename, behaviorFilename,
     generatedClasses = set()
     outfile = None
     outfile = makeFile(outfileName)
-    if not outfile:
-        outfile = os.tmpfile()
     wrt = outfile.write
     processed = []
     externalImports = getImportsForExternalXsds(root)
@@ -6747,7 +6766,7 @@ def makeFile(outFileName):
             sys.stderr.write(
                 'File %s exists.  Change output file or use -f (force).\n' %
                 outFileName)
-            sys.exit(1)
+            sys.exit('Exiting.  No output file.')
         else:
             if sys.version_info.major == 2:
                 reply = raw_input(
@@ -6757,6 +6776,8 @@ def makeFile(outFileName):
                     'File %s exists.  Overwrite? (y/n): ' % outFileName)
             if reply == 'y':
                 outFile = open(outFileName, 'w')
+            else:
+                sys.exit('Exiting.  No output file.')
     else:
         outFile = open(outFileName, 'w')
     return outFile
diff --git a/generateDS.txt b/generateDS.txt
index 58303ba..70b78dd 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.28b
+:revision: 2.28c
 
 .. version
 
diff --git a/generateds_gui_notes.html b/generateds_gui_notes.html
index 37cf9c7..2479268 100644
--- a/generateds_gui_notes.html
+++ b/generateds_gui_notes.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.14rc2.dev: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
 <title>GenerateDS GUI Notes</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -220,7 +220,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28c</td>
 </tr>
 </tbody>
 </table>
@@ -229,7 +229,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">August 22, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">October 17, 2017</td>
 </tr>
 </tbody>
 </table>
@@ -401,7 +401,7 @@ $ mv generateds_gui.mo locale/ru/LC_MESSAGES/
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateds_gui_notes.txt">View document source</a>.
-Generated on: 2017-08-22 19:57 UTC.
+Generated on: 2017-10-17 23:02 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/generateds_gui_notes.txt b/generateds_gui_notes.txt
index 2783eda..3a247b8 100644
--- a/generateds_gui_notes.txt
+++ b/generateds_gui_notes.txt
@@ -12,7 +12,7 @@ GenerateDS GUI Notes
 
 .. version
 
-:revision: 2.28b
+:revision: 2.28c
 
 .. version
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index 2f127e3..11d4df3 100644
--- a/gui/generateds_gui.py
+++ b/gui/generateds_gui.py
@@ -41,7 +41,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.28b'
+VERSION = '2.28c'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index a1de32b..8f1804c 100644
--- a/librarytemplate_howto.html
+++ b/librarytemplate_howto.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.14rc2.dev: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
 <title>How to package a generateDS.py generated library</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -217,7 +217,7 @@ dkuhlman (at) davekuhlman (dot) org
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28c</td>
 </tr>
 </tbody>
 </table>
@@ -226,7 +226,7 @@ dkuhlman (at) davekuhlman (dot) org
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">August 22, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">October 17, 2017</td>
 </tr>
 </tbody>
 </table>
@@ -380,7 +380,7 @@ this command for your needs.  For example, you may need to use
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="librarytemplate_howto.txt">View document source</a>.
-Generated on: 2017-08-22 19:57 UTC.
+Generated on: 2017-10-17 23:02 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/librarytemplate_howto.txt b/librarytemplate_howto.txt
index 6eee107..b7c0427 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.28b
+:revision: 2.28c
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index e374252..44994d4 100644
--- a/process_includes.py
+++ b/process_includes.py
@@ -40,7 +40,7 @@ except ImportError:
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.28b'
+VERSION = '2.28c'
 ##VERSION##
 
 CatalogDict = {}
diff --git a/setup.py b/setup.py
index f9f366a..b9cc215 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ setup(name="generateDS",
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-    version="2.28b",
+    version="2.28c",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
diff --git a/tests/OnePer/oneperType00_2One.py b/tests/OnePer/oneperType00_2One.py
index 7c88aa9..c75e149 100644
--- a/tests/OnePer/oneperType00_2One.py
+++ b/tests/OnePer/oneperType00_2One.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/OnePer/oneperType01_2One.py b/tests/OnePer/oneperType01_2One.py
index 561cf1e..c153546 100644
--- a/tests/OnePer/oneperType01_2One.py
+++ b/tests/OnePer/oneperType01_2One.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -878,7 +878,6 @@ class oneperType01_2(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'inner01': oneperType01_2,
     'root01': oneperType01_1,
 }
 
diff --git a/tests/OnePer/oneperType02_2One.py b/tests/OnePer/oneperType02_2One.py
index 095fbb7..7124e4f 100644
--- a/tests/OnePer/oneperType02_2One.py
+++ b/tests/OnePer/oneperType02_2One.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -878,7 +878,6 @@ class oneperType02_2(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'inner01': oneperType02_2,
     'root02': oneperType02_1,
 }
 
diff --git a/tests/OnePer/oneperType03_2One.py b/tests/OnePer/oneperType03_2One.py
index 738a6dd..1d53731 100644
--- a/tests/OnePer/oneperType03_2One.py
+++ b/tests/OnePer/oneperType03_2One.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/abstract_type1_sub.py b/tests/abstract_type1_sub.py
index 7895f4e..4be8db1 100644
--- a/tests/abstract_type1_sub.py
+++ b/tests/abstract_type1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/abstract_type1_sup.py b/tests/abstract_type1_sup.py
index 76b59cc..15da5d6 100644
--- a/tests/abstract_type1_sup.py
+++ b/tests/abstract_type1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1014,7 +1014,6 @@ class Plane(Vehicle):
 
 GDSClassesMapping = {
     'carrier': carrierType,
-    'fleet': Vehicle,
 }
 
 
diff --git a/tests/annotations1_sub.py b/tests/annotations1_sub.py
index eab0241..bfa0bb3 100644
--- a/tests/annotations1_sub.py
+++ b/tests/annotations1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py
index 6ee0fb0..3800940 100644
--- a/tests/annotations1_sup.py
+++ b/tests/annotations1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1005,9 +1005,7 @@ class document3Type(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'anotherdoc': document3Type,
     'document1': document1Type,
-    'otherdoc': document2Type,
 }
 
 
diff --git a/tests/anonymous_type1_sub.py b/tests/anonymous_type1_sub.py
index 4969be8..02b27ee 100644
--- a/tests/anonymous_type1_sub.py
+++ b/tests/anonymous_type1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/anonymous_type1_sup.py b/tests/anonymous_type1_sup.py
index c5097e2..9456e9a 100644
--- a/tests/anonymous_type1_sup.py
+++ b/tests/anonymous_type1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1073,9 +1073,6 @@ class BazType3(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'Bar': BarType2,
-    'Baz': BazType3,
-    'Foo': FooType1,
 }
 
 
diff --git a/tests/anysimpletype1_sub.py b/tests/anysimpletype1_sub.py
index 6689ed9..dacb673 100644
--- a/tests/anysimpletype1_sub.py
+++ b/tests/anysimpletype1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/anysimpletype1_sup.py b/tests/anysimpletype1_sup.py
index 9dc2df8..763bc8f 100644
--- a/tests/anysimpletype1_sup.py
+++ b/tests/anysimpletype1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -903,7 +903,6 @@ class cimAnySimpleType(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'test1member': cimAnySimpleType,
 }
 
 
diff --git a/tests/anywildcard1_sub.py b/tests/anywildcard1_sub.py
index c58ae95..dbaa90d 100644
--- a/tests/anywildcard1_sub.py
+++ b/tests/anywildcard1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py
index 51bc9cf..fce0128 100644
--- a/tests/anywildcard1_sup.py
+++ b/tests/anywildcard1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1255,7 +1255,6 @@ class PlantType_multiple_nochild(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'description': DescriptionType,
 }
 
 
diff --git a/tests/attr_groups1_sub.py b/tests/attr_groups1_sub.py
index 21a53f5..aaf8156 100644
--- a/tests/attr_groups1_sub.py
+++ b/tests/attr_groups1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/attr_groups1_sup.py b/tests/attr_groups1_sup.py
index 489d825..7afbdc7 100644
--- a/tests/attr_groups1_sup.py
+++ b/tests/attr_groups1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/catalogtest1_sub.py b/tests/catalogtest1_sub.py
index 6be03be..4774abd 100644
--- a/tests/catalogtest1_sub.py
+++ b/tests/catalogtest1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/catalogtest1_sup.py b/tests/catalogtest1_sup.py
index 1d2f9cf..b82c2b2 100644
--- a/tests/catalogtest1_sup.py
+++ b/tests/catalogtest1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/cdata1_sub.py b/tests/cdata1_sub.py
index d9bde8c..df6db6d 100644
--- a/tests/cdata1_sub.py
+++ b/tests/cdata1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/cdata1_sup.py b/tests/cdata1_sup.py
index ed4c2ba..0957622 100644
--- a/tests/cdata1_sup.py
+++ b/tests/cdata1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -873,7 +873,6 @@ class cdataType(GeneratedsSuper):
 
 GDSClassesMapping = {
     'cdata': cdataListType,
-    'cdatalist': cdataType,
 }
 
 
diff --git a/tests/cleanupname1_sub.py b/tests/cleanupname1_sub.py
index 6a1acf0..d908e0d 100644
--- a/tests/cleanupname1_sub.py
+++ b/tests/cleanupname1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/cleanupname1_sup.py b/tests/cleanupname1_sup.py
index 83950e7..b0a7c88 100644
--- a/tests/cleanupname1_sup.py
+++ b/tests/cleanupname1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1223,11 +1223,6 @@ class dataTypeNNNMNNN(GeneratedsSuper):
 
 GDSClassesMapping = {
     'data': dataKind,
-    'data1': data1Kind,
-    'data2': MlassData2,
-    'data3': RealTypeData3,
-    'data4': MMMMMMdataKind,
-    'data5': dataTypeNNNMNNN,
 }
 
 
diff --git a/tests/defaults_cases1_sub.py b/tests/defaults_cases1_sub.py
index ee44fea..f3dfdce 100644
--- a/tests/defaults_cases1_sub.py
+++ b/tests/defaults_cases1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/defaults_cases1_sup.py b/tests/defaults_cases1_sup.py
index 558b863..98a3b4b 100644
--- a/tests/defaults_cases1_sup.py
+++ b/tests/defaults_cases1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1107,8 +1107,6 @@ class DefaultType2(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'default1': DefaultType1,
-    'default2': DefaultType2,
     'defaults': DefaultTypes,
 }
 
diff --git a/tests/defaults_coverage1_sub.py b/tests/defaults_coverage1_sub.py
index 776bf45..ed08d0d 100644
--- a/tests/defaults_coverage1_sub.py
+++ b/tests/defaults_coverage1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/defaults_coverage1_sup.py b/tests/defaults_coverage1_sup.py
index 51e7227..80defc2 100644
--- a/tests/defaults_coverage1_sup.py
+++ b/tests/defaults_coverage1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1470,8 +1470,6 @@ class DefaultType2(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'default1': DefaultType1,
-    'default2': DefaultType2,
     'defaults': DefaultTypes,
 }
 
diff --git a/tests/disable_xml_super1_sub.py b/tests/disable_xml_super1_sub.py
index e7184a2..abac98f 100644
--- a/tests/disable_xml_super1_sub.py
+++ b/tests/disable_xml_super1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/disable_xml_super1_sup.py b/tests/disable_xml_super1_sup.py
index db04580..867ad92 100644
--- a/tests/disable_xml_super1_sup.py
+++ b/tests/disable_xml_super1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/extensions1_sub.py b/tests/extensions1_sub.py
index 3a3919f..52b0523 100644
--- a/tests/extensions1_sub.py
+++ b/tests/extensions1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/extensions1_sup.py b/tests/extensions1_sup.py
index a3351f9..1d87f05 100644
--- a/tests/extensions1_sup.py
+++ b/tests/extensions1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1785,8 +1785,6 @@ class MyDouble(GeneratedsSuper):
 
 GDSClassesMapping = {
     'container': containerType,
-    'mixedfactoid': mixedFactoidType,
-    'simplefactoid': simpleFactoidType,
 }
 
 
diff --git a/tests/ipo1_sub.py b/tests/ipo1_sub.py
index 4fd7fcb..425e9e1 100644
--- a/tests/ipo1_sub.py
+++ b/tests/ipo1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/ipo1_sup.py b/tests/ipo1_sup.py
index af04ab3..2a1363a 100644
--- a/tests/ipo1_sup.py
+++ b/tests/ipo1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1458,10 +1458,7 @@ class UKAddress(Address):
 
 
 GDSClassesMapping = {
-    'billTo': Address,
-    'items': Items,
     'purchaseOrder': PurchaseOrderType,
-    'shipTo': Address,
 }
 
 
diff --git a/tests/ipo2_sub.py b/tests/ipo2_sub.py
index 4fd7fcb..425e9e1 100644
--- a/tests/ipo2_sub.py
+++ b/tests/ipo2_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/ipo2_sup.py b/tests/ipo2_sup.py
index af04ab3..2a1363a 100644
--- a/tests/ipo2_sup.py
+++ b/tests/ipo2_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1458,10 +1458,7 @@ class UKAddress(Address):
 
 
 GDSClassesMapping = {
-    'billTo': Address,
-    'items': Items,
     'purchaseOrder': PurchaseOrderType,
-    'shipTo': Address,
 }
 
 
diff --git a/tests/mapcleanname1_sub.py b/tests/mapcleanname1_sub.py
index d1ff8c1..88bbf3c 100644
--- a/tests/mapcleanname1_sub.py
+++ b/tests/mapcleanname1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/mapcleanname1_sup.py b/tests/mapcleanname1_sup.py
index 257c9b9..5ff8536 100644
--- a/tests/mapcleanname1_sup.py
+++ b/tests/mapcleanname1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1570,7 +1570,6 @@ class complex_type05(build_):
 
 
 GDSClassesMapping = {
-    'field01': complex_type02,
 }
 
 
diff --git a/tests/nested_def1_sub.py b/tests/nested_def1_sub.py
index e13ea31..bf895cb 100644
--- a/tests/nested_def1_sub.py
+++ b/tests/nested_def1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/nested_def1_sup.py b/tests/nested_def1_sup.py
index 1d54e5a..e9baab1 100644
--- a/tests/nested_def1_sup.py
+++ b/tests/nested_def1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1122,9 +1122,6 @@ GDSClassesMapping = {
     'classA': classAType,
     'classB': classBType,
     'container': containerType,
-    'inner': innerType1,
-    'item1': classAType,
-    'item2': classBType,
 }
 
 
diff --git a/tests/out1_sub.py b/tests/out1_sub.py
index fa69988..892cf4d 100644
--- a/tests/out1_sub.py
+++ b/tests/out1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/out1_sup.py b/tests/out1_sup.py
index ed5fc32..97b8fe9 100644
--- a/tests/out1_sup.py
+++ b/tests/out1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -3505,9 +3505,6 @@ class client_handlerType(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'client-handler': client_handlerType,
-    'elparam': param,
-    'promoter': booster,
 }
 
 
diff --git a/tests/people_procincl1_sub.py b/tests/people_procincl1_sub.py
index bdb5d63..539398b 100644
--- a/tests/people_procincl1_sub.py
+++ b/tests/people_procincl1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py
index da0eeba..19e97f2 100644
--- a/tests/people_procincl1_sup.py
+++ b/tests/people_procincl1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -2901,9 +2901,6 @@ class python_programmer(programmer):
 
 
 GDSClassesMapping = {
-    'client-handler': client_handlerType,
-    'elparam': param,
-    'promoter': booster,
 }
 
 
diff --git a/tests/prefix_classname1_sub.py b/tests/prefix_classname1_sub.py
index 18c80fc..512463c 100644
--- a/tests/prefix_classname1_sub.py
+++ b/tests/prefix_classname1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/prefix_classname1_sup.py b/tests/prefix_classname1_sup.py
index 92afac2..762f424 100644
--- a/tests/prefix_classname1_sup.py
+++ b/tests/prefix_classname1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -2510,9 +2510,6 @@ class tomato_client_handlerType(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'client-handler': tomato_client_handlerType,
-    'elparam': tomato_param,
-    'promoter': tomato_booster,
 }
 
 
diff --git a/tests/recursive_simpletype1_sub.py b/tests/recursive_simpletype1_sub.py
index 8518e2d..9da5ea3 100644
--- a/tests/recursive_simpletype1_sub.py
+++ b/tests/recursive_simpletype1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py
index 7a2e836..2780b8e 100644
--- a/tests/recursive_simpletype1_sup.py
+++ b/tests/recursive_simpletype1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/reference_simpletype1_sub.py b/tests/reference_simpletype1_sub.py
index 84a31d3..497a011 100644
--- a/tests/reference_simpletype1_sub.py
+++ b/tests/reference_simpletype1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/reference_simpletype1_sup.py b/tests/reference_simpletype1_sup.py
index 941fa28..c351149 100644
--- a/tests/reference_simpletype1_sup.py
+++ b/tests/reference_simpletype1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/rem_dup_elems.xsd b/tests/rem_dup_elems.xsd
index 5cb3ed3..ffa3225 100644
--- a/tests/rem_dup_elems.xsd
+++ b/tests/rem_dup_elems.xsd
@@ -1,5 +1,5 @@
 <xsd:schema
-    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     >
 
     <xsd:element name="authors" type="authorsType" />
diff --git a/tests/rem_dup_elems1_sub.py b/tests/rem_dup_elems1_sub.py
index 4f13ab1..e90ed7f 100644
--- a/tests/rem_dup_elems1_sub.py
+++ b/tests/rem_dup_elems1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/rem_dup_elems1_sup.py b/tests/rem_dup_elems1_sup.py
index cee7640..fdd2362 100644
--- a/tests/rem_dup_elems1_sup.py
+++ b/tests/rem_dup_elems1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simplecontent_restriction1_sub.py b/tests/simplecontent_restriction1_sub.py
index 580c6d2..d6902ec 100644
--- a/tests/simplecontent_restriction1_sub.py
+++ b/tests/simplecontent_restriction1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simplecontent_restriction1_sup.py b/tests/simplecontent_restriction1_sup.py
index 7056a19..f314128 100644
--- a/tests/simplecontent_restriction1_sup.py
+++ b/tests/simplecontent_restriction1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simpletype_memberspecs1_sub.py b/tests/simpletype_memberspecs1_sub.py
index a260c88..6fb792d 100644
--- a/tests/simpletype_memberspecs1_sub.py
+++ b/tests/simpletype_memberspecs1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simpletype_memberspecs1_sup.py b/tests/simpletype_memberspecs1_sup.py
index 307d905..aaeba3d 100644
--- a/tests/simpletype_memberspecs1_sup.py
+++ b/tests/simpletype_memberspecs1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simpletypes_other1_sub.py b/tests/simpletypes_other1_sub.py
index 6afe089..4ca865b 100644
--- a/tests/simpletypes_other1_sub.py
+++ b/tests/simpletypes_other1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py
index 1dcf61f..e3c05a3 100644
--- a/tests/simpletypes_other1_sup.py
+++ b/tests/simpletypes_other1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1211,7 +1211,6 @@ class simpleTypeTestDefs(GeneratedsSuper):
 
 
 GDSClassesMapping = {
-    'simpleTypeTest': simpleTypeTestDefs,
     'simpleTypeTests': simpleTypeTestsType,
 }
 
diff --git a/tests/to_etree1_sub.py b/tests/to_etree1_sub.py
index 300d89c..bf225ac 100644
--- a/tests/to_etree1_sub.py
+++ b/tests/to_etree1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py
index 17befe2..bd1b58f 100644
--- a/tests/to_etree1_sup.py
+++ b/tests/to_etree1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -2937,16 +2937,13 @@ class client_handlerType(GeneratedsSuper):
 GDSClassesMapping = {
     'agent': agentType,
     'booster': boosterType,
-    'client-handler': client_handlerType,
     'comments': commentsType,
-    'elparam': paramType,
     'info': infoType,
     'java-programmer': java_programmerType,
     'param': paramType,
     'people': peopleType,
     'person': personType,
     'programmer': programmerType,
-    'promoter': boosterType,
     'python-programmer': python_programmerType,
     'special-agent': special_agentType,
     'vehicle': vehicleType,
diff --git a/tests/validate_simpletypes1_sub.py b/tests/validate_simpletypes1_sub.py
index 3edf739..f0f8903 100644
--- a/tests/validate_simpletypes1_sub.py
+++ b/tests/validate_simpletypes1_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/validate_simpletypes1_sup.py b/tests/validate_simpletypes1_sup.py
index d159830..85f44cd 100644
--- a/tests/validate_simpletypes1_sup.py
+++ b/tests/validate_simpletypes1_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1646,12 +1646,6 @@ class simpleTwoElementOneType(GeneratedsSuper):
 
 GDSClassesMapping = {
     'container': containerType,
-    'sample1': simpleOneType,
-    'sample2': simpleTwoType,
-    'sample2_bad': simpleOneType,
-    'sample3_bad': simpleOneType,
-    'sample4_bad': simpleOneType,
-    'simpleTwoElementOne': simpleTwoElementOneType,
     'simpleTypeData': simpleTwoType,
 }
 
diff --git a/tests/validate_simpletypes2_sub.py b/tests/validate_simpletypes2_sub.py
index 3edf739..f0f8903 100644
--- a/tests/validate_simpletypes2_sub.py
+++ b/tests/validate_simpletypes2_sub.py
@@ -2,7 +2,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
diff --git a/tests/validate_simpletypes2_sup.py b/tests/validate_simpletypes2_sup.py
index d159830..85f44cd 100644
--- a/tests/validate_simpletypes2_sup.py
+++ b/tests/validate_simpletypes2_sup.py
@@ -3,7 +3,7 @@
 
 #
 # Generated  by generateDS.py.
-# Python 2.7.13 (default, May  2 2017, 14:07:15)  [GCC 6.3.0 20170406]
+# Python 2.7.13 (default, Jan 19 2017, 14:48:08)  [GCC 6.3.0 20170118]
 #
 # Command line options:
 #   ('--no-dates', '')
@@ -1646,12 +1646,6 @@ class simpleTwoElementOneType(GeneratedsSuper):
 
 GDSClassesMapping = {
     'container': containerType,
-    'sample1': simpleOneType,
-    'sample2': simpleTwoType,
-    'sample2_bad': simpleOneType,
-    'sample3_bad': simpleOneType,
-    'sample4_bad': simpleOneType,
-    'simpleTwoElementOne': simpleTwoElementOneType,
     'simpleTypeData': simpleTwoType,
 }
 
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index fa7972f..3d47d0e 100644
--- a/tutorial/generateds_tutorial.html
+++ b/tutorial/generateds_tutorial.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.14rc2.dev: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
 <title>generateDS -- Introduction and Tutorial</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -219,7 +219,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.28c</td>
 </tr>
 </tbody>
 </table>
@@ -228,7 +228,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">August 22, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">October 17, 2017</td>
 </tr>
 </tbody>
 </table>
@@ -1210,7 +1210,7 @@ named <tt class="docutils literal">garden_api.py</tt>, you can create an instanc
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateds_tutorial.txt">View document source</a>.
-Generated on: 2017-08-22 19:57 UTC.
+Generated on: 2017-10-17 23:02 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/tutorial/generateds_tutorial.txt b/tutorial/generateds_tutorial.txt
index 1799a52..a6b58d9 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial
 
 .. version
 
-:revision: 2.28b
+:revision: 2.28c
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index 2f74d7acf124128c19fcfa4076aafdc1252d6cb1..676114fd0f335a01efc2f88ff7c37796030dd3ef 100644
GIT binary patch
delta 12524
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
CjJhuX

delta 12623
zcmV-VF|f}6`~rsk0v%9G0|XQR000O8AZHd!zD`P1TLJ(84g~-J7XTcSkGUEO2>=6(
zjGS4#jGU1{<9{3$r&3$Pi+o<n(X@pUui@e=T-YnP_+4?Xp?-|+*yb9(&0DxME7)FN
z-+a(XF-@1ik{N`#ma!ByWHi!bq9&iD3zxxSGSM9{0hbtJZc}62DLmXg!o4#X64pyO
zspl{a(V(cg@l#sbbS|&YKT76!NI7c5q(5+y%XnCBX@8u2HV$MeOj+h~F*UH?znPAO
z-tXbmI@7`&P4Hu6&jb-q1K-N91G@z-8;S)4pLN%JyaMBOVlLRY;N<GGf+kWYjD9`b
zLozLP`jx9HV?PsFf=BH6BOM7{^jN&Yjm=;)%2a(8yC^ILZ`Ucf%b<OtcMbJACiV(v
z>Z#t7wtq`t5mCgVgiCge$vmtrO<qkFfP@Uo@X$DqJaIM%%fN<D!=VTxlBGNxSQVZU
z^-`?8A4~mA&Z^=No=*g$%Pr6$v#@EN-8(#%gQCT041C;2GW?E9nlLDu@r)O(O^+#|
z$zkZ~$%3`TKDRa8RMlEmNtrSJm*ax*gOz9X+9*T%Gy6@e{G6-mA5cpJ1QY-O00;m$
zXBJC8H8reDF8~0U#sB~q034H#xfPS%0tpAajGS3_piPtR0waHRY+0tqwbR5?C-F3L
z@6B{No+Yppw*s&T9-^4`{`a28F0cSWid3ALUe8D(iQThj&-+DRy}nNqai@w>o9xwS
zHaQy!l|?4j+0Cm_T`j}sBk_73T>aC#pWa^o^6^`-s$j#%Pyh1a{aY~#r_;Y)yq!+p
zUB455`~Lce4+4K6i0eXTrLF*?Os3Ose;kR?s;ctK>2$qbPu3R`Q`}6i|9yIoux7Z~
zz6>jG=OnJ;5u8j10+w0%Y5>ga#fulbdxVQF6N!kcY$Tdj2t&yj{-mms0%3&e*IM7b
z8of1HrLro#-sEZ|B7XO3RH^%FiZEY_XeEnMRj({5rVf8fCR6olbfYp=$jTJn=65El
zE1i_$Y%+UNMCX%O-CYWcd2Am}N>dk+TEZ37BvaLtL07s;)Z9W<?|v3xDBfpPVd6SM
zstB3I;<|<dwM?$2yu5>vtgBTQ9eJn3ztyWGl^GvWR+~hL3a)H#8kHpwDVY96z$@{W
zX%H+-yb*u@69};cFqh)R*`LJMAL>ZQQhWz2iq+R+@gJ&)WhTesJ3#ji{_=vcc!S7|
z#rG<?Q<aY3lM=WZma5RpmjH7iquZOp)LDEfzFN{h{5Ud+DK5n#fyekhmBo$DF2%V@
z@og?+6iWO4??E8{b5*G2e-WB??^jPQp1t_yS@(aC&^{#D%4Gpm;r)}!L?NyNFa!mO
z5ymPqKztzfrN~UCXzgky{Nr{kZ1Gq|i`m)Pp?H+Q;OwTMceqyiW(8zlm?WkpI_0O1
zBn;UUu`1{dEXlhICQnr=&cqCV<KjeTDqLB(Gkl7>av_KB1L&#(_t;gJcN)}E#Xhm~
zy2u(6b<iCVf&>8uN%Q~|Dn4kpyj&TuQ2SYw3zMJ)EhI9z<*Ad#MpjDwn*t=Bo&BlZ
z9WG2&nY7vBXwrN>%kM>L5*?HA1ucKRXLV2~0=Q?AgLEi}tKIqy&vw9Q3{cFfH>Ac}
z#GF|%NfbB|-nYZ#Ha4}DE$~Qb-`2p#L7Ys69(gd_v2LZk@mj~#>QY#~FB2mH^+YYJ
zUD6Kkoc-e8ja<k?-@xJmug`Wd%j?SXQ(ssY`yOfABCJ<n74Z?+CxnnV98-TC#|g7e
zE*8aD$OvrwCLN23y3Z4-GvDg$Iic?@ejUSV6W#t=n+mNdd<4;&8jHM8t%NOQs*??%
zVKM`|BlWVU2NUa6V_gC^n@a}T<>y&`@B0}~y`Nt^pFO`AM))hGI<D}H{UBO!VE+12
zK!jpCyeBR<(xdMtG6uXU3LJk6dS78E)4YuULh}YVd!q_|t%|}FV*;_#S;ZgfG&e;h
z-P;Vv#;+=!^NY1CGM#ljERaX|mrqr!>r|M!f?!be<z8$dE^_ZpNO2k;hKLP43_7^(
z+>Yq)+zvMycs6Wz#LK>{w6fn^$I*Q!I+hhXF=FoQ+)fPJx!Lh$$CZEDD5AZ~F*mHL
ziHpX2HnI`rnEqL7KS99-R~%VOT!J!TBpqTT&88Z`UQOv!h_k0Q>%d?d{=k()l*kg&
z7(6!x(vF0Vn<PTTWvIPaKLqm?RyNkBBxdIJ6A?y-=LxGB<`!}Rlxs22+0u-}vY@o#
z&ggg~iaJs75U+v<0vUgL>qAU3IExr~Xmbvm%1{n*NA?gfHaSA9iuqNw8U#9jLz&AZ
zWHl>X8PEO91wM`E@T+(TNE{ccEIlY!Xc+BU$xi{3_?F>{6Iq>#7*1+Fhz)!Kd0B8J
z-9GqTfuJoFnBhnX@I|VC40R+hCFo?O9wbapNAum!uBH-&1kiuOKkfCVl@*vNaSU^B
z;O;vE5>|mhkM(jRs+9uKPQad`g4pyOG$KW*Dks79N^Jx<4N;e%9*d2r^B4rhE}Z0>
z2}q2E>~_-!eIa4>SZbBTA&UIL0>fJd#f2Z?CHG27XZgryxd(e*C`?TtRw9lA!v{{8
zpHI%8FNns$ULt@0W0L|oyq64b>YEw_`5ZE!^RwAE4-n)Z?*5U<HxwK0CBj>`N}NQe
zK!>v@!Z$P%alO)|a2A^4@BpnTs$6N7)f&}GS0YwrROp2&1uTy+ykSiP)e}FwzZM^K
zq_R?7dS>Jx3u1EEM#UkjZzT+-oTj=8?VFBOIbc0nnn{0$+lP`=E=mYMqx}@^5DcjS
zR#f+$k#l6CGDJ!+Oo3U7tE$=(u>@l30$pC~-@sx42Gtw`?r0_4gHn9lfYZppfLBrg
zs&HTp7G9h{1`?=yndTU3&;h`(rRE@_JO$A;DdPFJA3lgOTB%evH<$?IA)wa>S}3s9
zCEgJ)pb~#Y#ul#X067SOlMNCGT-+Wr5$_?}OG@KiBF7SAQNl`D1&|=ceSk<#B%3K!
z|Ed5F&WBKxLgD}(DF6pxK~qtE!6ieofnK7l7eojoPg&IqpaSs9<Xmk{HbE1IOh|}<
zLm(xRphNr%r^lt^o(BuAPcd=;kMhDq;9qHp4F-SUgk}FalLsu%s_4rETL&+KYM_IS
z&=JQ`?lZI*c@rw(a~m}-bpd8;Zi~Jp_+D69H^!)m?@EnwgJ2RpA5vdnM@N0X^2MEz
z(eZ3FpZz&ol=(~lw;!dUUS5I59&wQ65fz12D#X;!op%m?Zu`9NnhlmKv3kU@b?HuQ
zgoJ<226BZYy%elMW((;HybSNtB<u#cI=&dqFShafR65ie$b=+H8bK!O!I1lM^oWa;
zCPk{HDdJ1j6jp#T+?YB{(JzE+NWk!7x0zWx<e!Y@PqvZ&8K4OZjcPMiok{`F1VIxB
z4KIVx9)U2?ypZ{dstaJY05_Gz4zH)9`O|-Gyik3cO`_TKh~sSmQsz1M5^{!NnX5=I
zL8%sMCGRvg8yJ^oqxrLKT;31_F$6(42!z<SA|9oIsIn*&h;9U7j!DDTN;wq20Td@g
zTIuZ;yxX&JUr1qOu91N$idx~5)M57=u^Z6gAszWM7Jy#9`S_k+utP(@KBXVSaMXW}
z1&A`@3-(+_D~H|-L~lTa-w3xwxGmnn(>lT5$7v}F2#9;Bt6H*pqQ2H1Cue7)`8NX^
z$vZ{6lk7+BxcK{ojL47f1Tuce)nf&*SB(8b>-d084Srz$zZnv>?-<5d^nr*L$QMAh
ztW+M(8tEfZ1RkL-wlq8^9EY&{8Mc3m8I~0s1d=}o;W3sM5jqdSpbT3R-<8cS7_k9e
zAjHlQF$_xvt;!>P93glSt_ui1Lm5I~R)uk)A+QfuvdFM*;Lv-*=nd!sp?87k5gZ`}
z!kIE0Vc|R$xhG*!XT(WDZoq=fo-$@bz6vpWf|vmiVkQFFVJ&>6eUt*Do5g=pXG=5i
z4$pUZP+Ir}WIkHyB!*`ph5BH@*1B4Ssk}E)R2L=qQ3Zlr00kjLnKhV!Q+Ph418*%j
zVZjLmCji_}1Ws6R7`A6(_6Vj9<IB-!m_dl+Y)wnW=ZNcoS`6dLpo9fQ7Uwa-M-qqD
z$}BOsvzbp=hBzDn*&&d$DgA$0JYOK51NwoH34*d&fd%z-DH>2Nad-?p!Q4|~WD0f|
zfVeJ@y0T8H@J=RmOUm;zL~%e--g;1k&HQyCEEK^|_Uj5HDu<;prSek-KZ&4vuXk;4
zR-uh~4$d*C0G!XSc+vo?q;|+gVC}R>x!s7RYkKZ7BTM@xnX(Dg`z3$Hw|N2_gvfSn
zid!I3Vd|R|{Dq{_CHrHJgXIQNFCe6@#7ZUkvQ98rOpLh|l9TC@GIbmHLl!J#1TjS}
zGp))lNXX8AF?E1>se`H6oW&Zj*9&e)Q1kVY@8K1IZD}E-ZWqwlL7ld*-U1HOwl3QU
zV4nzpg=nylg9H_FVd{VC=o-fg<lCa&w)&WV$CZ+L1?Q=E77a}8DNgs-vKS#s(;iOO
z$gWPgj7mUQ;m}!>)G-*N0S-+pG*4~den(R3pgNFnb)ewbIuMnC2xjn@GLZ1gKtaC@
zbhKFPDH;hZ8U>Fn8i}@O6dYSL5(7n};P9f6*ikeJ28%|y6*zxC53-CW%VF^@FZ-39
zPC@6*Ry|OVlt9|zxY>A7E4VG+0uLQ$8s30~(_H1Wao)1dxbjKNL2@i?D+Wn{VHZFR
zx&@C8KxQs)U+W|Rp&O_Qaxt_7r7M?gC<)cT3NpzyufZo4=3170rr9SE#WN*UyK|G*
z3CS5mu!T~s@SuO^1{zlqj1Lv}I(cc}_`!_!F7<;I2A~v?nwbFfu(cfo<KR*+7Mtz(
z9B*{OqO@OU7!WDTDLd|A;PA0@yMjiWU5Y(uNrXipH~@hU{Fd>U^eo)B(koxvYI-BL
z-L~F?QryNVR@21E=g%n8pFf|DZLq4+1#tFGf@@nODj<J>mx=xjEXM$EXb)EY%ZIE}
z_4$7Do3%^X1AHm{)s3n#YJo$|7Bpa;EohixEHq13?-po*{4jSvQ?5z~Biv))^=RHi
z@UQr&I$L1ZU&Z_uq9E8YCv?Y+4SNh}#``hz=`!9A6|AYZ^g)V)EUBUe4$kJ}NATB|
z!bWb`d_jN09!a<mD=?u+;t+0$QGZE)x&#Bb8684)3l?@r7%&MFefz-au<>ulNSIqZ
zIrZ)6-d&3tawa~(>d%n5c9xL4TGoWH*|Px!#}Fbz7sOG(x9mo)(Qtyif4~`gw4%O^
z&ki<b9qfpzTwCZEwG$+g%r+te_X2hpoNd^c=~I8UdF0&9;=dv35a0#Sm*8C8(OCHw
z?kMB}Mot`noHfJtWQaZx(=Bt_jRjnQ(P@2wkIDc8Jo2>f_=Cn8k-2Yt0f(`)dV)IR
zM=uN<Ob`mlI3RJaww&m;i}WKYe25O+ECX7PzGq-Vt_r*5)V8Hnh6b>79aM~;0!#p0
zf4YA?gX|R>H1gkTncP~-YV~m}{NR|IkGmRpE(pTA_q&6BSQ>D%h7d|2Th^G>btqTb
zh@{5Oj=*9kb!bhR0z29((^^ET22%RPd5P5w^ag-cte2DpHKkJsUQFf^O4SXPu<GE&
zke!yb&6m4`Jw8B(OCy;HO2ANTR$Suf4J3bumfALIFIQ$Q@TY1i=m)e!P5T__MVq#w
z#=NaK?5Zpbbqx<IFdW%b?9~~_=`>XZk{g@pvncR%l7e`Lhm|r)34nNeN#9M?nf9?R
z6h=auhQ*&s)f<x{Dsu_q;mW{2iw=iH7~;OBE|AaPe+{+{wt@&TV~!OU%{gO>Iv9T{
z?%?FIT1^75JDI7tgaVRMCy-tk&>o)S!tI$tp_i}|u9nJMnoE%pH4!k{V`Wr;3tEka
zGT*C$448EF!GYx05ePg&Jf?~S?m$^=JDZKjI-7&%c_zqNlsg^U4Aiv`z#%v}fAjJE
zDH$Rv5VWZ|r(OVn5qku~z;!DF*ZY4gb4?$V?gPLPKj3$h`!e>}O83<qCb`xv)}pbZ
z6H&&CqdsBl<oc;7rO;qpYb$@p##l=~oa#20mx&}P26ABx(&B-}9<rrCmbY!<a15=M
zzl&Ue(n=OszAn^&uPhBK2$t$-z?sb~a6U-E?4q52EU`lJ7<(v2{z`nyX7_&!2$4sG
zt+i#lHcw`3Gzh;}EsS9*{)7YUMl1~Y?6x8bB+)4|cQ7;jGRkl?vcz)KSh7{%XH3><
z#61GL4l?J*AY&7n3XPxSk}?ERn##ynysOs6MnN8iu4T@O>T;E!R6K0LLJG-0AV~26
zWh+N=zyf*w`ZY$gbeYr)V7`BXFc1fOIo<dJRDf%B;5Sqj+;si+1B7WZxrm%kGkT0h
zxuFdTL8+1@PtE;N*vH290Rk&{jWcs)cnU)sGxB>TYvy~VXVBDvyf5_)Rl<1Khx}}b
zGo%1AWv5=E55~%(4P$|lO$6sZJD`9u5IO)B-0j}55)O?Z0Ym<^9fCQ0Ou%FDe1!$e
zv)RPH^+edw-c>aFBV3CO_L`}VtZA$gA{Fcm10&%h)T-cUyOwj<Fl?36#KX=Ule!cn
z5g@N#)Au#l0QhaN?nd+p>kO0c6d(dg5R(xV8wtpT?oDHUL{KG@H5DR%rA7UKQi&sa
z+E%}b?Ar%ZCj^XCfMxF!-hIk78r;y-Cbq6*K?Mz{rbuFJ&G|l3c||T8wNGdoH{u${
ziN489K~+`yE+c(e@N~=)&Pb>@pag+akcDc)6Uk(NWb8&`>$B6Y5#ncKs|q*zjyWN)
z#v)6DRSfhb#`cWSewbx{|6*Q#>jF)iY&K*(SWH{N^O2!1<H5m@*92`|!@@zxp#JTg
zF=7;ID-A(c$WFNNw%w?51)YNu_un;ldsv45M~&s$QoxT`zCb#0uyeNsu!$roLxdnh
z*|7oVSpvu#I-Z0KYKJc<Y;~R+=V6<(WEKosi3bFSjQ<R+zxB6&<hGkW8wbAJ$HlK&
zWevVe8qRjM&h#h-mpCD9hgYcZr*>Ya;~b9<`u8};S<jdGc`lLa4-P=b$hG$Yb7cX!
z>)6Ip85Vq*qMfX<NqgF&U~t0Kf;OgVqtkk*+!Grwms&lNh@FU_OU4JZ_vm5s!!-6w
z&Z1i_{l$*yxCJSH1kGTf%UhkYE3o$>ZH3L2{0Ys!QH&i>%NDlkigFEhHSA5x78fk@
zHQ!6*?K%tk6FzSsm>&aN+xTmA8dVHScv~|zL28N}w|C!wJT}J0Z|-dJ<7DQ6k|E-T
zmQ2amS=Z((L;oK}d*Y-|A(Y6tnj4Vx3SY+a@BDFKuU^l8l^lu&HGL(H8n^Tz2LYWX
zcT>`59)g&7GXec+jDSk_98WZk0krv+#S1H$yP%?9=A^b$e{5RJt`J3M`aZ1bdf?fC
z>ozYoZRBa~KTsxSB9%LdwCIuOmqsD6bx$v_1du5RwMboHjm-`)YvoA>uJn;s?Tkpq
z!M3jBn1IHAx;nU{f>M8HSwSt!TcB~(h9#8B;^<EQn*=W40m<~Q%$DC>n^<o%c5Xp4
zUofTE?rJ&dpfM$I)cZTyY1<BMiw|}@r|URQ+5m%+Yi4$6nSR>R7Omhu{J7DV1v0)v
zN8Sn_`<nKyIA=nQxovE4(9xEHhHu}gEw{ME^mXrlpm$PRtRi8dgJaFpL_INME)yHE
zb4u$#+K|8AcgPtvubk5)o0Z8uMi<6ZZtmAkO}HswB%T|baDuQkEct1hVwIxt0N-G8
zXV5aj4b}zTES6P1*Q~HshEGQntzO%$HZ{cufg9|yTfk+gB1{eB9Vc+pFj03ZIc>(j
zbk<3KE`!!8c$R?uqMPP>p9!^Gf|s<p6JC!aMK3X6*0>g^JI!|YtPw+Wn@3c&!=RE{
zpH2LT?;4z3iqv=~i4;G&d0Bx3<n)C~aZ|e<u#XH@>1+C;C|4kWu|xB6eFG^(kNLrx
zTjsKAW~#B5Wh&}zHI0`hL9!yqu>je-@)dr6|NMVr9aXK&xdgy(+;}##P1x*why5-O
zU5E^w)h9R4+37Feg5xM5D|Z~jLHgF+fY}Cla6R5DmCl=;S5tV`ANaxnOjL9XazJ}+
z)~NzJ9L@cdJ1S`FlAHuy6(=sSfX0PC9vNuDpnyk>y~!%hr{Ml+cjV5wXs@yw5M363
z%`hkT+1=UFKmDW$%e_+qIwi9ufm^jXZI0~S91r(O^>Szs60e_t8FJ&(R62Z5xfPhn
zI+4YA$L;}YQ8Bg+D{w%@XCnJMEFIeloHrC|?GSI?t4^PPAX?ye&q$d(lze;YAY!~>
zV}Vw@?SDPd%JZA@_UM?^nN`vO<f;2P4=u3uR<^-eBWdeqSj)9K;Z!EO#GwlCX=!Ip
z1n3lWssbg>gcYR#Ro4k|AUHWRmMtMb#U0!K8<U0_C;`cnuNoD9xq<MCibN5Fa<_0_
z8WzAx^?}0Ws=V*PiQ4HS>bU)1dsq70#&PVw?_aTr$^oF@ASo%f`HEK26eX)3C8b2j
za!Pigmc)`;2i)b`1xO+v^0#ODnrlyhlwRJeu*w#>#~eMqGkyHJ+t3UTRMxgYEZIum
z3Ir+>S#w06%|&#7F6#bfBR5GSKnx^%oN<nD8V28w1nnnF*EE81z+%y67WZg2G%6(S
zQ^qm@@hy(Bx`}sYUd%36VA!#ZITsu_g^nrcg6C;uR`yR>G{C))rDOK(SpL5ue+qnB
zLV$s2?233Nu>WefPBU3vs@7<U)wa7LGc?)e=Gd%Ig771M$hTT&S&11^r1+6L(h7~=
zSd5`1%$K$uJZA}RO_10LvJi!pLkOzemDr*8wcLYo&5~(L2&;V%a?Q@ixv`k(4=B)^
zL^pGDr)d9fTi8950ca%IeItTUqCi$=NPL=+0>u3f$@gz;+PKkF8@5B=4xmNcpR!w!
z{_t}P;KTrb`|Sd^S~+1ZGd06?mJ(E!M4Bs*N32kFt=;iUfyVg5hCyiwY^5C8L1Q0{
z=xy{B^8r=*Rcb>Ko3kkZ3+%PBz<rV}sOAwElVaqF8usNHbvFwr8F_j?M|_C&B53g2
zWU>a;h8k4d_1EOu56XzFt?({aYc;%DR24W)U>?nX)}B_3s&vA~k&_dN&o?dIkU2mC
z_Gqp&HlDW)+-#pR5t15!<m#uZv%Y{}#&mhGAB5^heN&-?t@L5b9qK%G2XC_!GMg%C
zEKB8&JX717x}VbpYy*DC1UvKZhrdTRk$;uDh97TG<C>w!DC_|Y%YB;Rz>nAUK+pFg
zO3&AS>>#Fol*A2`wFbsl#;C*gd#7T(!*_Xu>J9YcaIDf0;ao>V4uqo6rM}fJ(h9GR
z?P16O0-qrIt2l6%GkAo6go=d@^y)(|6{`=I>sS9KRs)BllNazJUnNWa9rGgd?`of-
zUoaxu;|5HI&(DDn85h#TIcz3bzUDupOE77FY2Lb0@`BG<6vl}sa0B-sMeC-*v)~E9
z*m>A4!@#J`fX!HWm}Z1Sdr<e{tCz@5%sG7QjYc?<{qUQj7k=Z6P%{=h&>sv#hhdNg
z4#QX+;4zGSr=ve@v!puR4yiAcbBE8b*C{(FI4_Rni$mWef}v}Dy)~hKoekwao}z?*
zWI4iM6(9WqIzsu`6L7fDP5r!U8h~8fL>WnJ!E|CoCdBjxl*)RDh9z~vL2M2<LBM_I
zU}2(=o-{T)b|3{}nY!R;A&3n^ZxHpSqx-mXH%o_DC>d5h@ZyPH#o9mWtv!DlV7oa3
zvl5)d%MyzO2AxuJC7}5wf?O9G!R2~?Dr`L`tCKdgdh-!sM4U$9LWA9Ec;>`HnML^}
zONShoZAX&!n=M_uzj2VQSn2`}QZeDBcC?($MAk59h7?ICiv?2^jnuy07yJ|&8QTH}
z@9yqM;p`GPC=U;f-H~U*eiASGwD6~cc0~z;>wun9Y%hJ{yVO4GcBDHLoWmD?KEy0n
zXTfzw!mT{(WO=z~_-k4f_Ie9;q#zCdbg8JnTeE@$l;Wk??;32`66%T%N;(@8@Y?Ji
z#Fq}2lwAUJ2#riEVh%)w;v?iy_49K8`imW<q-&w&I<sSsDT^gGqLbE4$fE7-Aa4O2
zAx0PW{8eBOCGdfhlYxQORrkPuPZy;L$DZ;|2b!kX_foy@lKhSVW91E{Qk3r)QX@e4
zbs@i6aC`t^T_*v!=MbjV$H-n5H0U`c0U!oR3x|CYRe<ZyvlScz_&tNO0CN<nkvq-6
zPcm1{^uC!ZNhIv!Tj8I>T@XB6X;yb8f(5p8z#`TBAeq~5plAzG)hr-?vruXcek^j-
zx)>MBxnh)IxHAX>oa?7vv`}oZ><z=-S-dRP@C&3cS|oArw}GX~y<dq4kj|~sA7Tw2
z2<^4J0v#{-(?V7mKU$m#T|?>s326Cu=^y=&Jcy25b&+NUS0-{vH#VWxnmgEQ=>Q3K
zkM^Imw9o6%-UI)QUk3bt-BAp!N|D%2*xWdSB8!nV@sv&qA{|;Pek(1BSnw^9ObW{L
z(m{=PLoHX==TQ-(=wATK)!#+foNJ@TjVs~+v0Uw;H&~N{Y;my@IM^(MRP{shNar2R
z-NtlqP8X{MT;9%d!AUI}tr_>SV)UJX4^dYe7?rea%5X;1X4&w6hafvJP{Cdjq=YrJ
zZ447mdnJ<uOz=yYC7PG_KBkF>FiDh55zuXV8PE6+jJyZm1o*aRbxdMSzr-XREEZc@
zDP*YrD7*3za!w(Z2hR?nI0oi6C|M)Qyt0`^;u`ndmW)y?sq^l23maXnAXaThX4jRe
z+hOg7YCo4>S+Qh)gjWX)J8W^BiiX^IPWGqL*ebP7?N$>N0Q}Hdx>!4Y6rJQt5QTQO
zFH(6W;aDKh%G)fo^|}_l$=wu4#5aR_?Lh%M5Qo>=<gE$2WSOcMM!;}sNdACf+2A}>
z!ao#^!uWXBX0{)$#hMQ=+~1)Jh|)D~G(r=<Y>Y=z7g#NS)VMy;fB~llpIHbk`g)J(
zCAiR*i;CT--H-ImPjgE@Dai(;rd%&bPod;2Gg|&Sg#`o(M*{fLN(**qpGn&)E_u9M
z<r29-Gp4{l8W^QsItZJU7ndAW6r(3FdZqUxpl;&*UW?+i>u6Tq@oqIY>V=QPXFK*K
z#5Q#4AfUN_ZoG9je?Kk({9rQ4_R|u6S>A69wv+;Y1UtCdHei`d*~XeI{SOlZeKgK1
z7j^VX9r(7n+$8zXC`{B;Au4_YWz<&@m_ICK&ec#i(o(x>s&(3AZD&;)tKV6T*1B<D
zRobiHSFHwH*PE}&jyC=Y=sWu|3w3z%<MI3HS6ZllACIS}fBQ-cb@bEW`;*tl+b@)7
za%c-EYp9FR4VJTI*#v^)G^UqoDT~m}Kyv@831TuKASBuwk}HJV3(^(C1<B%;84R}-
z0v~31;3ouB%ZNp7v+Fo#0)hP)y#n!a4Wg4+iUI!}0W4GfOUP;fMHZCyylj28Als#+
z7Lu-iN(6PaJG&@t&i*iuOAe%wjhAl_>mh*wQ^pTA**Gl)R%EEgjaw;&!7dJXafG8-
zlh?5?2!5h=tkfA*^TId)x<PQ>#A(6w@1{c~L5QI0h3TS_bO+D~-6$u}GB$XuzZr7W
zJVR`5DeE4tiXgHkCJSxO>1J3E52M8buuhnNb(!*VQJ8^<-2sc;r6gVy4AU%OqlJ#<
zHN$xU;;5^f4V%_;$YII2XxaJ4JM_zQZB4x^_IWt!@wC{#6DN}uj(Gb7qY(FYc6KMf
zyg50==dHaqpj}cmB}jdghuO0Xe007XnT1Cxxp(0vh)Mjw#A_BZ%P-<Pc%q_d_hn~)
z<A&MA|FZ%-yS35R57x4Nl*bB<;c7dhw9k%43e-;Cns`g1TdPYvma3-5<A}tyW{*U1
zN3_iH?o*RqtOeL;X&z`<Fm%a^TWc8lq*H?sarKbxiD|8!vfWp>k)_yxSJ@v7<}%Lx
z@o&X3$-KP_k1Ok%QrcmbC(G(FW0m=Tjhe%X&zM@{0oYm7hPF0a&a0K|n#whS?DV8v
zcDiRZC)EYwN{sQ+l`O2(3fsmm=xl?(D)Nm4&Oir}q^rPNg?kInKYf!^!}%}s&60e8
z*Zre!Gb@2j6D#&j(6}No7b5*=k};tIJ2+tD{2HYh*-#D3rf82+HBy(|&5jR$-X`Bi
zQJd-`FfwHfnW+E}=Esq{2<D_E?7NZ+oOwGHcN)L0w%TJIzp@7^O~zlFlU}tVmVHa=
z3@u371`db;f}q$_5OWaf901{vJ7J0Ws!bfN7?3fD0XIn001cqYu@{Hpt`6MX4H5^B
zqAaVSb*x*eHeq0jEql<TKTKACMLtnG-Xu<M*jg0?kAg?lJB_-7H(zOA$#fNmZ?l^)
z{65@$w*Tzu{?l)viuR7Bk@5Z}(Sv*Ay=V*#S$1mqy|j5be&`sKgIRbGf(I}7InK|r
zBA(H!aQS7lQ0huwooPyd#*}Ee+)dFDSh~DW@;G6QOSf1cfG+WYf$9K%U3L8@gP`0{
za+ZTa$75UOYqA+V3ZV<Klmjdl{u2CCOu9}%zs#zKVH&O+JiesVJC7K~<c{XzKIa19
zTv5pS@b(yc<_r))ObO9mV-v@Dp0V9aPlhIRZm03bNpVck-uT&{jj5mJs5==uuep=n
zbmIQfw9%lE4$ipLEUd|Y2w~v;I^vWFL`3RDqe?n8lj$Ky)rDM*B<n`8HmX%pj;NP{
zF=*i~4M&@no@N5Ju-8M<t}Fc-X=snvr&<@v)l$!)U>5>fM6_nyfe#;=rkl{Uk+v<Q
z?Mhzw$)lu*?Z>#kmr=5y%ot3%(gzR6KLF-aC<u722ZHWL469UspZu)<ILa@JVfgs*
z-*4eJc1bEK^y{fwa}*#PSjOF>x*I)AAd;k^(>$?=R06<v?crmI!6l^1m+Bpys(cv6
z<IC~TY9j=B2y<n|8ss(B_o>rQGM3*ILl7H{kEci2iJl1iJC!hJ9->5*K80+Tu6ms1
zkwtc<4u6m;jya=$!f~o(GGK{=uoo5QNz$W7KPX{QDac^fc4G7EQgc9?1j12bi12UG
z&(3~lYJvw`@`<RcW0qkc1IP@n7ZwXA7x*Ybbnt;C!hc~+ds?6FxvYq8^#e%z7G3xC
z+XV1&8T%$$?5ZaLs-(U!7$Q042maQd6k>1f!#hJ%&j#gxF94@Dze9-Ap6l9&_bT3y
zVSG}r!Ft1sf<kilHzlf-UoZTjW7oR|$An8kq`;Z63qQVPD#1VFJjPG1-y4Aof7Ww&
zhMx_H8(!2ExQUUONayfOpbkFHyH^jAW3yl_VvQTBMyHiWP=cs&`yRNAUv$xA(4q$;
z^SB%DI#@-21nW3ZMQ+;1D&m8B$?NE3gU`y7a}a11x4ng_Ta@Mn5mT9_|02t0pvU=W
zMKp}gESw@3HtoNgaEo<IS+|TbDtkZ#Gc?1nMo<kn+-9+>h*z;n4J%|;2YLn;fjn8W
zWpvqxB49iK^`~l0_co0#XV;KrD^F+Rt7v)t86O^htH%c8%RF0M7yZGf(JldSpur;^
z5Gq={p?!`D+&84zA#`KS*nUs8NB3EKi%@?L%`1U*X7`g6@^)BT51m-%K(`*yBYq3U
zfdhCHJ{-8xH#etFXEZ)TIC*^_Gc`{p1(Lv><P@pfv;9H6N-ETSn0j3A&VGkeM_w6U
zL|Bb~#~QhMVvG?+-YAv!Luvn5F~A_A#R3xAqA3S*Y3ux>aOK6jH)D&KdSMNcNy2j5
zTy7!y+<r}a?kKBbR_J`09mpDJDxn(`#;8_(cF^k$s)oj#!X4Nwa*AiT;sg3cgai-?
z>B{SOA~VY0m5d}eO-uh_sQ*t4RnI|ONAN#?d(HnYYdpelwq%jyZ};)9spg9EyA9?{
zOyxdneA|$O9u~UIfN=d9W)!Ze<VnY0JToYPx)BUaCqA2gI6ZuIJewZ>GF9Vax3l&C
z;6o8z#`^+%eE$47*nZ(NOVSJGR>DP;UnM;Y-WQ>gz^<lCJ>2*%S@r?lT7vU}k_bG1
zryf$j-hA5K|4sN=_1;GvGW^3qxNFHn)FnNpM+qQgP+xb9=pkQU-#i6FNI<qkLeEf>
zo6TTAvl%OLk0iWme)eDRKMdDc=AfZapW7gGKcWkQ9FPpqYJtnUQeVdsvZ!iV+5T_w
zYYOU=W#e^IQ%KaO_n9*WXb{=PL!?T7EOr~szA<aW06Bw*49Yf&iJ>4*gE(St@h`%k
zwa`xM<`wZ39wDrfs)%)xRnk@8k&FU>QrnS%Jb`CtZHF+lg$H1oX-YXj)l;Ih03cm~
zgKDOeJ0%Kr*xY;ggi7s=q7eiDkEqc5=yQ~(anadB|CD@(6%nB5JA4AZL&{ly8(~cK
zgzL$3H;(7f0Kl+(3O~7l!w_E6!4|0cg0HrZ!0>^cJ*(Zr-_^UuU3xyTE-taEX9yL?
z@&utk>qH3?6}G)hA%}d0zpz4c|F=Hzzko1U2hVGj4!LdHbXFcP#)bT4r|$OG8ELhE
z@aFVYrF`&faJo*j>mn(L5l=aPf3Agv;KU6aCFfO7H5;w(U}njK<Obr6s;|sC;Ww8-
z)U3)P$k&oU%*SjAA1$)SmZHUZcD>%<+;&S!f!JIwS%s-_<NPKL5YvE?t=?WccEbcH
zMLANUS34p6JSnah(ONPQRaQH~;~B(@pj*Tseu)xb<mEx?5UyC>4Jqt@5Zng&oB|0&
zE(jgDK%eU*Yix3?FS7s#UXD%da=Jeq<*O7ycX+z{X~a4l?a%0FuPV#~NBdJa+NC}q
z9@yoSVH$sDYE0CD?j)hChpyTnP^)ssa4v$|rc?ki)`bqeu3Z$9+HtQ}%P%vWZig2>
zW^eM^FHr)d=keX0I>N7iCjXpsnVbrcv5n<c*Wavl7BcRnK-8!An0}ofGPZc?VrRVb
zY)AcQNS2^b`F^gEyshb5EL1au#^q|`qyRGahVzaAE<=!(k}Xnv!@2CdppnVyhWc1<
z;swBB;T`*q^NI!+Uqbj6JZfLj1eyr0T_<L7PU!7|+N|)l7Iyf5X*&I@Vuz0(KaSrY
z|MJWD=-r#iKVSU!ho4T~9KP+q4u1<zUY}0GcQ3=EcW<YMN7K_U!4B__Uu?$?hwo30
z-yUzq4kzlB4cKA&{_yAHlh<!weJys_IL?<gC8|CL<t%Rts<?fIF{&fdOyPhX34$-X
z2u#5h*w^s<pEp;39(7Kgj&XfZC=QBIb`InF%O8LEuBHYYw&NECu+9;@kCAa17Acu?
zXnT4SrwKs$4OA1Pi*rb507=NNbg4#+=vU%^+VRyvT_j4EZ^((*CEv7UNEmTqyAi-!
zMpw~YhS3cpPU1L%B#xuquEB)gDk4?E;U&AAn?_H^Qg|tUBi)3akOq!i#8ycmtNe`!
zVH^h4Uf#JqL7x}Y;lQsk&Q51<XsH3r&2px6Ym&h(N5Mts=UDoO^Fop<9FBCU%>Z9t
zw_NhoOG+Q*2+<WBG1@hq`0jVGoE5n1>gD7ZI_`;L={8tOl-=!@m2Rd)(x_-PHgPmd
zmt2Pus>08Is>N)3T<NlBTuuSk9#PXKT9D#R)inC6#WJ~43%pnl!m|iAEsR&SXCy^6
zbpDT|2nuy1f^CmEnN1IresEw{vZnGvNSJ1uQ<C!Znh9sqAzq$$tdENlJ46I$7f}9I
zYLXQrh@e-eMGVI$l+astWwP&q$tnzVQ?3Pwi6C`<4#-{+>YhUG$zie|!Srw|WY&B}
zNl{#O+jN&m?qU%Fmia2K-W<U6D!l^!2UMnWDQ^S^-e;SI`ph1@(!e*wBtdJS2y)Q7
zi<z63LT614KWB@1!Mln_FvRm=g`zN8+(v605UO@mKN@Z%x=0v@9mE|=T3ESlDOg?&
zA<0L7TzPDS!|u8R?d<?_RH%4IRwq(KBFS}mGwQ_Qi$e&HQFKrWIfqJkiFh&ZQz>^d
zhGYcNu4#aBo#rUWnDnERoy5cfL4h|3nA7=3kPl2%tg|&*3gi^GQv*x+469p-Mt*71
zKo6;83glho2ohI~HHYK>slemw1r+M74m<vTE8IIVw>kzK<7@xcp~h;9?-m!@xk)8(
z0xb0(aYfkhOMUO_#V{w3Ljn>|evL5ZstMj})gLhCcoPQtno+>p1le*}owW~HMPvN%
z$L*t9#}hBEH487JTrre{veI8(xT)HwQ_7ofO9UPA-|6k5#xhG23p%vqjFM%p@|mH3
z&+w>VB6Ua@3+o{N34+9Q=ibIG6|gyGIC_r#L1k0mE-bfEld2gwL^n8TNViiKAuck=
zUx{Kt?p+HfKXfYAZPjbjmCcuTN)G)wiEm9wDJoqEvcWho!G>A755a}sj&{Bq?d^rT
z-|s*BHvBL>vY&w(d)<qM3m24XCI0a)hZlSc20>1ZhiErfiXxRF&jBi^M2MBrET*a%
z?1vs72WAn@viTbRg_nK^{spr_GA)M(XBJDoPD)ghcDXhKjEtO<u(})#IA<11KQ%S1
zOD_NbnUmPLG6TGfoRhG+7Ly~oBne3}002X8WMwatQN9|J@4OC^c)A(^h?A4LR{_$K
z>$+J3CTjqbJZl}3WV=8COp~R%T?4p*0F%yv9FqjQCzD9L83PN10Fxnv7?XUwKmm!9
xy}Vih50e<ZUjxU60F&K@9g~;6KmksZ*u7l?Sd{>iZj~F8Q@$n!X}JIZ006OusJ8$B

-- 
GitLab