changeset 3127:750c9087d287

Merge
author herrick
date Mon, 29 Jun 2009 12:00:41 -0400
parents 7be6a177319e dfd8506f74c3
children ff0333fc2688 c0dbb95852d6
files jdk/src/share/classes/sun/nio/cs/ext/DBCSDecoderMapping.java jdk/src/share/classes/sun/nio/cs/ext/DBCS_IBM_ASCII_Decoder.java jdk/src/share/classes/sun/nio/cs/ext/DBCS_IBM_ASCII_Encoder.java jdk/src/share/classes/sun/nio/cs/ext/DBCS_IBM_EBCDIC_Decoder.java jdk/src/share/classes/sun/nio/cs/ext/DBCS_IBM_EBCDIC_Encoder.java jdk/src/share/classes/sun/nio/cs/ext/DBCS_ONLY_IBM_EBCDIC_Decoder.java jdk/src/share/classes/sun/nio/cs/ext/IBM1381.java jdk/src/share/classes/sun/nio/cs/ext/IBM1383.java jdk/src/share/classes/sun/nio/cs/ext/IBM930.java jdk/src/share/classes/sun/nio/cs/ext/IBM933.java jdk/src/share/classes/sun/nio/cs/ext/IBM935.java jdk/src/share/classes/sun/nio/cs/ext/IBM937.java jdk/src/share/classes/sun/nio/cs/ext/IBM939.java jdk/src/share/classes/sun/nio/cs/ext/IBM942.java jdk/src/share/classes/sun/nio/cs/ext/IBM943.java jdk/src/share/classes/sun/nio/cs/ext/IBM948.java jdk/src/share/classes/sun/nio/cs/ext/IBM949.java jdk/src/share/classes/sun/nio/cs/ext/IBM950.java jdk/src/share/classes/sun/nio/cs/ext/IBM970.java jdk/src/share/classes/sun/nio/cs/ext/SimpleEUCDecoder.java jdk/src/share/native/sun/font/bidi/cmemory.h jdk/src/share/native/sun/font/bidi/jbidi.c jdk/src/share/native/sun/font/bidi/jbidi.h jdk/src/share/native/sun/font/bidi/ubidi.c jdk/src/share/native/sun/font/bidi/ubidi.h jdk/src/share/native/sun/font/bidi/ubidiimp.h jdk/src/share/native/sun/font/bidi/ubidiln.c jdk/src/share/native/sun/font/bidi/uchardir.c jdk/src/share/native/sun/font/bidi/uchardir.h jdk/src/share/native/sun/font/bidi/utypes.h langtools/src/share/classes/sun/tools/javap/AttrData.java langtools/src/share/classes/sun/tools/javap/CPX.java langtools/src/share/classes/sun/tools/javap/CPX2.java langtools/src/share/classes/sun/tools/javap/ClassData.java langtools/src/share/classes/sun/tools/javap/Constants.java langtools/src/share/classes/sun/tools/javap/FieldData.java langtools/src/share/classes/sun/tools/javap/InnerClassData.java langtools/src/share/classes/sun/tools/javap/JavapEnvironment.java langtools/src/share/classes/sun/tools/javap/JavapPrinter.java langtools/src/share/classes/sun/tools/javap/LineNumData.java langtools/src/share/classes/sun/tools/javap/LocVarData.java langtools/src/share/classes/sun/tools/javap/Main.java langtools/src/share/classes/sun/tools/javap/MethodData.java langtools/src/share/classes/sun/tools/javap/RuntimeConstants.java langtools/src/share/classes/sun/tools/javap/StackMapData.java langtools/src/share/classes/sun/tools/javap/StackMapTableData.java langtools/src/share/classes/sun/tools/javap/Tables.java langtools/src/share/classes/sun/tools/javap/TrapData.java langtools/src/share/classes/sun/tools/javap/TypeSignature.java langtools/test/tools/javac/code/ArrayClone.sh langtools/test/tools/javap/ListTest.java langtools/test/tools/javap/OptionTest.java
diffstat 840 files changed, 336244 insertions(+), 111868 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 d60a9ce3c3eabf28f5d50ae839d18be04a551bc2 jdk7-b58
 c33e7d38c9210741dbc285507403a4b20bd802a0 jdk7-b59
 5a10e4d0b14d7beac53a7b2213ae6864afe1fd3e jdk7-b60
+dbb955b1ee59b876dd1f133952b557b48b1d7732 jdk7-b61
+6107cbff3130c747d243c25a7874cd59db5744a8 jdk7-b62
--- a/.hgtags-top-repo	Mon Jun 22 09:14:27 2009 -0400
+++ b/.hgtags-top-repo	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 59b497130f82ec809c245ffb5e521e3a5fabf8af jdk7-b58
 030142474602b4a067662fffc0c8e541de5a78df jdk7-b59
 39565502682c7085369bd09e51640919dc741097 jdk7-b60
+472c21584cfd7e9c0229ad6a100366a5c03d2976 jdk7-b61
+c7ed15ab92ce36a09d264a5e34025884b2d7607f jdk7-b62
--- a/README-builds.html	Mon Jun 22 09:14:27 2009 -0400
+++ b/README-builds.html	Mon Jun 29 12:00:41 2009 -0400
@@ -72,6 +72,7 @@
                             <li>Linux and Solaris:
                                 <ul>
                                     <li><a href="#cups">CUPS Include files</a> </li>
+                                    <li><a href="#xrender">XRender Include files</a></li>
                                 </ul>
                             </li>
                             <li>Linux only:
@@ -657,6 +658,9 @@
                     <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
                 </li>
                 <li>
+                    Install the <a href="#xrender">XRender Include files</a>.
+                </li>
+                <li>
                     Install the
                     <a href="#jibx">JIBX Libraries</a>, set
                     <tt><a href="#ALT_JIBX_LIBS_PATH">ALT_JIBX_LIBS_PATH</a></tt>.
@@ -1032,6 +1036,27 @@
                 CUPS Header files.
             </blockquote>
             <!-- ------------------------------------------------------ -->
+            <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
+            <blockquote>
+                <p>
+                <strong>Solaris:</strong>
+                XRender header files are required for building the 
+                OpenJDK on Solaris.
+                The XRender header file is included with the other X11 header files
+                in the package <strong>SFWxwinc</strong> on new enough versions of
+                Solaris and will be installed in
+	        <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
+                </p><p>
+                <strong>Linux:</strong>
+                XRender header files are required for building the 
+                OpenJDK on Linux.
+                The Linux header files are usually available from a "Xrender"
+                development package, it's recommended that you try and use
+                the package provided by the particular distribution of Linux that
+                you are using.
+	        </p>
+            </blockquote>
+            <!-- ------------------------------------------------------ -->
             <h4><a name="freetype">FreeType 2</a></h4>
             <blockquote>
                 Version 2.3 or newer of FreeType is required for building the OpenJDK.
--- a/corba/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/corba/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -36,3 +36,4 @@
 7e6b2b55c00cc523b468272353ada3979adbbf16 jdk7-b59
 f1e1cccbd13aa96d2d8bd872782ff764010bc22c jdk7-b60
 e906b16a12a9a63b615898afa5d9673cbd1c5ab8 jdk7-b61
+65b66117dbd70a493e9644aeb4033cf95a4e3c99 jdk7-b62
--- a/corba/make/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/corba/make/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -106,7 +106,12 @@
 
 SOURCE_LEVEL = 5
 BOOTSTRAP_TARGET_LEVEL = 5
-TARGET_LEVEL = 6
+
+ifdef TARGET_CLASS_VERSION
+    TARGET_LEVEL = $(TARGET_CLASS_VERSION)
+else
+    TARGET_LEVEL = 6
+endif
 
 ifndef TARGET_JAVA
   TARGET_JAVA = java
--- a/hotspot/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 53d9bf689e80fcc76b221bbe6c5d58e08b80cbc6 jdk7-b58
 c55be0c7bd32c016c52218eb4c8b5da8a75450b5 jdk7-b59
 a77eddcd510c3972717c025cfcef9a60bfa4ecac jdk7-b60
+27b728fd1281ab62e9d7e4424f8bbb6ca438d803 jdk7-b61
+a88386380bdaaa5ab4ffbedf22c57bac5dbec034 jdk7-b62
--- a/hotspot/make/hotspot_version	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/make/hotspot_version	Mon Jun 29 12:00:41 2009 -0400
@@ -35,7 +35,7 @@
 
 HS_MAJOR_VER=16
 HS_MINOR_VER=0
-HS_BUILD_NUMBER=04
+HS_BUILD_NUMBER=05
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=7
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -1157,6 +1157,13 @@
   } else {
     // We're done with marking.
     JavaThread::satb_mark_queue_set().set_active_all_threads(false);
+
+    if (VerifyDuringGC) {
+      g1h->prepare_for_verify();
+      g1h->verify(/* allow_dirty */      true,
+                  /* silent */           false,
+                  /* use_prev_marking */ false);
+    }
   }
 
 #if VERIFY_OBJS_PROCESSED
@@ -1747,12 +1754,12 @@
   // races with it goes around and waits for completeCleanup to finish.
   g1h->increment_total_collections();
 
-#ifndef PRODUCT
   if (VerifyDuringGC) {
-    G1CollectedHeap::heap()->prepare_for_verify();
-    G1CollectedHeap::heap()->verify(true,false);
+    g1h->prepare_for_verify();
+    g1h->verify(/* allow_dirty */      true,
+                /* silent */           false,
+                /* use_prev_marking */ true);
   }
-#endif
 }
 
 void ConcurrentMark::completeCleanup() {
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -1535,6 +1535,15 @@
   guarantee(_hrs != NULL, "Couldn't allocate HeapRegionSeq");
   guarantee(_cur_alloc_region == NULL, "from constructor");
 
+  // 6843694 - ensure that the maximum region index can fit
+  // in the remembered set structures.
+  const size_t max_region_idx = ((size_t)1 << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1;
+  guarantee((max_regions() - 1) <= max_region_idx, "too many regions");
+
+  const size_t cards_per_region = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift;
+  size_t max_cards_per_region = ((size_t)1 << (sizeof(CardIdx_t)*BitsPerByte-1)) - 1;
+  guarantee(cards_per_region < max_cards_per_region, "too many cards per region");
+
   _bot_shared = new G1BlockOffsetSharedArray(_reserved,
                                              heap_word_size(init_byte_size));
 
@@ -2127,17 +2136,22 @@
 };
 
 class VerifyObjsInRegionClosure: public ObjectClosure {
+private:
   G1CollectedHeap* _g1h;
   size_t _live_bytes;
   HeapRegion *_hr;
+  bool _use_prev_marking;
 public:
-  VerifyObjsInRegionClosure(HeapRegion *hr) : _live_bytes(0), _hr(hr) {
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyObjsInRegionClosure(HeapRegion *hr, bool use_prev_marking)
+    : _live_bytes(0), _hr(hr), _use_prev_marking(use_prev_marking) {
     _g1h = G1CollectedHeap::heap();
   }
   void do_object(oop o) {
     VerifyLivenessOopClosure isLive(_g1h);
     assert(o != NULL, "Huh?");
-    if (!_g1h->is_obj_dead(o)) {
+    if (!_g1h->is_obj_dead_cond(o, _use_prev_marking)) {
       o->oop_iterate(&isLive);
       if (!_hr->obj_allocated_since_prev_marking(o))
         _live_bytes += (o->size() * HeapWordSize);
@@ -2176,17 +2190,22 @@
 };
 
 class VerifyRegionClosure: public HeapRegionClosure {
-public:
+private:
   bool _allow_dirty;
   bool _par;
-  VerifyRegionClosure(bool allow_dirty, bool par = false)
-    : _allow_dirty(allow_dirty), _par(par) {}
+  bool _use_prev_marking;
+public:
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyRegionClosure(bool allow_dirty, bool par, bool use_prev_marking)
+    : _allow_dirty(allow_dirty), _par(par),
+      _use_prev_marking(use_prev_marking) {}
   bool doHeapRegion(HeapRegion* r) {
     guarantee(_par || r->claim_value() == HeapRegion::InitialClaimValue,
               "Should be unclaimed at verify points.");
     if (!r->continuesHumongous()) {
-      VerifyObjsInRegionClosure not_dead_yet_cl(r);
-      r->verify(_allow_dirty);
+      VerifyObjsInRegionClosure not_dead_yet_cl(r, _use_prev_marking);
+      r->verify(_allow_dirty, _use_prev_marking);
       r->object_iterate(&not_dead_yet_cl);
       guarantee(r->max_live_bytes() >= not_dead_yet_cl.live_bytes(),
                 "More live objects than counted in last complete marking.");
@@ -2199,10 +2218,13 @@
 private:
   G1CollectedHeap* _g1h;
   bool             _failures;
-
+  bool             _use_prev_marking;
 public:
-  VerifyRootsClosure() :
-    _g1h(G1CollectedHeap::heap()), _failures(false) { }
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyRootsClosure(bool use_prev_marking) :
+    _g1h(G1CollectedHeap::heap()), _failures(false),
+    _use_prev_marking(use_prev_marking) { }
 
   bool failures() { return _failures; }
 
@@ -2213,7 +2235,7 @@
   void do_oop(oop* p) {
     oop obj = *p;
     if (obj != NULL) {
-      if (_g1h->is_obj_dead(obj)) {
+      if (_g1h->is_obj_dead_cond(obj, _use_prev_marking)) {
         gclog_or_tty->print_cr("Root location "PTR_FORMAT" "
                                "points to dead obj "PTR_FORMAT, p, (void*) obj);
         obj->print_on(gclog_or_tty);
@@ -2229,24 +2251,35 @@
 private:
   G1CollectedHeap* _g1h;
   bool _allow_dirty;
+  bool _use_prev_marking;
 
 public:
-  G1ParVerifyTask(G1CollectedHeap* g1h, bool allow_dirty) :
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  G1ParVerifyTask(G1CollectedHeap* g1h, bool allow_dirty,
+                  bool use_prev_marking) :
     AbstractGangTask("Parallel verify task"),
-    _g1h(g1h), _allow_dirty(allow_dirty) { }
+    _g1h(g1h), _allow_dirty(allow_dirty),
+    _use_prev_marking(use_prev_marking) { }
 
   void work(int worker_i) {
     HandleMark hm;
-    VerifyRegionClosure blk(_allow_dirty, true);
+    VerifyRegionClosure blk(_allow_dirty, true, _use_prev_marking);
     _g1h->heap_region_par_iterate_chunked(&blk, worker_i,
                                           HeapRegion::ParVerifyClaimValue);
   }
 };
 
 void G1CollectedHeap::verify(bool allow_dirty, bool silent) {
+  verify(allow_dirty, silent, /* use_prev_marking */ true);
+}
+
+void G1CollectedHeap::verify(bool allow_dirty,
+                             bool silent,
+                             bool use_prev_marking) {
   if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) {
     if (!silent) { gclog_or_tty->print("roots "); }
-    VerifyRootsClosure rootsCl;
+    VerifyRootsClosure rootsCl(use_prev_marking);
     process_strong_roots(false,
                          SharedHeap::SO_AllClasses,
                          &rootsCl,
@@ -2257,7 +2290,7 @@
       assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue),
              "sanity check");
 
-      G1ParVerifyTask task(this, allow_dirty);
+      G1ParVerifyTask task(this, allow_dirty, use_prev_marking);
       int n_workers = workers()->total_workers();
       set_par_threads(n_workers);
       workers()->run_task(&task);
@@ -2271,7 +2304,7 @@
       assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue),
              "sanity check");
     } else {
-      VerifyRegionClosure blk(allow_dirty);
+      VerifyRegionClosure blk(allow_dirty, false, use_prev_marking);
       _hrs->iterate(&blk);
     }
     if (!silent) gclog_or_tty->print("remset ");
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -59,6 +59,9 @@
 typedef GenericTaskQueue<oop*>    RefToScanQueue;
 typedef GenericTaskQueueSet<oop*> RefToScanQueueSet;
 
+typedef int RegionIdx_t;   // needs to hold [ 0..max_regions() )
+typedef int CardIdx_t;     // needs to hold [ 0..CardsPerRegion )
+
 enum G1GCThreadGroups {
   G1CRGroup = 0,
   G1ZFGroup = 1,
@@ -1046,6 +1049,17 @@
   virtual void prepare_for_verify();
 
   // Perform verification.
+
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  // NOTE: Only the "prev" marking information is guaranteed to be
+  // consistent most of the time, so most calls to this should use
+  // use_prev_marking == true. Currently, there is only one case where
+  // this is called with use_prev_marking == false, which is to verify
+  // the "next" marking information at the end of remark.
+  void verify(bool allow_dirty, bool silent, bool use_prev_marking);
+
+  // Override; it uses the "prev" marking information
   virtual void verify(bool allow_dirty, bool silent);
   virtual void print() const;
   virtual void print_on(outputStream* st) const;
@@ -1122,6 +1136,18 @@
   bool isMarkedPrev(oop obj) const;
   bool isMarkedNext(oop obj) const;
 
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  bool is_obj_dead_cond(const oop obj,
+                        const HeapRegion* hr,
+                        const bool use_prev_marking) const {
+    if (use_prev_marking) {
+      return is_obj_dead(obj, hr);
+    } else {
+      return is_obj_ill(obj, hr);
+    }
+  }
+
   // Determine if an object is dead, given the object and also
   // the region to which the object belongs. An object is dead
   // iff a) it was not allocated since the last mark and b) it
@@ -1159,8 +1185,19 @@
   // Added if it is in permanent gen it isn't dead.
   // Added if it is NULL it isn't dead.
 
-  bool is_obj_dead(oop obj) {
-    HeapRegion* hr = heap_region_containing(obj);
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  bool is_obj_dead_cond(const oop obj,
+                        const bool use_prev_marking) {
+    if (use_prev_marking) {
+      return is_obj_dead(obj);
+    } else {
+      return is_obj_ill(obj);
+    }
+  }
+
+  bool is_obj_dead(const oop obj) {
+    const HeapRegion* hr = heap_region_containing(obj);
     if (hr == NULL) {
       if (Universe::heap()->is_in_permanent(obj))
         return false;
@@ -1170,8 +1207,8 @@
     else return is_obj_dead(obj, hr);
   }
 
-  bool is_obj_ill(oop obj) {
-    HeapRegion* hr = heap_region_containing(obj);
+  bool is_obj_ill(const oop obj) {
+    const HeapRegion* hr = heap_region_containing(obj);
     if (hr == NULL) {
       if (Universe::heap()->is_in_permanent(obj))
         return false;
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -40,15 +40,19 @@
 {}
 
 class VerifyLiveClosure: public OopClosure {
+private:
   G1CollectedHeap* _g1h;
   CardTableModRefBS* _bs;
   oop _containing_obj;
   bool _failures;
   int _n_failures;
+  bool _use_prev_marking;
 public:
-  VerifyLiveClosure(G1CollectedHeap* g1h) :
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyLiveClosure(G1CollectedHeap* g1h, bool use_prev_marking) :
     _g1h(g1h), _bs(NULL), _containing_obj(NULL),
-    _failures(false), _n_failures(0)
+    _failures(false), _n_failures(0), _use_prev_marking(use_prev_marking)
   {
     BarrierSet* bs = _g1h->barrier_set();
     if (bs->is_a(BarrierSet::CardTableModRef))
@@ -68,11 +72,13 @@
 
   void do_oop(oop* p) {
     assert(_containing_obj != NULL, "Precondition");
-    assert(!_g1h->is_obj_dead(_containing_obj), "Precondition");
+    assert(!_g1h->is_obj_dead_cond(_containing_obj, _use_prev_marking),
+           "Precondition");
     oop obj = *p;
     if (obj != NULL) {
       bool failed = false;
-      if (!_g1h->is_in_closed_subset(obj) || _g1h->is_obj_dead(obj)) {
+      if (!_g1h->is_in_closed_subset(obj) ||
+          _g1h->is_obj_dead_cond(obj, _use_prev_marking)) {
         if (!_failures) {
           gclog_or_tty->print_cr("");
           gclog_or_tty->print_cr("----------");
@@ -647,19 +653,23 @@
   G1OffsetTableContigSpace::print_on(st);
 }
 
+void HeapRegion::verify(bool allow_dirty) const {
+  verify(allow_dirty, /* use_prev_marking */ true);
+}
+
 #define OBJ_SAMPLE_INTERVAL 0
 #define BLOCK_SAMPLE_INTERVAL 100
 
 // This really ought to be commoned up into OffsetTableContigSpace somehow.
 // We would need a mechanism to make that code skip dead objects.
 
-void HeapRegion::verify(bool allow_dirty) const {
+void HeapRegion::verify(bool allow_dirty, bool use_prev_marking) const {
   G1CollectedHeap* g1 = G1CollectedHeap::heap();
   HeapWord* p = bottom();
   HeapWord* prev_p = NULL;
   int objs = 0;
   int blocks = 0;
-  VerifyLiveClosure vl_cl(g1);
+  VerifyLiveClosure vl_cl(g1, use_prev_marking);
   while (p < top()) {
     size_t size = oop(p)->size();
     if (blocks == BLOCK_SAMPLE_INTERVAL) {
@@ -671,7 +681,7 @@
     }
     if (objs == OBJ_SAMPLE_INTERVAL) {
       oop obj = oop(p);
-      if (!g1->is_obj_dead(obj, this)) {
+      if (!g1->is_obj_dead_cond(obj, this, use_prev_marking)) {
         obj->verify();
         vl_cl.set_containing_obj(obj);
         obj->oop_iterate(&vl_cl);
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -782,7 +782,16 @@
   void print() const;
   void print_on(outputStream* st) const;
 
-  // Override
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  // NOTE: Only the "prev" marking information is guaranteed to be
+  // consistent most of the time, so most calls to this should use
+  // use_prev_marking == true. Currently, there is only one case where
+  // this is called with use_prev_marking == false, which is to verify
+  // the "next" marking information at the end of remark.
+  void verify(bool allow_dirty, bool use_prev_marking) const;
+
+  // Override; it uses the "prev" marking information
   virtual void verify(bool allow_dirty) const;
 
 #ifdef DEBUG
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -109,7 +109,7 @@
     return new PerRegionTable(hr);
   }
 
-  void add_card_work(short from_card, bool par) {
+  void add_card_work(CardIdx_t from_card, bool par) {
     if (!_bm.at(from_card)) {
       if (par) {
         if (_bm.par_at_put(from_card, 1)) {
@@ -141,11 +141,11 @@
     // and adding a bit to the new table is never incorrect.
     if (loc_hr->is_in_reserved(from)) {
       size_t hw_offset = pointer_delta((HeapWord*)from, loc_hr->bottom());
-      size_t from_card =
-        hw_offset >>
-        (CardTableModRefBS::card_shift - LogHeapWordSize);
+      CardIdx_t from_card = (CardIdx_t)
+          hw_offset >> (CardTableModRefBS::card_shift - LogHeapWordSize);
 
-      add_card_work((short) from_card, par);
+      assert(0 <= from_card && from_card < CardsPerRegion, "Must be in range.");
+      add_card_work(from_card, par);
     }
   }
 
@@ -190,11 +190,11 @@
 #endif
   }
 
-  void add_card(short from_card_index) {
+  void add_card(CardIdx_t from_card_index) {
     add_card_work(from_card_index, /*parallel*/ true);
   }
 
-  void seq_add_card(short from_card_index) {
+  void seq_add_card(CardIdx_t from_card_index) {
     add_card_work(from_card_index, /*parallel*/ false);
   }
 
@@ -604,7 +604,7 @@
 
   // Note that this may be a continued H region.
   HeapRegion* from_hr = _g1h->heap_region_containing_raw(from);
-  size_t from_hrs_ind = (size_t)from_hr->hrs_index();
+  RegionIdx_t from_hrs_ind = (RegionIdx_t) from_hr->hrs_index();
 
   // If the region is already coarsened, return.
   if (_coarse_map.at(from_hrs_ind)) {
@@ -627,11 +627,11 @@
       uintptr_t from_hr_bot_card_index =
         uintptr_t(from_hr->bottom())
           >> CardTableModRefBS::card_shift;
-      int card_index = from_card - from_hr_bot_card_index;
+      CardIdx_t card_index = from_card - from_hr_bot_card_index;
       assert(0 <= card_index && card_index < PosParPRT::CardsPerRegion,
              "Must be in range.");
       if (G1HRRSUseSparseTable &&
-          _sparse_table.add_card((short) from_hrs_ind, card_index)) {
+          _sparse_table.add_card(from_hrs_ind, card_index)) {
         if (G1RecordHRRSOops) {
           HeapRegionRemSet::record(hr(), from);
 #if HRRS_VERBOSE
@@ -656,9 +656,9 @@
       }
 
       // Otherwise, transfer from sparse to fine-grain.
-      short cards[SparsePRTEntry::CardsPerEntry];
+      CardIdx_t cards[SparsePRTEntry::CardsPerEntry];
       if (G1HRRSUseSparseTable) {
-        bool res = _sparse_table.get_cards((short) from_hrs_ind, &cards[0]);
+        bool res = _sparse_table.get_cards(from_hrs_ind, &cards[0]);
         assert(res, "There should have been an entry");
       }
 
@@ -679,13 +679,13 @@
       // Add in the cards from the sparse table.
       if (G1HRRSUseSparseTable) {
         for (int i = 0; i < SparsePRTEntry::CardsPerEntry; i++) {
-          short c = cards[i];
+          CardIdx_t c = cards[i];
           if (c != SparsePRTEntry::NullEntry) {
             prt->add_card(c);
           }
         }
         // Now we can delete the sparse entry.
-        bool res = _sparse_table.delete_entry((short) from_hrs_ind);
+        bool res = _sparse_table.delete_entry(from_hrs_ind);
         assert(res, "It should have been there.");
       }
     }
@@ -1030,7 +1030,7 @@
 bool OtherRegionsTable::contains_reference_locked(oop* from) const {
   HeapRegion* hr = _g1h->heap_region_containing_raw(from);
   if (hr == NULL) return false;
-  size_t hr_ind = hr->hrs_index();
+  RegionIdx_t hr_ind = (RegionIdx_t) hr->hrs_index();
   // Is this region in the coarse map?
   if (_coarse_map.at(hr_ind)) return true;
 
@@ -1045,8 +1045,9 @@
     uintptr_t hr_bot_card_index =
       uintptr_t(hr->bottom()) >> CardTableModRefBS::card_shift;
     assert(from_card >= hr_bot_card_index, "Inv");
-    int card_index = from_card - hr_bot_card_index;
-    return _sparse_table.contains_card((short)hr_ind, card_index);
+    CardIdx_t card_index = from_card - hr_bot_card_index;
+    assert(0 <= card_index && card_index < PosParPRT::CardsPerRegion, "Must be in range.");
+    return _sparse_table.contains_card(hr_ind, card_index);
   }
 
 
--- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -33,7 +33,7 @@
     sprt_iter->init(this);
 }
 
-void SparsePRTEntry::init(short region_ind) {
+void SparsePRTEntry::init(RegionIdx_t region_ind) {
   _region_ind = region_ind;
   _next_index = NullEntry;
 #if UNROLL_CARD_LOOPS
@@ -43,11 +43,12 @@
   _cards[2] = NullEntry;
   _cards[3] = NullEntry;
 #else
-  for (int i = 0; i < CardsPerEntry; i++) _cards[i] = NullEntry;
+  for (int i = 0; i < CardsPerEntry; i++)
+    _cards[i] = NullEntry;
 #endif
 }
 
-bool SparsePRTEntry::contains_card(short card_index) const {
+bool SparsePRTEntry::contains_card(CardIdx_t card_index) const {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
   if (_cards[0] == card_index) return true;
@@ -80,10 +81,10 @@
   return sum;
 }
 
-SparsePRTEntry::AddCardResult SparsePRTEntry::add_card(short card_index) {
+SparsePRTEntry::AddCardResult SparsePRTEntry::add_card(CardIdx_t card_index) {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
-  short c = _cards[0];
+  CardIdx_t c = _cards[0];
   if (c == card_index) return found;
   if (c == NullEntry) { _cards[0] = card_index; return added; }
   c = _cards[1];
@@ -97,16 +98,19 @@
   if (c == NullEntry) { _cards[3] = card_index; return added; }
 #else
   for (int i = 0; i < CardsPerEntry; i++) {
-    short c = _cards[i];
+    CardIdx_t c = _cards[i];
     if (c == card_index) return found;
-    if (c == NullEntry) { _cards[i] = card_index; return added; }
+    if (c == NullEntry) {
+      _cards[i] = card_index;
+      return added;
+    }
   }
 #endif
   // Otherwise, we're full.
   return overflow;
 }
 
-void SparsePRTEntry::copy_cards(short* cards) const {
+void SparsePRTEntry::copy_cards(CardIdx_t* cards) const {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
   cards[0] = _cards[0];
@@ -130,7 +134,7 @@
   _capacity(capacity), _capacity_mask(capacity-1),
   _occupied_entries(0), _occupied_cards(0),
   _entries(NEW_C_HEAP_ARRAY(SparsePRTEntry, capacity)),
-  _buckets(NEW_C_HEAP_ARRAY(short, capacity)),
+  _buckets(NEW_C_HEAP_ARRAY(int, capacity)),
   _next_deleted(NULL), _deleted(false),
   _free_list(NullEntry), _free_region(0)
 {
@@ -143,7 +147,7 @@
     _entries = NULL;
   }
   if (_buckets != NULL) {
-    FREE_C_HEAP_ARRAY(short, _buckets);
+    FREE_C_HEAP_ARRAY(int, _buckets);
     _buckets = NULL;
   }
 }
@@ -153,14 +157,18 @@
   _occupied_cards = 0;
   guarantee(_entries != NULL, "INV");
   guarantee(_buckets != NULL, "INV");
+
+  guarantee(_capacity <= ((size_t)1 << (sizeof(int)*BitsPerByte-1)) - 1,
+                "_capacity too large");
+
   // This will put -1 == NullEntry in the key field of all entries.
   memset(_entries, -1, _capacity * sizeof(SparsePRTEntry));
-  memset(_buckets, -1, _capacity * sizeof(short));
+  memset(_buckets, -1, _capacity * sizeof(int));
   _free_list = NullEntry;
   _free_region = 0;
 }
 
-bool RSHashTable::add_card(short region_ind, short card_index) {
+bool RSHashTable::add_card(RegionIdx_t region_ind, CardIdx_t card_index) {
   SparsePRTEntry* e = entry_for_region_ind_create(region_ind);
   assert(e != NULL && e->r_ind() == region_ind,
          "Postcondition of call above.");
@@ -175,9 +183,9 @@
   return res != SparsePRTEntry::overflow;
 }
 
-bool RSHashTable::get_cards(short region_ind, short* cards) {
-  short ind = (short) (region_ind & capacity_mask());
-  short cur_ind = _buckets[ind];
+bool RSHashTable::get_cards(RegionIdx_t region_ind, CardIdx_t* cards) {
+  int ind = (int) (region_ind & capacity_mask());
+  int cur_ind = _buckets[ind];
   SparsePRTEntry* cur;
   while (cur_ind != NullEntry &&
          (cur = entry(cur_ind))->r_ind() != region_ind) {
@@ -192,10 +200,10 @@
   return true;
 }
 
-bool RSHashTable::delete_entry(short region_ind) {
-  short ind = (short) (region_ind & capacity_mask());
-  short* prev_loc = &_buckets[ind];
-  short cur_ind = *prev_loc;
+bool RSHashTable::delete_entry(RegionIdx_t region_ind) {
+  int ind = (int) (region_ind & capacity_mask());
+  int* prev_loc = &_buckets[ind];
+  int cur_ind = *prev_loc;
   SparsePRTEntry* cur;
   while (cur_ind != NullEntry &&
          (cur = entry(cur_ind))->r_ind() != region_ind) {
@@ -212,10 +220,11 @@
   return true;
 }
 
-SparsePRTEntry* RSHashTable::entry_for_region_ind(short region_ind) const {
+SparsePRTEntry*
+RSHashTable::entry_for_region_ind(RegionIdx_t region_ind) const {
   assert(occupied_entries() < capacity(), "Precondition");
-  short ind = (short) (region_ind & capacity_mask());
-  short cur_ind = _buckets[ind];
+  int ind = (int) (region_ind & capacity_mask());
+  int cur_ind = _buckets[ind];
   SparsePRTEntry* cur;
   // XXX
   // int k = 0;
@@ -242,15 +251,16 @@
   }
 }
 
-SparsePRTEntry* RSHashTable::entry_for_region_ind_create(short region_ind) {
+SparsePRTEntry*
+RSHashTable::entry_for_region_ind_create(RegionIdx_t region_ind) {
   SparsePRTEntry* res = entry_for_region_ind(region_ind);
   if (res == NULL) {
-    short new_ind = alloc_entry();
+    int new_ind = alloc_entry();
     assert(0 <= new_ind && (size_t)new_ind < capacity(), "There should be room.");
     res = entry(new_ind);
     res->init(region_ind);
     // Insert at front.
-    short ind = (short) (region_ind & capacity_mask());
+    int ind = (int) (region_ind & capacity_mask());
     res->set_next_index(_buckets[ind]);
     _buckets[ind] = new_ind;
     _occupied_entries++;
@@ -258,8 +268,8 @@
   return res;
 }
 
-short RSHashTable::alloc_entry() {
-  short res;
+int RSHashTable::alloc_entry() {
+  int res;
   if (_free_list != NullEntry) {
     res = _free_list;
     _free_list = entry(res)->next_index();
@@ -273,13 +283,11 @@
   }
 }
 
-
-void RSHashTable::free_entry(short fi) {
+void RSHashTable::free_entry(int fi) {
   entry(fi)->set_next_index(_free_list);
   _free_list = fi;
 }
 
-
 void RSHashTable::add_entry(SparsePRTEntry* e) {
   assert(e->num_valid_cards() > 0, "Precondition.");
   SparsePRTEntry* e2 = entry_for_region_ind_create(e->r_ind());
@@ -322,8 +330,8 @@
   return NULL;
 }
 
-short /* RSHashTable:: */ RSHashTableIter::find_first_card_in_list() {
-  short res;
+CardIdx_t /* RSHashTable:: */ RSHashTableIter::find_first_card_in_list() {
+  CardIdx_t res;
   while (_bl_ind != RSHashTable::NullEntry) {
     res = _rsht->entry(_bl_ind)->card(0);
     if (res != SparsePRTEntry::NullEntry) {
@@ -336,7 +344,7 @@
   return SparsePRTEntry::NullEntry;
 }
 
-size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(short ci) {
+size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(CardIdx_t ci) {
   return
     _heap_bot_card_ind
     + (_rsht->entry(_bl_ind)->r_ind() * CardsPerRegion)
@@ -345,7 +353,7 @@
 
 bool /* RSHashTable:: */ RSHashTableIter::has_next(size_t& card_index) {
   _card_ind++;
-  short ci;
+  CardIdx_t ci;
   if (_card_ind < SparsePRTEntry::CardsPerEntry &&
       ((ci = _rsht->entry(_bl_ind)->card(_card_ind)) !=
        SparsePRTEntry::NullEntry)) {
@@ -379,16 +387,16 @@
   return false;
 }
 
-bool RSHashTable::contains_card(short region_index, short card_index) const {
+bool RSHashTable::contains_card(RegionIdx_t region_index, CardIdx_t card_index) const {
   SparsePRTEntry* e = entry_for_region_ind(region_index);
   return (e != NULL && e->contains_card(card_index));
 }
 
 size_t RSHashTable::mem_size() const {
-  return sizeof(this) + capacity() * (sizeof(SparsePRTEntry) + sizeof(short));
+  return sizeof(this) +
+    capacity() * (sizeof(SparsePRTEntry) + sizeof(int));
 }
 
-
 // ----------------------------------------------------------------------
 
 SparsePRT* SparsePRT::_head_expanded_list = NULL;
@@ -408,6 +416,7 @@
   }
 }
 
+
 SparsePRT* SparsePRT::get_from_expanded_list() {
   SparsePRT* hd = _head_expanded_list;
   while (hd != NULL) {
@@ -452,6 +461,7 @@
   _next = _cur;
 }
 
+
 SparsePRT::~SparsePRT() {
   assert(_next != NULL && _cur != NULL, "Inv");
   if (_cur != _next) { delete _cur; }
@@ -465,7 +475,7 @@
   return sizeof(this) + _next->mem_size();
 }
 
-bool SparsePRT::add_card(short region_id, short card_index) {
+bool SparsePRT::add_card(RegionIdx_t region_id, CardIdx_t card_index) {
 #if SPARSE_PRT_VERBOSE
   gclog_or_tty->print_cr("  Adding card %d from region %d to region %d sparse.",
                 card_index, region_id, _hr->hrs_index());
@@ -476,11 +486,11 @@
   return _next->add_card(region_id, card_index);
 }
 
-bool SparsePRT::get_cards(short region_id, short* cards) {
+bool SparsePRT::get_cards(RegionIdx_t region_id, CardIdx_t* cards) {
   return _next->get_cards(region_id, cards);
 }
 
-bool SparsePRT::delete_entry(short region_id) {
+bool SparsePRT::delete_entry(RegionIdx_t region_id) {
   return _next->delete_entry(region_id);
 }
 
--- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -35,32 +35,32 @@
 
 class SparsePRTEntry: public CHeapObj {
 public:
+
   enum SomePublicConstants {
-    CardsPerEntry = (short)4,
-    NullEntry = (short)-1,
-    DeletedEntry = (short)-2
+    CardsPerEntry =  4,
+    NullEntry     = -1
   };
 
 private:
-  short _region_ind;
-  short _next_index;
-  short _cards[CardsPerEntry];
+  RegionIdx_t _region_ind;
+  int         _next_index;
+  CardIdx_t   _cards[CardsPerEntry];
 
 public:
 
   // Set the region_ind to the given value, and delete all cards.
-  inline void init(short region_ind);
+  inline void init(RegionIdx_t region_ind);
 
-  short r_ind() const { return _region_ind; }
+  RegionIdx_t r_ind() const { return _region_ind; }
   bool valid_entry() const { return r_ind() >= 0; }
-  void set_r_ind(short rind) { _region_ind = rind; }
+  void set_r_ind(RegionIdx_t rind) { _region_ind = rind; }
 
-  short next_index() const { return _next_index; }
-  short* next_index_addr() { return &_next_index; }
-  void set_next_index(short ni) { _next_index = ni; }
+  int next_index() const { return _next_index; }
+  int* next_index_addr() { return &_next_index; }
+  void set_next_index(int ni) { _next_index = ni; }
 
   // Returns "true" iff the entry contains the given card index.
-  inline bool contains_card(short card_index) const;
+  inline bool contains_card(CardIdx_t card_index) const;
 
   // Returns the number of non-NULL card entries.
   inline int num_valid_cards() const;
@@ -73,14 +73,14 @@
     found,
     added
   };
-  inline AddCardResult add_card(short card_index);
+  inline AddCardResult add_card(CardIdx_t card_index);
 
   // Copy the current entry's cards into "cards".
-  inline void copy_cards(short* cards) const;
+  inline void copy_cards(CardIdx_t* cards) const;
   // Copy the current entry's cards into the "_card" array of "e."
   inline void copy_cards(SparsePRTEntry* e) const;
 
-  inline short card(int i) const { return _cards[i]; }
+  inline CardIdx_t card(int i) const { return _cards[i]; }
 };
 
 
@@ -98,9 +98,9 @@
   size_t _occupied_cards;
 
   SparsePRTEntry* _entries;
-  short* _buckets;
-  short  _free_region;
-  short  _free_list;
+  int* _buckets;
+  int  _free_region;
+  int  _free_list;
 
   static RSHashTable* _head_deleted_list;
   RSHashTable* _next_deleted;
@@ -113,20 +113,20 @@
   // operations, and that the the table be less than completely full.  If
   // an entry for "region_ind" is already in the table, finds it and
   // returns its address; otherwise returns "NULL."
-  SparsePRTEntry* entry_for_region_ind(short region_ind) const;
+  SparsePRTEntry* entry_for_region_ind(RegionIdx_t region_ind) const;
 
   // Requires that the caller hold a lock preventing parallel modifying
   // operations, and that the the table be less than completely full.  If
   // an entry for "region_ind" is already in the table, finds it and
   // returns its address; otherwise allocates, initializes, inserts and
   // returns a new entry for "region_ind".
-  SparsePRTEntry* entry_for_region_ind_create(short region_ind);
+  SparsePRTEntry* entry_for_region_ind_create(RegionIdx_t region_ind);
 
   // Returns the index of the next free entry in "_entries".
-  short alloc_entry();
+  int alloc_entry();
   // Declares the entry "fi" to be free.  (It must have already been
   // deleted from any bucket lists.
-  void free_entry(short fi);
+  void free_entry(int fi);
 
 public:
   RSHashTable(size_t capacity);
@@ -138,12 +138,12 @@
   // Otherwise, returns "false" to indicate that the addition would
   // overflow the entry for the region.  The caller must transfer these
   // entries to a larger-capacity representation.
-  bool add_card(short region_id, short card_index);
+  bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
 
-  bool get_cards(short region_id, short* cards);
-  bool delete_entry(short region_id);
+  bool get_cards(RegionIdx_t region_id, CardIdx_t* cards);
+  bool delete_entry(RegionIdx_t region_id);
 
-  bool contains_card(short region_id, short card_index) const;
+  bool contains_card(RegionIdx_t region_id, CardIdx_t card_index) const;
 
   void add_entry(SparsePRTEntry* e);
 
@@ -162,51 +162,49 @@
 
   static void add_to_deleted_list(RSHashTable* rsht);
   static RSHashTable* get_from_deleted_list();
-
-
 };
 
-  // ValueObj because will be embedded in HRRS iterator.
+// ValueObj because will be embedded in HRRS iterator.
 class RSHashTableIter VALUE_OBJ_CLASS_SPEC {
-    short _tbl_ind;
-    short _bl_ind;
-    short _card_ind;
-    RSHashTable* _rsht;
-    size_t _heap_bot_card_ind;
+  int _tbl_ind;         // [-1, 0.._rsht->_capacity)
+  int _bl_ind;          // [-1, 0.._rsht->_capacity)
+  short _card_ind;      // [0..CardsPerEntry)
+  RSHashTable* _rsht;
+  size_t _heap_bot_card_ind;
 
-    enum SomePrivateConstants {
-      CardsPerRegion = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift
-    };
+  enum SomePrivateConstants {
+    CardsPerRegion = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift
+  };
 
-    // If the bucket list pointed to by _bl_ind contains a card, sets
-    // _bl_ind to the index of that entry, and returns the card.
-    // Otherwise, returns SparseEntry::NullEnty.
-    short find_first_card_in_list();
-    // Computes the proper card index for the card whose offset in the
-    // current region (as indicated by _bl_ind) is "ci".
-    // This is subject to errors when there is iteration concurrent with
-    // modification, but these errors should be benign.
-    size_t compute_card_ind(short ci);
+  // If the bucket list pointed to by _bl_ind contains a card, sets
+  // _bl_ind to the index of that entry, and returns the card.
+  // Otherwise, returns SparseEntry::NullEntry.
+  CardIdx_t find_first_card_in_list();
 
-  public:
-    RSHashTableIter(size_t heap_bot_card_ind) :
-      _tbl_ind(RSHashTable::NullEntry),
-      _bl_ind(RSHashTable::NullEntry),
-      _card_ind((SparsePRTEntry::CardsPerEntry-1)),
-      _rsht(NULL),
-      _heap_bot_card_ind(heap_bot_card_ind)
-    {}
+  // Computes the proper card index for the card whose offset in the
+  // current region (as indicated by _bl_ind) is "ci".
+  // This is subject to errors when there is iteration concurrent with
+  // modification, but these errors should be benign.
+  size_t compute_card_ind(CardIdx_t ci);
 
-    void init(RSHashTable* rsht) {
-      _rsht = rsht;
-      _tbl_ind = -1; // So that first increment gets to 0.
-      _bl_ind = RSHashTable::NullEntry;
-      _card_ind = (SparsePRTEntry::CardsPerEntry-1);
-    }
+public:
+  RSHashTableIter(size_t heap_bot_card_ind) :
+    _tbl_ind(RSHashTable::NullEntry),
+    _bl_ind(RSHashTable::NullEntry),
+    _card_ind((SparsePRTEntry::CardsPerEntry-1)),
+    _rsht(NULL),
+    _heap_bot_card_ind(heap_bot_card_ind)
+  {}
 
-    bool has_next(size_t& card_index);
+  void init(RSHashTable* rsht) {
+    _rsht = rsht;
+    _tbl_ind = -1; // So that first increment gets to 0.
+    _bl_ind = RSHashTable::NullEntry;
+    _card_ind = (SparsePRTEntry::CardsPerEntry-1);
+  }
 
-  };
+  bool has_next(size_t& card_index);
+};
 
 // Concurrent accesss to a SparsePRT must be serialized by some external
 // mutex.
@@ -238,7 +236,6 @@
   SparsePRT* next_expanded() { return _next_expanded; }
   void set_next_expanded(SparsePRT* nxt) { _next_expanded = nxt; }
 
-
   static SparsePRT* _head_expanded_list;
 
 public:
@@ -255,16 +252,16 @@
   // Otherwise, returns "false" to indicate that the addition would
   // overflow the entry for the region.  The caller must transfer these
   // entries to a larger-capacity representation.
-  bool add_card(short region_id, short card_index);
+  bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
 
   // If the table hold an entry for "region_ind",  Copies its
   // cards into "cards", which must be an array of length at least
   // "CardsPerEntry", and returns "true"; otherwise, returns "false".
-  bool get_cards(short region_ind, short* cards);
+  bool get_cards(RegionIdx_t region_ind, CardIdx_t* cards);
 
   // If there is an entry for "region_ind", removes it and return "true";
   // otherwise returns "false."
-  bool delete_entry(short region_ind);
+  bool delete_entry(RegionIdx_t region_ind);
 
   // Clear the table, and reinitialize to initial capacity.
   void clear();
@@ -276,13 +273,12 @@
   static void cleanup_all();
   RSHashTable* cur() const { return _cur; }
 
-
   void init_iterator(SparsePRTIter* sprt_iter);
 
   static void add_to_expanded_list(SparsePRT* sprt);
   static SparsePRT* get_from_expanded_list();
 
-  bool contains_card(short region_id, short card_index) const {
+  bool contains_card(RegionIdx_t region_id, CardIdx_t card_index) const {
     return _next->contains_card(region_id, card_index);
   }
 
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1	Mon Jun 29 12:00:41 2009 -0400
@@ -51,7 +51,6 @@
 concurrentG1Refine.hpp			allocation.hpp
 concurrentG1Refine.hpp			thread.hpp
 
-
 concurrentG1RefineThread.cpp		concurrentG1Refine.hpp
 concurrentG1RefineThread.cpp		concurrentG1RefineThread.hpp
 concurrentG1RefineThread.cpp		g1CollectedHeap.inline.hpp
@@ -334,6 +333,7 @@
 sparsePRT.hpp				allocation.hpp
 sparsePRT.hpp				cardTableModRefBS.hpp
 sparsePRT.hpp				globalDefinitions.hpp
+sparsePRT.hpp                           g1CollectedHeap.inline.hpp
 sparsePRT.hpp				heapRegion.hpp
 sparsePRT.hpp				mutex.hpp
 
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -177,6 +177,7 @@
   // are double-word aligned in 32-bit VMs, but not in 64-bit VMs, so the 32-bit
   // granularity is 2, 64-bit is 1.
   static inline size_t obj_granularity() { return size_t(MinObjAlignment); }
+  static inline int obj_granularity_shift() { return LogMinObjAlignment; }
 
   HeapWord*       _region_start;
   size_t          _region_size;
@@ -299,13 +300,13 @@
 inline size_t
 ParMarkBitMap::bits_to_words(idx_t bits)
 {
-  return bits * obj_granularity();
+  return bits << obj_granularity_shift();
 }
 
 inline ParMarkBitMap::idx_t
 ParMarkBitMap::words_to_bits(size_t words)
 {
-  return words / obj_granularity();
+  return words >> obj_granularity_shift();
 }
 
 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit, idx_t end_bit) const
--- a/hotspot/src/share/vm/includeDB_compiler1	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/includeDB_compiler1	Mon Jun 29 12:00:41 2009 -0400
@@ -387,7 +387,7 @@
 c1_ValueSet.cpp                         c1_ValueSet.hpp
 
 c1_ValueSet.hpp                         allocation.hpp
-c1_ValueSet.hpp                         bitMap.hpp
+c1_ValueSet.hpp                         bitMap.inline.hpp
 c1_ValueSet.hpp                         c1_Instruction.hpp
 
 c1_ValueStack.cpp                       c1_IR.hpp
--- a/hotspot/src/share/vm/memory/gcLocker.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/memory/gcLocker.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -242,6 +242,31 @@
 #endif
 };
 
+// A SkipGCALot object is used to elide the usual effect of gc-a-lot
+// over a section of execution by a thread. Currently, it's used only to
+// prevent re-entrant calls to GC.
+class SkipGCALot : public StackObj {
+  private:
+   bool _saved;
+   Thread* _t;
+
+  public:
+#ifdef ASSERT
+    SkipGCALot(Thread* t) : _t(t) {
+      _saved = _t->skip_gcalot();
+      _t->set_skip_gcalot(true);
+    }
+
+    ~SkipGCALot() {
+      assert(_t->skip_gcalot(), "Save-restore protocol invariant");
+      _t->set_skip_gcalot(_saved);
+    }
+#else
+    SkipGCALot(Thread* t) { }
+    ~SkipGCALot() { }
+#endif
+};
+
 // JRT_LEAF currently can be called from either _thread_in_Java or
 // _thread_in_native mode. In _thread_in_native, it is ok
 // for another thread to trigger GC. The rest of the JRT_LEAF
--- a/hotspot/src/share/vm/runtime/interfaceSupport.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/runtime/interfaceSupport.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -66,11 +66,14 @@
 
 void InterfaceSupport::gc_alot() {
   Thread *thread = Thread::current();
-  if (thread->is_VM_thread()) return; // Avoid concurrent calls
+  if (!thread->is_Java_thread()) return; // Avoid concurrent calls
   // Check for new, not quite initialized thread. A thread in new mode cannot initiate a GC.
   JavaThread *current_thread = (JavaThread *)thread;
   if (current_thread->active_handles() == NULL) return;
 
+  // Short-circuit any possible re-entrant gc-a-lot attempt
+  if (thread->skip_gcalot()) return;
+
   if (is_init_completed()) {
 
     if (++_fullgc_alot_invocation < FullGCALotStart) {
--- a/hotspot/src/share/vm/runtime/thread.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/runtime/thread.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -127,6 +127,7 @@
   debug_only(_owned_locks = NULL;)
   debug_only(_allow_allocation_count = 0;)
   NOT_PRODUCT(_allow_safepoint_count = 0;)
+  NOT_PRODUCT(_skip_gcalot = false;)
   CHECK_UNHANDLED_OOPS_ONLY(_gc_locked_out_count = 0;)
   _jvmti_env_iteration_count = 0;
   _vm_operation_started_count = 0;
@@ -784,7 +785,6 @@
       // We could enter a safepoint here and thus have a gc
       InterfaceSupport::check_gc_alot();
     }
-
 #endif
 }
 #endif
--- a/hotspot/src/share/vm/runtime/thread.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/runtime/thread.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -191,6 +191,9 @@
   NOT_PRODUCT(int _allow_safepoint_count;)       // If 0, thread allow a safepoint to happen
   debug_only (int _allow_allocation_count;)      // If 0, the thread is allowed to allocate oops.
 
+  // Used by SkipGCALot class.
+  NOT_PRODUCT(bool _skip_gcalot;)                // Should we elide gc-a-lot?
+
   // Record when GC is locked out via the GC_locker mechanism
   CHECK_UNHANDLED_OOPS_ONLY(int _gc_locked_out_count;)
 
@@ -308,6 +311,11 @@
   bool is_gc_locked_out() { return _gc_locked_out_count > 0; }
 #endif // CHECK_UNHANDLED_OOPS
 
+#ifndef PRODUCT
+  bool skip_gcalot()           { return _skip_gcalot; }
+  void set_skip_gcalot(bool v) { _skip_gcalot = v;    }
+#endif
+
  public:
   // Installs a pending exception to be inserted later
   static void send_async_exception(oop thread_oop, oop java_throwable);
--- a/hotspot/src/share/vm/runtime/vmThread.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/runtime/vmThread.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -531,6 +531,7 @@
   Thread* t = Thread::current();
 
   if (!t->is_VM_thread()) {
+    SkipGCALot sgcalot(t);    // avoid re-entrant attempts to gc-a-lot
     // JavaThread or WatcherThread
     t->check_for_valid_safepoint_state(true);
 
--- a/hotspot/src/share/vm/utilities/bitMap.cpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/utilities/bitMap.cpp	Mon Jun 29 12:00:41 2009 -0400
@@ -41,19 +41,6 @@
   resize(size_in_bits, in_resource_area);
 }
 
-
-void BitMap::verify_index(idx_t index) const {
-    assert(index < _size, "BitMap index out of bounds");
-}
-
-void BitMap::verify_range(idx_t beg_index, idx_t end_index) const {
-#ifdef ASSERT
-    assert(beg_index <= end_index, "BitMap range error");
-    // Note that [0,0) and [size,size) are both valid ranges.
-    if (end_index != _size)  verify_index(end_index);
-#endif
-}
-
 void BitMap::resize(idx_t size_in_bits, bool in_resource_area) {
   assert(size_in_bits >= 0, "just checking");
   idx_t old_size_in_words = size_in_words();
--- a/hotspot/src/share/vm/utilities/bitMap.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/utilities/bitMap.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -93,10 +93,12 @@
   // The index of the first full word in a range.
   idx_t word_index_round_up(idx_t bit) const;
 
-  // Verification, statistics.
-  void verify_index(idx_t index) const;
-  void verify_range(idx_t beg_index, idx_t end_index) const;
+  // Verification.
+  inline void verify_index(idx_t index) const NOT_DEBUG_RETURN;
+  inline void verify_range(idx_t beg_index, idx_t end_index) const
+    NOT_DEBUG_RETURN;
 
+  // Statistics.
   static idx_t* _pop_count_table;
   static void init_pop_count_table();
   static idx_t num_set_bits(bm_word_t w);
@@ -287,7 +289,6 @@
 #endif
 };
 
-
 // Convenience class wrapping BitMap which provides multiple bits per slot.
 class BitMap2D VALUE_OBJ_CLASS_SPEC {
  public:
--- a/hotspot/src/share/vm/utilities/bitMap.inline.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/utilities/bitMap.inline.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -22,6 +22,17 @@
  *
  */
 
+#ifdef ASSERT
+inline void BitMap::verify_index(idx_t index) const {
+  assert(index < _size, "BitMap index out of bounds");
+}
+
+inline void BitMap::verify_range(idx_t beg_index, idx_t end_index) const {
+  assert(beg_index <= end_index, "BitMap range error");
+  // Note that [0,0) and [size,size) are both valid ranges.
+  if (end_index != _size) verify_index(end_index);
+}
+#endif // #ifdef ASSERT
 
 inline void BitMap::set_bit(idx_t bit) {
   verify_index(bit);
--- a/hotspot/src/share/vm/utilities/macros.hpp	Mon Jun 22 09:14:27 2009 -0400
+++ b/hotspot/src/share/vm/utilities/macros.hpp	Mon Jun 29 12:00:41 2009 -0400
@@ -106,11 +106,13 @@
 #ifdef ASSERT
 #define DEBUG_ONLY(code) code
 #define NOT_DEBUG(code)
+#define NOT_DEBUG_RETURN  /*next token must be ;*/
 // Historical.
 #define debug_only(code) code
 #else // ASSERT
 #define DEBUG_ONLY(code)
 #define NOT_DEBUG(code) code
+#define NOT_DEBUG_RETURN {}
 #define debug_only(code)
 #endif // ASSERT
 
--- a/jaxp/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxp/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 13bf67d8c6341b841d268985cabaf747f2652bc8 jdk7-b58
 75113d7ce083048e7576b9d0d60a4e80db6b181f jdk7-b59
 259aef5045a155eb6a2f8dd0e2429c6dbe0f652f jdk7-b60
+f1ac756616eaaad795f77f7f5e7f7c7bfdc9c1de jdk7-b61
+a97dd57a62604c35c79bc2fa77a612ed547f6135 jdk7-b62
--- a/jaxp/make/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxp/make/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -81,7 +81,15 @@
   ifdef JAVAC_TARGET_ARG
     ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
   endif
-endif
+endif 
+
+ifdef SOURCE_LANGUAGE_VERSION
+  ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
+else
+  ifdef JAVAC_SOURCE_ARG 
+    ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
+  endif
+endif 
 
 ifdef ALT_BOOTDIR
   ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
--- a/jaxp/make/build.properties	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxp/make/build.properties	Mon Jun 29 12:00:41 2009 -0400
@@ -30,6 +30,7 @@
 # one of the standard user build.properties files (see build.xml)
 
 # options for the <javac> tasks used to compile the tools
+javac.source = 5
 javac.target = 5
 javac.debug = true
 javac.no.jdk.warnings = -XDignore.symbol.file=true
--- a/jaxp/make/build.xml	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxp/make/build.xml	Mon Jun 29 12:00:41 2009 -0400
@@ -85,6 +85,7 @@
              destdir="${build.classes.dir}"
              memoryInitialSize="${javac.memoryInitialSize}"
              memoryMaximumSize="${javac.memoryMaximumSize}"
+	     source="${javac.source}"
 	     debug="${javac.debug}"
              target="${javac.target}">
          <compilerarg value="-J-Xbootclasspath/p:${bootstrap.dir}/lib/javac.jar"/>
--- a/jaxws/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxws/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 5fb4fbea81c3609916da00417fdd15dbd9e39e97 jdk7-b58
 f64566bf4c2bc92e65ab2b9fab51b119f0d493d1 jdk7-b59
 3b054db3e277ca224fe6576c59ed6f4ab5ed0bb5 jdk7-b60
+aeabf802f2a1ca72b87d7397c5ece58058e000a9 jdk7-b61
+75c801c13ea1ddebc58b1a8c8da9318d72750e62 jdk7-b62
--- a/jaxws/make/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxws/make/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -83,6 +83,14 @@
   endif
 endif
 
+ifdef SOURCE_LANGUAGE_VERSION
+  ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
+else
+  ifdef JAVAC_SOURCE_ARG 
+    ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
+  endif
+endif 
+
 ifdef ALT_BOOTDIR
   ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
 endif
--- a/jaxws/make/build.properties	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxws/make/build.properties	Mon Jun 29 12:00:41 2009 -0400
@@ -30,6 +30,7 @@
 # one of the standard user build.properties files (see build.xml)
 
 # options for the <javac> tasks used to compile the tools
+javac.source = 5
 javac.target = 5
 javac.debug = true
 javac.no.jdk.warnings = -XDignore.symbol.file=true
--- a/jaxws/make/build.xml	Mon Jun 22 09:14:27 2009 -0400
+++ b/jaxws/make/build.xml	Mon Jun 29 12:00:41 2009 -0400
@@ -107,6 +107,7 @@
              destdir="${build.classes.dir}"
              memoryInitialSize="${javac.memoryInitialSize}"
              memoryMaximumSize="${javac.memoryMaximumSize}"
+             source="${javac.source}"
 	     debug="${javac.debug}"
              target="${javac.target}"
              excludes="com/sun/tools/internal/txw2/**">
--- a/jdk/.hgtags	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/.hgtags	Mon Jun 29 12:00:41 2009 -0400
@@ -35,3 +35,5 @@
 9ba256e2e5c161b89e638390f998baa175ec9abe jdk7-b58
 2a5a1b269e89f27ebe419ef4cf6e66a3face0df1 jdk7-b59
 0c3ef2d612a47667829eb17a192decef23f1c536 jdk7-b60
+f72c0dc047b9b2e797beee68ae0b50decb1f020d jdk7-b61
+12e11fab9a839a9666a996a8f9a02fd8fa03aab6 jdk7-b62
--- a/jdk/make/common/Release.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/common/Release.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -345,7 +345,6 @@
 	sun/tools/jar		\
 	sun/tools/java		\
 	sun/tools/javac		\
-	sun/tools/javap		\
 	sun/tools/jps		\
 	sun/tools/jstat		\
 	sun/tools/jstatd	\
@@ -570,7 +569,6 @@
 	$(ECHO) "sun/tools/asm/" >> $@
 	$(ECHO) "sun/tools/java/" >> $@
 	$(ECHO) "sun/tools/javac/" >> $@
-	$(ECHO) "sun/tools/javap/" >> $@
 	$(ECHO) "com/sun/tools/classfile/" >> $@
 	$(ECHO) "com/sun/tools/javap/" >> $@
 	$(ECHO) "sun/tools/jconsole/" >> $@
--- a/jdk/make/common/internal/Defs-langtools.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/common/internal/Defs-langtools.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -40,6 +40,5 @@
       com/sun/tools/javac           \
       com/sun/tools/javadoc         \
       com/sun/tools/javah           \
-      com/sun/tools/javap           \
-      sun/tools/javap
+      com/sun/tools/javap
 
--- a/jdk/make/common/shared/Defs-control.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/common/shared/Defs-control.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -91,6 +91,8 @@
 
 dummy := $(shell $(MKDIR) -p $(TEMP_DIR))
 
+# The language version we want for this jdk build
+SOURCE_LANGUAGE_VERSION=5
 # The class version we want for this jdk build
 TARGET_CLASS_VERSION=5
 
--- a/jdk/make/common/shared/Defs-java.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/common/shared/Defs-java.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -123,7 +123,8 @@
 endif
 
 # Add the source level (currently all source is 1.5, should this be 1.6?)
-LANGUAGE_VERSION = -source 1.5
+SOURCE_LANGUAGE_VERSION = 5
+LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION)
 JAVACFLAGS  += $(LANGUAGE_VERSION)
 
 # Add the class version we want (currently this is 5, should it be 6 or even 7?)
--- a/jdk/make/docs/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/docs/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -645,7 +645,7 @@
 	@# ######## api-tracing ############################
 	$(RM) -r $(TRACING_DOCDIR)
 	$(MKDIR) -p $(TRACING_DOCDIR)
-	$(JAVADOC) $(TRACING_JAVADOCFLAGS)                     \
+	$(JAVADOC_CMD) $(TRACING_JAVADOCFLAGS)                     \
 		   $(TRACING_PKGS)
 
 .PHONY: httpserverdocs
--- a/jdk/make/java/nio/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/java/nio/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -827,8 +827,7 @@
 
 $(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java $(GENCSSRC)/sbcs
 	@$(prep-target)
-	$(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \
-		$(GENCSSRC) $(SCS_GEN) sbcs
+	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSSRC) $(SCS_GEN) sbcs
 
 # 
 # Generated file system implementation classes (Unix only)
--- a/jdk/make/java/text/FILES_java.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/java/text/FILES_java.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -76,6 +76,10 @@
         sun/text/Normalizer.java \
         sun/text/SupplementaryCharacterData.java \
         sun/text/UCompactIntArray.java \
+            sun/text/bidi/BidiBase.java \
+            sun/text/bidi/BidiLine.java \
+            sun/text/bidi/BidiRun.java \
+            \
             sun/text/normalizer/CharTrie.java \
             sun/text/normalizer/CharacterIteratorWrapper.java \
             sun/text/normalizer/ICUBinary.java \
--- a/jdk/make/javax/swing/beaninfo/SwingBeans.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/javax/swing/beaninfo/SwingBeans.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -50,6 +50,8 @@
 JAVADOCFLAGS    = $(NO_PROPRIETARY_API_WARNINGS) $(LANGUAGE_VERSION)
 SWINGPKG        = javax/swing
 LOCAL_JAVAC_FLAGS = $(OTHER_JAVACFLAGS)
+# since LOCAL_JAVADOC runs on ALT_BOOTDIR, the doclet and all its classes must be compiled to match
+DOCLET_JAVAC_FLAGS = -source 6 -target 6
 
 include FILES.gmk
 include $(BUILDDIR)/common/Release.gmk
@@ -86,7 +88,7 @@
 	@$(MKDIR) -p $@
 
 $(DOCLETDST)/%.class: $(DOCLETSRC)/%.java
-	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) -classpath "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(DOCLETSRC)" -d $(DOCLETDST) $?
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath "$(CLASSBINDIR)$(CLASSPATH_SEPARATOR)$(DOCLETSRC)" -d $(DOCLETDST) $?
 	@$(java-vm-cleanup)
 
 # To run, the doclet needs SwingBeanInfoBase class.  Also Notice the lie
@@ -95,11 +97,11 @@
 .SwingBeanInfo: $(OBJDIR) $(BEANCLASSDIR) $(BEANSRCDIR) $(SWINGPKG)/BeanInfoUtils.class $(SWINGPKG)/SwingBeanInfoBase.class 
 
 $(SWINGPKG)/BeanInfoUtils.class: $(BEANSRCDIR)/BeanInfoUtils.java
-	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) -d $(BEANCLASSDIR) $<
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -d $(BEANCLASSDIR) $<
 	@$(java-vm-cleanup)
 
 $(SWINGPKG)/SwingBeanInfoBase.class: $(BEANSRCDIR)/SwingBeanInfoBase.java $(BEANSRCDIR)/BeanInfoUtils.java
-	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) -classpath $(BEANCLASSDIR) -d $(BEANCLASSDIR) $<
+	$(JAVAC_CMD) $(LOCAL_JAVAC_FLAGS) $(DOCLET_JAVAC_FLAGS) -classpath $(BEANCLASSDIR) -d $(BEANCLASSDIR) $<
 	@$(java-vm-cleanup)
 
 #
--- a/jdk/make/launchers/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/launchers/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -66,7 +66,7 @@
 $(call make-launcher, javac, com.sun.tools.javac.Main, , )
 $(call make-launcher, javadoc, com.sun.tools.javadoc.Main, , )
 $(call make-launcher, javah, com.sun.tools.javah.Main, , )
-$(call make-launcher, javap, sun.tools.javap.Main, , )
+$(call make-launcher, javap, com.sun.tools.javap.Main, , )
 $(call make-launcher, jconsole, sun.tools.jconsole.JConsole, \
   -J-Djconsole.showOutputViewer, )
 $(call make-launcher, jdb, com.sun.tools.example.debug.tty.TTY, , )
--- a/jdk/make/sun/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -58,11 +58,12 @@
 else
   RENDER_SUBDIR = dcpr
 endif
+# nio need to be compiled before awt to have all charsets ready
 SUBDIRS = jar security javazic misc net audio $(RENDER_SUBDIR) image \
-	  awt splashscreen $(XAWT_SUBDIR) \
+	  nio awt splashscreen $(XAWT_SUBDIR) \
           $(HEADLESS_SUBDIR) $(DGA_SUBDIR) \
 	  font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \
-	  jawt text nio launcher management $(ORG_SUBDIR) \
+	  jawt text launcher management $(ORG_SUBDIR) \
           native2ascii serialver tools jconsole tracing
 
 all build clean clobber::
--- a/jdk/make/sun/font/FILES_c.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/font/FILES_c.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -24,10 +24,6 @@
 #
 
 FILES_c_shared = \
-        jbidi.c \
-        ubidi.c \
-        ubidiln.c \
-        uchardir.c \
         DrawGlyphList.c \
         sunFont.c
 
--- a/jdk/make/sun/font/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/font/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -145,7 +145,6 @@
 # Add to the ambient vpath to pick up files in subdirectories
 #
 vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)
-vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/bidi
 vpath %.cpp   $(SHARE_SRC)/native/$(PKGDIR)/layout
 vpath %.cpp   $(SHARE_SRC)/native/$(PKGDIR)
 
@@ -187,7 +186,6 @@
 
 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR) \
             -I$(SHARE_SRC)/native/$(PKGDIR)/layout \
-            -I$(SHARE_SRC)/native/$(PKGDIR)/bidi \
 	    -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
 	    -I$(PLATFORM_SRC)/native/sun/awt \
 	    -I$(SHARE_SRC)/native/sun/awt/debug \
--- a/jdk/make/sun/font/mapfile-vers	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/font/mapfile-vers	Mon Jun 29 12:00:41 2009 -0400
@@ -31,8 +31,6 @@
                 newLayoutTableCache; 
                 freeLayoutTableCache;
                 isNullScalerContext;
-		Java_java_text_Bidi_nativeBidiChars;
-		Java_java_text_Bidi_nativeGetDirectionCode;
                 Java_sun_font_NullFontScaler_getNullScalerContext;
                 Java_sun_font_NullFontScaler_getGlyphImage;
                 Java_sun_font_FontManager_getPlatformFontVar;
--- a/jdk/make/sun/font/mapfile-vers.openjdk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/font/mapfile-vers.openjdk	Mon Jun 29 12:00:41 2009 -0400
@@ -33,8 +33,6 @@
                 newLayoutTableCache; 
                 freeLayoutTableCache;
                 isNullScalerContext;
-		Java_java_text_Bidi_nativeBidiChars;
-		Java_java_text_Bidi_nativeGetDirectionCode;
                 Java_sun_font_NullFontScaler_getNullScalerContext;
                 Java_sun_font_NullFontScaler_getGlyphImage;
                 Java_sun_font_FontManager_getPlatformFontVar;
--- a/jdk/make/sun/nio/FILES_java.gmk	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/nio/FILES_java.gmk	Mon Jun 29 12:00:41 2009 -0400
@@ -304,7 +304,7 @@
 	sun/io/CharToByteMacUkraine.java \
 	sun/io/CharToByteTIS620.java
 
-FILES_gen_extsbcs = \
+FILES_gen_extcs = \
 	sun/nio/cs/ext/IBM037.java \
 	sun/nio/cs/ext/IBM1006.java \
 	sun/nio/cs/ext/IBM1025.java \
@@ -374,6 +374,21 @@
 	sun/nio/cs/ext/MacThai.java \
 	sun/nio/cs/ext/MacTurkish.java \
 	sun/nio/cs/ext/MacUkraine.java \
-	sun/nio/cs/ext/TIS_620.java
+	sun/nio/cs/ext/TIS_620.java \
+        sun/nio/cs/ext/EUC_TWMapping.java \
+	sun/nio/cs/ext/IBM1381.java \
+	sun/nio/cs/ext/IBM1383.java \
+	sun/nio/cs/ext/IBM930.java \
+	sun/nio/cs/ext/IBM933.java \
+	sun/nio/cs/ext/IBM935.java \
+	sun/nio/cs/ext/IBM937.java \
+	sun/nio/cs/ext/IBM939.java \
+	sun/nio/cs/ext/IBM942.java \
+	sun/nio/cs/ext/IBM943.java \
+	sun/nio/cs/ext/IBM948.java \
+	sun/nio/cs/ext/IBM949.java \
+	sun/nio/cs/ext/IBM950.java \
+	sun/nio/cs/ext/IBM970.java
 
-FILES_java = $(FILES_src) $(FILES_gen_extsbcs)
\ No newline at end of file
+FILES_java = $(FILES_src) $(FILES_gen_extcs)
+
--- a/jdk/make/sun/nio/Makefile	Mon Jun 22 09:14:27 2009 -0400
+++ b/jdk/make/sun/nio/Makefile	Mon Jun 29 12:00:41 2009 -0400
@@ -60,15 +60,15 @@
 # this define is for the rule:
 CHARSETS_JAR = $(LIBDIR)/charsets.jar
 
-# extsbcs
-FILES_genout_extsbcs = $(FILES_gen_extsbcs:%.java=$(GENSRCDIR)/%.java)
+# extcs
+FILES_genout_extcs = $(FILES_gen_extcs:%.java=$(GENSRCDIR)/%.java)
 
 #
 # Rules
 #
 include $(BUILDDIR)/common/Classes.gmk
 
-build: $(FILES_genout_extsbcs) $(CHARSETS_JAR)
+build: $(FILES_genout_extcs) $(CHARSETS_JAR)
 
 #
 # Extra rules to build character converters.
@@ -77,6 +77,7 @@
 SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION)
 
 GENCSDATASRC = $(BUILDDIR)/tools/CharsetMapping
+GENCSSRCDIR = $(BUILDDIR)/tools/src/build/tools/charsetmapping
 GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext
 
 FILES_MAP = $(GENCSDATASRC)/sjis0213.map
@@ -86,16 +87,18 @@
 $(FILES_DAT): $(FILES_MAP)
 	@$(prep-target)
 	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) \
-		$(FILES_MAP) $(FILES_DAT)
+		$(FILES_MAP) $(FILES_DAT) sjis0213
 
 
-$(FILES_genout_extsbcs): $(GENCSDATASRC)/SingleByte-X.java $(GENCSDATASRC)/extsbcs
+$(FILES_genout_extcs): $(GENCSDATASRC)/SingleByte-X.java  $(GENCSDATASRC)/DoubleByte-X.java \
+		$(GENCSDATASRC)/extsbcs $(GENCSDATASRC)/dbcs
 	@$(prep-target)
 	$(RM) -r $(GENCSEXT)
 	$(MKDIR) -p $(GENCSEXT)
-	$(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \
-		$(GENCSDATASRC) $(GENCSEXT) extsbcs
-
+	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE)	$(GENCSDATASRC) $(GENCSEXT) extsbcs
+	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \
+		$(GENCSSRCDIR)/GenerateEUC_TW.java
+	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) dbcs
 
 $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \
   $(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/DoubleByte-X.java	Mon Jun 29 12:00:41 2009 -0400
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package $PACKAGE$;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.util.Arrays;
+import sun.nio.cs.HistoricallyNamedCharset;
+import sun.nio.cs.ext.DoubleByte;
+
+public class $NAME_CLZ$ extends Charset
+                        $IMPLEMENTS$
+{
+    public $NAME_CLZ$() {
+        super("$NAME_CS$", $NAME_ALIASES$);
+    }
+
+    $HISTORICALNAME$
+
+    public boolean contains(Charset cs) {
+        $CONTAINS$
+    }
+
+    public CharsetDecoder newDecoder() {
+        initb2c();
+        return new  DoubleByte.Decoder$DECTYPE$(this, b2c, b2cSB, $B2MIN$, $B2MAX$);
+    }
+
+    public CharsetEncoder newEncoder() {
+        initc2b();
+        return new DoubleByte.Encoder$ENCTYPE$(this, c2b, c2bIndex);
+    }
+
+    $B2C$
+    static char[][] b2c = new char[b2cStr.length][];
+    static char[] b2cSB;
+    private static volatile boolean b2cInitialized = false;
+
+    static void initb2c() {
+        if (b2cInitialized)
+            return;
+        synchronized (b2c) {
+            if (b2cInitialized)
+                return;
+            for (int i = 0; i < b2cStr.length; i++) {
+                if (b2cStr[i] == null)
+                    b2c[i] = DoubleByte.B2C_UNMAPPABLE;
+                else
+                    b2c[i] = b2cStr[i].toCharArray();
+            }
+            b2cSB = b2cSBStr.toCharArray();
+            b2cInitialized = true;
+        }
+    }
+
+    static char[] c2b = new char[$C2BLENGTH$];
+    static char[] c2bIndex = new char[0x100];
+    private static volatile boolean c2bInitialized = false;
+
+    static void initc2b() {
+        if (c2bInitialized)
+            return;
+        synchronized (c2b) {
+            if (c2bInitialized)
+                return;
+            $NONROUNDTRIP_B2C$
+            $NONROUNDTRIP_C2B$
+            DoubleByte.Encoder.initC2B(b2cStr, b2cSBStr, b2cNR, c2bNR,
+                                       $B2MIN$, $B2MAX$,
+                                       c2b, c2bIndex);
+            c2bInitialized = true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/IBM1381.c2b	Mon Jun 29 12:00:41 2009 -0400
@@ -0,0 +1,4 @@
+# See 4201529/4296969
+A1AA	2014
+A1A4	00B7
+A1A4	7AC2
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/IBM1381.map	Mon Jun 29 12:00:41 2009 -0400
@@ -0,0 +1,9500 @@
+#
+#    souce: Cp1381.b2c
+#
+#    The map at cdctables.zip/Package2.zip/IBM-1364.zip has different entries
+#
+#       1A         001C
+#       1C         007F
+#       7F         001A
+#       8CEE       FFE5
+#       8CF4       4EDD
+#
+00	0000
+01	0001
+02	0002
+03	0003
+04	0004
+05	0005
+06	0006
+07	0007
+08	0008
+09	0009
+0A	000A
+0B	000B
+0C	000C
+0D	000D
+0E	000E
+0F	000F
+10	0010
+11	0011
+12	0012
+13	0013
+14	0014
+15	0015
+16	0016
+17	0017
+18	0018
+19	0019
+1A	001A
+1B	001B
+1C	001C
+1D	001D
+1E	001E
+1F	001F
+20	0020
+21	0021
+22	0022
+23	0023
+24	0024
+25	0025
+26	0026
+27	0027
+28	0028
+29	0029
+2A	002A
+2B	002B
+2C	002C
+2D	002D
+2E	002E
+2F	002F
+30	0030
+31	0031
+32	0032
+33	0033
+34	0034
+35	0035
+36	0036
+37	0037
+38	0038
+39	0039
+3A	003A
+3B	003B
+3C	003C
+3D	003D
+3E	003E
+3F	003F
+40	0040
+41	0041
+42	0042
+43	0043
+44	0044
+45	0045
+46	0046
+47	0047
+48	0048
+49	0049
+4A	004A
+4B	004B
+4C	004C
+4D	004D
+4E	004E
+4F	004F
+50	0050
+51	0051
+52	0052
+53	0053
+54	0054
+55	0055
+56	0056
+57	0057
+58	0058
+59	0059
+5A	005A
+5B	005B
+5C	005C
+5D	005D
+5E	005E
+5F	005F
+60	0060
+61	0061
+62	0062
+63	0063
+64	0064
+65	0065
+66	0066
+67	0067
+68	0068
+69	0069
+6A	006A
+6B	006B
+6C	006C
+6D	006D
+6E	006E
+6F	006F
+70	0070
+71	0071
+72	0072
+73	0073
+74	0074
+75	0075
+76	0076
+77	0077
+78	0078
+79	0079
+7A	007A
+7B	007B
+7C	007C
+7D	007D
+7E	007E
+7F	007F
+80	00A3
+81	00AC
+82	00A5
+83	203E
+84	00A6
+8CE0	2170
+8CE1	2171
+8CE2	2172
+8CE3	2173
+8CE4	2174
+8CE5	2175
+8CE6	2176
+8CE7	2177
+8CE8	2178
+8CE9	2179
+8CEA	FFE2
+8CEB	FFE4
+8CEC	FF07
+8CED	30FC
+8CEE	F83D
+8CEF	309B
+8CF0	309C
+8CF1	30FD
+8CF2	30FE
+8CF3	2010
+8CF4	F83E
+8CF5	3006
+8CF6	3007
+8CF7	3012
+8CF8	3231
+8CF9	2121
+8CFA	2025
+8CFB	309D
+8CFC	309E
+8CFD	25BD
+8CFE	25BC
+8DA1	E000
+8DA2	E001
+8DA3	E002
+8DA4	E003
+8DA5	E004
+8DA6	E005
+8DA7	E006
+8DA8	E007
+8DA9	E008
+8DAA	E009
+8DAB	E00A
+8DAC	E00B
+8DAD	E00C
+8DAE	E00D
+8DAF	E00E
+8DB0	E00F
+8DB1	E010
+8DB2	E011
+8DB3	E012
+8DB4	E013
+8DB5	E014
+8DB6	E015
+8DB7	E016
+8DB8	E017
+8DB9	E018
+8DBA	E019
+8DBB	E01A
+8DBC	E01B
+8DBD	E01C
+8DBE	E01D
+8DBF	E01E
+8DC0	E01F
+8DC1	E020
+8DC2	E021
+8DC3	E022
+8DC4	E023
+8DC5	E024
+8DC6	E025
+8DC7	E026
+8DC8	E027
+8DC9	E028
+8DCA	E029
+8DCB	E02A
+8DCC	E02B
+8DCD	E02C
+8DCE	E02D
+8DCF	E02E
+8DD0	E02F
+8DD1	E030
+8DD2	E031
+8DD3	E032
+8DD4	E033
+8DD5	E034
+8DD6	E035
+8DD7	E036
+8DD8	E037
+8DD9	E038
+8DDA	E039
+8DDB	E03A
+8DDC	E03B
+8DDD	E03C
+8DDE	E03D
+8DDF	E03E
+8DE0	E03F
+8DE1	E040
+8DE2	E041
+8DE3	E042
+8DE4	E043
+8DE5	E044
+8DE6	E045
+8DE7	E046
+8DE8	E047
+8DE9	E048
+8DEA	E049
+8DEB	E04A
+8DEC	E04B
+8DED	E04C
+8DEE	E04D
+8DEF	E04E
+8DF0	E04F
+8DF1	E050
+8DF2	E051
+8DF3	E052
+8DF4	E053
+8DF5	E054
+8DF6	E055
+8DF7	E056
+8DF8	E057
+8DF9	E058
+8DFA	E059
+8DFB	E05A
+8DFC	E05B
+8DFD	E05C
+8DFE	E05D
+8EA1	E05E
+8EA2	E05F
+8EA3	E060
+8EA4	E061
+8EA5	E062
+8EA6	E063
+8EA7	E064
+8EA8	E065
+8EA9	E066
+8EAA	E067
+8EAB	E068
+8EAC	E069
+8EAD	E06A
+8EAE	E06B
+8EAF	E06C
+8EB0	E06D
+8EB1	E06E
+8EB2	E06F
+8EB3	E070
+8EB4	E071
+8EB5	E072
+8EB6	E073
+8EB7	E074
+8EB8	E075
+8EB9	E076
+8EBA	E077
+8EBB	E078
+8EBC	E079
+8EBD	E07A
+8EBE	E07B
+8EBF	E07C
+8EC0	E07D
+8EC1	E07E
+8EC2	E07F
+8EC3	E080
+8EC4	E081
+8EC5	E082
+8EC6	E083
+8EC7	E084
+8EC8	E085
+8EC9	E086
+8ECA	E087
+8ECB	E088
+8ECC	E089
+8ECD	E08A
+8ECE	E08B
+8ECF	E08C
+8ED0	E08D
+8ED1	E08E
+8ED2	E08F
+8ED3	E090
+8ED4	E091
+8ED5	E092
+8ED6	E093
+8ED7	E094
+8ED8	E095
+8ED9	E096
+8EDA	E097
+8EDB	E098
+8EDC	E099
+8EDD	E09A
+8EDE	E09B
+8EDF	E09C
+8EE0	E09D
+8EE1	E09E
+8EE2	E09F
+8EE3	E0A0
+8EE4	E0A1
+8EE5	E0A2
+8EE6	E0A3
+8EE7	E0A4
+8EE8	E0A5
+8EE9	E0A6
+8EEA	E0A7
+8EEB	E0A8
+8EEC	E0A9
+8EED	E0AA
+8EEE	E0AB
+8EEF	E0AC
+8EF0	E0AD
+8EF1	E0AE
+8EF2	E0AF
+8EF3	E0B0
+8EF4	E0B1
+8EF5	E0B2
+8EF6	E0B3
+8EF7	E0B4
+8EF8	E0B5
+8EF9	E0B6
+8EFA	E0B7
+8EFB	E0B8
+8EFC	E0B9
+8EFD	E0BA
+8EFE	E0BB
+8FA1	E0BC
+8FA2	E0BD
+8FA3	E0BE
+8FA4	E0BF
+8FA5	E0C0
+8FA6	E0C1
+8FA7	E0C2
+8FA8	E0C3
+8FA9	E0C4
+8FAA	E0C5
+8FAB	E0C6
+8FAC	E0C7
+8FAD	E0C8
+8FAE	E0C9
+8FAF	E0CA
+8FB0	E0CB
+8FB1	E0CC
+8FB2	E0CD
+8FB3	E0CE
+8FB4	E0CF
+8FB5	E0D0
+8FB6	E0D1
+8FB7	E0D2
+8FB8	E0D3
+8FB9	E0D4
+8FBA	E0D5
+8FBB	E0D6
+8FBC	E0D7
+8FBD	E0D8
+8FBE	E0D9
+8FBF	E0DA
+8FC0	E0DB
+8FC1	E0DC
+8FC2	E0DD
+8FC3	E0DE
+8FC4	E0DF
+8FC5	E0E0
+8FC6	E0E1
+8FC7	E0E2
+8FC8	E0E3
+8FC9	E0E4
+8FCA	E0E5
+8FCB	E0E6
+8FCC	E0E7
+8FCD	E0E8
+8FCE	E0E9
+8FCF	E0EA
+8FD0	E0EB
+8FD1	E0EC
+8FD2	E0ED
+8FD3	E0EE
+8FD4	E0EF
+8FD5	E0F0
+8FD6	E0F1
+8FD7	E0F2
+8FD8	E0F3
+8FD9	E0F4
+8FDA	E0F5
+8FDB	E0F6
+8FDC	E0F7
+8FDD	E0F8
+8FDE	E0F9
+8FDF	E0FA
+8FE0	E0FB
+8FE1	E0FC
+8FE2	E0FD
+8FE3	E0FE
+8FE4	E0FF
+8FE5	E100
+8FE6	E101
+8FE7	E102
+8FE8	E103
+8FE9	E104
+8FEA	E105
+8FEB	E106
+8FEC	E107
+8FED	E108
+8FEE	E109
+8FEF	E10A
+8FF0	E10B
+8FF1	E10C
+8FF2	E10D
+8FF3	E10E
+8FF4	E10F
+8FF5	E110
+8FF6	E111
+8FF7	E112
+8FF8	E113
+8FF9	E114
+8FFA	E115
+8FFB	E116
+8FFC	E117
+8FFD	E118
+8FFE	E119
+90A1	E11A
+90A2	E11B
+90A3	E11C
+90A4	E11D
+90A5	E11E
+90A6	E11F
+90A7	E120
+90A8	E121
+90A9	E122
+90AA	E123
+90AB	E124
+90AC	E125
+90AD	E126
+90AE	E127
+90AF	E128
+90B0	E129
+90B1	E12A
+90B2	E12B
+90B3	E12C
+90B4	E12D
+90B5	E12E
+90B6	E12F
+90B7	E130
+90B8	E131
+90B9	E132
+90BA	E133
+90BB	E134
+90BC	E135
+90BD	E136
+90BE	E137
+90BF	E138
+90C0	E139
+90C1	E13A
+90C2	E13B
+90C3	E13C
+90C4	E13D
+90C5	E13E
+90C6	E13F
+90C7	E140
+90C8	E141
+90C9	E142
+90CA	E143
+90CB	E144
+90CC	E145
+90CD	E146
+90CE	E147
+90CF	E148
+90D0	E149
+90D1	E14A
+90D2	E14B
+90D3	E14C
+90D4	E14D
+90D5	E14E
+90D6	E14F
+90D7	E150
+90D8	E151
+90D9	E152
+90DA	E153
+90DB	E154
+90DC	E155
+90DD	E156
+90DE	E157
+90DF	E158
+90E0	E159
+90E1	E15A
+90E2	E15B
+90E3	E15C
+90E4	E15D
+90E5	E15E
+90E6	E15F
+90E7	E160
+90E8	E161
+90E9	E162
+90EA	E163
+90EB	E164
+90EC	E165
+90ED	E166
+90EE	E167
+90EF	E168
+90F0	E169
+90F1	E16A
+90F2	E16B
+90F3	E16C
+90F4	E16D
+90F5	E16E
+90F6	E16F
+90F7	E170
+90F8	E171
+90F9	E172
+90FA	E173
+90FB	E174
+90FC	E175
+90FD	E176
+90FE	E177
+91A1	E178
+91A2	E179
+91A3	E17A
+91A4	E17B
+91A5	E17C
+91A6	E17D
+91A7	E17E
+91A8	E17F
+91A9	E180
+91AA	E181
+91AB	E182
+91AC	E183
+91AD	E184
+91AE	E185
+91AF	E186
+91B0	E187
+91B1	E188
+91B2	E189
+91B3	E18A
+91B4	E18B
+91B5	E18C
+91B6	E18D
+91B7	E18E
+91B8	E18F
+91B9	E190
+91BA	E191
+91BB	E192
+91BC	E193
+91BD	E194
+91BE	E195
+91BF	E196
+91C0	E197
+91C1	E198
+91C2	E199
+91C3	E19A
+91C4	E19B
+91C5	E19C
+91C6	E19D
+91C7	E19E
+91C8	E19F
+91C9	E1A0
+91CA	E1A1
+91CB	E1A2
+91CC	E1A3
+91CD	E1A4
+91CE	E1A5
+91CF	E1A6
+91D0	E1A7
+91D1	E1A8
+91D2	E1A9
+91D3	E1AA
+91D4	E1AB
+91D5	E1AC
+91D6	E1AD
+91D7	E1AE
+91D8	E1AF
+91D9	E1B0
+91DA	E1B1
+91DB	E1B2
+91DC	E1B3
+91DD	E1B4
+91DE	E1B5
+91DF	E1B6
+91E0	E1B7
+91E1	E1B8
+91E2	E1B9
+91E3	E1BA
+91E4	E1BB
+91E5	E1BC
+91E6	E1BD
+91E7	E1BE
+91E8	E1BF
+91E9	E1C0
+91EA	E1C1
+91EB	E1C2
+91EC	E1C3
+91ED	E1C4
+91EE	E1C5
+91EF	E1C6
+91F0	E1C7
+91F1	E1C8
+91F2	E1C9
+91F3	E1CA
+91F4	E1CB
+91F5	E1CC
+91F6	E1CD
+91F7	E1CE
+91F8	E1CF
+91F9	E1D0
+91FA	E1D1
+91FB	E1D2
+91FC	E1D3
+91FD	E1D4
+91FE	E1D5
+92A1	E1D6
+92A2	E1D7
+92A3	E1D8
+92A4	E1D9
+92A5	E1DA
+92A6	E1DB
+92A7	E1DC
+92A8	E1DD
+92A9	E1DE
+92AA	E1DF
+92AB	E1E0
+92AC	E1E1
+92AD	E1E2
+92AE	E1E3
+92AF	E1E4
+92B0	E1E5
+92B1	E1E6
+92B2	E1E7
+92B3	E1E8
+92B4	E1E9
+92B5	E1EA
+92B6	E1EB
+92B7	E1EC
+92B8	E1ED
+92B9	E1EE
+92BA	E1EF
+92BB	E1F0
+92BC	E1F1
+92BD	E1F2
+92BE	E1F3
+92BF	E1F4
+92C0	E1F5
+92C1	E1F6
+92C2	E1F7
+92C3	E1F8
+92C4	E1F9
+92C5	E1FA
+92C6	E1FB
+92C7	E1FC
+92C8	E1FD
+92C9	E1FE
+92CA	E1FF
+92CB	E200
+92CC	E201
+92CD	E202
+92CE	E203
+92CF	E204
+92D0	E205
+92D1	E206
+92D2	E207
+92D3	E208
+92D4	E209
+92D5	E20A
+92D6	E20B
+92D7	E20C
+92D8	E20D
+92D9	E20E
+92DA	E20F
+92DB	E210
+92DC	E211
+92DD	E212
+92DE	E213
+92DF	E214
+92E0	E215
+92E1	E216
+92E2	E217
+92E3	E218
+92E4	E219
+92E5	E21A
+92E6	E21B
+92E7	E21C
+92E8	E21D
+92E9	E21E
+92EA	E21F
+92EB	E220
+92EC	E221
+92ED	E222
+92EE	E223
+92EF	E224
+92F0	E225
+92F1	E226
+92F2	E227
+92F3	E228
+92F4	E229
+92F5	E22A
+92F6	E22B
+92F7	E22C
+92F8	E22D
+92F9	E22E
+92FA	E22F
+92FB	E230
+92FC	E231
+92FD	E232
+92FE	E233
+93A1	E234
+93A2	E235
+93A3	E236
+93A4	E237
+93A5	E238
+93A6	E239
+93A7	E23A
+93A8	E23B
+93A9	E23C
+93AA	E23D
+93AB	E23E
+93AC	E23F
+93AD	E240
+93AE	E241
+93AF	E242
+93B0	E243
+93B1	E244
+93B2	E245
+93B3	E246
+93B4	E247
+93B5	E248
+93B6	E249
+93B7	E24A
+93B8	E24B
+93B9	E24C
+93BA	E24D
+93BB	E24E
+93BC	E24F
+93BD	E250
+93BE	E251
+93BF	E252
+93C0	E253
+93C1	E254
+93C2	E255
+93C3	E256
+93C4	E257
+93C5	E258
+93C6	E259
+93C7	E25A
+93C8	E25B
+93C9	E25C
+93CA	E25D
+93CB	E25E
+93CC	E25F
+93CD	E260
+93CE	E261
+93CF	E262
+93D0	E263
+93D1	E264
+93D2	E265
+93D3	E266
+93D4	E267
+93D5	E268
+93D6	E269
+93D7	E26A
+93D8	E26B
+93D9	E26C
+93DA	E26D
+93DB	E26E
+93DC	E26F
+93DD	E270
+93DE	E271
+93DF	E272
+93E0	E273
+93E1	E274
+93E2	E275
+93E3	E276
+93E4	E277
+93E5	E278
+93E6	E279
+93E7	E27A
+93E8	E27B
+93E9	E27C
+93EA	E27D
+93EB	E27E
+93EC	E27F
+93ED	E280
+93EE	E281
+93EF	E282
+93F0	E283
+93F1	E284
+93F2	E285
+93F3	E286
+93F4	E287
+93F5	E288
+93F6	E289
+93F7	E28A
+93F8	E28B
+93F9	E28C
+93FA	E28D
+93FB	E28E
+93FC	E28F
+93FD	E290
+93FE	E291
+94A1	E292
+94A2	E293
+94A3	E294
+94A4	E295
+94A5	E296
+94A6	E297
+94A7	E298
+94A8	E299
+94A9	E29A
+94AA	E29B
+94AB	E29C
+94AC	E29D
+94AD	E29E
+94AE	E29F
+94AF	E2A0
+94B0	E2A1
+94B1	E2A2
+94B2	E2A3
+94B3	E2A4
+94B4	E2A5
+94B5	E2A6
+94B6	E2A7
+94B7	E2A8
+94B8	E2A9
+94B9	E2AA
+94BA	E2AB
+94BB	E2AC
+94BC	E2AD
+94BD	E2AE
+94BE	E2AF
+94BF	E2B0
+94C0	E2B1
+94C1	E2B2
+94C2	E2B3
+94C3	E2B4
+94C4	E2B5
+94C5	E2B6
+94C6	E2B7
+94C7	E2B8
+94C8	E2B9
+94C9	E2BA
+94CA	E2BB
+94CB	E2BC
+94CC	E2BD
+94CD	E2BE
+94CE	E2BF
+94CF	E2C0
+94D0	E2C1
+94D1	E2C2
+94D2	E2C3
+94D3	E2C4
+94D4	E2C5
+94D5	E2C6
+94D6	E2C7
+94D7	E2C8
+94D8	E2C9
+94D9	E2CA
+94DA	E2CB
+94DB	E2CC
+94DC	E2CD
+94DD	E2CE
+94DE	E2CF
+94DF	E2D0
+94E0	E2D1
+94E1	E2D2
+94E2	E2D3
+94E3	E2D4
+94E4	E2D5
+94E5	E2D6
+94E6	E2D7
+94E7	E2D8
+94E8	E2D9
+94E9	E2DA
+94EA	E2DB
+94EB	E2DC
+94EC	E2DD
+94ED	E2DE
+94EE	E2DF
+94EF	E2E0
+94F0	E2E1
+94F1	E2E2
+94F2	E2E3
+94F3	E2E4
+94F4	E2E5
+94F5	E2E6
+94F6	E2E7
+94F7	E2E8
+94F8	E2E9
+94F9	E2EA
+94FA	E2EB
+94FB	E2EC
+94FC	E2ED
+94FD	E2EE
+94FE	E2EF
+95A1	E2F0
+95A2	E2F1
+95A3	E2F2
+95A4	E2F3
+95A5	E2F4
+95A6	E2F5
+95A7	E2F6
+95A8	E2F7
+95A9	E2F8
+95AA	E2F9
+95AB	E2FA
+95AC	E2FB
+95AD	E2FC
+95AE	E2FD
+95AF	E2FE
+95B0	E2FF
+95B1	E300
+95B2	E301
+95B3	E302
+95B4	E303
+95B5	E304
+95B6	E305
+95B7	E306
+95B8	E307
+95B9	E308
+95BA	E309
+95BB	E30A
+95BC	E30B
+95BD	E30C
+95BE	E30D
+95BF	E30E
+95C0	E30F
+95C1	E310
+95C2	E311
+95C3	E312
+95C4	E313
+95C5	E314
+95C6	E315
+95C7	E316
+95C8	E317
+95C9	E318
+95CA	E319
+95CB	E31A
+95CC	E31B
+95CD	E31C
+95CE	E31D
+95CF	E31E
+95D0	E31F
+95D1	E320
+95D2	E321
+95D3	E322
+95D4	E323
+95D5	E324
+95D6	E325
+95D7	E326
+95D8	E327
+95D9	E328
+95DA	E329
+95DB	E32A
+95DC	E32B
+95DD	E32C
+95DE	E32D
+95DF	E32E
+95E0	E32F
+95E1	E330
+95E2	E331
+95E3	E332
+95E4	E333
+95E5	E334
+95E6	E335
+95E7	E336
+95E8	E337
+95E9	E338
+95EA	E339
+95EB	E33A
+95EC	E33B
+95ED	E33C
+95EE	E33D
+95EF	E33E
+95F0	E33F
+95F1	E340
+95F2	E341
+95F3	E342
+95F4	E343
+95F5	E344
+95F6	E345
+95F7	E346
+95F8	E347
+95F9	E348
+95FA	E349
+95FB	E34A
+95FC	E34B
+95FD	E34C
+95FE	E34D
+96A1	E34E
+96A2	E34F
+96A3	E350
+96A4	E351
+96A5	E352
+96A6	E353
+96A7	E354
+96A8	E355
+96A9	E356
+96AA	E357
+96AB	E358
+96AC	E359
+96AD	E35A
+96AE	E35B
+96AF	E35C
+96B0	E35D
+96B1	E35E
+96B2	E35F
+96B3	E360
+96B4	E361
+96B5	E362
+96B6	E363
+96B7	E364
+96B8	E365
+96B9	E366
+96BA	E367
+96BB	E368
+96BC	E369
+96BD	E36A
+96BE	E36B
+96BF	E36C
+96C0	E36D
+96C1	E36E
+96C2	E36F
+96C3	E370
+96C4	E371
+96C5	E372
+96C6	E373
+96C7	E374
+96C8	E375
+96C9	E376
+96CA	E377
+96CB	E378
+96CC	E379
+96CD	E37A
+96CE	E37B
+96CF	E37C
+96D0	E37D
+96D1	E37E
+96D2	E37F
+96D3	E380
+96D4	E381
+96D5	E382
+96D6	E383
+96D7	E384
+96D8	E385
+96D9	E386
+96DA	E387
+96DB	E388
+96DC	E389
+96DD	E38A
+96DE	E38B
+96DF	E38C
+96E0	E38D
+96E1	E38E
+96E2	E38F
+96E3	E390
+96E4	E391
+96E5	E392
+96E6	E393
+96E7	E394
+96E8	E395
+96E9	E396
+96EA	E397
+96EB	E398
+96EC	E399
+96ED	E39A
+96EE	E39B
+96EF	E39C
+96F0	E39D
+96F1	E39E
+96F2	E39F
+96F3	E3A0
+96F4	E3A1
+96F5	E3A2
+96F6	E3A3
+96F7	E3A4
+96F8	E3A5
+96F9	E3A6
+96FA	E3A7
+96FB	E3A8
+96FC	E3A9
+96FD	E3AA
+96FE	E3AB
+97A1	E3AC
+97A2	E3AD
+97A3	E3AE
+97A4	E3AF
+97A5	E3B0
+97A6	E3B1
+97A7	E3B2
+97A8	E3B3
+97A9	E3B4
+97AA	E3B5
+97AB	E3B6
+97AC	E3B7
+97AD	E3B8
+97AE	E3B9
+97AF	E3BA
+97B0	E3BB
+97B1	E3BC
+97B2	E3BD
+97B3	E3BE
+97B4	E3BF
+97B5	E3C0
+97B6	E3C1
+97B7	E3C2
+97B8	E3C3
+97B9	E3C4
+97BA	E3C5
+97BB	E3C6
+97BC	E3C7
+97BD	E3C8
+97BE	E3C9
+97BF	E3CA
+97C0	E3CB
+97C1	E3CC
+97C2	E3CD
+97C3	E3CE
+97C4	E3CF
+97C5	E3D0
+97C6	E3D1
+97C7	E3D2
+97C8	E3D3
+97C9	E3D4
+97CA	E3D5
+97CB	E3D6
+97CC	E3D7
+97CD	E3D8
+97CE	E3D9
+97CF	E3DA
+97D0	E3DB
+97D1	E3DC
+97D2	E3DD
+97D3	E3DE
+97D4	E3DF
+97D5	E3E0
+97D6	E3E1
+97D7	E3E2
+97D8	E3E3
+97D9	E3E4
+97DA	E3E5
+97DB	E3E6
+97DC	E3E7
+97DD	E3E8
+97DE	E3E9
+97DF	E3EA
+97E0	E3EB
+97E1	E3EC
+97E2	E3ED
+97E3	E3EE
+97E4	E3EF
+97E5	E3F0
+97E6	E3F1
+97E7	E3F2
+97E8	E3F3
+97E9	E3F4
+97EA	E3F5
+97EB	E3F6
+97EC	E3F7
+97ED	E3F8
+97EE	E3F9
+97EF	E3FA
+97F0	E3FB
+97F1	E3FC
+97F2	E3FD
+97F3	E3FE
+97F4	E3FF
+97F5	E400
+97F6	E401
+97F7	E402
+97F8	E403
+97F9	E404
+97FA	E405
+97FB	E406
+97FC	E407
+97FD	E408
+97FE	E409
+98A1	E40A
+98A2	E40B
+98A3	E40C
+98A4	E40D
+98A5	E40E
+98A6	E40F
+98A7	E410
+98A8	E411
+98A9	E412
+98AA	E413
+98AB	E414
+98AC	E415
+98AD	E416
+98AE	E417
+98AF	E418
+98B0	E419
+98B1	E41A
+98B2	E41B
+98B3	E41C
+98B4	E41D
+98B5	E41E
+98B6	E41F
+98B7	E420
+98B8	E421
+98B9	E422
+98BA	E423
+98BB	E424
+98BC	E425
+98BD	E426
+98BE	E427
+98BF	E428
+98C0	E429
+98C1	E42A
+98C2	E42B
+98C3	E42C
+98C4	E42D
+98C5	E42E
+98C6	E42F
+98C7	E430
+98C8	E431
+98C9	E432
+98CA	E433
+98CB	E434
+98CC	E435
+98CD	E436
+98CE	E437
+98CF	E438
+98D0	E439
+98D1	E43A
+98D2	E43B
+98D3	E43C
+98D4	E43D
+98D5	E43E
+98D6	E43F
+98D7	E440
+98D8	E441
+98D9	E442
+98DA	E443
+98DB	E444
+98DC	E445
+98DD	E446
+98DE	E447
+98DF	E448
+98E0	E449
+98E1	E44A
+98E2	E44B
+98E3	E44C
+98E4	E44D
+98E5	E44E
+98E6	E44F
+98E7	E450
+98E8	E451
+98E9	E452
+98EA	E453
+98EB	E454
+98EC	E455
+98ED	E456
+98EE	E457
+98EF	E458
+98F0	E459
+98F1	E45A
+98F2	E45B
+98F3	E45C
+98F4	E45D
+98F5	E45E
+98F6	E45F
+98F7	E460
+98F8	E461
+98F9	E462
+98FA	E463
+98FB	E464
+98FC	E465
+98FD	E466
+98FE	E467
+99A1	E468
+99A2	E469
+99A3	E46A
+99A4	E46B
+99A5	E46C
+99A6	E46D
+99A7	E46E
+99A8	E46F
+99A9	E470
+99AA	E471
+99AB	E472
+99AC	E473
+99AD	E474
+99AE	E475
+99AF	E476
+99B0	E477
+99B1	E478
+99B2	E479
+99B3	E47A
+99B4	E47B
+99B5	E47C
+99B6	E47D
+99B7	E47E
+99B8	E47F
+99B9	E480
+99BA	E481
+99BB	E482
+99BC	E483
+99BD	E484
+99BE	E485
+99BF	E486
+99C0	E487
+99C1	E488
+99C2	E489
+99C3	E48A
+99C4	E48B
+99C5	E48C
+99C6	E48D
+99C7	E48E
+99C8	E48F
+99C9	E490
+99CA	E491
+99CB	E492
+99CC	E493
+99CD	E494
+99CE	E495
+99CF	E496
+99D0	E497
+99D1	E498
+99D2	E499
+99D3	E49A
+99D4	E49B
+99D5	E49C
+99D6	E49D
+99D7	E49E
+99D8	E49F
+99D9	E4A0
+99DA	E4A1
+99DB	E4A2
+99DC	E4A3
+99DD	E4A4
+99DE	E4A5
+99DF	E4A6
+99E0	E4A7
+99E1	E4A8
+99E2	E4A9
+99E3	E4AA
+99E4	E4AB
+99E5	E4AC
+99E6	E4AD
+99E7	E4AE
+99E8	E4AF
+99E9	E4B0
+99EA	E4B1
+99EB	E4B2
+99EC	E4B3
+99ED	E4B4
+99EE	E4B5
+99EF	E4B6
+99F0	E4B7
+99F1	E4B8
+99F2	E4B9
+99F3	E4BA
+99F4	E4BB
+99F5	E4BC
+99F6	E4BD
+99F7	E4BE
+99F8	E4BF
+99F9	E4C0
+99FA	E4C1
+99FB	E4C2
+99FC	E4C3
+99FD	E4C4
+99FE	E4C5
+9AA1	E4C6
+9AA2	E4C7
+9AA3	E4C8
+9AA4	E4C9
+9AA5	E4CA
+9AA6	E4CB
+9AA7	E4CC
+9AA8	E4CD
+9AA9	E4CE
+9AAA	E4CF
+9AAB	E4D0
+9AAC	E4D1
+9AAD	E4D2
+9AAE	E4D3
+9AAF	E4D4
+9AB0	E4D5
+9AB1	E4D6
+9AB2	E4D7
+9AB3	E4D8
+9AB4	E4D9
+9AB5	E4DA
+9AB6	E4DB
+9AB7	E4DC
+9AB8	E4DD
+9AB9	E4DE
+9ABA	E4DF
+9ABB	E4E0
+9ABC	E4E1
+9ABD	E4E2
+9ABE	E4E3
+9ABF	E4E4
+9AC0	E4E5
+9AC1	E4E6
+9AC2	E4E7
+9AC3	E4E8
+9AC4	E4E9
+9AC5	E4EA
+9AC6	E4EB
+9AC7	E4EC
+9AC8	E4ED
+9AC9	E4EE
+9ACA	E4EF
+9ACB	E4F0
+9ACC	E4F1
+9ACD	E4F2
+9ACE	E4F3
+9ACF	E4F4
+9AD0	E4F5
+9AD1	E4F6
+9AD2	E4F7
+9AD3	E4F8
+9AD4	E4F9
+9AD5	E4FA
+9AD6	E4FB
+9AD7	E4FC
+9AD8	E4FD
+9AD9	E4FE
+9ADA	E4FF
+9ADB	E500
+9ADC	E501
+9ADD	E502
+9ADE	E503
+9ADF	E504
+9AE0	E505
+9AE1	E506
+9AE2	E507
+9AE3	E508
+9AE4	E509
+9AE5	E50A
+9AE6	E50B
+9AE7	E50C
+9AE8	E50D
+9AE9	E50E
+9AEA	E50F
+9AEB	E510
+9AEC	E511
+9AED	E512
+9AEE	E513
+9AEF	E514
+9AF0	E515
+9AF1	E516
+9AF2	E517
+9AF3	E518
+9AF4	E519
+9AF5	E51A
+9AF6	E51B
+9AF7	E51C
+9AF8	E51D
+9AF9	E51E
+9AFA	E51F
+9AFB	E520
+9AFC	E521
+9AFD	E522
+9AFE	E523
+9BA1	E524
+9BA2	E525
+9BA3	E526
+9BA4	E527
+9BA5	E528
+9BA6	E529
+9BA7	E52A
+9BA8	E52B
+9BA9	E52C
+9BAA	E52D
+9BAB	E52E
+9BAC	E52F
+9BAD	E530
+9BAE	E531
+9BAF	E532
+9BB0	E533
+9BB1	E534
+9BB2	E535
+9BB3	E536
+9BB4	E537
+9BB5	E538
+9BB6	E539
+9BB7	E53A
+9BB8	E53B
+9BB9	E53C
+9BBA	E53D
+9BBB	E53E
+9BBC	E53F
+9BBD	E540
+9BBE	E541
+9BBF	E542
+9BC0	E543
+9BC1	E544
+9BC2	E545
+9BC3	E546
+9BC4	E547
+9BC5	E548
+9BC6	E549
+9BC7	E54A
+9BC8	E54B
+9BC9	E54C
+9BCA	E54D
+9BCB	E54E
+9BCC	E54F
+9BCD	E550
+9BCE	E551
+9BCF	E552
+9BD0	E553
+9BD1	E554
+9BD2	E555
+9BD3	E556
+9BD4	E557
+9BD5	E558
+9BD6	E559
+9BD7	E55A
+9BD8	E55B
+9BD9	E55C
+9BDA	E55D
+9BDB	E55E
+9BDC	E55F
+9BDD	E560
+9BDE	E561
+9BDF	E562
+9BE0	E563
+9BE1	E564
+9BE2	E565
+9BE3	E566
+9BE4	E567
+9BE5	E568
+9BE6	E569
+9BE7	E56A
+9BE8	E56B
+9BE9	E56C
+9BEA	E56D
+9BEB	E56E
+9BEC	E56F
+9BED	E570
+9BEE	E571
+9BEF	E572
+9BF0	E573
+9BF1	E574
+9BF2	E575
+9BF3	E576
+9BF4	E577
+9BF5	E578
+9BF6	E579
+9BF7	E57A
+9BF8	E57B
+9BF9	E57C
+9BFA	E57D
+9BFB	E57E
+9BFC	E57F
+9BFD	E580
+9BFE	E581
+9CA1	E582
+9CA2	E583
+9CA3	E584
+9CA4	E585
+9CA5	E586
+9CA6	E587
+9CA7	E588
+9CA8	E589
+9CA9	E58A
+9CAA	E58B
+9CAB	E58C
+9CAC	E58D
+9CAD	E58E
+9CAE	E58F
+9CAF	E590
+9CB0	E591
+9CB1	E592
+9CB2	E593
+9CB3	E594
+9CB4	E595
+9CB5	E596
+9CB6	E597
+9CB7	E598
+9CB8	E599
+9CB9	E59A
+9CBA	E59B
+9CBB	E59C
+9CBC	E59D
+9CBD	E59E
+9CBE	E59F
+9CBF	E5A0
+9CC0	E5A1
+9CC1	E5A2
+9CC2	E5A3
+9CC3	E5A4
+9CC4	E5A5
+9CC5	E5A6
+9CC6	E5A7
+9CC7	E5A8
+9CC8	E5A9
+9CC9	E5AA
+9CCA	E5AB
+9CCB	E5AC
+9CCC	E5AD
+9CCD	E5AE
+9CCE	E5AF
+9CCF	E5B0
+9CD0	E5B1
+9CD1	E5B2
+9CD2	E5B3
+9CD3	E5B4
+9CD4	E5B5
+9CD5	E5B6
+9CD6	E5B7
+9CD7	E5B8
+9CD8	E5B9
+9CD9	E5BA
+9CDA	E5BB
+9CDB	E5BC
+9CDC	E5BD
+9CDD	E5BE
+9CDE	E5BF
+9CDF	E5C0
+9CE0	E5C1
+9CE1	E5C2
+9CE2	E5C3
+9CE3	E5C4
+9CE4	E5C5
+9CE5	E5C6
+9CE6	E5C7
+9CE7	E5C8
+9CE8	E5C9
+9CE9	E5CA
+9CEA	E5CB
+9CEB	E5CC
+9CEC	E5CD
+9CED	E5CE
+9CEE	E5CF
+9CEF	E5D0
+9CF0	E5D1
+9CF1	E5D2
+9CF2	E5D3
+9CF3	E5D4
+9CF4	E5D5
+9CF5	E5D6
+9CF6	E5D7
+9CF7	E5D8
+9CF8	E5D9
+9CF9	E5DA
+9CFA	E5DB
+9CFB	E5DC
+9CFC	E5DD
+9CFD	E5DE
+9CFE	E5DF
+9DA1	E5E0
+9DA2	E5E1
+9DA3	E5E2
+9DA4	E5E3
+9DA5	E5E4
+9DA6	E5E5
+9DA7	E5E6
+9DA8	E5E7
+9DA9	E5E8
+9DAA	E5E9
+9DAB	E5EA
+9DAC	E5EB
+9DAD	E5EC
+9DAE	E5ED
+9DAF	E5EE
+9DB0	E5EF
+9DB1	E5F0
+9DB2	E5F1
+9DB3	E5F2
+9DB4	E5F3
+9DB5	E5F4
+9DB6	E5F5
+9DB7	E5F6
+9DB8	E5F7
+9DB9	E5F8
+9DBA	E5F9
+9DBB	E5FA
+9DBC	E5FB
+9DBD	E5FC
+9DBE	E5FD
+9DBF	E5FE
+9DC0	E5FF
+9DC1	E600
+9DC2	E601
+9DC3	E602
+9DC4	E603
+9DC5	E604
+9DC6	E605
+9DC7	E606
+9DC8	E607
+9DC9	E608
+9DCA	E609
+9DCB	E60A
+9DCC	E60B
+9DCD	E60C
+9DCE	E60D
+9DCF	E60E
+9DD0	E60F
+9DD1	E610
+9DD2	E611
+9DD3	E612
+9DD4	E613
+9DD5	E614
+9DD6	E615
+9DD7	E616
+9DD8	E617
+9DD9	E618
+9DDA	E619
+9DDB	E61A
+9DDC	E61B
+9DDD	E61C
+9DDE	E61D
+9DDF	E61E
+9DE0	E61F
+9DE1	E620
+9DE2	E621
+9DE3	E622
+9DE4	E623
+9DE5	E624
+9DE6	E625
+9DE7	E626
+9DE8	E627
+9DE9	E628
+9DEA	E629
+9DEB	E62A
+9DEC	E62B
+9DED	E62C
+9DEE	E62D
+9DEF	E62E
+9DF0	E62F
+9DF1	E630
+9DF2	E631
+9DF3	E632
+9DF4	E633
+9DF5	E634
+9DF6	E635
+9DF7	E636
+9DF8	E637
+9DF9	E638
+9DFA	E639
+9DFB	E63A
+9DFC	E63B
+9DFD	E63C
+9DFE	E63D
+9EA1	E63E
+9EA2	E63F
+9EA3	E640
+9EA4	E641
+9EA5	E642
+9EA6	E643
+9EA7	E644
+9EA8	E645
+9EA9	E646
+9EAA	E647
+9EAB	E648
+9EAC	E649
+9EAD	E64A
+9EAE	E64B
+9EAF	E64C
+9EB0	E64D
+9EB1	E64E
+9EB2	E64F
+9EB3	E650
+9EB4	E651
+9EB5	E652
+9EB6	E653
+9EB7	E654
+9EB8	E655
+9EB9	E656
+9EBA	E657
+9EBB	E658
+9EBC	E659
+9EBD	E65A
+9EBE	E65B
+9EBF	E65C
+9EC0	E65D
+9EC1	E65E
+9EC2	E65F
+9EC3	E660
+9EC4	E661
+9EC5	E662
+9EC6	E663
+9EC7	E664
+9EC8	E665
+9EC9	E666
+9ECA	E667
+9ECB	E668
+9ECC	E669
+9ECD	E66A
+9ECE	E66B
+9ECF	E66C
+9ED0	E66D
+9ED1	E66E
+9ED2	E66F
+9ED3	E670
+9ED4	E671
+9ED5	E672
+9ED6	E673
+9ED7	E674
+9ED8	E675
+9ED9	E676
+9EDA	E677
+9EDB	E678
+9EDC	E679
+9EDD	E67A
+9EDE	E67B
+9EDF	E67C
+9EE0	E67D
+9EE1	E67E
+9EE2	E67F
+9EE3	E680
+9EE4	E681
+9EE5	E682
+9EE6	E683
+9EE7	E684
+9EE8	E685
+9EE9	E686
+9EEA	E687
+9EEB	E688
+9EEC	E689
+9EED	E68A
+9EEE	E68B
+9EEF	E68C
+9EF0	E68D
+9EF1	E68E
+9EF2	E68F
+9EF3	E690
+9EF4	E691
+9EF5	E692
+9EF6	E693
+9EF7	E694
+9EF8	E695
+9EF9	E696
+9EFA	E697
+9EFB	E698
+9EFC	E699
+9EFD	E69A
+9EFE	E69B
+9FA1	E69C
+9FA2	E69D
+9FA3	E69E
+9FA4	E69F
+9FA5	E6A0
+9FA6	E6A1
+9FA7	E6A2
+9FA8	E6A3
+9FA9	E6A4
+9FAA	E6A5
+9FAB	E6A6
+9FAC	E6A7
+9FAD	E6A8
+9FAE	E6A9
+9FAF	E6AA
+9FB0	E6AB
+9FB1	E6AC
+9FB2	E6AD
+9FB3	E6AE
+9FB4	E6AF
+9FB5	E6B0
+9FB6	E6B1
+9FB7	E6B2
+9FB8	E6B3
+9FB9	E6B4
+9FBA	E6B5
+9FBB	E6B6
+9FBC	E6B7
+9FBD	E6B8
+9FBE	E6B9
+9FBF	E6BA
+9FC0	E6BB
+9FC1	E6BC
+9FC2	E6BD
+9FC3	E6BE
+9FC4	E6BF
+9FC5	E6C0
+9FC6	E6C1
+9FC7	E6C2
+9FC8	E6C3
+9FC9	E6C4
+9FCA	E6C5
+9FCB	E6C6
+9FCC	E6C7
+9FCD	E6C8
+9FCE	E6C9
+9FCF	E6CA
+9FD0	E6CB
+9FD1	E6CC
+9FD2	E6CD
+9FD3	E6CE
+9FD4	E6CF
+9FD5	E6D0
+9FD6	E6D1
+9FD7	E6D2
+9FD8	E6D3
+9FD9	E6D4
+9FDA	E6D5
+9FDB	E6D6
+9FDC	E6D7
+9FDD	E6D8
+9FDE	E6D9
+9FDF	E6DA
+9FE0	E6DB
+9FE1	E6DC
+9FE2	E6DD
+9FE3	E6DE
+9FE4	E6DF
+9FE5	E6E0
+9FE6	E6E1
+9FE7	E6E2
+9FE8	E6E3
+9FE9	E6E4
+9FEA	E6E5
+9FEB	E6E6
+9FEC	E6E7
+9FED	E6E8
+9FEE	E6E9
+9FEF	E6EA
+9FF0	E6EB
+9FF1	E6EC
+9FF2	E6ED
+9FF3	E6EE
+9FF4	E6EF
+9FF5	E6F0
+9FF6	E6F1
+9FF7	E6F2
+9FF8	E6F3
+9FF9	E6F4
+9FFA	E6F5
+9FFB	E6F6
+9FFC	E6F7
+9FFD	E6F8
+9FFE	E6F9
+A0A1	E6FA
+A0A2	E6FB
+A0A3	E6FC
+A0A4	E6FD
+A0A5	E6FE
+A0A6	E6FF
+A0A7	E700
+A0A8	E701
+A0A9	E702
+A0AA	E703
+A0AB	E704
+A0AC	E705
+A0AD	E706
+A0AE	E707
+A0AF	E708
+A0B0	E709
+A0B1	E70A
+A0B2	E70B
+A0B3	E70C
+A0B4	E70D
+A0B5	E70E
+A0B6	E70F
+A0B7	E710
+A0B8	E711
+A0B9	E712
+A0BA	E713
+A0BB	E714
+A0BC	E715
+A0BD	E716
+A0BE	E717
+A0BF	E718
+A0C0	E719
+A0C1	E71A
+A0C2	E71B
+A0C3	E71C
+A0C4	E71D
+A0C5	E71E
+A0C6	E71F
+A0C7	E720
+A0C8	E721
+A0C9	E722
+A0CA	E723
+A0CB	E724
+A0CC	E725
+A0CD	E726
+A0CE	E727
+A0CF	E728
+A0D0	E729
+A0D1	E72A
+A0D2	E72B
+A0D3	E72C
+A0D4	E72D
+A0D5	E72E
+A0D6	E72F
+A0D7	E730
+A0D8	E731
+A0D9	E732
+A0DA	E733
+A0DB	E734
+A0DC	E735
+A0DD	E736
+A0DE	E737
+A0DF	E738
+A0E0	E739
+A0E1	E73A
+A0E2	E73B
+A0E3	E73C
+A0E4	E73D
+A0E5	E73E
+A0E6	E73F
+A0E7	E740
+A0E8	E741
+A0E9	E742
+A0EA	E743
+A0EB	E744
+A0EC	E745
+A0ED	E746
+A0EE	E747
+A0EF	E748
+A0F0	E749
+A0F1	E74A
+A0F2	E74B
+A0F3	E74C
+A0F4	E74D
+A0F5	E74E
+A0F6	E74F
+A0F7	E750
+A0F8	E751
+A0F9	E752
+A0FA	E753
+A0FB	E754
+A0FC	E755
+A0FD	E756
+A0FE	E757
+A1A1	3000
+A1A2	3001
+A1A3	3002
+A1A4	30FB
+A1A5	02C9
+A1A6	02C7
+A1A7	00A8
+A1A8	3003
+A1A9	3005
+A1AA	2015
+A1AB	FF5E
+A1AC	2016
+A1AD	2026
+A1AE	2018
+A1AF	2019
+A1B0	201C
+A1B1	201D
+A1B2	3014
+A1B3	3015
+A1B4	3008
+A1B5	3009
+A1B6	300A
+A1B7	300B
+A1B8	300C
+A1B9	300D
+A1BA	300E
+A1BB	300F
+A1BC	3016
+A1BD	3017
+A1BE	3010
+A1BF	3011
+A1C0	00B1
+A1C1	00D7
+A1C2	00F7
+A1C3	2236
+A1C4	2227
+A1C5	2228
+A1C6	2211
+A1C7	220F
+A1C8	222A
+A1C9	2229
+A1CA	2208
+A1CB	2237
+A1CC	221A
+A1CD	22A5
+A1CE	2225
+A1CF	2220
+A1D0	2312
+A1D1	2299
+A1D2	222B
+A1D3	222E
+A1D4	2261
+A1D5	224C
+A1D6	2248
+A1D7	223D
+A1D8	221D
+A1D9	2260
+A1DA	226E
+A1DB	226F
+A1DC	2264
+A1DD	2265
+A1DE	221E
+A1DF	2235
+A1E0	2234
+A1E1	2642
+A1E2	2640
+A1E3	00B0
+A1E4	2032
+A1E5	2033
+A1E6	2103
+A1E7	FF04
+A1E8	00A4
+A1E9	FFE0
+A1EA	FFE1
+A1EB	2030
+A1EC	00A7
+A1ED	2116
+A1EE	2606
+A1EF	2605
+A1F0	25CB
+A1F1	25CF
+A1F2	25CE
+A1F3	25C7
+A1F4	25C6
+A1F5	25A1
+A1F6	25A0
+A1F7	25B3
+A1F8	25B2
+A1F9	203B
+A1FA	2192
+A1FB	2190
+A1FC	2191
+A1FD	2193
+A1FE	3013
+A2B1	2488
+A2B2	2489
+A2B3	248A
+A2B4	248B
+A2B5	248C
+A2B6	248D
+A2B7	248E
+A2B8	248F
+A2B9	2490
+A2BA	2491
+A2BB	2492
+A2BC	2493
+A2BD	2494
+A2BE	2495
+A2BF	2496
+A2C0	2497
+A2C1	2498
+A2C2	2499
+A2C3	249A
+A2C4	249B
+A2C5	2474
+A2C6	2475
+A2C7	2476
+A2C8	2477
+A2C9	2478
+A2CA	2479
+A2CB	247A
+A2CC	247B
+A2CD	247C
+A2CE	247D
+A2CF	247E
+A2D0	247F
+A2D1	2480
+A2D2	2481
+A2D3	2482
+A2D4	2483
+A2D5	2484
+A2D6	2485
+A2D7	2486
+A2D8	2487
+A2D9	2460
+A2DA	2461
+A2DB	2462
+A2DC	2463
+A2DD	2464
+A2DE	2465
+A2DF	2466
+A2E0	2467
+A2E1	2468
+A2E2	2469
+A2E5	3220
+A2E6	3221
+A2E7	3222
+A2E8	3223
+A2E9	3224
+A2EA	3225
+A2EB	3226
+A2EC	3227
+A2ED	3228
+A2EE	3229
+A2F1	2160
+A2F2	2161
+A2F3	2162
+A2F4	2163
+A2F5	2164
+A2F6	2165
+A2F7	2166
+A2F8	2167
+A2F9	2168
+A2FA	2169
+A2FB	216A
+A2FC	216B
+A3A1	FF01
+A3A2	FF02
+A3A3	FF03
+A3A4	FFE5
+A3A5	FF05
+A3A6	FF06
+A3A7	00B4
+A3A8	FF08
+A3A9	FF09
+A3AA	FF0A
+A3AB	FF0B
+A3AC	FF0C
+A3AD	FF0D
+A3AE	FF0E
+A3AF	FF0F
+A3B0	FF10
+A3B1	FF11
+A3B2	FF12
+A3B3	FF13
+A3B4	FF14
+A3B5	FF15
+A3B6	FF16
+A3B7	FF17
+A3B8	FF18
+A3B9	FF19
+A3BA	FF1A
+A3BB	FF1B
+A3BC	FF1C
+A3BD	FF1D
+A3BE	FF1E
+A3BF	FF1F
+A3C0	FF20
+A3C1	FF21
+A3C2	FF22
+A3C3	FF23
+A3C4	FF24
+A3C5	FF25
+A3C6	FF26
+A3C7	FF27
+A3C8	FF28
+A3C9	FF29
+A3CA	FF2A
+A3CB	FF2B
+A3CC	FF2C
+A3CD	FF2D
+A3CE	FF2E
+A3CF	FF2F
+A3D0	FF30
+A3D1	FF31
+A3D2	FF32
+A3D3	FF33
+A3D4	FF34
+A3D5	FF35
+A3D6	FF36
+A3D7	FF37
+A3D8	FF38
+A3D9	FF39
+A3DA	FF3A
+A3DB	FF3B
+A3DC	FF3C
+A3DD	FF3D
+A3DE	FF3E
+A3DF	FF3F
+A3E0	FF40
+A3E1	FF41
+A3E2	FF42
+A3E3	FF43
+A3E4	FF44
+A3E5	FF45
+A3E6	FF46
+A3E7	FF47
+A3E8	FF48
+A3E9	FF49
+A3EA	FF4A
+A3EB	FF4B
+A3EC	FF4C
+A3ED	FF4D
+A3EE	FF4E
+A3EF	FF4F
+A3F0	FF50
+A3F1	FF51
+A3F2	FF52
+A3F3	FF53
+A3F4	FF54
+A3F5	FF55
+A3F6	FF56
+A3F7	FF57
+A3F8	FF58
+A3F9	FF59
+A3FA	FF5A
+A3FB	FF5B
+A3FC	FF5C
+A3FD	FF5D
+A3FE	FFE3
+A4A1	3041
+A4A2	3042
+A4A3	3043
+A4A4	3044
+A4A5	3045
+A4A6	3046
+A4A7	3047
+A4A8	3048
+A4A9	3049
+A4AA	304A
+A4AB	304B
+A4AC	304C
+A4AD	304D
+A4AE	304E
+A4AF	304F
+A4B0	3050
+A4B1	3051
+A4B2	3052
+A4B3	3053
+A4B4	3054
+A4B5	3055
+A4B6	3056
+A4B7	3057
+A4B8	3058
+A4B9	3059
+A4BA	305A
+A4BB	305B
+A4BC	305C
+A4BD	305D
+A4BE	305E
+A4BF	305F
+A4C0	3060
+A4C1	3061
+A4C2	3062
+A4C3	3063
+A4C4	3064
+A4C5	3065
+A4C6	3066
+A4C7	3067
+A4C8	3068
+A4C9	3069
+A4CA	306A
+A4CB	306B
+A4CC	306C
+A4CD	306D
+A4CE	306E
+A4CF	306F
+A4D0	3070
+A4D1	3071
+A4D2	3072
+A4D3	3073
+A4D4	3074
+A4D5	3075
+A4D6	3076
+A4D7	3077
+A4D8	3078
+A4D9	3079
+A4DA	307A
+A4DB	307B
+A4DC	307C
+A4DD	307D
+A4DE	307E
+A4DF	307F
+A4E0	3080
+A4E1	3081
+A4E2	3082
+A4E3	3083
+A4E4	3084
+A4E5	3085
+A4E6	3086
+A4E7	3087
+A4E8	3088
+A4E9	3089
+A4EA	308A
+A4EB	308B
+A4EC	308C
+A4ED	308D
+A4EE	308E
+A4EF	308F
+A4F0	3090
+A4F1	3091
+A4F2	3092
+A4F3	3093
+A5A1	30A1
+A5A2	30A2
+A5A3	30A3
+A5A4	30A4
+A5A5	30A5
+A5A6	30A6
+A5A7	30A7
+A5A8	30A8
+A5A9	30A9
+A5AA	30AA
+A5AB	30AB
+A5AC	30AC
+A5AD	30AD
+A5AE	30AE
+A5AF	30AF
+A5B0	30B0
+A5B1	30B1
+A5B2	30B2
+A5B3	30B3
+A5B4	30B4
+A5B5	30B5
+A5B6	30B6
+A5B7	30B7
+A5B8	30B8
+A5B9	30B9
+A5BA	30BA
+A5BB	30BB
+A5BC	30BC
+A5BD	30BD
+A5BE	30BE
+A5BF	30BF
+A5C0	30C0
+A5C1	30C1
+A5C2	30C2
+A5C3	30C3
+A5C4	30C4
+A5C5	30C5
+A5C6	30C6
+A5C7	30C7
+A5C8	30C8
+A5C9	30C9
+A5CA	30CA
+A5CB	30CB
+A5CC	30CC
+A5CD	30CD
+A5CE	30CE
+A5CF	30CF
+A5D0	30D0
+A5D1	30D1
+A5D2	30D2
+A5D3	30D3
+A5D4	30D4
+A5D5	30D5
+A5D6	30D6
+A5D7	30D7
+A5D8	30D8
+A5D9	30D9
+A5DA	30DA
+A5DB	30DB
+A5DC	30DC
+A5DD	30DD
+A5DE	30DE
+A5DF	30DF
+A5E0	30E0
+A5E1	30E1
+A5E2	30E2
+A5E3	30E3
+A5E4	30E4
+A5E5	30E5
+A5E6	30E6
+A5E7	30E7
+A5E8	30E8
+A5E9	30E9
+A5EA	30EA
+A5EB	30EB
+A5EC	30EC
+A5ED	30ED
+A5EE	30EE
+A5EF	30EF
+A5F0	30F0
+A5F1	30F1
+A5F2	30F2
+A5F3	30F3
+A5F4	30F4
+A5F5	30F5
+A5F6	30F6
+A6A1	0391
+A6A2	0392
+A6A3	0393
+A6A4	0394
+A6A5	0395
+A6A6	0396
+A6A7	0397
+A6A8	0398
+A6A9	0399
+A6AA	039A
+A6AB	039B
+A6AC	039C
+A6AD	039D
+A6AE	039E
+A6AF	039F
+A6B0	03A0
+A6B1	03A1
+A6B2	03A3
+A6B3	03A4
+A6B4	03A5
+A6B5	03A6
+A6B6	03A7
+A6B7	03A8
+A6B8	03A9
+A6C1	03B1
+A6C2	03B2
+A6C3	03B3
+A6C4	03B4
+A6C5	03B5
+A6C6	03B6
+A6C7	03B7
+A6C8	03B8
+A6C9	03B9
+A6CA	03BA
+A6CB	03BB
+A6CC	03BC
+A6CD	03BD
+A6CE	03BE
+A6CF	03BF
+A6D0	03C0
+A6D1	03C1
+A6D2	03C3
+A6D3	03C4
+A6D4	03C5
+A6D5	03C6
+A6D6	03C7
+A6D7	03C8
+A6D8	03C9
+A7A1	0410
+A7A2	0411
+A7A3	0412
+A7A4	0413
+A7A5	0414
+A7A6	0415
+A7A7	0401
+A7A8	0416
+A7A9	0417
+A7AA	0418
+A7AB	0419
+A7AC	041A
+A7AD	041B
+A7AE	041C
+A7AF	041D
+A7B0	041E
+A7B1	041F
+A7B2	0420
+A7B3	0421
+A7B4	0422
+A7B5	0423
+A7B6	0424
+A7B7	0425
+A7B8	0426
+A7B9	0427
+A7BA	0428
+A7BB	0429
+A7BC	042A
+A7BD	042B
+A7BE	042C
+A7BF	042D
+A7C0	042E
+A7C1	042F
+A7D1	0430
+A7D2	0431
+A7D3	0432
+A7D4	0433
+A7D5	0434
+A7D6	0435
+A7D7	0451
+A7D8	0436
+A7D9	0437
+A7DA	0438
+A7DB	0439
+A7DC	043A
+A7DD	043B
+A7DE	043C
+A7DF	043D
+A7E0	043E
+A7E1	043F
+A7E2	0440
+A7E3	0441
+A7E4	0442
+A7E5	0443
+A7E6	0444
+A7E7	0445
+A7E8	0446
+A7E9	0447
+A7EA	0448
+A7EB	0449
+A7EC	044A
+A7ED	044B
+A7EE	044C
+A7EF	044D
+A7F0	044E
+A7F1	044F
+A8A1	0101
+A8A2	00E1
+A8A3	01CE
+A8A4	00E0
+A8A5	0113
+A8A6	00E9
+A8A7	011B
+A8A8	00E8
+A8A9	012B
+A8AA	00ED
+A8AB	01D0
+A8AC	00EC
+A8AD	014D
+A8AE	00F3
+A8AF	01D2
+A8B0	00F2
+A8B1	016B
+A8B2	00FA
+A8B3	01D4
+A8B4	00F9
+A8B5	01D6
+A8B6	01D8
+A8B7	01DA
+A8B8	01DC
+A8B9	00FC
+A8BA	00EA
+A8C5	3105
+A8C6	3106
+A8C7	3107
+A8C8	3108
+A8C9	3109
+A8CA	310A
+A8CB	310B
+A8CC	310C
+A8CD	310D
+A8CE	310E
+A8CF	310F
+A8D0	3110
+A8D1	3111
+A8D2	3112
+A8D3	3113
+A8D4	3114
+A8D5	3115
+A8D6	3116
+A8D7	3117
+A8D8	3118
+A8D9	3119
+A8DA	311A
+A8DB	311B
+A8DC	311C
+A8DD	311D
+A8DE	311E
+A8DF	311F
+A8E0	3120
+A8E1	3121
+A8E2	3122
+A8E3	3123
+A8E4	3124
+A8E5	3125
+A8E6	3126
+A8E7	3127
+A8E8	3128
+A8E9	3129
+A9A4	2500
+A9A5	2501
+A9A6	2502
+A9A7	2503
+A9A8	2504
+A9A9	2505
+A9AA	2506
+A9AB	2507
+A9AC	2508
+A9AD	2509
+A9AE	250A
+A9AF	250B
+A9B0	250C
+A9B1	250D
+A9B2	250E
+A9B3	250F
+A9B4	2510
+A9B5	2511
+A9B6	2512
+A9B7	2513
+A9B8	2514
+A9B9	2515
+A9BA	2516
+A9BB	2517
+A9BC	2518
+A9BD	2519
+A9BE	251A
+A9BF	251B
+A9C0	251C
+A9C1	251D
+A9C2	251E
+A9C3	251F
+A9C4	2520
+A9C5	2521
+A9C6	2522
+A9C7	2523
+A9C8	2524
+A9C9	2525
+A9CA	2526
+A9CB	2527
+A9CC	2528
+A9CD	2529
+A9CE	252A
+A9CF	252B
+A9D0	252C
+A9D1	252D
+A9D2	252E
+A9D3	252F
+A9D4	2530
+A9D5	2531
+A9D6	2532
+A9D7	2533
+A9D8	2534
+A9D9	2535
+A9DA	2536
+A9DB	2537
+A9DC	2538
+A9DD	2539
+A9DE	253A
+A9DF	253B
+A9E0	253C
+A9E1	253D
+A9E2	253E
+A9E3	253F
+A9E4	2540
+A9E5	2541
+A9E6	2542
+A9E7	2543
+A9E8	2544
+A9E9	2545
+A9EA	2546
+A9EB	2547
+A9EC	2548
+A9ED	2549
+A9EE	254A
+A9EF	254B
+B0A1	554A
+B0A2	963F
+B0A3	57C3
+B0A4	6328
+B0A5	54CE
+B0A6	5509
+B0A7	54C0
+B0A8	7691
+B0A9	764C
+B0AA	853C
+B0AB	77EE
+B0AC	827E
+B0AD	788D
+B0AE	7231
+B0AF	9698
+B0B0	978D
+B0B1	6C28
+B0B2	5B89
+B0B3	4FFA
+B0B4	6309
+B0B5	6697
+B0B6	5CB8
+B0B7	80FA
+B0B8	6848
+B0B9	80AE
+B0BA	6602
+B0BB	76CE
+B0BC	51F9
+B0BD	6556
+B0BE	71AC
+B0BF	7FF1
+B0C0	8884
+B0C1	50B2
+B0C2	5965
+B0C3	61CA
+B0C4	6FB3
+B0C5	82AD
+B0C6	634C
+B0C7	6252
+B0C8	53ED
+B0C9	5427
+B0CA	7B06
+B0CB	516B
+B0CC	75A4
+B0CD	5DF4
+B0CE	62D4
+B0CF	8DCB
+B0D0	9776
+B0D1	628A
+B0D2	8019
+B0D3	575D
+B0D4	9738
+B0D5	7F62
+B0D6	7238
+B0D7	767D
+B0D8	67CF
+B0D9	767E
+B0DA	6446
+B0DB	4F70
+B0DC	8D25
+B0DD	62DC
+B0DE	7A17
+B0DF	6591
+B0E0	73ED
+B0E1	642C
+B0E2	6273
+B0E3	822C
+B0E4	9881
+B0E5	677F
+B0E6	7248
+B0E7	626E
+B0E8	62CC
+B0E9	4F34
+B0EA	74E3
+B0EB	534A
+B0EC	529E
+B0ED	7ECA
+B0EE	90A6
+B0EF	5E2E
+B0F0	6886
+B0F1	699C
+B0F2	8180
+B0F3	7ED1
+B0F4	68D2
+B0F5	78C5
+B0F6	868C
+B0F7	9551
+B0F8	508D
+B0F9	8C24
+B0FA	82DE
+B0FB	80DE
+B0FC	5305
+B0FD	8912
+B0FE	5265
+B1A1	8584
+B1A2	96F9
+B1A3	4FDD
+B1A4	5821
+B1A5	9971
+B1A6	5B9D
+B1A7	62B1
+B1A8	62A5
+B1A9	66B4
+B1AA	8C79
+B1AB	9C8D
+B1AC	7206
+B1AD	676F
+B1AE	7891
+B1AF	60B2
+B1B0	5351
+B1B1	5317
+B1B2	8F88
+B1B3	80CC
+B1B4	8D1D
+B1B5	94A1
+B1B6	500D
+B1B7	72C8
+B1B8	5907
+B1B9	60EB
+B1BA	7119
+B1BB	88AB
+B1BC	5954
+B1BD	82EF
+B1BE	672C
+B1BF	7B28
+B1C0	5D29
+B1C1	7EF7
+B1C2	752D
+B1C3	6CF5
+B1C4	8E66
+B1C5	8FF8
+B1C6	903C
+B1C7	9F3B
+B1C8	6BD4
+B1C9	9119
+B1CA	7B14
+B1CB	5F7C
+B1CC	78A7
+B1CD	84D6
+B1CE	853D
+B1CF	6BD5
+B1D0	6BD9
+B1D1	6BD6
+B1D2	5E01
+B1D3	5E87
+B1D4	75F9
+B1D5	95ED
+B1D6	655D
+B1D7	5F0A
+B1D8	5FC5
+B1D9	8F9F
+B1DA	58C1
+B1DB	81C2
+B1DC	907F
+B1DD	965B
+B1DE	97AD
+B1DF	8FB9
+B1E0	7F16
+B1E1	8D2C
+B1E2	6241
+B1E3	4FBF
+B1E4	53D8
+B1E5	535E
+B1E6	8FA8
+B1E7	8FA9
+B1E8	8FAB
+B1E9	904D
+B1EA	6807
+B1EB	5F6A
+B1EC	8198
+B1ED	8868
+B1EE	9CD6
+B1EF	618B
+B1F0	522B
+B1F1	762A
+B1F2	5F6C
+B1F3	658C
+B1F4	6FD2
+B1F5	6EE8
+B1F6	5BBE
+B1F7	6448
+B1F8	5175
+B1F9	51B0
+B1FA	67C4
+B1FB	4E19
+B1FC	79C9
+B1FD	997C
+B1FE	70B3
+B2A1	75C5
+B2A2	5E76
+B2A3	73BB
+B2A4	83E0
+B2A5	64AD
+B2A6	62E8
+B2A7	94B5
+B2A8	6CE2
+B2A9	535A
+B2AA	52C3
+B2AB	640F
+B2AC	94C2
+B2AD	7B94
+B2AE	4F2F
+B2AF	5E1B
+B2B0	8236
+B2B1	8116
+B2B2	818A
+B2B3	6E24
+B2B4	6CCA
+B2B5	9A73
+B2B6	6355
+B2B7	535C
+B2B8	54FA
+B2B9	8865
+B2BA	57E0
+B2BB	4E0D
+B2BC	5E03
+B2BD	6B65
+B2BE	7C3F
+B2BF	90E8
+B2C0	6016
+B2C1	64E6
+B2C2	731C
+B2C3	88C1
+B2C4	6750
+B2C5	624D
+B2C6	8D22
+B2C7	776C
+B2C8	8E29
+B2C9	91C7
+B2CA	5F69
+B2CB	83DC
+B2CC	8521
+B2CD	9910
+B2CE	53C2
+B2CF	8695
+B2D0	6B8B
+B2D1	60ED
+B2D2	60E8
+B2D3	707F
+B2D4	82CD
+B2D5	8231
+B2D6	4ED3
+B2D7	6CA7
+B2D8	85CF
+B2D9	64CD
+B2DA	7CD9
+B2DB	69FD
+B2DC	66F9
+B2DD	8349
+B2DE	5395
+B2DF	7B56
+B2E0	4FA7
+B2E1	518C
+B2E2	6D4B
+B2E3	5C42
+B2E4	8E6D
+B2E5	63D2
+B2E6	53C9
+B2E7	832C
+B2E8	8336
+B2E9	67E5
+B2EA	78B4
+B2EB	643D
+B2EC	5BDF
+B2ED	5C94
+B2EE	5DEE
+B2EF	8BE7
+B2F0	62C6
+B2F1	67F4
+B2F2	8C7A
+B2F3	6400
+B2F4	63BA
+B2F5	8749
+B2F6	998B
+B2F7	8C17
+B2F8	7F20
+B2F9	94F2
+B2FA	4EA7
+B2FB	9610
+B2FC	98A4
+B2FD	660C
+B2FE	7316
+B3A1	573A
+B3A2	5C1D
+B3A3	5E38
+B3A4	957F
+B3A5	507F
+B3A6	80A0
+B3A7	5382
+B3A8	655E
+B3A9	7545
+B3AA	5531
+B3AB	5021
+B3AC	8D85
+B3AD	6284
+B3AE	949E
+B3AF	671D
+B3B0	5632
+B3B1	6F6E
+B3B2	5DE2
+B3B3	5435
+B3B4	7092
+B3B5	8F66
+B3B6	626F
+B3B7	64A4
+B3B8	63A3
+B3B9	5F7B
+B3BA	6F88
+B3BB	90F4
+B3BC	81E3
+B3BD	8FB0
+B3BE	5C18
+B3BF	6668
+B3C0	5FF1
+B3C1	6C89
+B3C2	9648
+B3C3	8D81
+B3C4	886C
+B3C5	6491
+B3C6	79F0
+B3C7	57CE
+B3C8	6A59
+B3C9	6210
+B3CA	5448
+B3CB	4E58
+B3CC	7A0B
+B3CD	60E9
+B3CE	6F84
+B3CF	8BDA
+B3D0	627F
+B3D1	901E
+B3D2	9A8B
+B3D3	79E4
+B3D4	5403
+B3D5	75F4
+B3D6	6301
+B3D7	5319
+B3D8	6C60
+B3D9	8FDF
+B3DA	5F1B
+B3DB	9A70
+B3DC	803B
+B3DD	9F7F
+B3DE	4F88
+B3DF	5C3A
+B3E0	8D64
+B3E1	7FC5
+B3E2	65A5
+B3E3	70BD
+B3E4	5145
+B3E5	51B2
+B3E6	866B
+B3E7	5D07
+B3E8	5BA0
+B3E9	62BD
+B3EA	916C
+B3EB	7574
+B3EC	8E0C
+B3ED	7A20
+B3EE	6101
+B3EF	7B79
+B3F0	4EC7
+B3F1	7EF8
+B3F2	7785
+B3F3	4E11
+B3F4	81ED
+B3F5	521D
+B3F6	51FA
+B3F7	6A71
+B3F8	53A8
+B3F9	8E87
+B3FA	9504
+B3FB	96CF
+B3FC	6EC1
+B3FD	9664
+B3FE	695A
+B4A1	7840
+B4A2	50A8
+B4A3	77D7
+B4A4	6410
+B4A5	89E6
+B4A6	5904
+B4A7	63E3
+B4A8	5DDD
+B4A9	7A7F
+B4AA	693D
+B4AB	4F20
+B4AC	8239
+B4AD	5598
+B4AE	4E32
+B4AF	75AE
+B4B0	7A97
+B4B1	5E62
+B4B2	5E8A
+B4B3	95EF
+B4B4	521B
+B4B5	5439
+B4B6	708A
+B4B7	6376
+B4B8	9524
+B4B9	5782
+B4BA	6625
+B4BB	693F
+B4BC	9187
+B4BD	5507
+B4BE	6DF3
+B4BF	7EAF
+B4C0	8822
+B4C1	6233
+B4C2	7EF0
+B4C3	75B5
+B4C4	8328
+B4C5	78C1
+B4C6	96CC
+B4C7	8F9E
+B4C8	6148
+B4C9	74F7
+B4CA	8BCD
+B4CB	6B64
+B4CC	523A
+B4CD	8D50
+B4CE	6B21
+B4CF	806A
+B4D0	8471
+B4D1	56F1
+B4D2	5306
+B4D3	4ECE
+B4D4	4E1B
+B4D5	51D1
+B4D6	7C97
+B4D7	918B
+B4D8	7C07
+B4D9	4FC3
+B4DA	8E7F
+B4DB	7BE1
+B4DC	7A9C
+B4DD	6467
+B4DE	5D14
+B4DF	50AC
+B4E0	8106
+B4E1	7601
+B4E2	7CB9
+B4E3	6DEC
+B4E4	7FE0
+B4E5	6751
+B4E6	5B58
+B4E7	5BF8
+B4E8	78CB
+B4E9	64AE
+B4EA	6413
+B4EB	63AA
+B4EC	632B
+B4ED	9519
+B4EE	642D
+B4EF	8FBE
+B4F0	7B54
+B4F1	7629
+B4F2	6253
+B4F3	5927
+B4F4	5446
+B4F5	6B79
+B4F6	50A3
+B4F7	6234
+B4F8	5E26
+B4F9	6B86
+B4FA	4EE3
+B4FB	8D37
+B4FC	888B
+B4FD	5F85
+B4FE	902E
+B5A1	6020
+B5A2	803D
+B5A3	62C5
+B5A4	4E39
+B5A5	5355
+B5A6	90F8
+B5A7	63B8
+B5A8	80C6
+B5A9	65E6
+B5AA	6C2E
+B5AB	4F46
+B5AC	60EE
+B5AD	6DE1
+B5AE	8BDE
+B5AF	5F39
+B5B0	86CB
+B5B1	5F53
+B5B2	6321
+B5B3	515A
+B5B4	8361
+B5B5	6863
+B5B6	5200
+B5B7	6363
+B5B8	8E48
+B5B9	5012
+B5BA	5C9B
+B5BB	7977
+B5BC	5BFC
+B5BD	5230
+B5BE	7A3B
+B5BF	60BC
+B5C0	9053
+B5C1	76D7
+B5C2	5FB7
+B5C3	5F97
+B5C4	7684
+B5C5	8E6C
+B5C6	706F
+B5C7	767B
+B5C8	7B49
+B5C9	77AA
+B5CA	51F3
+B5CB	9093
+B5CC	5824
+B5CD	4F4E
+B5CE	6EF4
+B5CF	8FEA
+B5D0	654C
+B5D1	7B1B
+B5D2	72C4
+B5D3	6DA4
+B5D4	7FDF
+B5D5	5AE1
+B5D6	62B5
+B5D7	5E95
+B5D8	5730
+B5D9	8482
+B5DA	7B2C
+B5DB	5E1D
+B5DC	5F1F
+B5DD	9012
+B5DE	7F14
+B5DF	98A0
+B5E0	6382
+B5E1	6EC7
+B5E2	7898
+B5E3	70B9
+B5E4	5178
+B5E5	975B
+B5E6	57AB
+B5E7	7535
+B5E8	4F43
+B5E9	7538
+B5EA	5E97
+B5EB	60E6
+B5EC	5960
+B5ED	6DC0
+B5EE	6BBF
+B5EF	7889
+B5F0	53FC
+B5F1	96D5
+B5F2	51CB
+B5F3	5201
+B5F4	6389
+B5F5	540A
+B5F6	9493
+B5F7	8C03
+B5F8	8DCC
+B5F9	7239
+B5FA	789F
+B5FB	8776
+B5FC	8FED
+B5FD	8C0D
+B5FE	53E0
+B6A1	4E01
+B6A2	76EF
+B6A3	53EE
+B6A4	9489
+B6A5	9876
+B6A6	9F0E
+B6A7	952D
+B6A8	5B9A
+B6A9	8BA2
+B6AA	4E22
+B6AB	4E1C
+B6AC	51AC
+B6AD	8463
+B6AE	61C2
+B6AF	52A8
+B6B0	680B
+B6B1	4F97
+B6B2	606B
+B6B3	51BB
+B6B4	6D1E
+B6B5	515C
+B6B6	6296
+B6B7	6597
+B6B8	9661
+B6B9	8C46
+B6BA	9017
+B6BB	75D8
+B6BC	90FD
+B6BD	7763
+B6BE	6BD2
+B6BF	728A
+B6C0	72EC
+B6C1	8BFB
+B6C2	5835
+B6C3	7779
+B6C4	8D4C
+B6C5	675C
+B6C6	9540
+B6C7	809A
+B6C8	5EA6
+B6C9	6E21
+B6CA	5992
+B6CB	7AEF
+B6CC	77ED
+B6CD	953B
+B6CE	6BB5
+B6CF	65AD
+B6D0	7F0E
+B6D1	5806
+B6D2	5151
+B6D3	961F
+B6D4	5BF9
+B6D5	58A9
+B6D6	5428
+B6D7	8E72
+B6D8	6566
+B6D9	987F
+B6DA	56E4
+B6DB	949D
+B6DC	76FE
+B6DD	9041
+B6DE	6387
+B6DF	54C6
+B6E0	591A
+B6E1	593A
+B6E2	579B
+B6E3	8EB2
+B6E4	6735
+B6E5	8DFA
+B6E6	8235
+B6E7	5241
+B6E8	60F0
+B6E9	5815
+B6EA	86FE
+B6EB	5CE8
+B6EC	9E45
+B6ED	4FC4
+B6EE	989D
+B6EF	8BB9
+B6F0	5A25
+B6F1	6076
+B6F2	5384
+B6F3	627C
+B6F4	904F
+B6F5	9102
+B6F6	997F
+B6F7	6069
+B6F8	800C
+B6F9	513F
+B6FA	8033
+B6FB	5C14
+B6FC	9975
+B6FD	6D31
+B6FE	4E8C
+B7A1	8D30
+B7A2	53D1
+B7A3	7F5A
+B7A4	7B4F
+B7A5	4F10
+B7A6	4E4F
+B7A7	9600
+B7A8	6CD5
+B7A9	73D0
+B7AA	85E9
+B7AB	5E06
+B7AC	756A
+B7AD	7FFB
+B7AE	6A0A
+B7AF	77FE
+B7B0	9492
+B7B1	7E41
+B7B2	51E1
+B7B3	70E6
+B7B4	53CD
+B7B5	8FD4
+B7B6	8303
+B7B7	8D29
+B7B8	72AF
+B7B9	996D
+B7BA	6CDB
+B7BB	574A
+B7BC	82B3
+B7BD	65B9
+B7BE	80AA
+B7BF	623F
+B7C0	9632
+B7C1	59A8
+B7C2	4EFF
+B7C3	8BBF
+B7C4	7EBA
+B7C5	653E
+B7C6	83F2
+B7C7	975E
+B7C8	5561
+B7C9	98DE
+B7CA	80A5
+B7CB	532A
+B7CC	8BFD
+B7CD	5420
+B7CE	80BA
+B7CF	5E9F
+B7D0	6CB8
+B7D1	8D39
+B7D2	82AC
+B7D3	915A
+B7D4	5429
+B7D5	6C1B
+B7D6	5206
+B7D7	7EB7
+B7D8	575F
+B7D9	711A
+B7DA	6C7E
+B7DB	7C89
+B7DC	594B
+B7DD	4EFD
+B7DE	5FFF
+B7DF	6124
+B7E0	7CAA
+B7E1	4E30
+B7E2	5C01
+B7E3	67AB
+B7E4	8702
+B7E5	5CF0
+B7E6	950B
+B7E7	98CE
+B7E8	75AF
+B7E9	70FD
+B7EA	9022
+B7EB	51AF
+B7EC	7F1D
+B7ED	8BBD
+B7EE	5949
+B7EF	51E4
+B7F0	4F5B
+B7F1	5426
+B7F2	592B
+B7F3	6577
+B7F4	80A4
+B7F5	5B75
+B7F6	6276
+B7F7	62C2
+B7F8	8F90
+B7F9	5E45
+B7FA	6C1F
+B7FB	7B26
+B7FC	4F0F
+B7FD	4FD8
+B7FE	670D
+B8A1	6D6E
+B8A2	6DAA
+B8A3	798F
+B8A4	88B1
+B8A5	5F17
+B8A6	752B
+B8A7	629A
+B8A8	8F85
+B8A9	4FEF
+B8AA	91DC
+B8AB	65A7
+B8AC	812F
+B8AD	8151
+B8AE	5E9C
+B8AF	8150
+B8B0	8D74
+B8B1	526F
+B8B2	8986
+B8B3	8D4B
+B8B4	590D
+B8B5	5085
+B8B6	4ED8
+B8B7	961C
+B8B8	7236
+B8B9	8179
+B8BA	8D1F
+B8BB	5BCC
+B8BC	8BA3
+B8BD	9644
+B8BE	5987
+B8BF	7F1A
+B8C0	5490
+B8C1	5676
+B8C2	560E
+B8C3	8BE5
+B8C4	6539
+B8C5	6982
+B8C6	9499
+B8C7	76D6
+B8C8	6E89
+B8C9	5E72
+B8CA	7518
+B8CB	6746
+B8CC	67D1
+B8CD	7AFF
+B8CE	809D
+B8CF	8D76
+B8D0	611F
+B8D1	79C6
+B8D2	6562
+B8D3	8D63
+B8D4	5188
+B8D5	521A
+B8D6	94A2
+B8D7	7F38
+B8D8	809B
+B8D9	7EB2
+B8DA	5C97
+B8DB	6E2F
+B8DC	6760
+B8DD	7BD9
+B8DE	768B
+B8DF	9AD8
+B8E0	818F
+B8E1	7F94
+B8E2	7CD5
+B8E3	641E
+B8E4	9550
+B8E5	7A3F
+B8E6	544A
+B8E7	54E5
+B8E8	6B4C
+B8E9	6401
+B8EA	6208
+B8EB	9E3D
+B8EC	80F3
+B8ED	7599
+B8EE	5272
+B8EF	9769
+B8F0	845B
+B8F1	683C
+B8F2	86E4
+B8F3	9601
+B8F4	9694
+B8F5	94EC
+B8F6	4E2A
+B8F7	5404
+B8F8	7ED9
+B8F9	6839
+B8FA	8DDF
+B8FB	8015
+B8FC	66F4
+B8FD	5E9A
+B8FE	7FB9
+B9A1	57C2
+B9A2	803F
+B9A3	6897
+B9A4	5DE5
+B9A5	653B
+B9A6	529F
+B9A7	606D
+B9A8	9F9A
+B9A9	4F9B
+B9AA	8EAC
+B9AB	516C
+B9AC	5BAB
+B9AD	5F13
+B9AE	5DE9
+B9AF	6C5E
+B9B0	62F1
+B9B1	8D21
+B9B2	5171
+B9B3	94A9
+B9B4	52FE
+B9B5	6C9F
+B9B6	82DF
+B9B7	72D7
+B9B8	57A2
+B9B9	6784
+B9BA	8D2D
+B9BB	591F
+B9BC	8F9C
+B9BD	83C7
+B9BE	5495
+B9BF	7B8D
+B9C0	4F30
+B9C1	6CBD
+B9C2	5B64
+B9C3	59D1
+B9C4	9F13
+B9C5	53E4
+B9C6	86CA
+B9C7	9AA8
+B9C8	8C37
+B9C9	80A1
+B9CA	6545
+B9CB	987E
+B9CC	56FA
+B9CD	96C7
+B9CE	522E
+B9CF	74DC
+B9D0	5250
+B9D1	5BE1
+B9D2	6302
+B9D3	8902
+B9D4	4E56
+B9D5	62D0
+B9D6	602A
+B9D7	68FA
+B9D8	5173
+B9D9	5B98
+B9DA	51A0
+B9DB	89C2
+B9DC	7BA1
+B9DD	9986
+B9DE	7F50
+B9DF	60EF
+B9E0	704C
+B9E1	8D2F
+B9E2	5149
+B9E3	5E7F
+B9E4	901B
+B9E5	7470
+B9E6	89C4
+B9E7	572D
+B9E8	7845
+B9E9	5F52
+B9EA	9F9F
+B9EB	95FA
+B9EC	8F68
+B9ED	9B3C
+B9EE	8BE1
+B9EF	7678
+B9F0	6842
+B9F1	67DC
+B9F2	8DEA
+B9F3	8D35
+B9F4	523D
+B9F5	8F8A
+B9F6	6EDA
+B9F7	68CD
+B9F8	9505
+B9F9	90ED
+B9FA	56FD
+B9FB	679C
+B9FC	88F9
+B9FD	8FC7
+B9FE	54C8
+BAA1	9AB8
+BAA2	5B69
+BAA3	6D77
+BAA4	6C26
+BAA5	4EA5
+BAA6	5BB3
+BAA7	9A87
+BAA8	9163
+BAA9	61A8
+BAAA	90AF
+BAAB	97E9
+BAAC	542B
+BAAD	6DB5
+BAAE	5BD2
+BAAF	51FD
+BAB0	558A
+BAB1	7F55
+BAB2	7FF0
+BAB3	64BC
+BAB4	634D
+BAB5	65F1
+BAB6	61BE
+BAB7	608D
+BAB8	710A
+BAB9	6C57
+BABA	6C49
+BABB	592F
+BABC	676D
+BABD	822A
+BABE	58D5
+BABF	568E
+BAC0	8C6A
+BAC1	6BEB
+BAC2	90DD
+BAC3	597D
+BAC4	8017
+BAC5	53F7
+BAC6	6D69
+BAC7	5475
+BAC8	559D
+BAC9	8377
+BACA	83CF
+BACB	6838
+BACC	79BE
+BACD	548C
+BACE	4F55
+BACF	5408
+BAD0	76D2
+BAD1	8C89
+BAD2	9602
+BAD3	6CB3
+BAD4	6DB8
+BAD5	8D6B
+BAD6	8910
+BAD7	9E64
+BAD8	8D3A
+BAD9	563F
+BADA	9ED1
+BADB	75D5
+BADC	5F88
+BADD	72E0
+BADE	6068
+BADF	54FC
+BAE0	4EA8
+BAE1	6A2A
+BAE2	8861
+BAE3	6052
+BAE4	8F70
+BAE5	54C4
+BAE6	70D8
+BAE7	8679
+BAE8	9E3F
+BAE9	6D2A
+BAEA	5B8F
+BAEB	5F18
+BAEC	7EA2
+BAED	5589
+BAEE	4FAF
+BAEF	7334
+BAF0	543C
+BAF1	539A
+BAF2	5019
+BAF3	540E
+BAF4	547C
+BAF5	4E4E
+BAF6	5FFD
+BAF7	745A
+BAF8	58F6
+BAF9	846B
+BAFA	80E1
+BAFB	8774
+BAFC	72D0
+BAFD	7CCA
+BAFE	6E56
+BBA1	5F27
+BBA2	864E
+BBA3	552C
+BBA4	62A4
+BBA5	4E92
+BBA6	6CAA
+BBA7	6237
+BBA8	82B1
+BBA9	54D7
+BBAA	534E
+BBAB	733E
+BBAC	6ED1
+BBAD	753B
+BBAE	5212
+BBAF	5316
+BBB0	8BDD
+BBB1	69D0
+BBB2	5F8A
+BBB3	6000
+BBB4	6DEE
+BBB5	574F
+BBB6	6B22
+BBB7	73AF
+BBB8	6853
+BBB9	8FD8
+BBBA	7F13
+BBBB	6362
+BBBC	60A3
+BBBD	5524
+BBBE	75EA
+BBBF	8C62
+BBC0	7115
+BBC1	6DA3
+BBC2	5BA6
+BBC3	5E7B
+BBC4	8352
+BBC5	614C
+BBC6	9EC4
+BBC7	78FA
+BBC8	8757
+BBC9	7C27
+BBCA	7687
+BBCB	51F0
+BBCC	60F6
+BBCD	714C
+BBCE	6643
+BBCF	5E4C
+BBD0	604D
+BBD1	8C0E
+BBD2	7070
+BBD3	6325
+BBD4	8F89
+BBD5	5FBD
+BBD6	6062
+BBD7	86D4
+BBD8	56DE
+BBD9	6BC1
+BBDA	6094
+BBDB	6167
+BBDC	5349
+BBDD	60E0
+BBDE	6666
+BBDF	8D3F
+BBE0	79FD
+BBE1	4F1A
+BBE2	70E9
+BBE3	6C47
+BBE4	8BB3
+BBE5	8BF2
+BBE6	7ED8
+BBE7	8364
+BBE8	660F
+BBE9	5A5A
+BBEA	9B42
+BBEB	6D51
+BBEC	6DF7
+BBED	8C41
+BBEE	6D3B
+BBEF	4F19
+BBF0	706B
+BBF1	83B7
+BBF2	6216
+BBF3	60D1
+BBF4	970D
+BBF5	8D27
+BBF6	7978
+BBF7	51FB
+BBF8	573E
+BBF9	57FA
+BBFA	673A
+BBFB	7578
+BBFC	7A3D
+BBFD	79EF
+BBFE	7B95
+BCA1	808C
+BCA2	9965
+BCA3	8FF9
+BCA4	6FC0
+BCA5	8BA5
+BCA6	9E21
+BCA7	59EC
+BCA8	7EE9
+BCA9	7F09
+BCAA	5409
+BCAB	6781
+BCAC	68D8
+BCAD	8F91
+BCAE	7C4D
+BCAF	96C6
+BCB0	53CA
+BCB1	6025
+BCB2	75BE
+BCB3	6C72
+BCB4	5373
+BCB5	5AC9
+BCB6	7EA7
+BCB7	6324
+BCB8	51E0
+BCB9	810A
+BCBA	5DF1
+BCBB	84DF
+BCBC	6280
+BCBD	5180
+BCBE	5B63
+BCBF	4F0E
+BCC0	796D
+BCC1	5242
+BCC2	60B8
+BCC3	6D4E
+BCC4	5BC4
+BCC5	5BC2
+BCC6	8BA1
+BCC7	8BB0
+BCC8	65E2
+BCC9	5FCC
+BCCA	9645
+BCCB	5993
+BCCC	7EE7
+BCCD	7EAA
+BCCE	5609
+BCCF	67B7
+BCD0	5939
+BCD1	4F73
+BCD2	5BB6
+BCD3	52A0
+BCD4	835A
+BCD5	988A
+BCD6	8D3E
+BCD7	7532
+BCD8	94BE
+BCD9	5047
+BCDA	7A3C
+BCDB	4EF7
+BCDC	67B6
+BCDD	9A7E
+BCDE	5AC1
+BCDF	6B7C
+BCE0	76D1
+BCE1	575A
+BCE2	5C16
+BCE3	7B3A
+BCE4	95F4
+BCE5	714E
+BCE6	517C
+BCE7	80A9
+BCE8	8270
+BCE9	5978
+BCEA	7F04
+BCEB	8327
+BCEC	68C0
+BCED	67EC
+BCEE	78B1
+BCEF	7877
+BCF0	62E3
+BCF1	6361
+BCF2	7B80
+BCF3	4FED
+BCF4	526A
+BCF5	51CF
+BCF6	8350
+BCF7	69DB
+BCF8	9274
+BCF9	8DF5
+BCFA	8D31
+BCFB	89C1
+BCFC	952E
+BCFD	7BAD
+BCFE	4EF6
+BDA1	5065
+BDA2	8230
+BDA3	5251
+BDA4	996F
+BDA5	6E10
+BDA6	6E85
+BDA7	6DA7
+BDA8	5EFA
+BDA9	50F5
+BDAA	59DC
+BDAB	5C06
+BDAC	6D46
+BDAD	6C5F
+BDAE	7586
+BDAF	848B
+BDB0	6868
+BDB1	5956
+BDB2	8BB2
+BDB3	5320
+BDB4	9171
+BDB5	964D
+BDB6	8549
+BDB7	6912
+BDB8	7901
+BDB9	7126
+BDBA	80F6
+BDBB	4EA4
+BDBC	90CA
+BDBD	6D47
+BDBE	9A84
+BDBF	5A07
+BDC0	56BC
+BDC1	6405
+BDC2	94F0
+BDC3	77EB
+BDC4	4FA5
+BDC5	811A
+BDC6	72E1
+BDC7	89D2
+BDC8	997A
+BDC9	7F34
+BDCA	7EDE
+BDCB	527F
+BDCC	6559
+BDCD	9175
+BDCE	8F7F
+BDCF	8F83
+BDD0	53EB
+BDD1	7A96
+BDD2	63ED
+BDD3	63A5
+BDD4	7686
+BDD5	79F8
+BDD6	8857
+BDD7	9636
+BDD8	622A
+BDD9	52AB
+BDDA	8282
+BDDB	6854
+BDDC	6770
+BDDD	6377
+BDDE	776B
+BDDF	7AED
+BDE0	6D01
+BDE1	7ED3
+BDE2	89E3
+BDE3	59D0
+BDE4	6212
+BDE5	85C9
+BDE6	82A5
+BDE7	754C
+BDE8	501F
+BDE9	4ECB
+BDEA	75A5
+BDEB	8BEB
+BDEC	5C4A
+BDED	5DFE
+BDEE	7B4B
+BDEF	65A4
+BDF0	91D1
+BDF1	4ECA
+BDF2	6D25
+BDF3	895F
+BDF4	7D27
+BDF5	9526
+BDF6	4EC5
+BDF7	8C28
+BDF8	8FDB
+BDF9	9773
+BDFA	664B
+BDFB	7981
+BDFC	8FD1
+BDFD	70EC
+BDFE	6D78
+BEA1	5C3D
+BEA2	52B2
+BEA3	8346
+BEA4	5162
+BEA5	830E
+BEA6	775B
+BEA7	6676
+BEA8	9CB8
+BEA9	4EAC
+BEAA	60CA
+BEAB	7CBE
+BEAC	7CB3
+BEAD	7ECF
+BEAE	4E95
+BEAF	8B66
+BEB0	666F
+BEB1	9888
+BEB2	9759
+BEB3	5883
+BEB4	656C
+BEB5	955C
+BEB6	5F84
+BEB7	75C9
+BEB8	9756
+BEB9	7ADF
+BEBA	7ADE
+BEBB	51C0
+BEBC	70AF
+BEBD	7A98
+BEBE	63EA
+BEBF	7A76
+BEC0	7EA0
+BEC1	7396
+BEC2	97ED
+BEC3	4E45
+BEC4	7078
+BEC5	4E5D
+BEC6	9152
+BEC7	53A9
+BEC8	6551
+BEC9	65E7
+BECA	81FC
+BECB	8205
+BECC	548E
+BECD	5C31
+BECE	759A
+BECF	97A0
+BED0	62D8
+BED1	72D9
+BED2	75BD
+BED3	5C45
+BED4	9A79
+BED5	83CA
+BED6	5C40
+BED7	5480
+BED8	77E9
+BED9	4E3E
+BEDA	6CAE
+BEDB	805A
+BEDC	62D2
+BEDD	636E
+BEDE	5DE8
+BEDF	5177
+BEE0	8DDD
+BEE1	8E1E
+BEE2	952F
+BEE3	4FF1
+BEE4	53E5
+BEE5	60E7
+BEE6	70AC
+BEE7	5267
+BEE8	6350
+BEE9	9E43
+BEEA	5A1F
+BEEB	5026
+BEEC	7737
+BEED	5377
+BEEE	7EE2
+BEEF	6485
+BEF0	652B
+BEF1	6289
+BEF2	6398
+BEF3	5014
+BEF4	7235
+BEF5	89C9
+BEF6	51B3
+BEF7	8BC0
+BEF8	7EDD
+BEF9	5747
+BEFA	83CC
+BEFB	94A7
+BEFC	519B
+BEFD	541B
+BEFE	5CFB
+BFA1	4FCA
+BFA2	7AE3
+BFA3	6D5A
+BFA4	90E1
+BFA5	9A8F
+BFA6	5580
+BFA7	5496
+BFA8	5361
+BFA9	54AF
+BFAA	5F00
+BFAB	63E9
+BFAC	6977
+BFAD	51EF
+BFAE	6168
+BFAF	520A
+BFB0	582A
+BFB1	52D8
+BFB2	574E
+BFB3	780D
+BFB4	770B
+BFB5	5EB7
+BFB6	6177
+BFB7	7CE0
+BFB8	625B
+BFB9	6297
+BFBA	4EA2
+BFBB	7095
+BFBC	8003
+BFBD	62F7
+BFBE	70E4
+BFBF	9760
+BFC0	5777
+BFC1	82DB
+BFC2	67EF
+BFC3	68F5
+BFC4	78D5
+BFC5	9897
+BFC6	79D1
+BFC7	58F3
+BFC8	54B3
+BFC9	53EF
+BFCA	6E34
+BFCB	514B
+BFCC	523B
+BFCD	5BA2
+BFCE	8BFE
+BFCF	80AF
+BFD0	5543
+BFD1	57A6
+BFD2	6073
+BFD3	5751
+BFD4	542D
+BFD5	7A7A
+BFD6	6050
+BFD7	5B54
+BFD8	63A7
+BFD9	62A0
+BFDA	53E3
+BFDB	6263
+BFDC	5BC7
+BFDD	67AF
+BFDE	54ED
+BFDF	7A9F
+BFE0	82E6
+BFE1	9177
+BFE2	5E93
+BFE3	88E4
+BFE4	5938
+BFE5	57AE
+BFE6	630E
+BFE7	8DE8
+BFE8	80EF
+BFE9	5757
+BFEA	7B77
+BFEB	4FA9
+BFEC	5FEB
+BFED	5BBD
+BFEE	6B3E
+BFEF	5321
+BFF0	7B50
+BFF1	72C2
+BFF2	6846
+BFF3	77FF
+BFF4	7736
+BFF5	65F7
+BFF6	51B5
+BFF7	4E8F
+BFF8	76D4
+BFF9	5CBF
+BFFA	7AA5
+BFFB	8475
+BFFC	594E
+BFFD	9B41
+BFFE	5080
+C0A1	9988
+C0A2	6127
+C0A3	6E83
+C0A4	5764
+C0A5	6606
+C0A6	6346
+C0A7	56F0
+C0A8	62EC
+C0A9	6269
+C0AA	5ED3
+C0AB	9614
+C0AC	5783
+C0AD	62C9
+C0AE	5587
+C0AF	8721
+C0B0	814A
+C0B1	8FA3
+C0B2	5566
+C0B3	83B1
+C0B4	6765
+C0B5	8D56
+C0B6	84DD
+C0B7	5A6A
+C0B8	680F
+C0B9	62E6
+C0BA	7BEE
+C0BB	9611
+C0BC	5170
+C0BD	6F9C
+C0BE	8C30
+C0BF	63FD
+C0C0	89C8
+C0C1	61D2
+C0C2	7F06
+C0C3	70C2
+C0C4	6EE5
+C0C5	7405
+C0C6	6994
+C0C7	72FC
+C0C8	5ECA
+C0C9	90CE
+C0CA	6717
+C0CB	6D6A
+C0CC	635E
+C0CD	52B3
+C0CE	7262
+C0CF	8001
+C0D0	4F6C
+C0D1	59E5
+C0D2	916A
+C0D3	70D9
+C0D4	6D9D
+C0D5	52D2
+C0D6	4E50
+C0D7	96F7
+C0D8	956D
+C0D9	857E
+C0DA	78CA
+C0DB	7D2F
+C0DC	5121
+C0DD	5792
+C0DE	64C2
+C0DF	808B
+C0E0	7C7B
+C0E1	6CEA
+C0E2	68F1
+C0E3	695E
+C0E4	51B7
+C0E5	5398
+C0E6	68A8
+C0E7	7281
+C0E8	9ECE
+C0E9	7BF1
+C0EA	72F8
+C0EB	79BB
+C0EC	6F13
+C0ED	7406
+C0EE	674E
+C0EF	91CC
+C0F0	9CA4
+C0F1	793C
+C0F2	8389
+C0F3	8354
+C0F4	540F
+C0F5	6817
+C0F6	4E3D
+C0F7	5389
+C0F8	52B1
+C0F9	783E
+C0FA	5386
+C0FB	5229
+C0FC	5088
+C0FD	4F8B
+C0FE	4FD0
+C1A1	75E2
+C1A2	7ACB
+C1A3	7C92
+C1A4	6CA5
+C1A5	96B6
+C1A6	529B
+C1A7	7483
+C1A8	54E9
+C1A9	4FE9
+C1AA	8054
+C1AB	83B2
+C1AC	8FDE
+C1AD	9570
+C1AE	5EC9
+C1AF	601C
+C1B0	6D9F
+C1B1	5E18
+C1B2	655B
+C1B3	8138
+C1B4	94FE
+C1B5	604B
+C1B6	70BC
+C1B7	7EC3
+C1B8	7CAE
+C1B9	51C9
+C1BA	6881
+C1BB	7CB1
+C1BC	826F
+C1BD	4E24
+C1BE	8F86
+C1BF	91CF
+C1C0	667E
+C1C1	4EAE
+C1C2	8C05
+C1C3	64A9
+C1C4	804A
+C1C5	50DA
+C1C6	7597
+C1C7	71CE
+C1C8	5BE5
+C1C9	8FBD
+C1CA	6F66
+C1CB	4E86
+C1CC	6482
+C1CD	9563
+C1CE	5ED6
+C1CF	6599
+C1D0	5217
+C1D1	88C2
+C1D2	70C8
+C1D3	52A3
+C1D4	730E
+C1D5	7433
+C1D6	6797
+C1D7	78F7
+C1D8	9716
+C1D9	4E34
+C1DA	90BB
+C1DB	9CDE
+C1DC	6DCB
+C1DD	51DB
+C1DE	8D41
+C1DF	541D
+C1E0	62CE
+C1E1	73B2
+C1E2	83F1
+C1E3	96F6
+C1E4	9F84
+C1E5	94C3
+C1E6	4F36
+C1E7	7F9A
+C1E8	51CC
+C1E9	7075
+C1EA	9675
+C1EB	5CAD
+C1EC	9886
+C1ED	53E6
+C1EE	4EE4
+C1EF	6E9C
+C1F0	7409
+C1F1	69B4
+C1F2	786B
+C1F3	998F
+C1F4	7559
+C1F5	5218
+C1F6	7624
+C1F7	6D41
+C1F8	67F3
+C1F9	516D
+C1FA	9F99
+C1FB	804B
+C1FC	5499
+C1FD	7B3C
+C1FE	7ABF
+C2A1	9686
+C2A2	5784
+C2A3	62E2
+C2A4	9647
+C2A5	697C
+C2A6	5A04
+C2A7	6402
+C2A8	7BD3
+C2A9	6F0F
+C2AA	964B
+C2AB	82A6
+C2AC	5362
+C2AD	9885
+C2AE	5E90
+C2AF	7089
+C2B0	63B3
+C2B1	5364
+C2B2	864F
+C2B3	9C81
+C2B4	9E93
+C2B5	788C
+C2B6	9732
+C2B7	8DEF
+C2B8	8D42
+C2B9	9E7F
+C2BA	6F5E
+C2BB	7984
+C2BC	5F55
+C2BD	9646
+C2BE	622E
+C2BF	9A74
+C2C0	5415
+C2C1	94DD
+C2C2	4FA3
+C2C3	65C5
+C2C4	5C65
+C2C5	5C61
+C2C6	7F15
+C2C7	8651
+C2C8	6C2F
+C2C9	5F8B
+C2CA	7387
+C2CB	6EE4
+C2CC	7EFF
+C2CD	5CE6
+C2CE	631B
+C2CF	5B6A
+C2D0	6EE6
+C2D1	5375
+C2D2	4E71
+C2D3	63A0
+C2D4	7565
+C2D5	62A1
+C2D6	8F6E
+C2D7	4F26
+C2D8	4ED1
+C2D9	6CA6
+C2DA	7EB6
+C2DB	8BBA
+C2DC	841D
+C2DD	87BA
+C2DE	7F57
+C2DF	903B
+C2E0	9523
+C2E1	7BA9
+C2E2	9AA1
+C2E3	88F8
+C2E4	843D
+C2E5	6D1B
+C2E6	9A86
+C2E7	7EDC
+C2E8	5988
+C2E9	9EBB
+C2EA	739B
+C2EB	7801
+C2EC	8682
+C2ED	9A6C
+C2EE	9A82
+C2EF	561B
+C2F0	5417
+C2F1	57CB
+C2F2	4E70
+C2F3	9EA6
+C2F4	5356
+C2F5	8FC8
+C2F6	8109
+C2F7	7792
+C2F8	9992
+C2F9	86EE
+C2FA	6EE1
+C2FB	8513
+C2FC	66FC
+C2FD	6162
+C2FE	6F2B
+C3A1	8C29
+C3A2	8292
+C3A3	832B
+C3A4	76F2
+C3A5	6C13
+C3A6	5FD9
+C3A7	83BD
+C3A8	732B
+C3A9	8305
+C3AA	951A
+C3AB	6BDB
+C3AC	77DB
+C3AD	94C6
+C3AE	536F
+C3AF	8302
+C3B0	5192
+C3B1	5E3D
+C3B2	8C8C
+C3B3	8D38
+C3B4	4E48
+C3B5	73AB
+C3B6	679A
+C3B7	6885
+C3B8	9176
+C3B9	9709
+C3BA	7164
+C3BB	6CA1
+C3BC	7709
+C3BD	5A92
+C3BE	9541
+C3BF	6BCF
+C3C0	7F8E
+C3C1	6627
+C3C2	5BD0
+C3C3	59B9
+C3C4	5A9A
+C3C5	95E8
+C3C6	95F7
+C3C7	4EEC
+C3C8	840C
+C3C9	8499
+C3CA	6AAC
+C3CB	76DF
+C3CC	9530
+C3CD	731B
+C3CE	68A6
+C3CF	5B5F
+C3D0	772F
+C3D1	919A
+C3D2	9761
+C3D3	7CDC
+C3D4	8FF7
+C3D5	8C1C
+C3D6	5F25
+C3D7	7C73
+C3D8	79D8
+C3D9	89C5
+C3DA	6CCC
+C3DB	871C
+C3DC	5BC6
+C3DD	5E42
+C3DE	68C9
+C3DF	7720
+C3E0	7EF5
+C3E1	5195
+C3E2	514D
+C3E3	52C9
+C3E4	5A29
+C3E5	7F05
+C3E6	9762
+C3E7	82D7
+C3E8	63CF
+C3E9	7784
+C3EA	85D0
+C3EB	79D2
+C3EC	6E3A
+C3ED	5E99
+C3EE	5999
+C3EF	8511
+C3F0	706D
+C3F1	6C11
+C3F2	62BF
+C3F3	76BF
+C3F4	654F
+C3F5	60AF
+C3F6	95FD
+C3F7	660E
+C3F8	879F
+C3F9	9E23
+C3FA	94ED
+C3FB	540D
+C3FC	547D
+C3FD	8C2C
+C3FE	6478
+C4A1	6479
+C4A2	8611
+C4A3	6A21
+C4A4	819C
+C4A5	78E8
+C4A6	6469
+C4A7	9B54
+C4A8	62B9
+C4A9	672B
+C4AA	83AB
+C4AB	58A8
+C4AC	9ED8
+C4AD	6CAB
+C4AE	6F20
+C4AF	5BDE
+C4B0	964C
+C4B1	8C0B
+C4B2	725F
+C4B3	67D0
+C4B4	62C7
+C4B5	7261
+C4B6	4EA9
+C4B7	59C6
+C4B8	6BCD
+C4B9	5893
+C4BA	66AE
+C4BB	5E55
+C4BC	52DF
+C4BD	6155
+C4BE	6728
+C4BF	76EE
+C4C0	7766
+C4C1	7267
+C4C2	7A46
+C4C3	62FF
+C4C4	54EA
+C4C5	5450
+C4C6	94A0
+C4C7	90A3
+C4C8	5A1C
+C4C9	7EB3
+C4CA	6C16
+C4CB	4E43
+C4CC	5976
+C4CD	8010
+C4CE	5948
+C4CF	5357
+C4D0	7537
+C4D1	96BE
+C4D2	56CA
+C4D3	6320
+C4D4	8111
+C4D5	607C
+C4D6	95F9
+C4D7	6DD6
+C4D8	5462
+C4D9	9981
+C4DA	5185
+C4DB	5AE9
+C4DC	80FD
+C4DD	59AE
+C4DE	9713
+C4DF	502A
+C4E0	6CE5
+C4E1	5C3C
+C4E2	62DF
+C4E3	4F60
+C4E4	533F
+C4E5	817B
+C4E6	9006
+C4E7	6EBA
+C4E8	852B
+C4E9	62C8
+C4EA	5E74
+C4EB	78BE
+C4EC	64B5
+C4ED	637B
+C4EE	5FF5
+C4EF	5A18
+C4F0	917F
+C4F1	9E1F
+C4F2	5C3F
+C4F3	634F
+C4F4	8042
+C4F5	5B7D
+C4F6	556E
+C4F7	954A
+C4F8	954D
+C4F9	6D85
+C4FA	60A8
+C4FB	67E0
+C4FC	72DE
+C4FD	51DD
+C4FE	5B81
+C5A1	62E7
+C5A2	6CDE
+C5A3	725B
+C5A4	626D
+C5A5	94AE
+C5A6	7EBD
+C5A7	8113
+C5A8	6D53
+C5A9	519C
+C5AA	5F04
+C5AB	5974
+C5AC	52AA
+C5AD	6012
+C5AE	5973
+C5AF	6696
+C5B0	8650
+C5B1	759F
+C5B2	632A
+C5B3	61E6
+C5B4	7CEF
+C5B5	8BFA
+C5B6	54E6
+C5B7	6B27
+C5B8	9E25
+C5B9	6BB4
+C5BA	85D5
+C5BB	5455
+C5BC	5076
+C5BD	6CA4
+C5BE	556A
+C5BF	8DB4
+C5C0	722C
+C5C1	5E15
+C5C2	6015
+C5C3	7436
+C5C4	62CD
+C5C5	6392
+C5C6	724C
+C5C7	5F98
+C5C8	6E43
+C5C9	6D3E
+C5CA	6500
+C5CB	6F58
+C5CC	76D8
+C5CD	78D0
+C5CE	76FC
+C5CF	7554
+C5D0	5224
+C5D1	53DB
+C5D2	4E53
+C5D3	5E9E
+C5D4	65C1
+C5D5	802A
+C5D6	80D6
+C5D7	629B
+C5D8	5486
+C5D9	5228
+C5DA	70AE
+C5DB	888D
+C5DC	8DD1
+C5DD	6CE1
+C5DE	5478
+C5DF	80DA
+C5E0	57F9
+C5E1	88F4
+C5E2	8D54
+C5E3	966A
+C5E4	914D
+C5E5	4F69
+C5E6	6C9B
+C5E7	55B7
+C5E8	76C6
+C5E9	7830
+C5EA	62A8
+C5EB	70F9
+C5EC	6F8E
+C5ED	5F6D
+C5EE	84EC
+C5EF	68DA
+C5F0	787C
+C5F1	7BF7
+C5F2	81A8
+C5F3	670B
+C5F4	9E4F
+C5F5	6367
+C5F6	78B0
+C5F7	576F
+C5F8	7812
+C5F9	9739
+C5FA	6279
+C5FB	62AB
+C5FC	5288
+C5FD	7435
+C5FE	6BD7
+C6A1	5564
+C6A2	813E
+C6A3	75B2
+C6A4	76AE
+C6A5	5339
+C6A6	75DE
+C6A7	50FB
+C6A8	5C41
+C6A9	8B6C
+C6AA	7BC7
+C6AB	504F
+C6AC	7247
+C6AD	9A97
+C6AE	98D8
+C6AF	6F02
+C6B0	74E2
+C6B1	7968
+C6B2	6487
+C6B3	77A5
+C6B4	62FC
+C6B5	9891
+C6B6	8D2B
+C6B7	54C1
+C6B8	8058
+C6B9	4E52
+C6BA	576A
+C6BB	82F9
+C6BC	840D
+C6BD	5E73
+C6BE	51ED
+C6BF	74F6
+C6C0	8BC4
+C6C1	5C4F
+C6C2	5761
+C6C3	6CFC
+C6C4	9887
+C6C5	5A46
+C6C6	7834
+C6C7	9B44
+C6C8	8FEB
+C6C9	7C95
+C6CA	5256
+C6CB	6251
+C6CC	94FA
+C6CD	4EC6
+C6CE	8386
+C6CF	8461
+C6D0	83E9
+C6D1	84B2
+C6D2	57D4
+C6D3	6734
+C6D4	5703
+C6D5	666E
+C6D6	6D66
+C6D7	8C31
+C6D8	66DD
+C6D9	7011
+C6DA	671F
+C6DB	6B3A
+C6DC	6816
+C6DD	621A
+C6DE	59BB
+C6DF	4E03
+C6E0	51C4
+C6E1	6F06
+C6E2	67D2
+C6E3	6C8F
+C6E4	5176
+C6E5	68CB
+C6E6	5947
+C6E7	6B67
+C6E8	7566
+C6E9	5D0E
+C6EA	8110
+C6EB	9F50
+C6EC	65D7
+C6ED	7948
+C6EE	7941
+C6EF	9A91
+C6F0	8D77
+C6F1	5C82
+C6F2	4E5E
+C6F3	4F01
+C6F4	542F
+C6F5	5951
+C6F6	780C
+C6F7	5668
+C6F8	6C14
+C6F9	8FC4
+C6FA	5F03
+C6FB	6C7D
+C6FC	6CE3
+C6FD	8BAB
+C6FE	6390
+C7A1	6070
+C7A2	6D3D
+C7A3	7275
+C7A4	6266
+C7A5	948E
+C7A6	94C5
+C7A7	5343
+C7A8	8FC1
+C7A9	7B7E
+C7AA	4EDF
+C7AB	8C26
+C7AC	4E7E
+C7AD	9ED4
+C7AE	94B1
+C7AF	94B3
+C7B0	524D
+C7B1	6F5C
+C7B2	9063
+C7B3	6D45
+C7B4	8C34
+C7B5	5811
+C7B6	5D4C
+C7B7	6B20
+C7B8	6B49
+C7B9	67AA
+C7BA	545B
+C7BB	8154
+C7BC	7F8C
+C7BD	5899
+C7BE	8537
+C7BF	5F3A
+C7C0	62A2
+C7C1	6A47
+C7C2	9539
+C7C3	6572
+C7C4	6084
+C7C5	6865
+C7C6	77A7
+C7C7	4E54
+C7C8	4FA8
+C7C9	5DE7
+C7CA	9798
+C7CB	64AC
+C7CC	7FD8
+C7CD	5CED
+C7CE	4FCF
+C7CF	7A8D
+C7D0	5207
+C7D1	8304
+C7D2	4E14
+C7D3	602F
+C7D4	7A83
+C7D5	94A6
+C7D6	4FB5
+C7D7	4EB2
+C7D8	79E6
+C7D9	7434
+C7DA	52E4
+C7DB	82B9
+C7DC	64D2
+C7DD	79BD
+C7DE	5BDD
+C7DF	6C81
+C7E0	9752
+C7E1	8F7B
+C7E2	6C22
+C7E3	503E
+C7E4	537F
+C7E5	6E05
+C7E6	64CE
+C7E7	6674
+C7E8	6C30
+C7E9	60C5
+C7EA	9877
+C7EB	8BF7
+C7EC	5E86
+C7ED	743C
+C7EE	7A77
+C7EF	79CB
+C7F0	4E18
+C7F1	90B1
+C7F2	7403
+C7F3	6C42
+C7F4	56DA
+C7F5	914B
+C7F6	6CC5
+C7F7	8D8B
+C7F8	533A
+C7F9	86C6
+C7FA	66F2
+C7FB	8EAF
+C7FC	5C48
+C7FD	9A71
+C7FE	6E20
+C8A1	53D6
+C8A2	5A36
+C8A3	9F8B
+C8A4	8DA3
+C8A5	53BB
+C8A6	5708
+C8A7	98A7
+C8A8	6743
+C8A9	919B
+C8AA	6CC9
+C8AB	5168
+C8AC	75CA
+C8AD	62F3
+C8AE	72AC
+C8AF	5238
+C8B0	529D
+C8B1	7F3A
+C8B2	7094
+C8B3	7638
+C8B4	5374
+C8B5	9E4A
+C8B6	69B7
+C8B7	786E
+C8B8	96C0
+C8B9	88D9
+C8BA	7FA4
+C8BB	7136
+C8BC	71C3
+C8BD	5189
+C8BE	67D3
+C8BF	74E4
+C8C0	58E4
+C8C1	6518
+C8C2	56B7
+C8C3	8BA9
+C8C4	9976
+C8C5	6270
+C8C6	7ED5
+C8C7	60F9
+C8C8	70ED
+C8C9	58EC
+C8CA	4EC1
+C8CB	4EBA
+C8CC	5FCD
+C8CD	97E7
+C8CE	4EFB
+C8CF	8BA4
+C8D0	5203
+C8D1	598A
+C8D2	7EAB
+C8D3	6254
+C8D4	4ECD
+C8D5	65E5
+C8D6	620E
+C8D7	8338
+C8D8	84C9
+C8D9	8363
+C8DA	878D
+C8DB	7194
+C8DC	6EB6
+C8DD	5BB9
+C8DE	7ED2
+C8DF	5197
+C8E0	63C9
+C8E1	67D4
+C8E2	8089
+C8E3	8339
+C8E4	8815
+C8E5	5112
+C8E6	5B7A
+C8E7	5982
+C8E8	8FB1
+C8E9	4E73
+C8EA	6C5D
+C8EB	5165
+C8EC	8925
+C8ED	8F6F
+C8EE	962E
+C8EF	854A
+C8F0	745E
+C8F1	9510
+C8F2	95F0
+C8F3	6DA6
+C8F4	82E5
+C8F5	5F31
+C8F6	6492
+C8F7	6D12
+C8F8	8428
+C8F9	816E
+C8FA	9CC3
+C8FB	585E
+C8FC	8D5B
+C8FD	4E09
+C8FE	53C1
+C9A1	4F1E
+C9A2	6563
+C9A3	6851
+C9A4	55D3
+C9A5	4E27
+C9A6	6414
+C9A7	9A9A
+C9A8	626B
+C9A9	5AC2
+C9AA	745F
+C9AB	8272
+C9AC	6DA9
+C9AD	68EE
+C9AE	50E7
+C9AF	838E
+C9B0	7802
+C9B1	6740
+C9B2	5239
+C9B3	6C99
+C9B4	7EB1
+C9B5	50BB
+C9B6	5565
+C9B7	715E
+C9B8	7B5B
+C9B9	6652
+C9BA	73CA
+C9BB	82EB
+C9BC	6749
+C9BD	5C71
+C9BE	5220
+C9BF	717D
+C9C0	886B
+C9C1	95EA
+C9C2	9655
+C9C3	64C5
+C9C4	8D61
+C9C5	81B3
+C9C6	5584
+C9C7	6C55
+C9C8	6247
+C9C9	7F2E
+C9CA	5892
+C9CB	4F24
+C9CC	5546
+C9CD	8D4F
+C9CE	664C
+C9CF	4E0A
+C9D0	5C1A
+C9D1	88F3
+C9D2	68A2
+C9D3	634E
+C9D4	7A0D
+C9D5	70E7
+C9D6	828D
+C9D7	52FA
+C9D8	97F6
+C9D9	5C11
+C9DA	54E8
+C9DB	90B5
+C9DC	7ECD
+C9DD	5962
+C9DE	8D4A
+C9DF	86C7
+C9E0	820C
+C9E1	820D
+C9E2	8D66
+C9E3	6444
+C9E4	5C04
+C9E5	6151
+C9E6	6D89
+C9E7	793E
+C9E8	8BBE
+C9E9	7837
+C9EA	7533
+C9EB	547B
+C9EC	4F38
+C9ED	8EAB
+C9EE	6DF1
+C9EF	5A20
+C9F0	7EC5
+C9F1	795E
+C9F2	6C88
+C9F3	5BA1
+C9F4	5A76
+C9F5	751A
+C9F6	80BE
+C9F7	614E
+C9F8	6E17
+C9F9	58F0
+C9FA	751F
+C9FB	7525
+C9FC	7272
+C9FD	5347
+C9FE	7EF3
+CAA1	7701
+CAA2	76DB
+CAA3	5269
+CAA4	80DC
+CAA5	5723
+CAA6	5E08
+CAA7	5931
+CAA8	72EE
+CAA9	65BD
+CAAA	6E7F
+CAAB	8BD7
+CAAC	5C38
+CAAD	8671
+CAAE	5341
+CAAF	77F3
+CAB0	62FE
+CAB1	65F6
+CAB2	4EC0
+CAB3	98DF
+CAB4	8680
+CAB5	5B9E
+CAB6	8BC6
+CAB7	53F2
+CAB8	77E2
+CAB9	4F7F
+CABA	5C4E
+CABB	9A76
+CABC	59CB
+CABD	5F0F
+CABE	793A
+CABF	58EB
+CAC0	4E16
+CAC1	67FF
+CAC2	4E8B
+CAC3	62ED
+CAC4	8A93
+CAC5	901D
+CAC6	52BF
+CAC7	662F
+CAC8	55DC
+CAC9	566C
+CACA	9002
+CACB	4ED5
+CACC	4F8D
+CACD	91CA
+CACE	9970
+CACF	6C0F
+CAD0	5E02
+CAD1	6043
+CAD2	5BA4
+CAD3	89C6
+CAD4	8BD5
+CAD5	6536
+CAD6	624B
+CAD7	9996
+CAD8	5B88
+CAD9	5BFF
+CADA	6388
+CADB	552E
+CADC	53D7
+CADD	7626
+CADE	517D
+CADF	852C
+CAE0	67A2
+CAE1	68B3
+CAE2	6B8A
+CAE3	6292
+CAE4	8F93
+CAE5	53D4
+CAE6	8212
+CAE7	6DD1
+CAE8	758F
+CAE9	4E66
+CAEA	8D4E
+CAEB	5B70
+CAEC	719F
+CAED	85AF
+CAEE	6691
+CAEF	66D9
+CAF0	7F72
+CAF1	8700
+CAF2	9ECD
+CAF3	9F20
+CAF4	5C5E
+CAF5	672F
+CAF6	8FF0
+CAF7	6811
+CAF8	675F
+CAF9	620D
+CAFA	7AD6
+CAFB	5885
+CAFC	5EB6
+CAFD	6570
+CAFE	6F31
+CBA1	6055
+CBA2	5237
+CBA3	800D
+CBA4	6454
+CBA5	8870
+CBA6	7529
+CBA7	5E05
+CBA8	6813
+CBA9	62F4
+CBAA	971C
+CBAB	53CC
+CBAC	723D
+CBAD	8C01
+CBAE	6C34
+CBAF	7761
+CBB0	7A0E
+CBB1	542E
+CBB2	77AC
+CBB3	987A
+CBB4	821C
+CBB5	8BF4
+CBB6	7855
+CBB7	6714
+CBB8	70C1
+CBB9	65AF
+CBBA	6495
+CBBB	5636
+CBBC	601D
+CBBD	79C1
+CBBE	53F8
+CBBF	4E1D
+CBC0	6B7B
+CBC1	8086
+CBC2	5BFA
+CBC3	55E3
+CBC4	56DB
+CBC5	4F3A
+CBC6	4F3C
+CBC7	9972
+CBC8	5DF3
+CBC9	677E
+CBCA	8038
+CBCB	6002
+CBCC	9882
+CBCD	9001
+CBCE	5B8B
+CBCF	8BBC
+CBD0	8BF5
+CBD1	641C
+CBD2	8258
+CBD3	64DE
+CBD4	55FD
+CBD5	82CF
+CBD6	9165
+CBD7	4FD7
+CBD8	7D20
+CBD9	901F
+CBDA	7C9F
+CBDB	50F3
+CBDC	5851
+CBDD	6EAF
+CBDE	5BBF
+CBDF	8BC9
+CBE0	8083
+CBE1	9178
+CBE2	849C
+CBE3	7B97
+CBE4	867D
+CBE5	968B
+CBE6	968F
+CBE7	7EE5
+CBE8	9AD3
+CBE9	788E
+CBEA	5C81
+CBEB	7A57
+CBEC	9042
+CBED	96A7
+CBEE	795F
+CBEF	5B59
+CBF0	635F
+CBF1	7B0B
+CBF2	84D1
+CBF3	68AD
+CBF4	5506
+CBF5	7F29
+CBF6	7410
+CBF7	7D22
+CBF8	9501
+CBF9	6240
+CBFA	584C
+CBFB	4ED6
+CBFC	5B83
+CBFD	5979
+CBFE	5854
+CCA1	736D
+CCA2	631E
+CCA3	8E4B
+CCA4	8E0F
+CCA5	80CE
+CCA6	82D4
+CCA7	62AC
+CCA8	53F0
+CCA9	6CF0
+CCAA	915E
+CCAB	592A
+CCAC	6001
+CCAD	6C70
+CCAE	574D
+CCAF	644A
+CCB0	8D2A
+CCB1	762B
+CCB2	6EE9
+CCB3	575B
+CCB4	6A80
+CCB5	75F0
+CCB6	6F6D
+CCB7	8C2D
+CCB8	8C08
+CCB9	5766
+CCBA	6BEF
+CCBB	8892
+CCBC	78B3
+CCBD	63A2
+CCBE	53F9
+CCBF	70AD
+CCC0	6C64
+CCC1	5858
+CCC2	642A
+CCC3	5802
+CCC4	68E0
+CCC5	819B
+CCC6	5510
+CCC7	7CD6
+CCC8	5018
+CCC9	8EBA
+CCCA	6DCC
+CCCB	8D9F
+CCCC	70EB
+CCCD	638F
+CCCE	6D9B
+CCCF	6ED4
+CCD0	7EE6
+CCD1	8404
+CCD2	6843
+CCD3	9003
+CCD4	6DD8
+CCD5	9676
+CCD6	8BA8
+CCD7	5957
+CCD8	7279
+CCD9	85E4
+CCDA	817E
+CCDB	75BC
+CCDC	8A8A
+CCDD	68AF
+CCDE	5254
+CCDF	8E22
+CCE0	9511
+CCE1	63D0
+CCE2	9898
+CCE3	8E44
+CCE4	557C
+CCE5	4F53
+CCE6	66FF
+CCE7	568F
+CCE8	60D5
+CCE9	6D95
+CCEA	5243
+CCEB	5C49
+CCEC	5929
+CCED	6DFB
+CCEE	586B
+CCEF	7530
+CCF0	751C
+CCF1	606C
+CCF2	8214
+CCF3	8146
+CCF4	6311
+CCF5	6761
+CCF6	8FE2
+CCF7	773A
+CCF8	8DF3
+CCF9	8D34
+CCFA	94C1
+CCFB	5E16
+CCFC	5385
+CCFD	542C
+CCFE	70C3
+CDA1	6C40
+CDA2	5EF7
+CDA3	505C
+CDA4	4EAD
+CDA5	5EAD
+CDA6	633A
+CDA7	8247
+CDA8	901A
+CDA9	6850
+CDAA	916E
+CDAB	77B3
+CDAC	540C
+CDAD	94DC
+CDAE	5F64
+CDAF	7AE5
+CDB0	6876
+CDB1	6345
+CDB2	7B52
+CDB3	7EDF
+CDB4	75DB
+CDB5	5077
+CDB6	6295
+CDB7	5934
+CDB8	900F
+CDB9	51F8
+CDBA	79C3
+CDBB	7A81
+CDBC	56FE
+CDBD	5F92
+CDBE	9014
+CDBF	6D82
+CDC0	5C60
+CDC1	571F
+CDC2	5410
+CDC3	5154
+CDC4	6E4D
+CDC5	56E2
+CDC6	63A8
+CDC7	9893
+CDC8	817F
+CDC9	8715
+CDCA	892A
+CDCB	9000
+CDCC	541E
+CDCD	5C6F
+CDCE	81C0
+CDCF	62D6
+CDD0	6258
+CDD1	8131
+CDD2	9E35
+CDD3	9640
+CDD4	9A6E
+CDD5	9A7C
+CDD6	692D
+CDD7	59A5
+CDD8	62D3
+CDD9	553E
+CDDA	6316
+CDDB	54C7
+CDDC	86D9
+CDDD	6D3C
+CDDE	5A03
+CDDF	74E6
+CDE0	889C
+CDE1	6B6A
+CDE2	5916
+CDE3	8C4C
+CDE4	5F2F
+CDE5	6E7E
+CDE6	73A9
+CDE7	987D
+CDE8	4E38
+CDE9	70F7
+CDEA	5B8C
+CDEB	7897
+CDEC	633D
+CDED	665A
+CDEE	7696
+CDEF	60CB
+CDF0	5B9B
+CDF1	5A49
+CDF2	4E07
+CDF3	8155
+CDF4	6C6A
+CDF5	738B
+CDF6	4EA1
+CDF7	6789
+CDF8	7F51
+CDF9	5F80
+CDFA	65FA
+CDFB	671B
+CDFC	5FD8
+CDFD	5984
+CDFE	5A01
+CEA1	5DCD
+CEA2	5FAE
+CEA3	5371
+CEA4	97E6
+CEA5	8FDD
+CEA6	6845
+CEA7	56F4
+CEA8	552F
+CEA9	60DF
+CEAA	4E3A
+CEAB	6F4D
+CEAC	7EF4
+CEAD	82C7
+CEAE	840E
+CEAF	59D4
+CEB0	4F1F
+CEB1	4F2A
+CEB2	5C3E
+CEB3	7EAC
+CEB4	672A
+CEB5	851A
+CEB6	5473
+CEB7	754F
+CEB8	80C3
+CEB9	5582
+CEBA	9B4F
+CEBB	4F4D
+CEBC	6E2D
+CEBD	8C13
+CEBE	5C09
+CEBF	6170
+CEC0	536B
+CEC1	761F
+CEC2	6E29
+CEC3	868A
+CEC4	6587
+CEC5	95FB
+CEC6	7EB9
+CEC7	543B
+CEC8	7A33
+CEC9	7D0A
+CECA	95EE
+CECB	55E1
+CECC	7FC1
+CECD	74EE
+CECE	631D
+CECF	8717
+CED0	6DA1
+CED1	7A9D
+CED2	6211
+CED3	65A1
+CED4	5367
+CED5	63E1
+CED6	6C83
+CED7	5DEB
+CED8	545C
+CED9	94A8
+CEDA	4E4C
+CEDB	6C61
+CEDC	8BEC
+CEDD	5C4B
+CEDE	65E0
+CEDF	829C
+CEE0	68A7
+CEE1	543E
+CEE2	5434
+CEE3	6BCB
+CEE4	6B66
+CEE5	4E94
+CEE6	6342
+CEE7	5348
+CEE8	821E
+CEE9	4F0D
+CEEA	4FAE
+CEEB	575E
+CEEC	620A
+CEED	96FE
+CEEE	6664
+CEEF	7269
+CEF0	52FF
+CEF1	52A1
+CEF2	609F
+CEF3	8BEF
+CEF4	6614
+CEF5	7199
+CEF6	6790
+CEF7	897F
+CEF8	7852
+CEF9	77FD
+CEFA	6670
+CEFB	563B
+CEFC	5438
+CEFD	9521
+CEFE	727A
+CFA1	7A00
+CFA2	606F
+CFA3	5E0C
+CFA4	6089
+CFA5	819D
+CFA6	5915
+CFA7	60DC
+CFA8	7184
+CFA9	70EF
+CFAA	6EAA
+CFAB	6C50
+CFAC	7280
+CFAD	6A84
+CFAE	88AD
+CFAF	5E2D
+CFB0	4E60
+CFB1	5AB3
+CFB2	559C
+CFB3	94E3
+CFB4	6D17
+CFB5	7CFB
+CFB6	9699
+CFB7	620F
+CFB8	7EC6
+CFB9	778E
+CFBA	867E
+CFBB	5323
+CFBC	971E
+CFBD	8F96
+CFBE	6687
+CFBF	5CE1
+CFC0	4FA0
+CFC1	72ED
+CFC2	4E0B
+CFC3	53A6
+CFC4	590F
+CFC5	5413
+CFC6	6380
+CFC7	9528
+CFC8	5148
+CFC9	4ED9
+CFCA	9C9C
+CFCB	7EA4
+CFCC	54B8
+CFCD	8D24
+CFCE	8854
+CFCF	8237
+CFD0	95F2
+CFD1	6D8E
+CFD2	5F26
+CFD3	5ACC
+CFD4	663E
+CFD5	9669
+CFD6	73B0
+CFD7	732E
+CFD8	53BF
+CFD9	817A
+CFDA	9985
+CFDB	7FA1
+CFDC	5BAA
+CFDD	9677
+CFDE	9650
+CFDF	7EBF
+CFE0	76F8
+CFE1	53A2
+CFE2	9576
+CFE3	9999
+CFE4	7BB1
+CFE5	8944
+CFE6	6E58
+CFE7	4E61
+CFE8	7FD4
+CFE9	7965
+CFEA	8BE6
+CFEB	60F3
+CFEC	54CD
+CFED	4EAB
+CFEE	9879
+CFEF	5DF7
+CFF0	6A61
+CFF1	50CF
+CFF2	5411
+CFF3	8C61
+CFF4	8427
+CFF5	785D
+CFF6	9704
+CFF7	524A
+CFF8	54EE
+CFF9	56A3
+CFFA	9500
+CFFB	6D88
+CFFC	5BB5
+CFFD	6DC6
+CFFE	6653
+D0A1	5C0F
+D0A2	5B5D
+D0A3	6821
+D0A4	8096
+D0A5	5578
+D0A6	7B11
+D0A7	6548
+D0A8	6954
+D0A9	4E9B
+D0AA	6B47
+D0AB	874E
+D0AC	978B
+D0AD	534F
+D0AE	631F
+D0AF	643A
+D0B0	90AA
+D0B1	659C
+D0B2	80C1
+D0B3	8C10
+D0B4	5199
+D0B5	68B0
+D0B6	5378
+D0B7	87F9
+D0B8	61C8
+D0B9	6CC4
+D0BA	6CFB
+D0BB	8C22
+D0BC	5C51
+D0BD	85AA
+D0BE	82AF
+D0BF	950C
+D0C0	6B23
+D0C1	8F9B
+D0C2	65B0
+D0C3	5FFB
+D0C4	5FC3
+D0C5	4FE1
+D0C6	8845
+D0C7	661F
+D0C8	8165
+D0C9	7329
+D0CA	60FA
+D0CB	5174
+D0CC	5211
+D0CD	578B
+D0CE	5F62
+D0CF	90A2
+D0D0	884C
+D0D1	9192
+D0D2	5E78
+D0D3	674F
+D0D4	6027
+D0D5	59D3
+D0D6	5144
+D0D7	51F6
+D0D8	80F8
+D0D9	5308
+D0DA	6C79
+D0DB	96C4
+D0DC	718A
+D0DD	4F11
+D0DE	4FEE
+D0DF	7F9E
+D0E0	673D
+D0E1	55C5
+D0E2	9508
+D0E3	79C0
+D0E4	8896
+D0E5	7EE3
+D0E6	589F
+D0E7	620C
+D0E8	9700
+D0E9	865A
+D0EA	5618
+D0EB	987B
+D0EC	5F90
+D0ED	8BB8
+D0EE	84C4
+D0EF	9157
+D0F0	53D9
+D0F1	65ED
+D0F2	5E8F
+D0F3	755C
+D0F4	6064
+D0F5	7D6E
+D0F6	5A7F
+D0F7	7EEA
+D0F8	7EED
+D0F9	8F69
+D0FA	55A7
+D0FB	5BA3
+D0FC	60AC
+D0FD	65CB
+D0FE	7384
+D1A1	9009
+D1A2	7663
+D1A3	7729
+D1A4	7EDA
+D1A5	9774
+D1A6	859B
+D1A7	5B66
+D1A8	7A74
+D1A9	96EA
+D1AA	8840
+D1AB	52CB
+D1AC	718F
+D1AD	5FAA
+D1AE	65EC
+D1AF	8BE2
+D1B0	5BFB
+D1B1	9A6F
+D1B2	5DE1
+D1B3	6B89
+D1B4	6C5B
+D1B5	8BAD
+D1B6	8BAF
+D1B7	900A
+D1B8	8FC5
+D1B9	538B
+D1BA	62BC
+D1BB	9E26
+D1BC	9E2D
+D1BD	5440
+D1BE	4E2B
+D1BF	82BD
+D1C0	7259
+D1C1	869C
+D1C2	5D16
+D1C3	8859
+D1C4	6DAF
+D1C5	96C5
+D1C6	54D1
+D1C7	4E9A
+D1C8	8BB6
+D1C9	7109
+D1CA	54BD
+D1CB	9609
+D1CC	70DF
+D1CD	6DF9
+D1CE	76D0
+D1CF	4E25
+D1D0	7814
+D1D1	8712
+D1D2	5CA9
+D1D3	5EF6
+D1D4	8A00
+D1D5	989C
+D1D6	960E
+D1D7	708E
+D1D8	6CBF
+D1D9	5944
+D1DA	63A9
+D1DB	773C
+D1DC	884D
+D1DD	6F14
+D1DE	8273
+D1DF	5830
+D1E0	71D5
+D1E1	538C
+D1E2	781A
+D1E3	96C1
+D1E4	5501
+D1E5	5F66
+D1E6	7130
+D1E7	5BB4
+D1E8	8C1A
+D1E9	9A8C
+D1EA	6B83
+D1EB	592E
+D1EC	9E2F
+D1ED	79E7
+D1EE	6768
+D1EF	626C
+D1F0	4F6F
+D1F1	75A1
+D1F2	7F8A
+D1F3	6D0B
+D1F4	9633
+D1F5	6C27
+D1F6	4EF0
+D1F7	75D2
+D1F8	517B
+D1F9	6837
+D1FA	6F3E
+D1FB	9080
+D1FC	8170
+D1FD	5996
+D1FE	7476
+D2A1	6447
+D2A2	5C27
+D2A3	9065
+D2A4	7A91
+D2A5	8C23
+D2A6	59DA
+D2A7	54AC
+D2A8	8200
+D2A9	836F
+D2AA	8981
+D2AB	8000
+D2AC	6930
+D2AD	564E
+D2AE	8036
+D2AF	7237
+D2B0	91CE
+D2B1	51B6
+D2B2	4E5F
+D2B3	9875
+D2B4	6396
+D2B5	4E1A
+D2B6	53F6
+D2B7	66F3
+D2B8	814B
+D2B9	591C
+D2BA	6DB2
+D2BB	4E00
+D2BC	58F9
+D2BD	533B
+D2BE	63D6
+D2BF	94F1
+D2C0	4F9D
+D2C1	4F0A
+D2C2	8863
+D2C3	9890
+D2C4	5937
+D2C5	9057
+D2C6	79FB
+D2C7	4EEA
+D2C8	80F0
+D2C9	7591
+D2CA	6C82
+D2CB	5B9C
+D2CC	59E8
+D2CD	5F5D
+D2CE	6905
+D2CF	8681
+D2D0	501A
+D2D1	5DF2
+D2D2	4E59
+D2D3	77E3
+D2D4	4EE5
+D2D5	827A
+D2D6	6291
+D2D7	6613
+D2D8	9091
+D2D9	5C79
+D2DA	4EBF
+D2DB	5F79
+D2DC	81C6
+D2DD	9038
+D2DE	8084
+D2DF	75AB
+D2E0	4EA6
+D2E1	88D4
+D2E2	610F
+D2E3	6BC5
+D2E4	5FC6
+D2E5	4E49
+D2E6	76CA
+D2E7	6EA2
+D2E8	8BE3
+D2E9	8BAE
+D2EA	8C0A
+D2EB	8BD1
+D2EC	5F02
+D2ED	7FFC
+D2EE	7FCC
+D2EF	7ECE
+D2F0	8335
+D2F1	836B
+D2F2	56E0
+D2F3	6BB7
+D2F4	97F3
+D2F5	9634
+D2F6	59FB
+D2F7	541F
+D2F8	94F6
+D2F9	6DEB
+D2FA	5BC5
+D2FB	996E
+D2FC	5C39
+D2FD	5F15
+D2FE	9690
+D3A1	5370
+D3A2	82F1
+D3A3	6A31
+D3A4	5A74
+D3A5	9E70
+D3A6	5E94
+D3A7	7F28
+D3A8	83B9
+D3A9	8424
+D3AA	8425
+D3AB	8367
+D3AC	8747
+D3AD	8FCE
+D3AE	8D62
+D3AF	76C8
+D3B0	5F71
+D3B1	9896
+D3B2	786C
+D3B3	6620
+D3B4	54DF
+D3B5	62E5
+D3B6	4F63
+D3B7	81C3
+D3B8	75C8
+D3B9	5EB8
+D3BA	96CD
+D3BB	8E0A
+D3BC	86F9
+D3BD	548F
+D3BE	6CF3
+D3BF	6D8C
+D3C0	6C38
+D3C1	607F
+D3C2	52C7
+D3C3	7528
+D3C4	5E7D
+D3C5	4F18
+D3C6	60A0
+D3C7	5FE7
+D3C8	5C24
+D3C9	7531
+D3CA	90AE
+D3CB	94C0
+D3CC	72B9
+D3CD	6CB9
+D3CE	6E38
+D3CF	9149
+D3D0	6709
+D3D1	53CB
+D3D2	53F3
+D3D3	4F51
+D3D4	91C9
+D3D5	8BF1
+D3D6	53C8
+D3D7	5E7C
+D3D8	8FC2
+D3D9	6DE4
+D3DA	4E8E
+D3DB	76C2
+D3DC	6986
+D3DD	865E
+D3DE	611A
+D3DF	8206
+D3E0	4F59
+D3E1	4FDE
+D3E2	903E
+D3E3	9C7C
+D3E4	6109
+D3E5	6E1D
+D3E6	6E14
+D3E7	9685
+D3E8	4E88
+D3E9	5A31
+D3EA	96E8
+D3EB	4E0E
+D3EC	5C7F
+D3ED	79B9
+D3EE	5B87
+D3EF	8BED
+D3F0	7FBD
+D3F1	7389
+D3F2	57DF
+D3F3	828B
+D3F4	90C1
+D3F5	5401
+D3F6	9047
+D3F7	55BB
+D3F8	5CEA
+D3F9	5FA1
+D3FA	6108
+D3FB	6B32
+D3FC	72F1
+D3FD	80B2
+D3FE	8A89
+D4A1	6D74
+D4A2	5BD3
+D4A3	88D5
+D4A4	9884
+D4A5	8C6B
+D4A6	9A6D
+D4A7	9E33
+D4A8	6E0A
+D4A9	51A4
+D4AA	5143
+D4AB	57A3
+D4AC	8881
+D4AD	539F
+D4AE	63F4
+D4AF	8F95
+D4B0	56ED
+D4B1	5458
+D4B2	5706
+D4B3	733F
+D4B4	6E90
+D4B5	7F18
+D4B6	8FDC
+D4B7	82D1
+D4B8	613F
+D4B9	6028
+D4BA	9662
+D4BB	66F0
+D4BC	7EA6
+D4BD	8D8A
+D4BE	8DC3
+D4BF	94A5
+D4C0	5CB3
+D4C1	7CA4
+D4C2	6708
+D4C3	60A6
+D4C4	9605
+D4C5	8018
+D4C6	4E91
+D4C7	90E7
+D4C8	5300
+D4C9	9668
+D4CA	5141
+D4CB	8FD0
+D4CC	8574
+D4CD	915D
+D4CE	6655
+D4CF	97F5
+D4D0	5B55
+D4D1	531D
+D4D2	7838
+D4D3	6742
+D4D4	683D
+D4D5	54C9
+D4D6	707E
+D4D7	5BB0
+D4D8	8F7D
+D4D9	518D
+D4DA	5728
+D4DB	54B1
+D4DC	6512
+D4DD	6682
+D4DE	8D5E
+D4DF	8D43
+D4E0	810F
+D4E1	846C
+D4E2	906D
+D4E3	7CDF
+D4E4	51FF
+D4E5	85FB
+D4E6	67A3
+D4E7	65E9
+D4E8	6FA1
+D4E9	86A4
+D4EA	8E81
+D4EB	566A
+D4EC	9020
+D4ED	7682
+D4EE	7076
+D4EF	71E5
+D4F0	8D23
+D4F1	62E9
+D4F2	5219
+D4F3	6CFD
+D4F4	8D3C
+D4F5	600E
+D4F6	589E
+D4F7	618E
+D4F8	66FE
+D4F9	8D60
+D4FA	624E
+D4FB	55B3
+D4FC	6E23
+D4FD	672D
+D4FE	8F67
+D5A1	94E1
+D5A2	95F8
+D5A3	7728
+D5A4	6805
+D5A5	69A8
+D5A6	548B
+D5A7	4E4D
+D5A8	70B8
+D5A9	8BC8
+D5AA	6458
+D5AB	658B
+D5AC	5B85
+D5AD	7A84
+D5AE	503A
+D5AF	5BE8
+D5B0	77BB
+D5B1	6BE1
+D5B2	8A79
+D5B3	7C98
+D5B4	6CBE
+D5B5	76CF
+D5B6	65A9
+D5B7	8F97
+D5B8	5D2D
+D5B9	5C55
+D5BA	8638
+D5BB	6808
+D5BC	5360
+D5BD	6218
+D5BE	7AD9
+D5BF	6E5B
+D5C0	7EFD
+D5C1	6A1F
+D5C2	7AE0
+D5C3	5F70
+D5C4	6F33
+D5C5	5F20
+D5C6	638C
+D5C7	6DA8
+D5C8	6756
+D5C9	4E08
+D5CA	5E10
+D5CB	8D26
+D5CC	4ED7
+D5CD	80C0
+D5CE	7634
+D5CF	969C
+D5D0	62DB
+D5D1	662D
+D5D2	627E
+D5D3	6CBC
+D5D4	8D75
+D5D5	7167
+D5D6	7F69
+D5D7	5146
+D5D8	8087
+D5D9	53EC
+D5DA	906E
+D5DB	6298
+D5DC	54F2
+D5DD	86F0
+D5DE	8F99
+D5DF	8005
+D5E0	9517
+D5E1	8517
+D5E2	8FD9
+D5E3	6D59
+D5E4	73CD
+D5E5	659F
+D5E6	771F
+D5E7	7504
+D5E8	7827
+D5E9	81FB
+D5EA	8D1E
+D5EB	9488
+D5EC	4FA6
+D5ED	6795
+D5EE	75B9
+D5EF	8BCA
+D5F0	9707
+D5F1	632F
+D5F2	9547
+D5F3	9635
+D5F4	84B8
+D5F5	6323
+D5F6	7741
+D5F7	5F81
+D5F8	72F0
+D5F9	4E89
+D5FA	6014
+D5FB	6574
+D5FC	62EF
+D5FD	6B63
+D5FE	653F
+D6A1	5E27
+D6A2	75C7
+D6A3	90D1
+D6A4	8BC1
+D6A5	829D
+D6A6	679D
+D6A7	652F
+D6A8	5431
+D6A9	8718
+D6AA	77E5
+D6AB	80A2
+D6AC	8102
+D6AD	6C41
+D6AE	4E4B
+D6AF	7EC7
+D6B0	804C
+D6B1	76F4
+D6B2	690D
+D6B3	6B96
+D6B4	6267
+D6B5	503C
+D6B6	4F84
+D6B7	5740
+D6B8	6307
+D6B9	6B62
+D6BA	8DBE
+D6BB	53EA
+D6BC	65E8
+D6BD	7EB8
+D6BE	5FD7
+D6BF	631A
+D6C0	63B7
+D6C1	81F3
+D6C2	81F4
+D6C3	7F6E
+D6C4	5E1C
+D6C5	5CD9
+D6C6	5236
+D6C7	667A
+D6C8	79E9
+D6C9	7A1A
+D6CA	8D28
+D6CB	7099
+D6CC	75D4
+D6CD	6EDE
+D6CE	6CBB
+D6CF	7A92
+D6D0	4E2D
+D6D1	76C5
+D6D2	5FE0
+D6D3	949F
+D6D4	8877
+D6D5	7EC8
+D6D6	79CD
+D6D7	80BF
+D6D8	91CD
+D6D9	4EF2
+D6DA	4F17
+D6DB	821F
+D6DC	5468
+D6DD	5DDE
+D6DE	6D32
+D6DF	8BCC
+D6E0	7CA5
+D6E1	8F74
+D6E2	8098
+D6E3	5E1A
+D6E4	5492
+D6E5	76B1
+D6E6	5B99
+D6E7	663C
+D6E8	9AA4
+D6E9	73E0
+D6EA	682A
+D6EB	86DB
+D6EC	6731
+D6ED	732A
+D6EE	8BF8
+D6EF	8BDB
+D6F0	9010
+D6F1	7AF9
+D6F2	70DB
+D6F3	716E
+D6F4	62C4
+D6F5	77A9
+D6F6	5631
+D6F7	4E3B
+D6F8	8457
+D6F9	67F1
+D6FA	52A9
+D6FB	86C0
+D6FC	8D2E
+D6FD	94F8
+D6FE	7B51
+D7A1	4F4F
+D7A2	6CE8
+D7A3	795D
+D7A4	9A7B
+D7A5	6293
+D7A6	722A
+D7A7	62FD
+D7A8	4E13
+D7A9	7816
+D7AA	8F6C
+D7AB	64B0
+D7AC	8D5A
+D7AD	7BC6
+D7AE	6869
+D7AF	5E84
+D7B0	88C5
+D7B1	5986
+D7B2	649E
+D7B3	58EE
+D7B4	72B6
+D7B5	690E
+D7B6	9525
+D7B7	8FFD
+D7B8	8D58
+D7B9	5760
+D7BA	7F00
+D7BB	8C06
+D7BC	51C6
+D7BD	6349
+D7BE	62D9
+D7BF	5353
+D7C0	684C
+D7C1	7422
+D7C2	8301
+D7C3	914C
+D7C4	5544
+D7C5	7740
+D7C6	707C
+D7C7	6D4A
+D7C8	5179
+D7C9	54A8
+D7CA	8D44
+D7CB	59FF
+D7CC	6ECB
+D7CD	6DC4
+D7CE	5B5C
+D7CF	7D2B
+D7D0	4ED4
+D7D1	7C7D
+D7D2	6ED3
+D7D3	5B50
+D7D4	81EA
+D7D5	6E0D
+D7D6	5B57
+D7D7	9B03
+D7D8	68D5
+D7D9	8E2A
+D7DA	5B97
+D7DB	7EFC
+D7DC	603B
+D7DD	7EB5
+D7DE	90B9
+D7DF	8D70
+D7E0	594F
+D7E1	63CD
+D7E2	79DF
+D7E3	8DB3
+D7E4	5352
+D7E5	65CF
+D7E6	7956
+D7E7	8BC5
+D7E8	963B
+D7E9	7EC4
+D7EA	94BB
+D7EB	7E82
+D7EC	5634
+D7ED	9189
+D7EE	6700
+D7EF	7F6A
+D7F0	5C0A
+D7F1	9075
+D7F2	6628
+D7F3	5DE6
+D7F4	4F50
+D7F5	67DE
+D7F6	505A
+D7F7	4F5C
+D7F8	5750
+D7F9	5EA7
+D8A1	4E8D
+D8A2	4E0C
+D8A3	5140
+D8A4	4E10
+D8A5	5EFF
+D8A6	5345
+D8A7	4E15
+D8A8	4E98
+D8A9	4E1E
+D8AA	9B32
+D8AB	5B6C
+D8AC	5669
+D8AD	4E28
+D8AE	79BA
+D8AF	4E3F
+D8B0	5315
+D8B1	4E47
+D8B2	592D
+D8B3	723B
+D8B4	536E
+D8B5	6C10
+D8B6	56DF
+D8B7	80E4
+D8B8	9997
+D8B9	6BD3
+D8BA	777E
+D8BB	9F17
+D8BC	4E36
+D8BD	4E9F
+D8BE	9F10
+D8BF	4E5C
+D8C0	4E69
+D8C1	4E93
+D8C2	8288
+D8C3	5B5B
+D8C4	556C
+D8C5	560F
+D8C6	4EC4
+D8C7	538D
+D8C8	539D
+D8C9	53A3
+D8CA	53A5
+D8CB	53AE
+D8CC	9765
+D8CD	8D5D
+D8CE	531A
+D8CF	53F5
+D8D0	5326
+D8D1	532E
+D8D2	533E
+D8D3	8D5C
+D8D4	5366
+D8D5	5363
+D8D6	5202
+D8D7	5208
+D8D8	520E
+D8D9	522D
+D8DA	5233
+D8DB	523F
+D8DC	5240
+D8DD	524C
+D8DE	525E
+D8DF	5261
+D8E0	525C
+D8E1	84AF
+D8E2	527D
+D8E3	5282
+D8E4	5281
+D8E5	5290
+D8E6	5293
+D8E7	5182
+D8E8	7F54
+D8E9	4EBB
+D8EA	4EC3
+D8EB	4EC9
+D8EC	4EC2
+D8ED	4EE8
+D8EE	4EE1
+D8EF	4EEB
+D8F0	4EDE
+D8F1	4F1B
+D8F2	4EF3
+D8F3	4F22
+D8F4	4F64
+D8F5	4EF5
+D8F6	4F25
+D8F7	4F27
+D8F8	4F09
+D8F9	4F2B
+D8FA	4F5E
+D8FB	4F67
+D8FC	6538
+D8FD	4F5A
+D8FE	4F5D
+D9A1	4F5F
+D9A2	4F57
+D9A3	4F32
+D9A4	4F3D
+D9A5	4F76
+D9A6	4F74
+D9A7	4F91
+D9A8	4F89
+D9A9	4F83
+D9AA	4F8F
+D9AB	4F7E
+D9AC	4F7B
+D9AD	4FAA
+D9AE	4F7C
+D9AF	4FAC
+D9B0	4F94
+D9B1	4FE6
+D9B2	4FE8
+D9B3	4FEA
+D9B4	4FC5
+D9B5	4FDA
+D9B6	4FE3
+D9B7	4FDC
+D9B8	4FD1
+D9B9	4FDF
+D9BA	4FF8
+D9BB	5029
+D9BC	504C
+D9BD	4FF3
+D9BE	502C
+D9BF	500F
+D9C0	502E
+D9C1	502D
+D9C2	4FFE
+D9C3	501C
+D9C4	500C
+D9C5	5025
+D9C6	5028
+D9C7	507E
+D9C8	5043
+D9C9	5055
+D9CA	5048
+D9CB	504E
+D9CC	506C
+D9CD	507B
+D9CE	50A5
+D9CF	50A7
+D9D0	50A9
+D9D1	50BA
+D9D2	50D6
+D9D3	5106
+D9D4	50ED
+D9D5	50EC
+D9D6	50E6
+D9D7	50EE
+D9D8	5107
+D9D9	510B
+D9DA	4EDD
+D9DB	6C3D
+D9DC	4F58
+D9DD	4F65
+D9DE	4FCE
+D9DF	9FA0
+D9E0	6C46
+D9E1	7C74
+D9E2	516E
+D9E3	5DFD
+D9E4	9EC9
+D9E5	9998
+D9E6	5181
+D9E7	5914
+D9E8	52F9
+D9E9	530D
+D9EA	8A07
+D9EB	5310
+D9EC	51EB
+D9ED	5919
+D9EE	5155
+D9EF	4EA0
+D9F0	5156
+D9F1	4EB3
+D9F2	886E
+D9F3	88A4
+D9F4	4EB5
+D9F5	8114
+D9F6	88D2
+D9F7	7980
+D9F8	5B34
+D9F9	8803
+D9FA	7FB8
+D9FB	51AB
+D9FC	51B1
+D9FD	51BD
+D9FE	51BC
+DAA1	51C7
+DAA2	5196
+DAA3	51A2
+DAA4	51A5
+DAA5	8BA0
+DAA6	8BA6
+DAA7	8BA7
+DAA8	8BAA
+DAA9	8BB4
+DAAA	8BB5
+DAAB	8BB7
+DAAC	8BC2
+DAAD	8BC3
+DAAE	8BCB
+DAAF	8BCF
+DAB0	8BCE
+DAB1	8BD2
+DAB2	8BD3
+DAB3	8BD4
+DAB4	8BD6
+DAB5	8BD8
+DAB6	8BD9
+DAB7	8BDC
+DAB8	8BDF
+DAB9	8BE0
+DABA	8BE4
+DABB	8BE8
+DABC	8BE9
+DABD	8BEE
+DABE	8BF0
+DABF	8BF3
+DAC0	8BF6
+DAC1	8BF9
+DAC2	8BFC
+DAC3	8BFF
+DAC4	8C00
+DAC5	8C02
+DAC6	8C04
+DAC7	8C07
+DAC8	8C0C
+DAC9	8C0F
+DACA	8C11
+DACB	8C12
+DACC	8C14
+DACD	8C15
+DACE	8C16
+DACF	8C19
+DAD0	8C1B
+DAD1	8C18
+DAD2	8C1D
+DAD3	8C1F
+DAD4	8C20
+DAD5	8C21
+DAD6	8C25
+DAD7	8C27
+DAD8	8C2A
+DAD9	8C2B
+DADA	8C2E
+DADB	8C2F
+DADC	8C32
+DADD	8C33
+DADE	8C35
+DADF	8C36
+DAE0	5369
+DAE1	537A
+DAE2	961D
+DAE3	9622
+DAE4	9621
+DAE5	9631
+DAE6	962A
+DAE7	963D
+DAE8	963C
+DAE9	9642
+DAEA	9649
+DAEB	9654
+DAEC	965F
+DAED	9667
+DAEE	966C
+DAEF	9672
+DAF0	9674
+DAF1	9688
+DAF2	968D
+DAF3	9697
+DAF4	96B0
+DAF5	9097
+DAF6	909B
+DAF7	909D
+DAF8	9099
+DAF9	90AC
+DAFA	90A1
+DAFB	90B4
+DAFC	90B3
+DAFD	90B6
+DAFE	90BA
+DBA1	90B8
+DBA2	90B0
+DBA3	90CF
+DBA4	90C5
+DBA5	90BE
+DBA6	90D0
+DBA7	90C4
+DBA8	90C7
+DBA9	90D3
+DBAA	90E6
+DBAB	90E2
+DBAC	90DC
+DBAD	90D7
+DBAE	90DB
+DBAF	90EB
+DBB0	90EF
+DBB1	90FE
+DBB2	9104
+DBB3	9122
+DBB4	911E
+DBB5	9123
+DBB6	9131
+DBB7	912F
+DBB8	9139
+DBB9	9143
+DBBA	9146
+DBBB	520D
+DBBC	5942
+DBBD	52A2
+DBBE	52AC
+DBBF	52AD
+DBC0	52BE
+DBC1	54FF
+DBC2	52D0
+DBC3	52D6
+DBC4	52F0
+DBC5	53DF
+DBC6	71EE
+DBC7	77CD
+DBC8	5EF4
+DBC9	51F5
+DBCA	51FC
+DBCB	9B2F
+DBCC	53B6
+DBCD	5F01
+DBCE	755A
+DBCF	5DEF
+DBD0	574C
+DBD1	57A9
+DBD2	57A1
+DBD3	587E
+DBD4	58BC
+DBD5	58C5
+DBD6	58D1
+DBD7	5729
+DBD8	572C
+DBD9	572A
+DBDA	5733
+DBDB	5739
+DBDC	572E
+DBDD	572F
+DBDE	575C
+DBDF	573B
+DBE0	5742
+DBE1	5769
+DBE2	5785
+DBE3	576B
+DBE4	5786
+DBE5	577C
+DBE6	577B
+DBE7	5768
+DBE8	576D
+DBE9	5776
+DBEA	5773
+DBEB	57AD
+DBEC	57A4
+DBED	578C
+DBEE	57B2
+DBEF	57CF
+DBF0	57A7
+DBF1	57B4
+DBF2	5793
+DBF3	57A0
+DBF4	57D5
+DBF5	57D8
+DBF6	57DA
+DBF7	57D9
+DBF8	57D2
+DBF9	57B8
+DBFA	57F4
+DBFB	57EF
+DBFC	57F8
+DBFD	57E4
+DBFE	57DD
+DCA1	580B
+DCA2	580D
+DCA3	57FD
+DCA4	57ED
+DCA5	5800
+DCA6	581E
+DCA7	5819
+DCA8	5844
+DCA9	5820
+DCAA	5865
+DCAB	586C
+DCAC	5881
+DCAD	5889
+DCAE	589A
+DCAF	5880
+DCB0	99A8
+DCB1	9F19
+DCB2	61FF
+DCB3	8279
+DCB4	827D
+DCB5	827F
+DCB6	828F
+DCB7	828A
+DCB8	82A8
+DCB9	8284
+DCBA	828E
+DCBB	8291
+DCBC	8297
+DCBD	8299
+DCBE	82AB
+DCBF	82B8
+DCC0	82BE
+DCC1	82B0
+DCC2	82C8
+DCC3	82CA
+DCC4	82E3
+DCC5	8298
+DCC6	82B7
+DCC7	82AE
+DCC8	82CB
+DCC9	82CC
+DCCA	82C1
+DCCB	82A9
+DCCC	82B4
+DCCD	82A1
+DCCE	82AA
+DCCF	829F
+DCD0	82C4
+DCD1	82CE
+DCD2	82A4
+DCD3	82E1
+DCD4	8309
+DCD5	82F7
+DCD6	82E4
+DCD7	830F
+DCD8	8307
+DCD9	82DC
+DCDA	82F4
+DCDB	82D2
+DCDC	82D8
+DCDD	830C
+DCDE	82FB
+DCDF	82D3
+DCE0	8311
+DCE1	831A
+DCE2	8306
+DCE3