Submitted By: William Harrington (kb0iic at cross-lfs dot org)
Date: 10-01-2013
Initial Package Version: 4.8.1
Origin: Upstream
Upstream Status: Applied
Description: This is a branch update for gcc-4.8.1, and should be
             rechecked periodically.

This patch was made from Revision # 203062.

Added fix for BUILD_CXXFLAGS during crosscompile.
Added fix for ISL 2D + 1 form in parallelism check.

diff -Naur gcc-4.8.1.orig/boehm-gc/Makefile.am gcc-4.8.1/boehm-gc/Makefile.am
--- gcc-4.8.1.orig/boehm-gc/Makefile.am	2013-03-22 14:19:12.000000000 +0000
+++ gcc-4.8.1/boehm-gc/Makefile.am	2013-10-01 16:06:43.760554292 +0000
@@ -35,7 +35,7 @@
 
 # Include THREADLIBS here to ensure that the correct versions of
 # linuxthread semaphore functions get linked:
-libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS)
+libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(EXTRA_TEST_LIBS)
 libgcjgc_la_DEPENDENCIES = $(addobjs)
 libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
 libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS)
diff -Naur gcc-4.8.1.orig/boehm-gc/Makefile.in gcc-4.8.1/boehm-gc/Makefile.in
--- gcc-4.8.1.orig/boehm-gc/Makefile.in	2013-05-31 09:09:26.000000000 +0000
+++ gcc-4.8.1/boehm-gc/Makefile.in	2013-10-01 16:06:43.760554292 +0000
@@ -280,7 +280,7 @@
 
 # Include THREADLIBS here to ensure that the correct versions of
 # linuxthread semaphore functions get linked:
-libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS)
+libgcjgc_la_LIBADD = $(addobjs) $(THREADLIBS) $(EXTRA_TEST_LIBS)
 libgcjgc_la_DEPENDENCIES = $(addobjs)
 libgcjgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:2:0 -rpath $(toolexeclibdir)
 libgcjgc_la_LINK = $(LINK) $(libgcjgc_la_LDFLAGS)
diff -Naur gcc-4.8.1.orig/configure gcc-4.8.1/configure
--- gcc-4.8.1.orig/configure	2013-02-15 17:45:54.000000000 +0000
+++ gcc-4.8.1/configure	2013-10-01 16:06:43.764554292 +0000
@@ -5939,6 +5939,55 @@
   fi
 
 
+    if test "${gcc_cv_isl}" = no ; then
+
+  if test "${ENABLE_ISL_CHECK}" = yes ; then
+    _isl_saved_CFLAGS=$CFLAGS
+    _isl_saved_LDFLAGS=$LDFLAGS
+    _isl_saved_LIBS=$LIBS
+
+    CFLAGS="${_isl_saved_CFLAGS} ${islinc} ${gmpinc}"
+    LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs}"
+    LIBS="${_isl_saved_LIBS} -lisl"
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.12 of ISL" >&5
+$as_echo_n "checking for version 0.12 of ISL... " >&6; }
+    if test "$cross_compiling" = yes; then :
+  gcc_cv_isl=yes
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <isl/version.h>
+   #include <string.h>
+int
+main ()
+{
+if (strncmp (isl_version (), "isl-0.12", strlen ("isl-0.12")) != 0)
+     return 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gcc_cv_isl=yes
+else
+  gcc_cv_isl=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_isl" >&5
+$as_echo "$gcc_cv_isl" >&6; }
+
+    CFLAGS=$_isl_saved_CFLAGS
+    LDFLAGS=$_isl_saved_LDFLAGS
+    LIBS=$_isl_saved_LIBS
+  fi
+
+
+    fi
   fi
 
 
diff -Naur gcc-4.8.1.orig/configure.ac gcc-4.8.1/configure.ac
--- gcc-4.8.1.orig/configure.ac	2013-02-15 17:45:54.000000000 +0000
+++ gcc-4.8.1/configure.ac	2013-10-01 16:06:43.764554292 +0000
@@ -1630,6 +1630,9 @@
   ISL_CHECK_VERSION(0,10)
   if test "${gcc_cv_isl}" = no ; then
     ISL_CHECK_VERSION(0,11)
+    if test "${gcc_cv_isl}" = no ; then
+      ISL_CHECK_VERSION(0,12)
+    fi
   fi
   dnl Only execute fail-action, if ISL has been requested.
   ISL_IF_FAILED([
diff -Naur gcc-4.8.1.orig/fixincludes/fixincl.x gcc-4.8.1/fixincludes/fixincl.x
--- gcc-4.8.1.orig/fixincludes/fixincl.x	2013-01-16 04:07:20.000000000 +0000
+++ gcc-4.8.1/fixincludes/fixincl.x	2013-10-01 16:06:43.764554292 +0000
@@ -2,11 +2,11 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
- * It has been AutoGen-ed  Saturday December 29, 2012 at 09:17:09 AM BRST
+ * It has been AutoGen-ed  Thursday May 16, 2013 at 03:34:25 PM MEST
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Dec 29 09:17:10 BRST 2012
+/* DO NOT SVN-MERGE THIS FILE, EITHER Thu May 16 15:34:25 MEST 2013
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -6663,7 +6663,7 @@
  */
 static const char* apzSolaris_Pow_Int_OverloadPatch[] = {
     "format",
-    "#ifndef __GXX_EXPERIMENTAL_CXX0X__\n\
+    "#if __cplusplus < 201103L\n\
 %0\n\
 #endif",
     (char*)NULL };
diff -Naur gcc-4.8.1.orig/fixincludes/inclhack.def gcc-4.8.1/fixincludes/inclhack.def
--- gcc-4.8.1.orig/fixincludes/inclhack.def	2013-01-16 04:07:20.000000000 +0000
+++ gcc-4.8.1/fixincludes/inclhack.def	2013-10-01 16:06:43.764554292 +0000
@@ -3447,7 +3447,7 @@
 
 
 /*
- *  The pow overloads with int were removed in C++ 2011.
+ *  The pow overloads with int were removed in C++ 2011 DR 550.
  */
 fix = {
     hackname  = solaris_pow_int_overload;
@@ -3456,7 +3456,7 @@
     select    = "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\)"
 		" *\\{[^{}]*\n[^{}]*\\}";
     c_fix     = format;
-    c_fix_arg = "#ifndef __GXX_EXPERIMENTAL_CXX0X__\n%0\n#endif";
+    c_fix_arg = "#if __cplusplus < 201103L\n%0\n#endif";
 
     test_text =
     "	inline long double pow(long double __X, int __Y) { return\n"
diff -Naur gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h
--- gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h	2011-08-10 08:43:38.000000000 +0000
+++ gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h	2013-10-01 16:06:43.764554292 +0000
@@ -10,7 +10,7 @@
 
 
 #if defined( SOLARIS_POW_INT_OVERLOAD_CHECK )
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
 	inline long double pow(long double __X, int __Y) { return
 		__powl(__X, (long double) (__Y)); }
 #endif
diff -Naur gcc-4.8.1.orig/gcc/ChangeLog gcc-4.8.1/gcc/ChangeLog
--- gcc-4.8.1.orig/gcc/ChangeLog	2013-05-31 09:02:05.000000000 +0000
+++ gcc-4.8.1/gcc/ChangeLog	2013-10-01 16:08:15.584551652 +0000
@@ -1,3 +1,12 @@
+2013-07-13  Tobias Grosser  <tobias@grosser.es>
+
+	PR tree-optimization/54094
+	* graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
+	  scheduling dimension for the parallelism check from the polyhedral
+	  information in the AST.
+	* graphite-dependences.c (carries_deps): Do not assume the schedule is
+	  in 2D + 1 form.
+
 2013-05-31  Release Manager
 
 	* GCC 4.8.1 released.
diff -Naur gcc-4.8.1.orig/gcc/DATESTAMP gcc-4.8.1/gcc/DATESTAMP
--- gcc-4.8.1.orig/gcc/DATESTAMP	2013-05-31 00:16:35.000000000 +0000
+++ gcc-4.8.1/gcc/DATESTAMP	2013-10-01 16:06:43.968554286 +0000
@@ -1 +1 @@
-20130531
+20131001
diff -Naur gcc-4.8.1.orig/gcc/Makefile.in gcc-4.8.1/gcc/Makefile.in
--- gcc-4.8.1.orig/gcc/Makefile.in	2013-05-21 16:00:49.000000000 +0000
+++ gcc-4.8.1/gcc/Makefile.in	2013-10-01 16:06:43.996554285 +0000
@@ -2505,7 +2505,7 @@
    $(TM_H) coretypes.h $(TREE_PASS_H) $(FLAGS_H) \
    tree-iterator.h $(BASIC_BLOCK_H) $(GIMPLE_H) $(TREE_INLINE_H) \
    $(VEC_H) langhooks.h alloc-pool.h pointer-set.h $(CFGLOOP_H) \
-   $(TARGET_H) $(GIMPLE_PRETTY_PRINT_H) $(DIAGNOSTIC_CORE_H)
+   $(TARGET_H) $(GIMPLE_PRETTY_PRINT_H) $(DIAGNOSTIC_CORE_H) $(PARAMS_H)
 tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
    $(TREE_H) $(TM_P_H) $(GGC_H) \
    $(DIAGNOSTIC_H) $(BASIC_BLOCK_H) $(FLAGS_H) $(TM_H) \
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h	2013-02-25 19:08:51.000000000 +0000
+++ gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h	2013-10-01 16:06:43.764554292 +0000
@@ -360,10 +360,6 @@
    constant CONSTRUCTOR.  */
 #define DECL_CONST_ADDRESS_P(NODE) DECL_LANG_FLAG_0 (CONST_DECL_CHECK (NODE))
 
-/* Nonzero in a PARM_DECL if it is always used by double reference, i.e. a
-   pair of INDIRECT_REFs is needed to access the object.  */
-#define DECL_BY_DOUBLE_REF_P(NODE) DECL_LANG_FLAG_0 (PARM_DECL_CHECK (NODE))
-
 /* Nonzero in a FIELD_DECL if it is declared as aliased.  */
 #define DECL_ALIASED_P(NODE) DECL_LANG_FLAG_0 (FIELD_DECL_CHECK (NODE))
 
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c gcc-4.8.1/gcc/ada/gcc-interface/decl.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c	2013-05-07 08:03:15.000000000 +0000
+++ gcc-4.8.1/gcc/ada/gcc-interface/decl.c	2013-10-01 16:06:43.764554292 +0000
@@ -1019,7 +1019,7 @@
 			save_gnu_tree (gnat_entity, gnu_decl, true);
 			saved = true;
 			annotate_object (gnat_entity, gnu_type, NULL_TREE,
-					 false, false);
+					 false);
 			/* This assertion will fail if the renamed object
 			   isn't aligned enough as to make it possible to
 			   honor the alignment set on the renaming.  */
@@ -1605,7 +1605,7 @@
 	   type of the object and not on the object directly, and makes it
 	   possible to support all confirming representation clauses.  */
 	annotate_object (gnat_entity, TREE_TYPE (gnu_decl), gnu_object_size,
-			 used_by_ref, false);
+			 used_by_ref);
       }
       break;
 
@@ -5595,7 +5595,7 @@
   /* The parameter can be indirectly modified if its address is taken.  */
   bool ro_param = in_param && !Address_Taken (gnat_param);
   bool by_return = false, by_component_ptr = false;
-  bool by_ref = false, by_double_ref = false;
+  bool by_ref = false;
   tree gnu_param;
 
   /* Copy-return is used only for the first parameter of a valued procedure.
@@ -5720,19 +5720,6 @@
 	gnu_param_type
 	  = build_qualified_type (gnu_param_type, TYPE_QUAL_RESTRICT);
       by_ref = true;
-
-      /* In some ABIs, e.g. SPARC 32-bit, fat pointer types are themselves
-	 passed by reference.  Pass them by explicit reference, this will
-	 generate more debuggable code at -O0.  */
-      if (TYPE_IS_FAT_POINTER_P (gnu_param_type)
-	  && targetm.calls.pass_by_reference (pack_cumulative_args (NULL),
-					      TYPE_MODE (gnu_param_type),
-					      gnu_param_type,
-					      true))
-	{
-	   gnu_param_type = build_reference_type (gnu_param_type);
-	   by_double_ref = true;
-	}
     }
 
   /* Pass In Out or Out parameters using copy-in copy-out mechanism.  */
@@ -5775,7 +5762,6 @@
   gnu_param = create_param_decl (gnu_param_name, gnu_param_type,
 				 ro_param || by_ref || by_component_ptr);
   DECL_BY_REF_P (gnu_param) = by_ref;
-  DECL_BY_DOUBLE_REF_P (gnu_param) = by_double_ref;
   DECL_BY_COMPONENT_PTR_P (gnu_param) = by_component_ptr;
   DECL_BY_DESCRIPTOR_P (gnu_param) = (mech == By_Descriptor ||
                                       mech == By_Short_Descriptor);
@@ -7427,18 +7413,13 @@
 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
    and GNU_TYPE, its corresponding GCC type, set Esize and Alignment to the
    size and alignment used by Gigi.  Prefer SIZE over TYPE_SIZE if non-null.
-   BY_REF is true if the object is used by reference and BY_DOUBLE_REF is
-   true if the object is used by double reference.  */
+   BY_REF is true if the object is used by reference.  */
 
 void
-annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size, bool by_ref,
-		 bool by_double_ref)
+annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size, bool by_ref)
 {
   if (by_ref)
     {
-      if (by_double_ref)
-	gnu_type = TREE_TYPE (gnu_type);
-
       if (TYPE_IS_FAT_POINTER_P (gnu_type))
 	gnu_type = TYPE_UNCONSTRAINED_ARRAY (gnu_type);
       else
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h gcc-4.8.1/gcc/ada/gcc-interface/gigi.h
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h	2013-02-06 13:19:20.000000000 +0000
+++ gcc-4.8.1/gcc/ada/gcc-interface/gigi.h	2013-10-01 16:06:43.768554292 +0000
@@ -177,10 +177,9 @@
 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
    and GNU_TYPE, its corresponding GCC type, set Esize and Alignment to the
    size and alignment used by Gigi.  Prefer SIZE over TYPE_SIZE if non-null.
-   BY_REF is true if the object is used by reference and BY_DOUBLE_REF is
-   true if the object is used by double reference.  */
+   BY_REF is true if the object is used by reference.  */
 extern void annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size,
-			     bool by_ref, bool by_double_ref);
+			     bool by_ref);
 
 /* Return the variant part of RECORD_TYPE, if any.  Otherwise return NULL.  */
 extern tree get_variant_part (tree record_type);
@@ -930,11 +929,10 @@
 
 /* Convert GNU_EXPR, a pointer to a VMS descriptor, to GNU_TYPE, a regular
    pointer or fat pointer type.  GNU_EXPR_ALT_TYPE is the alternate (32-bit)
-   pointer type of GNU_EXPR.  BY_REF is true if the result is to be used by
-   reference.  GNAT_SUBPROG is the subprogram to which the VMS descriptor is
-   passed.  */
+   pointer type of GNU_EXPR.  GNAT_SUBPROG is the subprogram to which the
+   descriptor is passed.  */
 extern tree convert_vms_descriptor (tree gnu_type, tree gnu_expr,
-				    tree gnu_expr_alt_type, bool by_ref,
+				    tree gnu_expr_alt_type,
 				    Entity_Id gnat_subprog);
 
 /* Indicate that we need to take the address of T and that it therefore
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c gcc-4.8.1/gcc/ada/gcc-interface/trans.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c	2013-05-26 10:04:50.000000000 +0000
+++ gcc-4.8.1/gcc/ada/gcc-interface/trans.c	2013-10-01 16:06:43.768554292 +0000
@@ -286,9 +286,6 @@
   tree int64_type = gnat_type_for_size (64, 0);
   struct elab_info *info;
   int i;
-#ifdef ORDINARY_MAP_INSTANCE
-  struct line_map *map;
-#endif
 
   max_gnat_nodes = max_gnat_node;
 
@@ -303,10 +300,6 @@
 
   type_annotate_only = (gigi_operating_mode == 1);
 
-  /* ??? Disable the generation of the SCO instance table until after the
-     back-end supports instance based debug info discriminators.  */
-  Generate_SCO_Instance_Table = False;
-
   for (i = 0; i < number_file; i++)
     {
       /* Use the identifier table to make a permanent copy of the filename as
@@ -326,11 +319,6 @@
       /* We create the line map for a source file at once, with a fixed number
 	 of columns chosen to avoid jumping over the next power of 2.  */
       linemap_add (line_table, LC_ENTER, 0, filename, 1);
-#ifdef ORDINARY_MAP_INSTANCE
-      map = LINEMAPS_ORDINARY_MAP_AT (line_table, i);
-      if (flag_debug_instances)
-	ORDINARY_MAP_INSTANCE (map) = file_info_ptr[i].Instance;
-#endif
       linemap_line_start (line_table, file_info_ptr[i].Num_Source_Lines, 252);
       linemap_position_for_column (line_table, 252 - 1);
       linemap_add (line_table, LC_LEAVE, 0, NULL, 0);
@@ -1075,19 +1063,6 @@
     {
       const bool read_only = DECL_POINTS_TO_READONLY_P (gnu_result);
 
-      /* First do the first dereference if needed.  */
-      if (TREE_CODE (gnu_result) == PARM_DECL
-	  && DECL_BY_DOUBLE_REF_P (gnu_result))
-	{
-	  gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
-	  if (TREE_CODE (gnu_result) == INDIRECT_REF)
-	    TREE_THIS_NOTRAP (gnu_result) = 1;
-
-	  /* The first reference, in case of a double reference, always points
-	     to read-only, see gnat_to_gnu_param for the rationale.  */
-	  TREE_READONLY (gnu_result) = 1;
-	}
-
       /* If it's a PARM_DECL to foreign convention subprogram, convert it.  */
       if (TREE_CODE (gnu_result) == PARM_DECL
 	  && DECL_BY_COMPONENT_PTR_P (gnu_result))
@@ -1290,6 +1265,7 @@
 static tree
 Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute)
 {
+  const Node_Id gnat_prefix = Prefix (gnat_node);
   tree gnu_prefix, gnu_type, gnu_expr;
   tree gnu_result_type, gnu_result = error_mark_node;
   bool prefix_unused = false;
@@ -1299,13 +1275,13 @@
      parameter types might be incomplete types coming from a limited with.  */
   if (Ekind (Etype (gnat_node)) == E_Access_Subprogram_Type
       && Is_Dispatch_Table_Entity (Etype (gnat_node))
-      && Nkind (Prefix (gnat_node)) == N_Identifier
-      && Is_Subprogram (Entity (Prefix (gnat_node)))
-      && Is_Public (Entity (Prefix (gnat_node)))
-      && !present_gnu_tree (Entity (Prefix (gnat_node))))
-    gnu_prefix = get_minimal_subprog_decl (Entity (Prefix (gnat_node)));
+      && Nkind (gnat_prefix) == N_Identifier
+      && Is_Subprogram (Entity (gnat_prefix))
+      && Is_Public (Entity (gnat_prefix))
+      && !present_gnu_tree (Entity (gnat_prefix)))
+    gnu_prefix = get_minimal_subprog_decl (Entity (gnat_prefix));
   else
-    gnu_prefix = gnat_to_gnu (Prefix (gnat_node));
+    gnu_prefix = gnat_to_gnu (gnat_prefix);
   gnu_type = TREE_TYPE (gnu_prefix);
 
   /* If the input is a NULL_EXPR, make a new one.  */
@@ -1448,8 +1424,8 @@
 	 since it can use a special calling convention on some platforms,
 	 which cannot be propagated to the access type.  */
       else if (attribute == Attr_Access
-	       && Nkind (Prefix (gnat_node)) == N_Identifier
-	       && is_cplusplus_method (Entity (Prefix (gnat_node))))
+	       && Nkind (gnat_prefix) == N_Identifier
+	       && is_cplusplus_method (Entity (gnat_prefix)))
 	post_error ("access to C++ constructor or member function not allowed",
 		    gnat_node);
 
@@ -1560,13 +1536,12 @@
 	  /* If this is a dereference and we have a special dynamic constrained
 	     subtype on the prefix, use it to compute the size; otherwise, use
 	     the designated subtype.  */
-	  if (Nkind (Prefix (gnat_node)) == N_Explicit_Dereference)
+	  if (Nkind (gnat_prefix) == N_Explicit_Dereference)
 	    {
-	      Node_Id gnat_deref = Prefix (gnat_node);
 	      Node_Id gnat_actual_subtype
-		= Actual_Designated_Subtype (gnat_deref);
+		= Actual_Designated_Subtype (gnat_prefix);
 	      tree gnu_ptr_type
-		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_deref)));
+		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
 
 	      if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type)
 		  && Present (gnat_actual_subtype))
@@ -1627,7 +1602,6 @@
 	  align = DECL_ALIGN (TREE_OPERAND (gnu_prefix, 1)) / BITS_PER_UNIT;
 	else
 	  {
-	    Node_Id gnat_prefix = Prefix (gnat_node);
 	    Entity_Id gnat_type = Etype (gnat_prefix);
 	    unsigned int double_align;
 	    bool is_capped_double, align_clause;
@@ -1699,28 +1673,38 @@
 			 : 1), i;
 	struct parm_attr_d *pa = NULL;
 	Entity_Id gnat_param = Empty;
+	bool unconstrained_ptr_deref = false;
 
 	/* Make sure any implicit dereference gets done.  */
 	gnu_prefix = maybe_implicit_deref (gnu_prefix);
 	gnu_prefix = maybe_unconstrained_array (gnu_prefix);
 
-	/* We treat unconstrained array In parameters specially.  */
-	if (!Is_Constrained (Etype (Prefix (gnat_node))))
-	  {
-	    Node_Id gnat_prefix = Prefix (gnat_node);
+	/* We treat unconstrained array In parameters specially.  We also note
+	   whether we are dereferencing a pointer to unconstrained array.  */
+	if (!Is_Constrained (Etype (gnat_prefix)))
+	  switch (Nkind (gnat_prefix))
+	    {
+	    case N_Identifier:
+	      /* This is the direct case.  */
+	      if (Ekind (Entity (gnat_prefix)) == E_In_Parameter)
+		gnat_param = Entity (gnat_prefix);
+	      break;
 
-	    /* This is the direct case.  */
-	    if (Nkind (gnat_prefix) == N_Identifier
-		&& Ekind (Entity (gnat_prefix)) == E_In_Parameter)
-	      gnat_param = Entity (gnat_prefix);
-
-	    /* This is the indirect case.  Note that we need to be sure that
-	       the access value cannot be null as we'll hoist the load.  */
-	    if (Nkind (gnat_prefix) == N_Explicit_Dereference
-		&& Nkind (Prefix (gnat_prefix)) == N_Identifier
-		&& Ekind (Entity (Prefix (gnat_prefix))) == E_In_Parameter
-		&& Can_Never_Be_Null (Entity (Prefix (gnat_prefix))))
-	      gnat_param = Entity (Prefix (gnat_prefix));
+	    case N_Explicit_Dereference:
+	      /* This is the indirect case.  Note that we need to be sure that
+		 the access value cannot be null as we'll hoist the load.  */
+	      if (Nkind (Prefix (gnat_prefix)) == N_Identifier
+		  && Ekind (Entity (Prefix (gnat_prefix))) == E_In_Parameter)
+		{
+		  if (Can_Never_Be_Null (Entity (Prefix (gnat_prefix))))
+		    gnat_param = Entity (Prefix (gnat_prefix));
+		}
+	      else
+		unconstrained_ptr_deref = true;
+	      break;
+
+	    default:
+	      break;
 	  }
 
 	/* If the prefix is the view conversion of a constrained array to an
@@ -1855,22 +1839,54 @@
 	  {
 	    gnu_result
 	      = build1 (SAVE_EXPR, TREE_TYPE (gnu_result), gnu_result);
-	    if (attribute == Attr_First)
-	      pa->first = gnu_result;
-	    else if (attribute == Attr_Last)
-	      pa->last = gnu_result;
-	    else
-	      pa->length = gnu_result;
+	    switch (attribute)
+	      {
+	      case Attr_First:
+		pa->first = gnu_result;
+		break;
+
+	      case Attr_Last:
+		pa->last = gnu_result;
+		break;
+
+	      case Attr_Length:
+	      case Attr_Range_Length:
+		pa->length = gnu_result;
+		break;
+
+	      default:
+		gcc_unreachable ();
+	      }
 	  }
 
-	/* Set the source location onto the predicate of the condition in the
-	   'Length case but do not do it if the expression is cached to avoid
-	   messing up the debug info.  */
-	else if ((attribute == Attr_Range_Length || attribute == Attr_Length)
-		 && TREE_CODE (gnu_result) == COND_EXPR
-		 && EXPR_P (TREE_OPERAND (gnu_result, 0)))
-	  set_expr_location_from_node (TREE_OPERAND (gnu_result, 0),
-				       gnat_node);
+	/* Otherwise, evaluate it each time it is referenced.  */
+	else
+	  switch (attribute)
+	    {
+	    case Attr_First:
+	    case Attr_Last:
+	      /* If we are dereferencing a pointer to unconstrained array, we
+		 need to capture the value because the pointed-to bounds may
+		 subsequently be released.  */
+	      if (unconstrained_ptr_deref)
+		gnu_result
+		  = build1 (SAVE_EXPR, TREE_TYPE (gnu_result), gnu_result);
+	      break;
+
+	    case Attr_Length:
+	    case Attr_Range_Length:
+	      /* Set the source location onto the predicate of the condition
+		 but not if the expression is cached to avoid messing up the
+		 debug info.  */
+	      if (TREE_CODE (gnu_result) == COND_EXPR
+		  && EXPR_P (TREE_OPERAND (gnu_result, 0)))
+		set_expr_location_from_node (TREE_OPERAND (gnu_result, 0),
+					     gnat_node);
+	      break;
+
+	    default:
+	      gcc_unreachable ();
+	    }
 
 	break;
       }
@@ -2043,8 +2059,8 @@
 
     case Attr_Mechanism_Code:
       {
+	Entity_Id gnat_obj = Entity (gnat_prefix);
 	int code;
-	Entity_Id gnat_obj = Entity (Prefix (gnat_node));
 
 	prefix_unused = true;
 	gnu_result_type = get_unpadded_type (Etype (gnat_node));
@@ -2079,10 +2095,11 @@
      it has a side-effect.  But don't do it if the prefix is just an entity
      name.  However, if an access check is needed, we must do it.  See second
      example in AARM 11.6(5.e).  */
-  if (prefix_unused && TREE_SIDE_EFFECTS (gnu_prefix)
-      && !Is_Entity_Name (Prefix (gnat_node)))
-    gnu_result = build_compound_expr  (TREE_TYPE (gnu_result), gnu_prefix,
-				       gnu_result);
+  if (prefix_unused
+      && TREE_SIDE_EFFECTS (gnu_prefix)
+      && !Is_Entity_Name (gnat_prefix))
+    gnu_result
+      = build_compound_expr  (TREE_TYPE (gnu_result), gnu_prefix, gnu_result);
 
   *gnu_result_type_p = gnu_result_type;
   return gnu_result;
@@ -2280,7 +2297,10 @@
   if (TREE_CODE (val) != INTEGER_CST)
     return true;
 
-  return tree_int_cst_equal (val, min_or_max_val) == 1;
+  if (max)
+    return tree_int_cst_lt (val, min_or_max_val) == 0;
+  else
+    return tree_int_cst_lt (min_or_max_val, val) == 0;
 }
 
 /* Return true if VAL (of type TYPE) can equal the minimum value of TYPE.
@@ -3251,7 +3271,6 @@
 	    = convert_vms_descriptor (TREE_TYPE (gnu_subprog_param),
 				      gnu_stub_param,
 				      DECL_PARM_ALT_TYPE (gnu_stub_param),
-				      DECL_BY_DOUBLE_REF_P (gnu_subprog_param),
 				      gnat_subprog);
 	}
       else
@@ -3490,6 +3509,8 @@
     {
       tree gnu_retval;
 
+      gnu_return_var_stack->pop ();
+
       add_stmt (gnu_result);
       add_stmt (build1 (LABEL_EXPR, void_type_node,
 			gnu_return_label_stack->last ()));
@@ -3546,8 +3567,7 @@
       bool is_var_decl = (TREE_CODE (gnu_param) == VAR_DECL);
 
       annotate_object (gnat_param, TREE_TYPE (gnu_param), NULL_TREE,
-		       DECL_BY_REF_P (gnu_param),
-		       !is_var_decl && DECL_BY_DOUBLE_REF_P (gnu_param));
+		       DECL_BY_REF_P (gnu_param));
 
       if (is_var_decl)
 	save_gnu_tree (gnat_param, NULL_TREE, false);
@@ -4009,12 +4029,6 @@
 	  /* The symmetry of the paths to the type of an entity is broken here
 	     since arguments don't know that they will be passed by ref.  */
 	  gnu_formal_type = TREE_TYPE (gnu_formal);
-
-	  if (DECL_BY_DOUBLE_REF_P (gnu_formal))
-	    gnu_actual
-	      = build_unary_op (ADDR_EXPR, TREE_TYPE (gnu_formal_type),
-				gnu_actual);
-
 	  gnu_actual = build_unary_op (ADDR_EXPR, gnu_formal_type, gnu_actual);
 	}
       else if (is_true_formal_parm && DECL_BY_COMPONENT_PTR_P (gnu_formal))
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c gcc-4.8.1/gcc/ada/gcc-interface/utils.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c	2013-02-06 13:19:20.000000000 +0000
+++ gcc-4.8.1/gcc/ada/gcc-interface/utils.c	2013-10-01 16:06:43.768554292 +0000
@@ -4073,33 +4073,25 @@
 
 /* Convert GNU_EXPR, a pointer to a VMS descriptor, to GNU_TYPE, a regular
    pointer or fat pointer type.  GNU_EXPR_ALT_TYPE is the alternate (32-bit)
-   pointer type of GNU_EXPR.  BY_REF is true if the result is to be used by
-   reference.  GNAT_SUBPROG is the subprogram to which the VMS descriptor is
-   passed.  */
+   pointer type of GNU_EXPR.  GNAT_SUBPROG is the subprogram to which the
+   descriptor is passed.  */
 
 tree
 convert_vms_descriptor (tree gnu_type, tree gnu_expr, tree gnu_expr_alt_type,
-			bool by_ref, Entity_Id gnat_subprog)
+			Entity_Id gnat_subprog)
 {
   tree desc_type = TREE_TYPE (TREE_TYPE (gnu_expr));
   tree desc = build1 (INDIRECT_REF, desc_type, gnu_expr);
   tree mbo = TYPE_FIELDS (desc_type);
   const char *mbostr = IDENTIFIER_POINTER (DECL_NAME (mbo));
   tree mbmo = DECL_CHAIN (DECL_CHAIN (DECL_CHAIN (mbo)));
-  tree real_type, is64bit, gnu_expr32, gnu_expr64;
-
-  if (by_ref)
-    real_type = TREE_TYPE (gnu_type);
-  else
-    real_type = gnu_type;
+  tree is64bit, gnu_expr32, gnu_expr64;
 
   /* If the field name is not MBO, it must be 32-bit and no alternate.
      Otherwise primary must be 64-bit and alternate 32-bit.  */
   if (strcmp (mbostr, "MBO") != 0)
     {
-      tree ret = convert_vms_descriptor32 (real_type, gnu_expr, gnat_subprog);
-      if (by_ref)
-	ret = build_unary_op (ADDR_EXPR, gnu_type, ret);
+      tree ret = convert_vms_descriptor32 (gnu_type, gnu_expr, gnat_subprog);
       return ret;
     }
 
@@ -4116,14 +4108,9 @@
 					integer_minus_one_node));
 
   /* Build the 2 possible end results.  */
-  gnu_expr64 = convert_vms_descriptor64 (real_type, gnu_expr, gnat_subprog);
-  if (by_ref)
-    gnu_expr64 =  build_unary_op (ADDR_EXPR, gnu_type, gnu_expr64);
+  gnu_expr64 = convert_vms_descriptor64 (gnu_type, gnu_expr, gnat_subprog);
   gnu_expr = fold_convert (gnu_expr_alt_type, gnu_expr);
-  gnu_expr32 = convert_vms_descriptor32 (real_type, gnu_expr, gnat_subprog);
-  if (by_ref)
-    gnu_expr32 =  build_unary_op (ADDR_EXPR, gnu_type, gnu_expr32);
-
+  gnu_expr32 = convert_vms_descriptor32 (gnu_type, gnu_expr, gnat_subprog);
   return build3 (COND_EXPR, gnu_type, is64bit, gnu_expr64, gnu_expr32);
 }
 
diff -Naur gcc-4.8.1.orig/gcc/ada/targparm.ads gcc-4.8.1/gcc/ada/targparm.ads
--- gcc-4.8.1.orig/gcc/ada/targparm.ads	2013-02-06 10:35:52.000000000 +0000
+++ gcc-4.8.1/gcc/ada/targparm.ads	2013-10-01 16:06:43.768554292 +0000
@@ -436,7 +436,7 @@
    --  the source program may not contain explicit 64-bit shifts. In addition,
    --  the code generated for packed arrays will avoid the use of long shifts.
 
-   Support_Nondefault_SSO_On_Target : Boolean := False;
+   Support_Nondefault_SSO_On_Target : Boolean := True;
    --  If True, the back end supports the non-default Scalar_Storage_Order
    --  (i.e. allows non-confirming Scalar_Storage_Order attribute definition
    --  clauses).
diff -Naur gcc-4.8.1.orig/gcc/asan.c gcc-4.8.1/gcc/asan.c
--- gcc-4.8.1.orig/gcc/asan.c	2013-02-28 21:23:23.000000000 +0000
+++ gcc-4.8.1/gcc/asan.c	2013-10-01 16:06:43.768554292 +0000
@@ -1675,7 +1675,7 @@
    access to the last byte of the argument; it uses the result of the
    call to deduce the offset of that last byte.
 
-   Upon completion, iff the call has actullay been instrumented, this
+   Upon completion, iff the call has actually been instrumented, this
    function returns TRUE and *ITER points to the statement logically
    following the built-in strlen function call *ITER was initially
    pointing to.  Otherwise, the function returns FALSE and *ITER
@@ -1706,10 +1706,10 @@
   /* Instrument the access to the first byte of str_arg.  i.e:
 
      _1 = str_arg; instrument (_1); */
+  tree cptr_type = build_pointer_type (char_type_node);
   gimple str_arg_ssa =
     gimple_build_assign_with_ops (NOP_EXPR,
-				  make_ssa_name (build_pointer_type
-						 (char_type_node), NULL),
+				  make_ssa_name (cptr_type, NULL),
 				  str_arg, NULL);
   gimple_set_location (str_arg_ssa, loc);
   gimple_stmt_iterator gsi = *iter;
@@ -1728,8 +1728,7 @@
      pointer_plus expr: (_1 + len).  */
   gimple stmt =
     gimple_build_assign_with_ops (POINTER_PLUS_EXPR,
-				  make_ssa_name (TREE_TYPE (str_arg),
-						 NULL),
+				  make_ssa_name (cptr_type, NULL),
 				  gimple_assign_lhs (str_arg_ssa),
 				  len);
   gimple_set_location (stmt, loc);
diff -Naur gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c gcc-4.8.1/gcc/c-family/c-ada-spec.c
--- gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/c-family/c-ada-spec.c	2013-10-01 16:06:43.768554292 +0000
@@ -2900,7 +2900,7 @@
       pp_string (buffer, "  -- ");
       dump_sloc (buffer, t);
 
-      if (is_abstract)
+      if (is_abstract || !DECL_ASSEMBLER_NAME (t))
 	return 1;
 
       newline_and_indent (buffer, spc);
diff -Naur gcc-4.8.1.orig/gcc/cfgcleanup.c gcc-4.8.1/gcc/cfgcleanup.c
--- gcc-4.8.1.orig/gcc/cfgcleanup.c	2013-01-30 11:53:28.000000000 +0000
+++ gcc-4.8.1/gcc/cfgcleanup.c	2013-10-01 16:06:43.772554291 +0000
@@ -927,6 +927,24 @@
 	  set_mem_align (y, MEM_ALIGN (x));
 	}
     }
+  if (code == MEM)
+    {
+      if (MEM_READONLY_P (x) != MEM_READONLY_P (y))
+	{
+	  MEM_READONLY_P (x) = 0;
+	  MEM_READONLY_P (y) = 0;
+	}
+      if (MEM_NOTRAP_P (x) != MEM_NOTRAP_P (y))
+	{
+	  MEM_NOTRAP_P (x) = 0;
+	  MEM_NOTRAP_P (y) = 0;
+	}
+      if (MEM_VOLATILE_P (x) != MEM_VOLATILE_P (y))
+	{
+	  MEM_VOLATILE_P (x) = 1;
+	  MEM_VOLATILE_P (y) = 1;
+	}
+    }
 
   fmt = GET_RTX_FORMAT (code);
   for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
diff -Naur gcc-4.8.1.orig/gcc/collect2.c gcc-4.8.1/gcc/collect2.c
--- gcc-4.8.1.orig/gcc/collect2.c	2013-02-07 02:53:13.000000000 +0000
+++ gcc-4.8.1/gcc/collect2.c	2013-10-01 16:06:43.772554291 +0000
@@ -366,8 +366,8 @@
 
 /* Delete tempfiles and exit function.  */
 
-void
-collect_exit (int status)
+static void
+collect_atexit (void)
 {
   if (c_file != 0 && c_file[0])
     maybe_unlink (c_file);
@@ -395,13 +395,8 @@
       maybe_unlink (lderrout);
     }
 
-  if (status != 0 && output_file != 0 && output_file[0])
-    maybe_unlink (output_file);
-
   if (response_file)
     maybe_unlink (response_file);
-
-  exit (status);
 }
 
 
@@ -970,6 +965,9 @@
   signal (SIGCHLD, SIG_DFL);
 #endif
 
+  if (atexit (collect_atexit) != 0)
+    fatal_error ("atexit failed");
+
   /* Unlock the stdio streams.  */
   unlock_std_streams ();
 
@@ -1110,55 +1108,55 @@
   if (ld_file_name == 0)
 #endif
 #ifdef REAL_LD_FILE_NAME
-  ld_file_name = find_a_file (&path, REAL_LD_FILE_NAME);
+  ld_file_name = find_a_file (&path, REAL_LD_FILE_NAME, X_OK);
   if (ld_file_name == 0)
 #endif
   /* Search the (target-specific) compiler dirs for ld'.  */
-  ld_file_name = find_a_file (&cpath, real_ld_suffix);
+  ld_file_name = find_a_file (&cpath, real_ld_suffix, X_OK);
   /* Likewise for `collect-ld'.  */
   if (ld_file_name == 0)
     {
-      ld_file_name = find_a_file (&cpath, collect_ld_suffix);
+      ld_file_name = find_a_file (&cpath, collect_ld_suffix, X_OK);
       use_collect_ld = ld_file_name != 0;
     }
   /* Search the compiler directories for `ld'.  We have protection against
      recursive calls in find_a_file.  */
   if (ld_file_name == 0)
-    ld_file_name = find_a_file (&cpath, ld_suffixes[selected_linker]);
+    ld_file_name = find_a_file (&cpath, ld_suffixes[selected_linker], X_OK);
   /* Search the ordinary system bin directories
      for `ld' (if native linking) or `TARGET-ld' (if cross).  */
   if (ld_file_name == 0)
-    ld_file_name = find_a_file (&path, full_ld_suffixes[selected_linker]);
+    ld_file_name = find_a_file (&path, full_ld_suffixes[selected_linker], X_OK);
 
 #ifdef REAL_NM_FILE_NAME
-  nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME);
+  nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME, X_OK);
   if (nm_file_name == 0)
 #endif
-  nm_file_name = find_a_file (&cpath, gnm_suffix);
+  nm_file_name = find_a_file (&cpath, gnm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&path, full_gnm_suffix);
+    nm_file_name = find_a_file (&path, full_gnm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&cpath, nm_suffix);
+    nm_file_name = find_a_file (&cpath, nm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&path, full_nm_suffix);
+    nm_file_name = find_a_file (&path, full_nm_suffix, X_OK);
 
 #ifdef LDD_SUFFIX
-  ldd_file_name = find_a_file (&cpath, ldd_suffix);
+  ldd_file_name = find_a_file (&cpath, ldd_suffix, X_OK);
   if (ldd_file_name == 0)
-    ldd_file_name = find_a_file (&path, full_ldd_suffix);
+    ldd_file_name = find_a_file (&path, full_ldd_suffix, X_OK);
 #endif
 
 #ifdef REAL_STRIP_FILE_NAME
-  strip_file_name = find_a_file (&path, REAL_STRIP_FILE_NAME);
+  strip_file_name = find_a_file (&path, REAL_STRIP_FILE_NAME, X_OK);
   if (strip_file_name == 0)
 #endif
-  strip_file_name = find_a_file (&cpath, gstrip_suffix);
+  strip_file_name = find_a_file (&cpath, gstrip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&path, full_gstrip_suffix);
+    strip_file_name = find_a_file (&path, full_gstrip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&cpath, strip_suffix);
+    strip_file_name = find_a_file (&cpath, strip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&path, full_strip_suffix);
+    strip_file_name = find_a_file (&path, full_strip_suffix, X_OK);
 
   /* Determine the full path name of the C compiler to use.  */
   c_file_name = getenv ("COLLECT_GCC");
@@ -1171,12 +1169,12 @@
 #endif
     }
 
-  p = find_a_file (&cpath, c_file_name);
+  p = find_a_file (&cpath, c_file_name, X_OK);
 
   /* Here it should be safe to use the system search path since we should have
      already qualified the name of the compiler when it is needed.  */
   if (p == 0)
-    p = find_a_file (&path, c_file_name);
+    p = find_a_file (&path, c_file_name, X_OK);
 
   if (p)
     c_file_name = p;
@@ -1813,7 +1811,7 @@
 	  error ("%s terminated with signal %d [%s]%s",
 		 prog, sig, strsignal(sig),
 		 WCOREDUMP(status) ? ", core dumped" : "");
-	  collect_exit (FATAL_EXIT_CODE);
+	  exit (FATAL_EXIT_CODE);
 	}
 
       if (WIFEXITED (status))
@@ -1829,7 +1827,7 @@
   if (ret != 0)
     {
       error ("%s returned %d exit status", prog, ret);
-      collect_exit (ret);
+      exit (ret);
     }
 
   if (response_file)
diff -Naur gcc-4.8.1.orig/gcc/collect2.h gcc-4.8.1/gcc/collect2.h
--- gcc-4.8.1.orig/gcc/collect2.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/collect2.h	2013-10-01 16:06:43.772554291 +0000
@@ -25,8 +25,6 @@
 extern struct pex_obj *collect_execute (const char *, char **, const char *,
 					const char *, int flags);
 
-extern void collect_exit (int) ATTRIBUTE_NORETURN;
-
 extern int collect_wait (const char *, struct pex_obj *);
 
 extern void dump_ld_file (const char *, FILE *);
diff -Naur gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c gcc-4.8.1/gcc/common/config/s390/s390-common.c
--- gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/common/config/s390/s390-common.c	2013-10-01 16:06:43.772554291 +0000
@@ -42,7 +42,7 @@
     /* z196 */   PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT
                  | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196,
     /* zEC12 */  PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT
-                 | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12
+                 | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX
   };
 
 /* Change optimizations to be performed, depending on the
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c	2013-02-28 17:19:33.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c	2013-10-01 16:06:43.772554291 +0000
@@ -1154,6 +1154,7 @@
       return aarch64_simd_expand_args (target, icode, 1, exp,
 				       SIMD_ARG_COPY_TO_REG, SIMD_ARG_STOP);
 
+    case AARCH64_SIMD_STORE1:
     case AARCH64_SIMD_STORESTRUCT:
       return aarch64_simd_expand_args (target, icode, 0, exp,
 				       SIMD_ARG_COPY_TO_REG,
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h	2013-10-01 16:06:43.772554291 +0000
@@ -23,6 +23,8 @@
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64.so.1"
 
+#define CPP_SPEC "%{pthread:-D_REENTRANT}"
+
 #define LINUX_TARGET_LINK_SPEC  "%{h*}		\
    %{static:-Bstatic}				\
    %{shared:-shared}				\
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def	2013-02-22 16:39:45.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def	2013-10-01 16:06:43.776554291 +0000
@@ -256,3 +256,10 @@
   BUILTIN_VALL (BINOP, uzp2)
   BUILTIN_VALL (BINOP, trn1)
   BUILTIN_VALL (BINOP, trn2)
+
+  /* Implemented by aarch64_ld1<VALL:mode>.  */
+  BUILTIN_VALL (LOAD1, ld1)
+
+  /* Implemented by aarch64_st1<VALL:mode>.  */
+  BUILTIN_VALL (STORE1, st1)
+
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md	2013-04-11 14:14:56.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md	2013-10-01 16:06:43.776554291 +0000
@@ -3457,6 +3457,17 @@
   DONE;
 })
 
+(define_expand "aarch64_ld1<VALL:mode>"
+ [(match_operand:VALL 0 "register_operand")
+  (match_operand:DI 1 "register_operand")]
+  "TARGET_SIMD"
+{
+  enum machine_mode mode = <VALL:MODE>mode;
+  rtx mem = gen_rtx_MEM (mode, operands[1]);
+  emit_move_insn (operands[0], mem);
+  DONE;
+})
+
 (define_expand "aarch64_ld<VSTRUCT:nregs><VQ:mode>"
  [(match_operand:VSTRUCT 0 "register_operand" "=w")
   (match_operand:DI 1 "register_operand" "r")
@@ -3673,6 +3684,17 @@
   DONE;
 })
 
+(define_expand "aarch64_st1<VALL:mode>"
+ [(match_operand:DI 0 "register_operand")
+  (match_operand:VALL 1 "register_operand")]
+  "TARGET_SIMD"
+{
+  enum machine_mode mode = <VALL:MODE>mode;
+  rtx mem = gen_rtx_MEM (mode, operands[0]);
+  emit_move_insn (mem, operands[1]);
+  DONE;
+})
+
 ;; Expander for builtins to insert vector registers into large
 ;; opaque integer modes.
 
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c gcc-4.8.1/gcc/config/aarch64/aarch64.c
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c	2013-05-02 17:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64.c	2013-10-01 16:06:43.772554291 +0000
@@ -3373,7 +3373,7 @@
 	  output_operand_lossage ("invalid operand for '%%%c'", code);
 	  return;
 	}
-      asm_fprintf (f, "0x%x", UINTVAL (x));
+      asm_fprintf (f, "0x%wx", UINTVAL (x));
       break;
 
     case 'w':
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md gcc-4.8.1/gcc/config/aarch64/aarch64.md
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md	2013-04-25 17:00:44.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/aarch64.md	2013-10-01 16:06:43.772554291 +0000
@@ -834,7 +834,8 @@
    movi\\t%d0, %1"
   [(set_attr "v8type" "move,move,move,alu,load1,store1,adr,adr,fmov,fmov,fmov,fmov")
    (set_attr "mode" "DI")
-   (set_attr "fp" "*,*,*,*,*,*,*,*,yes,yes,yes,yes")]
+   (set_attr "fp" "*,*,*,*,*,*,*,*,yes,yes,yes,*")
+   (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,yes")]
 )
 
 (define_insn "insv_imm<mode>"
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h gcc-4.8.1/gcc/config/aarch64/arm_neon.h
--- gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h	2013-04-24 15:47:21.000000000 +0000
+++ gcc-4.8.1/gcc/config/aarch64/arm_neon.h	2013-10-01 16:06:43.776554291 +0000
@@ -8518,28 +8518,6 @@
   return result;
 }
 
-__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
-vld1_f32 (const float32_t * a)
-{
-  float32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float32x2_t *_a = (float32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
-vld1_f64 (const float64_t * a)
-{
-  float64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
 #define vld1_lane_f32(a, b, c)                                          \
   __extension__                                                         \
     ({                                                                  \
@@ -8696,116 +8674,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vld1_p8 (const poly8_t * a)
-{
-  poly8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly8x8_t *_a = (poly8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
-vld1_p16 (const poly16_t * a)
-{
-  poly16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly16x4_t *_a = (poly16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-vld1_s8 (const int8_t * a)
-{
-  int8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int8x8_t *_a = (int8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-vld1_s16 (const int16_t * a)
-{
-  int16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int16x4_t *_a = (int16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-vld1_s32 (const int32_t * a)
-{
-  int32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int32x2_t *_a = (int32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
-vld1_s64 (const int64_t * a)
-{
-  int64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-vld1_u8 (const uint8_t * a)
-{
-  uint8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint8x8_t *_a = (uint8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-vld1_u16 (const uint16_t * a)
-{
-  uint16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint16x4_t *_a = (uint16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-vld1_u32 (const uint32_t * a)
-{
-  uint32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint32x2_t *_a = (uint32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
-vld1_u64 (const uint64_t * a)
-{
-  uint64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vld1q_dup_f32 (const float32_t * a)
 {
@@ -8938,28 +8806,6 @@
   return result;
 }
 
-__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
-vld1q_f32 (const float32_t * a)
-{
-  float32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float32x4_t *_a = (float32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
-vld1q_f64 (const float64_t * a)
-{
-  float64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float64x2_t *_a = (float64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
 #define vld1q_lane_f32(a, b, c)                                         \
   __extension__                                                         \
     ({                                                                  \
@@ -9116,116 +8962,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
-vld1q_p8 (const poly8_t * a)
-{
-  poly8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly8x16_t *_a = (poly8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
-vld1q_p16 (const poly16_t * a)
-{
-  poly16x8_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly16x8_t *_a = (poly16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
-vld1q_s8 (const int8_t * a)
-{
-  int8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int8x16_t *_a = (int8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
-vld1q_s16 (const int16_t * a)
-{
-  int16x8_t result;
-  __asm__ ("ld1 {%0.8h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int16x8_t *_a = (int16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
-vld1q_s32 (const int32_t * a)
-{
-  int32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int32x4_t *_a = (int32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
-vld1q_s64 (const int64_t * a)
-{
-  int64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int64x2_t *_a = (int64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
-vld1q_u8 (const uint8_t * a)
-{
-  uint8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint8x16_t *_a = (uint8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
-vld1q_u16 (const uint16_t * a)
-{
-  uint16x8_t result;
-  __asm__ ("ld1 {%0.8h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint16x8_t *_a = (uint16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
-vld1q_u32 (const uint32_t * a)
-{
-  uint32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint32x4_t *_a = (uint32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
-vld1q_u64 (const uint64_t * a)
-{
-  uint64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint64x2_t *_a = (uint64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmaxnm_f32 (float32x2_t a, float32x2_t b)
 {
@@ -16285,24 +16021,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_f32 (float32_t * a, float32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_f64 (float64_t * a, float64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
 #define vst1_lane_f32(a, b, c)                                          \
   __extension__                                                         \
     ({                                                                  \
@@ -16435,113 +16153,6 @@
                 : "memory");                                            \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_p8 (poly8_t * a, poly8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_p16 (poly16_t * a, poly16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s8 (int8_t * a, int8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s16 (int16_t * a, int16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s32 (int32_t * a, int32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s64 (int64_t * a, int64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u8 (uint8_t * a, uint8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u16 (uint16_t * a, uint16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u32 (uint32_t * a, uint32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u64 (uint64_t * a, uint64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_f32 (float32_t * a, float32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_f64 (float64_t * a, float64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
 
 #define vst1q_lane_f32(a, b, c)                                         \
   __extension__                                                         \
@@ -16675,96 +16286,6 @@
                 : "memory");                                            \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_p8 (poly8_t * a, poly8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_p16 (poly16_t * a, poly16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s8 (int8_t * a, int8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s16 (int16_t * a, int16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s32 (int32_t * a, int32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s64 (int64_t * a, int64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u8 (uint8_t * a, uint8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u16 (uint16_t * a, uint16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u32 (uint32_t * a, uint32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u64 (uint64_t * a, uint64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
 vsubhn_high_s16 (int8x8_t a, int16x8_t b, int16x8_t c)
 {
@@ -20537,6 +20058,165 @@
   return (uint64x1_t) __builtin_aarch64_dup_lanedi ((int64x2_t) a, b);
 }
 
+/* vld1 */
+
+__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
+vld1_f32 (const float32_t *a)
+{
+  return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
+}
+
+__extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
+vld1_f64 (const float64_t *a)
+{
+  return *a;
+}
+
+__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
+vld1_p8 (const poly8_t *a)
+{
+  return (poly8x8_t)
+    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
+vld1_p16 (const poly16_t *a)
+{
+  return (poly16x4_t)
+    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
+vld1_s8 (const int8_t *a)
+{
+  return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
+vld1_s16 (const int16_t *a)
+{
+  return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
+vld1_s32 (const int32_t *a)
+{
+  return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
+vld1_s64 (const int64_t *a)
+{
+  return *a;
+}
+
+__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
+vld1_u8 (const uint8_t *a)
+{
+  return (uint8x8_t)
+    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
+vld1_u16 (const uint16_t *a)
+{
+  return (uint16x4_t)
+    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
+vld1_u32 (const uint32_t *a)
+{
+  return (uint32x2_t)
+    __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
+vld1_u64 (const uint64_t *a)
+{
+  return *a;
+}
+
+/* vld1q */
+
+__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
+vld1q_f32 (const float32_t *a)
+{
+  return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
+}
+
+__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
+vld1q_f64 (const float64_t *a)
+{
+  return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
+}
+
+__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
+vld1q_p8 (const poly8_t *a)
+{
+  return (poly8x16_t)
+    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
+vld1q_p16 (const poly16_t *a)
+{
+  return (poly16x8_t)
+    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
+vld1q_s8 (const int8_t *a)
+{
+  return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
+vld1q_s16 (const int16_t *a)
+{
+  return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
+vld1q_s32 (const int32_t *a)
+{
+  return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
+vld1q_s64 (const int64_t *a)
+{
+  return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
+}
+
+__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
+vld1q_u8 (const uint8_t *a)
+{
+  return (uint8x16_t)
+    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
+vld1q_u16 (const uint16_t *a)
+{
+  return (uint16x8_t)
+    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
+vld1q_u32 (const uint32_t *a)
+{
+  return (uint32x4_t)
+    __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
+vld1q_u64 (const uint64_t *a)
+{
+  return (uint64x2_t)
+    __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
+}
+
 /* vldn */
 
 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
@@ -24307,6 +23987,165 @@
   return (uint64x1_t) __builtin_aarch64_usri_ndi (__a, __b, __c);
 }
 
+/* vst1 */
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_f32 (float32_t *a, float32x2_t b)
+{
+  __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_f64 (float64_t *a, float64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_p8 (poly8_t *a, poly8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
+			     (int8x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_p16 (poly16_t *a, poly16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s8 (int8_t *a, int8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s16 (int16_t *a, int16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s32 (int32_t *a, int32x2_t b)
+{
+  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s64 (int64_t *a, int64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u8 (uint8_t *a, uint8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
+			     (int8x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u16 (uint16_t *a, uint16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u32 (uint32_t *a, uint32x2_t b)
+{
+  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
+			     (int32x2_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u64 (uint64_t *a, uint64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_f32 (float32_t *a, float32x4_t b)
+{
+  __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_f64 (float64_t *a, float64x2_t b)
+{
+  __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
+}
+
+/* vst1q */
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_p8 (poly8_t *a, poly8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
+			      (int8x16_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_p16 (poly16_t *a, poly16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s8 (int8_t *a, int8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s16 (int16_t *a, int16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s32 (int32_t *a, int32x4_t b)
+{
+  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s64 (int64_t *a, int64x2_t b)
+{
+  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u8 (uint8_t *a, uint8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
+			      (int8x16_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u16 (uint16_t *a, uint16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u32 (uint32_t *a, uint32x4_t b)
+{
+  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
+			     (int32x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u64 (uint64_t *a, uint64x2_t b)
+{
+  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
+			     (int64x2_t) b);
+}
+
 /* vstn */
 
 __extension__ static __inline void
diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.c gcc-4.8.1/gcc/config/alpha/alpha.c
--- gcc-4.8.1.orig/gcc/config/alpha/alpha.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/alpha/alpha.c	2013-10-01 16:06:43.780554291 +0000
@@ -2659,6 +2659,7 @@
       cmp_mode = cmp_mode == DImode ? DFmode : DImode;
       op0 = gen_lowpart (cmp_mode, tem);
       op1 = CONST0_RTX (cmp_mode);
+      cmp = gen_rtx_fmt_ee (code, VOIDmode, op0, op1);
       local_fast_math = 1;
     }
 
@@ -2700,12 +2701,12 @@
       break;
 
     case GE:  case GT:  case GEU:  case GTU:
-      /* These must be swapped.  */
-      if (op1 != CONST0_RTX (cmp_mode))
-	{
-	  code = swap_condition (code);
-	  tem = op0, op0 = op1, op1 = tem;
-	}
+      /* These normally need swapping, but for integer zero we have
+	 special patterns that recognize swapped operands.  */
+      if (cmp_mode == DImode && op1 == const0_rtx)
+	break;
+      code = swap_condition (code);
+      tem = op0, op0 = op1, op1 = tem;
       break;
 
     default:
@@ -3067,12 +3068,9 @@
   operands[1] = op1;
   out = gen_reg_rtx (DImode);
 
-  /* What's actually returned is -1,0,1, not a proper boolean value,
-     so use an EXPR_LIST as with a generic libcall instead of a 
-     comparison type expression.  */
-  note = gen_rtx_EXPR_LIST (VOIDmode, op1, NULL_RTX);
-  note = gen_rtx_EXPR_LIST (VOIDmode, op0, note);
-  note = gen_rtx_EXPR_LIST (VOIDmode, func, note);
+  /* What's actually returned is -1,0,1, not a proper boolean value.  */
+  note = gen_rtx_fmt_ee (cmp_code, VOIDmode, op0, op1);
+  note = gen_rtx_UNSPEC (DImode, gen_rtvec (1, note), UNSPEC_XFLT_COMPARE);
   alpha_emit_xfloating_libcall (func, out, operands, 2, note);
 
   return out;
diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.md gcc-4.8.1/gcc/config/alpha/alpha.md
--- gcc-4.8.1.orig/gcc/config/alpha/alpha.md	2013-02-01 16:34:28.000000000 +0000
+++ gcc-4.8.1/gcc/config/alpha/alpha.md	2013-10-01 16:06:43.780554291 +0000
@@ -23,6 +23,7 @@
 ;; Uses of UNSPEC in this file:
 
 (define_c_enum "unspec" [
+  UNSPEC_XFLT_COMPARE
   UNSPEC_ARG_HOME
   UNSPEC_LDGP1
   UNSPEC_INSXH
diff -Naur gcc-4.8.1.orig/gcc/config/arm/arm.c gcc-4.8.1/gcc/config/arm/arm.c
--- gcc-4.8.1.orig/gcc/config/arm/arm.c	2013-05-24 15:15:44.000000000 +0000
+++ gcc-4.8.1/gcc/config/arm/arm.c	2013-10-01 16:06:43.784554291 +0000
@@ -4459,7 +4459,9 @@
     if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask)
       {
 	pcum->aapcs_vfp_reg_alloc = mask << regno;
-	if (mode == BLKmode || (mode == TImode && !TARGET_NEON))
+	if (mode == BLKmode
+	    || (mode == TImode && ! TARGET_NEON)
+	    || ! arm_hard_regno_mode_ok (FIRST_VFP_REGNUM + regno, mode))
 	  {
 	    int i;
 	    int rcount = pcum->aapcs_vfp_rcount;
@@ -7094,7 +7096,7 @@
 thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
 {
   enum machine_mode mode = GET_MODE (x);
-  int total;
+  int total, words;
 
   switch (code)
     {
@@ -7102,6 +7104,8 @@
     case ASHIFTRT:
     case LSHIFTRT:
     case ROTATERT:
+      return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
+
     case PLUS:
     case MINUS:
     case COMPARE:
@@ -7125,7 +7129,10 @@
       return COSTS_N_INSNS (1) + 16;
 
     case SET:
-      return (COSTS_N_INSNS (1)
+      /* A SET doesn't have a mode, so let's look at the SET_DEST to get
+	 the mode.  */
+      words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
+      return (COSTS_N_INSNS (words)
 	      + 4 * ((MEM_P (SET_SRC (x)))
 		     + MEM_P (SET_DEST (x))));
 
@@ -7822,6 +7829,7 @@
 thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
 {
   enum machine_mode mode = GET_MODE (x);
+  int words;
 
   switch (code)
     {
@@ -7829,8 +7837,19 @@
     case ASHIFTRT:
     case LSHIFTRT:
     case ROTATERT:
+      return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
+
     case PLUS:
     case MINUS:
+      /* Thumb-1 needs two instructions to fulfill shiftadd/shiftsub0/shiftsub1
+	 defined by RTL expansion, especially for the expansion of
+	 multiplication.  */
+      if ((GET_CODE (XEXP (x, 0)) == MULT
+	   && power_of_two_operand (XEXP (XEXP (x,0),1), SImode))
+	  || (GET_CODE (XEXP (x, 1)) == MULT
+	      && power_of_two_operand (XEXP (XEXP (x, 1), 1), SImode)))
+	return COSTS_N_INSNS (2);
+      /* On purpose fall through for normal RTX.  */
     case COMPARE:
     case NEG:
     case NOT:
@@ -7847,7 +7866,10 @@
       return COSTS_N_INSNS (1);
 
     case SET:
-      return (COSTS_N_INSNS (1)
+      /* A SET doesn't have a mode, so let's look at the SET_DEST to get
+	 the mode.  */
+      words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
+      return (COSTS_N_INSNS (words)
               + 4 * ((MEM_P (SET_SRC (x)))
                      + MEM_P (SET_DEST (x))));
 
@@ -17453,7 +17475,8 @@
 	    }
 	}
 
-      if (current_tune->prefer_ldrd_strd
+      if (TARGET_LDRD
+	  && current_tune->prefer_ldrd_strd
           && !optimize_function_for_size_p (cfun))
         {
           if (TARGET_THUMB2)
@@ -23767,7 +23790,8 @@
         }
       else
         {
-          if (current_tune->prefer_ldrd_strd
+          if (TARGET_LDRD
+	      && current_tune->prefer_ldrd_strd
               && !optimize_function_for_size_p (cfun))
             {
               if (TARGET_THUMB2)
diff -Naur gcc-4.8.1.orig/gcc/config/arm/neon.md gcc-4.8.1/gcc/config/arm/neon.md
--- gcc-4.8.1.orig/gcc/config/arm/neon.md	2013-04-04 14:34:01.000000000 +0000
+++ gcc-4.8.1/gcc/config/arm/neon.md	2013-10-01 16:06:43.784554291 +0000
@@ -244,7 +244,7 @@
   [(set (match_operand:VDQX 0 "neon_struct_or_register_operand")
 	(unspec:VDQX [(match_operand:VDQX 1 "neon_struct_or_register_operand")]
 		     UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
 {
   /* This pattern is not permitted to fail during expansion: if both arguments
      are non-registers (e.g. memory := constant, which can be created by the
@@ -258,7 +258,7 @@
   [(set (match_operand:VDX 0 "neon_struct_operand"	       "=Um")
 	(unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vst1.<V_sz_elem>\t{%P1}, %A0"
   [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
 
@@ -266,7 +266,7 @@
   [(set (match_operand:VDX 0 "s_register_operand"		"=w")
 	(unspec:VDX [(match_operand:VDX 1 "neon_struct_operand" " Um")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vld1.<V_sz_elem>\t{%P0}, %A1"
   [(set_attr "neon_type" "neon_vld1_1_2_regs")])
 
@@ -274,7 +274,7 @@
   [(set (match_operand:VQX 0 "neon_struct_operand"	       "=Um")
 	(unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vst1.<V_sz_elem>\t{%q1}, %A0"
   [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
 
@@ -282,7 +282,7 @@
   [(set (match_operand:VQX 0 "s_register_operand"	         "=w")
 	(unspec:VQX [(match_operand:VQX 1 "neon_struct_operand" " Um")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vld1.<V_sz_elem>\t{%q0}, %A1"
   [(set_attr "neon_type" "neon_vld1_1_2_regs")])
 
@@ -1732,6 +1732,7 @@
 			     ? 3 : 1;
   rtx magic_rtx = GEN_INT (magic_word);
   int inverse = 0;
+  int use_zero_form = 0;
   int swap_bsl_operands = 0;
   rtx mask = gen_reg_rtx (<V_cmp_result>mode);
   rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
@@ -1742,12 +1743,16 @@
   switch (GET_CODE (operands[3]))
     {
     case GE:
+    case GT:
     case LE:
+    case LT:
     case EQ:
-      if (!REG_P (operands[5])
-	  && (operands[5] != CONST0_RTX (<MODE>mode)))
-	operands[5] = force_reg (<MODE>mode, operands[5]);
-      break;
+      if (operands[5] == CONST0_RTX (<MODE>mode))
+	{
+	  use_zero_form = 1;
+	  break;
+	}
+      /* Fall through.  */
     default:
       if (!REG_P (operands[5]))
 	operands[5] = force_reg (<MODE>mode, operands[5]);
@@ -1798,7 +1803,26 @@
 	 a GT b -> a GT b
 	 a LE b -> b GE a
 	 a LT b -> b GT a
-	 a EQ b -> a EQ b  */
+	 a EQ b -> a EQ b
+	 Note that there also exist direct comparison against 0 forms,
+	 so catch those as a special case.  */
+      if (use_zero_form)
+	{
+	  inverse = 0;
+	  switch (GET_CODE (operands[3]))
+	    {
+	    case LT:
+	      base_comparison = gen_neon_vclt<mode>;
+	      break;
+	    case LE:
+	      base_comparison = gen_neon_vcle<mode>;
+	      break;
+	    default:
+	      /* Do nothing, other zero form cases already have the correct
+		 base_comparison.  */
+	      break;
+	    }
+	}
 
       if (!inverse)
 	emit_insn (base_comparison (mask, operands[4], operands[5], magic_rtx));
diff -Naur gcc-4.8.1.orig/gcc/config/arm/vfp.md gcc-4.8.1/gcc/config/arm/vfp.md
--- gcc-4.8.1.orig/gcc/config/arm/vfp.md	2013-01-29 18:34:12.000000000 +0000
+++ gcc-4.8.1/gcc/config/arm/vfp.md	2013-10-01 16:06:43.784554291 +0000
@@ -1207,18 +1207,18 @@
    (set_attr "type" "fcmpd")]
 )
 
-;; Fixed point to floating point conversions. 
+;; Fixed point to floating point conversions.
 (define_code_iterator FCVT [unsigned_float float])
 (define_code_attr FCVTI32typename [(unsigned_float "u32") (float "s32")])
 
 (define_insn "*combine_vcvt_f32_<FCVTI32typename>"
   [(set (match_operand:SF 0 "s_register_operand" "=t")
 	(mult:SF (FCVT:SF (match_operand:SI 1 "s_register_operand" "0"))
-		 (match_operand 2 
+		 (match_operand 2
 			"const_double_vcvt_power_of_two_reciprocal" "Dt")))]
   "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math"
-  "vcvt.f32.<FCVTI32typename>\\t%0, %1, %v2"
- [(set_attr "predicable" "no")
+  "vcvt%?.f32.<FCVTI32typename>\\t%0, %1, %v2"
+ [(set_attr "predicable" "yes")
   (set_attr "type" "f_cvt")]
 )
 
@@ -1227,15 +1227,16 @@
 (define_insn "*combine_vcvt_f64_<FCVTI32typename>"
   [(set (match_operand:DF 0 "s_register_operand" "=x,x,w")
 	(mult:DF (FCVT:DF (match_operand:SI 1 "s_register_operand" "r,t,r"))
-		 (match_operand 2 
+		 (match_operand 2
 		     "const_double_vcvt_power_of_two_reciprocal" "Dt,Dt,Dt")))]
-  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math 
+  "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
   && !TARGET_VFP_SINGLE"
   "@
-  vmov.f32\\t%0, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2
-  vmov.f32\\t%0, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2
-  vmov.f64\\t%P0, %1, %1\;vcvt.f64.<FCVTI32typename>\\t%P0, %P0, %v2"
- [(set_attr "predicable" "no")
+  vmov%?.f32\\t%0, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2
+  vmov%?.f32\\t%0, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2
+  vmov%?.f64\\t%P0, %1, %1\;vcvt%?.f64.<FCVTI32typename>\\t%P0, %P0, %v2"
+ [(set_attr "predicable" "yes")
+  (set_attr "ce_count" "2")
   (set_attr "type" "f_cvt")
   (set_attr "length" "8")]
 )
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md gcc-4.8.1/gcc/config/avr/avr-fixed.md
--- gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md	2013-02-08 10:13:37.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr-fixed.md	2013-10-01 16:06:43.792554291 +0000
@@ -447,49 +447,18 @@
 ;; "roundqq3_const"  "rounduqq3_const"
 ;; "roundhq3_const"  "rounduhq3_const"  "roundha3_const"  "rounduha3_const"
 ;; "roundsq3_const"  "roundusq3_const"  "roundsa3_const"  "roundusa3_const"
-(define_expand "round<mode>3_const"
-  [(parallel [(match_operand:ALL124QA 0 "register_operand" "")
-              (match_operand:ALL124QA 1 "register_operand" "")
-              (match_operand:HI 2 "const_int_operand" "")])]
+(define_insn "round<mode>3_const"
+  [(set (match_operand:ALL124QA 0 "register_operand"                  "=d")
+        (unspec:ALL124QA [(match_operand:ALL124QA 1 "register_operand" "0")
+                          (match_operand:HI 2 "const_int_operand"      "n")
+                          (const_int 0)]
+                         UNSPEC_ROUND))]
   ""
   {
-    // The rounding point RP is $2.  The smallest fractional
-    // bit that is not cleared by the rounding is 2^(-RP).
-
-    enum machine_mode imode = int_mode_for_mode (<MODE>mode);
-    int fbit = (int) GET_MODE_FBIT (<MODE>mode);
-
-    // Add-Saturate  1/2 * 2^(-RP)
-
-    double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (operands[2]));
-    rtx x_add = const_fixed_from_double_int (i_add, <MODE>mode);
-
-    if (SIGNED_FIXED_POINT_MODE_P (<MODE>mode))
-      emit_move_insn (operands[0],
-                      gen_rtx_SS_PLUS (<MODE>mode, operands[1], x_add));
-    else
-      emit_move_insn (operands[0],
-                      gen_rtx_US_PLUS (<MODE>mode, operands[1], x_add));
-
-    // Keep  all bits from RP and higher:   ... 2^(-RP)
-    // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
-    // Rounding point                           ^^^^^^^
-    // Added above                                      ^^^^^^^^^
-
-    rtx xreg = simplify_gen_subreg (imode, operands[0], <MODE>mode, 0);
-    rtx xmask = immed_double_int_const (-i_add - i_add, imode);
-
-    if (SImode == imode)
-      emit_insn (gen_andsi3 (xreg, xreg, xmask));
-    else if (HImode == imode)
-      emit_insn (gen_andhi3 (xreg, xreg, xmask));
-    else if (QImode == imode)
-      emit_insn (gen_andqi3 (xreg, xreg, xmask));
-    else
-      gcc_unreachable();
-
-    DONE;
-  })
+    return avr_out_round (insn, operands);
+  }
+  [(set_attr "cc" "clobber")
+   (set_attr "adjust_len" "round")])
 
 
 ;; "*roundqq3.libgcc"  "*rounduqq3.libgcc"
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def gcc-4.8.1/gcc/config/avr/avr-mcus.def
--- gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def	2013-02-28 09:03:09.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr-mcus.def	2013-10-01 16:06:43.792554291 +0000
@@ -168,7 +168,6 @@
 AVR_MCU ("atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0, 0x0100, 1, "m169a")
 AVR_MCU ("atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0, 0x0100, 1, "m169p")
 AVR_MCU ("atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0, 0x0100, 1, "m169pa")
-AVR_MCU ("atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0, 0x0100, 1, "m16hva")
 AVR_MCU ("atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0, 0x0100, 1, "m16hvb")
 AVR_MCU ("atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   0, 0, 0x0100, 1, "m16hvbrevb")
 AVR_MCU ("atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0, 0x0100, 1, "m16m1")
@@ -176,7 +175,6 @@
 AVR_MCU ("atmega26hvg",          ARCH_AVR5, "__AVR_ATmega26HVG__",       0, 0, 0x0100, 1, "m26hvg")
 AVR_MCU ("atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0, 0x0060, 1, "m32a")
 AVR_MCU ("atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0, 0x0060, 1, "m32")
-AVR_MCU ("atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0, 0x0060, 1, "m32a")
 AVR_MCU ("atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0, 0x0060, 1, "m323")
 AVR_MCU ("atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0, 0x0100, 1, "m324a")
 AVR_MCU ("atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0, 0x0100, 1, "m324p")
@@ -222,7 +220,6 @@
 AVR_MCU ("atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0, 0x0100, 1, "m6490")
 AVR_MCU ("atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0, 0x0100, 1, "m16hva")
 AVR_MCU ("atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0, 0x0100, 1, "m16hva2")
-AVR_MCU ("atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0, 0x0100, 1, "m16hvb")
 AVR_MCU ("atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0, 0x0100, 1, "m32hvb")
 AVR_MCU ("atmega6490a",          ARCH_AVR5, "__AVR_ATmega6490A__",       0, 0, 0x0100, 1, "m6490a")
 AVR_MCU ("atmega6490p",          ARCH_AVR5, "__AVR_ATmega6490P__",       0, 0, 0x0100, 1, "m6490p")
@@ -231,23 +228,13 @@
 AVR_MCU ("atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0, 0x0100, 1, "m64hve")
 AVR_MCU ("atmega64rfa2",         ARCH_AVR5, "__AVR_ATmega64RFA2__",      0, 0, 0x0200, 1, "m64rfa2")
 AVR_MCU ("atmega64rfr2",         ARCH_AVR5, "__AVR_ATmega64RFR2__",      0, 0, 0x0200, 1, "m64rfr2")
-AVR_MCU ("atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0, 0x0100, 1, "m32hvb")
 AVR_MCU ("atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   0, 0, 0x0100, 1, "m32hvbrevb")
-AVR_MCU ("atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0, 0x0100, 1, "m16hva2")
 AVR_MCU ("atmega48hvf",          ARCH_AVR5, "__AVR_ATmega48HVF__",       0, 0, 0x0100, 1, "m48hvf")
 AVR_MCU ("at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0, 0x0100, 1, "can32")
 AVR_MCU ("at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0, 0x0100, 1, "can64")
 AVR_MCU ("at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",        0, 0, 0x0100, 1, "90pwm161")
 AVR_MCU ("at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0, 0x0100, 1, "90pwm216")
 AVR_MCU ("at90pwm316",           ARCH_AVR5, "__AVR_AT90PWM316__",        0, 0, 0x0100, 1, "90pwm316")
-AVR_MCU ("atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0, 0x0100, 1, "m32c1")
-AVR_MCU ("atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0, 0x0100, 1, "m64c1")
-AVR_MCU ("atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0, 0x0100, 1, "m16m1")
-AVR_MCU ("atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0, 0x0100, 1, "m32m1")
-AVR_MCU ("atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0, 0x0100, 1, "m64m1")
-AVR_MCU ("atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0, 0x0100, 1, "m16u4")
-AVR_MCU ("atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0, 0x0100, 1, "m32u4")
-AVR_MCU ("atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0, 0x0100, 1, "m32u6")
 AVR_MCU ("at90scr100",           ARCH_AVR5, "__AVR_AT90SCR100__",        0, 0, 0x0100, 1, "90scr100")
 AVR_MCU ("at90usb646",           ARCH_AVR5, "__AVR_AT90USB646__",        0, 0, 0x0100, 1, "usb646")
 AVR_MCU ("at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0, 0x0100, 1, "usb647")
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-protos.h gcc-4.8.1/gcc/config/avr/avr-protos.h
--- gcc-4.8.1.orig/gcc/config/avr/avr-protos.h	2013-01-14 15:08:45.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr-protos.h	2013-10-01 16:06:43.792554291 +0000
@@ -86,7 +86,8 @@
 extern void avr_output_addr_vec_elt (FILE *stream, int value);
 extern const char *avr_out_sbxx_branch (rtx insn, rtx operands[]);
 extern const char* avr_out_bitop (rtx, rtx*, int*);
-extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL);
+extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true);
+extern const char* avr_out_round (rtx, rtx*, int* =NULL);
 extern const char* avr_out_addto_sp (rtx*, int*);
 extern const char* avr_out_xload (rtx, rtx*, int*);
 extern const char* avr_out_movmem (rtx, rtx*, int*);
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt gcc-4.8.1/gcc/config/avr/avr-tables.opt
--- gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt	2013-02-28 09:03:09.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr-tables.opt	2013-10-01 16:06:43.792554291 +0000
@@ -330,479 +330,440 @@
 Enum(avr_mcu) String(atmega169pa) Value(101)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva) Value(102)
+Enum(avr_mcu) String(atmega16hvb) Value(102)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvb) Value(103)
+Enum(avr_mcu) String(atmega16hvbrevb) Value(103)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvbrevb) Value(104)
+Enum(avr_mcu) String(atmega16m1) Value(104)
 
 EnumValue
-Enum(avr_mcu) String(atmega16m1) Value(105)
+Enum(avr_mcu) String(atmega16u4) Value(105)
 
 EnumValue
-Enum(avr_mcu) String(atmega16u4) Value(106)
+Enum(avr_mcu) String(atmega26hvg) Value(106)
 
 EnumValue
-Enum(avr_mcu) String(atmega26hvg) Value(107)
+Enum(avr_mcu) String(atmega32a) Value(107)
 
 EnumValue
-Enum(avr_mcu) String(atmega32a) Value(108)
+Enum(avr_mcu) String(atmega32) Value(108)
 
 EnumValue
-Enum(avr_mcu) String(atmega32) Value(109)
+Enum(avr_mcu) String(atmega323) Value(109)
 
 EnumValue
-Enum(avr_mcu) String(atmega32a) Value(110)
+Enum(avr_mcu) String(atmega324a) Value(110)
 
 EnumValue
-Enum(avr_mcu) String(atmega323) Value(111)
+Enum(avr_mcu) String(atmega324p) Value(111)
 
 EnumValue
-Enum(avr_mcu) String(atmega324a) Value(112)
+Enum(avr_mcu) String(atmega324pa) Value(112)
 
 EnumValue
-Enum(avr_mcu) String(atmega324p) Value(113)
+Enum(avr_mcu) String(atmega325) Value(113)
 
 EnumValue
-Enum(avr_mcu) String(atmega324pa) Value(114)
+Enum(avr_mcu) String(atmega325a) Value(114)
 
 EnumValue
-Enum(avr_mcu) String(atmega325) Value(115)
+Enum(avr_mcu) String(atmega325p) Value(115)
 
 EnumValue
-Enum(avr_mcu) String(atmega325a) Value(116)
+Enum(avr_mcu) String(atmega3250) Value(116)
 
 EnumValue
-Enum(avr_mcu) String(atmega325p) Value(117)
+Enum(avr_mcu) String(atmega3250a) Value(117)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250) Value(118)
+Enum(avr_mcu) String(atmega3250p) Value(118)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250a) Value(119)
+Enum(avr_mcu) String(atmega3250pa) Value(119)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250p) Value(120)
+Enum(avr_mcu) String(atmega328) Value(120)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250pa) Value(121)
+Enum(avr_mcu) String(atmega328p) Value(121)
 
 EnumValue
-Enum(avr_mcu) String(atmega328) Value(122)
+Enum(avr_mcu) String(atmega329) Value(122)
 
 EnumValue
-Enum(avr_mcu) String(atmega328p) Value(123)
+Enum(avr_mcu) String(atmega329a) Value(123)
 
 EnumValue
-Enum(avr_mcu) String(atmega329) Value(124)
+Enum(avr_mcu) String(atmega329p) Value(124)
 
 EnumValue
-Enum(avr_mcu) String(atmega329a) Value(125)
+Enum(avr_mcu) String(atmega329pa) Value(125)
 
 EnumValue
-Enum(avr_mcu) String(atmega329p) Value(126)
+Enum(avr_mcu) String(atmega3290) Value(126)
 
 EnumValue
-Enum(avr_mcu) String(atmega329pa) Value(127)
+Enum(avr_mcu) String(atmega3290a) Value(127)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290) Value(128)
+Enum(avr_mcu) String(atmega3290p) Value(128)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290a) Value(129)
+Enum(avr_mcu) String(atmega3290pa) Value(129)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290p) Value(130)
+Enum(avr_mcu) String(atmega32c1) Value(130)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290pa) Value(131)
+Enum(avr_mcu) String(atmega32m1) Value(131)
 
 EnumValue
-Enum(avr_mcu) String(atmega32c1) Value(132)
+Enum(avr_mcu) String(atmega32u4) Value(132)
 
 EnumValue
-Enum(avr_mcu) String(atmega32m1) Value(133)
+Enum(avr_mcu) String(atmega32u6) Value(133)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u4) Value(134)
+Enum(avr_mcu) String(atmega406) Value(134)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u6) Value(135)
+Enum(avr_mcu) String(atmega64) Value(135)
 
 EnumValue
-Enum(avr_mcu) String(atmega406) Value(136)
+Enum(avr_mcu) String(atmega64a) Value(136)
 
 EnumValue
-Enum(avr_mcu) String(atmega64) Value(137)
+Enum(avr_mcu) String(atmega640) Value(137)
 
 EnumValue
-Enum(avr_mcu) String(atmega64a) Value(138)
+Enum(avr_mcu) String(atmega644) Value(138)
 
 EnumValue
-Enum(avr_mcu) String(atmega640) Value(139)
+Enum(avr_mcu) String(atmega644a) Value(139)
 
 EnumValue
-Enum(avr_mcu) String(atmega644) Value(140)
+Enum(avr_mcu) String(atmega644p) Value(140)
 
 EnumValue
-Enum(avr_mcu) String(atmega644a) Value(141)
+Enum(avr_mcu) String(atmega644pa) Value(141)
 
 EnumValue
-Enum(avr_mcu) String(atmega644p) Value(142)
+Enum(avr_mcu) String(atmega645) Value(142)
 
 EnumValue
-Enum(avr_mcu) String(atmega644pa) Value(143)
+Enum(avr_mcu) String(atmega645a) Value(143)
 
 EnumValue
-Enum(avr_mcu) String(atmega645) Value(144)
+Enum(avr_mcu) String(atmega645p) Value(144)
 
 EnumValue
-Enum(avr_mcu) String(atmega645a) Value(145)
+Enum(avr_mcu) String(atmega6450) Value(145)
 
 EnumValue
-Enum(avr_mcu) String(atmega645p) Value(146)
+Enum(avr_mcu) String(atmega6450a) Value(146)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450) Value(147)
+Enum(avr_mcu) String(atmega6450p) Value(147)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450a) Value(148)
+Enum(avr_mcu) String(atmega649) Value(148)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450p) Value(149)
+Enum(avr_mcu) String(atmega649a) Value(149)
 
 EnumValue
-Enum(avr_mcu) String(atmega649) Value(150)
+Enum(avr_mcu) String(atmega649p) Value(150)
 
 EnumValue
-Enum(avr_mcu) String(atmega649a) Value(151)
+Enum(avr_mcu) String(atmega6490) Value(151)
 
 EnumValue
-Enum(avr_mcu) String(atmega649p) Value(152)
+Enum(avr_mcu) String(atmega16hva) Value(152)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490) Value(153)
+Enum(avr_mcu) String(atmega16hva2) Value(153)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva) Value(154)
+Enum(avr_mcu) String(atmega32hvb) Value(154)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva2) Value(155)
+Enum(avr_mcu) String(atmega6490a) Value(155)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvb) Value(156)
+Enum(avr_mcu) String(atmega6490p) Value(156)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvb) Value(157)
+Enum(avr_mcu) String(atmega64c1) Value(157)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490a) Value(158)
+Enum(avr_mcu) String(atmega64m1) Value(158)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490p) Value(159)
+Enum(avr_mcu) String(atmega64hve) Value(159)
 
 EnumValue
-Enum(avr_mcu) String(atmega64c1) Value(160)
+Enum(avr_mcu) String(atmega64rfa2) Value(160)
 
 EnumValue
-Enum(avr_mcu) String(atmega64m1) Value(161)
+Enum(avr_mcu) String(atmega64rfr2) Value(161)
 
 EnumValue
-Enum(avr_mcu) String(atmega64hve) Value(162)
+Enum(avr_mcu) String(atmega32hvbrevb) Value(162)
 
 EnumValue
-Enum(avr_mcu) String(atmega64rfa2) Value(163)
+Enum(avr_mcu) String(atmega48hvf) Value(163)
 
 EnumValue
-Enum(avr_mcu) String(atmega64rfr2) Value(164)
+Enum(avr_mcu) String(at90can32) Value(164)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvb) Value(165)
+Enum(avr_mcu) String(at90can64) Value(165)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvbrevb) Value(166)
+Enum(avr_mcu) String(at90pwm161) Value(166)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva2) Value(167)
+Enum(avr_mcu) String(at90pwm216) Value(167)
 
 EnumValue
-Enum(avr_mcu) String(atmega48hvf) Value(168)
+Enum(avr_mcu) String(at90pwm316) Value(168)
 
 EnumValue
-Enum(avr_mcu) String(at90can32) Value(169)
+Enum(avr_mcu) String(at90scr100) Value(169)
 
 EnumValue
-Enum(avr_mcu) String(at90can64) Value(170)
+Enum(avr_mcu) String(at90usb646) Value(170)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm161) Value(171)
+Enum(avr_mcu) String(at90usb647) Value(171)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm216) Value(172)
+Enum(avr_mcu) String(at94k) Value(172)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm316) Value(173)
+Enum(avr_mcu) String(m3000) Value(173)
 
 EnumValue
-Enum(avr_mcu) String(atmega32c1) Value(174)
+Enum(avr_mcu) String(avr51) Value(174)
 
 EnumValue
-Enum(avr_mcu) String(atmega64c1) Value(175)
+Enum(avr_mcu) String(atmega128) Value(175)
 
 EnumValue
-Enum(avr_mcu) String(atmega16m1) Value(176)
+Enum(avr_mcu) String(atmega128a) Value(176)
 
 EnumValue
-Enum(avr_mcu) String(atmega32m1) Value(177)
+Enum(avr_mcu) String(atmega1280) Value(177)
 
 EnumValue
-Enum(avr_mcu) String(atmega64m1) Value(178)
+Enum(avr_mcu) String(atmega1281) Value(178)
 
 EnumValue
-Enum(avr_mcu) String(atmega16u4) Value(179)
+Enum(avr_mcu) String(atmega1284) Value(179)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u4) Value(180)
+Enum(avr_mcu) String(atmega1284p) Value(180)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u6) Value(181)
+Enum(avr_mcu) String(atmega128rfa1) Value(181)
 
 EnumValue
-Enum(avr_mcu) String(at90scr100) Value(182)
+Enum(avr_mcu) String(at90can128) Value(182)
 
 EnumValue
-Enum(avr_mcu) String(at90usb646) Value(183)
+Enum(avr_mcu) String(at90usb1286) Value(183)
 
 EnumValue
-Enum(avr_mcu) String(at90usb647) Value(184)
+Enum(avr_mcu) String(at90usb1287) Value(184)
 
 EnumValue
-Enum(avr_mcu) String(at94k) Value(185)
+Enum(avr_mcu) String(avr6) Value(185)
 
 EnumValue
-Enum(avr_mcu) String(m3000) Value(186)
+Enum(avr_mcu) String(atmega2560) Value(186)
 
 EnumValue
-Enum(avr_mcu) String(avr51) Value(187)
+Enum(avr_mcu) String(atmega2561) Value(187)
 
 EnumValue
-Enum(avr_mcu) String(atmega128) Value(188)
+Enum(avr_mcu) String(avrxmega2) Value(188)
 
 EnumValue
-Enum(avr_mcu) String(atmega128a) Value(189)
+Enum(avr_mcu) String(atxmega16a4) Value(189)
 
 EnumValue
-Enum(avr_mcu) String(atmega1280) Value(190)
+Enum(avr_mcu) String(atxmega16d4) Value(190)
 
 EnumValue
-Enum(avr_mcu) String(atmega1281) Value(191)
+Enum(avr_mcu) String(atxmega16x1) Value(191)
 
 EnumValue
-Enum(avr_mcu) String(atmega1284) Value(192)
+Enum(avr_mcu) String(atxmega32a4) Value(192)
 
 EnumValue
-Enum(avr_mcu) String(atmega1284p) Value(193)
+Enum(avr_mcu) String(atxmega32d4) Value(193)
 
 EnumValue
-Enum(avr_mcu) String(atmega128rfa1) Value(194)
+Enum(avr_mcu) String(atxmega32x1) Value(194)
 
 EnumValue
-Enum(avr_mcu) String(at90can128) Value(195)
+Enum(avr_mcu) String(atmxt112sl) Value(195)
 
 EnumValue
-Enum(avr_mcu) String(at90usb1286) Value(196)
+Enum(avr_mcu) String(atmxt224) Value(196)
 
 EnumValue
-Enum(avr_mcu) String(at90usb1287) Value(197)
+Enum(avr_mcu) String(atmxt224e) Value(197)
 
 EnumValue
-Enum(avr_mcu) String(avr6) Value(198)
+Enum(avr_mcu) String(atmxt336s) Value(198)
 
 EnumValue
-Enum(avr_mcu) String(atmega2560) Value(199)
+Enum(avr_mcu) String(atxmega16a4u) Value(199)
 
 EnumValue
-Enum(avr_mcu) String(atmega2561) Value(200)
+Enum(avr_mcu) String(atxmega16c4) Value(200)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega2) Value(201)
+Enum(avr_mcu) String(atxmega32a4u) Value(201)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16a4) Value(202)
+Enum(avr_mcu) String(atxmega32c4) Value(202)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16d4) Value(203)
+Enum(avr_mcu) String(atxmega32e5) Value(203)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16x1) Value(204)
+Enum(avr_mcu) String(avrxmega4) Value(204)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32a4) Value(205)
+Enum(avr_mcu) String(atxmega64a3) Value(205)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32d4) Value(206)
+Enum(avr_mcu) String(atxmega64d3) Value(206)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32x1) Value(207)
+Enum(avr_mcu) String(atxmega64a3u) Value(207)
 
 EnumValue
-Enum(avr_mcu) String(atmxt112sl) Value(208)
+Enum(avr_mcu) String(atxmega64a4u) Value(208)
 
 EnumValue
-Enum(avr_mcu) String(atmxt224) Value(209)
+Enum(avr_mcu) String(atxmega64b1) Value(209)
 
 EnumValue
-Enum(avr_mcu) String(atmxt224e) Value(210)
+Enum(avr_mcu) String(atxmega64b3) Value(210)
 
 EnumValue
-Enum(avr_mcu) String(atmxt336s) Value(211)
+Enum(avr_mcu) String(atxmega64c3) Value(211)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16a4u) Value(212)
+Enum(avr_mcu) String(atxmega64d4) Value(212)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16c4) Value(213)
+Enum(avr_mcu) String(avrxmega5) Value(213)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32a4u) Value(214)
+Enum(avr_mcu) String(atxmega64a1) Value(214)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32c4) Value(215)
+Enum(avr_mcu) String(atxmega64a1u) Value(215)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32e5) Value(216)
+Enum(avr_mcu) String(avrxmega6) Value(216)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega4) Value(217)
+Enum(avr_mcu) String(atxmega128a3) Value(217)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a3) Value(218)
+Enum(avr_mcu) String(atxmega128d3) Value(218)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64d3) Value(219)
+Enum(avr_mcu) String(atxmega192a3) Value(219)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a3u) Value(220)
+Enum(avr_mcu) String(atxmega192d3) Value(220)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a4u) Value(221)
+Enum(avr_mcu) String(atxmega256a3) Value(221)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64b1) Value(222)
+Enum(avr_mcu) String(atxmega256a3b) Value(222)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64b3) Value(223)
+Enum(avr_mcu) String(atxmega256a3bu) Value(223)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64c3) Value(224)
+Enum(avr_mcu) String(atxmega256d3) Value(224)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64d4) Value(225)
+Enum(avr_mcu) String(atxmega128a3u) Value(225)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega5) Value(226)
+Enum(avr_mcu) String(atxmega128b1) Value(226)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a1) Value(227)
+Enum(avr_mcu) String(atxmega128b3) Value(227)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a1u) Value(228)
+Enum(avr_mcu) String(atxmega128c3) Value(228)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega6) Value(229)
+Enum(avr_mcu) String(atxmega128d4) Value(229)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128a3) Value(230)
+Enum(avr_mcu) String(atmxt540s) Value(230)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128d3) Value(231)
+Enum(avr_mcu) String(atmxt540sreva) Value(231)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192a3) Value(232)
+Enum(avr_mcu) String(atxmega192a3u) Value(232)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192d3) Value(233)
+Enum(avr_mcu) String(atxmega192c3) Value(233)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3) Value(234)
+Enum(avr_mcu) String(atxmega256a3u) Value(234)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3b) Value(235)
+Enum(avr_mcu) String(atxmega256c3) Value(235)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3bu) Value(236)
+Enum(avr_mcu) String(atxmega384c3) Value(236)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256d3) Value(237)
+Enum(avr_mcu) String(atxmega384d3) Value(237)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128a3u) Value(238)
+Enum(avr_mcu) String(avrxmega7) Value(238)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128b1) Value(239)
+Enum(avr_mcu) String(atxmega128a1) Value(239)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128b3) Value(240)
+Enum(avr_mcu) String(atxmega128a1u) Value(240)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128c3) Value(241)
+Enum(avr_mcu) String(atxmega128a4u) Value(241)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128d4) Value(242)
+Enum(avr_mcu) String(avr1) Value(242)
 
 EnumValue
-Enum(avr_mcu) String(atmxt540s) Value(243)
+Enum(avr_mcu) String(at90s1200) Value(243)
 
 EnumValue
-Enum(avr_mcu) String(atmxt540sreva) Value(244)
+Enum(avr_mcu) String(attiny11) Value(244)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192a3u) Value(245)
+Enum(avr_mcu) String(attiny12) Value(245)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192c3) Value(246)
+Enum(avr_mcu) String(attiny15) Value(246)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3u) Value(247)
-
-EnumValue
-Enum(avr_mcu) String(atxmega256c3) Value(248)
-
-EnumValue
-Enum(avr_mcu) String(atxmega384c3) Value(249)
-
-EnumValue
-Enum(avr_mcu) String(atxmega384d3) Value(250)
-
-EnumValue
-Enum(avr_mcu) String(avrxmega7) Value(251)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a1) Value(252)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a1u) Value(253)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a4u) Value(254)
-
-EnumValue
-Enum(avr_mcu) String(avr1) Value(255)
-
-EnumValue
-Enum(avr_mcu) String(at90s1200) Value(256)
-
-EnumValue
-Enum(avr_mcu) String(attiny11) Value(257)
-
-EnumValue
-Enum(avr_mcu) String(attiny12) Value(258)
-
-EnumValue
-Enum(avr_mcu) String(attiny15) Value(259)
-
-EnumValue
-Enum(avr_mcu) String(attiny28) Value(260)
+Enum(avr_mcu) String(attiny28) Value(247)
 
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.c gcc-4.8.1/gcc/config/avr/avr.c
--- gcc-4.8.1.orig/gcc/config/avr/avr.c	2013-03-12 11:42:26.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr.c	2013-10-01 16:06:43.784554291 +0000
@@ -584,7 +584,12 @@
     {
       tree args = TYPE_ARG_TYPES (TREE_TYPE (decl));
       tree ret = TREE_TYPE (TREE_TYPE (decl));
-      const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
+      const char *name;
+
+      name = DECL_ASSEMBLER_NAME_SET_P (decl)
+        /* Remove the leading '*' added in set_user_assembler_name.  */
+        ? 1 + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
+        : IDENTIFIER_POINTER (DECL_NAME (decl));
 
       /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
          using this when it switched from SIGNAL and INTERRUPT to ISR.  */
@@ -1112,7 +1117,7 @@
               leaf function and thus X has already been saved.  */
 
           int irq_state = -1;
-          HOST_WIDE_INT size_cfa = size;
+          HOST_WIDE_INT size_cfa = size, neg_size;
           rtx fp_plus_insns, fp, my_fp;
 
           gcc_assert (frame_pointer_needed
@@ -1151,6 +1156,7 @@
             }
 
           size = trunc_int_for_mode (size, GET_MODE (my_fp));
+          neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
 
           /************  Method 1: Adjust frame pointer  ************/
 
@@ -1171,7 +1177,8 @@
             }
 
           insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
-                                                       my_fp, -size));
+                                                       my_fp, neg_size));
+
           if (frame_pointer_needed)
             {
               RTX_FRAME_RELATED_P (insn) = 1;
@@ -6225,11 +6232,14 @@
    the subtrahend in the original insn, provided it is a compile time constant.
    In all other cases, SIGN is 0.
 
-   Return "".  */
+   If OUT_LABEL is true, print the final 0: label which is needed for
+   saturated addition / subtraction.  The only case where OUT_LABEL = false
+   is useful is for saturated addition / subtraction performed during
+   fixed-point rounding, cf. `avr_out_round'.  */
 
 static void
 avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
-                enum rtx_code code_sat = UNKNOWN, int sign = 0)
+                enum rtx_code code_sat, int sign, bool out_label)
 {
   /* MODE of the operation.  */
   enum machine_mode mode = GET_MODE (xop[0]);
@@ -6668,7 +6678,8 @@
                      "mov %r0+5,%0", xop, plen, 4);
     }
 
-  avr_asm_len ("0:", op, plen, 0);
+  if (out_label)
+    avr_asm_len ("0:", op, plen, 0);
 }
 
 
@@ -6706,8 +6717,8 @@
 
 /* Prepare operands of addition/subtraction to be used with avr_out_plus_1.
 
-   INSN is a single_set insn with a binary operation as SET_SRC that is
-   one of:  PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS.
+   INSN is a single_set insn or an insn pattern with a binary operation as
+   SET_SRC that is one of: PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS.
 
    XOP are the operands of INSN.  In the case of 64-bit operations with
    constant XOP[] has just one element:  The summand/subtrahend in XOP[0].
@@ -6722,19 +6733,22 @@
 
    PLEN and PCC default to NULL.
 
+   OUT_LABEL defaults to TRUE.  For a description, see AVR_OUT_PLUS_1.
+
    Return ""  */
 
 const char*
-avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc)
+avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
 {
   int cc_plus, cc_minus, cc_dummy;
   int len_plus, len_minus;
   rtx op[4];
-  rtx xdest = SET_DEST (single_set (insn));
+  rtx xpattern = INSN_P (insn) ? single_set (insn) : insn;
+  rtx xdest = SET_DEST (xpattern);
   enum machine_mode mode = GET_MODE (xdest);
   enum machine_mode imode = int_mode_for_mode (mode);
   int n_bytes = GET_MODE_SIZE (mode);
-  enum rtx_code code_sat = GET_CODE (SET_SRC (single_set (insn)));
+  enum rtx_code code_sat = GET_CODE (SET_SRC (xpattern));
   enum rtx_code code
     = (PLUS == code_sat || SS_PLUS == code_sat || US_PLUS == code_sat
        ? PLUS : MINUS);
@@ -6749,7 +6763,7 @@
 
   if (n_bytes <= 4 && REG_P (xop[2]))
     {
-      avr_out_plus_1 (xop, plen, code, pcc, code_sat);
+      avr_out_plus_1 (xop, plen, code, pcc, code_sat, 0, out_label);
       return "";
     }
 
@@ -6776,7 +6790,8 @@
   /* Saturations and 64-bit operations don't have a clobber operand.
      For the other cases, the caller will provide a proper XOP[3].  */
 
-  op[3] = PARALLEL == GET_CODE (PATTERN (insn)) ? xop[3] : NULL_RTX;
+  xpattern = INSN_P (insn) ? PATTERN (insn) : insn;
+  op[3] = PARALLEL == GET_CODE (xpattern) ? xop[3] : NULL_RTX;
 
   /* Saturation will need the sign of the original operand.  */
 
@@ -6791,8 +6806,8 @@
 
   /* Work out the shortest sequence.  */
 
-  avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign);
-  avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign);
+  avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign, out_label);
+  avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign, out_label);
 
   if (plen)
     {
@@ -6800,9 +6815,9 @@
       *pcc  = (len_minus <= len_plus) ? cc_minus : cc_plus;
     }
   else if (len_minus <= len_plus)
-    avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign);
+    avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign, out_label);
   else
-    avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign);
+    avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign, out_label);
 
   return "";
 }
@@ -6816,13 +6831,15 @@
    and return "".  If PLEN == NULL, print assembler instructions to perform the
    operation; otherwise, set *PLEN to the length of the instruction sequence
    (in words) printed with PLEN == NULL.  XOP[3] is either an 8-bit clobber
-   register or SCRATCH if no clobber register is needed for the operation.  */
+   register or SCRATCH if no clobber register is needed for the operation.
+   INSN is an INSN_P or a pattern of an insn.  */
 
 const char*
 avr_out_bitop (rtx insn, rtx *xop, int *plen)
 {
   /* CODE and MODE of the operation.  */
-  enum rtx_code code = GET_CODE (SET_SRC (single_set (insn)));
+  rtx xpattern = INSN_P (insn) ? single_set (insn) : insn;
+  enum rtx_code code = GET_CODE (SET_SRC (xpattern));
   enum machine_mode mode = GET_MODE (xop[0]);
 
   /* Number of bytes to operate on.  */
@@ -7325,6 +7342,67 @@
 }
 
 
+/* Output fixed-point rounding.  XOP[0] = XOP[1] is the operand to round.
+   XOP[2] is the rounding point, a CONST_INT.  The function prints the
+   instruction sequence if PLEN = NULL and computes the length in words
+   of the sequence if PLEN != NULL.  Most of this function deals with
+   preparing operands for calls to `avr_out_plus' and `avr_out_bitop'.  */
+
+const char*
+avr_out_round (rtx insn ATTRIBUTE_UNUSED, rtx *xop, int *plen)
+{
+  enum machine_mode mode = GET_MODE (xop[0]);
+  enum machine_mode imode = int_mode_for_mode (mode);
+  // The smallest fractional bit not cleared by the rounding is 2^(-RP).
+  int fbit = (int) GET_MODE_FBIT (mode);
+  double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (xop[2]));
+  // Lengths of PLUS and AND parts.
+  int len_add = 0, *plen_add = plen ? &len_add : NULL;
+  int len_and = 0, *plen_and = plen ? &len_and : NULL;
+
+  // Add-Saturate  1/2 * 2^(-RP).  Don't print the label "0:" when printing
+  // the saturated addition so that we can emit the "rjmp 1f" before the
+  // "0:" below.
+
+  rtx xadd = const_fixed_from_double_int (i_add, mode);
+  rtx xpattern, xsrc, op[4];
+
+  xsrc = SIGNED_FIXED_POINT_MODE_P (mode)
+    ? gen_rtx_SS_PLUS (mode, xop[1], xadd)
+    : gen_rtx_US_PLUS (mode, xop[1], xadd);
+  xpattern = gen_rtx_SET (VOIDmode, xop[0], xsrc);
+
+  op[0] = xop[0];
+  op[1] = xop[1];
+  op[2] = xadd;
+  avr_out_plus (xpattern, op, plen_add, NULL, false /* Don't print "0:" */);
+
+  avr_asm_len ("rjmp 1f" CR_TAB
+               "0:", NULL, plen_add, 1);
+
+  // Keep  all bits from RP and higher:   ... 2^(-RP)
+  // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
+  // Rounding point                           ^^^^^^^
+  // Added above                                      ^^^^^^^^^
+  rtx xreg = simplify_gen_subreg (imode, xop[0], mode, 0);
+  rtx xmask = immed_double_int_const (-i_add - i_add, imode);
+
+  xpattern = gen_rtx_SET (VOIDmode, xreg, gen_rtx_AND (imode, xreg, xmask));
+
+  op[0] = xreg;
+  op[1] = xreg;
+  op[2] = xmask;
+  op[3] = gen_rtx_SCRATCH (QImode);
+  avr_out_bitop (xpattern, op, plen_and);
+  avr_asm_len ("1:", NULL, plen, 0);
+
+  if (plen)
+    *plen = len_add + len_and;
+
+  return "";
+}
+
+
 /* Create RTL split patterns for byte sized rotate expressions.  This
   produces a series of move instructions and considers overlap situations.
   Overlapping non-HImode operands need a scratch register.  */
@@ -7533,6 +7611,7 @@
 
     case ADJUST_LEN_SFRACT: avr_out_fract (insn, op, true, &len); break;
     case ADJUST_LEN_UFRACT: avr_out_fract (insn, op, false, &len); break;
+    case ADJUST_LEN_ROUND: avr_out_round (insn, op, &len); break;
 
     case ADJUST_LEN_TSTHI: avr_out_tsthi (insn, op, &len); break;
     case ADJUST_LEN_TSTPSI: avr_out_tstpsi (insn, op, &len); break;
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.md gcc-4.8.1/gcc/config/avr/avr.md
--- gcc-4.8.1.orig/gcc/config/avr/avr.md	2013-02-08 10:13:37.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr.md	2013-10-01 16:06:43.792554291 +0000
@@ -140,7 +140,7 @@
   "out_bitop, plus, addto_sp,
    tsthi, tstpsi, tstsi, compare, compare64, call,
    mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32,
-   ufract, sfract,
+   ufract, sfract, round,
    xload, lpm, movmem,
    ashlqi, ashrqi, lshrqi,
    ashlhi, ashrhi, lshrhi,
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.opt gcc-4.8.1/gcc/config/avr/avr.opt
--- gcc-4.8.1.orig/gcc/config/avr/avr.opt	2013-03-12 11:42:26.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/avr.opt	2013-10-01 16:06:43.792554291 +0000
@@ -77,4 +77,4 @@
 
 Waddr-space-convert
 Warning C Report Var(avr_warn_addr_space_convert) Init(0)
-Warn if the address space of an address is change.
+Warn if the address space of an address is changed.
diff -Naur gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c
--- gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c	2013-01-14 18:09:34.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c	2013-10-01 16:06:43.792554291 +0000
@@ -68,6 +68,7 @@
 static void
 print_mcus (size_t n_mcus)
 {
+  int duplicate = 0;
   size_t i;
     
   if (!n_mcus)
@@ -78,7 +79,20 @@
   printf ("@*@var{mcu}@tie{}=");
 
   for (i = 0; i < n_mcus; i++)
-    printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ",");
+    {
+      printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ",");
+
+      if (i && !strcmp (mcu_name[i], mcu_name[i-1]))
+        {
+          /* Sanity-check: Fail on devices that are present more than once.  */
+
+          duplicate = 1;
+          fprintf (stderr, "error: duplicate device: %s\n", mcu_name[i]);
+        }
+    }
+
+  if (duplicate)
+    exit (1);
 }
 
 int main (void)
diff -Naur gcc-4.8.1.orig/gcc/config/avr/t-multilib gcc-4.8.1/gcc/config/avr/t-multilib
--- gcc-4.8.1.orig/gcc/config/avr/t-multilib	2013-02-28 09:03:09.000000000 +0000
+++ gcc-4.8.1/gcc/config/avr/t-multilib	2013-10-01 16:06:43.792554291 +0000
@@ -135,7 +135,6 @@
 	mmcu?avr5=mmcu?atmega169a \
 	mmcu?avr5=mmcu?atmega169p \
 	mmcu?avr5=mmcu?atmega169pa \
-	mmcu?avr5=mmcu?atmega16hva \
 	mmcu?avr5=mmcu?atmega16hvb \
 	mmcu?avr5=mmcu?atmega16hvbrevb \
 	mmcu?avr5=mmcu?atmega16m1 \
@@ -143,7 +142,6 @@
 	mmcu?avr5=mmcu?atmega26hvg \
 	mmcu?avr5=mmcu?atmega32a \
 	mmcu?avr5=mmcu?atmega32 \
-	mmcu?avr5=mmcu?atmega32a \
 	mmcu?avr5=mmcu?atmega323 \
 	mmcu?avr5=mmcu?atmega324a \
 	mmcu?avr5=mmcu?atmega324p \
@@ -189,7 +187,6 @@
 	mmcu?avr5=mmcu?atmega6490 \
 	mmcu?avr5=mmcu?atmega16hva \
 	mmcu?avr5=mmcu?atmega16hva2 \
-	mmcu?avr5=mmcu?atmega16hvb \
 	mmcu?avr5=mmcu?atmega32hvb \
 	mmcu?avr5=mmcu?atmega6490a \
 	mmcu?avr5=mmcu?atmega6490p \
@@ -198,23 +195,13 @@
 	mmcu?avr5=mmcu?atmega64hve \
 	mmcu?avr5=mmcu?atmega64rfa2 \
 	mmcu?avr5=mmcu?atmega64rfr2 \
-	mmcu?avr5=mmcu?atmega32hvb \
 	mmcu?avr5=mmcu?atmega32hvbrevb \
-	mmcu?avr5=mmcu?atmega16hva2 \
 	mmcu?avr5=mmcu?atmega48hvf \
 	mmcu?avr5=mmcu?at90can32 \
 	mmcu?avr5=mmcu?at90can64 \
 	mmcu?avr5=mmcu?at90pwm161 \
 	mmcu?avr5=mmcu?at90pwm216 \
 	mmcu?avr5=mmcu?at90pwm316 \
-	mmcu?avr5=mmcu?atmega32c1 \
-	mmcu?avr5=mmcu?atmega64c1 \
-	mmcu?avr5=mmcu?atmega16m1 \
-	mmcu?avr5=mmcu?atmega32m1 \
-	mmcu?avr5=mmcu?atmega64m1 \
-	mmcu?avr5=mmcu?atmega16u4 \
-	mmcu?avr5=mmcu?atmega32u4 \
-	mmcu?avr5=mmcu?atmega32u6 \
 	mmcu?avr5=mmcu?at90scr100 \
 	mmcu?avr5=mmcu?at90usb646 \
 	mmcu?avr5=mmcu?at90usb647 \
diff -Naur gcc-4.8.1.orig/gcc/config/darwin-protos.h gcc-4.8.1/gcc/config/darwin-protos.h
--- gcc-4.8.1.orig/gcc/config/darwin-protos.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/darwin-protos.h	2013-10-01 16:06:43.792554291 +0000
@@ -25,6 +25,7 @@
 extern void machopic_output_function_base_name (FILE *);
 extern const char *machopic_indirection_name (rtx, bool);
 extern const char *machopic_mcount_stub_name (void);
+extern bool machopic_should_output_picbase_label (void);
 
 #ifdef RTX_CODE
 
diff -Naur gcc-4.8.1.orig/gcc/config/darwin.c gcc-4.8.1/gcc/config/darwin.c
--- gcc-4.8.1.orig/gcc/config/darwin.c	2013-02-11 22:36:23.000000000 +0000
+++ gcc-4.8.1/gcc/config/darwin.c	2013-10-01 16:06:43.792554291 +0000
@@ -369,14 +369,13 @@
 
 static GTY(()) const char * function_base_func_name;
 static GTY(()) int current_pic_label_num;
+static GTY(()) int emitted_pic_label_num;
 
-void
-machopic_output_function_base_name (FILE *file)
+static void
+update_pic_label_number_if_needed (void)
 {
   const char *current_name;
 
-  /* If dynamic-no-pic is on, we should not get here.  */
-  gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
   /* When we are generating _get_pc thunks within stubs, there is no current
      function.  */
   if (current_function_decl)
@@ -394,7 +393,28 @@
       ++current_pic_label_num;
       function_base_func_name = "L_machopic_stub_dummy";
     }
-  fprintf (file, "L%011d$pb", current_pic_label_num);
+}
+
+void
+machopic_output_function_base_name (FILE *file)
+{
+  /* If dynamic-no-pic is on, we should not get here.  */
+  gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
+
+  update_pic_label_number_if_needed ();
+  fprintf (file, "L%d$pb", current_pic_label_num);
+}
+
+bool
+machopic_should_output_picbase_label (void)
+{
+  update_pic_label_number_if_needed ();
+
+  if (current_pic_label_num == emitted_pic_label_num)
+    return false;
+
+  emitted_pic_label_num = current_pic_label_num;
+  return true;
 }
 
 /* The suffix attached to non-lazy pointer symbols.  */
diff -Naur gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h gcc-4.8.1/gcc/config/i386/bmiintrin.h
--- gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/bmiintrin.h	2013-10-01 16:06:43.792554291 +0000
@@ -38,7 +38,6 @@
   return __builtin_ctzs (__X);
 }
 
-
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __andn_u32 (unsigned int __X, unsigned int __Y)
 {
@@ -52,23 +51,46 @@
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_bextr_u32 (unsigned int __X, unsigned int __Y, unsigned __Z)
+{
+  return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsi_u32 (unsigned int __X)
 {
   return __X & -__X;
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsi_u32 (unsigned int __X)
+{
+  return __blsi_u32 (__X);
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsmsk_u32 (unsigned int __X)
 {
   return __X ^ (__X - 1);
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsmsk_u32 (unsigned int __X)
+{
+  return __blsmsk_u32 (__X);
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsr_u32 (unsigned int __X)
 {
   return __X & (__X - 1);
 }
 
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsr_u32 (unsigned int __X)
+{
+  return __blsr_u32 (__X);
+}
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __tzcnt_u32 (unsigned int __X)
@@ -76,6 +98,12 @@
   return __builtin_ctz (__X);
 }
 
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_tzcnt_u32 (unsigned int __X)
+{
+  return __builtin_ctz (__X);
+}
+
 
 #ifdef  __x86_64__
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
@@ -91,28 +119,58 @@
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_bextr_u64 (unsigned long long __X, unsigned int __Y, unsigned int __Z)
+{
+  return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsi_u64 (unsigned long long __X)
 {
   return __X & -__X;
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsi_u64 (unsigned long long __X)
+{
+  return __blsi_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsmsk_u64 (unsigned long long __X)
 {
   return __X ^ (__X - 1);
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsmsk_u64 (unsigned long long __X)
+{
+  return __blsmsk_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsr_u64 (unsigned long long __X)
 {
   return __X & (__X - 1);
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsr_u64 (unsigned long long __X)
+{
+  return __blsr_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __tzcnt_u64 (unsigned long long __X)
 {
   return __builtin_ctzll (__X);
 }
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_tzcnt_u64 (unsigned long long __X)
+{
+  return __builtin_ctzll (__X);
+}
 
 #endif /* __x86_64__  */
 
diff -Naur gcc-4.8.1.orig/gcc/config/i386/driver-i386.c gcc-4.8.1/gcc/config/i386/driver-i386.c
--- gcc-4.8.1.orig/gcc/config/i386/driver-i386.c	2013-05-17 15:06:36.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/driver-i386.c	2013-10-01 16:06:43.792554291 +0000
@@ -520,8 +520,7 @@
       if (vendor == signature_AMD_ebx
 	  || vendor == signature_CENTAUR_ebx
 	  || vendor == signature_CYRIX_ebx
-	  || vendor == signature_NSC_ebx
-	  || vendor == signature_TM2_ebx)
+	  || vendor == signature_NSC_ebx)
 	cache = detect_caches_amd (ext_level);
       else if (vendor == signature_INTEL_ebx)
 	{
@@ -639,13 +638,18 @@
 	  /* Atom.  */
 	  cpu = "atom";
 	  break;
+	case 0x0f:
+	  /* Merom.  */
+	case 0x17:
+	case 0x1d:
+	  /* Penryn.  */
+	  cpu = "core2";
+	  break;
 	case 0x1a:
 	case 0x1e:
 	case 0x1f:
 	case 0x2e:
 	  /* Nehalem.  */
-	  cpu = "corei7";
-	  break;
 	case 0x25:
 	case 0x2c:
 	case 0x2f:
@@ -657,20 +661,25 @@
 	  /* Sandy Bridge.  */
 	  cpu = "corei7-avx";
 	  break;
-	case 0x17:
-	case 0x1d:
-	  /* Penryn.  */
-	  cpu = "core2";
-	  break;
-	case 0x0f:
-	  /* Merom.  */
-	  cpu = "core2";
+	case 0x3a:
+	case 0x3e:
+	  /* Ivy Bridge.  */
+	  cpu = "core-avx-i";
+	  break;
+	case 0x3c:
+	case 0x45:
+	case 0x46:
+	  /* Haswell.  */
+	  cpu = "core-avx2";
 	  break;
 	default:
 	  if (arch)
 	    {
 	      /* This is unknown family 0x6 CPU.  */
-	      if (has_avx)
+	      if (has_avx2)
+		/* Assume Haswell.  */
+		cpu = "core-avx2";
+	      else if (has_avx)
 		/* Assume Sandy Bridge.  */
 		cpu = "corei7-avx";
 	      else if (has_sse4_2)
diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.c gcc-4.8.1/gcc/config/i386/i386.c
--- gcc-4.8.1.orig/gcc/config/i386/i386.c	2013-05-17 15:06:36.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/i386.c	2013-10-01 16:06:43.796554291 +0000
@@ -2438,11 +2438,11 @@
   {&generic32_cost, 16, 7, 16, 7, 16},
   {&generic64_cost, 16, 10, 16, 10, 16},
   {&amdfam10_cost, 32, 24, 32, 7, 32},
-  {&bdver1_cost, 32, 24, 32, 7, 32},
-  {&bdver2_cost, 32, 24, 32, 7, 32},
-  {&bdver3_cost, 32, 24, 32, 7, 32},
-  {&btver1_cost, 32, 24, 32, 7, 32},
-  {&btver2_cost, 32, 24, 32, 7, 32},
+  {&bdver1_cost, 16, 10, 16, 7, 11},
+  {&bdver2_cost, 16, 10, 16, 7, 11},
+  {&bdver3_cost, 16, 10, 16, 7, 11},
+  {&btver1_cost, 16, 10, 16, 7, 11},
+  {&btver2_cost, 16, 10, 16, 7, 11},
   {&atom_cost, 16, 15, 16, 7, 16}
 };
 
@@ -3768,24 +3768,19 @@
       ix86_gen_leave = gen_leave_rex64;
       if (Pmode == DImode)
 	{
-	  ix86_gen_monitor = gen_sse3_monitor64_di;
 	  ix86_gen_tls_global_dynamic_64 = gen_tls_global_dynamic_64_di;
 	  ix86_gen_tls_local_dynamic_base_64
 	    = gen_tls_local_dynamic_base_64_di;
 	}
       else
 	{
-	  ix86_gen_monitor = gen_sse3_monitor64_si;
 	  ix86_gen_tls_global_dynamic_64 = gen_tls_global_dynamic_64_si;
 	  ix86_gen_tls_local_dynamic_base_64
 	    = gen_tls_local_dynamic_base_64_si;
 	}
     }
   else
-    {
-      ix86_gen_leave = gen_leave;
-      ix86_gen_monitor = gen_sse3_monitor;
-    }
+    ix86_gen_leave = gen_leave;
 
   if (Pmode == DImode)
     {
@@ -3797,6 +3792,7 @@
       ix86_gen_allocate_stack_worker = gen_allocate_stack_worker_probe_di;
       ix86_gen_adjust_stack_and_probe = gen_adjust_stack_and_probedi;
       ix86_gen_probe_stack_range = gen_probe_stack_rangedi;
+      ix86_gen_monitor = gen_sse3_monitor_di;
     }
   else
     {
@@ -3808,6 +3804,7 @@
       ix86_gen_allocate_stack_worker = gen_allocate_stack_worker_probe_si;
       ix86_gen_adjust_stack_and_probe = gen_adjust_stack_and_probesi;
       ix86_gen_probe_stack_range = gen_probe_stack_rangesi;
+      ix86_gen_monitor = gen_sse3_monitor_si;
     }
 
 #ifdef USE_IX86_CLD
@@ -4691,6 +4688,28 @@
   return default_elf_select_section (decl, reloc, align);
 }
 
+/* Select a set of attributes for section NAME based on the properties
+   of DECL and whether or not RELOC indicates that DECL's initializer
+   might contain runtime relocations.  */
+
+static unsigned int ATTRIBUTE_UNUSED
+x86_64_elf_section_type_flags (tree decl, const char *name, int reloc)
+{
+  unsigned int flags = default_section_type_flags (decl, name, reloc);
+
+  if (decl == NULL_TREE
+      && (strcmp (name, ".ldata.rel.ro") == 0
+	  || strcmp (name, ".ldata.rel.ro.local") == 0))
+    flags |= SECTION_RELRO;
+
+  if (strcmp (name, ".lbss") == 0
+      || strncmp (name, ".lbss.", 5) == 0
+      || strncmp (name, ".gnu.linkonce.lb.", 16) == 0)
+    flags |= SECTION_BSS;
+
+  return flags;
+}
+
 /* Build up a unique section name, expressed as a
    STRING_CST node, and assign it to DECL_SECTION_NAME (decl).
    RELOC indicates whether the initial value of EXP requires
@@ -6396,7 +6415,7 @@
 
   /* Likewise, error if the ABI requires us to return values in the
      x87 registers and the user specified -mno-80387.  */
-  if (!TARGET_80387 && in_return)
+  if (in_return && !TARGET_FLOAT_RETURNS_IN_80387)
     for (i = 0; i < n; i++)
       if (regclass[i] == X86_64_X87_CLASS
 	  || regclass[i] == X86_64_X87UP_CLASS
@@ -8721,17 +8740,12 @@
 
   if (!flag_pic)
     {
-      xops[2] = gen_rtx_LABEL_REF (Pmode, label ? label : gen_label_rtx ());
+      if (TARGET_MACHO)
+	/* We don't need a pic base, we're not producing pic.  */
+	gcc_unreachable ();
 
+      xops[2] = gen_rtx_LABEL_REF (Pmode, label ? label : gen_label_rtx ());
       output_asm_insn ("mov%z0\t{%2, %0|%0, %2}", xops);
-
-#if TARGET_MACHO
-      /* Output the Mach-O "canonical" label name ("Lxx$pb") here too.  This
-         is what will be referenced by the Mach-O PIC subsystem.  */
-      if (!label)
-	ASM_OUTPUT_LABEL (asm_out_file, MACHOPIC_FUNCTION_BASE_NAME);
-#endif
-
       targetm.asm_out.internal_label (asm_out_file, "L",
 				      CODE_LABEL_NUMBER (XEXP (xops[2], 0)));
     }
@@ -8744,12 +8758,18 @@
       xops[2] = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
       xops[2] = gen_rtx_MEM (QImode, xops[2]);
       output_asm_insn ("call\t%X2", xops);
-      /* Output the Mach-O "canonical" label name ("Lxx$pb") here too.  This
-         is what will be referenced by the Mach-O PIC subsystem.  */
+
 #if TARGET_MACHO
-      if (!label)
+      /* Output the Mach-O "canonical" pic base label name ("Lxx$pb") here.
+         This is what will be referenced by the Mach-O PIC subsystem.  */
+      if (machopic_should_output_picbase_label () || !label)
 	ASM_OUTPUT_LABEL (asm_out_file, MACHOPIC_FUNCTION_BASE_NAME);
-      else
+
+      /* When we are restoring the pic base at the site of a nonlocal label,
+         and we decided to emit the pic base above, we will still output a
+         local label used for calculating the correction offset (even though
+         the offset will be 0 in that case).  */
+      if (label)
         targetm.asm_out.internal_label (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (label));
 #endif
@@ -8831,7 +8851,8 @@
       && (df_regs_ever_live_p (REAL_PIC_OFFSET_TABLE_REGNUM)
 	  || crtl->profile
 	  || crtl->calls_eh_return
-	  || crtl->uses_const_pool))
+	  || crtl->uses_const_pool
+	  || cfun->has_nonlocal_label))
     return ix86_select_alt_pic_regnum () == INVALID_REGNUM;
 
   if (crtl->calls_eh_return && maybe_eh_return)
@@ -13596,21 +13617,29 @@
 	    x = replace_equiv_address_nv (orig_x, x);
 	  return x;
 	}
-      if (GET_CODE (x) != CONST
-	  || GET_CODE (XEXP (x, 0)) != UNSPEC
-	  || (XINT (XEXP (x, 0), 1) != UNSPEC_GOTPCREL
-	      && XINT (XEXP (x, 0), 1) != UNSPEC_PCREL)
-	  || (!MEM_P (orig_x) && XINT (XEXP (x, 0), 1) != UNSPEC_PCREL))
-	return ix86_delegitimize_tls_address (orig_x);
-      x = XVECEXP (XEXP (x, 0), 0, 0);
-      if (GET_MODE (orig_x) != GET_MODE (x) && MEM_P (orig_x))
-	{
-	  x = simplify_gen_subreg (GET_MODE (orig_x), x,
-				   GET_MODE (x), 0);
-	  if (x == NULL_RTX)
-	    return orig_x;
+
+      if (GET_CODE (x) == CONST
+	  && GET_CODE (XEXP (x, 0)) == UNSPEC
+	  && (XINT (XEXP (x, 0), 1) == UNSPEC_GOTPCREL
+	      || XINT (XEXP (x, 0), 1) == UNSPEC_PCREL)
+	  && (MEM_P (orig_x) || XINT (XEXP (x, 0), 1) == UNSPEC_PCREL))
+	{
+	  x = XVECEXP (XEXP (x, 0), 0, 0);
+	  if (GET_MODE (orig_x) != GET_MODE (x) && MEM_P (orig_x))
+	    {
+	      x = simplify_gen_subreg (GET_MODE (orig_x), x,
+				       GET_MODE (x), 0);
+	      if (x == NULL_RTX)
+		return orig_x;
+	    }
+	  return x;
 	}
-      return x;
+
+      if (ix86_cmodel != CM_MEDIUM_PIC && ix86_cmodel != CM_LARGE_PIC)
+	return ix86_delegitimize_tls_address (orig_x);
+
+      /* Fall thru into the code shared with -m32 for -mcmodel=large -fpic
+	 and -mcmodel=medium -fpic.  */
     }
 
   if (GET_CODE (x) != PLUS
@@ -13647,10 +13676,12 @@
 
   if (GET_CODE (x) == UNSPEC
       && ((XINT (x, 1) == UNSPEC_GOT && MEM_P (orig_x) && !addend)
-	  || (XINT (x, 1) == UNSPEC_GOTOFF && !MEM_P (orig_x))))
+	  || (XINT (x, 1) == UNSPEC_GOTOFF && !MEM_P (orig_x))
+	  || (XINT (x, 1) == UNSPEC_PLTOFF && ix86_cmodel == CM_LARGE_PIC
+	      && !MEM_P (orig_x) && !addend)))
     result = XVECEXP (x, 0, 0);
 
-  if (TARGET_MACHO && darwin_local_data_pic (x)
+  if (!TARGET_64BIT && TARGET_MACHO && darwin_local_data_pic (x)
       && !MEM_P (orig_x))
     result = XVECEXP (x, 0, 0);
 
@@ -28935,10 +28966,11 @@
       if (predicate_chain == NULL_TREE)
 	continue;
 
+      function_version_info [actual_versions].version_decl = version_decl;
+      function_version_info [actual_versions].predicate_chain
+	 = predicate_chain;
+      function_version_info [actual_versions].dispatch_priority = priority;
       actual_versions++;
-      function_version_info [ix - 1].version_decl = version_decl;
-      function_version_info [ix - 1].predicate_chain = predicate_chain;
-      function_version_info [ix - 1].dispatch_priority = priority;
     }
 
   /* Sort the versions according to descending order of dispatch priority.  The
@@ -31780,7 +31812,13 @@
 	}
 
       if (target == 0)
-	target = gen_reg_rtx (mode);
+	{
+	  /* mode is VOIDmode if __builtin_rd* has been called
+	     without lhs.  */
+	  if (mode == VOIDmode)
+	    return target;
+	  target = gen_reg_rtx (mode);
+	}
 
       if (TARGET_64BIT)
 	{
@@ -35444,6 +35482,46 @@
     }
 }
 
+/* Fix up a Windows system unwinder issue.  If an EH region falls thru into
+   the epilogue, the Windows system unwinder will apply epilogue logic and
+   produce incorrect offsets.  This can be avoided by adding a nop between
+   the last insn that can throw and the first insn of the epilogue.  */
+
+static void
+ix86_seh_fixup_eh_fallthru (void)
+{
+  edge e;
+  edge_iterator ei;
+
+  FOR_EACH_EDGE (e, ei, EXIT_BLOCK_PTR->preds)
+    {
+      rtx insn, next;
+
+      /* Find the beginning of the epilogue.  */
+      for (insn = BB_END (e->src); insn != NULL; insn = PREV_INSN (insn))
+	if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_EPILOGUE_BEG)
+	  break;
+      if (insn == NULL)
+	continue;
+
+      /* We only care about preceeding insns that can throw.  */
+      insn = prev_active_insn (insn);
+      if (insn == NULL || !can_throw_internal (insn))
+	continue;
+
+      /* Do not separate calls from their debug information.  */
+      for (next = NEXT_INSN (insn); next != NULL; next = NEXT_INSN (next))
+	if (NOTE_P (next)
+            && (NOTE_KIND (next) == NOTE_INSN_VAR_LOCATION
+                || NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION))
+	  insn = next;
+	else
+	  break;
+
+      emit_insn_after (gen_nops (const1_rtx), insn);
+    }
+}
+
 /* Implement machine specific optimizations.  We implement padding of returns
    for K8 CPUs and pass to avoid 4 jumps in the single 16 byte window.  */
 static void
@@ -35453,6 +35531,9 @@
      with old MDEP_REORGS that are not CFG based.  Recompute it now.  */
   compute_bb_for_insn ();
 
+  if (TARGET_SEH && current_function_has_exception_handlers ())
+    ix86_seh_fixup_eh_fallthru ();
+
   if (optimize && optimize_function_for_speed_p (cfun))
     {
       if (TARGET_PAD_SHORT_FUNCTION)
@@ -42205,6 +42286,8 @@
 
 #undef TARGET_ATTRIBUTE_TABLE
 #define TARGET_ATTRIBUTE_TABLE ix86_attribute_table
+#undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
+#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_true
 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
 #  undef TARGET_MERGE_DECL_ATTRIBUTES
 #  define TARGET_MERGE_DECL_ATTRIBUTES merge_dllimport_decl_attributes
diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.md gcc-4.8.1/gcc/config/i386/i386.md
--- gcc-4.8.1.orig/gcc/config/i386/i386.md	2013-05-22 12:16:41.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/i386.md	2013-10-01 16:06:43.928554287 +0000
@@ -222,6 +222,8 @@
   UNSPECV_XEND
   UNSPECV_XABORT
   UNSPECV_XTEST
+
+  UNSPECV_NLGR
 ])
 
 ;; Constants to represent rounding modes in the ROUND instruction
@@ -2314,7 +2316,7 @@
   "TARGET_LP64 && ix86_check_movabs (insn, 0)"
   "@
    movabs{<imodesuffix>}\t{%1, %P0|[%P0], %1}
-   mov{<imodesuffix>}\t{%1, %a0|%a0, %1}"
+   mov{<imodesuffix>}\t{%1, %a0|<iptrsize> PTR %a0, %1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
@@ -2328,7 +2330,7 @@
   "TARGET_LP64 && ix86_check_movabs (insn, 1)"
   "@
    movabs{<imodesuffix>}\t{%P1, %0|%0, [%P1]}
-   mov{<imodesuffix>}\t{%a1, %0|%0, %a1}"
+   mov{<imodesuffix>}\t{%a1, %0|%0, <iptrsize> PTR %a1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
@@ -12120,8 +12122,8 @@
 
 (define_insn "bmi_bextr_<mode>"
   [(set (match_operand:SWI48 0 "register_operand" "=r,r")
-        (unspec:SWI48 [(match_operand:SWI48 1 "register_operand" "r,r")
-                       (match_operand:SWI48 2 "nonimmediate_operand" "r,m")]
+        (unspec:SWI48 [(match_operand:SWI48 1 "nonimmediate_operand" "r,m")
+                       (match_operand:SWI48 2 "register_operand" "r,r")]
                        UNSPEC_BEXTR))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_BMI"
@@ -12174,9 +12176,9 @@
 ;; BMI2 instructions.
 (define_insn "bmi2_bzhi_<mode>3"
   [(set (match_operand:SWI48 0 "register_operand" "=r")
-	(and:SWI48 (match_operand:SWI48 1 "register_operand" "r")
-		   (lshiftrt:SWI48 (const_int -1)
-				   (match_operand:SWI48 2 "nonimmediate_operand" "rm"))))
+	(and:SWI48 (lshiftrt:SWI48 (const_int -1)
+				   (match_operand:SWI48 2 "register_operand" "r"))
+		   (match_operand:SWI48 1 "nonimmediate_operand" "rm")))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_BMI2"
   "bzhi\t{%2, %1, %0|%0, %1, %2}"
@@ -16646,7 +16648,37 @@
     emit_insn (gen_set_got (pic_offset_table_rtx));
   DONE;
 })
-
+
+(define_insn_and_split "nonlocal_goto_receiver"
+  [(unspec_volatile [(const_int 0)] UNSPECV_NLGR)]
+  "TARGET_MACHO && !TARGET_64BIT && flag_pic"
+  "#"
+  "&& reload_completed"
+  [(const_int 0)]
+{
+  if (crtl->uses_pic_offset_table)
+    {
+      rtx xops[3];
+      rtx label_rtx = gen_label_rtx ();
+      rtx tmp;
+
+      /* Get a new pic base.  */
+      emit_insn (gen_set_got_labelled (pic_offset_table_rtx, label_rtx));
+      /* Correct this with the offset from the new to the old.  */
+      xops[0] = xops[1] = pic_offset_table_rtx;
+      label_rtx = gen_rtx_LABEL_REF (SImode, label_rtx);
+      tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, label_rtx),
+			    UNSPEC_MACHOPIC_OFFSET);
+      xops[2] = gen_rtx_CONST (Pmode, tmp);
+      ix86_expand_binary_operator (MINUS, SImode, xops);
+    }
+  else
+    /* No pic reg restore needed.  */
+    emit_note (NOTE_INSN_DELETED);
+
+  DONE;
+})
+
 ;; Avoid redundant prefixes by splitting HImode arithmetic to SImode.
 
 (define_split
@@ -17043,6 +17075,7 @@
   "(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
    && peep2_reg_dead_p (4, operands[0])
    && !reg_overlap_mentioned_p (operands[0], operands[1])
+   && !reg_overlap_mentioned_p (operands[0], operands[2])
    && (<MODE>mode != QImode
        || immediate_operand (operands[2], QImode)
        || q_regs_operand (operands[2], QImode))
@@ -17107,6 +17140,7 @@
        || immediate_operand (operands[2], SImode)
        || q_regs_operand (operands[2], SImode))
    && !reg_overlap_mentioned_p (operands[0], operands[1])
+   && !reg_overlap_mentioned_p (operands[0], operands[2])
    && ix86_match_ccmode (peep2_next_insn (3),
 			 (GET_CODE (operands[3]) == PLUS
 			  || GET_CODE (operands[3]) == MINUS)
diff -Naur gcc-4.8.1.orig/gcc/config/i386/predicates.md gcc-4.8.1/gcc/config/i386/predicates.md
--- gcc-4.8.1.orig/gcc/config/i386/predicates.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/predicates.md	2013-10-01 16:06:43.928554287 +0000
@@ -835,19 +835,28 @@
     return false;
 
   /* VSIB addressing doesn't support (%rip).  */
-  if (parts.disp && GET_CODE (parts.disp) == CONST)
+  if (parts.disp)
     {
-      disp = XEXP (parts.disp, 0);
-      if (GET_CODE (disp) == PLUS)
-	disp = XEXP (disp, 0);
-      if (GET_CODE (disp) == UNSPEC)
-	switch (XINT (disp, 1))
-	  {
-	  case UNSPEC_GOTPCREL:
-	  case UNSPEC_PCREL:
-	  case UNSPEC_GOTNTPOFF:
-	    return false;
-	  }
+      disp = parts.disp;
+      if (GET_CODE (disp) == CONST)
+	{
+	  disp = XEXP (disp, 0);
+	  if (GET_CODE (disp) == PLUS)
+	    disp = XEXP (disp, 0);
+	  if (GET_CODE (disp) == UNSPEC)
+	    switch (XINT (disp, 1))
+	      {
+	      case UNSPEC_GOTPCREL:
+	      case UNSPEC_PCREL:
+	      case UNSPEC_GOTNTPOFF:
+		return false;
+	      }
+	}
+      if (TARGET_64BIT
+	  && flag_pic
+	  && (GET_CODE (disp) == SYMBOL_REF
+	      || GET_CODE (disp) == LABEL_REF))
+	return false;
     }
 
   return true;
diff -Naur gcc-4.8.1.orig/gcc/config/i386/sse.md gcc-4.8.1/gcc/config/i386/sse.md
--- gcc-4.8.1.orig/gcc/config/i386/sse.md	2013-04-29 22:16:04.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/sse.md	2013-10-01 16:06:43.928554287 +0000
@@ -3603,7 +3603,7 @@
 	(vec_select:V4SF
 	  (vec_concat:V8SF
 	    (match_operand:V4SF 1 "nonimmediate_operand" " 0,x,0,x,0")
-	    (match_operand:V4SF 2 "nonimmediate_operand" " x,x,m,x,x"))
+	    (match_operand:V4SF 2 "nonimmediate_operand" " x,x,m,m,x"))
 	  (parallel [(const_int 0)
 		     (const_int 1)
 		     (const_int 4)
@@ -7758,9 +7758,17 @@
 		       (mem:V16QI (match_dup 0))]
 		      UNSPEC_MASKMOV))]
   "TARGET_SSE2"
-  "%vmaskmovdqu\t{%2, %1|%1, %2}"
+{
+  /* We can't use %^ here due to ASM_OUTPUT_OPCODE processing
+     that requires %v to be at the beginning of the opcode name.  */
+  if (Pmode != word_mode)
+    fputs ("\taddr32", asm_out_file);
+  return "%vmaskmovdqu\t{%2, %1|%1, %2}";
+}
   [(set_attr "type" "ssemov")
    (set_attr "prefix_data16" "1")
+   (set (attr "length_address")
+     (symbol_ref ("Pmode != word_mode")))
    ;; The implicit %rdi operand confuses default length_vex computation.
    (set (attr "length_vex")
      (symbol_ref ("3 + REX_SSE_REGNO_P (REGNO (operands[2]))")))
@@ -7808,26 +7816,18 @@
   "mwait"
   [(set_attr "length" "3")])
 
-(define_insn "sse3_monitor"
-  [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
-		     (match_operand:SI 1 "register_operand" "c")
-		     (match_operand:SI 2 "register_operand" "d")]
-		    UNSPECV_MONITOR)]
-  "TARGET_SSE3 && !TARGET_64BIT"
-  "monitor\t%0, %1, %2"
-  [(set_attr "length" "3")])
-
-(define_insn "sse3_monitor64_<mode>"
+(define_insn "sse3_monitor_<mode>"
   [(unspec_volatile [(match_operand:P 0 "register_operand" "a")
 		     (match_operand:SI 1 "register_operand" "c")
 		     (match_operand:SI 2 "register_operand" "d")]
 		    UNSPECV_MONITOR)]
-  "TARGET_SSE3 && TARGET_64BIT"
+  "TARGET_SSE3"
 ;; 64bit version is "monitor %rax,%rcx,%rdx". But only lower 32bits in
 ;; RCX and RDX are used.  Since 32bit register operands are implicitly
 ;; zero extended to 64bit, we only need to set up 32bit registers.
-  "monitor"
-  [(set_attr "length" "3")])
+  "%^monitor"
+  [(set (attr "length")
+     (symbol_ref ("(Pmode != word_mode) + 3")))])
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
diff -Naur gcc-4.8.1.orig/gcc/config/i386/x86-64.h gcc-4.8.1/gcc/config/i386/x86-64.h
--- gcc-4.8.1.orig/gcc/config/i386/x86-64.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/i386/x86-64.h	2013-10-01 16:06:43.928554287 +0000
@@ -103,3 +103,6 @@
 
 #undef TARGET_ASM_UNIQUE_SECTION
 #define TARGET_ASM_UNIQUE_SECTION  x86_64_elf_unique_section
+
+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS  x86_64_elf_section_type_flags
diff -Naur gcc-4.8.1.orig/gcc/config/pa/pa.c gcc-4.8.1/gcc/config/pa/pa.c
--- gcc-4.8.1.orig/gcc/config/pa/pa.c	2013-04-06 17:46:50.000000000 +0000
+++ gcc-4.8.1/gcc/config/pa/pa.c	2013-10-01 16:06:43.928554287 +0000
@@ -513,6 +513,12 @@
       write_symbols = NO_DEBUG;
     }
 
+#ifdef AUTO_INC_DEC
+  /* FIXME: Disable auto increment and decrement processing until reload
+     is completed.  See PR middle-end 56791.  */
+  flag_auto_inc_dec = reload_completed;
+#endif
+
   /* We only support the "big PIC" model now.  And we always generate PIC
      code when in 64bit mode.  */
   if (flag_pic == 1 || TARGET_64BIT)
@@ -4038,7 +4044,8 @@
 	      || (! TARGET_64BIT && df_regs_ever_live_p (i + 1)))
 	    {
 	      rtx addr, insn, reg;
-	      addr = gen_rtx_MEM (DFmode, gen_rtx_POST_INC (DFmode, tmpreg));
+	      addr = gen_rtx_MEM (DFmode,
+				  gen_rtx_POST_INC (word_mode, tmpreg));
 	      reg = gen_rtx_REG (DFmode, i);
 	      insn = emit_move_insn (addr, reg);
 	      if (DO_FRAME_NOTES)
@@ -4331,7 +4338,8 @@
 	if (df_regs_ever_live_p (i)
 	    || (! TARGET_64BIT && df_regs_ever_live_p (i + 1)))
 	  {
-	    rtx src = gen_rtx_MEM (DFmode, gen_rtx_POST_INC (DFmode, tmpreg));
+	    rtx src = gen_rtx_MEM (DFmode,
+				   gen_rtx_POST_INC (word_mode, tmpreg));
 	    rtx dest = gen_rtx_REG (DFmode, i);
 	    emit_move_insn (dest, src);
 	  }
diff -Naur gcc-4.8.1.orig/gcc/config/pa/pa.md gcc-4.8.1/gcc/config/pa/pa.md
--- gcc-4.8.1.orig/gcc/config/pa/pa.md	2013-03-11 00:44:28.000000000 +0000
+++ gcc-4.8.1/gcc/config/pa/pa.md	2013-10-01 16:06:43.932554287 +0000
@@ -833,46 +833,46 @@
 (define_insn "scc"
   [(set (match_operand:SI 0 "register_operand" "=r")
 	(match_operator:SI 3 "comparison_operator"
-			   [(match_operand:SI 1 "register_operand" "r")
+			   [(match_operand:SI 1 "reg_or_0_operand" "rM")
 			    (match_operand:SI 2 "arith11_operand" "rI")]))]
   ""
-  "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi 1,%0"
+  "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi 1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "8")])
 
 (define_insn ""
   [(set (match_operand:DI 0 "register_operand" "=r")
 	(match_operator:DI 3 "comparison_operator"
-			   [(match_operand:DI 1 "register_operand" "r")
+			   [(match_operand:DI 1 "reg_or_0_operand" "rM")
 			    (match_operand:DI 2 "arith11_operand" "rI")]))]
   "TARGET_64BIT"
-  "cmp%I2clr,*%B3 %2,%1,%0\;ldi 1,%0"
+  "cmp%I2clr,*%B3 %2,%r1,%0\;ldi 1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "8")])
 
 (define_insn "iorscc"
   [(set (match_operand:SI 0 "register_operand" "=r")
 	(ior:SI (match_operator:SI 3 "comparison_operator"
-				   [(match_operand:SI 1 "register_operand" "r")
+				   [(match_operand:SI 1 "reg_or_0_operand" "rM")
 				    (match_operand:SI 2 "arith11_operand" "rI")])
 		(match_operator:SI 6 "comparison_operator"
-				   [(match_operand:SI 4 "register_operand" "r")
+				   [(match_operand:SI 4 "reg_or_0_operand" "rM")
 				    (match_operand:SI 5 "arith11_operand" "rI")])))]
   ""
-  "{com%I2clr|cmp%I2clr},%S3 %2,%1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%4,%0\;ldi 1,%0"
+  "{com%I2clr|cmp%I2clr},%S3 %2,%r1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%r4,%0\;ldi 1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "12")])
 
 (define_insn ""
   [(set (match_operand:DI 0 "register_operand" "=r")
 	(ior:DI (match_operator:DI 3 "comparison_operator"
-				   [(match_operand:DI 1 "register_operand" "r")
+				   [(match_operand:DI 1 "reg_or_0_operand" "rM")
 				    (match_operand:DI 2 "arith11_operand" "rI")])
 		(match_operator:DI 6 "comparison_operator"
-				   [(match_operand:DI 4 "register_operand" "r")
+				   [(match_operand:DI 4 "reg_or_0_operand" "rM")
 				    (match_operand:DI 5 "arith11_operand" "rI")])))]
   "TARGET_64BIT"
-  "cmp%I2clr,*%S3 %2,%1,%%r0\;cmp%I5clr,*%B6 %5,%4,%0\;ldi 1,%0"
+  "cmp%I2clr,*%S3 %2,%r1,%%r0\;cmp%I5clr,*%B6 %5,%r4,%0\;ldi 1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "12")])
 
@@ -881,20 +881,20 @@
 (define_insn "negscc"
   [(set (match_operand:SI 0 "register_operand" "=r")
 	(neg:SI (match_operator:SI 3 "comparison_operator"
-	       [(match_operand:SI 1 "register_operand" "r")
+	       [(match_operand:SI 1 "reg_or_0_operand" "rM")
 		(match_operand:SI 2 "arith11_operand" "rI")])))]
   ""
-  "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi -1,%0"
+  "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi -1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "8")])
 
 (define_insn ""
   [(set (match_operand:DI 0 "register_operand" "=r")
 	(neg:DI (match_operator:DI 3 "comparison_operator"
-	       [(match_operand:DI 1 "register_operand" "r")
+	       [(match_operand:DI 1 "reg_or_0_operand" "rM")
 		(match_operand:DI 2 "arith11_operand" "rI")])))]
   "TARGET_64BIT"
-  "cmp%I2clr,*%B3 %2,%1,%0\;ldi -1,%0"
+  "cmp%I2clr,*%B3 %2,%r1,%0\;ldi -1,%0"
   [(set_attr "type" "binary")
    (set_attr "length" "8")])
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/default64.h gcc-4.8.1/gcc/config/rs6000/default64.h
--- gcc-4.8.1.orig/gcc/config/rs6000/default64.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/default64.h	2013-10-01 16:06:43.932554287 +0000
@@ -18,5 +18,10 @@
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT | MASK_LITTLE_ENDIAN)
+#else
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT)
+#endif
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/dfp.md gcc-4.8.1/gcc/config/rs6000/dfp.md
--- gcc-4.8.1.orig/gcc/config/rs6000/dfp.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/dfp.md	2013-10-01 16:06:43.932554287 +0000
@@ -394,11 +394,14 @@
   "")
 
 (define_insn "*negtd2_fpr"
-  [(set (match_operand:TD 0 "gpc_reg_operand" "=d")
-	(neg:TD (match_operand:TD 1 "gpc_reg_operand" "d")))]
+  [(set (match_operand:TD 0 "gpc_reg_operand" "=d,d")
+	(neg:TD (match_operand:TD 1 "gpc_reg_operand" "0,d")))]
   "TARGET_HARD_FLOAT && TARGET_FPRS"
-  "fneg %0,%1"
-  [(set_attr "type" "fp")])
+  "@
+   fneg %0,%1
+   fneg %0,%1\;fmr %L0,%L1"
+  [(set_attr "type" "fp")
+   (set_attr "length" "4,8")])
 
 (define_expand "abstd2"
   [(set (match_operand:TD 0 "gpc_reg_operand" "")
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux.h gcc-4.8.1/gcc/config/rs6000/linux.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linux.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/linux.h	2013-10-01 16:06:43.932554287 +0000
@@ -79,6 +79,24 @@
 #undef	LINK_OS_DEFAULT_SPEC
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 
+#undef  DEFAULT_ASM_ENDIAN
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#define DEFAULT_ASM_ENDIAN " -mlittle"
+#define LINK_OS_LINUX_EMUL ENDIAN_SELECT(" -m elf32ppclinux",	\
+					 " -m elf32lppclinux",	\
+					 " -m elf32lppclinux")
+#else
+#define DEFAULT_ASM_ENDIAN " -mbig"
+#define LINK_OS_LINUX_EMUL ENDIAN_SELECT(" -m elf32ppclinux",	\
+					 " -m elf32lppclinux",	\
+					 " -m elf32ppclinux")
+#endif
+
+#undef LINK_OS_LINUX_SPEC
+#define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
+  %{rdynamic:-export-dynamic} \
+  -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
+
 #define LINK_GCC_C_SEQUENCE_SPEC \
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux64.h gcc-4.8.1/gcc/config/rs6000/linux64.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linux64.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/linux64.h	2013-10-01 16:06:43.932554287 +0000
@@ -180,20 +180,14 @@
 #endif
 
 #define ASM_SPEC32 "-a32 \
-%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
-%{memb} %{!memb: %{msdata=eabi: -memb}} \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-freebsd: -mbig} \
-    %{mcall-i960-old: -mlittle} \
-    %{mcall-linux: -mbig} \
-    %{mcall-netbsd: -mbig} \
-}}}}"
+%{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
+%{memb|msdata=eabi: -memb}"
 
 #define ASM_SPEC64 "-a64"
 
 #define ASM_SPEC_COMMON "%(asm_cpu) \
-%{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}} \
-%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian}"
+%{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}}" \
+  ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
 
 #undef	SUBSUBTARGET_EXTRA_SPECS
 #define SUBSUBTARGET_EXTRA_SPECS \
@@ -212,10 +206,6 @@
 
 #ifndef RS6000_BI_ARCH
 
-/* 64-bit PowerPC Linux is always big-endian.  */
-#undef	OPTION_LITTLE_ENDIAN
-#define OPTION_LITTLE_ENDIAN	0
-
 /* 64-bit PowerPC Linux always has a TOC.  */
 #undef  TARGET_TOC
 #define	TARGET_TOC		1
@@ -376,12 +366,30 @@
 #define GNU_USER_DYNAMIC_LINKER64 \
   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
 
+#undef  DEFAULT_ASM_ENDIAN
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#define DEFAULT_ASM_ENDIAN " -mlittle"
+#define LINK_OS_LINUX_EMUL32 ENDIAN_SELECT(" -m elf32ppclinux",		\
+					   " -m elf32lppclinux",	\
+					   " -m elf32lppclinux")
+#define LINK_OS_LINUX_EMUL64 ENDIAN_SELECT(" -m elf64ppc",		\
+					   " -m elf64lppc",		\
+					   " -m elf64lppc")
+#else
+#define DEFAULT_ASM_ENDIAN " -mbig"
+#define LINK_OS_LINUX_EMUL32 ENDIAN_SELECT(" -m elf32ppclinux",		\
+					   " -m elf32lppclinux",	\
+					   " -m elf32ppclinux")
+#define LINK_OS_LINUX_EMUL64 ENDIAN_SELECT(" -m elf64ppc",		\
+					   " -m elf64lppc",		\
+					   " -m elf64ppc")
+#endif
 
-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}"
 
-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h	2013-10-01 16:06:43.932554287 +0000
@@ -20,8 +20,13 @@
    <http://www.gnu.org/licenses/>.  */
 
 /* Override rs6000.h and sysv4.h definition.  */
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef	TARGET_DEFAULT
+#define	TARGET_DEFAULT (MASK_ALTIVEC | MASK_LITTLE_ENDIAN)
+#else
 #undef	TARGET_DEFAULT
 #define	TARGET_DEFAULT MASK_ALTIVEC
+#endif
 
 #undef  SUBSUBTARGET_OVERRIDE_OPTIONS
 #define SUBSUBTARGET_OVERRIDE_OPTIONS rs6000_altivec_abi = 1
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h gcc-4.8.1/gcc/config/rs6000/linuxspe.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/linuxspe.h	2013-10-01 16:06:43.932554287 +0000
@@ -20,8 +20,13 @@
    <http://www.gnu.org/licenses/>.  */
 
 /* Override rs6000.h and sysv4.h definition.  */
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef	TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_STRICT_ALIGN | MASK_LITTLE_ENDIAN)
+#else
 #undef	TARGET_DEFAULT
 #define TARGET_DEFAULT MASK_STRICT_ALIGN
+#endif
 
 #undef  ASM_DEFAULT_SPEC
 #define	ASM_DEFAULT_SPEC "-mppc -mspe -me500"
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/predicates.md gcc-4.8.1/gcc/config/rs6000/predicates.md
--- gcc-4.8.1.orig/gcc/config/rs6000/predicates.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/predicates.md	2013-10-01 16:06:43.932554287 +0000
@@ -275,14 +275,18 @@
   (ior (match_code "const_int")
        (match_operand 0 "gpc_reg_operand")))
 
+;; Return 1 if op is a constant integer valid for addition with addis, addi.
+(define_predicate "add_cint_operand"
+  (and (match_code "const_int")
+       (match_test "(unsigned HOST_WIDE_INT)
+		      (INTVAL (op) + (mode == SImode ? 0x80000000 : 0x80008000))
+		    < (unsigned HOST_WIDE_INT) 0x100000000ll")))
+
 ;; Return 1 if op is a constant integer valid for addition
 ;; or non-special register.
 (define_predicate "reg_or_add_cint_operand"
   (if_then_else (match_code "const_int")
-    (match_test "(HOST_BITS_PER_WIDE_INT == 32
-		  && (mode == SImode || INTVAL (op) < 0x7fff8000))
-		 || ((unsigned HOST_WIDE_INT) (INTVAL (op) + 0x80008000)
-		     < (unsigned HOST_WIDE_INT) 0x100000000ll)")
+    (match_operand 0 "add_cint_operand")
     (match_operand 0 "gpc_reg_operand")))
 
 ;; Return 1 if op is a constant integer valid for subtraction
@@ -464,9 +468,11 @@
 	    (match_test "easy_altivec_constant (op, mode)")))
 {
   HOST_WIDE_INT val;
+  int elt;
   if (mode == V2DImode || mode == V2DFmode)
     return 0;
-  val = const_vector_elt_as_int (op, GET_MODE_NUNITS (mode) - 1);
+  elt = BYTES_BIG_ENDIAN ? GET_MODE_NUNITS (mode) - 1 : 0;
+  val = const_vector_elt_as_int (op, elt);
   val = ((val & 0xff) ^ 0x80) - 0x80;
   return EASY_VECTOR_15_ADD_SELF (val);
 })
@@ -478,9 +484,11 @@
 	    (match_test "easy_altivec_constant (op, mode)")))
 {
   HOST_WIDE_INT val;
+  int elt;
   if (mode == V2DImode || mode == V2DFmode)
     return 0;
-  val = const_vector_elt_as_int (op, GET_MODE_NUNITS (mode) - 1);
+  elt = BYTES_BIG_ENDIAN ? GET_MODE_NUNITS (mode) - 1 : 0;
+  val = const_vector_elt_as_int (op, elt);
   return EASY_VECTOR_MSB (val, GET_MODE_INNER (mode));
 })
 
@@ -1521,7 +1529,7 @@
 (define_predicate "small_toc_ref"
   (match_code "unspec,plus")
 {
-  if (GET_CODE (op) == PLUS && CONST_INT_P (XEXP (op, 1)))
+  if (GET_CODE (op) == PLUS && add_cint_operand (XEXP (op, 1), mode))
     op = XEXP (op, 0);
 
   return GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_TOCREL;
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c gcc-4.8.1/gcc/config/rs6000/rs6000.c
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c	2013-05-10 01:54:06.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.c	2013-10-01 16:06:43.936554287 +0000
@@ -284,9 +284,6 @@
   { "rsqrtd",	 (RECIP_DF_RSQRT | RECIP_V2DF_RSQRT) },
 };
 
-/* 2 argument gen function typedef.  */
-typedef rtx (*gen_2arg_fn_t) (rtx, rtx, rtx);
-
 /* Pointer to function (in rs6000-c.c) that can define or undefine target
    macros that have changed.  Languages that don't support the preprocessor
    don't link in rs6000-c.c, so we can't call it directly.  */
@@ -2190,7 +2187,8 @@
 	  int reg_size2 = reg_size;
 
 	  /* TFmode/TDmode always takes 2 registers, even in VSX.  */
-	  if (m == TDmode || m == TFmode)
+	  if (TARGET_VSX && VSX_REG_CLASS_P (c)
+	      && (m == TDmode || m == TFmode))
 	    reg_size2 = UNITS_PER_FP_WORD;
 
 	  rs6000_class_max_nregs[m][c]
@@ -4239,7 +4237,7 @@
   bitsize = GET_MODE_BITSIZE (inner);
   mask = GET_MODE_MASK (inner);
 
-  val = const_vector_elt_as_int (op, nunits - 1);
+  val = const_vector_elt_as_int (op, BYTES_BIG_ENDIAN ? nunits - 1 : 0);
   splat_val = val;
   msb_val = val > 0 ? 0 : -1;
 
@@ -4279,7 +4277,7 @@
   for (i = 0; i < nunits - 1; ++i)
     {
       HOST_WIDE_INT desired_val;
-      if (((i + 1) & (step - 1)) == 0)
+      if (((BYTES_BIG_ENDIAN ? i + 1 : i) & (step - 1)) == 0)
 	desired_val = val;
       else
 	desired_val = msb_val;
@@ -4364,13 +4362,13 @@
 {
   enum machine_mode mode = GET_MODE (op);
   int nunits = GET_MODE_NUNITS (mode);
-  rtx last = CONST_VECTOR_ELT (op, nunits - 1);
+  rtx val = CONST_VECTOR_ELT (op, BYTES_BIG_ENDIAN ? nunits - 1 : 0);
   unsigned step = nunits / 4;
   unsigned copies = 1;
 
   /* Start with a vspltisw.  */
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V4SImode, gen_lowpart (SImode, last));
+    return gen_rtx_VEC_DUPLICATE (V4SImode, gen_lowpart (SImode, val));
 
   /* Then try with a vspltish.  */
   if (step == 1)
@@ -4379,7 +4377,7 @@
     step >>= 1;
 
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V8HImode, gen_lowpart (HImode, last));
+    return gen_rtx_VEC_DUPLICATE (V8HImode, gen_lowpart (HImode, val));
 
   /* And finally a vspltisb.  */
   if (step == 1)
@@ -4388,7 +4386,7 @@
     step >>= 1;
 
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V16QImode, gen_lowpart (QImode, last));
+    return gen_rtx_VEC_DUPLICATE (V16QImode, gen_lowpart (QImode, val));
 
   gcc_unreachable ();
 }
@@ -5337,7 +5335,7 @@
 
   tocrel_base = op;
   tocrel_offset = const0_rtx;
-  if (GET_CODE (op) == PLUS && CONST_INT_P (XEXP (op, 1)))
+  if (GET_CODE (op) == PLUS && add_cint_operand (XEXP (op, 1), GET_MODE (op)))
     {
       tocrel_base = XEXP (op, 0);
       tocrel_offset = XEXP (op, 1);
@@ -9066,19 +9064,20 @@
       && cfun->va_list_gpr_size)
     {
       int nregs = GP_ARG_NUM_REG - first_reg_offset;
+      int n_gpr;
 
       if (va_list_gpr_counter_field)
 	{
 	  /* V4 va_list_gpr_size counts number of registers needed.  */
-	  if (nregs > cfun->va_list_gpr_size)
-	    nregs = cfun->va_list_gpr_size;
+	  n_gpr = cfun->va_list_gpr_size;
 	}
       else
 	{
 	  /* char * va_list instead counts number of bytes needed.  */
-	  if (nregs > cfun->va_list_gpr_size / reg_size)
-	    nregs = cfun->va_list_gpr_size / reg_size;
+	  n_gpr = (cfun->va_list_gpr_size + reg_size - 1) / reg_size;
 	}
+      if (nregs > n_gpr)
+	nregs = n_gpr;
 
       mem = gen_rtx_MEM (BLKmode,
 			 plus_constant (Pmode, save_area,
@@ -16900,8 +16899,9 @@
   shift = gen_reg_rtx (SImode);
   addr = gen_lowpart (SImode, addr);
   emit_insn (gen_rlwinm (shift, addr, GEN_INT (3), GEN_INT (shift_mask)));
-  shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask),
-			       shift, 1, OPTAB_LIB_WIDEN);
+  if (WORDS_BIG_ENDIAN)
+    shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask),
+			         shift, 1, OPTAB_LIB_WIDEN);
   *pshift = shift;
 
   /* Mask for insertion.  */
@@ -19957,8 +19957,7 @@
 	  HOST_WIDE_INT offset;
 
 	  if (!(strategy & SAVE_INLINE_GPRS))
-	    ool_adjust = 8 * (info->first_gp_reg_save
-			      - (FIRST_SAVRES_REGISTER + 1));
+	    ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO);
 	  offset = info->spe_gp_save_offset + frame_off - ool_adjust;
 	  spe_save_area_ptr = gen_rtx_REG (Pmode, 11);
 	  save_off = frame_off - offset;
@@ -21200,8 +21199,7 @@
 	     anew to every function.  */
 
 	  if (!restoring_GPRs_inline)
-	    ool_adjust = 8 * (info->first_gp_reg_save
-			      - (FIRST_SAVRES_REGISTER + 1));
+	    ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO);
 	  frame_reg_rtx = gen_rtx_REG (Pmode, 11);
 	  emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx,
 				 GEN_INT (info->spe_gp_save_offset
@@ -22151,20 +22149,22 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],",
 		     k[0] & 0xffffffff, k[1] & 0xffffffff,
 		     k[2] & 0xffffffff, k[3] & 0xffffffff);
 	  fprintf (file, "0x%lx%08lx,0x%lx%08lx\n",
-		   k[0] & 0xffffffff, k[1] & 0xffffffff,
-		   k[2] & 0xffffffff, k[3] & 0xffffffff);
+		   k[WORDS_BIG_ENDIAN ? 0 : 1] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 1 : 0] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 2 : 3] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 3 : 2] & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],",
@@ -22191,18 +22191,19 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FD_%lx_%lx[TC],",
 		     k[0] & 0xffffffff, k[1] & 0xffffffff);
 	  fprintf (file, "0x%lx%08lx\n",
-		   k[0] & 0xffffffff, k[1] & 0xffffffff);
+		   k[WORDS_BIG_ENDIAN ? 0 : 1] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 1 : 0] & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FD_%lx_%lx[TC],",
@@ -22226,16 +22227,19 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
-	  fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+	  if (WORDS_BIG_ENDIAN)
+	    fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+	  else
+	    fprintf (file, "0x%lx\n", l & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
@@ -22267,9 +22271,8 @@
 	}
 #endif
 
-      /* TOC entries are always Pmode-sized, but since this
-	 is a bigendian machine then if we're putting smaller
-	 integer constants in the TOC we have to pad them.
+      /* TOC entries are always Pmode-sized, so when big-endian
+	 smaller integer constants in the TOC need to be padded.
 	 (This is still a win over putting the constants in
 	 a separate constant pool, because then we'd have
 	 to have both a TOC entry _and_ the actual constant.)
@@ -22280,7 +22283,7 @@
       /* It would be easy to make this work, but it doesn't now.  */
       gcc_assert (!TARGET_64BIT || POINTER_SIZE >= GET_MODE_BITSIZE (mode));
 
-      if (POINTER_SIZE > GET_MODE_BITSIZE (mode))
+      if (WORDS_BIG_ENDIAN && POINTER_SIZE > GET_MODE_BITSIZE (mode))
 	{
 #if HOST_BITS_PER_WIDE_INT == 32
 	  lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode),
@@ -22295,7 +22298,7 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc ID_%lx_%lx[TC],",
@@ -22308,7 +22311,7 @@
 	{
 	  if (POINTER_SIZE < GET_MODE_BITSIZE (mode))
 	    {
-	      if (TARGET_MINIMAL_TOC)
+	      if (TARGET_ELF || TARGET_MINIMAL_TOC)
 		fputs ("\t.long ", file);
 	      else
 		fprintf (file, "\t.tc ID_%lx_%lx[TC],",
@@ -22318,7 +22321,7 @@
 	    }
 	  else
 	    {
-	      if (TARGET_MINIMAL_TOC)
+	      if (TARGET_ELF || TARGET_MINIMAL_TOC)
 		fputs ("\t.long ", file);
 	      else
 		fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff);
@@ -22356,7 +22359,7 @@
       gcc_unreachable ();
     }
 
-  if (TARGET_MINIMAL_TOC)
+  if (TARGET_ELF || TARGET_MINIMAL_TOC)
     fputs (TARGET_32BIT ? "\t.long " : DOUBLE_INT_ASM_OP, file);
   else
     {
@@ -26651,7 +26654,7 @@
   enum machine_mode mode = GET_MODE (dst);
   rtx x0, e0, e1, y1, u0, v0;
   enum insn_code code = optab_handler (smul_optab, mode);
-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
+  insn_gen_fn gen_mul = GEN_FCN (code);
   rtx one = rs6000_load_constant_and_splat (mode, dconst1);
 
   gcc_assert (code != CODE_FOR_nothing);
@@ -26689,7 +26692,7 @@
   enum machine_mode mode = GET_MODE (dst);
   rtx x0, e0, e1, e2, y1, y2, y3, u0, v0, one;
   enum insn_code code = optab_handler (smul_optab, mode);
-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
+  insn_gen_fn gen_mul = GEN_FCN (code);
 
   gcc_assert (code != CODE_FOR_nothing);
 
@@ -26760,7 +26763,7 @@
   int i;
   rtx halfthree;
   enum insn_code code = optab_handler (smul_optab, mode);
-  gen_2arg_fn_t gen_mul = (gen_2arg_fn_t) GEN_FCN (code);
+  insn_gen_fn gen_mul = GEN_FCN (code);
 
   gcc_assert (code != CODE_FOR_nothing);
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h gcc-4.8.1/gcc/config/rs6000/rs6000.h
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h	2013-05-06 23:33:49.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.h	2013-10-01 16:06:43.936554287 +0000
@@ -662,6 +662,11 @@
    instructions for them.  Might as well be consistent with bits and bytes.  */
 #define WORDS_BIG_ENDIAN 1
 
+/* This says that for the IBM long double the larger magnitude double
+   comes first.  It's really a two element double array, and arrays
+   don't index differently between little- and big-endian.  */
+#define LONG_DOUBLE_LARGE_FIRST 1
+
 #define MAX_BITS_PER_WORD 64
 
 /* Width of a word, in units (bytes).  */
@@ -2289,6 +2294,13 @@
 /* How to align the given loop. */
 #define LOOP_ALIGN(LABEL)  rs6000_loop_align(LABEL)
 
+/* Alignment guaranteed by __builtin_malloc.  */
+/* FIXME:  128-bit alignment is guaranteed by glibc for TARGET_64BIT.
+   However, specifying the stronger guarantee currently leads to
+   a regression in SPEC CPU2006 437.leslie3d.  The stronger
+   guarantee should be implemented here once that's fixed.  */
+#define MALLOC_ABI_ALIGNMENT (64)
+
 /* Pick up the return address upon entry to a procedure. Used for
    dwarf2 unwind information.  This also enables the table driven
    mechanism.  */
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md gcc-4.8.1/gcc/config/rs6000/rs6000.md
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md	2013-02-07 08:04:58.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.md	2013-10-01 16:06:43.936554287 +0000
@@ -1990,6 +1990,8 @@
   [(set_attr "length" "4,4,12")
    (set_attr "type" "load,store,*")])
 
+;; We are always BITS_BIG_ENDIAN, so the (const_int 16) below is
+;; correct for -mlittle as well as -mbig.
 (define_split
   [(set (match_operand:HI 0 "gpc_reg_operand" "")
 	(bswap:HI (match_operand:HI 1 "gpc_reg_operand" "")))
@@ -2043,6 +2045,8 @@
   [(set_attr "length" "4,4,12")
    (set_attr "type" "load,store,*")])
 
+;; We are always BITS_BIG_ENDIAN, so the bit positions below in
+;; zero_extract insns do not change for -mlittle.
 (define_split
   [(set (match_operand:SI 0 "gpc_reg_operand" "")
 	(bswap:SI (match_operand:SI 1 "gpc_reg_operand" "")))]
@@ -2106,7 +2110,9 @@
    (clobber (match_scratch:DI 3 "=&r,&r,&r"))
    (clobber (match_scratch:DI 4 "=&r,X,&r"))]
   "TARGET_POWERPC64 && !TARGET_LDBRX
-   && (REG_P (operands[0]) || REG_P (operands[1]))"
+   && (REG_P (operands[0]) || REG_P (operands[1]))
+   && !(MEM_P (operands[0]) && MEM_VOLATILE_P (operands[0]))
+   && !(MEM_P (operands[1]) && MEM_VOLATILE_P (operands[1]))"
   "#"
   [(set_attr "length" "16,12,36")])
 
@@ -2125,8 +2131,10 @@
   rtx op2    = operands[2];
   rtx op3    = operands[3];
   rtx op4    = operands[4];
-  rtx op3_32 = simplify_gen_subreg (SImode, op3, DImode, 4);
-  rtx op4_32 = simplify_gen_subreg (SImode, op4, DImode, 4);
+  rtx op3_32 = simplify_gen_subreg (SImode, op3, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
+  rtx op4_32 = simplify_gen_subreg (SImode, op4, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
   rtx addr1;
   rtx addr2;
   rtx word_high;
@@ -2186,8 +2194,10 @@
   rtx src    = operands[1];
   rtx op2    = operands[2];
   rtx op3    = operands[3];
-  rtx src_si = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx op3_si = simplify_gen_subreg (SImode, op3, DImode, 4);
+  rtx src_si = simplify_gen_subreg (SImode, src, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
+  rtx op3_si = simplify_gen_subreg (SImode, op3, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
   rtx addr1;
   rtx addr2;
   rtx word_high;
@@ -2221,16 +2231,14 @@
     {
       word_high = change_address (dest, SImode, addr1);
       word_low  = change_address (dest, SImode, addr2);
-      emit_insn (gen_bswapsi2 (word_high, src_si));
-      emit_insn (gen_bswapsi2 (word_low, op3_si));
     }
   else
     {
       word_high = change_address (dest, SImode, addr2);
       word_low  = change_address (dest, SImode, addr1);
-      emit_insn (gen_bswapsi2 (word_low, src_si));
-      emit_insn (gen_bswapsi2 (word_high, op3_si));
     }
+  emit_insn (gen_bswapsi2 (word_high, src_si));
+  emit_insn (gen_bswapsi2 (word_low, op3_si));
 }")
 
 (define_split
@@ -2247,10 +2255,11 @@
   rtx src     = operands[1];
   rtx op2     = operands[2];
   rtx op3     = operands[3];
-  rtx dest_si = simplify_gen_subreg (SImode, dest, DImode, 4);
-  rtx src_si  = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx op2_si  = simplify_gen_subreg (SImode, op2, DImode, 4);
-  rtx op3_si  = simplify_gen_subreg (SImode, op3, DImode, 4);
+  int lo_off  = BYTES_BIG_ENDIAN ? 4 : 0;
+  rtx dest_si = simplify_gen_subreg (SImode, dest, DImode, lo_off);
+  rtx src_si  = simplify_gen_subreg (SImode, src, DImode, lo_off);
+  rtx op2_si  = simplify_gen_subreg (SImode, op2, DImode, lo_off);
+  rtx op3_si  = simplify_gen_subreg (SImode, op3, DImode, lo_off);
 
   emit_insn (gen_lshrdi3 (op2, src, GEN_INT (32)));
   emit_insn (gen_bswapsi2 (dest_si, src_si));
@@ -2275,15 +2284,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest   = operands[0];
-  rtx src    = operands[1];
-  rtx op2    = operands[2];
-  rtx dest_hi = simplify_gen_subreg (SImode, dest, DImode, 0);
-  rtx dest_lo = simplify_gen_subreg (SImode, dest, DImode, 4);
+  rtx dest  = operands[0];
+  rtx src   = operands[1];
+  rtx op2   = operands[2];
+  rtx dest1 = simplify_gen_subreg (SImode, dest, DImode, 0);
+  rtx dest2 = simplify_gen_subreg (SImode, dest, DImode, 4);
   rtx addr1;
   rtx addr2;
-  rtx word_high;
-  rtx word_low;
+  rtx word1;
+  rtx word2;
 
   addr1 = XEXP (src, 0);
   if (GET_CODE (addr1) == PLUS)
@@ -2308,19 +2317,11 @@
       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
     }
 
-  if (BYTES_BIG_ENDIAN)
-    {
-      word_high = change_address (src, SImode, addr1);
-      word_low  = change_address (src, SImode, addr2);
-    }
-  else
-    {
-      word_high = change_address (src, SImode, addr2);
-      word_low  = change_address (src, SImode, addr1);
-    }
+  word1 = change_address (src, SImode, addr1);
+  word2 = change_address (src, SImode, addr2);
 
-  emit_insn (gen_bswapsi2 (dest_hi, word_low));
-  emit_insn (gen_bswapsi2 (dest_lo, word_high));
+  emit_insn (gen_bswapsi2 (dest2, word1));
+  emit_insn (gen_bswapsi2 (dest1, word2));
 }")
 
 (define_split
@@ -2331,15 +2332,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest     = operands[0];
-  rtx src      = operands[1];
-  rtx op2      = operands[2];
-  rtx src_high = simplify_gen_subreg (SImode, src, DImode, 0);
-  rtx src_low  = simplify_gen_subreg (SImode, src, DImode, 4);
+  rtx dest = operands[0];
+  rtx src  = operands[1];
+  rtx op2  = operands[2];
+  rtx src1 = simplify_gen_subreg (SImode, src, DImode, 0);
+  rtx src2 = simplify_gen_subreg (SImode, src, DImode, 4);
   rtx addr1;
   rtx addr2;
-  rtx word_high;
-  rtx word_low;
+  rtx word1;
+  rtx word2;
 
   addr1 = XEXP (dest, 0);
   if (GET_CODE (addr1) == PLUS)
@@ -2364,19 +2365,11 @@
       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
     }
 
-  if (BYTES_BIG_ENDIAN)
-    {
-      word_high = change_address (dest, SImode, addr1);
-      word_low  = change_address (dest, SImode, addr2);
-    }
-  else
-    {
-      word_high = change_address (dest, SImode, addr2);
-      word_low  = change_address (dest, SImode, addr1);
-    }
+  word1 = change_address (dest, SImode, addr1);
+  word2 = change_address (dest, SImode, addr2);
 
-  emit_insn (gen_bswapsi2 (word_high, src_low));
-  emit_insn (gen_bswapsi2 (word_low, src_high));
+  emit_insn (gen_bswapsi2 (word2, src1));
+  emit_insn (gen_bswapsi2 (word1, src2));
 }")
 
 (define_split
@@ -2387,15 +2380,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest      = operands[0];
-  rtx src       = operands[1];
-  rtx src_high  = simplify_gen_subreg (SImode, src, DImode, 0);
-  rtx src_low   = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx dest_high = simplify_gen_subreg (SImode, dest, DImode, 0);
-  rtx dest_low  = simplify_gen_subreg (SImode, dest, DImode, 4);
+  rtx dest  = operands[0];
+  rtx src   = operands[1];
+  rtx src1  = simplify_gen_subreg (SImode, src, DImode, 0);
+  rtx src2  = simplify_gen_subreg (SImode, src, DImode, 4);
+  rtx dest1 = simplify_gen_subreg (SImode, dest, DImode, 0);
+  rtx dest2 = simplify_gen_subreg (SImode, dest, DImode, 4);
 
-  emit_insn (gen_bswapsi2 (dest_high, src_low));
-  emit_insn (gen_bswapsi2 (dest_low, src_high));
+  emit_insn (gen_bswapsi2 (dest1, src2));
+  emit_insn (gen_bswapsi2 (dest2, src1));
 }")
 
 (define_insn "mulsi3"
@@ -4682,6 +4675,41 @@
   "frsqrtes %0,%1"
   [(set_attr "type" "fp")])
 
+;; This expander is here to avoid FLOAT_WORDS_BIGENDIAN tests in
+;; builtins.c and optabs.c that are not correct for IBM long double
+;; when little-endian.
+(define_expand "signbittf2"
+  [(set (match_dup 2)
+	(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))
+   (set (match_dup 3)
+   	(subreg:DI (match_dup 2) 0))
+   (set (match_dup 4)
+   	(match_dup 5))
+   (set (match_operand:SI 0 "gpc_reg_operand" "")
+  	(match_dup 6))]
+  "!TARGET_IEEEQUAD
+   && TARGET_HARD_FLOAT
+   && (TARGET_FPRS || TARGET_E500_DOUBLE)
+   && TARGET_LONG_DOUBLE_128"
+{
+  operands[2] = gen_reg_rtx (DFmode);
+  operands[3] = gen_reg_rtx (DImode);
+  if (TARGET_POWERPC64)
+    {
+      operands[4] = gen_reg_rtx (DImode);
+      operands[5] = gen_rtx_LSHIFTRT (DImode, operands[3], GEN_INT (63));
+      operands[6] = gen_rtx_SUBREG (SImode, operands[4],
+				    WORDS_BIG_ENDIAN ? 4 : 0);
+    }
+  else
+    {
+      operands[4] = gen_reg_rtx (SImode);
+      operands[5] = gen_rtx_SUBREG (SImode, operands[3],
+				    WORDS_BIG_ENDIAN ? 0 : 4);
+      operands[6] = gen_rtx_LSHIFTRT (SImode, operands[4], GEN_INT (31));
+    }
+})
+
 (define_expand "copysign<mode>3"
   [(set (match_dup 3)
         (abs:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "")))
@@ -6210,10 +6238,25 @@
   [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
 	(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
 		     (match_operand:SI 2 "const_int_operand" "M,i")))]
-  "TARGET_32BIT && !TARGET_POWERPC64 && WORDS_BIG_ENDIAN"
-  "@
-   srawi %0,%1,31\;srawi %L0,%1,%h2
-   srwi %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;srawi %0,%1,%h2"
+  "!TARGET_POWERPC64"
+  "*
+{
+  switch (which_alternative)
+    {
+    default:
+      gcc_unreachable ();
+    case 0:
+      if (WORDS_BIG_ENDIAN)
+        return \"srawi %0,%1,31\;srawi %L0,%1,%h2\";
+      else
+        return \"srawi %L0,%L1,31\;srawi %0,%L1,%h2\";
+    case 1:
+      if (WORDS_BIG_ENDIAN)
+	return \"srwi %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;srawi %0,%1,%h2\";
+      else
+	return \"srwi %0,%1,%h2\;insrwi %0,%L1,%h2,0\;srawi %L0,%L1,%h2\";
+    }
+}"
   [(set_attr "type" "two,three")
    (set_attr "length" "8,12")])
 
@@ -7064,13 +7107,12 @@
   [(set (match_operand:DI 0 "gpc_reg_operand" "")
 	(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "")
 		     (match_operand:SI 2 "reg_or_cint_operand" "")))]
-  "WORDS_BIG_ENDIAN"
+  ""
   "
 {
   if (TARGET_POWERPC64)
     ;
-  else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT
-	   && WORDS_BIG_ENDIAN)
+  else if (GET_CODE (operands[2]) == CONST_INT)
     {
       emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2]));
       DONE;
@@ -8277,8 +8319,8 @@
   "&& reload_completed"
   [(pc)]
 {
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
   emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word),
 		  operands[1]);
   emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, lo_word),
@@ -8507,8 +8549,8 @@
    && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
@@ -10422,7 +10464,7 @@
 	    (unspec [(match_operand:DI 1 "" "")
 		     (match_operand:DI 2 "gpc_reg_operand" "b")]
 		    UNSPEC_TOCREL)
-	    (match_operand 3 "const_int_operand" "n"))))]
+	    (match_operand:DI 3 "add_cint_operand" "n"))))]
    "TARGET_ELF && TARGET_CMODEL != CMODEL_SMALL"
    "addis %0,%2,%1+%3@toc@ha")
 
@@ -10433,7 +10475,7 @@
 	    (unspec [(match_operand:P 1 "" "")
 		     (match_operand:P 2 "gpc_reg_operand" "b")]
 		    UNSPEC_TOCREL)
-	    (match_operand 3 "const_int_operand" "n"))))]
+	    (match_operand:P 3 "add_cint_operand" "n"))))]
    "TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL"
    "addis %0,%1+%3@u(%2)")
 
@@ -11609,8 +11651,8 @@
    (match_dup 13)]
 {
   REAL_VALUE_TYPE rv;
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
 
   operands[5] = simplify_gen_subreg (DFmode, operands[1], TFmode, hi_word);
   operands[6] = simplify_gen_subreg (DFmode, operands[1], TFmode, lo_word);
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rtems.h gcc-4.8.1/gcc/config/rs6000/rtems.h
--- gcc-4.8.1.orig/gcc/config/rs6000/rtems.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/rtems.h	2013-10-01 16:06:43.936554287 +0000
@@ -34,6 +34,9 @@
     }                                     \
   while (0)
 
+#undef TARGET_LIBGCC_SDATA_SECTION
+#define TARGET_LIBGCC_SDATA_SECTION ".sdata"
+
 #undef CPP_OS_DEFAULT_SPEC
 #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/spe.md gcc-4.8.1/gcc/config/rs6000/spe.md
--- gcc-4.8.1.orig/gcc/config/rs6000/spe.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/spe.md	2013-10-01 16:06:43.940554287 +0000
@@ -2604,8 +2604,8 @@
    && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
@@ -2627,8 +2627,8 @@
    && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h gcc-4.8.1/gcc/config/rs6000/sysv4.h
--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/sysv4.h	2013-10-01 16:06:43.940554287 +0000
@@ -187,12 +187,6 @@
 	     rs6000_abi_name);						\
     }									\
 									\
-  if (rs6000_current_abi == ABI_AIX && TARGET_LITTLE_ENDIAN)		\
-    {									\
-      rs6000_isa_flags &= ~OPTION_MASK_LITTLE_ENDIAN;			\
-      error ("-mcall-aixdesc must be big endian");			\
-    }									\
-									\
   if (TARGET_SECURE_PLT != secure_plt)					\
     {									\
       error ("-msecure-plt not supported by your assembler");		\
@@ -523,19 +517,24 @@
   while (0)
 #endif
 
+/* Select one of BIG_OPT, LITTLE_OPT or DEFAULT_OPT depending
+   on various -mbig, -mlittle and -mcall- options.  */
+#define ENDIAN_SELECT(BIG_OPT, LITTLE_OPT, DEFAULT_OPT)	\
+"%{mlittle|mlittle-endian:"	LITTLE_OPT ";"	\
+  "mbig|mbig-endian:"		BIG_OPT    ";"	\
+  "mcall-aixdesc|mcall-freebsd|mcall-netbsd|"	\
+  "mcall-openbsd|mcall-linux:"	BIG_OPT    ";"	\
+  "mcall-i960-old:"		LITTLE_OPT ";"	\
+  ":"				DEFAULT_OPT "}"
+
+#define DEFAULT_ASM_ENDIAN " -mbig"
+
 #undef	ASM_SPEC
 #define	ASM_SPEC "%(asm_cpu) \
 %{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}} \
 %{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
-%{memb|msdata=eabi: -memb} \
-%{mlittle|mlittle-endian:-mlittle; \
-  mbig|mbig-endian      :-mbig;    \
-  mcall-aixdesc |		   \
-  mcall-freebsd |		   \
-  mcall-netbsd  |		   \
-  mcall-openbsd |		   \
-  mcall-linux           :-mbig;    \
-  mcall-i960-old        :-mlittle}"
+%{memb|msdata=eabi: -memb}" \
+ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
 
 #define	CC1_ENDIAN_BIG_SPEC ""
 
@@ -553,17 +552,10 @@
 #endif
 
 /* Pass -G xxx to the compiler and set correct endian mode.  */
-#define	CC1_SPEC "%{G*} %(cc1_cpu) \
-%{mlittle|mlittle-endian: %(cc1_endian_little);           \
-  mbig   |mbig-endian   : %(cc1_endian_big);              \
-  mcall-aixdesc |					  \
-  mcall-freebsd |					  \
-  mcall-netbsd  |					  \
-  mcall-openbsd |					  \
-  mcall-linux           : -mbig %(cc1_endian_big);        \
-  mcall-i960-old        : -mlittle %(cc1_endian_little);  \
-                        : %(cc1_endian_default)}          \
-%{meabi: %{!mcall-*: -mcall-sysv }} \
+#define	CC1_SPEC "%{G*} %(cc1_cpu)" \
+  ENDIAN_SELECT(" %(cc1_endian_big)", " %(cc1_endian_little)",	\
+		" %(cc1_endian_default)")			\
+"%{meabi: %{!mcall-*: -mcall-sysv }} \
 %{!meabi: %{!mno-eabi: \
     %{mrelocatable: -meabi } \
     %{mcall-freebsd: -mno-eabi } \
@@ -607,11 +599,8 @@
 %{symbolic:-Bsymbolic -G -dy -z text }"
 
 /* Override the default target of the linker.  */
-#define	LINK_TARGET_SPEC "\
-%{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-i960-old: --oformat elf32-powerpcle} \
-  }}}}"
+#define	LINK_TARGET_SPEC \
+  ENDIAN_SELECT("", " --oformat elf32-powerpcle", "")
 
 /* Any specific OS flags.  */
 #define LINK_OS_SPEC "\
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h gcc-4.8.1/gcc/config/rs6000/sysv4le.h
--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/rs6000/sysv4le.h	2013-10-01 16:06:43.940554287 +0000
@@ -25,12 +25,12 @@
 #undef	CC1_ENDIAN_DEFAULT_SPEC
 #define	CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_little)"
 
+#undef	DEFAULT_ASM_ENDIAN
+#define	DEFAULT_ASM_ENDIAN " -mlittle"
+
 #undef	LINK_TARGET_SPEC
-#define	LINK_TARGET_SPEC "\
-%{mbig: --oformat elf32-powerpc } %{mbig-endian: --oformat elf32-powerpc } \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-linux: --oformat elf32-powerpc} \
-  }}}}"
+#define	LINK_TARGET_SPEC \
+  ENDIAN_SELECT(" --oformat elf32-powerpc", "", "")
 
 #undef	MULTILIB_DEFAULTS
 #define	MULTILIB_DEFAULTS { "mlittle", "mcall-sysv" }
diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmintrin.h gcc-4.8.1/gcc/config/s390/htmintrin.h
--- gcc-4.8.1.orig/gcc/config/s390/htmintrin.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/htmintrin.h	2013-10-01 16:06:43.940554287 +0000
@@ -0,0 +1,57 @@
+/* GNU compiler hardware transactional execution intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _HTMINTRIN_H
+#define _HTMINTRIN_H
+
+
+/* Condition codes generated by tbegin  */
+#define _HTM_TBEGIN_STARTED       0
+#define _HTM_TBEGIN_INDETERMINATE 1
+#define _HTM_TBEGIN_TRANSIENT     2
+#define _HTM_TBEGIN_PERSISTENT    3
+
+/* The abort codes below this threshold are reserved for machine
+   use.  */
+#define _HTM_FIRST_USER_ABORT_CODE 256
+
+/* The transaction diagnostic block is it is defined in the Principles
+   of Operation chapter 5-91.  */
+
+struct __htm_tdb {
+  unsigned char format;                /*   0 */
+  unsigned char flags;
+  unsigned char reserved1[4];
+  unsigned short nesting_depth;
+  unsigned long long abort_code;       /*   8 */
+  unsigned long long conflict_token;   /*  16 */
+  unsigned long long atia;             /*  24 */
+  unsigned char eaid;                  /*  32 */
+  unsigned char dxc;
+  unsigned char reserved2[2];
+  unsigned int program_int_id;
+  unsigned long long exception_id;     /*  40 */
+  unsigned long long bea;              /*  48 */
+  unsigned char reserved3[72];         /*  56 */
+  unsigned long long gprs[16];         /* 128 */
+} __attribute__((__packed__, __aligned__ (8)));
+
+
+#endif /* _HTMINTRIN_H */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h gcc-4.8.1/gcc/config/s390/htmxlintrin.h
--- gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/htmxlintrin.h	2013-10-01 16:06:43.940554287 +0000
@@ -0,0 +1,182 @@
+/* XL compiler hardware transactional execution intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _HTMXLINTRIN_H
+#define _HTMXLINTRIN_H
+
+#include <stdint.h>
+
+#include <htmintrin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These intrinsics are being made available for compatibility with
+   the IBM XL compiler.  For documentation please see the "z/OS XL
+   C/C++ Programming Guide" publically available on the web.  */
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_simple_begin ()
+{
+  return __builtin_tbegin_nofloat (0);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_begin (void* const tdb)
+{
+  return __builtin_tbegin_nofloat (tdb);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_end ()
+{
+  return __builtin_tend ();
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_abort ()
+{
+  return __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_named_abort (unsigned char const code)
+{
+  return __builtin_tabort ((int)_HTM_FIRST_USER_ABORT_CODE + code);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_non_transactional_store (void* const addr, long long const value)
+{
+  __builtin_non_tx_store ((uint64_t*)addr, (uint64_t)value);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_nesting_depth (void* const tdb_ptr)
+{
+  int depth = __builtin_tx_nesting_depth ();
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (depth != 0)
+    return depth;
+
+  if (tdb->format == 0)
+    return 0;
+  return tdb->nesting_depth;
+}
+
+/* Transaction failure diagnostics */
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_user_abort (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (tdb->format == 0)
+    return 0;
+
+  return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_named_user_abort (void* const tdb_ptr, unsigned char* code)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (tdb->format == 0)
+    return 0;
+
+  if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
+    {
+      *code = tdb->abort_code - _HTM_FIRST_USER_ABORT_CODE;
+      return 1;
+    }
+  return 0;
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_illegal (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 4 /* unfiltered program interruption */
+	      || tdb->abort_code == 11 /* restricted instruction */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_footprint_exceeded (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 7 /* fetch overflow */
+	      || tdb->abort_code == 8 /* store overflow */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_nested_too_deep (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_conflict (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 9 /* fetch conflict */
+	      || tdb->abort_code == 10 /* store conflict */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_failure_persistent (long const result)
+{
+  return result == _HTM_TBEGIN_PERSISTENT;
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_failure_address (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+#ifdef __s390x__
+  return tdb->atia;
+#else
+  return tdb->atia & 0xffffffff;
+#endif
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_failure_code (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return tdb->abort_code;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HTMXLINTRIN_H */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/predicates.md gcc-4.8.1/gcc/config/s390/predicates.md
--- gcc-4.8.1.orig/gcc/config/s390/predicates.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/predicates.md	2013-10-01 16:06:43.940554287 +0000
@@ -176,7 +176,11 @@
 {
   if (GET_CODE (XEXP (op, 0)) != REG
       || REGNO (XEXP (op, 0)) != CC_REGNUM
-      || XEXP (op, 1) != const0_rtx)
+      || (XEXP (op, 1) != const0_rtx
+          && !(CONST_INT_P (XEXP (op, 1))
+	       && GET_MODE (XEXP (op, 0)) == CCRAWmode
+	       && INTVAL (XEXP (op, 1)) >= 0
+               && INTVAL (XEXP (op, 1)) <= 15)))
     return false;
 
   return (s390_branch_condition_mask (op) >= 0);
@@ -224,7 +228,11 @@
 
   if (GET_CODE (XEXP (op, 0)) != REG
       || REGNO (XEXP (op, 0)) != CC_REGNUM
-      || XEXP (op, 1) != const0_rtx)
+      || (XEXP (op, 1) != const0_rtx
+          && !(CONST_INT_P (XEXP (op, 1))
+	       && GET_MODE (XEXP (op, 0)) == CCRAWmode
+	       && INTVAL (XEXP (op, 1)) >= 0
+               && INTVAL (XEXP (op, 1)) <= 15)))
     return false;
 
   switch (GET_MODE (XEXP (op, 0)))
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-modes.def gcc-4.8.1/gcc/config/s390/s390-modes.def
--- gcc-4.8.1.orig/gcc/config/s390/s390-modes.def	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390-modes.def	2013-10-01 16:06:43.944554286 +0000
@@ -152,6 +152,14 @@
 operands were equal/unequal. The CCZ1 mode ensures the result can be
 effectively placed into a register.
 
+CCRAW
+
+The cc mode generated by a non-compare instruction.  The condition
+code mask for the CC consumer is determined by the comparison operator
+(only EQ and NE allowed) and the immediate value given as second
+operand to the operator.  For the other CC modes this value used to be
+0.
+
 */
 
 
@@ -172,3 +180,4 @@
 CC_MODE (CCT1);
 CC_MODE (CCT2);
 CC_MODE (CCT3);
+CC_MODE (CCRAW);
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-protos.h gcc-4.8.1/gcc/config/s390/s390-protos.h
--- gcc-4.8.1.orig/gcc/config/s390/s390-protos.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390-protos.h	2013-10-01 16:06:43.944554286 +0000
@@ -58,7 +58,7 @@
 extern enum machine_mode s390_tm_ccmode (rtx, rtx, bool);
 extern enum machine_mode s390_select_ccmode (enum rtx_code, rtx, rtx);
 extern rtx s390_emit_compare (enum rtx_code, rtx, rtx);
-extern void s390_emit_jump (rtx, rtx);
+extern rtx s390_emit_jump (rtx, rtx);
 extern bool symbolic_reference_mentioned_p (rtx);
 extern bool tls_symbolic_reference_mentioned_p (rtx);
 extern bool legitimate_la_operand_p (rtx);
@@ -87,6 +87,7 @@
 				rtx, rtx, bool);
 extern void s390_expand_atomic (enum machine_mode, enum rtx_code,
 				rtx, rtx, rtx, bool);
+extern void s390_expand_tbegin (rtx, rtx, rtx, bool);
 extern rtx s390_return_addr_rtx (int, rtx);
 extern rtx s390_back_chain_rtx (void);
 extern rtx s390_emit_call (rtx, rtx, rtx, rtx);
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.c gcc-4.8.1/gcc/config/s390/s390.c
--- gcc-4.8.1.orig/gcc/config/s390/s390.c	2013-04-08 07:55:57.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390.c	2013-10-01 16:06:43.940554287 +0000
@@ -367,6 +367,10 @@
   const char *some_ld_name;
 
   bool has_landing_pad_p;
+
+  /* True if the current function may contain a tbegin clobbering
+     FPRs.  */
+  bool tbegin_p;
 };
 
 /* Few accessor macros for struct cfun->machine->s390_frame_layout.  */
@@ -824,9 +828,9 @@
       *op1 = constm1_rtx;
     }
 
-  /* Remove redundant UNSPEC_CCU_TO_INT conversions if possible.  */
+  /* Remove redundant UNSPEC_STRCMPCC_TO_INT conversions if possible.  */
   if (GET_CODE (*op0) == UNSPEC
-      && XINT (*op0, 1) == UNSPEC_CCU_TO_INT
+      && XINT (*op0, 1) == UNSPEC_STRCMPCC_TO_INT
       && XVECLEN (*op0, 0) == 1
       && GET_MODE (XVECEXP (*op0, 0, 0)) == CCUmode
       && GET_CODE (XVECEXP (*op0, 0, 0)) == REG
@@ -852,25 +856,35 @@
 	}
     }
 
-  /* Remove redundant UNSPEC_CCZ_TO_INT conversions if possible.  */
+  /* Remove redundant UNSPEC_CC_TO_INT conversions if possible.  */
   if (GET_CODE (*op0) == UNSPEC
-      && XINT (*op0, 1) == UNSPEC_CCZ_TO_INT
+      && XINT (*op0, 1) == UNSPEC_CC_TO_INT
       && XVECLEN (*op0, 0) == 1
-      && GET_MODE (XVECEXP (*op0, 0, 0)) == CCZmode
       && GET_CODE (XVECEXP (*op0, 0, 0)) == REG
       && REGNO (XVECEXP (*op0, 0, 0)) == CC_REGNUM
-      && *op1 == const0_rtx)
+      && CONST_INT_P (*op1))
     {
       enum rtx_code new_code = UNKNOWN;
-      switch (*code)
+      switch (GET_MODE (XVECEXP (*op0, 0, 0)))
 	{
-	  case EQ: new_code = EQ;  break;
-	  case NE: new_code = NE;  break;
-	  default: break;
+	case CCZmode:
+	case CCRAWmode:
+	  switch (*code)
+	    {
+	    case EQ: new_code = EQ;  break;
+	    case NE: new_code = NE;  break;
+	    default: break;
+	    }
+	  break;
+	default: break;
 	}
 
       if (new_code != UNKNOWN)
 	{
+	  /* For CCRAWmode put the required cc mask into the second
+	     operand.  */
+	  if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode)
+	    *op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
 	  *op0 = XVECEXP (*op0, 0, 0);
 	  *code = new_code;
 	}
@@ -942,10 +956,11 @@
 			    const0_rtx);
 }
 
-/* Emit a jump instruction to TARGET.  If COND is NULL_RTX, emit an
-   unconditional jump, else a conditional jump under condition COND.  */
+/* Emit a jump instruction to TARGET and return it.  If COND is
+   NULL_RTX, emit an unconditional jump, else a conditional jump under
+   condition COND.  */
 
-void
+rtx
 s390_emit_jump (rtx target, rtx cond)
 {
   rtx insn;
@@ -955,7 +970,7 @@
     target = gen_rtx_IF_THEN_ELSE (VOIDmode, cond, target, pc_rtx);
 
   insn = gen_rtx_SET (VOIDmode, pc_rtx, target);
-  emit_jump_insn (insn);
+  return emit_jump_insn (insn);
 }
 
 /* Return branch condition mask to implement a branch
@@ -971,7 +986,10 @@
 
   gcc_assert (GET_CODE (XEXP (code, 0)) == REG);
   gcc_assert (REGNO (XEXP (code, 0)) == CC_REGNUM);
-  gcc_assert (XEXP (code, 1) == const0_rtx);
+  gcc_assert (XEXP (code, 1) == const0_rtx
+	      || (GET_MODE (XEXP (code, 0)) == CCRAWmode
+		  && CONST_INT_P (XEXP (code, 1))));
+
 
   switch (GET_MODE (XEXP (code, 0)))
     {
@@ -1145,6 +1163,17 @@
         }
       break;
 
+    case CCRAWmode:
+      switch (GET_CODE (code))
+	{
+	case EQ:
+	  return INTVAL (XEXP (code, 1));
+	case NE:
+	  return (INTVAL (XEXP (code, 1))) ^ 0xf;
+	default:
+	  gcc_unreachable ();
+	}
+
     default:
       return -1;
     }
@@ -1204,7 +1233,9 @@
 
   if (GET_CODE (XEXP (code, 0)) == REG
       && REGNO (XEXP (code, 0)) == CC_REGNUM
-      && XEXP (code, 1) == const0_rtx)
+      && (XEXP (code, 1) == const0_rtx
+	  || (GET_MODE (XEXP (code, 0)) == CCRAWmode
+	      && CONST_INT_P (XEXP (code, 1)))))
     mask = s390_branch_condition_mask (code);
   else
     mask = s390_compare_and_branch_condition_mask (code);
@@ -1602,6 +1633,11 @@
   if (!(target_flags_explicit & MASK_HARD_DFP) && TARGET_DFP)
     target_flags |= MASK_HARD_DFP;
 
+  /* Enable hardware transactions if available and not explicitly
+     disabled by user.  E.g. with -m31 -march=zEC12 -mzarch */
+  if (!(target_flags_explicit & MASK_OPT_HTM) && TARGET_CPU_HTM && TARGET_ZARCH)
+    target_flags |= MASK_OPT_HTM;
+
   if (TARGET_HARD_DFP && !TARGET_DFP)
     {
       if (target_flags_explicit & MASK_HARD_DFP)
@@ -7028,25 +7064,12 @@
 	 or a casesi jump, check all potential targets.  */
       else if (GET_CODE (insn) == JUMP_INSN)
 	{
-          rtx pat = PATTERN (insn);
-	  if (GET_CODE (pat) == PARALLEL && XVECLEN (pat, 0) > 2)
-	    pat = XVECEXP (pat, 0, 0);
-
-          if (GET_CODE (pat) == SET)
-            {
-	      rtx label = JUMP_LABEL (insn);
-	      if (label)
-		{
-	          if (s390_find_pool (pool_list, label)
-		      != s390_find_pool (pool_list, insn))
-		    bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
-		}
-            }
-	  else if (GET_CODE (pat) == PARALLEL
-		   && XVECLEN (pat, 0) == 2
-		   && GET_CODE (XVECEXP (pat, 0, 0)) == SET
-		   && GET_CODE (XVECEXP (pat, 0, 1)) == USE
-		   && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF)
+	  rtx pat = PATTERN (insn);
+	  if (GET_CODE (pat) == PARALLEL
+	      && XVECLEN (pat, 0) == 2
+	      && GET_CODE (XVECEXP (pat, 0, 0)) == SET
+	      && GET_CODE (XVECEXP (pat, 0, 1)) == USE
+	      && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF)
 	    {
 	      /* Find the jump table used by this casesi jump.  */
 	      rtx vec_label = XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
@@ -7068,8 +7091,23 @@
 			bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
 		    }
 		}
+	      continue;
 	    }
-        }
+
+	  if (GET_CODE (pat) == PARALLEL)
+	    pat = XVECEXP (pat, 0, 0);
+
+	  if (GET_CODE (pat) == SET)
+	    {
+	      rtx label = JUMP_LABEL (insn);
+	      if (label)
+		{
+		  if (s390_find_pool (pool_list, label)
+		      != s390_find_pool (pool_list, insn))
+		    bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
+		}
+	    }
+	}
     }
 
   /* Insert base register reload insns before every pool.  */
@@ -7341,11 +7379,11 @@
   if (GET_CODE (setreg) == SUBREG)
     {
       rtx inner = SUBREG_REG (setreg);
-      if (!GENERAL_REG_P (inner))
+      if (!GENERAL_REG_P (inner) && !FP_REG_P (inner))
 	return;
       regno = subreg_regno (setreg);
     }
-  else if (GENERAL_REG_P (setreg))
+  else if (GENERAL_REG_P (setreg) || FP_REG_P (setreg))
     regno = REGNO (setreg);
   else
     return;
@@ -7368,13 +7406,13 @@
   rtx cur_insn;
   unsigned int i;
 
-  memset (regs_ever_clobbered, 0, 16 * sizeof (int));
+  memset (regs_ever_clobbered, 0, 32 * sizeof (int));
 
   /* For non-leaf functions we have to consider all call clobbered regs to be
      clobbered.  */
   if (!crtl->is_leaf)
     {
-      for (i = 0; i < 16; i++)
+      for (i = 0; i < 32; i++)
 	regs_ever_clobbered[i] = call_really_used_regs[i];
     }
 
@@ -7396,7 +7434,7 @@
      See expand_builtin_unwind_init.  For regs_ever_live this is done by
      reload.  */
   if (cfun->has_nonlocal_label)
-    for (i = 0; i < 16; i++)
+    for (i = 0; i < 32; i++)
       if (!call_really_used_regs[i])
 	regs_ever_clobbered[i] = 1;
 
@@ -7462,17 +7500,6 @@
 {
   int i, j;
 
-  /* fprs 8 - 15 are call saved for 64 Bit ABI.  */
-  cfun_frame_layout.fpr_bitmap = 0;
-  cfun_frame_layout.high_fprs = 0;
-  if (TARGET_64BIT)
-    for (i = 24; i < 32; i++)
-      if (df_regs_ever_live_p (i) && !global_regs[i])
-	{
-	  cfun_set_fpr_bit (i - 16);
-	  cfun_frame_layout.high_fprs++;
-	}
-
   /* Find first and last gpr to be saved.  We trust regs_ever_live
      data, except that we don't save and restore global registers.
 
@@ -7481,6 +7508,28 @@
 
   s390_regs_ever_clobbered (clobbered_regs);
 
+  /* fprs 8 - 15 are call saved for 64 Bit ABI.  */
+  if (!epilogue_completed)
+    {
+      cfun_frame_layout.fpr_bitmap = 0;
+      cfun_frame_layout.high_fprs = 0;
+      if (TARGET_64BIT)
+	for (i = 24; i < 32; i++)
+	  /* During reload we have to use the df_regs_ever_live infos
+	     since reload is marking FPRs used as spill slots there as
+	     live before actually making the code changes.  Without
+	     this we fail during elimination offset verification.  */
+	  if ((clobbered_regs[i]
+	       || (df_regs_ever_live_p (i)
+		   && (reload_in_progress
+		       || crtl->saves_all_registers)))
+	      && !global_regs[i])
+	    {
+	      cfun_set_fpr_bit (i - 16);
+	      cfun_frame_layout.high_fprs++;
+	    }
+    }
+
   for (i = 0; i < 16; i++)
     clobbered_regs[i] = clobbered_regs[i] && !global_regs[i] && !fixed_regs[i];
 
@@ -7731,7 +7780,7 @@
 {
   HOST_WIDE_INT frame_size;
   int base_used;
-  int clobbered_regs[16];
+  int clobbered_regs[32];
 
   /* On S/390 machines, we may need to perform branch splitting, which
      will require both base and return address register.  We have no
@@ -7766,6 +7815,157 @@
   while (frame_size != cfun_frame_layout.frame_size);
 }
 
+/* Remove the FPR clobbers from a tbegin insn if it can be proven that
+   the TX is nonescaping.  A transaction is considered escaping if
+   there is at least one path from tbegin returning CC0 to the
+   function exit block without an tend.
+
+   The check so far has some limitations:
+   - only single tbegin/tend BBs are supported
+   - the first cond jump after tbegin must separate the CC0 path from ~CC0
+   - when CC is copied to a GPR and the CC0 check is done with the GPR
+     this is not supported
+*/
+
+static void
+s390_optimize_nonescaping_tx (void)
+{
+  const unsigned int CC0 = 1 << 3;
+  basic_block tbegin_bb = NULL;
+  basic_block tend_bb = NULL;
+  basic_block bb;
+  rtx insn;
+  bool result = true;
+  int bb_index;
+  rtx tbegin_insn = NULL_RTX;
+
+  if (!cfun->machine->tbegin_p)
+    return;
+
+  for (bb_index = 0; bb_index < n_basic_blocks; bb_index++)
+    {
+      bb = BASIC_BLOCK (bb_index);
+
+      FOR_BB_INSNS (bb, insn)
+	{
+	  rtx ite, cc, pat, target;
+	  unsigned HOST_WIDE_INT mask;
+
+	  if (!INSN_P (insn) || INSN_CODE (insn) <= 0)
+	    continue;
+
+	  pat = PATTERN (insn);
+
+	  if (GET_CODE (pat) == PARALLEL)
+	    pat = XVECEXP (pat, 0, 0);
+
+	  if (GET_CODE (pat) != SET
+	      || GET_CODE (SET_SRC (pat)) != UNSPEC_VOLATILE)
+	    continue;
+
+	  if (XINT (SET_SRC (pat), 1) == UNSPECV_TBEGIN)
+	    {
+	      rtx tmp;
+
+	      tbegin_insn = insn;
+
+	      /* Just return if the tbegin doesn't have clobbers.  */
+	      if (GET_CODE (PATTERN (insn)) != PARALLEL)
+		return;
+
+	      if (tbegin_bb != NULL)
+		return;
+
+	      /* Find the next conditional jump.  */
+	      for (tmp = NEXT_INSN (insn);
+		   tmp != NULL_RTX;
+		   tmp = NEXT_INSN (tmp))
+		{
+		  if (reg_set_p (gen_rtx_REG (CCmode, CC_REGNUM), tmp))
+		    return;
+		  if (!JUMP_P (tmp))
+		    continue;
+
+		  ite = SET_SRC (PATTERN (tmp));
+		  if (GET_CODE (ite) != IF_THEN_ELSE)
+		    continue;
+
+		  cc = XEXP (XEXP (ite, 0), 0);
+		  if (!REG_P (cc) || !CC_REGNO_P (REGNO (cc))
+		      || GET_MODE (cc) != CCRAWmode
+		      || GET_CODE (XEXP (XEXP (ite, 0), 1)) != CONST_INT)
+		    return;
+
+		  if (bb->succs->length () != 2)
+		    return;
+
+		  mask = INTVAL (XEXP (XEXP (ite, 0), 1));
+		  if (GET_CODE (XEXP (ite, 0)) == NE)
+		    mask ^= 0xf;
+
+		  if (mask == CC0)
+		    target = XEXP (ite, 1);
+		  else if (mask == (CC0 ^ 0xf))
+		    target = XEXP (ite, 2);
+		  else
+		    return;
+
+		  {
+		    edge_iterator ei;
+		    edge e1, e2;
+
+		    ei = ei_start (bb->succs);
+		    e1 = ei_safe_edge (ei);
+		    ei_next (&ei);
+		    e2 = ei_safe_edge (ei);
+
+		    if (e2->flags & EDGE_FALLTHRU)
+		      {
+			e2 = e1;
+			e1 = ei_safe_edge (ei);
+		      }
+
+		    if (!(e1->flags & EDGE_FALLTHRU))
+		      return;
+
+		    tbegin_bb = (target == pc_rtx) ? e1->dest : e2->dest;
+		  }
+		  if (tmp == BB_END (bb))
+		    break;
+		}
+	    }
+
+	  if (XINT (SET_SRC (pat), 1) == UNSPECV_TEND)
+	    {
+	      if (tend_bb != NULL)
+		return;
+	      tend_bb = bb;
+	    }
+	}
+    }
+
+  /* Either we successfully remove the FPR clobbers here or we are not
+     able to do anything for this TX.  Both cases don't qualify for
+     another look.  */
+  cfun->machine->tbegin_p = false;
+
+  if (tbegin_bb == NULL || tend_bb == NULL)
+    return;
+
+  calculate_dominance_info (CDI_POST_DOMINATORS);
+  result = dominated_by_p (CDI_POST_DOMINATORS, tbegin_bb, tend_bb);
+  free_dominance_info (CDI_POST_DOMINATORS);
+
+  if (!result)
+    return;
+
+  PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
+  INSN_CODE (tbegin_insn) = -1;
+  df_insn_rescan (tbegin_insn);
+
+  return;
+}
+
 /* Update frame layout.  Recompute actual register save data based on
    current info and update regs_ever_live for the special registers.
    May be called multiple times, but may never cause *more* registers
@@ -7774,7 +7974,7 @@
 static void
 s390_update_frame_layout (void)
 {
-  int clobbered_regs[16];
+  int clobbered_regs[32];
 
   s390_register_info (clobbered_regs);
 
@@ -8204,8 +8404,10 @@
   int offset;
   int next_fpr = 0;
 
-  /* Complete frame layout.  */
+  /* Try to get rid of the FPR clobbers.  */
+  s390_optimize_nonescaping_tx ();
 
+  /* Complete frame layout.  */
   s390_update_frame_layout ();
 
   /* Annotate all constant pool references to let the scheduler know
@@ -9353,6 +9555,291 @@
   return build_va_arg_indirect_ref (addr);
 }
 
+/* Emit rtl for the tbegin or tbegin_retry (RETRY != NULL_RTX)
+   expanders.
+   DEST  - Register location where CC will be stored.
+   TDB   - Pointer to a 256 byte area where to store the transaction.
+           diagnostic block. NULL if TDB is not needed.
+   RETRY - Retry count value.  If non-NULL a retry loop for CC2
+           is emitted
+   CLOBBER_FPRS_P - If true clobbers for all FPRs are emitted as part
+                    of the tbegin instruction pattern.  */
+
+void
+s390_expand_tbegin (rtx dest, rtx tdb, rtx retry, bool clobber_fprs_p)
+{
+  const int CC0 = 1 << 3;
+  const int CC1 = 1 << 2;
+  const int CC3 = 1 << 0;
+  rtx abort_label = gen_label_rtx ();
+  rtx leave_label = gen_label_rtx ();
+  rtx retry_reg = gen_reg_rtx (SImode);
+  rtx retry_label = NULL_RTX;
+  rtx jump;
+  rtx very_unlikely = GEN_INT (REG_BR_PROB_BASE / 100 - 1);
+
+  if (retry != NULL_RTX)
+    {
+      emit_move_insn (retry_reg, retry);
+      retry_label = gen_label_rtx ();
+      emit_label (retry_label);
+    }
+
+  if (clobber_fprs_p)
+    emit_insn (gen_tbegin_1 (tdb,
+		 gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
+  else
+    emit_insn (gen_tbegin_nofloat_1 (tdb,
+		 gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
+
+  jump = s390_emit_jump (abort_label,
+			 gen_rtx_NE (VOIDmode,
+				     gen_rtx_REG (CCRAWmode, CC_REGNUM),
+				     gen_rtx_CONST_INT (VOIDmode, CC0)));
+
+  JUMP_LABEL (jump) = abort_label;
+  LABEL_NUSES (abort_label) = 1;
+  add_reg_note (jump, REG_BR_PROB, very_unlikely);
+
+  /* Initialize CC return value.  */
+  emit_move_insn (dest, const0_rtx);
+
+  s390_emit_jump (leave_label, NULL_RTX);
+  LABEL_NUSES (leave_label) = 1;
+  emit_barrier ();
+
+  /* Abort handler code.  */
+
+  emit_label (abort_label);
+  if (retry != NULL_RTX)
+    {
+      rtx count = gen_reg_rtx (SImode);
+      jump = s390_emit_jump (leave_label,
+			     gen_rtx_EQ (VOIDmode,
+			       gen_rtx_REG (CCRAWmode, CC_REGNUM),
+			       gen_rtx_CONST_INT (VOIDmode, CC1 | CC3)));
+      LABEL_NUSES (leave_label) = 2;
+      add_reg_note (jump, REG_BR_PROB, very_unlikely);
+
+      /* CC2 - transient failure. Perform retry with ppa.  */
+      emit_move_insn (count, retry);
+      emit_insn (gen_subsi3 (count, count, retry_reg));
+      emit_insn (gen_tx_assist (count));
+      jump = emit_jump_insn (gen_doloop_si64 (retry_label,
+					      retry_reg,
+					      retry_reg));
+      JUMP_LABEL (jump) = retry_label;
+      LABEL_NUSES (retry_label) = 1;
+    }
+
+  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
+					gen_rtvec (1, gen_rtx_REG (CCRAWmode,
+								   CC_REGNUM)),
+					UNSPEC_CC_TO_INT));
+  emit_label (leave_label);
+}
+
+/* Builtins.  */
+
+enum s390_builtin
+{
+  S390_BUILTIN_TBEGIN,
+  S390_BUILTIN_TBEGIN_NOFLOAT,
+  S390_BUILTIN_TBEGIN_RETRY,
+  S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
+  S390_BUILTIN_TBEGINC,
+  S390_BUILTIN_TEND,
+  S390_BUILTIN_TABORT,
+  S390_BUILTIN_NON_TX_STORE,
+  S390_BUILTIN_TX_NESTING_DEPTH,
+  S390_BUILTIN_TX_ASSIST,
+
+  S390_BUILTIN_max
+};
+
+static enum insn_code const code_for_builtin[S390_BUILTIN_max] = {
+  CODE_FOR_tbegin,
+  CODE_FOR_tbegin_nofloat,
+  CODE_FOR_tbegin_retry,
+  CODE_FOR_tbegin_retry_nofloat,
+  CODE_FOR_tbeginc,
+  CODE_FOR_tend,
+  CODE_FOR_tabort,
+  CODE_FOR_ntstg,
+  CODE_FOR_etnd,
+  CODE_FOR_tx_assist
+};
+
+static void
+s390_init_builtins (void)
+{
+  tree ftype, uint64_type;
+
+  /* void foo (void) */
+  ftype = build_function_type_list (void_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbeginc", ftype, S390_BUILTIN_TBEGINC,
+			BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* void foo (int) */
+  ftype = build_function_type_list (void_type_node, integer_type_node,
+				    NULL_TREE);
+  add_builtin_function ("__builtin_tabort", ftype,
+			S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tx_assist", ftype,
+			S390_BUILTIN_TX_ASSIST, BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* int foo (void *) */
+  ftype = build_function_type_list (integer_type_node, ptr_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin", ftype, S390_BUILTIN_TBEGIN,
+			BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_nofloat", ftype,
+			S390_BUILTIN_TBEGIN_NOFLOAT,
+			BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* int foo (void *, int) */
+  ftype = build_function_type_list (integer_type_node, ptr_type_node,
+				    integer_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_retry", ftype,
+			S390_BUILTIN_TBEGIN_RETRY,
+			BUILT_IN_MD,
+			NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
+			S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
+			BUILT_IN_MD,
+			NULL, NULL_TREE);
+
+  /* int foo (void) */
+  ftype = build_function_type_list (integer_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tx_nesting_depth", ftype,
+			S390_BUILTIN_TX_NESTING_DEPTH,
+			BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tend", ftype,
+			S390_BUILTIN_TEND, BUILT_IN_MD,	NULL, NULL_TREE);
+
+  /* void foo (uint64_t *, uint64_t) */
+  if (TARGET_64BIT)
+    uint64_type = long_unsigned_type_node;
+  else
+    uint64_type = long_long_unsigned_type_node;
+
+   ftype = build_function_type_list (void_type_node,
+ 				    build_pointer_type (uint64_type),
+				    uint64_type, NULL_TREE);
+  add_builtin_function ("__builtin_non_tx_store", ftype,
+			S390_BUILTIN_NON_TX_STORE,
+			BUILT_IN_MD, NULL, NULL_TREE);
+}
+
+/* Expand an expression EXP that calls a built-in function,
+   with result going to TARGET if that's convenient
+   (and in mode MODE if that's convenient).
+   SUBTARGET may be used as the target for computing one of EXP's operands.
+   IGNORE is nonzero if the value is to be ignored.  */
+
+static rtx
+s390_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
+		     enum machine_mode mode ATTRIBUTE_UNUSED,
+		     int ignore ATTRIBUTE_UNUSED)
+{
+#define MAX_ARGS 2
+
+  tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
+  unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
+  enum insn_code icode;
+  rtx op[MAX_ARGS], pat;
+  int arity;
+  bool nonvoid;
+  tree arg;
+  call_expr_arg_iterator iter;
+
+  if (fcode >= S390_BUILTIN_max)
+    internal_error ("bad builtin fcode");
+  icode = code_for_builtin[fcode];
+  if (icode == 0)
+    internal_error ("bad builtin fcode");
+
+  if (!TARGET_HTM)
+    error ("Transactional execution builtins not enabled (-mhtm)\n");
+
+  /* Set a flag in the machine specific cfun part in order to support
+     saving/restoring of FPRs.  */
+  if (fcode == S390_BUILTIN_TBEGIN || fcode == S390_BUILTIN_TBEGIN_RETRY)
+    cfun->machine->tbegin_p = true;
+
+  nonvoid = TREE_TYPE (TREE_TYPE (fndecl)) != void_type_node;
+
+  arity = 0;
+  FOR_EACH_CALL_EXPR_ARG (arg, iter, exp)
+    {
+      const struct insn_operand_data *insn_op;
+
+      if (arg == error_mark_node)
+	return NULL_RTX;
+      if (arity >= MAX_ARGS)
+	return NULL_RTX;
+
+      insn_op = &insn_data[icode].operand[arity + nonvoid];
+
+      op[arity] = expand_expr (arg, NULL_RTX, insn_op->mode, EXPAND_NORMAL);
+
+      if (!(*insn_op->predicate) (op[arity], insn_op->mode))
+	{
+	  if (insn_op->predicate == memory_operand)
+	    {
+	      /* Don't move a NULL pointer into a register. Otherwise
+		 we have to rely on combine being able to move it back
+		 in order to get an immediate 0 in the instruction.  */
+	      if (op[arity] != const0_rtx)
+		op[arity] = copy_to_mode_reg (Pmode, op[arity]);
+	      op[arity] = gen_rtx_MEM (insn_op->mode, op[arity]);
+	    }
+	  else
+	    op[arity] = copy_to_mode_reg (insn_op->mode, op[arity]);
+	}
+
+      arity++;
+    }
+
+  if (nonvoid)
+    {
+      enum machine_mode tmode = insn_data[icode].operand[0].mode;
+      if (!target
+	  || GET_MODE (target) != tmode
+	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
+	target = gen_reg_rtx (tmode);
+    }
+
+  switch (arity)
+    {
+    case 0:
+      pat = GEN_FCN (icode) (target);
+      break;
+    case 1:
+      if (nonvoid)
+        pat = GEN_FCN (icode) (target, op[0]);
+      else
+	pat = GEN_FCN (icode) (op[0]);
+      break;
+    case 2:
+      if (nonvoid)
+	pat = GEN_FCN (icode) (target, op[0], op[1]);
+      else
+	pat = GEN_FCN (icode) (op[0], op[1]);
+      break;
+    default:
+      gcc_unreachable ();
+    }
+  if (!pat)
+    return NULL_RTX;
+  emit_insn (pat);
+
+  if (nonvoid)
+    return target;
+  else
+    return const0_rtx;
+}
+
+
 /* Output assembly code for the trampoline template to
    stdio stream FILE.
 
@@ -11008,6 +11495,11 @@
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY s390_return_in_memory
 
+#undef  TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS s390_init_builtins
+#undef  TARGET_EXPAND_BUILTIN
+#define TARGET_EXPAND_BUILTIN s390_expand_builtin
+
 #undef TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
 #define TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA s390_output_addr_const_extra
 
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.h gcc-4.8.1/gcc/config/s390/s390.h
--- gcc-4.8.1.orig/gcc/config/s390/s390.h	2013-03-05 12:02:06.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390.h	2013-10-01 16:06:43.940554287 +0000
@@ -34,7 +34,8 @@
   PF_DFP = 16,
   PF_Z10 = 32,
   PF_Z196 = 64,
-  PF_ZEC12 = 128
+  PF_ZEC12 = 128,
+  PF_TX = 256
 };
 
 /* This is necessary to avoid a warning about comparing different enum
@@ -61,6 +62,8 @@
  	(s390_arch_flags & PF_Z196)
 #define TARGET_CPU_ZEC12 \
  	(s390_arch_flags & PF_ZEC12)
+#define TARGET_CPU_HTM \
+ 	(s390_arch_flags & PF_TX)
 
 /* These flags indicate that the generated code should run on a cpu
    providing the respective hardware facility when run in
@@ -78,6 +81,7 @@
        (TARGET_ZARCH && TARGET_CPU_Z196)
 #define TARGET_ZEC12 \
        (TARGET_ZARCH && TARGET_CPU_ZEC12)
+#define TARGET_HTM (TARGET_OPT_HTM)
 
 
 #define TARGET_AVOID_CMP_AND_BRANCH (s390_tune == PROCESSOR_2817_Z196)
@@ -93,23 +97,25 @@
 #define TARGET_TPF 0
 
 /* Target CPU builtins.  */
-#define TARGET_CPU_CPP_BUILTINS()			\
-  do							\
-    {							\
-      builtin_assert ("cpu=s390");			\
-      builtin_assert ("machine=s390");			\
-      builtin_define ("__s390__");			\
-      if (TARGET_ZARCH)					\
-	builtin_define ("__zarch__");			\
-      if (TARGET_64BIT)					\
-        builtin_define ("__s390x__");			\
-      if (TARGET_LONG_DOUBLE_128)			\
-        builtin_define ("__LONG_DOUBLE_128__");		\
-    }							\
+#define TARGET_CPU_CPP_BUILTINS()					\
+  do									\
+    {									\
+      builtin_assert ("cpu=s390");					\
+      builtin_assert ("machine=s390");					\
+      builtin_define ("__s390__");					\
+      if (TARGET_ZARCH)							\
+	builtin_define ("__zarch__");					\
+      if (TARGET_64BIT)							\
+        builtin_define ("__s390x__");					\
+      if (TARGET_LONG_DOUBLE_128)					\
+        builtin_define ("__LONG_DOUBLE_128__");				\
+      if (TARGET_HTM)							\
+	builtin_define ("__HTM__");					\
+    }									\
   while (0)
 
 #ifdef DEFAULT_TARGET_64BIT
-#define TARGET_DEFAULT             (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP)
+#define TARGET_DEFAULT             (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP | MASK_OPT_HTM)
 #else
 #define TARGET_DEFAULT             0
 #endif
@@ -164,6 +170,11 @@
 #define S390_TDC_INFINITY (S390_TDC_POSITIVE_INFINITY \
 			  | S390_TDC_NEGATIVE_INFINITY )
 
+/* This is used by float.h to define the float_t and double_t data
+   types.  For historical reasons both are double on s390 what cannot
+   be changed anymore.  */
+#define TARGET_FLT_EVAL_METHOD 1
+
 /* Target machine storage layout.  */
 
 /* Everything is big-endian.  */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.md gcc-4.8.1/gcc/config/s390/s390.md
--- gcc-4.8.1.orig/gcc/config/s390/s390.md	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390.md	2013-10-01 16:06:43.944554286 +0000
@@ -59,11 +59,17 @@
 (define_c_enum "unspec" [
    ; Miscellaneous
    UNSPEC_ROUND
-   UNSPEC_CCU_TO_INT
-   UNSPEC_CCZ_TO_INT
    UNSPEC_ICM
    UNSPEC_TIE
 
+   ; Convert CC into a str comparison result and copy it into an
+   ; integer register
+   ; cc0->0, cc1->1, cc2->-1, (cc3->-1)
+   UNSPEC_STRCMPCC_TO_INT
+
+   ; Copy CC as is into the lower 2 bits of an integer register
+   UNSPEC_CC_TO_INT
+
    ; GOT/PLT and lt-relative accesses
    UNSPEC_LTREL_OFFSET
    UNSPEC_LTREL_BASE
@@ -138,6 +144,15 @@
    ; Atomic Support
    UNSPECV_CAS
    UNSPECV_ATOMIC_OP
+
+   ; Transactional Execution support
+   UNSPECV_TBEGIN
+   UNSPECV_TBEGINC
+   UNSPECV_TEND
+   UNSPECV_TABORT
+   UNSPECV_ETND
+   UNSPECV_NTSTG
+   UNSPECV_PPA
   ])
 
 ;;
@@ -191,6 +206,9 @@
    (PFPO_OP1_TYPE_SHIFT           8)
   ])
 
+; Immediate operands for tbegin and tbeginc
+(define_constants [(TBEGIN_MASK  65292)]) ; 0xff0c
+(define_constants [(TBEGINC_MASK 65288)]) ; 0xff08
 
 ;; Instruction operand type as used in the Principles of Operation.
 ;; Used to determine defaults for length and other attribute values.
@@ -2246,19 +2264,19 @@
 
 (define_insn "movcc"
   [(set (match_operand:CC 0 "nonimmediate_operand" "=d,c,d,d,d,R,T")
-	(match_operand:CC 1 "nonimmediate_operand" "d,d,c,R,T,d,d"))]
+	(match_operand:CC 1 "nonimmediate_operand" " d,d,c,R,T,d,d"))]
   ""
   "@
    lr\t%0,%1
    tmh\t%1,12288
    ipm\t%0
-   st\t%0,%1
-   sty\t%0,%1
-   l\t%1,%0
-   ly\t%1,%0"
+   l\t%0,%1
+   ly\t%0,%1
+   st\t%1,%0
+   sty\t%1,%0"
   [(set_attr "op_type" "RR,RI,RRE,RX,RXY,RX,RXY")
-   (set_attr "type" "lr,*,*,store,store,load,load")
-   (set_attr "z10prop" "z10_fr_E1,z10_super,*,z10_rec,z10_rec,z10_fwd_A3,z10_fwd_A3")
+   (set_attr "type" "lr,*,*,load,load,store,store")
+   (set_attr "z10prop" "z10_fr_E1,z10_super,*,z10_fwd_A3,z10_fwd_A3,z10_rec,z10_rec")
    (set_attr "z196prop" "*,*,z196_ends,*,*,*,*")])
 
 ;
@@ -2578,7 +2596,7 @@
      (use (reg:SI 0))])
    (parallel
     [(set (match_operand:SI 0 "register_operand" "=d")
-	  (unspec:SI [(reg:CCU CC_REGNUM)] UNSPEC_CCU_TO_INT))
+	  (unspec:SI [(reg:CCU CC_REGNUM)] UNSPEC_STRCMPCC_TO_INT))
      (clobber (reg:CC CC_REGNUM))])]
   ""
 {
@@ -2820,7 +2838,7 @@
                      (match_dup 2)]
                      UNSPEC_TDC_INSN))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CCZ_TO_INT))]
+        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CC_TO_INT))]
   "TARGET_HARD_FLOAT"
 {
   operands[2] = GEN_INT (S390_TDC_SIGNBIT_SET);
@@ -2832,12 +2850,21 @@
                      (match_dup 2)]
                      UNSPEC_TDC_INSN))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CCZ_TO_INT))]
+        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CC_TO_INT))]
   "TARGET_HARD_FLOAT"
 {
   operands[2] = GEN_INT (S390_TDC_INFINITY);
 })
 
+(define_insn_and_split "*cc_to_int"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+        (unspec:SI [(match_operand 1 "register_operand" "0")]
+                   UNSPEC_CC_TO_INT))]
+  "operands != NULL"
+  "#"
+  "reload_completed"
+  [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 28)))])
+
 ; This insn is used to generate all variants of the Test Data Class
 ; instruction, namely tcxb, tcdb, and tceb.  The insn's first operand
 ; is the register to be tested and the second one is the bit mask
@@ -2853,14 +2880,6 @@
    [(set_attr "op_type" "RXE")
     (set_attr "type"  "fsimp<mode>")])
 
-(define_insn_and_split "*ccz_to_int"
-  [(set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(match_operand:CCZ 1 "register_operand" "0")]
-                   UNSPEC_CCZ_TO_INT))]
-  ""
-  "#"
-  "reload_completed"
-  [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 28)))])
 
 
 ;
@@ -3205,7 +3224,7 @@
 (define_insn_and_split "cmpint"
   [(set (match_operand:SI 0 "register_operand" "=d")
         (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                   UNSPEC_CCU_TO_INT))
+                   UNSPEC_STRCMPCC_TO_INT))
    (clobber (reg:CC CC_REGNUM))]
   ""
   "#"
@@ -3218,10 +3237,10 @@
 (define_insn_and_split "*cmpint_cc"
   [(set (reg CC_REGNUM)
         (compare (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                            UNSPEC_CCU_TO_INT)
+                            UNSPEC_STRCMPCC_TO_INT)
                  (const_int 0)))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(match_dup 1)] UNSPEC_CCU_TO_INT))]
+        (unspec:SI [(match_dup 1)] UNSPEC_STRCMPCC_TO_INT))]
   "s390_match_ccmode (insn, CCSmode)"
   "#"
   "&& reload_completed"
@@ -3238,7 +3257,7 @@
 (define_insn_and_split "*cmpint_sign"
   [(set (match_operand:DI 0 "register_operand" "=d")
         (sign_extend:DI (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                                   UNSPEC_CCU_TO_INT)))
+                                   UNSPEC_STRCMPCC_TO_INT)))
    (clobber (reg:CC CC_REGNUM))]
   "TARGET_ZARCH"
   "#"
@@ -3252,11 +3271,11 @@
   [(set (reg CC_REGNUM)
         (compare (ashiftrt:DI (ashift:DI (subreg:DI
                    (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                              UNSPEC_CCU_TO_INT) 0)
+                              UNSPEC_STRCMPCC_TO_INT) 0)
                    (const_int 32)) (const_int 32))
                  (const_int 0)))
    (set (match_operand:DI 0 "register_operand" "=d")
-        (sign_extend:DI (unspec:SI [(match_dup 1)] UNSPEC_CCU_TO_INT)))]
+        (sign_extend:DI (unspec:SI [(match_dup 1)] UNSPEC_STRCMPCC_TO_INT)))]
   "s390_match_ccmode (insn, CCSmode) && TARGET_ZARCH"
   "#"
   "&& reload_completed"
@@ -5507,7 +5526,7 @@
 	(if_then_else:GPR
 	  (match_operator 1 "s390_comparison"
 	    [(match_operand 2 "cc_reg_operand"        " c,c, c, c, c, c, c")
-	     (const_int 0)])
+	     (match_operand 5 "const_int_operand"     "")])
 	  (match_operand:GPR 3 "nonimmediate_operand" " d,0,QS, 0, d, 0,QS")
 	  (match_operand:GPR 4 "nonimmediate_operand" " 0,d, 0,QS, 0, d,QS")))]
   "TARGET_Z196"
@@ -7907,7 +7926,8 @@
 (define_insn "*cjump_64"
   [(set (pc)
         (if_then_else
-          (match_operator 1 "s390_comparison" [(reg CC_REGNUM) (const_int 0)])
+          (match_operator 1 "s390_comparison" [(reg CC_REGNUM)
+					       (match_operand 2 "const_int_operand" "")])
           (label_ref (match_operand 0 "" ""))
           (pc)))]
   "TARGET_CPU_ZARCH"
@@ -7926,7 +7946,8 @@
 (define_insn "*cjump_31"
   [(set (pc)
         (if_then_else
-          (match_operator 1 "s390_comparison" [(reg CC_REGNUM) (const_int 0)])
+          (match_operator 1 "s390_comparison" [(reg CC_REGNUM)
+					       (match_operand 2 "const_int_operand" "")])
           (label_ref (match_operand 0 "" ""))
           (pc)))]
   "!TARGET_CPU_ZARCH"
@@ -9795,3 +9816,217 @@
   "cpsdr\t%0,%2,%1"
   [(set_attr "op_type"  "RRF")
    (set_attr "type"     "fsimp<mode>")])
+
+
+;;
+;;- Transactional execution instructions
+;;
+
+; This splitter helps combine to make use of CC directly when
+; comparing the integer result of a tbegin builtin with a constant.
+; The unspec is already removed by canonicalize_comparison. So this
+; splitters only job is to turn the PARALLEL into separate insns
+; again.  Unfortunately this only works with the very first cc/int
+; compare since combine is not able to deal with data flow across
+; basic block boundaries.
+
+; It needs to be an insn pattern as well since combine does not apply
+; the splitter directly.  Combine would only use it if it actually
+; would reduce the number of instructions.
+(define_insn_and_split "*ccraw_to_int"
+  [(set (pc)
+	(if_then_else
+	 (match_operator 0 "s390_eqne_operator"
+			 [(reg:CCRAW CC_REGNUM)
+			  (match_operand 1 "const_int_operand" "")])
+	 (label_ref (match_operand 2 "" ""))
+	 (pc)))
+   (set (match_operand:SI 3 "register_operand" "=d")
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))]
+  ""
+  "#"
+  ""
+  [(set (match_dup 3)
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))
+   (set (pc)
+	(if_then_else (match_op_dup 0 [(reg:CCRAW CC_REGNUM) (match_dup 1)])
+		      (label_ref (match_dup 2))
+		      (pc)))]
+  "")
+
+; Non-constrained transaction begin
+
+(define_expand "tbegin"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], NULL_RTX, true);
+  DONE;
+})
+
+(define_expand "tbegin_nofloat"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], NULL_RTX, false);
+  DONE;
+})
+
+(define_expand "tbegin_retry"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")
+   (match_operand 2 "const_int_operand")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], operands[2], true);
+  DONE;
+})
+
+(define_expand "tbegin_retry_nofloat"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")
+   (match_operand 2 "const_int_operand")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], operands[2], false);
+  DONE;
+})
+
+(define_insn "tbegin_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
+				(match_operand     1 "const_int_operand" " D")]
+			       UNSPECV_TBEGIN))
+   (clobber (reg:DF 16))
+   (clobber (reg:DF 17))
+   (clobber (reg:DF 18))
+   (clobber (reg:DF 19))
+   (clobber (reg:DF 20))
+   (clobber (reg:DF 21))
+   (clobber (reg:DF 22))
+   (clobber (reg:DF 23))
+   (clobber (reg:DF 24))
+   (clobber (reg:DF 25))
+   (clobber (reg:DF 26))
+   (clobber (reg:DF 27))
+   (clobber (reg:DF 28))
+   (clobber (reg:DF 29))
+   (clobber (reg:DF 30))
+   (clobber (reg:DF 31))]
+; CONST_OK_FOR_CONSTRAINT_P does not work with D constraint since D is
+; not supposed to be used for immediates (see genpreds.c).
+  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
+  "tbegin\t%0,%x1"
+  [(set_attr "op_type" "SIL")])
+
+; Same as above but without the FPR clobbers
+(define_insn "tbegin_nofloat_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
+				(match_operand     1 "const_int_operand" " D")]
+			       UNSPECV_TBEGIN))]
+  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
+  "tbegin\t%0,%x1"
+  [(set_attr "op_type" "SIL")])
+
+
+; Constrained transaction begin
+
+(define_expand "tbeginc"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int TBEGINC_MASK)]
+			       UNSPECV_TBEGINC))]
+  "TARGET_HTM"
+  "")
+
+(define_insn "*tbeginc_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" " D")]
+			       UNSPECV_TBEGINC))]
+  "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
+  "tbeginc\t0,%x0"
+  [(set_attr "op_type" "SIL")])
+
+; Transaction end
+
+(define_expand "tend"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int 0)] UNSPECV_TEND))
+   (set (match_operand:SI 0 "register_operand" "=d")
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))]
+  "TARGET_HTM"
+  "")
+
+(define_insn "*tend_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int 0)] UNSPECV_TEND))]
+  "TARGET_HTM"
+  "tend"
+  [(set_attr "op_type" "S")])
+
+; Transaction abort
+
+(define_expand "tabort"
+  [(unspec_volatile [(match_operand 0 "shift_count_or_setmem_operand" "")]
+		    UNSPECV_TABORT)]
+  "TARGET_HTM && operands != NULL"
+{
+  if (CONST_INT_P (operands[0])
+      && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 255)
+    {
+      error ("Invalid transaction abort code: " HOST_WIDE_INT_PRINT_DEC
+	     ".  Values in range 0 through 255 are reserved.",
+	     INTVAL (operands[0]));
+      FAIL;
+    }
+})
+
+(define_insn "*tabort_1"
+  [(unspec_volatile [(match_operand 0 "shift_count_or_setmem_operand" "")]
+		    UNSPECV_TABORT)]
+  "TARGET_HTM && operands != NULL"
+  "tabort\t%Y0"
+  [(set_attr "op_type" "S")])
+
+; Transaction extract nesting depth
+
+(define_insn "etnd"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+	(unspec_volatile:SI [(const_int 0)] UNSPECV_ETND))]
+  "TARGET_HTM"
+  "etnd\t%0"
+  [(set_attr "op_type" "RRE")])
+
+; Non-transactional store
+
+(define_insn "ntstg"
+  [(set (match_operand:DI 0 "memory_operand" "=RT")
+	(unspec_volatile:DI [(match_operand:DI 1 "register_operand" "d")]
+			    UNSPECV_NTSTG))]
+  "TARGET_HTM"
+  "ntstg\t%1,%0"
+  [(set_attr "op_type" "RXY")])
+
+; Transaction perform processor assist
+
+(define_expand "tx_assist"
+  [(set (match_dup 1) (const_int 0))
+   (unspec_volatile [(match_operand:SI 0 "register_operand" "d")
+		     (match_dup 1)
+		     (const_int 1)]
+		    UNSPECV_PPA)]
+  "TARGET_HTM"
+{
+  operands[1] = gen_reg_rtx (SImode);
+})
+
+(define_insn "*ppa"
+  [(unspec_volatile [(match_operand:SI 0 "register_operand" "d")
+		     (match_operand:SI 1 "register_operand" "d")
+		     (match_operand 2 "const_int_operand" "I")]
+		    UNSPECV_PPA)]
+  "TARGET_HTM && INTVAL (operands[2]) < 16"
+  "ppa\t%0,%1,1"
+  [(set_attr "op_type" "RRF")])
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.opt gcc-4.8.1/gcc/config/s390/s390.opt
--- gcc-4.8.1.orig/gcc/config/s390/s390.opt	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390.opt	2013-10-01 16:06:43.944554286 +0000
@@ -104,6 +104,10 @@
 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
 Use 64-bit long double
 
+mhtm
+Target Report Mask(OPT_HTM)
+Use hardware transactional execution instructions
+
 mpacked-stack
 Target Report Mask(PACKED_STACK)
 Use packed stack layout
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390intrin.h gcc-4.8.1/gcc/config/s390/s390intrin.h
--- gcc-4.8.1.orig/gcc/config/s390/s390intrin.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/config/s390/s390intrin.h	2013-10-01 16:06:43.940554287 +0000
@@ -0,0 +1,33 @@
+/* S/390 System z specific intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef  _S390INTRIN_H
+#define _S390INTRIN_H
+
+#ifndef __s390__
+  #error s390intrin.h included on wrong platform/compiler
+#endif
+
+#ifdef __HTM__
+#include <htmintrin.h>
+#endif
+
+
+#endif /* _S390INTRIN_H*/
diff -Naur gcc-4.8.1.orig/gcc/config/sh/sh.md gcc-4.8.1/gcc/config/sh/sh.md
--- gcc-4.8.1.orig/gcc/config/sh/sh.md	2013-05-06 19:53:56.000000000 +0000
+++ gcc-4.8.1/gcc/config/sh/sh.md	2013-10-01 16:06:43.944554286 +0000
@@ -6834,10 +6834,11 @@
 ;; If movqi_reg_reg is specified as an alternative of movqi, movqi will be
 ;; selected to copy QImode regs.  If one of them happens to be allocated
 ;; on the stack, reload will stick to movqi insn and generate wrong
-;; displacement addressing because of the generic m alternatives.  
-;; With the movqi_reg_reg being specified before movqi it will be initially 
-;; picked to load/store regs.  If the regs regs are on the stack reload will
-;; try other insns and not stick to movqi_reg_reg.
+;; displacement addressing because of the generic m alternatives.
+;; With the movqi_reg_reg being specified before movqi it will be initially
+;; picked to load/store regs.  If the regs regs are on the stack reload
+;; try other insns and not stick to movqi_reg_reg, unless there were spilled
+;; pseudos in which case 'm' constraints pertain.
 ;; The same applies to the movhi variants.
 ;;
 ;; Notice, that T bit is not allowed as a mov src operand here.  This is to
@@ -6849,11 +6850,14 @@
 ;; reloading MAC subregs otherwise.  For that probably special patterns
 ;; would be required.
 (define_insn "*mov<mode>_reg_reg"
-  [(set (match_operand:QIHI 0 "arith_reg_dest" "=r")
-	(match_operand:QIHI 1 "register_operand" "r"))]
+  [(set (match_operand:QIHI 0 "arith_reg_dest" "=r,m,*z")
+	(match_operand:QIHI 1 "register_operand" "r,*z,m"))]
   "TARGET_SH1 && !t_reg_operand (operands[1], VOIDmode)"
-  "mov	%1,%0"
-  [(set_attr "type" "move")])
+  "@
+    mov		%1,%0
+    mov.<bw>	%1,%0
+    mov.<bw>	%1,%0"
+  [(set_attr "type" "move,store,load")])
 
 ;; FIXME: The non-SH2A and SH2A variants should be combined by adding
 ;; "enabled" attribute as it is done in other targets.
@@ -12073,10 +12077,10 @@
 
 ;; FMA (fused multiply-add) patterns
 (define_expand "fmasf4"
-  [(set (match_operand:SF 0 "fp_arith_reg_operand" "")
-	(fma:SF (match_operand:SF 1 "fp_arith_reg_operand" "")
-		(match_operand:SF 2 "fp_arith_reg_operand" "")
-		(match_operand:SF 3 "fp_arith_reg_operand" "")))]
+  [(set (match_operand:SF 0 "fp_arith_reg_operand")
+	(fma:SF (match_operand:SF 1 "fp_arith_reg_operand")
+		(match_operand:SF 2 "fp_arith_reg_operand")
+		(match_operand:SF 3 "fp_arith_reg_operand")))]
   "TARGET_SH2E || TARGET_SHMEDIA_FPU"
 {
   if (TARGET_SH2E)
@@ -12107,6 +12111,43 @@
   "fmac.s %1, %2, %0"
   [(set_attr "type" "fparith_media")])
 
+;; For some cases such as 'a * b + a' the FMA pattern is not generated by
+;; previous transformations.  If FMA is generally allowed, let the combine
+;; pass utilize it.
+(define_insn_and_split "*fmasf4"
+  [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+	(plus:SF (mult:SF (match_operand:SF 1 "fp_arith_reg_operand" "%w")
+			  (match_operand:SF 2 "fp_arith_reg_operand" "f"))
+		 (match_operand:SF 3 "arith_reg_operand" "0")))
+   (use (match_operand:PSI 4 "fpscr_operand"))]
+  "TARGET_SH2E && flag_fp_contract_mode != FP_CONTRACT_OFF"
+  "fmac	%1,%2,%0"
+  "&& can_create_pseudo_p ()"
+  [(parallel [(set (match_dup 0)
+		   (fma:SF (match_dup 1) (match_dup 2) (match_dup 3)))
+	      (use (match_dup 4))])]
+{
+  /* Change 'b * a + a' into 'a * b + a'.
+     This is better for register allocation.  */
+  if (REGNO (operands[2]) == REGNO (operands[3]))
+    {
+      rtx tmp = operands[1];
+      operands[1] = operands[2];
+      operands[2] = tmp;
+    }
+}
+  [(set_attr "type" "fp")
+   (set_attr "fp_mode" "single")])
+
+(define_insn "*fmasf4_media"
+  [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+	(plus:SF (mult:SF (match_operand:SF 1 "fp_arith_reg_operand" "%f")
+			  (match_operand:SF 2 "fp_arith_reg_operand" "f"))
+		 (match_operand:SF 3 "fp_arith_reg_operand" "0")))]
+  "TARGET_SHMEDIA_FPU && flag_fp_contract_mode != FP_CONTRACT_OFF"
+  "fmac.s %1, %2, %0"
+  [(set_attr "type" "fparith_media")])
+
 (define_expand "divsf3"
   [(set (match_operand:SF 0 "arith_reg_operand" "")
 	(div:SF (match_operand:SF 1 "arith_reg_operand" "")
diff -Naur gcc-4.8.1.orig/gcc/config/sparc/sparc.c gcc-4.8.1/gcc/config/sparc/sparc.c
--- gcc-4.8.1.orig/gcc/config/sparc/sparc.c	2013-04-15 08:31:12.000000000 +0000
+++ gcc-4.8.1/gcc/config/sparc/sparc.c	2013-10-01 16:06:43.944554286 +0000
@@ -11174,6 +11174,11 @@
       /* Total Store Ordering: all memory transactions with store semantics
 	 are followed by an implied StoreStore.  */
       implied |= StoreStore;
+
+      /* If we're not looking for a raw barrer (before+after), then atomic
+	 operations get the benefit of being both load and store.  */
+      if (load_store == 3 && before_after == 1)
+	implied |= StoreLoad;
       /* FALLTHRU */
 
     case SMM_PSO:
diff -Naur gcc-4.8.1.orig/gcc/config.gcc gcc-4.8.1/gcc/config.gcc
--- gcc-4.8.1.orig/gcc/config.gcc	2013-03-13 09:47:41.000000000 +0000
+++ gcc-4.8.1/gcc/config.gcc	2013-10-01 16:06:43.948554286 +0000
@@ -452,6 +452,7 @@
 	cpu_type=s390
 	need_64bit_hwint=yes
 	extra_options="${extra_options} fused-madd.opt"
+	extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
 	;;
 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
 sh[123456789lbe]*-*-* | sh-*-*)
@@ -734,6 +735,7 @@
     yes) thread_file='rtems' ;;
   esac
   extra_options="${extra_options} rtems.opt"
+  default_use_cxa_atexit=yes
   use_gcc_stdint=wrap
   ;;
 *-*-uclinux*)
@@ -2066,20 +2068,24 @@
 	extra_options="${extra_options} rs6000/sysv4.opt"
 	tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
 	;;
-powerpc-*-linux* | powerpc64-*-linux*)
+powerpc*-*-linux*)
 	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
 	extra_options="${extra_options} rs6000/sysv4.opt"
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+	case ${target} in
+	    powerpc*le-*-*)
+	    tm_file="${tm_file} rs6000/sysv4le.h" ;;
+	esac
 	maybe_biarch=yes
 	case ${target} in
-	    powerpc64-*-linux*spe* | powerpc64-*-linux*paired*)
+	    powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
 	    	echo "*** Configuration ${target} not supported" 1>&2
 		exit 1
 		;;
-	    powerpc-*-linux*spe* | powerpc-*-linux*paired*)
+	    powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
 		maybe_biarch=
 		;;
-	    powerpc64-*-linux*)
+	    powerpc64*-*-linux*)
 	    	test x$with_cpu != x || cpu_is_64bit=yes
 		maybe_biarch=always
 		;;
diff -Naur gcc-4.8.1.orig/gcc/config.in gcc-4.8.1/gcc/config.in
--- gcc-4.8.1.orig/gcc/config.in	2013-05-31 09:09:26.000000000 +0000
+++ gcc-4.8.1/gcc/config.in	2013-10-01 16:06:43.948554286 +0000
@@ -1228,7 +1228,7 @@
 #endif
 
 
-/* Define if your AIX linker supports a large TOC. */
+/* Define if your PowerPC64 linker supports a large TOC. */
 #ifndef USED_FOR_TARGET
 #undef HAVE_LD_LARGE_TOC
 #endif
diff -Naur gcc-4.8.1.orig/gcc/configure gcc-4.8.1/gcc/configure
--- gcc-4.8.1.orig/gcc/configure	2013-05-08 11:36:36.000000000 +0000
+++ gcc-4.8.1/gcc/configure	2013-10-01 16:06:55.812553945 +0000
@@ -11703,6 +11703,7 @@
 if test x$build != x$host || test "x$coverage_flags" != x
 then
     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+    BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
 fi
 
@@ -23281,33 +23282,7 @@
 	tls_first_major=0
 	tls_first_minor=0
 	;;
-  powerpc-*-*)
-    conftest_s='
-	.section ".tdata","awT",@progbits
-	.align 2
-ld0:	.space 4
-ld1:	.space 4
-x1:	.space 4
-x2:	.space 4
-x3:	.space 4
-	.text
-	addi 3,31,ld0@got@tlsgd
-	bl __tls_get_addr
-	addi 3,31,x1@got@tlsld
-	bl __tls_get_addr
-	addi 9,3,x1@dtprel
-	addis 9,3,x2@dtprel@ha
-	addi 9,9,x2@dtprel@l
-	lwz 9,x3@got@tprel(31)
-	add 9,9,x@tls
-	addi 9,2,x1@tprel
-	addis 9,2,x2@tprel@ha
-	addi 9,9,x2@tprel@l'
-	tls_first_major=2
-	tls_first_minor=14
-	tls_as_opt="-a32 --fatal-warnings"
-	;;
-  powerpc64-*-*)
+  powerpc64*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 	.align 3
@@ -23341,6 +23316,32 @@
 	tls_first_minor=14
 	tls_as_opt="-a64 --fatal-warnings"
 	;;
+  powerpc*-*-*)
+    conftest_s='
+	.section ".tdata","awT",@progbits
+	.align 2
+ld0:	.space 4
+ld1:	.space 4
+x1:	.space 4
+x2:	.space 4
+x3:	.space 4
+	.text
+	addi 3,31,ld0@got@tlsgd
+	bl __tls_get_addr
+	addi 3,31,x1@got@tlsld
+	bl __tls_get_addr
+	addi 9,3,x1@dtprel
+	addis 9,3,x2@dtprel@ha
+	addi 9,9,x2@dtprel@l
+	lwz 9,x3@got@tprel(31)
+	add 9,9,x@tls
+	addi 9,2,x1@tprel
+	addis 9,2,x2@tprel@ha
+	addi 9,9,x2@tprel@l'
+	tls_first_major=2
+	tls_first_minor=14
+	tls_as_opt="-a32 --fatal-warnings"
+	;;
   s390-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
@@ -26472,6 +26473,9 @@
 case "$target:$tm_file" in
   powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
   case "$target" in
+     *le-*-linux*)
+     emul_name="-melf64lppc"
+      ;;
      *-*-linux*)
      emul_name="-melf64ppc"
       ;;
diff -Naur gcc-4.8.1.orig/gcc/configure.ac gcc-4.8.1/gcc/configure.ac
--- gcc-4.8.1.orig/gcc/configure.ac	2013-05-08 11:36:36.000000000 +0000
+++ gcc-4.8.1/gcc/configure.ac	2013-10-01 16:06:55.816553945 +0000
@@ -1887,6 +1887,7 @@
 if test x$build != x$host || test "x$coverage_flags" != x
 then
     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+    BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
 fi
 
@@ -3044,33 +3045,7 @@
 	tls_first_major=0
 	tls_first_minor=0
 	;;
-  powerpc-*-*)
-    conftest_s='
-	.section ".tdata","awT",@progbits
-	.align 2
-ld0:	.space 4
-ld1:	.space 4
-x1:	.space 4
-x2:	.space 4
-x3:	.space 4
-	.text
-	addi 3,31,ld0@got@tlsgd
-	bl __tls_get_addr
-	addi 3,31,x1@got@tlsld
-	bl __tls_get_addr
-	addi 9,3,x1@dtprel
-	addis 9,3,x2@dtprel@ha
-	addi 9,9,x2@dtprel@l
-	lwz 9,x3@got@tprel(31)
-	add 9,9,x@tls
-	addi 9,2,x1@tprel
-	addis 9,2,x2@tprel@ha
-	addi 9,9,x2@tprel@l'
-	tls_first_major=2
-	tls_first_minor=14
-	tls_as_opt="-a32 --fatal-warnings"
-	;;
-  powerpc64-*-*)
+  powerpc64*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 	.align 3
@@ -3104,6 +3079,32 @@
 	tls_first_minor=14
 	tls_as_opt="-a64 --fatal-warnings"
 	;;
+  powerpc*-*-*)
+    conftest_s='
+	.section ".tdata","awT",@progbits
+	.align 2
+ld0:	.space 4
+ld1:	.space 4
+x1:	.space 4
+x2:	.space 4
+x3:	.space 4
+	.text
+	addi 3,31,ld0@got@tlsgd
+	bl __tls_get_addr
+	addi 3,31,x1@got@tlsld
+	bl __tls_get_addr
+	addi 9,3,x1@dtprel
+	addis 9,3,x2@dtprel@ha
+	addi 9,9,x2@dtprel@l
+	lwz 9,x3@got@tprel(31)
+	add 9,9,x@tls
+	addi 9,2,x1@tprel
+	addis 9,2,x2@tprel@ha
+	addi 9,9,x2@tprel@l'
+	tls_first_major=2
+	tls_first_minor=14
+	tls_as_opt="-a32 --fatal-warnings"
+	;;
   s390-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
@@ -4507,6 +4508,9 @@
 case "$target:$tm_file" in
   powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
   case "$target" in
+     *le-*-linux*)
+     emul_name="-melf64lppc"
+      ;;
      *-*-linux*)
      emul_name="-melf64ppc"
       ;;
@@ -4611,7 +4615,7 @@
     ])
     if test x"$gcc_cv_ld_large_toc" = xyes; then
       AC_DEFINE(HAVE_LD_LARGE_TOC, 1,
-    [Define if your AIX linker supports a large TOC.])
+    [Define if your PowerPC64 linker supports a large TOC.])
     fi
     ;;
 esac
diff -Naur gcc-4.8.1.orig/gcc/cp/call.c gcc-4.8.1/gcc/cp/call.c
--- gcc-4.8.1.orig/gcc/cp/call.c	2013-05-14 12:51:17.000000000 +0000
+++ gcc-4.8.1/gcc/cp/call.c	2013-10-01 16:06:43.952554286 +0000
@@ -6195,8 +6195,8 @@
   if (convs->check_narrowing)
     check_narrowing (totype, expr);
 
-  if (issue_conversion_warnings && (complain & tf_warning))
-    expr = convert_and_check (totype, expr);
+  if (issue_conversion_warnings)
+    expr = cp_convert_and_check (totype, expr, complain);
   else
     expr = convert (totype, expr);
 
@@ -6390,7 +6390,7 @@
   push_defarg_context (fn);
 
   if (fn && DECL_TEMPLATE_INFO (fn))
-    arg = tsubst_default_argument (fn, type, arg);
+    arg = tsubst_default_argument (fn, type, arg, complain);
 
   /* Due to:
 
diff -Naur gcc-4.8.1.orig/gcc/cp/class.c gcc-4.8.1/gcc/cp/class.c
--- gcc-4.8.1.orig/gcc/cp/class.c	2013-04-01 19:05:21.000000000 +0000
+++ gcc-4.8.1/gcc/cp/class.c	2013-10-01 16:06:43.952554286 +0000
@@ -4574,15 +4574,20 @@
 static void
 deduce_noexcept_on_destructors (tree t)
 {
-  tree fns;
-
   /* If for some reason we don't have a CLASSTYPE_METHOD_VEC, we bail
      out now.  */
   if (!CLASSTYPE_METHOD_VEC (t))
     return;
 
-  for (fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns))
+  bool saved_nontrivial_dtor = TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t);
+
+  /* Avoid early exit from synthesized_method_walk (c++/57645).  */
+  TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = true;
+
+  for (tree fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns))
     deduce_noexcept_on_destructor (OVL_CURRENT (fns));
+
+  TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = saved_nontrivial_dtor;
 }
 
 /* Subroutine of set_one_vmethod_tm_attributes.  Search base classes
@@ -4833,6 +4838,44 @@
   return false;
 }
 
+/* TYPE is being used as a virtual base, and has a non-trivial move
+   assignment.  Return true if this is due to there being a user-provided
+   move assignment in TYPE or one of its subobjects; if there isn't, then
+   multiple move assignment can't cause any harm.  */
+
+bool
+vbase_has_user_provided_move_assign (tree type)
+{
+  /* Does the type itself have a user-provided move assignment operator?  */
+  for (tree fns
+	 = lookup_fnfields_slot_nolazy (type, ansi_assopname (NOP_EXPR));
+       fns; fns = OVL_NEXT (fns))
+    {
+      tree fn = OVL_CURRENT (fns);
+      if (move_fn_p (fn) && user_provided_p (fn))
+	return true;
+    }
+
+  /* Do any of its bases?  */
+  tree binfo = TYPE_BINFO (type);
+  tree base_binfo;
+  for (int i = 0; BINFO_BASE_ITERATE (binfo, i, base_binfo); ++i)
+    if (vbase_has_user_provided_move_assign (BINFO_TYPE (base_binfo)))
+      return true;
+
+  /* Or non-static data members?  */
+  for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
+    {
+      if (TREE_CODE (field) == FIELD_DECL
+	  && CLASS_TYPE_P (TREE_TYPE (field))
+	  && vbase_has_user_provided_move_assign (TREE_TYPE (field)))
+	return true;
+    }
+
+  /* Seems not.  */
+  return false;
+}
+
 /* If default-initialization leaves part of TYPE uninitialized, returns
    a DECL for the field or TYPE itself (DR 253).  */
 
@@ -7465,7 +7508,7 @@
      dependent on overload resolution.  */
   gcc_assert (TREE_CODE (rhs) == ADDR_EXPR
 	      || TREE_CODE (rhs) == COMPONENT_REF
-	      || really_overloaded_fn (rhs)
+	      || is_overloaded_fn (rhs)
 	      || (flag_ms_extensions && TREE_CODE (rhs) == FUNCTION_DECL));
 
   /* This should really only be used when attempting to distinguish
diff -Naur gcc-4.8.1.orig/gcc/cp/cp-tree.h gcc-4.8.1/gcc/cp/cp-tree.h
--- gcc-4.8.1.orig/gcc/cp/cp-tree.h	2013-04-24 15:42:20.000000000 +0000
+++ gcc-4.8.1/gcc/cp/cp-tree.h	2013-10-01 16:06:43.956554286 +0000
@@ -1211,17 +1211,20 @@
 /* The _DECL for this _TYPE.  */
 #define TYPE_MAIN_DECL(NODE) (TYPE_STUB_DECL (TYPE_MAIN_VARIANT (NODE)))
 
-/* Nonzero if T is a class (or struct or union) type.  Also nonzero
-   for template type parameters, typename types, and instantiated
-   template template parameters.  Keep these checks in ascending code
-   order.  */
-#define MAYBE_CLASS_TYPE_P(T)					\
+/* Nonzero if T is a type that could resolve to any kind of concrete type
+   at instantiation time.  */
+#define WILDCARD_TYPE_P(T)				\
   (TREE_CODE (T) == TEMPLATE_TYPE_PARM			\
    || TREE_CODE (T) == TYPENAME_TYPE			\
    || TREE_CODE (T) == TYPEOF_TYPE			\
    || TREE_CODE (T) == BOUND_TEMPLATE_TEMPLATE_PARM	\
-   || TREE_CODE (T) == DECLTYPE_TYPE			\
-   || CLASS_TYPE_P (T))
+   || TREE_CODE (T) == DECLTYPE_TYPE)
+
+/* Nonzero if T is a class (or struct or union) type.  Also nonzero
+   for template type parameters, typename types, and instantiated
+   template template parameters.  Keep these checks in ascending code
+   order.  */
+#define MAYBE_CLASS_TYPE_P(T) (WILDCARD_TYPE_P (T) || CLASS_TYPE_P (T))
 
 /* Set CLASS_TYPE_P for T to VAL.  T must be a class, struct, or
    union type.  */
@@ -5057,6 +5060,7 @@
 extern bool user_provided_p			(tree);
 extern bool type_has_user_provided_constructor  (tree);
 extern bool type_has_user_provided_default_constructor (tree);
+extern bool vbase_has_user_provided_move_assign (tree);
 extern tree default_init_uninitialized_part (tree);
 extern bool trivial_default_constructor_is_constexpr (tree);
 extern bool type_has_constexpr_default_constructor (tree);
@@ -5177,7 +5181,7 @@
 extern void revert_static_member_fn		(tree);
 extern void fixup_anonymous_aggr		(tree);
 extern tree compute_array_index_type		(tree, tree, tsubst_flags_t);
-extern tree check_default_argument		(tree, tree);
+extern tree check_default_argument		(tree, tree, tsubst_flags_t);
 typedef int (*walk_namespaces_fn)		(tree, void *);
 extern int walk_namespaces			(walk_namespaces_fn,
 						 void *);
@@ -5452,7 +5456,8 @@
 extern tree most_specialized_instantiation	(tree);
 extern void print_candidates			(tree);
 extern void instantiate_pending_templates	(int);
-extern tree tsubst_default_argument		(tree, tree, tree);
+extern tree tsubst_default_argument		(tree, tree, tree,
+						 tsubst_flags_t);
 extern tree tsubst (tree, tree, tsubst_flags_t, tree);
 extern tree tsubst_copy_and_build		(tree, tree, tsubst_flags_t,
 						 tree, bool, bool);
@@ -5585,6 +5590,7 @@
 extern void stop_deferring_access_checks	(void);
 extern void pop_deferring_access_checks		(void);
 extern vec<deferred_access_check, va_gc> *get_deferred_access_checks (void);
+extern void reopen_deferring_access_checks (vec<deferred_access_check, va_gc> *);
 extern void pop_to_parent_deferring_access_checks (void);
 extern bool perform_access_checks (vec<deferred_access_check, va_gc> *,
 				   tsubst_flags_t);
diff -Naur gcc-4.8.1.orig/gcc/cp/cvt.c gcc-4.8.1/gcc/cp/cvt.c
--- gcc-4.8.1.orig/gcc/cp/cvt.c	2013-02-20 09:02:35.000000000 +0000
+++ gcc-4.8.1/gcc/cp/cvt.c	2013-10-01 16:06:43.956554286 +0000
@@ -620,6 +620,9 @@
 
   if (TREE_TYPE (expr) == type)
     return expr;
+
+  if (TREE_CODE (expr) == SIZEOF_EXPR)
+    expr = maybe_constant_value (expr);
   
   result = cp_convert (type, expr, complain);
 
@@ -1580,17 +1583,6 @@
       if (DECL_NONCONVERTING_P (cand))
 	continue;
 
-      if (TREE_CODE (cand) == TEMPLATE_DECL)
-	{
-	  if (complain)
-	    {
-	      error ("ambiguous default type conversion from %qT",
-		     basetype);
-	      error ("  candidate conversions include %qD", cand);
-	    }
-	  return error_mark_node;
-	}
-
       candidate = non_reference (TREE_TYPE (TREE_TYPE (cand)));
 
       switch (TREE_CODE (candidate))
@@ -1624,11 +1616,23 @@
 	  break;
 
 	default:
+	  /* A wildcard could be instantiated to match any desired
+	     type, but we can't deduce the template argument.  */
+	  if (WILDCARD_TYPE_P (candidate))
+	    win = true;
 	  break;
 	}
 
       if (win)
 	{
+	  if (TREE_CODE (cand) == TEMPLATE_DECL)
+	    {
+	      if (complain)
+		error ("default type conversion can't deduce template"
+		       " argument for %qD", cand);
+	      return error_mark_node;
+	    }
+
 	  if (winner)
 	    {
 	      if (complain)
diff -Naur gcc-4.8.1.orig/gcc/cp/decl.c gcc-4.8.1/gcc/cp/decl.c
--- gcc-4.8.1.orig/gcc/cp/decl.c	2013-05-16 15:09:07.000000000 +0000
+++ gcc-4.8.1/gcc/cp/decl.c	2013-10-01 16:06:43.956554286 +0000
@@ -10878,7 +10878,7 @@
    DECL, if there is no DECL available.  */
 
 tree
-check_default_argument (tree decl, tree arg)
+check_default_argument (tree decl, tree arg, tsubst_flags_t complain)
 {
   tree var;
   tree decl_type;
@@ -10910,13 +10910,14 @@
      A default argument expression is implicitly converted to the
      parameter type.  */
   ++cp_unevaluated_operand;
-  perform_implicit_conversion_flags (decl_type, arg, tf_warning_or_error,
+  perform_implicit_conversion_flags (decl_type, arg, complain,
 				     LOOKUP_IMPLICIT);
   --cp_unevaluated_operand;
 
   if (warn_zero_as_null_pointer_constant
       && TYPE_PTR_OR_PTRMEM_P (decl_type)
       && null_ptr_cst_p (arg)
+      && (complain & tf_warning)
       && maybe_warn_zero_as_null_pointer_constant (arg, input_location))
     return nullptr_node;
 
@@ -10930,10 +10931,14 @@
   var = cp_walk_tree_without_duplicates (&arg, local_variable_p_walkfn, NULL);
   if (var)
     {
-      if (DECL_NAME (var) == this_identifier)
-	permerror (input_location, "default argument %qE uses %qD", arg, var);
-      else
-	error ("default argument %qE uses local variable %qD", arg, var);
+      if (complain & tf_warning_or_error)
+	{
+	  if (DECL_NAME (var) == this_identifier)
+	    permerror (input_location, "default argument %qE uses %qD",
+		       arg, var);
+	  else
+	    error ("default argument %qE uses local variable %qD", arg, var);
+	}
       return error_mark_node;
     }
 
@@ -11084,7 +11089,7 @@
 	  if (any_error)
 	    init = NULL_TREE;
 	  else if (init && !processing_template_decl)
-	    init = check_default_argument (decl, init);
+	    init = check_default_argument (decl, init, tf_warning_or_error);
 	}
 
       DECL_CHAIN (decl) = decls;
diff -Naur gcc-4.8.1.orig/gcc/cp/init.c gcc-4.8.1/gcc/cp/init.c
--- gcc-4.8.1.orig/gcc/cp/init.c	2013-04-25 16:25:04.000000000 +0000
+++ gcc-4.8.1/gcc/cp/init.c	2013-10-01 16:06:43.956554286 +0000
@@ -3524,6 +3524,8 @@
 
       /* Clear out INIT so that we don't get confused below.  */
       init = NULL_TREE;
+      /* Any elements without explicit initializers get {}.  */
+      explicit_value_init_p = true;
     }
   else if (from_array)
     {
@@ -4062,6 +4064,7 @@
       tree cookie_addr;
       tree size_ptr_type = build_pointer_type (sizetype);
 
+      base = mark_rvalue_use (base);
       if (TREE_SIDE_EFFECTS (base))
 	{
 	  base_init = get_target_expr (base);
diff -Naur gcc-4.8.1.orig/gcc/cp/method.c gcc-4.8.1/gcc/cp/method.c
--- gcc-4.8.1.orig/gcc/cp/method.c	2013-02-12 20:47:15.000000000 +0000
+++ gcc-4.8.1/gcc/cp/method.c	2013-10-01 16:06:43.956554286 +0000
@@ -1340,7 +1340,8 @@
       if (diag && assign_p && move_p
 	  && BINFO_VIRTUAL_P (base_binfo)
 	  && rval && TREE_CODE (rval) == FUNCTION_DECL
-	  && move_fn_p (rval) && !trivial_fn_p (rval))
+	  && move_fn_p (rval) && !trivial_fn_p (rval)
+	  && vbase_has_user_provided_move_assign (basetype))
 	warning (OPT_Wvirtual_move_assign,
 		 "defaulted move assignment for %qT calls a non-trivial "
 		 "move assignment operator for virtual base %qT",
diff -Naur gcc-4.8.1.orig/gcc/cp/name-lookup.c gcc-4.8.1/gcc/cp/name-lookup.c
--- gcc-4.8.1.orig/gcc/cp/name-lookup.c	2013-02-27 18:13:24.000000000 +0000
+++ gcc-4.8.1/gcc/cp/name-lookup.c	2013-10-01 16:06:43.956554286 +0000
@@ -3015,8 +3015,10 @@
   if (name == error_mark_node)
     return false;
 
-  /* Check for invalid member names.  */
-  gcc_assert (TYPE_BEING_DEFINED (current_class_type));
+  /* Check for invalid member names.  But don't worry about a default
+     argument-scope lambda being pushed after the class is complete.  */
+  gcc_assert (TYPE_BEING_DEFINED (current_class_type)
+	      || LAMBDA_TYPE_P (TREE_TYPE (decl)));
   /* Check that we're pushing into the right binding level.  */
   gcc_assert (current_class_type == class_binding_level->this_entity);
 
diff -Naur gcc-4.8.1.orig/gcc/cp/parser.c gcc-4.8.1/gcc/cp/parser.c
--- gcc-4.8.1.orig/gcc/cp/parser.c	2013-05-14 20:37:48.000000000 +0000
+++ gcc-4.8.1/gcc/cp/parser.c	2013-10-01 16:06:43.960554286 +0000
@@ -5438,11 +5438,18 @@
 	/* Restore the old message.  */
 	parser->type_definition_forbidden_message = saved_message;
 
+	bool saved_greater_than_is_operator_p
+	  = parser->greater_than_is_operator_p;
+	parser->greater_than_is_operator_p = true;
+
 	/* And the expression which is being cast.  */
 	cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN);
 	expression = cp_parser_expression (parser, /*cast_p=*/true, & idk);
 	cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN);
 
+	parser->greater_than_is_operator_p
+	  = saved_greater_than_is_operator_p;
+
 	/* Only type conversions to integral or enumeration types
 	   can be used in constant-expressions.  */
 	if (!cast_valid_in_integral_constant_expression_p (type)
@@ -9595,10 +9602,7 @@
 	range_expr = error_mark_node;
       stmt = begin_range_for_stmt (scope, init);
       finish_range_for_decl (stmt, range_decl, range_expr);
-      if (range_expr != error_mark_node
-	  && !type_dependent_expression_p (range_expr)
-	  /* The length of an array might be dependent.  */
-	  && COMPLETE_TYPE_P (complete_type (TREE_TYPE (range_expr)))
+      if (!type_dependent_expression_p (range_expr)
 	  /* do_auto_deduction doesn't mess with template init-lists.  */
 	  && !BRACE_ENCLOSED_INITIALIZER_P (range_expr))
 	do_range_for_auto_deduction (range_decl, range_expr);
@@ -16982,6 +16986,11 @@
 {
   cp_ref_qualifier ref_qual = REF_QUAL_NONE;
   cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+  /* Don't try to parse bitwise '&' as a ref-qualifier (c++/57532).  */
+  if (cxx_dialect < cxx11 && cp_parser_parsing_tentatively (parser))
+    return ref_qual;
+
   switch (token->type)
     {
     case CPP_AND:
@@ -22557,7 +22566,8 @@
       /* In a non-template class, check conversions now.  In a template,
 	 we'll wait and instantiate these as needed.  */
       if (TREE_CODE (decl) == PARM_DECL)
-	parsed_arg = check_default_argument (parmtype, parsed_arg);
+	parsed_arg = check_default_argument (parmtype, parsed_arg,
+					     tf_warning_or_error);
       else
 	{
 	  int flags = LOOKUP_IMPLICIT;
diff -Naur gcc-4.8.1.orig/gcc/cp/pt.c gcc-4.8.1/gcc/cp/pt.c
--- gcc-4.8.1.orig/gcc/cp/pt.c	2013-05-24 13:25:44.000000000 +0000
+++ gcc-4.8.1/gcc/cp/pt.c	2013-10-01 16:06:43.964554286 +0000
@@ -138,6 +138,7 @@
 					     tree);
 static int type_unification_real (tree, tree, tree, const tree *,
 				  unsigned int, int, unification_kind_t, int,
+				  vec<deferred_access_check, va_gc> **,
 				  bool);
 static void note_template_header (int);
 static tree convert_nontype_argument_function (tree, tree);
@@ -183,7 +184,7 @@
 					   tree, tree);
 static bool template_template_parm_bindings_ok_p (tree, tree);
 static int template_args_equal (tree, tree);
-static void tsubst_default_arguments (tree);
+static void tsubst_default_arguments (tree, tsubst_flags_t);
 static tree for_each_template_parm_r (tree *, int *, void *);
 static tree copy_default_args_to_explicit_spec_1 (tree, tree);
 static void copy_default_args_to_explicit_spec (tree);
@@ -5612,6 +5613,10 @@
 	  else
 	    return NULL_TREE;
 	}
+
+      /* Avoid typedef problems.  */
+      if (TREE_TYPE (expr) != type)
+	expr = fold_convert (type, expr);
     }
   /* [temp.arg.nontype]/5, bullet 2
 
@@ -9859,7 +9864,7 @@
    FN), which has the indicated TYPE.  */
 
 tree
-tsubst_default_argument (tree fn, tree type, tree arg)
+tsubst_default_argument (tree fn, tree type, tree arg, tsubst_flags_t complain)
 {
   tree saved_class_ptr = NULL_TREE;
   tree saved_class_ref = NULL_TREE;
@@ -9899,7 +9904,7 @@
      stack.  */
   ++function_depth;
   arg = tsubst_expr (arg, DECL_TI_ARGS (fn),
-		     tf_warning_or_error, NULL_TREE,
+		     complain, NULL_TREE,
 		     /*integral_constant_expression_p=*/false);
   --function_depth;
   pop_deferring_access_checks();
@@ -9911,12 +9916,13 @@
       cp_function_chain->x_current_class_ref = saved_class_ref;
     }
 
-  if (errorcount+sorrycount > errs)
+  if (errorcount+sorrycount > errs
+      && (complain & tf_warning_or_error))
     inform (input_location,
 	    "  when instantiating default argument for call to %D", fn);
 
   /* Make sure the default argument is reasonable.  */
-  arg = check_default_argument (type, arg);
+  arg = check_default_argument (type, arg, complain);
 
   pop_access_scope (fn);
 
@@ -9926,7 +9932,7 @@
 /* Substitute into all the default arguments for FN.  */
 
 static void
-tsubst_default_arguments (tree fn)
+tsubst_default_arguments (tree fn, tsubst_flags_t complain)
 {
   tree arg;
   tree tmpl_args;
@@ -9947,7 +9953,8 @@
     if (TREE_PURPOSE (arg))
       TREE_PURPOSE (arg) = tsubst_default_argument (fn,
 						    TREE_VALUE (arg),
-						    TREE_PURPOSE (arg));
+						    TREE_PURPOSE (arg),
+						    complain);
 }
 
 /* Substitute the ARGS into the T, which is a _DECL.  Return the
@@ -10298,7 +10305,7 @@
 	    if (!member
 		&& !PRIMARY_TEMPLATE_P (gen_tmpl)
 		&& !uses_template_parms (argvec))
-	      tsubst_default_arguments (r);
+	      tsubst_default_arguments (r, complain);
 	  }
 	else
 	  DECL_TEMPLATE_INFO (r) = NULL_TREE;
@@ -12507,6 +12514,9 @@
     case TYPE_DECL:
       return tsubst (t, args, complain, in_decl);
 
+    case USING_DECL:
+      t = DECL_NAME (t);
+      /* Fall through.  */
     case IDENTIFIER_NODE:
       if (IDENTIFIER_TYPENAME_P (t))
 	{
@@ -14974,7 +14984,6 @@
     return error_mark_node;
   tinst = build_tree_list (fn, NULL_TREE);
   ++deduction_depth;
-  push_deferring_access_checks (dk_deferred);
 
   gcc_assert (TREE_CODE (fn) == TEMPLATE_DECL);
 
@@ -15066,8 +15075,13 @@
 	}
       processing_template_decl += incomplete;
       input_location = DECL_SOURCE_LOCATION (fn);
+      /* Ignore any access checks; we'll see them again in
+	 instantiate_template and they might have the wrong
+	 access path at this point.  */
+      push_deferring_access_checks (dk_deferred);
       fntype = tsubst (TREE_TYPE (fn), explicit_targs,
 		       complain | tf_partial, NULL_TREE);
+      pop_deferring_access_checks ();
       input_location = loc;
       processing_template_decl -= incomplete;
       pop_tinst_level ();
@@ -15075,12 +15089,6 @@
       if (fntype == error_mark_node)
 	goto fail;
 
-      /* Throw away these access checks; we'll see them again in
-	 instantiate_template and they might have the wrong
-	 access path at this point.  */
-      pop_deferring_access_checks ();
-      push_deferring_access_checks (dk_deferred);
-
       /* Place the explicitly specified arguments in TARGS.  */
       for (i = NUM_TMPL_ARGS (explicit_targs); i--;)
 	TREE_VEC_ELT (targs, i) = TREE_VEC_ELT (explicit_targs, i);
@@ -15106,9 +15114,15 @@
      callers must be ready to deal with unification failures in any
      event.  */
 
+  /* type_unification_real will pass back any access checks from default
+     template argument substitution.  */
+  vec<deferred_access_check, va_gc> *checks;
+  checks = NULL;
+
   ok = !type_unification_real (DECL_INNERMOST_TEMPLATE_PARMS (fn),
 			       targs, parms, args, nargs, /*subr=*/0,
-			       strict, flags, explain_p);
+			       strict, flags, &checks, explain_p);
+
   if (!ok)
     goto fail;
 
@@ -15155,16 +15169,23 @@
       excessive_deduction_depth = true;
       goto fail;
     }
+
+  /* Also collect access checks from the instantiation.  */
+  reopen_deferring_access_checks (checks);
+
   decl = instantiate_template (fn, targs, complain);
+
+  checks = get_deferred_access_checks ();
+  pop_deferring_access_checks ();
+
   pop_tinst_level ();
 
   if (decl == error_mark_node)
     goto fail;
 
-  /* Now perform any access checks encountered during deduction, such as
-     for default template arguments.  */
+  /* Now perform any access checks encountered during substitution.  */
   push_access_scope (decl);
-  ok = perform_deferred_access_checks (complain);
+  ok = perform_access_checks (checks, complain);
   pop_access_scope (decl);
   if (!ok)
     goto fail;
@@ -15193,7 +15214,6 @@
   r = decl;
 
  fail:
-  pop_deferring_access_checks ();
   --deduction_depth;
   if (excessive_deduction_depth)
     {
@@ -15454,7 +15474,10 @@
 
    If SUBR is 1, we're being called recursively (to unify the
    arguments of a function or method parameter of a function
-   template). */
+   template).
+
+   CHECKS is a pointer to a vector of access checks encountered while
+   substituting default template arguments.  */
 
 static int
 type_unification_real (tree tparms,
@@ -15465,6 +15488,7 @@
 		       int subr,
 		       unification_kind_t strict,
 		       int flags,
+		       vec<deferred_access_check, va_gc> **checks,
 		       bool explain_p)
 {
   tree parm, arg;
@@ -15604,6 +15628,7 @@
 	    {
 	      tree parm = TREE_VALUE (TREE_VEC_ELT (tparms, i));
 	      tree arg = TREE_PURPOSE (TREE_VEC_ELT (tparms, i));
+	      reopen_deferring_access_checks (*checks);
 	      location_t save_loc = input_location;
 	      if (DECL_P (parm))
 		input_location = DECL_SOURCE_LOCATION (parm);
@@ -15611,6 +15636,8 @@
 	      arg = convert_template_argument (parm, arg, targs, complain,
 					       i, NULL_TREE);
 	      input_location = save_loc;
+	      *checks = get_deferred_access_checks ();
+	      pop_deferring_access_checks ();
 	      if (arg == error_mark_node)
 		return 1;
 	      else
@@ -17078,7 +17105,7 @@
 
 	return type_unification_real (tparms, targs, TYPE_ARG_TYPES (parm),
 				      args, nargs, 1, DEDUCE_EXACT,
-				      LOOKUP_NORMAL, explain_p);
+				      LOOKUP_NORMAL, NULL, explain_p);
       }
 
     case OFFSET_TYPE:
@@ -19888,6 +19915,29 @@
       && VAR_HAD_UNKNOWN_BOUND (expression))
     return true;
 
+  /* An array of unknown bound depending on a variadic parameter, eg:
+
+     template<typename... Args>
+       void foo (Args... args)
+       {
+         int arr[] = { args... };
+       }
+
+     template<int... vals>
+       void bar ()
+       {
+         int arr[] = { vals... };
+       }
+
+     If the array has no length and has an initializer, it must be that
+     we couldn't determine its length in cp_complete_array_type because
+     it is dependent.  */
+  if (TREE_CODE (expression) == VAR_DECL
+      && TREE_CODE (TREE_TYPE (expression)) == ARRAY_TYPE
+      && !TYPE_DOMAIN (TREE_TYPE (expression))
+      && DECL_INITIAL (expression))
+   return true;
+
   if (TREE_TYPE (expression) == unknown_type_node)
     {
       if (TREE_CODE (expression) == ADDR_EXPR)
@@ -20077,7 +20127,7 @@
 any_type_dependent_elements_p (const_tree list)
 {
   for (; list; list = TREE_CHAIN (list))
-    if (value_dependent_expression_p (TREE_VALUE (list)))
+    if (type_dependent_expression_p (TREE_VALUE (list)))
       return true;
 
   return false;
@@ -20626,7 +20676,7 @@
     = build_tree_list (NULL_TREE, TYPE_NAME (auto_node));
   val = type_unification_real (tparms, targs, parms, args, 1, 0,
 			       DEDUCE_CALL, LOOKUP_NORMAL,
-			       /*explain_p=*/false);
+			       NULL, /*explain_p=*/false);
   if (val > 0)
     {
       if (processing_template_decl)
diff -Naur gcc-4.8.1.orig/gcc/cp/semantics.c gcc-4.8.1/gcc/cp/semantics.c
--- gcc-4.8.1.orig/gcc/cp/semantics.c	2013-05-14 12:51:17.000000000 +0000
+++ gcc-4.8.1/gcc/cp/semantics.c	2013-10-01 16:06:43.964554286 +0000
@@ -155,6 +155,17 @@
     }
 }
 
+/* Save the current deferred access states and start deferred access
+   checking, continuing the set of deferred checks in CHECKS.  */
+
+void
+reopen_deferring_access_checks (vec<deferred_access_check, va_gc> * checks)
+{
+  push_deferring_access_checks (dk_deferred);
+  if (!deferred_access_no_check)
+    deferred_access_stack->last().deferred_access_checks = checks;
+}
+
 /* Resume deferring access checks again after we stopped doing
    this previously.  */
 
@@ -5945,7 +5956,7 @@
       || TREE_CODE (t) == MODIFY_EXPR)
     {
       member = TREE_OPERAND (t, 0);
-      init = unshare_expr (TREE_OPERAND (t, 1));
+      init = break_out_target_exprs (TREE_OPERAND (t, 1));
     }
   else if (TREE_CODE (t) == CALL_EXPR)
     {
@@ -5953,7 +5964,7 @@
       /* We don't use build_cplus_new here because it complains about
 	 abstract bases.  Leaving the call unwrapped means that it has the
 	 wrong type, but cxx_eval_constant_expression doesn't care.  */
-      init = unshare_expr (t);
+      init = break_out_target_exprs (t);
     }
   else if (TREE_CODE (t) == DECL_EXPR)
     /* Declaring a temporary, don't add it to the CONSTRUCTOR.  */
@@ -6190,7 +6201,7 @@
       }
 
     case RETURN_EXPR:
-      return unshare_expr (TREE_OPERAND (body, 0));
+      return break_out_target_exprs (TREE_OPERAND (body, 0));
 
     case DECL_EXPR:
       if (TREE_CODE (DECL_EXPR_DECL (body)) == USING_DECL)
@@ -7635,11 +7646,6 @@
     {
       tree sub = op0;
       STRIP_NOPS (sub);
-      if (TREE_CODE (sub) == POINTER_PLUS_EXPR)
-	{
-	  sub = TREE_OPERAND (sub, 0);
-	  STRIP_NOPS (sub);
-	}
       if (TREE_CODE (sub) == ADDR_EXPR)
 	{
 	  /* We couldn't fold to a constant value.  Make sure it's not
@@ -7990,6 +7996,7 @@
     case UNGT_EXPR:
     case UNGE_EXPR:
     case UNEQ_EXPR:
+    case LTGT_EXPR:
     case RANGE_EXPR:
     case COMPLEX_EXPR:
       r = cxx_eval_binary_expression (call, t, allow_non_constant, addr,
@@ -8846,6 +8853,12 @@
 	}
       return false;
 
+    case OMP_ATOMIC:
+    case OMP_ATOMIC_READ:
+    case OMP_ATOMIC_CAPTURE_OLD:
+    case OMP_ATOMIC_CAPTURE_NEW:
+      return false;
+
     default:
       if (objc_is_property_ref (t))
 	return false;
@@ -9065,7 +9078,8 @@
 {
   tree type;
   if (type_dependent_expression_p (expr)
-      && !(TREE_TYPE (expr) && TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE))
+      && !(TREE_TYPE (expr) && TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE
+	   && !type_uses_auto (TREE_TYPE (expr))))
     {
       type = cxx_make_type (DECLTYPE_TYPE);
       DECLTYPE_TYPE_EXPR (type) = expr;
diff -Naur gcc-4.8.1.orig/gcc/cp/tree.c gcc-4.8.1/gcc/cp/tree.c
--- gcc-4.8.1.orig/gcc/cp/tree.c	2013-05-24 13:25:51.000000000 +0000
+++ gcc-4.8.1/gcc/cp/tree.c	2013-10-01 16:06:43.964554286 +0000
@@ -1220,6 +1220,8 @@
 	    result =
 	      build_method_type_directly (class_type, type,
 					  TREE_CHAIN (arg_types));
+	    result
+	      = build_ref_qualified_type (result, type_memfn_rqual (t));
 	  }
 	else
 	  {
diff -Naur gcc-4.8.1.orig/gcc/cp/typeck.c gcc-4.8.1/gcc/cp/typeck.c
--- gcc-4.8.1.orig/gcc/cp/typeck.c	2013-05-13 19:34:15.000000000 +0000
+++ gcc-4.8.1/gcc/cp/typeck.c	2013-10-01 16:06:43.968554286 +0000
@@ -8307,7 +8307,8 @@
      && TREE_CODE (retval) == VAR_DECL
      && DECL_CONTEXT (retval) == current_function_decl
      && ! TREE_STATIC (retval)
-     && ! DECL_ANON_UNION_VAR_P (retval)
+     /* And not a lambda or anonymous union proxy.  */
+     && !DECL_HAS_VALUE_EXPR_P (retval)
      && (DECL_ALIGN (retval) >= DECL_ALIGN (result))
      /* The cv-unqualified type of the returned value must be the
         same as the cv-unqualified return type of the
@@ -8352,7 +8353,8 @@
          Note that these conditions are similar to, but not as strict as,
 	 the conditions for the named return value optimization.  */
       if ((cxx_dialect != cxx98)
-          && (TREE_CODE (retval) == VAR_DECL
+          && ((TREE_CODE (retval) == VAR_DECL
+	       && !DECL_HAS_VALUE_EXPR_P (retval))
 	      || TREE_CODE (retval) == PARM_DECL)
 	  && DECL_CONTEXT (retval) == current_function_decl
 	  && !TREE_STATIC (retval)
diff -Naur gcc-4.8.1.orig/gcc/cp/typeck2.c gcc-4.8.1/gcc/cp/typeck2.c
--- gcc-4.8.1.orig/gcc/cp/typeck2.c	2013-04-11 16:05:02.000000000 +0000
+++ gcc-4.8.1/gcc/cp/typeck2.c	2013-10-01 16:06:43.964554286 +0000
@@ -262,7 +262,7 @@
      so that we can check again once it is completed. This makes sense
      only for objects for which we have a declaration or at least a
      name.  */
-  if (!COMPLETE_TYPE_P (type))
+  if (!COMPLETE_TYPE_P (type) && (complain & tf_error))
     {
       void **slot;
       struct pending_abstract_type *pat;
diff -Naur gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi gcc-4.8.1/gcc/doc/avr-mmcu.texi
--- gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi	2013-02-28 09:03:09.000000000 +0000
+++ gcc-4.8.1/gcc/doc/avr-mmcu.texi	2013-10-01 16:06:43.968554286 +0000
@@ -38,7 +38,7 @@
 
 @item avr5
 ``Enhanced'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{ata5790}, @code{ata5790n}, @code{ata5795}, @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega26hvg}, @code{atmega32}, @code{atmega32a}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega48hvf}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{atmega64m1}, @code{atmega64rfa2}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{at90can32}, @code{at90can64}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}.
+@*@var{mcu}@tie{}= @code{ata5790}, @code{ata5790n}, @code{ata5795}, @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega26hvg}, @code{atmega32}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega48hvf}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{atmega64rfa2}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{at90can32}, @code{at90can64}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}.
 
 @item avr51
 ``Enhanced'' devices with 128@tie{}KiB of program memory.
diff -Naur gcc-4.8.1.orig/gcc/doc/cpp.texi gcc-4.8.1/gcc/doc/cpp.texi
--- gcc-4.8.1.orig/gcc/doc/cpp.texi	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/doc/cpp.texi	2013-10-01 16:06:43.968554286 +0000
@@ -1926,11 +1926,9 @@
 This macro is defined when the C++ compiler is in use.  You can use
 @code{__cplusplus} to test whether a header is compiled by a C compiler
 or a C++ compiler.  This macro is similar to @code{__STDC_VERSION__}, in
-that it expands to a version number.  A fully conforming implementation
-of the 1998 C++ standard will define this macro to @code{199711L}.  The
-GNU C++ compiler is not yet fully conforming, so it uses @code{1}
-instead.  It is hoped to complete the implementation of standard C++
-in the near future.
+that it expands to a version number.  Depending on the language standard
+selected, the value of the macro is @code{199711L}, as mandated by the
+1998 C++ standard, or @code{201103L}, per the 2011 C++ standard.
 
 @item __OBJC__
 This macro is defined, with value 1, when the Objective-C compiler is in
diff -Naur gcc-4.8.1.orig/gcc/doc/extend.texi gcc-4.8.1/gcc/doc/extend.texi
--- gcc-4.8.1.orig/gcc/doc/extend.texi	2013-03-28 14:07:55.000000000 +0000
+++ gcc-4.8.1/gcc/doc/extend.texi	2013-10-01 16:06:43.968554286 +0000
@@ -7412,6 +7412,8 @@
 the byte at @code{*@var{ptr}}.  The byte is set to some implementation
 defined nonzero ``set'' value and the return value is @code{true} if and only
 if the previous contents were ``set''.
+It should be only used for operands of type @code{bool} or @code{char}. For 
+other types only part of the value may be set.
 
 All memory models are valid.
 
@@ -7421,6 +7423,10 @@
 
 This built-in function performs an atomic clear operation on
 @code{*@var{ptr}}.  After the operation, @code{*@var{ptr}} contains 0.
+It should be only used for operands of type @code{bool} or @code{char} and 
+in conjunction with @code{__atomic_test_and_set}.
+For other types it may only clear partially. If the type is not @code{bool}
+prefer using @code{__atomic_store}.
 
 The valid memory model variants are
 @code{__ATOMIC_RELAXED}, @code{__ATOMIC_SEQ_CST}, and
@@ -7492,18 +7498,20 @@
 Memory model must be @code{__ATOMIC_RELEASE} or stronger.
 @end table
 
-When a lock acquire fails it's required for good performance to abort
+When a lock acquire fails it is required for good performance to abort
 the transaction quickly. This can be done with a @code{_mm_pause}
 
 @smallexample
 #include <immintrin.h> // For _mm_pause
 
+int lockvar;
+
 /* Acquire lock with lock elision */
 while (__atomic_exchange_n(&lockvar, 1, __ATOMIC_ACQUIRE|__ATOMIC_HLE_ACQUIRE))
     _mm_pause(); /* Abort failed transaction */
 ...
 /* Free lock with lock elision */
-__atomic_clear(&lockvar, __ATOMIC_RELEASE|__ATOMIC_HLE_RELEASE);
+__atomic_store_n(&lockvar, 0, __ATOMIC_RELEASE|__ATOMIC_HLE_RELEASE);
 @end smallexample
 
 @node Object Size Checking
@@ -8786,6 +8794,7 @@
 * PowerPC Built-in Functions::
 * PowerPC AltiVec/VSX Built-in Functions::
 * RX Built-in Functions::
+* S/390 System z Built-in Functions::
 * SH Built-in Functions::
 * SPARC VIS Built-in Functions::
 * SPU Built-in Functions::
@@ -14026,6 +14035,120 @@
 Generates the @code{wait} machine instruction.
 @end deftypefn
 
+@node S/390 System z Built-in Functions
+@subsection S/390 System z Built-in Functions
+@deftypefn {Built-in Function} int __builtin_tbegin (void*)
+Generates the @code{tbegin} machine instruction starting a
+non-constraint hardware transaction.  If the parameter is non-NULL the
+memory area is used to store the transaction diagnostic buffer and
+will be passed as first operand to @code{tbegin}.  This buffer can be
+defined using the @code{struct __htm_tdb} C struct defined in
+@code{htmintrin.h} and must reside on a double-word boundary.  The
+second tbegin operand is set to @code{0xff0c}. This enables
+save/restore of all GPRs and disables aborts for FPR and AR
+manipulations inside the transaction body.  The condition code set by
+the tbegin instruction is returned as integer value.  The tbegin
+instruction by definition overwrites the content of all FPRs.  The
+compiler will generate code which saves and restores the FPRs.  For
+soft-float code it is recommended to used the @code{*_nofloat}
+variant.  In order to prevent a TDB from being written it is required
+to pass an constant zero value as parameter.  Passing the zero value
+through a variable is not sufficient.  Although modifications of
+access registers inside the transaction will not trigger an
+transaction abort it is not supported to actually modify them.  Access
+registers do not get saved when entering a transaction. They will have
+undefined state when reaching the abort code.
+@end deftypefn
+
+Macros for the possible return codes of tbegin are defined in the
+@code{htmintrin.h} header file:
+
+@table @code
+@item _HTM_TBEGIN_STARTED
+@code{tbegin} has been executed as part of normal processing.  The
+transaction body is supposed to be executed.
+@item _HTM_TBEGIN_INDETERMINATE
+The transaction was aborted due to an indeterminate condition which
+might be persistent.
+@item _HTM_TBEGIN_TRANSIENT
+The transaction aborted due to a transient failure.  The transaction
+should be re-executed in that case.
+@item _HTM_TBEGIN_PERSISTENT
+The transaction aborted due to a persistent failure.  Re-execution
+under same circumstances will not be productive.
+@end table
+
+@defmac _HTM_FIRST_USER_ABORT_CODE
+The @code{_HTM_FIRST_USER_ABORT_CODE} defined in @code{htmintrin.h}
+specifies the first abort code which can be used for
+@code{__builtin_tabort}.  Values below this threshold are reserved for
+machine use.
+@end defmac
+
+@deftp {Data type} {struct __htm_tdb}
+The @code{struct __htm_tdb} defined in @code{htmintrin.h} describes
+the structure of the transaction diagnostic block as specified in the
+Principles of Operation manual chapter 5-91.
+@end deftp
+
+@deftypefn {Built-in Function} int __builtin_tbegin_nofloat (void*)
+Same as @code{__builtin_tbegin} but without FPR saves and restores.
+Using this variant in code making use of FPRs will leave the FPRs in
+undefined state when entering the transaction abort handler code.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tbegin_retry (void*, int)
+In addition to @code{__builtin_tbegin} a loop for transient failures
+is generated.  If tbegin returns a condition code of 2 the transaction
+will be retried as often as specified in the second argument.  The
+perform processor assist instruction is used to tell the CPU about the
+number of fails so far.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tbegin_retry_nofloat (void*, int)
+Same as @code{__builtin_tbegin_retry} but without FPR saves and
+restores.  Using this variant in code making use of FPRs will leave
+the FPRs in undefined state when entering the transaction abort
+handler code.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tbeginc (void)
+Generates the @code{tbeginc} machine instruction starting a constraint
+hardware transaction.  The second operand is set to @code{0xff08}.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tend (void)
+Generates the @code{tend} machine instruction finishing a transaction
+and making the changes visible to other threads.  The condition code
+generated by tend is returned as integer value.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tabort (int)
+Generates the @code{tabort} machine instruction with the specified
+abort code.  Abort codes from 0 through 255 are reserved and will
+result in an error message.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tx_assist (int)
+Generates the @code{ppa rX,rY,1} machine instruction.  Where the
+integer parameter is loaded into rX and a value of zero is loaded into
+rY.  The integer parameter specifies the number of times the
+transaction repeatedly aborted.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tx_nesting_depth (void)
+Generates the @code{etnd} machine instruction.  The current nesting
+depth is returned as integer value.  For a nesting depth of 0 the code
+is not executed as part of an transaction.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_non_tx_store (unsigned long long *, unsigned long long)
+
+Generates the @code{ntstg} machine instruction.  The second argument
+is written to the first arguments location.  The store operation will
+not be rolled-back in case of an transaction abort.
+@end deftypefn
+
 @node SH Built-in Functions
 @subsection SH Built-in Functions
 The following built-in functions are supported on the SH1, SH2, SH3 and SH4
diff -Naur gcc-4.8.1.orig/gcc/doc/implement-cxx.texi gcc-4.8.1/gcc/doc/implement-cxx.texi
--- gcc-4.8.1.orig/gcc/doc/implement-cxx.texi	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/doc/implement-cxx.texi	2013-10-01 16:06:43.968554286 +0000
@@ -9,8 +9,8 @@
 A conforming implementation of ISO C++ is required to document its
 choice of behavior in each of the areas that are designated
 ``implementation defined''.  The following lists all such areas,
-along with the section numbers from the ISO/IEC 14822:1998 and ISO/IEC
-14822:2003 standards.  Some areas are only implementation-defined in
+along with the section numbers from the ISO/IEC 14882:1998 and ISO/IEC
+14882:2003 standards.  Some areas are only implementation-defined in
 one version of the standard.
 
 Some choices depend on the externally determined ABI for the platform
diff -Naur gcc-4.8.1.orig/gcc/doc/invoke.texi gcc-4.8.1/gcc/doc/invoke.texi
--- gcc-4.8.1.orig/gcc/doc/invoke.texi	2013-03-29 13:41:29.000000000 +0000
+++ gcc-4.8.1/gcc/doc/invoke.texi	2013-10-01 16:06:43.972554286 +0000
@@ -13726,8 +13726,13 @@
 SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction
 set support.
 
+@item core-avx2
+Intel Core CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2
+and F16C instruction set support.
+
 @item atom
-Intel Atom CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
+Intel Atom CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
 instruction set support.
 
 @item k6
diff -Naur gcc-4.8.1.orig/gcc/explow.c gcc-4.8.1/gcc/explow.c
--- gcc-4.8.1.orig/gcc/explow.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/explow.c	2013-10-01 16:06:43.972554286 +0000
@@ -106,10 +106,10 @@
 	  if (overflow)
 	    gcc_unreachable ();
 
-	  return immed_double_int_const (v, VOIDmode);
+	  return immed_double_int_const (v, mode);
 	}
 
-      return GEN_INT (INTVAL (x) + c);
+      return gen_int_mode (INTVAL (x) + c, mode);
 
     case CONST_DOUBLE:
       {
@@ -124,7 +124,7 @@
 	     To fix, add constant support wider than CONST_DOUBLE.  */
 	  gcc_assert (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_DOUBLE_INT);
 
-	return immed_double_int_const (v, VOIDmode);
+	return immed_double_int_const (v, mode);
       }
 
     case MEM:
diff -Naur gcc-4.8.1.orig/gcc/expr.c gcc-4.8.1/gcc/expr.c
--- gcc-4.8.1.orig/gcc/expr.c	2013-05-14 06:28:12.000000000 +0000
+++ gcc-4.8.1/gcc/expr.c	2013-10-01 16:06:43.976554286 +0000
@@ -119,7 +119,7 @@
   int reverse;
 };
 
-static void move_by_pieces_1 (rtx (*) (rtx, ...), enum machine_mode,
+static void move_by_pieces_1 (insn_gen_fn, machine_mode,
 			      struct move_by_pieces_d *);
 static bool block_move_libcall_safe_for_call_parm (void);
 static bool emit_block_move_via_movmem (rtx, rtx, rtx, unsigned, unsigned, HOST_WIDE_INT);
@@ -128,7 +128,7 @@
 static rtx clear_by_pieces_1 (void *, HOST_WIDE_INT, enum machine_mode);
 static void clear_by_pieces (rtx, unsigned HOST_WIDE_INT, unsigned int);
 static void store_by_pieces_1 (struct store_by_pieces_d *, unsigned int);
-static void store_by_pieces_2 (rtx (*) (rtx, ...), enum machine_mode,
+static void store_by_pieces_2 (insn_gen_fn, machine_mode,
 			       struct store_by_pieces_d *);
 static tree clear_storage_libcall_fn (int);
 static rtx compress_float_constant (rtx, rtx);
@@ -1043,7 +1043,7 @@
    to make a move insn for that mode.  DATA has all the other info.  */
 
 static void
-move_by_pieces_1 (rtx (*genfun) (rtx, ...), enum machine_mode mode,
+move_by_pieces_1 (insn_gen_fn genfun, machine_mode mode,
 		  struct move_by_pieces_d *data)
 {
   unsigned int size = GET_MODE_SIZE (mode);
@@ -2657,7 +2657,7 @@
    to make a move insn for that mode.  DATA has all the other info.  */
 
 static void
-store_by_pieces_2 (rtx (*genfun) (rtx, ...), enum machine_mode mode,
+store_by_pieces_2 (insn_gen_fn genfun, machine_mode mode,
 		   struct store_by_pieces_d *data)
 {
   unsigned int size = GET_MODE_SIZE (mode);
diff -Naur gcc-4.8.1.orig/gcc/file-find.c gcc-4.8.1/gcc/file-find.c
--- gcc-4.8.1.orig/gcc/file-find.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/file-find.c	2013-10-01 16:06:43.976554286 +0000
@@ -31,7 +31,7 @@
 }
 
 char *
-find_a_file (struct path_prefix *pprefix, const char *name)
+find_a_file (struct path_prefix *pprefix, const char *name, int mode)
 {
   char *temp;
   struct prefix_list *pl;
@@ -50,7 +50,7 @@
 
   if (IS_ABSOLUTE_PATH (name))
     {
-      if (access (name, X_OK) == 0)
+      if (access (name, mode) == 0)
 	{
 	  strcpy (temp, name);
 
@@ -66,7 +66,7 @@
       strcpy (temp, name);
 	strcat (temp, HOST_EXECUTABLE_SUFFIX);
 
-	if (access (temp, X_OK) == 0)
+	if (access (temp, mode) == 0)
 	  return temp;
 #endif
 
@@ -83,7 +83,7 @@
 
 	if (stat (temp, &st) >= 0
 	    && ! S_ISDIR (st.st_mode)
-	    && access (temp, X_OK) == 0)
+	    && access (temp, mode) == 0)
 	  return temp;
 
 #ifdef HOST_EXECUTABLE_SUFFIX
@@ -93,7 +93,7 @@
 
 	if (stat (temp, &st) >= 0
 	    && ! S_ISDIR (st.st_mode)
-	    && access (temp, X_OK) == 0)
+	    && access (temp, mode) == 0)
 	  return temp;
 #endif
       }
diff -Naur gcc-4.8.1.orig/gcc/file-find.h gcc-4.8.1/gcc/file-find.h
--- gcc-4.8.1.orig/gcc/file-find.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/file-find.h	2013-10-01 16:06:43.976554286 +0000
@@ -38,7 +38,7 @@
 };
 
 extern void find_file_set_debug (bool);
-extern char *find_a_file (struct path_prefix *, const char *);
+extern char *find_a_file (struct path_prefix *, const char *, int);
 extern void add_prefix (struct path_prefix *, const char *);
 extern void prefix_from_env (const char *, struct path_prefix *);
 extern void prefix_from_string (const char *, struct path_prefix *);
diff -Naur gcc-4.8.1.orig/gcc/fold-const.c gcc-4.8.1/gcc/fold-const.c
--- gcc-4.8.1.orig/gcc/fold-const.c	2013-05-17 08:52:36.000000000 +0000
+++ gcc-4.8.1/gcc/fold-const.c	2013-10-01 16:06:43.976554286 +0000
@@ -469,11 +469,24 @@
 	 and actually traps on some architectures.  But if overflow is
 	 undefined, we can negate, because - (INT_MIN / 1) is an
 	 overflow.  */
-      if (INTEGRAL_TYPE_P (TREE_TYPE (t))
-	  && !TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (t)))
-        break;
-      return negate_expr_p (TREE_OPERAND (t, 1))
-             || negate_expr_p (TREE_OPERAND (t, 0));
+      if (INTEGRAL_TYPE_P (TREE_TYPE (t)))
+	{
+	  if (!TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (t)))
+	    break;
+	  /* If overflow is undefined then we have to be careful because
+	     we ask whether it's ok to associate the negate with the
+	     division which is not ok for example for
+	     -((a - b) / c) where (-(a - b)) / c may invoke undefined
+	     overflow because of negating INT_MIN.  So do not use
+	     negate_expr_p here but open-code the two important cases.  */
+	  if (TREE_CODE (TREE_OPERAND (t, 0)) == NEGATE_EXPR
+	      || (TREE_CODE (TREE_OPERAND (t, 0)) == INTEGER_CST
+		  && may_negate_without_overflow_p (TREE_OPERAND (t, 0))))
+	    return true;
+	}
+      else if (negate_expr_p (TREE_OPERAND (t, 0)))
+	return true;
+      return negate_expr_p (TREE_OPERAND (t, 1));
 
     case NOP_EXPR:
       /* Negate -((double)float) as (double)(-float).  */
@@ -653,16 +666,20 @@
 	      return fold_build2_loc (loc, TREE_CODE (t), type,
 				  TREE_OPERAND (t, 0), negate_expr (tem));
 	    }
+	  /* If overflow is undefined then we have to be careful because
+	     we ask whether it's ok to associate the negate with the
+	     division which is not ok for example for
+	     -((a - b) / c) where (-(a - b)) / c may invoke undefined
+	     overflow because of negating INT_MIN.  So do not use
+	     negate_expr_p here but open-code the two important cases.  */
           tem = TREE_OPERAND (t, 0);
-          if (negate_expr_p (tem))
-	    {
-	      if (INTEGRAL_TYPE_P (type)
-		  && (TREE_CODE (tem) != INTEGER_CST
-		      || tree_int_cst_equal (tem, TYPE_MIN_VALUE (type))))
-		fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_MISC);
-	      return fold_build2_loc (loc, TREE_CODE (t), type,
-				  negate_expr (tem), TREE_OPERAND (t, 1));
-	    }
+	  if ((INTEGRAL_TYPE_P (type)
+	       && (TREE_CODE (tem) == NEGATE_EXPR
+		   || (TREE_CODE (tem) == INTEGER_CST
+		       && may_negate_without_overflow_p (tem))))
+	      || !INTEGRAL_TYPE_P (type))
+	    return fold_build2_loc (loc, TREE_CODE (t), type,
+				    negate_expr (tem), TREE_OPERAND (t, 1));
         }
       break;
 
@@ -4220,7 +4237,7 @@
     }
 
   if (low == 0 && high == 0)
-    return build_int_cst (type, 1);
+    return omit_one_operand_loc (loc, type, build_int_cst (type, 1), exp);
 
   if (low == 0)
     return fold_build2_loc (loc, LE_EXPR, type, exp,
@@ -9851,6 +9868,24 @@
     }
 }
 
+/*  Mask out the tz least significant bits of X of type TYPE where
+    tz is the number of trailing zeroes in Y.  */
+static double_int
+mask_with_tz (tree type, double_int x, double_int y)
+{
+  int tz = y.trailing_zeros ();
+
+  if (tz > 0)
+    {
+      double_int mask;
+
+      mask = ~double_int::mask (tz);
+      mask = mask.ext (TYPE_PRECISION (type), TYPE_UNSIGNED (type));
+      return mask & x;
+    }
+  return x;
+}
+
 /* Fold a binary expression of code CODE and type TYPE with operands
    OP0 and OP1.  LOC is the location of the resulting expression.
    Return the folded expression if folding is successful.  Otherwise,
@@ -11175,6 +11210,8 @@
 	{
 	  double_int c1, c2, c3, msk;
 	  int width = TYPE_PRECISION (type), w;
+	  bool try_simplify = true;
+
 	  c1 = tree_to_double_int (TREE_OPERAND (arg0, 1));
 	  c2 = tree_to_double_int (arg1);
 
@@ -11209,7 +11246,21 @@
 		  break;
 		}
 	    }
-	  if (c3 != c1)
+
+	  /* If X is a tree of the form (Y * K1) & K2, this might conflict
+	     with that optimization from the BIT_AND_EXPR optimizations.
+	     This could end up in an infinite recursion.  */
+	  if (TREE_CODE (TREE_OPERAND (arg0, 0)) == MULT_EXPR
+	      && TREE_CODE (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1))
+	                    == INTEGER_CST)
+	  {
+	    tree t = TREE_OPERAND (TREE_OPERAND (arg0, 0), 1);
+	    double_int masked = mask_with_tz (type, c3, tree_to_double_int (t));
+
+	    try_simplify = (masked != c1);
+	  }
+
+	  if (try_simplify && c3 != c1)
 	    return fold_build2_loc (loc, BIT_IOR_EXPR, type,
 				    fold_build2_loc (loc, BIT_AND_EXPR, type,
 						     TREE_OPERAND (arg0, 0),
@@ -11599,22 +11650,16 @@
 	  && TREE_CODE (arg0) == MULT_EXPR
 	  && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
 	{
-	  int arg1tz
-	    = tree_to_double_int (TREE_OPERAND (arg0, 1)).trailing_zeros ();
-	  if (arg1tz > 0)
-	    {
-	      double_int arg1mask, masked;
-	      arg1mask = ~double_int::mask (arg1tz);
-	      arg1mask = arg1mask.ext (TYPE_PRECISION (type),
-					 TYPE_UNSIGNED (type));
-	      masked = arg1mask & tree_to_double_int (arg1);
-	      if (masked.is_zero ())
-		return omit_two_operands_loc (loc, type, build_zero_cst (type),
-					      arg0, arg1);
-	      else if (masked != tree_to_double_int (arg1))
-		return fold_build2_loc (loc, code, type, op0,
-					double_int_to_tree (type, masked));
-	    }
+	  double_int masked
+	    = mask_with_tz (type, tree_to_double_int (arg1),
+	                    tree_to_double_int (TREE_OPERAND (arg0, 1)));
+
+	  if (masked.is_zero ())
+	    return omit_two_operands_loc (loc, type, build_zero_cst (type),
+	                                  arg0, arg1);
+	  else if (masked != tree_to_double_int (arg1))
+	    return fold_build2_loc (loc, code, type, op0,
+	                            double_int_to_tree (type, masked));
 	}
 
       /* For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M,
@@ -14040,14 +14085,29 @@
 	  && integer_zerop (op2)
 	  && (tem = sign_bit_p (TREE_OPERAND (arg0, 0), arg1)))
 	{
+	  /* sign_bit_p looks through both zero and sign extensions,
+	     but for this optimization only sign extensions are
+	     usable.  */
+	  tree tem2 = TREE_OPERAND (arg0, 0);
+	  while (tem != tem2)
+	    {
+	      if (TREE_CODE (tem2) != NOP_EXPR
+		  || TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (tem2, 0))))
+		{
+		  tem = NULL_TREE;
+		  break;
+		}
+	      tem2 = TREE_OPERAND (tem2, 0);
+	    }
 	  /* sign_bit_p only checks ARG1 bits within A's precision.
 	     If <sign bit of A> has wider type than A, bits outside
 	     of A's precision in <sign bit of A> need to be checked.
 	     If they are all 0, this optimization needs to be done
 	     in unsigned A's type, if they are all 1 in signed A's type,
 	     otherwise this can't be done.  */
-	  if (TYPE_PRECISION (TREE_TYPE (tem))
-	      < TYPE_PRECISION (TREE_TYPE (arg1))
+	  if (tem
+	      && TYPE_PRECISION (TREE_TYPE (tem))
+		 < TYPE_PRECISION (TREE_TYPE (arg1))
 	      && TYPE_PRECISION (TREE_TYPE (tem))
 		 < TYPE_PRECISION (type))
 	    {
diff -Naur gcc-4.8.1.orig/gcc/fortran/interface.c gcc-4.8.1/gcc/fortran/interface.c
--- gcc-4.8.1.orig/gcc/fortran/interface.c	2013-04-26 19:20:55.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/interface.c	2013-10-01 16:06:43.976554286 +0000
@@ -1024,7 +1024,8 @@
 			     bool type_must_agree, char *errmsg, int err_len)
 {
   /* Check type and rank.  */
-  if (type_must_agree && !compare_type_rank (s2, s1))
+  if (type_must_agree &&
+      (!compare_type_rank (s1, s2) || !compare_type_rank (s2, s1)))
     {
       snprintf (errmsg, err_len, "Type/rank mismatch in argument '%s'",
 		s1->name);
diff -Naur gcc-4.8.1.orig/gcc/fortran/match.c gcc-4.8.1/gcc/fortran/match.c
--- gcc-4.8.1.orig/gcc/fortran/match.c	2013-04-18 18:20:22.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/match.c	2013-10-01 16:06:43.980554285 +0000
@@ -5142,7 +5142,6 @@
 {
   gfc_ref *ref;
   gfc_symbol *assoc_sym;
-  int i;
 
   assoc_sym = associate->symtree->n.sym;
 
@@ -5153,9 +5152,8 @@
   while (ref && ref->next)
     ref = ref->next;
 
-  if (selector->ts.type == BT_CLASS
-	&& CLASS_DATA (selector)->as
-	&& ref && ref->type == REF_ARRAY)
+  if (selector->ts.type == BT_CLASS && CLASS_DATA (selector)->as
+      && ref && ref->type == REF_ARRAY)
     {
       /* Ensure that the array reference type is set.  We cannot use
 	 gfc_resolve_expr at this point, so the usable parts of
@@ -5163,7 +5161,7 @@
       if (ref->u.ar.type == AR_UNKNOWN)
 	{
 	  ref->u.ar.type = AR_ELEMENT;
-	  for (i = 0; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
+	  for (int i = 0; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
 	    if (ref->u.ar.dimen_type[i] == DIMEN_RANGE
 		|| ref->u.ar.dimen_type[i] == DIMEN_VECTOR
 		|| (ref->u.ar.dimen_type[i] == DIMEN_UNKNOWN
@@ -5182,37 +5180,19 @@
 	selector->rank = 0;
     }
 
-  if (selector->ts.type != BT_CLASS)
+  if (selector->rank)
     {
-      /* The correct class container has to be available.  */
-      if (selector->rank)
-	{
-	  assoc_sym->attr.dimension = 1;
-	  assoc_sym->as = gfc_get_array_spec ();
-	  assoc_sym->as->rank = selector->rank;
-	  assoc_sym->as->type = AS_DEFERRED;
-	}
-      else
-	assoc_sym->as = NULL;
-
-      assoc_sym->ts.type = BT_CLASS;
-      assoc_sym->ts.u.derived = selector->ts.u.derived;
-      assoc_sym->attr.pointer = 1;
-      gfc_build_class_symbol (&assoc_sym->ts, &assoc_sym->attr,
-			      &assoc_sym->as, false);
+      assoc_sym->attr.dimension = 1;
+      assoc_sym->as = gfc_get_array_spec ();
+      assoc_sym->as->rank = selector->rank;
+      assoc_sym->as->type = AS_DEFERRED;
     }
   else
+    assoc_sym->as = NULL;
+
+  if (selector->ts.type == BT_CLASS)
     {
       /* The correct class container has to be available.  */
-      if (selector->rank)
-	{
-	  assoc_sym->attr.dimension = 1;
-	  assoc_sym->as = gfc_get_array_spec ();
-	  assoc_sym->as->rank = selector->rank;
-	  assoc_sym->as->type = AS_DEFERRED;
-	}
-      else
-	assoc_sym->as = NULL;
       assoc_sym->ts.type = BT_CLASS;
       assoc_sym->ts.u.derived = CLASS_DATA (selector)->ts.u.derived;
       assoc_sym->attr.pointer = 1;
diff -Naur gcc-4.8.1.orig/gcc/fortran/module.c gcc-4.8.1/gcc/fortran/module.c
--- gcc-4.8.1.orig/gcc/fortran/module.c	2013-01-29 21:40:51.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/module.c	2013-10-01 16:06:43.980554285 +0000
@@ -4465,7 +4465,7 @@
   module_locus locus;
   symbol_attribute attr;
 
-  if (st_sym->name == gfc_current_ns->proc_name->name)
+  if (gfc_current_ns->proc_name && st_sym->name == gfc_current_ns->proc_name->name)
     {
       gfc_error ("'%s' of module '%s', imported at %C, is also the name of the "
 		 "current program unit", st_sym->name, module_name);
diff -Naur gcc-4.8.1.orig/gcc/fortran/resolve.c gcc-4.8.1/gcc/fortran/resolve.c
--- gcc-4.8.1.orig/gcc/fortran/resolve.c	2013-05-07 16:36:48.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/resolve.c	2013-10-01 16:06:43.980554285 +0000
@@ -9746,6 +9746,10 @@
 
   /* Add the attributes and the arrayspec to the temporary.  */
   tmp->n.sym->attr = gfc_expr_attr (e);
+  tmp->n.sym->attr.function = 0;
+  tmp->n.sym->attr.result = 0;
+  tmp->n.sym->attr.flavor = FL_VARIABLE;
+
   if (as)
     {
       tmp->n.sym->as = gfc_copy_array_spec (as);
@@ -9759,6 +9763,7 @@
 
   gfc_set_sym_referenced (tmp->n.sym);
   gfc_add_flavor (&tmp->n.sym->attr, FL_VARIABLE, name, NULL);
+  gfc_commit_symbol (tmp->n.sym);
   e = gfc_lval_expr_from_sym (tmp->n.sym);
 
   /* Should the lhs be a section, use its array ref for the
diff -Naur gcc-4.8.1.orig/gcc/fortran/simplify.c gcc-4.8.1/gcc/fortran/simplify.c
--- gcc-4.8.1.orig/gcc/fortran/simplify.c	2013-05-07 16:36:48.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/simplify.c	2013-10-01 16:06:43.980554285 +0000
@@ -332,13 +332,15 @@
 }
 
 
-/* Helper function for gfc_simplify_dot_product() and gfc_simplify_matmul.  */
+/* Helper function for gfc_simplify_dot_product() and gfc_simplify_matmul;
+   if conj_a is true, the matrix_a is complex conjugated.  */
 
 static gfc_expr *
 compute_dot_product (gfc_expr *matrix_a, int stride_a, int offset_a,
-		     gfc_expr *matrix_b, int stride_b, int offset_b)
+		     gfc_expr *matrix_b, int stride_b, int offset_b,
+		     bool conj_a)
 {
-  gfc_expr *result, *a, *b;
+  gfc_expr *result, *a, *b, *c;
 
   result = gfc_get_constant_expr (matrix_a->ts.type, matrix_a->ts.kind,
 				  &matrix_a->where);
@@ -361,9 +363,11 @@
 	  case BT_INTEGER:
 	  case BT_REAL:
 	  case BT_COMPLEX:
-	    result = gfc_add (result,
-			      gfc_multiply (gfc_copy_expr (a),
-					    gfc_copy_expr (b)));
+	    if (conj_a && a->ts.type == BT_COMPLEX)
+	      c = gfc_simplify_conjg (a);
+	    else
+	      c = gfc_copy_expr (a);
+	    result = gfc_add (result, gfc_multiply (c, gfc_copy_expr (b)));
 	    break;
 
 	  default:
@@ -1881,7 +1885,7 @@
   gcc_assert (vector_b->rank == 1);
   gcc_assert (gfc_compare_types (&vector_a->ts, &vector_b->ts));
 
-  return compute_dot_product (vector_a, 1, 0, vector_b, 1, 0);
+  return compute_dot_product (vector_a, 1, 0, vector_b, 1, 0, true);
 }
 
 
@@ -3894,7 +3898,7 @@
       for (row = 0; row < result_rows; ++row)
 	{
 	  gfc_expr *e = compute_dot_product (matrix_a, stride_a, offset_a,
-					     matrix_b, 1, offset_b);
+					     matrix_b, 1, offset_b, false);
 	  gfc_constructor_append_expr (&result->value.constructor,
 				       e, NULL);
 
diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-array.c gcc-4.8.1/gcc/fortran/trans-array.c
--- gcc-4.8.1.orig/gcc/fortran/trans-array.c	2013-02-21 12:26:44.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/trans-array.c	2013-10-01 16:06:43.984554285 +0000
@@ -3674,7 +3674,7 @@
 /* Calculate the lower bound of an array section.  */
 
 static void
-gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim)
+gfc_conv_section_startstride (stmtblock_t * block, gfc_ss * ss, int dim)
 {
   gfc_expr *stride = NULL;
   tree desc;
@@ -3703,12 +3703,12 @@
 
   /* Calculate the start of the range.  For vector subscripts this will
      be the range of the vector.  */
-  evaluate_bound (&loop->pre, info->start, ar->start, desc, dim, true);
+  evaluate_bound (block, info->start, ar->start, desc, dim, true);
 
   /* Similarly calculate the end.  Although this is not used in the
      scalarizer, it is needed when checking bounds and where the end
      is an expression with side-effects.  */
-  evaluate_bound (&loop->pre, info->end, ar->end, desc, dim, false);
+  evaluate_bound (block, info->end, ar->end, desc, dim, false);
 
   /* Calculate the stride.  */
   if (stride == NULL)
@@ -3717,8 +3717,8 @@
     {
       gfc_init_se (&se, NULL);
       gfc_conv_expr_type (&se, stride, gfc_array_index_type);
-      gfc_add_block_to_block (&loop->pre, &se.pre);
-      info->stride[dim] = gfc_evaluate_now (se.expr, &loop->pre);
+      gfc_add_block_to_block (block, &se.pre);
+      info->stride[dim] = gfc_evaluate_now (se.expr, block);
     }
 }
 
@@ -3735,6 +3735,8 @@
   gfc_ss *ss;
   tree desc;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loop->dimen = 0;
   /* Determine the rank of the loop.  */
   for (ss = loop->ss; ss != gfc_ss_terminator; ss = ss->loop_chain)
@@ -3794,10 +3796,11 @@
 	  /* Get the descriptor for the array.  If it is a cross loops array,
 	     we got the descriptor already in the outermost loop.  */
 	  if (ss->parent == NULL)
-	    gfc_conv_ss_descriptor (&loop->pre, ss, !loop->array_parameter);
+	    gfc_conv_ss_descriptor (&outer_loop->pre, ss,
+				    !loop->array_parameter);
 
 	  for (n = 0; n < ss->dimen; n++)
-	    gfc_conv_section_startstride (loop, ss, ss->dim[n]);
+	    gfc_conv_section_startstride (&outer_loop->pre, ss, ss->dim[n]);
 	  break;
 
 	case GFC_SS_INTRINSIC:
@@ -3833,7 +3836,7 @@
 					   fold_convert (gfc_array_index_type,
 							 rank),
 					   gfc_index_one_node);
-		    info->end[0] = gfc_evaluate_now (tmp, &loop->pre);
+		    info->end[0] = gfc_evaluate_now (tmp, &outer_loop->pre);
 		    info->start[0] = gfc_index_zero_node;
 		    info->stride[0] = gfc_index_one_node;
 		    continue;
@@ -4115,7 +4118,7 @@
 	}
 
       tmp = gfc_finish_block (&block);
-      gfc_add_expr_to_block (&loop->pre, tmp);
+      gfc_add_expr_to_block (&outer_loop->pre, tmp);
     }
 
   for (loop = loop->nested; loop; loop = loop->next)
@@ -4398,6 +4401,8 @@
   mpz_t i;
   bool nonoptional_arr;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loopspec = loop->specloop;
 
   mpz_init (i);
@@ -4583,7 +4588,7 @@
       else
 	{
 	  /* Set the delta for this section.  */
-	  info->delta[dim] = gfc_evaluate_now (loop->from[n], &loop->pre);
+	  info->delta[dim] = gfc_evaluate_now (loop->from[n], &outer_loop->pre);
 	  /* Number of iterations is (end - start + step) / step.
 	     with start = 0, this simplifies to
 	     last = end / step;
@@ -4595,7 +4600,7 @@
 				 gfc_array_index_type, tmp, info->stride[dim]);
 	  tmp = fold_build2_loc (input_location, MAX_EXPR, gfc_array_index_type,
 				 tmp, build_int_cst (gfc_array_index_type, -1));
-	  loop->to[n] = gfc_evaluate_now (tmp, &loop->pre);
+	  loop->to[n] = gfc_evaluate_now (tmp, &outer_loop->pre);
 	  /* Make the loop variable start at 0.  */
 	  loop->from[n] = gfc_index_zero_node;
 	}
@@ -4671,6 +4676,8 @@
   tree tmp;
   int n, dim;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loopspec = loop->specloop;
 
   /* Calculate the translation from loop variables to array indices.  */
@@ -4706,7 +4713,7 @@
 				     gfc_array_index_type,
 				     info->start[dim], tmp);
 
-	      info->delta[dim] = gfc_evaluate_now (tmp, &loop->pre);
+	      info->delta[dim] = gfc_evaluate_now (tmp, &outer_loop->pre);
 	    }
 	}
     }
@@ -6690,10 +6697,10 @@
 	      gcc_assert (ar->dimen_type[n + ndim] == DIMEN_THIS_IMAGE);
 
 	      /* Make sure the call to gfc_conv_section_startstride won't
-	         generate unnecessary code to calculate stride.  */
+		 generate unnecessary code to calculate stride.  */
 	      gcc_assert (ar->stride[n + ndim] == NULL);
 
-	      gfc_conv_section_startstride (&loop, ss, n + ndim);
+	      gfc_conv_section_startstride (&loop.pre, ss, n + ndim);
 	      loop.from[n + loop.dimen] = info->start[n + ndim];
 	      loop.to[n + loop.dimen]   = info->end[n + ndim];
 	    }
diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c gcc-4.8.1/gcc/fortran/trans-intrinsic.c
--- gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c	2013-03-15 10:09:39.000000000 +0000
+++ gcc-4.8.1/gcc/fortran/trans-intrinsic.c	2013-10-01 16:06:43.984554285 +0000
@@ -5653,8 +5653,7 @@
 
   if (expr->ts.type == BT_CHARACTER)
     {
-      tree direct;
-      tree indirect;
+      tree direct, indirect, free;
 
       ptr = convert (gfc_get_pchar_type (expr->ts.kind), source);
       tmpdecl = gfc_create_var (gfc_get_pchar_type (expr->ts.kind),
@@ -5687,6 +5686,13 @@
       tmp = build3_v (COND_EXPR, tmp, direct, indirect);
       gfc_add_expr_to_block (&se->pre, tmp);
 
+      /* Free the temporary string, if necessary.  */
+      free = gfc_call_free (tmpdecl);
+      tmp = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
+			     dest_word_len, source_bytes);
+      tmp = build3_v (COND_EXPR, tmp, free, build_empty_stmt (input_location));
+      gfc_add_expr_to_block (&se->post, tmp);
+
       se->expr = tmpdecl;
       se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len);
     }
diff -Naur gcc-4.8.1.orig/gcc/gcc-ar.c gcc-4.8.1/gcc/gcc-ar.c
--- gcc-4.8.1.orig/gcc/gcc-ar.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/gcc-ar.c	2013-10-01 16:06:43.984554285 +0000
@@ -136,7 +136,7 @@
   setup_prefixes (av[0]);
 
   /* Find the GCC LTO plugin */
-  plugin = find_a_file (&target_path, LTOPLUGINSONAME);
+  plugin = find_a_file (&target_path, LTOPLUGINSONAME, R_OK);
   if (!plugin)
     {
       fprintf (stderr, "%s: Cannot find plugin '%s'\n", av[0], LTOPLUGINSONAME);
@@ -144,24 +144,20 @@
     }
 
   /* Find the wrapped binutils program.  */
-  exe_name = find_a_file (&target_path, PERSONALITY);
+  exe_name = find_a_file (&target_path, PERSONALITY, X_OK);
   if (!exe_name)
     {
+      const char *real_exe_name = PERSONALITY;
 #ifdef CROSS_DIRECTORY_STRUCTURE
-      const char *cross_exe_name;
-
-      cross_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
-      exe_name = find_a_file (&path, cross_exe_name);
+      real_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
+#endif
+      exe_name = find_a_file (&path, real_exe_name, X_OK);
       if (!exe_name)
 	{
 	  fprintf (stderr, "%s: Cannot find binary '%s'\n", av[0],
-		   cross_exe_name);
+		   real_exe_name);
 	  exit (1);
 	}
-#else
-      fprintf (stderr, "%s: Cannot find binary '%s'\n", av[0], PERSONALITY);
-      exit (1);
-#endif
     }
 
   /* Create new command line with plugin */
diff -Naur gcc-4.8.1.orig/gcc/genoutput.c gcc-4.8.1/gcc/genoutput.c
--- gcc-4.8.1.orig/gcc/genoutput.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/genoutput.c	2013-10-01 16:06:43.984554285 +0000
@@ -404,9 +404,9 @@
 	}
 
       if (d->name && d->name[0] != '*')
-	printf ("    (insn_gen_fn) gen_%s,\n", d->name);
+	printf ("    { (insn_gen_fn::stored_funcptr) gen_%s },\n", d->name);
       else
-	printf ("    0,\n");
+	printf ("    { 0 },\n");
 
       printf ("    &operand_data[%d],\n", d->operand_number);
       printf ("    %d,\n", d->n_generator_args);
diff -Naur gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c
--- gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c	2013-04-15 15:00:06.000000000 +0000
+++ gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c	2013-10-01 16:06:43.984554285 +0000
@@ -1525,11 +1525,23 @@
 static void
 replace_ref (tree *expr, slsr_cand_t c)
 {
-  tree add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr),
-			       c->base_expr, c->stride);
-  tree mem_ref = fold_build2 (MEM_REF, TREE_TYPE (*expr), add_expr,
-			      double_int_to_tree (c->cand_type, c->index));
-  
+  tree add_expr, mem_ref, acc_type = TREE_TYPE (*expr);
+  unsigned HOST_WIDE_INT misalign;
+  unsigned align;
+
+  /* Ensure the memory reference carries the minimum alignment
+     requirement for the data type.  See PR58041.  */
+  get_object_alignment_1 (*expr, &align, &misalign);
+  if (misalign != 0)
+    align = (misalign & -misalign);
+  if (align < TYPE_ALIGN (acc_type))
+    acc_type = build_aligned_type (acc_type, align);
+
+  add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr),
+			  c->base_expr, c->stride);
+  mem_ref = fold_build2 (MEM_REF, acc_type, add_expr,
+			 double_int_to_tree (c->cand_type, c->index));
+
   /* Gimplify the base addressing expression for the new MEM_REF tree.  */
   gimple_stmt_iterator gsi = gsi_for_stmt (c->cand_stmt);
   TREE_OPERAND (mem_ref, 0)
diff -Naur gcc-4.8.1.orig/gcc/gimple.c gcc-4.8.1/gcc/gimple.c
--- gcc-4.8.1.orig/gcc/gimple.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/gimple.c	2013-10-01 16:06:43.984554285 +0000
@@ -4045,6 +4045,13 @@
 	    ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
 	}
     }
+  else if (visit_addr
+	   && gimple_code (stmt) == GIMPLE_GOTO)
+    {
+      tree op = gimple_goto_dest (stmt);
+      if (TREE_CODE (op) == ADDR_EXPR)
+	ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
+    }
 
   return ret;
 }
diff -Naur gcc-4.8.1.orig/gcc/go/go-gcc.cc gcc-4.8.1/gcc/go/go-gcc.cc
--- gcc-4.8.1.orig/gcc/go/go-gcc.cc	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/go/go-gcc.cc	2013-10-01 16:06:43.992554285 +0000
@@ -208,6 +208,16 @@
   Bexpression*
   zero_expression(Btype*);
 
+  Bexpression*
+  error_expression()
+  { return this->make_expression(error_mark_node); }
+
+  Bexpression*
+  var_expression(Bvariable* var, Location);
+
+  Bexpression*
+  indirect_expression(Bexpression* expr, bool known_valid, Location);
+
   // Statements.
 
   Bstatement*
@@ -287,10 +297,10 @@
 		     Location, Bstatement**);
 
   Bvariable*
-  immutable_struct(const std::string&, bool, Btype*, Location);
+  immutable_struct(const std::string&, bool, bool, Btype*, Location);
 
   void
-  immutable_struct_set_init(Bvariable*, const std::string&, bool, Btype*,
+  immutable_struct_set_init(Bvariable*, const std::string&, bool, bool, Btype*,
 			    Location, Bexpression*);
 
   Bvariable*
@@ -848,6 +858,30 @@
   return tree_to_expr(ret);
 }
 
+// An expression that references a variable.
+
+Bexpression*
+Gcc_backend::var_expression(Bvariable* var, Location)
+{
+  tree ret = var->get_tree();
+  if (ret == error_mark_node)
+    return this->error_expression();
+  return tree_to_expr(ret);
+}
+
+// An expression that indirectly references an expression.
+
+Bexpression*
+Gcc_backend::indirect_expression(Bexpression* expr, bool known_valid,
+                                 Location location)
+{
+  tree ret = build_fold_indirect_ref_loc(location.gcc_location(),
+                                         expr->get_tree());
+  if (known_valid)
+    TREE_THIS_NOTRAP(ret) = 1;
+  return tree_to_expr(ret);
+}
+
 // An expression as a statement.
 
 Bstatement*
@@ -1242,20 +1276,41 @@
   switch (TREE_CODE(type))
     {
     case RECORD_TYPE:
-      {
-	if (go_non_zero_struct == NULL_TREE)
-	  {
-	    type = make_node(RECORD_TYPE);
-	    tree field = build_decl(UNKNOWN_LOCATION, FIELD_DECL,
-				    get_identifier("dummy"),
-				    boolean_type_node);
-	    DECL_CONTEXT(field) = type;
-	    TYPE_FIELDS(type) = field;
-	    layout_type(type);
-	    go_non_zero_struct = type;
-	  }
-	return go_non_zero_struct;
-      }
+      if (TYPE_FIELDS(type) != NULL_TREE)
+	{
+	  tree ns = make_node(RECORD_TYPE);
+	  tree field_trees = NULL_TREE;
+	  tree *pp = &field_trees;
+	  for (tree field = TYPE_FIELDS(type);
+	       field != NULL_TREE;
+	       field = DECL_CHAIN(field))
+	    {
+	      tree ft = TREE_TYPE(field);
+	      if (field == TYPE_FIELDS(type))
+		ft = non_zero_size_type(ft);
+	      tree f = build_decl(DECL_SOURCE_LOCATION(field), FIELD_DECL,
+				  DECL_NAME(field), ft);
+	      DECL_CONTEXT(f) = ns;
+	      *pp = f;
+	      pp = &DECL_CHAIN(f);
+	    }
+	  TYPE_FIELDS(ns) = field_trees;
+	  layout_type(ns);
+	  return ns;
+	}
+
+      if (go_non_zero_struct == NULL_TREE)
+	{
+	  type = make_node(RECORD_TYPE);
+	  tree field = build_decl(UNKNOWN_LOCATION, FIELD_DECL,
+				  get_identifier("dummy"),
+				  boolean_type_node);
+	  DECL_CONTEXT(field) = type;
+	  TYPE_FIELDS(type) = field;
+	  layout_type(type);
+	  go_non_zero_struct = type;
+	}
+      return go_non_zero_struct;
 
     case ARRAY_TYPE:
       {
@@ -1454,8 +1509,8 @@
 // Create a named immutable initialized data structure.
 
 Bvariable*
-Gcc_backend::immutable_struct(const std::string& name, bool, Btype* btype,
-			      Location location)
+Gcc_backend::immutable_struct(const std::string& name, bool is_hidden,
+			      bool, Btype* btype, Location location)
 {
   tree type_tree = btype->get_tree();
   if (type_tree == error_mark_node)
@@ -1469,6 +1524,8 @@
   TREE_CONSTANT(decl) = 1;
   TREE_USED(decl) = 1;
   DECL_ARTIFICIAL(decl) = 1;
+  if (!is_hidden)
+    TREE_PUBLIC(decl) = 1;
 
   // We don't call rest_of_decl_compilation until we have the
   // initializer.
@@ -1482,8 +1539,7 @@
 
 void
 Gcc_backend::immutable_struct_set_init(Bvariable* var, const std::string&,
-				       bool is_common, Btype*,
-				       Location,
+				       bool, bool is_common, Btype*, Location,
 				       Bexpression* initializer)
 {
   tree decl = var->get_tree();
@@ -1494,13 +1550,14 @@
   DECL_INITIAL(decl) = init_tree;
 
   // We can't call make_decl_one_only until we set DECL_INITIAL.
-  if (!is_common)
-    TREE_PUBLIC(decl) = 1;
-  else
-    {
-      make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
-      resolve_unique_section(decl, 1, 0);
-    }
+  if (is_common)
+    make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
+
+  // These variables are often unneeded in the final program, so put
+  // them in their own section so that linker GC can discard them.
+  resolve_unique_section(decl,
+			 compute_reloc_for_constant (init_tree),
+			 1);
 
   rest_of_decl_compilation(decl, 1, 0);
 }
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/backend.h gcc-4.8.1/gcc/go/gofrontend/backend.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/backend.h	2012-11-29 18:11:17.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/backend.h	2013-10-01 16:06:43.984554285 +0000
@@ -95,7 +95,10 @@
 
   // Get a function type.  The receiver, parameter, and results are
   // generated from the types in the Function_type.  The Function_type
-  // is provided so that the names are available.
+  // is provided so that the names are available.  This should return
+  // not the type of a Go function (which is a pointer to a struct)
+  // but the type of a C function pointer (which will be used as the
+  // type of the first field of the struct).
   virtual Btype*
   function_type(const Btyped_identifier& receiver,
 		const std::vector<Btyped_identifier>& parameters,
@@ -228,6 +231,22 @@
   virtual Bexpression*
   zero_expression(Btype*) = 0;
 
+  // Create an error expression. This is used for cases which should
+  // not occur in a correct program, in order to keep the compilation
+  // going without crashing.
+  virtual Bexpression*
+  error_expression() = 0;
+
+  // Create a reference to a variable.
+  virtual Bexpression*
+  var_expression(Bvariable* var, Location) = 0;
+
+  // Create an expression that indirects through the pointer expression EXPR
+  // (i.e., return the expression for *EXPR). KNOWN_VALID is true if the pointer
+  // is known to point to a valid memory location.
+  virtual Bexpression*
+  indirect_expression(Bexpression* expr, bool known_valid, Location) = 0;
+
   // Statements.
 
   // Create an error statement.  This is used for cases which should
@@ -388,18 +407,22 @@
 		     Bstatement** pstatement) = 0;
 
   // Create a named immutable initialized data structure.  This is
-  // used for type descriptors and map descriptors.  This returns a
-  // Bvariable because it corresponds to an initialized const global
-  // variable in C.
+  // used for type descriptors, map descriptors, and function
+  // descriptors.  This returns a Bvariable because it corresponds to
+  // an initialized const variable in C.
   //
   // NAME is the name to use for the initialized global variable which
   // this call will create.
   //
+  // IS_HIDDEN will be true if the descriptor should only be visible
+  // within the current object.
+  //
   // IS_COMMON is true if NAME may be defined by several packages, and
   // the linker should merge all such definitions.  If IS_COMMON is
   // false, NAME should be defined in only one file.  In general
   // IS_COMMON will be true for the type descriptor of an unnamed type
-  // or a builtin type.
+  // or a builtin type.  IS_HIDDEN and IS_COMMON will never both be
+  // true.
   //
   // TYPE will be a struct type; the type of the returned expression
   // must be a pointer to this struct type.
@@ -409,20 +432,20 @@
   // address.  After calling this the frontend will call
   // immutable_struct_set_init.
   virtual Bvariable*
-  immutable_struct(const std::string& name, bool is_common, Btype* type,
-		   Location) = 0;
+  immutable_struct(const std::string& name, bool is_hidden, bool is_common,
+		   Btype* type, Location) = 0;
 
   // Set the initial value of a variable created by immutable_struct.
-  // The NAME, IS_COMMON, TYPE, and location parameters are the same
-  // ones passed to immutable_struct.  INITIALIZER will be a composite
-  // literal of type TYPE.  It will not contain any function calls or
-  // anything else which can not be put into a read-only data section.
-  // It may contain the address of variables created by
+  // The NAME, IS_HIDDEN, IS_COMMON, TYPE, and location parameters are
+  // the same ones passed to immutable_struct.  INITIALIZER will be a
+  // composite literal of type TYPE.  It will not contain any function
+  // calls or anything else that can not be put into a read-only data
+  // section.  It may contain the address of variables created by
   // immutable_struct.
   virtual void
   immutable_struct_set_init(Bvariable*, const std::string& name,
-			    bool is_common, Btype* type, Location,
-			    Bexpression* initializer) = 0;
+			    bool is_hidden, bool is_common, Btype* type,
+			    Location, Bexpression* initializer) = 0;
 
   // Create a reference to a named immutable initialized data
   // structure defined in some other package.  This will be a
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc gcc-4.8.1/gcc/go/gofrontend/expressions.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc	2012-12-21 15:59:27.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/expressions.cc	2013-10-01 16:06:43.988554285 +0000
@@ -978,22 +978,19 @@
 {
   Bvariable* bvar = this->variable_->get_backend_variable(context->gogo(),
 							  context->function());
-  tree ret = var_to_tree(bvar);
-  if (ret == error_mark_node)
-    return error_mark_node;
   bool is_in_heap;
+  Location loc = this->location();
   if (this->variable_->is_variable())
     is_in_heap = this->variable_->var_value()->is_in_heap();
   else if (this->variable_->is_result_variable())
     is_in_heap = this->variable_->result_var_value()->is_in_heap();
   else
     go_unreachable();
+
+  Bexpression* ret = context->backend()->var_expression(bvar, loc);
   if (is_in_heap)
-    {
-      ret = build_fold_indirect_ref_loc(this->location().gcc_location(), ret);
-      TREE_THIS_NOTRAP(ret) = 1;
-    }
-  return ret;
+    ret = context->backend()->indirect_expression(ret, true, loc);
+  return expr_to_tree(ret);
 }
 
 // Ast dump for variable expression.
@@ -1090,6 +1087,15 @@
   return this->statement_->type();
 }
 
+// Determine the type of the expression.
+
+void
+Set_and_use_temporary_expression::do_determine_type(
+    const Type_context* context)
+{
+  this->expr_->determine_type(context);
+}
+
 // Take the address.
 
 void
@@ -1255,17 +1261,16 @@
     go_unreachable();
 }
 
-// Get the tree for a function expression without evaluating the
-// closure.
+// Get the tree for the code of a function expression.
 
 tree
-Func_expression::get_tree_without_closure(Gogo* gogo)
+Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
 {
   Function_type* fntype;
-  if (this->function_->is_function())
-    fntype = this->function_->func_value()->type();
-  else if (this->function_->is_function_declaration())
-    fntype = this->function_->func_declaration_value()->type();
+  if (no->is_function())
+    fntype = no->func_value()->type();
+  else if (no->is_function_declaration())
+    fntype = no->func_declaration_value()->type();
   else
     go_unreachable();
 
@@ -1273,14 +1278,12 @@
   // can't take their address.
   if (fntype->is_builtin())
     {
-      error_at(this->location(),
+      error_at(loc,
 	       "invalid use of special builtin function %qs; must be called",
-	       this->function_->name().c_str());
+	       no->message_name().c_str());
       return error_mark_node;
     }
 
-  Named_object* no = this->function_;
-
   tree id = no->get_id(gogo);
   if (id == error_mark_node)
     return error_mark_node;
@@ -1296,46 +1299,55 @@
   if (fndecl == error_mark_node)
     return error_mark_node;
 
-  return build_fold_addr_expr_loc(this->location().gcc_location(), fndecl);
+  return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
 }
 
 // Get the tree for a function expression.  This is used when we take
-// the address of a function rather than simply calling it.  If the
-// function has a closure, we must use a trampoline.
+// the address of a function rather than simply calling it.  A func
+// value is represented as a pointer to a block of memory.  The first
+// word of that memory is a pointer to the function code.  The
+// remaining parts of that memory are the addresses of variables that
+// the function closes over.
 
 tree
 Func_expression::do_get_tree(Translate_context* context)
 {
-  Gogo* gogo = context->gogo();
-
-  tree fnaddr = this->get_tree_without_closure(gogo);
-  if (fnaddr == error_mark_node)
-    return error_mark_node;
-
-  go_assert(TREE_CODE(fnaddr) == ADDR_EXPR
-	     && TREE_CODE(TREE_OPERAND(fnaddr, 0)) == FUNCTION_DECL);
-  TREE_ADDRESSABLE(TREE_OPERAND(fnaddr, 0)) = 1;
-
-  // If there is no closure, that is all have to do.
+  // If there is no closure, just use the function descriptor.
   if (this->closure_ == NULL)
-    return fnaddr;
-
-  go_assert(this->function_->func_value()->enclosing() != NULL);
+    {
+      Gogo* gogo = context->gogo();
+      Named_object* no = this->function_;
+      Expression* descriptor;
+      if (no->is_function())
+	descriptor = no->func_value()->descriptor(gogo, no);
+      else if (no->is_function_declaration())
+	{
+	  if (no->func_declaration_value()->type()->is_builtin())
+	    {
+	      error_at(this->location(),
+		       ("invalid use of special builtin function %qs; "
+			"must be called"),
+		       no->message_name().c_str());
+	      return error_mark_node;
+	    }
+	  descriptor = no->func_declaration_value()->descriptor(gogo, no);
+	}
+      else
+	go_unreachable();
 
-  // Get the value of the closure.  This will be a pointer to space
-  // allocated on the heap.
-  tree closure_tree = this->closure_->get_tree(context);
-  if (closure_tree == error_mark_node)
-    return error_mark_node;
-  go_assert(POINTER_TYPE_P(TREE_TYPE(closure_tree)));
+      tree dtree = descriptor->get_tree(context);
+      if (dtree == error_mark_node)
+	return error_mark_node;
+      return build_fold_addr_expr_loc(this->location().gcc_location(), dtree);
+    }
 
-  // Now we need to build some code on the heap.  This code will load
-  // the static chain pointer with the closure and then jump to the
-  // body of the function.  The normal gcc approach is to build the
-  // code on the stack.  Unfortunately we can not do that, as Go
-  // permits us to return the function pointer.
+  go_assert(this->function_->func_value()->enclosing() != NULL);
 
-  return gogo->make_trampoline(fnaddr, closure_tree, this->location());
+  // If there is a closure, then the closure is itself the function
+  // expression.  It is a pointer to a struct whose first field points
+  // to the function code and whose remaining fields are the addresses
+  // of the closed-over variables.
+  return this->closure_->get_tree(context);
 }
 
 // Ast dump for function.
@@ -1361,6 +1373,181 @@
   return new Func_expression(function, closure, location);
 }
 
+// Class Func_descriptor_expression.
+
+// Constructor.
+
+Func_descriptor_expression::Func_descriptor_expression(Named_object* fn)
+  : Expression(EXPRESSION_FUNC_DESCRIPTOR, fn->location()),
+    fn_(fn), dvar_(NULL)
+{
+  go_assert(!fn->is_function() || !fn->func_value()->needs_closure());
+}
+
+// Traversal.
+
+int
+Func_descriptor_expression::do_traverse(Traverse*)
+{
+  return TRAVERSE_CONTINUE;
+}
+
+// All function descriptors have the same type.
+
+Type* Func_descriptor_expression::descriptor_type;
+
+void
+Func_descriptor_expression::make_func_descriptor_type()
+{
+  if (Func_descriptor_expression::descriptor_type != NULL)
+    return;
+  Type* uintptr_type = Type::lookup_integer_type("uintptr");
+  Type* struct_type = Type::make_builtin_struct_type(1, "code", uintptr_type);
+  Func_descriptor_expression::descriptor_type =
+    Type::make_builtin_named_type("functionDescriptor", struct_type);
+}
+
+Type*
+Func_descriptor_expression::do_type()
+{
+  Func_descriptor_expression::make_func_descriptor_type();
+  return Func_descriptor_expression::descriptor_type;
+}
+
+// The tree for a function descriptor.
+
+tree
+Func_descriptor_expression::do_get_tree(Translate_context* context)
+{
+  if (this->dvar_ != NULL)
+    return var_to_tree(this->dvar_);
+
+  Gogo* gogo = context->gogo();
+  Named_object* no = this->fn_;
+  Location loc = no->location();
+
+  std::string var_name;
+  if (no->package() == NULL)
+    var_name = gogo->pkgpath_symbol();
+  else
+    var_name = no->package()->pkgpath_symbol();
+  var_name.push_back('.');
+  var_name.append(Gogo::unpack_hidden_name(no->name()));
+  var_name.append("$descriptor");
+
+  Btype* btype = this->type()->get_backend(gogo);
+
+  Bvariable* bvar;
+  if (no->package() != NULL
+      || Linemap::is_predeclared_location(no->location()))
+    bvar = context->backend()->immutable_struct_reference(var_name, btype,
+							  loc);
+  else
+    {
+      Location bloc = Linemap::predeclared_location();
+      bool is_hidden = ((no->is_function()
+			 && no->func_value()->enclosing() != NULL)
+			|| Gogo::is_thunk(no));
+      bvar = context->backend()->immutable_struct(var_name, is_hidden, false,
+						  btype, bloc);
+      Expression_list* vals = new Expression_list();
+      vals->push_back(Expression::make_func_code_reference(this->fn_, bloc));
+      Expression* init =
+	Expression::make_struct_composite_literal(this->type(), vals, bloc);
+      Translate_context bcontext(gogo, NULL, NULL, NULL);
+      bcontext.set_is_const();
+      Bexpression* binit = tree_to_expr(init->get_tree(&bcontext));
+      context->backend()->immutable_struct_set_init(bvar, var_name, is_hidden,
+						    false, btype, bloc, binit);
+    }
+
+  this->dvar_ = bvar;
+  return var_to_tree(bvar);
+}
+
+// Print a function descriptor expression.
+
+void
+Func_descriptor_expression::do_dump_expression(Ast_dump_context* context) const
+{
+  context->ostream() << "[descriptor " << this->fn_->name() << "]";
+}
+
+// Make a function descriptor expression.
+
+Func_descriptor_expression*
+Expression::make_func_descriptor(Named_object* fn)
+{
+  return new Func_descriptor_expression(fn);
+}
+
+// Make the function descriptor type, so that it can be converted.
+
+void
+Expression::make_func_descriptor_type()
+{
+  Func_descriptor_expression::make_func_descriptor_type();
+}
+
+// A reference to just the code of a function.
+
+class Func_code_reference_expression : public Expression
+{
+ public:
+  Func_code_reference_expression(Named_object* function, Location location)
+    : Expression(EXPRESSION_FUNC_CODE_REFERENCE, location),
+      function_(function)
+  { }
+
+ protected:
+  int
+  do_traverse(Traverse*)
+  { return TRAVERSE_CONTINUE; }
+
+  Type*
+  do_type()
+  { return Type::make_pointer_type(Type::make_void_type()); }
+
+  void
+  do_determine_type(const Type_context*)
+  { }
+
+  Expression*
+  do_copy()
+  {
+    return Expression::make_func_code_reference(this->function_,
+						this->location());
+  }
+
+  tree
+  do_get_tree(Translate_context*);
+
+  void
+  do_dump_expression(Ast_dump_context* context) const
+  { context->ostream() << "[raw " << this->function_->name() << "]" ; }
+
+ private:
+  // The function.
+  Named_object* function_;
+};
+
+// Get the tree for a reference to function code.
+
+tree
+Func_code_reference_expression::do_get_tree(Translate_context* context)
+{
+  return Func_expression::get_code_pointer(context->gogo(), this->function_,
+					   this->location());
+}
+
+// Make a reference to the code of a function.
+
+Expression*
+Expression::make_func_code_reference(Named_object* function, Location location)
+{
+  return new Func_code_reference_expression(function, location);
+}
+
 // Class Unknown_expression.
 
 // Return the name of an unknown expression.
@@ -5462,6 +5649,7 @@
       if (tleft->is_abstract()
 	  && subcontext.type != NULL
 	  && !subcontext.may_be_abstract
+	  && subcontext.type->interface_type() == NULL
 	  && subcontext.type->integer_type() == NULL)
 	this->report_error(("invalid context-determined non-integer type "
 			    "for left operand of shift"));
@@ -5641,6 +5829,20 @@
 	  this->set_is_error();
 	  return;
 	}
+      if (this->op_ == OPERATOR_DIV || this->op_ == OPERATOR_MOD)
+	{
+	  // Division by a zero integer constant is an error.
+	  Numeric_constant rconst;
+	  unsigned long rval;
+	  if (left_type->integer_type() != NULL
+	      && this->right_->numeric_constant_value(&rconst)
+	      && rconst.to_unsigned_long(&rval) == Numeric_constant::NC_UL_VALID
+	      && rval == 0)
+	    {
+	      this->report_error(_("integer division by zero"));
+	      return;
+	    }
+	}
     }
   else
     {
@@ -6429,20 +6631,49 @@
   return Expression::traverse(&this->expr_, traverse);
 }
 
+// Lower the expression.  If this is a method value rather than being
+// called, and the method is accessed via a pointer, we may need to
+// add nil checks.  Introduce a temporary variable so that those nil
+// checks do not cause multiple evaluation.
+
+Expression*
+Bound_method_expression::do_lower(Gogo*, Named_object*,
+				  Statement_inserter* inserter, int)
+{
+  // For simplicity we use a temporary for every call to an embedded
+  // method, even though some of them might be pure value methods and
+  // not require a temporary.
+  if (this->expr_->var_expression() == NULL
+      && this->expr_->temporary_reference_expression() == NULL
+      && this->expr_->set_and_use_temporary_expression() == NULL
+      && (this->method_->field_indexes() != NULL
+	  || (this->method_->is_value_method()
+	      && this->expr_->type()->points_to() != NULL)))
+    {
+      Temporary_statement* temp =
+	Statement::make_temporary(this->expr_->type(), NULL, this->location());
+      inserter->insert(temp);
+      this->expr_ = Expression::make_set_and_use_temporary(temp, this->expr_,
+							   this->location());
+    }
+  return this;
+}
+
 // Return the type of a bound method expression.  The type of this
-// object is really the type of the method with no receiver.  We
-// should be able to get away with just returning the type of the
-// method.
+// object is simply the type of the method with no receiver.
 
 Type*
 Bound_method_expression::do_type()
 {
-  if (this->method_->is_function())
-    return this->method_->func_value()->type();
-  else if (this->method_->is_function_declaration())
-    return this->method_->func_declaration_value()->type();
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
   else
     return Type::make_error_type();
+  return fntype->copy_without_receiver();
 }
 
 // Determine the types of a method expression.
@@ -6450,7 +6681,14 @@
 void
 Bound_method_expression::do_determine_type(const Type_context*)
 {
-  Function_type* fntype = this->type()->function_type();
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
+  else
+    fntype = NULL;
   if (fntype == NULL || !fntype->is_method())
     this->expr_->determine_type_no_context();
   else
@@ -6465,31 +6703,278 @@
 void
 Bound_method_expression::do_check_types(Gogo*)
 {
-  if (!this->method_->is_function()
-      && !this->method_->is_function_declaration())
-    this->report_error(_("object is not a method"));
+  Named_object* fn = this->method_->named_object();
+  if (!fn->is_function() && !fn->is_function_declaration())
+    {
+      this->report_error(_("object is not a method"));
+      return;
+    }
+
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
+  else
+    go_unreachable();
+  Type* rtype = fntype->receiver()->type()->deref();
+  Type* etype = (this->expr_type_ != NULL
+		 ? this->expr_type_
+		 : this->expr_->type());
+  etype = etype->deref();
+  if (!Type::are_identical(rtype, etype, true, NULL))
+    this->report_error(_("method type does not match object type"));
+}
+
+// If a bound method expression is not simply called, then it is
+// represented as a closure.  The closure will hold a single variable,
+// the receiver to pass to the method.  The function will be a simple
+// thunk that pulls that value from the closure and calls the method
+// with the remaining arguments.
+//
+// Because method values are not common, we don't build all thunks for
+// every methods, but instead only build them as we need them.  In
+// particular, we even build them on demand for methods defined in
+// other packages.
+
+Bound_method_expression::Method_value_thunks
+  Bound_method_expression::method_value_thunks;
+
+// Find or create the thunk for METHOD.
+
+Named_object*
+Bound_method_expression::create_thunk(Gogo* gogo, const Method* method,
+				      Named_object* fn)
+{
+  std::pair<Named_object*, Named_object*> val(fn, NULL);
+  std::pair<Method_value_thunks::iterator, bool> ins =
+    Bound_method_expression::method_value_thunks.insert(val);
+  if (!ins.second)
+    {
+      // We have seen this method before.
+      go_assert(ins.first->second != NULL);
+      return ins.first->second;
+    }
+
+  Location loc = fn->location();
+
+  Function_type* orig_fntype;
+  if (fn->is_function())
+    orig_fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    orig_fntype = fn->func_declaration_value()->type();
+  else
+    orig_fntype = NULL;
+
+  if (orig_fntype == NULL || !orig_fntype->is_method())
+    {
+      ins.first->second = Named_object::make_erroneous_name(Gogo::thunk_name());
+      return ins.first->second;
+    }
+
+  Struct_field_list* sfl = new Struct_field_list();
+  // The type here is wrong--it should be the C function type.  But it
+  // doesn't really matter.
+  Type* vt = Type::make_pointer_type(Type::make_void_type());
+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
+  sfl->push_back(Struct_field(Typed_identifier("val.1",
+					       orig_fntype->receiver()->type(),
+					       loc)));
+  Type* closure_type = Type::make_struct_type(sfl, loc);
+  closure_type = Type::make_pointer_type(closure_type);
+
+  Function_type* new_fntype = orig_fntype->copy_with_names();
+
+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
+					      false, loc);
+
+  Variable* cvar = new Variable(closure_type, NULL, false, false, false, loc);
+  cvar->set_is_used();
+  Named_object* cp = Named_object::make_variable("$closure", NULL, cvar);
+  new_no->func_value()->set_closure_var(cp);
+
+  gogo->start_block(loc);
+
+  // Field 0 of the closure is the function code pointer, field 1 is
+  // the value on which to invoke the method.
+  Expression* arg = Expression::make_var_reference(cp, loc);
+  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
+  arg = Expression::make_field_reference(arg, 1, loc);
+
+  Expression* bme = Expression::make_bound_method(arg, method, fn, loc);
+
+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
+  Expression_list* args;
+  if (orig_params == NULL || orig_params->empty())
+    args = NULL;
   else
     {
-      Type* rtype = this->type()->function_type()->receiver()->type()->deref();
-      Type* etype = (this->expr_type_ != NULL
-		     ? this->expr_type_
-		     : this->expr_->type());
-      etype = etype->deref();
-      if (!Type::are_identical(rtype, etype, true, NULL))
-	this->report_error(_("method type does not match object type"));
+      const Typed_identifier_list* new_params = new_fntype->parameters();
+      args = new Expression_list();
+      for (Typed_identifier_list::const_iterator p = new_params->begin();
+	   p != new_params->end();
+	   ++p)
+	{
+	  Named_object* p_no = gogo->lookup(p->name(), NULL);
+	  go_assert(p_no != NULL
+		    && p_no->is_variable()
+		    && p_no->var_value()->is_parameter());
+	  args->push_back(Expression::make_var_reference(p_no, loc));
+	}
     }
+
+  Call_expression* call = Expression::make_call(bme, args,
+						orig_fntype->is_varargs(),
+						loc);
+  call->set_varargs_are_lowered();
+
+  Statement* s = Statement::make_return_from_call(call, loc);
+  gogo->add_statement(s);
+  Block* b = gogo->finish_block(loc);
+  gogo->add_block(b, loc);
+  gogo->lower_block(new_no, b);
+  gogo->finish_function(loc);
+
+  ins.first->second = new_no;
+  return new_no;
+}
+
+// Return an expression to check *REF for nil while dereferencing
+// according to FIELD_INDEXES.  Update *REF to build up the field
+// reference.  This is a static function so that we don't have to
+// worry about declaring Field_indexes in expressions.h.
+
+static Expression*
+bme_check_nil(const Method::Field_indexes* field_indexes, Location loc,
+	      Expression** ref)
+{
+  if (field_indexes == NULL)
+    return Expression::make_boolean(false, loc);
+  Expression* cond = bme_check_nil(field_indexes->next, loc, ref);
+  Struct_type* stype = (*ref)->type()->deref()->struct_type();
+  go_assert(stype != NULL
+	    && field_indexes->field_index < stype->field_count());
+  if ((*ref)->type()->struct_type() == NULL)
+    {
+      go_assert((*ref)->type()->points_to() != NULL);
+      Expression* n = Expression::make_binary(OPERATOR_EQEQ, *ref,
+					      Expression::make_nil(loc),
+					      loc);
+      cond = Expression::make_binary(OPERATOR_OROR, cond, n, loc);
+      *ref = Expression::make_unary(OPERATOR_MULT, *ref, loc);
+      go_assert((*ref)->type()->struct_type() == stype);
+    }
+  *ref = Expression::make_field_reference(*ref, field_indexes->field_index,
+					  loc);
+  return cond;
 }
 
-// Get the tree for a method expression.  There is no standard tree
-// representation for this.  The only places it may currently be used
-// are in a Call_expression or a Go_statement, which will take it
-// apart directly.  So this has nothing to do at present.
+// Get the tree for a method value.
 
 tree
-Bound_method_expression::do_get_tree(Translate_context*)
+Bound_method_expression::do_get_tree(Translate_context* context)
 {
-  error_at(this->location(), "reference to method other than calling it");
-  return error_mark_node;
+  Named_object* thunk = Bound_method_expression::create_thunk(context->gogo(),
+							      this->method_,
+							      this->function_);
+  if (thunk->is_erroneous())
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  // FIXME: We should lower this earlier, but we can't lower it in the
+  // lowering pass because at that point we don't know whether we need
+  // to create the thunk or not.  If the expression is called, we
+  // don't need the thunk.
+
+  Location loc = this->location();
+
+  // If the method expects a value, and we have a pointer, we need to
+  // dereference the pointer.
+
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
+  else
+    go_unreachable();
+
+  Expression* val = this->expr_;
+  if (fntype->receiver()->type()->points_to() == NULL
+      && val->type()->points_to() != NULL)
+    val = Expression::make_unary(OPERATOR_MULT, val, loc);
+
+  // Note that we are ignoring this->expr_type_ here.  The thunk will
+  // expect a closure whose second field has type this->expr_type_ (if
+  // that is not NULL).  We are going to pass it a closure whose
+  // second field has type this->expr_->type().  Since
+  // this->expr_type_ is only not-NULL for pointer types, we can get
+  // away with this.
+
+  Struct_field_list* fields = new Struct_field_list();
+  fields->push_back(Struct_field(Typed_identifier("fn.0",
+						  thunk->func_value()->type(),
+						  loc)));
+  fields->push_back(Struct_field(Typed_identifier("val.1", val->type(), loc)));
+  Struct_type* st = Type::make_struct_type(fields, loc);
+
+  Expression_list* vals = new Expression_list();
+  vals->push_back(Expression::make_func_code_reference(thunk, loc));
+  vals->push_back(val);
+
+  Expression* ret = Expression::make_struct_composite_literal(st, vals, loc);
+  ret = Expression::make_heap_composite(ret, loc);
+
+  tree ret_tree = ret->get_tree(context);
+
+  Expression* nil_check = NULL;
+
+  // See whether the expression or any embedded pointers are nil.
+
+  Expression* expr = this->expr_;
+  if (this->method_->field_indexes() != NULL)
+    {
+      // Note that we are evaluating this->expr_ twice, but that is OK
+      // because in the lowering pass we forced it into a temporary
+      // variable.
+      Expression* ref = expr;
+      nil_check = bme_check_nil(this->method_->field_indexes(), loc, &ref);
+      expr = ref;
+    }
+
+  if (this->method_->is_value_method() && expr->type()->points_to() != NULL)
+    {
+      Expression* n = Expression::make_binary(OPERATOR_EQEQ, expr,
+					      Expression::make_nil(loc),
+					      loc);
+      if (nil_check == NULL)
+	nil_check = n;
+      else
+	nil_check = Expression::make_binary(OPERATOR_OROR, nil_check, n, loc);
+    }
+
+  if (nil_check != NULL)
+    {
+      tree nil_check_tree = nil_check->get_tree(context);
+      tree crash =
+	context->gogo()->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE, loc);
+      if (ret_tree == error_mark_node
+	  || nil_check_tree == error_mark_node
+	  || crash == error_mark_node)
+	return error_mark_node;
+
+      ret_tree = fold_build2_loc(loc.gcc_location(), COMPOUND_EXPR,
+				 TREE_TYPE(ret_tree),
+				 build3_loc(loc.gcc_location(), COND_EXPR,
+					    void_type_node, nil_check_tree,
+					    crash, NULL_TREE),
+				 ret_tree);
+    }
+
+  return ret_tree;
 }
 
 // Dump ast representation of a bound method expression.
@@ -6508,16 +6993,16 @@
       ast_dump_context->ostream() << ")";
     }
     
-  ast_dump_context->ostream() << "." << this->method_->name();
+  ast_dump_context->ostream() << "." << this->function_->name();
 }
 
 // Make a method expression.
 
 Bound_method_expression*
-Expression::make_bound_method(Expression* expr, Named_object* method,
-			      Location location)
+Expression::make_bound_method(Expression* expr, const Method* method,
+			      Named_object* function, Location location)
 {
-  return new Bound_method_expression(expr, method, location);
+  return new Bound_method_expression(expr, method, function, location);
 }
 
 // Class Builtin_call_expression.  This is used for a call to a
@@ -6722,6 +7207,26 @@
       return Expression::make_error(loc);
     }
 
+  if (this->code_ == BUILTIN_OFFSETOF)
+    {
+      Expression* arg = this->one_arg();
+      Field_reference_expression* farg = arg->field_reference_expression();
+      while (farg != NULL)
+	{
+	  if (!farg->implicit())
+	    break;
+	  // When the selector refers to an embedded field,
+	  // it must not be reached through pointer indirections.
+	  if (farg->expr()->deref() != farg->expr())
+	    {
+	      this->report_error(_("argument of Offsetof implies indirection of an embedded field"));
+	      return this;
+	    }
+	  // Go up until we reach the original base.
+	  farg = farg->expr()->field_reference_expression();
+	}
+    }
+ 
   if (this->is_constant())
     {
       Numeric_constant nc;
@@ -6874,6 +7379,8 @@
   Type* uintptr_type = Type::lookup_integer_type("uintptr");
   int uintptr_bits = uintptr_type->integer_type()->bits();
 
+  Type_context int_context(Type::lookup_integer_type("int"), false);
+
   ++parg;
   Expression* len_arg;
   if (parg == args->end())
@@ -6892,6 +7399,7 @@
   else
     {
       len_arg = *parg;
+      len_arg->determine_type(&int_context);
       if (!this->check_int_value(len_arg, true))
 	return Expression::make_error(this->location());
       if (len_arg->type()->integer_type() != NULL
@@ -6904,6 +7412,7 @@
   if (is_slice && parg != args->end())
     {
       cap_arg = *parg;
+      cap_arg->determine_type(&int_context);
       if (!this->check_int_value(cap_arg, false))
 	return Expression::make_error(this->location());
 
@@ -7240,8 +7749,6 @@
 	return false;
       if (arg_type->is_abstract())
 	return false;
-      if (arg_type->named_type() != NULL)
-	arg_type->named_type()->convert(this->gogo_);
 
       unsigned int ret;
       if (this->code_ == BUILTIN_SIZEOF)
@@ -7279,19 +7786,31 @@
       Field_reference_expression* farg = arg->field_reference_expression();
       if (farg == NULL)
 	return false;
-      Expression* struct_expr = farg->expr();
-      Type* st = struct_expr->type();
-      if (st->struct_type() == NULL)
-	return false;
-      if (st->named_type() != NULL)
-	st->named_type()->convert(this->gogo_);
-      unsigned int offset;
-      if (!st->struct_type()->backend_field_offset(this->gogo_,
-						   farg->field_index(),
-						   &offset))
-	return false;
+      unsigned int total_offset = 0;
+      while (true)
+        {
+          Expression* struct_expr = farg->expr();
+          Type* st = struct_expr->type();
+          if (st->struct_type() == NULL)
+            return false;
+          if (st->named_type() != NULL)
+            st->named_type()->convert(this->gogo_);
+          unsigned int offset;
+          if (!st->struct_type()->backend_field_offset(this->gogo_,
+						       farg->field_index(),
+						       &offset))
+            return false;
+          total_offset += offset;
+          if (farg->implicit() && struct_expr->field_reference_expression() != NULL)
+            {
+              // Go up until we reach the original base.
+              farg = struct_expr->field_reference_expression();
+              continue;
+            }
+          break;
+        }
       nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
-			    static_cast<unsigned long>(offset));
+			    static_cast<unsigned long>(total_offset));
       return true;
     }
   else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
@@ -7509,6 +8028,8 @@
     case BUILTIN_REAL:
     case BUILTIN_IMAG:
       arg_type = Builtin_call_expression::complex_type(context->type);
+      if (arg_type == NULL)
+	arg_type = Type::lookup_complex_type("complex128");
       is_print = false;
       break;
 
@@ -7517,6 +8038,8 @@
 	// For the complex function the type of one operand can
 	// determine the type of the other, as in a binary expression.
 	arg_type = Builtin_call_expression::real_imag_type(context->type);
+	if (arg_type == NULL)
+	  arg_type = Type::lookup_float_type("float64");
 	if (args != NULL && args->size() == 2)
 	  {
 	    Type* t1 = args->front()->type();
@@ -8509,6 +9032,74 @@
 
 // Class Call_expression.
 
+// A Go function can be viewed in a couple of different ways.  The
+// code of a Go function becomes a backend function with parameters
+// whose types are simply the backend representation of the Go types.
+// If there are multiple results, they are returned as a backend
+// struct.
+
+// However, when Go code refers to a function other than simply
+// calling it, the backend type of that function is actually a struct.
+// The first field of the struct points to the Go function code
+// (sometimes a wrapper as described below).  The remaining fields
+// hold addresses of closed-over variables.  This struct is called a
+// closure.
+
+// There are a few cases to consider.
+
+// A direct function call of a known function in package scope.  In
+// this case there are no closed-over variables, and we know the name
+// of the function code.  We can simply produce a backend call to the
+// function directly, and not worry about the closure.
+
+// A direct function call of a known function literal.  In this case
+// we know the function code and we know the closure.  We generate the
+// function code such that it expects an additional final argument of
+// the closure type.  We pass the closure as the last argument, after
+// the other arguments.
+
+// An indirect function call.  In this case we have a closure.  We
+// load the pointer to the function code from the first field of the
+// closure.  We pass the address of the closure as the last argument.
+
+// A call to a method of an interface.  Type methods are always at
+// package scope, so we call the function directly, and don't worry
+// about the closure.
+
+// This means that for a function at package scope we have two cases.
+// One is the direct call, which has no closure.  The other is the
+// indirect call, which does have a closure.  We can't simply ignore
+// the closure, even though it is the last argument, because that will
+// fail on targets where the function pops its arguments.  So when
+// generating a closure for a package-scope function we set the
+// function code pointer in the closure to point to a wrapper
+// function.  This wrapper function accepts a final argument that
+// points to the closure, ignores it, and calls the real function as a
+// direct function call.  This wrapper will normally be efficient, and
+// can often simply be a tail call to the real function.
+
+// We don't use GCC's static chain pointer because 1) we don't need
+// it; 2) GCC only permits using a static chain to call a known
+// function, so we can't use it for an indirect call anyhow.  Since we
+// can't use it for an indirect call, we may as well not worry about
+// using it for a direct call either.
+
+// We pass the closure last rather than first because it means that
+// the function wrapper we put into a closure for a package-scope
+// function can normally just be a tail call to the real function.
+
+// For method expressions we generate a wrapper that loads the
+// receiver from the closure and then calls the method.  This
+// unfortunately forces reshuffling the arguments, since there is a
+// new first argument, but we can't avoid reshuffling either for
+// method expressions or for indirect calls of package-scope
+// functions, and since the latter are more common we reshuffle for
+// method expressions.
+
+// Note that the Go code retains the Go types.  The extra final
+// argument only appears when we convert to the backend
+// representation.
+
 // Traversal.
 
 int
@@ -8542,35 +9133,27 @@
   // Because do_type will return an error type and thus prevent future
   // errors, check for that case now to ensure that the error gets
   // reported.
-  if (this->get_function_type() == NULL)
+  Function_type* fntype = this->get_function_type();
+  if (fntype == NULL)
     {
       if (!this->fn_->type()->is_error())
 	this->report_error(_("expected function"));
       return Expression::make_error(loc);
     }
 
-  // Recognize a call to a builtin function.
-  Func_expression* fne = this->fn_->func_expression();
-  if (fne != NULL
-      && fne->named_object()->is_function_declaration()
-      && fne->named_object()->func_declaration_value()->type()->is_builtin())
-    return new Builtin_call_expression(gogo, this->fn_, this->args_,
-				       this->is_varargs_, loc);
-
   // Handle an argument which is a call to a function which returns
   // multiple results.
   if (this->args_ != NULL
       && this->args_->size() == 1
-      && this->args_->front()->call_expression() != NULL
-      && this->fn_->type()->function_type() != NULL)
+      && this->args_->front()->call_expression() != NULL)
     {
-      Function_type* fntype = this->fn_->type()->function_type();
       size_t rc = this->args_->front()->call_expression()->result_count();
       if (rc > 1
-	  && fntype->parameters() != NULL
-	  && (fntype->parameters()->size() == rc
-	      || (fntype->is_varargs()
-		  && fntype->parameters()->size() - 1 <= rc)))
+	  && ((fntype->parameters() != NULL
+               && (fntype->parameters()->size() == rc
+                   || (fntype->is_varargs()
+                       && fntype->parameters()->size() - 1 <= rc)))
+              || fntype->is_builtin()))
 	{
 	  Call_expression* call = this->args_->front()->call_expression();
 	  Expression_list* args = new Expression_list;
@@ -8584,6 +9167,11 @@
 	}
     }
 
+  // Recognize a call to a builtin function.
+  if (fntype->is_builtin())
+    return new Builtin_call_expression(gogo, this->fn_, this->args_,
+				       this->is_varargs_, loc);
+
   // If this call returns multiple results, create a temporary
   // variable for each result.
   size_t rc = this->result_count();
@@ -8592,8 +9180,7 @@
       std::vector<Temporary_statement*>* temps =
 	new std::vector<Temporary_statement*>;
       temps->reserve(rc);
-      const Typed_identifier_list* results =
-	this->fn_->type()->function_type()->results();
+      const Typed_identifier_list* results = fntype->results();
       for (Typed_identifier_list::const_iterator p = results->begin();
 	   p != results->end();
 	   ++p)
@@ -8608,10 +9195,8 @@
 
   // Handle a call to a varargs function by packaging up the extra
   // parameters.
-  if (this->fn_->type()->function_type() != NULL
-      && this->fn_->type()->function_type()->is_varargs())
+  if (fntype->is_varargs())
     {
-      Function_type* fntype = this->fn_->type()->function_type();
       const Typed_identifier_list* parameters = fntype->parameters();
       go_assert(parameters != NULL && !parameters->empty());
       Type* varargs_type = parameters->back().type();
@@ -8624,7 +9209,7 @@
   Bound_method_expression* bme = this->fn_->bound_method_expression();
   if (bme != NULL)
     {
-      Named_object* method = bme->method();
+      Named_object* methodfn = bme->function();
       Expression* first_arg = bme->first_argument();
 
       // We always pass a pointer when calling a method.
@@ -8665,7 +9250,7 @@
       // old arguments, because we may be traversing them up in some
       // caller.  FIXME.
       this->args_ = new_args;
-      this->fn_ = Expression::make_func_reference(method, NULL,
+      this->fn_ = Expression::make_func_reference(methodfn, NULL,
 						  bme->location());
     }
 
@@ -9117,6 +9702,16 @@
   const bool has_closure = func != NULL && func->closure() != NULL;
   const bool is_interface_method = interface_method != NULL;
 
+  bool has_closure_arg;
+  if (has_closure)
+    has_closure_arg = true;
+  else if (func != NULL)
+    has_closure_arg = false;
+  else if (is_interface_method)
+    has_closure_arg = false;
+  else
+    has_closure_arg = true;
+
   int nargs;
   tree* args;
   if (this->args_ == NULL || this->args_->empty())
@@ -9161,36 +9756,71 @@
 						       arg_val,
 						       location);
 	  if (args[i] == error_mark_node)
-	    {
-	      delete[] args;
-	      return error_mark_node;
-	    }
+	    return error_mark_node;
 	}
       go_assert(pp == params->end());
       go_assert(i == nargs);
     }
 
-  tree rettype = TREE_TYPE(TREE_TYPE(type_to_tree(fntype->get_backend(gogo))));
+  tree fntype_tree = type_to_tree(fntype->get_backend(gogo));
+  if (fntype_tree == error_mark_node)
+    return error_mark_node;
+  go_assert(POINTER_TYPE_P(fntype_tree));
+  if (TREE_TYPE(fntype_tree) == error_mark_node)
+    return error_mark_node;
+  go_assert(TREE_CODE(TREE_TYPE(fntype_tree)) == RECORD_TYPE);
+  tree fnfield_type = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(fntype_tree)));
+  if (fnfield_type == error_mark_node)
+    return error_mark_node;
+  go_assert(FUNCTION_POINTER_TYPE_P(fnfield_type));
+  tree rettype = TREE_TYPE(TREE_TYPE(fnfield_type));
   if (rettype == error_mark_node)
-    {
-      delete[] args;
-      return error_mark_node;
-    }
+    return error_mark_node;
 
   tree fn;
-  if (has_closure)
-    fn = func->get_tree_without_closure(gogo);
+  tree closure_tree;
+  if (func != NULL)
+    {
+      Named_object* no = func->named_object();
+      fn = Func_expression::get_code_pointer(gogo, no, location);
+      if (!has_closure)
+	closure_tree = NULL_TREE;
+      else
+	{
+	  closure_tree = func->closure()->get_tree(context);
+	  if (closure_tree == error_mark_node)
+	    return error_mark_node;
+	}
+    }
   else if (!is_interface_method)
-    fn = this->fn_->get_tree(context);
-  else
-    fn = this->interface_method_function(context, interface_method, &args[0]);
-
-  if (fn == error_mark_node || TREE_TYPE(fn) == error_mark_node)
     {
-      delete[] args;
-      return error_mark_node;
+      closure_tree = this->fn_->get_tree(context);
+      if (closure_tree == error_mark_node)
+	return error_mark_node;
+      tree fnc = fold_convert_loc(location.gcc_location(), fntype_tree,
+				  closure_tree);
+      go_assert(POINTER_TYPE_P(TREE_TYPE(fnc))
+		&& (TREE_CODE(TREE_TYPE(TREE_TYPE(fnc)))
+		    == RECORD_TYPE));
+      tree field = TYPE_FIELDS(TREE_TYPE(TREE_TYPE(fnc)));
+      fn = fold_build3_loc(location.gcc_location(), COMPONENT_REF,
+			   TREE_TYPE(field),
+			   build_fold_indirect_ref_loc(location.gcc_location(),
+						       fnc),
+			   field, NULL_TREE);
+    }      
+  else
+    {
+      fn = this->interface_method_function(context, interface_method,
+					   &args[0]);
+      if (fn == error_mark_node)
+	return error_mark_node;
+      closure_tree = NULL_TREE;
     }
 
+  if (fn == error_mark_node || TREE_TYPE(fn) == error_mark_node)
+    return error_mark_node;
+
   tree fndecl = fn;
   if (TREE_CODE(fndecl) == ADDR_EXPR)
     fndecl = TREE_OPERAND(fndecl, 0);
@@ -9198,12 +9828,7 @@
   // Add a type cast in case the type of the function is a recursive
   // type which refers to itself.
   if (!DECL_P(fndecl) || !DECL_IS_BUILTIN(fndecl))
-    {
-      tree fnt = type_to_tree(fntype->get_backend(gogo));
-      if (fnt == error_mark_node)
-	return error_mark_node;
-      fn = fold_convert_loc(location.gcc_location(), fnt, fn);
-    }
+    fn = fold_convert_loc(location.gcc_location(), fnfield_type, fn);
 
   // This is to support builtin math functions when using 80387 math.
   tree excess_type = NULL_TREE;
@@ -9241,19 +9866,38 @@
   if (func == NULL)
     fn = save_expr(fn);
 
+  if (!has_closure_arg)
+    go_assert(closure_tree == NULL_TREE);
+  else
+    {
+      // Pass the closure argument by calling the function function
+      // __go_set_closure.  In the order_evaluations pass we have
+      // ensured that if any parameters contain call expressions, they
+      // will have been moved out to temporary variables.
+
+      go_assert(closure_tree != NULL_TREE);
+      closure_tree = fold_convert_loc(location.gcc_location(), ptr_type_node,
+				      closure_tree);
+      static tree set_closure_fndecl;
+      tree set_closure = Gogo::call_builtin(&set_closure_fndecl,
+					    location,
+					    "__go_set_closure",
+					    1,
+					    void_type_node,
+					    ptr_type_node,
+					    closure_tree);
+      if (set_closure == error_mark_node)
+	return error_mark_node;
+      fn = build2_loc(location.gcc_location(), COMPOUND_EXPR,
+		      TREE_TYPE(fn), set_closure, fn);
+    }
+
   tree ret = build_call_array(excess_type != NULL_TREE ? excess_type : rettype,
 			      fn, nargs, args);
   delete[] args;
 
   SET_EXPR_LOCATION(ret, location.gcc_location());
 
-  if (has_closure)
-    {
-      tree closure_tree = func->closure()->get_tree(context);
-      if (closure_tree != error_mark_node)
-	CALL_EXPR_STATIC_CHAIN(ret) = closure_tree;
-    }
-
   // If this is a recursive function type which returns itself, as in
   //   type F func() F
   // we have used ptr_type_node for the return type.  Add a cast here
@@ -9274,24 +9918,6 @@
   if (this->results_ != NULL)
     ret = this->set_results(context, ret);
 
-  // We can't unwind the stack past a call to nil, so we need to
-  // insert an explicit check so that the panic can be recovered.
-  if (func == NULL)
-    {
-      tree compare = fold_build2_loc(location.gcc_location(), EQ_EXPR,
-				     boolean_type_node, fn,
-				     fold_convert_loc(location.gcc_location(),
-						      TREE_TYPE(fn),
-						      null_pointer_node));
-      tree crash = build3_loc(location.gcc_location(), COND_EXPR,
-			      void_type_node, compare,
-			      gogo->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE,
-						  location),
-			      NULL_TREE);
-      ret = fold_build2_loc(location.gcc_location(), COMPOUND_EXPR,
-			    TREE_TYPE(ret), crash, ret);
-    }
-
   this->tree_ = ret;
 
   return ret;
@@ -9774,13 +10400,20 @@
 void
 Array_index_expression::do_check_types(Gogo*)
 {
-  if (this->start_->type()->integer_type() == NULL)
+  Numeric_constant nc;
+  unsigned long v;
+  if (this->start_->type()->integer_type() == NULL
+      && !this->start_->type()->is_error()
+      && (!this->start_->numeric_constant_value(&nc)
+	  || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
     this->report_error(_("index must be integer"));
   if (this->end_ != NULL
       && this->end_->type()->integer_type() == NULL
       && !this->end_->type()->is_error()
       && !this->end_->is_nil_expression()
-      && !this->end_->is_error_expression())
+      && !this->end_->is_error_expression()
+      && (!this->end_->numeric_constant_value(&nc)
+	  || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
     this->report_error(_("slice end must be integer"));
 
   Array_type* array_type = this->array_->type()->array_type();
@@ -10845,6 +11478,28 @@
   return Expression::traverse(&this->expr_, traverse);
 }
 
+// Lower the expression.  If this expression is not called, we need to
+// evaluate the expression twice when converting to the backend
+// interface.  So introduce a temporary variable if necessary.
+
+Expression*
+Interface_field_reference_expression::do_lower(Gogo*, Named_object*,
+					       Statement_inserter* inserter,
+					       int)
+{
+  if (this->expr_->var_expression() == NULL
+      && this->expr_->temporary_reference_expression() == NULL
+      && this->expr_->set_and_use_temporary_expression() == NULL)
+    {
+      Temporary_statement* temp =
+	Statement::make_temporary(this->expr_->type(), NULL, this->location());
+      inserter->insert(temp);
+      this->expr_ = Expression::make_set_and_use_temporary(temp, this->expr_,
+							   this->location());
+    }
+  return this;
+}
+
 // Return the type of an interface field reference.
 
 Type*
@@ -10905,18 +11560,188 @@
     }
 }
 
-// Get a tree for a reference to a field in an interface.  There is no
-// standard tree type representation for this: it's a function
-// attached to its first argument, like a Bound_method_expression.
-// The only places it may currently be used are in a Call_expression
-// or a Go_statement, which will take it apart directly.  So this has
-// nothing to do at present.
+// If an interface field reference is not simply called, then it is
+// represented as a closure.  The closure will hold a single variable,
+// the value of the interface on which the method should be called.
+// The function will be a simple thunk that pulls the value from the
+// closure and calls the method with the remaining arguments.
+
+// Because method values are not common, we don't build all thunks for
+// all possible interface methods, but instead only build them as we
+// need them.  In particular, we even build them on demand for
+// interface methods defined in other packages.
+
+Interface_field_reference_expression::Interface_method_thunks
+  Interface_field_reference_expression::interface_method_thunks;
+
+// Find or create the thunk to call method NAME on TYPE.
+
+Named_object*
+Interface_field_reference_expression::create_thunk(Gogo* gogo,
+						   Interface_type* type,
+						   const std::string& name)
+{
+  std::pair<Interface_type*, Method_thunks*> val(type, NULL);
+  std::pair<Interface_method_thunks::iterator, bool> ins =
+    Interface_field_reference_expression::interface_method_thunks.insert(val);
+  if (ins.second)
+    {
+      // This is the first time we have seen this interface.
+      ins.first->second = new Method_thunks();
+    }
+
+  for (Method_thunks::const_iterator p = ins.first->second->begin();
+       p != ins.first->second->end();
+       p++)
+    if (p->first == name)
+      return p->second;
+
+  Location loc = type->location();
+
+  const Typed_identifier* method_id = type->find_method(name);
+  if (method_id == NULL)
+    return Named_object::make_erroneous_name(Gogo::thunk_name());
+
+  Function_type* orig_fntype = method_id->type()->function_type();
+  if (orig_fntype == NULL)
+    return Named_object::make_erroneous_name(Gogo::thunk_name());
+
+  Struct_field_list* sfl = new Struct_field_list();
+  // The type here is wrong--it should be the C function type.  But it
+  // doesn't really matter.
+  Type* vt = Type::make_pointer_type(Type::make_void_type());
+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
+  sfl->push_back(Struct_field(Typed_identifier("val.1", type, loc)));
+  Type* closure_type = Type::make_struct_type(sfl, loc);
+  closure_type = Type::make_pointer_type(closure_type);
+
+  Function_type* new_fntype = orig_fntype->copy_with_names();
+
+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
+					      false, loc);
+
+  Variable* cvar = new Variable(closure_type, NULL, false, false, false, loc);
+  cvar->set_is_used();
+  Named_object* cp = Named_object::make_variable("$closure", NULL, cvar);
+  new_no->func_value()->set_closure_var(cp);
+
+  gogo->start_block(loc);
+
+  // Field 0 of the closure is the function code pointer, field 1 is
+  // the value on which to invoke the method.
+  Expression* arg = Expression::make_var_reference(cp, loc);
+  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
+  arg = Expression::make_field_reference(arg, 1, loc);
+
+  Expression *ifre = Expression::make_interface_field_reference(arg, name,
+								loc);
+
+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
+  Expression_list* args;
+  if (orig_params == NULL || orig_params->empty())
+    args = NULL;
+  else
+    {
+      const Typed_identifier_list* new_params = new_fntype->parameters();
+      args = new Expression_list();
+      for (Typed_identifier_list::const_iterator p = new_params->begin();
+	   p != new_params->end();
+	   ++p)
+	{
+	  Named_object* p_no = gogo->lookup(p->name(), NULL);
+	  go_assert(p_no != NULL
+		    && p_no->is_variable()
+		    && p_no->var_value()->is_parameter());
+	  args->push_back(Expression::make_var_reference(p_no, loc));
+	}
+    }
+
+  Call_expression* call = Expression::make_call(ifre, args,
+						orig_fntype->is_varargs(),
+						loc);
+  call->set_varargs_are_lowered();
+
+  Statement* s = Statement::make_return_from_call(call, loc);
+  gogo->add_statement(s);
+  Block* b = gogo->finish_block(loc);
+  gogo->add_block(b, loc);
+  gogo->lower_block(new_no, b);
+  gogo->finish_function(loc);
+
+  ins.first->second->push_back(std::make_pair(name, new_no));
+  return new_no;
+}
+
+// Get a tree for a method value.
 
 tree
-Interface_field_reference_expression::do_get_tree(Translate_context*)
+Interface_field_reference_expression::do_get_tree(Translate_context* context)
 {
-  error_at(this->location(), "reference to method other than calling it");
-  return error_mark_node;
+  Interface_type* type = this->expr_->type()->interface_type();
+  if (type == NULL)
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  Named_object* thunk =
+    Interface_field_reference_expression::create_thunk(context->gogo(),
+						       type, this->name_);
+  if (thunk->is_erroneous())
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  // FIXME: We should lower this earlier, but we can't it lower it in
+  // the lowering pass because at that point we don't know whether we
+  // need to create the thunk or not.  If the expression is called, we
+  // don't need the thunk.
+
+  Location loc = this->location();
+
+  Struct_field_list* fields = new Struct_field_list();
+  fields->push_back(Struct_field(Typed_identifier("fn.0",
+						  thunk->func_value()->type(),
+						  loc)));
+  fields->push_back(Struct_field(Typed_identifier("val.1",
+						  this->expr_->type(),
+						  loc)));
+  Struct_type* st = Type::make_struct_type(fields, loc);
+
+  Expression_list* vals = new Expression_list();
+  vals->push_back(Expression::make_func_code_reference(thunk, loc));
+  vals->push_back(this->expr_);
+
+  Expression* expr = Expression::make_struct_composite_literal(st, vals, loc);
+  expr = Expression::make_heap_composite(expr, loc);
+
+  tree closure_tree = expr->get_tree(context);
+
+  // Note that we are evaluating this->expr_ twice, but that is OK
+  // because in the lowering pass we forced it into a temporary
+  // variable.
+  tree expr_tree = this->expr_->get_tree(context);
+  tree nil_check_tree = Expression::comparison_tree(context,
+						    Type::lookup_bool_type(),
+						    OPERATOR_EQEQ,
+						    this->expr_->type(),
+						    expr_tree,
+						    Type::make_nil_type(),
+						    null_pointer_node,
+						    loc);
+  tree crash = context->gogo()->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE,
+					      loc);
+  if (closure_tree == error_mark_node
+      || nil_check_tree == error_mark_node
+      || crash == error_mark_node)
+    return error_mark_node;
+  return fold_build2_loc(loc.gcc_location(), COMPOUND_EXPR,
+			 TREE_TYPE(closure_tree),
+			 build3_loc(loc.gcc_location(), COND_EXPR,
+				    void_type_node, nil_check_tree, crash,
+				    NULL_TREE),
+			 closure_tree);
 }
 
 // Dump ast representation for an interface field reference.
@@ -11114,8 +11939,10 @@
   // as their first argument.  If this is for a pointer type, we can
   // simply reuse the existing function.  We use an internal hack to
   // get the right type.
-
-  if (method != NULL && is_pointer)
+  // FIXME: This optimization is disabled because it doesn't yet work
+  // with function descriptors when the method expression is not
+  // directly called.
+  if (method != NULL && is_pointer && false)
     {
       Named_object* mno = (method->needs_stub_method()
 			   ? method->stub_object()
@@ -11170,22 +11997,7 @@
 						method_type->is_varargs(),
 						location);
 
-  size_t count = call->result_count();
-  Statement* s;
-  if (count == 0)
-    s = Statement::make_statement(call, true);
-  else
-    {
-      Expression_list* retvals = new Expression_list();
-      if (count <= 1)
-	retvals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < count; ++i)
-	    retvals->push_back(Expression::make_call_result(call, i));
-	}
-      s = Statement::make_return_statement(retvals, location);
-    }
+  Statement* s = Statement::make_return_from_call(call, location);
   gogo->add_statement(s);
 
   Block* b = gogo->finish_block(location);
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h gcc-4.8.1/gcc/go/gofrontend/expressions.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h	2013-01-29 00:28:09.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/expressions.h	2013-10-01 16:06:43.988554285 +0000
@@ -16,6 +16,7 @@
 class Traverse;
 class Statement_inserter;
 class Type;
+class Method;
 struct Type_context;
 class Integer_type;
 class Float_type;
@@ -32,6 +33,7 @@
 class Binary_expression;
 class Call_expression;
 class Func_expression;
+class Func_descriptor_expression;
 class Unknown_expression;
 class Index_expression;
 class Map_index_expression;
@@ -67,6 +69,8 @@
     EXPRESSION_SET_AND_USE_TEMPORARY,
     EXPRESSION_SINK,
     EXPRESSION_FUNC_REFERENCE,
+    EXPRESSION_FUNC_DESCRIPTOR,
+    EXPRESSION_FUNC_CODE_REFERENCE,
     EXPRESSION_UNKNOWN_REFERENCE,
     EXPRESSION_BOOLEAN,
     EXPRESSION_STRING,
@@ -150,10 +154,24 @@
   static Expression*
   make_sink(Location);
 
-  // Make a reference to a function in an expression.
+  // Make a reference to a function in an expression.  This returns a
+  // pointer to the struct holding the address of the function
+  // followed by any closed-over variables.
   static Expression*
   make_func_reference(Named_object*, Expression* closure, Location);
 
+  // Make a function descriptor, an immutable struct with a single
+  // field that points to the function code.  This may only be used
+  // with functions that do not have closures.  FN is the function for
+  // which we are making the descriptor.
+  static Func_descriptor_expression*
+  make_func_descriptor(Named_object* fn);
+
+  // Make a reference to the code of a function.  This is used to set
+  // descriptor and closure fields.
+  static Expression*
+  make_func_code_reference(Named_object*, Location);
+
   // Make a reference to an unknown name.  In a correct program this
   // will always be lowered to a real const/var/func reference.
   static Unknown_expression*
@@ -207,9 +225,11 @@
   make_call_result(Call_expression*, unsigned int index);
 
   // Make an expression which is a method bound to its first
-  // parameter.
+  // parameter.  METHOD is the method being called, FUNCTION is the
+  // function to call.
   static Bound_method_expression*
-  make_bound_method(Expression* object, Named_object* method, Location);
+  make_bound_method(Expression* object, const Method* method,
+		    Named_object* function, Location);
 
   // Make an index or slice expression.  This is a parser expression
   // which represents LEFT[START:END].  END may be NULL, meaning an
@@ -523,6 +543,11 @@
   bool
   is_local_variable() const;
 
+  // Make the builtin function descriptor type, so that it can be
+  // converted.
+  static void
+  make_func_descriptor_type();
+
   // Traverse an expression.
   static int
   traverse(Expression**, Traverse*);
@@ -1057,8 +1082,7 @@
   do_type();
 
   void
-  do_determine_type(const Type_context*)
-  { }
+  do_determine_type(const Type_context*);
 
   Expression*
   do_copy()
@@ -1484,7 +1508,7 @@
   { }
 
   // Return the object associated with the function.
-  const Named_object*
+  Named_object*
   named_object() const
   { return this->function_; }
 
@@ -1494,9 +1518,9 @@
   closure()
   { return this->closure_; }
 
-  // Return a tree for this function without evaluating the closure.
-  tree
-  get_tree_without_closure(Gogo*);
+  // Return a tree for the code for a function.
+  static tree
+  get_code_pointer(Gogo*, Named_object* function, Location loc);
 
  protected:
   int
@@ -1532,11 +1556,59 @@
   // The function itself.
   Named_object* function_;
   // A closure.  This is normally NULL.  For a nested function, it may
-  // be a heap-allocated struct holding pointers to all the variables
-  // referenced by this function and defined in enclosing functions.
+  // be a struct holding pointers to all the variables referenced by
+  // this function and defined in enclosing functions.
   Expression* closure_;
 };
 
+// A function descriptor.  A function descriptor is a struct with a
+// single field pointing to the function code.  This is used for
+// functions without closures.
+
+class Func_descriptor_expression : public Expression
+{
+ public:
+  Func_descriptor_expression(Named_object* fn);
+
+  // Make the function descriptor type, so that it can be converted.
+  static void
+  make_func_descriptor_type();
+
+ protected:
+  int
+  do_traverse(Traverse*);
+
+  Type*
+  do_type();
+
+  void
+  do_determine_type(const Type_context*)
+  { }
+
+  Expression*
+  do_copy()
+  { return Expression::make_func_descriptor(this->fn_); }
+
+  bool
+  do_is_addressable() const
+  { return true; }
+
+  tree
+  do_get_tree(Translate_context*);
+
+  void
+  do_dump_expression(Ast_dump_context* context) const;
+
+ private:
+  // The type of all function descriptors.
+  static Type* descriptor_type;
+
+  // The function for which this is the descriptor.
+  Named_object* fn_;
+  // The descriptor variable.
+  Bvariable* dvar_;
+};
+
 // A reference to an unknown name.
 
 class Unknown_expression : public Parser_expression
@@ -1773,10 +1845,10 @@
 class Bound_method_expression : public Expression
 {
  public:
-  Bound_method_expression(Expression* expr, Named_object* method,
-			  Location location)
+  Bound_method_expression(Expression* expr, const Method *method,
+			  Named_object* function, Location location)
     : Expression(EXPRESSION_BOUND_METHOD, location),
-      expr_(expr), expr_type_(NULL), method_(method)
+      expr_(expr), expr_type_(NULL), method_(method), function_(function)
   { }
 
   // Return the object which is the first argument.
@@ -1791,20 +1863,33 @@
   first_argument_type() const
   { return this->expr_type_; }
 
-  // Return the method function.
-  Named_object*
-  method()
+  // Return the method.
+  const Method*
+  method() const
   { return this->method_; }
 
+  // Return the function to call.
+  Named_object*
+  function() const
+  { return this->function_; }
+
   // Set the implicit type of the expression.
   void
   set_first_argument_type(Type* type)
   { this->expr_type_ = type; }
 
+  // Create a thunk to call FUNCTION, for METHOD, when it is used as
+  // part of a method value.
+  static Named_object*
+  create_thunk(Gogo*, const Method* method, Named_object* function);
+
  protected:
   int
   do_traverse(Traverse*);
 
+  Expression*
+  do_lower(Gogo*, Named_object*, Statement_inserter*, int);
+
   Type*
   do_type();
 
@@ -1818,7 +1903,7 @@
   do_copy()
   {
     return new Bound_method_expression(this->expr_->copy(), this->method_,
-				       this->location());
+				       this->function_, this->location());
   }
 
   tree
@@ -1828,6 +1913,11 @@
   do_dump_expression(Ast_dump_context*) const;
 
  private:
+  // A mapping from method functions to the thunks we have created for
+  // them.
+  typedef Unordered_map(Named_object*, Named_object*) Method_value_thunks;
+  static Method_value_thunks method_value_thunks;
+
   // The object used to find the method.  This is passed to the method
   // as the first argument.
   Expression* expr_;
@@ -1835,8 +1925,12 @@
   // NULL in the normal case, non-NULL when using a method from an
   // anonymous field which does not require a stub.
   Type* expr_type_;
-  // The method itself.
-  Named_object* method_;
+  // The method.
+  const Method* method_;
+  // The function to call.  This is not the same as
+  // method_->named_object() when the method has a stub.  This will be
+  // the real function rather than the stub.
+  Named_object* function_;
 };
 
 // A reference to a field in a struct.
@@ -1847,7 +1941,7 @@
   Field_reference_expression(Expression* expr, unsigned int field_index,
 			     Location location)
     : Expression(EXPRESSION_FIELD_REFERENCE, location),
-      expr_(expr), field_index_(field_index), called_fieldtrack_(false)
+      expr_(expr), field_index_(field_index), implicit_(false), called_fieldtrack_(false)
   { }
 
   // Return the struct expression.
@@ -1860,6 +1954,15 @@
   field_index() const
   { return this->field_index_; }
 
+  // Return whether this node was implied by an anonymous field.
+  bool
+  implicit() const
+  { return this->implicit_; }
+
+  void
+  set_implicit(bool implicit)
+  { this->implicit_ = implicit; }
+
   // Set the struct expression.  This is used when parsing.
   void
   set_struct_expression(Expression* expr)
@@ -1914,6 +2017,9 @@
   Expression* expr_;
   // The zero-based index of the field we are retrieving.
   unsigned int field_index_;
+  // Whether this node was emitted implicitly for an embedded field,
+  // that is, expr_ is not the expr_ of the original user node.
+  bool implicit_;
   // Whether we have already emitted a fieldtrack call.
   bool called_fieldtrack_;
 };
@@ -1940,6 +2046,11 @@
   name() const
   { return this->name_; }
 
+  // Create a thunk to call the method NAME in TYPE when it is used as
+  // part of a method value.
+  static Named_object*
+  create_thunk(Gogo*, Interface_type* type, const std::string& name);
+
   // Return a tree for the pointer to the function to call, given a
   // tree for the expression.
   tree
@@ -1955,6 +2066,9 @@
   int
   do_traverse(Traverse* traverse);
 
+  Expression*
+  do_lower(Gogo*, Named_object*, Statement_inserter*, int);
+
   Type*
   do_type();
 
@@ -1979,6 +2093,13 @@
   do_dump_expression(Ast_dump_context*) const;
 
  private:
+  // A mapping from interface types to a list of thunks we have
+  // created for methods.
+  typedef std::vector<std::pair<std::string, Named_object*> > Method_thunks;
+  typedef Unordered_map(Interface_type*, Method_thunks*)
+    Interface_method_thunks;
+  static Interface_method_thunks interface_method_thunks;
+
   // The expression for the interface object.  This should have a type
   // of interface or pointer to interface.
   Expression* expr_;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/go.cc gcc-4.8.1/gcc/go/gofrontend/go.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/go.cc	2012-10-31 00:38:49.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/go.cc	2013-10-01 16:06:43.988554285 +0000
@@ -44,7 +44,7 @@
 GO_EXTERN_C
 void
 go_parse_input_files(const char** filenames, unsigned int filename_count,
-		     bool only_check_syntax, bool require_return_statement)
+		     bool only_check_syntax, bool)
 {
   go_assert(filename_count > 0);
 
@@ -84,10 +84,16 @@
   // Finalize method lists and build stub methods for named types.
   ::gogo->finalize_methods();
 
+  // Check that functions have a terminating statement.
+  ::gogo->check_return_statements();
+
   // Now that we have seen all the names, lower the parse tree into a
   // form which is easier to use.
   ::gogo->lower_parse_tree();
 
+  // Create function descriptors as needed.
+  ::gogo->create_function_descriptors();
+
   // Write out queued up functions for hash and comparison of types.
   ::gogo->write_specific_type_functions();
 
@@ -104,10 +110,6 @@
   if (only_check_syntax)
     return;
 
-  // Check that functions have return statements.
-  if (require_return_statement)
-    ::gogo->check_return_statements();
-
   // Export global identifiers as appropriate.
   ::gogo->do_exports();
 
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc	2013-01-29 00:28:09.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc	2013-10-01 16:06:43.988554285 +0000
@@ -755,6 +755,18 @@
   this->build_interface_method_tables();
 
   Bindings* bindings = this->current_bindings();
+
+  for (Bindings::const_declarations_iterator p = bindings->begin_declarations();
+       p != bindings->end_declarations();
+       ++p)
+    {
+      // If any function declarations needed a descriptor, make sure
+      // we build it.
+      Named_object* no = p->second;
+      if (no->is_function_declaration())
+	no->func_declaration_value()->build_backend_descriptor(this);
+    }
+
   size_t count_definitions = bindings->size_definitions();
   size_t count = count_definitions;
 
@@ -782,6 +794,8 @@
     {
       Named_object* no = *p;
 
+      go_assert(i < count);
+
       go_assert(!no->is_type_declaration() && !no->is_function_declaration());
       // There is nothing to do for a package.
       if (no->is_package())
@@ -800,6 +814,15 @@
 	  continue;
 	}
 
+      // Skip blank named functions and constants.
+      if ((no->is_function() && no->func_value()->is_sink())
+	  || (no->is_const() && no->const_value()->is_sink()))
+        {
+          --i;
+          --count;
+          continue;
+        }
+
       // There is nothing useful we can output for constants which
       // have ideal or non-integral type.
       if (no->is_const())
@@ -986,6 +1009,16 @@
       else
 	package_name = this->package_->package_name();
 
+      // Note that this will be misleading if this is an unexported
+      // method generated for an embedded imported type.  In that case
+      // the unexported method should have the package name of the
+      // package from which it is imported, but we are going to give
+      // it our package name.  Fixing this would require knowing the
+      // package name, but we only know the package path.  It might be
+      // better to use package paths here anyhow.  This doesn't affect
+      // the assembler code, because we always set that name in
+      // Function::get_or_make_decl anyhow.  FIXME.
+
       decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
 
       Function_type* fntype;
@@ -1028,6 +1061,12 @@
   if (this->tree_ != NULL_TREE)
     return this->tree_;
 
+  if (Gogo::is_erroneous_name(this->name_))
+    {
+      this->tree_ = error_mark_node;
+      return error_mark_node;
+    }
+
   tree name;
   if (this->classification_ == NAMED_OBJECT_TYPE)
     name = NULL_TREE;
@@ -1255,14 +1294,23 @@
   if (this->fndecl_ == NULL_TREE)
     {
       tree functype = type_to_tree(this->type_->get_backend(gogo));
+
+      if (functype != error_mark_node)
+	{
+	  // The type of a function comes back as a pointer to a
+	  // struct whose first field is the function, but we want the
+	  // real function type for a function declaration.
+	  go_assert(POINTER_TYPE_P(functype)
+		    && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
+	  functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
+	  go_assert(FUNCTION_POINTER_TYPE_P(functype));
+	  functype = TREE_TYPE(functype);
+	}
+
       if (functype == error_mark_node)
 	this->fndecl_ = error_mark_node;
       else
 	{
-	  // The type of a function comes back as a pointer, but we
-	  // want the real function type for a function declaration.
-	  go_assert(POINTER_TYPE_P(functype));
-	  functype = TREE_TYPE(functype);
 	  tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
                                  id, functype);
 
@@ -1285,7 +1333,21 @@
 		   || this->type_->is_method())
 	    {
 	      TREE_PUBLIC(decl) = 1;
-	      std::string asm_name = gogo->pkgpath_symbol();
+	      std::string pkgpath = gogo->pkgpath_symbol();
+	      if (this->type_->is_method()
+		  && Gogo::is_hidden_name(no->name())
+		  && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
+		{
+		  // This is a method we created for an unexported
+		  // method of an imported embedded type.  We need to
+		  // use the pkgpath of the imported package to avoid
+		  // a possible name collision.  See bug478 for a test
+		  // case.
+		  pkgpath = Gogo::hidden_name_pkgpath(no->name());
+		  pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
+		}
+
+	      std::string asm_name = pkgpath;
 	      asm_name.append(1, '.');
 	      asm_name.append(Gogo::unpack_hidden_name(no->name()));
 	      if (this->type_->is_method())
@@ -1308,9 +1370,6 @@
 	  DECL_CONTEXT(resdecl) = decl;
 	  DECL_RESULT(decl) = resdecl;
 
-	  if (this->enclosing_ != NULL)
-	    DECL_STATIC_CHAIN(decl) = 1;
-
 	  // If a function calls the predeclared recover function, we
 	  // can't inline it, because recover behaves differently in a
 	  // function passed directly to defer.  If this is a recover
@@ -1333,29 +1392,6 @@
 	    resolve_unique_section (decl, 0, 1);
 
 	  go_preserve_from_gc(decl);
-
-	  if (this->closure_var_ != NULL)
-	    {
-	      push_struct_function(decl);
-
-	      Bvariable* bvar = this->closure_var_->get_backend_variable(gogo,
-									 no);
-	      tree closure_decl = var_to_tree(bvar);
-	      if (closure_decl == error_mark_node)
-		this->fndecl_ = error_mark_node;
-	      else
-		{
-		  DECL_ARTIFICIAL(closure_decl) = 1;
-		  DECL_IGNORED_P(closure_decl) = 1;
-		  TREE_USED(closure_decl) = 1;
-		  DECL_ARG_TYPE(closure_decl) = TREE_TYPE(closure_decl);
-		  TREE_READONLY(closure_decl) = 1;
-
-		  DECL_STRUCT_FUNCTION(decl)->static_chain_decl = closure_decl;
-		}
-
-	      pop_cfun();
-	    }
 	}
     }
   return this->fndecl_;
@@ -1382,15 +1418,24 @@
 	}
 
       tree functype = type_to_tree(this->fntype_->get_backend(gogo));
+
+      if (functype != error_mark_node)
+	{
+	  // The type of a function comes back as a pointer to a
+	  // struct whose first field is the function, but we want the
+	  // real function type for a function declaration.
+	  go_assert(POINTER_TYPE_P(functype)
+		    && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
+	  functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
+	  go_assert(FUNCTION_POINTER_TYPE_P(functype));
+	  functype = TREE_TYPE(functype);
+	}
+
       tree decl;
       if (functype == error_mark_node)
 	decl = error_mark_node;
       else
 	{
-	  // The type of a function comes back as a pointer, but we
-	  // want the real function type for a function declaration.
-	  go_assert(POINTER_TYPE_P(functype));
-	  functype = TREE_TYPE(functype);
 	  decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
                             functype);
 	  TREE_PUBLIC(decl) = 1;
@@ -1599,10 +1644,41 @@
 	    }
 	}
     }
+
   *pp = NULL_TREE;
 
   DECL_ARGUMENTS(fndecl) = params;
 
+  // If we need a closure variable, fetch it by calling a runtime
+  // function.  The caller will have called __go_set_closure before
+  // the function call.
+  if (this->closure_var_ != NULL)
+    {
+      Bvariable* bvar =
+	this->closure_var_->get_backend_variable(gogo, named_function);
+      tree var_decl = var_to_tree(bvar);
+      if (var_decl != error_mark_node)
+	{
+	  go_assert(TREE_CODE(var_decl) == VAR_DECL);
+	  static tree get_closure_fndecl;
+	  tree get_closure = Gogo::call_builtin(&get_closure_fndecl,
+						this->location_,
+						"__go_get_closure",
+						0,
+						ptr_type_node);
+
+	  // Mark the __go_get_closure function as pure, since it
+	  // depends only on the global variable g.
+	  DECL_PURE_P(get_closure_fndecl) = 1;
+
+	  get_closure = fold_convert_loc(this->location_.gcc_location(),
+					 TREE_TYPE(var_decl), get_closure);
+	  DECL_INITIAL(var_decl) = get_closure;
+	  DECL_CHAIN(var_decl) = declare_vars;
+	  declare_vars = var_decl;
+	}
+    }
+
   if (this->block_ != NULL)
     {
       go_assert(DECL_INITIAL(fndecl) == NULL_TREE);
@@ -1681,6 +1757,13 @@
 
       DECL_SAVED_TREE(fndecl) = code;
     }
+
+  // If we created a descriptor for the function, make sure we emit it.
+  if (this->descriptor_ != NULL)
+    {
+      Translate_context context(gogo, NULL, NULL, NULL);
+      this->descriptor_->get_tree(&context);
+    }
 }
 
 // Build the wrappers around function code needed if the function has
@@ -1844,6 +1927,20 @@
     }
 }
 
+// Build the descriptor for a function declaration.  This won't
+// necessarily happen if the package has just a declaration for the
+// function and no other reference to it, but we may still need the
+// descriptor for references from other packages.
+void
+Function_declaration::build_backend_descriptor(Gogo* gogo)
+{
+  if (this->descriptor_ != NULL)
+    {
+      Translate_context context(gogo, NULL, NULL, NULL);
+      this->descriptor_->get_tree(&context);
+    }
+}
+
 // Return the integer type to use for a size.
 
 GO_EXTERN_C
@@ -2437,70 +2534,3 @@
 		    build2(COMPOUND_EXPR, type_tree, call, tmp));
     }
 }
-
-// Return the type of a function trampoline.  This is like
-// get_trampoline_type in tree-nested.c.
-
-tree
-Gogo::trampoline_type_tree()
-{
-  static tree type_tree;
-  if (type_tree == NULL_TREE)
-    {
-      unsigned int size;
-      unsigned int align;
-      go_trampoline_info(&size, &align);
-      tree t = build_index_type(build_int_cst(integer_type_node, size - 1));
-      t = build_array_type(char_type_node, t);
-
-      type_tree = Gogo::builtin_struct(NULL, "__go_trampoline", NULL_TREE, 1,
-				       "__data", t);
-      t = TYPE_FIELDS(type_tree);
-      DECL_ALIGN(t) = align;
-      DECL_USER_ALIGN(t) = 1;
-
-      go_preserve_from_gc(type_tree);
-    }
-  return type_tree;
-}
-
-// Make a trampoline which calls FNADDR passing CLOSURE.
-
-tree
-Gogo::make_trampoline(tree fnaddr, tree closure, Location location)
-{
-  tree trampoline_type = Gogo::trampoline_type_tree();
-  tree trampoline_size = TYPE_SIZE_UNIT(trampoline_type);
-
-  closure = save_expr(closure);
-
-  // We allocate the trampoline using a special function which will
-  // mark it as executable.
-  static tree trampoline_fndecl;
-  tree x = Gogo::call_builtin(&trampoline_fndecl,
-			      location,
-			      "__go_allocate_trampoline",
-			      2,
-			      ptr_type_node,
-			      size_type_node,
-			      trampoline_size,
-			      ptr_type_node,
-			      fold_convert_loc(location.gcc_location(),
-                                               ptr_type_node, closure));
-  if (x == error_mark_node)
-    return error_mark_node;
-
-  x = save_expr(x);
-
-  // Initialize the trampoline.
-  tree calldecl = builtin_decl_implicit(BUILT_IN_INIT_HEAP_TRAMPOLINE);
-  tree ini = build_call_expr(calldecl, 3, x, fnaddr, closure);
-
-  // On some targets the trampoline address needs to be adjusted.  For
-  // example, when compiling in Thumb mode on the ARM, the address
-  // needs to have the low bit set.
-  x = build_call_expr(builtin_decl_explicit(BUILT_IN_ADJUST_TRAMPOLINE), 1, x);
-  x = fold_convert(TREE_TYPE(fnaddr), x);
-
-  return build2(COMPOUND_EXPR, TREE_TYPE(x), ini, x);
-}
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc gcc-4.8.1/gcc/go/gofrontend/gogo.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc	2013-02-10 06:02:38.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/gogo.cc	2013-10-01 16:06:43.988554285 +0000
@@ -364,7 +364,7 @@
       // Declare "main" as a function which takes no parameters and
       // returns no value.
       Location uloc = Linemap::unknown_location();
-      this->declare_function("main",
+      this->declare_function(Gogo::pack_hidden_name("main", false),
 			     Type::make_function_type (NULL, NULL, NULL, uloc),
 			     uloc);
     }
@@ -819,7 +819,8 @@
       char buf[30];
       snprintf(buf, sizeof buf, ".$sink%d", sink_count);
       ++sink_count;
-      ret = Named_object::make_function(buf, NULL, function);
+      ret = this->package_->bindings()->add_function(buf, NULL, function);
+      ret->func_value()->set_is_sink();
     }
   else if (!type->is_method())
     {
@@ -1191,6 +1192,27 @@
   this->interface_types_.push_back(itype);
 }
 
+// Return an erroneous name that indicates that an error has already
+// been reported.
+
+std::string
+Gogo::erroneous_name()
+{
+  static int erroneous_count;
+  char name[50];
+  snprintf(name, sizeof name, "$erroneous%d", erroneous_count);
+  ++erroneous_count;
+  return name;
+}
+
+// Return whether a name is an erroneous name.
+
+bool
+Gogo::is_erroneous_name(const std::string& name)
+{
+  return name.compare(0, 10, "$erroneous") == 0;
+}
+
 // Return a name for a thunk object.
 
 std::string
@@ -1277,6 +1299,14 @@
 		   n.c_str());
 	  inform(pf->second, "%qs imported here", n.c_str());
 	}
+
+      // No package scope identifier may be named "init".
+      if (!p->second->is_function()
+	  && Gogo::unpack_hidden_name(p->second->name()) == "init")
+	{
+	  error_at(p->second->location(),
+	           "cannot declare init - must be func");
+	}
     }
 }
 
@@ -1599,8 +1629,9 @@
   return TRAVERSE_CONTINUE;
 }
 
-// Lower function closure types.  Record the function while lowering
-// it, so that we can pass it down when lowering an expression.
+// Lower the body of a function, and set the closure type.  Record the
+// function while lowering it, so that we can pass it down when
+// lowering an expression.
 
 int
 Lower_parse_tree::function(Named_object* no)
@@ -1732,6 +1763,146 @@
   lower.constant(no, false);
 }
 
+// Traverse the tree to create function descriptors as needed.
+
+class Create_function_descriptors : public Traverse
+{
+ public:
+  Create_function_descriptors(Gogo* gogo)
+    : Traverse(traverse_functions | traverse_expressions),
+      gogo_(gogo)
+  { }
+
+  int
+  function(Named_object*);
+
+  int
+  expression(Expression**);
+
+ private:
+  Gogo* gogo_;
+};
+
+// Create a descriptor for every top-level exported function.
+
+int
+Create_function_descriptors::function(Named_object* no)
+{
+  if (no->is_function()
+      && no->func_value()->enclosing() == NULL
+      && !no->func_value()->is_method()
+      && !Gogo::is_hidden_name(no->name())
+      && !Gogo::is_thunk(no))
+    no->func_value()->descriptor(this->gogo_, no);
+
+  return TRAVERSE_CONTINUE;
+}
+
+// If we see a function referenced in any way other than calling it,
+// create a descriptor for it.
+
+int
+Create_function_descriptors::expression(Expression** pexpr)
+{
+  Expression* expr = *pexpr;
+
+  Func_expression* fe = expr->func_expression();
+  if (fe != NULL)
+    {
+      // We would not get here for a call to this function, so this is
+      // a reference to a function other than calling it.  We need a
+      // descriptor.
+      if (fe->closure() != NULL)
+	return TRAVERSE_CONTINUE;
+      Named_object* no = fe->named_object();
+      if (no->is_function() && !no->func_value()->is_method())
+	no->func_value()->descriptor(this->gogo_, no);
+      else if (no->is_function_declaration()
+	       && !no->func_declaration_value()->type()->is_method()
+	       && !Linemap::is_predeclared_location(no->location()))
+	no->func_declaration_value()->descriptor(this->gogo_, no);
+      return TRAVERSE_CONTINUE;
+    }
+
+  Bound_method_expression* bme = expr->bound_method_expression();
+  if (bme != NULL)
+    {
+      // We would not get here for a call to this method, so this is a
+      // method value.  We need to create a thunk.
+      Bound_method_expression::create_thunk(this->gogo_, bme->method(),
+					    bme->function());
+      return TRAVERSE_CONTINUE;
+    }
+
+  Interface_field_reference_expression* ifre =
+    expr->interface_field_reference_expression();
+  if (ifre != NULL)
+    {
+      // We would not get here for a call to this interface method, so
+      // this is a method value.  We need to create a thunk.
+      Interface_type* type = ifre->expr()->type()->interface_type();
+      if (type != NULL)
+	Interface_field_reference_expression::create_thunk(this->gogo_, type,
+							   ifre->name());
+      return TRAVERSE_CONTINUE;
+    }
+
+  Call_expression* ce = expr->call_expression();
+  if (ce != NULL)
+    {
+      Expression* fn = ce->fn();
+      if (fn->func_expression() != NULL
+	  || fn->bound_method_expression() != NULL
+	  || fn->interface_field_reference_expression() != NULL)
+	{
+	  // Traverse the arguments but not the function.
+	  Expression_list* args = ce->args();
+	  if (args != NULL)
+	    {
+	      if (args->traverse(this) == TRAVERSE_EXIT)
+		return TRAVERSE_EXIT;
+	    }
+	  return TRAVERSE_SKIP_COMPONENTS;
+	}
+    }
+
+  return TRAVERSE_CONTINUE;
+}
+
+// Create function descriptors as needed.  We need a function
+// descriptor for all exported functions and for all functions that
+// are referenced without being called.
+
+void
+Gogo::create_function_descriptors()
+{
+  // Create a function descriptor for any exported function that is
+  // declared in this package.  This is so that we have a descriptor
+  // for functions written in assembly.  Gather the descriptors first
+  // so that we don't add declarations while looping over them.
+  std::vector<Named_object*> fndecls;
+  Bindings* b = this->package_->bindings();
+  for (Bindings::const_declarations_iterator p = b->begin_declarations();
+       p != b->end_declarations();
+       ++p)
+    {
+      Named_object* no = p->second;
+      if (no->is_function_declaration()
+	  && !no->func_declaration_value()->type()->is_method()
+	  && !Linemap::is_predeclared_location(no->location())
+	  && !Gogo::is_hidden_name(no->name()))
+	fndecls.push_back(no);
+    }
+  for (std::vector<Named_object*>::const_iterator p = fndecls.begin();
+       p != fndecls.end();
+       ++p)
+    (*p)->func_declaration_value()->descriptor(this, *p);
+  fndecls.clear();
+
+  Create_function_descriptors cfd(this);
+  this->traverse(&cfd);
+}
+
 // Look for interface types to finalize methods of inherited
 // interfaces.
 
@@ -2217,7 +2388,7 @@
   Block* retblock = new Block(enclosing, loc);
   retblock->set_end_location(loc);
 
-  Temporary_statement* ts = Statement::make_temporary(Type::lookup_bool_type(),
+  Temporary_statement* ts = Statement::make_temporary(shortcut->type(),
 						      left, loc);
   retblock->add_statement(ts);
 
@@ -2391,13 +2562,38 @@
     return TRAVERSE_CONTINUE;
 
   // If there is only one expression with a side-effect, we can
-  // usually leave it in place.  However, for an assignment statement,
-  // we need to evaluate an expression on the right hand side before
-  // we evaluate any index expression on the left hand side, so for
-  // that case we always move the expression.  Otherwise we mishandle
-  // m[0] = len(m) where m is a map.
-  if (c == 1 && s->classification() != Statement::STATEMENT_ASSIGNMENT)
-    return TRAVERSE_CONTINUE;
+  // usually leave it in place.
+  if (c == 1)
+    {
+      switch (s->classification())
+	{
+	case Statement::STATEMENT_ASSIGNMENT:
+	  // For an assignment statement, we need to evaluate an
+	  // expression on the right hand side before we evaluate any
+	  // index expression on the left hand side, so for that case
+	  // we always move the expression.  Otherwise we mishandle
+	  // m[0] = len(m) where m is a map.
+	  break;
+
+	case Statement::STATEMENT_EXPRESSION:
+	  {
+	    // If this is a call statement that doesn't return any
+	    // values, it will not have been counted as a value to
+	    // move.  We need to move any subexpressions in case they
+	    // are themselves call statements that require passing a
+	    // closure.
+	    Expression* expr = s->expression_statement()->expr();
+	    if (expr->call_expression() != NULL
+		&& expr->call_expression()->result_count() == 0)
+	      break;
+	    return TRAVERSE_CONTINUE;
+	  }
+
+	default:
+	  // We can leave the expression in place.
+	  return TRAVERSE_CONTINUE;
+	}
+    }
 
   bool is_thunk = s->thunk_statement() != NULL;
   for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin();
@@ -2643,10 +2839,17 @@
   Expression* closure = NULL;
   if (orig_func->needs_closure())
     {
+      // For the new function we are creating, declare a new parameter
+      // variable NEW_CLOSURE_NO and set it to be the closure variable
+      // of the function.  This will be set to the closure value
+      // passed in by the caller.  Then pass a reference to this
+      // variable as the closure value when calling the original
+      // function.  In other words, simply pass the closure value
+      // through the thunk we are creating.
       Named_object* orig_closure_no = orig_func->closure_var();
       Variable* orig_closure_var = orig_closure_no->var_value();
       Variable* new_var = new Variable(orig_closure_var->type(), NULL, false,
-				       true, false, location);
+				       false, false, location);
       snprintf(buf, sizeof buf, "closure.%u", count);
       ++count;
       Named_object* new_closure_no = Named_object::make_variable(buf, NULL,
@@ -2682,22 +2885,7 @@
   // Any varargs call has already been lowered.
   call->set_varargs_are_lowered();
 
-  Statement* s;
-  if (orig_fntype->results() == NULL || orig_fntype->results()->empty())
-    s = Statement::make_statement(call, true);
-  else
-    {
-      Expression_list* vals = new Expression_list();
-      size_t rc = orig_fntype->results()->size();
-      if (rc == 1)
-	vals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < rc; ++i)
-	    vals->push_back(Expression::make_call_result(call, i));
-	}
-      s = Statement::make_return_statement(vals, location);
-    }
+  Statement* s = Statement::make_return_from_call(call, location);
   s->determine_types();
   gogo->add_statement(s);
 
@@ -2991,7 +3179,8 @@
     return TRAVERSE_CONTINUE;
 
   if (func->block()->may_fall_through())
-    error_at(func->location(), "control reaches end of non-void function");
+    error_at(func->block()->end_location(),
+	     "missing return at end of function");
 
   return TRAVERSE_CONTINUE;
 }
@@ -3101,6 +3290,7 @@
   Map_type::make_map_descriptor_type();
   Channel_type::make_chan_type_descriptor_type();
   Interface_type::make_interface_type_descriptor_type();
+  Expression::make_func_descriptor_type();
   Type::convert_builtin_named_types(this);
 
   Runtime::convert_types(this);
@@ -3128,9 +3318,9 @@
 		   Location location)
   : type_(type), enclosing_(enclosing), results_(NULL),
     closure_var_(NULL), block_(block), location_(location), labels_(),
-    local_type_count_(0), fndecl_(NULL), defer_stack_(NULL),
-    results_are_named_(false), nointerface_(false), calls_recover_(false),
-    is_recover_thunk_(false), has_recover_thunk_(false),
+    local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
+    is_sink_(false), results_are_named_(false), nointerface_(false),
+    calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
     in_unique_section_(false)
 {
 }
@@ -3206,15 +3396,16 @@
 {
   if (this->closure_var_ == NULL)
     {
+      go_assert(this->descriptor_ == NULL);
       // We don't know the type of the variable yet.  We add fields as
       // we find them.
       Location loc = this->type_->location();
       Struct_field_list* sfl = new Struct_field_list;
       Type* struct_type = Type::make_struct_type(sfl, loc);
       Variable* var = new Variable(Type::make_pointer_type(struct_type),
-				   NULL, false, true, false, loc);
+				   NULL, false, false, false, loc);
       var->set_is_used();
-      this->closure_var_ = Named_object::make_variable("closure", NULL, var);
+      this->closure_var_ = Named_object::make_variable("$closure", NULL, var);
       // Note that the new variable is not in any binding contour.
     }
   return this->closure_var_;
@@ -3229,7 +3420,14 @@
     return;
   Named_object* closure = this->closure_var_;
   Struct_type* st = closure->var_value()->type()->deref()->struct_type();
-  unsigned int index = 0;
+
+  // The first field of a closure is always a pointer to the function
+  // code.
+  Type* voidptr_type = Type::make_pointer_type(Type::make_void_type());
+  st->push_field(Struct_field(Typed_identifier(".$f", voidptr_type,
+					       this->location_)));
+
+  unsigned int index = 1;
   for (Closure_fields::const_iterator p = this->closure_fields_.begin();
        p != this->closure_fields_.end();
        ++p, ++index)
@@ -3410,6 +3608,19 @@
     this->block_->determine_types();
 }
 
+// Return the function descriptor, the value you get when you refer to
+// the function in Go code without calling it.
+
+Expression*
+Function::descriptor(Gogo*, Named_object* no)
+{
+  go_assert(!this->is_method());
+  go_assert(this->closure_var_ == NULL);
+  if (this->descriptor_ == NULL)
+    this->descriptor_ = Expression::make_func_descriptor(no);
+  return this->descriptor_;
+}
+
 // Get a pointer to the variable representing the defer stack for this
 // function, making it if necessary.  The value of the variable is set
 // by the runtime routines to true if the function is returning,
@@ -3940,6 +4151,19 @@
     }
 }
 
+// Class Function_declaration.
+
+// Return the function descriptor.
+
+Expression*
+Function_declaration::descriptor(Gogo*, Named_object* no)
+{
+  go_assert(!this->fntype_->is_method());
+  if (this->descriptor_ == NULL)
+    this->descriptor_ = Expression::make_func_descriptor(no);
+  return this->descriptor_;
+}
+
 // Class Variable.
 
 Variable::Variable(Type* type, Expression* init, bool is_global,
@@ -4755,6 +4979,12 @@
 Named_object::set_function_value(Function* function)
 {
   go_assert(this->classification_ == NAMED_OBJECT_FUNC_DECLARATION);
+  if (this->func_declaration_value()->has_descriptor())
+    {
+      Expression* descriptor =
+	this->func_declaration_value()->descriptor(NULL, NULL);
+      function->set_descriptor(descriptor);
+    }
   this->classification_ = NAMED_OBJECT_FUNC;
   // FIXME: We should free the old value.
   this->u_.func_value = function;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h gcc-4.8.1/gcc/go/gofrontend/gogo.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h	2012-12-21 22:23:23.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/gogo.h	2013-10-01 16:06:43.988554285 +0000
@@ -387,6 +387,16 @@
   void
   mark_locals_used();
 
+  // Return a name to use for an error case.  This should only be used
+  // after reporting an error, and is used to avoid useless knockon
+  // errors.
+  static std::string
+  erroneous_name();
+
+  // Return whether the name indicates an error.
+  static bool
+  is_erroneous_name(const std::string&);
+
   // Return a name to use for a thunk function.  A thunk function is
   // one we create during the compilation, for a go statement or a
   // defer statement or a method expression.
@@ -476,6 +486,10 @@
   void
   lower_constant(Named_object*);
 
+  // Create all necessary function descriptors.
+  void
+  create_function_descriptors();
+
   // Finalize the method lists and build stub methods for named types.
   void
   finalize_methods();
@@ -614,10 +628,6 @@
   receive_from_channel(tree type_tree, tree type_descriptor_tree, tree channel,
 		       Location);
 
-  // Make a trampoline which calls FNADDR passing CLOSURE.
-  tree
-  make_trampoline(tree fnaddr, tree closure, Location);
-
  private:
   // During parsing, we keep a stack of functions.  Each function on
   // the stack is one that we are currently parsing.  For each
@@ -669,10 +679,6 @@
   tree
   ptr_go_string_constant_tree(const std::string&);
 
-  // Return the type of a trampoline.
-  static tree
-  trampoline_type_tree();
-
   // Type used to map import names to packages.
   typedef std::map<std::string, Package*> Imports;
 
@@ -915,6 +921,14 @@
   result_variables()
   { return this->results_; }
 
+  bool
+  is_sink() const
+  { return this->is_sink_; }
+
+  void
+  set_is_sink()
+  { this->is_sink_ = true; }
+
   // Whether the result variables have names.
   bool
   results_are_named() const
@@ -1059,6 +1073,22 @@
   void
   determine_types();
 
+  // Return an expression for the function descriptor, given the named
+  // object for this function.  This may only be called for functions
+  // without a closure.  This will be an immutable struct with one
+  // field that points to the function's code.
+  Expression*
+  descriptor(Gogo*, Named_object*);
+
+  // Set the descriptor for this function.  This is used when a
+  // function declaration is followed by a function definition.
+  void
+  set_descriptor(Expression* descriptor)
+  {
+    go_assert(this->descriptor_ == NULL);
+    this->descriptor_ = descriptor;
+  }
+
   // Return the function's decl given an identifier.
   tree
   get_or_make_decl(Gogo*, Named_object*, tree id);
@@ -1137,22 +1167,26 @@
   Labels labels_;
   // The number of local types defined in this function.
   unsigned int local_type_count_;
+  // The function descriptor, if any.
+  Expression* descriptor_;
   // The function decl.
   tree fndecl_;
   // The defer stack variable.  A pointer to this variable is used to
   // distinguish the defer stack for one function from another.  This
   // is NULL unless we actually need a defer stack.
   Temporary_statement* defer_stack_;
+  // True if this function is sink-named.  No code is generated.
+  bool is_sink_ : 1;
   // True if the result variables are named.
-  bool results_are_named_;
+  bool results_are_named_ : 1;
   // True if this method should not be included in the type descriptor.
-  bool nointerface_;
+  bool nointerface_ : 1;
   // True if this function calls the predeclared recover function.
-  bool calls_recover_;
+  bool calls_recover_ : 1;
   // True if this a thunk built for a function which calls recover.
-  bool is_recover_thunk_;
+  bool is_recover_thunk_ : 1;
   // True if this function already has a recover thunk.
-  bool has_recover_thunk_;
+  bool has_recover_thunk_ : 1;
   // True if this function should be put in a unique section.  This is
   // turned on for field tracking.
   bool in_unique_section_ : 1;
@@ -1198,7 +1232,8 @@
 {
  public:
   Function_declaration(Function_type* fntype, Location location)
-    : fntype_(fntype), location_(location), asm_name_(), fndecl_(NULL)
+    : fntype_(fntype), location_(location), asm_name_(), descriptor_(NULL),
+      fndecl_(NULL)
   { }
 
   Function_type*
@@ -1218,10 +1253,27 @@
   set_asm_name(const std::string& asm_name)
   { this->asm_name_ = asm_name; }
 
+  // Return an expression for the function descriptor, given the named
+  // object for this function.  This may only be called for functions
+  // without a closure.  This will be an immutable struct with one
+  // field that points to the function's code.
+  Expression*
+  descriptor(Gogo*, Named_object*);
+
+  // Return true if we have created a descriptor for this declaration.
+  bool
+  has_descriptor() const
+  { return this->descriptor_ != NULL; }
+
   // Return a decl for the function given an identifier.
   tree
   get_or_make_decl(Gogo*, Named_object*, tree id);
 
+  // If there is a descriptor, build it into the backend
+  // representation.
+  void
+  build_backend_descriptor(Gogo*);
+
   // Export a function declaration.
   void
   export_func(Export* exp, const std::string& name) const
@@ -1235,6 +1287,8 @@
   // The assembler name: this is the name to use in references to the
   // function.  This is normally empty.
   std::string asm_name_;
+  // The function descriptor, if any.
+  Expression* descriptor_;
   // The function decl if needed.
   tree fndecl_;
 };
@@ -1630,7 +1684,7 @@
   Named_constant(Type* type, Expression* expr, int iota_value,
 		 Location location)
     : type_(type), expr_(expr), iota_value_(iota_value), location_(location),
-      lowering_(false)
+      lowering_(false), is_sink_(false)
   { }
 
   Type*
@@ -1664,6 +1718,14 @@
   clear_lowering()
   { this->lowering_ = false; }
 
+  bool
+  is_sink() const
+  { return this->is_sink_; }
+
+  void
+  set_is_sink()
+  { this->is_sink_ = true; }
+
   // Traverse the expression.
   int
   traverse_expression(Traverse*);
@@ -1699,6 +1761,8 @@
   Location location_;
   // Whether we are currently lowering this constant.
   bool lowering_;
+  // Whether this constant is blank named and needs only type checking.
+  bool is_sink_;
 };
 
 // A type declaration.
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc gcc-4.8.1/gcc/go/gofrontend/parse.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc	2012-12-13 22:20:23.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/parse.cc	2013-10-01 16:06:43.992554285 +0000
@@ -213,7 +213,7 @@
   if (name == "_")
     {
       error_at(this->location(), "invalid use of %<_%>");
-      name = "blank";
+      name = Gogo::erroneous_name();
     }
 
   if (package->name() == this->gogo_->package_name())
@@ -1457,6 +1457,16 @@
 
       if (!Gogo::is_sink_name(pi->name()))
 	this->gogo_->add_constant(*pi, *pe, this->iota_value());
+      else
+	{
+	  static int count;
+	  char buf[30];
+	  snprintf(buf, sizeof buf, ".$sinkconst%d", count);
+	  ++count;
+	  Typed_identifier ti(std::string(buf), type, pi->location());
+	  Named_object* no = this->gogo_->add_constant(ti, *pe, this->iota_value());
+	  no->const_value()->set_is_sink();
+	}
     }
   if (pe != expr_list->end())
     error_at(this->location(), "too many initializers");
@@ -1930,12 +1940,9 @@
 	{
 	  if (this->gogo_->in_global_scope())
 	    return this->create_dummy_global(type, init, location);
-	  else if (type == NULL)
-	    this->gogo_->add_statement(Statement::make_statement(init, true));
 	  else
 	    {
-	      // With both a type and an initializer, create a dummy
-	      // variable so that we will check whether the
+	      // Create a dummy variable so that we will check whether the
 	      // initializer can be assigned to the type.
 	      Variable* var = new Variable(type, init, false, false, false,
 					   location);
@@ -2627,7 +2634,11 @@
   Named_object* this_function = this->gogo_->current_function();
   Named_object* closure = this_function->func_value()->closure_var();
 
-  Enclosing_var ev(var, in_function, this->enclosing_vars_.size());
+  // The last argument to the Enclosing_var constructor is the index
+  // of this variable in the closure.  We add 1 to the current number
+  // of enclosed variables, because the first field in the closure
+  // points to the function code.
+  Enclosing_var ev(var, in_function, this->enclosing_vars_.size() + 1);
   std::pair<Enclosing_vars::iterator, bool> ins =
     this->enclosing_vars_.insert(ev);
   if (ins.second)
@@ -2882,8 +2893,9 @@
 // Create a closure for the nested function FUNCTION.  This is based
 // on ENCLOSING_VARS, which is a list of all variables defined in
 // enclosing functions and referenced from FUNCTION.  A closure is the
-// address of a struct which contains the addresses of all the
-// referenced variables.  This returns NULL if no closure is required.
+// address of a struct which point to the real function code and
+// contains the addresses of all the referenced variables.  This
+// returns NULL if no closure is required.
 
 Expression*
 Parse::create_closure(Named_object* function, Enclosing_vars* enclosing_vars,
@@ -2899,16 +2911,25 @@
   for (Enclosing_vars::const_iterator p = enclosing_vars->begin();
        p != enclosing_vars->end();
        ++p)
-    ev[p->index()] = *p;
+    {
+      // Subtract 1 because index 0 is the function code.
+      ev[p->index() - 1] = *p;
+    }
 
   // Build an initializer for a composite literal of the closure's
   // type.
 
   Named_object* enclosing_function = this->gogo_->current_function();
   Expression_list* initializer = new Expression_list;
+
+  initializer->push_back(Expression::make_func_code_reference(function,
+							      location));
+
   for (size_t i = 0; i < enclosing_var_count; ++i)
     {
-      go_assert(ev[i].index() == i);
+      // Add 1 to i because the first field in the closure is a
+      // pointer to the function code.
+      go_assert(ev[i].index() == i + 1);
       Named_object* var = ev[i].var();
       Expression* ref;
       if (ev[i].in_function() == enclosing_function)
@@ -3016,7 +3037,7 @@
 		  && t->array_type()->length()->is_nil_expression())
 		{
 		  error_at(ret->location(),
-			   "invalid use of %<...%> in type conversion");
+			   "use of %<[...]%> outside of array literal");
 		  ret = Expression::make_error(loc);
 		}
 	      else
@@ -3083,7 +3104,7 @@
       if (token->identifier() == "_")
 	{
 	  error_at(this->location(), "invalid use of %<_%>");
-	  name = this->gogo_->pack_hidden_name("blank", false);
+	  name = Gogo::erroneous_name();
 	}
       this->advance_token();
       return Expression::make_selector(left, name, location);
@@ -4499,9 +4520,12 @@
   bool is_fallthrough = false;
   if (this->peek_token()->is_keyword(KEYWORD_FALLTHROUGH))
     {
+      Location fallthrough_loc = this->location();
       is_fallthrough = true;
       if (this->advance_token()->is_op(OPERATOR_SEMICOLON))
 	this->advance_token();
+      if (this->peek_token()->is_op(OPERATOR_RCURLY))
+	error_at(fallthrough_loc, _("cannot fallthrough final case in switch"));
     }
 
   if (is_default)
@@ -4905,7 +4929,7 @@
 	    {
 	      error_at(recv_var_loc,
 		       "no new variables on left side of %<:=%>");
-	      recv_var = "blank";
+	      recv_var = Gogo::erroneous_name();
 	    }
 	  *is_send = false;
 	  *varname = gogo->pack_hidden_name(recv_var, is_rv_exported);
@@ -4941,7 +4965,7 @@
 		    {
 		      error_at(recv_var_loc,
 			       "no new variables on left side of %<:=%>");
-		      recv_var = "blank";
+		      recv_var = Gogo::erroneous_name();
 		    }
 		  *is_send = false;
 		  if (recv_var != "_")
@@ -5239,7 +5263,8 @@
 	no->var_value()->set_type_from_range_value();
       if (is_new)
 	any_new = true;
-      p_range_clause->value = Expression::make_var_reference(no, location);
+      if (!Gogo::is_sink_name(pti->name()))
+        p_range_clause->value = Expression::make_var_reference(no, location);
     }
 
   if (!any_new)
@@ -5477,7 +5502,7 @@
 	  if (name == "_")
 	    {
 	      error_at(this->location(), "invalid package name _");
-	      name = "blank";
+	      name = Gogo::erroneous_name();
 	    }
 	  this->advance_token();
 	}
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def gcc-4.8.1/gcc/go/gofrontend/runtime.def
--- gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def	2012-11-29 18:11:17.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/runtime.def	2013-10-01 16:06:43.992554285 +0000
@@ -224,11 +224,6 @@
 DEF_GO_RUNTIME(NEW_NOPOINTERS, "__go_new_nopointers", P1(UINTPTR), R1(POINTER))
 
 
-// Allocate a trampoline for a function literal.
-DEF_GO_RUNTIME(ALLOCATE_GO_TRAMPOLINE, "__go_allocate_trampoline",
-	       P2(UINTPTR, POINTER), R1(POINTER))
-
-
 // Start a new goroutine.
 DEF_GO_RUNTIME(GO, "__go_go", P2(FUNC_PTR, POINTER), R0())
 
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc gcc-4.8.1/gcc/go/gofrontend/statements.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc	2012-12-21 15:59:27.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/statements.cc	2013-10-01 16:06:43.992554285 +0000
@@ -569,7 +569,10 @@
 Assignment_statement::do_determine_types()
 {
   this->lhs_->determine_type_no_context();
-  Type_context context(this->lhs_->type(), false);
+  Type* rhs_context_type = this->lhs_->type();
+  if (rhs_context_type->is_sink_type())
+    rhs_context_type = NULL;
+  Type_context context(rhs_context_type, false);
   this->rhs_->determine_type(&context);
 }
 
@@ -591,6 +594,15 @@
 
   Type* lhs_type = this->lhs_->type();
   Type* rhs_type = this->rhs_->type();
+
+  // Invalid assignment of nil to the blank identifier.
+  if (lhs_type->is_sink_type()
+      && rhs_type->is_nil_type())
+    {
+      this->report_error(_("use of untyped nil"));
+      return;
+    }
+
   std::string reason;
   bool ok;
   if (this->are_hidden_fields_ok_)
@@ -972,7 +984,10 @@
 
       if ((*plhs)->is_sink_expression())
 	{
-	  b->add_statement(Statement::make_statement(*prhs, true));
+          if ((*prhs)->type()->is_nil_type())
+            this->report_error(_("use of untyped nil"));
+          else
+            b->add_statement(Statement::make_statement(*prhs, true));
 	  continue;
 	}
 
@@ -1655,46 +1670,23 @@
 						   location);
 }
 
-// An expression statement.
-
-class Expression_statement : public Statement
-{
- public:
-  Expression_statement(Expression* expr, bool is_ignored)
-    : Statement(STATEMENT_EXPRESSION, expr->location()),
-      expr_(expr), is_ignored_(is_ignored)
-  { }
-
-  Expression*
-  expr()
-  { return this->expr_; }
-
- protected:
-  int
-  do_traverse(Traverse* traverse)
-  { return this->traverse_expression(traverse, &this->expr_); }
-
-  void
-  do_determine_types()
-  { this->expr_->determine_type_no_context(); }
-
-  void
-  do_check_types(Gogo*);
+// Class Expression_statement.
 
-  bool
-  do_may_fall_through() const;
+// Constructor.
 
-  Bstatement*
-  do_get_backend(Translate_context* context);
+Expression_statement::Expression_statement(Expression* expr, bool is_ignored)
+  : Statement(STATEMENT_EXPRESSION, expr->location()),
+    expr_(expr), is_ignored_(is_ignored)
+{
+}
 
-  void
-  do_dump_statement(Ast_dump_context*) const;
+// Determine types.
 
- private:
-  Expression* expr_;
-  // Whether the value of this expression is being explicitly ignored.
-  bool is_ignored_;
-};
+void
+Expression_statement::do_determine_types()
+{
+  this->expr_->determine_type_no_context();
+}
 
 // Check the types of an expression statement.  The only check we do
 // is to possibly give an error about discarding the value of the
@@ -1707,8 +1699,8 @@
     this->expr_->discarding_value();
 }
 
-// An expression statement may fall through unless it is a call to a
-// function which does not return.
+// An expression statement is only a terminating statement if it is
+// a call to panic.
 
 bool
 Expression_statement::do_may_fall_through() const
@@ -1717,22 +1709,28 @@
   if (call != NULL)
     {
       const Expression* fn = call->fn();
-      const Func_expression* fe = fn->func_expression();
-      if (fe != NULL)
+      // panic is still an unknown named object.
+      const Unknown_expression* ue = fn->unknown_expression();
+      if (ue != NULL)
 	{
-	  const Named_object* no = fe->named_object();
-
-	  Function_type* fntype;
-	  if (no->is_function())
-	    fntype = no->func_value()->type();
-	  else if (no->is_function_declaration())
-	    fntype = no->func_declaration_value()->type();
-	  else
-	    fntype = NULL;
+	  Named_object* no = ue->named_object();
 
-	  // The builtin function panic does not return.
-	  if (fntype != NULL && fntype->is_builtin() && no->name() == "panic")
-	    return false;
+          if (no->is_unknown())
+            no = no->unknown_value()->real_named_object();
+          if (no != NULL)
+            {
+              Function_type* fntype;
+              if (no->is_function())
+                fntype = no->func_value()->type();
+              else if (no->is_function_declaration())
+                fntype = no->func_declaration_value()->type();
+              else
+                fntype = NULL;
+
+              // The builtin function panic does not return.
+              if (fntype != NULL && fntype->is_builtin() && no->name() == "panic")
+                return false;
+            }
 	}
     }
   return true;
@@ -1953,10 +1951,15 @@
 	      && results->begin()->type()->points_to() == NULL)))
     return false;
 
-  // If this calls something which is not a simple function, then we
+  // If this calls something that is not a simple function, then we
   // need a thunk.
   Expression* fn = this->call_->call_expression()->fn();
-  if (fn->interface_field_reference_expression() != NULL)
+  if (fn->func_expression() == NULL)
+    return false;
+
+  // If the function uses a closure, then we need a thunk.  FIXME: We
+  // could accept a zero argument function with a closure.
+  if (fn->func_expression()->closure() != NULL)
     return false;
 
   return true;
@@ -2496,7 +2499,11 @@
 
   Call_expression* ce = this->call_->call_expression();
 
-  *pfn = ce->fn();
+  Expression* fn = ce->fn();
+  Func_expression* fe = fn->func_expression();
+  go_assert(fe != NULL);
+  *pfn = Expression::make_func_code_reference(fe->named_object(),
+					      fe->location());
 
   const Expression_list* args = ce->args();
   if (args == NULL || args->empty())
@@ -2800,6 +2807,28 @@
   return new Return_statement(vals, location);
 }
 
+// Make a statement that returns the result of a call expression.
+
+Statement*
+Statement::make_return_from_call(Call_expression* call, Location location)
+{
+  size_t rc = call->result_count();
+  if (rc == 0)
+    return Statement::make_statement(call, true);
+  else
+    {
+      Expression_list* vals = new Expression_list();
+      if (rc == 1)
+	vals->push_back(call);
+      else
+	{
+	  for (size_t i = 0; i < rc; ++i)
+	    vals->push_back(Expression::make_call_result(call, i));
+	}
+      return Statement::make_return_statement(vals, location);
+    }
+}
+
 // A break or continue statement.
 
 class Bc_statement : public Statement
@@ -3700,9 +3729,6 @@
   void
   do_check_types(Gogo*);
 
-  bool
-  do_may_fall_through() const;
-
   Bstatement*
   do_get_backend(Translate_context*);
 
@@ -3746,22 +3772,6 @@
     this->set_is_error();
 }
 
-// Return whether this switch may fall through.
-
-bool
-Constant_switch_statement::do_may_fall_through() const
-{
-  if (this->clauses_ == NULL)
-    return true;
-
-  // If we have a break label, then some case needed it.  That implies
-  // that the switch statement as a whole can fall through.
-  if (this->break_label_ != NULL)
-    return true;
-
-  return this->clauses_->may_fall_through();
-}
-
 // Convert to GENERIC.
 
 Bstatement*
@@ -3911,6 +3921,22 @@
   ast_dump_context->ostream() << std::endl;
 }
 
+// Return whether this switch may fall through.
+
+bool
+Switch_statement::do_may_fall_through() const
+{
+  if (this->clauses_ == NULL)
+    return true;
+
+  // If we have a break label, then some case needed it.  That implies
+  // that the switch statement as a whole can fall through.
+  if (this->break_label_ != NULL)
+    return true;
+
+  return this->clauses_->may_fall_through();
+}
+
 // Make a switch statement.
 
 Switch_statement*
@@ -4050,6 +4076,27 @@
     }
 }
 
+// Return true if this type clause may fall through to the statements
+// following the switch.
+
+bool
+Type_case_clauses::Type_case_clause::may_fall_through() const
+{
+  if (this->is_fallthrough_)
+    {
+      // This case means that we automatically fall through to the
+      // next case (it's used for T1 in case T1, T2:).  It does not
+      // mean that we fall through to the end of the type switch as a
+      // whole.  There is sure to be a next case and that next case
+      // will determine whether we fall through to the statements
+      // after the type switch.
+      return false;
+    }
+  if (this->statements_ == NULL)
+    return true;
+  return this->statements_->may_fall_through();
+}
+
 // Dump the AST representation for a type case clause
 
 void
@@ -4148,6 +4195,25 @@
 			NULL);
 }
 
+// Return true if these clauses may fall through to the statements
+// following the switch statement.
+
+bool
+Type_case_clauses::may_fall_through() const
+{
+  bool found_default = false;
+  for (Type_clauses::const_iterator p = this->clauses_.begin();
+       p != this->clauses_.end();
+       ++p)
+    {
+      if (p->may_fall_through())
+	return true;
+      if (p->is_default())
+	found_default = true;
+    }
+  return !found_default;
+}
+
 // Dump the AST representation for case clauses (from a switch statement)
 
 void
@@ -4237,6 +4303,22 @@
   return Statement::make_block_statement(b, loc);
 }
 
+// Return whether this switch may fall through.
+
+bool
+Type_switch_statement::do_may_fall_through() const
+{
+  if (this->clauses_ == NULL)
+    return true;
+
+  // If we have a break label, then some case needed it.  That implies
+  // that the switch statement as a whole can fall through.
+  if (this->break_label_ != NULL)
+    return true;
+
+  return this->clauses_->may_fall_through();
+}
+
 // Return the break label for this type switch statement, creating it
 // if necessary.
 
@@ -4954,6 +5036,19 @@
   return Statement::make_block_statement(b, loc);
 }
 
+// Whether the select statement itself may fall through to the following
+// statement.
+
+bool
+Select_statement::do_may_fall_through() const
+{
+  // A select statement is terminating if no break statement
+  // refers to it and all of its clauses are terminating.
+  if (this->break_label_ != NULL)
+    return true;
+  return this->clauses_->may_fall_through();
+}
+
 // Return the backend representation for a select statement.
 
 Bstatement*
@@ -5114,6 +5209,20 @@
   this->continue_label_ = continue_label;
 }
 
+// Whether the overall statement may fall through.
+
+bool
+For_statement::do_may_fall_through() const
+{
+  // A for loop is terminating if it has no condition and
+  // no break statement.
+  if(this->cond_ != NULL)
+    return true;
+  if(this->break_label_ != NULL)
+    return true;
+  return false;
+}
+
 // Dump the AST representation for a for statement.
 
 void
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.h gcc-4.8.1/gcc/go/gofrontend/statements.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.h	2013-01-29 00:28:09.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/statements.h	2013-10-01 16:06:43.992554285 +0000
@@ -17,6 +17,7 @@
 class Unnamed_label;
 class Temporary_statement;
 class Variable_declaration_statement;
+class Expression_statement;
 class Return_statement;
 class Thunk_statement;
 class Label_statement;
@@ -207,6 +208,13 @@
   static Return_statement*
   make_return_statement(Expression_list*, Location);
 
+  // Make a statement that returns the result of a call expression.
+  // If the call does not return any results, this just returns the
+  // call expression as a statement, assuming that the function will
+  // end immediately afterward.
+  static Statement*
+  make_return_from_call(Call_expression*, Location);
+
   // Make a break statement.
   static Statement*
   make_break_statement(Unnamed_label* label, Location);
@@ -322,6 +330,14 @@
 			 STATEMENT_VARIABLE_DECLARATION>();
   }
 
+  // If this is an expression statement, return it.  Otherwise return
+  // NULL.
+  Expression_statement*
+  expression_statement()
+  {
+    return this->convert<Expression_statement, STATEMENT_EXPRESSION>();
+  }
+
   // If this is a return statement, return it.  Otherwise return NULL.
   Return_statement*
   return_statement()
@@ -629,6 +645,43 @@
   bool is_lowered_;
 };
 
+// An expression statement.
+
+class Expression_statement : public Statement
+{
+ public:
+  Expression_statement(Expression* expr, bool is_ignored);
+
+  Expression*
+  expr()
+  { return this->expr_; }
+
+ protected:
+  int
+  do_traverse(Traverse* traverse)
+  { return this->traverse_expression(traverse, &this->expr_); }
+
+  void
+  do_determine_types();
+
+  void
+  do_check_types(Gogo*);
+
+  bool
+  do_may_fall_through() const;
+
+  Bstatement*
+  do_get_backend(Translate_context* context);
+
+  void
+  do_dump_statement(Ast_dump_context*) const;
+
+ private:
+  Expression* expr_;
+  // Whether the value of this expression is being explicitly ignored.
+  bool is_ignored_;
+};
+
 // A send statement.
 
 class Send_statement : public Statement
@@ -894,8 +947,7 @@
   { this->clauses_->check_types(); }
 
   bool
-  do_may_fall_through() const
-  { return this->clauses_->may_fall_through(); }
+  do_may_fall_through() const;
 
   Bstatement*
   do_get_backend(Translate_context*);
@@ -1086,6 +1138,9 @@
   Statement*
   do_lower(Gogo*, Named_object*, Block*, Statement_inserter*);
 
+  bool
+  do_may_fall_through() const;
+
   Bstatement*
   do_get_backend(Translate_context*)
   { go_unreachable(); }
@@ -1399,6 +1454,9 @@
   void
   do_dump_statement(Ast_dump_context*) const;
 
+  bool
+  do_may_fall_through() const;
+
  private:
   // The value to switch on.  This may be NULL.
   Expression* val_;
@@ -1449,6 +1507,11 @@
   lower(Type*, Block*, Temporary_statement* descriptor_temp,
 	Unnamed_label* break_label) const;
 
+  // Return true if these clauses may fall through to the statements
+  // following the switch statement.
+  bool
+  may_fall_through() const;
+
   // Dump the AST representation to a dump context.
   void
   dump_clauses(Ast_dump_context*) const;
@@ -1493,6 +1556,12 @@
     lower(Type*, Block*, Temporary_statement* descriptor_temp,
 	  Unnamed_label* break_label, Unnamed_label** stmts_label) const;
 
+    // Return true if this clause may fall through to execute the
+    // statements following the switch statement.  This is not the
+    // same as whether this clause falls through to the next clause.
+    bool
+    may_fall_through() const;
+
     // Dump the AST representation to a dump context.
     void
     dump_clause(Ast_dump_context*) const;
@@ -1556,6 +1625,9 @@
   void
   do_dump_statement(Ast_dump_context*) const;
 
+  bool
+  do_may_fall_through() const;
+
  private:
   // The variable holding the value we are switching on.
   Named_object* var_;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.cc gcc-4.8.1/gcc/go/gofrontend/types.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/types.cc	2013-02-01 00:23:22.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/types.cc	2013-10-01 16:06:43.992554285 +0000
@@ -1298,8 +1298,8 @@
   // converting INITIALIZER.
 
   this->type_descriptor_var_ =
-    gogo->backend()->immutable_struct(var_name, is_common, initializer_btype,
-				      loc);
+    gogo->backend()->immutable_struct(var_name, false, is_common,
+				      initializer_btype, loc);
   if (phash != NULL)
     *phash = this->type_descriptor_var_;
 
@@ -1308,7 +1308,7 @@
   Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context));
 
   gogo->backend()->immutable_struct_set_init(this->type_descriptor_var_,
-					     var_name, is_common,
+					     var_name, false, is_common,
 					     initializer_btype, loc,
 					     binitializer);
 }
@@ -1528,26 +1528,6 @@
 
       // The type descriptor type.
 
-      Typed_identifier_list* params = new Typed_identifier_list();
-      params->push_back(Typed_identifier("key", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key_size", uintptr_type, bloc));
-
-      Typed_identifier_list* results = new Typed_identifier_list();
-      results->push_back(Typed_identifier("", uintptr_type, bloc));
-
-      Type* hashfn_type = Type::make_function_type(NULL, params, results, bloc);
-
-      params = new Typed_identifier_list();
-      params->push_back(Typed_identifier("key1", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key2", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key_size", uintptr_type, bloc));
-
-      results = new Typed_identifier_list();
-      results->push_back(Typed_identifier("", Type::lookup_bool_type(), bloc));
-
-      Type* equalfn_type = Type::make_function_type(NULL, params, results,
-						    bloc);
-
       Struct_type* type_descriptor_type =
 	Type::make_builtin_struct_type(10,
 				       "Kind", uint8_type,
@@ -1555,8 +1535,8 @@
 				       "fieldAlign", uint8_type,
 				       "size", uintptr_type,
 				       "hash", uint32_type,
-				       "hashfn", hashfn_type,
-				       "equalfn", equalfn_type,
+				       "hashfn", uintptr_type,
+				       "equalfn", uintptr_type,
 				       "string", pointer_string_type,
 				       "", pointer_uncommon_type,
 				       "ptrToThis",
@@ -1946,8 +1926,8 @@
   Named_object* equal_fn;
   this->type_functions(gogo, name, hash_fntype, equal_fntype, &hash_fn,
 		       &equal_fn);
-  vals->push_back(Expression::make_func_reference(hash_fn, NULL, bloc));
-  vals->push_back(Expression::make_func_reference(equal_fn, NULL, bloc));
+  vals->push_back(Expression::make_func_code_reference(hash_fn, bloc));
+  vals->push_back(Expression::make_func_code_reference(equal_fn, bloc));
 
   ++p;
   go_assert(p->is_field_name("string"));
@@ -2207,7 +2187,7 @@
 
   ++p;
   go_assert(p->is_field_name("tfn"));
-  vals->push_back(Expression::make_func_reference(no, NULL, bloc));
+  vals->push_back(Expression::make_func_code_reference(no, bloc));
 
   ++p;
   go_assert(p == fields->end());
@@ -2308,9 +2288,7 @@
       }
 
     case TYPE_NAMED:
-      // Begin converting this type to the backend representation.
-      // This will create a placeholder if necessary.
-      this->get_backend(gogo);
+      this->named_type()->convert(gogo);
       return this->named_type()->is_named_backend_type_size_known();
 
     case TYPE_FORWARD:
@@ -3407,6 +3385,16 @@
 Btype*
 Function_type::do_get_backend(Gogo* gogo)
 {
+  // When we do anything with a function value other than call it, it
+  // is represented as a pointer to a struct whose first field is the
+  // actual function.  So that is what we return as the type of a Go
+  // function.
+
+  Location loc = this->location();
+  Btype* struct_type =
+    gogo->backend()->placeholder_struct_type("__go_descriptor", loc);
+  Btype* ptr_struct_type = gogo->backend()->pointer_type(struct_type);
+
   Backend::Btyped_identifier breceiver;
   if (this->receiver_ != NULL)
     {
@@ -3453,8 +3441,15 @@
       go_assert(i == bresults.size());
     }
 
-  return gogo->backend()->function_type(breceiver, bparameters, bresults,
-					this->location());
+  Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
+						 bresults, loc);
+  std::vector<Backend::Btyped_identifier> fields(1);
+  fields[0].name = "code";
+  fields[0].btype = fntype;
+  fields[0].location = loc;
+  if (!gogo->backend()->set_placeholder_struct_type(struct_type, fields))
+    return gogo->backend()->error_type();
+  return ptr_struct_type;
 }
 
 // The type of a function type descriptor.
@@ -3826,6 +3821,47 @@
   return ret;
 }
 
+// Make a copy of a function type ignoring any receiver and adding a
+// closure parameter.
+
+Function_type*
+Function_type::copy_with_names() const
+{
+  Typed_identifier_list* new_params = new Typed_identifier_list();
+  const Typed_identifier_list* orig_params = this->parameters_;
+  if (orig_params != NULL && !orig_params->empty())
+    {
+      static int count;
+      char buf[50];
+      for (Typed_identifier_list::const_iterator p = orig_params->begin();
+	   p != orig_params->end();
+	   ++p)
+	{
+	  snprintf(buf, sizeof buf, "pt.%u", count);
+	  ++count;
+	  new_params->push_back(Typed_identifier(buf, p->type(),
+						 p->location()));
+	}
+    }
+
+  const Typed_identifier_list* orig_results = this->results_;
+  Typed_identifier_list* new_results;
+  if (orig_results == NULL || orig_results->empty())
+    new_results = NULL;
+  else
+    {
+      new_results = new Typed_identifier_list();
+      for (Typed_identifier_list::const_iterator p = orig_results->begin();
+	   p != orig_results->end();
+	   ++p)
+	new_results->push_back(Typed_identifier("", p->type(),
+						p->location()));
+    }
+
+  return Type::make_function_type(NULL, new_params, new_results,
+				  this->location());
+}
+
 // Make a function type.
 
 Function_type*
@@ -4168,6 +4204,22 @@
     }
 }
 
+// Return whether this field is an embedded built-in type.
+
+bool
+Struct_field::is_embedded_builtin(Gogo* gogo) const
+{
+  const std::string& name(this->field_name());
+  // We know that a field is an embedded type if it is anonymous.
+  // We can decide if it is a built-in type by checking to see if it is
+  // registered globally under the field's name.
+  // This allows us to distinguish between embedded built-in types and
+  // embedded types that are aliases to built-in types.
+  return (this->is_anonymous()
+          && !Gogo::is_hidden_name(name)
+          && gogo->lookup_global(name.c_str()) != NULL);
+}
+
 // Class Struct_type.
 
 // A hash table used to find identical unnamed structs so that they
@@ -4175,6 +4227,11 @@
 
 Struct_type::Identical_structs Struct_type::identical_structs;
 
+// A hash table used to merge method sets for identical unnamed
+// structs.
+
+Struct_type::Struct_method_tables Struct_type::struct_method_tables;
+
 // Traversal.
 
 int
@@ -4532,6 +4589,7 @@
 	      go_assert(sub != NULL);
 	    }
 	  sub->set_struct_expression(here);
+          sub->set_implicit(true);
 	}
       else if (subdepth > found_depth)
 	delete sub;
@@ -4638,9 +4696,24 @@
 				    const Interface_type* interface,
 				    bool is_pointer)
 {
+  std::pair<Struct_type*, Struct_type::Struct_method_table_pair*>
+    val(this, NULL);
+  std::pair<Struct_type::Struct_method_tables::iterator, bool> ins =
+    Struct_type::struct_method_tables.insert(val);
+
+  Struct_method_table_pair* smtp;
+  if (!ins.second)
+    smtp = ins.first->second;
+  else
+    {
+      smtp = new Struct_method_table_pair();
+      smtp->first = NULL;
+      smtp->second = NULL;
+      ins.first->second = smtp;
+    }
+
   return Type::interface_method_table(gogo, this, interface, is_pointer,
-				      &this->interface_method_tables_,
-				      &this->pointer_interface_method_tables_);
+				      &smtp->first, &smtp->second);
 }
 
 // Convert struct fields to the backend representation.  This is not
@@ -4781,11 +4854,16 @@
 
       ++q;
       go_assert(q->is_field_name("pkgPath"));
-      if (!Gogo::is_hidden_name(pf->field_name()))
-	fvals->push_back(Expression::make_nil(bloc));
+      bool is_embedded_builtin = pf->is_embedded_builtin(gogo);
+      if (!Gogo::is_hidden_name(pf->field_name()) && !is_embedded_builtin)
+        fvals->push_back(Expression::make_nil(bloc));
       else
 	{
-	  std::string n = Gogo::hidden_name_pkgpath(pf->field_name());
+	  std::string n;
+          if (is_embedded_builtin)
+            n = gogo->package_name();
+          else
+            n = Gogo::hidden_name_pkgpath(pf->field_name());
 	  Expression* s = Expression::make_string(n, bloc);
 	  fvals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
 	}
@@ -6227,7 +6305,8 @@
 
   std::string mangled_name = "__go_map_" + this->mangled_name(gogo);
   Btype* map_descriptor_btype = map_descriptor_type->get_backend(gogo);
-  Bvariable* bvar = gogo->backend()->immutable_struct(mangled_name, true,
+  Bvariable* bvar = gogo->backend()->immutable_struct(mangled_name, false,
+						      true,
 						      map_descriptor_btype,
 						      bloc);
 
@@ -6235,7 +6314,7 @@
   context.set_is_const();
   Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context));
 
-  gogo->backend()->immutable_struct_set_init(bvar, mangled_name, true,
+  gogo->backend()->immutable_struct_set_init(bvar, mangled_name, false, true,
 					     map_descriptor_btype, bloc,
 					     binitializer);
 
@@ -7569,7 +7648,7 @@
       // the child class.
       return this->do_bind_method(expr, location);
     }
-  return Expression::make_bound_method(expr, this->stub_, location);
+  return Expression::make_bound_method(expr, this, this->stub_, location);
 }
 
 // Return the named object associated with a method.  This may only be
@@ -7612,8 +7691,8 @@
 Named_method::do_bind_method(Expression* expr, Location location) const
 {
   Named_object* no = this->named_object_;
-  Bound_method_expression* bme = Expression::make_bound_method(expr, no,
-							       location);
+  Bound_method_expression* bme = Expression::make_bound_method(expr, this,
+							       no, location);
   // If this is not a local method, and it does not use a stub, then
   // the real method expects a different type.  We need to cast the
   // first argument.
@@ -8991,28 +9070,16 @@
   Call_expression* call = Expression::make_call(func, arguments, is_varargs,
 						location);
   call->set_hidden_fields_are_ok();
-  size_t count = call->result_count();
-  if (count == 0)
-    gogo->add_statement(Statement::make_statement(call, true));
-  else
-    {
-      Expression_list* retvals = new Expression_list();
-      if (count <= 1)
-	retvals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < count; ++i)
-	    retvals->push_back(Expression::make_call_result(call, i));
-	}
-      Return_statement* retstat = Statement::make_return_statement(retvals,
-								   location);
 
+  Statement* s = Statement::make_return_from_call(call, location);
+  Return_statement* retstat = s->return_statement();
+  if (retstat != NULL)
+    {
       // We can return values with hidden fields from a stub.  This is
       // necessary if the method is itself hidden.
       retstat->set_hidden_fields_are_ok();
-
-      gogo->add_statement(retstat);
     }
+  gogo->add_statement(s);
 }
 
 // Apply FIELD_INDEXES to EXPR.  The field indexes have to be applied
@@ -9202,7 +9269,11 @@
     }
   else
     {
-      if (!ambig1.empty())
+      if (Gogo::is_erroneous_name(name))
+	{
+	  // An error was already reported.
+	}
+      else if (!ambig1.empty())
 	error_at(location, "%qs is ambiguous via %qs and %qs",
 		 Gogo::message_name(name).c_str(), ambig1.c_str(),
 		 ambig2.c_str());
@@ -9353,13 +9424,18 @@
 	fnt = pf->type()->deref()->named_type();
       go_assert(fnt != NULL);
 
+      // Methods with pointer receivers on embedded field are
+      // inherited by the pointer to struct, and also by the struct
+      // type if the field itself is a pointer.
+      bool can_be_pointer = (receiver_can_be_pointer
+			     || pf->type()->points_to() != NULL);
       int sublevel = level == NULL ? 1 : *level + 1;
       bool sub_is_method;
       std::string subambig1;
       std::string subambig2;
       bool subfound = Type::find_field_or_method(fnt,
 						 name,
-						 receiver_can_be_pointer,
+						 can_be_pointer,
 						 seen,
 						 &sublevel,
 						 &sub_is_method,
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.h gcc-4.8.1/gcc/go/gofrontend/types.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/types.h	2013-02-01 00:23:22.000000000 +0000
+++ gcc-4.8.1/gcc/go/gofrontend/types.h	2013-10-01 16:06:43.992554285 +0000
@@ -523,6 +523,14 @@
   static Type*
   make_forward_declaration(Named_object*);
 
+  // Make a builtin struct type from a list of fields.
+  static Struct_type*
+  make_builtin_struct_type(int nfields, ...);
+
+  // Make a builtin named type.
+  static Named_type*
+  make_builtin_named_type(const char* name, Type* type);
+
   // Traverse a type.
   static int
   traverse(Type*, Traverse*);
@@ -1035,14 +1043,6 @@
   type_descriptor_constructor(Gogo*, int runtime_type_kind, Named_type*,
 			      const Methods*, bool only_value_methods);
 
-  // Make a builtin struct type from a list of fields.
-  static Struct_type*
-  make_builtin_struct_type(int nfields, ...);
-
-  // Make a builtin named type.
-  static Named_type*
-  make_builtin_named_type(const char* name, Type* type);
-
   // For the benefit of child class reflection string generation.
   void
   append_reflection(const Type* type, Gogo* gogo, std::string* ret) const
@@ -1789,6 +1789,12 @@
   Function_type*
   copy_with_receiver(Type*) const;
 
+  // Return a copy of this type ignoring any receiver and using dummy
+  // names for all parameters.  This is used for thunks for method
+  // values.
+  Function_type*
+  copy_with_names() const;
+
   static Type*
   make_function_type_descriptor_type();
 
@@ -1796,7 +1802,7 @@
   int
   do_traverse(Traverse*);
 
-  // A trampoline function has a pointer which matters for GC.
+  // A function descriptor may be allocated on the heap.
   bool
   do_has_pointer() const
   { return true; }
@@ -1920,6 +1926,10 @@
   bool
   is_field_name(const std::string& name) const;
 
+  // Return whether this struct field is an embedded built-in type.
+  bool
+  is_embedded_builtin(Gogo*) const;
+
   // The field type.
   Type*
   type() const
@@ -2031,8 +2041,7 @@
  public:
   Struct_type(Struct_field_list* fields, Location location)
     : Type(TYPE_STRUCT),
-      fields_(fields), location_(location), all_methods_(NULL),
-      interface_method_tables_(NULL), pointer_interface_method_tables_(NULL)
+      fields_(fields), location_(location), all_methods_(NULL)
   { }
 
   // Return the field NAME.  This only looks at local fields, not at
@@ -2190,6 +2199,16 @@
 
   static Identical_structs identical_structs;
 
+  // Used to manage method tables for identical unnamed structs.
+  typedef std::pair<Interface_method_tables*, Interface_method_tables*>
+    Struct_method_table_pair;
+
+  typedef Unordered_map_hash(Struct_type*, Struct_method_table_pair*,
+			     Type_hash_identical, Type_identical)
+    Struct_method_tables;
+
+  static Struct_method_tables struct_method_tables;
+
   // Used to avoid infinite loops in field_reference_depth.
   struct Saw_named_type
   {
@@ -2208,13 +2227,6 @@
   Location location_;
   // If this struct is unnamed, a list of methods.
   Methods* all_methods_;
-  // A mapping from interfaces to the associated interface method
-  // tables for this type.  Only used if this struct is unnamed.
-  Interface_method_tables* interface_method_tables_;
-  // A mapping from interfaces to the associated interface method
-  // tables for pointers to this type.  Only used if this struct is
-  // unnamed.
-  Interface_method_tables* pointer_interface_method_tables_;
 };
 
 // The type of an array.
diff -Naur gcc-4.8.1.orig/gcc/graphite-clast-to-gimple.c gcc-4.8.1/gcc/graphite-clast-to-gimple.c
--- gcc-4.8.1.orig/gcc/graphite-clast-to-gimple.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/graphite-clast-to-gimple.c	2013-10-01 16:07:00.564553809 +0000
@@ -1170,8 +1170,11 @@
   redirect_edge_succ_nodup (next_e, after);
   set_immediate_dominator (CDI_DOMINATORS, next_e->dest, next_e->src);
 
+  isl_set *domain = isl_set_from_cloog_domain (stmt->domain);
+  int scheduling_dim = isl_set_n_dim (domain);
+
   if (flag_loop_parallelize_all
-      && loop_is_parallel_p (loop, bb_pbb_mapping, level))
+      && loop_is_parallel_p (loop, bb_pbb_mapping, scheduling_dim))
     loop->can_be_parallel = true;
 
   return last_e;
diff -Naur gcc-4.8.1.orig/gcc/graphite-dependences.c gcc-4.8.1/gcc/graphite-dependences.c
--- gcc-4.8.1.orig/gcc/graphite-dependences.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/graphite-dependences.c	2013-10-01 16:07:00.564553809 +0000
@@ -297,7 +297,7 @@
 	      int depth)
 {
   bool res;
-  int idx, i;
+  int i;
   isl_space *space;
   isl_map *lex, *x;
   isl_constraint *ineq;
@@ -312,13 +312,12 @@
   space = isl_map_get_space (x);
   ineq = isl_inequality_alloc (isl_local_space_from_space (space));
 
-  idx = 2 * depth + 1;
-  for (i = 0; i < idx; i++)
+  for (i = 0; i < depth - 1; i++)
     lex = isl_map_equate (lex, isl_dim_in, i, isl_dim_out, i);
 
   /* in + 1 <= out  */
-  ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_out, idx, 1);
-  ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_in, idx, -1);
+  ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_out, depth - 1, 1);
+  ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_in, depth - 1, -1);
   ineq = isl_constraint_set_constant_si (ineq, -1);
   lex = isl_map_add_constraint (lex, ineq);
   x = isl_map_intersect (x, lex);
diff -Naur gcc-4.8.1.orig/gcc/ipa-cp.c gcc-4.8.1/gcc/ipa-cp.c
--- gcc-4.8.1.orig/gcc/ipa-cp.c	2013-05-09 11:56:32.000000000 +0000
+++ gcc-4.8.1/gcc/ipa-cp.c	2013-10-01 16:06:43.996554285 +0000
@@ -1507,7 +1507,8 @@
   tree otr_type;
   tree t;
 
-  if (param_index == -1)
+  if (param_index == -1
+      || known_vals.length () <= (unsigned int) param_index)
     return NULL_TREE;
 
   if (!ie->indirect_info->polymorphic)
@@ -1528,8 +1529,7 @@
 	    t = NULL;
 	}
       else
-	t = (known_vals.length () > (unsigned int) param_index
-	     ? known_vals[param_index] : NULL);
+	t = known_vals[param_index];
 
       if (t &&
 	  TREE_CODE (t) == ADDR_EXPR
diff -Naur gcc-4.8.1.orig/gcc/ipa-prop.c gcc-4.8.1/gcc/ipa-prop.c
--- gcc-4.8.1.orig/gcc/ipa-prop.c	2013-05-23 13:25:23.000000000 +0000
+++ gcc-4.8.1/gcc/ipa-prop.c	2013-10-01 16:06:43.996554285 +0000
@@ -678,13 +678,19 @@
   bool modified = false;
   ao_ref refd;
 
-  gcc_checking_assert (gimple_vuse (stmt));
   if (parm_ainfo && parm_ainfo->ref_modified)
     return false;
 
-  ao_ref_init (&refd, ref);
-  walk_aliased_vdefs (&refd, gimple_vuse (stmt), mark_modified, &modified,
-		      NULL);
+  if (optimize)
+    {
+      gcc_checking_assert (gimple_vuse (stmt));
+      ao_ref_init (&refd, ref);
+      walk_aliased_vdefs (&refd, gimple_vuse (stmt), mark_modified, &modified,
+			  NULL);
+    }
+  else
+    modified = true;
+
   if (parm_ainfo && modified)
     parm_ainfo->ref_modified = true;
   return !modified;
diff -Naur gcc-4.8.1.orig/gcc/ira.c gcc-4.8.1/gcc/ira.c
--- gcc-4.8.1.orig/gcc/ira.c	2013-05-23 10:36:55.000000000 +0000
+++ gcc-4.8.1/gcc/ira.c	2013-10-01 16:06:43.996554285 +0000
@@ -2863,6 +2863,28 @@
     }
 }
 
+/* Check whether the SUBREG is a paradoxical subreg and set the result
+   in PDX_SUBREGS.  */
+
+static int
+set_paradoxical_subreg (rtx *subreg, void *pdx_subregs)
+{
+  rtx reg;
+
+  if ((*subreg) == NULL_RTX)
+    return 1;
+  if (GET_CODE (*subreg) != SUBREG)
+    return 0;
+  reg = SUBREG_REG (*subreg);
+  if (!REG_P (reg))
+    return 0;
+
+  if (paradoxical_subreg_p (*subreg))
+    ((bool *)pdx_subregs)[REGNO (reg)] = true;
+
+  return 0;
+}
+
 /* In DEBUG_INSN location adjust REGs from CLEARED_REGS bitmap to the
    equivalent replacement.  */
 
@@ -2901,16 +2923,33 @@
   basic_block bb;
   int loop_depth;
   bitmap cleared_regs;
+  bool *pdx_subregs;
 
   /* We need to keep track of whether or not we recorded a LABEL_REF so
      that we know if the jump optimizer needs to be rerun.  */
   recorded_label_ref = 0;
 
+  /* Use pdx_subregs to show whether a reg is used in a paradoxical
+     subreg.  */
+  pdx_subregs = XCNEWVEC (bool, max_regno);
+
   reg_equiv = XCNEWVEC (struct equivalence, max_regno);
   grow_reg_equivs ();
 
   init_alias_analysis ();
 
+  /* Scan insns and set pdx_subregs[regno] if the reg is used in a
+     paradoxical subreg. Don't set such reg sequivalent to a mem,
+     because lra will not substitute such equiv memory in order to
+     prevent access beyond allocated memory for paradoxical memory subreg.  */
+  FOR_EACH_BB (bb)
+    FOR_BB_INSNS (bb, insn)
+      {
+	if (! INSN_P (insn))
+	  continue;
+	for_each_rtx (&insn, set_paradoxical_subreg, (void *)pdx_subregs);
+      }
+
   /* Scan the insns and find which registers have equivalences.  Do this
      in a separate scan of the insns because (due to -fcse-follow-jumps)
      a register can be set below its use.  */
@@ -3008,6 +3047,13 @@
 	      continue;
 	    }
 
+	  /* Don't set reg (if pdx_subregs[regno] == true) equivalent to a mem.  */
+	  if (MEM_P (src) && pdx_subregs[regno])
+	    {
+	      note_stores (set, no_equiv, NULL);
+	      continue;
+	    }
+
 	  note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
 
 	  /* cse sometimes generates function invariants, but doesn't put a
@@ -3166,7 +3212,8 @@
 	  && reg_equiv[regno].init_insns != const0_rtx
 	  && ! find_reg_note (XEXP (reg_equiv[regno].init_insns, 0),
 			      REG_EQUIV, NULL_RTX)
-	  && ! contains_replace_regs (XEXP (dest, 0)))
+	  && ! contains_replace_regs (XEXP (dest, 0))
+	  && ! pdx_subregs[regno])
 	{
 	  rtx init_insn = XEXP (reg_equiv[regno].init_insns, 0);
 	  if (validate_equiv_mem (init_insn, src, dest)
@@ -3357,6 +3404,7 @@
 
   end_alias_analysis ();
   free (reg_equiv);
+  free (pdx_subregs);
   return recorded_label_ref;
 }
 
diff -Naur gcc-4.8.1.orig/gcc/lra-assigns.c gcc-4.8.1/gcc/lra-assigns.c
--- gcc-4.8.1.orig/gcc/lra-assigns.c	2013-02-15 19:17:02.000000000 +0000
+++ gcc-4.8.1/gcc/lra-assigns.c	2013-10-01 16:06:43.996554285 +0000
@@ -116,6 +116,11 @@
 /* Map regno to the corresponding regno assignment info.  */
 static struct regno_assign_info *regno_assign_info;
 
+/* All inherited, subreg or optional pseudos created before last spill
+   sub-pass.  Such pseudos are permitted to get memory instead of hard
+   regs.  */
+static bitmap_head non_reload_pseudos;
+
 /* Process a pseudo copy with execution frequency COPY_FREQ connecting
    REGNO1 and REGNO2 to form threads.  */
 static void
@@ -194,6 +199,15 @@
   if ((diff = (ira_class_hard_regs_num[cl1]
 	       - ira_class_hard_regs_num[cl2])) != 0)
     return diff;
+  if ((diff
+       = (ira_reg_class_max_nregs[cl2][lra_reg_info[r2].biggest_mode]
+	  - ira_reg_class_max_nregs[cl1][lra_reg_info[r1].biggest_mode])) != 0
+      /* The code below executes rarely as nregs == 1 in most cases.
+	 So we should not worry about using faster data structures to
+	 check reload pseudos.  */
+      && ! bitmap_bit_p (&non_reload_pseudos, r1)
+      && ! bitmap_bit_p (&non_reload_pseudos, r2))
+    return diff;
   if ((diff = (regno_assign_info[regno_assign_info[r2].first].freq
 	       - regno_assign_info[regno_assign_info[r1].first].freq)) != 0)
     return diff;
@@ -1156,7 +1170,6 @@
   rtx insn;
   basic_block bb;
   bitmap_head changed_insns, do_not_assign_nonreload_pseudos;
-  bitmap_head non_reload_pseudos;
   unsigned int u;
   bitmap_iterator bi;
   bool reload_p;
@@ -1265,7 +1278,7 @@
 		    }
 		}
 	    }
-	  lra_assert (asm_p);
+	  gcc_assert (asm_p);
 	  break;
 	}
       /* This is a very rare event.  We can not assign a hard
diff -Naur gcc-4.8.1.orig/gcc/lra-constraints.c gcc-4.8.1/gcc/lra-constraints.c
--- gcc-4.8.1.orig/gcc/lra-constraints.c	2013-05-02 19:16:29.000000000 +0000
+++ gcc-4.8.1/gcc/lra-constraints.c	2013-10-01 16:06:43.996554285 +0000
@@ -1388,7 +1388,7 @@
   for (nalt = 0; nalt < n_alternatives; nalt++)
     {
       /* Loop over operands for one constraint alternative.  */
-#ifdef HAVE_ATTR_enabled
+#if HAVE_ATTR_enabled
       if (curr_id->alternative_enabled_p != NULL
 	  && ! curr_id->alternative_enabled_p[nalt])
 	continue;
@@ -4396,7 +4396,7 @@
 	  bitmap_clear_bit (&live_regs, reg->regno);
       /* Mark each used value as live.  */
       for (reg = curr_id->regs; reg != NULL; reg = reg->next)
-	if (reg->type == OP_IN
+	if (reg->type != OP_OUT
 	    && bitmap_bit_p (&check_only_regs, reg->regno))
 	  bitmap_set_bit (&live_regs, reg->regno);
       /* It is quite important to remove dead move insns because it
diff -Naur gcc-4.8.1.orig/gcc/omp-low.c gcc-4.8.1/gcc/omp-low.c
--- gcc-4.8.1.orig/gcc/omp-low.c	2013-05-16 10:45:55.000000000 +0000
+++ gcc-4.8.1/gcc/omp-low.c	2013-10-01 16:06:44.000554285 +0000
@@ -836,6 +836,7 @@
   DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (var);
   DECL_IGNORED_P (copy) = DECL_IGNORED_P (var);
   DECL_CONTEXT (copy) = DECL_CONTEXT (var);
+  TREE_NO_WARNING (copy) = TREE_NO_WARNING (var);
   TREE_USED (copy) = 1;
   DECL_SEEN_IN_BIND_EXPR_P (copy) = 1;
 
@@ -5009,8 +5010,7 @@
     {
       /* If we are not inside a combined parallel+sections region,
 	 call GOMP_sections_start.  */
-      t = build_int_cst (unsigned_type_node,
-			 exit_reachable ? len - 1 : len);
+      t = build_int_cst (unsigned_type_node, len - 1);
       u = builtin_decl_explicit (BUILT_IN_GOMP_SECTIONS_START);
       stmt = gimple_build_call (u, 1, t);
     }
diff -Naur gcc-4.8.1.orig/gcc/passes.c gcc-4.8.1/gcc/passes.c
--- gcc-4.8.1.orig/gcc/passes.c	2013-02-20 15:19:13.000000000 +0000
+++ gcc-4.8.1/gcc/passes.c	2013-10-01 16:06:44.000554285 +0000
@@ -1531,18 +1531,21 @@
       /* Perform simple scalar cleanup which is constant/copy propagation.  */
       NEXT_PASS (pass_ccp);
       NEXT_PASS (pass_object_sizes);
+      /* Fold remaining builtins.  */
+      NEXT_PASS (pass_fold_builtins);
       /* Copy propagation also copy-propagates constants, this is necessary
-         to forward object-size results properly.  */
+         to forward object-size and builtin folding results properly.  */
       NEXT_PASS (pass_copy_prop);
+      NEXT_PASS (pass_dce);
       NEXT_PASS (pass_asan);
       NEXT_PASS (pass_tsan);
       NEXT_PASS (pass_rename_ssa_copies);
-      NEXT_PASS (pass_dce);
-      /* Fold remaining builtins.  */
-      NEXT_PASS (pass_fold_builtins);
       /* ???  We do want some kind of loop invariant motion, but we possibly
          need to adjust LIM to be more friendly towards preserving accurate
 	 debug information here.  */
+      /* Split critical edges before late uninit warning to reduce the
+         number of false positives from it.  */
+      NEXT_PASS (pass_split_crit_edges);
       NEXT_PASS (pass_late_warn_uninitialized);
       NEXT_PASS (pass_uncprop);
       NEXT_PASS (pass_local_pure_const);
diff -Naur gcc-4.8.1.orig/gcc/recog.c gcc-4.8.1/gcc/recog.c
--- gcc-4.8.1.orig/gcc/recog.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/recog.c	2013-10-01 16:06:44.000554285 +0000
@@ -1949,9 +1949,6 @@
     (strictp ? strict_memory_address_addr_space_p
 	     : memory_address_addr_space_p);
   unsigned int mode_sz = GET_MODE_SIZE (mode);
-#ifdef POINTERS_EXTEND_UNSIGNED
-  enum machine_mode pointer_mode = targetm.addr_space.pointer_mode (as);
-#endif
 
   if (CONSTANT_ADDRESS_P (y))
     return 1;
@@ -1962,6 +1959,13 @@
   if (mode_dependent_address_p (y, as))
     return 0;
 
+  enum machine_mode address_mode = GET_MODE (y);
+  if (address_mode == VOIDmode)
+    address_mode = targetm.addr_space.address_mode (as);
+#ifdef POINTERS_EXTEND_UNSIGNED
+  enum machine_mode pointer_mode = targetm.addr_space.pointer_mode (as);
+#endif
+
   /* ??? How much offset does an offsettable BLKmode reference need?
      Clearly that depends on the situation in which it's being used.
      However, the current situation in which we test 0xffffffff is
@@ -1977,7 +1981,7 @@
       int good;
 
       y1 = *y2;
-      *y2 = plus_constant (GET_MODE (y), *y2, mode_sz - 1);
+      *y2 = plus_constant (address_mode, *y2, mode_sz - 1);
       /* Use QImode because an odd displacement may be automatically invalid
 	 for any wider mode.  But it should be valid for a single byte.  */
       good = (*addressp) (QImode, y, as);
@@ -1998,20 +2002,20 @@
   if (GET_CODE (y) == LO_SUM
       && mode != BLKmode
       && mode_sz <= GET_MODE_ALIGNMENT (mode) / BITS_PER_UNIT)
-    z = gen_rtx_LO_SUM (GET_MODE (y), XEXP (y, 0),
-			plus_constant (GET_MODE (y), XEXP (y, 1),
+    z = gen_rtx_LO_SUM (address_mode, XEXP (y, 0),
+			plus_constant (address_mode, XEXP (y, 1),
 				       mode_sz - 1));
 #ifdef POINTERS_EXTEND_UNSIGNED
   /* Likewise for a ZERO_EXTEND from pointer_mode.  */
   else if (POINTERS_EXTEND_UNSIGNED > 0
 	   && GET_CODE (y) == ZERO_EXTEND
 	   && GET_MODE (XEXP (y, 0)) == pointer_mode)
-    z = gen_rtx_ZERO_EXTEND (GET_MODE (y),
+    z = gen_rtx_ZERO_EXTEND (address_mode,
 			     plus_constant (pointer_mode, XEXP (y, 0),
 					    mode_sz - 1));
 #endif
   else
-    z = plus_constant (GET_MODE (y), y, mode_sz - 1);
+    z = plus_constant (address_mode, y, mode_sz - 1);
 
   /* Use QImode because an odd displacement may be automatically invalid
      for any wider mode.  But it should be valid for a single byte.  */
@@ -3116,32 +3120,53 @@
       regno = raw_regno;
 #endif
 
-      /* Don't allocate fixed registers.  */
-      if (fixed_regs[regno])
-	continue;
-      /* Don't allocate global registers.  */
-      if (global_regs[regno])
-	continue;
-      /* Make sure the register is of the right class.  */
-      if (! TEST_HARD_REG_BIT (reg_class_contents[cl], regno))
-	continue;
-      /* And can support the mode we need.  */
+      /* Can it support the mode we need?  */
       if (! HARD_REGNO_MODE_OK (regno, mode))
 	continue;
-      /* And that we don't create an extra save/restore.  */
-      if (! call_used_regs[regno] && ! df_regs_ever_live_p (regno))
-	continue;
-      if (! targetm.hard_regno_scratch_ok (regno))
-	continue;
-
-      /* And we don't clobber traceback for noreturn functions.  */
-      if ((regno == FRAME_POINTER_REGNUM || regno == HARD_FRAME_POINTER_REGNUM)
-	  && (! reload_completed || frame_pointer_needed))
-	continue;
 
       success = 1;
-      for (j = hard_regno_nregs[regno][mode] - 1; j >= 0; j--)
+      for (j = 0; success && j < hard_regno_nregs[regno][mode]; j++)
 	{
+	  /* Don't allocate fixed registers.  */
+	  if (fixed_regs[regno + j])
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* Don't allocate global registers.  */
+	  if (global_regs[regno + j])
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* Make sure the register is of the right class.  */
+	  if (! TEST_HARD_REG_BIT (reg_class_contents[cl], regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* And that we don't create an extra save/restore.  */
+	  if (! call_used_regs[regno + j] && ! df_regs_ever_live_p (regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+
+	  if (! targetm.hard_regno_scratch_ok (regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+
+	  /* And we don't clobber traceback for noreturn functions.  */
+	  if ((regno + j == FRAME_POINTER_REGNUM
+	       || regno + j == HARD_FRAME_POINTER_REGNUM)
+	      && (! reload_completed || frame_pointer_needed))
+	    {
+	      success = 0;
+	      break;
+	    }
+
 	  if (TEST_HARD_REG_BIT (*reg_set, regno + j)
 	      || TEST_HARD_REG_BIT (live, regno + j))
 	    {
@@ -3149,6 +3174,7 @@
 	      break;
 	    }
 	}
+
       if (success)
 	{
 	  add_to_hard_reg_set (reg_set, mode, regno);
diff -Naur gcc-4.8.1.orig/gcc/recog.h gcc-4.8.1/gcc/recog.h
--- gcc-4.8.1.orig/gcc/recog.h	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/recog.h	2013-10-01 16:06:44.000554285 +0000
@@ -256,7 +256,57 @@
 
 typedef int (*insn_operand_predicate_fn) (rtx, enum machine_mode);
 typedef const char * (*insn_output_fn) (rtx *, rtx);
-typedef rtx (*insn_gen_fn) (rtx, ...);
+
+struct insn_gen_fn
+{
+  typedef rtx (*f0) (void);
+  typedef rtx (*f1) (rtx);
+  typedef rtx (*f2) (rtx, rtx);
+  typedef rtx (*f3) (rtx, rtx, rtx);
+  typedef rtx (*f4) (rtx, rtx, rtx, rtx);
+  typedef rtx (*f5) (rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f6) (rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f7) (rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f8) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f9) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f10) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f11) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f12) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f13) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f14) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f15) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+  typedef rtx (*f16) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
+
+  typedef f0 stored_funcptr;
+
+  rtx operator () (void) const { return ((f0)func) (); }
+  rtx operator () (rtx a0) const { return ((f1)func) (a0); }
+  rtx operator () (rtx a0, rtx a1) const { return ((f2)func) (a0, a1); }
+  rtx operator () (rtx a0, rtx a1, rtx a2) const { return ((f3)func) (a0, a1, a2); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3) const { return ((f4)func) (a0, a1, a2, a3); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4) const { return ((f5)func) (a0, a1, a2, a3, a4); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5) const { return ((f6)func) (a0, a1, a2, a3, a4, a5); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6) const { return ((f7)func) (a0, a1, a2, a3, a4, a5, a6); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7) const { return ((f8)func) (a0, a1, a2, a3, a4, a5, a6, a7); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8) const { return ((f9)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9) const { return ((f10)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10) const { return ((f11)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11) const { return ((f12)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12) const { return ((f13)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13) const { return ((f14)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13, rtx a14) const { return ((f15)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); }
+  rtx operator () (rtx a0, rtx a1, rtx a2, rtx a3, rtx a4, rtx a5, rtx a6, rtx a7, rtx a8, rtx a9, rtx a10, rtx a11, rtx a12, rtx a13, rtx a14, rtx a15) const { return ((f16)func) (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); }
+
+  // This is for compatibility of code that invokes functions like
+  //   (*funcptr) (arg)
+  insn_gen_fn operator * (void) const { return *this; }
+
+  // The wrapped function pointer must be public and there must not be any
+  // constructors.  Otherwise the insn_data_d struct initializers generated
+  // by genoutput.c will result in static initializer functions, which defeats
+  // the purpose of the generated insn_data_d array.
+  stored_funcptr func;
+};
 
 struct insn_operand_data
 {
diff -Naur gcc-4.8.1.orig/gcc/simplify-rtx.c gcc-4.8.1/gcc/simplify-rtx.c
--- gcc-4.8.1.orig/gcc/simplify-rtx.c	2013-03-05 06:04:14.000000000 +0000
+++ gcc-4.8.1/gcc/simplify-rtx.c	2013-10-01 16:06:44.000554285 +0000
@@ -2784,6 +2784,7 @@
           HOST_WIDE_INT mask = INTVAL (trueop1) << count;
 
           if (mask >> count == INTVAL (trueop1)
+	      && trunc_int_for_mode (mask, mode) == mask
               && (mask & nonzero_bits (XEXP (op0, 0), mode)) == 0)
 	    return simplify_gen_binary (ASHIFTRT, mode,
 					plus_constant (mode, XEXP (op0, 0),
diff -Naur gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c
--- gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,15 @@
+/* PR middle-end/58257 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -Wall" } */
+
+int
+foo (int n)
+{
+  int a[10][10];
+  int x, y;
+#pragma omp parallel for collapse(2)	/* { dg-bogus "may be used uninitialized in this function" } */
+  for (x = 0; x < n; x++)		/* { dg-bogus "may be used uninitialized in this function" } */
+    for (y = 0; y < n; y++)
+      a[x][y] = x + y * y;
+  return a[0][0];
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,16 @@
+// PR c++/57901
+// { dg-require-effective-target c++11 }
+
+struct Z {
+    Z()         = default;
+    Z(Z const&) = default;
+    constexpr Z(Z&&) {} /* non-trivial (constexpr) move ctor */
+};
+
+template<typename T>
+constexpr int fn0(T v) { return 0; }
+template<typename T>
+constexpr int fn (T v) { return fn0(v); }
+
+constexpr auto t0 = fn0(Z()); // OK!
+constexpr auto t  = fn (Z()); // error! (GCC 4.8.1)
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,20 @@
+// PR c++/53211
+// { dg-do compile { target c++11 } }
+
+template<typename A, typename B>
+  struct is_same { static const bool value = false; };
+
+template<typename A>
+  struct is_same<A, A> { static const bool value = true; };
+
+template<typename... Args>
+void func(Args... args)
+{
+  int arr[] = { args... };
+  static_assert (is_same<decltype(arr), int[sizeof...(Args)]>::value, "");
+}
+
+int main()
+{
+  func(1, 2, 3, 4);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,24 @@
+// PR c++/57319
+// { dg-require-effective-target c++11 }
+
+namespace N1 {
+  struct A { };
+  struct B: virtual A { };
+  struct C: virtual B { };
+
+  struct D: C
+  {
+    void operator= (D &);
+  };
+}
+
+namespace N2 {
+  struct A { A& operator=(A&&); };
+  struct B: virtual A { };	// { dg-warning "move assignment" }
+  struct C: virtual B { };	// { dg-warning "move assignment" }
+
+  struct D: C
+  {
+    void operator= (D &);
+  };
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,20 @@
+// { dg-do run }
+// { dg-require-effective-target c++11 }
+
+struct A
+{
+  int i;
+  A() = default;
+  A(int i): i{i} { }
+  ~A() {}
+};
+
+int main(int argc, char **argv)
+{
+  { int i[4] = { 42, 42, 42, 42 }; }
+  {
+    A a[4] = { argc };
+    if (a[1].i != 0)
+      __builtin_abort ();
+  }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,9 @@
+// PR c++/56930
+// { dg-require-effective-target c++11 }
+// { dg-options -Wconversion }
+
+int main()
+{
+  int x = sizeof(int);
+  int y { sizeof(int) };
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,24 @@
+// PR c++/57526
+// { dg-require-effective-target c++11 }
+
+template<class T>
+struct A
+{
+  void bar( ) { }
+
+  void foo( )
+  {
+    auto* this_ptr = this;
+    auto lc = [&]( )
+      {
+	this_ptr->bar();
+      };
+    lc();
+  }
+};
+
+int main()
+{
+  A<int> a;
+  a.foo();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,30 @@
+// PR c++/58083
+// { dg-do compile { target c++11 } }
+
+namespace details {
+struct iterator_concept_checker
+{
+    typedef char yes_type;
+    typedef char (&no_type)[2];
+
+    template <typename T>
+    static no_type test(...);
+
+    template <typename T>
+    static yes_type test(
+        int*
+	, void (*)(T) = [](T it)
+        {
+            auto copy = T{it};                              // copy constructible
+            copy = it;                                      // copy assignable
+            copy.~T();                                      // destroyable
+            ++it;                                           // incrementable
+        }
+      );
+};
+}
+
+int main()
+{
+  details::iterator_concept_checker::test<int>(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,26 @@
+// PR c++/57437
+// { dg-require-effective-target c++11 }
+
+struct A {
+  int i;
+
+  A(): i(42) {}
+  A(const A&) = default;
+  A(A&& a): i(a.i) { a.i = 0; }
+};
+
+int main()
+{
+  A x;
+
+  auto y = [x] () mutable {
+    x.i++;
+    return x;
+  };
+
+  if (y().i != 43)
+    __builtin_abort ();
+
+  if (y().i != 44)
+    __builtin_abort ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,87 @@
+// PR c++/57645
+// { dg-do compile { target c++11 } }
+
+struct Thrower
+{
+  ~Thrower() noexcept(false) { throw 1; }
+};
+
+struct ExplicitA
+{
+  ~ExplicitA() {}
+
+  Thrower t;
+};
+
+struct ExplicitB
+{
+  ~ExplicitB();
+
+  Thrower t;
+};
+
+ExplicitB::~ExplicitB() {}
+
+struct ExplicitC
+{
+  ~ExplicitC() = default;
+
+  Thrower t;
+};
+
+struct ExplicitD
+{
+  ~ExplicitD();
+
+  Thrower t;
+};
+
+ExplicitD::~ExplicitD() = default;
+
+struct NoThrower
+{
+  ~NoThrower() noexcept(true) {}
+};
+
+struct ExplicitE
+{
+  ~ExplicitE() {}
+
+  NoThrower t;
+};
+
+struct ExplicitF
+{
+  ~ExplicitF();
+
+  NoThrower t;
+};
+
+ExplicitF::~ExplicitF() {}
+
+struct ExplicitG
+{
+  ~ExplicitG() = default;
+
+  NoThrower t;
+};
+
+struct ExplicitH
+{
+  ~ExplicitH();
+
+  NoThrower t;
+};
+
+ExplicitH::~ExplicitH() = default;
+
+#define SA(X) static_assert(X, #X)
+
+SA( !noexcept(ExplicitA()) );
+SA( !noexcept(ExplicitB()) );
+SA( !noexcept(ExplicitC()) );
+SA( !noexcept(ExplicitD()) );
+SA( noexcept(ExplicitE()) );
+SA( noexcept(ExplicitF()) );
+SA( noexcept(ExplicitG()) );
+SA( noexcept(ExplicitH()) );
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,17 @@
+// { dg-options "-std=c++11 -Wall -Wextra" }
+
+template<class T>
+void f(T t, void* = 0)  // { dg-warning "unused parameter" }
+{
+}
+
+template<class T>
+auto g(T t) -> decltype(f(t))
+{
+  f(t);
+}
+
+int main()
+{
+  g(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,18 @@
+// PR c++/57825
+// { dg-do compile { target c++11 } }
+
+template<typename T>
+struct target_class
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...)>
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...) &>
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...) &&>
+{};
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,14 @@
+// PR c++/57545
+
+template<typename T, long unsigned int N>
+struct array {
+    T data[N];
+};
+
+template<typename T>
+struct derived {
+    typedef long unsigned int size_type;
+    static const size_type n = 42;
+
+    array<int, n> a;
+};
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,9 @@
+// PR c++/57551
+
+extern unsigned long ADDR;   
+
+unsigned long f(){
+  const unsigned long* const var=&ADDR;
+  const unsigned long retval=var[1];
+  return retval;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,199 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-require-ifunc "" }  */
+
+__attribute__((target("default")))
+int foo(void) { return 1; }
+__attribute__((target("128bit-long-double")))
+int foo(void) { return 1; }
+__attribute__((target("80387")))
+int foo(void) { return 1; }
+__attribute__((target("96bit-long-double")))
+int foo(void) { return 1; }
+__attribute__((target("long-double-80")))
+int foo(void) { return 1; }
+__attribute__((target("long-double-64")))
+int foo(void) { return 1; }
+__attribute__((target("accumulate-outgoing-args")))
+int foo(void) { return 1; }
+__attribute__((target("align-double")))
+int foo(void) { return 1; }
+__attribute__((target("align-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("fancy-math-387")))
+int foo(void) { return 1; }
+__attribute__((target("force-drap")))
+int foo(void) { return 1; }
+__attribute__((target("fp-ret-in-387")))
+int foo(void) { return 1; }
+__attribute__((target("hard-float")))
+int foo(void) { return 1; }
+__attribute__((target("ieee-fp")))
+int foo(void) { return 1; }
+__attribute__((target("inline-all-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("inline-stringops-dynamically")))
+int foo(void) { return 1; }
+__attribute__((target("intel-syntax")))
+int foo(void) { return 1; }
+__attribute__((target("ms-bitfields")))
+int foo(void) { return 1; }
+__attribute__((target("no-align-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("no-fancy-math-387")))
+int foo(void) { return 1; }
+__attribute__((target("no-push-args")))
+int foo(void) { return 1; }
+__attribute__((target("no-red-zone")))
+int foo(void) { return 1; }
+__attribute__((target("omit-leaf-frame-pointer")))
+int foo(void) { return 1; }
+__attribute__((target("pc32")))
+int foo(void) { return 1; }
+__attribute__((target("pc64")))
+int foo(void) { return 1; }
+__attribute__((target("pc80")))
+int foo(void) { return 1; }
+__attribute__((target("push-args")))
+int foo(void) { return 1; }
+__attribute__((target("red-zone")))
+int foo(void) { return 1; }
+__attribute__((target("rtd")))
+int foo(void) { return 1; }
+__attribute__((target("soft-float")))
+int foo(void) { return 1; }
+__attribute__((target("sseregparm")))
+int foo(void) { return 1; }
+__attribute__((target("stackrealign")))
+int foo(void) { return 1; }
+__attribute__((target("stack-arg-probe")))
+int foo(void) { return 1; }
+__attribute__((target("tls-direct-seg-refs")))
+int foo(void) { return 1; }
+__attribute__((target("vect8-ret-in-mem")))
+int foo(void) { return 1; }
+__attribute__((target("recip")))
+int foo(void) { return 1; }
+__attribute__((target("cld")))
+int foo(void) { return 1; }
+__attribute__((target("vzeroupper")))
+int foo(void) { return 1; }
+__attribute__((target("dispatch-scheduler")))
+int foo(void) { return 1; }
+__attribute__((target("prefer-avx128")))
+int foo(void) { return 1; }
+__attribute__((target("32")))
+int foo(void) { return 1; }
+__attribute__((target("64")))
+int foo(void) { return 1; }
+__attribute__((target("x32")))
+int foo(void) { return 1; }
+__attribute__((target("mmx")))
+int foo(void) { return 1; }
+__attribute__((target("3dnow")))
+int foo(void) { return 1; }
+__attribute__((target("3dnowa")))
+int foo(void) { return 1; }
+__attribute__((target("sse")))
+int foo(void) { return 1; }
+__attribute__((target("sse2")))
+int foo(void) { return 1; }
+__attribute__((target("sse3")))
+int foo(void) { return 1; }
+__attribute__((target("ssse3")))
+int foo(void) { return 1; }
+__attribute__((target("sse4.1")))
+int foo(void) { return 1; }
+__attribute__((target("sse4.2")))
+int foo(void) { return 1; }
+__attribute__((target("sse4")))
+int foo(void) { return 1; }
+__attribute__((target("no-sse4")))
+int foo(void) { return 1; }
+__attribute__((target("sse5")))
+int foo(void) { return 1; }
+__attribute__((target("avx")))
+int foo(void) { return 1; }
+__attribute__((target("avx2")))
+int foo(void) { return 1; }
+__attribute__((target("fma")))
+int foo(void) { return 1; }
+__attribute__((target("sse4a")))
+int foo(void) { return 1; }
+__attribute__((target("fma4")))
+int foo(void) { return 1; }
+__attribute__((target("xop")))
+int foo(void) { return 1; }
+__attribute__((target("lwp")))
+int foo(void) { return 1; }
+__attribute__((target("abm")))
+int foo(void) { return 1; }
+__attribute__((target("popcnt")))
+int foo(void) { return 1; }
+__attribute__((target("bmi")))
+int foo(void) { return 1; }
+__attribute__((target("bmi2")))
+int foo(void) { return 1; }
+__attribute__((target("lzcnt")))
+int foo(void) { return 1; }
+__attribute__((target("hle")))
+int foo(void) { return 1; }
+__attribute__((target("rdseed")))
+int foo(void) { return 1; }
+__attribute__((target("prfchw")))
+int foo(void) { return 1; }
+__attribute__((target("adx")))
+int foo(void) { return 1; }
+__attribute__((target("fxsr")))
+int foo(void) { return 1; }
+__attribute__((target("xsave")))
+int foo(void) { return 1; }
+__attribute__((target("xsaveopt")))
+int foo(void) { return 1; }
+__attribute__((target("tbm")))
+int foo(void) { return 1; }
+__attribute__((target("cx16")))
+int foo(void) { return 1; }
+__attribute__((target("sahf")))
+int foo(void) { return 1; }
+__attribute__((target("movbe")))
+int foo(void) { return 1; }
+__attribute__((target("crc32")))
+int foo(void) { return 1; }
+__attribute__((target("aes")))
+int foo(void) { return 1; }
+__attribute__((target("pclmul")))
+int foo(void) { return 1; }
+__attribute__((target("sse2avx")))
+int foo(void) { return 1; }
+__attribute__((target("fsgsbase")))
+int foo(void) { return 1; }
+__attribute__((target("rdrnd")))
+int foo(void) { return 1; }
+__attribute__((target("f16c")))
+int foo(void) { return 1; }
+__attribute__((target("fentry")))
+int foo(void) { return 1; }
+__attribute__((target("8bit-idiv")))
+int foo(void) { return 1; }
+__attribute__((target("avx256-split-unaligned-load")))
+int foo(void) { return 1; }
+__attribute__((target("avx256-split-unaligned-store")))
+int foo(void) { return 1; }
+__attribute__((target("rtm")))
+int foo(void) { return 1; }
+//---------------
+
+#include <stdio.h>
+    int main (void)
+    {
+      int result;
+      result = foo();
+      printf("Result is %d\n", result);
+      return result;
+    }
+
+/* { dg-prune-output "attribute.* is unknown" } */
+/* { dg-prune-output "redefinition of int foo" } */
+/* { dg-prune-output "previous declaration of int foo" } */
+/* { dg-prune-output "int foo.* previously defined here" } */
+/* { dg-prune-output "No dispatcher found for" } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57735.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57735.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57735.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57735.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,145 @@
+/* { dg-do compile { target arm*-*-* } } */
+/* { dg-options "-march=armv5te -marm  -mtune=xscale -mfloat-abi=soft -O1" } */
+
+typedef unsigned int size_t;
+__extension__
+typedef long long int int64_t;
+namespace WTF {
+    template<typename T> class RefPtr {
+    public:
+        inline T* operator->() const { return m_ptr; }
+        T* m_ptr;
+    };
+}
+using WTF::RefPtr;
+namespace JSC {
+    class ExecState;
+    class JSString;
+    typedef int64_t EncodedJSValue;
+    class JSValue {
+    public:
+        static EncodedJSValue encode(JSValue);
+        JSString* toString(ExecState*) const;
+    };
+}
+typedef unsigned char LChar;
+    typedef short unsigned int UChar;
+namespace WTF {
+    template<typename T, size_t inlineCapacity = 0>
+    class Vector {
+    public:
+        template<typename U> bool tryAppend(const U*, size_t);
+    };
+}
+using WTF::Vector;
+namespace WTF {
+template<typename CharType> inline bool isASCIIDigit(CharType c)
+{
+}
+template<typename CharType> inline bool isASCIIHexDigit(CharType c)
+{
+    return isASCIIDigit(c) || ((c | 0x20) >= 'a' && (c | 0x20) <= 'f');
+}
+    class StringImpl;
+}
+using WTF::StringImpl;
+namespace WTF {
+class StringImpl {
+public:
+    unsigned length() const { return m_length; }
+    unsigned m_length;
+};
+}
+namespace JSC {
+    class Register {
+    };
+class UString {
+public:
+    unsigned length() const
+    {
+        return m_impl->length();
+    }
+    const LChar* characters8() const
+    {
+    }
+    RefPtr<StringImpl> m_impl;
+};
+    class ExecState : private Register {
+    public:
+        JSValue argument(size_t argument)
+        {
+        }
+    };
+    class JSCell {
+    };
+    class JSString : public JSCell {
+    public:
+        const UString& value(ExecState*) const;
+    };
+class JSStringBuilder {
+public:
+    void append(const UChar u)
+    {
+        m_okay &= buffer16.tryAppend(&u, 1);
+    }
+    Vector<UChar, 64> buffer16;
+    bool m_okay;
+};
+template <typename T>
+class Lexer {
+public:
+    static unsigned char convertHex(int c1, int c2);
+};
+}
+namespace WTF {
+namespace Unicode {
+    int UTF8SequenceLength(char);
+    int decodeUTF8Sequence(const char*);
+}
+}
+using namespace WTF;
+using namespace Unicode;
+namespace JSC {
+template <typename CharType>
+static JSValue decode(ExecState* exec, const CharType* characters, int length, const char* doNotUnescape, bool strict)
+{
+    JSStringBuilder builder;
+    int k = 0;
+    UChar u = 0;
+    while (k < length) {
+        const CharType* p = characters + k;
+        CharType c = *p;
+        if (c == '%') {
+            int charLen = 0;
+            if (k <= length - 3 && isASCIIHexDigit(p[1]) && isASCIIHexDigit(p[2])) {
+                const char b0 = Lexer<CharType>::convertHex(p[1], p[2]);
+                const int sequenceLen = UTF8SequenceLength(b0);
+                if (sequenceLen && k <= length - sequenceLen * 3) {
+                    charLen = sequenceLen * 3;
+                    char sequence[5];
+                    if (charLen != 0) {
+                        const int character = decodeUTF8Sequence(sequence);
+                        if (character < 0 || character >= 0x110000)
+                            charLen = 0;
+                        else if (character >= 0x10000) {
+                            builder.append(static_cast<UChar>(0xD800 | ((character - 0x10000) >> 10)));
+                        } else
+                            u = static_cast<UChar>(character);
+                    }
+                }
+            }
+        }
+    }
+}
+static JSValue decode(ExecState* exec, const char* doNotUnescape, bool strict)
+{
+    UString str = exec->argument(0).toString(exec)->value(exec);
+        return decode(exec, str.characters8(), str.length(), doNotUnescape, strict);
+}
+EncodedJSValue globalFuncDecodeURI(ExecState* exec)
+{
+    static const char do_not_unescape_when_decoding_URI[] =
+        "#$&+,/:;=?@";
+    return JSValue::encode(decode(exec, do_not_unescape_when_decoding_URI, true));
+}
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,22 @@
+// PR tree-optimization/58006
+// { dg-do compile }
+// { dg-require-effective-target pthread }
+// { dg-options "-Ofast -ftree-parallelize-loops=2" }
+
+extern "C" float sqrtf (float);
+
+struct S
+{
+  float i, j;
+  float foo () const { return sqrtf (i * i + j * j); }
+  S () : i (1), j (1) {}
+};
+
+void
+bar (int a, int b)
+{
+  int i;
+  float f;
+  for (i = a; i < b; i++)
+    f = S ().foo ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,14 @@
+// PR tree-optimization/58165
+// { dg-do compile }
+// { dg-options "-O2" }
+
+extern "C" float sqrtf (float);
+
+struct A { A (); ~A (); };
+
+void
+foo (double d)
+{
+  A a;
+  sqrtf (d);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,6 @@
+// PR c++/57532
+
+int main()
+{
+    return (int() & int());
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/using4.C gcc-4.8.1/gcc/testsuite/g++.dg/parse/using4.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/using4.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/using4.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,20 @@
+// PR c++/58457
+
+struct allocator
+{
+  void operator delete (void*);
+  void* operator new (__SIZE_TYPE__, void*);
+};
+
+struct type : public allocator
+{
+  type() {}
+  using allocator::operator new;
+  using allocator::operator delete;
+};
+
+int main()
+{
+  new (0) type;
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,226 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-m32 -O2 -fno-omit-frame-pointer -fPIC -std=gnu++11" } */
+
+typedef int int32;
+typedef long long int64;
+typedef unsigned int uint32;
+typedef unsigned long long uint64;
+namespace std {
+  typedef __SIZE_TYPE__ size_t;
+  template<class _CharT>
+  struct char_traits;
+  template<typename _Tp>
+  inline _Tp* __addressof(_Tp& __r) noexcept {
+    return reinterpret_cast<_Tp*> (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
+  }
+  template<typename _Tp>
+  struct remove_reference {
+    typedef _Tp type;
+  };
+  template<typename _Tp>
+  constexpr _Tp&& forward(typename std::remove_reference<_Tp>::type& __t) noexcept {
+    return static_cast<_Tp&&>(__t);
+  }
+}
+typedef __SIZE_TYPE__ size_t;
+extern "C++" {
+  inline void* operator new(std::size_t, void* __p) noexcept {
+    return __p;
+  }
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Tp>
+    class new_allocator {
+  public:
+    typedef size_t size_type;
+    typedef _Tp* pointer;
+  };
+}
+namespace std {
+  template<typename _Tp>
+  using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
+  template<typename _Tp>
+  class allocator
+    : public __allocator_base<_Tp> {
+  public:
+    typedef size_t size_type;
+    template<typename _Tp1>
+    struct rebind {
+      typedef allocator<_Tp1> other;
+    };
+  };
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    class __sso_string_base;
+  template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Alloc = std::allocator<_CharT>, template <typename, typename, typename> class _Base = __sso_string_base>
+    class __versa_string;
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    struct __vstring_utility {
+    typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
+    template<typename _Alloc1>
+    struct _Alloc_hider
+      : public _Alloc1 {
+      _Alloc_hider(const _Alloc1& __a, _CharT* __ptr)
+  : _Alloc1(__a), _M_p(__ptr) {
+      }
+      _CharT* _M_p;
+    };
+  };
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    class __sso_string_base
+      : protected __vstring_utility<_CharT, _Traits, _Alloc> {
+    typedef __vstring_utility<_CharT, _Traits, _Alloc> _Util_Base;
+    typedef typename _Util_Base::_CharT_alloc_type _CharT_alloc_type;
+    typedef typename _CharT_alloc_type::size_type size_type;
+  private:
+    typename _Util_Base::template _Alloc_hider<_CharT_alloc_type>
+    _M_dataplus;
+    size_type _M_string_length;
+    enum {
+      _S_local_capacity = 15 };
+    union {
+      _CharT _M_local_data[_S_local_capacity + 1];
+    };
+    template<typename _InIterator>
+    void _M_construct(_InIterator __beg, _InIterator __end);
+  public:
+    size_type _M_max_size() const;
+    _CharT* _M_data() const {
+      return _M_dataplus._M_p;
+    }
+    size_type _M_length() const {
+      return _M_string_length;
+    }
+    __sso_string_base(const __sso_string_base& __rcs);
+    const _CharT_alloc_type& _M_get_allocator() const {
+    }
+  };
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    __sso_string_base<_CharT, _Traits, _Alloc>:: __sso_string_base(const __sso_string_base& __rcs)
+    : _M_dataplus(__rcs._M_get_allocator(), _M_local_data) {
+    _M_construct(__rcs._M_data(), __rcs._M_data() + __rcs._M_length());
+  }
+  template<typename _CharT, typename _Traits, typename _Alloc, template <typename, typename, typename> class _Base>
+    class __versa_string
+      : private _Base<_CharT, _Traits, _Alloc> {
+  };
+}
+template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Alloc = std::allocator<_CharT> >
+class basic_string
+  : public __gnu_cxx::__versa_string<_CharT, _Traits, _Alloc> {
+};
+typedef basic_string<char> string;
+namespace std __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Alloc, typename _Tp>
+    class __alloctr_rebind_helper {
+  public:
+    static const bool __value = true;
+  };
+  template<typename _Alloc, typename _Tp, bool = __alloctr_rebind_helper<_Alloc, _Tp>::__value>
+    struct __alloctr_rebind;
+  template<typename _Alloc, typename _Tp> struct __alloctr_rebind<_Alloc, _Tp, true>
+  {
+    typedef typename _Alloc::template rebind<_Tp>::other __type;
+  };
+  template<typename _Alloc>
+    struct allocator_traits {
+  private:
+    template<typename _Tp>
+    static typename _Tp::pointer _S_pointer_helper(_Tp*);
+    typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer;
+  public:
+    typedef __pointer pointer;
+    template<typename _Tp>
+    using rebind_alloc = typename __alloctr_rebind<_Alloc, _Tp>::__type;
+  };
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Alloc> struct __alloc_traits
+    : std::allocator_traits<_Alloc>
+  {
+    typedef std::allocator_traits<_Alloc> _Base_type;
+    template<typename _Tp>
+    struct rebind {
+      typedef typename _Base_type::template rebind_alloc<_Tp>
+      other;
+    };
+  };
+}
+namespace std __attribute__ ((__visibility__ ("default"))) {
+  template<typename _T1, typename... _Args>
+    inline void _Construct(_T1* __p, _Args&&... __args) {
+    ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...);
+  }
+  template<typename _Tp, typename _Alloc>
+    struct _Vector_base {
+    typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
+    typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer pointer;
+    struct _Vector_impl
+      : public _Tp_alloc_type {
+      pointer _M_start;
+      pointer _M_finish;
+    };
+  public:
+    _Vector_impl _M_impl;
+  };
+  template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
+    class vector
+      : protected _Vector_base<_Tp, _Alloc> {
+    typedef _Vector_base<_Tp, _Alloc> _Base;
+  public:
+    typedef _Tp value_type;
+    typedef typename _Base::pointer pointer;
+    typedef size_t size_type;
+    size_type size() const;
+    void push_back(const value_type& __x) {
+      _M_emplace_back_aux(__x);
+    }
+    template<typename... _Args>
+    void _M_emplace_back_aux(_Args&&... __args);
+    size_type _M_check_len();
+  };
+  template<typename _Tp, typename _Alloc> template<typename... _Args>
+    void vector<_Tp, _Alloc>:: _M_emplace_back_aux(_Args&&... __args) {
+    const size_type __len = _M_check_len();
+    pointer __new_start(static_cast<pointer>(::operator new(__len * sizeof(_Tp))));
+    pointer __new_temp(__new_start + size());
+    ::new((void *)__new_temp) _Tp(std::forward<_Args>(__args)...);
+    pointer __cur = __new_start;
+    pointer __first = this->_M_impl._M_start;
+    pointer __last = this->_M_impl._M_finish;
+    for (;
+	 __first != __last;
+	 ++__first, ++__cur) std::_Construct(std::__addressof(*__cur), *__first);
+  }
+}
+using std::vector;
+class DL {
+public:
+  struct ChunkId {
+    int64 disk_id;
+    uint64 handle;
+    uint64 version;
+    string capability;
+    ChunkId();
+  };
+  struct ChunkInfo {
+    ChunkId id;
+    uint64 mtime;
+    uint32 length;
+    int32 space_used;
+  };
+};
+class FDB {
+  void CollectChunk(const DL::ChunkInfo& chunk, const int& location);
+private:
+  struct ChunkData {
+    int location;
+    DL::ChunkInfo chunk_info;
+  };
+  vector<ChunkData> chunk_data_;
+};
+void FDB::CollectChunk(const DL::ChunkInfo& chunk, const int& location) {
+  ChunkData chunk_data;
+  chunk_data_.push_back( chunk_data);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,12 @@
+// PR c++/58022
+
+template <class T> struct A { };
+template <class T> A<T> & operator<< (A<T>&, T);
+template <class T> class foo;
+template <class T> A<char> & operator<<(A<char>& o, const foo<T>& l);
+template <class T> class foo  {
+    friend A<char>& operator<< <T> (A<char>& o, const foo<T>& l);
+};
+class bar;
+foo<bar> fb;
+class bar { virtual void baz()=0; };
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,17 @@
+// PR c++/57550
+
+template <bool (double)> bool Wrapper(double);
+template <class T> void MakeHandler(bool (T));
+
+class Handler
+{
+public:
+  template <typename T> static void SetPrimitiveHandlers()
+  {
+    MakeHandler(Wrapper<Append<T> >);
+  }
+private :
+  template <typename T> static bool Append(T);
+};
+
+template void Handler::SetPrimitiveHandlers<double>();
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,8 @@
+// PR c++/57771
+// { dg-do compile }
+
+template <int N>
+struct S {};
+
+S <static_cast <int> (4>>2)> s1;
+S <reinterpret_cast <int> (4>>2)> s2;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,26 @@
+// PR c++/58119
+
+template <class T>
+struct A
+{
+  operator T*();
+  template <class U>
+  operator A<U>();
+};
+
+template <class T>
+struct B
+{
+  operator T*();
+  template <class U>
+  operator A<U>*();
+};
+
+int main()
+{
+  A<int> a;
+  delete a;
+
+  B<int> b;
+  delete b;			// { dg-error "template|delete" }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/inherit9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/inherit9.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/inherit9.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/inherit9.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,15 @@
+// PR c++/58273
+
+class A {};
+class B
+{
+  int goo(A);
+};
+template<typename E>
+class D : public B
+{
+  void foo(A t)
+  {
+    int const i(B::goo(t));
+  }
+};
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,15 @@
+// PR c++/57831
+
+struct A {
+  void f();
+};
+template <class T> struct B : T {
+  typedef T base;
+  using base::f;         // If I write "using B<T>::f" it's ok
+  void g( ) {
+    B<T>::f();           // This is OK as expected
+    (this->*&T::f)();    // This is also OK
+    (this->*&B<T>::f)(); // This causes error
+  }
+};
+template struct B< A >;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/uninit-pred-4.C gcc-4.8.1/gcc/testsuite/g++.dg/uninit-pred-4.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/uninit-pred-4.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/uninit-pred-4.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -Og" } */
+
+int pop ();
+int pop_first_bucket;
+
+int my_pop ()
+{
+  int out;  // { dg-bogus "uninitialized" "uninitialized variable warning" }
+
+  while (pop_first_bucket)
+    if (pop_first_bucket && (out = pop()))
+      return out;
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/warn/Wunused-var-21.C gcc-4.8.1/gcc/testsuite/g++.dg/warn/Wunused-var-21.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/warn/Wunused-var-21.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/g++.dg/warn/Wunused-var-21.C	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,31 @@
+// PR c++/58325
+// { dg-do compile }
+// { dg-options "-Wunused" }
+
+void
+f1 ()
+{
+  int *volatile a = new int[1];
+  delete[] a;
+}
+
+void
+f2 ()
+{
+  int *b = new int[1];
+  delete[] b;
+}
+
+void
+f3 ()
+{
+  int *volatile c = new int;
+  delete c;
+}
+
+void
+f4 ()
+{
+  int *d = new int;
+  delete d;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58088.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58088.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58088.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58088.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,5 @@
+int
+bar (int i)
+{
+  return 1 | ((i * 2) & 254);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,8 @@
+/* PR tree-optimization/58164 */
+
+int
+foo (void)
+{
+  int x = 0;
+  goto *&x;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,5 @@
+# Force bigger stack alignment for PowerPC EABI targets.
+if { [istarget "powerpc-*-eabi*"] } {
+    set additional_flags "-mno-eabi"
+}
+return 0
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,12 @@
+/* PR target/57568 */
+
+extern void abort (void);
+int a[6][9] = { }, b = 1, *c = &a[3][5];
+
+int
+main ()
+{
+  if (b && (*c = *c + *c))
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,31 @@
+/* PR rtl-optimization/57829 */
+
+__attribute__((noinline, noclone))
+int
+f1 (int k)
+{
+  return 2 | ((k - 1) >> ((int) sizeof (int) * __CHAR_BIT__ - 1));
+}
+
+__attribute__((noinline, noclone))
+long int
+f2 (long int k)
+{
+  return 2L | ((k - 1L) >> ((int) sizeof (long int) * __CHAR_BIT__ - 1));
+}
+
+__attribute__((noinline, noclone))
+int
+f3 (int k)
+{
+  k &= 63;
+  return 4 | ((k + 2) >> 5);
+}
+
+int
+main ()
+{
+  if (f1 (1) != 2 || f2 (1L) != 2L || f3 (63) != 6 || f3 (1) != 4)
+    __builtin_abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,32 @@
+/* PR tree-optimization/58209 */
+
+extern void abort (void);
+typedef __INTPTR_TYPE__ T;
+T buf[1024];
+
+T *
+foo (T n)
+{
+  if (n == 0)
+    return (T *) buf;
+  T s = (T) foo (n - 1);
+  return (T *) (s + sizeof (T));
+}
+
+T *
+bar (T n)
+{
+  if (n == 0)
+    return buf;
+  return foo (n - 1) + 1;
+}
+
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 27; i++)
+    if (foo (i) != buf + i || bar (i) != buf + i)
+      abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-1.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,102 @@
+/* PR tree-optimization/58277 */
+
+extern void abort (void);
+static int a[2];
+int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p;
+static int **volatile j = &e;
+const int m;
+char u;
+
+int
+bar ()
+{
+  u = 0;
+  return m;
+}
+
+__attribute__((noinline, noclone)) void
+baz ()
+{
+  asm ("");
+}
+
+static int
+foo ()
+{
+  int t1;
+  g = bar ();
+  if (l)
+    ;
+  else
+    for (;; h++)
+      {
+	*i = 0;
+	o = *e = 0;
+	if (p)
+	  {
+	    f = 0;
+	    return 0;
+	  }
+	for (;; k++)
+	  {
+	    int *t2 = 0;
+	    int *const *t3[] = {
+	      0, 0, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, &t2, &t2, &t2,
+	      &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0,
+	      0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, &t2,
+	      &t2, &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
+	      &t2, 0, 0, 0, &t2, 0, &t2, 0, 0, &t2, 0, 0, 0, 0,
+	      0, &t2, 0, 0, 0, 0, &t2, &t2, 0, 0, 0, 0, &t2, 0,
+	      0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
+	      &t2, &t2
+	    };
+	    int *const **t4[] = {&t3[0]};
+	    **i = 0;
+	    if (**j)
+	      break;
+	    u = 0;
+	  }
+	*i = *j;
+	t1 = 0;
+	for (; t1 < 5; t1++)
+	  *i = *j;
+      }
+  *j = 0;
+  return 1;
+}
+
+int
+main ()
+{
+  int t5;
+  a[0] = 1;
+  {
+    int *t6[6] = {&d, &d};
+    for (n = 1; n; n--)
+      if (foo())
+	{
+	  int *t7[] = {0};
+	  d = 0;
+	  for (; u < 1; u++)
+	    *i = *j;
+	  *i = 0;
+	  *i = 0;
+	  int t8[5] = {0};
+	  *i = &t8[0];
+	  int *const *t9 = &t6[0];
+	  int *const **t10 = &t9;
+	  *t10 = &t7[0];
+	}
+  }
+  u = 0;
+  for (; b; b++)
+    for (t5 = 0; t5 < 10; t5++)
+      c = a[a[a[a[a[a[a[a[c]]]]]]]];
+
+  baz ();
+
+  if (!a[a[a[a[a[a[a[a[a[a[a[a[a[a[a[u]]]]]]]]]]]]]]])
+    abort ();
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,98 @@
+/* PR tree-optimization/58277 */
+
+extern void abort (void);
+static int a[1], b, c, e, i, j, k, m, q[] = { 1, 1 }, t;
+int volatile d;
+int **r;
+static int ***volatile s = &r;
+int f, g, o, x;
+static int *volatile h = &f, *p;
+char n;
+
+static void
+fn1 ()
+{
+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
+  b = a[a[b]];
+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
+  b = a[a[a[a[a[a[a[a[b]]]]]]]];
+}
+
+static int
+fn2 ()
+{
+  n = 0;
+  for (; g; t++)
+    {
+      for (;; m++)
+	{
+	  d;
+	  int *u;
+	  int **v[] = {
+	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	    0, 0, 0, 0, 0, &u, 0, 0, 0, 0, &u, &u, &u, &u, &u, &u, &u, 0,
+	    &u, 0, &u, &u, &u, 0, &u, &u, 0, &u, &u, &u, &u, 0, &u, &u, &u,
+	    &u, &u, 0, &u, &u, 0, &u, 0, &u, &u, 0, &u, &u, &u, &u, &u, 0,
+	    &u, 0, 0, 0, &u, &u, &u, 0, 0, &u, &u, &u, 0, &u, 0, &u, &u
+	  };
+	  int ***w[] = { &v[0] };
+	  if (*p)
+	    break;
+	  return 0;
+	}
+      *h = 0;
+    }
+  return 1;
+}
+
+static void
+fn3 ()
+{
+  int *y[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+  for (; i; i++)
+    x = 0;
+  if (fn2 ())
+    {
+      int *z[6] = { };
+      for (; n < 1; n++)
+	*h = 0;
+      int t1[7];
+      for (; c; c++)
+	o = t1[0];
+      for (; e; e--)
+	{
+	  int **t2 = &y[0];
+	  int ***t3 = &t2;
+	  *t3 = &z[0];
+	}
+    }
+  *s = 0;
+  for (n = 0;; n = 0)
+    {
+      int t4 = 0;
+      if (q[n])
+	break;
+      *r = &t4;
+    }
+}
+
+int
+main ()
+{
+  for (; j; j--)
+    a[0] = 0;
+  fn3 ();
+  for (; k; k++)
+    fn1 ();
+  fn1 ();
+ 
+  if (n)
+    abort ();
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58364.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58364.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58364.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58364.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,17 @@
+/* PR tree-optimization/58364 */
+
+int a = 1, b, c;
+
+int
+foo (int x)
+{
+  return x < 0 ? 1 : x;
+}
+
+int
+main ()
+{
+  if (foo (a > c == (b = 0)))
+    __builtin_abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58365.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58365.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58365.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58365.c	2013-10-01 16:06:44.000554285 +0000
@@ -0,0 +1,35 @@
+/* PR rtl-optimization/58365 */
+
+extern void abort (void);
+
+struct S
+{
+  volatile int a;
+  int b, c, d, e;
+} f;
+static struct S g, h;
+int i = 1;
+
+char
+foo (void)
+{
+  return i;
+}
+
+static struct S
+bar (void)
+{
+  if (foo ())
+    return f;
+  return g;
+}
+
+int
+main ()
+{
+  h = bar ();
+  f.b = 1;
+  if (h.b != 0)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58385.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58385.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58385.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58385.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,21 @@
+/* PR tree-optimization/58385 */
+
+extern void abort (void);
+
+int a, b = 1;
+
+int
+foo ()
+{
+  b = 0;
+  return 0;
+}
+
+int
+main ()
+{
+  ((0 || a) & foo () >= 0) <= 1 && 1;
+  if (b)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58564.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58564.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58564.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58564.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,14 @@
+/* PR middle-end/58564 */
+
+extern void abort (void);
+int a, b;
+short *c, **d = &c;
+
+int
+main ()
+{
+  b = (0, 0 > ((&c == d) & (1 && (a ^ 1)))) | 0U;
+  if (b != 0)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58574.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58574.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58574.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58574.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,219 @@
+/* PR target/58574 */
+
+__attribute__((noinline, noclone)) double
+foo (double x)
+{
+  double t;
+  switch ((int) x)
+    {
+    case 0:
+      t = 2 * x - 1;
+      return 0.70878e-3 + (0.71234e-3 + (0.35779e-5 + (0.17403e-7 + (0.81710e-10 + (0.36885e-12 + 0.15917e-14 * t) * t) * t) * t) * t) * t;
+    case 1:
+      t = 2 * x - 3;
+      return 0.21479e-2 + (0.72686e-3 + (0.36843e-5 + (0.18071e-7 + (0.85496e-10 + (0.38852e-12 + 0.16868e-14 * t) * t) * t) * t) * t) * t;
+    case 2:
+      t = 2 * x - 5;
+      return 0.36165e-2 + (0.74182e-3 + (0.37948e-5 + (0.18771e-7 + (0.89484e-10 + (0.40935e-12 + 0.17872e-14 * t) * t) * t) * t) * t) * t;
+    case 3:
+      t = 2 * x - 7;
+      return 0.51154e-2 + (0.75722e-3 + (0.39096e-5 + (0.19504e-7 + (0.93687e-10 + (0.43143e-12 + 0.18939e-14 * t) * t) * t) * t) * t) * t;
+    case 4:
+      t = 2 * x - 9;
+      return 0.66457e-2 + (0.77310e-3 + (0.40289e-5 + (0.20271e-7 + (0.98117e-10 + (0.45484e-12 + 0.20076e-14 * t) * t) * t) * t) * t) * t;
+    case 5:
+      t = 2 * x - 11;
+      return 0.82082e-2 + (0.78946e-3 + (0.41529e-5 + (0.21074e-7 + (0.10278e-9 + (0.47965e-12 + 0.21285e-14 * t) * t) * t) * t) * t) * t;
+    case 6:
+      t = 2 * x - 13;
+      return 0.98039e-2 + (0.80633e-3 + (0.42819e-5 + (0.21916e-7 + (0.10771e-9 + (0.50595e-12 + 0.22573e-14 * t) * t) * t) * t) * t) * t;
+    case 7:
+      t = 2 * x - 15;
+      return 0.11433e-1 + (0.82372e-3 + (0.44160e-5 + (0.22798e-7 + (0.11291e-9 + (0.53386e-12 + 0.23944e-14 * t) * t) * t) * t) * t) * t;
+    case 8:
+      t = 2 * x - 17;
+      return 0.13099e-1 + (0.84167e-3 + (0.45555e-5 + (0.23723e-7 + (0.11839e-9 + (0.56346e-12 + 0.25403e-14 * t) * t) * t) * t) * t) * t;
+    case 9:
+      t = 2 * x - 19;
+      return 0.14800e-1 + (0.86018e-3 + (0.47008e-5 + (0.24694e-7 + (0.12418e-9 + (0.59486e-12 + 0.26957e-14 * t) * t) * t) * t) * t) * t;
+    case 10:
+      t = 2 * x - 21;
+      return 0.16540e-1 + (0.87928e-3 + (0.48520e-5 + (0.25711e-7 + (0.13030e-9 + (0.62820e-12 + 0.28612e-14 * t) * t) * t) * t) * t) * t;
+    case 11:
+      t = 2 * x - 23;
+      return 0.18318e-1 + (0.89900e-3 + (0.50094e-5 + (0.26779e-7 + (0.13675e-9 + (0.66358e-12 + 0.30375e-14 * t) * t) * t) * t) * t) * t;
+    case 12:
+      t = 2 * x - 25;
+      return 0.20136e-1 + (0.91936e-3 + (0.51734e-5 + (0.27900e-7 + (0.14357e-9 + (0.70114e-12 + 0.32252e-14 * t) * t) * t) * t) * t) * t;
+    case 13:
+      t = 2 * x - 27;
+      return 0.21996e-1 + (0.94040e-3 + (0.53443e-5 + (0.29078e-7 + (0.15078e-9 + (0.74103e-12 + 0.34251e-14 * t) * t) * t) * t) * t) * t;
+    case 14:
+      t = 2 * x - 29;
+      return 0.23898e-1 + (0.96213e-3 + (0.55225e-5 + (0.30314e-7 + (0.15840e-9 + (0.78340e-12 + 0.36381e-14 * t) * t) * t) * t) * t) * t;
+    case 15:
+      t = 2 * x - 31;
+      return 0.25845e-1 + (0.98459e-3 + (0.57082e-5 + (0.31613e-7 + (0.16646e-9 + (0.82840e-12 + 0.38649e-14 * t) * t) * t) * t) * t) * t;
+    case 16:
+      t = 2 * x - 33;
+      return 0.27837e-1 + (0.10078e-2 + (0.59020e-5 + (0.32979e-7 + (0.17498e-9 + (0.87622e-12 + 0.41066e-14 * t) * t) * t) * t) * t) * t;
+    case 17:
+      t = 2 * x - 35;
+      return 0.29877e-1 + (0.10318e-2 + (0.61041e-5 + (0.34414e-7 + (0.18399e-9 + (0.92703e-12 + 0.43639e-14 * t) * t) * t) * t) * t) * t;
+    case 18:
+      t = 2 * x - 37;
+      return 0.31965e-1 + (0.10566e-2 + (0.63151e-5 + (0.35924e-7 + (0.19353e-9 + (0.98102e-12 + 0.46381e-14 * t) * t) * t) * t) * t) * t;
+    case 19:
+      t = 2 * x - 39;
+      return 0.34104e-1 + (0.10823e-2 + (0.65354e-5 + (0.37512e-7 + (0.20362e-9 + (0.10384e-11 + 0.49300e-14 * t) * t) * t) * t) * t) * t;
+    case 20:
+      t = 2 * x - 41;
+      return 0.36295e-1 + (0.11089e-2 + (0.67654e-5 + (0.39184e-7 + (0.21431e-9 + (0.10994e-11 + 0.52409e-14 * t) * t) * t) * t) * t) * t;
+    case 21:
+      t = 2 * x - 43;
+      return 0.38540e-1 + (0.11364e-2 + (0.70058e-5 + (0.40943e-7 + (0.22563e-9 + (0.11642e-11 + 0.55721e-14 * t) * t) * t) * t) * t) * t;
+    case 22:
+      t = 2 * x - 45;
+      return 0.40842e-1 + (0.11650e-2 + (0.72569e-5 + (0.42796e-7 + (0.23761e-9 + (0.12332e-11 + 0.59246e-14 * t) * t) * t) * t) * t) * t;
+    case 23:
+      t = 2 * x - 47;
+      return 0.43201e-1 + (0.11945e-2 + (0.75195e-5 + (0.44747e-7 + (0.25030e-9 + (0.13065e-11 + 0.63000e-14 * t) * t) * t) * t) * t) * t;
+    case 24:
+      t = 2 * x - 49;
+      return 0.45621e-1 + (0.12251e-2 + (0.77941e-5 + (0.46803e-7 + (0.26375e-9 + (0.13845e-11 + 0.66996e-14 * t) * t) * t) * t) * t) * t;
+    case 25:
+      t = 2 * x - 51;
+      return 0.48103e-1 + (0.12569e-2 + (0.80814e-5 + (0.48969e-7 + (0.27801e-9 + (0.14674e-11 + 0.71249e-14 * t) * t) * t) * t) * t) * t;
+    case 26:
+      t = 2 * x - 59;
+      return 0.58702e-1 + (0.13962e-2 + (0.93714e-5 + (0.58882e-7 + (0.34414e-9 + (0.18552e-11 + 0.91160e-14 * t) * t) * t) * t) * t) * t;
+    case 30:
+      t = 2 * x - 79;
+      return 0.90908e-1 + (0.18544e-2 + (0.13903e-4 + (0.95549e-7 + (0.59752e-9 + (0.33656e-11 + 0.16815e-13 * t) * t) * t) * t) * t) * t;
+    case 40:
+      t = 2 * x - 99;
+      return 0.13443e0 + (0.25474e-2 + (0.21385e-4 + (0.15996e-6 + (0.10585e-8 + (0.61258e-11 + 0.30412e-13 * t) * t) * t) * t) * t) * t;
+    case 50:
+      t = 2 * x - 119;
+      return 0.19540e0 + (0.36342e-2 + (0.34096e-4 + (0.27479e-6 + (0.18934e-8 + (0.11021e-10 + 0.52931e-13 * t) * t) * t) * t) * t) * t;
+    case 60:
+      t = 2 * x - 121;
+      return 0.20281e0 + (0.37739e-2 + (0.35791e-4 + (0.29038e-6 + (0.20068e-8 + (0.11673e-10 + 0.55790e-13 * t) * t) * t) * t) * t) * t;
+    case 61:
+      t = 2 * x - 123;
+      return 0.21050e0 + (0.39206e-2 + (0.37582e-4 + (0.30691e-6 + (0.21270e-8 + (0.12361e-10 + 0.58770e-13 * t) * t) * t) * t) * t) * t;
+    case 62:
+      t = 2 * x - 125;
+      return 0.21849e0 + (0.40747e-2 + (0.39476e-4 + (0.32443e-6 + (0.22542e-8 + (0.13084e-10 + 0.61873e-13 * t) * t) * t) * t) * t) * t;
+    case 63:
+      t = 2 * x - 127;
+      return 0.22680e0 + (0.42366e-2 + (0.41477e-4 + (0.34300e-6 + (0.23888e-8 + (0.13846e-10 + 0.65100e-13 * t) * t) * t) * t) * t) * t;
+    case 64:
+      t = 2 * x - 129;
+      return 0.23545e0 + (0.44067e-2 + (0.43594e-4 + (0.36268e-6 + (0.25312e-8 + (0.14647e-10 + 0.68453e-13 * t) * t) * t) * t) * t) * t;
+    case 65:
+      t = 2 * x - 131;
+      return 0.24444e0 + (0.45855e-2 + (0.45832e-4 + (0.38352e-6 + (0.26819e-8 + (0.15489e-10 + 0.71933e-13 * t) * t) * t) * t) * t) * t;
+    case 66:
+      t = 2 * x - 133;
+      return 0.25379e0 + (0.47735e-2 + (0.48199e-4 + (0.40561e-6 + (0.28411e-8 + (0.16374e-10 + 0.75541e-13 * t) * t) * t) * t) * t) * t;
+    case 67:
+      t = 2 * x - 135;
+      return 0.26354e0 + (0.49713e-2 + (0.50702e-4 + (0.42901e-6 + (0.30095e-8 + (0.17303e-10 + 0.79278e-13 * t) * t) * t) * t) * t) * t;
+    case 68:
+      t = 2 * x - 137;
+      return 0.27369e0 + (0.51793e-2 + (0.53350e-4 + (0.45379e-6 + (0.31874e-8 + (0.18277e-10 + 0.83144e-13 * t) * t) * t) * t) * t) * t;
+    case 69:
+      t = 2 * x - 139;
+      return 0.28426e0 + (0.53983e-2 + (0.56150e-4 + (0.48003e-6 + (0.33752e-8 + (0.19299e-10 + 0.87139e-13 * t) * t) * t) * t) * t) * t;
+    case 70:
+      t = 2 * x - 141;
+      return 0.29529e0 + (0.56288e-2 + (0.59113e-4 + (0.50782e-6 + (0.35735e-8 + (0.20369e-10 + 0.91262e-13 * t) * t) * t) * t) * t) * t;
+    case 71:
+      t = 2 * x - 143;
+      return 0.30679e0 + (0.58714e-2 + (0.62248e-4 + (0.53724e-6 + (0.37827e-8 + (0.21490e-10 + 0.95513e-13 * t) * t) * t) * t) * t) * t;
+    case 72:
+      t = 2 * x - 145;
+      return 0.31878e0 + (0.61270e-2 + (0.65564e-4 + (0.56837e-6 + (0.40035e-8 + (0.22662e-10 + 0.99891e-13 * t) * t) * t) * t) * t) * t;
+    case 73:
+      t = 2 * x - 147;
+      return 0.33130e0 + (0.63962e-2 + (0.69072e-4 + (0.60133e-6 + (0.42362e-8 + (0.23888e-10 + 0.10439e-12 * t) * t) * t) * t) * t) * t;
+    case 74:
+      t = 2 * x - 149;
+      return 0.34438e0 + (0.66798e-2 + (0.72783e-4 + (0.63619e-6 + (0.44814e-8 + (0.25168e-10 + 0.10901e-12 * t) * t) * t) * t) * t) * t;
+    case 75:
+      t = 2 * x - 151;
+      return 0.35803e0 + (0.69787e-2 + (0.76710e-4 + (0.67306e-6 + (0.47397e-8 + (0.26505e-10 + 0.11376e-12 * t) * t) * t) * t) * t) * t;
+    case 76:
+      t = 2 * x - 153;
+      return 0.37230e0 + (0.72938e-2 + (0.80864e-4 + (0.71206e-6 + (0.50117e-8 + (0.27899e-10 + 0.11862e-12 * t) * t) * t) * t) * t) * t;
+    case 77:
+      t = 2 * x - 155;
+      return 0.38722e0 + (0.76260e-2 + (0.85259e-4 + (0.75329e-6 + (0.52979e-8 + (0.29352e-10 + 0.12360e-12 * t) * t) * t) * t) * t) * t;
+    case 78:
+      t = 2 * x - 157;
+      return 0.40282e0 + (0.79762e-2 + (0.89909e-4 + (0.79687e-6 + (0.55989e-8 + (0.30866e-10 + 0.12868e-12 * t) * t) * t) * t) * t) * t;
+    case 79:
+      t = 2 * x - 159;
+      return 0.41914e0 + (0.83456e-2 + (0.94827e-4 + (0.84291e-6 + (0.59154e-8 + (0.32441e-10 + 0.13387e-12 * t) * t) * t) * t) * t) * t;
+    case 80:
+      t = 2 * x - 161;
+      return 0.43621e0 + (0.87352e-2 + (0.10002e-3 + (0.89156e-6 + (0.62480e-8 + (0.34079e-10 + 0.13917e-12 * t) * t) * t) * t) * t) * t;
+    case 81:
+      t = 2 * x - 163;
+      return 0.45409e0 + (0.91463e-2 + (0.10553e-3 + (0.94293e-6 + (0.65972e-8 + (0.35782e-10 + 0.14455e-12 * t) * t) * t) * t) * t) * t;
+    case 82:
+      t = 2 * x - 165;
+      return 0.47282e0 + (0.95799e-2 + (0.11135e-3 + (0.99716e-6 + (0.69638e-8 + (0.37549e-10 + 0.15003e-12 * t) * t) * t) * t) * t) * t;
+    case 83:
+      t = 2 * x - 167;
+      return 0.49243e0 + (0.10037e-1 + (0.11750e-3 + (0.10544e-5 + (0.73484e-8 + (0.39383e-10 + 0.15559e-12 * t) * t) * t) * t) * t) * t;
+    case 84:
+      t = 2 * x - 169;
+      return 0.51298e0 + (0.10520e-1 + (0.12400e-3 + (0.11147e-5 + (0.77517e-8 + (0.41283e-10 + 0.16122e-12 * t) * t) * t) * t) * t) * t;
+    case 85:
+      t = 2 * x - 171;
+      return 0.53453e0 + (0.11030e-1 + (0.13088e-3 + (0.11784e-5 + (0.81743e-8 + (0.43252e-10 + 0.16692e-12 * t) * t) * t) * t) * t) * t;
+    case 86:
+      t = 2 * x - 173;
+      return 0.55712e0 + (0.11568e-1 + (0.13815e-3 + (0.12456e-5 + (0.86169e-8 + (0.45290e-10 + 0.17268e-12 * t) * t) * t) * t) * t) * t;
+    case 87:
+      t = 2 * x - 175;
+      return 0.58082e0 + (0.12135e-1 + (0.14584e-3 + (0.13164e-5 + (0.90803e-8 + (0.47397e-10 + 0.17850e-12 * t) * t) * t) * t) * t) * t;
+    case 88:
+      t = 2 * x - 177;
+      return 0.60569e0 + (0.12735e-1 + (0.15396e-3 + (0.13909e-5 + (0.95651e-8 + (0.49574e-10 + 0.18435e-12 * t) * t) * t) * t) * t) * t;
+    case 89:
+      t = 2 * x - 179;
+      return 0.63178e0 + (0.13368e-1 + (0.16254e-3 + (0.14695e-5 + (0.10072e-7 + (0.51822e-10 + 0.19025e-12 * t) * t) * t) * t) * t) * t;
+    case 90:
+      t = 2 * x - 181;
+      return 0.65918e0 + (0.14036e-1 + (0.17160e-3 + (0.15521e-5 + (0.10601e-7 + (0.54140e-10 + 0.19616e-12 * t) * t) * t) * t) * t) * t;
+    case 91:
+      t = 2 * x - 183;
+      return 0.68795e0 + (0.14741e-1 + (0.18117e-3 + (0.16392e-5 + (0.11155e-7 + (0.56530e-10 + 0.20209e-12 * t) * t) * t) * t) * t) * t;
+    case 92:
+      t = 2 * x - 185;
+      return 0.71818e0 + (0.15486e-1 + (0.19128e-3 + (0.17307e-5 + (0.11732e-7 + (0.58991e-10 + 0.20803e-12 * t) * t) * t) * t) * t) * t;
+    case 93:
+      t = 2 * x - 187;
+      return 0.74993e0 + (0.16272e-1 + (0.20195e-3 + (0.18269e-5 + (0.12335e-7 + (0.61523e-10 + 0.21395e-12 * t) * t) * t) * t) * t) * t;
+    }
+  return 1.0;
+}
+
+int
+main ()
+{
+#ifdef __s390x__
+  {
+    register unsigned long r5 __asm ("r5");
+    r5 = 0xdeadbeefUL;
+    asm volatile ("":"+r" (r5));
+  }
+#endif
+  double d = foo (78.4);
+  if (d < 0.38 || d > 0.42)
+    __builtin_abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,9 @@
+/* PR sanitizer/56417 */
+/* { dg-do compile } */
+/* { dg-options "-w" } */
+
+int
+foo (void)
+{
+  return __builtin_strlen (&foo);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/graphite/pr54094.c	2013-10-01 16:07:00.564553809 +0000
@@ -0,0 +1,10 @@
+/* { dg-options "-O2 -floop-parallelize-all -floop-nest-optimize" } */
+void dwt_deinterleave_h(int *a, int *b, int dn, int sn, int cas)
+{
+  int i;
+  for (i=0; i<sn; i++)
+    b[i]=a[2*i+cas];
+  for (i=0; i<dn; i++)
+    b[sn+i]=a[(2*i+1-cas)];
+}
+
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct t { void (*func)(void*); };
+void test_func(struct t* a) __attribute__((optimize("O0")));
+void test_func(struct t* a)
+{
+  a->func(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-Og" } */
+
+__attribute__((__error__("error"))) void error ();
+
+void f (int i) {
+    if (__builtin_constant_p (i)) {
+	error ();
+    }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,15 @@
+/* PR rtl-optimization/57130 */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-rtl-ira" } */
+/* { dg-final { scan-rtl-dump-not "REG_EQUIV.*mem.*\"ip\"" "ira" } } */
+
+char ip[10];
+int total;
+
+void foo() {
+  int t;
+
+  t = ip[2];
+  total = t & 0x3;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,19 @@
+/* PR tree-optimization/57980 */
+/* { dg-do compile } */
+/* { dg-options "-O -foptimize-sibling-calls -w" } */
+
+typedef int V __attribute__ ((vector_size (2 * sizeof (int))));
+extern V f (void);
+
+V
+bar (void)
+{
+  return -f ();
+}
+
+V
+foo (void)
+{
+  V v = { };
+  return v - f ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58010.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58010.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58010.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58010.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -funswitch-loops -ftree-vectorize" } */
+
+short a, b, c, d;
+
+void f(void)
+{
+  short e;
+
+  for(; e; e++)
+    for(; b; b++);
+
+  for(d = 0; d < 4; d++)
+    a ^= (e ^= 1) || c ? : e;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,37 @@
+/* PR tree-optimization/58145 */
+/* { dg-do compile { target { int32plus } } } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+struct S { unsigned int data : 32; };
+struct T { unsigned int data; };
+volatile struct S s2;
+
+void
+f1 (int val)
+{
+  struct S s = { .data = val };
+  *(volatile struct S *) 0x880000UL = s;
+}
+
+void
+f2 (int val)
+{
+  struct T t = { .data = val };
+  *(volatile struct T *) 0x880000UL = t;
+}
+
+void
+f3 (int val)
+{
+  *(volatile unsigned int *) 0x880000UL = val;
+}
+
+void
+f4 (int val)
+{
+  struct S s = { .data = val };
+  s2 = s;
+}
+
+/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,51 @@
+/* PR tree-optimization/58145 */
+/* { dg-do compile { target { int32plus } } } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+struct S { unsigned int data : 32; };
+struct T { unsigned int data; };
+volatile struct S s2;
+
+static inline void
+f1 (int val)
+{
+  struct S s = { .data = val };
+  *(volatile struct S *) 0x880000UL = s;
+}
+
+static inline void
+f2 (int val)
+{
+  struct T t = { .data = val };
+  *(volatile struct T *) 0x880000UL = t;
+}
+
+static inline void
+f3 (int val)
+{
+  *(volatile unsigned int *) 0x880000UL = val;
+}
+
+static inline void
+f4 (int val)
+{
+  struct S s = { .data = val };
+  s2 = s;
+}
+
+void
+f5 (void)
+{
+  int i;
+  for (i = 0; i < 100; i++)
+    f1 (0);
+  for (i = 0; i < 100; i++)
+    f2 (0);
+  for (i = 0; i < 100; i++)
+    f3 (0);
+  for (i = 0; i < 100; i++)
+    f4 (0);
+}
+
+/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58463.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58463.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58463.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58463.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-fdump-tree-ealias-details -O2" } */
+
+typedef struct
+{
+  int data16;
+}
+list_data;
+void
+fn1 (list_data * p1)
+{
+    p1->data16 = p1->data16 & 1 & p1->data16 >> 1;
+}
+
+/* { dg-final { cleanup-tree-dump "ealias" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57343.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57343.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57343.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57343.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,22 @@
+/* { dg-do run } */
+
+int c = 0;
+
+int
+main ()
+{
+  int i, f = 1;
+  for (i = 0; i < 5; i++)
+    {
+      --c;
+      unsigned char h = c * 100;
+      if (h == 0)
+	{
+	  f = 0;
+	  break;
+	}
+    }
+  if (f != 1)
+    __builtin_abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57381.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57381.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57381.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57381.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
+
+struct S0 { int  f0, f1, f2; };
+
+struct S1 {
+    int  f0;
+    volatile struct S0 f2;
+};
+
+static struct S1 s = {0x47BED265,{0x06D4EB3E,5,0U}};
+
+int foo(struct S0 p)
+{
+  for (s.f2.f2 = 0; (s.f2.f2 <= 12); s.f2.f2++)
+    {
+      volatile int *l_61[5][2][2] = {{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,(void*)0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{&s.f2.f0,&s.f2.f0}},{{&s.f2.f0,&s.f2.f0},{(void*)0,&s.f2.f0}}};
+
+      volatile int **l_68 = &l_61[0][0][1];
+      volatile int *l_76 = &s.f2.f0;
+      (*l_68) = l_61[0][0][0];
+      if ((*l_76 = (p.f2 % 5))) ;
+    }
+  return p.f0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57417.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57417.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57417.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57417.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+
+int a, b;
+volatile int *c;
+
+void foo ()
+{
+  volatile int d[1];
+  b = 0;
+  for (;; a--)
+    c = &d[b];
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57521.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57521.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57521.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57521.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,51 @@
+/* { dg-do run } */
+/* { dg-options "-ftree-loop-if-convert" } */
+
+void abort (void);
+
+int a, b, c, d, o = 1, p;
+short e;
+
+int
+fn1 (int * p1)
+{
+  int f, g, h, j = 0, k = 0, l = 0;
+  unsigned int i;
+  int *m[1] = { &l };
+  for (; b >= 0; b--)
+    {
+      if (*p1)
+	if (j >= 0)
+	  {
+	    int n = 1;
+	    e = 1;
+	    h = a ? a : 1 % n;
+	    g = h > 0 ? 0 : h + 1;
+	    k = c + g;
+	  }
+	else
+	  continue;
+      else
+	{
+
+	  f = d > 0 ? 0 : d + 1;
+	  i = f;
+	  j = 1 + i;
+	}
+      l++;
+    }
+  return k;
+}
+
+int
+main ()
+{
+  for (;; p++)
+    {
+      fn1 (&o);
+      break;
+    }
+  if (e != 1)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57656.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57656.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57656.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57656.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+/* { dg-options "-fstrict-overflow" } */
+
+int main (void)
+{
+  int a = -1;
+  int b = __INT_MAX__;
+  int c = 2;
+  int t = 1 - ((a - b) / c);  // t = 1 - ( __INT_MIN__ / 2 )
+  if (t != (1 - (-1 - __INT_MAX__) / 2))
+    __builtin_abort();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57685.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57685.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr57685.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57685.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+
+unsigned f(void)
+{
+  unsigned a;
+  int b, c, d, e;
+
+  for(c = 27; c < 40; c++)
+    b |= d |= b;
+
+  if(b)
+    a = e;
+
+  return a;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,33 @@
+/* { dg-do run } */
+
+typedef long long V
+  __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
+
+struct s
+{
+  char u;
+  V v[2];
+} __attribute__((packed,aligned(1)));
+
+__attribute__((noinline, noclone))
+long long foo(struct s *x, int y, V *z)
+{
+  V a = x->v[y];
+  x->v[y] = *z;
+  return a[1];
+}
+
+struct s a = {0,{{0,0},{0,0}}};
+int main()
+{
+  V v1 = {0,1};
+  V v2 = {0,2};
+
+  if (foo(&a,0,&v1) != 0)
+    __builtin_abort();
+  if (foo(&a,0,&v2) != 1)
+    __builtin_abort();
+  if (foo(&a,1,&v1) != 0)
+    __builtin_abort();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58223.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58223.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58223.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58223.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+
+extern void abort (void);
+int a[2], b;
+
+int main ()
+{
+  for (b = 0; b < 2; b++)
+    {
+      a[0] = 1;
+      a[b] = 0;
+    }
+  if (a[0] != 1)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58228.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58228.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58228.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58228.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,15 @@
+/* { dg-do run } */
+
+extern void abort (void);
+int a[8][8] = {{1}};
+int b, c, d, e;
+
+int main ()
+{
+  for (c = 0; c < 8; c++)
+    for (b = 0; b < 2; b++)
+      a[b + 4][c] = a[c][0];
+  if (a[4][4] != 1)
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58246.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58246.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58246.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58246.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,21 @@
+/* { dg-do run } */
+
+extern void abort (void);
+
+int a, b; 
+
+int main ()
+{
+  int t[2] = {1,1};
+
+  for (a = 0; a < 2; a++)
+    {
+      b ^= t[a];
+      t[a] = t[1] = 0;
+    }
+
+  if (b != 1)
+    abort ();
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c gcc-4.8.1/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c	2012-01-30 15:51:23.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/tree-ssa/ldist-16.c	2013-10-01 16:06:44.004554285 +0000
@@ -14,8 +14,8 @@
     }
 }
 
-/* We should apply loop distribution and generate a memset (0).  */
+/* We should not apply loop distribution and not generate a memset (0).  */
 
-/* { dg-final { scan-tree-dump "distributed: split to 2" "ldist" } } */
-/* { dg-final { scan-tree-dump-times "generated memset zero" 1 "ldist" } } */
+/* { dg-final { scan-tree-dump "Loop 1 is the same" "ldist" } } */
+/* { dg-final { scan-tree-dump-times "generated memset zero" 0 "ldist" } } */
 /* { dg-final { cleanup-tree-dump "ldist" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon } */
+/* { dg-add-options arm_neon } */
+/* { dg-options "-O3" } */
+
+int id;
+int
+test (const long int *data)
+{
+  int i, retval;
+  retval = id;
+  for (i = 0; i < id; i++)
+    {
+      retval &= (data[i] <= 0);
+    }
+
+  return (retval);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -mno-unaligned-access" } */
+/* { dg-final { scan-assembler "ldrb" } } */
+/* { dg-final { scan-assembler "strb" } } */
+
+struct s
+{
+  char u;
+  long long v[2];
+} __attribute__((packed,aligned(1)));
+
+__attribute__((noinline, noclone))
+long long foo(struct s *x, int y, long long z)
+{
+  long long a = x->v[y];
+  x->v[y] = z;
+  return a;
+}
+
+struct s a = {0,{0,0}};
+int main()
+{
+  if (foo(&a,0,1) != 0)
+    __builtin_abort();
+  if (foo(&a,0,2) != 1)
+    __builtin_abort();
+  if (foo(&a,1,1) != 0)
+    __builtin_abort();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,12 @@
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-do compile } */
+/* { dg-options "-Os" } */
+/* { dg-skip-if "" { ! { arm_thumb1 } } } */
+
+int
+mymul3 (int x)
+{
+  return x * 0x555;
+}
+
+/* { dg-final { scan-assembler "mul\[\\t \]*r.,\[\\t \]*r." } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c	2013-02-08 10:13:37.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c	2013-10-01 16:06:44.004554285 +0000
@@ -72,11 +72,11 @@
 
 static void test2hr (void)
 {
-  TEST2 (hr, 1, 0x7f, 0x40);
-  TEST2 (hr, 2, 0x7f, 0b1100000);
-  TEST2 (hr, 3, 0x7f, 0b1110000);
-  TEST2 (hr, 4, 0x7f, 0b1111000);
-
+  TEST2 (hr, 1, 0x7f, 0x7f);
+  TEST2 (hr, 2, 0x70, 0x7f);
+  TEST2 (hr, 3, 0x78, 0x7f);
+  TEST2 (hr, 4, 0x7f, 0x7f);
+ 
   TEST2 (uhr, 1, 0x7f, 0x80);
   TEST2 (uhr, 2, 0x7f, 0x80);
   TEST2 (uhr, 3, 0x7f, 0x80);
@@ -85,10 +85,13 @@
 
 void test2k (void)
 {
-  TEST2 (k, 1, 0x7fffffff, 0x7fff8000 | 0b100000000000000);
-  TEST2 (k, 2, 0x7fffffff, 0x7fff8000 | 0b110000000000000);
-  TEST2 (k, 3, 0x7fffffff, 0x7fff8000 | 0b111000000000000);
-  TEST2 (k, 4, 0x7fffffff, 0x7fff8000 | 0b111100000000000);
+  TEST2 (k, 1, 0x7fffff00, 0x7fffffff);
+  TEST2 (k, 2, 0x7ffffff0, 0x7fffffff);
+  TEST2 (k, 2, 0x7ffff000, 0x7fffffff);
+  TEST2 (k, 3, 0x7ffff000, 0x7ffff000);
+  TEST2 (k, 3, 0x7ffff800, 0x7fffffff);
+  TEST2 (k, 3, 0x7ffff7ff, 0x7ffff000);
+  TEST2 (k, 4, 0x7ffff7ff, 0x7ffff800);
 
   TEST2 (uk, 1, 0x7fffffff, 1ul << 31);
   TEST2 (uk, 2, 0x7fffffff, 1ul << 31);
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c	2010-11-10 22:02:23.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c	2013-10-01 16:06:44.004554285 +0000
@@ -1,11 +1,11 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbmi " } */
-/* { dg-final { scan-assembler "andn\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "tzcntl\[^\\n]*(%|)eax" } } */
+/* { dg-final { scan-assembler "andn\[^\\n]*eax" } } */
+/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsi\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsmsk\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsr\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "tzcntl\[^\\n]*eax" 2 } } */
 
 #include <x86intrin.h>
 
@@ -22,25 +22,57 @@
 }
 
 unsigned int
+func_bextr32_3args (unsigned int X,
+		    unsigned int Y,
+		    unsigned int Z)
+{
+  return _bextr_u32(X, Y, Z);
+}
+
+unsigned int
 func_blsi32 (unsigned int X)
 {
   return __blsi_u32(X);
 }
 
 unsigned int
+func_blsi32_2 (unsigned int X)
+{
+  return _blsi_u32(X);
+}
+
+unsigned int
 func_blsmsk32 (unsigned int X)
 {
   return __blsmsk_u32(X);
 }
 
 unsigned int
+func_blsmsk32_2 (unsigned int X)
+{
+  return _blsmsk_u32(X);
+}
+
+unsigned int
 func_blsr32 (unsigned int X)
 {
   return __blsr_u32(X);
 }
 
 unsigned int
+func_blsr32_2 (unsigned int X)
+{
+  return _blsr_u32(X);
+}
+
+unsigned int
 func_tzcnt32 (unsigned int X)
 {
   return __tzcnt_u32(X);
 }
+
+unsigned int
+func_tzcnt32_2 (unsigned int X)
+{
+  return _tzcnt_u32(X);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c	2011-07-09 19:25:11.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c	2013-10-01 16:06:44.008554285 +0000
@@ -1,11 +1,11 @@
 /* { dg-do compile { target { ! { ia32 }  } } } */
 /* { dg-options "-O2 -mbmi " } */
-/* { dg-final { scan-assembler "andn\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "tzcntq\[^\\n]*(%|)rax" } } */
+/* { dg-final { scan-assembler "andn\[^\\n]*rax" } } */
+/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsi\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsmsk\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsr\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "tzcntq\[^\\n]*rax" 2 } } */
 
 #include <x86intrin.h>
 
@@ -22,25 +22,57 @@
 }
 
 unsigned long long
+func_bextr64_3args (unsigned long long X,
+		    unsigned long long Y,
+		    unsigned long long Z)
+{
+  return _bextr_u64 (X, Y, Z);
+}
+
+unsigned long long
 func_blsi64 (unsigned long long X)
 {
   return __blsi_u64 (X);
 }
 
 unsigned long long
+func_blsi64_2 (unsigned long long X)
+{
+  return _blsi_u64 (X);
+}
+
+unsigned long long
 func_blsmsk64 (unsigned long long X)
 {
   return __blsmsk_u64 (X);
 }
 
 unsigned long long
+func_blsmsk64_2 (unsigned long long X)
+{
+  return _blsmsk_u64 (X);
+}
+
+unsigned long long
 func_blsr64 (unsigned long long X)
 {
   return __blsr_u64 (X);
 }
 
 unsigned long long
+func_blsr64_2 (unsigned long long X)
+{
+  return _blsr_u64 (X);
+}
+
+unsigned long long
 func_tzcnt64 (unsigned long long X)
 {
   return __tzcnt_u64 (X);
 }
+
+unsigned long long
+func_tzcnt64_2 (unsigned long long X)
+{
+  return _tzcnt_u64 (X);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,31 @@
+/* PR target/57623 */
+/* { dg-do assemble { target bmi } } */
+/* { dg-options "-O2 -mbmi" } */
+
+#include <x86intrin.h>
+
+unsigned int
+f1 (unsigned int x, unsigned int *y)
+{
+  return __bextr_u32 (x, *y);
+}
+
+unsigned int
+f2 (unsigned int *x, unsigned int y)
+{
+  return __bextr_u32 (*x, y);
+}
+
+#ifdef  __x86_64__
+unsigned long long
+f3 (unsigned long long x, unsigned long long *y)
+{
+  return __bextr_u64 (x, *y);
+}
+
+unsigned long long
+f4 (unsigned long long *x, unsigned long long y)
+{
+  return __bextr_u64 (*x, y);
+}
+#endif
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c	2013-10-01 16:06:44.004554285 +0000
@@ -0,0 +1,31 @@
+/* PR target/57623 */
+/* { dg-do assemble { target bmi2 } } */
+/* { dg-options "-O2 -mbmi2" } */
+
+#include <x86intrin.h>
+
+unsigned int
+f1 (unsigned int x, unsigned int *y)
+{
+  return _bzhi_u32 (x, *y);
+}
+
+unsigned int
+f2 (unsigned int *x, unsigned int y)
+{
+  return _bzhi_u32 (*x, y);
+}
+
+#ifdef  __x86_64__
+unsigned long long
+f3 (unsigned long long x, unsigned long long *y)
+{
+  return _bzhi_u64 (x, *y);
+}
+
+unsigned long long
+f4 (unsigned long long *x, unsigned long long y)
+{
+  return _bzhi_u64 (*x, y);
+}
+#endif
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,10 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 -masm=intel" } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target masm_intel } */
+
+void
+foo (void)
+{
+  *(volatile long*)0xFFFF800000000000 = -1;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,60 @@
+/* PR rtl-optimization/57459 */
+/* { dg-do run } */
+/* { dg-options "-fno-inline -O2 -minline-all-stringops -fno-omit-frame-pointer" } */
+
+int total1[10], total2[10], total3[10], total4[10], total5[10], a[20];
+int len;
+
+void stackclean() {
+  void *ptr = __builtin_alloca(20000);
+  __builtin_memset(ptr, 0, 20000);
+}
+
+void foo(const char *s) {
+  int r1 = a[1];
+  int r2 = a[2];
+  int r3 = a[3];
+  int r4 = a[4];
+  int r5 = a[5];
+
+  len =  __builtin_strlen(s);
+
+  if (s != 0)
+    return;
+
+  while (r1) {
+   total1[r1] = r1;
+   r1--;
+  }
+
+  while (r2) {
+   total2[r2] = r2;
+   r2--;
+  }
+
+  while (r3) {
+   total3[r3] = r3;
+   r3--;
+  }
+
+  while (r4) {
+   total4[r4] = r4;
+   r4--;
+  }
+
+  while (r5) {
+   total5[r5] = r5;
+   r5--;
+  }
+}
+
+extern void abort (void);
+
+int main() {
+  stackclean();
+  foo("abcdefgh");
+  if (len != 8)
+    abort ();
+  return 0;
+}
+
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx -mvzeroupper -mno-fp-ret-in-387" }
+
+/* { dg-error "x87 register return with x87 disabled" "" { target { ! ia32 } } 8 } */
+
+long double
+foo (long double x)
+{
+  return __builtin_ilogbl (x);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,41 @@
+/* PR target/57736 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+#include <x86intrin.h>
+
+unsigned long long
+f1 (void)
+{
+  return __rdtsc ();
+}
+
+unsigned long long
+f2 (unsigned int *x)
+{
+  return __rdtscp (x);
+}
+
+unsigned long long
+f3 (unsigned int x)
+{
+  return __rdpmc (x);
+}
+
+void
+f4 (void)
+{
+  __rdtsc ();
+}
+
+void
+f5 (unsigned int *x)
+{
+  __rdtscp (x);
+}
+
+void
+f6 (unsigned int x)
+{
+  __rdpmc (x);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,13 @@
+/* PR target/57777 */
+/* { dg-do assemble { target avx2 } } */
+/* { dg-options "-O3 -mavx2" } */
+/* { dg-additional-options "-fpic" { target fpic } } */
+
+void
+foo (unsigned long *x, int *y)
+{
+  static unsigned long b[2] = { 0x0UL, 0x9908b0dfUL };
+  int c;
+  for (c = 0; c < 512; c++)
+    x[c] = b[x[c] & 1UL];
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,5 @@
+/* PR target/58218 */
+/* { dg-do assemble { target lp64 } } */
+/* { dg-options "-mcmodel=medium" } */
+
+struct { float x[16385]; } a = { { 0.f, } };
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c	2009-04-28 08:38:37.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c	2013-10-01 16:06:44.008554285 +0000
@@ -1,6 +1,8 @@
 /* { dg-do run { target powerpc*-*-* } }*/
 /* VxWorks only guarantees 64 bits of alignment (STACK_BOUNDARY == 64).  */
 /* { dg-skip-if "" { "powerpc*-*-vxworks*" } { "*" } { "" } } */
+/* Force 128-bit stack alignment for eabi targets.  */
+/* { dg-options "-mno-eabi" { target powerpc*-*-eabi* } } */
 
 /* Test local alignment.  Test new target macro STARTING_FRAME_PHASE.  */
 /* Origin: Aldy Hernandez <aldyh@redhat.com>.  */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	2009-01-13 17:52:32.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	2013-10-01 16:06:44.008554285 +0000
@@ -11,31 +11,24 @@
 typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
 typedef __attribute__ ((vector_size (16))) unsigned int v4si;
 
-char w[16] __attribute__((aligned(16)));
- 
-
-/* Emulate the vspltis? instructions on a 16-byte array of chars.  */
+typedef __attribute__((aligned(16))) char c16[16];
+typedef __attribute__((aligned(16))) short s8[8];
+typedef __attribute__((aligned(16))) int i4[4];
 
-void vspltisb (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i++)
-    v[i] = val;
-}
+#define V16QI(V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16)	\
+  v16qi v = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16};	\
+  static c16 w = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16}; \
+  check_v16qi (v, w);
 
-void vspltish (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i += 2)
-    v[i] = val >> 7, v[i + 1] = val;
-}
+#define V8HI(V1,V2,V3,V4,V5,V6,V7,V8)		\
+  v8hi v = {V1,V2,V3,V4,V5,V6,V7,V8};		\
+  static s8 w = {V1,V2,V3,V4,V5,V6,V7,V8};	\
+  check_v8hi (v, w);
 
-void vspltisw (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i += 4)
-    v[i] = v[i + 1] = v[i + 2] = val >> 7, v[i + 3] = val;
-}
+#define V4SI(V1,V2,V3,V4)	\
+  v4si v = {V1,V2,V3,V4};	\
+  static i4 w = {V1,V2,V3,V4};	\
+  check_v4si (v, w);
 
 
 /* Use three different check functions for each mode-instruction pair.
@@ -48,13 +41,13 @@
     abort ();
 }
 
-void __attribute__ ((noinline)) check_v8hi (v8hi v1, char *v2)
+void __attribute__ ((noinline)) check_v8hi (v8hi v1, short *v2)
 {
   if (memcmp (&v1, v2, 16))
     abort ();
 }
 
-void __attribute__ ((noinline)) check_v4si (v4si v1, char *v2)
+void __attribute__ ((noinline)) check_v4si (v4si v1, int *v2)
 {
   if (memcmp (&v1, v2, 16))
     abort ();
@@ -65,72 +58,52 @@
 
 void v16qi_vspltisb ()
 {
-  v16qi v = { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 };
-  vspltisb (w, 15);
-  check_v16qi (v, w);
+  V16QI (15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15);
 }
 
 void v16qi_vspltisb_neg ()
 {
-  v16qi v = { -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5 };
-  vspltisb (w, -5);
-  check_v16qi (v, w);
+  V16QI (-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5);
 }
 
 void v16qi_vspltisb_addself ()
 {
-  v16qi v = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 };
-  vspltisb (w, 30);
-  check_v16qi (v, w);
+  V16QI (30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30);
 }
 
 void v16qi_vspltisb_neg_addself ()
 {
-  v16qi v = { -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24 };
-  vspltisb (w, -24);
-  check_v16qi (v, w);
+  V16QI (-24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24);
 }
 
 void v16qi_vspltish ()
 {
-  v16qi v = { 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15 };
-  vspltish (w, 15);
-  check_v16qi (v, w);
+  V16QI (0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15);
 }
 
 void v16qi_vspltish_addself ()
 {
-  v16qi v = { 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30 };
-  vspltish (w, 30);
-  check_v16qi (v, w);
+  V16QI (0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30);
 }
 
 void v16qi_vspltish_neg ()
 {
-  v16qi v = { -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5 };
-  vspltish (w, -5);
-  check_v16qi (v, w);
+  V16QI (-1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5);
 }
 
 void v16qi_vspltisw ()
 {
-  v16qi v = { 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15 };
-  vspltisw (w, 15);
-  check_v16qi (v, w);
+  V16QI (0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15);
 }
 
 void v16qi_vspltisw_addself ()
 {
-  v16qi v = { 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30 };
-  vspltisw (w, 30);
-  check_v16qi (v, w);
+  V16QI (0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30);
 }
 
 void v16qi_vspltisw_neg ()
 {
-  v16qi v = { -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5 };
-  vspltisw (w, -5);
-  check_v16qi (v, w);
+  V16QI (-1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5);
 }
 
 
@@ -138,144 +111,104 @@
 
 void v8hi_vspltisb ()
 {
-  v8hi v = { 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F };
-  vspltisb (w, 15);
-  check_v8hi (v, w);
+  V8HI (0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F);
 }
 
 void v8hi_vspltisb_addself ()
 {
-  v8hi v = { 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E };
-  vspltisb (w, 30);
-  check_v8hi (v, w);
+  V8HI (0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E);
 }
 
 void v8hi_vspltisb_neg ()
 {
-  v8hi v = { 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB };
-  vspltisb (w, -5);
-  check_v8hi (v, w);
+  V8HI (0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB);
 }
 
 void v8hi_vspltish ()
 {
-  v8hi v = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  vspltish (w, 15);
-  check_v8hi (v, w);
+  V8HI (15, 15, 15, 15, 15, 15, 15, 15);
 }
 
 void v8hi_vspltish_neg ()
 {
-  v8hi v = { -5, -5, -5, -5, -5, -5, -5, -5 };
-  vspltish (w, -5);
-  check_v8hi (v, w);
+  V8HI (-5, -5, -5, -5, -5, -5, -5, -5);
 }
 
 void v8hi_vspltish_addself ()
 {
-  v8hi v = { 30, 30, 30, 30, 30, 30, 30, 30 };
-  vspltish (w, 30);
-  check_v8hi (v, w);
+  V8HI (30, 30, 30, 30, 30, 30, 30, 30);
 }
 
 void v8hi_vspltish_neg_addself ()
 {
-  v8hi v = { -24, -24, -24, -24, -24, -24, -24, -24 };
-  vspltish (w, -24);
-  check_v8hi (v, w);
+  V8HI (-24, -24, -24, -24, -24, -24, -24, -24);
 }
 
 void v8hi_vspltisw ()
 {
-  v8hi v = { 0, 15, 0, 15, 0, 15, 0, 15 };
-  vspltisw (w, 15);
-  check_v8hi (v, w);
+  V8HI (0, 15, 0, 15, 0, 15, 0, 15);
 }
 
 void v8hi_vspltisw_addself ()
 {
-  v8hi v = { 0, 30, 0, 30, 0, 30, 0, 30 };
-  vspltisw (w, 30);
-  check_v8hi (v, w);
+  V8HI (0, 30, 0, 30, 0, 30, 0, 30);
 }
 
 void v8hi_vspltisw_neg ()
 {
-  v8hi v = { -1, -5, -1, -5, -1, -5, -1, -5 };
-  vspltisw (w, -5);
-  check_v8hi (v, w);
+  V8HI (-1, -5, -1, -5, -1, -5, -1, -5);
 }
 
 /* V4SI tests. */
 
 void v4si_vspltisb ()
 {
-  v4si v = { 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F };
-  vspltisb (w, 15);
-  check_v4si (v, w);
+  V4SI (0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
 }
 
 void v4si_vspltisb_addself ()
 {
-  v4si v = { 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E };
-  vspltisb (w, 30);
-  check_v4si (v, w);
+  V4SI (0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E);
 }
 
 void v4si_vspltisb_neg ()
 {
-  v4si v = { 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB };
-  vspltisb (w, -5);
-  check_v4si (v, w);
+  V4SI (0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB);
 }
 
 void v4si_vspltish ()
 {
-  v4si v = { 0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F };
-  vspltish (w, 15);
-  check_v4si (v, w);
+  V4SI (0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F);
 }
 
 void v4si_vspltish_addself ()
 {
-  v4si v = { 0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E };
-  vspltish (w, 30);
-  check_v4si (v, w);
+  V4SI (0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E);
 }
 
 void v4si_vspltish_neg ()
 {
-  v4si v = { 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB };
-  vspltish (w, -5);
-  check_v4si (v, w);
+  V4SI (0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB);
 }
 
 void v4si_vspltisw ()
 {
-  v4si v = { 15, 15, 15, 15 };
-  vspltisw (w, 15);
-  check_v4si (v, w);
+  V4SI (15, 15, 15, 15);
 }
 
 void v4si_vspltisw_neg ()
 {
-  v4si v = { -5, -5, -5, -5 };
-  vspltisw (w, -5);
-  check_v4si (v, w);
+  V4SI (-5, -5, -5, -5);
 }
 
 void v4si_vspltisw_addself ()
 {
-  v4si v = { 30, 30, 30, 30 };
-  vspltisw (w, 30);
-  check_v4si (v, w);
+  V4SI (30, 30, 30, 30);
 }
 
 void v4si_vspltisw_neg_addself ()
 {
-  v4si v = { -24, -24, -24, -24 };
-  vspltisw (w, -24);
-  check_v4si (v, w);
+  V4SI (-24, -24, -24, -24);
 }
 
 
@@ -316,3 +249,5 @@
   v4si_vspltisw_neg_addself ();
   return 0;
 }
+
+/* { dg-final { scan-assembler-not "lvx" { target { ! powerpc*le-*-* } } } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,253 @@
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
+/* { dg-options "-maltivec -mabi=altivec -O2" } */
+
+/* Check that "easy" AltiVec constants are correctly synthesized.  */
+
+extern void abort (void);
+
+typedef __attribute__ ((vector_size (16))) unsigned char v16qi;
+typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
+typedef __attribute__ ((vector_size (16))) unsigned int v4si;
+
+typedef __attribute__((aligned(16))) char c16[16];
+typedef __attribute__((aligned(16))) short s8[8];
+typedef __attribute__((aligned(16))) int i4[4];
+
+#define V16QI(V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16)	\
+  v16qi v = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16};	\
+  static c16 w = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16}; \
+  check_v16qi (v, w);
+
+#define V8HI(V1,V2,V3,V4,V5,V6,V7,V8)		\
+  v8hi v = {V1,V2,V3,V4,V5,V6,V7,V8};		\
+  static s8 w = {V1,V2,V3,V4,V5,V6,V7,V8};	\
+  check_v8hi (v, w);
+
+#define V4SI(V1,V2,V3,V4)	\
+  v4si v = {V1,V2,V3,V4};	\
+  static i4 w = {V1,V2,V3,V4};	\
+  check_v4si (v, w);
+
+
+/* Use three different check functions for each mode-instruction pair.
+   The callers have no typecasting and no addressable vectors, to make
+   the test more robust.  */
+
+void __attribute__ ((noinline)) check_v16qi (v16qi v1, char *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+void __attribute__ ((noinline)) check_v8hi (v8hi v1, short *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+void __attribute__ ((noinline)) check_v4si (v4si v1, int *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+
+/* V16QI tests.  */
+
+void v16qi_vspltisb ()
+{
+  V16QI (15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15);
+}
+
+void v16qi_vspltisb_neg ()
+{
+  V16QI (-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5);
+}
+
+void v16qi_vspltisb_addself ()
+{
+  V16QI (30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30);
+}
+
+void v16qi_vspltisb_neg_addself ()
+{
+  V16QI (-24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24);
+}
+
+void v16qi_vspltish ()
+{
+  V16QI (15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0);
+}
+
+void v16qi_vspltish_addself ()
+{
+  V16QI (30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0);
+}
+
+void v16qi_vspltish_neg ()
+{
+  V16QI (-5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1);
+}
+
+void v16qi_vspltisw ()
+{
+  V16QI (15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0);
+}
+
+void v16qi_vspltisw_addself ()
+{
+  V16QI (30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0);
+}
+
+void v16qi_vspltisw_neg ()
+{
+  V16QI (-5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1);
+}
+
+
+/* V8HI tests. */
+
+void v8hi_vspltisb ()
+{
+  V8HI (0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F);
+}
+
+void v8hi_vspltisb_addself ()
+{
+  V8HI (0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E);
+}
+
+void v8hi_vspltisb_neg ()
+{
+  V8HI (0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB);
+}
+
+void v8hi_vspltish ()
+{
+  V8HI (15, 15, 15, 15, 15, 15, 15, 15);
+}
+
+void v8hi_vspltish_neg ()
+{
+  V8HI (-5, -5, -5, -5, -5, -5, -5, -5);
+}
+
+void v8hi_vspltish_addself ()
+{
+  V8HI (30, 30, 30, 30, 30, 30, 30, 30);
+}
+
+void v8hi_vspltish_neg_addself ()
+{
+  V8HI (-24, -24, -24, -24, -24, -24, -24, -24);
+}
+
+void v8hi_vspltisw ()
+{
+  V8HI (15, 0, 15, 0, 15, 0, 15, 0);
+}
+
+void v8hi_vspltisw_addself ()
+{
+  V8HI (30, 0, 30, 0, 30, 0, 30, 0);
+}
+
+void v8hi_vspltisw_neg ()
+{
+  V8HI (-5, -1, -5, -1, -5, -1, -5, -1);
+}
+
+/* V4SI tests. */
+
+void v4si_vspltisb ()
+{
+  V4SI (0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
+}
+
+void v4si_vspltisb_addself ()
+{
+  V4SI (0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E);
+}
+
+void v4si_vspltisb_neg ()
+{
+  V4SI (0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB);
+}
+
+void v4si_vspltish ()
+{
+  V4SI (0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F);
+}
+
+void v4si_vspltish_addself ()
+{
+  V4SI (0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E);
+}
+
+void v4si_vspltish_neg ()
+{
+  V4SI (0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB);
+}
+
+void v4si_vspltisw ()
+{
+  V4SI (15, 15, 15, 15);
+}
+
+void v4si_vspltisw_neg ()
+{
+  V4SI (-5, -5, -5, -5);
+}
+
+void v4si_vspltisw_addself ()
+{
+  V4SI (30, 30, 30, 30);
+}
+
+void v4si_vspltisw_neg_addself ()
+{
+  V4SI (-24, -24, -24, -24);
+}
+
+
+
+int main ()
+{
+  v16qi_vspltisb ();
+  v16qi_vspltisb_neg ();
+  v16qi_vspltisb_addself ();
+  v16qi_vspltisb_neg_addself ();
+  v16qi_vspltish ();
+  v16qi_vspltish_addself ();
+  v16qi_vspltish_neg ();
+  v16qi_vspltisw ();
+  v16qi_vspltisw_addself ();
+  v16qi_vspltisw_neg ();
+
+  v8hi_vspltisb ();
+  v8hi_vspltisb_addself ();
+  v8hi_vspltisb_neg ();
+  v8hi_vspltish ();
+  v8hi_vspltish_neg ();
+  v8hi_vspltish_addself ();
+  v8hi_vspltish_neg_addself ();
+  v8hi_vspltisw ();
+  v8hi_vspltisw_addself ();
+  v8hi_vspltisw_neg ();
+
+  v4si_vspltisb ();
+  v4si_vspltisb_addself ();
+  v4si_vspltisb_neg ();
+  v4si_vspltish ();
+  v4si_vspltish_addself ();
+  v4si_vspltish_neg ();
+  v4si_vspltisw ();
+  v4si_vspltisw_neg ();
+  v4si_vspltisw_addself ();
+  v4si_vspltisw_neg_addself ();
+  return 0;
+}
+
+/* { dg-final { scan-assembler-not "lvx" { target { powerpc*le-*-* } } } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	2009-01-13 03:11:48.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	2013-10-01 16:06:44.008554285 +0000
@@ -4,4 +4,4 @@
 /* { dg-options "-m64" } */
 
 /* { dg-error "-m64 not supported in this configuration" "SPE not 64-bit" { target *-*-* } 0 } */
-/* { dg-error "64-bit E500 not supported" "64-bit E500" { target *-*-* } 0 } */
+/* { dg-error "64-bit SPE not supported" "64-bit SPE" { target *-*-* } 0 } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c	2012-04-24 15:51:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c	2013-10-01 16:06:44.008554285 +0000
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
 /* { dg-options "-maltivec" } */
 
 /* Compile-only test to ensure that expressions can be passed to
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr58330.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr58330.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr58330.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr58330.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,11 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O -mno-popcntb" } */
+/* { dg-final { scan-assembler-not "stwbrx" } } */
+
+void
+write_reverse (unsigned long *addr, unsigned long val)
+{
+  unsigned long reverse = __builtin_bswap64 (val);
+  __atomic_store_n (addr, reverse, __ATOMIC_RELAXED);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c	2012-11-07 21:03:08.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c	2013-10-01 16:06:44.008554285 +0000
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-skip-if "" { powerpc-ibm-aix* } { "*" } { "" } } */
+/* { dg-skip-if "no TFmode" { powerpc-*-eabi* } { "*" } { "" } } */
 /* { dg-options "-O2 -fno-align-functions -mtraceback=no -save-temps" } */
 
 typedef float TFmode __attribute__ ((mode (TF)));
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,19 @@
+/* Verify that the fmac insn is used for the expression 'a * b + a' and
+   'a * a + a'.
+   This assumes that the default compiler setting is -ffp-contract=fast.  */
+/* { dg-do compile { target "sh*-*-*" } } */
+/* { dg-options "-O1" } */
+/* { dg-skip-if "" { "sh*-*-*" } { "-m1" "-m2" "-m3" "-m4al" "*nofpu" "-m4-340*" "-m4-400*" "-m4-500*" "-m5*" } { "" } }  */
+/* { dg-final { scan-assembler-times "fmac" 2 } } */
+
+float
+test_00 (float a, float b)
+{
+  return a * b + a;
+}
+
+float
+test_01 (float a)
+{
+  return a * a + a;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,18 @@
+/* Verify that the fmac insn is used for the expression 'a * b + a' and
+   'a * a + a' when -ffast-math is specified.  */
+/* { dg-do compile { target "sh*-*-*" } } */
+/* { dg-options "-O1 -ffast-math" } */
+/* { dg-skip-if "" { "sh*-*-*" } { "-m1" "-m2" "-m3" "-m4al" "*nofpu" "-m4-340*" "-m4-400*" "-m4-500*" "-m5*" } { "" } }  */
+/* { dg-final { scan-assembler-times "fmac" 2 } } */
+
+float
+test_00 (float a, float b)
+{
+  return a * b + a;
+}
+
+float
+test_01 (float a)
+{
+  return a * a + a;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/torture/pr58314.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/torture/pr58314.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/torture/pr58314.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/torture/pr58314.c	2013-10-01 16:06:44.008554285 +0000
@@ -0,0 +1,102 @@
+/* { dg-do compile { target "sh*-*-*" } } */
+/* { dg-options "-Os" } */
+
+typedef unsigned short __u16;
+typedef unsigned int __u32;
+
+typedef signed short s16;
+
+
+static inline __attribute__((always_inline)) __attribute__((__const__)) __u16 __arch_swab16(__u16 x)
+{
+ __asm__(
+  "swap.b		%1, %0"
+  : "=r" (x)
+  : "r" (x));
+ return x;
+}
+
+void u16_add_cpu(__u16 *var)
+{
+  *var = __arch_swab16(*var);
+}
+
+typedef struct xfs_mount {
+ int m_attr_magicpct;
+} xfs_mount_t;
+
+typedef struct xfs_da_args {
+ struct xfs_mount *t_mountp;
+ int index;
+} xfs_da_args_t;
+
+typedef struct xfs_dabuf {
+ void *data;
+} xfs_dabuf_t;
+
+typedef struct xfs_attr_leaf_map {
+ __u16 base;
+ __u16 size;
+} xfs_attr_leaf_map_t;
+typedef struct xfs_attr_leaf_hdr {
+ __u16 count;
+ xfs_attr_leaf_map_t freemap[3];
+} xfs_attr_leaf_hdr_t;
+
+typedef struct xfs_attr_leaf_entry {
+  __u16 nameidx;
+} xfs_attr_leaf_entry_t;
+
+typedef struct xfs_attr_leafblock {
+ xfs_attr_leaf_hdr_t hdr;
+ xfs_attr_leaf_entry_t entries[1];
+} xfs_attr_leafblock_t;
+
+int
+xfs_attr_leaf_remove(xfs_attr_leafblock_t *leaf, xfs_da_args_t *args)
+{
+ xfs_attr_leaf_hdr_t *hdr;
+ xfs_attr_leaf_map_t *map;
+ xfs_attr_leaf_entry_t *entry;
+ int before, after, smallest, entsize;
+ int tablesize, tmp, i;
+ xfs_mount_t *mp;
+ hdr = &leaf->hdr;
+ mp = args->t_mountp;
+
+ entry = &leaf->entries[args->index];
+
+ tablesize = __arch_swab16(hdr->count);
+
+ map = &hdr->freemap[0];
+ tmp = map->size;
+ before = after = -1;
+ smallest = 3 - 1;
+ entsize = xfs_attr_leaf_entsize(leaf, args->index);
+
+ for (i = 0; i < 2; map++, i++) {
+
+  if (map->base == tablesize)
+    u16_add_cpu(&map->base);
+
+  if (__arch_swab16(map->base)  + __arch_swab16(map->size)  == __arch_swab16(entry->nameidx))
+   before = i;
+  else if (map->base == entsize)
+   after = i;
+  else if (__arch_swab16(map->size) < tmp)
+   smallest = i;
+ }
+
+ if (before >= 0)
+  {
+   map = &hdr->freemap[after];
+   map->base = entry->nameidx;
+
+  }
+
+  map = &hdr->freemap[smallest];
+
+  map->base = __arch_swab16(entry->nameidx);
+
+ return(tmp < mp->m_attr_magicpct);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,36 @@
+! { dg-do compile }
+!
+! PR fortran/57364
+!
+! Contributed by Damian Rouson
+!
+module ref_counter_implementation
+  type ref_counter
+  contains
+    procedure :: assign
+    generic :: assignment(=) => assign
+  end type
+contains
+  subroutine assign (lhs, rhs)
+    class (ref_counter), intent(inout) :: lhs
+    class (ref_counter), intent(in) :: rhs
+  end subroutine
+end module
+module foo_parent_implementation
+  use ref_counter_implementation ,only: ref_counter
+  type :: foo_parent
+    type(ref_counter) :: counter
+  end type
+contains
+  type(foo_parent) function new_foo_parent()
+  end function
+end module
+module foo_implementation
+  use foo_parent_implementation ,only: foo_parent,new_foo_parent
+  type, extends(foo_parent) :: foo
+  end type
+contains
+  type(foo) function new_foo()
+    new_foo%foo_parent = new_foo_parent()
+ end function
+end module
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90	2013-10-01 16:06:44.012554285 +0000
@@ -0,0 +1,29 @@
+! { dg-compile }
+!
+! PR fortran/57508
+!
+module ForTrilinos_ref_counter
+  type ref_counter
+  contains
+      procedure :: assign
+      generic   :: assignment(=) => assign
+  end type
+contains
+  subroutine assign (lhs, rhs)
+    class (ref_counter), intent(inout) :: lhs
+    class (ref_counter), intent(in) :: rhs
+  end subroutine
+end module
+module FEpetra_BlockMap
+  use ForTrilinos_ref_counter, only : ref_counter
+  type :: Epetra_BlockMap 
+    type(ref_counter) :: counter
+  end type
+contains
+  function from_struct() result(new_Epetra_BlockMap)
+    type(Epetra_BlockMap) :: new_Epetra_BlockMap
+  end function
+  type(Epetra_BlockMap) function create_arbitrary()
+    create_arbitrary = from_struct()
+  end function
+end module
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,38 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/57785
+!
+! Contributed by Kontantinos Anagnostopoulos
+!
+! The implicit complex conjugate was missing for DOT_PRODUCT
+
+
+! For the following, the compile-time simplification fails for SUM;
+! see PR fortran/56342. Hence, a manually expanded SUM is used.
+
+!if (DOT_PRODUCT ((/ (1.0, 2.0), (2.0, 3.0) /), (/ (1.0, 1.0), (1.0, 4.0) /))   &
+!   /= SUM (CONJG ((/ (1.0, 2.0), (2.0, 3.0) /))*(/ (1.0, 1.0), (1.0, 4.0) /))) &
+!   call abort ()
+!
+!if (ANY (MATMUL ((/ (1.0, 2.0), (2.0, 3.0) /),                                 &
+!                 RESHAPE ((/ (1.0, 1.0), (1.0, 4.0) /),(/2, 1/))) /=           &
+!         SUM ((/ (1.0, 2.0), (2.0, 3.0) /)*(/ (1.0, 1.0), (1.0, 4.0) /))))     &
+!    call abort ()      
+
+
+if (DOT_PRODUCT ((/ (1.0, 2.0), (2.0, 3.0) /), (/ (1.0, 1.0), (1.0, 4.0) /))  &
+    /= CONJG (cmplx(1.0, 2.0)) * cmplx(1.0, 1.0)                              &
+     + CONJG (cmplx(2.0, 3.0)) * cmplx(1.0, 4.0)) &
+  call abort ()
+
+if (ANY (MATMUL ((/ (1.0, 2.0), (2.0, 3.0) /),                                &
+                 RESHAPE ((/ (1.0, 1.0), (1.0, 4.0) /),(/2, 1/)))             &
+         /= cmplx(1.0, 2.0) * cmplx(1.0, 1.0)                                 &
+          + cmplx(2.0, 3.0) * cmplx(1.0, 4.0)))                               &
+  call abort ()      
+end
+
+
+! { dg-final { scan-tree-dump-not "abort" "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,33 @@
+! { dg-do run }
+!
+! PR fortran/57798
+! The call to sum used to be inlined into a loop with an uninitialized bound
+!
+! Original testcase by Stephan Kramer <stephan.kramer@imperial.ac.uk>
+
+program test
+  implicit none
+
+  call sub(2, 11)
+
+  contains
+
+    function func(m, n)
+      integer, intent(in):: m,n
+      real, dimension(m, n):: func
+
+      func = 1.0
+
+    end function func
+
+    subroutine sub(m, n)
+      integer, intent(in):: m, n
+      real, dimension(m,n):: y
+
+      y = 1.0
+      if (any(sum(y*func(m,n), dim=1) /= m)) call abort
+
+    end subroutine sub
+
+end program test
+
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR 58185: [4.8/4.9 Regression] [OOP] ICE when selector in SELECT TYPE is non-polymorphic
+!
+! Contributed by John <jwmwalrus@gmail.com>
+
+  integer :: array
+  select type (a => array)   ! { dg-error "Selector shall be polymorphic" }
+  end select
+end
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,20 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR 58058: [4.7/4.8/4.9 Regression] Memory leak with transfer function
+!
+! Contributed by Thomas Jourdan <thomas.jourdan@orange.fr>
+
+  implicit none
+
+  integer, dimension(3) :: t1
+  character(len=64) :: str
+  
+  t1 = (/1,2,3/)
+
+  str = transfer(t1,str)
+
+end
+
+! { dg-final { scan-tree-dump-times "__builtin_free" 1 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,34 @@
+! { dg-do compile }
+!
+! PR 57217: [4.7/4.8/4.9 Regression][OOP] Accepts invalid TBP overriding - lacking arguments check
+!
+! Contributed by Salvatore Filippone <filippone.salvatore@gmail.com>
+
+module base_mod
+  implicit none
+  type base_type
+  contains
+    procedure, pass(map)  :: clone    => base_clone
+  end type
+contains
+  subroutine  base_clone(map,mapout)
+    class(base_type) :: map
+    class(base_type) :: mapout
+  end subroutine
+end module
+
+module r_mod
+  use base_mod
+  implicit none
+  type, extends(base_type) :: r_type
+  contains
+    procedure, pass(map)  :: clone    => r_clone   ! { dg-error "Type/rank mismatch in argument" }
+  end type
+contains
+  subroutine  r_clone(map,mapout)
+    class(r_type) :: map
+    class(r_type) :: mapout
+  end subroutine
+end module
+
+! { dg-final { cleanup-modules "base_mod r_mod" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,15 @@
+! { dg-do compile }
+!
+! PR fortran/57435
+!
+! Contributed by Lorenz HÃ¼depohl
+!
+module precision
+end module precision
+  contains
+  use precision     ! { dg-error "Unexpected USE statement in CONTAINS section" }
+module stressten_rt ! { dg-error "Unexpected MODULE statement in CONTAINS section" }
+  use precision     ! { dg-error "Unexpected USE statement in CONTAINS section" }
+  implicit none     ! { dg-error "Unexpected IMPLICIT NONE statement in CONTAINS section" }
+
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90 gcc-4.8.1/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gfortran.fortran-torture/execute/pr57396.f90	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,33 @@
+module testmod
+  implicit none
+
+  contains
+
+  subroutine foo(n)
+    integer, intent(in) :: n
+    real :: r(0:n,-n:n), a(0:n,-n:n), dj
+    integer :: k, j
+
+    ! initialize with some dummy values
+    do j = -n, n
+      a(:, j) = j
+      r(:,j) = j + 1
+    end do
+
+    ! here be dragons
+    do k = 0, n
+      dj = r(k, k - 2) * a(k, k - 2)
+      r(k,k) = a(k, k - 1) * dj
+    enddo
+
+    if (r(0,0) .ne. -2.) call abort
+
+  end subroutine
+
+end module
+
+program test
+  use testmod
+  implicit none
+  call foo(5)
+end program
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/array_bounds_test2.adb gcc-4.8.1/gcc/testsuite/gnat.dg/array_bounds_test2.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/array_bounds_test2.adb	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/array_bounds_test2.adb	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,25 @@
+--  { dg-do run }
+
+with Ada.Unchecked_Deallocation;
+
+procedure Array_Bounds_Test2 is
+
+  type String_Ptr_T is access String;
+  procedure Free is new Ada.Unchecked_Deallocation (String, String_Ptr_T);
+  String_Data : String_Ptr_T := new String'("Hello World");
+
+  function Peek return String_Ptr_T is
+  begin
+    return String_Data;
+  end Peek;
+
+begin
+  declare
+    Corrupted_String : String := Peek.all;
+  begin
+    Free(String_Data);
+    if Corrupted_String'First /= 1 then
+      raise Program_Error;
+    end if;
+  end;
+end;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/in_out_parameter4.adb gcc-4.8.1/gcc/testsuite/gnat.dg/in_out_parameter4.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/in_out_parameter4.adb	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/in_out_parameter4.adb	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,30 @@
+-- { dg-do run }
+-- { dg-options "-gnat12 -gnatVa" }
+
+procedure In_Out_Parameter4 is
+
+   type Enum is (E_Undetermined, E_Down, E_Up);
+   subtype Status_T is Enum range E_Down .. E_Up;
+
+   function Recurse (Val : in out Integer) return Status_T is
+
+     Result : Status_T;
+
+     procedure Dummy (I : in out Integer) is begin null; end;
+
+   begin
+     if Val > 500 then
+       Val := Val - 1;
+       Result := Recurse (Val);
+       return Result;
+     else
+       return E_UP;
+     end if;
+   end;
+
+   Val : Integer := 501;
+   S : Status_T;
+
+begin
+   S := Recurse (Val);
+end;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,24 @@
+-- { dg-do run }
+
+with Loop_Optimization16_Pkg; use Loop_Optimization16_Pkg;
+
+procedure Loop_Optimization16 is
+
+   Counter : Natural := 0;
+
+   C : constant Natural := F;
+
+   subtype Index_T is Index_Base range 1 .. Index_Base (C);
+
+begin
+
+   for I in Index_T'First .. Index_T'Last loop
+      Counter := Counter + 1;
+      exit when Counter > 200;
+   end loop;
+
+   if Counter > 200 then
+      raise Program_Error;
+   end if;
+
+end Loop_Optimization16;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,8 @@
+package body Loop_Optimization16_Pkg is
+
+  function F return Natural is
+  begin
+    return Natural (Index_Base'Last);
+  end;
+
+end Loop_Optimization16_Pkg;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,7 @@
+package Loop_Optimization16_Pkg is
+
+  type Index_Base is range 0 .. 127;
+
+  function F return Natural;
+
+end Loop_Optimization16_Pkg;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.adb gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.adb	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.adb	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,31 @@
+with Opt28_Pkg; use Opt28_Pkg;
+
+package body Opt28 is
+
+  function Full_Filename (Filename : String) return String is
+    Path : constant String := "PATH";
+    Posix_Path : constant Posix_String := To_Posix (Path);
+  begin
+
+    declare
+      M : constant Posix_String := Value_Of (Posix_Path);
+      N : constant Posix_String (1 .. M'Length) := M;
+      Var : constant String := To_String (Str => N);
+      Start_Pos : Natural := 1;
+      End_Pos   : Natural := 1;
+    begin
+      while Start_Pos <= Var'Length loop
+        End_Pos := Position (Var (Start_Pos .. Var'Length));
+
+        if Is_File (To_Posix (Var (Start_Pos .. End_Pos - 1) & Filename)) then
+          return Var (Start_Pos .. End_Pos - 1) & Filename;
+        else
+          Start_Pos := End_Pos + 1;
+        end if;
+      end loop;
+    end;
+
+    return "";
+  end;
+
+end Opt28;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.ads gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.ads
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28.ads	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28.ads	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,8 @@
+-- { dg-do compile }
+-- { dg-options "-O2" }
+
+package Opt28 is
+
+  function Full_Filename (Filename : String) return String;
+
+end Opt28;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28_pkg.ads gcc-4.8.1/gcc/testsuite/gnat.dg/opt28_pkg.ads
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/opt28_pkg.ads	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/opt28_pkg.ads	2013-10-01 16:06:44.016554284 +0000
@@ -0,0 +1,11 @@
+package Opt28_Pkg is
+
+  type Posix_String is array (Positive range <>) of aliased Character;
+
+  function To_Posix (Str : String) return Posix_String;
+  function To_String (Str : Posix_String) return String;
+  function Is_File (Str : Posix_String) return Boolean;
+  function Value_Of (Name : Posix_String) return Posix_String;
+  function Position (In_Line : String) return Natural;
+
+end Opt28_Pkg;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go	2012-09-29 18:16:01.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go	2013-10-01 16:06:44.016554284 +0000
@@ -594,6 +594,19 @@
 	"}\n" +
 	"\n"
 
+const binaryConstR0 = "func test%vBinaryR%v(a, add, sub, mul, div, mod, and, or, xor, andnot %v, dodiv bool) {\n" +
+	"	const b %v = %v;\n" +
+	"	const typ = `%s`;\n" +
+	"	if n, op, want := a + b, `+`, add; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a - b, `-`, sub; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a * b, `*`, mul; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a & b, `&`, and; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a | b, `|`, or; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a ^ b, `^`, xor; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a &^ b, `&^`, andnot; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"}\n" +
+	"\n"
+
 const shiftConstL = "func test%vShiftL%v(b uint64, left, right %v) {\n" +
 	"	const a %v = %v;\n" +
 	"	const typ = `%s`;\n" +
@@ -621,12 +634,20 @@
 func constTests() {
 	for i, a := range int64Values {
 		fmt.Fprintf(bout, binaryConstL, "Int64", i, "int64", "int64", a, "int64")
-		fmt.Fprintf(bout, binaryConstR, "Int64", i, "int64", "int64", a, "int64")
+		if a.hi == 0 && a.lo == 0 {
+			fmt.Fprintf(bout, binaryConstR0, "Int64", i, "int64", "int64", a, "int64")
+		} else {
+			fmt.Fprintf(bout, binaryConstR, "Int64", i, "int64", "int64", a, "int64")
+		}
 		fmt.Fprintf(bout, shiftConstL, "Int64", i, "int64", "int64", a, "int64")
 	}
 	for i, a := range uint64Values {
 		fmt.Fprintf(bout, binaryConstL, "Uint64", i, "uint64", "uint64", a, "uint64")
-		fmt.Fprintf(bout, binaryConstR, "Uint64", i, "uint64", "uint64", a, "uint64")
+		if a.hi == 0 && a.lo == 0 {
+			fmt.Fprintf(bout, binaryConstR0, "Uint64", i, "uint64", "uint64", a, "uint64")
+		} else {
+			fmt.Fprintf(bout, binaryConstR, "Uint64", i, "uint64", "uint64", a, "uint64")
+		}
 		fmt.Fprintf(bout, shiftConstL, "Uint64", i, "uint64", "uint64", a, "uint64")
 	}
 	for i, a := range shiftValues {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go	2012-09-29 18:16:01.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go	2013-10-01 16:06:44.016554284 +0000
@@ -6,12 +6,12 @@
 
 package main
 
-func f() int {	// ERROR "return|control"
+func f() int {
 	if false {
 		return 0;
 	}
 	// we should not be able to return successfully w/o a return statement
-}
+} // ERROR "return"
 
 func main() {
 	print(f(), "\n");
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go	2012-09-29 18:16:01.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go	2013-10-01 16:06:44.016554284 +0000
@@ -18,7 +18,7 @@
     for s := range arr {
         x := make([]byte, 10)
         for i := 0; i < 100 ; i++ {
-            x[i] ^= k[i-arr[s].num%0]
+            x[i] ^= k[i-arr[s].num%3]
         }
     }
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go	2012-09-29 18:16:01.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go	2013-10-01 16:06:44.016554284 +0000
@@ -23,7 +23,7 @@
 
 // non-constant shift expressions
 var (
-	e1       = g(2.0 << s) // ERROR "invalid" "as type interface"
+	e1       = g(2.0 << s) // ERROR "invalid|shift of non-integer operand" "as type interface"
 	f1       = h(2 << s)   // ERROR "invalid" "as type float64"
 	g1 int64 = 1.1 << s    // ERROR "truncated"
 )
@@ -36,3 +36,206 @@
 	b2     = 1.0 << c    // ERROR "overflow"
 	d2     = f(1.0 << c) // ERROR "overflow"
 )
+
+var (
+	// issues 4882, 4936.
+	a3 = 1.0<<s + 0 // ERROR "invalid|shift of non-integer operand"
+	// issue 4937
+	b3 = 1<<s + 1 + 1.0 // ERROR "invalid|shift of non-integer operand"
+	// issue 5014
+	c3     = complex(1<<s, 0) // ERROR "invalid|shift of type float64"
+	d3 int = complex(1<<s, 3) // ERROR "non-integer|cannot use.*as type int" "shift of type float64"
+	e3     = real(1 << s)     // ERROR "invalid"
+	f3     = imag(1 << s)     // ERROR "invalid"
+)
+
+// from the spec
+func _() {
+	var (
+		s uint  = 33
+		i       = 1 << s         // 1 has type int
+		j int32 = 1 << s         // 1 has type int32; j == 0
+		k       = uint64(1 << s) // 1 has type uint64; k == 1<<33
+		m int   = 1.0 << s       // 1.0 has type int
+		n       = 1.0<<s != i    // 1.0 has type int; n == false if ints are 32bits in size
+		o       = 1<<s == 2<<s   // 1 and 2 have type int; o == true if ints are 32bits in size
+		// next test only fails on 32bit systems
+		// p = 1<<s == 1<<33  // illegal if ints are 32bits in size: 1 has type int, but 1<<33 overflows int
+		u          = 1.0 << s    // ERROR "non-integer|float64"
+		u1         = 1.0<<s != 0 // ERROR "non-integer|float64"
+		u2         = 1<<s != 1.0 // ERROR "non-integer|float64"
+		v  float32 = 1 << s      // ERROR "non-integer|float32"
+		w  int64   = 1.0 << 33   // 1.0<<33 is a constant shift expression
+		_, _, _, _, _, _, _, _, _, _ = j, k, m, n, o, u, u1, u2, v, w
+	)
+}
+
+// shifts in comparisons w/ untyped operands
+var (
+	_ = 1<<s == 1
+	_ = 1<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1 == 1
+	_ = 1<<s+1 == 1.   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1. == 1   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1. == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1 == 1   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1 == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1. == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1. == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s == 1<<s
+	_ = 1<<s == 1.<<s  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1<<s  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1.<<s // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1<<s == 1
+	_ = 1<<s+1<<s == 1.   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1<<s == 1<<s+1<<s
+	_ = 1<<s+1<<s == 1<<s+1.<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1<<s == 1.<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1<<s == 1.<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1<<s == 1<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1.<<s+1<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1.<<s+1.<<s // ERROR "invalid|non-integer|shift of type float64"
+)
+
+// shifts in comparisons w/ typed operands
+var (
+	x int
+	_ = 1<<s == x
+	_ = 1.<<s == x
+	_ = 1.1<<s == x // ERROR "truncated"
+
+	_ = 1<<s+x == 1
+	_ = 1<<s+x == 1.
+	_ = 1<<s+x == 1.1 // ERROR "truncated"
+	_ = 1.<<s+x == 1
+	_ = 1.<<s+x == 1.
+	_ = 1.<<s+x == 1.1  // ERROR "truncated"
+	_ = 1.1<<s+x == 1   // ERROR "truncated"
+	_ = 1.1<<s+x == 1.  // ERROR "truncated"
+	_ = 1.1<<s+x == 1.1 // ERROR "truncated"
+
+	_ = 1<<s == x<<s
+	_ = 1.<<s == x<<s
+	_ = 1.1<<s == x<<s // ERROR "truncated"
+)
+
+// shifts as operands in non-arithmetic operations and as arguments
+func _() {
+	var s uint
+	var a []int
+	_ = a[1<<s]
+	_ = a[1.]
+	// For now, the spec disallows these. We may revisit past Go 1.1.
+	_ = a[1.<<s]  // ERROR "integer|shift of type float64"
+	_ = a[1.1<<s] // ERROR "integer|shift of type float64"
+
+	_ = make([]int, 1)
+	_ = make([]int, 1.)
+	_ = make([]int, 1.<<s)
+	_ = make([]int, 1.1<<s) // ERROR "non-integer|truncated"
+
+	_ = float32(1)
+	_ = float32(1 << s) // ERROR "non-integer|shift of type float32"
+	_ = float32(1.)
+	_ = float32(1. << s)  // ERROR "non-integer|shift of type float32"
+	_ = float32(1.1 << s) // ERROR "non-integer|shift of type float32"
+
+	_ = append(a, 1<<s)
+	_ = append(a, 1.<<s)
+	_ = append(a, 1.1<<s) // ERROR "truncated"
+
+	var b []float32
+	_ = append(b, 1<<s)   // ERROR "non-integer|type float32"
+	_ = append(b, 1.<<s)  // ERROR "non-integer|type float32"
+	_ = append(b, 1.1<<s) // ERROR "non-integer|type float32"
+
+	_ = complex(1.<<s, 0)  // ERROR "non-integer|shift of type float64"
+	_ = complex(1.1<<s, 0) // ERROR "non-integer|shift of type float64"
+	_ = complex(0, 1.<<s)  // ERROR "non-integer|shift of type float64"
+	_ = complex(0, 1.1<<s) // ERROR "non-integer|shift of type float64"
+
+	var a4 float64
+	var b4 int
+	_ = complex(1<<s, a4) // ERROR "non-integer|shift of type float64"
+	_ = complex(1<<s, b4) // ERROR "invalid|non-integer|"
+
+	var m1 map[int]string
+	delete(m1, 1<<s)
+	delete(m1, 1.<<s)
+	delete(m1, 1.1<<s) // ERROR "truncated|shift of type float64"
+
+	var m2 map[float32]string
+	delete(m2, 1<<s)   // ERROR "invalid|cannot use 1 << s as type float32"
+	delete(m2, 1.<<s)  // ERROR "invalid|cannot use 1 << s as type float32"
+	delete(m2, 1.1<<s) // ERROR "invalid|cannot use 1.1 << s as type float32"
+}
+
+// shifts of shifts
+func _() {
+	var s uint
+	_ = 1 << (1 << s)
+	_ = 1 << (1. << s)
+	_ = 1 << (1.1 << s)   // ERROR "non-integer|truncated"
+	_ = 1. << (1 << s)    // ERROR "non-integer|shift of type float64"
+	_ = 1. << (1. << s)   // ERROR "non-integer|shift of type float64"
+	_ = 1.1 << (1.1 << s) // ERROR "invalid|non-integer|truncated"
+
+	_ = (1 << s) << (1 << s)
+	_ = (1 << s) << (1. << s)
+	_ = (1 << s) << (1.1 << s)   // ERROR "truncated"
+	_ = (1. << s) << (1 << s)    // ERROR "non-integer|shift of type float64"
+	_ = (1. << s) << (1. << s)   // ERROR "non-integer|shift of type float64"
+	_ = (1.1 << s) << (1.1 << s) // ERROR "invalid|non-integer|truncated"
+
+	var x int
+	x = 1 << (1 << s)
+	x = 1 << (1. << s)
+	x = 1 << (1.1 << s) // ERROR "truncated"
+	x = 1. << (1 << s)
+	x = 1. << (1. << s)
+	x = 1.1 << (1.1 << s) // ERROR "truncated"
+
+	x = (1 << s) << (1 << s)
+	x = (1 << s) << (1. << s)
+	x = (1 << s) << (1.1 << s) // ERROR "truncated"
+	x = (1. << s) << (1 << s)
+	x = (1. << s) << (1. << s)
+	x = (1.1 << s) << (1.1 << s) // ERROR "truncated"
+
+	var y float32
+	y = 1 << (1 << s)     // ERROR "non-integer|type float32"
+	y = 1 << (1. << s)    // ERROR "non-integer|type float32"
+	y = 1 << (1.1 << s)   // ERROR "invalid|truncated|float32"
+	y = 1. << (1 << s)    // ERROR "non-integer|type float32"
+	y = 1. << (1. << s)   // ERROR "non-integer|type float32"
+	y = 1.1 << (1.1 << s) // ERROR "invalid|truncated|float32"
+
+	var z complex128
+	z = (1 << s) << (1 << s)     // ERROR "non-integer|type complex128"
+	z = (1 << s) << (1. << s)    // ERROR "non-integer|type complex128"
+	z = (1 << s) << (1.1 << s)   // ERROR "invalid|truncated|complex128"
+	z = (1. << s) << (1 << s)    // ERROR "non-integer|type complex128"
+	z = (1. << s) << (1. << s)   // ERROR "non-integer|type complex128"
+	z = (1.1 << s) << (1.1 << s) // ERROR "invalid|truncated|complex128"
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	2010-07-02 09:49:53.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	2013-10-01 16:06:44.016554284 +0000
@@ -2,12 +2,15 @@
 
 // { dg-do run { target *-*-darwin* } }
 // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
-// { dg-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4" }
+// { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
 // This test has no equivalent or meaning for m64/ABI V2
 // { dg-xfail-run-if "No Test Avail" { *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
 
 #include <objc/objc-runtime.h>
 #include <stdlib.h>
+#include <Foundation/NSObject.h>
+
+//extern "C" { int printf(const char *,...); }
 #define CHECK_IF(expr) if(!(expr)) abort()
 
 #ifndef CLS_HAS_CXX_STRUCTORS
@@ -19,7 +22,7 @@
   cxx_struct (void) { a = b = 55; }
 };
 
-@interface Foo {
+@interface Foo: NSObject {
   int c;
   cxx_struct s;
 }
@@ -42,9 +45,11 @@
   Class cls;
 
   cls = objc_getClass("Foo");
-  CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
+//  printf((const char *)"Foo info %lx\n",cls->info);
+  CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) != 0);
   cls = objc_getClass("Bar");
-  CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+//  printf((const char *)"Bar info %lx\n",cls->info);
+  CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) == 0);
 
 #else
   /* No test needed or available.  */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm	2013-10-01 16:06:44.016554284 +0000
@@ -2,6 +2,7 @@
 /* Author: Ziemowit Laski <zlaski@apple.com>  */
 /* { dg-options "-Wstrict-selector-match" } */
 /* { dg-do compile } */
+/* { dg-skip-if "Object interface removed" { *-*-darwin[1-2]* && { lp64 } } { "-fnext-runtime" } { "" } } */
 
 #include <objc/Protocol.h>
 
@@ -19,13 +20,13 @@
   Class receiver;
 
   [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
-       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
-       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
+       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
+       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
 
   [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
-       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
-       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
-       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
+       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
+       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
 
   [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	2010-09-15 00:08:59.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	2013-10-01 16:06:44.016554284 +0000
@@ -1,12 +1,19 @@
 /* Check that typedefs of ObjC classes preserve 
    any @protocol qualifiers.  */
 /* { dg-do compile } */
+
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 @protocol CanDoStuff;
 
-typedef Object<CanDoStuff> CanDoStuffType;
-typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+typedef OBJECT<CanDoStuff> CanDoStuffType;
+typedef OBJECT<CanDoStuff> *CanDoStuffTypePtr;
 
 @protocol CanDoStuff
 - (int) dostuff;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	2010-10-22 10:30:29.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	2013-10-01 16:06:44.016554284 +0000
@@ -6,16 +6,16 @@
 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mconstant-cfstrings" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   char *cString;
   unsigned int len;
 }
 + (Foo *)description;
 @end
 
-@interface Bar: Object
+@interface Bar: NSObject
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	2013-10-01 16:06:44.016554284 +0000
@@ -5,17 +5,23 @@
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
 
-@interface Foo: Object {
+@interface Foo: OBJECT {
   char *cString;
   unsigned int len;
 }
 + (id)description;
 @end
 
-@interface Bar: Object
+@interface Bar: OBJECT
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	2010-10-05 19:23:33.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	2013-10-01 16:06:44.020554284 +0000
@@ -1,7 +1,13 @@
 /* Graceful handling of a syntax error.  */
 /* { dg-do compile } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 class foo {
   public:
@@ -12,7 +18,7 @@
 
 extern void NXLog(const char *, ...);
 
-@interface Test2 : Object {
+@interface Test2 : OBJECT {
 }
 - (void) foo2;
 @end
@@ -23,4 +29,4 @@
 } /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
 @end
 
-/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 22 } */
+/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 28 } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	2013-10-01 16:06:44.020554284 +0000
@@ -6,10 +6,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSString: Object
+@interface NSString: NSObject
 @end
 
 @interface NSSimpleCString : NSString {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	2013-10-01 16:06:44.020554284 +0000
@@ -7,10 +7,10 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface XString: Object {
+@interface XString: NSObject {
 @protected
     char *bytes;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	2013-10-01 16:06:44.020554284 +0000
@@ -5,10 +5,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSConstantString: Object {
+@interface NSConstantString: NSObject {
   char *cString;
   unsigned int len;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m	2013-10-01 16:06:44.020554284 +0000
@@ -4,24 +4,25 @@
 /* { dg-require-effective-target lp64 } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" } */
 
 #include <stdbool.h>
 #include <string.h>
 #include <stdlib.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../objc-obj-c++-shared/runtime.h"
 
-#define CHECK_IF(E) if (!(E)) abort ()
+extern int printf(char *,...);
+void CHECK_IF(const char *s1, const char *s2)
+{
+ if (strcmp(s1,s2) != 0) {
+ printf ("'%s'\n'%s'\n",s1,s2);
+ abort ();
+ }
+}
 
 @class NSDictionary, NSFont, NSError, _NSATSTypesetterGuts, NSString, NSMenu, NSArray;
 
-typedef unsigned char UInt8;
-typedef const signed long OSStatus;
-typedef unsigned long CFIndex;
-typedef unsigned int UInt32;
-typedef UInt32 FourCharCode;
-typedef FourCharCode OSType;
-
 struct FSRef {
   UInt8 hidden[80];
 };
@@ -99,10 +100,10 @@
   unsigned int parameterMask;
 } NSErrorUserInfoFormatter;
 
-typedef Object MyObj;
-typedef Object *MyPtr;
+typedef NSObject MyObj;
+typedef NSObject *MyPtr;
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   NSATSGlyphStorageRun r;
 }
 - (NSError *)_errorWithOSStatus:(OSStatus)inOSStatus ref1:(const FSRef *)inRef1 ref2:(const struct FSRef *)inRef2
@@ -114,7 +115,7 @@
 - (id)str1:(const char *)str1 str2:(char *)str2 str3:(char *const)str3 str4:(const char *const)str4;
 - (oneway void)foo1:(Foo *)foo1 foo2:(const Foo *)foo2 foo3:(Foo *const)foo3 foo4:(const Foo *const)foo4;
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1;
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3;
+- (inout id)obj1:(const MyPtr)obj1 obj2:(NSObject *const)obj2 obj3:(MyObj *const)obj3;
 + (ComponentInstance)_defaultScriptingComponent;
 - (NSString *)_formatCocoaErrorString:(NSString *)formatString parameters:(const char *)parameters 
   applicableFormatters:(NSErrorUserInfoFormatter **)formatters count:(int)numFormatters;
@@ -156,7 +157,7 @@
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1 {
   return "Hello";
 }  
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3 {
+- (inout id)obj1:(const MyPtr)obj1 obj2:(NSObject *const)obj2 obj3:(MyObj *const)obj3 {
   return self;
 }
 + (ComponentInstance)_defaultScriptingComponent {
@@ -191,6 +192,8 @@
 }
 @end
 
+/* FIXME: we produce different output c.f. the system compiler on OSX10.6+ */
+
 int main(void) {
   Class fooClass = objc_getClass ("Foo");
   Method meth;
@@ -199,72 +202,76 @@
   Ivar ivar;
 
   meth = class_getInstanceMethod (fooClass, @selector(_errorWithOSStatus:ref1:ref2:reading:));
-  CHECK_IF (!strcmp (method_getTypeEncoding(meth), "@44@0:8q16r^{FSRef=[80C]}24r^{FSRef=[80C]}32c40"));
+  CHECK_IF (method_getTypeEncoding(meth), "@40@0:8i16r^{FSRef=[80C]}20r^{FSRef=[80C]}28c36");
 
   meth = class_getInstanceMethod (fooClass, @selector(_attributeRunForCharacterAtIndex:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r^{?=@@QQ^Qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@:::****{?=b1b1b1b1b1b27}}24@0:8Q16"));
+  CHECK_IF (method_getTypeEncoding (meth), "r^{?=@@qq^qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@:::****{?=b1b1b1b1b1b27}}24@0:8q16");
+/* clang produces: r^{?=@@qq^qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@::^{objc_selector}****{?=b1b1b1b1b1b27}}24@0:8q16 */
 
   meth = class_getInstanceMethod (fooClass, @selector(_getATSTypesetterGuts:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r@24@0:8r:16"));
+  CHECK_IF (method_getTypeEncoding (meth), "r@24@0:8r:16");
+/* "@24@0:8r^{objc_selector=}16" */
 
   meth = class_getInstanceMethod (fooClass, @selector(resumeWithSuspensionID:and:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "v32@0:8^{__NSAppleEventManagerSuspension=}16r^Q24"));
+  CHECK_IF (method_getTypeEncoding (meth), "v32@0:8^{__NSAppleEventManagerSuspension=}16r^q24");
 
   meth = class_getInstanceMethod (fooClass, @selector(anotherMeth:and:and:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r@40@0:8r:16r@24r@32"));
+  CHECK_IF (method_getTypeEncoding (meth), "r@40@0:8r:16r@24r@32");
 
   meth = class_getInstanceMethod (fooClass, @selector(str1:str2:str3:str4:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "@48@0:8r*16*24*32r*40"));
+  CHECK_IF (method_getTypeEncoding (meth), "@48@0:8r*16*24*32r*40");
 
   meth = class_getInstanceMethod (fooClass, @selector(foo1:foo2:foo3:foo4:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "Vv48@0:8@16r@24@32r@40"));
+  CHECK_IF (method_getTypeEncoding (meth), "Vv48@0:8@16r@24@32r@40");
 
   meth = class_getInstanceMethod (fooClass, @selector(sel1:id1:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "rn*32@0:8r:16r@24"));
+  CHECK_IF (method_getTypeEncoding (meth), "rn*32@0:8r:16r@24");
 
   meth = class_getInstanceMethod (fooClass, @selector(obj1:obj2:obj3:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "N@40@0:8r@16@24^{Object=#}32"));
+  CHECK_IF (method_getTypeEncoding (meth), "N@40@0:8r@16@24^{NSObject=#}32");
 
   meth = class_getClassMethod (fooClass, @selector(_defaultScriptingComponent));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^{ComponentInstanceRecord=[1q]}16@0:8"));
+  CHECK_IF (method_getTypeEncoding (meth), "^{ComponentInstanceRecord=[1q]}16@0:8");
 
   meth = class_getInstanceMethod (fooClass, @selector(_formatCocoaErrorString:parameters:applicableFormatters:count:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "@44@0:8@16r*24^^{?}32i40"));
+  CHECK_IF (method_getTypeEncoding (meth), "@44@0:8@16r*24^^{?}32i40");
 
   meth = class_getInstanceMethod (fooClass, @selector(formatter_func:run:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^{?=^?@I}32@0:8@16r^^{?}24"));
+  CHECK_IF (method_getTypeEncoding (meth), "^{?=^?@I}32@0:8@16r^^{?}24");
 
   meth = class_getInstanceMethod (fooClass, @selector(_forgetWord:inDictionary:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "c32@0:8nO@16nO@24"));
+  CHECK_IF (method_getTypeEncoding (meth), "c32@0:8nO@16nO@24");
 
   meth = class_getInstanceMethod (fooClass, @selector(_registerServicesMenu:withSendTypes:andReturnTypes:addToList:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "v44@0:8@16r^*24r^*32c40"));
+  CHECK_IF (method_getTypeEncoding (meth), "v44@0:8@16r^*24r^*32c40");
 
   meth = class_getClassMethod (fooClass, @selector(_proxySharePointer));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^^{__CFSet}16@0:8"));
+  CHECK_IF (method_getTypeEncoding (meth), "^^{__CFSet}16@0:8");
 
   meth = class_getInstanceMethod (fooClass, @selector(_checkGrammarInString:language:details:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "{_NSRange=II}40@0:8n@16nO@24oO^@32"));
+  CHECK_IF (method_getTypeEncoding (meth), "{_NSRange=II}40@0:8n@16nO@24oO^@32");
 
   meth = class_getInstanceMethod (fooClass, @selector(_resolvePositionalStakeGlyphsForLineFragment:lineFragmentRect:minPosition:maxPosition:maxLineFragmentWidth:breakHint:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "B60@0:8^{__CTLine=}16{_NSRect={_NSPoint=ff}{_NSSize=ff}}24f40f44f48^Q52"));
+  CHECK_IF (method_getTypeEncoding (meth), "B60@0:8^{__CTLine=}16{_NSRect={_NSPoint=ff}{_NSSize=ff}}24f40f44f48^q52");
 
   meth = class_getClassMethod (fooClass, @selector(findVoiceByIdentifier:returningCreator:returningID:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "c40@0:8@16^I24^I32"));
+  CHECK_IF (method_getTypeEncoding (meth), "c40@0:8@16^I24^I32");
 
   ivars = class_copyIvarList (fooClass, &ivar_count);
-  CHECK_IF (ivar_count == 1);
+  if (ivar_count != 1) {
+    abort ();
+  }
 
   ivar = ivars[0];
-  CHECK_IF (!strcmp (ivar_getName(ivar), "r"));
-  CHECK_IF (!strcmp (ivar_getTypeEncoding(ivar),
+  CHECK_IF (ivar_getName(ivar), "r");
+  CHECK_IF (ivar_getTypeEncoding(ivar),
    "{?=\"_attributes\"@\"NSDictionary\"\"_font\"@\"NSFont\"\"_characterLength\""
-    "Q\"_nominalGlyphLocation\"Q\"p\"^Q\"_defaultLineHeight\"f\"_defaultBaselineOffset\""
+    "q\"_nominalGlyphLocation\"q\"p\"^q\"_defaultLineHeight\"f\"_defaultBaselineOffset\""
     "f\"_horizExpansion\"f\"_baselineDelta\"f\"_attachmentBBox\"{_NSRect=\"origin\""
     "{_NSPoint=\"x\"f\"y\"f}\"size\"{_NSSize=\"width\"f\"height\"f}}\"ll\"q\"llp\"^q\"ull\""
     "Q\"ullp\"^Q\"a\"@\"a1\"@\"a2\"@\"b\":\"b1\":\"b2\":\"str1\"*\"str2\"*\"str3\"*\"str4\""
     "*\"_rFlags\"{?=\"_isAttachmentRun\"b1\"_hasPositionalStake\"b1\"_isDefaultFace\""
-    "b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}"));
-
+    "b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}");
+/*"{?=\"_attributes\"@\"NSDictionary\"\"_font\"@\"NSFont\"\"_characterLength\"q\"_nominalGlyphLocation\"q\"p\"^q\"_defaultLineHeight\"f\"_defaultBaselineOffset\"f\"_horizExpansion\"f\"_baselineDelta\"f\"_attachmentBBox\"{_NSRect=\"origin\"{_NSPoint=\"x\"f\"y\"f}\"size\"{_NSSize=\"width\"f\"height\"f}}\"ll\"q\"llp\"^q\"ull\"Q\"ullp\"^Q\"a\"@\"a1\"@\"a2\"@\"b\":\"b1\":\"b2\"^{objc_selector}\"str1\"*\"str2\"*\"str3\"*\"str4\"*\"_rFlags\"{?=\"_isAttachmentRun\"b1\"_hasPositionalStake\"b1\"_isDefaultFace\"b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}"*/
   return 0;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m	2011-02-18 00:07:38.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m	2013-10-01 16:06:44.020554284 +0000
@@ -7,20 +7,19 @@
 /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-freplace-objc-classes" } */
 
-#include <objc/objc.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Object (TEST_SUITE_C1)
+@interface NSObject (TEST_SUITE_C1)
 - init;
 @end
-@implementation Object (TEST_SUITE_C1)
+@implementation NSObject (TEST_SUITE_C1)
 - init {return self;}
 @end
 
-@interface Base: Object {
+@interface Base: NSObject {
 @public
   int a;
   float b;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m	2013-10-01 16:06:44.020554284 +0000
@@ -4,14 +4,21 @@
 /* { dg-do compile } */
 /* { dg-options "-Wstrict-selector-match" } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
+#include <objc/Object.h>
 #include <objc/Protocol.h>
+#define OBJECT Object
+#endif
 
 @interface Base
 - (unsigned)port;
 @end
 
 @interface Derived: Base
-- (Object *)port;
+- (OBJECT *)port;
 + (Protocol *)port;
 - (id)starboard;
 @end
@@ -20,13 +27,13 @@
   Class receiver;
 
   [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
-       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
-       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
+       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 17 } */
+       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 22 } */
 
   [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
-       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
-       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
-       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
+       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 33 } */
+       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 33 } */
+       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 33 } */
 
   [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m	2010-03-25 22:25:05.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m	2013-10-01 16:06:44.020554284 +0000
@@ -1,7 +1,7 @@
 /* { dg-do compile { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#import <Foundation/Foundation.h>
+#include <Foundation/NSObject.h>
 main() { [NSObject new]; }
 
 /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m	2011-01-09 16:24:46.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m	2013-10-01 16:06:44.020554284 +0000
@@ -1,17 +1,13 @@
 /* Test for valid objc objects used in a for-each statement. */
 /* FIXME: Run this test with the GNU runtime as well.  */
-/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-do run { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 
-#include <objc/objc-api.h>
-#include <Foundation/Foundation.h>
-
-#if defined (__NEXT_RUNTIME__) && defined (__LP64__)
-/* Fudge the class reference until we implement the compiler-side 
-   const strings.  */
-extern void *_NSConstantStringClassReference;
-#endif
+#include <Foundation/NSString.h>
+#include <Foundation/NSAutoreleasePool.h>
+#include <Foundation/NSArray.h>
 
 // gcc -o foo foo.m -framework Foundation
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m	2011-01-09 16:24:46.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m	2013-10-01 16:06:44.020554284 +0000
@@ -2,8 +2,10 @@
 /* { dg-do compile { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 
-#import <Foundation/Foundation.h>
+#include <Foundation/NSArray.h>
+#include <Foundation/NSAutoreleasePool.h>
 
 NSArray * createTestVictim(unsigned capacity) {
     NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m	2013-10-01 16:06:44.020554284 +0000
@@ -3,14 +3,24 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { { *-*-darwin* } && objc2 } } } */
 
+#if defined (__NEXT_RUNTIME__) && defined(__OBJC2__) \
+    && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
+    && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
 #include <objc/Protocol.h>
- 
-@interface Object (TS_CAT)
+#define OBJECT NSObject
+#else
+#include <objc/Object.h>
+#define OBJECT Object
+#include <objc/Protocol.h>
+#endif
+
+@interface OBJECT (TS_CAT)
 - test;
 @end
 
-@implementation Object (TS_CAT)
+@implementation OBJECT (TS_CAT)
 - test { return self; }
 @end
 
@@ -20,7 +30,7 @@
 @protocol B 
 @end
 
-@interface Dummy : Object <B>
+@interface Dummy : OBJECT <B>
 @end
 
 int main ()
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m	2010-09-15 00:08:59.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m	2013-10-01 16:06:44.020554284 +0000
@@ -1,12 +1,19 @@
 /* Check that typedefs of ObjC classes preserve 
    any @protocol qualifiers.  */
 /* { dg-do compile } */
+
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 @protocol CanDoStuff;
 
-typedef Object<CanDoStuff> CanDoStuffType;
-typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+typedef OBJECT<CanDoStuff> CanDoStuffType;
+typedef OBJECT<CanDoStuff> *CanDoStuffTypePtr;
 
 @protocol CanDoStuff
 - (int) dostuff;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	2010-10-22 10:30:29.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	2013-10-01 16:06:44.020554284 +0000
@@ -6,16 +6,16 @@
 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mconstant-cfstrings" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   char *cString;
   unsigned int len;
 }
 + (Foo *)description;
 @end
 
-@interface Bar: Object
+@interface Bar: NSObject
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m	2011-01-11 10:14:48.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m	2013-10-01 16:06:44.020554284 +0000
@@ -5,17 +5,23 @@
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
 
-@interface Foo: Object {
+@interface Foo: OBJECT {
   char *cString;
   unsigned int len;
 }
 + (id)description;
 @end
 
-@interface Bar: Object
+@interface Bar: OBJECT
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m	2011-02-18 00:07:38.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m	2013-10-01 16:06:44.020554284 +0000
@@ -4,9 +4,9 @@
 /* { dg-do compile { target { *-*-darwin* } } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Base: Object 
+@interface Base: NSObject 
 - (void)setValues;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	2013-10-01 16:06:44.020554284 +0000
@@ -6,10 +6,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSString: Object
+@interface NSString: NSObject
 @end
 
 @interface NSSimpleCString : NSString {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	2013-10-01 16:06:44.020554284 +0000
@@ -7,10 +7,10 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface XString: Object {
+@interface XString: NSObject {
 @protected
     char *bytes;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	2013-10-01 16:06:44.020554284 +0000
@@ -5,10 +5,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSConstantString: Object {
+@interface NSConstantString: NSObject {
   char *cString;
   unsigned int len;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m	2013-10-01 16:06:44.020554284 +0000
@@ -5,13 +5,12 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fzero-link" } */
 
-#include <objc/Object.h>
-#include <objc/objc.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: NSObject
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m	2011-02-18 00:07:38.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m	2013-10-01 16:06:44.020554284 +0000
@@ -5,12 +5,12 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fno-zero-link" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: NSObject
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m	2011-06-06 22:46:58.000000000 +0000
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m	2013-10-01 16:06:44.020554284 +0000
@@ -2,15 +2,23 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 
 /* { dg-do run { target *-*-darwin* } } */
-/* { dg-options "-fzero-link" } */
+/* { dg-additional-options "-fzero-link" } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#include <objc/Protocol.h>
+#define OBJECT Object
+#endif
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: OBJECT
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/tlink.c gcc-4.8.1/gcc/tlink.c
--- gcc-4.8.1.orig/gcc/tlink.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/tlink.c	2013-10-01 16:06:44.024554284 +0000
@@ -817,18 +817,18 @@
 void
 do_tlink (char **ld_argv, char **object_lst ATTRIBUTE_UNUSED)
 {
-  int exit = tlink_execute ("ld", ld_argv, ldout, lderrout);
+  int ret = tlink_execute ("ld", ld_argv, ldout, lderrout);
 
   tlink_init ();
 
-  if (exit)
+  if (ret)
     {
       int i = 0;
 
       /* Until collect does a better job of figuring out which are object
 	 files, assume that everything on the command line could be.  */
       if (read_repo_files (ld_argv))
-	while (exit && i++ < MAX_ITERATIONS)
+	while (ret && i++ < MAX_ITERATIONS)
 	  {
 	    if (tlink_verbose >= 3)
 	      {
@@ -843,7 +843,7 @@
 	      break;
 	    if (tlink_verbose)
 	      fprintf (stderr, _("collect: relinking\n"));
-	    exit = tlink_execute ("ld", ld_argv, ldout, lderrout);
+	    ret = tlink_execute ("ld", ld_argv, ldout, lderrout);
 	  }
     }
 
@@ -851,10 +851,10 @@
   unlink (ldout);
   dump_ld_file (lderrout, stderr);
   unlink (lderrout);
-  if (exit)
+  if (ret)
     {
-      error ("ld returned %d exit status", exit);
-      collect_exit (exit);
+      error ("ld returned %d exit status", ret);
+      exit (ret);
     }
   else
     {
diff -Naur gcc-4.8.1.orig/gcc/tree-affine.c gcc-4.8.1/gcc/tree-affine.c
--- gcc-4.8.1.orig/gcc/tree-affine.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/tree-affine.c	2013-10-01 16:06:44.024554284 +0000
@@ -736,11 +736,10 @@
 }
 
 /* If VAL != CST * DIV for any constant CST, returns false.
-   Otherwise, if VAL != 0 (and hence CST != 0), and *MULT_SET is true,
-   additionally compares CST and MULT, and if they are different,
-   returns false.  Finally, if neither of these two cases occur,
-   true is returned, and if CST != 0, CST is stored to MULT and
-   MULT_SET is set to true.  */
+   Otherwise, if *MULT_SET is true, additionally compares CST and MULT,
+   and if they are different, returns false.  Finally, if neither of these
+   two cases occur, true is returned, and CST is stored to MULT and MULT_SET
+   is set to true.  */
 
 static bool
 double_int_constant_multiple_p (double_int val, double_int div,
@@ -749,7 +748,13 @@
   double_int rem, cst;
 
   if (val.is_zero ())
-    return true;
+    {
+      if (*mult_set && !mult->is_zero ())
+	return false;
+      *mult_set = true;
+      *mult = double_int_zero;
+      return true;
+    }
 
   if (div.is_zero ())
     return false;
diff -Naur gcc-4.8.1.orig/gcc/tree-call-cdce.c gcc-4.8.1/gcc/tree-call-cdce.c
--- gcc-4.8.1.orig/gcc/tree-call-cdce.c	2013-02-20 15:19:13.000000000 +0000
+++ gcc-4.8.1/gcc/tree-call-cdce.c	2013-10-01 16:06:44.024554284 +0000
@@ -726,15 +726,28 @@
      return false and do not do any transformation for
      the call.  */
   if (nconds == 0)
-    return false;
+    {
+      conds.release ();
+      return false;
+    }
 
   bi_call_bb = gimple_bb (bi_call);
 
-  /* Now find the join target bb -- split
-     bi_call_bb if needed.  */
-  bi_call_bsi = gsi_for_stmt (bi_call);
+  /* Now find the join target bb -- split bi_call_bb if needed.  */
+  if (stmt_ends_bb_p (bi_call))
+    {
+      /* If the call must be the last in the bb, don't split the block,
+	 it could e.g. have EH edges.  */
+      join_tgt_in_edge_from_call = find_fallthru_edge (bi_call_bb->succs);
+      if (join_tgt_in_edge_from_call == NULL)
+	{
+	  conds.release ();
+	  return false;
+	}
+    }
+  else
+    join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
 
-  join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
   bi_call_bsi = gsi_for_stmt (bi_call);
 
   join_tgt_bb = join_tgt_in_edge_from_call->dest;
diff -Naur gcc-4.8.1.orig/gcc/tree-if-conv.c gcc-4.8.1/gcc/tree-if-conv.c
--- gcc-4.8.1.orig/gcc/tree-if-conv.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/tree-if-conv.c	2013-10-01 16:06:44.024554284 +0000
@@ -797,20 +797,6 @@
   return true;
 }
 
-/* Return true when BB post-dominates all its predecessors.  */
-
-static bool
-bb_postdominates_preds (basic_block bb)
-{
-  unsigned i;
-
-  for (i = 0; i < EDGE_COUNT (bb->preds); i++)
-    if (!dominated_by_p (CDI_POST_DOMINATORS, EDGE_PRED (bb, i)->src, bb))
-      return false;
-
-  return true;
-}
-
 /* Return true when BB is if-convertible.  This routine does not check
    basic block's statements and phis.
 
@@ -868,10 +854,23 @@
 	return false;
       }
 
-  if (EDGE_COUNT (bb->preds) == 2
-      && bb != loop->header
-      && !bb_postdominates_preds (bb))
-    return false;
+  /* At least one incoming edge has to be non-critical as otherwise edge
+     predicates are not equal to basic-block predicates of the edge
+     source.  */
+  if (EDGE_COUNT (bb->preds) > 1
+      && bb != loop->header)
+    {
+      bool found = false;
+      FOR_EACH_EDGE (e, ei, bb->preds)
+	if (EDGE_COUNT (e->src->succs) == 1)
+	  found = true;
+      if (!found)
+	{
+	  if (dump_file && (dump_flags & TDF_DETAILS))
+	    fprintf (dump_file, "only critical predecessors\n");
+	  return false;
+	}
+    }
 
   return true;
 }
@@ -1084,7 +1083,6 @@
     return false;
 
   calculate_dominance_info (CDI_DOMINATORS);
-  calculate_dominance_info (CDI_POST_DOMINATORS);
 
   /* Allow statements that can be handled during if-conversion.  */
   ifc_bbs = get_loop_body_in_if_conv_order (loop);
@@ -1220,8 +1218,7 @@
    if-conversion.  */
 
 static basic_block
-find_phi_replacement_condition (struct loop *loop,
-				basic_block bb, tree *cond,
+find_phi_replacement_condition (basic_block bb, tree *cond,
 				gimple_stmt_iterator *gsi)
 {
   edge first_edge, second_edge;
@@ -1231,34 +1228,10 @@
   first_edge = EDGE_PRED (bb, 0);
   second_edge = EDGE_PRED (bb, 1);
 
-  /* Use condition based on following criteria:
-     1)
-       S1: x = !c ? a : b;
-
-       S2: x = c ? b : a;
-
-       S2 is preferred over S1. Make 'b' first_bb and use its condition.
-
-     2) Do not make loop header first_bb.
-
-     3)
-       S1: x = !(c == d)? a : b;
-
-       S21: t1 = c == d;
-       S22: x = t1 ? b : a;
-
-       S3: x = (c == d) ? b : a;
-
-       S3 is preferred over S1 and S2*, Make 'b' first_bb and use
-       its condition.
-
-     4) If  pred B is dominated by pred A then use pred B's condition.
-        See PR23115.  */
-
-  /* Select condition that is not TRUTH_NOT_EXPR.  */
+  /* Prefer an edge with a not negated predicate.
+     ???  That's a very weak cost model.  */
   tmp_cond = bb_predicate (first_edge->src);
   gcc_assert (tmp_cond);
-
   if (TREE_CODE (tmp_cond) == TRUTH_NOT_EXPR)
     {
       edge tmp_edge;
@@ -1268,11 +1241,9 @@
       second_edge = tmp_edge;
     }
 
-  /* Check if FIRST_BB is loop header or not and make sure that
-     FIRST_BB does not dominate SECOND_BB.  */
-  if (first_edge->src == loop->header
-      || dominated_by_p (CDI_DOMINATORS,
-			 second_edge->src, first_edge->src))
+  /* Check if the edge we take the condition from is not critical.
+     We know that at least one non-critical edge exists.  */
+  if (EDGE_COUNT (first_edge->src->succs) > 1)
     {
       *cond = bb_predicate (second_edge->src);
 
@@ -1347,9 +1318,6 @@
 	  arg_1 = gimple_phi_arg_def (phi, 1);
 	}
 
-      gcc_checking_assert (bb == bb->loop_father->header
-			   || bb_postdominates_preds (bb));
-
       /* Build new RHS using selected condition and arguments.  */
       rhs = fold_build_cond_expr (TREE_TYPE (res), unshare_expr (cond),
 				  arg_0, arg_1);
@@ -1395,7 +1363,7 @@
       /* BB has two predecessors.  Using predecessor's aux field, set
 	 appropriate condition for the PHI node replacement.  */
       gsi = gsi_after_labels (bb);
-      true_bb = find_phi_replacement_condition (loop, bb, &cond, &gsi);
+      true_bb = find_phi_replacement_condition (bb, &cond, &gsi);
 
       while (!gsi_end_p (phi_gsi))
 	{
@@ -1765,9 +1733,6 @@
 
   free (ifc_bbs);
   ifc_bbs = NULL;
-
-  /* Post-dominators are corrupt now.  */
-  free_dominance_info (CDI_POST_DOMINATORS);
 }
 
 /* If-convert LOOP when it is legal.  For the moment this pass has no
@@ -1830,8 +1795,6 @@
   if (changed && flag_tree_loop_if_convert_stores)
     todo |= TODO_update_ssa_only_virtuals;
 
-  free_dominance_info (CDI_POST_DOMINATORS);
-
 #ifdef ENABLE_CHECKING
   {
     basic_block bb;
diff -Naur gcc-4.8.1.orig/gcc/tree-loop-distribution.c gcc-4.8.1/gcc/tree-loop-distribution.c
--- gcc-4.8.1.orig/gcc/tree-loop-distribution.c	2013-04-04 11:00:45.000000000 +0000
+++ gcc-4.8.1/gcc/tree-loop-distribution.c	2013-10-01 16:06:44.024554284 +0000
@@ -518,17 +518,19 @@
 	  || !bitmap_bit_p (remaining_stmts, v));
 }
 
-/* Returns NULL when there is no anti-dependence among the successors
-   of vertex V, otherwise returns the edge with the anti-dep.  */
+/* Returns NULL when there is no anti-dependence or output-dependence
+   among the successors of vertex V, otherwise returns the edge with the
+   dependency.  */
 
 static struct graph_edge *
-has_anti_dependence (struct vertex *v)
+has_anti_or_output_dependence (struct vertex *v)
 {
   struct graph_edge *e;
 
   if (v->succ)
     for (e = v->succ; e; e = e->succ_next)
-      if (RDGE_TYPE (e) == anti_dd)
+      if (RDGE_TYPE (e) == anti_dd
+	  || RDGE_TYPE (e) == output_dd)
 	return e;
 
   return NULL;
@@ -580,11 +582,10 @@
 		|| predecessor_has_mem_write (rdg, &(rdg->vertices[x]))
 		/* In anti dependences the read should occur before
 		   the write, this is why both the read and the write
-		   should be placed in the same partition.  */
-		|| has_anti_dependence (&(rdg->vertices[x])))
-	      {
-		bitmap_set_bit (upstream_mem_writes, x);
-	      }
+		   should be placed in the same partition.  In output
+		   dependences the writes order need to be preserved.  */
+		|| has_anti_or_output_dependence (&(rdg->vertices[x])))
+	      bitmap_set_bit (upstream_mem_writes, x);
 	  }
 
 	nodes.release ();
@@ -613,7 +614,7 @@
   use_operand_p use_p;
   struct vertex *x = &(rdg->vertices[u]);
   gimple stmt = RDGV_STMT (x);
-  struct graph_edge *anti_dep = has_anti_dependence (x);
+  struct graph_edge *anti_dep = has_anti_or_output_dependence (x);
 
   /* Keep in the same partition the destination of an antidependence,
      because this is a store to the exact same location.  Putting this
diff -Naur gcc-4.8.1.orig/gcc/tree-parloops.c gcc-4.8.1/gcc/tree-parloops.c
--- gcc-4.8.1.orig/gcc/tree-parloops.c	2013-05-07 08:11:46.000000000 +0000
+++ gcc-4.8.1/gcc/tree-parloops.c	2013-10-01 16:06:44.024554284 +0000
@@ -478,9 +478,12 @@
       if (gsi == NULL)
 	return NULL;
       addr = TREE_OPERAND (*var_p, 0);
-      name = make_temp_ssa_name (TREE_TYPE (addr), NULL,
-				 get_name (TREE_OPERAND
-					   (TREE_OPERAND (*var_p, 0), 0)));
+      const char *obj_name
+	= get_name (TREE_OPERAND (TREE_OPERAND (*var_p, 0), 0));
+      if (obj_name)
+	name = make_temp_ssa_name (TREE_TYPE (addr), NULL, obj_name);
+      else
+	name = make_ssa_name (TREE_TYPE (addr), NULL);
       stmt = gimple_build_assign (name, addr);
       gsi_insert_on_edge_immediate (entry, stmt);
 
@@ -679,6 +682,12 @@
 	  dta.changed = true;
 	}
     }
+  else if (gimple_clobber_p (stmt))
+    {
+      stmt = gimple_build_nop ();
+      gsi_replace (gsi, stmt, false);
+      dta.changed = true;
+    }
   else
     {
       dta.gsi = gsi;
diff -Naur gcc-4.8.1.orig/gcc/tree-sra.c gcc-4.8.1/gcc/tree-sra.c
--- gcc-4.8.1.orig/gcc/tree-sra.c	2013-05-23 13:25:23.000000000 +0000
+++ gcc-4.8.1/gcc/tree-sra.c	2013-10-01 16:06:44.024554284 +0000
@@ -1440,6 +1440,7 @@
 {
   tree prev_base = base;
   tree off;
+  tree mem_ref;
   HOST_WIDE_INT base_offset;
   unsigned HOST_WIDE_INT misalign;
   unsigned int align;
@@ -1490,7 +1491,12 @@
   if (align < TYPE_ALIGN (exp_type))
     exp_type = build_aligned_type (exp_type, align);
 
-  return fold_build2_loc (loc, MEM_REF, exp_type, base, off);
+  mem_ref = fold_build2_loc (loc, MEM_REF, exp_type, base, off);
+  if (TREE_THIS_VOLATILE (prev_base))
+    TREE_THIS_VOLATILE (mem_ref) = 1;
+  if (TREE_SIDE_EFFECTS (prev_base))
+    TREE_SIDE_EFFECTS (mem_ref) = 1;
+  return mem_ref;
 }
 
 /* Construct a memory reference to a part of an aggregate BASE at the given
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-ccp.c gcc-4.8.1/gcc/tree-ssa-ccp.c
--- gcc-4.8.1.orig/gcc/tree-ssa-ccp.c	2013-02-20 15:19:13.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-ccp.c	2013-10-01 16:06:44.024554284 +0000
@@ -1707,6 +1707,9 @@
 	insert_clobber_before_stack_restore (gimple_phi_result (stmt), var,
 					     visited);
       }
+    else if (gimple_assign_ssa_name_copy_p (stmt))
+      insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var,
+					   visited);
     else
       gcc_assert (is_gimple_debug (stmt));
 }
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-dce.c gcc-4.8.1/gcc/tree-ssa-dce.c
--- gcc-4.8.1.orig/gcc/tree-ssa-dce.c	2013-02-20 15:19:13.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-dce.c	2013-10-01 16:06:44.024554284 +0000
@@ -574,6 +574,11 @@
 		      in the references (gcc.c-torture/execute/pr42142.c).
 		      The simplest way is to check if the kill dominates
 		      the use.  */
+		   /* But when both are in the same block we cannot
+		      easily tell whether we came from a backedge
+		      unless we decide to compute stmt UIDs
+		      (see PR58246).  */
+		   && (basic_block) data != gimple_bb (def_stmt)
 		   && dominated_by_p (CDI_DOMINATORS, (basic_block) data,
 				      gimple_bb (def_stmt))
 		   && operand_equal_p (ref->ref, lhs, 0))
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-loop-niter.c gcc-4.8.1/gcc/tree-ssa-loop-niter.c
--- gcc-4.8.1.orig/gcc/tree-ssa-loop-niter.c	2013-05-08 09:10:04.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-loop-niter.c	2013-10-01 16:06:44.028554284 +0000
@@ -552,10 +552,18 @@
 {
   double_int max;
   mpz_t d;
+  tree type = TREE_TYPE (c);
   bool bnds_u_valid = ((no_overflow && exit_must_be_taken)
 		       || mpz_sgn (bnds->below) >= 0);
 
-  if (multiple_of_p (TREE_TYPE (c), c, s))
+  if (integer_onep (s)
+      || (TREE_CODE (c) == INTEGER_CST
+	  && TREE_CODE (s) == INTEGER_CST
+	  && tree_to_double_int (c).mod (tree_to_double_int (s),
+					 TYPE_UNSIGNED (type),
+					 EXACT_DIV_EXPR).is_zero ())
+      || (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (c))
+	  && multiple_of_p (type, c, s)))
     {
       /* If C is an exact multiple of S, then its value will be reached before
 	 the induction variable overflows (unless the loop is exited in some
@@ -572,16 +580,15 @@
      the whole # of iterations analysis will fail).  */
   if (!no_overflow)
     {
-      max = double_int::mask (TYPE_PRECISION (TREE_TYPE (c))
-			     - tree_low_cst (num_ending_zeros (s), 1));
+      max = double_int::mask (TYPE_PRECISION (type)
+			      - tree_low_cst (num_ending_zeros (s), 1));
       mpz_set_double_int (bnd, max, true);
       return;
     }
 
   /* Now we know that the induction variable does not overflow, so the loop
      iterates at most (range of type / S) times.  */
-  mpz_set_double_int (bnd, double_int::mask (TYPE_PRECISION (TREE_TYPE (c))),
-		      true);
+  mpz_set_double_int (bnd, double_int::mask (TYPE_PRECISION (type)), true);
 
   /* If the induction variable is guaranteed to reach the value of C before
      overflow, ... */
@@ -1311,7 +1318,8 @@
     }
 
   /* If the loop exits immediately, there is nothing to do.  */
-  if (integer_zerop (fold_build2 (code, boolean_type_node, iv0->base, iv1->base)))
+  tree tem = fold_binary (code, boolean_type_node, iv0->base, iv1->base);
+  if (tem && integer_zerop (tem))
     {
       niter->niter = build_int_cst (unsigned_type_for (type), 0);
       niter->max = double_int_zero;
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-reassoc.c gcc-4.8.1/gcc/tree-ssa-reassoc.c
--- gcc-4.8.1.orig/gcc/tree-ssa-reassoc.c	2013-05-07 14:43:17.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-reassoc.c	2013-10-01 16:06:44.028554284 +0000
@@ -1774,7 +1774,14 @@
       switch (code)
 	{
 	case BIT_NOT_EXPR:
-	  if (TREE_CODE (TREE_TYPE (exp)) == BOOLEAN_TYPE)
+	  if (TREE_CODE (TREE_TYPE (exp)) == BOOLEAN_TYPE
+	      /* Ensure the range is either +[-,0], +[0,0],
+		 -[-,0], -[0,0] or +[1,-], +[1,1], -[1,-] or
+		 -[1,1].  If it is e.g. +[-,-] or -[-,-]
+		 or similar expression of unconditional true or
+		 false, it should not be negated.  */
+	      && ((high && integer_zerop (high))
+		  || (low && integer_onep (low))))
 	    {
 	      in_p = !in_p;
 	      exp = arg0;
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-sccvn.c gcc-4.8.1/gcc/tree-ssa-sccvn.c
--- gcc-4.8.1.orig/gcc/tree-ssa-sccvn.c	2013-05-24 09:14:16.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-sccvn.c	2013-10-01 16:06:44.028554284 +0000
@@ -1062,7 +1062,7 @@
   addr_base = get_addr_base_and_unit_offset (TREE_OPERAND (op->op0, 0),
 					     &addr_offset);
   gcc_checking_assert (addr_base && TREE_CODE (addr_base) != MEM_REF);
-  if (addr_base != op->op0)
+  if (addr_base != TREE_OPERAND (op->op0, 0))
     {
       double_int off = tree_to_double_int (mem_op->op0);
       off = off.sext (TYPE_PRECISION (TREE_TYPE (mem_op->op0)));
@@ -2555,6 +2555,7 @@
 set_ssa_val_to (tree from, tree to)
 {
   tree currval = SSA_VAL (from);
+  HOST_WIDE_INT toff, coff;
 
   if (from != to)
     {
@@ -2590,7 +2591,17 @@
       print_generic_expr (dump_file, to, 0);
     }
 
-  if (currval != to  && !operand_equal_p (currval, to, OEP_PURE_SAME))
+  if (currval != to
+      && !operand_equal_p (currval, to, 0)
+      /* ???  For addresses involving volatile objects or types operand_equal_p
+         does not reliably detect ADDR_EXPRs as equal.  We know we are only
+	 getting invariant gimple addresses here, so can use
+	 get_addr_base_and_unit_offset to do this comparison.  */
+      && !(TREE_CODE (currval) == ADDR_EXPR
+	   && TREE_CODE (to) == ADDR_EXPR
+	   && (get_addr_base_and_unit_offset (TREE_OPERAND (currval, 0), &coff)
+	       == get_addr_base_and_unit_offset (TREE_OPERAND (to, 0), &toff))
+	   && coff == toff))
     {
       VN_INFO (from)->valnum = to;
       if (dump_file && (dump_flags & TDF_DETAILS))
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-strlen.c gcc-4.8.1/gcc/tree-ssa-strlen.c
--- gcc-4.8.1.orig/gcc/tree-ssa-strlen.c	2013-05-13 07:48:39.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-strlen.c	2013-10-01 16:06:44.028554284 +0000
@@ -1890,6 +1890,28 @@
 		  int count_vdef = 100;
 		  do_invalidate (dombb, phi, visited, &count_vdef);
 		  BITMAP_FREE (visited);
+		  if (count_vdef == 0)
+		    {
+		      /* If there were too many vdefs in between immediate
+			 dominator and current bb, invalidate everything.
+			 If stridx_to_strinfo has been unshared, we need
+			 to free it, otherwise just set it to NULL.  */
+		      if (!strinfo_shared ())
+			{
+			  unsigned int i;
+			  strinfo si;
+
+			  for (i = 1;
+			       vec_safe_iterate (stridx_to_strinfo, i, &si);
+			       ++i)
+			    {
+			      free_strinfo (si);
+			      (*stridx_to_strinfo)[i] = NULL;
+			    }
+			}
+		      else
+			stridx_to_strinfo = NULL;
+		    }
 		  break;
 		}
 	    }
diff -Naur gcc-4.8.1.orig/gcc/tree-ssa-structalias.c gcc-4.8.1/gcc/tree-ssa-structalias.c
--- gcc-4.8.1.orig/gcc/tree-ssa-structalias.c	2013-02-04 13:31:28.000000000 +0000
+++ gcc-4.8.1/gcc/tree-ssa-structalias.c	2013-10-01 16:06:44.028554284 +0000
@@ -2237,18 +2237,37 @@
       {
 	unsigned j = si->node_mapping[i];
 	if (j != i)
-	  fprintf (dump_file, "%s node id %d (%s) mapped to SCC leader "
-		   "node id %d (%s)\n",
-		    bitmap_bit_p (graph->direct_nodes, i)
-		    ? "Direct" : "Indirect", i, get_varinfo (i)->name,
-		    j, get_varinfo (j)->name);
+	  {
+	    fprintf (dump_file, "%s node id %d ",
+		     bitmap_bit_p (graph->direct_nodes, i)
+		     ? "Direct" : "Indirect", i);
+	    if (i < FIRST_REF_NODE)
+	      fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
+	    else
+	      fprintf (dump_file, "\"*%s\"",
+		       get_varinfo (i - FIRST_REF_NODE)->name);
+	    fprintf (dump_file, " mapped to SCC leader node id %d ", j);
+	    if (j < FIRST_REF_NODE)
+	      fprintf (dump_file, "\"%s\"\n", get_varinfo (j)->name);
+	    else
+	      fprintf (dump_file, "\"*%s\"\n",
+		       get_varinfo (j - FIRST_REF_NODE)->name);
+	  }
 	else
-	  fprintf (dump_file,
-		   "Equivalence classes for %s node id %d (%s): pointer %d"
-		   ", location %d\n",
-		   bitmap_bit_p (graph->direct_nodes, i)
-		   ? "direct" : "indirect", i, get_varinfo (i)->name,
-		   graph->pointer_label[i], graph->loc_label[i]);
+	  {
+	    fprintf (dump_file,
+		     "Equivalence classes for %s node id %d ",
+		     bitmap_bit_p (graph->direct_nodes, i)
+		     ? "direct" : "indirect", i);
+	    if (i < FIRST_REF_NODE)
+	      fprintf (dump_file, "\"%s\"", get_varinfo (i)->name);
+	    else
+	      fprintf (dump_file, "\"*%s\"",
+		       get_varinfo (i - FIRST_REF_NODE)->name);
+	    fprintf (dump_file,
+		     ": pointer %d, location %d\n",
+		     graph->pointer_label[i], graph->loc_label[i]);
+	  }
       }
 
   /* Quickly eliminate our non-pointer variables.  */
diff -Naur gcc-4.8.1.orig/gcc/tree-tailcall.c gcc-4.8.1/gcc/tree-tailcall.c
--- gcc-4.8.1.orig/gcc/tree-tailcall.c	2013-03-06 23:26:42.000000000 +0000
+++ gcc-4.8.1/gcc/tree-tailcall.c	2013-10-01 16:06:44.028554284 +0000
@@ -328,8 +328,10 @@
     case NEGATE_EXPR:
       if (FLOAT_TYPE_P (TREE_TYPE (op0)))
         *m = build_real (TREE_TYPE (op0), dconstm1);
-      else
+      else if (INTEGRAL_TYPE_P (TREE_TYPE (op0)))
         *m = build_int_cst (TREE_TYPE (op0), -1);
+      else
+        return false;
 
       *ass_var = dest;
       return true;
@@ -341,8 +343,10 @@
         {
           if (FLOAT_TYPE_P (TREE_TYPE (non_ass_var)))
             *m = build_real (TREE_TYPE (non_ass_var), dconstm1);
-          else
+          else if (INTEGRAL_TYPE_P (TREE_TYPE (non_ass_var)))
             *m = build_int_cst (TREE_TYPE (non_ass_var), -1);
+	  else
+	    return false;
 
           *a = fold_build1 (NEGATE_EXPR, TREE_TYPE (non_ass_var), non_ass_var);
         }
@@ -570,6 +574,11 @@
   if (!tail_recursion && (m || a))
     return;
 
+  /* For pointers don't allow additions or multiplications.  */
+  if ((m || a)
+      && POINTER_TYPE_P (TREE_TYPE (DECL_RESULT (current_function_decl))))
+    return;
+
   nw = XNEW (struct tailcall);
 
   nw->call_gsi = gsi;
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-data-refs.c gcc-4.8.1/gcc/tree-vect-data-refs.c
--- gcc-4.8.1.orig/gcc/tree-vect-data-refs.c	2013-03-06 08:38:46.000000000 +0000
+++ gcc-4.8.1/gcc/tree-vect-data-refs.c	2013-10-01 16:06:44.028554284 +0000
@@ -2498,10 +2498,17 @@
       return false;
     }
 
-  /* Allow invariant loads in loops.  */
+  /* Allow invariant loads in not nested loops.  */
   if (loop_vinfo && integer_zerop (step))
     {
       GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) = NULL;
+      if (nested_in_vect_loop_p (loop, stmt))
+	{
+	  if (dump_enabled_p ())
+	    dump_printf_loc (MSG_NOTE, vect_location,
+			     "zero step in inner loop of nest");
+	  return false;
+	}
       return DR_IS_READ (dr);
     }
 
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-loop.c gcc-4.8.1/gcc/tree-vect-loop.c
--- gcc-4.8.1.orig/gcc/tree-vect-loop.c	2013-03-05 09:37:56.000000000 +0000
+++ gcc-4.8.1/gcc/tree-vect-loop.c	2013-10-01 16:06:44.028554284 +0000
@@ -4329,9 +4329,8 @@
         if (!flow_bb_inside_loop_p (loop, gimple_bb (USE_STMT (use_p))))
           phis.safe_push (USE_STMT (use_p));
 
-      /* We expect to have found an exit_phi because of loop-closed-ssa
-         form.  */
-      gcc_assert (!phis.is_empty ());
+      /* While we expect to have found an exit_phi because of loop-closed-ssa
+         form we can end up without one if the scalar cycle is dead.  */
 
       FOR_EACH_VEC_ELT (phis, i, exit_phi)
         {
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-patterns.c gcc-4.8.1/gcc/tree-vect-patterns.c
--- gcc-4.8.1.orig/gcc/tree-vect-patterns.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/tree-vect-patterns.c	2013-10-01 16:06:44.032554284 +0000
@@ -638,7 +638,10 @@
           && vect_handle_widen_op_by_const (last_stmt, MULT_EXPR, oprnd1,
 		                            &oprnd0, stmts, type,
 					    &half_type0, def_stmt0))
-        half_type1 = half_type0;
+	{
+	  half_type1 = half_type0;
+	  oprnd1 = fold_convert (half_type1, oprnd1);
+	}
       else
         return NULL;
     }
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-stmts.c gcc-4.8.1/gcc/tree-vect-stmts.c
--- gcc-4.8.1.orig/gcc/tree-vect-stmts.c	2013-03-05 09:37:56.000000000 +0000
+++ gcc-4.8.1/gcc/tree-vect-stmts.c	2013-10-01 16:06:44.032554284 +0000
@@ -3796,6 +3796,7 @@
   enum vect_def_type dt;
   stmt_vec_info prev_stmt_info = NULL;
   tree dataref_ptr = NULL_TREE;
+  gimple ptr_incr = NULL;
   int nunits = TYPE_VECTOR_SUBPARTS (vectype);
   int ncopies;
   int j;
@@ -4040,7 +4041,6 @@
   for (j = 0; j < ncopies; j++)
     {
       gimple new_stmt;
-      gimple ptr_incr;
 
       if (j == 0)
 	{
@@ -4313,7 +4313,7 @@
   tree dummy;
   enum dr_alignment_support alignment_support_scheme;
   tree dataref_ptr = NULL_TREE;
-  gimple ptr_incr;
+  gimple ptr_incr = NULL;
   int nunits = TYPE_VECTOR_SUBPARTS (vectype);
   int ncopies;
   int i, j, group_size;
diff -Naur gcc-4.8.1.orig/gcc/tree-vrp.c gcc-4.8.1/gcc/tree-vrp.c
--- gcc-4.8.1.orig/gcc/tree-vrp.c	2013-04-29 07:57:02.000000000 +0000
+++ gcc-4.8.1/gcc/tree-vrp.c	2013-10-01 16:06:44.032554284 +0000
@@ -5246,10 +5246,14 @@
 	       && gimple_assign_rhs_code (op_def) == BIT_IOR_EXPR))
     {
       /* Recurse on each operand.  */
-      retval |= register_edge_assert_for_1 (gimple_assign_rhs1 (op_def),
-					    code, e, bsi);
-      retval |= register_edge_assert_for_1 (gimple_assign_rhs2 (op_def),
-					    code, e, bsi);
+      tree op0 = gimple_assign_rhs1 (op_def);
+      tree op1 = gimple_assign_rhs2 (op_def);
+      if (TREE_CODE (op0) == SSA_NAME
+	  && has_single_use (op0))
+	retval |= register_edge_assert_for_1 (op0, code, e, bsi);
+      if (TREE_CODE (op1) == SSA_NAME
+	  && has_single_use (op1))
+	retval |= register_edge_assert_for_1 (op1, code, e, bsi);
     }
   else if (gimple_assign_rhs_code (op_def) == BIT_NOT_EXPR
 	   && TYPE_PRECISION (TREE_TYPE (gimple_assign_lhs (op_def))) == 1)
diff -Naur gcc-4.8.1.orig/gcc/version.c gcc-4.8.1/gcc/version.c
--- gcc-4.8.1.orig/gcc/version.c	2013-01-10 20:38:27.000000000 +0000
+++ gcc-4.8.1/gcc/version.c	2013-10-01 16:06:44.032554284 +0000
@@ -32,4 +32,4 @@
    Makefile.  */
 
 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
-const char pkgversion_string[] = PKGVERSION;
+const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.20131001) ";
diff -Naur gcc-4.8.1.orig/libffi/doc/libffi.info gcc-4.8.1/libffi/doc/libffi.info
--- gcc-4.8.1.orig/libffi/doc/libffi.info	2013-05-31 10:05:08.000000000 +0000
+++ gcc-4.8.1/libffi/doc/libffi.info	1970-01-01 00:00:00.000000000 +0000
@@ -1,617 +0,0 @@
-This is doc/libffi.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libffi/doc/libffi.texi.
-
-This manual is for Libffi, a portable foreign-function interface
-library.
-
-   Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU General Public License as
-     published by the Free Software Foundation; either version 2, or
-     (at your option) any later version.  A copy of the license is
-     included in the section entitled "GNU General Public License".
-
-
-INFO-DIR-SECTION Development
-START-INFO-DIR-ENTRY
-* libffi: (libffi).             Portable foreign-function interface library.
-END-INFO-DIR-ENTRY
-
-
-File: libffi.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-libffi
-******
-
-This manual is for Libffi, a portable foreign-function interface
-library.
-
-   Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU General Public License as
-     published by the Free Software Foundation; either version 2, or
-     (at your option) any later version.  A copy of the license is
-     included in the section entitled "GNU General Public License".
-
-
-* Menu:
-
-* Introduction::                What is libffi?
-* Using libffi::                How to use libffi.
-* Missing Features::            Things libffi can't do.
-* Index::                       Index.
-
-
-File: libffi.info,  Node: Introduction,  Next: Using libffi,  Prev: Top,  Up: Top
-
-1 What is libffi?
-*****************
-
-Compilers for high level languages generate code that follow certain
-conventions.  These conventions are necessary, in part, for separate
-compilation to work.  One such convention is the "calling convention".
-The calling convention is a set of assumptions made by the compiler
-about where function arguments will be found on entry to a function.  A
-calling convention also specifies where the return value for a function
-is found.  The calling convention is also sometimes called the "ABI" or
-"Application Binary Interface".  
-
-   Some programs may not know at the time of compilation what arguments
-are to be passed to a function.  For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call a
-given function.  `Libffi' can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-   The `libffi' library provides a portable, high level programming
-interface to various calling conventions.  This allows a programmer to
-call any function specified by a call interface description at run time.
-
-   FFI stands for Foreign Function Interface.  A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language.  The
-`libffi' library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface.  A layer must
-exist above `libffi' that handles type conversions for values passed
-between the two languages.  
-
-
-File: libffi.info,  Node: Using libffi,  Next: Missing Features,  Prev: Introduction,  Up: Top
-
-2 Using libffi
-**************
-
-* Menu:
-
-* The Basics::                  The basic libffi API.
-* Simple Example::              A simple example.
-* Types::                       libffi type descriptions.
-* Multiple ABIs::               Different passing styles on one platform.
-* The Closure API::             Writing a generic function.
-* Closure Example::             A closure example.
-
-
-File: libffi.info,  Node: The Basics,  Next: Simple Example,  Up: Using libffi
-
-2.1 The Basics
-==============
-
-`Libffi' assumes that you have a pointer to the function you wish to
-call and that you know the number and types of arguments to pass it, as
-well as the return type of the function.
-
-   The first thing you must do is create an `ffi_cif' object that
-matches the signature of the function you wish to call.  This is a
-separate step because it is common to make multiple calls using a
-single `ffi_cif'.  The "cif" in `ffi_cif' stands for Call InterFace.
-To prepare a call interface object, use the function `ffi_prep_cif'.  
-
- -- Function: ffi_status ffi_prep_cif (ffi_cif *CIF, ffi_abi ABI,
-          unsigned int NARGS, ffi_type *RTYPE, ffi_type **ARGTYPES)
-     This initializes CIF according to the given parameters.
-
-     ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you
-     want.  *note Multiple ABIs:: for more information.
-
-     NARGS is the number of arguments that this function accepts.
-
-     RTYPE is a pointer to an `ffi_type' structure that describes the
-     return type of the function.  *Note Types::.
-
-     ARGTYPES is a vector of `ffi_type' pointers.  ARGTYPES must have
-     NARGS elements.  If NARGS is 0, this argument is ignored.
-
-     `ffi_prep_cif' returns a `libffi' status code, of type
-     `ffi_status'.  This will be either `FFI_OK' if everything worked
-     properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is
-     incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid.
-
-   If the function being called is variadic (varargs) then
-`ffi_prep_cif_var' must be used instead of `ffi_prep_cif'.
-
- -- Function: ffi_status ffi_prep_cif_var (ffi_cif *CIF, ffi_abi
-          varabi, unsigned int NFIXEDARGS, unsigned int varntotalargs,
-          ffi_type *RTYPE, ffi_type **ARGTYPES)
-     This initializes CIF according to the given parameters for a call
-     to a variadic function.  In general it's operation is the same as
-     for `ffi_prep_cif' except that:
-
-     NFIXEDARGS is the number of fixed arguments, prior to any variadic
-     arguments.  It must be greater than zero.
-
-     NTOTALARGS the total number of arguments, including variadic and
-     fixed arguments.
-
-     Note that, different cif's must be prepped for calls to the same
-     function when different numbers of arguments are passed.
-
-     Also note that a call to `ffi_prep_cif_var' with
-     NFIXEDARGS=NOTOTALARGS is NOT equivalent to a call to
-     `ffi_prep_cif'.
-
-
-   To call a function using an initialized `ffi_cif', use the
-`ffi_call' function:
-
- -- Function: void ffi_call (ffi_cif *CIF, void *FN, void *RVALUE, void
-          **AVALUES)
-     This calls the function FN according to the description given in
-     CIF.  CIF must have already been prepared using `ffi_prep_cif'.
-
-     RVALUE is a pointer to a chunk of memory that will hold the result
-     of the function call.  This must be large enough to hold the
-     result and must be suitably aligned; it is the caller's
-     responsibility to ensure this.  If CIF declares that the function
-     returns `void' (using `ffi_type_void'), then RVALUE is ignored.
-     If RVALUE is `NULL', then the return value is discarded.
-
-     AVALUES is a vector of `void *' pointers that point to the memory
-     locations holding the argument values for a call.  If CIF declares
-     that the function has no arguments (i.e., NARGS was 0), then
-     AVALUES is ignored.  Note that argument values may be modified by
-     the callee (for instance, structs passed by value); the burden of
-     copying pass-by-value arguments is placed on the caller.
-
-
-File: libffi.info,  Node: Simple Example,  Next: Types,  Prev: The Basics,  Up: Using libffi
-
-2.2 Simple Example
-==================
-
-Here is a trivial example that calls `puts' a few times.
-
-     #include <stdio.h>
-     #include <ffi.h>
-
-     int main()
-     {
-       ffi_cif cif;
-       ffi_type *args[1];
-       void *values[1];
-       char *s;
-       int rc;
-
-       /* Initialize the argument info vectors */
-       args[0] = &ffi_type_pointer;
-       values[0] = &s;
-
-       /* Initialize the cif */
-       if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
-     		       &ffi_type_uint, args) == FFI_OK)
-         {
-           s = "Hello World!";
-           ffi_call(&cif, puts, &rc, values);
-           /* rc now holds the result of the call to puts */
-
-           /* values holds a pointer to the function's arg, so to
-              call puts() again all we need to do is change the
-              value of s */
-           s = "This is cool!";
-           ffi_call(&cif, puts, &rc, values);
-         }
-
-       return 0;
-     }
-
-
-File: libffi.info,  Node: Types,  Next: Multiple ABIs,  Prev: Simple Example,  Up: Using libffi
-
-2.3 Types
-=========
-
-* Menu:
-
-* Primitive Types::             Built-in types.
-* Structures::                  Structure types.
-* Type Example::                Structure type example.
-
-
-File: libffi.info,  Node: Primitive Types,  Next: Structures,  Up: Types
-
-2.3.1 Primitive Types
----------------------
-
-`Libffi' provides a number of built-in type descriptors that can be
-used to describe argument and return types:
-
-`ffi_type_void'
-     The type `void'.  This cannot be used for argument types, only for
-     return values.
-
-`ffi_type_uint8'
-     An unsigned, 8-bit integer type.
-
-`ffi_type_sint8'
-     A signed, 8-bit integer type.
-
-`ffi_type_uint16'
-     An unsigned, 16-bit integer type.
-
-`ffi_type_sint16'
-     A signed, 16-bit integer type.
-
-`ffi_type_uint32'
-     An unsigned, 32-bit integer type.
-
-`ffi_type_sint32'
-     A signed, 32-bit integer type.
-
-`ffi_type_uint64'
-     An unsigned, 64-bit integer type.
-
-`ffi_type_sint64'
-     A signed, 64-bit integer type.
-
-`ffi_type_float'
-     The C `float' type.
-
-`ffi_type_double'
-     The C `double' type.
-
-`ffi_type_uchar'
-     The C `unsigned char' type.
-
-`ffi_type_schar'
-     The C `signed char' type.  (Note that there is not an exact
-     equivalent to the C `char' type in `libffi'; ordinarily you should
-     either use `ffi_type_schar' or `ffi_type_uchar' depending on
-     whether `char' is signed.)
-
-`ffi_type_ushort'
-     The C `unsigned short' type.
-
-`ffi_type_sshort'
-     The C `short' type.
-
-`ffi_type_uint'
-     The C `unsigned int' type.
-
-`ffi_type_sint'
-     The C `int' type.
-
-`ffi_type_ulong'
-     The C `unsigned long' type.
-
-`ffi_type_slong'
-     The C `long' type.
-
-`ffi_type_longdouble'
-     On platforms that have a C `long double' type, this is defined.
-     On other platforms, it is not.
-
-`ffi_type_pointer'
-     A generic `void *' pointer.  You should use this for all pointers,
-     regardless of their real type.
-
-   Each of these is of type `ffi_type', so you must take the address
-when passing to `ffi_prep_cif'.
-
-
-File: libffi.info,  Node: Structures,  Next: Type Example,  Prev: Primitive Types,  Up: Types
-
-2.3.2 Structures
-----------------
-
-Although `libffi' has no special support for unions or bit-fields, it
-is perfectly happy passing structures back and forth.  You must first
-describe the structure to `libffi' by creating a new `ffi_type' object
-for it.
-
- -- ffi_type:
-     The `ffi_type' has the following members:
-    `size_t size'
-          This is set by `libffi'; you should initialize it to zero.
-
-    `unsigned short alignment'
-          This is set by `libffi'; you should initialize it to zero.
-
-    `unsigned short type'
-          For a structure, this should be set to `FFI_TYPE_STRUCT'.
-
-    `ffi_type **elements'
-          This is a `NULL'-terminated array of pointers to `ffi_type'
-          objects.  There is one element per field of the struct.
-
-
-File: libffi.info,  Node: Type Example,  Prev: Structures,  Up: Types
-
-2.3.3 Type Example
-------------------
-
-The following example initializes a `ffi_type' object representing the
-`tm' struct from Linux's `time.h'.
-
-   Here is how the struct is defined:
-
-     struct tm {
-         int tm_sec;
-         int tm_min;
-         int tm_hour;
-         int tm_mday;
-         int tm_mon;
-         int tm_year;
-         int tm_wday;
-         int tm_yday;
-         int tm_isdst;
-         /* Those are for future use. */
-         long int __tm_gmtoff__;
-         __const char *__tm_zone__;
-     };
-
-   Here is the corresponding code to describe this struct to `libffi':
-
-         {
-           ffi_type tm_type;
-           ffi_type *tm_type_elements[12];
-           int i;
-
-           tm_type.size = tm_type.alignment = 0;
-           tm_type.elements = &tm_type_elements;
-
-           for (i = 0; i < 9; i++)
-               tm_type_elements[i] = &ffi_type_sint;
-
-           tm_type_elements[9] = &ffi_type_slong;
-           tm_type_elements[10] = &ffi_type_pointer;
-           tm_type_elements[11] = NULL;
-
-           /* tm_type can now be used to represent tm argument types and
-     	 return types for ffi_prep_cif() */
-         }
-
-
-File: libffi.info,  Node: Multiple ABIs,  Next: The Closure API,  Prev: Types,  Up: Using libffi
-
-2.4 Multiple ABIs
-=================
-
-A given platform may provide multiple different ABIs at once.  For
-instance, the x86 platform has both `stdcall' and `fastcall' functions.
-
-   `libffi' provides some support for this.  However, this is
-necessarily platform-specific.
-
-
-File: libffi.info,  Node: The Closure API,  Next: Closure Example,  Prev: Multiple ABIs,  Up: Using libffi
-
-2.5 The Closure API
-===================
-
-`libffi' also provides a way to write a generic function - a function
-that can accept and decode any combination of arguments.  This can be
-useful when writing an interpreter, or to provide wrappers for
-arbitrary functions.
-
-   This facility is called the "closure API".  Closures are not
-supported on all platforms; you can check the `FFI_CLOSURES' define to
-determine whether they are supported on the current platform.  
-
-   Because closures work by assembling a tiny function at runtime, they
-require special allocation on platforms that have a non-executable
-heap.  Memory management for closures is handled by a pair of functions:
-
- -- Function: void *ffi_closure_alloc (size_t SIZE, void **CODE)
-     Allocate a chunk of memory holding SIZE bytes.  This returns a
-     pointer to the writable address, and sets *CODE to the
-     corresponding executable address.
-
-     SIZE should be sufficient to hold a `ffi_closure' object.
-
- -- Function: void ffi_closure_free (void *WRITABLE)
-     Free memory allocated using `ffi_closure_alloc'.  The argument is
-     the writable address that was returned.
-
-   Once you have allocated the memory for a closure, you must construct
-a `ffi_cif' describing the function call.  Finally you can prepare the
-closure function:
-
- -- Function: ffi_status ffi_prep_closure_loc (ffi_closure *CLOSURE,
-          ffi_cif *CIF, void (*FUN) (ffi_cif *CIF, void *RET, void
-          **ARGS, void *USER_DATA), void *USER_DATA, void *CODELOC)
-     Prepare a closure function.
-
-     CLOSURE is the address of a `ffi_closure' object; this is the
-     writable address returned by `ffi_closure_alloc'.
-
-     CIF is the `ffi_cif' describing the function parameters.
-
-     USER_DATA is an arbitrary datum that is passed, uninterpreted, to
-     your closure function.
-
-     CODELOC is the executable address returned by `ffi_closure_alloc'.
-
-     FUN is the function which will be called when the closure is
-     invoked.  It is called with the arguments:
-    CIF
-          The `ffi_cif' passed to `ffi_prep_closure_loc'.
-
-    RET
-          A pointer to the memory used for the function's return value.
-          FUN must fill this, unless the function is declared as
-          returning `void'.
-
-    ARGS
-          A vector of pointers to memory holding the arguments to the
-          function.
-
-    USER_DATA
-          The same USER_DATA that was passed to `ffi_prep_closure_loc'.
-
-     `ffi_prep_closure_loc' will return `FFI_OK' if everything went ok,
-     and something else on error.
-
-     After calling `ffi_prep_closure_loc', you can cast CODELOC to the
-     appropriate pointer-to-function type.
-
-   You may see old code referring to `ffi_prep_closure'.  This function
-is deprecated, as it cannot handle the need for separate writable and
-executable addresses.
-
-
-File: libffi.info,  Node: Closure Example,  Prev: The Closure API,  Up: Using libffi
-
-2.6 Closure Example
-===================
-
-A trivial example that creates a new `puts' by binding `fputs' with
-`stdin'.
-
-     #include <stdio.h>
-     #include <ffi.h>
-
-     /* Acts like puts with the file given at time of enclosure. */
-     void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[],
-                       FILE *stream)
-     {
-       *ret = fputs(*(char **)args[0], stream);
-     }
-
-     int main()
-     {
-       ffi_cif cif;
-       ffi_type *args[1];
-       ffi_closure *closure;
-
-       int (*bound_puts)(char *);
-       int rc;
-
-       /* Allocate closure and bound_puts */
-       closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts);
-
-       if (closure)
-         {
-           /* Initialize the argument info vectors */
-           args[0] = &ffi_type_pointer;
-
-           /* Initialize the cif */
-           if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
-                            &ffi_type_uint, args) == FFI_OK)
-             {
-               /* Initialize the closure, setting stream to stdout */
-               if (ffi_prep_closure_loc(closure, &cif, puts_binding,
-                                        stdout, bound_puts) == FFI_OK)
-                 {
-                   rc = bound_puts("Hello World!");
-                   /* rc now holds the result of the call to fputs */
-                 }
-             }
-         }
-
-       /* Deallocate both closure, and bound_puts */
-       ffi_closure_free(closure);
-
-       return 0;
-     }
-
-
-File: libffi.info,  Node: Missing Features,  Next: Index,  Prev: Using libffi,  Up: Top
-
-3 Missing Features
-******************
-
-`libffi' is missing a few features.  We welcome patches to add support
-for these.
-
-   * Variadic closures.
-
-   * There is no support for bit fields in structures.
-
-   * The closure API is
-
-   * The "raw" API is undocumented.
-
-   Note that variadic support is very new and tested on a relatively
-small number of platforms.
-
-
-File: libffi.info,  Node: Index,  Prev: Missing Features,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* :                                      Structures.           (line 12)
-* ABI:                                   Introduction.         (line 13)
-* Application Binary Interface:          Introduction.         (line 13)
-* calling convention:                    Introduction.         (line 13)
-* cif:                                   The Basics.           (line 14)
-* closure API:                           The Closure API.      (line 13)
-* closures:                              The Closure API.      (line 13)
-* FFI:                                   Introduction.         (line 31)
-* ffi_call:                              The Basics.           (line 63)
-* ffi_closure_alloc:                     The Closure API.      (line 19)
-* ffi_closure_free:                      The Closure API.      (line 26)
-* FFI_CLOSURES:                          The Closure API.      (line 13)
-* ffi_prep_cif:                          The Basics.           (line 16)
-* ffi_prep_cif_var:                      The Basics.           (line 39)
-* ffi_prep_closure_loc:                  The Closure API.      (line 34)
-* ffi_status <1>:                        The Closure API.      (line 37)
-* ffi_status:                            The Basics.           (line 18)
-* ffi_type:                              Structures.           (line 11)
-* ffi_type_double:                       Primitive Types.      (line 41)
-* ffi_type_float:                        Primitive Types.      (line 38)
-* ffi_type_longdouble:                   Primitive Types.      (line 71)
-* ffi_type_pointer:                      Primitive Types.      (line 75)
-* ffi_type_schar:                        Primitive Types.      (line 47)
-* ffi_type_sint:                         Primitive Types.      (line 62)
-* ffi_type_sint16:                       Primitive Types.      (line 23)
-* ffi_type_sint32:                       Primitive Types.      (line 29)
-* ffi_type_sint64:                       Primitive Types.      (line 35)
-* ffi_type_sint8:                        Primitive Types.      (line 17)
-* ffi_type_slong:                        Primitive Types.      (line 68)
-* ffi_type_sshort:                       Primitive Types.      (line 56)
-* ffi_type_uchar:                        Primitive Types.      (line 44)
-* ffi_type_uint:                         Primitive Types.      (line 59)
-* ffi_type_uint16:                       Primitive Types.      (line 20)
-* ffi_type_uint32:                       Primitive Types.      (line 26)
-* ffi_type_uint64:                       Primitive Types.      (line 32)
-* ffi_type_uint8:                        Primitive Types.      (line 14)
-* ffi_type_ulong:                        Primitive Types.      (line 65)
-* ffi_type_ushort:                       Primitive Types.      (line 53)
-* ffi_type_void:                         Primitive Types.      (line 10)
-* Foreign Function Interface:            Introduction.         (line 31)
-* void <1>:                              The Closure API.      (line 20)
-* void:                                  The Basics.           (line 65)
-
-
-
-Tag Table:
-Node: Top722
-Node: Introduction1470
-Node: Using libffi3106
-Node: The Basics3592
-Node: Simple Example7234
-Node: Types8261
-Node: Primitive Types8544
-Node: Structures10364
-Node: Type Example11224
-Node: Multiple ABIs12447
-Node: The Closure API12818
-Node: Closure Example15762
-Node: Missing Features17321
-Node: Index17774
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ffi.c gcc-4.8.1/libffi/src/powerpc/ffi.c
--- gcc-4.8.1.orig/libffi/src/powerpc/ffi.c	2013-02-06 17:32:41.000000000 +0000
+++ gcc-4.8.1/libffi/src/powerpc/ffi.c	2013-10-01 16:06:44.032554284 +0000
@@ -127,6 +127,9 @@
 
   int i;
   ffi_type **ptr;
+#ifndef __NO_FPRS__
+  double double_tmp;
+#endif
   union {
     void **v;
     char **c;
@@ -146,7 +149,6 @@
   gpr_base.u = stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS;
   intarg_count = 0;
 #ifndef __NO_FPRS__
-  double double_tmp;
   fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS;
   fparg_count = 0;
   copy_space.c = ((flags & FLAG_FP_ARGUMENTS) ? fpr_base.c : gpr_base.c);
@@ -542,11 +544,12 @@
 	    {
 	      char *where = next_arg.c;
 
+#ifndef __LITTLE_ENDIAN__
 	      /* Structures with size less than eight bytes are passed
 		 left-padded.  */
 	      if ((*ptr)->size < 8)
 		where += 8 - (*ptr)->size;
-
+#endif
 	      memcpy (where, *p_argv.c, (*ptr)->size);
 	      next_arg.ul += words;
 	      if (next_arg.ul == gpr_end.ul)
@@ -1208,6 +1211,7 @@
 
 	case FFI_TYPE_SINT8:
 	case FFI_TYPE_UINT8:
+#ifndef __LITTLE_ENDIAN__
 	  /* there are 8 gpr registers used to pass values */
 	  if (ng < 8)
 	    {
@@ -1221,9 +1225,10 @@
 	      pst++;
 	    }
 	  break;
-
+#endif
 	case FFI_TYPE_SINT16:
 	case FFI_TYPE_UINT16:
+#ifndef __LITTLE_ENDIAN__
 	  /* there are 8 gpr registers used to pass values */
 	  if (ng < 8)
 	    {
@@ -1237,7 +1242,7 @@
 	      pst++;
 	    }
 	  break;
-
+#endif
 	case FFI_TYPE_SINT32:
 	case FFI_TYPE_UINT32:
 	case FFI_TYPE_POINTER:
@@ -1367,22 +1372,25 @@
 	{
 	case FFI_TYPE_SINT8:
 	case FFI_TYPE_UINT8:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 7;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT16:
 	case FFI_TYPE_UINT16:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 6;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT32:
 	case FFI_TYPE_UINT32:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 4;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT64:
 	case FFI_TYPE_UINT64:
 	case FFI_TYPE_POINTER:
@@ -1391,11 +1399,13 @@
 	  break;
 
 	case FFI_TYPE_STRUCT:
+#ifndef __LITTLE_ENDIAN__
 	  /* Structures with size less than eight bytes are passed
 	     left-padded.  */
 	  if (arg_types[i]->size < 8)
 	    avalue[i] = (char *) pst + 8 - arg_types[i]->size;
 	  else
+#endif
 	    avalue[i] = pst;
 	  pst += (arg_types[i]->size + 7) / 8;
 	  break;
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.8.1/libffi/src/powerpc/linux64_closure.S
--- gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S	2012-10-31 03:45:34.000000000 +0000
+++ gcc-4.8.1/libffi/src/powerpc/linux64_closure.S	2013-10-01 16:06:44.032554284 +0000
@@ -132,7 +132,11 @@
 	blr
 	nop
 # case FFI_TYPE_INT
+#ifdef __LITTLE_ENDIAN__
+	lwa %r3, 112+0(%r1)
+#else
 	lwa %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
@@ -152,33 +156,57 @@
 	lfd %f2, 112+8(%r1)
 	b .Lfinish
 # case FFI_TYPE_UINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3, 112+0(%r1)
+#else
 	lbz %r3, 112+7(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3, 112+0(%r1)
+#else
 	lbz %r3, 112+7(%r1)
+#endif
 	extsb %r3,%r3
 	mtlr %r0
 	b .Lfinish
 # case FFI_TYPE_UINT16
+#ifdef __LITTLE_ENDIAN__
+	lhz %r3, 112+0(%r1)
+#else
 	lhz %r3, 112+6(%r1)
+#endif
 	mtlr %r0
 .Lfinish:
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT16
+#ifdef __LITTLE_ENDIAN__
+	lha %r3, 112+0(%r1)
+#else
 	lha %r3, 112+6(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_UINT32
+#ifdef __LITTLE_ENDIAN__
+	lwz %r3, 112+0(%r1)
+#else
 	lwz %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT32
+#ifdef __LITTLE_ENDIAN__
+	lwa %r3, 112+0(%r1)
+#else
 	lwa %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.8.1/libffi/src/powerpc/ppc_closure.S
--- gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S	2012-03-04 21:11:09.000000000 +0000
+++ gcc-4.8.1/libffi/src/powerpc/ppc_closure.S	2013-10-01 16:06:44.032554284 +0000
@@ -159,25 +159,41 @@
 #endif
 
 # case FFI_TYPE_UINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3,112+0(%r1)
+#else
 	lbz %r3,112+3(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
 
 # case FFI_TYPE_SINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3,112+0(%r1)
+#else
 	lbz %r3,112+3(%r1)
+#endif
 	extsb %r3,%r3
 	mtlr %r0
 	b .Lfinish
 
 # case FFI_TYPE_UINT16
+#ifdef __LITTLE_ENDIAN__
+	lhz %r3,112+0(%r1)
+#else
 	lhz %r3,112+2(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
 
 # case FFI_TYPE_SINT16
+#ifdef __LITTLE_ENDIAN__
+	lha %r3,112+0(%r1)
+#else
 	lha %r3,112+2(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
@@ -239,9 +255,15 @@
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 3. Three byte struct.
 	lwz %r3,112+0(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	addi %r1,%r1,144
+	blr
+#else
 	srwi %r3,%r3,8
 	mtlr %r0
 	b .Lfinish
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 4. Four byte struct.
 	lwz %r3,112+0(%r1)
@@ -252,20 +274,35 @@
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 5. Five byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,24
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 6. Six byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,16
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 7. Seven byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,8
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 8. Eight byte struct.
 	lwz %r3,112+0(%r1)
@@ -273,6 +310,7 @@
 	mtlr %r0
 	b .Lfinish
 
+#ifndef __LITTLE_ENDIAN__
 .Lstruct567:
 	subfic %r6,%r5,32
 	srw %r4,%r4,%r5
@@ -282,6 +320,7 @@
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
+#endif
 
 .Luint128:
 	lwz %r6,112+12(%r1)
diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h
--- gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h	2013-10-01 16:06:44.032554284 +0000
@@ -2,21 +2,26 @@
    Copyright (C) 2009-2013 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #define _FP_W_TYPE_SIZE		64
 #define _FP_W_TYPE		unsigned long
diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c gcc-4.8.1/libgcc/config/aarch64/sync-cache.c
--- gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c	2013-03-01 14:01:58.000000000 +0000
+++ gcc-4.8.1/libgcc/config/aarch64/sync-cache.c	2013-10-01 16:06:44.032554284 +0000
@@ -2,21 +2,26 @@
    Copyright (C) 2012-2013 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 void __aarch64_sync_cache_range (const void *, const void *);
 
diff -Naur gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S
--- gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S	2013-02-12 14:55:16.000000000 +0000
+++ gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S	2013-10-01 16:06:44.036554284 +0000
@@ -1464,12 +1464,13 @@
     ;; Add-Saturate 2^{-RP-1}
     add     A0, C0
     brvc 0f
-    ldi     A0, 0x7f
+    ldi     C0, 0x7f
+    rjmp 9f
 0:  ;; Mask out bits beyond RP
     lsl     C0
     neg     C0
     and     C0, A0
-    mov     C1, __tmp_reg__
+9:  mov     C1, __tmp_reg__
     ret
 ENDF  __roundqq3
 #endif /* L_roundqq3 */
@@ -1488,12 +1489,13 @@
     ;; Add-Saturate 2^{-RP-1}
     add     A0, C0
     brcc 0f
-    ldi     A0, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 0:  ;; Mask out bits beyond RP
     lsl     C0
     neg     C0
     and     C0, A0
-    mov     C1, __tmp_reg__
+9:  mov     C1, __tmp_reg__
     ret
 ENDF  __rounduqq3
 #endif /* L_rounduqq3 */
@@ -1565,16 +1567,17 @@
 
 DEFUN  __round_s2_const
     brvc 2f
-    ldi     A1, 0x7f
+    ldi     C1, 0x7f
     rjmp 1f
     ;; FALLTHRU (Barrier)
 ENDF  __round_s2_const
 
 DEFUN __round_u2_const
     brcc 2f
-    ldi     A1, 0xff
+    ldi     C1, 0xff
 1:
-    ldi     A0, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 2:
     ;; Saturation is performed now.
     ;; Currently, we have C[] = 2^{-RP-1}
@@ -1586,7 +1589,7 @@
     ;; Clear the bits beyond the rounding point.
     and     C0, A0
     and     C1, A1
-    ret
+9:  ret
 ENDF  __round_u2_const
 
 #endif /* L_round_2_const */
@@ -1681,18 +1684,19 @@
 
 DEFUN  __round_s4_const
     brvc 2f
-    ldi     A3, 0x7f
+    ldi     C3, 0x7f
     rjmp 1f
     ;; FALLTHRU (Barrier)
 ENDF  __round_s4_const
 
 DEFUN __round_u4_const
     brcc 2f
-    ldi     A3, 0xff
+    ldi     C3, 0xff
 1:
-    ldi     A2, 0xff
-    ldi     A1, 0xff
-    ldi     A0, 0xff
+    ldi     C2, 0xff
+    ldi     C1, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 2:
     ;; Saturation is performed now.
     ;; Currently, we have C[] = 2^{-RP-1}
@@ -1707,7 +1711,7 @@
     and     C1, A1
     and     C2, A2
     and     C3, A3
-    ret
+9:  ret
 ENDF  __round_u4_const
 
 #endif /* L_round_4_const */
@@ -1847,12 +1851,13 @@
 1:  ;; Unsigned
     brcc    3f
     ;; Unsigned overflow: A[] = 0xff...
-2:  ldi     A7, 0xff
-    ldi     A6, 0xff
-    wmov    A0, A6
-    wmov    A2, A6
-    wmov    A4, A6
-    bld     A7, 7
+2:  ldi     C7, 0xff
+    ldi     C6, 0xff
+    wmov    C0, C6
+    wmov    C2, C6
+    wmov    C4, C6
+    bld     C7, 7
+    rjmp 9f
 3:
     ;;  C[] = -C[] - C[]
     push    A0
@@ -1869,7 +1874,7 @@
     and     C5, A5
     and     C6, A6
     and     C7, A7
-    ;; Epilogue
+9:  ;; Epilogue
     pop r29
     pop r28
     pop r17
diff -Naur gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c gcc-4.8.1/libgcc/config/i386/cpuinfo.c
--- gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c	2013-03-08 01:02:29.000000000 +0000
+++ gcc-4.8.1/libgcc/config/i386/cpuinfo.c	2013-10-01 16:06:44.036554284 +0000
@@ -14,9 +14,14 @@
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>. */
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #include "cpuid.h"
 #include "tsystem.h"
diff -Naur gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h
--- gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h	2013-10-01 16:06:44.036554284 +0000
@@ -2,21 +2,26 @@
    Contributed by Andrew MacLeod  <amacleod@cygnus.com>
                   Andrew Haley  <aph@cygnus.com>
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #ifdef __VMS__
 /* On VMS, long is a 32 bit type.  */
diff -Naur gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S gcc-4.8.1/libgcc/config/mips/vr4120-div.S
--- gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/mips/vr4120-div.S	2013-10-01 16:06:44.036554284 +0000
@@ -3,18 +3,23 @@
 
 This file is part of GCC.
 
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
 
-You should have received a copy of the GNU General Public License
-	along with GCC; see the file COPYING3.  If not see
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
 /* This file contains functions which implement divsi3 and modsi3 for
diff -Naur gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c
--- gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c	2013-10-01 16:06:44.036554284 +0000
@@ -42,10 +42,10 @@
    represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a
    NaN is don't-care.
 
-   This code currently assumes big-endian.  */
+   This code currently assumes the most significant double is in
+   the lower numbered register or lower addressed memory.  */
 
-#if (!defined (__LITTLE_ENDIAN__) \
-     && (defined (__MACH__) || defined (__powerpc__) || defined (_AIX)))
+#if defined (__MACH__) || defined (__powerpc__) || defined (_AIX)
 
 #define fabs(x) __builtin_fabs(x)
 #define isless(x, y) __builtin_isless (x, y)
diff -Naur gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h gcc-4.8.1/libgcc/config/s390/linux-unwind.h
--- gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/s390/linux-unwind.h	2013-10-01 16:06:44.036554284 +0000
@@ -31,6 +31,8 @@
 s390_fallback_frame_state (struct _Unwind_Context *context,
 			   _Unwind_FrameState *fs)
 {
+  static const unsigned char dwarf_to_fpr_map[16] =
+    { 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15 };
   unsigned char *pc = context->ra;
   long new_cfa;
   int i;
@@ -112,7 +114,7 @@
     {
       fs->regs.reg[16+i].how = REG_SAVED_OFFSET;
       fs->regs.reg[16+i].loc.offset =
-	(long)&regs->fprs[i] - new_cfa;
+	(long)&regs->fprs[dwarf_to_fpr_map[i]] - new_cfa;
     }
 
   /* Load return addr from PSW into dummy register 32.  */
diff -Naur gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h gcc-4.8.1/libgcc/config/tilepro/atomic.h
--- gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config/tilepro/atomic.h	2013-10-01 16:06:44.036554284 +0000
@@ -92,8 +92,6 @@
    compare-and-exchange routine, so may be potentially less efficient.  */
 #endif
 
-#include <stdint.h>
-#include <features.h>
 #ifdef __tilegx__
 #include <arch/spr_def.h>
 #else
@@ -122,9 +120,9 @@
 
 /* 64-bit integer compare-and-exchange.  */
 static __inline __attribute__ ((always_inline))
-     int64_t arch_atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
-						     int64_t oldval,
-						     int64_t newval)
+     long long arch_atomic_val_compare_and_exchange_8 (volatile long long
+						       *mem, long long oldval,
+						       long long newval)
 {
 #ifdef __tilegx__
   __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
@@ -139,7 +137,7 @@
 			"R04" (newval_lo), "R05" (newval_hi),
 			"m" (*mem):"r20", "r21", "r22", "r23", "r24", "r25",
 			"r26", "r27", "r28", "r29", "memory");
-  return ((uint64_t) result_hi) << 32 | result_lo;
+  return ((long long) result_hi) << 32 | result_lo;
 #endif
 }
 
@@ -150,11 +148,11 @@
 
 
 #define arch_atomic_val_compare_and_exchange(mem, o, n)                 \
-  ({                                                                    \
+  __extension__ ({                                                      \
     (__typeof(*(mem)))(__typeof(*(mem)-*(mem)))                         \
       ((sizeof(*(mem)) == 8) ?                                          \
        arch_atomic_val_compare_and_exchange_8(                          \
-         (volatile int64_t*)(mem), (__typeof((o)-(o)))(o),              \
+         (volatile long long*)(mem), (__typeof((o)-(o)))(o),            \
          (__typeof((n)-(n)))(n)) :                                      \
        (sizeof(*(mem)) == 4) ?                                          \
        arch_atomic_val_compare_and_exchange_4(                          \
@@ -164,7 +162,7 @@
   })
 
 #define arch_atomic_bool_compare_and_exchange(mem, o, n)                \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(o) __o = (o);                                              \
     __builtin_expect(                                                   \
       __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
@@ -174,7 +172,7 @@
 /* Loop with compare_and_exchange until we guess the correct value.
    Normally "expr" will be an expression using __old and __value.  */
 #define __arch_atomic_update_cmpxchg(mem, value, expr)                  \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(value) __value = (value);                                  \
     __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess;           \
     do {                                                                \
@@ -189,12 +187,14 @@
 /* Generic atomic op with 8- or 4-byte variant.
    The _mask, _addend, and _expr arguments are ignored on tilegx.  */
 #define __arch_atomic_update(mem, value, op, _mask, _addend, _expr)     \
-  ({                                                                    \
+  __extension__ ({                                                      \
     ((__typeof(*(mem)))                                                 \
      ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op(     \
-        (void *)(mem), (int64_t)(__typeof((value)-(value)))(value)) :   \
+        (volatile void *)(mem),                                         \
+        (long long)(__typeof((value)-(value)))(value)) :                \
       (sizeof(*(mem)) == 4) ? (int)__insn_##op##4(                      \
-        (void *)(mem), (int32_t)(__typeof((value)-(value)))(value)) :   \
+        (volatile void *)(mem),                                         \
+        (int)(__typeof((value)-(value)))(value)) :                      \
       __arch_atomic_error_bad_argument_size()));                        \
   })
 
@@ -224,7 +224,7 @@
 /* Generic atomic op with 8- or 4-byte variant.
    The _op argument is ignored on tilepro.  */
 #define __arch_atomic_update(mem, value, _op, mask, addend, expr)       \
-  ({                                                                    \
+  __extension__ ({                                                      \
     (__typeof(*(mem)))(__typeof(*(mem)-*(mem)))                         \
       ((sizeof(*(mem)) == 8) ?                                          \
        __arch_atomic_update_cmpxchg((mem), (value), (expr)) :           \
@@ -263,13 +263,13 @@
   __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value))
 
 #define arch_atomic_bit_set(mem, bit)                                   \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit);             \
     __mask & arch_atomic_or((mem), __mask);                             \
   })
 
 #define arch_atomic_bit_clear(mem, bit)                                 \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit);             \
     __mask & arch_atomic_and((mem), ~__mask);                           \
   })
diff -Naur gcc-4.8.1.orig/libgcc/config.host gcc-4.8.1/libgcc/config.host
--- gcc-4.8.1.orig/libgcc/config.host	2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.1/libgcc/config.host	2013-10-01 16:06:44.036554284 +0000
@@ -316,7 +316,7 @@
 	md_unwind_header=alpha/vms-unwind.h
 	;;
 arm-wrs-vxworks)
-	tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit"
+	tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
 	extra_parts="$extra_parts crti.o crtn.o"
 	;;
 arm*-*-netbsdelf*)
@@ -834,7 +834,7 @@
 	tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
 	;;
 powerpc-*-eabispe*)
-	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic"
+	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
 	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	;;
 powerpc-*-eabisimaltivec*)
@@ -865,7 +865,7 @@
 	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
 	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	;;
-powerpc-*-linux* | powerpc64-*-linux*)
+powerpc*-*-linux*)
 	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-softfp-sfdf t-softfp-excl t-dfprules rs6000/t-ppc64-fp t-softfp t-slibgcc-libgcc"
 	extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	md_unwind_header=rs6000/linux-unwind.h
diff -Naur gcc-4.8.1.orig/libgcc/unwind-dw2.c gcc-4.8.1/libgcc/unwind-dw2.c
--- gcc-4.8.1.orig/libgcc/unwind-dw2.c	2013-03-14 09:13:36.000000000 +0000
+++ gcc-4.8.1/libgcc/unwind-dw2.c	2013-10-01 16:06:44.036554284 +0000
@@ -59,6 +59,35 @@
 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
 #endif
 
+/* ??? For the public function interfaces, we tend to gcc_assert that the
+   column numbers are in range.  For the dwarf2 unwind info this does happen,
+   although so far in a case that doesn't actually matter.
+
+   See PR49146, in which a call from x86_64 ms abi to x86_64 unix abi stores
+   the call-saved xmm registers and annotates them.  We havn't bothered
+   providing support for the xmm registers for the x86_64 port primarily
+   because the 64-bit windows targets don't use dwarf2 unwind, using sjlj or
+   SEH instead.  Adding the support for unix targets would generally be a
+   waste.  However, some runtime libraries supplied with ICC do contain such
+   an unorthodox transition, as well as the unwind info to match.  This loss
+   of register restoration doesn't matter in practice, because the exception
+   is caught in the native unix abi, where all of the xmm registers are 
+   call clobbered.
+
+   Ideally, we'd record some bit to notice when we're failing to restore some
+   register recorded in the unwind info, but to do that we need annotation on
+   the unix->ms abi edge, so that we know when the register data may be
+   discarded.  And since this edge is also within the ICC library, we're
+   unlikely to be able to get the new annotation.
+
+   Barring a magic solution to restore the ms abi defined 128-bit xmm registers
+   (as distictly opposed to the full runtime width) without causing extra
+   overhead for normal unix abis, the best solution seems to be to simply
+   ignore unwind data for unknown columns.  */
+
+#define UNWIND_COLUMN_IN_RANGE(x) \
+    __builtin_expect((x) <= DWARF_FRAME_REGISTERS, 1)
+
 #ifdef REG_VALUE_IN_UNWIND_CONTEXT
 typedef _Unwind_Word _Unwind_Context_Reg_Val;
 
@@ -939,14 +968,19 @@
 	  reg = insn & 0x3f;
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	}
       else if ((insn & 0xc0) == DW_CFA_restore)
 	{
 	  reg = insn & 0x3f;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	}
       else switch (insn)
 	{
@@ -977,26 +1011,35 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_restore_extended:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  /* FIXME, this is wrong; the CIE might have said that the
 	     register was saved somewhere.  */
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	  break;
 
 	case DW_CFA_same_value:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	  break;
 
 	case DW_CFA_undefined:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNDEFINED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNDEFINED;
 	  break;
 
 	case DW_CFA_nop:
@@ -1007,9 +1050,12 @@
 	    _uleb128_t reg2;
 	    insn_ptr = read_uleb128 (insn_ptr, &reg);
 	    insn_ptr = read_uleb128 (insn_ptr, &reg2);
-	    fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_SAVED_REG;
-	    fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.reg =
-	      (_Unwind_Word)reg2;
+	    reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	    if (UNWIND_COLUMN_IN_RANGE (reg))
+	      {
+	        fs->regs.reg[reg].how = REG_SAVED_REG;
+	        fs->regs.reg[reg].loc.reg = (_Unwind_Word)reg2;
+	      }
 	  }
 	  break;
 
@@ -1067,8 +1113,12 @@
 
 	case DW_CFA_expression:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_SAVED_EXP;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.exp = insn_ptr;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_EXP;
+	      fs->regs.reg[reg].loc.exp = insn_ptr;
+	    }
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  insn_ptr += utmp;
 	  break;
@@ -1078,9 +1128,12 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
 	  offset = stmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_def_cfa_sf:
@@ -1103,25 +1156,34 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_val_offset_sf:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
 	  offset = stmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_val_expression:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_EXP;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.exp = insn_ptr;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_EXP;
+	      fs->regs.reg[reg].loc.exp = insn_ptr;
+	    }
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  insn_ptr += utmp;
 	  break;
@@ -1147,9 +1209,12 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Word) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = -offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = -offset;
+	    }
 	  break;
 
 	default:
diff -Naur gcc-4.8.1.orig/libgfortran/config/fpu-387.h gcc-4.8.1/libgfortran/config/fpu-387.h
--- gcc-4.8.1.orig/libgfortran/config/fpu-387.h	2013-01-14 18:20:58.000000000 +0000
+++ gcc-4.8.1/libgfortran/config/fpu-387.h	2013-10-01 16:06:44.036554284 +0000
@@ -73,7 +73,7 @@
 
       /* We need a single SSE instruction here so the handler can safely skip
 	 over it.  */
-      __asm__ volatile ("movaps %xmm0,%xmm0");
+      __asm__ __volatile__ ("movaps\t%xmm0,%xmm0");
 
       sigaction (SIGILL, &oact, NULL);
 
@@ -95,42 +95,42 @@
 #define _FPU_MASK_OM  0x08
 #define _FPU_MASK_UM  0x10
 #define _FPU_MASK_PM  0x20
+#define _FPU_MASK_ALL 0x3f
+
+#define _FPU_EX_ALL   0x3f
 
 void set_fpu (void)
 {
+  int excepts = 0;
   unsigned short cw;
 
-  asm volatile ("fnstcw %0" : "=m" (cw));
+  __asm__ __volatile__ ("fstcw\t%0" : "=m" (cw));
 
-  cw |= (_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM | _FPU_MASK_OM
-	 | _FPU_MASK_UM | _FPU_MASK_PM);
+  if (options.fpe & GFC_FPE_INVALID) excepts |= _FPU_MASK_IM;
+  if (options.fpe & GFC_FPE_DENORMAL) excepts |= _FPU_MASK_DM;
+  if (options.fpe & GFC_FPE_ZERO) excepts |= _FPU_MASK_ZM;
+  if (options.fpe & GFC_FPE_OVERFLOW) excepts |= _FPU_MASK_OM;
+  if (options.fpe & GFC_FPE_UNDERFLOW) excepts |= _FPU_MASK_UM;
+  if (options.fpe & GFC_FPE_INEXACT) excepts |= _FPU_MASK_PM;
 
-  if (options.fpe & GFC_FPE_INVALID) cw &= ~_FPU_MASK_IM;
-  if (options.fpe & GFC_FPE_DENORMAL) cw &= ~_FPU_MASK_DM;
-  if (options.fpe & GFC_FPE_ZERO) cw &= ~_FPU_MASK_ZM;
-  if (options.fpe & GFC_FPE_OVERFLOW) cw &= ~_FPU_MASK_OM;
-  if (options.fpe & GFC_FPE_UNDERFLOW) cw &= ~_FPU_MASK_UM;
-  if (options.fpe & GFC_FPE_INEXACT) cw &= ~_FPU_MASK_PM;
+  cw |= _FPU_MASK_ALL;
+  cw &= ~excepts;
 
-  asm volatile ("fldcw %0" : : "m" (cw));
+  __asm__ __volatile__ ("fnclex\n\tfldcw\t%0" : : "m" (cw));
 
   if (has_sse())
     {
       unsigned int cw_sse;
 
-      asm volatile ("%vstmxcsr %0" : "=m" (cw_sse));
+      __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (cw_sse));
+
+      /* The SSE exception masks are shifted by 7 bits.  */
+      cw_sse |= _FPU_MASK_ALL << 7;
+      cw_sse &= ~(excepts << 7);
 
-      cw_sse &= 0xffff0000;
-      cw_sse |= (_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM | _FPU_MASK_OM
-		 | _FPU_MASK_UM | _FPU_MASK_PM ) << 7;
-
-      if (options.fpe & GFC_FPE_INVALID) cw_sse &= ~(_FPU_MASK_IM << 7);
-      if (options.fpe & GFC_FPE_DENORMAL) cw_sse &= ~(_FPU_MASK_DM << 7);
-      if (options.fpe & GFC_FPE_ZERO) cw_sse &= ~(_FPU_MASK_ZM << 7);
-      if (options.fpe & GFC_FPE_OVERFLOW) cw_sse &= ~(_FPU_MASK_OM << 7);
-      if (options.fpe & GFC_FPE_UNDERFLOW) cw_sse &= ~(_FPU_MASK_UM << 7);
-      if (options.fpe & GFC_FPE_INEXACT) cw_sse &= ~(_FPU_MASK_PM << 7);
+      /* Clear stalled exception flags.  */
+      cw_sse &= ~_FPU_EX_ALL;
 
-      asm volatile ("%vldmxcsr %0" : : "m" (cw_sse));
+      __asm__ __volatile__ ("%vldmxcsr\t%0" : : "m" (cw_sse));
     }
 }
diff -Naur gcc-4.8.1.orig/libgo/MERGE gcc-4.8.1/libgo/MERGE
--- gcc-4.8.1.orig/libgo/MERGE	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/MERGE	2013-10-01 16:06:44.220554279 +0000
@@ -1,4 +1,4 @@
-229081515358
+a7bd9a33067b
 
 The first line of this file holds the Mercurial revision number of the
 last merge done from the master library sources.
diff -Naur gcc-4.8.1.orig/libgo/Makefile.am gcc-4.8.1/libgo/Makefile.am
--- gcc-4.8.1.orig/libgo/Makefile.am	2013-02-20 20:04:36.000000000 +0000
+++ gcc-4.8.1/libgo/Makefile.am	2013-10-01 16:06:44.220554279 +0000
@@ -211,40 +211,11 @@
 	encoding/pem.gox \
 	encoding/xml.gox
 
-if LIBGO_IS_LINUX
-# exp_inotify_gox = exp/inotify.gox
-exp_inotify_gox =
-else
-exp_inotify_gox =
-endif
-
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 
 toolexeclibgoexp_DATA = \
-	exp/cookiejar.gox \
-	exp/ebnf.gox \
-	exp/html.gox \
-	$(exp_inotify_gox) \
-	exp/norm.gox \
 	exp/proxy.gox \
-	exp/ssa.gox \
-	exp/terminal.gox \
-	exp/utf8string.gox
-
-toolexeclibgoexphtmldir = $(toolexeclibgoexpdir)/html
-
-toolexeclibgoexphtml_DATA = \
-	exp/html/atom.gox
-
-toolexeclibgoexplocaledir = $(toolexeclibgoexpdir)/locale
-
-toolexeclibgoexplocale_DATA = \
-	exp/locale/collate.gox
-
-toolexeclibgoexplocalecollatedir = $(toolexeclibgoexplocaledir)/collate
-
-toolexeclibgoexplocalecollate_DATA = \
-	exp/locale/collate/build.gox
+	exp/terminal.gox
 
 toolexeclibgogodir = $(toolexeclibgodir)/go
 
@@ -256,8 +227,7 @@
 	go/parser.gox \
 	go/printer.gox \
 	go/scanner.gox \
-	go/token.gox \
-	go/types.gox
+	go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 
@@ -322,6 +292,7 @@
 
 toolexeclibgonethttp_DATA = \
 	net/http/cgi.gox \
+	net/http/cookiejar.gox \
 	net/http/fcgi.gox \
 	net/http/httptest.gox \
 	net/http/httputil.gox \
@@ -335,7 +306,6 @@
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 
 toolexeclibgoold_DATA = \
-	old/netchan.gox \
 	old/regexp.gox \
 	old/template.gox
 
@@ -435,6 +405,16 @@
 endif
 endif
 
+if LIBGO_IS_LINUX
+runtime_netpoll_files = netpoll.c runtime/netpoll_epoll.c
+else
+if LIBGO_IS_DARWIN
+runtime_netpoll_files = netpoll.c runtime/netpoll_kqueue.c
+else
+runtime_netpoll_files = runtime/netpoll_stub.c
+endif
+endif
+
 runtime_files = \
 	runtime/go-append.c \
 	runtime/go-assert.c \
@@ -487,7 +467,6 @@
 	runtime/go-strplus.c \
 	runtime/go-strslice.c \
 	runtime/go-traceback.c \
-	runtime/go-trampoline.c \
 	runtime/go-type-complex.c \
 	runtime/go-type-eface.c \
 	runtime/go-type-error.c \
@@ -514,6 +493,7 @@
 	runtime/mgc0.c \
 	runtime/mheap.c \
 	runtime/msize.c \
+	$(runtime_netpoll_files) \
 	runtime/panic.c \
 	runtime/parfor.c \
 	runtime/print.c \
@@ -549,6 +529,10 @@
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
 
+netpoll.c: $(srcdir)/runtime/netpoll.goc goc2c
+	./goc2c $< > $@.tmp
+	mv -f $@.tmp $@
+
 reflect.c: $(srcdir)/runtime/reflect.goc goc2c
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
@@ -574,7 +558,8 @@
 	mv -f $@.tmp $@
 
 go_bufio_files = \
-	go/bufio/bufio.go
+	go/bufio/bufio.go \
+	go/bufio/scan.go
 
 go_bytes_files = \
 	go/bytes/buffer.go \
@@ -679,17 +664,17 @@
 go_net_newpollserver_file = go/net/newpollserver_rtems.go
 else # !LIBGO_IS_RTEMS
 if LIBGO_IS_LINUX
-go_net_fd_os_file = go/net/fd_linux.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_fd_os_file =
+go_net_newpollserver_file =
 else # !LIBGO_IS_LINUX && !LIBGO_IS_RTEMS
 if LIBGO_IS_NETBSD
 go_net_fd_os_file = go/net/fd_bsd.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_newpollserver_file =
 else # !LIBGO_IS_NETBSD && !LIBGO_IS_LINUX && !LIBGO_IS_RTEMS
 # By default use select with pipes.  Most systems should have
 # something better.
 go_net_fd_os_file = go/net/fd_select.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_newpollserver_file =
 endif # !LIBGO_IS_NETBSD
 endif # !LIBGO_IS_LINUX
 endif # !LIBGO_IS_RTEMS
@@ -760,6 +745,16 @@
 go_net_cloexec_file = go/net/sys_cloexec.go
 endif
 
+if LIBGO_IS_LINUX
+go_net_poll_file = go/net/fd_poll_runtime.go
+else
+if LIBGO_IS_DARWIN
+go_net_poll_file = go/net/fd_poll_runtime.go
+else
+go_net_poll_file = go/net/fd_poll_unix.go
+endif
+endif
+
 go_net_files = \
 	go/net/cgo_unix.go \
 	$(go_net_cgo_file) \
@@ -787,10 +782,12 @@
 	go/net/net.go \
 	go/net/parse.go \
 	go/net/pipe.go \
+	$(go_net_poll_file) \
 	go/net/port.go \
 	go/net/port_unix.go \
 	$(go_net_sendfile_file) \
 	go/net/sock_posix.go \
+	go/net/sock_unix.go \
 	$(go_net_sock_file) \
 	go/net/sockopt_posix.go \
 	$(go_net_sockopt_file) \
@@ -891,15 +888,35 @@
 	$(go_os_stat_file) \
 	go/os/str.go \
 	$(go_os_sys_file) \
-	go/os/types.go
+	go/os/types.go \
+	go/os/types_notwin.go
 
 go_path_files = \
 	go/path/match.go \
 	go/path/path.go
 
+if LIBGO_IS_X86_64
+go_reflect_makefunc_file = \
+	go/reflect/makefuncgo_amd64.go
+go_reflect_makefunc_s_file = \
+	go/reflect/makefunc_amd64.S
+else
+if LIBGO_IS_386
+go_reflect_makefunc_file = \
+	go/reflect/makefuncgo_386.go
+go_reflect_makefunc_s_file = \
+	go/reflect/makefunc_386.S
+else
+go_reflect_makefunc_file =
+go_reflect_makefunc_s_file = \
+	go/reflect/makefunc_dummy.c
+endif
+endif
+
 go_reflect_files = \
 	go/reflect/deepequal.go \
 	go/reflect/makefunc.go \
+	$(go_reflect_makefunc_file) \
 	go/reflect/type.go \
 	go/reflect/value.go
 
@@ -980,6 +997,7 @@
 	go/log/syslog/syslog_c.c
 
 go_testing_files = \
+	go/testing/allocs.go \
 	go/testing/benchmark.go \
 	go/testing/example.go \
 	go/testing/testing.go
@@ -1102,7 +1120,8 @@
 	go/crypto/rand/rand_unix.go \
 	go/crypto/rand/util.go
 go_crypto_rc4_files = \
-	go/crypto/rc4/rc4.go
+	go/crypto/rc4/rc4.go \
+	go/crypto/rc4/rc4_ref.go
 go_crypto_rsa_files = \
 	go/crypto/rsa/pkcs1v15.go \
 	go/crypto/rsa/rsa.go
@@ -1213,73 +1232,14 @@
 	go/encoding/xml/typeinfo.go \
 	go/encoding/xml/xml.go
 
-go_exp_cookiejar_files = \
-	go/exp/cookiejar/jar.go \
-	go/exp/cookiejar/storage.go
-go_exp_ebnf_files = \
-	go/exp/ebnf/ebnf.go \
-	go/exp/ebnf/parser.go
-go_exp_html_files = \
-	go/exp/html/const.go \
-	go/exp/html/doc.go \
-	go/exp/html/doctype.go \
-	go/exp/html/entity.go \
-	go/exp/html/escape.go \
-	go/exp/html/foreign.go \
-	go/exp/html/node.go \
-	go/exp/html/parse.go \
-	go/exp/html/render.go \
-	go/exp/html/token.go
-go_exp_html_atom_files = \
-	go/exp/html/atom/atom.go \
-	go/exp/html/atom/table.go
-go_exp_inotify_files = \
-	go/exp/inotify/inotify_linux.go
-go_exp_locale_collate_files = \
-	go/exp/locale/collate/colelem.go \
-	go/exp/locale/collate/collate.go \
-	go/exp/locale/collate/colltab.go \
-	go/exp/locale/collate/contract.go \
-	go/exp/locale/collate/export.go \
-	go/exp/locale/collate/sort.go \
-	go/exp/locale/collate/table.go \
-	go/exp/locale/collate/tables.go \
-	go/exp/locale/collate/trie.go
-go_exp_locale_collate_build_files = \
-	go/exp/locale/collate/build/builder.go \
-	go/exp/locale/collate/build/colelem.go \
-	go/exp/locale/collate/build/contract.go \
-	go/exp/locale/collate/build/order.go \
-	go/exp/locale/collate/build/table.go \
-	go/exp/locale/collate/build/trie.go
-go_exp_norm_files = \
-	go/exp/norm/composition.go \
-	go/exp/norm/forminfo.go \
-	go/exp/norm/input.go \
-	go/exp/norm/iter.go \
-	go/exp/norm/normalize.go \
-	go/exp/norm/readwriter.go \
-	go/exp/norm/tables.go \
-	go/exp/norm/trie.go
 go_exp_proxy_files = \
 	go/exp/proxy/direct.go \
 	go/exp/proxy/per_host.go \
 	go/exp/proxy/proxy.go \
 	go/exp/proxy/socks5.go
-go_exp_ssa_files = \
-	go/exp/ssa/blockopt.go \
-	go/exp/ssa/doc.go \
-	go/exp/ssa/func.go \
-	go/exp/ssa/sanity.go \
-	go/exp/ssa/ssa.go \
-	go/exp/ssa/literal.go \
-	go/exp/ssa/print.go \
-	go/exp/ssa/util.go
 go_exp_terminal_files = \
 	go/exp/terminal/terminal.go \
 	go/exp/terminal/util.go
-go_exp_utf8string_files = \
-	go/exp/utf8string/string.go
 
 go_go_ast_files = \
 	go/go/ast/ast.go \
@@ -1318,24 +1278,6 @@
 	go/go/token/position.go \
 	go/go/token/serialize.go \
 	go/go/token/token.go
-go_go_types_files = \
-	go/go/types/api.go \
-	go/go/types/builtins.go \
-	go/go/types/check.go \
-	go/go/types/const.go \
-	go/go/types/conversions.go \
-	go/go/types/errors.go \
-	go/go/types/exportdata.go \
-	go/go/types/expr.go \
-	go/go/types/gcimporter.go \
-	go/go/types/objects.go \
-	go/go/types/operand.go \
-	go/go/types/predicates.go \
-	go/go/types/resolve.go \
-	go/go/types/scope.go \
-	go/go/types/stmt.go \
-	go/go/types/types.go \
-	go/go/types/universe.go
 
 go_hash_adler32_files = \
 	go/hash/adler32/adler32.go
@@ -1459,6 +1401,9 @@
 go_net_http_cgi_files = \
 	go/net/http/cgi/child.go \
 	go/net/http/cgi/host.go
+go_net_http_cookiejar_files = \
+	go/net/http/cookiejar/jar.go \
+	go/net/http/cookiejar/punycode.go
 go_net_http_fcgi_files = \
 	go/net/http/fcgi/child.go \
 	go/net/http/fcgi/fcgi.go
@@ -1474,10 +1419,6 @@
 	go/net/http/httputil/reverseproxy.go
 
 
-go_old_netchan_files = \
-	go/old/netchan/common.go \
-	go/old/netchan/export.go \
-	go/old/netchan/import.go
 go_old_regexp_files = \
 	go/old/regexp/regexp.go
 go_old_template_files = \
@@ -1519,6 +1460,7 @@
 	go/net/rpc/jsonrpc/server.go
 
 go_runtime_debug_files = \
+	go/runtime/debug/garbage.go \
 	go/runtime/debug/stack.go
 go_runtime_pprof_files = \
 	go/runtime/pprof/pprof.go
@@ -1838,6 +1780,7 @@
 	os.lo \
 	path.lo \
 	reflect-go.lo \
+	reflect/makefunc.lo \
 	regexp.lo \
 	runtime-go.lo \
 	sort.lo \
@@ -1897,17 +1840,8 @@
 	encoding/json.lo \
 	encoding/pem.lo \
 	encoding/xml.lo \
-	exp/cookiejar.lo \
-	exp/ebnf.lo \
-	exp/html.lo \
-	exp/html/atom.lo \
-	exp/locale/collate.lo \
-	exp/locale/collate/build.lo \
-	exp/norm.lo \
 	exp/proxy.lo \
-	exp/ssa.lo \
 	exp/terminal.lo \
-	exp/utf8string.lo \
 	html/template.lo \
 	go/ast.lo \
 	go/build.lo \
@@ -1917,12 +1851,12 @@
 	go/printer.lo \
 	go/scanner.lo \
 	go/token.lo \
-	go/types.lo \
 	hash/adler32.lo \
 	hash/crc32.lo \
 	hash/crc64.lo \
 	hash/fnv.lo \
 	net/http/cgi.lo \
+	net/http/cookiejar.lo \
 	net/http/fcgi.lo \
 	net/http/httptest.lo \
 	net/http/httputil.lo \
@@ -1946,7 +1880,6 @@
 	net/smtp.lo \
 	net/textproto.lo \
 	net/url.lo \
-	old/netchan.lo \
 	old/regexp.lo \
 	old/template.lo \
 	os/exec.lo \
@@ -2234,6 +2167,9 @@
 	$(BUILDPACKAGE)
 reflect/check: $(CHECK_DEPS)
 	@$(CHECK)
+reflect/makefunc.lo: $(go_reflect_makefunc_s_file)
+	@$(MKDIR_P) reflect
+	$(LTCOMPILE) -c -o $@ $<
 .PHONY: reflect/check
 
 @go_include@ regexp.lo.dep
@@ -2731,69 +2667,6 @@
 	@$(CHECK)
 .PHONY: encoding/xml/check
 
-@go_include@ exp/cookiejar.lo.dep
-exp/cookiejar.lo.dep: $(go_exp_cookiejar_files)
-	$(BUILDDEPS)
-exp/cookiejar.lo: $(go_exp_cookiejar_files)
-	$(BUILDPACKAGE)
-exp/cookiejar/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/cookiejar/check
-
-@go_include@ exp/ebnf.lo.dep
-exp/ebnf.lo.dep: $(go_exp_ebnf_files)
-	$(BUILDDEPS)
-exp/ebnf.lo: $(go_exp_ebnf_files)
-	$(BUILDPACKAGE)
-exp/ebnf/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ebnf/check
-
-@go_include@ exp/html.lo.dep
-exp/html.lo.dep: $(go_exp_html_files)
-	$(BUILDDEPS)
-exp/html.lo: $(go_exp_html_files)
-	$(BUILDPACKAGE)
-exp/html/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/check
-
-@go_include@ exp/html/atom.lo.dep
-exp/html/atom.lo.dep: $(go_exp_html_atom_files)
-	$(BUILDDEPS)
-exp/html/atom.lo: $(go_exp_html_atom_files)
-	$(BUILDPACKAGE)
-exp/html/atom/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/atom/check
-
-@go_include@ exp/locale/collate.lo.dep
-exp/locale/collate.lo.dep: $(go_exp_locale_collate_files)
-	$(BUILDDEPS)
-exp/locale/collate.lo: $(go_exp_locale_collate_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/check
-
-@go_include@ exp/locale/collate/build.lo.dep
-exp/locale/collate/build.lo.dep: $(go_exp_locale_collate_build_files)
-	$(BUILDDEPS)
-exp/locale/collate/build.lo: $(go_exp_locale_collate_build_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/build/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/build/check
-
-@go_include@ exp/norm.lo.dep
-exp/norm.lo.dep: $(go_exp_norm_files)
-	$(BUILDDEPS)
-exp/norm.lo: $(go_exp_norm_files)
-	$(BUILDPACKAGE)
-exp/norm/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/norm/check
-
 @go_include@ exp/proxy.lo.dep
 exp/proxy.lo.dep: $(go_exp_proxy_files)
 	$(BUILDDEPS)
@@ -2803,15 +2676,6 @@
 	@$(CHECK)
 .PHONY: exp/proxy/check
 
-@go_include@ exp/ssa.lo.dep
-exp/ssa.lo.dep: $(go_exp_ssa_files)
-	$(BUILDDEPS)
-exp/ssa.lo: $(go_exp_ssa_files)
-	$(BUILDPACKAGE)
-exp/ssa/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ssa/check
-
 @go_include@ exp/terminal.lo.dep
 exp/terminal.lo.dep: $(go_exp_terminal_files)
 	$(BUILDDEPS)
@@ -2821,24 +2685,6 @@
 	@$(CHECK)
 .PHONY: exp/terminal/check
 
-@go_include@ exp/utf8string.lo.dep
-exp/utf8string.lo.dep: $(go_exp_utf8string_files)
-	$(BUILDDEPS)
-exp/utf8string.lo: $(go_exp_utf8string_files)
-	$(BUILDPACKAGE)
-exp/utf8string/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/utf8string/check
-
-@go_include@ exp/inotify.lo.dep
-exp/inotify.lo.dep: $(go_exp_inotify_files)
-	$(BUILDDEPS)
-exp/inotify.lo: $(go_exp_inotify_files)
-	$(BUILDPACKAGE)
-exp/inotify/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/inotify/check
-
 @go_include@ html/template.lo.dep
 html/template.lo.dep: $(go_html_template_files)
 	$(BUILDDEPS)
@@ -2929,15 +2775,6 @@
 	@$(CHECK)
 .PHONY: go/token/check
 
-@go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
-	$(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
-	$(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: go/types/check
-
 @go_include@ hash/adler32.lo.dep
 hash/adler32.lo.dep: $(go_hash_adler32_files)
 	$(BUILDDEPS)
@@ -3148,6 +2985,15 @@
 	@$(CHECK)
 .PHONY: net/http/cgi/check
 
+@go_include@ net/http/cookiejar.lo.dep
+net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+	$(BUILDDEPS)
+net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+	$(BUILDPACKAGE)
+net/http/cookiejar/check: $(CHECK_DEPS)
+	@$(CHECK)
+.PHONY: net/http/cookiejar/check
+
 @go_include@ net/http/fcgi.lo.dep
 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
 	$(BUILDDEPS)
@@ -3193,15 +3039,6 @@
 	@$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
-@go_include@ old/netchan.lo.dep
-old/netchan.lo.dep: $(go_old_netchan_files)
-	$(BUILDDEPS)
-old/netchan.lo: $(go_old_netchan_files)
-	$(BUILDPACKAGE)
-old/netchan/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: old/netchan/check
-
 @go_include@ old/regexp.lo.dep
 old/regexp.lo.dep: $(go_old_regexp_files)
 	$(BUILDDEPS)
@@ -3550,30 +3387,10 @@
 encoding/xml.gox: encoding/xml.lo
 	$(BUILDGOX)
 
-exp/cookiejar.gox: exp/cookiejar.lo
-	$(BUILDGOX)
-exp/ebnf.gox: exp/ebnf.lo
-	$(BUILDGOX)
-exp/html.gox: exp/html.lo
-	$(BUILDGOX)
-exp/html/atom.gox: exp/html/atom.lo
-	$(BUILDGOX)
-exp/inotify.gox: exp/inotify.lo
-	$(BUILDGOX)
-exp/locale/collate.gox: exp/locale/collate.lo
-	$(BUILDGOX)
-exp/locale/collate/build.gox: exp/locale/collate/build.lo
-	$(BUILDGOX)
-exp/norm.gox: exp/norm.lo
-	$(BUILDGOX)
 exp/proxy.gox: exp/proxy.lo
 	$(BUILDGOX)
-exp/ssa.gox: exp/ssa.lo
-	$(BUILDGOX)
 exp/terminal.gox: exp/terminal.lo
 	$(BUILDGOX)
-exp/utf8string.gox: exp/utf8string.lo	
-	$(BUILDGOX)
 
 html/template.gox: html/template.lo
 	$(BUILDGOX)
@@ -3594,8 +3411,6 @@
 	$(BUILDGOX)
 go/token.gox: go/token.lo
 	$(BUILDGOX)
-go/types.gox: go/types.lo
-	$(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
 	$(BUILDGOX)
@@ -3651,6 +3466,8 @@
 
 net/http/cgi.gox: net/http/cgi.lo
 	$(BUILDGOX)
+net/http/cookiejar.gox: net/http/cookiejar.lo
+	$(BUILDGOX)
 net/http/fcgi.gox: net/http/fcgi.lo
 	$(BUILDGOX)
 net/http/httptest.gox: net/http/httptest.lo
@@ -3663,8 +3480,6 @@
 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
 	$(BUILDGOX)
 
-old/netchan.gox: old/netchan.lo
-	$(BUILDGOX)
 old/regexp.gox: old/regexp.lo
 	$(BUILDGOX)
 old/template.gox: old/template.lo
@@ -3710,13 +3525,6 @@
 unicode/utf8.gox: unicode/utf8.lo
 	$(BUILDGOX)
 
-if LIBGO_IS_LINUX
-# exp_inotify_check = exp/inotify/check
-exp_inotify_check =
-else
-exp_inotify_check =
-endif
-
 TEST_PACKAGES = \
 	bufio/check \
 	bytes/check \
@@ -3787,17 +3595,8 @@
 	encoding/json/check \
 	encoding/pem/check \
 	encoding/xml/check \
-	exp/cookiejar/check \
-	exp/ebnf/check \
-	exp/html/check \
-	exp/html/atom/check \
-	$(exp_inotify_check) \
-	exp/locale/collate/check \
-	exp/locale/collate/build/check \
-	exp/norm/check \
 	exp/proxy/check \
 	exp/terminal/check \
-	exp/utf8string/check \
 	html/template/check \
 	go/ast/check \
 	$(go_build_check_omitted_since_it_calls_6g) \
@@ -3807,7 +3606,6 @@
 	go/printer/check \
 	go/scanner/check \
 	go/token/check \
-	go/types/check \
 	hash/adler32/check \
 	hash/crc32/check \
 	hash/crc64/check \
@@ -3825,6 +3623,7 @@
 	mime/multipart/check \
 	net/http/check \
 	net/http/cgi/check \
+	net/http/cookiejar/check \
 	net/http/fcgi/check \
 	net/http/httptest/check \
 	net/http/httputil/check \
@@ -3834,7 +3633,6 @@
 	net/textproto/check \
 	net/url/check \
 	net/rpc/jsonrpc/check \
-	old/netchan/check \
 	old/regexp/check \
 	old/template/check \
 	os/exec/check \
diff -Naur gcc-4.8.1.orig/libgo/Makefile.in gcc-4.8.1/libgo/Makefile.in
--- gcc-4.8.1.orig/libgo/Makefile.in	2013-02-20 20:04:36.000000000 +0000
+++ gcc-4.8.1/libgo/Makefile.in	2013-10-01 16:06:44.220554279 +0000
@@ -101,9 +101,6 @@
 	"$(DESTDIR)$(toolexeclibgodebugdir)" \
 	"$(DESTDIR)$(toolexeclibgoencodingdir)" \
 	"$(DESTDIR)$(toolexeclibgoexpdir)" \
-	"$(DESTDIR)$(toolexeclibgoexphtmldir)" \
-	"$(DESTDIR)$(toolexeclibgoexplocaledir)" \
-	"$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" \
 	"$(DESTDIR)$(toolexeclibgogodir)" \
 	"$(DESTDIR)$(toolexeclibgohashdir)" \
 	"$(DESTDIR)$(toolexeclibgohtmldir)" \
@@ -137,38 +134,36 @@
 am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo crypto.lo \
 	errors.lo expvar.lo flag.lo fmt.lo hash.lo html.lo image.lo \
 	io.lo log.lo math.lo mime.lo net.lo os.lo path.lo \
-	reflect-go.lo regexp.lo runtime-go.lo sort.lo strconv.lo \
-	strings.lo sync.lo syscall.lo syscall/errno.lo \
-	syscall/signame.lo syscall/wait.lo testing.lo time-go.lo \
-	unicode.lo archive/tar.lo archive/zip.lo compress/bzip2.lo \
-	compress/flate.lo compress/gzip.lo compress/lzw.lo \
-	compress/zlib.lo container/heap.lo container/list.lo \
-	container/ring.lo crypto/aes.lo crypto/cipher.lo crypto/des.lo \
-	crypto/dsa.lo crypto/ecdsa.lo crypto/elliptic.lo \
-	crypto/hmac.lo crypto/md5.lo crypto/rand.lo crypto/rc4.lo \
-	crypto/rsa.lo crypto/sha1.lo crypto/sha256.lo crypto/sha512.lo \
-	crypto/subtle.lo crypto/tls.lo crypto/x509.lo \
+	reflect-go.lo reflect/makefunc.lo regexp.lo runtime-go.lo \
+	sort.lo strconv.lo strings.lo sync.lo syscall.lo \
+	syscall/errno.lo syscall/signame.lo syscall/wait.lo testing.lo \
+	time-go.lo unicode.lo archive/tar.lo archive/zip.lo \
+	compress/bzip2.lo compress/flate.lo compress/gzip.lo \
+	compress/lzw.lo compress/zlib.lo container/heap.lo \
+	container/list.lo container/ring.lo crypto/aes.lo \
+	crypto/cipher.lo crypto/des.lo crypto/dsa.lo crypto/ecdsa.lo \
+	crypto/elliptic.lo crypto/hmac.lo crypto/md5.lo crypto/rand.lo \
+	crypto/rc4.lo crypto/rsa.lo crypto/sha1.lo crypto/sha256.lo \
+	crypto/sha512.lo crypto/subtle.lo crypto/tls.lo crypto/x509.lo \
 	crypto/x509/pkix.lo database/sql.lo database/sql/driver.lo \
 	debug/dwarf.lo debug/elf.lo debug/gosym.lo debug/macho.lo \
 	debug/pe.lo encoding/ascii85.lo encoding/asn1.lo \
 	encoding/base32.lo encoding/base64.lo encoding/binary.lo \
 	encoding/csv.lo encoding/gob.lo encoding/hex.lo \
-	encoding/json.lo encoding/pem.lo encoding/xml.lo \
-	exp/cookiejar.lo exp/ebnf.lo exp/html.lo exp/html/atom.lo \
-	exp/locale/collate.lo exp/locale/collate/build.lo exp/norm.lo \
-	exp/proxy.lo exp/ssa.lo exp/terminal.lo exp/utf8string.lo \
-	html/template.lo go/ast.lo go/build.lo go/doc.lo go/format.lo \
-	go/parser.lo go/printer.lo go/scanner.lo go/token.lo \
-	go/types.lo hash/adler32.lo hash/crc32.lo hash/crc64.lo \
-	hash/fnv.lo net/http/cgi.lo net/http/fcgi.lo \
-	net/http/httptest.lo net/http/httputil.lo net/http/pprof.lo \
-	image/color.lo image/draw.lo image/gif.lo image/jpeg.lo \
-	image/png.lo index/suffixarray.lo io/ioutil.lo log/syslog.lo \
+	encoding/json.lo encoding/pem.lo encoding/xml.lo exp/proxy.lo \
+	exp/terminal.lo html/template.lo go/ast.lo go/build.lo \
+	go/doc.lo go/format.lo go/parser.lo go/printer.lo \
+	go/scanner.lo go/token.lo hash/adler32.lo hash/crc32.lo \
+	hash/crc64.lo hash/fnv.lo net/http/cgi.lo \
+	net/http/cookiejar.lo net/http/fcgi.lo net/http/httptest.lo \
+	net/http/httputil.lo net/http/pprof.lo image/color.lo \
+	image/draw.lo image/gif.lo image/jpeg.lo image/png.lo \
+	index/suffixarray.lo io/ioutil.lo log/syslog.lo \
 	log/syslog/syslog_c.lo math/big.lo math/cmplx.lo math/rand.lo \
 	mime/multipart.lo net/http.lo net/mail.lo net/rpc.lo \
-	net/smtp.lo net/textproto.lo net/url.lo old/netchan.lo \
-	old/regexp.lo old/template.lo os/exec.lo $(am__DEPENDENCIES_1) \
-	os/signal.lo os/user.lo path/filepath.lo regexp/syntax.lo \
+	net/smtp.lo net/textproto.lo net/url.lo old/regexp.lo \
+	old/template.lo os/exec.lo $(am__DEPENDENCIES_1) os/signal.lo \
+	os/user.lo path/filepath.lo regexp/syntax.lo \
 	net/rpc/jsonrpc.lo runtime/debug.lo runtime/pprof.lo \
 	sync/atomic.lo sync/atomic_c.lo text/scanner.lo \
 	text/tabwriter.lo text/template.lo text/template/parse.lo \
@@ -183,16 +178,22 @@
 @LIBGO_IS_LINUX_TRUE@am__objects_1 = lock_futex.lo thread-linux.lo
 @HAVE_SYS_MMAN_H_FALSE@am__objects_2 = mem_posix_memalign.lo
 @HAVE_SYS_MMAN_H_TRUE@am__objects_2 = mem.lo
-@LIBGO_IS_RTEMS_TRUE@am__objects_3 = rtems-task-variable-add.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-none.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_4 = getncpu-solaris.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_4 = getncpu-irix.lo
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_4 =  \
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@am__objects_3 =  \
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@	netpoll_stub.lo
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_3 =  \
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	netpoll.lo \
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	netpoll_kqueue.lo
+@LIBGO_IS_LINUX_TRUE@am__objects_3 = netpoll.lo netpoll_epoll.lo
+@LIBGO_IS_RTEMS_TRUE@am__objects_4 = rtems-task-variable-add.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-none.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_5 = getncpu-solaris.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 = getncpu-irix.lo
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 =  \
 @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	getncpu-bsd.lo
-@LIBGO_IS_LINUX_TRUE@am__objects_4 = getncpu-linux.lo
-am__objects_5 = go-append.lo go-assert.lo go-assert-interface.lo \
+@LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
+am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
 	go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
 	go-callers.lo go-can-convert-interface.lo go-cgo.lo \
 	go-check-interface.lo go-construct-map.lo \
@@ -208,19 +209,19 @@
 	go-reflect-call.lo go-reflect-map.lo go-rune.lo \
 	go-runtime-error.lo go-setenv.lo go-signal.lo go-strcmp.lo \
 	go-string-to-byte-array.lo go-string-to-int-array.lo \
-	go-strplus.lo go-strslice.lo go-traceback.lo go-trampoline.lo \
+	go-strplus.lo go-strslice.lo go-traceback.lo \
 	go-type-complex.lo go-type-eface.lo go-type-error.lo \
 	go-type-float.lo go-type-identity.lo go-type-interface.lo \
 	go-type-string.lo go-typedesc-equal.lo go-typestring.lo \
 	go-unsafe-new.lo go-unsafe-newarray.lo go-unsafe-pointer.lo \
 	go-unwind.lo chan.lo cpuprof.lo env_posix.lo lfstack.lo \
 	$(am__objects_1) mcache.lo mcentral.lo $(am__objects_2) \
-	mfinal.lo mfixalloc.lo mgc0.lo mheap.lo msize.lo panic.lo \
-	parfor.lo print.lo proc.lo runtime.lo signal_unix.lo thread.lo \
-	yield.lo $(am__objects_3) iface.lo malloc.lo map.lo mprof.lo \
-	reflect.lo runtime1.lo sema.lo sigqueue.lo string.lo time.lo \
-	$(am__objects_4)
-am_libgo_la_OBJECTS = $(am__objects_5)
+	mfinal.lo mfixalloc.lo mgc0.lo mheap.lo msize.lo \
+	$(am__objects_3) panic.lo parfor.lo print.lo proc.lo \
+	runtime.lo signal_unix.lo thread.lo yield.lo $(am__objects_4) \
+	iface.lo malloc.lo map.lo mprof.lo reflect.lo runtime1.lo \
+	sema.lo sigqueue.lo string.lo time.lo $(am__objects_5)
+am_libgo_la_OBJECTS = $(am__objects_6)
 libgo_la_OBJECTS = $(am_libgo_la_OBJECTS)
 libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgo_la_LDFLAGS) \
@@ -257,9 +258,7 @@
 	$(toolexeclibgocrypto_DATA) $(toolexeclibgocryptox509_DATA) \
 	$(toolexeclibgodatabase_DATA) $(toolexeclibgodatabasesql_DATA) \
 	$(toolexeclibgodebug_DATA) $(toolexeclibgoencoding_DATA) \
-	$(toolexeclibgoexp_DATA) $(toolexeclibgoexphtml_DATA) \
-	$(toolexeclibgoexplocale_DATA) \
-	$(toolexeclibgoexplocalecollate_DATA) $(toolexeclibgogo_DATA) \
+	$(toolexeclibgoexp_DATA) $(toolexeclibgogo_DATA) \
 	$(toolexeclibgohash_DATA) $(toolexeclibgohtml_DATA) \
 	$(toolexeclibgoimage_DATA) $(toolexeclibgoindex_DATA) \
 	$(toolexeclibgoio_DATA) $(toolexeclibgolog_DATA) \
@@ -606,33 +605,10 @@
 	encoding/pem.gox \
 	encoding/xml.gox
 
-@LIBGO_IS_LINUX_FALSE@exp_inotify_gox = 
-
-# exp_inotify_gox = exp/inotify.gox
-@LIBGO_IS_LINUX_TRUE@exp_inotify_gox = 
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 toolexeclibgoexp_DATA = \
-	exp/cookiejar.gox \
-	exp/ebnf.gox \
-	exp/html.gox \
-	$(exp_inotify_gox) \
-	exp/norm.gox \
 	exp/proxy.gox \
-	exp/ssa.gox \
-	exp/terminal.gox \
-	exp/utf8string.gox
-
-toolexeclibgoexphtmldir = $(toolexeclibgoexpdir)/html
-toolexeclibgoexphtml_DATA = \
-	exp/html/atom.gox
-
-toolexeclibgoexplocaledir = $(toolexeclibgoexpdir)/locale
-toolexeclibgoexplocale_DATA = \
-	exp/locale/collate.gox
-
-toolexeclibgoexplocalecollatedir = $(toolexeclibgoexplocaledir)/collate
-toolexeclibgoexplocalecollate_DATA = \
-	exp/locale/collate/build.gox
+	exp/terminal.gox
 
 toolexeclibgogodir = $(toolexeclibgodir)/go
 toolexeclibgogo_DATA = \
@@ -643,8 +619,7 @@
 	go/parser.gox \
 	go/printer.gox \
 	go/scanner.gox \
-	go/token.gox \
-	go/types.gox
+	go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 toolexeclibgohash_DATA = \
@@ -699,6 +674,7 @@
 toolexeclibgonethttpdir = $(toolexeclibgonetdir)/http
 toolexeclibgonethttp_DATA = \
 	net/http/cgi.gox \
+	net/http/cookiejar.gox \
 	net/http/fcgi.gox \
 	net/http/httptest.gox \
 	net/http/httputil.gox \
@@ -710,7 +686,6 @@
 
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 toolexeclibgoold_DATA = \
-	old/netchan.gox \
 	old/regexp.gox \
 	old/template.gox
 
@@ -770,6 +745,9 @@
 @LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_getncpu_file = runtime/getncpu-irix.c
 @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_getncpu_file = runtime/getncpu-bsd.c
 @LIBGO_IS_LINUX_TRUE@runtime_getncpu_file = runtime/getncpu-linux.c
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@runtime_netpoll_files = runtime/netpoll_stub.c
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_netpoll_files = netpoll.c runtime/netpoll_kqueue.c
+@LIBGO_IS_LINUX_TRUE@runtime_netpoll_files = netpoll.c runtime/netpoll_epoll.c
 runtime_files = \
 	runtime/go-append.c \
 	runtime/go-assert.c \
@@ -822,7 +800,6 @@
 	runtime/go-strplus.c \
 	runtime/go-strslice.c \
 	runtime/go-traceback.c \
-	runtime/go-trampoline.c \
 	runtime/go-type-complex.c \
 	runtime/go-type-eface.c \
 	runtime/go-type-error.c \
@@ -849,6 +826,7 @@
 	runtime/mgc0.c \
 	runtime/mheap.c \
 	runtime/msize.c \
+	$(runtime_netpoll_files) \
 	runtime/panic.c \
 	runtime/parfor.c \
 	runtime/print.c \
@@ -871,7 +849,8 @@
 	$(runtime_getncpu_file)
 
 go_bufio_files = \
-	go/bufio/bufio.go
+	go/bufio/bufio.go \
+	go/bufio/scan.go
 
 go_bytes_files = \
 	go/bytes/buffer.go \
@@ -976,11 +955,11 @@
 # something better.
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_select.go
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_bsd.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_linux.go
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = 
 @LIBGO_IS_RTEMS_TRUE@go_net_fd_os_file = go/net/fd_select.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
 @LIBGO_IS_RTEMS_TRUE@go_net_newpollserver_file = go/net/newpollserver_rtems.go
 @LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_bsd.go
 @LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_netbsd.go
@@ -1014,6 +993,9 @@
 @LIBGO_IS_LINUX_TRUE@go_net_interface_file = go/net/interface_linux.go
 @LIBGO_IS_LINUX_FALSE@go_net_cloexec_file = go/net/sys_cloexec.go
 @LIBGO_IS_LINUX_TRUE@go_net_cloexec_file = go/net/sock_cloexec.go
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@go_net_poll_file = go/net/fd_poll_unix.go
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_poll_file = go/net/fd_poll_runtime.go
+@LIBGO_IS_LINUX_TRUE@go_net_poll_file = go/net/fd_poll_runtime.go
 go_net_files = \
 	go/net/cgo_unix.go \
 	$(go_net_cgo_file) \
@@ -1041,10 +1023,12 @@
 	go/net/net.go \
 	go/net/parse.go \
 	go/net/pipe.go \
+	$(go_net_poll_file) \
 	go/net/port.go \
 	go/net/port_unix.go \
 	$(go_net_sendfile_file) \
 	go/net/sock_posix.go \
+	go/net/sock_unix.go \
 	$(go_net_sock_file) \
 	go/net/sockopt_posix.go \
 	$(go_net_sockopt_file) \
@@ -1096,15 +1080,33 @@
 	$(go_os_stat_file) \
 	go/os/str.go \
 	$(go_os_sys_file) \
-	go/os/types.go
+	go/os/types.go \
+	go/os/types_notwin.go
 
 go_path_files = \
 	go/path/match.go \
 	go/path/path.go
 
+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_file = 
+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_file = \
+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@	go/reflect/makefuncgo_386.go
+
+@LIBGO_IS_X86_64_TRUE@go_reflect_makefunc_file = \
+@LIBGO_IS_X86_64_TRUE@	go/reflect/makefuncgo_amd64.go
+
+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_s_file = \
+@LIBGO_IS_386_FALSE@@LIBGO_IS_X86_64_FALSE@	go/reflect/makefunc_dummy.c
+
+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@go_reflect_makefunc_s_file = \
+@LIBGO_IS_386_TRUE@@LIBGO_IS_X86_64_FALSE@	go/reflect/makefunc_386.S
+
+@LIBGO_IS_X86_64_TRUE@go_reflect_makefunc_s_file = \
+@LIBGO_IS_X86_64_TRUE@	go/reflect/makefunc_amd64.S
+
 go_reflect_files = \
 	go/reflect/deepequal.go \
 	go/reflect/makefunc.go \
+	$(go_reflect_makefunc_file) \
 	go/reflect/type.go \
 	go/reflect/value.go
 
@@ -1168,6 +1170,7 @@
 	go/log/syslog/syslog_c.c
 
 go_testing_files = \
+	go/testing/allocs.go \
 	go/testing/benchmark.go \
 	go/testing/example.go \
 	go/testing/testing.go
@@ -1286,7 +1289,8 @@
 	go/crypto/rand/util.go
 
 go_crypto_rc4_files = \
-	go/crypto/rc4/rc4.go
+	go/crypto/rc4/rc4.go \
+	go/crypto/rc4/rc4_ref.go
 
 go_crypto_rsa_files = \
 	go/crypto/rsa/pkcs1v15.go \
@@ -1418,85 +1422,16 @@
 	go/encoding/xml/typeinfo.go \
 	go/encoding/xml/xml.go
 
-go_exp_cookiejar_files = \
-	go/exp/cookiejar/jar.go \
-	go/exp/cookiejar/storage.go
-
-go_exp_ebnf_files = \
-	go/exp/ebnf/ebnf.go \
-	go/exp/ebnf/parser.go
-
-go_exp_html_files = \
-	go/exp/html/const.go \
-	go/exp/html/doc.go \
-	go/exp/html/doctype.go \
-	go/exp/html/entity.go \
-	go/exp/html/escape.go \
-	go/exp/html/foreign.go \
-	go/exp/html/node.go \
-	go/exp/html/parse.go \
-	go/exp/html/render.go \
-	go/exp/html/token.go
-
-go_exp_html_atom_files = \
-	go/exp/html/atom/atom.go \
-	go/exp/html/atom/table.go
-
-go_exp_inotify_files = \
-	go/exp/inotify/inotify_linux.go
-
-go_exp_locale_collate_files = \
-	go/exp/locale/collate/colelem.go \
-	go/exp/locale/collate/collate.go \
-	go/exp/locale/collate/colltab.go \
-	go/exp/locale/collate/contract.go \
-	go/exp/locale/collate/export.go \
-	go/exp/locale/collate/sort.go \
-	go/exp/locale/collate/table.go \
-	go/exp/locale/collate/tables.go \
-	go/exp/locale/collate/trie.go
-
-go_exp_locale_collate_build_files = \
-	go/exp/locale/collate/build/builder.go \
-	go/exp/locale/collate/build/colelem.go \
-	go/exp/locale/collate/build/contract.go \
-	go/exp/locale/collate/build/order.go \
-	go/exp/locale/collate/build/table.go \
-	go/exp/locale/collate/build/trie.go
-
-go_exp_norm_files = \
-	go/exp/norm/composition.go \
-	go/exp/norm/forminfo.go \
-	go/exp/norm/input.go \
-	go/exp/norm/iter.go \
-	go/exp/norm/normalize.go \
-	go/exp/norm/readwriter.go \
-	go/exp/norm/tables.go \
-	go/exp/norm/trie.go
-
 go_exp_proxy_files = \
 	go/exp/proxy/direct.go \
 	go/exp/proxy/per_host.go \
 	go/exp/proxy/proxy.go \
 	go/exp/proxy/socks5.go
 
-go_exp_ssa_files = \
-	go/exp/ssa/blockopt.go \
-	go/exp/ssa/doc.go \
-	go/exp/ssa/func.go \
-	go/exp/ssa/sanity.go \
-	go/exp/ssa/ssa.go \
-	go/exp/ssa/literal.go \
-	go/exp/ssa/print.go \
-	go/exp/ssa/util.go
-
 go_exp_terminal_files = \
 	go/exp/terminal/terminal.go \
 	go/exp/terminal/util.go
 
-go_exp_utf8string_files = \
-	go/exp/utf8string/string.go
-
 go_go_ast_files = \
 	go/go/ast/ast.go \
 	go/go/ast/commentmap.go \
@@ -1542,25 +1477,6 @@
 	go/go/token/serialize.go \
 	go/go/token/token.go
 
-go_go_types_files = \
-	go/go/types/api.go \
-	go/go/types/builtins.go \
-	go/go/types/check.go \
-	go/go/types/const.go \
-	go/go/types/conversions.go \
-	go/go/types/errors.go \
-	go/go/types/exportdata.go \
-	go/go/types/expr.go \
-	go/go/types/gcimporter.go \
-	go/go/types/objects.go \
-	go/go/types/operand.go \
-	go/go/types/predicates.go \
-	go/go/types/resolve.go \
-	go/go/types/scope.go \
-	go/go/types/stmt.go \
-	go/go/types/types.go \
-	go/go/types/universe.go
-
 go_hash_adler32_files = \
 	go/hash/adler32/adler32.go
 
@@ -1693,6 +1609,10 @@
 	go/net/http/cgi/child.go \
 	go/net/http/cgi/host.go
 
+go_net_http_cookiejar_files = \
+	go/net/http/cookiejar/jar.go \
+	go/net/http/cookiejar/punycode.go
+
 go_net_http_fcgi_files = \
 	go/net/http/fcgi/child.go \
 	go/net/http/fcgi/fcgi.go
@@ -1710,11 +1630,6 @@
 	go/net/http/httputil/persist.go \
 	go/net/http/httputil/reverseproxy.go
 
-go_old_netchan_files = \
-	go/old/netchan/common.go \
-	go/old/netchan/export.go \
-	go/old/netchan/import.go
-
 go_old_regexp_files = \
 	go/old/regexp/regexp.go
 
@@ -1757,6 +1672,7 @@
 	go/net/rpc/jsonrpc/server.go
 
 go_runtime_debug_files = \
+	go/runtime/debug/garbage.go \
 	go/runtime/debug/stack.go
 
 go_runtime_pprof_files = \
@@ -1947,6 +1863,7 @@
 	os.lo \
 	path.lo \
 	reflect-go.lo \
+	reflect/makefunc.lo \
 	regexp.lo \
 	runtime-go.lo \
 	sort.lo \
@@ -2006,17 +1923,8 @@
 	encoding/json.lo \
 	encoding/pem.lo \
 	encoding/xml.lo \
-	exp/cookiejar.lo \
-	exp/ebnf.lo \
-	exp/html.lo \
-	exp/html/atom.lo \
-	exp/locale/collate.lo \
-	exp/locale/collate/build.lo \
-	exp/norm.lo \
 	exp/proxy.lo \
-	exp/ssa.lo \
 	exp/terminal.lo \
-	exp/utf8string.lo \
 	html/template.lo \
 	go/ast.lo \
 	go/build.lo \
@@ -2026,12 +1934,12 @@
 	go/printer.lo \
 	go/scanner.lo \
 	go/token.lo \
-	go/types.lo \
 	hash/adler32.lo \
 	hash/crc32.lo \
 	hash/crc64.lo \
 	hash/fnv.lo \
 	net/http/cgi.lo \
+	net/http/cookiejar.lo \
 	net/http/fcgi.lo \
 	net/http/httptest.lo \
 	net/http/httputil.lo \
@@ -2055,7 +1963,6 @@
 	net/smtp.lo \
 	net/textproto.lo \
 	net/url.lo \
-	old/netchan.lo \
 	old/regexp.lo \
 	old/template.lo \
 	os/exec.lo \
@@ -2186,10 +2093,6 @@
 	f=`echo $< | sed -e 's/.lo$$/.o/'`; \
 	$(OBJCOPY) -j .go_export $$f $@.tmp && mv -f $@.tmp $@
 
-@LIBGO_IS_LINUX_FALSE@exp_inotify_check = 
-
-# exp_inotify_check = exp/inotify/check
-@LIBGO_IS_LINUX_TRUE@exp_inotify_check = 
 TEST_PACKAGES = \
 	bufio/check \
 	bytes/check \
@@ -2260,17 +2163,8 @@
 	encoding/json/check \
 	encoding/pem/check \
 	encoding/xml/check \
-	exp/cookiejar/check \
-	exp/ebnf/check \
-	exp/html/check \
-	exp/html/atom/check \
-	$(exp_inotify_check) \
-	exp/locale/collate/check \
-	exp/locale/collate/build/check \
-	exp/norm/check \
 	exp/proxy/check \
 	exp/terminal/check \
-	exp/utf8string/check \
 	html/template/check \
 	go/ast/check \
 	$(go_build_check_omitted_since_it_calls_6g) \
@@ -2280,7 +2174,6 @@
 	go/printer/check \
 	go/scanner/check \
 	go/token/check \
-	go/types/check \
 	hash/adler32/check \
 	hash/crc32/check \
 	hash/crc64/check \
@@ -2298,6 +2191,7 @@
 	mime/multipart/check \
 	net/http/check \
 	net/http/cgi/check \
+	net/http/cookiejar/check \
 	net/http/fcgi/check \
 	net/http/httptest/check \
 	net/http/httputil/check \
@@ -2307,7 +2201,6 @@
 	net/textproto/check \
 	net/url/check \
 	net/rpc/jsonrpc/check \
-	old/netchan/check \
 	old/regexp/check \
 	old/template/check \
 	os/exec/check \
@@ -2519,7 +2412,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strplus.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strslice.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-traceback.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-trampoline.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-complex.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-eface.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-error.Plo@am__quote@
@@ -2549,6 +2441,10 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mheap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mprof.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_epoll.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_kqueue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_stub.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panic.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parfor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@
@@ -2959,13 +2855,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-traceback.lo `test -f 'runtime/go-traceback.c' || echo '$(srcdir)/'`runtime/go-traceback.c
 
-go-trampoline.lo: runtime/go-trampoline.c
-@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-trampoline.lo -MD -MP -MF $(DEPDIR)/go-trampoline.Tpo -c -o go-trampoline.lo `test -f 'runtime/go-trampoline.c' || echo '$(srcdir)/'`runtime/go-trampoline.c
-@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/go-trampoline.Tpo $(DEPDIR)/go-trampoline.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/go-trampoline.c' object='go-trampoline.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-trampoline.lo `test -f 'runtime/go-trampoline.c' || echo '$(srcdir)/'`runtime/go-trampoline.c
-
 go-type-complex.lo: runtime/go-type-complex.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-type-complex.lo -MD -MP -MF $(DEPDIR)/go-type-complex.Tpo -c -o go-type-complex.lo `test -f 'runtime/go-type-complex.c' || echo '$(srcdir)/'`runtime/go-type-complex.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/go-type-complex.Tpo $(DEPDIR)/go-type-complex.Plo
@@ -3176,6 +3065,27 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o msize.lo `test -f 'runtime/msize.c' || echo '$(srcdir)/'`runtime/msize.c
 
+netpoll_stub.lo: runtime/netpoll_stub.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_stub.lo -MD -MP -MF $(DEPDIR)/netpoll_stub.Tpo -c -o netpoll_stub.lo `test -f 'runtime/netpoll_stub.c' || echo '$(srcdir)/'`runtime/netpoll_stub.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_stub.Tpo $(DEPDIR)/netpoll_stub.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_stub.c' object='netpoll_stub.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_stub.lo `test -f 'runtime/netpoll_stub.c' || echo '$(srcdir)/'`runtime/netpoll_stub.c
+
+netpoll_kqueue.lo: runtime/netpoll_kqueue.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_kqueue.lo -MD -MP -MF $(DEPDIR)/netpoll_kqueue.Tpo -c -o netpoll_kqueue.lo `test -f 'runtime/netpoll_kqueue.c' || echo '$(srcdir)/'`runtime/netpoll_kqueue.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_kqueue.Tpo $(DEPDIR)/netpoll_kqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_kqueue.c' object='netpoll_kqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_kqueue.lo `test -f 'runtime/netpoll_kqueue.c' || echo '$(srcdir)/'`runtime/netpoll_kqueue.c
+
+netpoll_epoll.lo: runtime/netpoll_epoll.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_epoll.lo -MD -MP -MF $(DEPDIR)/netpoll_epoll.Tpo -c -o netpoll_epoll.lo `test -f 'runtime/netpoll_epoll.c' || echo '$(srcdir)/'`runtime/netpoll_epoll.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_epoll.Tpo $(DEPDIR)/netpoll_epoll.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_epoll.c' object='netpoll_epoll.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_epoll.lo `test -f 'runtime/netpoll_epoll.c' || echo '$(srcdir)/'`runtime/netpoll_epoll.c
+
 panic.lo: runtime/panic.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT panic.lo -MD -MP -MF $(DEPDIR)/panic.Tpo -c -o panic.lo `test -f 'runtime/panic.c' || echo '$(srcdir)/'`runtime/panic.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/panic.Tpo $(DEPDIR)/panic.Plo
@@ -3519,66 +3429,6 @@
 	test -n "$$files" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(toolexeclibgoexpdir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(toolexeclibgoexpdir)" && rm -f $$files
-install-toolexeclibgoexphtmlDATA: $(toolexeclibgoexphtml_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexphtmldir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexphtmldir)"
-	@list='$(toolexeclibgoexphtml_DATA)'; test -n "$(toolexeclibgoexphtmldir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexphtmldir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexphtmldir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexphtmlDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexphtml_DATA)'; test -n "$(toolexeclibgoexphtmldir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexphtmldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexphtmldir)" && rm -f $$files
-install-toolexeclibgoexplocaleDATA: $(toolexeclibgoexplocale_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexplocaledir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexplocaledir)"
-	@list='$(toolexeclibgoexplocale_DATA)'; test -n "$(toolexeclibgoexplocaledir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexplocaledir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexplocaledir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexplocaleDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexplocale_DATA)'; test -n "$(toolexeclibgoexplocaledir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexplocaledir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexplocaledir)" && rm -f $$files
-install-toolexeclibgoexplocalecollateDATA: $(toolexeclibgoexplocalecollate_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexplocalecollatedir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)"
-	@list='$(toolexeclibgoexplocalecollate_DATA)'; test -n "$(toolexeclibgoexplocalecollatedir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexplocalecollatedir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexplocalecollateDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexplocalecollate_DATA)'; test -n "$(toolexeclibgoexplocalecollatedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexplocalecollatedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" && rm -f $$files
 install-toolexeclibgogoDATA: $(toolexeclibgogo_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(toolexeclibgogodir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgogodir)"
@@ -4160,7 +4010,7 @@
 		config.h
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodatabasedir)" "$(DESTDIR)$(toolexeclibgodatabasesqldir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgoexphtmldir)" "$(DESTDIR)$(toolexeclibgoexplocaledir)" "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohtmldir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgologdir)" "$(DESTDIR)$(toolexeclibgomathdir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgonethttpdir)" "$(DESTDIR)$(toolexeclibgonetrpcdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgoregexpdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotestingdir)" "$(DESTDIR)$(toolexeclibgotextdir)" "$(DESTDIR)$(toolexeclibgotexttemplatedir)" "$(DESTDIR)$(toolexeclibgounicodedir)"; do \
+	for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodatabasedir)" "$(DESTDIR)$(toolexeclibgodatabasesqldir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohtmldir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgologdir)" "$(DESTDIR)$(toolexeclibgomathdir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgonethttpdir)" "$(DESTDIR)$(toolexeclibgonetrpcdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgoregexpdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotestingdir)" "$(DESTDIR)$(toolexeclibgotextdir)" "$(DESTDIR)$(toolexeclibgotexttemplatedir)" "$(DESTDIR)$(toolexeclibgounicodedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-recursive
@@ -4231,9 +4081,6 @@
 	install-toolexeclibgodatabasesqlDATA \
 	install-toolexeclibgodebugDATA \
 	install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
-	install-toolexeclibgoexphtmlDATA \
-	install-toolexeclibgoexplocaleDATA \
-	install-toolexeclibgoexplocalecollateDATA \
 	install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
 	install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
 	install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
@@ -4299,11 +4146,8 @@
 	uninstall-toolexeclibgodatabasesqlDATA \
 	uninstall-toolexeclibgodebugDATA \
 	uninstall-toolexeclibgoencodingDATA \
-	uninstall-toolexeclibgoexpDATA \
-	uninstall-toolexeclibgoexphtmlDATA \
-	uninstall-toolexeclibgoexplocaleDATA \
-	uninstall-toolexeclibgoexplocalecollateDATA \
-	uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
+	uninstall-toolexeclibgoexpDATA uninstall-toolexeclibgogoDATA \
+	uninstall-toolexeclibgohashDATA \
 	uninstall-toolexeclibgohtmlDATA \
 	uninstall-toolexeclibgoimageDATA \
 	uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
@@ -4348,9 +4192,6 @@
 	install-toolexeclibgodatabasesqlDATA \
 	install-toolexeclibgodebugDATA \
 	install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
-	install-toolexeclibgoexphtmlDATA \
-	install-toolexeclibgoexplocaleDATA \
-	install-toolexeclibgoexplocalecollateDATA \
 	install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
 	install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
 	install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
@@ -4380,11 +4221,8 @@
 	uninstall-toolexeclibgodatabasesqlDATA \
 	uninstall-toolexeclibgodebugDATA \
 	uninstall-toolexeclibgoencodingDATA \
-	uninstall-toolexeclibgoexpDATA \
-	uninstall-toolexeclibgoexphtmlDATA \
-	uninstall-toolexeclibgoexplocaleDATA \
-	uninstall-toolexeclibgoexplocalecollateDATA \
-	uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
+	uninstall-toolexeclibgoexpDATA uninstall-toolexeclibgogoDATA \
+	uninstall-toolexeclibgohashDATA \
 	uninstall-toolexeclibgohtmlDATA \
 	uninstall-toolexeclibgoimageDATA \
 	uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
@@ -4417,6 +4255,10 @@
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
 
+netpoll.c: $(srcdir)/runtime/netpoll.goc goc2c
+	./goc2c $< > $@.tmp
+	mv -f $@.tmp $@
+
 reflect.c: $(srcdir)/runtime/reflect.goc goc2c
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
@@ -4675,6 +4517,9 @@
 	$(BUILDPACKAGE)
 reflect/check: $(CHECK_DEPS)
 	@$(CHECK)
+reflect/makefunc.lo: $(go_reflect_makefunc_s_file)
+	@$(MKDIR_P) reflect
+	$(LTCOMPILE) -c -o $@ $<
 .PHONY: reflect/check
 
 @go_include@ regexp.lo.dep
@@ -5172,69 +5017,6 @@
 	@$(CHECK)
 .PHONY: encoding/xml/check
 
-@go_include@ exp/cookiejar.lo.dep
-exp/cookiejar.lo.dep: $(go_exp_cookiejar_files)
-	$(BUILDDEPS)
-exp/cookiejar.lo: $(go_exp_cookiejar_files)
-	$(BUILDPACKAGE)
-exp/cookiejar/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/cookiejar/check
-
-@go_include@ exp/ebnf.lo.dep
-exp/ebnf.lo.dep: $(go_exp_ebnf_files)
-	$(BUILDDEPS)
-exp/ebnf.lo: $(go_exp_ebnf_files)
-	$(BUILDPACKAGE)
-exp/ebnf/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ebnf/check
-
-@go_include@ exp/html.lo.dep
-exp/html.lo.dep: $(go_exp_html_files)
-	$(BUILDDEPS)
-exp/html.lo: $(go_exp_html_files)
-	$(BUILDPACKAGE)
-exp/html/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/check
-
-@go_include@ exp/html/atom.lo.dep
-exp/html/atom.lo.dep: $(go_exp_html_atom_files)
-	$(BUILDDEPS)
-exp/html/atom.lo: $(go_exp_html_atom_files)
-	$(BUILDPACKAGE)
-exp/html/atom/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/atom/check
-
-@go_include@ exp/locale/collate.lo.dep
-exp/locale/collate.lo.dep: $(go_exp_locale_collate_files)
-	$(BUILDDEPS)
-exp/locale/collate.lo: $(go_exp_locale_collate_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/check
-
-@go_include@ exp/locale/collate/build.lo.dep
-exp/locale/collate/build.lo.dep: $(go_exp_locale_collate_build_files)
-	$(BUILDDEPS)
-exp/locale/collate/build.lo: $(go_exp_locale_collate_build_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/build/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/build/check
-
-@go_include@ exp/norm.lo.dep
-exp/norm.lo.dep: $(go_exp_norm_files)
-	$(BUILDDEPS)
-exp/norm.lo: $(go_exp_norm_files)
-	$(BUILDPACKAGE)
-exp/norm/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/norm/check
-
 @go_include@ exp/proxy.lo.dep
 exp/proxy.lo.dep: $(go_exp_proxy_files)
 	$(BUILDDEPS)
@@ -5244,15 +5026,6 @@
 	@$(CHECK)
 .PHONY: exp/proxy/check
 
-@go_include@ exp/ssa.lo.dep
-exp/ssa.lo.dep: $(go_exp_ssa_files)
-	$(BUILDDEPS)
-exp/ssa.lo: $(go_exp_ssa_files)
-	$(BUILDPACKAGE)
-exp/ssa/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ssa/check
-
 @go_include@ exp/terminal.lo.dep
 exp/terminal.lo.dep: $(go_exp_terminal_files)
 	$(BUILDDEPS)
@@ -5262,24 +5035,6 @@
 	@$(CHECK)
 .PHONY: exp/terminal/check
 
-@go_include@ exp/utf8string.lo.dep
-exp/utf8string.lo.dep: $(go_exp_utf8string_files)
-	$(BUILDDEPS)
-exp/utf8string.lo: $(go_exp_utf8string_files)
-	$(BUILDPACKAGE)
-exp/utf8string/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/utf8string/check
-
-@go_include@ exp/inotify.lo.dep
-exp/inotify.lo.dep: $(go_exp_inotify_files)
-	$(BUILDDEPS)
-exp/inotify.lo: $(go_exp_inotify_files)
-	$(BUILDPACKAGE)
-exp/inotify/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/inotify/check
-
 @go_include@ html/template.lo.dep
 html/template.lo.dep: $(go_html_template_files)
 	$(BUILDDEPS)
@@ -5370,15 +5125,6 @@
 	@$(CHECK)
 .PHONY: go/token/check
 
-@go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
-	$(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
-	$(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: go/types/check
-
 @go_include@ hash/adler32.lo.dep
 hash/adler32.lo.dep: $(go_hash_adler32_files)
 	$(BUILDDEPS)
@@ -5589,6 +5335,15 @@
 	@$(CHECK)
 .PHONY: net/http/cgi/check
 
+@go_include@ net/http/cookiejar.lo.dep
+net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+	$(BUILDDEPS)
+net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+	$(BUILDPACKAGE)
+net/http/cookiejar/check: $(CHECK_DEPS)
+	@$(CHECK)
+.PHONY: net/http/cookiejar/check
+
 @go_include@ net/http/fcgi.lo.dep
 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
 	$(BUILDDEPS)
@@ -5634,15 +5389,6 @@
 	@$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
-@go_include@ old/netchan.lo.dep
-old/netchan.lo.dep: $(go_old_netchan_files)
-	$(BUILDDEPS)
-old/netchan.lo: $(go_old_netchan_files)
-	$(BUILDPACKAGE)
-old/netchan/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: old/netchan/check
-
 @go_include@ old/regexp.lo.dep
 old/regexp.lo.dep: $(go_old_regexp_files)
 	$(BUILDDEPS)
@@ -5983,30 +5729,10 @@
 encoding/xml.gox: encoding/xml.lo
 	$(BUILDGOX)
 
-exp/cookiejar.gox: exp/cookiejar.lo
-	$(BUILDGOX)
-exp/ebnf.gox: exp/ebnf.lo
-	$(BUILDGOX)
-exp/html.gox: exp/html.lo
-	$(BUILDGOX)
-exp/html/atom.gox: exp/html/atom.lo
-	$(BUILDGOX)
-exp/inotify.gox: exp/inotify.lo
-	$(BUILDGOX)
-exp/locale/collate.gox: exp/locale/collate.lo
-	$(BUILDGOX)
-exp/locale/collate/build.gox: exp/locale/collate/build.lo
-	$(BUILDGOX)
-exp/norm.gox: exp/norm.lo
-	$(BUILDGOX)
 exp/proxy.gox: exp/proxy.lo
 	$(BUILDGOX)
-exp/ssa.gox: exp/ssa.lo
-	$(BUILDGOX)
 exp/terminal.gox: exp/terminal.lo
 	$(BUILDGOX)
-exp/utf8string.gox: exp/utf8string.lo	
-	$(BUILDGOX)
 
 html/template.gox: html/template.lo
 	$(BUILDGOX)
@@ -6027,8 +5753,6 @@
 	$(BUILDGOX)
 go/token.gox: go/token.lo
 	$(BUILDGOX)
-go/types.gox: go/types.lo
-	$(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
 	$(BUILDGOX)
@@ -6084,6 +5808,8 @@
 
 net/http/cgi.gox: net/http/cgi.lo
 	$(BUILDGOX)
+net/http/cookiejar.gox: net/http/cookiejar.lo
+	$(BUILDGOX)
 net/http/fcgi.gox: net/http/fcgi.lo
 	$(BUILDGOX)
 net/http/httptest.gox: net/http/httptest.lo
@@ -6096,8 +5822,6 @@
 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
 	$(BUILDGOX)
 
-old/netchan.gox: old/netchan.lo
-	$(BUILDGOX)
 old/regexp.gox: old/regexp.lo
 	$(BUILDGOX)
 old/template.gox: old/template.lo
diff -Naur gcc-4.8.1.orig/libgo/configure gcc-4.8.1/libgo/configure
--- gcc-4.8.1.orig/libgo/configure	2013-02-11 19:03:04.000000000 +0000
+++ gcc-4.8.1/libgo/configure	2013-10-01 16:06:44.040554284 +0000
@@ -2496,7 +2496,7 @@
 ac_config_headers="$ac_config_headers config.h"
 
 
-libtool_VERSION=3:1:0
+libtool_VERSION=4:0:0
 
 
 # Default to --enable-multilib
diff -Naur gcc-4.8.1.orig/libgo/configure.ac gcc-4.8.1/libgo/configure.ac
--- gcc-4.8.1.orig/libgo/configure.ac	2013-02-11 19:03:04.000000000 +0000
+++ gcc-4.8.1/libgo/configure.ac	2013-10-01 16:06:44.040554284 +0000
@@ -11,7 +11,7 @@
 AC_CONFIG_SRCDIR(Makefile.am)
 AC_CONFIG_HEADER(config.h)
 
-libtool_VERSION=3:1:0
+libtool_VERSION=4:0:0
 AC_SUBST(libtool_VERSION)
 
 AM_ENABLE_MULTILIB(, ..)
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/common.go gcc-4.8.1/libgo/go/archive/tar/common.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/common.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/common.go	2013-10-01 16:06:44.040554284 +0000
@@ -9,12 +9,14 @@
 // References:
 //   http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5
 //   http://www.gnu.org/software/tar/manual/html_node/Standard.html
+//   http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html
 package tar
 
 import (
 	"errors"
 	"fmt"
 	"os"
+	"path"
 	"time"
 )
 
@@ -33,6 +35,8 @@
 	TypeCont          = '7'    // reserved
 	TypeXHeader       = 'x'    // extended header
 	TypeXGlobalHeader = 'g'    // global extended header
+	TypeGNULongName   = 'L'    // Next file has a long name
+	TypeGNULongLink   = 'K'    // Next file symlinks to a file w/ a long name
 )
 
 // A Header represents a single header in a tar archive.
@@ -54,55 +58,172 @@
 	ChangeTime time.Time // status change time
 }
 
+// File name constants from the tar spec.
+const (
+	fileNameSize       = 100 // Maximum number of bytes in a standard tar name.
+	fileNamePrefixSize = 155 // Maximum number of ustar extension bytes.
+)
+
+// FileInfo returns an os.FileInfo for the Header.
+func (h *Header) FileInfo() os.FileInfo {
+	return headerFileInfo{h}
+}
+
+// headerFileInfo implements os.FileInfo.
+type headerFileInfo struct {
+	h *Header
+}
+
+func (fi headerFileInfo) Size() int64        { return fi.h.Size }
+func (fi headerFileInfo) IsDir() bool        { return fi.Mode().IsDir() }
+func (fi headerFileInfo) ModTime() time.Time { return fi.h.ModTime }
+func (fi headerFileInfo) Sys() interface{}   { return fi.h }
+
+// Name returns the base name of the file.
+func (fi headerFileInfo) Name() string {
+	if fi.IsDir() {
+		return path.Clean(fi.h.Name)
+	}
+	return fi.h.Name
+}
+
+// Mode returns the permission and mode bits for the headerFileInfo.
+func (fi headerFileInfo) Mode() (mode os.FileMode) {
+	// Set file permission bits.
+	mode = os.FileMode(fi.h.Mode).Perm()
+
+	// Set setuid, setgid and sticky bits.
+	if fi.h.Mode&c_ISUID != 0 {
+		// setuid
+		mode |= os.ModeSetuid
+	}
+	if fi.h.Mode&c_ISGID != 0 {
+		// setgid
+		mode |= os.ModeSetgid
+	}
+	if fi.h.Mode&c_ISVTX != 0 {
+		// sticky
+		mode |= os.ModeSticky
+	}
+
+	// Set file mode bits.
+	// clear perm, setuid, setgid and sticky bits.
+	m := os.FileMode(fi.h.Mode) &^ 07777
+	if m == c_ISDIR {
+		// directory
+		mode |= os.ModeDir
+	}
+	if m == c_ISFIFO {
+		// named pipe (FIFO)
+		mode |= os.ModeNamedPipe
+	}
+	if m == c_ISLNK {
+		// symbolic link
+		mode |= os.ModeSymlink
+	}
+	if m == c_ISBLK {
+		// device file
+		mode |= os.ModeDevice
+	}
+	if m == c_ISCHR {
+		// Unix character device
+		mode |= os.ModeDevice
+		mode |= os.ModeCharDevice
+	}
+	if m == c_ISSOCK {
+		// Unix domain socket
+		mode |= os.ModeSocket
+	}
+
+	switch fi.h.Typeflag {
+	case TypeLink, TypeSymlink:
+		// hard link, symbolic link
+		mode |= os.ModeSymlink
+	case TypeChar:
+		// character device node
+		mode |= os.ModeDevice
+		mode |= os.ModeCharDevice
+	case TypeBlock:
+		// block device node
+		mode |= os.ModeDevice
+	case TypeDir:
+		// directory
+		mode |= os.ModeDir
+	case TypeFifo:
+		// fifo node
+		mode |= os.ModeNamedPipe
+	}
+
+	return mode
+}
+
 // sysStat, if non-nil, populates h from system-dependent fields of fi.
 var sysStat func(fi os.FileInfo, h *Header) error
 
 // Mode constants from the tar spec.
 const (
-	c_ISDIR  = 040000
-	c_ISFIFO = 010000
-	c_ISREG  = 0100000
-	c_ISLNK  = 0120000
-	c_ISBLK  = 060000
-	c_ISCHR  = 020000
-	c_ISSOCK = 0140000
+	c_ISUID  = 04000   // Set uid
+	c_ISGID  = 02000   // Set gid
+	c_ISVTX  = 01000   // Save text (sticky bit)
+	c_ISDIR  = 040000  // Directory
+	c_ISFIFO = 010000  // FIFO
+	c_ISREG  = 0100000 // Regular file
+	c_ISLNK  = 0120000 // Symbolic link
+	c_ISBLK  = 060000  // Block special file
+	c_ISCHR  = 020000  // Character special file
+	c_ISSOCK = 0140000 // Socket
 )
 
 // FileInfoHeader creates a partially-populated Header from fi.
 // If fi describes a symlink, FileInfoHeader records link as the link target.
+// If fi describes a directory, a slash is appended to the name.
 func FileInfoHeader(fi os.FileInfo, link string) (*Header, error) {
 	if fi == nil {
 		return nil, errors.New("tar: FileInfo is nil")
 	}
+	fm := fi.Mode()
 	h := &Header{
 		Name:    fi.Name(),
 		ModTime: fi.ModTime(),
-		Mode:    int64(fi.Mode().Perm()), // or'd with c_IS* constants later
+		Mode:    int64(fm.Perm()), // or'd with c_IS* constants later
 	}
 	switch {
-	case fi.Mode()&os.ModeType == 0:
+	case fm.IsRegular():
 		h.Mode |= c_ISREG
 		h.Typeflag = TypeReg
 		h.Size = fi.Size()
 	case fi.IsDir():
 		h.Typeflag = TypeDir
 		h.Mode |= c_ISDIR
-	case fi.Mode()&os.ModeSymlink != 0:
+		h.Name += "/"
+	case fm&os.ModeSymlink != 0:
 		h.Typeflag = TypeSymlink
 		h.Mode |= c_ISLNK
 		h.Linkname = link
-	case fi.Mode()&os.ModeDevice != 0:
-		if fi.Mode()&os.ModeCharDevice != 0 {
+	case fm&os.ModeDevice != 0:
+		if fm&os.ModeCharDevice != 0 {
 			h.Mode |= c_ISCHR
 			h.Typeflag = TypeChar
 		} else {
 			h.Mode |= c_ISBLK
 			h.Typeflag = TypeBlock
 		}
-	case fi.Mode()&os.ModeSocket != 0:
+	case fm&os.ModeNamedPipe != 0:
+		h.Typeflag = TypeFifo
+		h.Mode |= c_ISFIFO
+	case fm&os.ModeSocket != 0:
 		h.Mode |= c_ISSOCK
 	default:
-		return nil, fmt.Errorf("archive/tar: unknown file mode %v", fi.Mode())
+		return nil, fmt.Errorf("archive/tar: unknown file mode %v", fm)
+	}
+	if fm&os.ModeSetuid != 0 {
+		h.Mode |= c_ISUID
+	}
+	if fm&os.ModeSetgid != 0 {
+		h.Mode |= c_ISGID
+	}
+	if fm&os.ModeSticky != 0 {
+		h.Mode |= c_ISVTX
 	}
 	if sysStat != nil {
 		return h, sysStat(fi, h)
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader.go gcc-4.8.1/libgo/go/archive/tar/reader.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/reader.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/reader.go	2013-10-01 16:06:44.040554284 +0000
@@ -14,6 +14,7 @@
 	"io/ioutil"
 	"os"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -21,24 +22,12 @@
 	ErrHeader = errors.New("archive/tar: invalid tar header")
 )
 
+const maxNanoSecondIntSize = 9
+
 // A Reader provides sequential access to the contents of a tar archive.
 // A tar archive consists of a sequence of files.
 // The Next method advances to the next file in the archive (including the first),
 // and then it can be treated as an io.Reader to access the file's data.
-//
-// Example:
-//	tr := tar.NewReader(r)
-//	for {
-//		hdr, err := tr.Next()
-//		if err == io.EOF {
-//			// end of tar archive
-//			break
-//		}
-//		if err != nil {
-//			// handle error
-//		}
-//		io.Copy(data, tr)
-//	}
 type Reader struct {
 	r   io.Reader
 	err error
@@ -55,13 +44,183 @@
 	if tr.err == nil {
 		tr.skipUnread()
 	}
-	if tr.err == nil {
+	if tr.err != nil {
+		return hdr, tr.err
+	}
+	hdr = tr.readHeader()
+	if hdr == nil {
+		return hdr, tr.err
+	}
+	// Check for PAX/GNU header.
+	switch hdr.Typeflag {
+	case TypeXHeader:
+		//  PAX extended header
+		headers, err := parsePAX(tr)
+		if err != nil {
+			return nil, err
+		}
+		// We actually read the whole file,
+		// but this skips alignment padding
+		tr.skipUnread()
 		hdr = tr.readHeader()
+		mergePAX(hdr, headers)
+		return hdr, nil
+	case TypeGNULongName:
+		// We have a GNU long name header. Its contents are the real file name.
+		realname, err := ioutil.ReadAll(tr)
+		if err != nil {
+			return nil, err
+		}
+		hdr, err := tr.Next()
+		hdr.Name = cString(realname)
+		return hdr, err
+	case TypeGNULongLink:
+		// We have a GNU long link header.
+		realname, err := ioutil.ReadAll(tr)
+		if err != nil {
+			return nil, err
+		}
+		hdr, err := tr.Next()
+		hdr.Linkname = cString(realname)
+		return hdr, err
 	}
 	return hdr, tr.err
 }
 
-// Parse bytes as a NUL-terminated C-style string.
+// mergePAX merges well known headers according to PAX standard.
+// In general headers with the same name as those found
+// in the header struct overwrite those found in the header
+// struct with higher precision or longer values. Esp. useful
+// for name and linkname fields.
+func mergePAX(hdr *Header, headers map[string]string) error {
+	for k, v := range headers {
+		switch k {
+		case "path":
+			hdr.Name = v
+		case "linkpath":
+			hdr.Linkname = v
+		case "gname":
+			hdr.Gname = v
+		case "uname":
+			hdr.Uname = v
+		case "uid":
+			uid, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Uid = int(uid)
+		case "gid":
+			gid, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Gid = int(gid)
+		case "atime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.AccessTime = t
+		case "mtime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.ModTime = t
+		case "ctime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.ChangeTime = t
+		case "size":
+			size, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Size = int64(size)
+		}
+
+	}
+	return nil
+}
+
+// parsePAXTime takes a string of the form %d.%d as described in
+// the PAX specification.
+func parsePAXTime(t string) (time.Time, error) {
+	buf := []byte(t)
+	pos := bytes.IndexByte(buf, '.')
+	var seconds, nanoseconds int64
+	var err error
+	if pos == -1 {
+		seconds, err = strconv.ParseInt(t, 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+	} else {
+		seconds, err = strconv.ParseInt(string(buf[:pos]), 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+		nano_buf := string(buf[pos+1:])
+		// Pad as needed before converting to a decimal.
+		// For example .030 -> .030000000 -> 30000000 nanoseconds
+		if len(nano_buf) < maxNanoSecondIntSize {
+			// Right pad
+			nano_buf += strings.Repeat("0", maxNanoSecondIntSize-len(nano_buf))
+		} else if len(nano_buf) > maxNanoSecondIntSize {
+			// Right truncate
+			nano_buf = nano_buf[:maxNanoSecondIntSize]
+		}
+		nanoseconds, err = strconv.ParseInt(string(nano_buf), 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+	}
+	ts := time.Unix(seconds, nanoseconds)
+	return ts, nil
+}
+
+// parsePAX parses PAX headers.
+// If an extended header (type 'x') is invalid, ErrHeader is returned
+func parsePAX(r io.Reader) (map[string]string, error) {
+	buf, err := ioutil.ReadAll(r)
+	if err != nil {
+		return nil, err
+	}
+	headers := make(map[string]string)
+	// Each record is constructed as
+	//     "%d %s=%s\n", length, keyword, value
+	for len(buf) > 0 {
+		// or the header was empty to start with.
+		var sp int
+		// The size field ends at the first space.
+		sp = bytes.IndexByte(buf, ' ')
+		if sp == -1 {
+			return nil, ErrHeader
+		}
+		// Parse the first token as a decimal integer.
+		n, err := strconv.ParseInt(string(buf[:sp]), 10, 0)
+		if err != nil {
+			return nil, ErrHeader
+		}
+		// Extract everything between the decimal and the n -1 on the
+		// beginning to to eat the ' ', -1 on the end to skip the newline.
+		var record []byte
+		record, buf = buf[sp+1:n-1], buf[n:]
+		// The first equals is guaranteed to mark the end of the key.
+		// Everything else is value.
+		eq := bytes.IndexByte(record, '=')
+		if eq == -1 {
+			return nil, ErrHeader
+		}
+		key, value := record[:eq], record[eq+1:]
+		headers[string(key)] = string(value)
+	}
+	return headers, nil
+}
+
+// cString parses bytes as a NUL-terminated C-style string.
 // If a NUL byte is not found then the whole slice is returned as a string.
 func cString(b []byte) string {
 	n := 0
@@ -99,7 +258,7 @@
 	return int64(x)
 }
 
-// Skip any unread bytes in the existing file entry, as well as any alignment padding.
+// skipUnread skips any unread bytes in the existing file entry, as well as any alignment padding.
 func (tr *Reader) skipUnread() {
 	nr := tr.nb + tr.pad // number of bytes to skip
 	tr.nb, tr.pad = 0, 0
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go gcc-4.8.1/libgo/go/archive/tar/reader_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/reader_test.go	2013-10-01 16:06:44.040554284 +0000
@@ -10,6 +10,8 @@
 	"fmt"
 	"io"
 	"os"
+	"reflect"
+	"strings"
 	"testing"
 	"time"
 )
@@ -108,6 +110,38 @@
 			},
 		},
 	},
+	{
+		file: "testdata/pax.tar",
+		headers: []*Header{
+			{
+				Name:       "a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+				Mode:       0664,
+				Uid:        1000,
+				Gid:        1000,
+				Uname:      "shane",
+				Gname:      "shane",
+				Size:       7,
+				ModTime:    time.Unix(1350244992, 23960108),
+				ChangeTime: time.Unix(1350244992, 23960108),
+				AccessTime: time.Unix(1350244992, 23960108),
+				Typeflag:   TypeReg,
+			},
+			{
+				Name:       "a/b",
+				Mode:       0777,
+				Uid:        1000,
+				Gid:        1000,
+				Uname:      "shane",
+				Gname:      "shane",
+				Size:       0,
+				ModTime:    time.Unix(1350266320, 910238425),
+				ChangeTime: time.Unix(1350266320, 910238425),
+				AccessTime: time.Unix(1350266320, 910238425),
+				Typeflag:   TypeSymlink,
+				Linkname:   "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+			},
+		},
+	},
 }
 
 func TestReader(t *testing.T) {
@@ -133,7 +167,7 @@
 		}
 		hdr, err := tr.Next()
 		if err == io.EOF {
-			break
+			continue testLoop
 		}
 		if hdr != nil || err != nil {
 			t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, hdr, err)
@@ -260,3 +294,73 @@
 		t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n", len(test.headers), nread)
 	}
 }
+
+func TestParsePAXHeader(t *testing.T) {
+	paxTests := [][3]string{
+		{"a", "a=name", "10 a=name\n"}, // Test case involving multiple acceptable lengths
+		{"a", "a=name", "9 a=name\n"},  // Test case involving multiple acceptable length
+		{"mtime", "mtime=1350244992.023960108", "30 mtime=1350244992.023960108\n"}}
+	for _, test := range paxTests {
+		key, expected, raw := test[0], test[1], test[2]
+		reader := bytes.NewBuffer([]byte(raw))
+		headers, err := parsePAX(reader)
+		if err != nil {
+			t.Errorf("Couldn't parse correctly formatted headers: %v", err)
+			continue
+		}
+		if strings.EqualFold(headers[key], expected) {
+			t.Errorf("mtime header incorrectly parsed: got %s, wanted %s", headers[key], expected)
+			continue
+		}
+		trailer := make([]byte, 100)
+		n, err := reader.Read(trailer)
+		if err != io.EOF || n != 0 {
+			t.Error("Buffer wasn't consumed")
+		}
+	}
+	badHeader := bytes.NewBuffer([]byte("3 somelongkey="))
+	if _, err := parsePAX(badHeader); err != ErrHeader {
+		t.Fatal("Unexpected success when parsing bad header")
+	}
+}
+
+func TestParsePAXTime(t *testing.T) {
+	// Some valid PAX time values
+	timestamps := map[string]time.Time{
+		"1350244992.023960108":  time.Unix(1350244992, 23960108), // The commoon case
+		"1350244992.02396010":   time.Unix(1350244992, 23960100), // Lower precision value
+		"1350244992.0239601089": time.Unix(1350244992, 23960108), // Higher precision value
+		"1350244992":            time.Unix(1350244992, 0),        // Low precision value
+	}
+	for input, expected := range timestamps {
+		ts, err := parsePAXTime(input)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if !ts.Equal(expected) {
+			t.Fatalf("Time parsing failure %s %s", ts, expected)
+		}
+	}
+}
+
+func TestMergePAX(t *testing.T) {
+	hdr := new(Header)
+	// Test a string, integer, and time based value.
+	headers := map[string]string{
+		"path":  "a/b/c",
+		"uid":   "1000",
+		"mtime": "1350244992.023960108",
+	}
+	err := mergePAX(hdr, headers)
+	if err != nil {
+		t.Fatal(err)
+	}
+	want := &Header{
+		Name:    "a/b/c",
+		Uid:     1000,
+		ModTime: time.Unix(1350244992, 23960108),
+	}
+	if !reflect.DeepEqual(hdr, want) {
+		t.Errorf("incorrect merge: got %+v, want %+v", hdr, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go gcc-4.8.1/libgo/go/archive/tar/tar_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/tar_test.go	2013-10-01 16:06:44.040554284 +0000
@@ -14,13 +14,13 @@
 )
 
 func TestFileInfoHeader(t *testing.T) {
-	fi, err := os.Lstat("testdata/small.txt")
+	fi, err := os.Stat("testdata/small.txt")
 	if err != nil {
 		t.Fatal(err)
 	}
 	h, err := FileInfoHeader(fi, "")
 	if err != nil {
-		t.Fatalf("on small.txt: %v", err)
+		t.Fatalf("FileInfoHeader: %v", err)
 	}
 	if g, e := h.Name, "small.txt"; g != e {
 		t.Errorf("Name = %q; want %q", g, e)
@@ -36,6 +36,30 @@
 	}
 }
 
+func TestFileInfoHeaderDir(t *testing.T) {
+	fi, err := os.Stat("testdata")
+	if err != nil {
+		t.Fatal(err)
+	}
+	h, err := FileInfoHeader(fi, "")
+	if err != nil {
+		t.Fatalf("FileInfoHeader: %v", err)
+	}
+	if g, e := h.Name, "testdata/"; g != e {
+		t.Errorf("Name = %q; want %q", g, e)
+	}
+	// Ignoring c_ISGID for golang.org/issue/4867
+	if g, e := h.Mode&^c_ISGID, int64(fi.Mode().Perm())|c_ISDIR; g != e {
+		t.Errorf("Mode = %#o; want %#o", g, e)
+	}
+	if g, e := h.Size, int64(0); g != e {
+		t.Errorf("Size = %v; want %v", g, e)
+	}
+	if g, e := h.ModTime, fi.ModTime(); !g.Equal(e) {
+		t.Errorf("ModTime = %v; want %v", g, e)
+	}
+}
+
 func TestFileInfoHeaderSymlink(t *testing.T) {
 	h, err := FileInfoHeader(symlink{}, "some-target")
 	if err != nil {
@@ -98,3 +122,150 @@
 		t.Errorf("Data mismatch.\n got %q\nwant %q", rData, data)
 	}
 }
+
+type headerRoundTripTest struct {
+	h  *Header
+	fm os.FileMode
+}
+
+func TestHeaderRoundTrip(t *testing.T) {
+	golden := []headerRoundTripTest{
+		// regular file.
+		{
+			h: &Header{
+				Name:     "test.txt",
+				Mode:     0644 | c_ISREG,
+				Size:     12,
+				ModTime:  time.Unix(1360600916, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0644,
+		},
+		// hard link.
+		{
+			h: &Header{
+				Name:     "hard.txt",
+				Mode:     0644 | c_ISLNK,
+				Size:     0,
+				ModTime:  time.Unix(1360600916, 0),
+				Typeflag: TypeLink,
+			},
+			fm: 0644 | os.ModeSymlink,
+		},
+		// symbolic link.
+		{
+			h: &Header{
+				Name:     "link.txt",
+				Mode:     0777 | c_ISLNK,
+				Size:     0,
+				ModTime:  time.Unix(1360600852, 0),
+				Typeflag: TypeSymlink,
+			},
+			fm: 0777 | os.ModeSymlink,
+		},
+		// character device node.
+		{
+			h: &Header{
+				Name:     "dev/null",
+				Mode:     0666 | c_ISCHR,
+				Size:     0,
+				ModTime:  time.Unix(1360578951, 0),
+				Typeflag: TypeChar,
+			},
+			fm: 0666 | os.ModeDevice | os.ModeCharDevice,
+		},
+		// block device node.
+		{
+			h: &Header{
+				Name:     "dev/sda",
+				Mode:     0660 | c_ISBLK,
+				Size:     0,
+				ModTime:  time.Unix(1360578954, 0),
+				Typeflag: TypeBlock,
+			},
+			fm: 0660 | os.ModeDevice,
+		},
+		// directory.
+		{
+			h: &Header{
+				Name:     "dir/",
+				Mode:     0755 | c_ISDIR,
+				Size:     0,
+				ModTime:  time.Unix(1360601116, 0),
+				Typeflag: TypeDir,
+			},
+			fm: 0755 | os.ModeDir,
+		},
+		// fifo node.
+		{
+			h: &Header{
+				Name:     "dev/initctl",
+				Mode:     0600 | c_ISFIFO,
+				Size:     0,
+				ModTime:  time.Unix(1360578949, 0),
+				Typeflag: TypeFifo,
+			},
+			fm: 0600 | os.ModeNamedPipe,
+		},
+		// setuid.
+		{
+			h: &Header{
+				Name:     "bin/su",
+				Mode:     0755 | c_ISREG | c_ISUID,
+				Size:     23232,
+				ModTime:  time.Unix(1355405093, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0755 | os.ModeSetuid,
+		},
+		// setguid.
+		{
+			h: &Header{
+				Name:     "group.txt",
+				Mode:     0750 | c_ISREG | c_ISGID,
+				Size:     0,
+				ModTime:  time.Unix(1360602346, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0750 | os.ModeSetgid,
+		},
+		// sticky.
+		{
+			h: &Header{
+				Name:     "sticky.txt",
+				Mode:     0600 | c_ISREG | c_ISVTX,
+				Size:     7,
+				ModTime:  time.Unix(1360602540, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0600 | os.ModeSticky,
+		},
+	}
+
+	for i, g := range golden {
+		fi := g.h.FileInfo()
+		h2, err := FileInfoHeader(fi, "")
+		if err != nil {
+			t.Error(err)
+			continue
+		}
+		if got, want := h2.Name, g.h.Name; got != want {
+			t.Errorf("i=%d: Name: got %v, want %v", i, got, want)
+		}
+		if got, want := h2.Size, g.h.Size; got != want {
+			t.Errorf("i=%d: Size: got %v, want %v", i, got, want)
+		}
+		if got, want := h2.Mode, g.h.Mode; got != want {
+			t.Errorf("i=%d: Mode: got %o, want %o", i, got, want)
+		}
+		if got, want := fi.Mode(), g.fm; got != want {
+			t.Errorf("i=%d: fi.Mode: got %o, want %o", i, got, want)
+		}
+		if got, want := h2.ModTime, g.h.ModTime; got != want {
+			t.Errorf("i=%d: ModTime: got %v, want %v", i, got, want)
+		}
+		if sysh, ok := fi.Sys().(*Header); !ok || sysh != g.h {
+			t.Errorf("i=%d: Sys didn't return original *Header", i)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar
--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar	2013-10-01 16:06:44.040554284 +0000
@@ -0,0 +1,10 @@
+a/PaxHeaders.6887/12345678910111213141516171819202122232425262728293031323334353637383940414243444540000644 0001750 0001750 00000000446 12036615200 022461  x                                                                                                    ustar 00                                                                0000000 0000000                                                                                                                                                                        204 path=a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
+30 mtime=1350244992.023960108
+30 atime=1350244992.023960108
+30 ctime=1350244992.023960108
+                                                                                                                                                                                                                          a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525350000664 0001750 0001750 00000000007 12036615200 023454  0                                                                                                    ustar 00shane                           shane                           0000000 0000000                                                                                                                                                                        shaner
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         a/PaxHeaders.6887/b                                                                                 0000644 0001750 0001750 00000000450 12036666720 012440  x                                                                                                    ustar 00                                                                0000000 0000000                                                                                                                                                                        206 linkpath=123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
+30 mtime=1350266320.910238425
+30 atime=1350266320.910238425
+30 ctime=1350266320.910238425
+                                                                                                                                                                                                                        a/b                                                                                                 0000777 0001750 0001750 00000000000 12036666720 024004  21234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545ustar 00shane                           shane                           0000000 0000000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar
--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar	2013-10-01 16:06:44.040554284 +0000
@@ -0,0 +1,2 @@
+file.txt                                                                                            0000644 0000765 0000024 00000000006 12104402656 045134  0                                                                                                    ustar 00shane                           staff                           0000000 0000000 longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname                                 hello
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer.go gcc-4.8.1/libgo/go/archive/tar/writer.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/writer.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/writer.go	2013-10-01 16:06:44.040554284 +0000
@@ -8,10 +8,14 @@
 // - catch more errors (no first header, etc.)
 
 import (
+	"bytes"
 	"errors"
 	"fmt"
 	"io"
+	"os"
+	"path"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -19,23 +23,13 @@
 	ErrWriteTooLong    = errors.New("archive/tar: write too long")
 	ErrFieldTooLong    = errors.New("archive/tar: header field too long")
 	ErrWriteAfterClose = errors.New("archive/tar: write after close")
+	errNameTooLong     = errors.New("archive/tar: name too long")
 )
 
 // A Writer provides sequential writing of a tar archive in POSIX.1 format.
 // A tar archive consists of a sequence of files.
 // Call WriteHeader to begin a new file, and then call Write to supply that file's data,
 // writing at most hdr.Size bytes in total.
-//
-// Example:
-//	tw := tar.NewWriter(w)
-//	hdr := new(tar.Header)
-//	hdr.Size = length of data in bytes
-//	// populate other hdr fields as desired
-//	if err := tw.WriteHeader(hdr); err != nil {
-//		// handle error
-//	}
-//	io.Copy(tw, data)
-//	tw.Close()
 type Writer struct {
 	w          io.Writer
 	err        error
@@ -130,15 +124,31 @@
 	if tw.err != nil {
 		return tw.err
 	}
-
+	// Decide whether or not to use PAX extensions
+	// TODO(shanemhansen): we might want to use PAX headers for
+	// subsecond time resolution, but for now let's just capture
+	// the long name/long symlink use case.
+	suffix := hdr.Name
+	prefix := ""
+	if len(hdr.Name) > fileNameSize || len(hdr.Linkname) > fileNameSize {
+		var err error
+		prefix, suffix, err = tw.splitUSTARLongName(hdr.Name)
+		// Either we were unable to pack the long name into ustar format
+		// or the link name is too long; use PAX headers.
+		if err == errNameTooLong || len(hdr.Linkname) > fileNameSize {
+			if err := tw.writePAXHeader(hdr); err != nil {
+				return err
+			}
+		} else if err != nil {
+			return err
+		}
+	}
 	tw.nb = int64(hdr.Size)
 	tw.pad = -tw.nb & (blockSize - 1) // blockSize is a power of two
 
 	header := make([]byte, blockSize)
 	s := slicer(header)
-
-	// TODO(dsymonds): handle names longer than 100 chars
-	copy(s.next(100), []byte(hdr.Name))
+	tw.cString(s.next(fileNameSize), suffix)
 
 	// Handle out of range ModTime carefully.
 	var modTime int64
@@ -159,11 +169,15 @@
 	tw.cString(s.next(32), hdr.Gname)      // 297:329
 	tw.numeric(s.next(8), hdr.Devmajor)    // 329:337
 	tw.numeric(s.next(8), hdr.Devminor)    // 337:345
-
+	tw.cString(s.next(155), prefix)        // 345:500
 	// Use the GNU magic instead of POSIX magic if we used any GNU extensions.
 	if tw.usedBinary {
 		copy(header[257:265], []byte("ustar  \x00"))
 	}
+	// Use the ustar magic if we used ustar long names.
+	if len(prefix) > 0 {
+		copy(header[257:265], []byte("ustar\000"))
+	}
 
 	// The chksum field is terminated by a NUL and a space.
 	// This is different from the other octal fields.
@@ -181,6 +195,78 @@
 	return tw.err
 }
 
+// writeUSTARLongName splits a USTAR long name hdr.Name.
+// name must be < 256 characters. errNameTooLong is returned
+// if hdr.Name can't be split. The splitting heuristic
+// is compatible with gnu tar.
+func (tw *Writer) splitUSTARLongName(name string) (prefix, suffix string, err error) {
+	length := len(name)
+	if length > fileNamePrefixSize+1 {
+		length = fileNamePrefixSize + 1
+	} else if name[length-1] == '/' {
+		length--
+	}
+	i := strings.LastIndex(name[:length], "/")
+	nlen := length - i - 1
+	if i <= 0 || nlen > fileNameSize || nlen == 0 {
+		err = errNameTooLong
+		return
+	}
+	prefix, suffix = name[:i], name[i+1:]
+	return
+}
+
+// writePaxHeader writes an extended pax header to the
+// archive.
+func (tw *Writer) writePAXHeader(hdr *Header) error {
+	// Prepare extended header
+	ext := new(Header)
+	ext.Typeflag = TypeXHeader
+	// Setting ModTime is required for reader parsing to
+	// succeed, and seems harmless enough.
+	ext.ModTime = hdr.ModTime
+	// The spec asks that we namespace our pseudo files
+	// with the current pid.
+	pid := os.Getpid()
+	dir, file := path.Split(hdr.Name)
+	ext.Name = path.Join(dir,
+		fmt.Sprintf("PaxHeaders.%d", pid), file)[0:100]
+	// Construct the body
+	var buf bytes.Buffer
+	if len(hdr.Name) > fileNameSize {
+		fmt.Fprint(&buf, paxHeader("path="+hdr.Name))
+	}
+	if len(hdr.Linkname) > fileNameSize {
+		fmt.Fprint(&buf, paxHeader("linkpath="+hdr.Linkname))
+	}
+	ext.Size = int64(len(buf.Bytes()))
+	if err := tw.WriteHeader(ext); err != nil {
+		return err
+	}
+	if _, err := tw.Write(buf.Bytes()); err != nil {
+		return err
+	}
+	if err := tw.Flush(); err != nil {
+		return err
+	}
+	return nil
+}
+
+// paxHeader formats a single pax record, prefixing it with the appropriate length
+func paxHeader(msg string) string {
+	const padding = 2 // Extra padding for space and newline
+	size := len(msg) + padding
+	size += len(strconv.Itoa(size))
+	record := fmt.Sprintf("%d %s\n", size, msg)
+	if len(record) != size {
+		// Final adjustment if adding size increased
+		// the number of digits in size
+		size = len(record)
+		record = fmt.Sprintf("%d %s\n", size, msg)
+	}
+	return record
+}
+
 // Write writes to the current entry in the tar archive.
 // Write returns the error ErrWriteTooLong if more than
 // hdr.Size bytes are written after WriteHeader.
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go gcc-4.8.1/libgo/go/archive/tar/writer_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/tar/writer_test.go	2013-10-01 16:06:44.040554284 +0000
@@ -9,6 +9,7 @@
 	"fmt"
 	"io"
 	"io/ioutil"
+	"os"
 	"strings"
 	"testing"
 	"testing/iotest"
@@ -101,6 +102,27 @@
 			},
 		},
 	},
+	// This file was produced using gnu tar 1.17
+	// gnutar  -b 4 --format=ustar (longname/)*15 + file.txt
+	{
+		file: "testdata/ustar.tar",
+		entries: []*writerTestEntry{
+			{
+				header: &Header{
+					Name:     strings.Repeat("longname/", 15) + "file.txt",
+					Mode:     0644,
+					Uid:      0765,
+					Gid:      024,
+					Size:     06,
+					ModTime:  time.Unix(1360135598, 0),
+					Typeflag: '0',
+					Uname:    "shane",
+					Gname:    "staff",
+				},
+				contents: "hello\n",
+			},
+		},
+	},
 }
 
 // Render byte array in a two-character hexadecimal string, spaced for easy visual inspection.
@@ -180,3 +202,61 @@
 		}
 	}
 }
+
+func TestPax(t *testing.T) {
+	// Create an archive with a large name
+	fileinfo, err := os.Stat("testdata/small.txt")
+	if err != nil {
+		t.Fatal(err)
+	}
+	hdr, err := FileInfoHeader(fileinfo, "")
+	if err != nil {
+		t.Fatalf("os.Stat: %v", err)
+	}
+	// Force a PAX long name to be written
+	longName := strings.Repeat("ab", 100)
+	contents := strings.Repeat(" ", int(hdr.Size))
+	hdr.Name = longName
+	var buf bytes.Buffer
+	writer := NewWriter(&buf)
+	if err := writer.WriteHeader(hdr); err != nil {
+		t.Fatal(err)
+	}
+	if _, err = writer.Write([]byte(contents)); err != nil {
+		t.Fatal(err)
+	}
+	if err := writer.Close(); err != nil {
+		t.Fatal(err)
+	}
+	// Simple test to make sure PAX extensions are in effect
+	if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+		t.Fatal("Expected at least one PAX header to be written.")
+	}
+	// Test that we can get a long name back out of the archive.
+	reader := NewReader(&buf)
+	hdr, err = reader.Next()
+	if err != nil {
+		t.Fatal(err)
+	}
+	if hdr.Name != longName {
+		t.Fatal("Couldn't recover long file name")
+	}
+}
+
+func TestPAXHeader(t *testing.T) {
+	medName := strings.Repeat("CD", 50)
+	longName := strings.Repeat("AB", 100)
+	paxTests := [][2]string{
+		{"name=/etc/hosts", "19 name=/etc/hosts\n"},
+		{"a=b", "6 a=b\n"},          // Single digit length
+		{"a=names", "11 a=names\n"}, // Test case involving carries
+		{"name=" + longName, fmt.Sprintf("210 name=%s\n", longName)},
+		{"name=" + medName, fmt.Sprintf("110 name=%s\n", medName)}}
+
+	for _, test := range paxTests {
+		key, expected := test[0], test[1]
+		if result := paxHeader(key); result != expected {
+			t.Fatalf("paxHeader: got %s, expected %s", result, expected)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader.go gcc-4.8.1/libgo/go/archive/zip/reader.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/reader.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/zip/reader.go	2013-10-01 16:06:44.040554284 +0000
@@ -353,6 +353,11 @@
 	if err != nil {
 		return nil, err
 	}
+
+	// Make sure directoryOffset points to somewhere in our file.
+	if o := int64(d.directoryOffset); o < 0 || o >= size {
+		return nil, ErrFormat
+	}
 	return d, nil
 }
 
@@ -407,7 +412,7 @@
 		if b[i] == 'P' && b[i+1] == 'K' && b[i+2] == 0x05 && b[i+3] == 0x06 {
 			// n is length of comment
 			n := int(b[i+directoryEndLen-2]) | int(b[i+directoryEndLen-1])<<8
-			if n+directoryEndLen+i == len(b) {
+			if n+directoryEndLen+i <= len(b) {
 				return i
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go gcc-4.8.1/libgo/go/archive/zip/reader_test.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/zip/reader_test.go	2013-10-01 16:06:44.040554284 +0000
@@ -64,6 +64,24 @@
 		},
 	},
 	{
+		Name:    "test-trailing-junk.zip",
+		Comment: "This is a zipfile comment.",
+		File: []ZipTestFile{
+			{
+				Name:    "test.txt",
+				Content: []byte("This is a test text file.\n"),
+				Mtime:   "09-05-10 12:12:02",
+				Mode:    0644,
+			},
+			{
+				Name:  "gophercolor16x16.png",
+				File:  "gophercolor16x16.png",
+				Mtime: "09-05-10 15:52:58",
+				Mode:  0644,
+			},
+		},
+	},
+	{
 		Name:   "r.zip",
 		Source: returnRecursiveZip,
 		File: []ZipTestFile{
@@ -262,7 +280,7 @@
 		}
 	}
 	if err != zt.Error {
-		t.Errorf("error=%v, want %v", err, zt.Error)
+		t.Errorf("%s: error=%v, want %v", zt.Name, err, zt.Error)
 		return
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/struct.go gcc-4.8.1/libgo/go/archive/zip/struct.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/struct.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/zip/struct.go	2013-10-01 16:06:44.040554284 +0000
@@ -64,8 +64,15 @@
 	zip64ExtraId = 0x0001 // zip64 Extended Information Extra Field
 )
 
+// FileHeader describes a file within a zip file.
+// See the zip spec for details.
 type FileHeader struct {
-	Name               string
+	// Name is the name of the file.
+	// It must be a relative path: it must not start with a drive
+	// letter (e.g. C:) or leading slash, and only forward slashes
+	// are allowed.
+	Name string
+
 	CreatorVersion     uint16
 	ReaderVersion      uint16
 	Flags              uint16
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip
--- gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip	2013-10-01 16:06:44.040554284 +0000
@@ -0,0 +1,10 @@
+PK    a%=À×íÃ        test.txtUT	 qü‚Lvü‚Lux õ     ÉÈ,V ¢D…’Ôâ QQ¢–™“ªÇ PK
+     ~%=þ1ÕT      gophercolor16x16.pngUT	 :0ƒL;0ƒLux õ     ‰PNG
+
+   IHDR         ísO/   gAMA  ÖØÔOX2   tEXtSoftware Adobe ImageReadyqÉe<  £IDATxÚt“_HSQÀ¿{ÏîÆu[VÚ*%mlQVô_#·""°zˆAK
+£‚bE/¡ƒzI*†5ÿd˜¢‘.œ/S’Âé¶†(Ú]¶í^uÙŸÓ9›­òƒïž{¿?¿ó}ß9—ÁC¦Øív°Ùl—Ï:z#¯ÐX”äeßÄ—e%‡œVWáv»½™ñŠÌ––Vôº½Íáh¨½d4à¸åÜo°Ci‘¤ólþ&–`h555^ŠÀðà@gó§Åë@ü:æ³U âÄŽƒ‚ÁpûQWÝVÃ¶ÆX,J6kI(€e™cºuwoVaY
+aÏè'|äÐ^|¢l'~ÓT'\Ï°oÈ‰/ZN
+ëó6°f³9™G5Ù‚&‡/+Ño1í0ÁÈ‡V ¤„ÊŠÝŒªA£ÕB<‘€pdÎWV”3ó×74eµÀ0GÞK¯^8ÓëŠ%aq	Á´_ÝÚP©8`H€JÉ£sm=óR¨ŽØP”èØÛ÷CA9L°¤ïxŠ7æ&“R8	£’§QÂ‚,õý©€Íœè\P¾óÄÙ3É«”)*ù€wJaF‚h,ºü\ê
+ü@DzÕå²ù¦E@(åŠÆâ°o{1˜v&ÃWàêÕ ‹Ç]îÑñ%ZzzP,Ki [@Dç‚,û¯K¡@ðÃ ÖM4)Iúî›DVæ¯djcC0‚‘Z³æ415§'¤%gn««W{{yºG!²r
+ Gû¸µï×ÇQáåÁûg³*(//OW ŠbB’¤Ú§íýM‡÷äÎÎLÃ¸0x70Ü‹¯ººzÒjµfÿL‚ dV»Hô¹Ë3aûæð<ÿ »»û3±…ôz=½tY­ý` ¨‹çbê    IEND®B`‚PK    a%=À×íÃ               ¤    test.txtUT qü‚Lux õ     PK
+     ~%=þ1ÕT              ¤[   gophercolor16x16.pngUT :0ƒLux õ     PK      ¨   º   This is a zipfile comment.some nonsense
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/writer.go gcc-4.8.1/libgo/go/archive/zip/writer.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/writer.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/archive/zip/writer.go	2013-10-01 16:06:44.040554284 +0000
@@ -163,6 +163,9 @@
 
 // Create adds a file to the zip file using the provided name.
 // It returns a Writer to which the file contents should be written.
+// The name must be a relative path: it must not start with a drive
+// letter (e.g. C:) or leading slash, and only forward slashes are
+// allowed.
 // The file's contents must be written to the io.Writer before the next
 // call to Create, CreateHeader, or Close.
 func (w *Writer) Create(name string) (io.Writer, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio.go gcc-4.8.1/libgo/go/bufio/bufio.go
--- gcc-4.8.1.orig/libgo/go/bufio/bufio.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/bufio.go	2013-10-01 16:06:44.040554284 +0000
@@ -274,11 +274,10 @@
 			return b.buf, ErrBufferFull
 		}
 	}
-	panic("not reached")
 }
 
 // ReadLine is a low-level line-reading primitive. Most callers should use
-// ReadBytes('\n') or ReadString('\n') instead.
+// ReadBytes('\n') or ReadString('\n') instead or use a Scanner.
 //
 // ReadLine tries to return a single line, not including the end-of-line bytes.
 // If the line was too long for the buffer then isPrefix is set and the
@@ -331,6 +330,7 @@
 // it returns the data read before the error and the error itself (often io.EOF).
 // ReadBytes returns err != nil if and only if the returned data does not end in
 // delim.
+// For simple uses, a Scanner may be more convenient.
 func (b *Reader) ReadBytes(delim byte) (line []byte, err error) {
 	// Use ReadSlice to look for array,
 	// accumulating full buffers.
@@ -378,6 +378,7 @@
 // it returns the data read before the error and the error itself (often io.EOF).
 // ReadString returns err != nil if and only if the returned data does not end in
 // delim.
+// For simple uses, a Scanner may be more convenient.
 func (b *Reader) ReadString(delim byte) (line string, err error) {
 	bytes, err := b.ReadBytes(delim)
 	return string(bytes), err
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go gcc-4.8.1/libgo/go/bufio/bufio_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/bufio_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -7,6 +7,7 @@
 import (
 	. "bufio"
 	"bytes"
+	"errors"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -434,9 +435,12 @@
 			t.Errorf("Write hello to %v: %v", w, e)
 			continue
 		}
-		e = buf.Flush()
-		if e != w.expect {
-			t.Errorf("Flush %v: got %v, wanted %v", w, e, w.expect)
+		// Two flushes, to verify the error is sticky.
+		for i := 0; i < 2; i++ {
+			e = buf.Flush()
+			if e != w.expect {
+				t.Errorf("Flush %d/2 %v: got %v, wanted %v", i+1, w, e, w.expect)
+			}
 		}
 	}
 }
@@ -953,7 +957,7 @@
 			t.Fatal("read did not panic")
 		case error:
 			if !strings.Contains(err.Error(), "reader returned negative count from Read") {
-				t.Fatal("wrong panic: %v", err)
+				t.Fatalf("wrong panic: %v", err)
 			}
 		default:
 			t.Fatalf("unexpected panic value: %T(%v)", err, err)
@@ -962,6 +966,43 @@
 	b.Read(make([]byte, 100))
 }
 
+var errFake = errors.New("fake error")
+
+type errorThenGoodReader struct {
+	didErr bool
+	nread  int
+}
+
+func (r *errorThenGoodReader) Read(p []byte) (int, error) {
+	r.nread++
+	if !r.didErr {
+		r.didErr = true
+		return 0, errFake
+	}
+	return len(p), nil
+}
+
+func TestReaderClearError(t *testing.T) {
+	r := &errorThenGoodReader{}
+	b := NewReader(r)
+	buf := make([]byte, 1)
+	if _, err := b.Read(nil); err != nil {
+		t.Fatalf("1st nil Read = %v; want nil", err)
+	}
+	if _, err := b.Read(buf); err != errFake {
+		t.Fatalf("1st Read = %v; want errFake", err)
+	}
+	if _, err := b.Read(nil); err != nil {
+		t.Fatalf("2nd nil Read = %v; want nil", err)
+	}
+	if _, err := b.Read(buf); err != nil {
+		t.Fatalf("3rd Read with buffer = %v; want nil", err)
+	}
+	if r.nread != 2 {
+		t.Errorf("num reads = %d; want 2", r.nread)
+	}
+}
+
 // An onlyReader only implements io.Reader, no matter what other methods the underlying implementation may have.
 type onlyReader struct {
 	r io.Reader
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/example_test.go gcc-4.8.1/libgo/go/bufio/example_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/example_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/example_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -0,0 +1,74 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio_test
+
+import (
+	"bufio"
+	"fmt"
+	"os"
+	"strconv"
+	"strings"
+)
+
+// The simplest use of a Scanner, to read standard input as a set of lines.
+func ExampleScanner_lines() {
+	scanner := bufio.NewScanner(os.Stdin)
+	for scanner.Scan() {
+		fmt.Println(scanner.Text()) // Println will add back the final '\n'
+	}
+	if err := scanner.Err(); err != nil {
+		fmt.Fprintln(os.Stderr, "reading standard input:", err)
+	}
+}
+
+// Use a Scanner to implement a simple word-count utility by scanning the
+// input as a sequence of space-delimited tokens.
+func ExampleScanner_words() {
+	// An artificial input source.
+	const input = "Now is the winter of our discontent,\nMade glorious summer by this sun of York.\n"
+	scanner := bufio.NewScanner(strings.NewReader(input))
+	// Set the split function for the scanning operation.
+	scanner.Split(bufio.ScanWords)
+	// Count the words.
+	count := 0
+	for scanner.Scan() {
+		count++
+	}
+	if err := scanner.Err(); err != nil {
+		fmt.Fprintln(os.Stderr, "reading input:", err)
+	}
+	fmt.Printf("%d\n", count)
+	// Output: 15
+}
+
+// Use a Scanner with a custom split function (built by wrapping ScanWords) to validate
+// 32-bit decimal input.
+func ExampleScanner_custom() {
+	// An artificial input source.
+	const input = "1234 5678 1234567901234567890"
+	scanner := bufio.NewScanner(strings.NewReader(input))
+	// Create a custom split function by wrapping the existing ScanWords function.
+	split := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		advance, token, err = bufio.ScanWords(data, atEOF)
+		if err == nil && token != nil {
+			_, err = strconv.ParseInt(string(token), 10, 32)
+		}
+		return
+	}
+	// Set the split function for the scanning operation.
+	scanner.Split(split)
+	// Validate the input
+	for scanner.Scan() {
+		fmt.Printf("%s\n", scanner.Text())
+	}
+
+	if err := scanner.Err(); err != nil {
+		fmt.Printf("Invalid input: %s", err)
+	}
+	// Output:
+	// 1234
+	// 5678
+	// Invalid input: strconv.ParseInt: parsing "1234567901234567890": value out of range
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/export_test.go gcc-4.8.1/libgo/go/bufio/export_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/export_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/export_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -0,0 +1,27 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio
+
+// Exported for testing only.
+import (
+	"unicode/utf8"
+)
+
+var IsSpace = isSpace
+
+func (s *Scanner) MaxTokenSize(n int) {
+	if n < utf8.UTFMax || n > 1e9 {
+		panic("bad max token size")
+	}
+	if n < len(s.buf) {
+		s.buf = make([]byte, n)
+	}
+	s.maxTokenSize = n
+}
+
+// ErrOrEOF is like Err, but returns EOF. Used to test a corner case.
+func (s *Scanner) ErrOrEOF() error {
+	return s.err
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan.go gcc-4.8.1/libgo/go/bufio/scan.go
--- gcc-4.8.1.orig/libgo/go/bufio/scan.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/scan.go	2013-10-01 16:06:44.044554284 +0000
@@ -0,0 +1,346 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio
+
+import (
+	"bytes"
+	"errors"
+	"io"
+	"unicode/utf8"
+)
+
+// Scanner provides a convenient interface for reading data such as
+// a file of newline-delimited lines of text. Successive calls to
+// the Scan method will step through the 'tokens' of a file, skipping
+// the bytes between the tokens. The specification of a token is
+// defined by a split function of type SplitFunc; the default split
+// function breaks the input into lines with line termination stripped. Split
+// functions are defined in this package for scanning a file into
+// lines, bytes, UTF-8-encoded runes, and space-delimited words. The
+// client may instead provide a custom split function.
+//
+// Scanning stops unrecoverably at EOF, the first I/O error, or a token too
+// large to fit in the buffer. When a scan stops, the reader may have
+// advanced arbitrarily far past the last token. Programs that need more
+// control over error handling or large tokens, or must run sequential scans
+// on a reader, should use bufio.Reader instead.
+//
+type Scanner struct {
+	r            io.Reader // The reader provided by the client.
+	split        SplitFunc // The function to split the tokens.
+	maxTokenSize int       // Maximum size of a token; modified by tests.
+	token        []byte    // Last token returned by split.
+	buf          []byte    // Buffer used as argument to split.
+	start        int       // First non-processed byte in buf.
+	end          int       // End of data in buf.
+	err          error     // Sticky error.
+}
+
+// SplitFunc is the signature of the split function used to tokenize the
+// input. The arguments are an initial substring of the remaining unprocessed
+// data and a flag, atEOF, that reports whether the Reader has no more data
+// to give. The return values are the number of bytes to advance the input
+// and the next token to return to the user, plus an error, if any. If the
+// data does not yet hold a complete token, for instance if it has no newline
+// while scanning lines, SplitFunc can return (0, nil) to signal the Scanner
+// to read more data into the slice and try again with a longer slice
+// starting at the same point in the input.
+//
+// If the returned error is non-nil, scanning stops and the error
+// is returned to the client.
+//
+// The function is never called with an empty data slice unless atEOF
+// is true. If atEOF is true, however, data may be non-empty and,
+// as always, holds unprocessed text.
+type SplitFunc func(data []byte, atEOF bool) (advance int, token []byte, err error)
+
+// Errors returned by Scanner.
+var (
+	ErrTooLong         = errors.New("bufio.Scanner: token too long")
+	ErrNegativeAdvance = errors.New("bufio.Scanner: SplitFunc returns negative advance count")
+	ErrAdvanceTooFar   = errors.New("bufio.Scanner: SplitFunc returns advance count beyond input")
+)
+
+const (
+	// Maximum size used to buffer a token. The actual maximum token size
+	// may be smaller as the buffer may need to include, for instance, a newline.
+	MaxScanTokenSize = 64 * 1024
+)
+
+// NewScanner returns a new Scanner to read from r.
+// The split function defaults to ScanLines.
+func NewScanner(r io.Reader) *Scanner {
+	return &Scanner{
+		r:            r,
+		split:        ScanLines,
+		maxTokenSize: MaxScanTokenSize,
+		buf:          make([]byte, 4096), // Plausible starting size; needn't be large.
+	}
+}
+
+// Err returns the first non-EOF error that was encountered by the Scanner.
+func (s *Scanner) Err() error {
+	if s.err == io.EOF {
+		return nil
+	}
+	return s.err
+}
+
+// Bytes returns the most recent token generated by a call to Scan.
+// The underlying array may point to data that will be overwritten
+// by a subsequent call to Scan. It does no allocation.
+func (s *Scanner) Bytes() []byte {
+	return s.token
+}
+
+// Text returns the most recent token generated by a call to Scan
+// as a newly allocated string holding its bytes.
+func (s *Scanner) Text() string {
+	return string(s.token)
+}
+
+// Scan advances the Scanner to the next token, which will then be
+// available through the Bytes or Text method. It returns false when the
+// scan stops, either by reaching the end of the input or an error.
+// After Scan returns false, the Err method will return any error that
+// occurred during scanning, except that if it was io.EOF, Err
+// will return nil.
+func (s *Scanner) Scan() bool {
+	// Loop until we have a token.
+	for {
+		// See if we can get a token with what we already have.
+		if s.end > s.start {
+			advance, token, err := s.split(s.buf[s.start:s.end], s.err != nil)
+			if err != nil {
+				s.setErr(err)
+				return false
+			}
+			if !s.advance(advance) {
+				return false
+			}
+			s.token = token
+			if token != nil {
+				return true
+			}
+		}
+		// We cannot generate a token with what we are holding.
+		// If we've already hit EOF or an I/O error, we are done.
+		if s.err != nil {
+			// Shut it down.
+			s.start = 0
+			s.end = 0
+			return false
+		}
+		// Must read more data.
+		// First, shift data to beginning of buffer if there's lots of empty space
+		// or space is neded.
+		if s.start > 0 && (s.end == len(s.buf) || s.start > len(s.buf)/2) {
+			copy(s.buf, s.buf[s.start:s.end])
+			s.end -= s.start
+			s.start = 0
+		}
+		// Is the buffer full? If so, resize.
+		if s.end == len(s.buf) {
+			if len(s.buf) >= s.maxTokenSize {
+				s.setErr(ErrTooLong)
+				return false
+			}
+			newSize := len(s.buf) * 2
+			if newSize > s.maxTokenSize {
+				newSize = s.maxTokenSize
+			}
+			newBuf := make([]byte, newSize)
+			copy(newBuf, s.buf[s.start:s.end])
+			s.buf = newBuf
+			s.end -= s.start
+			s.start = 0
+			continue
+		}
+		// Finally we can read some input. Make sure we don't get stuck with
+		// a misbehaving Reader. Officially we don't need to do this, but let's
+		// be extra careful: Scanner is for safe, simple jobs.
+		for loop := 0; ; {
+			n, err := s.r.Read(s.buf[s.end:len(s.buf)])
+			s.end += n
+			if err != nil {
+				s.setErr(err)
+				break
+			}
+			if n > 0 {
+				break
+			}
+			loop++
+			if loop > 100 {
+				s.setErr(io.ErrNoProgress)
+				break
+			}
+		}
+	}
+}
+
+// advance consumes n bytes of the buffer. It reports whether the advance was legal.
+func (s *Scanner) advance(n int) bool {
+	if n < 0 {
+		s.setErr(ErrNegativeAdvance)
+		return false
+	}
+	if n > s.end-s.start {
+		s.setErr(ErrAdvanceTooFar)
+		return false
+	}
+	s.start += n
+	return true
+}
+
+// setErr records the first error encountered.
+func (s *Scanner) setErr(err error) {
+	if s.err == nil || s.err == io.EOF {
+		s.err = err
+	}
+}
+
+// Split sets the split function for the Scanner. If called, it must be
+// called before Scan. The default split function is ScanLines.
+func (s *Scanner) Split(split SplitFunc) {
+	s.split = split
+}
+
+// Split functions
+
+// ScanBytes is a split function for a Scanner that returns each byte as a token.
+func ScanBytes(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	return 1, data[0:1], nil
+}
+
+var errorRune = []byte(string(utf8.RuneError))
+
+// ScanRunes is a split function for a Scanner that returns each
+// UTF-8-encoded rune as a token. The sequence of runes returned is
+// equivalent to that from a range loop over the input as a string, which
+// means that erroneous UTF-8 encodings translate to U+FFFD = "\xef\xbf\xbd".
+// Because of the Scan interface, this makes it impossible for the client to
+// distinguish correctly encoded replacement runes from encoding errors.
+func ScanRunes(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+
+	// Fast path 1: ASCII.
+	if data[0] < utf8.RuneSelf {
+		return 1, data[0:1], nil
+	}
+
+	// Fast path 2: Correct UTF-8 decode without error.
+	_, width := utf8.DecodeRune(data)
+	if width > 1 {
+		// It's a valid encoding. Width cannot be one for a correctly encoded
+		// non-ASCII rune.
+		return width, data[0:width], nil
+	}
+
+	// We know it's an error: we have width==1 and implicitly r==utf8.RuneError.
+	// Is the error because there wasn't a full rune to be decoded?
+	// FullRune distinguishes correctly between erroneous and incomplete encodings.
+	if !atEOF && !utf8.FullRune(data) {
+		// Incomplete; get more bytes.
+		return 0, nil, nil
+	}
+
+	// We have a real UTF-8 encoding error. Return a properly encoded error rune
+	// but advance only one byte. This matches the behavior of a range loop over
+	// an incorrectly encoded string.
+	return 1, errorRune, nil
+}
+
+// dropCR drops a terminal \r from the data.
+func dropCR(data []byte) []byte {
+	if len(data) > 0 && data[len(data)-1] == '\r' {
+		return data[0 : len(data)-1]
+	}
+	return data
+}
+
+// ScanLines is a split function for a Scanner that returns each line of
+// text, stripped of any trailing end-of-line marker. The returned line may
+// be empty. The end-of-line marker is one optional carriage return followed
+// by one mandatory newline. In regular expression notation, it is `\r?\n`.
+// The last non-empty line of input will be returned even if it has no
+// newline.
+func ScanLines(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	if i := bytes.IndexByte(data, '\n'); i >= 0 {
+		// We have a full newline-terminated line.
+		return i + 1, dropCR(data[0:i]), nil
+	}
+	// If we're at EOF, we have a final, non-terminated line. Return it.
+	if atEOF {
+		return len(data), dropCR(data), nil
+	}
+	// Request more data.
+	return 0, nil, nil
+}
+
+// isSpace returns whether the character is a Unicode white space character.
+// We avoid dependency on the unicode package, but check validity of the implementation
+// in the tests.
+func isSpace(r rune) bool {
+	if r <= '\u00FF' {
+		// Obvious ASCII ones: \t through \r plus space. Plus two Latin-1 oddballs.
+		switch r {
+		case ' ', '\t', '\n', '\v', '\f', '\r':
+			return true
+		case '\u0085', '\u00A0':
+			return true
+		}
+		return false
+	}
+	// High-valued ones.
+	if '\u2000' <= r && r <= '\u200a' {
+		return true
+	}
+	switch r {
+	case '\u1680', '\u180e', '\u2028', '\u2029', '\u202f', '\u205f', '\u3000':
+		return true
+	}
+	return false
+}
+
+// ScanWords is a split function for a Scanner that returns each
+// space-separated word of text, with surrounding spaces deleted. It will
+// never return an empty string. The definition of space is set by
+// unicode.IsSpace.
+func ScanWords(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	// Skip leading spaces.
+	start := 0
+	for width := 0; start < len(data); start += width {
+		var r rune
+		r, width = utf8.DecodeRune(data[start:])
+		if !isSpace(r) {
+			break
+		}
+	}
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	// Scan until space, marking end of word.
+	for width, i := 0, start; i < len(data); i += width {
+		var r rune
+		r, width = utf8.DecodeRune(data[i:])
+		if isSpace(r) {
+			return i + width, data[start:i], nil
+		}
+	}
+	// If we're at EOF, we have a final, non-empty, non-terminated word. Return it.
+	if atEOF && len(data) > start {
+		return len(data), data[start:], nil
+	}
+	// Request more data.
+	return 0, nil, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan_test.go gcc-4.8.1/libgo/go/bufio/scan_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/scan_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/bufio/scan_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -0,0 +1,406 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio_test
+
+import (
+	. "bufio"
+	"bytes"
+	"errors"
+	"io"
+	"strings"
+	"testing"
+	"unicode"
+	"unicode/utf8"
+)
+
+// Test white space table matches the Unicode definition.
+func TestSpace(t *testing.T) {
+	for r := rune(0); r <= utf8.MaxRune; r++ {
+		if IsSpace(r) != unicode.IsSpace(r) {
+			t.Fatalf("white space property disagrees: %#U should be %t", r, unicode.IsSpace(r))
+		}
+	}
+}
+
+var scanTests = []string{
+	"",
+	"a",
+	"Â¼",
+	"â˜¹",
+	"\x81",   // UTF-8 error
+	"\uFFFD", // correctly encoded RuneError
+	"abcdefgh",
+	"abc def\n\t\tgh    ",
+	"abcÂ¼â˜¹\x81\uFFFDæ—¥æœ¬èªž\x82abc",
+}
+
+func TestScanByte(t *testing.T) {
+	for n, test := range scanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanBytes)
+		var i int
+		for i = 0; s.Scan(); i++ {
+			if b := s.Bytes(); len(b) != 1 || b[0] != test[i] {
+				t.Errorf("#%d: %d: expected %q got %q", n, i, test, b)
+			}
+		}
+		if i != len(test) {
+			t.Errorf("#%d: termination expected at %d; got %d", n, len(test), i)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+// Test that the rune splitter returns same sequence of runes (not bytes) as for range string.
+func TestScanRune(t *testing.T) {
+	for n, test := range scanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanRunes)
+		var i, runeCount int
+		var expect rune
+		// Use a string range loop to validate the sequence of runes.
+		for i, expect = range string(test) {
+			if !s.Scan() {
+				break
+			}
+			runeCount++
+			got, _ := utf8.DecodeRune(s.Bytes())
+			if got != expect {
+				t.Errorf("#%d: %d: expected %q got %q", n, i, expect, got)
+			}
+		}
+		if s.Scan() {
+			t.Errorf("#%d: scan ran too long, got %q", n, s.Text())
+		}
+		testRuneCount := utf8.RuneCountInString(test)
+		if runeCount != testRuneCount {
+			t.Errorf("#%d: termination expected at %d; got %d", n, testRuneCount, runeCount)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+var wordScanTests = []string{
+	"",
+	" ",
+	"\n",
+	"a",
+	" a ",
+	"abc def",
+	" abc def ",
+	" abc\tdef\nghi\rjkl\fmno\vpqr\u0085stu\u00a0\n",
+}
+
+// Test that the word splitter returns the same data as strings.Fields.
+func TestScanWords(t *testing.T) {
+	for n, test := range wordScanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanWords)
+		words := strings.Fields(test)
+		var wordCount int
+		for wordCount = 0; wordCount < len(words); wordCount++ {
+			if !s.Scan() {
+				break
+			}
+			got := s.Text()
+			if got != words[wordCount] {
+				t.Errorf("#%d: %d: expected %q got %q", n, wordCount, words[wordCount], got)
+			}
+		}
+		if s.Scan() {
+			t.Errorf("#%d: scan ran too long, got %q", n, s.Text())
+		}
+		if wordCount != len(words) {
+			t.Errorf("#%d: termination expected at %d; got %d", n, len(words), wordCount)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+// slowReader is a reader that returns only a few bytes at a time, to test the incremental
+// reads in Scanner.Scan.
+type slowReader struct {
+	max int
+	buf *bytes.Buffer
+}
+
+func (sr *slowReader) Read(p []byte) (n int, err error) {
+	if len(p) > sr.max {
+		p = p[0:sr.max]
+	}
+	return sr.buf.Read(p)
+}
+
+// genLine writes to buf a predictable but non-trivial line of text of length
+// n, including the terminal newline and an occasional carriage return.
+// If addNewline is false, the \r and \n are not emitted.
+func genLine(buf *bytes.Buffer, lineNum, n int, addNewline bool) {
+	buf.Reset()
+	doCR := lineNum%5 == 0
+	if doCR {
+		n--
+	}
+	for i := 0; i < n-1; i++ { // Stop early for \n.
+		c := 'a' + byte(lineNum+i)
+		if c == '\n' || c == '\r' { // Don't confuse us.
+			c = 'N'
+		}
+		buf.WriteByte(c)
+	}
+	if addNewline {
+		if doCR {
+			buf.WriteByte('\r')
+		}
+		buf.WriteByte('\n')
+	}
+	return
+}
+
+// Test the line splitter, including some carriage returns but no long lines.
+func TestScanLongLines(t *testing.T) {
+	const smallMaxTokenSize = 256 // Much smaller for more efficient testing.
+	// Build a buffer of lots of line lengths up to but not exceeding smallMaxTokenSize.
+	tmp := new(bytes.Buffer)
+	buf := new(bytes.Buffer)
+	lineNum := 0
+	j := 0
+	for i := 0; i < 2*smallMaxTokenSize; i++ {
+		genLine(tmp, lineNum, j, true)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		buf.Write(tmp.Bytes())
+		lineNum++
+	}
+	s := NewScanner(&slowReader{1, buf})
+	s.Split(ScanLines)
+	s.MaxTokenSize(smallMaxTokenSize)
+	j = 0
+	for lineNum := 0; s.Scan(); lineNum++ {
+		genLine(tmp, lineNum, j, false)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		line := tmp.String() // We use the string-valued token here, for variety.
+		if s.Text() != line {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Text(), line)
+		}
+	}
+	err := s.Err()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+// Test that the line splitter errors out on a long line.
+func TestScanLineTooLong(t *testing.T) {
+	const smallMaxTokenSize = 256 // Much smaller for more efficient testing.
+	// Build a buffer of lots of line lengths up to but not exceeding smallMaxTokenSize.
+	tmp := new(bytes.Buffer)
+	buf := new(bytes.Buffer)
+	lineNum := 0
+	j := 0
+	for i := 0; i < 2*smallMaxTokenSize; i++ {
+		genLine(tmp, lineNum, j, true)
+		j++
+		buf.Write(tmp.Bytes())
+		lineNum++
+	}
+	s := NewScanner(&slowReader{3, buf})
+	s.Split(ScanLines)
+	s.MaxTokenSize(smallMaxTokenSize)
+	j = 0
+	for lineNum := 0; s.Scan(); lineNum++ {
+		genLine(tmp, lineNum, j, false)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		line := tmp.Bytes()
+		if !bytes.Equal(s.Bytes(), line) {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Bytes(), line)
+		}
+	}
+	err := s.Err()
+	if err != ErrTooLong {
+		t.Fatalf("expected ErrTooLong; got %s", err)
+	}
+}
+
+// Test that the line splitter handles a final line without a newline.
+func testNoNewline(text string, lines []string, t *testing.T) {
+	buf := bytes.NewBufferString(text)
+	s := NewScanner(&slowReader{7, buf})
+	s.Split(ScanLines)
+	for lineNum := 0; s.Scan(); lineNum++ {
+		line := lines[lineNum]
+		if s.Text() != line {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Bytes(), line)
+		}
+	}
+	err := s.Err()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+var noNewlineLines = []string{
+	"abcdefghijklmn\nopqrstuvwxyz",
+}
+
+// Test that the line splitter handles a final line without a newline.
+func TestScanLineNoNewline(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final line with a carriage return but nonewline.
+func TestScanLineReturnButNoNewline(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\r"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final empty line.
+func TestScanLineEmptyFinalLine(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\n\n"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+		"",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final empty line with a carriage return but no newline.
+func TestScanLineEmptyFinalLineWithCR(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\n\r"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+		"",
+	}
+	testNoNewline(text, lines, t)
+}
+
+var testError = errors.New("testError")
+
+// Test the correct error is returned when the split function errors out.
+func TestSplitError(t *testing.T) {
+	// Create a split function that delivers a little data, then a predictable error.
+	numSplits := 0
+	const okCount = 7
+	errorSplit := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		if atEOF {
+			panic("didn't get enough data")
+		}
+		if numSplits >= okCount {
+			return 0, nil, testError
+		}
+		numSplits++
+		return 1, data[0:1], nil
+	}
+	// Read the data.
+	const text = "abcdefghijklmnopqrstuvwxyz"
+	buf := bytes.NewBufferString(text)
+	s := NewScanner(&slowReader{1, buf})
+	s.Split(errorSplit)
+	var i int
+	for i = 0; s.Scan(); i++ {
+		if len(s.Bytes()) != 1 || text[i] != s.Bytes()[0] {
+			t.Errorf("#%d: expected %q got %q", i, text[i], s.Bytes()[0])
+		}
+	}
+	// Check correct termination location and error.
+	if i != okCount {
+		t.Errorf("unexpected termination; expected %d tokens got %d", okCount, i)
+	}
+	err := s.Err()
+	if err != testError {
+		t.Fatalf("expected %q got %v", testError, err)
+	}
+}
+
+// Test that an EOF is overridden by a user-generated scan error.
+func TestErrAtEOF(t *testing.T) {
+	s := NewScanner(strings.NewReader("1 2 33"))
+	// This spitter will fail on last entry, after s.err==EOF.
+	split := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		advance, token, err = ScanWords(data, atEOF)
+		if len(token) > 1 {
+			if s.ErrOrEOF() != io.EOF {
+				t.Fatal("not testing EOF")
+			}
+			err = testError
+		}
+		return
+	}
+	s.Split(split)
+	for s.Scan() {
+	}
+	if s.Err() != testError {
+		t.Fatal("wrong error:", s.Err())
+	}
+}
+
+// Test for issue 5268.
+type alwaysError struct{}
+
+func (alwaysError) Read(p []byte) (int, error) {
+	return 0, io.ErrUnexpectedEOF
+}
+
+func TestNonEOFWithEmptyRead(t *testing.T) {
+	scanner := NewScanner(alwaysError{})
+	for scanner.Scan() {
+		t.Fatal("read should fail")
+	}
+	err := scanner.Err()
+	if err != io.ErrUnexpectedEOF {
+		t.Errorf("unexpected error: %v", err)
+	}
+}
+
+// Test that Scan finishes if we have endless empty reads.
+type endlessZeros struct{}
+
+func (endlessZeros) Read(p []byte) (int, error) {
+	return 0, nil
+}
+
+func TestBadReader(t *testing.T) {
+	scanner := NewScanner(endlessZeros{})
+	for scanner.Scan() {
+		t.Fatal("read should fail")
+	}
+	err := scanner.Err()
+	if err != io.ErrNoProgress {
+		t.Errorf("unexpected error: %v", err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/builtin/builtin.go gcc-4.8.1/libgo/go/builtin/builtin.go
--- gcc-4.8.1.orig/libgo/go/builtin/builtin.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/builtin/builtin.go	2013-10-01 16:06:44.044554284 +0000
@@ -13,6 +13,12 @@
 // bool is the set of boolean values, true and false.
 type bool bool
 
+// true and false are the two untyped boolean values.
+const (
+	true  = 0 == 0 // Untyped bool.
+	false = 0 != 0 // Untyped bool.
+)
+
 // uint8 is the set of all unsigned 8-bit integers.
 // Range: 0 through 255.
 type uint8 uint8
@@ -85,6 +91,15 @@
 // used, by convention, to distinguish character values from integer values.
 type rune rune
 
+// iota is a predeclared identifier representing the untyped integer ordinal
+// number of the current const specification in a (usually parenthesized)
+// const declaration. It is zero-indexed.
+const iota = 0 // Untyped int.
+
+// nil is a predeclared identifier representing the zero value for a
+// pointer, channel, func, interface, map, or slice type.
+var nil Type // Type must be a pointer, channel, func, interface, map, or slice type
+
 // Type is here for the purposes of documentation only. It is a stand-in
 // for any Go type, but represents the same type for any given function
 // invocation.
@@ -114,6 +129,8 @@
 // result of append, often in the variable holding the slice itself:
 //	slice = append(slice, elem1, elem2)
 //	slice = append(slice, anotherSlice...)
+// As a special case, it is legal to append a string to a byte slice, like this:
+//	slice = append([]byte("hello "), "world"...)
 func append(slice []Type, elems ...Type) []Type
 
 // The copy built-in function copies elements from a source slice into a
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer.go gcc-4.8.1/libgo/go/bytes/buffer.go
--- gcc-4.8.1.orig/libgo/go/bytes/buffer.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/buffer.go	2013-10-01 16:06:44.044554284 +0000
@@ -87,6 +87,13 @@
 		var buf []byte
 		if b.buf == nil && n <= len(b.bootstrap) {
 			buf = b.bootstrap[0:]
+		} else if m+n <= cap(b.buf)/2 {
+			// We can slide things down instead of allocating a new
+			// slice. We only need m+n <= cap(b.buf) to slide, but
+			// we instead let capacity get twice as large so we
+			// don't spend all our time copying.
+			copy(b.buf[:], b.buf[b.off:])
+			buf = b.buf[:m]
 		} else {
 			// not enough space anywhere
 			buf = makeSlice(2*cap(b.buf) + n)
@@ -112,20 +119,18 @@
 	b.buf = b.buf[0:m]
 }
 
-// Write appends the contents of p to the buffer.  The return
-// value n is the length of p; err is always nil.
-// If the buffer becomes too large, Write will panic with
-// ErrTooLarge.
+// Write appends the contents of p to the buffer, growing the buffer as
+// needed. The return value n is the length of p; err is always nil. If the
+// buffer becomes too large, Write will panic with ErrTooLarge.
 func (b *Buffer) Write(p []byte) (n int, err error) {
 	b.lastRead = opInvalid
 	m := b.grow(len(p))
 	return copy(b.buf[m:], p), nil
 }
 
-// WriteString appends the contents of s to the buffer.  The return
-// value n is the length of s; err is always nil.
-// If the buffer becomes too large, WriteString will panic with
-// ErrTooLarge.
+// WriteString appends the contents of s to the buffer, growing the buffer as
+// needed. The return value n is the length of s; err is always nil. If the
+// buffer becomes too large, WriteString will panic with ErrTooLarge.
 func (b *Buffer) WriteString(s string) (n int, err error) {
 	b.lastRead = opInvalid
 	m := b.grow(len(s))
@@ -138,12 +143,10 @@
 // underlying buffer.
 const MinRead = 512
 
-// ReadFrom reads data from r until EOF and appends it to the buffer.
-// The return value n is the number of bytes read.
-// Any error except io.EOF encountered during the read
-// is also returned.
-// If the buffer becomes too large, ReadFrom will panic with
-// ErrTooLarge.
+// ReadFrom reads data from r until EOF and appends it to the buffer, growing
+// the buffer as needed. The return value n is the number of bytes read. Any
+// error except io.EOF encountered during the read is also returned. If the
+// buffer becomes too large, ReadFrom will panic with ErrTooLarge.
 func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) {
 	b.lastRead = opInvalid
 	// If buffer is empty, reset to recover space.
@@ -188,10 +191,10 @@
 	return make([]byte, n)
 }
 
-// WriteTo writes data to w until the buffer is drained or an error
-// occurs. The return value n is the number of bytes written; it always
-// fits into an int, but it is int64 to match the io.WriterTo interface.
-// Any error encountered during the write is also returned.
+// WriteTo writes data to w until the buffer is drained or an error occurs.
+// The return value n is the number of bytes written; it always fits into an
+// int, but it is int64 to match the io.WriterTo interface. Any error
+// encountered during the write is also returned.
 func (b *Buffer) WriteTo(w io.Writer) (n int64, err error) {
 	b.lastRead = opInvalid
 	if b.off < len(b.buf) {
@@ -216,10 +219,9 @@
 	return
 }
 
-// WriteByte appends the byte c to the buffer.
-// The returned error is always nil, but is included
-// to match bufio.Writer's WriteByte.
-// If the buffer becomes too large, WriteByte will panic with
+// WriteByte appends the byte c to the buffer, growing the buffer as needed.
+// The returned error is always nil, but is included to match bufio.Writer's
+// WriteByte. If the buffer becomes too large, WriteByte will panic with
 // ErrTooLarge.
 func (b *Buffer) WriteByte(c byte) error {
 	b.lastRead = opInvalid
@@ -228,12 +230,10 @@
 	return nil
 }
 
-// WriteRune appends the UTF-8 encoding of Unicode
-// code point r to the buffer, returning its length and
-// an error, which is always nil but is included
-// to match bufio.Writer's WriteRune.
-// If the buffer becomes too large, WriteRune will panic with
-// ErrTooLarge.
+// WriteRune appends the UTF-8 encoding of Unicode code point r to the
+// buffer, returning its length and an error, which is always nil but is
+// included to match bufio.Writer's WriteRune. The buffer is grown as needed;
+// if it becomes too large, WriteRune will panic with ErrTooLarge.
 func (b *Buffer) WriteRune(r rune) (n int, err error) {
 	if r < utf8.RuneSelf {
 		b.WriteByte(byte(r))
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go gcc-4.8.1/libgo/go/bytes/buffer_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/buffer_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -475,3 +475,53 @@
 		t.Errorf("ReadByte = %q; want %q", c, 'm')
 	}
 }
+
+// Tests that we occasionally compact. Issue 5154.
+func TestBufferGrowth(t *testing.T) {
+	var b Buffer
+	buf := make([]byte, 1024)
+	b.Write(buf[0:1])
+	var cap0 int
+	for i := 0; i < 5<<10; i++ {
+		b.Write(buf)
+		b.Read(buf)
+		if i == 0 {
+			cap0 = b.Cap()
+		}
+	}
+	cap1 := b.Cap()
+	// (*Buffer).grow allows for 2x capacity slop before sliding,
+	// so set our error threshold at 3x.
+	if cap1 > cap0*3 {
+		t.Errorf("buffer cap = %d; too big (grew from %d)", cap1, cap0)
+	}
+}
+
+// From Issue 5154.
+func BenchmarkBufferNotEmptyWriteRead(b *testing.B) {
+	buf := make([]byte, 1024)
+	for i := 0; i < b.N; i++ {
+		var b Buffer
+		b.Write(buf[0:1])
+		for i := 0; i < 5<<10; i++ {
+			b.Write(buf)
+			b.Read(buf)
+		}
+	}
+}
+
+// Check that we don't compact too often. From Issue 5154.
+func BenchmarkBufferFullSmallReads(b *testing.B) {
+	buf := make([]byte, 1024)
+	for i := 0; i < b.N; i++ {
+		var b Buffer
+		b.Write(buf)
+		for b.Len()+20 < b.Cap() {
+			b.Write(buf[:10])
+		}
+		for i := 0; i < 5<<10; i++ {
+			b.Read(buf[:1])
+			b.Write(buf[:1])
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes.go gcc-4.8.1/libgo/go/bytes/bytes.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/bytes.go	2013-10-01 16:06:44.044554284 +0000
@@ -37,10 +37,6 @@
 	return 0
 }
 
-// Equal returns a boolean reporting whether a == b.
-// A nil argument is equivalent to an empty slice.
-func Equal(a, b []byte) bool
-
 func equalPortable(a, b []byte) bool {
 	if len(a) != len(b) {
 		return false
@@ -465,10 +461,10 @@
 	return unicode.IsSpace(r)
 }
 
-// BUG(r): The rule Title uses for word boundaries does not handle Unicode punctuation properly.
-
 // Title returns a copy of s with all Unicode letters that begin words
 // mapped to their title case.
+//
+// BUG: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
 func Title(s []byte) []byte {
 	// Use a closure here to remember state.
 	// Hackish but effective. Depends on Map scanning in order and calling
@@ -515,6 +511,24 @@
 	return TrimRightFunc(TrimLeftFunc(s, f), f)
 }
 
+// TrimPrefix returns s without the provided leading prefix string.
+// If s doesn't start with prefix, s is returned unchanged.
+func TrimPrefix(s, prefix []byte) []byte {
+	if HasPrefix(s, prefix) {
+		return s[len(prefix):]
+	}
+	return s
+}
+
+// TrimSuffix returns s without the provided trailing suffix string.
+// If s doesn't end with suffix, s is returned unchanged.
+func TrimSuffix(s, suffix []byte) []byte {
+	if HasSuffix(s, suffix) {
+		return s[:len(s)-len(suffix)]
+	}
+	return s
+}
+
 // IndexFunc interprets s as a sequence of UTF-8-encoded Unicode code points.
 // It returns the byte index in s of the first Unicode
 // code point satisfying f(c), or -1 if none do.
@@ -553,7 +567,10 @@
 // inverted.
 func lastIndexFunc(s []byte, f func(r rune) bool, truth bool) int {
 	for i := len(s); i > 0; {
-		r, size := utf8.DecodeLastRune(s[0:i])
+		r, size := rune(s[i-1]), 1
+		if r >= utf8.RuneSelf {
+			r, size = utf8.DecodeLastRune(s[0:i])
+		}
 		i -= size
 		if f(r) == truth {
 			return i
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go gcc-4.8.1/libgo/go/bytes/bytes_decl.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/bytes_decl.go	2013-10-01 16:06:44.044554284 +0000
@@ -4,5 +4,13 @@
 
 package bytes
 
+//go:noescape
+
 // IndexByte returns the index of the first instance of c in s, or -1 if c is not present in s.
 func IndexByte(s []byte, c byte) int // asm_$GOARCH.s
+
+//go:noescape
+
+// Equal returns a boolean reporting whether a == b.
+// A nil argument is equivalent to an empty slice.
+func Equal(a, b []byte) bool // asm_arm.s or ../runtime/asm_{386,amd64}.s
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go gcc-4.8.1/libgo/go/bytes/bytes_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/bytes_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -61,6 +61,10 @@
 	{[]byte("ab"), []byte("x"), -1},
 	{[]byte("x"), []byte("a"), 1},
 	{[]byte("b"), []byte("x"), -1},
+	// test runtimeÂ·memeq's chunked implementation
+	{[]byte("abcdefgh"), []byte("abcdefgh"), 0},
+	{[]byte("abcdefghi"), []byte("abcdefghi"), 0},
+	{[]byte("abcdefghi"), []byte("abcdefghj"), -1},
 	// nil tests
 	{nil, nil, 0},
 	{[]byte(""), nil, 0},
@@ -86,6 +90,58 @@
 	}
 }
 
+func TestEqual(t *testing.T) {
+	var size = 128
+	if testing.Short() {
+		size = 32
+	}
+	a := make([]byte, size)
+	b := make([]byte, size)
+	b_init := make([]byte, size)
+	// randomish but deterministic data
+	for i := 0; i < size; i++ {
+		a[i] = byte(17 * i)
+		b_init[i] = byte(23*i + 100)
+	}
+
+	for len := 0; len <= size; len++ {
+		for x := 0; x <= size-len; x++ {
+			for y := 0; y <= size-len; y++ {
+				copy(b, b_init)
+				copy(b[y:y+len], a[x:x+len])
+				if !Equal(a[x:x+len], b[y:y+len]) || !Equal(b[y:y+len], a[x:x+len]) {
+					t.Errorf("Equal(%d, %d, %d) = false", len, x, y)
+				}
+			}
+		}
+	}
+}
+
+// make sure Equal returns false for minimally different strings.  The data
+// is all zeros except for a single one in one location.
+func TestNotEqual(t *testing.T) {
+	var size = 128
+	if testing.Short() {
+		size = 32
+	}
+	a := make([]byte, size)
+	b := make([]byte, size)
+
+	for len := 0; len <= size; len++ {
+		for x := 0; x <= size-len; x++ {
+			for y := 0; y <= size-len; y++ {
+				for diffpos := x; diffpos < x+len; diffpos++ {
+					a[diffpos] = 1
+					if Equal(a[x:x+len], b[y:y+len]) || Equal(b[y:y+len], a[x:x+len]) {
+						t.Errorf("NotEqual(%d, %d, %d, %d) = true", len, x, y, diffpos)
+					}
+					a[diffpos] = 0
+				}
+			}
+		}
+	}
+}
+
 var indexTests = []BinOpTest{
 	{"", "", 0},
 	{"", "a", -1},
@@ -303,10 +359,30 @@
 	buf[n-1] = '\x00'
 }
 
+func BenchmarkEqual0(b *testing.B) {
+	var buf [4]byte
+	buf1 := buf[0:0]
+	buf2 := buf[1:1]
+	for i := 0; i < b.N; i++ {
+		eq := Equal(buf1, buf2)
+		if !eq {
+			b.Fatal("bad equal")
+		}
+	}
+}
+
+func BenchmarkEqual1(b *testing.B)           { bmEqual(b, Equal, 1) }
+func BenchmarkEqual6(b *testing.B)           { bmEqual(b, Equal, 6) }
+func BenchmarkEqual9(b *testing.B)           { bmEqual(b, Equal, 9) }
+func BenchmarkEqual15(b *testing.B)          { bmEqual(b, Equal, 15) }
+func BenchmarkEqual16(b *testing.B)          { bmEqual(b, Equal, 16) }
+func BenchmarkEqual20(b *testing.B)          { bmEqual(b, Equal, 20) }
 func BenchmarkEqual32(b *testing.B)          { bmEqual(b, Equal, 32) }
 func BenchmarkEqual4K(b *testing.B)          { bmEqual(b, Equal, 4<<10) }
 func BenchmarkEqual4M(b *testing.B)          { bmEqual(b, Equal, 4<<20) }
 func BenchmarkEqual64M(b *testing.B)         { bmEqual(b, Equal, 64<<20) }
+func BenchmarkEqualPort1(b *testing.B)       { bmEqual(b, EqualPortable, 1) }
+func BenchmarkEqualPort6(b *testing.B)       { bmEqual(b, EqualPortable, 6) }
 func BenchmarkEqualPort32(b *testing.B)      { bmEqual(b, EqualPortable, 32) }
 func BenchmarkEqualPort4K(b *testing.B)      { bmEqual(b, EqualPortable, 4<<10) }
 func BenchmarkEqualPortable4M(b *testing.B)  { bmEqual(b, EqualPortable, 4<<20) }
@@ -794,8 +870,8 @@
 }
 
 type TrimTest struct {
-	f               string
-	in, cutset, out string
+	f            string
+	in, arg, out string
 }
 
 var trimTests = []TrimTest{
@@ -820,12 +896,17 @@
 	{"TrimRight", "", "123", ""},
 	{"TrimRight", "", "", ""},
 	{"TrimRight", "â˜º\xc0", "â˜º", "â˜º\xc0"},
+	{"TrimPrefix", "aabb", "a", "abb"},
+	{"TrimPrefix", "aabb", "b", "aabb"},
+	{"TrimSuffix", "aabb", "a", "aabb"},
+	{"TrimSuffix", "aabb", "b", "aab"},
 }
 
 func TestTrim(t *testing.T) {
 	for _, tc := range trimTests {
 		name := tc.f
 		var f func([]byte, string) []byte
+		var fb func([]byte, []byte) []byte
 		switch name {
 		case "Trim":
 			f = Trim
@@ -833,12 +914,21 @@
 			f = TrimLeft
 		case "TrimRight":
 			f = TrimRight
+		case "TrimPrefix":
+			fb = TrimPrefix
+		case "TrimSuffix":
+			fb = TrimSuffix
 		default:
 			t.Errorf("Undefined trim function %s", name)
 		}
-		actual := string(f([]byte(tc.in), tc.cutset))
+		var actual string
+		if f != nil {
+			actual = string(f([]byte(tc.in), tc.arg))
+		} else {
+			actual = string(fb([]byte(tc.in), []byte(tc.arg)))
+		}
 		if actual != tc.out {
-			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.cutset, actual, tc.out)
+			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.arg, actual, tc.out)
 		}
 	}
 }
@@ -1059,3 +1149,10 @@
 		FieldsFunc(fieldsInput, unicode.IsSpace)
 	}
 }
+
+func BenchmarkTrimSpace(b *testing.B) {
+	s := []byte("  Some text.  \n")
+	for i := 0; i < b.N; i++ {
+		TrimSpace(s)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/equal_test.go gcc-4.8.1/libgo/go/bytes/equal_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/equal_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/equal_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -0,0 +1,47 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+//
+// +build linux
+
+package bytes_test
+
+import (
+	. "bytes"
+	"syscall"
+	"testing"
+	"unsafe"
+)
+
+// This file tests the situation where memeq is checking
+// data very near to a page boundary.  We want to make sure
+// equal does not read across the boundary and cause a page
+// fault where it shouldn't.
+
+// This test runs only on linux.  The code being tested is
+// not OS-specific, so it does not need to be tested on all
+// operating systems.
+
+func TestEqualNearPageBoundary(t *testing.T) {
+	pagesize := syscall.Getpagesize()
+	b := make([]byte, 4*pagesize)
+	i := pagesize
+	for ; uintptr(unsafe.Pointer(&b[i]))%uintptr(pagesize) != 0; i++ {
+	}
+	syscall.Mprotect(b[i-pagesize:i], 0)
+	syscall.Mprotect(b[i+pagesize:i+2*pagesize], 0)
+	defer syscall.Mprotect(b[i-pagesize:i], syscall.PROT_READ|syscall.PROT_WRITE)
+	defer syscall.Mprotect(b[i+pagesize:i+2*pagesize], syscall.PROT_READ|syscall.PROT_WRITE)
+
+	// both of these should fault
+	//pagesize += int(b[i-1])
+	//pagesize += int(b[i+pagesize])
+
+	for j := 0; j < pagesize; j++ {
+		b[i+j] = 'A'
+	}
+	for j := 0; j <= pagesize; j++ {
+		Equal(b[i:i+j], b[i+pagesize-j:i+pagesize])
+		Equal(b[i+pagesize-j:i+pagesize], b[i:i+j])
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/example_test.go gcc-4.8.1/libgo/go/bytes/example_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/example_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/example_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -66,3 +66,20 @@
 		// Found it!
 	}
 }
+
+func ExampleTrimSuffix() {
+	var b = []byte("Hello, goodbye, etc!")
+	b = bytes.TrimSuffix(b, []byte("goodbye, etc!"))
+	b = bytes.TrimSuffix(b, []byte("gopher"))
+	b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...)
+	os.Stdout.Write(b)
+	// Output: Hello, world!
+}
+
+func ExampleTrimPrefix() {
+	var b = []byte("Goodbye,, world!")
+	b = bytes.TrimPrefix(b, []byte("Goodbye,"))
+	b = bytes.TrimPrefix(b, []byte("See ya,"))
+	fmt.Printf("Hello%s", b)
+	// Output: Hello, world!
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/export_test.go gcc-4.8.1/libgo/go/bytes/export_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/export_test.go	2012-01-12 01:31:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/bytes/export_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -7,3 +7,7 @@
 // Export func for testing
 var IndexBytePortable = indexBytePortable
 var EqualPortable = equalPortable
+
+func (b *Buffer) Cap() int {
+	return cap(b.buf)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go gcc-4.8.1/libgo/go/compress/bzip2/huffman.go
--- gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/bzip2/huffman.go	2013-10-01 16:06:44.044554284 +0000
@@ -54,8 +54,6 @@
 			nodeIndex = node.right
 		}
 	}
-
-	panic("unreachable")
 }
 
 // newHuffmanTree builds a Huffman tree from a slice containing the code
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go gcc-4.8.1/libgo/go/compress/flate/deflate_test.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/flate/deflate_test.go	2013-10-01 16:06:44.044554284 +0000
@@ -158,7 +158,6 @@
 		}
 		<-b.ready
 	}
-	panic("unreachable")
 }
 
 func (b *syncBuffer) signal() {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go gcc-4.8.1/libgo/go/compress/flate/inflate.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/flate/inflate.go	2013-10-01 16:06:44.044554284 +0000
@@ -263,7 +263,6 @@
 		}
 		f.step(f)
 	}
-	panic("unreachable")
 }
 
 func (f *decompressor) Close() error {
@@ -495,7 +494,6 @@
 			return
 		}
 	}
-	panic("unreached")
 }
 
 // copyHist copies f.copyLen bytes from f.hist (f.copyDist bytes ago) to itself.
@@ -642,7 +640,6 @@
 			return int(chunk >> huffmanValueShift), nil
 		}
 	}
-	return 0, CorruptInputError(f.roffset)
 }
 
 // Flush any buffered output to the underlying writer.
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/token.go gcc-4.8.1/libgo/go/compress/flate/token.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/token.go	2009-12-22 05:56:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/flate/token.go	2013-10-01 16:06:44.044554284 +0000
@@ -99,5 +99,4 @@
 	default:
 		return offsetCodes[off>>14] + 28
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go gcc-4.8.1/libgo/go/compress/gzip/gunzip.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/gzip/gunzip.go	2013-10-01 16:06:44.044554284 +0000
@@ -120,7 +120,6 @@
 			return string(z.buf[0:i]), nil
 		}
 	}
-	panic("not reached")
 }
 
 func (z *Reader) read2() (uint32, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go gcc-4.8.1/libgo/go/compress/gzip/gzip.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/gzip/gzip.go	2013-10-01 16:06:44.048554283 +0000
@@ -28,7 +28,7 @@
 	Header
 	w          io.Writer
 	level      int
-	compressor io.WriteCloser
+	compressor *flate.Writer
 	digest     hash.Hash32
 	size       uint32
 	closed     bool
@@ -191,6 +191,28 @@
 	return n, z.err
 }
 
+// Flush flushes any pending compressed data to the underlying writer.
+//
+// It is useful mainly in compressed network protocols, to ensure that
+// a remote reader has enough data to reconstruct a packet. Flush does
+// not return until the data has been written. If the underlying
+// writer returns an error, Flush returns that error.
+//
+// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH.
+func (z *Writer) Flush() error {
+	if z.err != nil {
+		return z.err
+	}
+	if z.closed {
+		return nil
+	}
+	if z.compressor == nil {
+		z.Write(nil)
+	}
+	z.err = z.compressor.Flush()
+	return z.err
+}
+
 // Close closes the Writer. It does not close the underlying io.Writer.
 func (z *Writer) Close() error {
 	if z.err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -157,3 +157,43 @@
 		}
 	}
 }
+
+func TestWriterFlush(t *testing.T) {
+	buf := new(bytes.Buffer)
+
+	w := NewWriter(buf)
+	w.Comment = "comment"
+	w.Extra = []byte("extra")
+	w.ModTime = time.Unix(1e8, 0)
+	w.Name = "name"
+
+	n0 := buf.Len()
+	if n0 != 0 {
+		t.Fatalf("buffer size = %d before writes; want 0", n0)
+	}
+
+	if err := w.Flush(); err != nil {
+		t.Fatal(err)
+	}
+
+	n1 := buf.Len()
+	if n1 == 0 {
+		t.Fatal("no data after first flush")
+	}
+
+	w.Write([]byte("x"))
+
+	n2 := buf.Len()
+	if n1 != n2 {
+		t.Fatalf("after writing a single byte, size changed from %d to %d; want no change", n1, n2)
+	}
+
+	if err := w.Flush(); err != nil {
+		t.Fatal(err)
+	}
+
+	n3 := buf.Len()
+	if n2 == n3 {
+		t.Fatal("Flush didn't flush any data")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go gcc-4.8.1/libgo/go/compress/lzw/reader.go
--- gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go	2011-12-12 23:40:51.000000000 +0000
+++ gcc-4.8.1/libgo/go/compress/lzw/reader.go	2013-10-01 16:06:44.048554283 +0000
@@ -121,7 +121,6 @@
 		}
 		d.decode()
 	}
-	panic("unreachable")
 }
 
 // decode decompresses bytes from r and leaves them in d.toRead.
@@ -203,7 +202,6 @@
 			return
 		}
 	}
-	panic("unreachable")
 }
 
 func (d *decoder) flush() {
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/example_test.go gcc-4.8.1/libgo/go/container/heap/example_test.go
--- gcc-4.8.1.orig/libgo/go/container/heap/example_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/container/heap/example_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,100 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This example demonstrates a priority queue built using the heap interface.
-package heap_test
-
-import (
-	"container/heap"
-	"fmt"
-)
-
-// An Item is something we manage in a priority queue.
-type Item struct {
-	value    string // The value of the item; arbitrary.
-	priority int    // The priority of the item in the queue.
-	// The index is needed by changePriority and is maintained by the heap.Interface methods.
-	index int // The index of the item in the heap.
-}
-
-// A PriorityQueue implements heap.Interface and holds Items.
-type PriorityQueue []*Item
-
-func (pq PriorityQueue) Len() int { return len(pq) }
-
-func (pq PriorityQueue) Less(i, j int) bool {
-	// We want Pop to give us the highest, not lowest, priority so we use greater than here.
-	return pq[i].priority > pq[j].priority
-}
-
-func (pq PriorityQueue) Swap(i, j int) {
-	pq[i], pq[j] = pq[j], pq[i]
-	pq[i].index = i
-	pq[j].index = j
-}
-
-func (pq *PriorityQueue) Push(x interface{}) {
-	// Push and Pop use pointer receivers because they modify the slice's length,
-	// not just its contents.
-	n := len(*pq)
-	item := x.(*Item)
-	item.index = n
-	*pq = append(*pq, item)
-}
-
-func (pq *PriorityQueue) Pop() interface{} {
-	a := *pq
-	n := len(a)
-	item := a[n-1]
-	item.index = -1 // for safety
-	*pq = a[0 : n-1]
-	return item
-}
-
-// update is not used by the example but shows how to take the top item from
-// the queue, update its priority and value, and put it back.
-func (pq *PriorityQueue) update(value string, priority int) {
-	item := heap.Pop(pq).(*Item)
-	item.value = value
-	item.priority = priority
-	heap.Push(pq, item)
-}
-
-// changePriority is not used by the example but shows how to change the
-// priority of an arbitrary item.
-func (pq *PriorityQueue) changePriority(item *Item, priority int) {
-	heap.Remove(pq, item.index)
-	item.priority = priority
-	heap.Push(pq, item)
-}
-
-// This example pushes 10 items into a PriorityQueue and takes them out in
-// order of priority.
-func Example() {
-	const nItem = 10
-	// Random priorities for the items (a permutation of 0..9, times 11)).
-	priorities := [nItem]int{
-		77, 22, 44, 55, 11, 88, 33, 99, 00, 66,
-	}
-	values := [nItem]string{
-		"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
-	}
-	// Create a priority queue and put some items in it.
-	pq := make(PriorityQueue, 0, nItem)
-	for i := 0; i < cap(pq); i++ {
-		item := &Item{
-			value:    values[i],
-			priority: priorities[i],
-		}
-		heap.Push(&pq, item)
-	}
-	// Take the items out; should arrive in decreasing priority order.
-	// For example, the highest priority (99) is the seventh item, so output starts with 99:"seven".
-	for i := 0; i < nItem; i++ {
-		item := heap.Pop(&pq).(*Item)
-		fmt.Printf("%.2d:%s ", item.priority, item.value)
-	}
-	// Output:
-	// 99:seven 88:five 77:zero 66:nine 55:three 44:two 33:six 22:one 11:four 00:eight
-}
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap.go gcc-4.8.1/libgo/go/container/heap/heap.go
--- gcc-4.8.1.orig/libgo/go/container/heap/heap.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/container/heap/heap.go	2013-10-01 16:06:44.048554283 +0000
@@ -4,13 +4,13 @@
 
 // Package heap provides heap operations for any type that implements
 // heap.Interface. A heap is a tree with the property that each node is the
-// highest-valued node in its subtree.
+// minimum-valued node in its subtree.
 //
 // A heap is a common way to implement a priority queue. To build a priority
 // queue, implement the Heap interface with the (negative) priority as the
 // ordering for the Less method, so Push adds items while Pop removes the
 // highest-priority item from the queue. The Examples include such an
-// implementation; the file example_test.go has the complete source.
+// implementation; the file example_pq_test.go has the complete source.
 //
 package heap
 
@@ -90,7 +90,7 @@
 func down(h Interface, i, n int) {
 	for {
 		j1 := 2*i + 1
-		if j1 >= n {
+		if j1 >= n || j1 < 0 { // j1 < 0 after int overflow
 			break
 		}
 		j := j1 // left child
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go gcc-4.8.1/libgo/go/container/heap/heap_test.go
--- gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/container/heap/heap_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package heap_test
+package heap
 
 import (
-	. "container/heap"
 	"testing"
 )
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go gcc-4.8.1/libgo/go/crypto/cipher/cbc.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/cipher/cbc.go	2013-10-01 16:06:44.048554283 +0000
@@ -42,6 +42,12 @@
 func (x *cbcEncrypter) BlockSize() int { return x.blockSize }
 
 func (x *cbcEncrypter) CryptBlocks(dst, src []byte) {
+	if len(src)%x.blockSize != 0 {
+		panic("crypto/cipher: input not full blocks")
+	}
+	if len(dst) < len(src) {
+		panic("crypto/cipher: output smaller than input")
+	}
 	for len(src) > 0 {
 		for i := 0; i < x.blockSize; i++ {
 			x.iv[i] ^= src[i]
@@ -70,6 +76,12 @@
 func (x *cbcDecrypter) BlockSize() int { return x.blockSize }
 
 func (x *cbcDecrypter) CryptBlocks(dst, src []byte) {
+	if len(src)%x.blockSize != 0 {
+		panic("crypto/cipher: input not full blocks")
+	}
+	if len(dst) < len(src) {
+		panic("crypto/cipher: output smaller than input")
+	}
 	for len(src) > 0 {
 		x.b.Decrypt(x.tmp, src[:x.blockSize])
 		for i := 0; i < x.blockSize; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -0,0 +1,36 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cipher_test
+
+import (
+	"crypto/aes"
+	"crypto/cipher"
+	"testing"
+)
+
+func TestCryptBlocks(t *testing.T) {
+	buf := make([]byte, 16)
+	block, _ := aes.NewCipher(buf)
+
+	mode := cipher.NewCBCDecrypter(block, buf)
+	mustPanic(t, "crypto/cipher: input not full blocks", func() { mode.CryptBlocks(buf, buf[:3]) })
+	mustPanic(t, "crypto/cipher: output smaller than input", func() { mode.CryptBlocks(buf[:3], buf) })
+
+	mode = cipher.NewCBCEncrypter(block, buf)
+	mustPanic(t, "crypto/cipher: input not full blocks", func() { mode.CryptBlocks(buf, buf[:3]) })
+	mustPanic(t, "crypto/cipher: output smaller than input", func() { mode.CryptBlocks(buf[:3], buf) })
+}
+
+func mustPanic(t *testing.T, msg string, f func()) {
+	defer func() {
+		err := recover()
+		if err == nil {
+			t.Errorf("function did not panic, wanted %q", msg)
+		} else if err != msg {
+			t.Errorf("got panic %v, wanted %q", err, msg)
+		}
+	}()
+	f()
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go gcc-4.8.1/libgo/go/crypto/cipher/example_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/cipher/example_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -233,7 +233,7 @@
 	}
 	defer outFile.Close()
 
-	reader := &cipher.StreamReader{stream, inFile}
+	reader := &cipher.StreamReader{S: stream, R: inFile}
 	// Copy the input file to the output file, decrypting as we go.
 	if _, err := io.Copy(outFile, reader); err != nil {
 		panic(err)
@@ -270,7 +270,7 @@
 	}
 	defer outFile.Close()
 
-	writer := &cipher.StreamWriter{stream, outFile, nil}
+	writer := &cipher.StreamWriter{S: stream, W: outFile}
 	// Copy the input file to the output file, encrypting as we go.
 	if _, err := io.Copy(writer, inFile); err != nil {
 		panic(err)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go gcc-4.8.1/libgo/go/crypto/dsa/dsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa.go	2013-10-01 16:06:44.048554283 +0000
@@ -144,8 +144,6 @@
 		params.G = g
 		return
 	}
-
-	panic("unreachable")
 }
 
 // GenerateKey generates a public&private key pair. The Parameters of the
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -63,8 +63,9 @@
 }
 
 func TestParameterGeneration(t *testing.T) {
-	// This test is too slow to run all the time.
-	return
+	if testing.Short() {
+		t.Skip("skipping parameter generation test in short mode")
+	}
 
 	testParameterGeneration(t, L1024N160, 1024, 160)
 	testParameterGeneration(t, L2048N224, 2048, 224)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go	2013-10-01 16:06:44.048554283 +0000
@@ -49,7 +49,7 @@
 	return
 }
 
-// GenerateKey generates a public&private key pair.
+// GenerateKey generates a public and private key pair.
 func GenerateKey(c elliptic.Curve, rand io.Reader) (priv *PrivateKey, err error) {
 	k, err := randFieldElement(c, rand)
 	if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go gcc-4.8.1/libgo/go/crypto/md5/gen.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/md5/gen.go	2013-10-01 16:06:44.048554283 +0000
@@ -161,6 +161,11 @@
 }
 
 var program = `
+// DO NOT EDIT.
+// Generate with: go run gen.go{{if .Full}} -full{{end}} | gofmt >md5block.go
+
+// +build !amd64
+
 package md5
 
 import (
@@ -186,6 +191,16 @@
 	}
 {{end}}
 
+const x86 = runtime.GOARCH == "amd64" || runtime.GOARCH == "386"
+
+var littleEndian bool
+
+func init() {
+	x := uint32(0x04030201)
+	y := [4]byte{0x1, 0x2, 0x3, 0x4}
+	littleEndian = *(*[4]byte)(unsafe.Pointer(&x)) == y
+}
+
 func block(dig *digest, p []byte) {
 	a := dig.s[0]
 	b := dig.s[1]
@@ -197,13 +212,13 @@
 		aa, bb, cc, dd := a, b, c, d
 
 		// This is a constant condition - it is not evaluated on each iteration.
-		if runtime.GOARCH == "amd64" || runtime.GOARCH == "386" {
+		if x86 {
 			// MD5 was designed so that x86 processors can just iterate
 			// over the block data directly as uint32s, and we generate
 			// less code and run 1.3x faster if we take advantage of that.
 			// My apologies.
 			X = (*[16]uint32)(unsafe.Pointer(&p[0]))
-		} else if uintptr(unsafe.Pointer(&p[0]))&(unsafe.Alignof(uint32(0))-1) == 0 {
+		} else if littleEndian && uintptr(unsafe.Pointer(&p[0]))&(unsafe.Alignof(uint32(0))-1) == 0 {
 			X = (*[16]uint32)(unsafe.Pointer(&p[0]))
 		} else {
 			X = &xbuf
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go gcc-4.8.1/libgo/go/crypto/md5/md5_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/md5/md5_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package md5_test
+package md5
 
 import (
-	"crypto/md5"
 	"fmt"
 	"io"
 	"testing"
@@ -54,7 +53,7 @@
 func TestGolden(t *testing.T) {
 	for i := 0; i < len(golden); i++ {
 		g := golden[i]
-		c := md5.New()
+		c := New()
 		buf := make([]byte, len(g.in)+4)
 		for j := 0; j < 3+4; j++ {
 			if j < 2 {
@@ -79,14 +78,14 @@
 }
 
 func ExampleNew() {
-	h := md5.New()
+	h := New()
 	io.WriteString(h, "The fog is getting thicker!")
 	io.WriteString(h, "And Leon's getting laaarger!")
 	fmt.Printf("%x", h.Sum(nil))
 	// Output: e2c569be17396eca2a2e3c11578123ed
 }
 
-var bench = md5.New()
+var bench = New()
 var buf = make([]byte, 8192+1)
 var sum = make([]byte, bench.Size())
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go gcc-4.8.1/libgo/go/crypto/md5/md5block.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go	2013-02-07 21:40:10.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/md5/md5block.go	2013-10-01 16:06:44.048554283 +0000
@@ -1,3 +1,8 @@
+// DO NOT EDIT.
+// Generate with: go run gen.go -full | gofmt >md5block.go
+
+// +build !amd64,!386
+
 package md5
 
 import (
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go	2013-10-01 16:06:44.048554283 +0000
@@ -0,0 +1,9 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 386
+
+package md5
+
+func block(dig *digest, p []byte)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rand/util.go gcc-4.8.1/libgo/go/crypto/rand/util.go
--- gcc-4.8.1.orig/libgo/go/crypto/rand/util.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rand/util.go	2013-10-01 16:06:44.048554283 +0000
@@ -98,12 +98,13 @@
 			return
 		}
 	}
-
-	return
 }
 
-// Int returns a uniform random value in [0, max).
+// Int returns a uniform random value in [0, max). It panics if max <= 0.
 func Int(rand io.Reader, max *big.Int) (n *big.Int, err error) {
+	if max.Sign() <= 0 {
+		panic("crypto/rand: argument to Int is <= 0")
+	}
 	k := (max.BitLen() + 7) / 8
 
 	// b is the number of bits in the most significant byte of max.
@@ -130,6 +131,4 @@
 			return
 		}
 	}
-
-	return
 }
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go gcc-4.8.1/libgo/go/crypto/rc4/rc4.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4.go	2013-10-01 16:06:44.048554283 +0000
@@ -13,7 +13,7 @@
 
 // A Cipher is an instance of RC4 using a particular key.
 type Cipher struct {
-	s    [256]byte
+	s    [256]uint32
 	i, j uint8
 }
 
@@ -32,27 +32,16 @@
 	}
 	var c Cipher
 	for i := 0; i < 256; i++ {
-		c.s[i] = uint8(i)
+		c.s[i] = uint32(i)
 	}
 	var j uint8 = 0
 	for i := 0; i < 256; i++ {
-		j += c.s[i] + key[i%k]
+		j += uint8(c.s[i]) + key[i%k]
 		c.s[i], c.s[j] = c.s[j], c.s[i]
 	}
 	return &c, nil
 }
 
-// XORKeyStream sets dst to the result of XORing src with the key stream.
-// Dst and src may be the same slice but otherwise should not overlap.
-func (c *Cipher) XORKeyStream(dst, src []byte) {
-	for i := range src {
-		c.i += 1
-		c.j += c.s[c.i]
-		c.s[c.i], c.s[c.j] = c.s[c.j], c.s[c.i]
-		dst[i] = src[i] ^ c.s[c.s[c.i]+c.s[c.j]]
-	}
-}
-
 // Reset zeros the key data so that it will no longer appear in the
 // process's memory.
 func (c *Cipher) Reset() {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go	2013-10-01 16:06:44.048554283 +0000
@@ -0,0 +1,18 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 arm 386
+
+package rc4
+
+func xorKeyStream(dst, src *byte, n int, state *[256]uint32, i, j *uint8)
+
+// XORKeyStream sets dst to the result of XORing src with the key stream.
+// Dst and src may be the same slice but otherwise should not overlap.
+func (c *Cipher) XORKeyStream(dst, src []byte) {
+	if len(src) == 0 {
+		return
+	}
+	xorKeyStream(&dst[0], &src[0], len(src), &c.s, &c.i, &c.j)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go	2013-10-01 16:06:44.048554283 +0000
@@ -0,0 +1,20 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !amd64,!arm,!386
+
+package rc4
+
+// XORKeyStream sets dst to the result of XORing src with the key stream.
+// Dst and src may be the same slice but otherwise should not overlap.
+func (c *Cipher) XORKeyStream(dst, src []byte) {
+	i, j := c.i, c.j
+	for k, v := range src {
+		i += 1
+		j += uint8(c.s[i])
+		c.s[i], c.s[j] = c.s[j], c.s[i]
+		dst[k] = v ^ byte(c.s[byte(c.s[i]+c.s[j])])
+	}
+	c.i, c.j = i, j
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go	2011-01-21 18:19:03.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -5,6 +5,8 @@
 package rc4
 
 import (
+	"bytes"
+	"fmt"
 	"testing"
 )
 
@@ -37,23 +39,124 @@
 		[]byte{0x57, 0x69, 0x6b, 0x69},
 		[]byte{0x60, 0x44, 0xdb, 0x6d, 0x41, 0xb7},
 	},
+	{
+		[]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+		[]byte{
+			0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a,
+			0x8a, 0x06, 0x1e, 0x67, 0x57, 0x6e, 0x92, 0x6d,
+			0xc7, 0x1a, 0x7f, 0xa3, 0xf0, 0xcc, 0xeb, 0x97,
+			0x45, 0x2b, 0x4d, 0x32, 0x27, 0x96, 0x5f, 0x9e,
+			0xa8, 0xcc, 0x75, 0x07, 0x6d, 0x9f, 0xb9, 0xc5,
+			0x41, 0x7a, 0xa5, 0xcb, 0x30, 0xfc, 0x22, 0x19,
+			0x8b, 0x34, 0x98, 0x2d, 0xbb, 0x62, 0x9e, 0xc0,
+			0x4b, 0x4f, 0x8b, 0x05, 0xa0, 0x71, 0x08, 0x50,
+			0x92, 0xa0, 0xc3, 0x58, 0x4a, 0x48, 0xe4, 0xa3,
+			0x0a, 0x39, 0x7b, 0x8a, 0xcd, 0x1d, 0x00, 0x9e,
+			0xc8, 0x7d, 0x68, 0x11, 0xf2, 0x2c, 0xf4, 0x9c,
+			0xa3, 0xe5, 0x93, 0x54, 0xb9, 0x45, 0x15, 0x35,
+			0xa2, 0x18, 0x7a, 0x86, 0x42, 0x6c, 0xca, 0x7d,
+			0x5e, 0x82, 0x3e, 0xba, 0x00, 0x44, 0x12, 0x67,
+			0x12, 0x57, 0xb8, 0xd8, 0x60, 0xae, 0x4c, 0xbd,
+			0x4c, 0x49, 0x06, 0xbb, 0xc5, 0x35, 0xef, 0xe1,
+			0x58, 0x7f, 0x08, 0xdb, 0x33, 0x95, 0x5c, 0xdb,
+			0xcb, 0xad, 0x9b, 0x10, 0xf5, 0x3f, 0xc4, 0xe5,
+			0x2c, 0x59, 0x15, 0x65, 0x51, 0x84, 0x87, 0xfe,
+			0x08, 0x4d, 0x0e, 0x3f, 0x03, 0xde, 0xbc, 0xc9,
+			0xda, 0x1c, 0xe9, 0x0d, 0x08, 0x5c, 0x2d, 0x8a,
+			0x19, 0xd8, 0x37, 0x30, 0x86, 0x16, 0x36, 0x92,
+			0x14, 0x2b, 0xd8, 0xfc, 0x5d, 0x7a, 0x73, 0x49,
+			0x6a, 0x8e, 0x59, 0xee, 0x7e, 0xcf, 0x6b, 0x94,
+			0x06, 0x63, 0xf4, 0xa6, 0xbe, 0xe6, 0x5b, 0xd2,
+			0xc8, 0x5c, 0x46, 0x98, 0x6c, 0x1b, 0xef, 0x34,
+			0x90, 0xd3, 0x7b, 0x38, 0xda, 0x85, 0xd3, 0x2e,
+			0x97, 0x39, 0xcb, 0x23, 0x4a, 0x2b, 0xe7, 0x40,
+		},
+	},
+}
+
+func testEncrypt(t *testing.T, desc string, c *Cipher, src, expect []byte) {
+	dst := make([]byte, len(src))
+	c.XORKeyStream(dst, src)
+	for i, v := range dst {
+		if v != expect[i] {
+			t.Fatalf("%s: mismatch at byte %d:\nhave %x\nwant %x", desc, i, dst, expect)
+		}
+	}
 }
 
 func TestGolden(t *testing.T) {
-	for i := 0; i < len(golden); i++ {
-		g := golden[i]
-		c, err := NewCipher(g.key)
-		if err != nil {
-			t.Errorf("Failed to create cipher at golden index %d", i)
-			return
+	for gi, g := range golden {
+		data := make([]byte, len(g.keystream))
+		for i := range data {
+			data[i] = byte(i)
 		}
-		keystream := make([]byte, len(g.keystream))
-		c.XORKeyStream(keystream, keystream)
-		for j, v := range keystream {
-			if g.keystream[j] != v {
-				t.Errorf("Failed at golden index %d", i)
-				break
+
+		expect := make([]byte, len(g.keystream))
+		for i := range expect {
+			expect[i] = byte(i) ^ g.keystream[i]
+		}
+
+		for size := 1; size <= len(g.keystream); size++ {
+			c, err := NewCipher(g.key)
+			if err != nil {
+				t.Fatalf("#%d: NewCipher: %v", gi, err)
+			}
+
+			off := 0
+			for off < len(g.keystream) {
+				n := len(g.keystream) - off
+				if n > size {
+					n = size
+				}
+				desc := fmt.Sprintf("#%d@[%d:%d]", gi, off, off+n)
+				testEncrypt(t, desc, c, data[off:off+n], expect[off:off+n])
+				off += n
 			}
 		}
 	}
 }
+
+func TestBlock(t *testing.T) {
+	c1a, _ := NewCipher(golden[0].key)
+	c1b, _ := NewCipher(golden[1].key)
+	data1 := make([]byte, 1<<20)
+	for i := range data1 {
+		c1a.XORKeyStream(data1[i:i+1], data1[i:i+1])
+		c1b.XORKeyStream(data1[i:i+1], data1[i:i+1])
+	}
+
+	c2a, _ := NewCipher(golden[0].key)
+	c2b, _ := NewCipher(golden[1].key)
+	data2 := make([]byte, 1<<20)
+	c2a.XORKeyStream(data2, data2)
+	c2b.XORKeyStream(data2, data2)
+
+	if !bytes.Equal(data1, data2) {
+		t.Fatalf("bad block")
+	}
+}
+
+func benchmark(b *testing.B, size int64) {
+	buf := make([]byte, size)
+	c, err := NewCipher(golden[0].key)
+	if err != nil {
+		panic(err)
+	}
+	b.SetBytes(size)
+
+	for i := 0; i < b.N; i++ {
+		c.XORKeyStream(buf, buf)
+	}
+}
+
+func BenchmarkRC4_128(b *testing.B) {
+	benchmark(b, 128)
+}
+
+func BenchmarkRC4_1K(b *testing.B) {
+	benchmark(b, 1024)
+}
+
+func BenchmarkRC4_8K(b *testing.B) {
+	benchmark(b, 8096)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go gcc-4.8.1/libgo/go/crypto/rsa/rsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa.go	2013-10-01 16:06:44.048554283 +0000
@@ -150,6 +150,20 @@
 NextSetOfPrimes:
 	for {
 		todo := bits
+		// crypto/rand should set the top two bits in each prime.
+		// Thus each prime has the form
+		//   p_i = 2^bitlen(p_i) Ã— 0.11... (in base 2).
+		// And the product is:
+		//   P = 2^todo Ã— Î±
+		// where Î± is the product of nprimes numbers of the form 0.11...
+		//
+		// If Î± < 1/2 (which can happen for nprimes > 2), we need to
+		// shift todo to compensate for lost bits: the mean value of 0.11...
+		// is 7/8, so todo + shift - nprimes * log2(7/8) ~= bits - 1/2
+		// will give good results.
+		if nprimes >= 7 {
+			todo += (nprimes - 2) / 5
+		}
 		for i := 0; i < nprimes; i++ {
 			primes[i], err = rand.Prime(random, todo/(nprimes-i))
 			if err != nil {
@@ -176,8 +190,9 @@
 			totient.Mul(totient, pminus1)
 		}
 		if n.BitLen() != bits {
-			// This should never happen because crypto/rand should
-			// set the top two bits in each prime.
+			// This should never happen for nprimes == 2 because
+			// crypto/rand should set the top two bits in each prime.
+			// For nprimes > 2 we hope it does not happen often.
 			continue NextSetOfPrimes
 		}
 
@@ -188,7 +203,9 @@
 		g.GCD(priv.D, y, e, totient)
 
 		if g.Cmp(bigOne) == 0 {
-			priv.D.Add(priv.D, totient)
+			if priv.D.Sign() < 0 {
+				priv.D.Add(priv.D, totient)
+			}
 			priv.Primes = primes
 			priv.N = n
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go	2013-10-01 16:06:44.048554283 +0000
@@ -28,11 +28,11 @@
 }
 
 func Test3PrimeKeyGeneration(t *testing.T) {
+	size := 768
 	if testing.Short() {
-		return
+		size = 256
 	}
 
-	size := 768
 	priv, err := GenerateMultiPrimeKey(rand.Reader, 3, size)
 	if err != nil {
 		t.Errorf("failed to generate key")
@@ -41,11 +41,11 @@
 }
 
 func Test4PrimeKeyGeneration(t *testing.T) {
+	size := 768
 	if testing.Short() {
-		return
+		size = 256
 	}
 
-	size := 768
 	priv, err := GenerateMultiPrimeKey(rand.Reader, 4, size)
 	if err != nil {
 		t.Errorf("failed to generate key")
@@ -53,6 +53,24 @@
 	testKeyBasics(t, priv)
 }
 
+func TestNPrimeKeyGeneration(t *testing.T) {
+	primeSize := 64
+	maxN := 24
+	if testing.Short() {
+		primeSize = 16
+		maxN = 16
+	}
+	// Test that generation of N-prime keys works for N > 4.
+	for n := 5; n < maxN; n++ {
+		priv, err := GenerateMultiPrimeKey(rand.Reader, n, 64+n*primeSize)
+		if err == nil {
+			testKeyBasics(t, priv)
+		} else {
+			t.Errorf("failed to generate %d-prime key", n)
+		}
+	}
+}
+
 func TestGnuTLSKey(t *testing.T) {
 	// This is a key generated by `certtool --generate-privkey --bits 128`.
 	// It's such that de â‰¢ 1 mod Ï†(n), but is congruent mod the order of
@@ -75,6 +93,9 @@
 	if err := priv.Validate(); err != nil {
 		t.Errorf("Validate() failed: %s", err)
 	}
+	if priv.D.Cmp(priv.N) > 0 {
+		t.Errorf("private exponent too large")
+	}
 
 	pub := &priv.PublicKey
 	m := big.NewInt(42)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -4,10 +4,9 @@
 
 // SHA1 hash algorithm.  See RFC 3174.
 
-package sha1_test
+package sha1
 
 import (
-	"crypto/sha1"
 	"fmt"
 	"io"
 	"testing"
@@ -55,7 +54,7 @@
 func TestGolden(t *testing.T) {
 	for i := 0; i < len(golden); i++ {
 		g := golden[i]
-		c := sha1.New()
+		c := New()
 		for j := 0; j < 3; j++ {
 			if j < 2 {
 				io.WriteString(c, g.in)
@@ -74,13 +73,13 @@
 }
 
 func ExampleNew() {
-	h := sha1.New()
+	h := New()
 	io.WriteString(h, "His money is twice tainted: 'taint yours and 'taint mine.")
 	fmt.Printf("% x", h.Sum(nil))
 	// Output: 59 7f 6a 54 00 10 f9 4c 15 d7 18 06 a9 9a 2c 87 10 e7 47 bd
 }
 
-var bench = sha1.New()
+var bench = New()
 var buf = make([]byte, 8192)
 
 func benchmarkSize(b *testing.B, size int) {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go	2013-10-01 16:06:44.048554283 +0000
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !amd64,!386
+
 // SHA1 block step.
 // In its own file so that a faster assembly or C version
 // can be substituted easily.
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go	2013-10-01 16:06:44.048554283 +0000
@@ -0,0 +1,9 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 386
+
+package sha1
+
+func block(dig *digest, p []byte)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/common.go gcc-4.8.1/libgo/go/crypto/tls/common.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/common.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/tls/common.go	2013-10-01 16:06:44.052554283 +0000
@@ -204,7 +204,24 @@
 	// connections using that key are compromised.
 	SessionTicketKey [32]byte
 
-	serverInitOnce sync.Once
+	serverInitOnce sync.Once // guards calling (*Config).serverInit
+}
+
+func (c *Config) serverInit() {
+	if c.SessionTicketsDisabled {
+		return
+	}
+
+	// If the key has already been set then we have nothing to do.
+	for _, b := range c.SessionTicketKey {
+		if b != 0 {
+			return
+		}
+	}
+
+	if _, err := io.ReadFull(c.rand(), c.SessionTicketKey[:]); err != nil {
+		c.SessionTicketsDisabled = true
+	}
 }
 
 func (c *Config) rand() io.Reader {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go	2013-10-01 16:06:44.052554283 +0000
@@ -16,36 +16,80 @@
 	"crypto/x509/pkix"
 	"encoding/pem"
 	"flag"
+	"fmt"
 	"log"
 	"math/big"
+	"net"
 	"os"
+	"strings"
 	"time"
 )
 
-var hostName *string = flag.String("host", "127.0.0.1", "Hostname to generate a certificate for")
+var (
+	host      = flag.String("host", "", "Comma-separated hostnames and IPs to generate a certificate for")
+	validFrom = flag.String("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011")
+	validFor  = flag.Duration("duration", 365*24*time.Hour, "Duration that certificate is valid for")
+	isCA      = flag.Bool("ca", false, "whether this cert should be its own Certificate Authority")
+	rsaBits   = flag.Int("rsa-bits", 1024, "Size of RSA key to generate")
+)
 
 func main() {
 	flag.Parse()
 
-	priv, err := rsa.GenerateKey(rand.Reader, 1024)
+	if len(*host) == 0 {
+		log.Fatalf("Missing required --host parameter")
+	}
+
+	priv, err := rsa.GenerateKey(rand.Reader, *rsaBits)
 	if err != nil {
 		log.Fatalf("failed to generate private key: %s", err)
 		return
 	}
 
-	now := time.Now()
+	var notBefore time.Time
+	if len(*validFrom) == 0 {
+		notBefore = time.Now()
+	} else {
+		notBefore, err = time.Parse("Jan 2 15:04:05 2006", *validFrom)
+		if err != nil {
+			fmt.Fprintf(os.Stderr, "Failed to parse creation date: %s\n", err)
+			os.Exit(1)
+		}
+	}
+
+	notAfter := notBefore.Add(*validFor)
+
+	// end of ASN.1 time
+	endOfTime := time.Date(2049, 12, 31, 23, 59, 59, 0, time.UTC)
+	if notAfter.After(endOfTime) {
+		notAfter = endOfTime
+	}
 
 	template := x509.Certificate{
 		SerialNumber: new(big.Int).SetInt64(0),
 		Subject: pkix.Name{
-			CommonName:   *hostName,
 			Organization: []string{"Acme Co"},
 		},
-		NotBefore: now.Add(-5 * time.Minute).UTC(),
-		NotAfter:  now.AddDate(1, 0, 0).UTC(), // valid for 1 year.
+		NotBefore: notBefore,
+		NotAfter:  notAfter,
+
+		KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
+		ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
+		BasicConstraintsValid: true,
+	}
+
+	hosts := strings.Split(*host, ",")
+	for _, h := range hosts {
+		if ip := net.ParseIP(h); ip != nil {
+			template.IPAddresses = append(template.IPAddresses, ip)
+		} else {
+			template.DNSNames = append(template.DNSNames, h)
+		}
+	}
 
-		SubjectKeyId: []byte{1, 2, 3, 4},
-		KeyUsage:     x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
+	if *isCA {
+		template.IsCA = true
+		template.KeyUsage |= x509.KeyUsageCertSign
 	}
 
 	derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go	2013-10-01 16:06:44.052554283 +0000
@@ -33,22 +33,7 @@
 
 	// If this is the first server handshake, we generate a random key to
 	// encrypt the tickets with.
-	config.serverInitOnce.Do(func() {
-		if config.SessionTicketsDisabled {
-			return
-		}
-
-		// If the key has already been set then we have nothing to do.
-		for _, b := range config.SessionTicketKey {
-			if b != 0 {
-				return
-			}
-		}
-
-		if _, err := io.ReadFull(config.rand(), config.SessionTicketKey[:]); err != nil {
-			config.SessionTicketsDisabled = true
-		}
-	})
+	config.serverInitOnce.Do(config.serverInit)
 
 	hs := serverHandshakeState{
 		c: c,
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go	2013-10-01 16:06:44.052554283 +0000
@@ -51,6 +51,4 @@
 	default:
 		return nil, fmt.Errorf("crypto/x509: PKCS#8 wrapping contained private key with unknown algorithm: %v", privKey.Algo.Algorithm)
 	}
-
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go gcc-4.8.1/libgo/go/crypto/x509/verify.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/x509/verify.go	2013-10-01 16:06:44.052554283 +0000
@@ -5,6 +5,7 @@
 package x509
 
 import (
+	"net"
 	"runtime"
 	"strings"
 	"time"
@@ -63,14 +64,28 @@
 }
 
 func (h HostnameError) Error() string {
-	var valid string
 	c := h.Certificate
-	if len(c.DNSNames) > 0 {
-		valid = strings.Join(c.DNSNames, ", ")
+
+	var valid string
+	if ip := net.ParseIP(h.Host); ip != nil {
+		// Trying to validate an IP
+		if len(c.IPAddresses) == 0 {
+			return "x509: cannot validate certificate for " + h.Host + " because it doesn't contain any IP SANs"
+		}
+		for _, san := range c.IPAddresses {
+			if len(valid) > 0 {
+				valid += ", "
+			}
+			valid += san.String()
+		}
 	} else {
-		valid = c.Subject.CommonName
+		if len(c.DNSNames) > 0 {
+			valid = strings.Join(c.DNSNames, ", ")
+		} else {
+			valid = c.Subject.CommonName
+		}
 	}
-	return "certificate is valid for " + valid + ", not " + h.Host
+	return "x509: certificate is valid for " + valid + ", not " + h.Host
 }
 
 // UnknownAuthorityError results when the certificate issuer is unknown
@@ -334,6 +349,22 @@
 // VerifyHostname returns nil if c is a valid certificate for the named host.
 // Otherwise it returns an error describing the mismatch.
 func (c *Certificate) VerifyHostname(h string) error {
+	// IP addresses may be written in [ ].
+	candidateIP := h
+	if len(h) >= 3 && h[0] == '[' && h[len(h)-1] == ']' {
+		candidateIP = h[1 : len(h)-1]
+	}
+	if ip := net.ParseIP(candidateIP); ip != nil {
+		// We only match IP addresses against IP SANs.
+		// https://tools.ietf.org/html/rfc6125#appendix-B.2
+		for _, candidate := range c.IPAddresses {
+			if ip.Equal(candidate) {
+				return nil
+			}
+		}
+		return HostnameError{c, candidateIP}
+	}
+
 	lowered := toLowerCaseASCII(h)
 
 	if len(c.DNSNames) > 0 {
@@ -389,6 +420,14 @@
 			for _, usage := range cert.ExtKeyUsage {
 				if requestedUsage == usage {
 					continue NextRequestedUsage
+				} else if requestedUsage == ExtKeyUsageServerAuth &&
+					(usage == ExtKeyUsageNetscapeServerGatedCrypto ||
+						usage == ExtKeyUsageMicrosoftServerGatedCrypto) {
+					// In order to support COMODO
+					// certificate chains, we have to
+					// accept Netscape or Microsoft SGC
+					// usages as equal to ServerAuth.
+					continue NextRequestedUsage
 				}
 			}
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go gcc-4.8.1/libgo/go/crypto/x509/verify_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/x509/verify_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -158,6 +158,19 @@
 			{"Ryan Hurst", "GlobalSign PersonalSign 2 CA - G2"},
 		},
 	},
+	{
+		leaf:          megaLeaf,
+		intermediates: []string{comodoIntermediate1},
+		roots:         []string{comodoRoot},
+		currentTime:   1360431182,
+
+		// CryptoAPI can find alternative validation paths so we don't
+		// perform this test with system validation.
+		systemSkip: true,
+		expectedChains: [][]string{
+			{"mega.co.nz", "EssentialSSL CA", "COMODO Certification Authority"},
+		},
+	},
 }
 
 func expectHostnameError(t *testing.T, i int, err error) (ok bool) {
@@ -563,3 +576,90 @@
 7y3rH/7TjwDVD7SLu5/SdOfKskuMPTjOEvz3K161mymW06klVhubCIWOro/Gx1Q2
 2FQOZ7/2k4uYoOdBTSlb8kTAuzZNgIE0rB2BIYCTz/P6zZIKW0ogbRSH
 -----END CERTIFICATE-----`
+
+var megaLeaf = `-----BEGIN CERTIFICATE-----
+MIIFOjCCBCKgAwIBAgIQWYE8Dup170kZ+k11Lg51OjANBgkqhkiG9w0BAQUFADBy
+MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
+VQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEYMBYGA1UE
+AxMPRXNzZW50aWFsU1NMIENBMB4XDTEyMTIxNDAwMDAwMFoXDTE0MTIxNDIzNTk1
+OVowfzEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMS4wLAYDVQQL
+EyVIb3N0ZWQgYnkgSW5zdHJhIENvcnBvcmF0aW9uIFB0eS4gTFREMRUwEwYDVQQL
+EwxFc3NlbnRpYWxTU0wxEzARBgNVBAMTCm1lZ2EuY28ubnowggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDcxMCClae8BQIaJHBUIVttlLvhbK4XhXPk3RQ3
+G5XA6tLZMBQ33l3F9knYJ0YErXtr8IdfYoulRQFmKFMJl9GtWyg4cGQi2Rcr5VN5
+S5dA1vu4oyJBxE9fPELcK6Yz1vqaf+n6za+mYTiQYKggVdS8/s8hmNuXP9Zk1pIn
++q0pGsf8NAcSHMJgLqPQrTDw+zae4V03DvcYfNKjuno88d2226ld7MAmQZ7uRNsI
+/CnkdelVs+akZsXf0szefSqMJlf08SY32t2jj4Ra7RApVYxOftD9nij/aLfuqOU6
+ow6IgIcIG2ZvXLZwK87c5fxL7UAsTTV+M1sVv8jA33V2oKLhAgMBAAGjggG9MIIB
+uTAfBgNVHSMEGDAWgBTay+qtWwhdzP/8JlTOSeVVxjj0+DAdBgNVHQ4EFgQUmP9l
+6zhyrZ06Qj4zogt+6LKFk4AwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAw
+NAYDVR0lBC0wKwYIKwYBBQUHAwEGCCsGAQUFBwMCBgorBgEEAYI3CgMDBglghkgB
+hvhCBAEwTwYDVR0gBEgwRjA6BgsrBgEEAbIxAQICBzArMCkGCCsGAQUFBwIBFh1o
+dHRwczovL3NlY3VyZS5jb21vZG8uY29tL0NQUzAIBgZngQwBAgEwOwYDVR0fBDQw
+MjAwoC6gLIYqaHR0cDovL2NybC5jb21vZG9jYS5jb20vRXNzZW50aWFsU1NMQ0Eu
+Y3JsMG4GCCsGAQUFBwEBBGIwYDA4BggrBgEFBQcwAoYsaHR0cDovL2NydC5jb21v
+ZG9jYS5jb20vRXNzZW50aWFsU1NMQ0FfMi5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmNvbW9kb2NhLmNvbTAlBgNVHREEHjAcggptZWdhLmNvLm56gg53d3cu
+bWVnYS5jby5uejANBgkqhkiG9w0BAQUFAAOCAQEAcYhrsPSvDuwihMOh0ZmRpbOE
+Gw6LqKgLNTmaYUPQhzi2cyIjhUhNvugXQQlP5f0lp5j8cixmArafg1dTn4kQGgD3
+ivtuhBTgKO1VYB/VRoAt6Lmswg3YqyiS7JiLDZxjoV7KoS5xdiaINfHDUaBBY4ZH
+j2BUlPniNBjCqXe/HndUTVUewlxbVps9FyCmH+C4o9DWzdGBzDpCkcmo5nM+cp7q
+ZhTIFTvZfo3zGuBoyu8BzuopCJcFRm3cRiXkpI7iOMUIixO1szkJS6WpL1sKdT73
+UXp08U0LBqoqG130FbzEJBBV3ixbvY6BWMHoCWuaoF12KJnC5kHt2RoWAAgMXA==
+-----END CERTIFICATE-----`
+
+var comodoIntermediate1 = `-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIQGLLLuqME8aAPwfLzJkYqSjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
+MDBaFw0xOTEyMzEyMzU5NTlaMHIxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVh
+dGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E
+TyBDQSBMaW1pdGVkMRgwFgYDVQQDEw9Fc3NlbnRpYWxTU0wgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt8AiwcsargxIxF3CJhakgEtSYau2A1NHf
+5I5ZLdOWIY120j8YC0YZYwvHIPPlC92AGvFaoL0dds23Izp0XmEbdaqb1IX04XiR
+0y3hr/yYLgbSeT1awB8hLRyuIVPGOqchfr7tZ291HRqfalsGs2rjsQuqag7nbWzD
+ypWMN84hHzWQfdvaGlyoiBSyD8gSIF/F03/o4Tjg27z5H6Gq1huQByH6RSRQXScq
+oChBRVt9vKCiL6qbfltTxfEFFld+Edc7tNkBdtzffRDPUanlOPJ7FAB1WfnwWdsX
+Pvev5gItpHnBXaIcw5rIp6gLSApqLn8tl2X2xQScRMiZln5+pN0vAgMBAAGjggGD
+MIIBfzAfBgNVHSMEGDAWgBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAdBgNVHQ4EFgQU
+2svqrVsIXcz//CZUzknlVcY49PgwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwIAYDVR0lBBkwFwYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMD4GA1Ud
+IAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21v
+ZG8uY29tL0NQUzBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9kb2Nh
+LmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBsBggrBgEFBQcB
+AQRgMF4wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NvbW9k
+b1VUTlNHQ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu
+Y29tMA0GCSqGSIb3DQEBBQUAA4IBAQAtlzR6QDLqcJcvgTtLeRJ3rvuq1xqo2l/z
+odueTZbLN3qo6u6bldudu+Ennv1F7Q5Slqz0J790qpL0pcRDAB8OtXj5isWMcL2a
+ejGjKdBZa0wztSz4iw+SY1dWrCRnilsvKcKxudokxeRiDn55w/65g+onO7wdQ7Vu
+F6r7yJiIatnyfKH2cboZT7g440LX8NqxwCPf3dfxp+0Jj1agq8MLy6SSgIGSH6lv
++Wwz3D5XxqfyH8wqfOQsTEZf6/Nh9yvENZ+NWPU6g0QO2JOsTGvMd/QDzczc4BxL
+XSXaPV7Od4rhPsbXlM1wSTz/Dr0ISKvlUhQVnQ6cGodWaK2cCQBk
+-----END CERTIFICATE-----`
+
+var comodoRoot = `-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
+MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
+/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
+PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
+QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
+SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
+IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
+zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
+BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
+ZQ==
+-----END CERTIFICATE-----`
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go gcc-4.8.1/libgo/go/crypto/x509/x509.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/x509/x509.go	2013-10-01 16:06:44.052554283 +0000
@@ -19,6 +19,8 @@
 	"errors"
 	"io"
 	"math/big"
+	"net"
+	"strconv"
 	"time"
 )
 
@@ -360,16 +362,18 @@
 // id-kp-timeStamping           OBJECT IDENTIFIER ::= { id-kp 8 }
 // id-kp-OCSPSigning            OBJECT IDENTIFIER ::= { id-kp 9 }
 var (
-	oidExtKeyUsageAny             = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
-	oidExtKeyUsageServerAuth      = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
-	oidExtKeyUsageClientAuth      = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 2}
-	oidExtKeyUsageCodeSigning     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 3}
-	oidExtKeyUsageEmailProtection = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 4}
-	oidExtKeyUsageIPSECEndSystem  = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 5}
-	oidExtKeyUsageIPSECTunnel     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 6}
-	oidExtKeyUsageIPSECUser       = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 7}
-	oidExtKeyUsageTimeStamping    = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 8}
-	oidExtKeyUsageOCSPSigning     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 9}
+	oidExtKeyUsageAny                        = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
+	oidExtKeyUsageServerAuth                 = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
+	oidExtKeyUsageClientAuth                 = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 2}
+	oidExtKeyUsageCodeSigning                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 3}
+	oidExtKeyUsageEmailProtection            = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 4}
+	oidExtKeyUsageIPSECEndSystem             = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 5}
+	oidExtKeyUsageIPSECTunnel                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 6}
+	oidExtKeyUsageIPSECUser                  = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 7}
+	oidExtKeyUsageTimeStamping               = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 8}
+	oidExtKeyUsageOCSPSigning                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 9}
+	oidExtKeyUsageMicrosoftServerGatedCrypto = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 3}
+	oidExtKeyUsageNetscapeServerGatedCrypto  = asn1.ObjectIdentifier{2, 16, 840, 1, 113730, 4, 1}
 )
 
 // ExtKeyUsage represents an extended set of actions that are valid for a given key.
@@ -387,6 +391,8 @@
 	ExtKeyUsageIPSECUser
 	ExtKeyUsageTimeStamping
 	ExtKeyUsageOCSPSigning
+	ExtKeyUsageMicrosoftServerGatedCrypto
+	ExtKeyUsageNetscapeServerGatedCrypto
 )
 
 // extKeyUsageOIDs contains the mapping between an ExtKeyUsage and its OID.
@@ -404,6 +410,8 @@
 	{ExtKeyUsageIPSECUser, oidExtKeyUsageIPSECUser},
 	{ExtKeyUsageTimeStamping, oidExtKeyUsageTimeStamping},
 	{ExtKeyUsageOCSPSigning, oidExtKeyUsageOCSPSigning},
+	{ExtKeyUsageMicrosoftServerGatedCrypto, oidExtKeyUsageMicrosoftServerGatedCrypto},
+	{ExtKeyUsageNetscapeServerGatedCrypto, oidExtKeyUsageNetscapeServerGatedCrypto},
 }
 
 func extKeyUsageFromOID(oid asn1.ObjectIdentifier) (eku ExtKeyUsage, ok bool) {
@@ -458,6 +466,7 @@
 	// Subject Alternate Name values
 	DNSNames       []string
 	EmailAddresses []string
+	IPAddresses    []net.IP
 
 	// Name constraints
 	PermittedDNSDomainsCritical bool // if true then the name constraints are marked critical.
@@ -660,6 +669,13 @@
 			return nil, err
 		}
 
+		if p.N.Sign() <= 0 {
+			return nil, errors.New("x509: RSA modulus is not a positive number")
+		}
+		if p.E <= 0 {
+			return nil, errors.New("x509: RSA public exponent is not a positive number")
+		}
+
 		pub := &rsa.PublicKey{
 			E: p.E,
 			N: p.N,
@@ -713,7 +729,6 @@
 	default:
 		return nil, nil
 	}
-	panic("unreachable")
 }
 
 func parseCertificate(in *certificate) (*Certificate, error) {
@@ -828,6 +843,13 @@
 					case 2:
 						out.DNSNames = append(out.DNSNames, string(v.Bytes))
 						parsedName = true
+					case 7:
+						switch len(v.Bytes) {
+						case net.IPv4len, net.IPv6len:
+							out.IPAddresses = append(out.IPAddresses, v.Bytes)
+						default:
+							return nil, errors.New("x509: certificate contained IP address of length " + strconv.Itoa(len(v.Bytes)))
+						}
 					}
 				}
 
@@ -1072,11 +1094,22 @@
 		n++
 	}
 
-	if len(template.DNSNames) > 0 {
+	if len(template.DNSNames) > 0 || len(template.EmailAddresses) > 0 || len(template.IPAddresses) > 0 {
 		ret[n].Id = oidExtensionSubjectAltName
-		rawValues := make([]asn1.RawValue, len(template.DNSNames))
-		for i, name := range template.DNSNames {
-			rawValues[i] = asn1.RawValue{Tag: 2, Class: 2, Bytes: []byte(name)}
+		var rawValues []asn1.RawValue
+		for _, name := range template.DNSNames {
+			rawValues = append(rawValues, asn1.RawValue{Tag: 2, Class: 2, Bytes: []byte(name)})
+		}
+		for _, email := range template.EmailAddresses {
+			rawValues = append(rawValues, asn1.RawValue{Tag: 1, Class: 2, Bytes: []byte(email)})
+		}
+		for _, rawIP := range template.IPAddresses {
+			// If possible, we always want to encode IPv4 addresses in 4 bytes.
+			ip := rawIP.To4()
+			if ip == nil {
+				ip = rawIP
+			}
+			rawValues = append(rawValues, asn1.RawValue{Tag: 7, Class: 2, Bytes: ip})
 		}
 		ret[n].Value, err = asn1.Marshal(rawValues)
 		if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go gcc-4.8.1/libgo/go/crypto/x509/x509_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/crypto/x509/x509_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -19,6 +19,7 @@
 	"encoding/hex"
 	"encoding/pem"
 	"math/big"
+	"net"
 	"reflect"
 	"testing"
 	"time"
@@ -174,6 +175,49 @@
 	}
 }
 
+func TestMatchIP(t *testing.T) {
+	// Check that pattern matching is working.
+	c := &Certificate{
+		DNSNames: []string{"*.foo.bar.baz"},
+		Subject: pkix.Name{
+			CommonName: "*.foo.bar.baz",
+		},
+	}
+	err := c.VerifyHostname("quux.foo.bar.baz")
+	if err != nil {
+		t.Fatalf("VerifyHostname(quux.foo.bar.baz): %v", err)
+	}
+
+	// But check that if we change it to be matching against an IP address,
+	// it is rejected.
+	c = &Certificate{
+		DNSNames: []string{"*.2.3.4"},
+		Subject: pkix.Name{
+			CommonName: "*.2.3.4",
+		},
+	}
+	err = c.VerifyHostname("1.2.3.4")
+	if err == nil {
+		t.Fatalf("VerifyHostname(1.2.3.4) should have failed, did not")
+	}
+
+	c = &Certificate{
+		IPAddresses: []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")},
+	}
+	err = c.VerifyHostname("127.0.0.1")
+	if err != nil {
+		t.Fatalf("VerifyHostname(127.0.0.1): %v", err)
+	}
+	err = c.VerifyHostname("::1")
+	if err != nil {
+		t.Fatalf("VerifyHostname(::1): %v", err)
+	}
+	err = c.VerifyHostname("[::1]")
+	if err != nil {
+		t.Fatalf("VerifyHostname([::1]): %v", err)
+	}
+}
+
 func TestCertificateParse(t *testing.T) {
 	s, _ := hex.DecodeString(certBytes)
 	certs, err := ParseCertificates(s)
@@ -284,8 +328,11 @@
 			UnknownExtKeyUsage: testUnknownExtKeyUsage,
 
 			BasicConstraintsValid: true,
-			IsCA:     true,
-			DNSNames: []string{"test.example.com"},
+			IsCA: true,
+
+			DNSNames:       []string{"test.example.com"},
+			EmailAddresses: []string{"gopher@golang.org"},
+			IPAddresses:    []net.IP{net.IPv4(127, 0, 0, 1).To4(), net.ParseIP("2001:4860:0:2001::68")},
 
 			PolicyIdentifiers:   []asn1.ObjectIdentifier{[]int{1, 2, 3}},
 			PermittedDNSDomains: []string{".example.com", "example.com"},
@@ -327,6 +374,18 @@
 			t.Errorf("%s: unknown extkeyusage wasn't correctly copied from the template. Got %v, want %v", test.name, cert.UnknownExtKeyUsage, testUnknownExtKeyUsage)
 		}
 
+		if !reflect.DeepEqual(cert.DNSNames, template.DNSNames) {
+			t.Errorf("%s: SAN DNS names differ from template. Got %v, want %v", test.name, cert.DNSNames, template.DNSNames)
+		}
+
+		if !reflect.DeepEqual(cert.EmailAddresses, template.EmailAddresses) {
+			t.Errorf("%s: SAN emails differ from template. Got %v, want %v", test.name, cert.EmailAddresses, template.EmailAddresses)
+		}
+
+		if !reflect.DeepEqual(cert.IPAddresses, template.IPAddresses) {
+			t.Errorf("%s: SAN IPs differ from template. Got %v, want %v", test.name, cert.IPAddresses, template.IPAddresses)
+		}
+
 		if test.checkSig {
 			err = cert.CheckSignatureFrom(cert)
 			if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert.go gcc-4.8.1/libgo/go/database/sql/convert.go
--- gcc-4.8.1.orig/libgo/go/database/sql/convert.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/convert.go	2013-10-01 16:06:44.052554283 +0000
@@ -14,12 +14,18 @@
 	"strconv"
 )
 
+var errNilPtr = errors.New("destination pointer is nil") // embedded in descriptive error
+
 // driverArgs converts arguments from callers of Stmt.Exec and
 // Stmt.Query into driver Values.
 //
-// The statement si may be nil, if no statement is available.
-func driverArgs(si driver.Stmt, args []interface{}) ([]driver.Value, error) {
+// The statement ds may be nil, if no statement is available.
+func driverArgs(ds *driverStmt, args []interface{}) ([]driver.Value, error) {
 	dargs := make([]driver.Value, len(args))
+	var si driver.Stmt
+	if ds != nil {
+		si = ds.si
+	}
 	cc, ok := si.(driver.ColumnConverter)
 
 	// Normal path, for a driver.Stmt that is not a ColumnConverter.
@@ -58,7 +64,9 @@
 		// column before going across the network to get the
 		// same error.
 		var err error
+		ds.Lock()
 		dargs[n], err = cc.ColumnConverter(n).ConvertValue(arg)
+		ds.Unlock()
 		if err != nil {
 			return nil, fmt.Errorf("sql: converting argument #%d's type: %v", n, err)
 		}
@@ -75,34 +83,68 @@
 // An error is returned if the copy would result in loss of information.
 // dest should be a pointer type.
 func convertAssign(dest, src interface{}) error {
-	// Common cases, without reflect.  Fall through.
+	// Common cases, without reflect.
 	switch s := src.(type) {
 	case string:
 		switch d := dest.(type) {
 		case *string:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = s
 			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = []byte(s)
 			return nil
 		}
 	case []byte:
 		switch d := dest.(type) {
 		case *string:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = string(s)
 			return nil
 		case *interface{}:
-			bcopy := make([]byte, len(s))
-			copy(bcopy, s)
-			*d = bcopy
+			if d == nil {
+				return errNilPtr
+			}
+			*d = cloneBytes(s)
 			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = cloneBytes(s)
+			return nil
+		case *RawBytes:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = s
 			return nil
 		}
 	case nil:
 		switch d := dest.(type) {
+		case *interface{}:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = nil
+			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = nil
+			return nil
+		case *RawBytes:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = nil
 			return nil
 		}
@@ -121,6 +163,26 @@
 			*d = fmt.Sprintf("%v", src)
 			return nil
 		}
+	case *[]byte:
+		sv = reflect.ValueOf(src)
+		switch sv.Kind() {
+		case reflect.Bool,
+			reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+			reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+			reflect.Float32, reflect.Float64:
+			*d = []byte(fmt.Sprintf("%v", src))
+			return nil
+		}
+	case *RawBytes:
+		sv = reflect.ValueOf(src)
+		switch sv.Kind() {
+		case reflect.Bool,
+			reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+			reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+			reflect.Float32, reflect.Float64:
+			*d = RawBytes(fmt.Sprintf("%v", src))
+			return nil
+		}
 	case *bool:
 		bv, err := driver.Bool.ConvertValue(src)
 		if err == nil {
@@ -140,6 +202,9 @@
 	if dpv.Kind() != reflect.Ptr {
 		return errors.New("destination not a pointer")
 	}
+	if dpv.IsNil() {
+		return errNilPtr
+	}
 
 	if !sv.IsValid() {
 		sv = reflect.ValueOf(src)
@@ -189,6 +254,16 @@
 	return fmt.Errorf("unsupported driver -> Scan pair: %T -> %T", src, dest)
 }
 
+func cloneBytes(b []byte) []byte {
+	if b == nil {
+		return nil
+	} else {
+		c := make([]byte, len(b))
+		copy(c, b)
+		return c
+	}
+}
+
 func asString(src interface{}) string {
 	switch v := src.(type) {
 	case string:
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go gcc-4.8.1/libgo/go/database/sql/convert_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/convert_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -22,6 +22,8 @@
 	wantint   int64
 	wantuint  uint64
 	wantstr   string
+	wantbytes []byte
+	wantraw   RawBytes
 	wantf32   float32
 	wantf64   float64
 	wanttime  time.Time
@@ -35,6 +37,8 @@
 // Target variables for scanning into.
 var (
 	scanstr    string
+	scanbytes  []byte
+	scanraw    RawBytes
 	scanint    int
 	scanint8   int8
 	scanint16  int16
@@ -56,6 +60,7 @@
 	{s: someTime, d: &scantime, wanttime: someTime},
 
 	// To strings
+	{s: "string", d: &scanstr, wantstr: "string"},
 	{s: []byte("byteslice"), d: &scanstr, wantstr: "byteslice"},
 	{s: 123, d: &scanstr, wantstr: "123"},
 	{s: int8(123), d: &scanstr, wantstr: "123"},
@@ -66,6 +71,31 @@
 	{s: uint64(123), d: &scanstr, wantstr: "123"},
 	{s: 1.5, d: &scanstr, wantstr: "1.5"},
 
+	// To []byte
+	{s: nil, d: &scanbytes, wantbytes: nil},
+	{s: "string", d: &scanbytes, wantbytes: []byte("string")},
+	{s: []byte("byteslice"), d: &scanbytes, wantbytes: []byte("byteslice")},
+	{s: 123, d: &scanbytes, wantbytes: []byte("123")},
+	{s: int8(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: int64(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint8(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint16(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint32(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint64(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: 1.5, d: &scanbytes, wantbytes: []byte("1.5")},
+
+	// To RawBytes
+	{s: nil, d: &scanraw, wantraw: nil},
+	{s: []byte("byteslice"), d: &scanraw, wantraw: RawBytes("byteslice")},
+	{s: 123, d: &scanraw, wantraw: RawBytes("123")},
+	{s: int8(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: int64(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint8(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint16(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint32(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint64(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: 1.5, d: &scanraw, wantraw: RawBytes("1.5")},
+
 	// Strings to integers
 	{s: "255", d: &scanuint8, wantuint: 255},
 	{s: "256", d: &scanuint8, wanterr: `converting string "256" to a uint8: strconv.ParseUint: parsing "256": value out of range`},
@@ -113,6 +143,7 @@
 	{s: []byte("byteslice"), d: &scaniface, wantiface: []byte("byteslice")},
 	{s: true, d: &scaniface, wantiface: true},
 	{s: nil, d: &scaniface},
+	{s: []byte(nil), d: &scaniface, wantiface: []byte(nil)},
 }
 
 func intPtrValue(intptr interface{}) interface{} {
@@ -191,7 +222,7 @@
 			}
 			if srcBytes, ok := ct.s.([]byte); ok {
 				dstBytes := (*ifptr).([]byte)
-				if &dstBytes[0] == &srcBytes[0] {
+				if len(srcBytes) > 0 && &dstBytes[0] == &srcBytes[0] {
 					errf("copy into interface{} didn't copy []byte data")
 				}
 			}
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go gcc-4.8.1/libgo/go/database/sql/driver/driver.go
--- gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/driver/driver.go	2013-10-01 16:06:44.052554283 +0000
@@ -10,8 +10,8 @@
 
 import "errors"
 
-// A driver Value is a value that drivers must be able to handle.
-// A Value is either nil or an instance of one of these types:
+// Value is a value that drivers must be able to handle.
+// It is either nil or an instance of one of these types:
 //
 //   int64
 //   float64
@@ -56,7 +56,7 @@
 
 // Execer is an optional interface that may be implemented by a Conn.
 //
-// If a Conn does not implement Execer, the db package's DB.Exec will
+// If a Conn does not implement Execer, the sql package's DB.Exec will
 // first prepare a query, execute the statement, and then close the
 // statement.
 //
@@ -65,6 +65,17 @@
 	Exec(query string, args []Value) (Result, error)
 }
 
+// Queryer is an optional interface that may be implemented by a Conn.
+//
+// If a Conn does not implement Queryer, the sql package's DB.Query will
+// first prepare a query, execute the statement, and then close the
+// statement.
+//
+// Query may return ErrSkip.
+type Queryer interface {
+	Query(query string, args []Value) (Rows, error)
+}
+
 // Conn is a connection to a database. It is not used concurrently
 // by multiple goroutines.
 //
@@ -104,23 +115,8 @@
 type Stmt interface {
 	// Close closes the statement.
 	//
-	// Closing a statement should not interrupt any outstanding
-	// query created from that statement. That is, the following
-	// order of operations is valid:
-	//
-	//  * create a driver statement
-	//  * call Query on statement, returning Rows
-	//  * close the statement
-	//  * read from Rows
-	//
-	// If closing a statement invalidates currently-running
-	// queries, the final step above will incorrectly fail.
-	//
-	// TODO(bradfitz): possibly remove the restriction above, if
-	// enough driver authors object and find it complicates their
-	// code too much. The sql package could be smarter about
-	// refcounting the statement and closing it at the appropriate
-	// time.
+	// As of Go 1.1, a Stmt will not be closed if it's in use
+	// by any queries.
 	Close() error
 
 	// NumInput returns the number of placeholder parameters.
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go gcc-4.8.1/libgo/go/database/sql/fakedb_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/fakedb_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -13,6 +13,7 @@
 	"strconv"
 	"strings"
 	"sync"
+	"testing"
 	"time"
 )
 
@@ -34,9 +35,10 @@
 // When opening a fakeDriver's database, it starts empty with no
 // tables.  All tables and data are stored in memory only.
 type fakeDriver struct {
-	mu        sync.Mutex
-	openCount int
-	dbs       map[string]*fakeDB
+	mu         sync.Mutex // guards 3 following fields
+	openCount  int        // conn opens
+	closeCount int        // conn closes
+	dbs        map[string]*fakeDB
 }
 
 type fakeDB struct {
@@ -229,7 +231,43 @@
 	return c.currTx, nil
 }
 
-func (c *fakeConn) Close() error {
+var hookPostCloseConn struct {
+	sync.Mutex
+	fn func(*fakeConn, error)
+}
+
+func setHookpostCloseConn(fn func(*fakeConn, error)) {
+	hookPostCloseConn.Lock()
+	defer hookPostCloseConn.Unlock()
+	hookPostCloseConn.fn = fn
+}
+
+var testStrictClose *testing.T
+
+// setStrictFakeConnClose sets the t to Errorf on when fakeConn.Close
+// fails to close. If nil, the check is disabled.
+func setStrictFakeConnClose(t *testing.T) {
+	testStrictClose = t
+}
+
+func (c *fakeConn) Close() (err error) {
+	drv := fdriver.(*fakeDriver)
+	defer func() {
+		if err != nil && testStrictClose != nil {
+			testStrictClose.Errorf("failed to close a test fakeConn: %v", err)
+		}
+		hookPostCloseConn.Lock()
+		fn := hookPostCloseConn.fn
+		hookPostCloseConn.Unlock()
+		if fn != nil {
+			fn(c, err)
+		}
+		if err == nil {
+			drv.mu.Lock()
+			drv.closeCount++
+			drv.mu.Unlock()
+		}
+	}()
 	if c.currTx != nil {
 		return errors.New("can't close fakeConn; in a Transaction")
 	}
@@ -266,6 +304,18 @@
 	return nil, driver.ErrSkip
 }
 
+func (c *fakeConn) Query(query string, args []driver.Value) (driver.Rows, error) {
+	// This is an optional interface, but it's implemented here
+	// just to check that all the args are of the proper types.
+	// ErrSkip is returned so the caller acts as if we didn't
+	// implement this at all.
+	err := checkSubsetTypes(args)
+	if err != nil {
+		return nil, err
+	}
+	return nil, driver.ErrSkip
+}
+
 func errf(msg string, args ...interface{}) error {
 	return errors.New("fakedb: " + fmt.Sprintf(msg, args...))
 }
@@ -412,6 +462,12 @@
 }
 
 func (s *fakeStmt) Close() error {
+	if s.c == nil {
+		panic("nil conn in fakeStmt.Close")
+	}
+	if s.c.db == nil {
+		panic("in fakeStmt.Close, conn's db is nil (already closed)")
+	}
 	if !s.closed {
 		s.c.incrStat(&s.c.stmtsClosed)
 		s.closed = true
@@ -503,6 +559,15 @@
 	if !ok {
 		return nil, fmt.Errorf("fakedb: table %q doesn't exist", s.table)
 	}
+
+	if s.table == "magicquery" {
+		if len(s.whereCol) == 2 && s.whereCol[0] == "op" && s.whereCol[1] == "millis" {
+			if args[0] == "sleep" {
+				time.Sleep(time.Duration(args[1].(int64)) * time.Millisecond)
+			}
+		}
+	}
+
 	t.mu.Lock()
 	defer t.mu.Unlock()
 
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql.go gcc-4.8.1/libgo/go/database/sql/sql.go
--- gcc-4.8.1.orig/libgo/go/database/sql/sql.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/sql.go	2013-10-01 16:06:44.052554283 +0000
@@ -4,6 +4,9 @@
 
 // Package sql provides a generic interface around SQL (or SQL-like)
 // databases.
+//
+// The sql package must be used in conjunction with a database driver.
+// See http://golang.org/s/sqldrivers for a list of drivers.
 package sql
 
 import (
@@ -11,6 +14,7 @@
 	"errors"
 	"fmt"
 	"io"
+	"runtime"
 	"sync"
 )
 
@@ -176,22 +180,197 @@
 // DB is a database handle. It's safe for concurrent use by multiple
 // goroutines.
 //
-// If the underlying database driver has the concept of a connection
-// and per-connection session state, the sql package manages creating
-// and freeing connections automatically, including maintaining a free
-// pool of idle connections. If observing session state is required,
-// either do not share a *DB between multiple concurrent goroutines or
-// create and observe all state only within a transaction. Once
-// DB.Open is called, the returned Tx is bound to a single isolated
-// connection. Once Tx.Commit or Tx.Rollback is called, that
-// connection is returned to DB's idle connection pool.
+// The sql package creates and frees connections automatically; it
+// also maintains a free pool of idle connections. If the database has
+// a concept of per-connection state, such state can only be reliably
+// observed within a transaction. Once DB.Begin is called, the
+// returned Tx is bound to a single connection. Once Commit or
+// Rollback is called on the transaction, that transaction's
+// connection is returned to DB's idle connection pool. The pool size
+// can be controlled with SetMaxIdleConns.
 type DB struct {
 	driver driver.Driver
 	dsn    string
 
-	mu       sync.Mutex // protects freeConn and closed
-	freeConn []driver.Conn
+	mu       sync.Mutex // protects following fields
+	freeConn []*driverConn
 	closed   bool
+	dep      map[finalCloser]depSet
+	lastPut  map[*driverConn]string // stacktrace of last conn's put; debug only
+	maxIdle  int                    // zero means defaultMaxIdleConns; negative means 0
+}
+
+// driverConn wraps a driver.Conn with a mutex, to
+// be held during all calls into the Conn. (including any calls onto
+// interfaces returned via that Conn, such as calls on Tx, Stmt,
+// Result, Rows)
+type driverConn struct {
+	db *DB
+
+	sync.Mutex  // guards following
+	ci          driver.Conn
+	closed      bool
+	finalClosed bool // ci.Close has been called
+	openStmt    map[driver.Stmt]bool
+
+	// guarded by db.mu
+	inUse      bool
+	onPut      []func() // code (with db.mu held) run when conn is next returned
+	dbmuClosed bool     // same as closed, but guarded by db.mu, for connIfFree
+}
+
+func (dc *driverConn) removeOpenStmt(si driver.Stmt) {
+	dc.Lock()
+	defer dc.Unlock()
+	delete(dc.openStmt, si)
+}
+
+func (dc *driverConn) prepareLocked(query string) (driver.Stmt, error) {
+	si, err := dc.ci.Prepare(query)
+	if err == nil {
+		// Track each driverConn's open statements, so we can close them
+		// before closing the conn.
+		//
+		// TODO(bradfitz): let drivers opt out of caring about
+		// stmt closes if the conn is about to close anyway? For now
+		// do the safe thing, in case stmts need to be closed.
+		//
+		// TODO(bradfitz): after Go 1.1, closing driver.Stmts
+		// should be moved to driverStmt, using unique
+		// *driverStmts everywhere (including from
+		// *Stmt.connStmt, instead of returning a
+		// driver.Stmt), using driverStmt as a pointer
+		// everywhere, and making it a finalCloser.
+		if dc.openStmt == nil {
+			dc.openStmt = make(map[driver.Stmt]bool)
+		}
+		dc.openStmt[si] = true
+	}
+	return si, err
+}
+
+// the dc.db's Mutex is held.
+func (dc *driverConn) closeDBLocked() error {
+	dc.Lock()
+	if dc.closed {
+		dc.Unlock()
+		return errors.New("sql: duplicate driverConn close")
+	}
+	dc.closed = true
+	dc.Unlock() // not defer; removeDep finalClose calls may need to lock
+	return dc.db.removeDepLocked(dc, dc)()
+}
+
+func (dc *driverConn) Close() error {
+	dc.Lock()
+	if dc.closed {
+		dc.Unlock()
+		return errors.New("sql: duplicate driverConn close")
+	}
+	dc.closed = true
+	dc.Unlock() // not defer; removeDep finalClose calls may need to lock
+
+	// And now updates that require holding dc.mu.Lock.
+	dc.db.mu.Lock()
+	dc.dbmuClosed = true
+	fn := dc.db.removeDepLocked(dc, dc)
+	dc.db.mu.Unlock()
+	return fn()
+}
+
+func (dc *driverConn) finalClose() error {
+	dc.Lock()
+
+	for si := range dc.openStmt {
+		si.Close()
+	}
+	dc.openStmt = nil
+
+	err := dc.ci.Close()
+	dc.ci = nil
+	dc.finalClosed = true
+
+	dc.Unlock()
+	return err
+}
+
+// driverStmt associates a driver.Stmt with the
+// *driverConn from which it came, so the driverConn's lock can be
+// held during calls.
+type driverStmt struct {
+	sync.Locker // the *driverConn
+	si          driver.Stmt
+}
+
+func (ds *driverStmt) Close() error {
+	ds.Lock()
+	defer ds.Unlock()
+	return ds.si.Close()
+}
+
+// depSet is a finalCloser's outstanding dependencies
+type depSet map[interface{}]bool // set of true bools
+
+// The finalCloser interface is used by (*DB).addDep and related
+// dependency reference counting.
+type finalCloser interface {
+	// finalClose is called when the reference count of an object
+	// goes to zero. (*DB).mu is not held while calling it.
+	finalClose() error
+}
+
+// addDep notes that x now depends on dep, and x's finalClose won't be
+// called until all of x's dependencies are removed with removeDep.
+func (db *DB) addDep(x finalCloser, dep interface{}) {
+	//println(fmt.Sprintf("addDep(%T %p, %T %p)", x, x, dep, dep))
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	db.addDepLocked(x, dep)
+}
+
+func (db *DB) addDepLocked(x finalCloser, dep interface{}) {
+	if db.dep == nil {
+		db.dep = make(map[finalCloser]depSet)
+	}
+	xdep := db.dep[x]
+	if xdep == nil {
+		xdep = make(depSet)
+		db.dep[x] = xdep
+	}
+	xdep[dep] = true
+}
+
+// removeDep notes that x no longer depends on dep.
+// If x still has dependencies, nil is returned.
+// If x no longer has any dependencies, its finalClose method will be
+// called and its error value will be returned.
+func (db *DB) removeDep(x finalCloser, dep interface{}) error {
+	db.mu.Lock()
+	fn := db.removeDepLocked(x, dep)
+	db.mu.Unlock()
+	return fn()
+}
+
+func (db *DB) removeDepLocked(x finalCloser, dep interface{}) func() error {
+	//println(fmt.Sprintf("removeDep(%T %p, %T %p)", x, x, dep, dep))
+	done := false
+
+	xdep := db.dep[x]
+	if xdep != nil {
+		delete(xdep, dep)
+		if len(xdep) == 0 {
+			delete(db.dep, x)
+			done = true
+		}
+	}
+
+	if !done {
+		return func() error { return nil }
+	}
+	return func() error {
+		//println(fmt.Sprintf("calling final close on %T %v (%#v)", x, x, x))
+		return x.finalClose()
+	}
 }
 
 // Open opens a database specified by its database driver name and a
@@ -199,13 +378,38 @@
 // database name and connection information.
 //
 // Most users will open a database via a driver-specific connection
-// helper function that returns a *DB.
+// helper function that returns a *DB. No database drivers are included
+// in the Go standard library. See http://golang.org/s/sqldrivers for
+// a list of third-party drivers.
+//
+// Open may just validate its arguments without creating a connection
+// to the database. To verify that the data source name is valid, call
+// Ping.
 func Open(driverName, dataSourceName string) (*DB, error) {
-	driver, ok := drivers[driverName]
+	driveri, ok := drivers[driverName]
 	if !ok {
 		return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)
 	}
-	return &DB{driver: driver, dsn: dataSourceName}, nil
+	db := &DB{
+		driver:  driveri,
+		dsn:     dataSourceName,
+		lastPut: make(map[*driverConn]string),
+	}
+	return db, nil
+}
+
+// Ping verifies a connection to the database is still alive,
+// establishing a connection if necessary.
+func (db *DB) Ping() error {
+	// TODO(bradfitz): give drivers an optional hook to implement
+	// this in a more efficient or more reliable way, if they
+	// have one.
+	dc, err := db.conn()
+	if err != nil {
+		return err
+	}
+	db.putConn(dc, nil)
+	return nil
 }
 
 // Close closes the database, releasing any open resources.
@@ -213,8 +417,8 @@
 	db.mu.Lock()
 	defer db.mu.Unlock()
 	var err error
-	for _, c := range db.freeConn {
-		err1 := c.Close()
+	for _, dc := range db.freeConn {
+		err1 := dc.closeDBLocked()
 		if err1 != nil {
 			err = err1
 		}
@@ -224,15 +428,45 @@
 	return err
 }
 
-func (db *DB) maxIdleConns() int {
-	const defaultMaxIdleConns = 2
-	// TODO(bradfitz): ask driver, if supported, for its default preference
-	// TODO(bradfitz): let users override?
-	return defaultMaxIdleConns
+const defaultMaxIdleConns = 2
+
+func (db *DB) maxIdleConnsLocked() int {
+	n := db.maxIdle
+	switch {
+	case n == 0:
+		// TODO(bradfitz): ask driver, if supported, for its default preference
+		return defaultMaxIdleConns
+	case n < 0:
+		return 0
+	default:
+		return n
+	}
+}
+
+// SetMaxIdleConns sets the maximum number of connections in the idle
+// connection pool.
+//
+// If n <= 0, no idle connections are retained.
+func (db *DB) SetMaxIdleConns(n int) {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	if n > 0 {
+		db.maxIdle = n
+	} else {
+		// No idle connections.
+		db.maxIdle = -1
+	}
+	for len(db.freeConn) > 0 && len(db.freeConn) > n {
+		nfree := len(db.freeConn)
+		dc := db.freeConn[nfree-1]
+		db.freeConn[nfree-1] = nil
+		db.freeConn = db.freeConn[:nfree-1]
+		go dc.Close()
+	}
 }
 
-// conn returns a newly-opened or cached driver.Conn
-func (db *DB) conn() (driver.Conn, error) {
+// conn returns a newly-opened or cached *driverConn
+func (db *DB) conn() (*driverConn, error) {
 	db.mu.Lock()
 	if db.closed {
 		db.mu.Unlock()
@@ -241,53 +475,132 @@
 	if n := len(db.freeConn); n > 0 {
 		conn := db.freeConn[n-1]
 		db.freeConn = db.freeConn[:n-1]
+		conn.inUse = true
 		db.mu.Unlock()
 		return conn, nil
 	}
 	db.mu.Unlock()
-	return db.driver.Open(db.dsn)
+
+	ci, err := db.driver.Open(db.dsn)
+	if err != nil {
+		return nil, err
+	}
+	dc := &driverConn{
+		db: db,
+		ci: ci,
+	}
+	db.mu.Lock()
+	db.addDepLocked(dc, dc)
+	dc.inUse = true
+	db.mu.Unlock()
+	return dc, nil
 }
 
-func (db *DB) connIfFree(wanted driver.Conn) (conn driver.Conn, ok bool) {
+var (
+	errConnClosed = errors.New("database/sql: internal sentinel error: conn is closed")
+	errConnBusy   = errors.New("database/sql: internal sentinel error: conn is busy")
+)
+
+// connIfFree returns (wanted, nil) if wanted is still a valid conn and
+// isn't in use.
+//
+// The error is errConnClosed if the connection if the requested connection
+// is invalid because it's been closed.
+//
+// The error is errConnBusy if the connection is in use.
+func (db *DB) connIfFree(wanted *driverConn) (*driverConn, error) {
 	db.mu.Lock()
 	defer db.mu.Unlock()
+	if wanted.inUse {
+		return nil, errConnBusy
+	}
+	if wanted.dbmuClosed {
+		return nil, errConnClosed
+	}
 	for i, conn := range db.freeConn {
 		if conn != wanted {
 			continue
 		}
 		db.freeConn[i] = db.freeConn[len(db.freeConn)-1]
 		db.freeConn = db.freeConn[:len(db.freeConn)-1]
-		return wanted, true
+		wanted.inUse = true
+		return wanted, nil
 	}
-	return nil, false
+	// TODO(bradfitz): shouldn't get here. After Go 1.1, change this to:
+	// panic("connIfFree call requested a non-closed, non-busy, non-free conn")
+	// Which passes all the tests, but I'm too paranoid to include this
+	// late in Go 1.1.
+	// Instead, treat it like a busy connection:
+	return nil, errConnBusy
 }
 
 // putConnHook is a hook for testing.
-var putConnHook func(*DB, driver.Conn)
+var putConnHook func(*DB, *driverConn)
+
+// noteUnusedDriverStatement notes that si is no longer used and should
+// be closed whenever possible (when c is next not in use), unless c is
+// already closed.
+func (db *DB) noteUnusedDriverStatement(c *driverConn, si driver.Stmt) {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	if c.inUse {
+		c.onPut = append(c.onPut, func() {
+			si.Close()
+		})
+	} else {
+		c.Lock()
+		defer c.Unlock()
+		if !c.finalClosed {
+			si.Close()
+		}
+	}
+}
+
+// debugGetPut determines whether getConn & putConn calls' stack traces
+// are returned for more verbose crashes.
+const debugGetPut = false
 
 // putConn adds a connection to the db's free pool.
 // err is optionally the last error that occurred on this connection.
-func (db *DB) putConn(c driver.Conn, err error) {
+func (db *DB) putConn(dc *driverConn, err error) {
+	db.mu.Lock()
+	if !dc.inUse {
+		if debugGetPut {
+			fmt.Printf("putConn(%v) DUPLICATE was: %s\n\nPREVIOUS was: %s", dc, stack(), db.lastPut[dc])
+		}
+		panic("sql: connection returned that was never out")
+	}
+	if debugGetPut {
+		db.lastPut[dc] = stack()
+	}
+	dc.inUse = false
+
+	for _, fn := range dc.onPut {
+		fn()
+	}
+	dc.onPut = nil
+
 	if err == driver.ErrBadConn {
 		// Don't reuse bad connections.
+		db.mu.Unlock()
 		return
 	}
-	db.mu.Lock()
 	if putConnHook != nil {
-		putConnHook(db, c)
+		putConnHook(db, dc)
 	}
-	if n := len(db.freeConn); !db.closed && n < db.maxIdleConns() {
-		db.freeConn = append(db.freeConn, c)
+	if n := len(db.freeConn); !db.closed && n < db.maxIdleConnsLocked() {
+		db.freeConn = append(db.freeConn, dc)
 		db.mu.Unlock()
 		return
 	}
-	// TODO: check to see if we need this Conn for any prepared
-	// statements which are still active?
 	db.mu.Unlock()
-	c.Close()
+
+	dc.Close()
 }
 
-// Prepare creates a prepared statement for later execution.
+// Prepare creates a prepared statement for later queries or executions.
+// Multiple queries or executions may be run concurrently from the
+// returned statement.
 func (db *DB) Prepare(query string) (*Stmt, error) {
 	var stmt *Stmt
 	var err error
@@ -300,34 +613,36 @@
 	return stmt, err
 }
 
-func (db *DB) prepare(query string) (stmt *Stmt, err error) {
+func (db *DB) prepare(query string) (*Stmt, error) {
 	// TODO: check if db.driver supports an optional
 	// driver.Preparer interface and call that instead, if so,
 	// otherwise we make a prepared statement that's bound
 	// to a connection, and to execute this prepared statement
 	// we either need to use this connection (if it's free), else
 	// get a new connection + re-prepare + execute on that one.
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
-	defer func() {
-		db.putConn(ci, err)
-	}()
-
-	si, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.prepareLocked(query)
+	dc.Unlock()
 	if err != nil {
+		db.putConn(dc, err)
 		return nil, err
 	}
-	stmt = &Stmt{
+	stmt := &Stmt{
 		db:    db,
 		query: query,
-		css:   []connStmt{{ci, si}},
+		css:   []connStmt{{dc, si}},
 	}
+	db.addDep(stmt, stmt)
+	db.putConn(dc, nil)
 	return stmt, nil
 }
 
 // Exec executes a query without returning any rows.
+// The args are for any placeholder parameters in the query.
 func (db *DB) Exec(query string, args ...interface{}) (Result, error) {
 	var res Result
 	var err error
@@ -341,50 +656,119 @@
 }
 
 func (db *DB) exec(query string, args []interface{}) (res Result, err error) {
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
 	defer func() {
-		db.putConn(ci, err)
+		db.putConn(dc, err)
 	}()
 
-	if execer, ok := ci.(driver.Execer); ok {
+	if execer, ok := dc.ci.(driver.Execer); ok {
 		dargs, err := driverArgs(nil, args)
 		if err != nil {
 			return nil, err
 		}
+		dc.Lock()
 		resi, err := execer.Exec(query, dargs)
+		dc.Unlock()
 		if err != driver.ErrSkip {
 			if err != nil {
 				return nil, err
 			}
-			return result{resi}, nil
+			return driverResult{dc, resi}, nil
 		}
 	}
 
-	sti, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	defer sti.Close()
-
-	return resultFromStatement(sti, args...)
+	defer withLock(dc, func() { si.Close() })
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
 // Query executes a query that returns rows, typically a SELECT.
 // The args are for any placeholder parameters in the query.
 func (db *DB) Query(query string, args ...interface{}) (*Rows, error) {
-	stmt, err := db.Prepare(query)
+	var rows *Rows
+	var err error
+	for i := 0; i < 10; i++ {
+		rows, err = db.query(query, args)
+		if err != driver.ErrBadConn {
+			break
+		}
+	}
+	return rows, err
+}
+
+func (db *DB) query(query string, args []interface{}) (*Rows, error) {
+	ci, err := db.conn()
+	if err != nil {
+		return nil, err
+	}
+
+	releaseConn := func(err error) { db.putConn(ci, err) }
+
+	return db.queryConn(ci, releaseConn, query, args)
+}
+
+// queryConn executes a query on the given connection.
+// The connection gets released by the releaseConn function.
+func (db *DB) queryConn(dc *driverConn, releaseConn func(error), query string, args []interface{}) (*Rows, error) {
+	if queryer, ok := dc.ci.(driver.Queryer); ok {
+		dargs, err := driverArgs(nil, args)
+		if err != nil {
+			releaseConn(err)
+			return nil, err
+		}
+		dc.Lock()
+		rowsi, err := queryer.Query(query, dargs)
+		dc.Unlock()
+		if err != driver.ErrSkip {
+			if err != nil {
+				releaseConn(err)
+				return nil, err
+			}
+			// Note: ownership of dc passes to the *Rows, to be freed
+			// with releaseConn.
+			rows := &Rows{
+				dc:          dc,
+				releaseConn: releaseConn,
+				rowsi:       rowsi,
+			}
+			return rows, nil
+		}
+	}
+
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
+		releaseConn(err)
 		return nil, err
 	}
-	rows, err := stmt.Query(args...)
+
+	ds := driverStmt{dc, si}
+	rowsi, err := rowsiFromStatement(ds, args...)
 	if err != nil {
-		stmt.Close()
+		releaseConn(err)
+		dc.Lock()
+		si.Close()
+		dc.Unlock()
 		return nil, err
 	}
-	rows.closeStmt = stmt
+
+	// Note: ownership of ci passes to the *Rows, to be freed
+	// with releaseConn.
+	rows := &Rows{
+		dc:          dc,
+		releaseConn: releaseConn,
+		rowsi:       rowsi,
+		closeStmt:   si,
+	}
 	return rows, nil
 }
 
@@ -411,18 +795,20 @@
 }
 
 func (db *DB) begin() (tx *Tx, err error) {
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
-	txi, err := ci.Begin()
+	dc.Lock()
+	txi, err := dc.ci.Begin()
+	dc.Unlock()
 	if err != nil {
-		db.putConn(ci, err)
+		db.putConn(dc, err)
 		return nil, err
 	}
 	return &Tx{
 		db:  db,
-		ci:  ci,
+		dc:  dc,
 		txi: txi,
 	}, nil
 }
@@ -441,15 +827,11 @@
 type Tx struct {
 	db *DB
 
-	// ci is owned exclusively until Commit or Rollback, at which point
+	// dc is owned exclusively until Commit or Rollback, at which point
 	// it's returned with putConn.
-	ci  driver.Conn
+	dc  *driverConn
 	txi driver.Tx
 
-	// cimu is held while somebody is using ci (between grabConn
-	// and releaseConn)
-	cimu sync.Mutex
-
 	// done transitions from false to true exactly once, on Commit
 	// or Rollback. once done, all operations fail with
 	// ErrTxDone.
@@ -463,21 +845,16 @@
 		panic("double close") // internal error
 	}
 	tx.done = true
-	tx.db.putConn(tx.ci, nil)
-	tx.ci = nil
+	tx.db.putConn(tx.dc, nil)
+	tx.dc = nil
 	tx.txi = nil
 }
 
-func (tx *Tx) grabConn() (driver.Conn, error) {
+func (tx *Tx) grabConn() (*driverConn, error) {
 	if tx.done {
 		return nil, ErrTxDone
 	}
-	tx.cimu.Lock()
-	return tx.ci, nil
-}
-
-func (tx *Tx) releaseConn() {
-	tx.cimu.Unlock()
+	return tx.dc, nil
 }
 
 // Commit commits the transaction.
@@ -486,6 +863,8 @@
 		return ErrTxDone
 	}
 	defer tx.close()
+	tx.dc.Lock()
+	defer tx.dc.Unlock()
 	return tx.txi.Commit()
 }
 
@@ -495,6 +874,8 @@
 		return ErrTxDone
 	}
 	defer tx.close()
+	tx.dc.Lock()
+	defer tx.dc.Unlock()
 	return tx.txi.Rollback()
 }
 
@@ -518,21 +899,25 @@
 	// Perhaps just looking at the reference count (by noting
 	// Stmt.Close) would be enough. We might also want a finalizer
 	// on Stmt to drop the reference count.
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return nil, err
 	}
-	defer tx.releaseConn()
 
-	si, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
 
 	stmt := &Stmt{
-		db:    tx.db,
-		tx:    tx,
-		txsi:  si,
+		db: tx.db,
+		tx: tx,
+		txsi: &driverStmt{
+			Locker: dc,
+			si:     si,
+		},
 		query: query,
 	}
 	return stmt, nil
@@ -556,16 +941,20 @@
 	if tx.db != stmt.db {
 		return &Stmt{stickyErr: errors.New("sql: Tx.Stmt: statement from different database used")}
 	}
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return &Stmt{stickyErr: err}
 	}
-	defer tx.releaseConn()
-	si, err := ci.Prepare(stmt.query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(stmt.query)
+	dc.Unlock()
 	return &Stmt{
-		db:        tx.db,
-		tx:        tx,
-		txsi:      si,
+		db: tx.db,
+		tx: tx,
+		txsi: &driverStmt{
+			Locker: dc,
+			si:     si,
+		},
 		query:     stmt.query,
 		stickyErr: err,
 	}
@@ -574,51 +963,46 @@
 // Exec executes a query that doesn't return rows.
 // For example: an INSERT and UPDATE.
 func (tx *Tx) Exec(query string, args ...interface{}) (Result, error) {
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return nil, err
 	}
-	defer tx.releaseConn()
 
-	if execer, ok := ci.(driver.Execer); ok {
+	if execer, ok := dc.ci.(driver.Execer); ok {
 		dargs, err := driverArgs(nil, args)
 		if err != nil {
 			return nil, err
 		}
+		dc.Lock()
 		resi, err := execer.Exec(query, dargs)
+		dc.Unlock()
 		if err == nil {
-			return result{resi}, nil
+			return driverResult{dc, resi}, nil
 		}
 		if err != driver.ErrSkip {
 			return nil, err
 		}
 	}
 
-	sti, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	defer sti.Close()
+	defer withLock(dc, func() { si.Close() })
 
-	return resultFromStatement(sti, args...)
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
 // Query executes a query that returns rows, typically a SELECT.
 func (tx *Tx) Query(query string, args ...interface{}) (*Rows, error) {
-	if tx.done {
-		return nil, ErrTxDone
-	}
-	stmt, err := tx.Prepare(query)
-	if err != nil {
-		return nil, err
-	}
-	rows, err := stmt.Query(args...)
+	dc, err := tx.grabConn()
 	if err != nil {
-		stmt.Close()
 		return nil, err
 	}
-	rows.closeStmt = stmt
-	return rows, err
+	releaseConn := func(error) {}
+	return tx.db.queryConn(dc, releaseConn, query, args)
 }
 
 // QueryRow executes a query that is expected to return at most one row.
@@ -631,7 +1015,7 @@
 
 // connStmt is a prepared statement on a particular connection.
 type connStmt struct {
-	ci driver.Conn
+	dc *driverConn
 	si driver.Stmt
 }
 
@@ -642,9 +1026,11 @@
 	query     string // that created the Stmt
 	stickyErr error  // if non-nil, this error is returned for all operations
 
+	closemu sync.RWMutex // held exclusively during close, for read otherwise.
+
 	// If in a transaction, else both nil:
 	tx   *Tx
-	txsi driver.Stmt
+	txsi *driverStmt
 
 	mu     sync.Mutex // protects the rest of the fields
 	closed bool
@@ -659,39 +1045,47 @@
 // Exec executes a prepared statement with the given arguments and
 // returns a Result summarizing the effect of the statement.
 func (s *Stmt) Exec(args ...interface{}) (Result, error) {
-	_, releaseConn, si, err := s.connStmt()
+	s.closemu.RLock()
+	defer s.closemu.RUnlock()
+	dc, releaseConn, si, err := s.connStmt()
 	if err != nil {
 		return nil, err
 	}
 	defer releaseConn(nil)
 
-	return resultFromStatement(si, args...)
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
-func resultFromStatement(si driver.Stmt, args ...interface{}) (Result, error) {
+func resultFromStatement(ds driverStmt, args ...interface{}) (Result, error) {
+	ds.Lock()
+	want := ds.si.NumInput()
+	ds.Unlock()
+
 	// -1 means the driver doesn't know how to count the number of
 	// placeholders, so we won't sanity check input here and instead let the
 	// driver deal with errors.
-	if want := si.NumInput(); want != -1 && len(args) != want {
+	if want != -1 && len(args) != want {
 		return nil, fmt.Errorf("sql: expected %d arguments, got %d", want, len(args))
 	}
 
-	dargs, err := driverArgs(si, args)
+	dargs, err := driverArgs(&ds, args)
 	if err != nil {
 		return nil, err
 	}
 
-	resi, err := si.Exec(dargs)
+	ds.Lock()
+	resi, err := ds.si.Exec(dargs)
+	ds.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	return result{resi}, nil
+	return driverResult{ds.Locker, resi}, nil
 }
 
 // connStmt returns a free driver connection on which to execute the
 // statement, a function to call to release the connection, and a
 // statement bound to that connection.
-func (s *Stmt) connStmt() (ci driver.Conn, releaseConn func(error), si driver.Stmt, err error) {
+func (s *Stmt) connStmt() (ci *driverConn, releaseConn func(error), si driver.Stmt, err error) {
 	if err = s.stickyErr; err != nil {
 		return
 	}
@@ -710,19 +1104,27 @@
 		if err != nil {
 			return
 		}
-		releaseConn = func(error) { s.tx.releaseConn() }
-		return ci, releaseConn, s.txsi, nil
+		releaseConn = func(error) {}
+		return ci, releaseConn, s.txsi.si, nil
 	}
 
 	var cs connStmt
 	match := false
-	for _, v := range s.css {
-		// TODO(bradfitz): lazily clean up entries in this
-		// list with dead conns while enumerating
-		if _, match = s.db.connIfFree(v.ci); match {
+	for i := 0; i < len(s.css); i++ {
+		v := s.css[i]
+		_, err := s.db.connIfFree(v.dc)
+		if err == nil {
+			match = true
 			cs = v
 			break
 		}
+		if err == errConnClosed {
+			// Lazily remove dead conn from our freelist.
+			s.css[i] = s.css[len(s.css)-1]
+			s.css = s.css[:len(s.css)-1]
+			i--
+		}
+
 	}
 	s.mu.Unlock()
 
@@ -730,11 +1132,13 @@
 	// TODO(bradfitz): or wait for one? make configurable later?
 	if !match {
 		for i := 0; ; i++ {
-			ci, err := s.db.conn()
+			dc, err := s.db.conn()
 			if err != nil {
 				return nil, nil, nil, err
 			}
-			si, err := ci.Prepare(s.query)
+			dc.Lock()
+			si, err := dc.prepareLocked(s.query)
+			dc.Unlock()
 			if err == driver.ErrBadConn && i < 10 {
 				continue
 			}
@@ -742,14 +1146,14 @@
 				return nil, nil, nil, err
 			}
 			s.mu.Lock()
-			cs = connStmt{ci, si}
+			cs = connStmt{dc, si}
 			s.css = append(s.css, cs)
 			s.mu.Unlock()
 			break
 		}
 	}
 
-	conn := cs.ci
+	conn := cs.dc
 	releaseConn = func(err error) { s.db.putConn(conn, err) }
 	return conn, releaseConn, cs.si, nil
 }
@@ -757,37 +1161,60 @@
 // Query executes a prepared query statement with the given arguments
 // and returns the query results as a *Rows.
 func (s *Stmt) Query(args ...interface{}) (*Rows, error) {
-	ci, releaseConn, si, err := s.connStmt()
+	s.closemu.RLock()
+	defer s.closemu.RUnlock()
+
+	dc, releaseConn, si, err := s.connStmt()
 	if err != nil {
 		return nil, err
 	}
 
+	ds := driverStmt{dc, si}
+	rowsi, err := rowsiFromStatement(ds, args...)
+	if err != nil {
+		releaseConn(err)
+		return nil, err
+	}
+
+	// Note: ownership of ci passes to the *Rows, to be freed
+	// with releaseConn.
+	rows := &Rows{
+		dc:    dc,
+		rowsi: rowsi,
+		// releaseConn set below
+	}
+	s.db.addDep(s, rows)
+	rows.releaseConn = func(err error) {
+		releaseConn(err)
+		s.db.removeDep(s, rows)
+	}
+	return rows, nil
+}
+
+func rowsiFromStatement(ds driverStmt, args ...interface{}) (driver.Rows, error) {
+	ds.Lock()
+	want := ds.si.NumInput()
+	ds.Unlock()
+
 	// -1 means the driver doesn't know how to count the number of
 	// placeholders, so we won't sanity check input here and instead let the
 	// driver deal with errors.
-	if want := si.NumInput(); want != -1 && len(args) != want {
-		return nil, fmt.Errorf("sql: statement expects %d inputs; got %d", si.NumInput(), len(args))
+	if want != -1 && len(args) != want {
+		return nil, fmt.Errorf("sql: statement expects %d inputs; got %d", want, len(args))
 	}
 
-	dargs, err := driverArgs(si, args)
+	dargs, err := driverArgs(&ds, args)
 	if err != nil {
 		return nil, err
 	}
 
-	rowsi, err := si.Query(dargs)
+	ds.Lock()
+	rowsi, err := ds.si.Query(dargs)
+	ds.Unlock()
 	if err != nil {
-		releaseConn(err)
 		return nil, err
 	}
-	// Note: ownership of ci passes to the *Rows, to be freed
-	// with releaseConn.
-	rows := &Rows{
-		db:          s.db,
-		ci:          ci,
-		releaseConn: releaseConn,
-		rowsi:       rowsi,
-	}
-	return rows, nil
+	return rowsi, nil
 }
 
 // QueryRow executes a prepared query statement with the given arguments.
@@ -811,6 +1238,9 @@
 
 // Close closes the statement.
 func (s *Stmt) Close() error {
+	s.closemu.Lock()
+	defer s.closemu.Unlock()
+
 	if s.stickyErr != nil {
 		return s.stickyErr
 	}
@@ -823,18 +1253,19 @@
 
 	if s.tx != nil {
 		s.txsi.Close()
-	} else {
-		for _, v := range s.css {
-			if ci, match := s.db.connIfFree(v.ci); match {
-				v.si.Close()
-				s.db.putConn(ci, nil)
-			} else {
-				// TODO(bradfitz): care that we can't close
-				// this statement because the statement's
-				// connection is in use?
-			}
-		}
+		return nil
+	}
+
+	return s.db.removeDep(s, s)
+}
+
+func (s *Stmt) finalClose() error {
+	for _, v := range s.css {
+		s.db.noteUnusedDriverStatement(v.dc, v.si)
+		v.dc.removeOpenStmt(v.si)
+		s.db.removeDep(v.dc, s)
 	}
+	s.css = nil
 	return nil
 }
 
@@ -852,15 +1283,14 @@
 //     err = rows.Err() // get any error encountered during iteration
 //     ...
 type Rows struct {
-	db          *DB
-	ci          driver.Conn // owned; must call putconn when closed to release
+	dc          *driverConn // owned; must call releaseConn when closed to release
 	releaseConn func(error)
 	rowsi       driver.Rows
 
 	closed    bool
 	lastcols  []driver.Value
 	lasterr   error
-	closeStmt *Stmt // if non-nil, statement to Close on close
+	closeStmt driver.Stmt // if non-nil, statement to Close on close
 }
 
 // Next prepares the next result row for reading with the Scan method.
@@ -936,24 +1366,6 @@
 			return fmt.Errorf("sql: Scan error on column index %d: %v", i, err)
 		}
 	}
-	for _, dp := range dest {
-		b, ok := dp.(*[]byte)
-		if !ok {
-			continue
-		}
-		if *b == nil {
-			// If the []byte is now nil (for a NULL value),
-			// don't fall through to below which would
-			// turn it into a non-nil 0-length byte slice
-			continue
-		}
-		if _, ok = dp.(*RawBytes); ok {
-			continue
-		}
-		clone := make([]byte, len(*b))
-		copy(clone, *b)
-		*b = clone
-	}
 	return nil
 }
 
@@ -966,10 +1378,10 @@
 	}
 	rs.closed = true
 	err := rs.rowsi.Close()
-	rs.releaseConn(err)
 	if rs.closeStmt != nil {
 		rs.closeStmt.Close()
 	}
+	rs.releaseConn(err)
 	return err
 }
 
@@ -1026,6 +1438,31 @@
 	RowsAffected() (int64, error)
 }
 
-type result struct {
-	driver.Result
+type driverResult struct {
+	sync.Locker // the *driverConn
+	resi        driver.Result
+}
+
+func (dr driverResult) LastInsertId() (int64, error) {
+	dr.Lock()
+	defer dr.Unlock()
+	return dr.resi.LastInsertId()
+}
+
+func (dr driverResult) RowsAffected() (int64, error) {
+	dr.Lock()
+	defer dr.Unlock()
+	return dr.resi.RowsAffected()
+}
+
+func stack() string {
+	var buf [2 << 10]byte
+	return string(buf[:runtime.Stack(buf[:], false)])
+}
+
+// withLock runs while holding lk.
+func withLock(lk sync.Locker, fn func()) {
+	lk.Lock()
+	fn()
+	lk.Unlock()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go gcc-4.8.1/libgo/go/database/sql/sql_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/database/sql/sql_test.go	2013-10-01 16:06:44.052554283 +0000
@@ -5,11 +5,11 @@
 package sql
 
 import (
-	"database/sql/driver"
 	"fmt"
 	"reflect"
 	"runtime"
 	"strings"
+	"sync"
 	"testing"
 	"time"
 )
@@ -17,10 +17,10 @@
 func init() {
 	type dbConn struct {
 		db *DB
-		c  driver.Conn
+		c  *driverConn
 	}
 	freedFrom := make(map[dbConn]string)
-	putConnHook = func(db *DB, c driver.Conn) {
+	putConnHook = func(db *DB, c *driverConn) {
 		for _, oc := range db.freeConn {
 			if oc == c {
 				// print before panic, as panic may get lost due to conflicting panic
@@ -38,7 +38,15 @@
 
 var chrisBirthday = time.Unix(123456789, 0)
 
-func newTestDB(t *testing.T, name string) *DB {
+type testOrBench interface {
+	Fatalf(string, ...interface{})
+	Errorf(string, ...interface{})
+	Fatal(...interface{})
+	Error(...interface{})
+	Logf(string, ...interface{})
+}
+
+func newTestDB(t testOrBench, name string) *DB {
 	db, err := Open("test", fakeDBName)
 	if err != nil {
 		t.Fatalf("Open: %v", err)
@@ -52,17 +60,42 @@
 		exec(t, db, "INSERT|people|name=Bob,age=?,photo=BPHOTO", 2)
 		exec(t, db, "INSERT|people|name=Chris,age=?,photo=CPHOTO,bdate=?", 3, chrisBirthday)
 	}
+	if name == "magicquery" {
+		// Magic table name and column, known by fakedb_test.go.
+		exec(t, db, "CREATE|magicquery|op=string,millis=int32")
+		exec(t, db, "INSERT|magicquery|op=sleep,millis=10")
+	}
 	return db
 }
 
-func exec(t *testing.T, db *DB, query string, args ...interface{}) {
+func exec(t testOrBench, db *DB, query string, args ...interface{}) {
 	_, err := db.Exec(query, args...)
 	if err != nil {
 		t.Fatalf("Exec of %q: %v", query, err)
 	}
 }
 
-func closeDB(t *testing.T, db *DB) {
+func closeDB(t testOrBench, db *DB) {
+	if e := recover(); e != nil {
+		fmt.Printf("Panic: %v\n", e)
+		panic(e)
+	}
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v", err)
+		}
+	})
+	for i, dc := range db.freeConn {
+		if n := len(dc.openStmt); n > 0 {
+			// Just a sanity check. This is legal in
+			// general, but if we make the tests clean up
+			// their statements first, then we can safely
+			// verify this is always zero here, and any
+			// other value is a leak.
+			t.Errorf("while closing db, freeConn %d/%d had %d open stmts; want 0", i, len(db.freeConn), n)
+		}
+	}
 	err := db.Close()
 	if err != nil {
 		t.Fatalf("error closing DB: %v", err)
@@ -75,7 +108,52 @@
 	if n := len(db.freeConn); n != 1 {
 		t.Fatalf("free conns = %d; want 1", n)
 	}
-	return db.freeConn[0].(*fakeConn).numPrepare
+	return db.freeConn[0].ci.(*fakeConn).numPrepare
+}
+
+func (db *DB) numDeps() int {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	return len(db.dep)
+}
+
+// Dependencies are closed via a goroutine, so this polls waiting for
+// numDeps to fall to want, waiting up to d.
+func (db *DB) numDepsPollUntil(want int, d time.Duration) int {
+	deadline := time.Now().Add(d)
+	for {
+		n := db.numDeps()
+		if n <= want || time.Now().After(deadline) {
+			return n
+		}
+		time.Sleep(50 * time.Millisecond)
+	}
+}
+
+func (db *DB) numFreeConns() int {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	return len(db.freeConn)
+}
+
+func (db *DB) dumpDeps(t *testing.T) {
+	for fc := range db.dep {
+		db.dumpDep(t, 0, fc, map[finalCloser]bool{})
+	}
+}
+
+func (db *DB) dumpDep(t *testing.T, depth int, dep finalCloser, seen map[finalCloser]bool) {
+	seen[dep] = true
+	indent := strings.Repeat("  ", depth)
+	ds := db.dep[dep]
+	for k := range ds {
+		t.Logf("%s%T (%p) waiting for -> %T (%p)", indent, dep, dep, k, k)
+		if fc, ok := k.(finalCloser); ok {
+			if !seen[fc] {
+				db.dumpDep(t, depth+1, fc, seen)
+			}
+		}
+	}
 }
 
 func TestQuery(t *testing.T) {
@@ -114,7 +192,7 @@
 
 	// And verify that the final rows.Next() call, which hit EOF,
 	// also closed the rows connection.
-	if n := len(db.freeConn); n != 1 {
+	if n := db.numFreeConns(); n != 1 {
 		t.Fatalf("free conns after query hitting EOF = %d; want 1", n)
 	}
 	if prepares := numPrepares(t, db) - prepares0; prepares != 1 {
@@ -270,6 +348,35 @@
 
 }
 
+// golang.org/issue/3734
+func TestStatementQueryRowConcurrent(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+	stmt, err := db.Prepare("SELECT|people|age|name=?")
+	if err != nil {
+		t.Fatalf("Prepare: %v", err)
+	}
+	defer stmt.Close()
+
+	const n = 10
+	ch := make(chan error, n)
+	for i := 0; i < n; i++ {
+		go func() {
+			var age int
+			err := stmt.QueryRow("Alice").Scan(&age)
+			if err == nil && age != 1 {
+				err = fmt.Errorf("unexpected age %d", age)
+			}
+			ch <- err
+		}()
+	}
+	for i := 0; i < n; i++ {
+		if err := <-ch; err != nil {
+			t.Error(err)
+		}
+	}
+}
+
 // just a test of fakedb itself
 func TestBogusPreboundParameters(t *testing.T) {
 	db := newTestDB(t, "foo")
@@ -448,6 +555,30 @@
 	}
 }
 
+// From golang.org/issue/3865
+func TestCloseStmtBeforeRows(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	s, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	r, err := s.Query()
+	if err != nil {
+		s.Close()
+		t.Fatal(err)
+	}
+
+	err = s.Close()
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	r.Close()
+}
+
 // Tests fix for issue 2788, that we bind nil to a []byte if the
 // value in the column is sql null
 func TestNullByteSlice(t *testing.T) {
@@ -520,7 +651,7 @@
 	if len(db.freeConn) != 1 {
 		t.Fatalf("expected 1 free conn")
 	}
-	fakeConn := db.freeConn[0].(*fakeConn)
+	fakeConn := db.freeConn[0].ci.(*fakeConn)
 	if made, closed := fakeConn.stmtsMade, fakeConn.stmtsClosed; made != closed {
 		t.Errorf("statement close mismatch: made %d, closed %d", made, closed)
 	}
@@ -641,7 +772,337 @@
 	}
 }
 
-func stack() string {
-	buf := make([]byte, 1024)
-	return string(buf[:runtime.Stack(buf, false)])
+// golang.org/issue/4859
+func TestQueryRowNilScanDest(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+	var name *string // nil pointer
+	err := db.QueryRow("SELECT|people|name|").Scan(name)
+	want := "sql: Scan error on column index 0: destination pointer is nil"
+	if err == nil || err.Error() != want {
+		t.Errorf("error = %q; want %q", err.Error(), want)
+	}
+}
+
+func TestIssue4902(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	driver := db.driver.(*fakeDriver)
+	opens0 := driver.openCount
+
+	var stmt *Stmt
+	var err error
+	for i := 0; i < 10; i++ {
+		stmt, err = db.Prepare("SELECT|people|name|")
+		if err != nil {
+			t.Fatal(err)
+		}
+		err = stmt.Close()
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+
+	opens := driver.openCount - opens0
+	if opens > 1 {
+		t.Errorf("opens = %d; want <= 1", opens)
+		t.Logf("db = %#v", db)
+		t.Logf("driver = %#v", driver)
+		t.Logf("stmt = %#v", stmt)
+	}
+}
+
+// Issue 3857
+// This used to deadlock.
+func TestSimultaneousQueries(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	tx, err := db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer tx.Rollback()
+
+	r1, err := tx.Query("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r1.Close()
+
+	r2, err := tx.Query("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r2.Close()
+}
+
+func TestMaxIdleConns(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	tx, err := db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	tx.Commit()
+	if got := len(db.freeConn); got != 1 {
+		t.Errorf("freeConns = %d; want 1", got)
+	}
+
+	db.SetMaxIdleConns(0)
+
+	if got := len(db.freeConn); got != 0 {
+		t.Errorf("freeConns after set to zero = %d; want 0", got)
+	}
+
+	tx, err = db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	tx.Commit()
+	if got := len(db.freeConn); got != 0 {
+		t.Errorf("freeConns = %d; want 0", got)
+	}
+}
+
+// golang.org/issue/5323
+func TestStmtCloseDeps(t *testing.T) {
+	if testing.Short() {
+		t.Skip("skipping in short mode")
+	}
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v", err)
+		}
+	})
+
+	db := newTestDB(t, "magicquery")
+	defer closeDB(t, db)
+
+	driver := db.driver.(*fakeDriver)
+
+	driver.mu.Lock()
+	opens0 := driver.openCount
+	closes0 := driver.closeCount
+	driver.mu.Unlock()
+	openDelta0 := opens0 - closes0
+
+	stmt, err := db.Prepare("SELECT|magicquery|op|op=?,millis=?")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// Start 50 parallel slow queries.
+	const (
+		nquery      = 50
+		sleepMillis = 25
+		nbatch      = 2
+	)
+	var wg sync.WaitGroup
+	for batch := 0; batch < nbatch; batch++ {
+		for i := 0; i < nquery; i++ {
+			wg.Add(1)
+			go func() {
+				defer wg.Done()
+				var op string
+				if err := stmt.QueryRow("sleep", sleepMillis).Scan(&op); err != nil && err != ErrNoRows {
+					t.Error(err)
+				}
+			}()
+		}
+		// Sleep for twice the expected length of time for the
+		// batch of 50 queries above to finish before starting
+		// the next round.
+		time.Sleep(2 * sleepMillis * time.Millisecond)
+	}
+	wg.Wait()
+
+	if g, w := db.numFreeConns(), 2; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(4, time.Second); n > 4 {
+		t.Errorf("number of dependencies = %d; expected <= 4", n)
+		db.dumpDeps(t)
+	}
+
+	driver.mu.Lock()
+	opens := driver.openCount - opens0
+	closes := driver.closeCount - closes0
+	driver.mu.Unlock()
+	openDelta := (driver.openCount - driver.closeCount) - openDelta0
+
+	if openDelta > 2 {
+		t.Logf("open calls = %d", opens)
+		t.Logf("close calls = %d", closes)
+		t.Logf("open delta = %d", openDelta)
+		t.Errorf("db connections opened = %d; want <= 2", openDelta)
+		db.dumpDeps(t)
+	}
+
+	if len(stmt.css) > nquery {
+		t.Errorf("len(stmt.css) = %d; want <= %d", len(stmt.css), nquery)
+	}
+
+	if err := stmt.Close(); err != nil {
+		t.Fatal(err)
+	}
+
+	if g, w := db.numFreeConns(), 2; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(2, time.Second); n > 2 {
+		t.Errorf("number of dependencies = %d; expected <= 2", n)
+		db.dumpDeps(t)
+	}
+
+	db.SetMaxIdleConns(0)
+
+	if g, w := db.numFreeConns(), 0; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(0, time.Second); n > 0 {
+		t.Errorf("number of dependencies = %d; expected 0", n)
+		db.dumpDeps(t)
+	}
+}
+
+// golang.org/issue/5046
+func TestCloseConnBeforeStmts(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v; from %s", err, stack())
+			db.dumpDeps(t)
+			t.Errorf("DB = %#v", db)
+		}
+	})
+
+	stmt, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if len(db.freeConn) != 1 {
+		t.Fatalf("expected 1 freeConn; got %d", len(db.freeConn))
+	}
+	dc := db.freeConn[0]
+	if dc.closed {
+		t.Errorf("conn shouldn't be closed")
+	}
+
+	if n := len(dc.openStmt); n != 1 {
+		t.Errorf("driverConn num openStmt = %d; want 1", n)
+	}
+	err = db.Close()
+	if err != nil {
+		t.Errorf("db Close = %v", err)
+	}
+	if !dc.closed {
+		t.Errorf("after db.Close, driverConn should be closed")
+	}
+	if n := len(dc.openStmt); n != 0 {
+		t.Errorf("driverConn num openStmt = %d; want 0", n)
+	}
+
+	err = stmt.Close()
+	if err != nil {
+		t.Errorf("Stmt close = %v", err)
+	}
+
+	if !dc.closed {
+		t.Errorf("conn should be closed")
+	}
+	if dc.ci != nil {
+		t.Errorf("after Stmt Close, driverConn's Conn interface should be nil")
+	}
+}
+
+// golang.org/issue/5283: don't release the Rows' connection in Close
+// before calling Stmt.Close.
+func TestRowsCloseOrder(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	db.SetMaxIdleConns(0)
+	setStrictFakeConnClose(t)
+	defer setStrictFakeConnClose(nil)
+
+	rows, err := db.Query("SELECT|people|age,name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = rows.Close()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+func manyConcurrentQueries(t testOrBench) {
+	maxProcs, numReqs := 16, 500
+	if testing.Short() {
+		maxProcs, numReqs = 4, 50
+	}
+	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
+
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	stmt, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer stmt.Close()
+
+	var wg sync.WaitGroup
+	wg.Add(numReqs)
+
+	reqs := make(chan bool)
+	defer close(reqs)
+
+	for i := 0; i < maxProcs*2; i++ {
+		go func() {
+			for _ = range reqs {
+				rows, err := stmt.Query()
+				if err != nil {
+					t.Errorf("error on query:  %v", err)
+					wg.Done()
+					continue
+				}
+
+				var name string
+				for rows.Next() {
+					rows.Scan(&name)
+				}
+				rows.Close()
+
+				wg.Done()
+			}
+		}()
+	}
+
+	for i := 0; i < numReqs; i++ {
+		reqs <- true
+	}
+
+	wg.Wait()
+}
+
+func TestConcurrency(t *testing.T) {
+	manyConcurrentQueries(t)
+}
+
+func BenchmarkConcurrency(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		manyConcurrentQueries(b)
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go gcc-4.8.1/libgo/go/debug/dwarf/buf.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go	2012-03-09 06:35:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/dwarf/buf.go	2013-10-01 16:06:44.056554283 +0000
@@ -13,17 +13,45 @@
 
 // Data buffer being decoded.
 type buf struct {
-	dwarf *Data
-	u     *unit
-	order binary.ByteOrder
-	name  string
-	off   Offset
-	data  []byte
-	err   error
+	dwarf  *Data
+	order  binary.ByteOrder
+	format dataFormat
+	name   string
+	off    Offset
+	data   []byte
+	err    error
 }
 
-func makeBuf(d *Data, u *unit, name string, off Offset, data []byte) buf {
-	return buf{d, u, d.order, name, off, data, nil}
+// Data format, other than byte order.  This affects the handling of
+// certain field formats.
+type dataFormat interface {
+	// DWARF version number.  Zero means unknown.
+	version() int
+
+	// 64-bit DWARF format?
+	dwarf64() (dwarf64 bool, isKnown bool)
+
+	// Size of an address, in bytes.  Zero means unknown.
+	addrsize() int
+}
+
+// Some parts of DWARF have no data format, e.g., abbrevs.
+type unknownFormat struct{}
+
+func (u unknownFormat) version() int {
+	return 0
+}
+
+func (u unknownFormat) dwarf64() (bool, bool) {
+	return false, false
+}
+
+func (u unknownFormat) addrsize() int {
+	return 0
+}
+
+func makeBuf(d *Data, format dataFormat, name string, off Offset, data []byte) buf {
+	return buf{d, d.order, format, name, off, data, nil}
 }
 
 func (b *buf) uint8() uint8 {
@@ -121,17 +149,15 @@
 
 // Address-sized uint.
 func (b *buf) addr() uint64 {
-	if b.u != nil {
-		switch b.u.addrsize {
-		case 1:
-			return uint64(b.uint8())
-		case 2:
-			return uint64(b.uint16())
-		case 4:
-			return uint64(b.uint32())
-		case 8:
-			return uint64(b.uint64())
-		}
+	switch b.format.addrsize() {
+	case 1:
+		return uint64(b.uint8())
+	case 2:
+		return uint64(b.uint16())
+	case 4:
+		return uint64(b.uint32())
+	case 8:
+		return uint64(b.uint64())
 	}
 	b.error("unknown address size")
 	return 0
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go gcc-4.8.1/libgo/go/debug/dwarf/entry.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go	2012-03-09 06:35:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/dwarf/entry.go	2013-10-01 16:06:44.056554283 +0000
@@ -40,7 +40,7 @@
 	} else {
 		data = data[off:]
 	}
-	b := makeBuf(d, nil, "abbrev", 0, data)
+	b := makeBuf(d, unknownFormat{}, "abbrev", 0, data)
 
 	// Error handling is simplified by the buf getters
 	// returning an endless stream of 0s after an error.
@@ -190,13 +190,16 @@
 		case formFlag:
 			val = b.uint8() == 1
 		case formFlagPresent:
+			// The attribute is implicitly indicated as present, and no value is
+			// encoded in the debugging information entry itself.
 			val = true
 
 		// lineptr, loclistptr, macptr, rangelistptr
 		case formSecOffset:
-			if b.u == nil {
+			is64, known := b.format.dwarf64()
+			if !known {
 				b.error("unknown size for DW_FORM_sec_offset")
-			} else if b.u.dwarf64 {
+			} else if is64 {
 				val = Offset(b.uint64())
 			} else {
 				val = Offset(b.uint32())
@@ -204,14 +207,20 @@
 
 		// reference to other entry
 		case formRefAddr:
-			if b.u == nil {
+			vers := b.format.version()
+			if vers == 0 {
 				b.error("unknown version for DW_FORM_ref_addr")
-			} else if b.u.version == 2 {
+			} else if vers == 2 {
 				val = Offset(b.addr())
-			} else if b.u.dwarf64 {
-				val = Offset(b.uint64())
 			} else {
-				val = Offset(b.uint32())
+				is64, known := b.format.dwarf64()
+				if !known {
+					b.error("unknown size for DW_FORM_ref_addr")
+				} else if is64 {
+					val = Offset(b.uint64())
+				} else {
+					val = Offset(b.uint32())
+				}
 			}
 		case formRef1:
 			val = Offset(b.uint8()) + ubase
@@ -234,7 +243,7 @@
 			if b.err != nil {
 				return nil
 			}
-			b1 := makeBuf(b.dwarf, b.u, "str", 0, b.dwarf.str)
+			b1 := makeBuf(b.dwarf, unknownFormat{}, "str", 0, b.dwarf.str)
 			b1.skip(int(off))
 			val = b1.string()
 			if b1.err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go gcc-4.8.1/libgo/go/debug/dwarf/line.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go	2012-09-06 05:28:02.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/dwarf/line.go	2013-10-01 16:06:44.056554283 +0000
@@ -112,7 +112,7 @@
 func (d *Data) readAddressRanges(off Offset, base uint64, u *unit) error {
 	b := makeBuf(d, u, "ranges", off, d.ranges[off:])
 	var highest uint64
-	switch u.addrsize {
+	switch u.addrsize() {
 	case 1:
 		highest = 0xff
 	case 2:
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go gcc-4.8.1/libgo/go/debug/dwarf/type.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go	2012-03-09 06:35:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/dwarf/type.go	2013-10-01 16:06:44.056554283 +0000
@@ -435,7 +435,9 @@
 					goto Error
 				}
 				if loc, ok := kid.Val(AttrDataMemberLoc).([]byte); ok {
-					b := makeBuf(d, nil, "location", 0, loc)
+					// TODO: Should have original compilation
+					// unit here, not unknownFormat.
+					b := makeBuf(d, unknownFormat{}, "location", 0, loc)
 					if b.uint8() != opPlusUconst {
 						err = DecodeError{"info", kid.Offset, "unexpected opcode"}
 						goto Error
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go gcc-4.8.1/libgo/go/debug/dwarf/unit.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go	2012-03-09 06:35:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/dwarf/unit.go	2013-10-01 16:06:44.056554283 +0000
@@ -10,17 +10,31 @@
 // Each unit has its own abbreviation table and address size.
 
 type unit struct {
-	base     Offset // byte offset of header within the aggregate info
-	off      Offset // byte offset of data within the aggregate info
-	lineoff  Offset // byte offset of data within the line info
-	data     []byte
-	atable   abbrevTable
-	addrsize int
-	version  int
-	dwarf64  bool // True for 64-bit DWARF format
-	dir      string
-	pc       []addrRange   // PC ranges in this compilation unit
-	lines    []mapLineInfo // PC -> line mapping
+	base    Offset // byte offset of header within the aggregate info
+	off     Offset // byte offset of data within the aggregate info
+	lineoff Offset // byte offset of data within the line info
+	data    []byte
+	atable  abbrevTable
+	asize   int
+	vers    int
+	is64    bool // True for 64-bit DWARF format
+	dir     string
+	pc      []addrRange   // PC ranges in this compilation unit
+	lines   []mapLineInfo // PC -> line mapping
+}
+
+// Implement the dataFormat interface.
+
+func (u *unit) version() int {
+	return u.vers
+}
+
+func (u *unit) dwarf64() (bool, bool) {
+	return u.is64, true
+}
+
+func (u *unit) addrsize() int {
+	return u.asize
 }
 
 // A range is an address range.
@@ -32,12 +46,12 @@
 func (d *Data) parseUnits() ([]unit, error) {
 	// Count units.
 	nunit := 0
-	b := makeBuf(d, nil, "info", 0, d.info)
+	b := makeBuf(d, unknownFormat{}, "info", 0, d.info)
 	for len(b.data) > 0 {
 		len := b.uint32()
 		if len == 0xffffffff {
 			len64 := b.uint64()
-			if len64 != uint64(int(len64)) {
+			if len64 != uint64(uint32(len64)) {
 				b.error("unit length overflow")
 				break
 			}
@@ -51,14 +65,14 @@
 	}
 
 	// Again, this time writing them down.
-	b = makeBuf(d, nil, "info", 0, d.info)
+	b = makeBuf(d, unknownFormat{}, "info", 0, d.info)
 	units := make([]unit, nunit)
 	for i := range units {
 		u := &units[i]
 		u.base = b.off
 		n := b.uint32()
 		if n == 0xffffffff {
-			u.dwarf64 = true
+			u.is64 = true
 			n = uint32(b.uint64())
 		}
 		vers := b.uint16()
@@ -66,6 +80,7 @@
 			b.error("unsupported DWARF version " + strconv.Itoa(int(vers)))
 			break
 		}
+		u.vers = int(vers)
 		atable, err := d.parseAbbrev(b.uint32())
 		if err != nil {
 			if b.err == nil {
@@ -73,9 +88,8 @@
 			}
 			break
 		}
-		u.version = int(vers)
 		u.atable = atable
-		u.addrsize = int(b.uint8())
+		u.asize = int(b.uint8())
 		u.off = b.off
 		u.data = b.bytes(int(n - (2 + 4 + 1)))
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/debug/elf/file.go gcc-4.8.1/libgo/go/debug/elf/file.go
--- gcc-4.8.1.orig/libgo/go/debug/elf/file.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/elf/file.go	2013-10-01 16:06:44.056554283 +0000
@@ -422,6 +422,10 @@
 		return nil, nil, errors.New("cannot load string table section")
 	}
 
+	// The first entry is all zeros.
+	var skip [Sym32Size]byte
+	symtab.Read(skip[:])
+
 	symbols := make([]Symbol, symtab.Len()/Sym32Size)
 
 	i := 0
@@ -461,6 +465,10 @@
 		return nil, nil, errors.New("cannot load string table section")
 	}
 
+	// The first entry is all zeros.
+	var skip [Sym64Size]byte
+	symtab.Read(skip[:])
+
 	symbols := make([]Symbol, symtab.Len()/Sym64Size)
 
 	i := 0
@@ -533,10 +541,10 @@
 		symNo := rela.Info >> 32
 		t := R_X86_64(rela.Info & 0xffff)
 
-		if symNo >= uint64(len(symbols)) {
+		if symNo == 0 || symNo > uint64(len(symbols)) {
 			continue
 		}
-		sym := &symbols[symNo]
+		sym := &symbols[symNo-1]
 		if SymType(sym.Info&0xf) != STT_SECTION {
 			// We don't handle non-section relocations for now.
 			continue
@@ -597,6 +605,10 @@
 }
 
 // Symbols returns the symbol table for f.
+//
+// For compatibility with Go 1.0, Symbols omits the null symbol at index 0.
+// After retrieving the symbols as symtab, an externally supplied index x
+// corresponds to symtab[x-1], not symtab[x].
 func (f *File) Symbols() ([]Symbol, error) {
 	sym, _, err := f.getSymbols(SHT_SYMTAB)
 	return sym, err
@@ -706,7 +718,7 @@
 // which came from offset i of the symbol table.
 func (f *File) gnuVersion(i int, sym *ImportedSymbol) {
 	// Each entry is two bytes.
-	i = i * 2
+	i = (i + 1) * 2
 	if i >= len(f.gnuVersym) {
 		return
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go gcc-4.8.1/libgo/go/debug/gosym/symtab.go
--- gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/gosym/symtab.go	2013-10-01 16:06:44.056554283 +0000
@@ -99,31 +99,116 @@
 }
 
 type sym struct {
-	value  uint32
-	gotype uint32
+	value  uint64
+	gotype uint64
 	typ    byte
 	name   []byte
 }
 
-var littleEndianSymtab = []byte{0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00}
+var littleEndianSymtab = []byte{0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00}
+var bigEndianSymtab = []byte{0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0x00, 0x00}
+
+var oldLittleEndianSymtab = []byte{0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00}
 
 func walksymtab(data []byte, fn func(sym) error) error {
 	var order binary.ByteOrder = binary.BigEndian
-	if bytes.HasPrefix(data, littleEndianSymtab) {
+	newTable := false
+	switch {
+	case bytes.HasPrefix(data, oldLittleEndianSymtab):
+		// Same as Go 1.0, but little endian.
+		// Format was used during interim development between Go 1.0 and Go 1.1.
+		// Should not be widespread, but easy to support.
 		data = data[6:]
 		order = binary.LittleEndian
+	case bytes.HasPrefix(data, bigEndianSymtab):
+		newTable = true
+	case bytes.HasPrefix(data, littleEndianSymtab):
+		newTable = true
+		order = binary.LittleEndian
+	}
+	var ptrsz int
+	if newTable {
+		if len(data) < 8 {
+			return &DecodingError{len(data), "unexpected EOF", nil}
+		}
+		ptrsz = int(data[7])
+		if ptrsz != 4 && ptrsz != 8 {
+			return &DecodingError{7, "invalid pointer size", ptrsz}
+		}
+		data = data[8:]
 	}
 	var s sym
 	p := data
-	for len(p) >= 6 {
-		s.value = order.Uint32(p[0:4])
-		typ := p[4]
-		if typ&0x80 == 0 {
-			return &DecodingError{len(data) - len(p) + 4, "bad symbol type", typ}
-		}
-		typ &^= 0x80
-		s.typ = typ
-		p = p[5:]
+	for len(p) >= 4 {
+		var typ byte
+		if newTable {
+			// Symbol type, value, Go type.
+			typ = p[0] & 0x3F
+			wideValue := p[0]&0x40 != 0
+			goType := p[0]&0x80 != 0
+			if typ < 26 {
+				typ += 'A'
+			} else {
+				typ += 'a' - 26
+			}
+			s.typ = typ
+			p = p[1:]
+			if wideValue {
+				if len(p) < ptrsz {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				// fixed-width value
+				if ptrsz == 8 {
+					s.value = order.Uint64(p[0:8])
+					p = p[8:]
+				} else {
+					s.value = uint64(order.Uint32(p[0:4]))
+					p = p[4:]
+				}
+			} else {
+				// varint value
+				s.value = 0
+				shift := uint(0)
+				for len(p) > 0 && p[0]&0x80 != 0 {
+					s.value |= uint64(p[0]&0x7F) << shift
+					shift += 7
+					p = p[1:]
+				}
+				if len(p) == 0 {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				s.value |= uint64(p[0]) << shift
+				p = p[1:]
+			}
+			if goType {
+				if len(p) < ptrsz {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				// fixed-width go type
+				if ptrsz == 8 {
+					s.gotype = order.Uint64(p[0:8])
+					p = p[8:]
+				} else {
+					s.gotype = uint64(order.Uint32(p[0:4]))
+					p = p[4:]
+				}
+			}
+		} else {
+			// Value, symbol type.
+			s.value = uint64(order.Uint32(p[0:4]))
+			if len(p) < 5 {
+				return &DecodingError{len(data), "unexpected EOF", nil}
+			}
+			typ = p[4]
+			if typ&0x80 == 0 {
+				return &DecodingError{len(data) - len(p) + 4, "bad symbol type", typ}
+			}
+			typ &^= 0x80
+			s.typ = typ
+			p = p[5:]
+		}
+
+		// Name.
 		var i int
 		var nnul int
 		for i = 0; i < len(p); i++ {
@@ -142,13 +227,21 @@
 				}
 			}
 		}
-		if i+nnul+4 > len(p) {
+		if len(p) < i+nnul {
 			return &DecodingError{len(data), "unexpected EOF", nil}
 		}
 		s.name = p[0:i]
 		i += nnul
-		s.gotype = order.Uint32(p[i : i+4])
-		p = p[i+4:]
+		p = p[i:]
+
+		if !newTable {
+			if len(p) < 4 {
+				return &DecodingError{len(data), "unexpected EOF", nil}
+			}
+			// Go type.
+			s.gotype = uint64(order.Uint32(p[:4]))
+			p = p[4:]
+		}
 		fn(s)
 	}
 	return nil
diff -Naur gcc-4.8.1.orig/libgo/go/debug/macho/file.go gcc-4.8.1/libgo/go/debug/macho/file.go
--- gcc-4.8.1.orig/libgo/go/debug/macho/file.go	2012-03-07 01:16:20.000000000 +0000
+++ gcc-4.8.1/libgo/go/debug/macho/file.go	2013-10-01 16:06:44.056554283 +0000
@@ -142,6 +142,8 @@
  * Mach-O reader
  */
 
+// FormatError is returned by some operations if the data does
+// not have the correct format for an object file.
 type FormatError struct {
 	off int64
 	msg string
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go
--- gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go	2012-05-04 15:01:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go	2013-10-01 16:06:44.056554283 +0000
@@ -296,5 +296,4 @@
 		nn, d.readErr = d.r.Read(d.buf[d.nbuf:])
 		d.nbuf += nn
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go gcc-4.8.1/libgo/go/encoding/asn1/marshal.go
--- gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/asn1/marshal.go	2013-10-01 16:06:44.056554283 +0000
@@ -460,7 +460,6 @@
 		default:
 			return marshalUTF8String(out, v.String())
 		}
-		return
 	}
 
 	return StructuralError{"unknown Go type"}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go gcc-4.8.1/libgo/go/encoding/base32/base32.go
--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/base32/base32.go	2013-10-01 16:06:44.056554283 +0000
@@ -6,8 +6,10 @@
 package base32
 
 import (
+	"bytes"
 	"io"
 	"strconv"
+	"strings"
 )
 
 /*
@@ -48,6 +50,13 @@
 // It is typically used in DNS.
 var HexEncoding = NewEncoding(encodeHex)
 
+var removeNewlinesMapper = func(r rune) rune {
+	if r == '\r' || r == '\n' {
+		return -1
+	}
+	return r
+}
+
 /*
  * Encoder
  */
@@ -228,40 +237,47 @@
 
 // decode is like Decode but returns an additional 'end' value, which
 // indicates if end-of-message padding was encountered and thus any
-// additional data is an error.
+// additional data is an error. This method assumes that src has been
+// stripped of all supported whitespace ('\r' and '\n').
 func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) {
-	osrc := src
+	olen := len(src)
 	for len(src) > 0 && !end {
 		// Decode quantum using the base32 alphabet
 		var dbuf [8]byte
 		dlen := 8
 
-		// do the top bytes contain any data?
 		for j := 0; j < 8; {
 			if len(src) == 0 {
-				return n, false, CorruptInputError(len(osrc) - len(src) - j)
+				return n, false, CorruptInputError(olen - len(src) - j)
 			}
 			in := src[0]
 			src = src[1:]
-			if in == '\r' || in == '\n' {
-				// Ignore this character.
-				continue
-			}
 			if in == '=' && j >= 2 && len(src) < 8 {
-				// We've reached the end and there's
-				// padding, the rest should be padded
-				for k := 0; k < 8-j-1; k++ {
+				// We've reached the end and there's padding
+				if len(src)+j < 8-1 {
+					// not enough padding
+					return n, false, CorruptInputError(olen)
+				}
+				for k := 0; k < 8-1-j; k++ {
 					if len(src) > k && src[k] != '=' {
-						return n, false, CorruptInputError(len(osrc) - len(src) + k - 1)
+						// incorrect padding
+						return n, false, CorruptInputError(olen - len(src) + k - 1)
 					}
 				}
-				dlen = j
-				end = true
+				dlen, end = j, true
+				// 7, 5 and 2 are not valid padding lengths, and so 1, 3 and 6 are not
+				// valid dlen values. See RFC 4648 Section 6 "Base 32 Encoding" listing
+				// the five valid padding lengths, and Section 9 "Illustrations and
+				// Examples" for an illustration for how the the 1st, 3rd and 6th base32
+				// src bytes do not yield enough information to decode a dst byte.
+				if dlen == 1 || dlen == 3 || dlen == 6 {
+					return n, false, CorruptInputError(olen - len(src) - 1)
+				}
 				break
 			}
 			dbuf[j] = enc.decodeMap[in]
 			if dbuf[j] == 0xFF {
-				return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+				return n, false, CorruptInputError(olen - len(src) - 1)
 			}
 			j++
 		}
@@ -269,16 +285,16 @@
 		// Pack 8x 5-bit source blocks into 5 byte destination
 		// quantum
 		switch dlen {
-		case 7, 8:
+		case 8:
 			dst[4] = dbuf[6]<<5 | dbuf[7]
 			fallthrough
-		case 6, 5:
+		case 7:
 			dst[3] = dbuf[4]<<7 | dbuf[5]<<2 | dbuf[6]>>3
 			fallthrough
-		case 4:
+		case 5:
 			dst[2] = dbuf[3]<<4 | dbuf[4]>>1
 			fallthrough
-		case 3:
+		case 4:
 			dst[1] = dbuf[1]<<6 | dbuf[2]<<1 | dbuf[3]>>4
 			fallthrough
 		case 2:
@@ -288,11 +304,11 @@
 		switch dlen {
 		case 2:
 			n += 1
-		case 3, 4:
+		case 4:
 			n += 2
 		case 5:
 			n += 3
-		case 6, 7:
+		case 7:
 			n += 4
 		case 8:
 			n += 5
@@ -307,12 +323,14 @@
 // number of bytes successfully written and CorruptInputError.
 // New line characters (\r and \n) are ignored.
 func (enc *Encoding) Decode(dst, src []byte) (n int, err error) {
+	src = bytes.Map(removeNewlinesMapper, src)
 	n, _, err = enc.decode(dst, src)
 	return
 }
 
 // DecodeString returns the bytes represented by the base32 string s.
 func (enc *Encoding) DecodeString(s string) ([]byte, error) {
+	s = strings.Map(removeNewlinesMapper, s)
 	dbuf := make([]byte, enc.DecodedLen(len(s)))
 	n, err := enc.Decode(dbuf, []byte(s))
 	return dbuf[:n], err
@@ -377,9 +395,34 @@
 	return n, d.err
 }
 
+type newlineFilteringReader struct {
+	wrapped io.Reader
+}
+
+func (r *newlineFilteringReader) Read(p []byte) (int, error) {
+	n, err := r.wrapped.Read(p)
+	for n > 0 {
+		offset := 0
+		for i, b := range p[0:n] {
+			if b != '\r' && b != '\n' {
+				if i != offset {
+					p[offset] = b
+				}
+				offset++
+			}
+		}
+		if offset > 0 {
+			return offset, err
+		}
+		// Previous buffer entirely whitespace, read again
+		n, err = r.wrapped.Read(p)
+	}
+	return n, err
+}
+
 // NewDecoder constructs a new base32 stream decoder.
 func NewDecoder(enc *Encoding, r io.Reader) io.Reader {
-	return &decoder{enc: enc, r: r}
+	return &decoder{enc: enc, r: &newlineFilteringReader{r}}
 }
 
 // DecodedLen returns the maximum length in bytes of the decoded data
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go gcc-4.8.1/libgo/go/encoding/base32/base32_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/base32/base32_test.go	2013-10-01 16:06:44.056554283 +0000
@@ -8,6 +8,7 @@
 	"bytes"
 	"io"
 	"io/ioutil"
+	"strings"
 	"testing"
 )
 
@@ -137,27 +138,48 @@
 }
 
 func TestDecodeCorrupt(t *testing.T) {
-	type corrupt struct {
-		e string
-		p int
-	}
-	examples := []corrupt{
+	testCases := []struct {
+		input  string
+		offset int // -1 means no corruption.
+	}{
+		{"", -1},
 		{"!!!!", 0},
 		{"x===", 0},
 		{"AA=A====", 2},
 		{"AAA=AAAA", 3},
 		{"MMMMMMMMM", 8},
 		{"MMMMMM", 0},
-	}
-
-	for _, e := range examples {
-		dbuf := make([]byte, StdEncoding.DecodedLen(len(e.e)))
-		_, err := StdEncoding.Decode(dbuf, []byte(e.e))
+		{"A=", 1},
+		{"AA=", 3},
+		{"AA==", 4},
+		{"AA===", 5},
+		{"AAAA=", 5},
+		{"AAAA==", 6},
+		{"AAAAA=", 6},
+		{"AAAAA==", 7},
+		{"A=======", 1},
+		{"AA======", -1},
+		{"AAA=====", 3},
+		{"AAAA====", -1},
+		{"AAAAA===", -1},
+		{"AAAAAA==", 6},
+		{"AAAAAAA=", -1},
+		{"AAAAAAAA", -1},
+	}
+	for _, tc := range testCases {
+		dbuf := make([]byte, StdEncoding.DecodedLen(len(tc.input)))
+		_, err := StdEncoding.Decode(dbuf, []byte(tc.input))
+		if tc.offset == -1 {
+			if err != nil {
+				t.Error("Decoder wrongly detected coruption in", tc.input)
+			}
+			continue
+		}
 		switch err := err.(type) {
 		case CorruptInputError:
-			testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
+			testEqual(t, "Corruption in %q at offset %v, want %v", tc.input, int(err), tc.offset)
 		default:
-			t.Error("Decoder failed to detect corruption in", e)
+			t.Error("Decoder failed to detect corruption in", tc)
 		}
 	}
 }
@@ -195,9 +217,21 @@
 	}
 }
 
+func testStringEncoding(t *testing.T, expected string, examples []string) {
+	for _, e := range examples {
+		buf, err := StdEncoding.DecodeString(e)
+		if err != nil {
+			t.Errorf("Decode(%q) failed: %v", e, err)
+			continue
+		}
+		if s := string(buf); s != expected {
+			t.Errorf("Decode(%q) = %q, want %q", e, s, expected)
+		}
+	}
+}
+
 func TestNewLineCharacters(t *testing.T) {
 	// Each of these should decode to the string "sure", without errors.
-	const expected = "sure"
 	examples := []string{
 		"ON2XEZI=",
 		"ON2XEZI=\r",
@@ -209,14 +243,44 @@
 		"ON2XEZ\nI=",
 		"ON2XEZI\n=",
 	}
-	for _, e := range examples {
-		buf, err := StdEncoding.DecodeString(e)
-		if err != nil {
-			t.Errorf("Decode(%q) failed: %v", e, err)
-			continue
-		}
-		if s := string(buf); s != expected {
-			t.Errorf("Decode(%q) = %q, want %q", e, s, expected)
-		}
+	testStringEncoding(t, "sure", examples)
+
+	// Each of these should decode to the string "foobar", without errors.
+	examples = []string{
+		"MZXW6YTBOI======",
+		"MZXW6YTBOI=\r\n=====",
+	}
+	testStringEncoding(t, "foobar", examples)
+}
+
+func TestDecoderIssue4779(t *testing.T) {
+	encoded := `JRXXEZLNEBUXA43VNUQGI33MN5ZCA43JOQQGC3LFOQWCAY3PNZZWKY3UMV2HK4
+RAMFSGS4DJONUWG2LOM4QGK3DJOQWCA43FMQQGI3YKMVUXK43NN5SCA5DFNVYG64RANFXGG2LENFSH
+K3TUEB2XIIDMMFRG64TFEBSXIIDEN5WG64TFEBWWCZ3OMEQGC3DJOF2WCLRAKV2CAZLONFWQUYLEEB
+WWS3TJNUQHMZLONFQW2LBAOF2WS4ZANZXXG5DSOVSCAZLYMVZGG2LUMF2GS33OEB2WY3DBNVRW6IDM
+MFRG64TJOMQG42LTNEQHK5AKMFWGS4LVNFYCAZLYEBSWCIDDN5WW233EN4QGG33OONSXC5LBOQXCAR
+DVNFZSAYLVORSSA2LSOVZGKIDEN5WG64RANFXAU4TFOBZGK2DFNZSGK4TJOQQGS3RAOZXWY5LQORQX
+IZJAOZSWY2LUEBSXG43FEBRWS3DMOVWSAZDPNRXXEZJAMV2SAZTVM5UWC5BANZ2WY3DBBJYGC4TJMF
+2HK4ROEBCXQY3FOB2GK5LSEBZWS3TUEBXWGY3BMVRWC5BAMN2XA2LEMF2GC5BANZXW4IDQOJXWSZDF
+NZ2CYIDTOVXHIIDJNYFGG5LMOBQSA4LVNEQG6ZTGNFRWSYJAMRSXGZLSOVXHIIDNN5WGY2LUEBQW42
+LNEBUWIIDFON2CA3DBMJXXE5LNFY==
+====`
+	encodedShort := strings.Replace(encoded, "\n", "", -1)
+
+	dec := NewDecoder(StdEncoding, bytes.NewBufferString(encoded))
+	res1, err := ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	dec = NewDecoder(StdEncoding, bytes.NewBufferString(encodedShort))
+	var res2 []byte
+	res2, err = ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	if !bytes.Equal(res1, res2) {
+		t.Error("Decoded results not equal")
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go gcc-4.8.1/libgo/go/encoding/base64/base64.go
--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/base64/base64.go	2013-10-01 16:06:44.056554283 +0000
@@ -6,8 +6,10 @@
 package base64
 
 import (
+	"bytes"
 	"io"
 	"strconv"
+	"strings"
 )
 
 /*
@@ -49,6 +51,13 @@
 // It is typically used in URLs and file names.
 var URLEncoding = NewEncoding(encodeURL)
 
+var removeNewlinesMapper = func(r rune) rune {
+	if r == '\r' || r == '\n' {
+		return -1
+	}
+	return r
+}
+
 /*
  * Encoder
  */
@@ -208,9 +217,10 @@
 
 // decode is like Decode but returns an additional 'end' value, which
 // indicates if end-of-message padding was encountered and thus any
-// additional data is an error.
+// additional data is an error. This method assumes that src has been
+// stripped of all supported whitespace ('\r' and '\n').
 func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) {
-	osrc := src
+	olen := len(src)
 	for len(src) > 0 && !end {
 		// Decode quantum using the base64 alphabet
 		var dbuf [4]byte
@@ -218,32 +228,26 @@
 
 		for j := 0; j < 4; {
 			if len(src) == 0 {
-				return n, false, CorruptInputError(len(osrc) - len(src) - j)
+				return n, false, CorruptInputError(olen - len(src) - j)
 			}
 			in := src[0]
 			src = src[1:]
-			if in == '\r' || in == '\n' {
-				// Ignore this character.
-				continue
-			}
 			if in == '=' && j >= 2 && len(src) < 4 {
-				// We've reached the end and there's
-				// padding
-				if len(src) == 0 && j == 2 {
+				// We've reached the end and there's padding
+				if len(src)+j < 4-1 {
 					// not enough padding
-					return n, false, CorruptInputError(len(osrc))
+					return n, false, CorruptInputError(olen)
 				}
 				if len(src) > 0 && src[0] != '=' {
 					// incorrect padding
-					return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+					return n, false, CorruptInputError(olen - len(src) - 1)
 				}
-				dlen = j
-				end = true
+				dlen, end = j, true
 				break
 			}
 			dbuf[j] = enc.decodeMap[in]
 			if dbuf[j] == 0xFF {
-				return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+				return n, false, CorruptInputError(olen - len(src) - 1)
 			}
 			j++
 		}
@@ -273,12 +277,14 @@
 // number of bytes successfully written and CorruptInputError.
 // New line characters (\r and \n) are ignored.
 func (enc *Encoding) Decode(dst, src []byte) (n int, err error) {
+	src = bytes.Map(removeNewlinesMapper, src)
 	n, _, err = enc.decode(dst, src)
 	return
 }
 
 // DecodeString returns the bytes represented by the base64 string s.
 func (enc *Encoding) DecodeString(s string) ([]byte, error) {
+	s = strings.Map(removeNewlinesMapper, s)
 	dbuf := make([]byte, enc.DecodedLen(len(s)))
 	n, err := enc.Decode(dbuf, []byte(s))
 	return dbuf[:n], err
@@ -343,9 +349,34 @@
 	return n, d.err
 }
 
+type newlineFilteringReader struct {
+	wrapped io.Reader
+}
+
+func (r *newlineFilteringReader) Read(p []byte) (int, error) {
+	n, err := r.wrapped.Read(p)
+	for n > 0 {
+		offset := 0
+		for i, b := range p[0:n] {
+			if b != '\r' && b != '\n' {
+				if i != offset {
+					p[offset] = b
+				}
+				offset++
+			}
+		}
+		if offset > 0 {
+			return offset, err
+		}
+		// Previous buffer entirely whitespace, read again
+		n, err = r.wrapped.Read(p)
+	}
+	return n, err
+}
+
 // NewDecoder constructs a new base64 stream decoder.
 func NewDecoder(enc *Encoding, r io.Reader) io.Reader {
-	return &decoder{enc: enc, r: r}
+	return &decoder{enc: enc, r: &newlineFilteringReader{r}}
 }
 
 // DecodedLen returns the maximum length in bytes of the decoded data
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go gcc-4.8.1/libgo/go/encoding/base64/base64_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go	2012-06-25 16:20:03.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/base64/base64_test.go	2013-10-01 16:06:44.056554283 +0000
@@ -9,6 +9,7 @@
 	"errors"
 	"io"
 	"io/ioutil"
+	"strings"
 	"testing"
 	"time"
 )
@@ -142,11 +143,11 @@
 }
 
 func TestDecodeCorrupt(t *testing.T) {
-	type corrupt struct {
-		e string
-		p int
-	}
-	examples := []corrupt{
+	testCases := []struct {
+		input  string
+		offset int // -1 means no corruption.
+	}{
+		{"", -1},
 		{"!!!!", 0},
 		{"x===", 1},
 		{"AA=A", 2},
@@ -154,18 +155,27 @@
 		{"AAAAA", 4},
 		{"AAAAAA", 4},
 		{"A=", 1},
+		{"A==", 1},
 		{"AA=", 3},
+		{"AA==", -1},
+		{"AAA=", -1},
+		{"AAAA", -1},
 		{"AAAAAA=", 7},
 	}
-
-	for _, e := range examples {
-		dbuf := make([]byte, StdEncoding.DecodedLen(len(e.e)))
-		_, err := StdEncoding.Decode(dbuf, []byte(e.e))
+	for _, tc := range testCases {
+		dbuf := make([]byte, StdEncoding.DecodedLen(len(tc.input)))
+		_, err := StdEncoding.Decode(dbuf, []byte(tc.input))
+		if tc.offset == -1 {
+			if err != nil {
+				t.Error("Decoder wrongly detected coruption in", tc.input)
+			}
+			continue
+		}
 		switch err := err.(type) {
 		case CorruptInputError:
-			testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
+			testEqual(t, "Corruption in %q at offset %v, want %v", tc.input, int(err), tc.offset)
 		default:
-			t.Error("Decoder failed to detect corruption in", e)
+			t.Error("Decoder failed to detect corruption in", tc)
 		}
 	}
 }
@@ -216,6 +226,8 @@
 		"c3V\nyZ\rQ==",
 		"c3VyZ\nQ==",
 		"c3VyZQ\n==",
+		"c3VyZQ=\n=",
+		"c3VyZQ=\r\n\r\n=",
 	}
 	for _, e := range examples {
 		buf, err := StdEncoding.DecodeString(e)
@@ -257,6 +269,7 @@
 	wantErr := errors.New("my error")
 	next <- nextRead{5, nil}
 	next <- nextRead{10, wantErr}
+	next <- nextRead{0, wantErr}
 	d := NewDecoder(StdEncoding, &faultInjectReader{
 		source: "VHdhcyBicmlsbGlnLCBhbmQgdGhlIHNsaXRoeSB0b3Zlcw==", // twas brillig...
 		nextc:  next,
@@ -275,3 +288,40 @@
 		t.Errorf("timeout; Decoder blocked without returning an error")
 	}
 }
+
+func TestDecoderIssue4779(t *testing.T) {
+	encoded := `CP/EAT8AAAEF
+AQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAAB
+BAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHx
+Y3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm
+9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS
+0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0
+pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkkJ+Tj
+1kiy1jCJJDnAcCTykpKkuQ6p/jN6FgmxlNduXawwAzaGH+V6jn/R/wCt71zdn+N/qL3kVYFNYB4N
+ji6PDVjWpKp9TSXnvTf8bFNjg3qOEa2n6VlLpj/rT/pf567DpX1i6L1hs9Py67X8mqdtg/rUWbbf
++gkp0kkkklKSSSSUpJJJJT//0PVUkkklKVLq3WMDpGI7KzrNjADtYNXvI/Mqr/Pd/q9W3vaxjnvM
+NaCXE9gNSvGPrf8AWS3qmba5jjsJhoB0DAf0NDf6sevf+/lf8Hj0JJATfWT6/dV6oXU1uOLQeKKn
+EQP+Hubtfe/+R7Mf/g7f5xcocp++Z11JMCJPgFBxOg7/AOuqDx8I/ikpkXkmSdU8mJIJA/O8EMAy
+j+mSARB/17pKVXYWHXjsj7yIex0PadzXMO1zT5KHoNA3HT8ietoGhgjsfA+CSnvvqh/jJtqsrwOv
+2b6NGNzXfTYexzJ+nU7/ALkf4P8Awv6P9KvTQQ4AgyDqCF85Pho3CTB7eHwXoH+LT65uZbX9X+o2
+bqbPb06551Y4
+`
+	encodedShort := strings.Replace(encoded, "\n", "", -1)
+
+	dec := NewDecoder(StdEncoding, bytes.NewBufferString(encoded))
+	res1, err := ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	dec = NewDecoder(StdEncoding, bytes.NewBufferString(encodedShort))
+	var res2 []byte
+	res2, err = ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	if !bytes.Equal(res1, res2) {
+		t.Error("Decoded results not equal")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go gcc-4.8.1/libgo/go/encoding/binary/binary.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/binary/binary.go	2013-10-01 16:06:44.056554283 +0000
@@ -167,9 +167,9 @@
 	default:
 		return errors.New("binary.Read: invalid type " + d.Type().String())
 	}
-	size := dataSize(v)
-	if size < 0 {
-		return errors.New("binary.Read: invalid type " + v.Type().String())
+	size, err := dataSize(v)
+	if err != nil {
+		return errors.New("binary.Read: " + err.Error())
 	}
 	d := &decoder{order: order, buf: make([]byte, size)}
 	if _, err := io.ReadFull(r, d.buf); err != nil {
@@ -247,64 +247,68 @@
 
 	// Fallback to reflect-based encoding.
 	v := reflect.Indirect(reflect.ValueOf(data))
-	size := dataSize(v)
-	if size < 0 {
-		return errors.New("binary.Write: invalid type " + v.Type().String())
+	size, err := dataSize(v)
+	if err != nil {
+		return errors.New("binary.Write: " + err.Error())
 	}
 	buf := make([]byte, size)
 	e := &encoder{order: order, buf: buf}
 	e.value(v)
-	_, err := w.Write(buf)
+	_, err = w.Write(buf)
 	return err
 }
 
 // Size returns how many bytes Write would generate to encode the value v, which
 // must be a fixed-size value or a slice of fixed-size values, or a pointer to such data.
 func Size(v interface{}) int {
-	return dataSize(reflect.Indirect(reflect.ValueOf(v)))
+	n, err := dataSize(reflect.Indirect(reflect.ValueOf(v)))
+	if err != nil {
+		return -1
+	}
+	return n
 }
 
 // dataSize returns the number of bytes the actual data represented by v occupies in memory.
 // For compound structures, it sums the sizes of the elements. Thus, for instance, for a slice
 // it returns the length of the slice times the element size and does not count the memory
 // occupied by the header.
-func dataSize(v reflect.Value) int {
+func dataSize(v reflect.Value) (int, error) {
 	if v.Kind() == reflect.Slice {
-		elem := sizeof(v.Type().Elem())
-		if elem < 0 {
-			return -1
+		elem, err := sizeof(v.Type().Elem())
+		if err != nil {
+			return 0, err
 		}
-		return v.Len() * elem
+		return v.Len() * elem, nil
 	}
 	return sizeof(v.Type())
 }
 
-func sizeof(t reflect.Type) int {
+func sizeof(t reflect.Type) (int, error) {
 	switch t.Kind() {
 	case reflect.Array:
-		n := sizeof(t.Elem())
-		if n < 0 {
-			return -1
+		n, err := sizeof(t.Elem())
+		if err != nil {
+			return 0, err
 		}
-		return t.Len() * n
+		return t.Len() * n, nil
 
 	case reflect.Struct:
 		sum := 0
 		for i, n := 0, t.NumField(); i < n; i++ {
-			s := sizeof(t.Field(i).Type)
-			if s < 0 {
-				return -1
+			s, err := sizeof(t.Field(i).Type)
+			if err != nil {
+				return 0, err
 			}
 			sum += s
 		}
-		return sum
+		return sum, nil
 
 	case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
 		reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
 		reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:
-		return int(t.Size())
+		return int(t.Size()), nil
 	}
-	return -1
+	return 0, errors.New("invalid type " + t.String())
 }
 
 type coder struct {
@@ -514,11 +518,12 @@
 }
 
 func (d *decoder) skip(v reflect.Value) {
-	d.buf = d.buf[dataSize(v):]
+	n, _ := dataSize(v)
+	d.buf = d.buf[n:]
 }
 
 func (e *encoder) skip(v reflect.Value) {
-	n := dataSize(v)
+	n, _ := dataSize(v)
 	for i := range e.buf[0:n] {
 		e.buf[i] = 0
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go gcc-4.8.1/libgo/go/encoding/binary/binary_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go	2013-02-10 06:02:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/binary/binary_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -9,6 +9,7 @@
 	"io"
 	"math"
 	"reflect"
+	"strings"
 	"testing"
 )
 
@@ -149,8 +150,14 @@
 
 	tv := reflect.Indirect(reflect.ValueOf(ts))
 	for i, n := 0, tv.NumField(); i < n; i++ {
+		typ := tv.Field(i).Type().String()
+		if typ == "[4]int" {
+			typ = "int" // the problem is int, not the [4]
+		}
 		if err := Write(buf, BigEndian, tv.Field(i).Interface()); err == nil {
 			t.Errorf("WriteT.%v: have err == nil, want non-nil", tv.Field(i).Type())
+		} else if !strings.Contains(err.Error(), typ) {
+			t.Errorf("WriteT: have err == %q, want it to mention %s", err, typ)
 		}
 	}
 }
@@ -238,7 +245,7 @@
 	bsr := &byteSliceReader{}
 	var buf bytes.Buffer
 	Write(&buf, BigEndian, &s)
-	n := dataSize(reflect.ValueOf(s))
+	n, _ := dataSize(reflect.ValueOf(s))
 	b.SetBytes(int64(n))
 	t := s
 	b.ResetTimer()
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go gcc-4.8.1/libgo/go/encoding/binary/varint.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/binary/varint.go	2013-10-01 16:06:44.060554283 +0000
@@ -120,7 +120,6 @@
 		x |= uint64(b&0x7f) << s
 		s += 7
 	}
-	panic("unreachable")
 }
 
 // ReadVarint reads an encoded signed integer from r and returns it as an int64.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go gcc-4.8.1/libgo/go/encoding/csv/reader.go
--- gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/csv/reader.go	2013-10-01 16:06:44.060554283 +0000
@@ -171,7 +171,6 @@
 		}
 		records = append(records, record)
 	}
-	panic("unreachable")
 }
 
 // readRune reads one rune from r, folding \r\n to \n and keeping track
@@ -213,7 +212,6 @@
 			return nil
 		}
 	}
-	panic("unreachable")
 }
 
 // parseRecord reads and parses a single csv record from r.
@@ -250,7 +248,6 @@
 			return nil, err
 		}
 	}
-	panic("unreachable")
 }
 
 // parseField parses the next field in the record.  The read field is
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go gcc-4.8.1/libgo/go/encoding/gob/codec_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/gob/codec_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -1191,10 +1191,8 @@
 			if v1 != nil || v2 != nil {
 				t.Errorf("item %d inconsistent nils", i)
 			}
-			continue
-			if v1.Square() != v2.Square() {
-				t.Errorf("item %d inconsistent values: %v %v", i, v1, v2)
-			}
+		} else if v1.Square() != v2.Square() {
+			t.Errorf("item %d inconsistent values: %v %v", i, v1, v2)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go gcc-4.8.1/libgo/go/encoding/gob/decode.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/gob/decode.go	2013-10-01 16:06:44.060554283 +0000
@@ -1066,7 +1066,6 @@
 	case reflect.Struct:
 		return true
 	}
-	return true
 }
 
 // typeString returns a human-readable description of the type identified by remoteId.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -1,4 +1,4 @@
-// Copyright 20011 The Go Authors. All rights reserved.
+// Copyright 2011 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -348,7 +348,7 @@
 		t.Fatal("decode error:", err)
 	}
 	if y.G.s != "XYZ" {
-		t.Fatalf("expected `XYZ` got %c", y.G.s)
+		t.Fatalf("expected `XYZ` got %q", y.G.s)
 	}
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go gcc-4.8.1/libgo/go/encoding/gob/timing_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/gob/timing_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -50,49 +50,51 @@
 }
 
 func TestCountEncodeMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+
+	const N = 1000
+
 	var buf bytes.Buffer
 	enc := NewEncoder(&buf)
 	bench := &Bench{7, 3.2, "now is the time", []byte("for all good men")}
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	const count = 1000
-	for i := 0; i < count; i++ {
+
+	allocs := testing.AllocsPerRun(N, func() {
 		err := enc.Encode(bench)
 		if err != nil {
 			t.Fatal("encode:", err)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	fmt.Printf("mallocs per encode of type Bench: %d\n", mallocs/count)
+	})
+	fmt.Printf("mallocs per encode of type Bench: %v\n", allocs)
 }
 
 func TestCountDecodeMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+
+	const N = 1000
+
 	var buf bytes.Buffer
 	enc := NewEncoder(&buf)
 	bench := &Bench{7, 3.2, "now is the time", []byte("for all good men")}
-	const count = 1000
-	for i := 0; i < count; i++ {
+
+	// Fill the buffer with enough to decode
+	testing.AllocsPerRun(N, func() {
 		err := enc.Encode(bench)
 		if err != nil {
 			t.Fatal("encode:", err)
 		}
-	}
+	})
+
 	dec := NewDecoder(&buf)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	for i := 0; i < count; i++ {
+	allocs := testing.AllocsPerRun(N, func() {
 		*bench = Bench{}
 		err := dec.Decode(&bench)
 		if err != nil {
 			t.Fatal("decode:", err)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	fmt.Printf("mallocs per decode of type Bench: %d\n", mallocs/count)
+	})
+	fmt.Printf("mallocs per decode of type Bench: %v\n", allocs)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/type.go gcc-4.8.1/libgo/go/encoding/gob/type.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/type.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/gob/type.go	2013-10-01 16:06:44.060554283 +0000
@@ -526,7 +526,6 @@
 	default:
 		return nil, errors.New("gob NewTypeObject can't handle type: " + rt.String())
 	}
-	return nil, nil
 }
 
 // isExported reports whether this is an exported - upper case - name.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode.go gcc-4.8.1/libgo/go/encoding/json/decode.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/decode.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/json/decode.go	2013-10-01 16:06:44.060554283 +0000
@@ -33,6 +33,10 @@
 // the value pointed at by the pointer.  If the pointer is nil, Unmarshal
 // allocates a new value for it to point to.
 //
+// To unmarshal JSON into a struct, Unmarshal matches incoming object
+// keys to the keys used by Marshal (either the struct field name or its tag),
+// preferring an exact match but also accepting a case-insensitive match.
+//
 // To unmarshal JSON into an interface value, Unmarshal unmarshals
 // the JSON into the concrete value contained in the interface value.
 // If the interface value is nil, that is, has no concrete value stored in it,
@@ -51,17 +55,22 @@
 // If no more serious errors are encountered, Unmarshal returns
 // an UnmarshalTypeError describing the earliest such error.
 //
+// When unmarshaling quoted strings, invalid UTF-8 or
+// invalid UTF-16 surrogate pairs are not treated as an error.
+// Instead, they are replaced by the Unicode replacement
+// character U+FFFD.
+//
 func Unmarshal(data []byte, v interface{}) error {
-	d := new(decodeState).init(data)
-
-	// Quick check for well-formedness.
+	// Check for well-formedness.
 	// Avoids filling out half a data structure
 	// before discovering a JSON syntax error.
+	var d decodeState
 	err := checkValid(data, &d.scan)
 	if err != nil {
 		return err
 	}
 
+	d.init(data)
 	return d.unmarshal(v)
 }
 
@@ -252,6 +261,16 @@
 		}
 		d.scan.step(&d.scan, '"')
 		d.scan.step(&d.scan, '"')
+
+		n := len(d.scan.parseState)
+		if n > 0 && d.scan.parseState[n-1] == parseObjectKey {
+			// d.scan thinks we just read an object key; finish the object
+			d.scan.step(&d.scan, ':')
+			d.scan.step(&d.scan, '"')
+			d.scan.step(&d.scan, '"')
+			d.scan.step(&d.scan, '}')
+		}
+
 		return
 	}
 
@@ -730,6 +749,7 @@
 	switch d.scanWhile(scanSkipSpace) {
 	default:
 		d.error(errPhase)
+		panic("unreachable")
 	case scanBeginArray:
 		return d.arrayInterface()
 	case scanBeginObject:
@@ -737,12 +757,11 @@
 	case scanBeginLiteral:
 		return d.literalInterface()
 	}
-	panic("unreachable")
 }
 
 // arrayInterface is like array but returns []interface{}.
 func (d *decodeState) arrayInterface() []interface{} {
-	var v []interface{}
+	var v = make([]interface{}, 0)
 	for {
 		// Look ahead for ] - can only happen on first iteration.
 		op := d.scanWhile(scanSkipSpace)
@@ -849,7 +868,6 @@
 		}
 		return n
 	}
-	panic("unreachable")
 }
 
 // getu4 decodes \uXXXX from the beginning of s, returning the hex value,
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go gcc-4.8.1/libgo/go/encoding/json/decode_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/json/decode_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -11,6 +11,7 @@
 	"reflect"
 	"strings"
 	"testing"
+	"time"
 )
 
 type T struct {
@@ -29,7 +30,7 @@
 	F3 Number
 }
 
-// ifaceNumAsFloat64/ifaceNumAsNumber are used to test unmarshalling with and
+// ifaceNumAsFloat64/ifaceNumAsNumber are used to test unmarshaling with and
 // without UseNumber
 var ifaceNumAsFloat64 = map[string]interface{}{
 	"k1": float64(1),
@@ -239,6 +240,12 @@
 	{in: `[1, 2, 3]`, ptr: new([1]int), out: [1]int{1}},
 	{in: `[1, 2, 3]`, ptr: new([5]int), out: [5]int{1, 2, 3, 0, 0}},
 
+	// empty array to interface test
+	{in: `[]`, ptr: new([]interface{}), out: []interface{}{}},
+	{in: `null`, ptr: new([]interface{}), out: []interface{}(nil)},
+	{in: `{"T":[]}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": []interface{}{}}},
+	{in: `{"T":null}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": interface{}(nil)}},
+
 	// composite tests
 	{in: allValueIndent, ptr: new(All), out: allValue},
 	{in: allValueCompact, ptr: new(All), out: allValue},
@@ -323,6 +330,43 @@
 		ptr: new(S10),
 		out: S10{S13: S13{S8: S8{S9: S9{Y: 2}}}},
 	},
+
+	// invalid UTF-8 is coerced to valid UTF-8.
+	{
+		in:  "\"hello\xffworld\"",
+		ptr: new(string),
+		out: "hello\ufffdworld",
+	},
+	{
+		in:  "\"hello\xc2\xc2world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\xc2\xffworld\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\xed\xa0\x80\xed\xb0\x80world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdworld",
+	},
 }
 
 func TestMarshal(t *testing.T) {
@@ -1107,3 +1151,43 @@
 		t.Errorf("got %q, want %q", out, want)
 	}
 }
+
+// Time3339 is a time.Time which encodes to and from JSON
+// as an RFC 3339 time in UTC.
+type Time3339 time.Time
+
+func (t *Time3339) UnmarshalJSON(b []byte) error {
+	if len(b) < 2 || b[0] != '"' || b[len(b)-1] != '"' {
+		return fmt.Errorf("types: failed to unmarshal non-string value %q as an RFC 3339 time", b)
+	}
+	tm, err := time.Parse(time.RFC3339, string(b[1:len(b)-1]))
+	if err != nil {
+		return err
+	}
+	*t = Time3339(tm)
+	return nil
+}
+
+func TestUnmarshalJSONLiteralError(t *testing.T) {
+	var t3 Time3339
+	err := Unmarshal([]byte(`"0000-00-00T00:00:00Z"`), &t3)
+	if err == nil {
+		t.Fatalf("expected error; got time %v", time.Time(t3))
+	}
+	if !strings.Contains(err.Error(), "range") {
+		t.Errorf("got err = %v; want out of range error", err)
+	}
+}
+
+// Test that extra object elements in an array do not result in a
+// "data changing underfoot" error.
+// Issue 3717
+func TestSkipArrayObjects(t *testing.T) {
+	json := `[{}]`
+	var dest [0]interface{}
+
+	err := Unmarshal([]byte(json), &dest)
+	if err != nil {
+		t.Errorf("got error %q, want nil", err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode.go gcc-4.8.1/libgo/go/encoding/json/encode.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/encode.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/json/encode.go	2013-10-01 16:06:44.060554283 +0000
@@ -3,7 +3,8 @@
 // license that can be found in the LICENSE file.
 
 // Package json implements encoding and decoding of JSON objects as defined in
-// RFC 4627.
+// RFC 4627. The mapping between JSON objects and Go values is described
+// in the documentation for the Marshal and Unmarshal functions.
 //
 // See "JSON and Go" for an introduction to this package:
 // http://golang.org/doc/articles/json_and_go.html
@@ -38,8 +39,8 @@
 //
 // Floating point, integer, and Number values encode as JSON numbers.
 //
-// String values encode as JSON strings, with each invalid UTF-8 sequence
-// replaced by the encoding of the Unicode replacement character U+FFFD.
+// String values encode as JSON strings. InvalidUTF8Error will be returned
+// if an invalid UTF-8 sequence is encountered.
 // The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e"
 // to keep some browsers from misinterpreting JSON output as HTML.
 //
@@ -86,9 +87,21 @@
 // underscores and slashes.
 //
 // Anonymous struct fields are usually marshaled as if their inner exported fields
-// were fields in the outer struct, subject to the usual Go visibility rules.
+// were fields in the outer struct, subject to the usual Go visibility rules amended
+// as described in the next paragraph.
 // An anonymous struct field with a name given in its JSON tag is treated as
-// having that name instead of as anonymous.
+// having that name, rather than being anonymous.
+//
+// The Go visibility rules for struct fields are amended for JSON when
+// deciding which field to marshal or unmarshal. If there are
+// multiple fields at the same level, and that level is the least
+// nested (and would therefore be the nesting level selected by the
+// usual Go rules), the following extra rules apply:
+//
+// 1) Of those fields, if any are JSON-tagged, only tagged fields are considered,
+// even if there are multiple untagged fields that would otherwise conflict.
+// 2) If there is exactly one field (tagged or not according to the first rule), that is selected.
+// 3) Otherwise there are multiple fields, and all are ignored; no error occurs.
 //
 // Handling of anonymous struct fields is new in Go 1.1.
 // Prior to Go 1.1, anonymous struct fields were ignored. To force ignoring of
@@ -187,8 +200,10 @@
 	return "json: unsupported value: " + e.Str
 }
 
+// An InvalidUTF8Error is returned by Marshal when attempting
+// to encode a string value with invalid UTF-8 sequences.
 type InvalidUTF8Error struct {
-	S string
+	S string // the whole string value that caused the error
 }
 
 func (e *InvalidUTF8Error) Error() string {
@@ -654,27 +669,78 @@
 
 	sort.Sort(byName(fields))
 
-	// Remove fields with annihilating name collisions
-	// and also fields shadowed by fields with explicit JSON tags.
-	name := ""
+	// Delete all fields that are hidden by the Go rules for embedded fields,
+	// except that fields with JSON tags are promoted.
+
+	// The fields are sorted in primary order of name, secondary order
+	// of field index length. Loop over names; for each name, delete
+	// hidden fields by choosing the one dominant field that survives.
 	out := fields[:0]
-	for _, f := range fields {
-		if f.name != name {
-			name = f.name
-			out = append(out, f)
+	for advance, i := 0, 0; i < len(fields); i += advance {
+		// One iteration per name.
+		// Find the sequence of fields with the name of this first field.
+		fi := fields[i]
+		name := fi.name
+		for advance = 1; i+advance < len(fields); advance++ {
+			fj := fields[i+advance]
+			if fj.name != name {
+				break
+			}
+		}
+		if advance == 1 { // Only one field with this name
+			out = append(out, fi)
 			continue
 		}
-		if n := len(out); n > 0 && out[n-1].name == name && (!out[n-1].tag || f.tag) {
-			out = out[:n-1]
+		dominant, ok := dominantField(fields[i : i+advance])
+		if ok {
+			out = append(out, dominant)
 		}
 	}
-	fields = out
 
+	fields = out
 	sort.Sort(byIndex(fields))
 
 	return fields
 }
 
+// dominantField looks through the fields, all of which are known to
+// have the same name, to find the single field that dominates the
+// others using Go's embedding rules, modified by the presence of
+// JSON tags. If there are multiple top-level fields, the boolean
+// will be false: This condition is an error in Go and we skip all
+// the fields.
+func dominantField(fields []field) (field, bool) {
+	// The fields are sorted in increasing index-length order. The winner
+	// must therefore be one with the shortest index length. Drop all
+	// longer entries, which is easy: just truncate the slice.
+	length := len(fields[0].index)
+	tagged := -1 // Index of first tagged field.
+	for i, f := range fields {
+		if len(f.index) > length {
+			fields = fields[:i]
+			break
+		}
+		if f.tag {
+			if tagged >= 0 {
+				// Multiple tagged fields at the same level: conflict.
+				// Return no field.
+				return field{}, false
+			}
+			tagged = i
+		}
+	}
+	if tagged >= 0 {
+		return fields[tagged], true
+	}
+	// All remaining fields have the same length. If there's more than one,
+	// we have a conflict (two fields named "X" at the same level) and we
+	// return no field.
+	if len(fields) > 1 {
+		return field{}, false
+	}
+	return fields[0], true
+}
+
 var fieldCache struct {
 	sync.RWMutex
 	m map[reflect.Type][]field
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go gcc-4.8.1/libgo/go/encoding/json/encode_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/json/encode_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -206,3 +206,107 @@
 		t.Errorf("got %q, want %q", got, want)
 	}
 }
+
+type BugA struct {
+	S string
+}
+
+type BugB struct {
+	BugA
+	S string
+}
+
+type BugC struct {
+	S string
+}
+
+// Legal Go: We never use the repeated embedded field (S).
+type BugX struct {
+	A int
+	BugA
+	BugB
+}
+
+// Issue 5245.
+func TestEmbeddedBug(t *testing.T) {
+	v := BugB{
+		BugA{"A"},
+		"B",
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{"S":"B"}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+	// Now check that the duplicate field, S, does not appear.
+	x := BugX{
+		A: 23,
+	}
+	b, err = Marshal(x)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want = `{"A":23}`
+	got = string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
+
+type BugD struct { // Same as BugA after tagging.
+	XXX string `json:"S"`
+}
+
+// BugD's tagged S field should dominate BugA's.
+type BugY struct {
+	BugA
+	BugD
+}
+
+// Test that a field with a tag dominates untagged fields.
+func TestTaggedFieldDominates(t *testing.T) {
+	v := BugY{
+		BugA{"BugA"},
+		BugD{"BugD"},
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{"S":"BugD"}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
+
+// There are no tags here, so S should not appear.
+type BugZ struct {
+	BugA
+	BugC
+	BugY // Contains a tagged S field through BugD; should not dominate.
+}
+
+func TestDuplicatedFieldDisappears(t *testing.T) {
+	v := BugZ{
+		BugA{"BugA"},
+		BugC{"BugC"},
+		BugY{
+			BugA{"nested BugA"},
+			BugD{"nested BugD"},
+		},
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go gcc-4.8.1/libgo/go/encoding/json/scanner_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/json/scanner_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -277,9 +277,6 @@
 	if f > n {
 		f = n
 	}
-	if n > 0 && f == 0 {
-		f = 1
-	}
 	x := make([]interface{}, f)
 	for i := range x {
 		x[i] = genValue(((i+1)*n)/f - (i*n)/f)
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go gcc-4.8.1/libgo/go/encoding/xml/marshal.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/marshal.go	2013-10-01 16:06:44.060554283 +0000
@@ -81,8 +81,7 @@
 func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
 	var b bytes.Buffer
 	enc := NewEncoder(&b)
-	enc.prefix = prefix
-	enc.indent = indent
+	enc.Indent(prefix, indent)
 	if err := enc.Encode(v); err != nil {
 		return nil, err
 	}
@@ -99,6 +98,14 @@
 	return &Encoder{printer{Writer: bufio.NewWriter(w)}}
 }
 
+// Indent sets the encoder to generate XML in which each element
+// begins on a new indented line that starts with prefix and is followed by
+// one or more copies of indent according to the nesting depth.
+func (enc *Encoder) Indent(prefix, indent string) {
+	enc.prefix = prefix
+	enc.indent = indent
+}
+
 // Encode writes the XML encoding of v to the stream.
 //
 // See the documentation for Marshal for details about the conversion
@@ -113,10 +120,76 @@
 
 type printer struct {
 	*bufio.Writer
+	seq        int
 	indent     string
 	prefix     string
 	depth      int
 	indentedIn bool
+	putNewline bool
+	attrNS     map[string]string // map prefix -> name space
+	attrPrefix map[string]string // map name space -> prefix
+}
+
+// createAttrPrefix finds the name space prefix attribute to use for the given name space,
+// defining a new prefix if necessary. It returns the prefix and whether it is new.
+func (p *printer) createAttrPrefix(url string) (prefix string, isNew bool) {
+	if prefix = p.attrPrefix[url]; prefix != "" {
+		return prefix, false
+	}
+
+	// The "http://www.w3.org/XML/1998/namespace" name space is predefined as "xml"
+	// and must be referred to that way.
+	// (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns",
+	// but users should not be trying to use that one directly - that's our job.)
+	if url == xmlURL {
+		return "xml", false
+	}
+
+	// Need to define a new name space.
+	if p.attrPrefix == nil {
+		p.attrPrefix = make(map[string]string)
+		p.attrNS = make(map[string]string)
+	}
+
+	// Pick a name. We try to use the final element of the path
+	// but fall back to _.
+	prefix = strings.TrimRight(url, "/")
+	if i := strings.LastIndex(prefix, "/"); i >= 0 {
+		prefix = prefix[i+1:]
+	}
+	if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") {
+		prefix = "_"
+	}
+	if strings.HasPrefix(prefix, "xml") {
+		// xmlanything is reserved.
+		prefix = "_" + prefix
+	}
+	if p.attrNS[prefix] != "" {
+		// Name is taken. Find a better one.
+		for p.seq++; ; p.seq++ {
+			if id := prefix + "_" + strconv.Itoa(p.seq); p.attrNS[id] == "" {
+				prefix = id
+				break
+			}
+		}
+	}
+
+	p.attrPrefix[url] = prefix
+	p.attrNS[prefix] = url
+
+	p.WriteString(`xmlns:`)
+	p.WriteString(prefix)
+	p.WriteString(`="`)
+	EscapeText(p, []byte(url))
+	p.WriteString(`" `)
+
+	return prefix, true
+}
+
+// deleteAttrPrefix removes an attribute name space prefix.
+func (p *printer) deleteAttrPrefix(prefix string) {
+	delete(p.attrPrefix, p.attrNS[prefix])
+	delete(p.attrNS, prefix)
 }
 
 // marshalValue writes one or more XML elements representing val.
@@ -185,7 +258,9 @@
 	if xmlns != "" {
 		p.WriteString(` xmlns="`)
 		// TODO: EscapeString, to avoid the allocation.
-		Escape(p, []byte(xmlns))
+		if err := EscapeText(p, []byte(xmlns)); err != nil {
+			return err
+		}
 		p.WriteByte('"')
 	}
 
@@ -200,6 +275,14 @@
 			continue
 		}
 		p.WriteByte(' ')
+		if finfo.xmlns != "" {
+			prefix, created := p.createAttrPrefix(finfo.xmlns)
+			if created {
+				defer p.deleteAttrPrefix(prefix)
+			}
+			p.WriteString(prefix)
+			p.WriteByte(':')
+		}
 		p.WriteString(finfo.name)
 		p.WriteString(`="`)
 		if err := p.marshalSimple(fv.Type(), fv); err != nil {
@@ -244,19 +327,22 @@
 		p.WriteString(strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()))
 	case reflect.String:
 		// TODO: Add EscapeString.
-		Escape(p, []byte(val.String()))
+		EscapeText(p, []byte(val.String()))
 	case reflect.Bool:
 		p.WriteString(strconv.FormatBool(val.Bool()))
 	case reflect.Array:
 		// will be [...]byte
-		bytes := make([]byte, val.Len())
-		for i := range bytes {
-			bytes[i] = val.Index(i).Interface().(byte)
+		var bytes []byte
+		if val.CanAddr() {
+			bytes = val.Slice(0, val.Len()).Bytes()
+		} else {
+			bytes = make([]byte, val.Len())
+			reflect.Copy(reflect.ValueOf(bytes), val)
 		}
-		Escape(p, bytes)
+		EscapeText(p, bytes)
 	case reflect.Slice:
 		// will be []byte
-		Escape(p, val.Bytes())
+		EscapeText(p, val.Bytes())
 	default:
 		return &UnsupportedTypeError{typ}
 	}
@@ -273,7 +359,7 @@
 	s := parentStack{printer: p}
 	for i := range tinfo.fields {
 		finfo := &tinfo.fields[i]
-		if finfo.flags&(fAttr) != 0 {
+		if finfo.flags&fAttr != 0 {
 			continue
 		}
 		vf := finfo.value(val)
@@ -290,10 +376,14 @@
 			case reflect.Bool:
 				Escape(p, strconv.AppendBool(scratch[:0], vf.Bool()))
 			case reflect.String:
-				Escape(p, []byte(vf.String()))
+				if err := EscapeText(p, []byte(vf.String())); err != nil {
+					return err
+				}
 			case reflect.Slice:
 				if elem, ok := vf.Interface().([]byte); ok {
-					Escape(p, elem)
+					if err := EscapeText(p, elem); err != nil {
+						return err
+					}
 				}
 			case reflect.Struct:
 				if vf.Type() == timeType {
@@ -387,7 +477,11 @@
 		}
 		p.indentedIn = false
 	}
-	p.WriteByte('\n')
+	if p.putNewline {
+		p.WriteByte('\n')
+	} else {
+		p.putNewline = true
+	}
 	if len(p.prefix) > 0 {
 		p.WriteString(p.prefix)
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go	2013-10-01 16:06:44.060554283 +0000
@@ -7,6 +7,7 @@
 import (
 	"bytes"
 	"errors"
+	"fmt"
 	"io"
 	"reflect"
 	"strconv"
@@ -265,6 +266,16 @@
 	V interface{}
 }
 
+type MyInt int
+
+type EmbedInt struct {
+	MyInt
+}
+
+type Strings struct {
+	X []string `xml:"A>B,omitempty"`
+}
+
 // Unless explicitly stated as such (or *Plain), all of the
 // tests below are two-way tests. When introducing new tests,
 // please try to make them two-way as well to ensure that
@@ -789,6 +800,17 @@
 		},
 		UnmarshalOnly: true,
 	},
+	{
+		ExpectXML: `<EmbedInt><MyInt>42</MyInt></EmbedInt>`,
+		Value: &EmbedInt{
+			MyInt: 42,
+		},
+	},
+	// Test omitempty with parent chain; see golang.org/issue/4168.
+	{
+		ExpectXML: `<Strings><A></A></Strings>`,
+		Value:     &Strings{},
+	},
 }
 
 func TestMarshal(t *testing.T) {
@@ -811,6 +833,10 @@
 	}
 }
 
+type AttrParent struct {
+	X string `xml:"X>Y,attr"`
+}
+
 var marshalErrorTests = []struct {
 	Value interface{}
 	Err   string
@@ -838,12 +864,39 @@
 		Value: &Domain{Comment: []byte("f--bar")},
 		Err:   `xml: comments must not contain "--"`,
 	},
+	// Reject parent chain with attr, never worked; see golang.org/issue/5033.
+	{
+		Value: &AttrParent{},
+		Err:   `xml: X>Y chain not valid with attr flag`,
+	},
+}
+
+var marshalIndentTests = []struct {
+	Value     interface{}
+	Prefix    string
+	Indent    string
+	ExpectXML string
+}{
+	{
+		Value: &SecretAgent{
+			Handle:    "007",
+			Identity:  "James Bond",
+			Obfuscate: "<redacted/>",
+		},
+		Prefix:    "",
+		Indent:    "\t",
+		ExpectXML: fmt.Sprintf("<agent handle=\"007\">\n\t<Identity>James Bond</Identity><redacted/>\n</agent>"),
+	},
 }
 
 func TestMarshalErrors(t *testing.T) {
 	for idx, test := range marshalErrorTests {
-		_, err := Marshal(test.Value)
-		if err == nil || err.Error() != test.Err {
+		data, err := Marshal(test.Value)
+		if err == nil {
+			t.Errorf("#%d: marshal(%#v) = [success] %q, want error %v", idx, test.Value, data, test.Err)
+			continue
+		}
+		if err.Error() != test.Err {
 			t.Errorf("#%d: marshal(%#v) = [error] %v, want %v", idx, test.Value, err, test.Err)
 		}
 		if test.Kind != reflect.Invalid {
@@ -884,6 +937,19 @@
 	}
 }
 
+func TestMarshalIndent(t *testing.T) {
+	for i, test := range marshalIndentTests {
+		data, err := MarshalIndent(test.Value, test.Prefix, test.Indent)
+		if err != nil {
+			t.Errorf("#%d: Error: %s", i, err)
+			continue
+		}
+		if got, want := string(data), test.ExpectXML; got != want {
+			t.Errorf("#%d: MarshalIndent:\nGot:%s\nWant:\n%s", i, got, want)
+		}
+	}
+}
+
 type limitedBytesWriter struct {
 	w      io.Writer
 	remain int // until writes fail
@@ -933,6 +999,16 @@
 	}
 }
 
+func TestMarshalWriteIOErrors(t *testing.T) {
+	enc := NewEncoder(errWriter{})
+
+	expectErr := "unwritable"
+	err := enc.Encode(&Passenger{})
+	if err == nil || err.Error() != expectErr {
+		t.Errorf("EscapeTest = [error] %v, want %v", err, expectErr)
+	}
+}
+
 func BenchmarkMarshal(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		Marshal(atomValue)
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read.go gcc-4.8.1/libgo/go/encoding/xml/read.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/read.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/read.go	2013-10-01 16:06:44.060554283 +0000
@@ -263,7 +263,7 @@
 				strv := finfo.value(sv)
 				// Look for attribute.
 				for _, a := range start.Attr {
-					if a.Name.Local == finfo.name {
+					if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) {
 						copyValue(strv, []byte(a.Value))
 						break
 					}
@@ -441,7 +441,7 @@
 Loop:
 	for i := range tinfo.fields {
 		finfo := &tinfo.fields[i]
-		if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) {
+		if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != "" && finfo.xmlns != start.Name.Space {
 			continue
 		}
 		for j := range parents {
@@ -493,7 +493,6 @@
 			return true, nil
 		}
 	}
-	panic("unreachable")
 }
 
 // Skip reads tokens until it has consumed the end element
@@ -517,5 +516,4 @@
 			return nil
 		}
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go gcc-4.8.1/libgo/go/encoding/xml/read_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/read_test.go	2013-10-01 16:06:44.064554283 +0000
@@ -6,6 +6,7 @@
 
 import (
 	"reflect"
+	"strings"
 	"testing"
 	"time"
 )
@@ -399,3 +400,224 @@
 		t.Fatalf("Unmarshal with %s failed:\nhave %#v,\n want %#v", x, p3.Int, 1)
 	}
 }
+
+type Tables struct {
+	HTable string `xml:"http://www.w3.org/TR/html4/ table"`
+	FTable string `xml:"http://www.w3schools.com/furniture table"`
+}
+
+var tables = []struct {
+	xml string
+	tab Tables
+	ns  string
+}{
+	{
+		xml: `<Tables>` +
+			`<table xmlns="http://www.w3.org/TR/html4/">hello</table>` +
+			`<table xmlns="http://www.w3schools.com/furniture">world</table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables>` +
+			`<table xmlns="http://www.w3schools.com/furniture">world</table>` +
+			`<table xmlns="http://www.w3.org/TR/html4/">hello</table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/">` +
+			`<f:table>world</f:table>` +
+			`<h:table>hello</h:table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables>` +
+			`<table>bogus</table>` +
+			`</Tables>`,
+		tab: Tables{},
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{HTable: "only"},
+		ns:  "http://www.w3.org/TR/html4/",
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{FTable: "only"},
+		ns:  "http://www.w3schools.com/furniture",
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{},
+		ns:  "something else entirely",
+	},
+}
+
+func TestUnmarshalNS(t *testing.T) {
+	for i, tt := range tables {
+		var dst Tables
+		var err error
+		if tt.ns != "" {
+			d := NewDecoder(strings.NewReader(tt.xml))
+			d.DefaultSpace = tt.ns
+			err = d.Decode(&dst)
+		} else {
+			err = Unmarshal([]byte(tt.xml), &dst)
+		}
+		if err != nil {
+			t.Errorf("#%d: Unmarshal: %v", i, err)
+			continue
+		}
+		want := tt.tab
+		if dst != want {
+			t.Errorf("#%d: dst=%+v, want %+v", i, dst, want)
+		}
+	}
+}
+
+func TestMarshalNS(t *testing.T) {
+	dst := Tables{"hello", "world"}
+	data, err := Marshal(&dst)
+	if err != nil {
+		t.Fatalf("Marshal: %v", err)
+	}
+	want := `<Tables><table xmlns="http://www.w3.org/TR/html4/">hello</table><table xmlns="http://www.w3schools.com/furniture">world</table></Tables>`
+	str := string(data)
+	if str != want {
+		t.Errorf("have: %q\nwant: %q\n", str, want)
+	}
+}
+
+type TableAttrs struct {
+	TAttr TAttr
+}
+
+type TAttr struct {
+	HTable string `xml:"http://www.w3.org/TR/html4/ table,attr"`
+	FTable string `xml:"http://www.w3schools.com/furniture table,attr"`
+	Lang   string `xml:"http://www.w3.org/XML/1998/namespace lang,attr,omitempty"`
+	Other1 string `xml:"http://golang.org/xml/ other,attr,omitempty"`
+	Other2 string `xml:"http://golang.org/xmlfoo/ other,attr,omitempty"`
+	Other3 string `xml:"http://golang.org/json/ other,attr,omitempty"`
+	Other4 string `xml:"http://golang.org/2/json/ other,attr,omitempty"`
+}
+
+var tableAttrs = []struct {
+	xml string
+	tab TableAttrs
+	ns  string
+}{
+	{
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/" ` +
+			`h:table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`h:table="hello" f:table="world" xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture"><TAttr xmlns="http://www.w3.org/TR/html4/" ` +
+			`table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`table="bogus" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}},
+		ns:  "http://www.w3schools.com/furniture",
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture"><TAttr ` +
+			`table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "", FTable: "world"}},
+		ns:  "http://www.w3.org/TR/html4/",
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`table="bogus" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{},
+		ns:  "something else entirely",
+	},
+}
+
+func TestUnmarshalNSAttr(t *testing.T) {
+	for i, tt := range tableAttrs {
+		var dst TableAttrs
+		var err error
+		if tt.ns != "" {
+			d := NewDecoder(strings.NewReader(tt.xml))
+			d.DefaultSpace = tt.ns
+			err = d.Decode(&dst)
+		} else {
+			err = Unmarshal([]byte(tt.xml), &dst)
+		}
+		if err != nil {
+			t.Errorf("#%d: Unmarshal: %v", i, err)
+			continue
+		}
+		want := tt.tab
+		if dst != want {
+			t.Errorf("#%d: dst=%+v, want %+v", i, dst, want)
+		}
+	}
+}
+
+func TestMarshalNSAttr(t *testing.T) {
+	src := TableAttrs{TAttr{"hello", "world", "en_US", "other1", "other2", "other3", "other4"}}
+	data, err := Marshal(&src)
+	if err != nil {
+		t.Fatalf("Marshal: %v", err)
+	}
+	want := `<TableAttrs><TAttr xmlns:html4="http://www.w3.org/TR/html4/" html4:table="hello" xmlns:furniture="http://www.w3schools.com/furniture" furniture:table="world" xml:lang="en_US" xmlns:_xml="http://golang.org/xml/" _xml:other="other1" xmlns:_xmlfoo="http://golang.org/xmlfoo/" _xmlfoo:other="other2" xmlns:json="http://golang.org/json/" json:other="other3" xmlns:json_1="http://golang.org/2/json/" json_1:other="other4"></TAttr></TableAttrs>`
+	str := string(data)
+	if str != want {
+		t.Errorf("Marshal:\nhave: %#q\nwant: %#q\n", str, want)
+	}
+
+	var dst TableAttrs
+	if err := Unmarshal(data, &dst); err != nil {
+		t.Errorf("Unmarshal: %v", err)
+	}
+
+	if dst != src {
+		t.Errorf("Unmarshal = %q, want %q", dst, src)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go	2013-10-01 16:06:44.064554283 +0000
@@ -70,20 +70,19 @@
 				if t.Kind() == reflect.Ptr {
 					t = t.Elem()
 				}
-				if t.Kind() != reflect.Struct {
-					continue
-				}
-				inner, err := getTypeInfo(t)
-				if err != nil {
-					return nil, err
-				}
-				for _, finfo := range inner.fields {
-					finfo.idx = append([]int{i}, finfo.idx...)
-					if err := addFieldInfo(typ, tinfo, &finfo); err != nil {
+				if t.Kind() == reflect.Struct {
+					inner, err := getTypeInfo(t)
+					if err != nil {
 						return nil, err
 					}
+					for _, finfo := range inner.fields {
+						finfo.idx = append([]int{i}, finfo.idx...)
+						if err := addFieldInfo(typ, tinfo, &finfo); err != nil {
+							return nil, err
+						}
+					}
+					continue
 				}
-				continue
 			}
 
 			finfo, err := structFieldInfo(typ, &f)
@@ -193,16 +192,19 @@
 	}
 
 	// Prepare field name and parents.
-	tokens = strings.Split(tag, ">")
-	if tokens[0] == "" {
-		tokens[0] = f.Name
+	parents := strings.Split(tag, ">")
+	if parents[0] == "" {
+		parents[0] = f.Name
 	}
-	if tokens[len(tokens)-1] == "" {
+	if parents[len(parents)-1] == "" {
 		return nil, fmt.Errorf("xml: trailing '>' in field %s of type %s", f.Name, typ)
 	}
-	finfo.name = tokens[len(tokens)-1]
-	if len(tokens) > 1 {
-		finfo.parents = tokens[:len(tokens)-1]
+	finfo.name = parents[len(parents)-1]
+	if len(parents) > 1 {
+		if (finfo.flags & fElement) == 0 {
+			return nil, fmt.Errorf("xml: %s chain not valid with %s flag", tag, strings.Join(tokens[1:], ","))
+		}
+		finfo.parents = parents[:len(parents)-1]
 	}
 
 	// If the field type has an XMLName field, the names must match
@@ -268,6 +270,9 @@
 		if oldf.flags&fMode != newf.flags&fMode {
 			continue
 		}
+		if oldf.xmlns != "" && newf.xmlns != "" && oldf.xmlns != newf.xmlns {
+			continue
+		}
 		minl := min(len(newf.parents), len(oldf.parents))
 		for p := 0; p < minl; p++ {
 			if oldf.parents[p] != newf.parents[p] {
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go gcc-4.8.1/libgo/go/encoding/xml/xml.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/xml.go	2013-10-01 16:06:44.064554283 +0000
@@ -169,6 +169,11 @@
 	// the CharsetReader's result values must be non-nil.
 	CharsetReader func(charset string, input io.Reader) (io.Reader, error)
 
+	// DefaultSpace sets the default name space used for unadorned tags,
+	// as if the entire XML stream were wrapped in an element containing
+	// the attribute xmlns="DefaultSpace".
+	DefaultSpace string
+
 	r         io.ByteReader
 	buf       bytes.Buffer
 	saved     *bytes.Buffer
@@ -268,6 +273,8 @@
 	return
 }
 
+const xmlURL = "http://www.w3.org/XML/1998/namespace"
+
 // Apply name space translation to name n.
 // The default name space (for Space=="")
 // applies only to element names, not to attribute names.
@@ -277,11 +284,15 @@
 		return
 	case n.Space == "" && !isElementName:
 		return
+	case n.Space == "xml":
+		n.Space = xmlURL
 	case n.Space == "" && n.Local == "xmlns":
 		return
 	}
 	if v, ok := d.ns[n.Space]; ok {
 		n.Space = v
+	} else if n.Space == "" {
+		n.Space = d.DefaultSpace
 	}
 }
 
@@ -956,7 +967,7 @@
 				b0, b1 = 0, 0
 				continue Input
 			}
-			ent := string(d.buf.Bytes()[before])
+			ent := string(d.buf.Bytes()[before:])
 			if ent[len(ent)-1] != ';' {
 				ent += " (no semicolon)"
 			}
@@ -1692,7 +1703,7 @@
 var htmlAutoClose = []string{
 	/*
 		hget http://www.w3.org/TR/html4/loose.dtd |
-		9 sed -n 's/<!ELEMENT (.*) - O EMPTY.+/	"\1",/p' | tr A-Z a-z
+		9 sed -n 's/<!ELEMENT ([^ ]*) +- O EMPTY.+/	"\1",/p' | tr A-Z a-z
 	*/
 	"basefont",
 	"br",
@@ -1702,7 +1713,7 @@
 	"param",
 	"hr",
 	"input",
-	"col     ",
+	"col",
 	"frame",
 	"isindex",
 	"base",
@@ -1718,15 +1729,18 @@
 	esc_tab  = []byte("&#x9;")
 	esc_nl   = []byte("&#xA;")
 	esc_cr   = []byte("&#xD;")
+	esc_fffd = []byte("\uFFFD") // Unicode replacement character
 )
 
-// Escape writes to w the properly escaped XML equivalent
+// EscapeText writes to w the properly escaped XML equivalent
 // of the plain text data s.
-func Escape(w io.Writer, s []byte) {
+func EscapeText(w io.Writer, s []byte) error {
 	var esc []byte
 	last := 0
-	for i, c := range s {
-		switch c {
+	for i := 0; i < len(s); {
+		r, width := utf8.DecodeRune(s[i:])
+		i += width
+		switch r {
 		case '"':
 			esc = esc_quot
 		case '\'':
@@ -1744,13 +1758,31 @@
 		case '\r':
 			esc = esc_cr
 		default:
+			if !isInCharacterRange(r) {
+				esc = esc_fffd
+				break
+			}
 			continue
 		}
-		w.Write(s[last:i])
-		w.Write(esc)
-		last = i + 1
+		if _, err := w.Write(s[last : i-width]); err != nil {
+			return err
+		}
+		if _, err := w.Write(esc); err != nil {
+			return err
+		}
+		last = i
+	}
+	if _, err := w.Write(s[last:]); err != nil {
+		return err
 	}
-	w.Write(s[last:])
+	return nil
+}
+
+// Escape is like EscapeText but omits the error return value.
+// It is provided for backwards compatibility with Go 1.0.
+// Code targeting Go 1.1 or later should use EscapeText.
+func Escape(w io.Writer, s []byte) {
+	EscapeText(w, s)
 }
 
 // procInstEncoding parses the `encoding="..."` or `encoding='...'`
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go gcc-4.8.1/libgo/go/encoding/xml/xml_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/encoding/xml/xml_test.go	2013-10-01 16:06:44.064554283 +0000
@@ -5,6 +5,7 @@
 package xml
 
 import (
+	"bytes"
 	"fmt"
 	"io"
 	"reflect"
@@ -595,13 +596,6 @@
 	}
 }
 
-// The last three tests (respectively one for characters in attribute
-// names and two for character entities) pass not because of code
-// changed for issue 1259, but instead pass with the given messages
-// from other parts of xml.Decoder.  I provide these to note the
-// current behavior of situations where one might think that character
-// range checking would detect the error, but it does not in fact.
-
 var characterTests = []struct {
 	in  string
 	err string
@@ -611,8 +605,10 @@
 	{"\xef\xbf\xbe<doc/>", "illegal character code U+FFFE"},
 	{"<?xml version=\"1.0\"?><doc>\r\n<hiya/>\x07<toots/></doc>", "illegal character code U+0007"},
 	{"<?xml version=\"1.0\"?><doc \x12='value'>what's up</doc>", "expected attribute name in element"},
+	{"<doc>&abc\x01;</doc>", "invalid character entity &abc (no semicolon)"},
 	{"<doc>&\x01;</doc>", "invalid character entity & (no semicolon)"},
-	{"<doc>&\xef\xbf\xbe;</doc>", "invalid character entity & (no semicolon)"},
+	{"<doc>&\xef\xbf\xbe;</doc>", "invalid character entity &\uFFFE;"},
+	{"<doc>&hello;</doc>", "invalid character entity &hello;"},
 }
 
 func TestDisallowedCharacters(t *testing.T) {
@@ -629,7 +625,7 @@
 			t.Fatalf("input %d d.Token() = _, %v, want _, *SyntaxError", i, err)
 		}
 		if synerr.Msg != tt.err {
-			t.Fatalf("input %d synerr.Msg wrong: want '%s', got '%s'", i, tt.err, synerr.Msg)
+			t.Fatalf("input %d synerr.Msg wrong: want %q, got %q", i, tt.err, synerr.Msg)
 		}
 	}
 }
@@ -689,3 +685,32 @@
 		}
 	}
 }
+
+// Writer whose Write method always returns an error.
+type errWriter struct{}
+
+func (errWriter) Write(p []byte) (n int, err error) { return 0, fmt.Errorf("unwritable") }
+
+func TestEscapeTextIOErrors(t *testing.T) {
+	expectErr := "unwritable"
+	err := EscapeText(errWriter{}, []byte{'A'})
+
+	if err == nil || err.Error() != expectErr {
+		t.Errorf("have %v, want %v", err, expectErr)
+	}
+}
+
+func TestEscapeTextInvalidChar(t *testing.T) {
+	input := []byte("A \x00 terminated string.")
+	expected := "A \uFFFD terminated string."
+
+	buff := new(bytes.Buffer)
+	if err := EscapeText(buff, input); err != nil {
+		t.Fatalf("have %v, want nil", err)
+	}
+	text := buff.String()
+
+	if text != expected {
+		t.Errorf("have %v, want %v", text, expected)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/jar.go gcc-4.8.1/libgo/go/exp/cookiejar/jar.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/jar.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/cookiejar/jar.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,89 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package cookiejar implements an RFC 6265-compliant http.CookieJar.
-//
-// TODO: example code to create a memory-backed cookie jar with the default
-// public suffix list.
-package cookiejar
-
-import (
-	"net/http"
-	"net/url"
-)
-
-// PublicSuffixList provides the public suffix of a domain. For example:
-//      - the public suffix of "example.com" is "com",
-//      - the public suffix of "foo1.foo2.foo3.co.uk" is "co.uk", and
-//      - the public suffix of "bar.pvt.k12.wy.us" is "pvt.k12.wy.us".
-//
-// Implementations of PublicSuffixList must be safe for concurrent use by
-// multiple goroutines.
-//
-// An implementation that always returns "" is valid and may be useful for
-// testing but it is not secure: it means that the HTTP server for foo.com can
-// set a cookie for bar.com.
-type PublicSuffixList interface {
-	// PublicSuffix returns the public suffix of domain.
-	//
-	// TODO: specify which of the caller and callee is responsible for IP
-	// addresses, for leading and trailing dots, for case sensitivity, and
-	// for IDN/Punycode.
-	PublicSuffix(domain string) string
-
-	// String returns a description of the source of this public suffix list.
-	// A Jar will store its PublicSuffixList's description in its storage,
-	// and update the stored cookies if its list has a different description
-	// than the stored list. The description will typically contain something
-	// like a time stamp or version number.
-	String() string
-}
-
-// Options are the options for creating a new Jar.
-type Options struct {
-	// Storage is the cookie jar storage. It may not be nil.
-	Storage Storage
-
-	// PublicSuffixList is the public suffix list that determines whether an
-	// HTTP server can set a cookie for a domain. It may not be nil.
-	PublicSuffixList PublicSuffixList
-
-	// TODO: ErrorFunc for handling storage errors?
-}
-
-// Jar implements the http.CookieJar interface from the net/http package.
-type Jar struct {
-	storage Storage
-	psList  PublicSuffixList
-}
-
-// New returns a new cookie jar.
-func New(o *Options) *Jar {
-	return &Jar{
-		storage: o.Storage,
-		psList:  o.PublicSuffixList,
-	}
-}
-
-// TODO(nigeltao): how do we reject HttpOnly cookies? Do we post-process the
-// return value from Jar.Cookies?
-//
-// HttpOnly cookies are those for regular HTTP(S) requests but should not be
-// visible from JavaScript. The HttpOnly bit mitigates XSS attacks; it's not
-// for HTTP vs HTTPS vs FTP transports.
-
-// Cookies implements the Cookies method of the http.CookieJar interface.
-//
-// It returns an empty slice if the URL's scheme is not HTTP or HTTPS.
-func (j *Jar) Cookies(u *url.URL) []*http.Cookie {
-	// TODO.
-	return nil
-}
-
-// SetCookies implements the SetCookies method of the http.CookieJar interface.
-//
-// It does nothing if the URL's scheme is not HTTP or HTTPS.
-func (j *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
-	// TODO.
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage.go gcc-4.8.1/libgo/go/exp/cookiejar/storage.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/cookiejar/storage.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,101 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cookiejar
-
-import (
-	"time"
-)
-
-// Storage is a Jar's storage. It is a multi-map, mapping keys to one or more
-// entries. Each entry consists of a subkey, creation time, last access time,
-// and some arbitrary data.
-//
-// The Add and Delete methods have undefined behavior if the key is invalid.
-// A valid key must use only bytes in the character class [a-z0-9.-] and
-// must have at least one non-. byte. Note that this excludes any key
-// containing a capital ASCII letter as well as the empty string.
-type Storage interface {
-	// A client must call Lock before calling other methods and must call
-	// Unlock when finished. Between the calls to Lock and Unlock, a client
-	// can assume that other clients are not modifying the Storage.
-	Lock()
-	Unlock()
-
-	// Add adds entries to the storage. Each entry's Subkey and Data must
-	// both be non-empty.
-	//
-	// If the Storage already contains an entry with the same key and
-	// subkey then the new entry is stored with the creation time of the
-	// old entry, and the old entry is deleted.
-	//
-	// Adding entries may cause other entries to be deleted, to maintain an
-	// implementation-specific storage constraint.
-	Add(key string, entries ...Entry) error
-
-	// Delete deletes all entries for the given key.
-	Delete(key string) error
-
-	// Entries calls f for each entry stored for that key. If f returns a
-	// non-nil error then the iteration stops and Entries returns that
-	// error. Iteration is not guaranteed to be in any particular order.
-	//
-	// If f returns an Update action then that stored entry's LastAccess
-	// time will be set to the time that f returned. If f returns a Delete
-	// action then that entry will be deleted from the Storage.
-	//
-	// f may call a Storage's Add and Delete methods; those modifications
-	// will not affect the list of entries visited in this call to Entries.
-	Entries(key string, f func(entry Entry) (Action, time.Time, error)) error
-
-	// Keys calls f for each key stored. f will not be called on a key with
-	// zero entries. If f returns a non-nil error then the iteration stops
-	// and Keys returns that error. Iteration is not guaranteed to be in any
-	// particular order.
-	//
-	// f may call a Storage's Add, Delete and Entries methods; those
-	// modifications will not affect the list of keys visited in this call
-	// to Keys.
-	Keys(f func(key string) error) error
-}
-
-// Entry is an entry in a Storage.
-type Entry struct {
-	Subkey     string
-	Data       string
-	Creation   time.Time
-	LastAccess time.Time
-}
-
-// Action is an action returned by the function passed to Entries.
-type Action int
-
-const (
-	// Pass means to take no further action with an Entry.
-	Pass Action = iota
-	// Update means to update the LastAccess time of an Entry.
-	Update
-	// Delete means to delete an Entry.
-	Delete
-)
-
-// ValidStorageKey returns whether the given key is valid for a Storage.
-func ValidStorageKey(key string) bool {
-	hasNonDot := false
-	for i := 0; i < len(key); i++ {
-		switch c := key[i]; {
-		case 'a' <= c && c <= 'z':
-			fallthrough
-		case '0' <= c && c <= '9':
-			fallthrough
-		case c == '-':
-			hasNonDot = true
-		case c == '.':
-			// No-op.
-		default:
-			return false
-		}
-	}
-	return hasNonDot
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage_test.go gcc-4.8.1/libgo/go/exp/cookiejar/storage_test.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/cookiejar/storage_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,48 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cookiejar
-
-import (
-	"testing"
-)
-
-var validStorageKeyTests = map[string]bool{
-	"":            false,
-	".":           false,
-	"..":          false,
-	"/":           false,
-	"EXAMPLE.com": false,
-	"\n":          false,
-	"\r":          false,
-	"\r\n":        false,
-	"\x00":        false,
-	"back\\slash": false,
-	"co:lon":      false,
-	"com,ma":      false,
-	"semi;colon":  false,
-	"sl/ash":      false,
-	"sp ace":      false,
-	"under_score": false,
-	"Ï€":           false,
-
-	"-":                true,
-	".dot":             true,
-	".dot.":            true,
-	".metadata":        true,
-	".x..y..z...":      true,
-	"dot.":             true,
-	"example.com":      true,
-	"foo":              true,
-	"hy-phen":          true,
-	"xn--bcher-kva.ch": true,
-}
-
-func TestValidStorageKey(t *testing.T) {
-	for key, want := range validStorageKeyTests {
-		if got := ValidStorageKey(key); got != want {
-			t.Errorf("%q: got %v, want %v", key, got, want)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf.go gcc-4.8.1/libgo/go/exp/ebnf/ebnf.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnf/ebnf.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,269 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package ebnf is a library for EBNF grammars. The input is text ([]byte)
-// satisfying the following grammar (represented itself in EBNF):
-//
-//	Production  = name "=" [ Expression ] "." .
-//	Expression  = Alternative { "|" Alternative } .
-//	Alternative = Term { Term } .
-//	Term        = name | token [ "â€¦" token ] | Group | Option | Repetition .
-//	Group       = "(" Expression ")" .
-//	Option      = "[" Expression "]" .
-//	Repetition  = "{" Expression "}" .
-//
-// A name is a Go identifier, a token is a Go string, and comments
-// and white space follow the same rules as for the Go language.
-// Production names starting with an uppercase Unicode letter denote
-// non-terminal productions (i.e., productions which allow white-space
-// and comments between tokens); all other production names denote
-// lexical productions.
-//
-package ebnf
-
-import (
-	"errors"
-	"fmt"
-	"text/scanner"
-	"unicode"
-	"unicode/utf8"
-)
-
-// ----------------------------------------------------------------------------
-// Error handling
-
-type errorList []error
-
-func (list errorList) Err() error {
-	if len(list) == 0 {
-		return nil
-	}
-	return list
-}
-
-func (list errorList) Error() string {
-	switch len(list) {
-	case 0:
-		return "no errors"
-	case 1:
-		return list[0].Error()
-	}
-	return fmt.Sprintf("%s (and %d more errors)", list[0], len(list)-1)
-}
-
-func newError(pos scanner.Position, msg string) error {
-	return errors.New(fmt.Sprintf("%s: %s", pos, msg))
-}
-
-// ----------------------------------------------------------------------------
-// Internal representation
-
-type (
-	// An Expression node represents a production expression.
-	Expression interface {
-		// Pos is the position of the first character of the syntactic construct
-		Pos() scanner.Position
-	}
-
-	// An Alternative node represents a non-empty list of alternative expressions.
-	Alternative []Expression // x | y | z
-
-	// A Sequence node represents a non-empty list of sequential expressions.
-	Sequence []Expression // x y z
-
-	// A Name node represents a production name.
-	Name struct {
-		StringPos scanner.Position
-		String    string
-	}
-
-	// A Token node represents a literal.
-	Token struct {
-		StringPos scanner.Position
-		String    string
-	}
-
-	// A List node represents a range of characters.
-	Range struct {
-		Begin, End *Token // begin ... end
-	}
-
-	// A Group node represents a grouped expression.
-	Group struct {
-		Lparen scanner.Position
-		Body   Expression // (body)
-	}
-
-	// An Option node represents an optional expression.
-	Option struct {
-		Lbrack scanner.Position
-		Body   Expression // [body]
-	}
-
-	// A Repetition node represents a repeated expression.
-	Repetition struct {
-		Lbrace scanner.Position
-		Body   Expression // {body}
-	}
-
-	// A Production node represents an EBNF production.
-	Production struct {
-		Name *Name
-		Expr Expression
-	}
-
-	// A Bad node stands for pieces of source code that lead to a parse error.
-	Bad struct {
-		TokPos scanner.Position
-		Error  string // parser error message
-	}
-
-	// A Grammar is a set of EBNF productions. The map
-	// is indexed by production name.
-	//
-	Grammar map[string]*Production
-)
-
-func (x Alternative) Pos() scanner.Position { return x[0].Pos() } // the parser always generates non-empty Alternative
-func (x Sequence) Pos() scanner.Position    { return x[0].Pos() } // the parser always generates non-empty Sequences
-func (x *Name) Pos() scanner.Position       { return x.StringPos }
-func (x *Token) Pos() scanner.Position      { return x.StringPos }
-func (x *Range) Pos() scanner.Position      { return x.Begin.Pos() }
-func (x *Group) Pos() scanner.Position      { return x.Lparen }
-func (x *Option) Pos() scanner.Position     { return x.Lbrack }
-func (x *Repetition) Pos() scanner.Position { return x.Lbrace }
-func (x *Production) Pos() scanner.Position { return x.Name.Pos() }
-func (x *Bad) Pos() scanner.Position        { return x.TokPos }
-
-// ----------------------------------------------------------------------------
-// Grammar verification
-
-func isLexical(name string) bool {
-	ch, _ := utf8.DecodeRuneInString(name)
-	return !unicode.IsUpper(ch)
-}
-
-type verifier struct {
-	errors   errorList
-	worklist []*Production
-	reached  Grammar // set of productions reached from (and including) the root production
-	grammar  Grammar
-}
-
-func (v *verifier) error(pos scanner.Position, msg string) {
-	v.errors = append(v.errors, newError(pos, msg))
-}
-
-func (v *verifier) push(prod *Production) {
-	name := prod.Name.String
-	if _, found := v.reached[name]; !found {
-		v.worklist = append(v.worklist, prod)
-		v.reached[name] = prod
-	}
-}
-
-func (v *verifier) verifyChar(x *Token) rune {
-	s := x.String
-	if utf8.RuneCountInString(s) != 1 {
-		v.error(x.Pos(), "single char expected, found "+s)
-		return 0
-	}
-	ch, _ := utf8.DecodeRuneInString(s)
-	return ch
-}
-
-func (v *verifier) verifyExpr(expr Expression, lexical bool) {
-	switch x := expr.(type) {
-	case nil:
-		// empty expression
-	case Alternative:
-		for _, e := range x {
-			v.verifyExpr(e, lexical)
-		}
-	case Sequence:
-		for _, e := range x {
-			v.verifyExpr(e, lexical)
-		}
-	case *Name:
-		// a production with this name must exist;
-		// add it to the worklist if not yet processed
-		if prod, found := v.grammar[x.String]; found {
-			v.push(prod)
-		} else {
-			v.error(x.Pos(), "missing production "+x.String)
-		}
-		// within a lexical production references
-		// to non-lexical productions are invalid
-		if lexical && !isLexical(x.String) {
-			v.error(x.Pos(), "reference to non-lexical production "+x.String)
-		}
-	case *Token:
-		// nothing to do for now
-	case *Range:
-		i := v.verifyChar(x.Begin)
-		j := v.verifyChar(x.End)
-		if i >= j {
-			v.error(x.Pos(), "decreasing character range")
-		}
-	case *Group:
-		v.verifyExpr(x.Body, lexical)
-	case *Option:
-		v.verifyExpr(x.Body, lexical)
-	case *Repetition:
-		v.verifyExpr(x.Body, lexical)
-	case *Bad:
-		v.error(x.Pos(), x.Error)
-	default:
-		panic(fmt.Sprintf("internal error: unexpected type %T", expr))
-	}
-}
-
-func (v *verifier) verify(grammar Grammar, start string) {
-	// find root production
-	root, found := grammar[start]
-	if !found {
-		var noPos scanner.Position
-		v.error(noPos, "no start production "+start)
-		return
-	}
-
-	// initialize verifier
-	v.worklist = v.worklist[0:0]
-	v.reached = make(Grammar)
-	v.grammar = grammar
-
-	// work through the worklist
-	v.push(root)
-	for {
-		n := len(v.worklist) - 1
-		if n < 0 {
-			break
-		}
-		prod := v.worklist[n]
-		v.worklist = v.worklist[0:n]
-		v.verifyExpr(prod.Expr, isLexical(prod.Name.String))
-	}
-
-	// check if all productions were reached
-	if len(v.reached) < len(v.grammar) {
-		for name, prod := range v.grammar {
-			if _, found := v.reached[name]; !found {
-				v.error(prod.Pos(), name+" is unreachable")
-			}
-		}
-	}
-}
-
-// Verify checks that:
-//	- all productions used are defined
-//	- all productions defined are used when beginning at start
-//	- lexical productions refer only to other lexical productions
-//
-// Position information is interpreted relative to the file set fset.
-//
-func Verify(grammar Grammar, start string) error {
-	var v verifier
-	v.verify(grammar, start)
-	return v.errors.Err()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf_test.go gcc-4.8.1/libgo/go/exp/ebnf/ebnf_test.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf_test.go	2011-10-26 23:57:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnf/ebnf_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ebnf
-
-import (
-	"bytes"
-	"testing"
-)
-
-var goodGrammars = []string{
-	`Program = .`,
-
-	`Program = foo .
-	 foo = "foo" .`,
-
-	`Program = "a" | "b" "c" .`,
-
-	`Program = "a" â€¦ "z" .`,
-
-	`Program = Song .
-	 Song = { Note } .
-	 Note = Do | (Re | Mi | Fa | So | La) | Ti .
-	 Do = "c" .
-	 Re = "d" .
-	 Mi = "e" .
-	 Fa = "f" .
-	 So = "g" .
-	 La = "a" .
-	 Ti = ti .
-	 ti = "b" .`,
-}
-
-var badGrammars = []string{
-	`Program = | .`,
-	`Program = | b .`,
-	`Program = a â€¦ b .`,
-	`Program = "a" â€¦ .`,
-	`Program = â€¦ "b" .`,
-	`Program = () .`,
-	`Program = [] .`,
-	`Program = {} .`,
-}
-
-func checkGood(t *testing.T, src string) {
-	grammar, err := Parse("", bytes.NewBuffer([]byte(src)))
-	if err != nil {
-		t.Errorf("Parse(%s) failed: %v", src, err)
-		return
-	}
-	if err = Verify(grammar, "Program"); err != nil {
-		t.Errorf("Verify(%s) failed: %v", src, err)
-	}
-}
-
-func checkBad(t *testing.T, src string) {
-	_, err := Parse("", bytes.NewBuffer([]byte(src)))
-	if err == nil {
-		t.Errorf("Parse(%s) should have failed", src)
-	}
-}
-
-func TestGrammars(t *testing.T) {
-	for _, src := range goodGrammars {
-		checkGood(t, src)
-	}
-	for _, src := range badGrammars {
-		checkBad(t, src)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/parser.go gcc-4.8.1/libgo/go/exp/ebnf/parser.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/parser.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnf/parser.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,190 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ebnf
-
-import (
-	"io"
-	"strconv"
-	"text/scanner"
-)
-
-type parser struct {
-	errors  errorList
-	scanner scanner.Scanner
-	pos     scanner.Position // token position
-	tok     rune             // one token look-ahead
-	lit     string           // token literal
-}
-
-func (p *parser) next() {
-	p.tok = p.scanner.Scan()
-	p.pos = p.scanner.Position
-	p.lit = p.scanner.TokenText()
-}
-
-func (p *parser) error(pos scanner.Position, msg string) {
-	p.errors = append(p.errors, newError(pos, msg))
-}
-
-func (p *parser) errorExpected(pos scanner.Position, msg string) {
-	msg = `expected "` + msg + `"`
-	if pos.Offset == p.pos.Offset {
-		// the error happened at the current position;
-		// make the error message more specific
-		msg += ", found " + scanner.TokenString(p.tok)
-		if p.tok < 0 {
-			msg += " " + p.lit
-		}
-	}
-	p.error(pos, msg)
-}
-
-func (p *parser) expect(tok rune) scanner.Position {
-	pos := p.pos
-	if p.tok != tok {
-		p.errorExpected(pos, scanner.TokenString(tok))
-	}
-	p.next() // make progress in any case
-	return pos
-}
-
-func (p *parser) parseIdentifier() *Name {
-	pos := p.pos
-	name := p.lit
-	p.expect(scanner.Ident)
-	return &Name{pos, name}
-}
-
-func (p *parser) parseToken() *Token {
-	pos := p.pos
-	value := ""
-	if p.tok == scanner.String {
-		value, _ = strconv.Unquote(p.lit)
-		// Unquote may fail with an error, but only if the scanner found
-		// an illegal string in the first place. In this case the error
-		// has already been reported.
-		p.next()
-	} else {
-		p.expect(scanner.String)
-	}
-	return &Token{pos, value}
-}
-
-// ParseTerm returns nil if no term was found.
-func (p *parser) parseTerm() (x Expression) {
-	pos := p.pos
-
-	switch p.tok {
-	case scanner.Ident:
-		x = p.parseIdentifier()
-
-	case scanner.String:
-		tok := p.parseToken()
-		x = tok
-		const ellipsis = 'â€¦' // U+2026, the horizontal ellipsis character
-		if p.tok == ellipsis {
-			p.next()
-			x = &Range{tok, p.parseToken()}
-		}
-
-	case '(':
-		p.next()
-		x = &Group{pos, p.parseExpression()}
-		p.expect(')')
-
-	case '[':
-		p.next()
-		x = &Option{pos, p.parseExpression()}
-		p.expect(']')
-
-	case '{':
-		p.next()
-		x = &Repetition{pos, p.parseExpression()}
-		p.expect('}')
-	}
-
-	return x
-}
-
-func (p *parser) parseSequence() Expression {
-	var list Sequence
-
-	for x := p.parseTerm(); x != nil; x = p.parseTerm() {
-		list = append(list, x)
-	}
-
-	// no need for a sequence if list.Len() < 2
-	switch len(list) {
-	case 0:
-		p.errorExpected(p.pos, "term")
-		return &Bad{p.pos, "term expected"}
-	case 1:
-		return list[0]
-	}
-
-	return list
-}
-
-func (p *parser) parseExpression() Expression {
-	var list Alternative
-
-	for {
-		list = append(list, p.parseSequence())
-		if p.tok != '|' {
-			break
-		}
-		p.next()
-	}
-	// len(list) > 0
-
-	// no need for an Alternative node if list.Len() < 2
-	if len(list) == 1 {
-		return list[0]
-	}
-
-	return list
-}
-
-func (p *parser) parseProduction() *Production {
-	name := p.parseIdentifier()
-	p.expect('=')
-	var expr Expression
-	if p.tok != '.' {
-		expr = p.parseExpression()
-	}
-	p.expect('.')
-	return &Production{name, expr}
-}
-
-func (p *parser) parse(filename string, src io.Reader) Grammar {
-	p.scanner.Init(src)
-	p.scanner.Filename = filename
-	p.next() // initializes pos, tok, lit
-
-	grammar := make(Grammar)
-	for p.tok != scanner.EOF {
-		prod := p.parseProduction()
-		name := prod.Name.String
-		if _, found := grammar[name]; !found {
-			grammar[name] = prod
-		} else {
-			p.error(prod.Pos(), name+" declared already")
-		}
-	}
-
-	return grammar
-}
-
-// Parse parses a set of EBNF productions from source src.
-// It returns a set of productions. Errors are reported
-// for incorrect syntax and if a production is declared
-// more than once; the filename is used only for error
-// positions.
-//
-func Parse(filename string, src io.Reader) (Grammar, error) {
-	var p parser
-	grammar := p.parse(filename, src)
-	return grammar, p.errors.Err()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/doc.go gcc-4.8.1/libgo/go/exp/ebnflint/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/doc.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnflint/doc.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-
-Ebnflint verifies that EBNF productions are consistent and grammatically correct.
-It reads them from an HTML document such as the Go specification.
-
-Grammar productions are grouped in boxes demarcated by the HTML elements
-	<pre class="ebnf">
-	</pre>
-
-
-Usage:
-	go tool ebnflint [--start production] [file]
-
-The --start flag specifies the name of the start production for
-the grammar; it defaults to "Start".
-
-*/
-package documentation
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint.go gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,122 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"bytes"
-	"exp/ebnf"
-	"flag"
-	"fmt"
-	"go/scanner"
-	"go/token"
-	"io"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-)
-
-var fset = token.NewFileSet()
-var start = flag.String("start", "Start", "name of start production")
-
-func usage() {
-	fmt.Fprintf(os.Stderr, "usage: go tool ebnflint [flags] [filename]\n")
-	flag.PrintDefaults()
-	os.Exit(1)
-}
-
-// Markers around EBNF sections in .html files
-var (
-	open  = []byte(`<pre class="ebnf">`)
-	close = []byte(`</pre>`)
-)
-
-func report(err error) {
-	scanner.PrintError(os.Stderr, err)
-	os.Exit(1)
-}
-
-func extractEBNF(src []byte) []byte {
-	var buf bytes.Buffer
-
-	for {
-		// i = beginning of EBNF text
-		i := bytes.Index(src, open)
-		if i < 0 {
-			break // no EBNF found - we are done
-		}
-		i += len(open)
-
-		// write as many newlines as found in the excluded text
-		// to maintain correct line numbers in error messages
-		for _, ch := range src[0:i] {
-			if ch == '\n' {
-				buf.WriteByte('\n')
-			}
-		}
-
-		// j = end of EBNF text (or end of source)
-		j := bytes.Index(src[i:], close) // close marker
-		if j < 0 {
-			j = len(src) - i
-		}
-		j += i
-
-		// copy EBNF text
-		buf.Write(src[i:j])
-
-		// advance
-		src = src[j:]
-	}
-
-	return buf.Bytes()
-}
-
-func main() {
-	flag.Parse()
-
-	var (
-		name string
-		r    io.Reader
-	)
-	switch flag.NArg() {
-	case 0:
-		name, r = "<stdin>", os.Stdin
-	case 1:
-		name = flag.Arg(0)
-	default:
-		usage()
-	}
-
-	if err := verify(name, *start, r); err != nil {
-		report(err)
-	}
-}
-
-func verify(name, start string, r io.Reader) error {
-	if r == nil {
-		f, err := os.Open(name)
-		if err != nil {
-			return err
-		}
-		defer f.Close()
-		r = f
-	}
-
-	src, err := ioutil.ReadAll(r)
-	if err != nil {
-		return err
-	}
-
-	if filepath.Ext(name) == ".html" || bytes.Index(src, open) >= 0 {
-		src = extractEBNF(src)
-	}
-
-	grammar, err := ebnf.Parse(name, bytes.NewBuffer(src))
-	if err != nil {
-		return err
-	}
-
-	return ebnf.Verify(grammar, start)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint_test.go gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint_test.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint_test.go	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,16 +0,0 @@
-// Copyright 2012 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"runtime"
-	"testing"
-)
-
-func TestSpec(t *testing.T) {
-	if err := verify(runtime.GOROOT()+"/doc/go_spec.html", "SourceFile", nil); err != nil {
-		t.Fatal(err)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/doc.go gcc-4.8.1/libgo/go/exp/gotype/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/doc.go	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/gotype/doc.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,63 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-The gotype command does syntactic and semantic analysis of Go files
-and packages similar to the analysis performed by the front-end of
-a Go compiler. Errors are reported if the analysis fails; otherwise
-gotype is quiet (unless -v is set).
-
-Without a list of paths, gotype processes the standard input, which must
-be the source of a single package file.
-
-Given a list of file names, each file must be a source file belonging to
-the same package unless the package name is explicitly specified with the
--p flag.
-
-Given a directory name, gotype collects all .go files in the directory
-and processes them as if they were provided as an explicit list of file
-names. Each directory is processed independently. Files starting with .
-or not ending in .go are ignored.
-
-Usage:
-	gotype [flags] [path ...]
-
-The flags are:
-	-e
-		Print all (including spurious) errors.
-	-p pkgName
-		Process only those files in package pkgName.
-	-r
-		Recursively process subdirectories.
-	-v
-		Verbose mode.
-
-Debugging flags:
-	-comments
-		Parse comments (ignored if -ast not set).
-	-ast
-		Print AST (disables concurrent parsing).
-	-trace
-		Print parse trace (disables concurrent parsing).
-
-
-Examples
-
-To check the files file.go, old.saved, and .ignored:
-
-	gotype file.go old.saved .ignored
-
-To check all .go files belonging to package main in the current directory
-and recursively in all subdirectories:
-
-	gotype -p main -r .
-
-To verify the output of a pipe:
-
-	echo "package foo" | gotype
-
-*/
-package documentation
-
-// BUG(gri): At the moment, only single-file scope analysis is performed.
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/gotype.go gcc-4.8.1/libgo/go/exp/gotype/gotype.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/gotype.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/gotype/gotype.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,184 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"flag"
-	"fmt"
-	"go/ast"
-	"go/parser"
-	"go/scanner"
-	"go/token"
-	"go/types"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-	"strings"
-)
-
-var (
-	// main operation modes
-	pkgName   = flag.String("p", "", "process only those files in package pkgName")
-	recursive = flag.Bool("r", false, "recursively process subdirectories")
-	verbose   = flag.Bool("v", false, "verbose mode")
-	allErrors = flag.Bool("e", false, "print all (including spurious) errors")
-
-	// debugging support
-	parseComments = flag.Bool("comments", false, "parse comments (ignored if -ast not set)")
-	printTrace    = flag.Bool("trace", false, "print parse trace")
-	printAST      = flag.Bool("ast", false, "print AST")
-)
-
-var exitCode = 0
-
-func usage() {
-	fmt.Fprintf(os.Stderr, "usage: gotype [flags] [path ...]\n")
-	flag.PrintDefaults()
-	os.Exit(2)
-}
-
-func report(err error) {
-	scanner.PrintError(os.Stderr, err)
-	exitCode = 2
-}
-
-// parse returns the AST for the Go source src.
-// The filename is for error reporting only.
-// The result is nil if there were errors or if
-// the file does not belong to the -p package.
-func parse(fset *token.FileSet, filename string, src []byte) *ast.File {
-	if *verbose {
-		fmt.Println(filename)
-	}
-
-	// ignore files with different package name
-	if *pkgName != "" {
-		file, err := parser.ParseFile(fset, filename, src, parser.PackageClauseOnly)
-		if err != nil {
-			report(err)
-			return nil
-		}
-		if file.Name.Name != *pkgName {
-			if *verbose {
-				fmt.Printf("\tignored (package %s)\n", file.Name.Name)
-			}
-			return nil
-		}
-	}
-
-	// parse entire file
-	mode := parser.DeclarationErrors
-	if *allErrors {
-		mode |= parser.SpuriousErrors
-	}
-	if *parseComments && *printAST {
-		mode |= parser.ParseComments
-	}
-	if *printTrace {
-		mode |= parser.Trace
-	}
-	file, err := parser.ParseFile(fset, filename, src, mode)
-	if err != nil {
-		report(err)
-		return nil
-	}
-	if *printAST {
-		ast.Print(fset, file)
-	}
-
-	return file
-}
-
-func parseStdin(fset *token.FileSet) (files []*ast.File) {
-	src, err := ioutil.ReadAll(os.Stdin)
-	if err != nil {
-		report(err)
-		return
-	}
-	const filename = "<standard input>"
-	if file := parse(fset, filename, src); file != nil {
-		files = []*ast.File{file}
-	}
-	return
-}
-
-func parseFiles(fset *token.FileSet, filenames []string) (files []*ast.File) {
-	for _, filename := range filenames {
-		src, err := ioutil.ReadFile(filename)
-		if err != nil {
-			report(err)
-			continue
-		}
-		if file := parse(fset, filename, src); file != nil {
-			files = append(files, file)
-		}
-	}
-	return
-}
-
-func isGoFilename(filename string) bool {
-	// ignore non-Go files
-	return !strings.HasPrefix(filename, ".") && strings.HasSuffix(filename, ".go")
-}
-
-func processDirectory(dirname string) {
-	f, err := os.Open(dirname)
-	if err != nil {
-		report(err)
-		return
-	}
-	filenames, err := f.Readdirnames(-1)
-	f.Close()
-	if err != nil {
-		report(err)
-		// continue since filenames may not be empty
-	}
-	for i, filename := range filenames {
-		filenames[i] = filepath.Join(dirname, filename)
-	}
-	processFiles(filenames, false)
-}
-
-func processFiles(filenames []string, allFiles bool) {
-	i := 0
-	for _, filename := range filenames {
-		switch info, err := os.Stat(filename); {
-		case err != nil:
-			report(err)
-		case info.IsDir():
-			if allFiles || *recursive {
-				processDirectory(filename)
-			}
-		default:
-			if allFiles || isGoFilename(info.Name()) {
-				filenames[i] = filename
-				i++
-			}
-		}
-	}
-	fset := token.NewFileSet()
-	processPackage(fset, parseFiles(fset, filenames[0:i]))
-}
-
-func processPackage(fset *token.FileSet, files []*ast.File) {
-	_, err := types.Check(fset, files)
-	if err != nil {
-		report(err)
-	}
-}
-
-func main() {
-	flag.Usage = usage
-	flag.Parse()
-
-	if flag.NArg() == 0 {
-		fset := token.NewFileSet()
-		processPackage(fset, parseStdin(fset))
-	} else {
-		processFiles(flag.Args(), true)
-	}
-
-	os.Exit(exitCode)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/gotype_test.go gcc-4.8.1/libgo/go/exp/gotype/gotype_test.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/gotype_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/gotype/gotype_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,215 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"go/build"
-	"path/filepath"
-	"runtime"
-	"strings"
-	"testing"
-)
-
-func runTest(t *testing.T, path string) {
-	exitCode = 0
-
-	*recursive = false
-	if suffix := ".go"; strings.HasSuffix(path, suffix) {
-		// single file
-		path = filepath.Join(runtime.GOROOT(), "src/pkg", path)
-		path, file := filepath.Split(path)
-		*pkgName = file[:len(file)-len(suffix)]
-		processFiles([]string{path}, true)
-	} else {
-		// package directory
-		// TODO(gri) gotype should use the build package instead
-		ctxt := build.Default
-		ctxt.CgoEnabled = false
-		pkg, err := ctxt.Import(path, "", 0)
-		if err != nil {
-			t.Errorf("build.Import error for path = %s: %s", path, err)
-			return
-		}
-		// TODO(gri) there ought to be a more direct way using the build package...
-		files := make([]string, len(pkg.GoFiles))
-		for i, file := range pkg.GoFiles {
-			files[i] = filepath.Join(pkg.Dir, file)
-		}
-		*pkgName = pkg.Name
-		processFiles(files, true)
-	}
-
-	if exitCode != 0 {
-		t.Errorf("processing %s failed: exitCode = %d", path, exitCode)
-	}
-}
-
-var tests = []string{
-	// individual files
-	"exp/gotype/testdata/test1.go",
-
-	// directories
-	// Note: Packages that don't typecheck yet are commented out.
-	// Unless there is a comment next to the commented out packages,
-	// the package doesn't typecheck due to errors in the shift
-	// expression checker.
-	"archive/tar",
-	"archive/zip",
-
-	"bufio",
-	"bytes",
-
-	// "compress/bzip2",
-	"compress/flate",
-	"compress/gzip",
-	// "compress/lzw",
-	"compress/zlib",
-
-	"container/heap",
-	"container/list",
-	"container/ring",
-
-	"crypto",
-	"crypto/aes",
-	"crypto/cipher",
-	"crypto/des",
-	"crypto/dsa",
-	"crypto/ecdsa",
-	"crypto/elliptic",
-	"crypto/hmac",
-	"crypto/md5",
-	// "crypto/rand",
-	"crypto/rc4",
-	// "crypto/rsa", // intermittent failure: /home/gri/go2/src/pkg/crypto/rsa/pkcs1v15.go:21:27: undeclared name: io
-	"crypto/sha1",
-	"crypto/sha256",
-	"crypto/sha512",
-	"crypto/subtle",
-	"crypto/tls",
-	"crypto/x509",
-	"crypto/x509/pkix",
-
-	"database/sql",
-	"database/sql/driver",
-
-	// "debug/dwarf",
-	"debug/elf",
-	"debug/gosym",
-	"debug/macho",
-	"debug/pe",
-
-	"encoding/ascii85",
-	// "encoding/asn1",
-	"encoding/base32",
-	"encoding/base64",
-	"encoding/binary",
-	"encoding/csv",
-	"encoding/gob",
-	"encoding/hex",
-	"encoding/json",
-	"encoding/pem",
-	"encoding/xml",
-
-	"errors",
-	"expvar",
-	"flag",
-	"fmt",
-
-	"exp/gotype",
-
-	"go/ast",
-	"go/build",
-	"go/doc",
-	"go/format",
-	"go/parser",
-	"go/printer",
-	"go/scanner",
-	// "go/token",
-	"go/types",
-
-	"hash/adler32",
-	"hash/crc32",
-	"hash/crc64",
-	"hash/fnv",
-
-	"image",
-	"image/color",
-	"image/draw",
-	"image/gif",
-	// "image/jpeg",
-	"image/png",
-
-	"index/suffixarray",
-
-	"io",
-	"io/ioutil",
-
-	"log",
-	"log/syslog",
-
-	// "math",
-	//"math/big",
-	"math/cmplx",
-	"math/rand",
-
-	"mime",
-	"mime/multipart",
-
-	// "net",
-	"net/http",
-	"net/http/cgi",
-	"net/http/fcgi",
-	"net/http/httptest",
-	"net/http/httputil",
-	"net/http/pprof",
-	"net/mail",
-	"net/rpc",
-	"net/rpc/jsonrpc",
-	"net/smtp",
-	// "net/textproto",
-	"net/url",
-
-	"path",
-	"path/filepath",
-
-	"reflect",
-
-	"regexp",
-	"regexp/syntax",
-
-	// "runtime",
-	"runtime/cgo",
-	"runtime/debug",
-	"runtime/pprof",
-
-	"sort",
-	// "strconv",
-	"strings",
-
-	"sync",
-	"sync/atomic",
-
-	// "syscall",
-
-	"testing",
-	"testing/iotest",
-	"testing/quick",
-
-	// "text/scanner",
-	"text/tabwriter",
-	"text/template",
-	"text/template/parse",
-
-	"time",
-	"unicode",
-	"unicode/utf16",
-	"unicode/utf8",
-}
-
-func Test(t *testing.T) {
-	for _, test := range tests {
-		runTest(t, test)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/testdata/test1.go gcc-4.8.1/libgo/go/exp/gotype/testdata/test1.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/testdata/test1.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/gotype/testdata/test1.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package test1
-
-func _() {
-	// the scope of a local type declaration starts immediately after the type name
-	type T struct{ _ *T }
-}
-
-func _(x interface{}) {
-	// the variable defined by a TypeSwitchGuard is declared in each TypeCaseClause
-	switch t := x.(type) {
-	case int:
-		_ = t
-	case float32:
-		_ = t
-	default:
-		_ = t
-	}
-
-	// the variable defined by a TypeSwitchGuard must not conflict with other
-	// variables declared in the initial simple statement
-	switch t := 0; t := x.(type) {
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/atom.go gcc-4.8.1/libgo/go/exp/html/atom/atom.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/atom.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/atom/atom.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,81 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package atom provides integer codes (also known as atoms) for a fixed set of
-// frequently occurring HTML strings: tag names and attribute keys such as "p"
-// and "id".
-//
-// Sharing an atom's name between all elements with the same tag can result in
-// fewer string allocations when tokenizing and parsing HTML. Integer
-// comparisons are also generally faster than string comparisons.
-//
-// The value of an atom's particular code is not guaranteed to stay the same
-// between versions of this package. Neither is any ordering guaranteed:
-// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to
-// be dense. The only guarantees are that e.g. looking up "div" will yield
-// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0.
-//
-// TODO(rsc): When this package moves out of exp we need to freeze atom values
-// across releases.
-package atom
-
-// Atom is an integer code for a string. The zero value maps to "".
-type Atom uint32
-
-// String returns the atom's name.
-func (a Atom) String() string {
-	start := uint32(a >> 8)
-	n := uint32(a & 0xff)
-	if start+n > uint32(len(atomText)) {
-		return ""
-	}
-	return atomText[start : start+n]
-}
-
-func (a Atom) string() string {
-	return atomText[a>>8 : a>>8+a&0xff]
-}
-
-// fnv computes the FNV hash with an arbitrary starting value h.
-func fnv(h uint32, s []byte) uint32 {
-	for i := range s {
-		h ^= uint32(s[i])
-		h *= 16777619
-	}
-	return h
-}
-
-func match(s string, t []byte) bool {
-	for i, c := range t {
-		if s[i] != c {
-			return false
-		}
-	}
-	return true
-}
-
-// Lookup returns the atom whose name is s. It returns zero if there is no
-// such atom. The lookup is case sensitive.
-func Lookup(s []byte) Atom {
-	if len(s) == 0 || len(s) > maxAtomLen {
-		return 0
-	}
-	h := fnv(hash0, s)
-	if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
-		return a
-	}
-	if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
-		return a
-	}
-	return 0
-}
-
-// String returns a string whose contents are equal to s. In that sense, it is
-// equivalent to string(s) but may be more efficient.
-func String(s []byte) string {
-	if a := Lookup(s); a != 0 {
-		return a.String()
-	}
-	return string(s)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/atom_test.go gcc-4.8.1/libgo/go/exp/html/atom/atom_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/atom_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/atom/atom_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,109 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package atom
-
-import (
-	"sort"
-	"testing"
-)
-
-func TestKnown(t *testing.T) {
-	for _, s := range testAtomList {
-		if atom := Lookup([]byte(s)); atom.String() != s {
-			t.Errorf("Lookup(%q) = %#x (%q)", s, uint32(atom), atom.String())
-		}
-	}
-}
-
-func TestHits(t *testing.T) {
-	for _, a := range table {
-		if a == 0 {
-			continue
-		}
-		got := Lookup([]byte(a.String()))
-		if got != a {
-			t.Errorf("Lookup(%q) = %#x, want %#x", a.String(), uint32(got), uint32(a))
-		}
-	}
-}
-
-func TestMisses(t *testing.T) {
-	testCases := []string{
-		"",
-		"\x00",
-		"\xff",
-		"A",
-		"DIV",
-		"Div",
-		"dIV",
-		"aa",
-		"a\x00",
-		"ab",
-		"abb",
-		"abbr0",
-		"abbr ",
-		" abbr",
-		" a",
-		"acceptcharset",
-		"acceptCharset",
-		"accept_charset",
-		"h0",
-		"h1h2",
-		"h7",
-		"onClick",
-		"Î»",
-		// The following string has the same hash (0xa1d7fab7) as "onmouseover".
-		"\x00\x00\x00\x00\x00\x50\x18\xae\x38\xd0\xb7",
-	}
-	for _, tc := range testCases {
-		got := Lookup([]byte(tc))
-		if got != 0 {
-			t.Errorf("Lookup(%q): got %d, want 0", tc, got)
-		}
-	}
-}
-
-func TestForeignObject(t *testing.T) {
-	const (
-		afo = Foreignobject
-		afO = ForeignObject
-		sfo = "foreignobject"
-		sfO = "foreignObject"
-	)
-	if got := Lookup([]byte(sfo)); got != afo {
-		t.Errorf("Lookup(%q): got %#v, want %#v", sfo, got, afo)
-	}
-	if got := Lookup([]byte(sfO)); got != afO {
-		t.Errorf("Lookup(%q): got %#v, want %#v", sfO, got, afO)
-	}
-	if got := afo.String(); got != sfo {
-		t.Errorf("Atom(%#v).String(): got %q, want %q", afo, got, sfo)
-	}
-	if got := afO.String(); got != sfO {
-		t.Errorf("Atom(%#v).String(): got %q, want %q", afO, got, sfO)
-	}
-}
-
-func BenchmarkLookup(b *testing.B) {
-	sortedTable := make([]string, 0, len(table))
-	for _, a := range table {
-		if a != 0 {
-			sortedTable = append(sortedTable, a.String())
-		}
-	}
-	sort.Strings(sortedTable)
-
-	x := make([][]byte, 1000)
-	for i := range x {
-		x[i] = []byte(sortedTable[i%len(sortedTable)])
-	}
-
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		for _, s := range x {
-			Lookup(s)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/gen.go gcc-4.8.1/libgo/go/exp/html/atom/gen.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/gen.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/atom/gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,636 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-// This program generates table.go and table_test.go.
-// Invoke as
-//
-//	go run gen.go |gofmt >table.go
-//	go run gen.go -test |gofmt >table_test.go
-
-import (
-	"flag"
-	"fmt"
-	"math/rand"
-	"os"
-	"sort"
-	"strings"
-)
-
-// identifier converts s to a Go exported identifier.
-// It converts "div" to "Div" and "accept-charset" to "AcceptCharset".
-func identifier(s string) string {
-	b := make([]byte, 0, len(s))
-	cap := true
-	for _, c := range s {
-		if c == '-' {
-			cap = true
-			continue
-		}
-		if cap && 'a' <= c && c <= 'z' {
-			c -= 'a' - 'A'
-		}
-		cap = false
-		b = append(b, byte(c))
-	}
-	return string(b)
-}
-
-var test = flag.Bool("test", false, "generate table_test.go")
-
-func main() {
-	flag.Parse()
-
-	var all []string
-	all = append(all, elements...)
-	all = append(all, attributes...)
-	all = append(all, eventHandlers...)
-	all = append(all, extra...)
-	sort.Strings(all)
-
-	if *test {
-		fmt.Printf("// generated by go run gen.go -test; DO NOT EDIT\n\n")
-		fmt.Printf("package atom\n\n")
-		fmt.Printf("var testAtomList = []string{\n")
-		for _, s := range all {
-			fmt.Printf("\t%q,\n", s)
-		}
-		fmt.Printf("}\n")
-		return
-	}
-
-	// uniq - lists have dups
-	// compute max len too
-	maxLen := 0
-	w := 0
-	for _, s := range all {
-		if w == 0 || all[w-1] != s {
-			if maxLen < len(s) {
-				maxLen = len(s)
-			}
-			all[w] = s
-			w++
-		}
-	}
-	all = all[:w]
-
-	// Find hash that minimizes table size.
-	var best *table
-	for i := 0; i < 1000000; i++ {
-		if best != nil && 1<<(best.k-1) < len(all) {
-			break
-		}
-		h := rand.Uint32()
-		for k := uint(0); k <= 16; k++ {
-			if best != nil && k >= best.k {
-				break
-			}
-			var t table
-			if t.init(h, k, all) {
-				best = &t
-				break
-			}
-		}
-	}
-	if best == nil {
-		fmt.Fprintf(os.Stderr, "failed to construct string table\n")
-		os.Exit(1)
-	}
-
-	// Lay out strings, using overlaps when possible.
-	layout := append([]string{}, all...)
-
-	// Remove strings that are substrings of other strings
-	for changed := true; changed; {
-		changed = false
-		for i, s := range layout {
-			if s == "" {
-				continue
-			}
-			for j, t := range layout {
-				if i != j && t != "" && strings.Contains(s, t) {
-					changed = true
-					layout[j] = ""
-				}
-			}
-		}
-	}
-
-	// Join strings where one suffix matches another prefix.
-	for {
-		// Find best i, j, k such that layout[i][len-k:] == layout[j][:k],
-		// maximizing overlap length k.
-		besti := -1
-		bestj := -1
-		bestk := 0
-		for i, s := range layout {
-			if s == "" {
-				continue
-			}
-			for j, t := range layout {
-				if i == j {
-					continue
-				}
-				for k := bestk + 1; k <= len(s) && k <= len(t); k++ {
-					if s[len(s)-k:] == t[:k] {
-						besti = i
-						bestj = j
-						bestk = k
-					}
-				}
-			}
-		}
-		if bestk > 0 {
-			layout[besti] += layout[bestj][bestk:]
-			layout[bestj] = ""
-			continue
-		}
-		break
-	}
-
-	text := strings.Join(layout, "")
-
-	atom := map[string]uint32{}
-	for _, s := range all {
-		off := strings.Index(text, s)
-		if off < 0 {
-			panic("lost string " + s)
-		}
-		atom[s] = uint32(off<<8 | len(s))
-	}
-
-	// Generate the Go code.
-	fmt.Printf("// generated by go run gen.go; DO NOT EDIT\n\n")
-	fmt.Printf("package atom\n\nconst (\n")
-	for _, s := range all {
-		fmt.Printf("\t%s Atom = %#x\n", identifier(s), atom[s])
-	}
-	fmt.Printf(")\n\n")
-
-	fmt.Printf("const hash0 = %#x\n\n", best.h0)
-	fmt.Printf("const maxAtomLen = %d\n\n", maxLen)
-
-	fmt.Printf("var table = [1<<%d]Atom{\n", best.k)
-	for i, s := range best.tab {
-		if s == "" {
-			continue
-		}
-		fmt.Printf("\t%#x: %#x, // %s\n", i, atom[s], s)
-	}
-	fmt.Printf("}\n")
-	datasize := (1 << best.k) * 4
-
-	fmt.Printf("const atomText =\n")
-	textsize := len(text)
-	for len(text) > 60 {
-		fmt.Printf("\t%q +\n", text[:60])
-		text = text[60:]
-	}
-	fmt.Printf("\t%q\n\n", text)
-
-	fmt.Fprintf(os.Stderr, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize)
-}
-
-type byLen []string
-
-func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) }
-func (x byLen) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
-func (x byLen) Len() int           { return len(x) }
-
-// fnv computes the FNV hash with an arbitrary starting value h.
-func fnv(h uint32, s string) uint32 {
-	for i := 0; i < len(s); i++ {
-		h ^= uint32(s[i])
-		h *= 16777619
-	}
-	return h
-}
-
-// A table represents an attempt at constructing the lookup table.
-// The lookup table uses cuckoo hashing, meaning that each string
-// can be found in one of two positions.
-type table struct {
-	h0   uint32
-	k    uint
-	mask uint32
-	tab  []string
-}
-
-// hash returns the two hashes for s.
-func (t *table) hash(s string) (h1, h2 uint32) {
-	h := fnv(t.h0, s)
-	h1 = h & t.mask
-	h2 = (h >> 16) & t.mask
-	return
-}
-
-// init initializes the table with the given parameters.
-// h0 is the initial hash value,
-// k is the number of bits of hash value to use, and
-// x is the list of strings to store in the table.
-// init returns false if the table cannot be constructed.
-func (t *table) init(h0 uint32, k uint, x []string) bool {
-	t.h0 = h0
-	t.k = k
-	t.tab = make([]string, 1<<k)
-	t.mask = 1<<k - 1
-	for _, s := range x {
-		if !t.insert(s) {
-			return false
-		}
-	}
-	return true
-}
-
-// insert inserts s in the table.
-func (t *table) insert(s string) bool {
-	h1, h2 := t.hash(s)
-	if t.tab[h1] == "" {
-		t.tab[h1] = s
-		return true
-	}
-	if t.tab[h2] == "" {
-		t.tab[h2] = s
-		return true
-	}
-	if t.push(h1, 0) {
-		t.tab[h1] = s
-		return true
-	}
-	if t.push(h2, 0) {
-		t.tab[h2] = s
-		return true
-	}
-	return false
-}
-
-// push attempts to push aside the entry in slot i.
-func (t *table) push(i uint32, depth int) bool {
-	if depth > len(t.tab) {
-		return false
-	}
-	s := t.tab[i]
-	h1, h2 := t.hash(s)
-	j := h1 + h2 - i
-	if t.tab[j] != "" && !t.push(j, depth+1) {
-		return false
-	}
-	t.tab[j] = s
-	return true
-}
-
-// The lists of element names and attribute keys were taken from
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/section-index.html
-// as of the "HTML Living Standard - Last Updated 30 May 2012" version.
-
-var elements = []string{
-	"a",
-	"abbr",
-	"address",
-	"area",
-	"article",
-	"aside",
-	"audio",
-	"b",
-	"base",
-	"bdi",
-	"bdo",
-	"blockquote",
-	"body",
-	"br",
-	"button",
-	"canvas",
-	"caption",
-	"cite",
-	"code",
-	"col",
-	"colgroup",
-	"command",
-	"data",
-	"datalist",
-	"dd",
-	"del",
-	"details",
-	"dfn",
-	"dialog",
-	"div",
-	"dl",
-	"dt",
-	"em",
-	"embed",
-	"fieldset",
-	"figcaption",
-	"figure",
-	"footer",
-	"form",
-	"h1",
-	"h2",
-	"h3",
-	"h4",
-	"h5",
-	"h6",
-	"head",
-	"header",
-	"hgroup",
-	"hr",
-	"html",
-	"i",
-	"iframe",
-	"img",
-	"input",
-	"ins",
-	"kbd",
-	"keygen",
-	"label",
-	"legend",
-	"li",
-	"link",
-	"map",
-	"mark",
-	"menu",
-	"meta",
-	"meter",
-	"nav",
-	"noscript",
-	"object",
-	"ol",
-	"optgroup",
-	"option",
-	"output",
-	"p",
-	"param",
-	"pre",
-	"progress",
-	"q",
-	"rp",
-	"rt",
-	"ruby",
-	"s",
-	"samp",
-	"script",
-	"section",
-	"select",
-	"small",
-	"source",
-	"span",
-	"strong",
-	"style",
-	"sub",
-	"summary",
-	"sup",
-	"table",
-	"tbody",
-	"td",
-	"textarea",
-	"tfoot",
-	"th",
-	"thead",
-	"time",
-	"title",
-	"tr",
-	"track",
-	"u",
-	"ul",
-	"var",
-	"video",
-	"wbr",
-}
-
-var attributes = []string{
-	"accept",
-	"accept-charset",
-	"accesskey",
-	"action",
-	"alt",
-	"async",
-	"autocomplete",
-	"autofocus",
-	"autoplay",
-	"border",
-	"challenge",
-	"charset",
-	"checked",
-	"cite",
-	"class",
-	"cols",
-	"colspan",
-	"command",
-	"content",
-	"contenteditable",
-	"contextmenu",
-	"controls",
-	"coords",
-	"crossorigin",
-	"data",
-	"datetime",
-	"default",
-	"defer",
-	"dir",
-	"dirname",
-	"disabled",
-	"download",
-	"draggable",
-	"dropzone",
-	"enctype",
-	"for",
-	"form",
-	"formaction",
-	"formenctype",
-	"formmethod",
-	"formnovalidate",
-	"formtarget",
-	"headers",
-	"height",
-	"hidden",
-	"high",
-	"href",
-	"hreflang",
-	"http-equiv",
-	"icon",
-	"id",
-	"inert",
-	"ismap",
-	"itemid",
-	"itemprop",
-	"itemref",
-	"itemscope",
-	"itemtype",
-	"keytype",
-	"kind",
-	"label",
-	"lang",
-	"list",
-	"loop",
-	"low",
-	"manifest",
-	"max",
-	"maxlength",
-	"media",
-	"mediagroup",
-	"method",
-	"min",
-	"multiple",
-	"muted",
-	"name",
-	"novalidate",
-	"open",
-	"optimum",
-	"pattern",
-	"ping",
-	"placeholder",
-	"poster",
-	"preload",
-	"radiogroup",
-	"readonly",
-	"rel",
-	"required",
-	"reversed",
-	"rows",
-	"rowspan",
-	"sandbox",
-	"spellcheck",
-	"scope",
-	"scoped",
-	"seamless",
-	"selected",
-	"shape",
-	"size",
-	"sizes",
-	"span",
-	"src",
-	"srcdoc",
-	"srclang",
-	"start",
-	"step",
-	"style",
-	"tabindex",
-	"target",
-	"title",
-	"translate",
-	"type",
-	"typemustmatch",
-	"usemap",
-	"value",
-	"width",
-	"wrap",
-}
-
-var eventHandlers = []string{
-	"onabort",
-	"onafterprint",
-	"onbeforeprint",
-	"onbeforeunload",
-	"onblur",
-	"oncancel",
-	"oncanplay",
-	"oncanplaythrough",
-	"onchange",
-	"onclick",
-	"onclose",
-	"oncontextmenu",
-	"oncuechange",
-	"ondblclick",
-	"ondrag",
-	"ondragend",
-	"ondragenter",
-	"ondragleave",
-	"ondragover",
-	"ondragstart",
-	"ondrop",
-	"ondurationchange",
-	"onemptied",
-	"onended",
-	"onerror",
-	"onfocus",
-	"onhashchange",
-	"oninput",
-	"oninvalid",
-	"onkeydown",
-	"onkeypress",
-	"onkeyup",
-	"onload",
-	"onloadeddata",
-	"onloadedmetadata",
-	"onloadstart",
-	"onmessage",
-	"onmousedown",
-	"onmousemove",
-	"onmouseout",
-	"onmouseover",
-	"onmouseup",
-	"onmousewheel",
-	"onoffline",
-	"ononline",
-	"onpagehide",
-	"onpageshow",
-	"onpause",
-	"onplay",
-	"onplaying",
-	"onpopstate",
-	"onprogress",
-	"onratechange",
-	"onreset",
-	"onresize",
-	"onscroll",
-	"onseeked",
-	"onseeking",
-	"onselect",
-	"onshow",
-	"onstalled",
-	"onstorage",
-	"onsubmit",
-	"onsuspend",
-	"ontimeupdate",
-	"onunload",
-	"onvolumechange",
-	"onwaiting",
-}
-
-// extra are ad-hoc values not covered by any of the lists above.
-var extra = []string{
-	"align",
-	"annotation",
-	"annotation-xml",
-	"applet",
-	"basefont",
-	"bgsound",
-	"big",
-	"blink",
-	"center",
-	"color",
-	"desc",
-	"face",
-	"font",
-	"foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive.
-	"foreignobject",
-	"frame",
-	"frameset",
-	"image",
-	"isindex",
-	"listing",
-	"malignmark",
-	"marquee",
-	"math",
-	"mglyph",
-	"mi",
-	"mn",
-	"mo",
-	"ms",
-	"mtext",
-	"nobr",
-	"noembed",
-	"noframes",
-	"plaintext",
-	"prompt",
-	"public",
-	"spacer",
-	"strike",
-	"svg",
-	"system",
-	"tt",
-	"xmp",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/table.go gcc-4.8.1/libgo/go/exp/html/atom/table.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/table.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/atom/table.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,694 +0,0 @@
-// generated by go run gen.go; DO NOT EDIT
-
-package atom
-
-const (
-	A                Atom = 0x1
-	Abbr             Atom = 0x4
-	Accept           Atom = 0x2106
-	AcceptCharset    Atom = 0x210e
-	Accesskey        Atom = 0x3309
-	Action           Atom = 0x21b06
-	Address          Atom = 0x5d507
-	Align            Atom = 0x1105
-	Alt              Atom = 0x4503
-	Annotation       Atom = 0x18d0a
-	AnnotationXml    Atom = 0x18d0e
-	Applet           Atom = 0x2d106
-	Area             Atom = 0x31804
-	Article          Atom = 0x39907
-	Aside            Atom = 0x4f05
-	Async            Atom = 0x9305
-	Audio            Atom = 0xaf05
-	Autocomplete     Atom = 0xd50c
-	Autofocus        Atom = 0xe109
-	Autoplay         Atom = 0x10c08
-	B                Atom = 0x101
-	Base             Atom = 0x11404
-	Basefont         Atom = 0x11408
-	Bdi              Atom = 0x1a03
-	Bdo              Atom = 0x12503
-	Bgsound          Atom = 0x13807
-	Big              Atom = 0x14403
-	Blink            Atom = 0x14705
-	Blockquote       Atom = 0x14c0a
-	Body             Atom = 0x2f04
-	Border           Atom = 0x15606
-	Br               Atom = 0x202
-	Button           Atom = 0x15c06
-	Canvas           Atom = 0x4b06
-	Caption          Atom = 0x1e007
-	Center           Atom = 0x2df06
-	Challenge        Atom = 0x23e09
-	Charset          Atom = 0x2807
-	Checked          Atom = 0x33f07
-	Cite             Atom = 0x9704
-	Class            Atom = 0x3d905
-	Code             Atom = 0x16f04
-	Col              Atom = 0x17603
-	Colgroup         Atom = 0x17608
-	Color            Atom = 0x18305
-	Cols             Atom = 0x18804
-	Colspan          Atom = 0x18807
-	Command          Atom = 0x19b07
-	Content          Atom = 0x42c07
-	Contenteditable  Atom = 0x42c0f
-	Contextmenu      Atom = 0x3480b
-	Controls         Atom = 0x1ae08
-	Coords           Atom = 0x1ba06
-	Crossorigin      Atom = 0x1c40b
-	Data             Atom = 0x44304
-	Datalist         Atom = 0x44308
-	Datetime         Atom = 0x25b08
-	Dd               Atom = 0x28802
-	Default          Atom = 0x5207
-	Defer            Atom = 0x17105
-	Del              Atom = 0x4d603
-	Desc             Atom = 0x4804
-	Details          Atom = 0x6507
-	Dfn              Atom = 0x8303
-	Dialog           Atom = 0x1b06
-	Dir              Atom = 0x9d03
-	Dirname          Atom = 0x9d07
-	Disabled         Atom = 0x10008
-	Div              Atom = 0x10703
-	Dl               Atom = 0x13e02
-	Download         Atom = 0x40908
-	Draggable        Atom = 0x1a109
-	Dropzone         Atom = 0x3a208
-	Dt               Atom = 0x4e402
-	Em               Atom = 0x7f02
-	Embed            Atom = 0x7f05
-	Enctype          Atom = 0x23007
-	Face             Atom = 0x2dd04
-	Fieldset         Atom = 0x1d508
-	Figcaption       Atom = 0x1dd0a
-	Figure           Atom = 0x1f106
-	Font             Atom = 0x11804
-	Footer           Atom = 0x5906
-	For              Atom = 0x1fd03
-	ForeignObject    Atom = 0x1fd0d
-	Foreignobject    Atom = 0x20a0d
-	Form             Atom = 0x21704
-	Formaction       Atom = 0x2170a
-	Formenctype      Atom = 0x22c0b
-	Formmethod       Atom = 0x2470a
-	Formnovalidate   Atom = 0x2510e
-	Formtarget       Atom = 0x2660a
-	Frame            Atom = 0x8705
-	Frameset         Atom = 0x8708
-	H1               Atom = 0x13602
-	H2               Atom = 0x29602
-	H3               Atom = 0x2c502
-	H4               Atom = 0x30e02
-	H5               Atom = 0x4e602
-	H6               Atom = 0x27002
-	Head             Atom = 0x2fa04
-	Header           Atom = 0x2fa06
-	Headers          Atom = 0x2fa07
-	Height           Atom = 0x27206
-	Hgroup           Atom = 0x27a06
-	Hidden           Atom = 0x28606
-	High             Atom = 0x29304
-	Hr               Atom = 0x13102
-	Href             Atom = 0x29804
-	Hreflang         Atom = 0x29808
-	Html             Atom = 0x27604
-	HttpEquiv        Atom = 0x2a00a
-	I                Atom = 0x601
-	Icon             Atom = 0x42b04
-	Id               Atom = 0x5102
-	Iframe           Atom = 0x2b406
-	Image            Atom = 0x2ba05
-	Img              Atom = 0x2bf03
-	Inert            Atom = 0x4c105
-	Input            Atom = 0x3f605
-	Ins              Atom = 0x1cd03
-	Isindex          Atom = 0x2c707
-	Ismap            Atom = 0x2ce05
-	Itemid           Atom = 0x9806
-	Itemprop         Atom = 0x57e08
-	Itemref          Atom = 0x2d707
-	Itemscope        Atom = 0x2e509
-	Itemtype         Atom = 0x2ef08
-	Kbd              Atom = 0x1903
-	Keygen           Atom = 0x3906
-	Keytype          Atom = 0x51207
-	Kind             Atom = 0xfd04
-	Label            Atom = 0xba05
-	Lang             Atom = 0x29c04
-	Legend           Atom = 0x1a806
-	Li               Atom = 0x1202
-	Link             Atom = 0x14804
-	List             Atom = 0x44704
-	Listing          Atom = 0x44707
-	Loop             Atom = 0xbe04
-	Low              Atom = 0x13f03
-	Malignmark       Atom = 0x100a
-	Manifest         Atom = 0x5b608
-	Map              Atom = 0x2d003
-	Mark             Atom = 0x1604
-	Marquee          Atom = 0x5f207
-	Math             Atom = 0x2f704
-	Max              Atom = 0x30603
-	Maxlength        Atom = 0x30609
-	Media            Atom = 0xa205
-	Mediagroup       Atom = 0xa20a
-	Menu             Atom = 0x34f04
-	Meta             Atom = 0x45604
-	Meter            Atom = 0x26105
-	Method           Atom = 0x24b06
-	Mglyph           Atom = 0x2c006
-	Mi               Atom = 0x9b02
-	Min              Atom = 0x31003
-	Mn               Atom = 0x25402
-	Mo               Atom = 0x47a02
-	Ms               Atom = 0x2e802
-	Mtext            Atom = 0x31305
-	Multiple         Atom = 0x32108
-	Muted            Atom = 0x32905
-	Name             Atom = 0xa004
-	Nav              Atom = 0x3e03
-	Nobr             Atom = 0x7404
-	Noembed          Atom = 0x7d07
-	Noframes         Atom = 0x8508
-	Noscript         Atom = 0x28b08
-	Novalidate       Atom = 0x2550a
-	Object           Atom = 0x21106
-	Ol               Atom = 0xcd02
-	Onabort          Atom = 0x16007
-	Onafterprint     Atom = 0x1e50c
-	Onbeforeprint    Atom = 0x21f0d
-	Onbeforeunload   Atom = 0x5c90e
-	Onblur           Atom = 0x3e206
-	Oncancel         Atom = 0xb308
-	Oncanplay        Atom = 0x12709
-	Oncanplaythrough Atom = 0x12710
-	Onchange         Atom = 0x3b808
-	Onclick          Atom = 0x2ad07
-	Onclose          Atom = 0x32e07
-	Oncontextmenu    Atom = 0x3460d
-	Oncuechange      Atom = 0x3530b
-	Ondblclick       Atom = 0x35e0a
-	Ondrag           Atom = 0x36806
-	Ondragend        Atom = 0x36809
-	Ondragenter      Atom = 0x3710b
-	Ondragleave      Atom = 0x37c0b
-	Ondragover       Atom = 0x3870a
-	Ondragstart      Atom = 0x3910b
-	Ondrop           Atom = 0x3a006
-	Ondurationchange Atom = 0x3b010
-	Onemptied        Atom = 0x3a709
-	Onended          Atom = 0x3c007
-	Onerror          Atom = 0x3c707
-	Onfocus          Atom = 0x3ce07
-	Onhashchange     Atom = 0x3e80c
-	Oninput          Atom = 0x3f407
-	Oninvalid        Atom = 0x3fb09
-	Onkeydown        Atom = 0x40409
-	Onkeypress       Atom = 0x4110a
-	Onkeyup          Atom = 0x42107
-	Onload           Atom = 0x43b06
-	Onloadeddata     Atom = 0x43b0c
-	Onloadedmetadata Atom = 0x44e10
-	Onloadstart      Atom = 0x4640b
-	Onmessage        Atom = 0x46f09
-	Onmousedown      Atom = 0x4780b
-	Onmousemove      Atom = 0x4830b
-	Onmouseout       Atom = 0x48e0a
-	Onmouseover      Atom = 0x49b0b
-	Onmouseup        Atom = 0x4a609
-	Onmousewheel     Atom = 0x4af0c
-	Onoffline        Atom = 0x4bb09
-	Ononline         Atom = 0x4c608
-	Onpagehide       Atom = 0x4ce0a
-	Onpageshow       Atom = 0x4d90a
-	Onpause          Atom = 0x4e807
-	Onplay           Atom = 0x4f206
-	Onplaying        Atom = 0x4f209
-	Onpopstate       Atom = 0x4fb0a
-	Onprogress       Atom = 0x5050a
-	Onratechange     Atom = 0x5190c
-	Onreset          Atom = 0x52507
-	Onresize         Atom = 0x52c08
-	Onscroll         Atom = 0x53a08
-	Onseeked         Atom = 0x54208
-	Onseeking        Atom = 0x54a09
-	Onselect         Atom = 0x55308
-	Onshow           Atom = 0x55d06
-	Onstalled        Atom = 0x56609
-	Onstorage        Atom = 0x56f09
-	Onsubmit         Atom = 0x57808
-	Onsuspend        Atom = 0x58809
-	Ontimeupdate     Atom = 0x1190c
-	Onunload         Atom = 0x59108
-	Onvolumechange   Atom = 0x5990e
-	Onwaiting        Atom = 0x5a709
-	Open             Atom = 0x58404
-	Optgroup         Atom = 0xc008
-	Optimum          Atom = 0x5b007
-	Option           Atom = 0x5c506
-	Output           Atom = 0x49506
-	P                Atom = 0xc01
-	Param            Atom = 0xc05
-	Pattern          Atom = 0x6e07
-	Ping             Atom = 0xab04
-	Placeholder      Atom = 0xc70b
-	Plaintext        Atom = 0xf109
-	Poster           Atom = 0x17d06
-	Pre              Atom = 0x27f03
-	Preload          Atom = 0x27f07
-	Progress         Atom = 0x50708
-	Prompt           Atom = 0x5bf06
-	Public           Atom = 0x42706
-	Q                Atom = 0x15101
-	Radiogroup       Atom = 0x30a
-	Readonly         Atom = 0x31908
-	Rel              Atom = 0x28003
-	Required         Atom = 0x1f508
-	Reversed         Atom = 0x5e08
-	Rows             Atom = 0x7704
-	Rowspan          Atom = 0x7707
-	Rp               Atom = 0x1eb02
-	Rt               Atom = 0x16502
-	Ruby             Atom = 0xd104
-	S                Atom = 0x2c01
-	Samp             Atom = 0x6b04
-	Sandbox          Atom = 0xe907
-	Scope            Atom = 0x2e905
-	Scoped           Atom = 0x2e906
-	Script           Atom = 0x28d06
-	Seamless         Atom = 0x33308
-	Section          Atom = 0x3dd07
-	Select           Atom = 0x55506
-	Selected         Atom = 0x55508
-	Shape            Atom = 0x1b505
-	Size             Atom = 0x53004
-	Sizes            Atom = 0x53005
-	Small            Atom = 0x1bf05
-	Source           Atom = 0x1cf06
-	Spacer           Atom = 0x30006
-	Span             Atom = 0x7a04
-	Spellcheck       Atom = 0x33a0a
-	Src              Atom = 0x3d403
-	Srcdoc           Atom = 0x3d406
-	Srclang          Atom = 0x41a07
-	Start            Atom = 0x39705
-	Step             Atom = 0x5bc04
-	Strike           Atom = 0x50e06
-	Strong           Atom = 0x53406
-	Style            Atom = 0x5db05
-	Sub              Atom = 0x57a03
-	Summary          Atom = 0x5e007
-	Sup              Atom = 0x5e703
-	Svg              Atom = 0x5ea03
-	System           Atom = 0x5ed06
-	Tabindex         Atom = 0x45c08
-	Table            Atom = 0x43605
-	Target           Atom = 0x26a06
-	Tbody            Atom = 0x2e05
-	Td               Atom = 0x4702
-	Textarea         Atom = 0x31408
-	Tfoot            Atom = 0x5805
-	Th               Atom = 0x13002
-	Thead            Atom = 0x2f905
-	Time             Atom = 0x11b04
-	Title            Atom = 0x8e05
-	Tr               Atom = 0xf902
-	Track            Atom = 0xf905
-	Translate        Atom = 0x16609
-	Tt               Atom = 0x7002
-	Type             Atom = 0x23304
-	Typemustmatch    Atom = 0x2330d
-	U                Atom = 0xb01
-	Ul               Atom = 0x5602
-	Usemap           Atom = 0x4ec06
-	Value            Atom = 0x4005
-	Var              Atom = 0x10903
-	Video            Atom = 0x2a905
-	Wbr              Atom = 0x14103
-	Width            Atom = 0x4e205
-	Wrap             Atom = 0x56204
-	Xmp              Atom = 0xef03
-)
-
-const hash0 = 0xc17da63e
-
-const maxAtomLen = 16
-
-var table = [1 << 9]Atom{
-	0x1:   0x4830b, // onmousemove
-	0x2:   0x5a709, // onwaiting
-	0x4:   0x5bf06, // prompt
-	0x7:   0x5b007, // optimum
-	0x8:   0x1604,  // mark
-	0xa:   0x2d707, // itemref
-	0xb:   0x4d90a, // onpageshow
-	0xc:   0x55506, // select
-	0xd:   0x1a109, // draggable
-	0xe:   0x3e03,  // nav
-	0xf:   0x19b07, // command
-	0x11:  0xb01,   // u
-	0x14:  0x2fa07, // headers
-	0x15:  0x44308, // datalist
-	0x17:  0x6b04,  // samp
-	0x1a:  0x40409, // onkeydown
-	0x1b:  0x53a08, // onscroll
-	0x1c:  0x17603, // col
-	0x20:  0x57e08, // itemprop
-	0x21:  0x2a00a, // http-equiv
-	0x22:  0x5e703, // sup
-	0x24:  0x1f508, // required
-	0x2b:  0x27f07, // preload
-	0x2c:  0x21f0d, // onbeforeprint
-	0x2d:  0x3710b, // ondragenter
-	0x2e:  0x4e402, // dt
-	0x2f:  0x57808, // onsubmit
-	0x30:  0x13102, // hr
-	0x31:  0x3460d, // oncontextmenu
-	0x33:  0x2ba05, // image
-	0x34:  0x4e807, // onpause
-	0x35:  0x27a06, // hgroup
-	0x36:  0xab04,  // ping
-	0x37:  0x55308, // onselect
-	0x3a:  0x10703, // div
-	0x40:  0x9b02,  // mi
-	0x41:  0x33308, // seamless
-	0x42:  0x2807,  // charset
-	0x43:  0x5102,  // id
-	0x44:  0x4fb0a, // onpopstate
-	0x45:  0x4d603, // del
-	0x46:  0x5f207, // marquee
-	0x47:  0x3309,  // accesskey
-	0x49:  0x5906,  // footer
-	0x4a:  0x2d106, // applet
-	0x4b:  0x2ce05, // ismap
-	0x51:  0x34f04, // menu
-	0x52:  0x2f04,  // body
-	0x55:  0x8708,  // frameset
-	0x56:  0x52507, // onreset
-	0x57:  0x14705, // blink
-	0x58:  0x8e05,  // title
-	0x59:  0x39907, // article
-	0x5b:  0x13002, // th
-	0x5d:  0x15101, // q
-	0x5e:  0x58404, // open
-	0x5f:  0x31804, // area
-	0x61:  0x43b06, // onload
-	0x62:  0x3f605, // input
-	0x63:  0x11404, // base
-	0x64:  0x18807, // colspan
-	0x65:  0x51207, // keytype
-	0x66:  0x13e02, // dl
-	0x68:  0x1d508, // fieldset
-	0x6a:  0x31003, // min
-	0x6b:  0x10903, // var
-	0x6f:  0x2fa06, // header
-	0x70:  0x16502, // rt
-	0x71:  0x17608, // colgroup
-	0x72:  0x25402, // mn
-	0x74:  0x16007, // onabort
-	0x75:  0x3906,  // keygen
-	0x76:  0x4bb09, // onoffline
-	0x77:  0x23e09, // challenge
-	0x78:  0x2d003, // map
-	0x7a:  0x30e02, // h4
-	0x7b:  0x3c707, // onerror
-	0x7c:  0x30609, // maxlength
-	0x7d:  0x31305, // mtext
-	0x7e:  0x5805,  // tfoot
-	0x7f:  0x11804, // font
-	0x80:  0x100a,  // malignmark
-	0x81:  0x45604, // meta
-	0x82:  0x9305,  // async
-	0x83:  0x2c502, // h3
-	0x84:  0x28802, // dd
-	0x85:  0x29804, // href
-	0x86:  0xa20a,  // mediagroup
-	0x87:  0x1ba06, // coords
-	0x88:  0x41a07, // srclang
-	0x89:  0x35e0a, // ondblclick
-	0x8a:  0x4005,  // value
-	0x8c:  0xb308,  // oncancel
-	0x8e:  0x33a0a, // spellcheck
-	0x8f:  0x8705,  // frame
-	0x91:  0x14403, // big
-	0x94:  0x21b06, // action
-	0x95:  0x9d03,  // dir
-	0x97:  0x31908, // readonly
-	0x99:  0x43605, // table
-	0x9a:  0x5e007, // summary
-	0x9b:  0x14103, // wbr
-	0x9c:  0x30a,   // radiogroup
-	0x9d:  0xa004,  // name
-	0x9f:  0x5ed06, // system
-	0xa1:  0x18305, // color
-	0xa2:  0x4b06,  // canvas
-	0xa3:  0x27604, // html
-	0xa5:  0x54a09, // onseeking
-	0xac:  0x1b505, // shape
-	0xad:  0x28003, // rel
-	0xae:  0x12710, // oncanplaythrough
-	0xaf:  0x3870a, // ondragover
-	0xb1:  0x1fd0d, // foreignObject
-	0xb3:  0x7704,  // rows
-	0xb6:  0x44707, // listing
-	0xb7:  0x49506, // output
-	0xb9:  0x3480b, // contextmenu
-	0xbb:  0x13f03, // low
-	0xbc:  0x1eb02, // rp
-	0xbd:  0x58809, // onsuspend
-	0xbe:  0x15c06, // button
-	0xbf:  0x4804,  // desc
-	0xc1:  0x3dd07, // section
-	0xc2:  0x5050a, // onprogress
-	0xc3:  0x56f09, // onstorage
-	0xc4:  0x2f704, // math
-	0xc5:  0x4f206, // onplay
-	0xc7:  0x5602,  // ul
-	0xc8:  0x6e07,  // pattern
-	0xc9:  0x4af0c, // onmousewheel
-	0xca:  0x36809, // ondragend
-	0xcb:  0xd104,  // ruby
-	0xcc:  0xc01,   // p
-	0xcd:  0x32e07, // onclose
-	0xce:  0x26105, // meter
-	0xcf:  0x13807, // bgsound
-	0xd2:  0x27206, // height
-	0xd4:  0x101,   // b
-	0xd5:  0x2ef08, // itemtype
-	0xd8:  0x1e007, // caption
-	0xd9:  0x10008, // disabled
-	0xdc:  0x5ea03, // svg
-	0xdd:  0x1bf05, // small
-	0xde:  0x44304, // data
-	0xe0:  0x4c608, // ononline
-	0xe1:  0x2c006, // mglyph
-	0xe3:  0x7f05,  // embed
-	0xe4:  0xf902,  // tr
-	0xe5:  0x4640b, // onloadstart
-	0xe7:  0x3b010, // ondurationchange
-	0xed:  0x12503, // bdo
-	0xee:  0x4702,  // td
-	0xef:  0x4f05,  // aside
-	0xf0:  0x29602, // h2
-	0xf1:  0x50708, // progress
-	0xf2:  0x14c0a, // blockquote
-	0xf4:  0xba05,  // label
-	0xf5:  0x601,   // i
-	0xf7:  0x7707,  // rowspan
-	0xfb:  0x4f209, // onplaying
-	0xfd:  0x2bf03, // img
-	0xfe:  0xc008,  // optgroup
-	0xff:  0x42c07, // content
-	0x101: 0x5190c, // onratechange
-	0x103: 0x3e80c, // onhashchange
-	0x104: 0x6507,  // details
-	0x106: 0x40908, // download
-	0x109: 0xe907,  // sandbox
-	0x10b: 0x42c0f, // contenteditable
-	0x10d: 0x37c0b, // ondragleave
-	0x10e: 0x2106,  // accept
-	0x10f: 0x55508, // selected
-	0x112: 0x2170a, // formaction
-	0x113: 0x2df06, // center
-	0x115: 0x44e10, // onloadedmetadata
-	0x116: 0x14804, // link
-	0x117: 0x11b04, // time
-	0x118: 0x1c40b, // crossorigin
-	0x119: 0x3ce07, // onfocus
-	0x11a: 0x56204, // wrap
-	0x11b: 0x42b04, // icon
-	0x11d: 0x2a905, // video
-	0x11e: 0x3d905, // class
-	0x121: 0x5990e, // onvolumechange
-	0x122: 0x3e206, // onblur
-	0x123: 0x2e509, // itemscope
-	0x124: 0x5db05, // style
-	0x127: 0x42706, // public
-	0x129: 0x2510e, // formnovalidate
-	0x12a: 0x55d06, // onshow
-	0x12c: 0x16609, // translate
-	0x12d: 0x9704,  // cite
-	0x12e: 0x2e802, // ms
-	0x12f: 0x1190c, // ontimeupdate
-	0x130: 0xfd04,  // kind
-	0x131: 0x2660a, // formtarget
-	0x135: 0x3c007, // onended
-	0x136: 0x28606, // hidden
-	0x137: 0x2c01,  // s
-	0x139: 0x2470a, // formmethod
-	0x13a: 0x44704, // list
-	0x13c: 0x27002, // h6
-	0x13d: 0xcd02,  // ol
-	0x13e: 0x3530b, // oncuechange
-	0x13f: 0x20a0d, // foreignobject
-	0x143: 0x5c90e, // onbeforeunload
-	0x145: 0x3a709, // onemptied
-	0x146: 0x17105, // defer
-	0x147: 0xef03,  // xmp
-	0x148: 0xaf05,  // audio
-	0x149: 0x1903,  // kbd
-	0x14c: 0x46f09, // onmessage
-	0x14d: 0x5c506, // option
-	0x14e: 0x4503,  // alt
-	0x14f: 0x33f07, // checked
-	0x150: 0x10c08, // autoplay
-	0x152: 0x202,   // br
-	0x153: 0x2550a, // novalidate
-	0x156: 0x7d07,  // noembed
-	0x159: 0x2ad07, // onclick
-	0x15a: 0x4780b, // onmousedown
-	0x15b: 0x3b808, // onchange
-	0x15e: 0x3fb09, // oninvalid
-	0x15f: 0x2e906, // scoped
-	0x160: 0x1ae08, // controls
-	0x161: 0x32905, // muted
-	0x163: 0x4ec06, // usemap
-	0x164: 0x1dd0a, // figcaption
-	0x165: 0x36806, // ondrag
-	0x166: 0x29304, // high
-	0x168: 0x3d403, // src
-	0x169: 0x17d06, // poster
-	0x16b: 0x18d0e, // annotation-xml
-	0x16c: 0x5bc04, // step
-	0x16d: 0x4,     // abbr
-	0x16e: 0x1b06,  // dialog
-	0x170: 0x1202,  // li
-	0x172: 0x47a02, // mo
-	0x175: 0x1fd03, // for
-	0x176: 0x1cd03, // ins
-	0x178: 0x53004, // size
-	0x17a: 0x5207,  // default
-	0x17b: 0x1a03,  // bdi
-	0x17c: 0x4ce0a, // onpagehide
-	0x17d: 0x9d07,  // dirname
-	0x17e: 0x23304, // type
-	0x17f: 0x21704, // form
-	0x180: 0x4c105, // inert
-	0x181: 0x12709, // oncanplay
-	0x182: 0x8303,  // dfn
-	0x183: 0x45c08, // tabindex
-	0x186: 0x7f02,  // em
-	0x187: 0x29c04, // lang
-	0x189: 0x3a208, // dropzone
-	0x18a: 0x4110a, // onkeypress
-	0x18b: 0x25b08, // datetime
-	0x18c: 0x18804, // cols
-	0x18d: 0x1,     // a
-	0x18e: 0x43b0c, // onloadeddata
-	0x191: 0x15606, // border
-	0x192: 0x2e05,  // tbody
-	0x193: 0x24b06, // method
-	0x195: 0xbe04,  // loop
-	0x196: 0x2b406, // iframe
-	0x198: 0x2fa04, // head
-	0x19e: 0x5b608, // manifest
-	0x19f: 0xe109,  // autofocus
-	0x1a0: 0x16f04, // code
-	0x1a1: 0x53406, // strong
-	0x1a2: 0x32108, // multiple
-	0x1a3: 0xc05,   // param
-	0x1a6: 0x23007, // enctype
-	0x1a7: 0x2dd04, // face
-	0x1a8: 0xf109,  // plaintext
-	0x1a9: 0x13602, // h1
-	0x1aa: 0x56609, // onstalled
-	0x1ad: 0x28d06, // script
-	0x1ae: 0x30006, // spacer
-	0x1af: 0x52c08, // onresize
-	0x1b0: 0x49b0b, // onmouseover
-	0x1b1: 0x59108, // onunload
-	0x1b2: 0x54208, // onseeked
-	0x1b4: 0x2330d, // typemustmatch
-	0x1b5: 0x1f106, // figure
-	0x1b6: 0x48e0a, // onmouseout
-	0x1b7: 0x27f03, // pre
-	0x1b8: 0x4e205, // width
-	0x1bb: 0x7404,  // nobr
-	0x1be: 0x7002,  // tt
-	0x1bf: 0x1105,  // align
-	0x1c0: 0x3f407, // oninput
-	0x1c3: 0x42107, // onkeyup
-	0x1c6: 0x1e50c, // onafterprint
-	0x1c7: 0x210e,  // accept-charset
-	0x1c8: 0x9806,  // itemid
-	0x1cb: 0x50e06, // strike
-	0x1cc: 0x57a03, // sub
-	0x1cd: 0xf905,  // track
-	0x1ce: 0x39705, // start
-	0x1d0: 0x11408, // basefont
-	0x1d6: 0x1cf06, // source
-	0x1d7: 0x1a806, // legend
-	0x1d8: 0x2f905, // thead
-	0x1da: 0x2e905, // scope
-	0x1dd: 0x21106, // object
-	0x1de: 0xa205,  // media
-	0x1df: 0x18d0a, // annotation
-	0x1e0: 0x22c0b, // formenctype
-	0x1e2: 0x28b08, // noscript
-	0x1e4: 0x53005, // sizes
-	0x1e5: 0xd50c,  // autocomplete
-	0x1e6: 0x7a04,  // span
-	0x1e7: 0x8508,  // noframes
-	0x1e8: 0x26a06, // target
-	0x1e9: 0x3a006, // ondrop
-	0x1ea: 0x3d406, // srcdoc
-	0x1ec: 0x5e08,  // reversed
-	0x1f0: 0x2c707, // isindex
-	0x1f3: 0x29808, // hreflang
-	0x1f5: 0x4e602, // h5
-	0x1f6: 0x5d507, // address
-	0x1fa: 0x30603, // max
-	0x1fb: 0xc70b,  // placeholder
-	0x1fc: 0x31408, // textarea
-	0x1fe: 0x4a609, // onmouseup
-	0x1ff: 0x3910b, // ondragstart
-}
-
-const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" +
-	"genavaluealtdescanvasidefaultfootereversedetailsampatternobr" +
-	"owspanoembedfnoframesetitleasyncitemidirnamediagroupingaudio" +
-	"ncancelabelooptgrouplaceholderubyautocompleteautofocusandbox" +
-	"mplaintextrackindisabledivarautoplaybasefontimeupdatebdoncan" +
-	"playthrough1bgsoundlowbrbigblinkblockquoteborderbuttonabortr" +
-	"anslatecodefercolgroupostercolorcolspannotation-xmlcommandra" +
-	"ggablegendcontrolshapecoordsmallcrossoriginsourcefieldsetfig" +
-	"captionafterprintfigurequiredforeignObjectforeignobjectforma" +
-	"ctionbeforeprintformenctypemustmatchallengeformmethodformnov" +
-	"alidatetimeterformtargeth6heightmlhgroupreloadhiddenoscripth" +
-	"igh2hreflanghttp-equivideonclickiframeimageimglyph3isindexis" +
-	"mappletitemrefacenteritemscopeditemtypematheaderspacermaxlen" +
-	"gth4minmtextareadonlymultiplemutedoncloseamlesspellcheckedon" +
-	"contextmenuoncuechangeondblclickondragendondragenterondragle" +
-	"aveondragoverondragstarticleondropzonemptiedondurationchange" +
-	"onendedonerroronfocusrcdoclassectionbluronhashchangeoninputo" +
-	"ninvalidonkeydownloadonkeypressrclangonkeyupublicontentedita" +
-	"bleonloadeddatalistingonloadedmetadatabindexonloadstartonmes" +
-	"sageonmousedownonmousemoveonmouseoutputonmouseoveronmouseupo" +
-	"nmousewheelonofflinertononlineonpagehidelonpageshowidth5onpa" +
-	"usemaponplayingonpopstateonprogresstrikeytypeonratechangeonr" +
-	"esetonresizestrongonscrollonseekedonseekingonselectedonshowr" +
-	"aponstalledonstorageonsubmitempropenonsuspendonunloadonvolum" +
-	"echangeonwaitingoptimumanifestepromptoptionbeforeunloaddress" +
-	"tylesummarysupsvgsystemarquee"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/table_test.go gcc-4.8.1/libgo/go/exp/html/atom/table_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/table_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/atom/table_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,341 +0,0 @@
-// generated by go run gen.go -test; DO NOT EDIT
-
-package atom
-
-var testAtomList = []string{
-	"a",
-	"abbr",
-	"accept",
-	"accept-charset",
-	"accesskey",
-	"action",
-	"address",
-	"align",
-	"alt",
-	"annotation",
-	"annotation-xml",
-	"applet",
-	"area",
-	"article",
-	"aside",
-	"async",
-	"audio",
-	"autocomplete",
-	"autofocus",
-	"autoplay",
-	"b",
-	"base",
-	"basefont",
-	"bdi",
-	"bdo",
-	"bgsound",
-	"big",
-	"blink",
-	"blockquote",
-	"body",
-	"border",
-	"br",
-	"button",
-	"canvas",
-	"caption",
-	"center",
-	"challenge",
-	"charset",
-	"checked",
-	"cite",
-	"cite",
-	"class",
-	"code",
-	"col",
-	"colgroup",
-	"color",
-	"cols",
-	"colspan",
-	"command",
-	"command",
-	"content",
-	"contenteditable",
-	"contextmenu",
-	"controls",
-	"coords",
-	"crossorigin",
-	"data",
-	"data",
-	"datalist",
-	"datetime",
-	"dd",
-	"default",
-	"defer",
-	"del",
-	"desc",
-	"details",
-	"dfn",
-	"dialog",
-	"dir",
-	"dirname",
-	"disabled",
-	"div",
-	"dl",
-	"download",
-	"draggable",
-	"dropzone",
-	"dt",
-	"em",
-	"embed",
-	"enctype",
-	"face",
-	"fieldset",
-	"figcaption",
-	"figure",
-	"font",
-	"footer",
-	"for",
-	"foreignObject",
-	"foreignobject",
-	"form",
-	"form",
-	"formaction",
-	"formenctype",
-	"formmethod",
-	"formnovalidate",
-	"formtarget",
-	"frame",
-	"frameset",
-	"h1",
-	"h2",
-	"h3",
-	"h4",
-	"h5",
-	"h6",
-	"head",
-	"header",
-	"headers",
-	"height",
-	"hgroup",
-	"hidden",
-	"high",
-	"hr",
-	"href",
-	"hreflang",
-	"html",
-	"http-equiv",
-	"i",
-	"icon",
-	"id",
-	"iframe",
-	"image",
-	"img",
-	"inert",
-	"input",
-	"ins",
-	"isindex",
-	"ismap",
-	"itemid",
-	"itemprop",
-	"itemref",
-	"itemscope",
-	"itemtype",
-	"kbd",
-	"keygen",
-	"keytype",
-	"kind",
-	"label",
-	"label",
-	"lang",
-	"legend",
-	"li",
-	"link",
-	"list",
-	"listing",
-	"loop",
-	"low",
-	"malignmark",
-	"manifest",
-	"map",
-	"mark",
-	"marquee",
-	"math",
-	"max",
-	"maxlength",
-	"media",
-	"mediagroup",
-	"menu",
-	"meta",
-	"meter",
-	"method",
-	"mglyph",
-	"mi",
-	"min",
-	"mn",
-	"mo",
-	"ms",
-	"mtext",
-	"multiple",
-	"muted",
-	"name",
-	"nav",
-	"nobr",
-	"noembed",
-	"noframes",
-	"noscript",
-	"novalidate",
-	"object",
-	"ol",
-	"onabort",
-	"onafterprint",
-	"onbeforeprint",
-	"onbeforeunload",
-	"onblur",
-	"oncancel",
-	"oncanplay",
-	"oncanplaythrough",
-	"onchange",
-	"onclick",
-	"onclose",
-	"oncontextmenu",
-	"oncuechange",
-	"ondblclick",
-	"ondrag",
-	"ondragend",
-	"ondragenter",
-	"ondragleave",
-	"ondragover",
-	"ondragstart",
-	"ondrop",
-	"ondurationchange",
-	"onemptied",
-	"onended",
-	"onerror",
-	"onfocus",
-	"onhashchange",
-	"oninput",
-	"oninvalid",
-	"onkeydown",
-	"onkeypress",
-	"onkeyup",
-	"onload",
-	"onloadeddata",
-	"onloadedmetadata",
-	"onloadstart",
-	"onmessage",
-	"onmousedown",
-	"onmousemove",
-	"onmouseout",
-	"onmouseover",
-	"onmouseup",
-	"onmousewheel",
-	"onoffline",
-	"ononline",
-	"onpagehide",
-	"onpageshow",
-	"onpause",
-	"onplay",
-	"onplaying",
-	"onpopstate",
-	"onprogress",
-	"onratechange",
-	"onreset",
-	"onresize",
-	"onscroll",
-	"onseeked",
-	"onseeking",
-	"onselect",
-	"onshow",
-	"onstalled",
-	"onstorage",
-	"onsubmit",
-	"onsuspend",
-	"ontimeupdate",
-	"onunload",
-	"onvolumechange",
-	"onwaiting",
-	"open",
-	"optgroup",
-	"optimum",
-	"option",
-	"output",
-	"p",
-	"param",
-	"pattern",
-	"ping",
-	"placeholder",
-	"plaintext",
-	"poster",
-	"pre",
-	"preload",
-	"progress",
-	"prompt",
-	"public",
-	"q",
-	"radiogroup",
-	"readonly",
-	"rel",
-	"required",
-	"reversed",
-	"rows",
-	"rowspan",
-	"rp",
-	"rt",
-	"ruby",
-	"s",
-	"samp",
-	"sandbox",
-	"scope",
-	"scoped",
-	"script",
-	"seamless",
-	"section",
-	"select",
-	"selected",
-	"shape",
-	"size",
-	"sizes",
-	"small",
-	"source",
-	"spacer",
-	"span",
-	"span",
-	"spellcheck",
-	"src",
-	"srcdoc",
-	"srclang",
-	"start",
-	"step",
-	"strike",
-	"strong",
-	"style",
-	"style",
-	"sub",
-	"summary",
-	"sup",
-	"svg",
-	"system",
-	"tabindex",
-	"table",
-	"target",
-	"tbody",
-	"td",
-	"textarea",
-	"tfoot",
-	"th",
-	"thead",
-	"time",
-	"title",
-	"title",
-	"tr",
-	"track",
-	"translate",
-	"tt",
-	"type",
-	"typemustmatch",
-	"u",
-	"ul",
-	"usemap",
-	"value",
-	"var",
-	"video",
-	"wbr",
-	"width",
-	"wrap",
-	"xmp",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/const.go gcc-4.8.1/libgo/go/exp/html/const.go
--- gcc-4.8.1.orig/libgo/go/exp/html/const.go	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/const.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,100 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-// Section 12.2.3.2 of the HTML5 specification says "The following elements
-// have varying levels of special parsing rules".
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
-var isSpecialElementMap = map[string]bool{
-	"address":    true,
-	"applet":     true,
-	"area":       true,
-	"article":    true,
-	"aside":      true,
-	"base":       true,
-	"basefont":   true,
-	"bgsound":    true,
-	"blockquote": true,
-	"body":       true,
-	"br":         true,
-	"button":     true,
-	"caption":    true,
-	"center":     true,
-	"col":        true,
-	"colgroup":   true,
-	"command":    true,
-	"dd":         true,
-	"details":    true,
-	"dir":        true,
-	"div":        true,
-	"dl":         true,
-	"dt":         true,
-	"embed":      true,
-	"fieldset":   true,
-	"figcaption": true,
-	"figure":     true,
-	"footer":     true,
-	"form":       true,
-	"frame":      true,
-	"frameset":   true,
-	"h1":         true,
-	"h2":         true,
-	"h3":         true,
-	"h4":         true,
-	"h5":         true,
-	"h6":         true,
-	"head":       true,
-	"header":     true,
-	"hgroup":     true,
-	"hr":         true,
-	"html":       true,
-	"iframe":     true,
-	"img":        true,
-	"input":      true,
-	"isindex":    true,
-	"li":         true,
-	"link":       true,
-	"listing":    true,
-	"marquee":    true,
-	"menu":       true,
-	"meta":       true,
-	"nav":        true,
-	"noembed":    true,
-	"noframes":   true,
-	"noscript":   true,
-	"object":     true,
-	"ol":         true,
-	"p":          true,
-	"param":      true,
-	"plaintext":  true,
-	"pre":        true,
-	"script":     true,
-	"section":    true,
-	"select":     true,
-	"style":      true,
-	"summary":    true,
-	"table":      true,
-	"tbody":      true,
-	"td":         true,
-	"textarea":   true,
-	"tfoot":      true,
-	"th":         true,
-	"thead":      true,
-	"title":      true,
-	"tr":         true,
-	"ul":         true,
-	"wbr":        true,
-	"xmp":        true,
-}
-
-func isSpecialElement(element *Node) bool {
-	switch element.Namespace {
-	case "", "html":
-		return isSpecialElementMap[element.Data]
-	case "svg":
-		return element.Data == "foreignObject"
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/doc.go gcc-4.8.1/libgo/go/exp/html/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/html/doc.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/doc.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,106 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-Package html implements an HTML5-compliant tokenizer and parser.
-
-Tokenization is done by creating a Tokenizer for an io.Reader r. It is the
-caller's responsibility to ensure that r provides UTF-8 encoded HTML.
-
-	z := html.NewTokenizer(r)
-
-Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(),
-which parses the next token and returns its type, or an error:
-
-	for {
-		tt := z.Next()
-		if tt == html.ErrorToken {
-			// ...
-			return ...
-		}
-		// Process the current token.
-	}
-
-There are two APIs for retrieving the current token. The high-level API is to
-call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs
-allow optionally calling Raw after Next but before Token, Text, TagName, or
-TagAttr. In EBNF notation, the valid call sequence per token is:
-
-	Next {Raw} [ Token | Text | TagName {TagAttr} ]
-
-Token returns an independent data structure that completely describes a token.
-Entities (such as "&lt;") are unescaped, tag names and attribute keys are
-lower-cased, and attributes are collected into a []Attribute. For example:
-
-	for {
-		if z.Next() == html.ErrorToken {
-			// Returning io.EOF indicates success.
-			return z.Err()
-		}
-		emitToken(z.Token())
-	}
-
-The low-level API performs fewer allocations and copies, but the contents of
-the []byte values returned by Text, TagName and TagAttr may change on the next
-call to Next. For example, to extract an HTML page's anchor text:
-
-	depth := 0
-	for {
-		tt := z.Next()
-		switch tt {
-		case ErrorToken:
-			return z.Err()
-		case TextToken:
-			if depth > 0 {
-				// emitBytes should copy the []byte it receives,
-				// if it doesn't process it immediately.
-				emitBytes(z.Text())
-			}
-		case StartTagToken, EndTagToken:
-			tn, _ := z.TagName()
-			if len(tn) == 1 && tn[0] == 'a' {
-				if tt == StartTagToken {
-					depth++
-				} else {
-					depth--
-				}
-			}
-		}
-	}
-
-Parsing is done by calling Parse with an io.Reader, which returns the root of
-the parse tree (the document element) as a *Node. It is the caller's
-responsibility to ensure that the Reader provides UTF-8 encoded HTML. For
-example, to process each anchor node in depth-first order:
-
-	doc, err := html.Parse(r)
-	if err != nil {
-		// ...
-	}
-	var f func(*html.Node)
-	f = func(n *html.Node) {
-		if n.Type == html.ElementNode && n.Data == "a" {
-			// Do something with n...
-		}
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			f(c)
-		}
-	}
-	f(doc)
-
-The relevant specifications include:
-http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html and
-http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
-*/
-package html
-
-// The tokenization algorithm implemented by this package is not a line-by-line
-// transliteration of the relatively verbose state-machine in the WHATWG
-// specification. A more direct approach is used instead, where the program
-// counter implies the state, such as whether it is tokenizing a tag or a text
-// node. Specification compliance is verified by checking expected and actual
-// outputs over a test suite rather than aiming for algorithmic fidelity.
-
-// TODO(nigeltao): Does a DOM API belong in this package or a separate one?
-// TODO(nigeltao): How does parsing interact with a JavaScript engine?
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/doctype.go gcc-4.8.1/libgo/go/exp/html/doctype.go
--- gcc-4.8.1.orig/libgo/go/exp/html/doctype.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/doctype.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,156 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"strings"
-)
-
-// parseDoctype parses the data from a DoctypeToken into a name,
-// public identifier, and system identifier. It returns a Node whose Type
-// is DoctypeNode, whose Data is the name, and which has attributes
-// named "system" and "public" for the two identifiers if they were present.
-// quirks is whether the document should be parsed in "quirks mode".
-func parseDoctype(s string) (n *Node, quirks bool) {
-	n = &Node{Type: DoctypeNode}
-
-	// Find the name.
-	space := strings.IndexAny(s, whitespace)
-	if space == -1 {
-		space = len(s)
-	}
-	n.Data = s[:space]
-	// The comparison to "html" is case-sensitive.
-	if n.Data != "html" {
-		quirks = true
-	}
-	n.Data = strings.ToLower(n.Data)
-	s = strings.TrimLeft(s[space:], whitespace)
-
-	if len(s) < 6 {
-		// It can't start with "PUBLIC" or "SYSTEM".
-		// Ignore the rest of the string.
-		return n, quirks || s != ""
-	}
-
-	key := strings.ToLower(s[:6])
-	s = s[6:]
-	for key == "public" || key == "system" {
-		s = strings.TrimLeft(s, whitespace)
-		if s == "" {
-			break
-		}
-		quote := s[0]
-		if quote != '"' && quote != '\'' {
-			break
-		}
-		s = s[1:]
-		q := strings.IndexRune(s, rune(quote))
-		var id string
-		if q == -1 {
-			id = s
-			s = ""
-		} else {
-			id = s[:q]
-			s = s[q+1:]
-		}
-		n.Attr = append(n.Attr, Attribute{Key: key, Val: id})
-		if key == "public" {
-			key = "system"
-		} else {
-			key = ""
-		}
-	}
-
-	if key != "" || s != "" {
-		quirks = true
-	} else if len(n.Attr) > 0 {
-		if n.Attr[0].Key == "public" {
-			public := strings.ToLower(n.Attr[0].Val)
-			switch public {
-			case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html":
-				quirks = true
-			default:
-				for _, q := range quirkyIDs {
-					if strings.HasPrefix(public, q) {
-						quirks = true
-						break
-					}
-				}
-			}
-			// The following two public IDs only cause quirks mode if there is no system ID.
-			if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") ||
-				strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) {
-				quirks = true
-			}
-		}
-		if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" &&
-			strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" {
-			quirks = true
-		}
-	}
-
-	return n, quirks
-}
-
-// quirkyIDs is a list of public doctype identifiers that cause a document
-// to be interpreted in quirks mode. The identifiers should be in lower case.
-var quirkyIDs = []string{
-	"+//silmaril//dtd html pro v0r11 19970101//",
-	"-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
-	"-//as//dtd html 3.0 aswedit + extensions//",
-	"-//ietf//dtd html 2.0 level 1//",
-	"-//ietf//dtd html 2.0 level 2//",
-	"-//ietf//dtd html 2.0 strict level 1//",
-	"-//ietf//dtd html 2.0 strict level 2//",
-	"-//ietf//dtd html 2.0 strict//",
-	"-//ietf//dtd html 2.0//",
-	"-//ietf//dtd html 2.1e//",
-	"-//ietf//dtd html 3.0//",
-	"-//ietf//dtd html 3.2 final//",
-	"-//ietf//dtd html 3.2//",
-	"-//ietf//dtd html 3//",
-	"-//ietf//dtd html level 0//",
-	"-//ietf//dtd html level 1//",
-	"-//ietf//dtd html level 2//",
-	"-//ietf//dtd html level 3//",
-	"-//ietf//dtd html strict level 0//",
-	"-//ietf//dtd html strict level 1//",
-	"-//ietf//dtd html strict level 2//",
-	"-//ietf//dtd html strict level 3//",
-	"-//ietf//dtd html strict//",
-	"-//ietf//dtd html//",
-	"-//metrius//dtd metrius presentational//",
-	"-//microsoft//dtd internet explorer 2.0 html strict//",
-	"-//microsoft//dtd internet explorer 2.0 html//",
-	"-//microsoft//dtd internet explorer 2.0 tables//",
-	"-//microsoft//dtd internet explorer 3.0 html strict//",
-	"-//microsoft//dtd internet explorer 3.0 html//",
-	"-//microsoft//dtd internet explorer 3.0 tables//",
-	"-//netscape comm. corp.//dtd html//",
-	"-//netscape comm. corp.//dtd strict html//",
-	"-//o'reilly and associates//dtd html 2.0//",
-	"-//o'reilly and associates//dtd html extended 1.0//",
-	"-//o'reilly and associates//dtd html extended relaxed 1.0//",
-	"-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
-	"-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
-	"-//spyglass//dtd html 2.0 extended//",
-	"-//sq//dtd html 2.0 hotmetal + extensions//",
-	"-//sun microsystems corp.//dtd hotjava html//",
-	"-//sun microsystems corp.//dtd hotjava strict html//",
-	"-//w3c//dtd html 3 1995-03-24//",
-	"-//w3c//dtd html 3.2 draft//",
-	"-//w3c//dtd html 3.2 final//",
-	"-//w3c//dtd html 3.2//",
-	"-//w3c//dtd html 3.2s draft//",
-	"-//w3c//dtd html 4.0 frameset//",
-	"-//w3c//dtd html 4.0 transitional//",
-	"-//w3c//dtd html experimental 19960712//",
-	"-//w3c//dtd html experimental 970421//",
-	"-//w3c//dtd w3 html//",
-	"-//w3o//dtd w3 html 3.0//",
-	"-//webtechs//dtd mozilla html 2.0//",
-	"-//webtechs//dtd mozilla html//",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/entity.go gcc-4.8.1/libgo/go/exp/html/entity.go
--- gcc-4.8.1.orig/libgo/go/exp/html/entity.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/entity.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,2253 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-// All entities that do not end with ';' are 6 or fewer bytes long.
-const longestEntityWithoutSemicolon = 6
-
-// entity is a map from HTML entity names to their values. The semicolon matters:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html
-// lists both "amp" and "amp;" as two separate entries.
-//
-// Note that the HTML5 list is larger than the HTML4 list at
-// http://www.w3.org/TR/html4/sgml/entities.html
-var entity = map[string]rune{
-	"AElig;":                           '\U000000C6',
-	"AMP;":                             '\U00000026',
-	"Aacute;":                          '\U000000C1',
-	"Abreve;":                          '\U00000102',
-	"Acirc;":                           '\U000000C2',
-	"Acy;":                             '\U00000410',
-	"Afr;":                             '\U0001D504',
-	"Agrave;":                          '\U000000C0',
-	"Alpha;":                           '\U00000391',
-	"Amacr;":                           '\U00000100',
-	"And;":                             '\U00002A53',
-	"Aogon;":                           '\U00000104',
-	"Aopf;":                            '\U0001D538',
-	"ApplyFunction;":                   '\U00002061',
-	"Aring;":                           '\U000000C5',
-	"Ascr;":                            '\U0001D49C',
-	"Assign;":                          '\U00002254',
-	"Atilde;":                          '\U000000C3',
-	"Auml;":                            '\U000000C4',
-	"Backslash;":                       '\U00002216',
-	"Barv;":                            '\U00002AE7',
-	"Barwed;":                          '\U00002306',
-	"Bcy;":                             '\U00000411',
-	"Because;":                         '\U00002235',
-	"Bernoullis;":                      '\U0000212C',
-	"Beta;":                            '\U00000392',
-	"Bfr;":                             '\U0001D505',
-	"Bopf;":                            '\U0001D539',
-	"Breve;":                           '\U000002D8',
-	"Bscr;":                            '\U0000212C',
-	"Bumpeq;":                          '\U0000224E',
-	"CHcy;":                            '\U00000427',
-	"COPY;":                            '\U000000A9',
-	"Cacute;":                          '\U00000106',
-	"Cap;":                             '\U000022D2',
-	"CapitalDifferentialD;":            '\U00002145',
-	"Cayleys;":                         '\U0000212D',
-	"Ccaron;":                          '\U0000010C',
-	"Ccedil;":                          '\U000000C7',
-	"Ccirc;":                           '\U00000108',
-	"Cconint;":                         '\U00002230',
-	"Cdot;":                            '\U0000010A',
-	"Cedilla;":                         '\U000000B8',
-	"CenterDot;":                       '\U000000B7',
-	"Cfr;":                             '\U0000212D',
-	"Chi;":                             '\U000003A7',
-	"CircleDot;":                       '\U00002299',
-	"CircleMinus;":                     '\U00002296',
-	"CirclePlus;":                      '\U00002295',
-	"CircleTimes;":                     '\U00002297',
-	"ClockwiseContourIntegral;":        '\U00002232',
-	"CloseCurlyDoubleQuote;":           '\U0000201D',
-	"CloseCurlyQuote;":                 '\U00002019',
-	"Colon;":                           '\U00002237',
-	"Colone;":                          '\U00002A74',
-	"Congruent;":                       '\U00002261',
-	"Conint;":                          '\U0000222F',
-	"ContourIntegral;":                 '\U0000222E',
-	"Copf;":                            '\U00002102',
-	"Coproduct;":                       '\U00002210',
-	"CounterClockwiseContourIntegral;": '\U00002233',
-	"Cross;":                    '\U00002A2F',
-	"Cscr;":                     '\U0001D49E',
-	"Cup;":                      '\U000022D3',
-	"CupCap;":                   '\U0000224D',
-	"DD;":                       '\U00002145',
-	"DDotrahd;":                 '\U00002911',
-	"DJcy;":                     '\U00000402',
-	"DScy;":                     '\U00000405',
-	"DZcy;":                     '\U0000040F',
-	"Dagger;":                   '\U00002021',
-	"Darr;":                     '\U000021A1',
-	"Dashv;":                    '\U00002AE4',
-	"Dcaron;":                   '\U0000010E',
-	"Dcy;":                      '\U00000414',
-	"Del;":                      '\U00002207',
-	"Delta;":                    '\U00000394',
-	"Dfr;":                      '\U0001D507',
-	"DiacriticalAcute;":         '\U000000B4',
-	"DiacriticalDot;":           '\U000002D9',
-	"DiacriticalDoubleAcute;":   '\U000002DD',
-	"DiacriticalGrave;":         '\U00000060',
-	"DiacriticalTilde;":         '\U000002DC',
-	"Diamond;":                  '\U000022C4',
-	"DifferentialD;":            '\U00002146',
-	"Dopf;":                     '\U0001D53B',
-	"Dot;":                      '\U000000A8',
-	"DotDot;":                   '\U000020DC',
-	"DotEqual;":                 '\U00002250',
-	"DoubleContourIntegral;":    '\U0000222F',
-	"DoubleDot;":                '\U000000A8',
-	"DoubleDownArrow;":          '\U000021D3',
-	"DoubleLeftArrow;":          '\U000021D0',
-	"DoubleLeftRightArrow;":     '\U000021D4',
-	"DoubleLeftTee;":            '\U00002AE4',
-	"DoubleLongLeftArrow;":      '\U000027F8',
-	"DoubleLongLeftRightArrow;": '\U000027FA',
-	"DoubleLongRightArrow;":     '\U000027F9',
-	"DoubleRightArrow;":         '\U000021D2',
-	"DoubleRightTee;":           '\U000022A8',
-	"DoubleUpArrow;":            '\U000021D1',
-	"DoubleUpDownArrow;":        '\U000021D5',
-	"DoubleVerticalBar;":        '\U00002225',
-	"DownArrow;":                '\U00002193',
-	"DownArrowBar;":             '\U00002913',
-	"DownArrowUpArrow;":         '\U000021F5',
-	"DownBreve;":                '\U00000311',
-	"DownLeftRightVector;":      '\U00002950',
-	"DownLeftTeeVector;":        '\U0000295E',
-	"DownLeftVector;":           '\U000021BD',
-	"DownLeftVectorBar;":        '\U00002956',
-	"DownRightTeeVector;":       '\U0000295F',
-	"DownRightVector;":          '\U000021C1',
-	"DownRightVectorBar;":       '\U00002957',
-	"DownTee;":                  '\U000022A4',
-	"DownTeeArrow;":             '\U000021A7',
-	"Downarrow;":                '\U000021D3',
-	"Dscr;":                     '\U0001D49F',
-	"Dstrok;":                   '\U00000110',
-	"ENG;":                      '\U0000014A',
-	"ETH;":                      '\U000000D0',
-	"Eacute;":                   '\U000000C9',
-	"Ecaron;":                   '\U0000011A',
-	"Ecirc;":                    '\U000000CA',
-	"Ecy;":                      '\U0000042D',
-	"Edot;":                     '\U00000116',
-	"Efr;":                      '\U0001D508',
-	"Egrave;":                   '\U000000C8',
-	"Element;":                  '\U00002208',
-	"Emacr;":                    '\U00000112',
-	"EmptySmallSquare;":         '\U000025FB',
-	"EmptyVerySmallSquare;":     '\U000025AB',
-	"Eogon;":                    '\U00000118',
-	"Eopf;":                     '\U0001D53C',
-	"Epsilon;":                  '\U00000395',
-	"Equal;":                    '\U00002A75',
-	"EqualTilde;":               '\U00002242',
-	"Equilibrium;":              '\U000021CC',
-	"Escr;":                     '\U00002130',
-	"Esim;":                     '\U00002A73',
-	"Eta;":                      '\U00000397',
-	"Euml;":                     '\U000000CB',
-	"Exists;":                   '\U00002203',
-	"ExponentialE;":             '\U00002147',
-	"Fcy;":                      '\U00000424',
-	"Ffr;":                      '\U0001D509',
-	"FilledSmallSquare;":        '\U000025FC',
-	"FilledVerySmallSquare;":    '\U000025AA',
-	"Fopf;":                     '\U0001D53D',
-	"ForAll;":                   '\U00002200',
-	"Fouriertrf;":               '\U00002131',
-	"Fscr;":                     '\U00002131',
-	"GJcy;":                     '\U00000403',
-	"GT;":                       '\U0000003E',
-	"Gamma;":                    '\U00000393',
-	"Gammad;":                   '\U000003DC',
-	"Gbreve;":                   '\U0000011E',
-	"Gcedil;":                   '\U00000122',
-	"Gcirc;":                    '\U0000011C',
-	"Gcy;":                      '\U00000413',
-	"Gdot;":                     '\U00000120',
-	"Gfr;":                      '\U0001D50A',
-	"Gg;":                       '\U000022D9',
-	"Gopf;":                     '\U0001D53E',
-	"GreaterEqual;":             '\U00002265',
-	"GreaterEqualLess;":         '\U000022DB',
-	"GreaterFullEqual;":         '\U00002267',
-	"GreaterGreater;":           '\U00002AA2',
-	"GreaterLess;":              '\U00002277',
-	"GreaterSlantEqual;":        '\U00002A7E',
-	"GreaterTilde;":             '\U00002273',
-	"Gscr;":                     '\U0001D4A2',
-	"Gt;":                       '\U0000226B',
-	"HARDcy;":                   '\U0000042A',
-	"Hacek;":                    '\U000002C7',
-	"Hat;":                      '\U0000005E',
-	"Hcirc;":                    '\U00000124',
-	"Hfr;":                      '\U0000210C',
-	"HilbertSpace;":             '\U0000210B',
-	"Hopf;":                     '\U0000210D',
-	"HorizontalLine;":           '\U00002500',
-	"Hscr;":                     '\U0000210B',
-	"Hstrok;":                   '\U00000126',
-	"HumpDownHump;":             '\U0000224E',
-	"HumpEqual;":                '\U0000224F',
-	"IEcy;":                     '\U00000415',
-	"IJlig;":                    '\U00000132',
-	"IOcy;":                     '\U00000401',
-	"Iacute;":                   '\U000000CD',
-	"Icirc;":                    '\U000000CE',
-	"Icy;":                      '\U00000418',
-	"Idot;":                     '\U00000130',
-	"Ifr;":                      '\U00002111',
-	"Igrave;":                   '\U000000CC',
-	"Im;":                       '\U00002111',
-	"Imacr;":                    '\U0000012A',
-	"ImaginaryI;":               '\U00002148',
-	"Implies;":                  '\U000021D2',
-	"Int;":                      '\U0000222C',
-	"Integral;":                 '\U0000222B',
-	"Intersection;":             '\U000022C2',
-	"InvisibleComma;":           '\U00002063',
-	"InvisibleTimes;":           '\U00002062',
-	"Iogon;":                    '\U0000012E',
-	"Iopf;":                     '\U0001D540',
-	"Iota;":                     '\U00000399',
-	"Iscr;":                     '\U00002110',
-	"Itilde;":                   '\U00000128',
-	"Iukcy;":                    '\U00000406',
-	"Iuml;":                     '\U000000CF',
-	"Jcirc;":                    '\U00000134',
-	"Jcy;":                      '\U00000419',
-	"Jfr;":                      '\U0001D50D',
-	"Jopf;":                     '\U0001D541',
-	"Jscr;":                     '\U0001D4A5',
-	"Jsercy;":                   '\U00000408',
-	"Jukcy;":                    '\U00000404',
-	"KHcy;":                     '\U00000425',
-	"KJcy;":                     '\U0000040C',
-	"Kappa;":                    '\U0000039A',
-	"Kcedil;":                   '\U00000136',
-	"Kcy;":                      '\U0000041A',
-	"Kfr;":                      '\U0001D50E',
-	"Kopf;":                     '\U0001D542',
-	"Kscr;":                     '\U0001D4A6',
-	"LJcy;":                     '\U00000409',
-	"LT;":                       '\U0000003C',
-	"Lacute;":                   '\U00000139',
-	"Lambda;":                   '\U0000039B',
-	"Lang;":                     '\U000027EA',
-	"Laplacetrf;":               '\U00002112',
-	"Larr;":                     '\U0000219E',
-	"Lcaron;":                   '\U0000013D',
-	"Lcedil;":                   '\U0000013B',
-	"Lcy;":                      '\U0000041B',
-	"LeftAngleBracket;":         '\U000027E8',
-	"LeftArrow;":                '\U00002190',
-	"LeftArrowBar;":             '\U000021E4',
-	"LeftArrowRightArrow;":      '\U000021C6',
-	"LeftCeiling;":              '\U00002308',
-	"LeftDoubleBracket;":        '\U000027E6',
-	"LeftDownTeeVector;":        '\U00002961',
-	"LeftDownVector;":           '\U000021C3',
-	"LeftDownVectorBar;":        '\U00002959',
-	"LeftFloor;":                '\U0000230A',
-	"LeftRightArrow;":           '\U00002194',
-	"LeftRightVector;":          '\U0000294E',
-	"LeftTee;":                  '\U000022A3',
-	"LeftTeeArrow;":             '\U000021A4',
-	"LeftTeeVector;":            '\U0000295A',
-	"LeftTriangle;":             '\U000022B2',
-	"LeftTriangleBar;":          '\U000029CF',
-	"LeftTriangleEqual;":        '\U000022B4',
-	"LeftUpDownVector;":         '\U00002951',
-	"LeftUpTeeVector;":          '\U00002960',
-	"LeftUpVector;":             '\U000021BF',
-	"LeftUpVectorBar;":          '\U00002958',
-	"LeftVector;":               '\U000021BC',
-	"LeftVectorBar;":            '\U00002952',
-	"Leftarrow;":                '\U000021D0',
-	"Leftrightarrow;":           '\U000021D4',
-	"LessEqualGreater;":         '\U000022DA',
-	"LessFullEqual;":            '\U00002266',
-	"LessGreater;":              '\U00002276',
-	"LessLess;":                 '\U00002AA1',
-	"LessSlantEqual;":           '\U00002A7D',
-	"LessTilde;":                '\U00002272',
-	"Lfr;":                      '\U0001D50F',
-	"Ll;":                       '\U000022D8',
-	"Lleftarrow;":               '\U000021DA',
-	"Lmidot;":                   '\U0000013F',
-	"LongLeftArrow;":            '\U000027F5',
-	"LongLeftRightArrow;":       '\U000027F7',
-	"LongRightArrow;":           '\U000027F6',
-	"Longleftarrow;":            '\U000027F8',
-	"Longleftrightarrow;":       '\U000027FA',
-	"Longrightarrow;":           '\U000027F9',
-	"Lopf;":                     '\U0001D543',
-	"LowerLeftArrow;":           '\U00002199',
-	"LowerRightArrow;":          '\U00002198',
-	"Lscr;":                     '\U00002112',
-	"Lsh;":                      '\U000021B0',
-	"Lstrok;":                   '\U00000141',
-	"Lt;":                       '\U0000226A',
-	"Map;":                      '\U00002905',
-	"Mcy;":                      '\U0000041C',
-	"MediumSpace;":              '\U0000205F',
-	"Mellintrf;":                '\U00002133',
-	"Mfr;":                      '\U0001D510',
-	"MinusPlus;":                '\U00002213',
-	"Mopf;":                     '\U0001D544',
-	"Mscr;":                     '\U00002133',
-	"Mu;":                       '\U0000039C',
-	"NJcy;":                     '\U0000040A',
-	"Nacute;":                   '\U00000143',
-	"Ncaron;":                   '\U00000147',
-	"Ncedil;":                   '\U00000145',
-	"Ncy;":                      '\U0000041D',
-	"NegativeMediumSpace;":      '\U0000200B',
-	"NegativeThickSpace;":       '\U0000200B',
-	"NegativeThinSpace;":        '\U0000200B',
-	"NegativeVeryThinSpace;":    '\U0000200B',
-	"NestedGreaterGreater;":     '\U0000226B',
-	"NestedLessLess;":           '\U0000226A',
-	"NewLine;":                  '\U0000000A',
-	"Nfr;":                      '\U0001D511',
-	"NoBreak;":                  '\U00002060',
-	"NonBreakingSpace;":         '\U000000A0',
-	"Nopf;":                     '\U00002115',
-	"Not;":                      '\U00002AEC',
-	"NotCongruent;":             '\U00002262',
-	"NotCupCap;":                '\U0000226D',
-	"NotDoubleVerticalBar;":     '\U00002226',
-	"NotElement;":               '\U00002209',
-	"NotEqual;":                 '\U00002260',
-	"NotExists;":                '\U00002204',
-	"NotGreater;":               '\U0000226F',
-	"NotGreaterEqual;":          '\U00002271',
-	"NotGreaterLess;":           '\U00002279',
-	"NotGreaterTilde;":          '\U00002275',
-	"NotLeftTriangle;":          '\U000022EA',
-	"NotLeftTriangleEqual;":     '\U000022EC',
-	"NotLess;":                  '\U0000226E',
-	"NotLessEqual;":             '\U00002270',
-	"NotLessGreater;":           '\U00002278',
-	"NotLessTilde;":             '\U00002274',
-	"NotPrecedes;":              '\U00002280',
-	"NotPrecedesSlantEqual;":    '\U000022E0',
-	"NotReverseElement;":        '\U0000220C',
-	"NotRightTriangle;":         '\U000022EB',
-	"NotRightTriangleEqual;":    '\U000022ED',
-	"NotSquareSubsetEqual;":     '\U000022E2',
-	"NotSquareSupersetEqual;":   '\U000022E3',
-	"NotSubsetEqual;":           '\U00002288',
-	"NotSucceeds;":              '\U00002281',
-	"NotSucceedsSlantEqual;":    '\U000022E1',
-	"NotSupersetEqual;":         '\U00002289',
-	"NotTilde;":                 '\U00002241',
-	"NotTildeEqual;":            '\U00002244',
-	"NotTildeFullEqual;":        '\U00002247',
-	"NotTildeTilde;":            '\U00002249',
-	"NotVerticalBar;":           '\U00002224',
-	"Nscr;":                     '\U0001D4A9',
-	"Ntilde;":                   '\U000000D1',
-	"Nu;":                       '\U0000039D',
-	"OElig;":                    '\U00000152',
-	"Oacute;":                   '\U000000D3',
-	"Ocirc;":                    '\U000000D4',
-	"Ocy;":                      '\U0000041E',
-	"Odblac;":                   '\U00000150',
-	"Ofr;":                      '\U0001D512',
-	"Ograve;":                   '\U000000D2',
-	"Omacr;":                    '\U0000014C',
-	"Omega;":                    '\U000003A9',
-	"Omicron;":                  '\U0000039F',
-	"Oopf;":                     '\U0001D546',
-	"OpenCurlyDoubleQuote;":     '\U0000201C',
-	"OpenCurlyQuote;":           '\U00002018',
-	"Or;":                       '\U00002A54',
-	"Oscr;":                     '\U0001D4AA',
-	"Oslash;":                   '\U000000D8',
-	"Otilde;":                   '\U000000D5',
-	"Otimes;":                   '\U00002A37',
-	"Ouml;":                     '\U000000D6',
-	"OverBar;":                  '\U0000203E',
-	"OverBrace;":                '\U000023DE',
-	"OverBracket;":              '\U000023B4',
-	"OverParenthesis;":          '\U000023DC',
-	"PartialD;":                 '\U00002202',
-	"Pcy;":                      '\U0000041F',
-	"Pfr;":                      '\U0001D513',
-	"Phi;":                      '\U000003A6',
-	"Pi;":                       '\U000003A0',
-	"PlusMinus;":                '\U000000B1',
-	"Poincareplane;":            '\U0000210C',
-	"Popf;":                     '\U00002119',
-	"Pr;":                       '\U00002ABB',
-	"Precedes;":                 '\U0000227A',
-	"PrecedesEqual;":            '\U00002AAF',
-	"PrecedesSlantEqual;":       '\U0000227C',
-	"PrecedesTilde;":            '\U0000227E',
-	"Prime;":                    '\U00002033',
-	"Product;":                  '\U0000220F',
-	"Proportion;":               '\U00002237',
-	"Proportional;":             '\U0000221D',
-	"Pscr;":                     '\U0001D4AB',
-	"Psi;":                      '\U000003A8',
-	"QUOT;":                     '\U00000022',
-	"Qfr;":                      '\U0001D514',
-	"Qopf;":                     '\U0000211A',
-	"Qscr;":                     '\U0001D4AC',
-	"RBarr;":                    '\U00002910',
-	"REG;":                      '\U000000AE',
-	"Racute;":                   '\U00000154',
-	"Rang;":                     '\U000027EB',
-	"Rarr;":                     '\U000021A0',
-	"Rarrtl;":                   '\U00002916',
-	"Rcaron;":                   '\U00000158',
-	"Rcedil;":                   '\U00000156',
-	"Rcy;":                      '\U00000420',
-	"Re;":                       '\U0000211C',
-	"ReverseElement;":           '\U0000220B',
-	"ReverseEquilibrium;":       '\U000021CB',
-	"ReverseUpEquilibrium;":     '\U0000296F',
-	"Rfr;":                      '\U0000211C',
-	"Rho;":                      '\U000003A1',
-	"RightAngleBracket;":        '\U000027E9',
-	"RightArrow;":               '\U00002192',
-	"RightArrowBar;":            '\U000021E5',
-	"RightArrowLeftArrow;":      '\U000021C4',
-	"RightCeiling;":             '\U00002309',
-	"RightDoubleBracket;":       '\U000027E7',
-	"RightDownTeeVector;":       '\U0000295D',
-	"RightDownVector;":          '\U000021C2',
-	"RightDownVectorBar;":       '\U00002955',
-	"RightFloor;":               '\U0000230B',
-	"RightTee;":                 '\U000022A2',
-	"RightTeeArrow;":            '\U000021A6',
-	"RightTeeVector;":           '\U0000295B',
-	"RightTriangle;":            '\U000022B3',
-	"RightTriangleBar;":         '\U000029D0',
-	"RightTriangleEqual;":       '\U000022B5',
-	"RightUpDownVector;":        '\U0000294F',
-	"RightUpTeeVector;":         '\U0000295C',
-	"RightUpVector;":            '\U000021BE',
-	"RightUpVectorBar;":         '\U00002954',
-	"RightVector;":              '\U000021C0',
-	"RightVectorBar;":           '\U00002953',
-	"Rightarrow;":               '\U000021D2',
-	"Ropf;":                     '\U0000211D',
-	"RoundImplies;":             '\U00002970',
-	"Rrightarrow;":              '\U000021DB',
-	"Rscr;":                     '\U0000211B',
-	"Rsh;":                      '\U000021B1',
-	"RuleDelayed;":              '\U000029F4',
-	"SHCHcy;":                   '\U00000429',
-	"SHcy;":                     '\U00000428',
-	"SOFTcy;":                   '\U0000042C',
-	"Sacute;":                   '\U0000015A',
-	"Sc;":                       '\U00002ABC',
-	"Scaron;":                   '\U00000160',
-	"Scedil;":                   '\U0000015E',
-	"Scirc;":                    '\U0000015C',
-	"Scy;":                      '\U00000421',
-	"Sfr;":                      '\U0001D516',
-	"ShortDownArrow;":           '\U00002193',
-	"ShortLeftArrow;":           '\U00002190',
-	"ShortRightArrow;":          '\U00002192',
-	"ShortUpArrow;":             '\U00002191',
-	"Sigma;":                    '\U000003A3',
-	"SmallCircle;":              '\U00002218',
-	"Sopf;":                     '\U0001D54A',
-	"Sqrt;":                     '\U0000221A',
-	"Square;":                   '\U000025A1',
-	"SquareIntersection;":       '\U00002293',
-	"SquareSubset;":             '\U0000228F',
-	"SquareSubsetEqual;":        '\U00002291',
-	"SquareSuperset;":           '\U00002290',
-	"SquareSupersetEqual;":      '\U00002292',
-	"SquareUnion;":              '\U00002294',
-	"Sscr;":                     '\U0001D4AE',
-	"Star;":                     '\U000022C6',
-	"Sub;":                      '\U000022D0',
-	"Subset;":                   '\U000022D0',
-	"SubsetEqual;":              '\U00002286',
-	"Succeeds;":                 '\U0000227B',
-	"SucceedsEqual;":            '\U00002AB0',
-	"SucceedsSlantEqual;":       '\U0000227D',
-	"SucceedsTilde;":            '\U0000227F',
-	"SuchThat;":                 '\U0000220B',
-	"Sum;":                      '\U00002211',
-	"Sup;":                      '\U000022D1',
-	"Superset;":                 '\U00002283',
-	"SupersetEqual;":            '\U00002287',
-	"Supset;":                   '\U000022D1',
-	"THORN;":                    '\U000000DE',
-	"TRADE;":                    '\U00002122',
-	"TSHcy;":                    '\U0000040B',
-	"TScy;":                     '\U00000426',
-	"Tab;":                      '\U00000009',
-	"Tau;":                      '\U000003A4',
-	"Tcaron;":                   '\U00000164',
-	"Tcedil;":                   '\U00000162',
-	"Tcy;":                      '\U00000422',
-	"Tfr;":                      '\U0001D517',
-	"Therefore;":                '\U00002234',
-	"Theta;":                    '\U00000398',
-	"ThinSpace;":                '\U00002009',
-	"Tilde;":                    '\U0000223C',
-	"TildeEqual;":               '\U00002243',
-	"TildeFullEqual;":           '\U00002245',
-	"TildeTilde;":               '\U00002248',
-	"Topf;":                     '\U0001D54B',
-	"TripleDot;":                '\U000020DB',
-	"Tscr;":                     '\U0001D4AF',
-	"Tstrok;":                   '\U00000166',
-	"Uacute;":                   '\U000000DA',
-	"Uarr;":                     '\U0000219F',
-	"Uarrocir;":                 '\U00002949',
-	"Ubrcy;":                    '\U0000040E',
-	"Ubreve;":                   '\U0000016C',
-	"Ucirc;":                    '\U000000DB',
-	"Ucy;":                      '\U00000423',
-	"Udblac;":                   '\U00000170',
-	"Ufr;":                      '\U0001D518',
-	"Ugrave;":                   '\U000000D9',
-	"Umacr;":                    '\U0000016A',
-	"UnderBar;":                 '\U0000005F',
-	"UnderBrace;":               '\U000023DF',
-	"UnderBracket;":             '\U000023B5',
-	"UnderParenthesis;":         '\U000023DD',
-	"Union;":                    '\U000022C3',
-	"UnionPlus;":                '\U0000228E',
-	"Uogon;":                    '\U00000172',
-	"Uopf;":                     '\U0001D54C',
-	"UpArrow;":                  '\U00002191',
-	"UpArrowBar;":               '\U00002912',
-	"UpArrowDownArrow;":         '\U000021C5',
-	"UpDownArrow;":              '\U00002195',
-	"UpEquilibrium;":            '\U0000296E',
-	"UpTee;":                    '\U000022A5',
-	"UpTeeArrow;":               '\U000021A5',
-	"Uparrow;":                  '\U000021D1',
-	"Updownarrow;":              '\U000021D5',
-	"UpperLeftArrow;":           '\U00002196',
-	"UpperRightArrow;":          '\U00002197',
-	"Upsi;":                     '\U000003D2',
-	"Upsilon;":                  '\U000003A5',
-	"Uring;":                    '\U0000016E',
-	"Uscr;":                     '\U0001D4B0',
-	"Utilde;":                   '\U00000168',
-	"Uuml;":                     '\U000000DC',
-	"VDash;":                    '\U000022AB',
-	"Vbar;":                     '\U00002AEB',
-	"Vcy;":                      '\U00000412',
-	"Vdash;":                    '\U000022A9',
-	"Vdashl;":                   '\U00002AE6',
-	"Vee;":                      '\U000022C1',
-	"Verbar;":                   '\U00002016',
-	"Vert;":                     '\U00002016',
-	"VerticalBar;":              '\U00002223',
-	"VerticalLine;":             '\U0000007C',
-	"VerticalSeparator;":        '\U00002758',
-	"VerticalTilde;":            '\U00002240',
-	"VeryThinSpace;":            '\U0000200A',
-	"Vfr;":                      '\U0001D519',
-	"Vopf;":                     '\U0001D54D',
-	"Vscr;":                     '\U0001D4B1',
-	"Vvdash;":                   '\U000022AA',
-	"Wcirc;":                    '\U00000174',
-	"Wedge;":                    '\U000022C0',
-	"Wfr;":                      '\U0001D51A',
-	"Wopf;":                     '\U0001D54E',
-	"Wscr;":                     '\U0001D4B2',
-	"Xfr;":                      '\U0001D51B',
-	"Xi;":                       '\U0000039E',
-	"Xopf;":                     '\U0001D54F',
-	"Xscr;":                     '\U0001D4B3',
-	"YAcy;":                     '\U0000042F',
-	"YIcy;":                     '\U00000407',
-	"YUcy;":                     '\U0000042E',
-	"Yacute;":                   '\U000000DD',
-	"Ycirc;":                    '\U00000176',
-	"Ycy;":                      '\U0000042B',
-	"Yfr;":                      '\U0001D51C',
-	"Yopf;":                     '\U0001D550',
-	"Yscr;":                     '\U0001D4B4',
-	"Yuml;":                     '\U00000178',
-	"ZHcy;":                     '\U00000416',
-	"Zacute;":                   '\U00000179',
-	"Zcaron;":                   '\U0000017D',
-	"Zcy;":                      '\U00000417',
-	"Zdot;":                     '\U0000017B',
-	"ZeroWidthSpace;":           '\U0000200B',
-	"Zeta;":                     '\U00000396',
-	"Zfr;":                      '\U00002128',
-	"Zopf;":                     '\U00002124',
-	"Zscr;":                     '\U0001D4B5',
-	"aacute;":                   '\U000000E1',
-	"abreve;":                   '\U00000103',
-	"ac;":                       '\U0000223E',
-	"acd;":                      '\U0000223F',
-	"acirc;":                    '\U000000E2',
-	"acute;":                    '\U000000B4',
-	"acy;":                      '\U00000430',
-	"aelig;":                    '\U000000E6',
-	"af;":                       '\U00002061',
-	"afr;":                      '\U0001D51E',
-	"agrave;":                   '\U000000E0',
-	"alefsym;":                  '\U00002135',
-	"aleph;":                    '\U00002135',
-	"alpha;":                    '\U000003B1',
-	"amacr;":                    '\U00000101',
-	"amalg;":                    '\U00002A3F',
-	"amp;":                      '\U00000026',
-	"and;":                      '\U00002227',
-	"andand;":                   '\U00002A55',
-	"andd;":                     '\U00002A5C',
-	"andslope;":                 '\U00002A58',
-	"andv;":                     '\U00002A5A',
-	"ang;":                      '\U00002220',
-	"ange;":                     '\U000029A4',
-	"angle;":                    '\U00002220',
-	"angmsd;":                   '\U00002221',
-	"angmsdaa;":                 '\U000029A8',
-	"angmsdab;":                 '\U000029A9',
-	"angmsdac;":                 '\U000029AA',
-	"angmsdad;":                 '\U000029AB',
-	"angmsdae;":                 '\U000029AC',
-	"angmsdaf;":                 '\U000029AD',
-	"angmsdag;":                 '\U000029AE',
-	"angmsdah;":                 '\U000029AF',
-	"angrt;":                    '\U0000221F',
-	"angrtvb;":                  '\U000022BE',
-	"angrtvbd;":                 '\U0000299D',
-	"angsph;":                   '\U00002222',
-	"angst;":                    '\U000000C5',
-	"angzarr;":                  '\U0000237C',
-	"aogon;":                    '\U00000105',
-	"aopf;":                     '\U0001D552',
-	"ap;":                       '\U00002248',
-	"apE;":                      '\U00002A70',
-	"apacir;":                   '\U00002A6F',
-	"ape;":                      '\U0000224A',
-	"apid;":                     '\U0000224B',
-	"apos;":                     '\U00000027',
-	"approx;":                   '\U00002248',
-	"approxeq;":                 '\U0000224A',
-	"aring;":                    '\U000000E5',
-	"ascr;":                     '\U0001D4B6',
-	"ast;":                      '\U0000002A',
-	"asymp;":                    '\U00002248',
-	"asympeq;":                  '\U0000224D',
-	"atilde;":                   '\U000000E3',
-	"auml;":                     '\U000000E4',
-	"awconint;":                 '\U00002233',
-	"awint;":                    '\U00002A11',
-	"bNot;":                     '\U00002AED',
-	"backcong;":                 '\U0000224C',
-	"backepsilon;":              '\U000003F6',
-	"backprime;":                '\U00002035',
-	"backsim;":                  '\U0000223D',
-	"backsimeq;":                '\U000022CD',
-	"barvee;":                   '\U000022BD',
-	"barwed;":                   '\U00002305',
-	"barwedge;":                 '\U00002305',
-	"bbrk;":                     '\U000023B5',
-	"bbrktbrk;":                 '\U000023B6',
-	"bcong;":                    '\U0000224C',
-	"bcy;":                      '\U00000431',
-	"bdquo;":                    '\U0000201E',
-	"becaus;":                   '\U00002235',
-	"because;":                  '\U00002235',
-	"bemptyv;":                  '\U000029B0',
-	"bepsi;":                    '\U000003F6',
-	"bernou;":                   '\U0000212C',
-	"beta;":                     '\U000003B2',
-	"beth;":                     '\U00002136',
-	"between;":                  '\U0000226C',
-	"bfr;":                      '\U0001D51F',
-	"bigcap;":                   '\U000022C2',
-	"bigcirc;":                  '\U000025EF',
-	"bigcup;":                   '\U000022C3',
-	"bigodot;":                  '\U00002A00',
-	"bigoplus;":                 '\U00002A01',
-	"bigotimes;":                '\U00002A02',
-	"bigsqcup;":                 '\U00002A06',
-	"bigstar;":                  '\U00002605',
-	"bigtriangledown;":          '\U000025BD',
-	"bigtriangleup;":            '\U000025B3',
-	"biguplus;":                 '\U00002A04',
-	"bigvee;":                   '\U000022C1',
-	"bigwedge;":                 '\U000022C0',
-	"bkarow;":                   '\U0000290D',
-	"blacklozenge;":             '\U000029EB',
-	"blacksquare;":              '\U000025AA',
-	"blacktriangle;":            '\U000025B4',
-	"blacktriangledown;":        '\U000025BE',
-	"blacktriangleleft;":        '\U000025C2',
-	"blacktriangleright;":       '\U000025B8',
-	"blank;":                    '\U00002423',
-	"blk12;":                    '\U00002592',
-	"blk14;":                    '\U00002591',
-	"blk34;":                    '\U00002593',
-	"block;":                    '\U00002588',
-	"bnot;":                     '\U00002310',
-	"bopf;":                     '\U0001D553',
-	"bot;":                      '\U000022A5',
-	"bottom;":                   '\U000022A5',
-	"bowtie;":                   '\U000022C8',
-	"boxDL;":                    '\U00002557',
-	"boxDR;":                    '\U00002554',
-	"boxDl;":                    '\U00002556',
-	"boxDr;":                    '\U00002553',
-	"boxH;":                     '\U00002550',
-	"boxHD;":                    '\U00002566',
-	"boxHU;":                    '\U00002569',
-	"boxHd;":                    '\U00002564',
-	"boxHu;":                    '\U00002567',
-	"boxUL;":                    '\U0000255D',
-	"boxUR;":                    '\U0000255A',
-	"boxUl;":                    '\U0000255C',
-	"boxUr;":                    '\U00002559',
-	"boxV;":                     '\U00002551',
-	"boxVH;":                    '\U0000256C',
-	"boxVL;":                    '\U00002563',
-	"boxVR;":                    '\U00002560',
-	"boxVh;":                    '\U0000256B',
-	"boxVl;":                    '\U00002562',
-	"boxVr;":                    '\U0000255F',
-	"boxbox;":                   '\U000029C9',
-	"boxdL;":                    '\U00002555',
-	"boxdR;":                    '\U00002552',
-	"boxdl;":                    '\U00002510',
-	"boxdr;":                    '\U0000250C',
-	"boxh;":                     '\U00002500',
-	"boxhD;":                    '\U00002565',
-	"boxhU;":                    '\U00002568',
-	"boxhd;":                    '\U0000252C',
-	"boxhu;":                    '\U00002534',
-	"boxminus;":                 '\U0000229F',
-	"boxplus;":                  '\U0000229E',
-	"boxtimes;":                 '\U000022A0',
-	"boxuL;":                    '\U0000255B',
-	"boxuR;":                    '\U00002558',
-	"boxul;":                    '\U00002518',
-	"boxur;":                    '\U00002514',
-	"boxv;":                     '\U00002502',
-	"boxvH;":                    '\U0000256A',
-	"boxvL;":                    '\U00002561',
-	"boxvR;":                    '\U0000255E',
-	"boxvh;":                    '\U0000253C',
-	"boxvl;":                    '\U00002524',
-	"boxvr;":                    '\U0000251C',
-	"bprime;":                   '\U00002035',
-	"breve;":                    '\U000002D8',
-	"brvbar;":                   '\U000000A6',
-	"bscr;":                     '\U0001D4B7',
-	"bsemi;":                    '\U0000204F',
-	"bsim;":                     '\U0000223D',
-	"bsime;":                    '\U000022CD',
-	"bsol;":                     '\U0000005C',
-	"bsolb;":                    '\U000029C5',
-	"bsolhsub;":                 '\U000027C8',
-	"bull;":                     '\U00002022',
-	"bullet;":                   '\U00002022',
-	"bump;":                     '\U0000224E',
-	"bumpE;":                    '\U00002AAE',
-	"bumpe;":                    '\U0000224F',
-	"bumpeq;":                   '\U0000224F',
-	"cacute;":                   '\U00000107',
-	"cap;":                      '\U00002229',
-	"capand;":                   '\U00002A44',
-	"capbrcup;":                 '\U00002A49',
-	"capcap;":                   '\U00002A4B',
-	"capcup;":                   '\U00002A47',
-	"capdot;":                   '\U00002A40',
-	"caret;":                    '\U00002041',
-	"caron;":                    '\U000002C7',
-	"ccaps;":                    '\U00002A4D',
-	"ccaron;":                   '\U0000010D',
-	"ccedil;":                   '\U000000E7',
-	"ccirc;":                    '\U00000109',
-	"ccups;":                    '\U00002A4C',
-	"ccupssm;":                  '\U00002A50',
-	"cdot;":                     '\U0000010B',
-	"cedil;":                    '\U000000B8',
-	"cemptyv;":                  '\U000029B2',
-	"cent;":                     '\U000000A2',
-	"centerdot;":                '\U000000B7',
-	"cfr;":                      '\U0001D520',
-	"chcy;":                     '\U00000447',
-	"check;":                    '\U00002713',
-	"checkmark;":                '\U00002713',
-	"chi;":                      '\U000003C7',
-	"cir;":                      '\U000025CB',
-	"cirE;":                     '\U000029C3',
-	"circ;":                     '\U000002C6',
-	"circeq;":                   '\U00002257',
-	"circlearrowleft;":          '\U000021BA',
-	"circlearrowright;":         '\U000021BB',
-	"circledR;":                 '\U000000AE',
-	"circledS;":                 '\U000024C8',
-	"circledast;":               '\U0000229B',
-	"circledcirc;":              '\U0000229A',
-	"circleddash;":              '\U0000229D',
-	"cire;":                     '\U00002257',
-	"cirfnint;":                 '\U00002A10',
-	"cirmid;":                   '\U00002AEF',
-	"cirscir;":                  '\U000029C2',
-	"clubs;":                    '\U00002663',
-	"clubsuit;":                 '\U00002663',
-	"colon;":                    '\U0000003A',
-	"colone;":                   '\U00002254',
-	"coloneq;":                  '\U00002254',
-	"comma;":                    '\U0000002C',
-	"commat;":                   '\U00000040',
-	"comp;":                     '\U00002201',
-	"compfn;":                   '\U00002218',
-	"complement;":               '\U00002201',
-	"complexes;":                '\U00002102',
-	"cong;":                     '\U00002245',
-	"congdot;":                  '\U00002A6D',
-	"conint;":                   '\U0000222E',
-	"copf;":                     '\U0001D554',
-	"coprod;":                   '\U00002210',
-	"copy;":                     '\U000000A9',
-	"copysr;":                   '\U00002117',
-	"crarr;":                    '\U000021B5',
-	"cross;":                    '\U00002717',
-	"cscr;":                     '\U0001D4B8',
-	"csub;":                     '\U00002ACF',
-	"csube;":                    '\U00002AD1',
-	"csup;":                     '\U00002AD0',
-	"csupe;":                    '\U00002AD2',
-	"ctdot;":                    '\U000022EF',
-	"cudarrl;":                  '\U00002938',
-	"cudarrr;":                  '\U00002935',
-	"cuepr;":                    '\U000022DE',
-	"cuesc;":                    '\U000022DF',
-	"cularr;":                   '\U000021B6',
-	"cularrp;":                  '\U0000293D',
-	"cup;":                      '\U0000222A',
-	"cupbrcap;":                 '\U00002A48',
-	"cupcap;":                   '\U00002A46',
-	"cupcup;":                   '\U00002A4A',
-	"cupdot;":                   '\U0000228D',
-	"cupor;":                    '\U00002A45',
-	"curarr;":                   '\U000021B7',
-	"curarrm;":                  '\U0000293C',
-	"curlyeqprec;":              '\U000022DE',
-	"curlyeqsucc;":              '\U000022DF',
-	"curlyvee;":                 '\U000022CE',
-	"curlywedge;":               '\U000022CF',
-	"curren;":                   '\U000000A4',
-	"curvearrowleft;":           '\U000021B6',
-	"curvearrowright;":          '\U000021B7',
-	"cuvee;":                    '\U000022CE',
-	"cuwed;":                    '\U000022CF',
-	"cwconint;":                 '\U00002232',
-	"cwint;":                    '\U00002231',
-	"cylcty;":                   '\U0000232D',
-	"dArr;":                     '\U000021D3',
-	"dHar;":                     '\U00002965',
-	"dagger;":                   '\U00002020',
-	"daleth;":                   '\U00002138',
-	"darr;":                     '\U00002193',
-	"dash;":                     '\U00002010',
-	"dashv;":                    '\U000022A3',
-	"dbkarow;":                  '\U0000290F',
-	"dblac;":                    '\U000002DD',
-	"dcaron;":                   '\U0000010F',
-	"dcy;":                      '\U00000434',
-	"dd;":                       '\U00002146',
-	"ddagger;":                  '\U00002021',
-	"ddarr;":                    '\U000021CA',
-	"ddotseq;":                  '\U00002A77',
-	"deg;":                      '\U000000B0',
-	"delta;":                    '\U000003B4',
-	"demptyv;":                  '\U000029B1',
-	"dfisht;":                   '\U0000297F',
-	"dfr;":                      '\U0001D521',
-	"dharl;":                    '\U000021C3',
-	"dharr;":                    '\U000021C2',
-	"diam;":                     '\U000022C4',
-	"diamond;":                  '\U000022C4',
-	"diamondsuit;":              '\U00002666',
-	"diams;":                    '\U00002666',
-	"die;":                      '\U000000A8',
-	"digamma;":                  '\U000003DD',
-	"disin;":                    '\U000022F2',
-	"div;":                      '\U000000F7',
-	"divide;":                   '\U000000F7',
-	"divideontimes;":            '\U000022C7',
-	"divonx;":                   '\U000022C7',
-	"djcy;":                     '\U00000452',
-	"dlcorn;":                   '\U0000231E',
-	"dlcrop;":                   '\U0000230D',
-	"dollar;":                   '\U00000024',
-	"dopf;":                     '\U0001D555',
-	"dot;":                      '\U000002D9',
-	"doteq;":                    '\U00002250',
-	"doteqdot;":                 '\U00002251',
-	"dotminus;":                 '\U00002238',
-	"dotplus;":                  '\U00002214',
-	"dotsquare;":                '\U000022A1',
-	"doublebarwedge;":           '\U00002306',
-	"downarrow;":                '\U00002193',
-	"downdownarrows;":           '\U000021CA',
-	"downharpoonleft;":          '\U000021C3',
-	"downharpoonright;":         '\U000021C2',
-	"drbkarow;":                 '\U00002910',
-	"drcorn;":                   '\U0000231F',
-	"drcrop;":                   '\U0000230C',
-	"dscr;":                     '\U0001D4B9',
-	"dscy;":                     '\U00000455',
-	"dsol;":                     '\U000029F6',
-	"dstrok;":                   '\U00000111',
-	"dtdot;":                    '\U000022F1',
-	"dtri;":                     '\U000025BF',
-	"dtrif;":                    '\U000025BE',
-	"duarr;":                    '\U000021F5',
-	"duhar;":                    '\U0000296F',
-	"dwangle;":                  '\U000029A6',
-	"dzcy;":                     '\U0000045F',
-	"dzigrarr;":                 '\U000027FF',
-	"eDDot;":                    '\U00002A77',
-	"eDot;":                     '\U00002251',
-	"eacute;":                   '\U000000E9',
-	"easter;":                   '\U00002A6E',
-	"ecaron;":                   '\U0000011B',
-	"ecir;":                     '\U00002256',
-	"ecirc;":                    '\U000000EA',
-	"ecolon;":                   '\U00002255',
-	"ecy;":                      '\U0000044D',
-	"edot;":                     '\U00000117',
-	"ee;":                       '\U00002147',
-	"efDot;":                    '\U00002252',
-	"efr;":                      '\U0001D522',
-	"eg;":                       '\U00002A9A',
-	"egrave;":                   '\U000000E8',
-	"egs;":                      '\U00002A96',
-	"egsdot;":                   '\U00002A98',
-	"el;":                       '\U00002A99',
-	"elinters;":                 '\U000023E7',
-	"ell;":                      '\U00002113',
-	"els;":                      '\U00002A95',
-	"elsdot;":                   '\U00002A97',
-	"emacr;":                    '\U00000113',
-	"empty;":                    '\U00002205',
-	"emptyset;":                 '\U00002205',
-	"emptyv;":                   '\U00002205',
-	"emsp;":                     '\U00002003',
-	"emsp13;":                   '\U00002004',
-	"emsp14;":                   '\U00002005',
-	"eng;":                      '\U0000014B',
-	"ensp;":                     '\U00002002',
-	"eogon;":                    '\U00000119',
-	"eopf;":                     '\U0001D556',
-	"epar;":                     '\U000022D5',
-	"eparsl;":                   '\U000029E3',
-	"eplus;":                    '\U00002A71',
-	"epsi;":                     '\U000003B5',
-	"epsilon;":                  '\U000003B5',
-	"epsiv;":                    '\U000003F5',
-	"eqcirc;":                   '\U00002256',
-	"eqcolon;":                  '\U00002255',
-	"eqsim;":                    '\U00002242',
-	"eqslantgtr;":               '\U00002A96',
-	"eqslantless;":              '\U00002A95',
-	"equals;":                   '\U0000003D',
-	"equest;":                   '\U0000225F',
-	"equiv;":                    '\U00002261',
-	"equivDD;":                  '\U00002A78',
-	"eqvparsl;":                 '\U000029E5',
-	"erDot;":                    '\U00002253',
-	"erarr;":                    '\U00002971',
-	"escr;":                     '\U0000212F',
-	"esdot;":                    '\U00002250',
-	"esim;":                     '\U00002242',
-	"eta;":                      '\U000003B7',
-	"eth;":                      '\U000000F0',
-	"euml;":                     '\U000000EB',
-	"euro;":                     '\U000020AC',
-	"excl;":                     '\U00000021',
-	"exist;":                    '\U00002203',
-	"expectation;":              '\U00002130',
-	"exponentiale;":             '\U00002147',
-	"fallingdotseq;":            '\U00002252',
-	"fcy;":                      '\U00000444',
-	"female;":                   '\U00002640',
-	"ffilig;":                   '\U0000FB03',
-	"fflig;":                    '\U0000FB00',
-	"ffllig;":                   '\U0000FB04',
-	"ffr;":                      '\U0001D523',
-	"filig;":                    '\U0000FB01',
-	"flat;":                     '\U0000266D',
-	"fllig;":                    '\U0000FB02',
-	"fltns;":                    '\U000025B1',
-	"fnof;":                     '\U00000192',
-	"fopf;":                     '\U0001D557',
-	"forall;":                   '\U00002200',
-	"fork;":                     '\U000022D4',
-	"forkv;":                    '\U00002AD9',
-	"fpartint;":                 '\U00002A0D',
-	"frac12;":                   '\U000000BD',
-	"frac13;":                   '\U00002153',
-	"frac14;":                   '\U000000BC',
-	"frac15;":                   '\U00002155',
-	"frac16;":                   '\U00002159',
-	"frac18;":                   '\U0000215B',
-	"frac23;":                   '\U00002154',
-	"frac25;":                   '\U00002156',
-	"frac34;":                   '\U000000BE',
-	"frac35;":                   '\U00002157',
-	"frac38;":                   '\U0000215C',
-	"frac45;":                   '\U00002158',
-	"frac56;":                   '\U0000215A',
-	"frac58;":                   '\U0000215D',
-	"frac78;":                   '\U0000215E',
-	"frasl;":                    '\U00002044',
-	"frown;":                    '\U00002322',
-	"fscr;":                     '\U0001D4BB',
-	"gE;":                       '\U00002267',
-	"gEl;":                      '\U00002A8C',
-	"gacute;":                   '\U000001F5',
-	"gamma;":                    '\U000003B3',
-	"gammad;":                   '\U000003DD',
-	"gap;":                      '\U00002A86',
-	"gbreve;":                   '\U0000011F',
-	"gcirc;":                    '\U0000011D',
-	"gcy;":                      '\U00000433',
-	"gdot;":                     '\U00000121',
-	"ge;":                       '\U00002265',
-	"gel;":                      '\U000022DB',
-	"geq;":                      '\U00002265',
-	"geqq;":                     '\U00002267',
-	"geqslant;":                 '\U00002A7E',
-	"ges;":                      '\U00002A7E',
-	"gescc;":                    '\U00002AA9',
-	"gesdot;":                   '\U00002A80',
-	"gesdoto;":                  '\U00002A82',
-	"gesdotol;":                 '\U00002A84',
-	"gesles;":                   '\U00002A94',
-	"gfr;":                      '\U0001D524',
-	"gg;":                       '\U0000226B',
-	"ggg;":                      '\U000022D9',
-	"gimel;":                    '\U00002137',
-	"gjcy;":                     '\U00000453',
-	"gl;":                       '\U00002277',
-	"glE;":                      '\U00002A92',
-	"gla;":                      '\U00002AA5',
-	"glj;":                      '\U00002AA4',
-	"gnE;":                      '\U00002269',
-	"gnap;":                     '\U00002A8A',
-	"gnapprox;":                 '\U00002A8A',
-	"gne;":                      '\U00002A88',
-	"gneq;":                     '\U00002A88',
-	"gneqq;":                    '\U00002269',
-	"gnsim;":                    '\U000022E7',
-	"gopf;":                     '\U0001D558',
-	"grave;":                    '\U00000060',
-	"gscr;":                     '\U0000210A',
-	"gsim;":                     '\U00002273',
-	"gsime;":                    '\U00002A8E',
-	"gsiml;":                    '\U00002A90',
-	"gt;":                       '\U0000003E',
-	"gtcc;":                     '\U00002AA7',
-	"gtcir;":                    '\U00002A7A',
-	"gtdot;":                    '\U000022D7',
-	"gtlPar;":                   '\U00002995',
-	"gtquest;":                  '\U00002A7C',
-	"gtrapprox;":                '\U00002A86',
-	"gtrarr;":                   '\U00002978',
-	"gtrdot;":                   '\U000022D7',
-	"gtreqless;":                '\U000022DB',
-	"gtreqqless;":               '\U00002A8C',
-	"gtrless;":                  '\U00002277',
-	"gtrsim;":                   '\U00002273',
-	"hArr;":                     '\U000021D4',
-	"hairsp;":                   '\U0000200A',
-	"half;":                     '\U000000BD',
-	"hamilt;":                   '\U0000210B',
-	"hardcy;":                   '\U0000044A',
-	"harr;":                     '\U00002194',
-	"harrcir;":                  '\U00002948',
-	"harrw;":                    '\U000021AD',
-	"hbar;":                     '\U0000210F',
-	"hcirc;":                    '\U00000125',
-	"hearts;":                   '\U00002665',
-	"heartsuit;":                '\U00002665',
-	"hellip;":                   '\U00002026',
-	"hercon;":                   '\U000022B9',
-	"hfr;":                      '\U0001D525',
-	"hksearow;":                 '\U00002925',
-	"hkswarow;":                 '\U00002926',
-	"hoarr;":                    '\U000021FF',
-	"homtht;":                   '\U0000223B',
-	"hookleftarrow;":            '\U000021A9',
-	"hookrightarrow;":           '\U000021AA',
-	"hopf;":                     '\U0001D559',
-	"horbar;":                   '\U00002015',
-	"hscr;":                     '\U0001D4BD',
-	"hslash;":                   '\U0000210F',
-	"hstrok;":                   '\U00000127',
-	"hybull;":                   '\U00002043',
-	"hyphen;":                   '\U00002010',
-	"iacute;":                   '\U000000ED',
-	"ic;":                       '\U00002063',
-	"icirc;":                    '\U000000EE',
-	"icy;":                      '\U00000438',
-	"iecy;":                     '\U00000435',
-	"iexcl;":                    '\U000000A1',
-	"iff;":                      '\U000021D4',
-	"ifr;":                      '\U0001D526',
-	"igrave;":                   '\U000000EC',
-	"ii;":                       '\U00002148',
-	"iiiint;":                   '\U00002A0C',
-	"iiint;":                    '\U0000222D',
-	"iinfin;":                   '\U000029DC',
-	"iiota;":                    '\U00002129',
-	"ijlig;":                    '\U00000133',
-	"imacr;":                    '\U0000012B',
-	"image;":                    '\U00002111',
-	"imagline;":                 '\U00002110',
-	"imagpart;":                 '\U00002111',
-	"imath;":                    '\U00000131',
-	"imof;":                     '\U000022B7',
-	"imped;":                    '\U000001B5',
-	"in;":                       '\U00002208',
-	"incare;":                   '\U00002105',
-	"infin;":                    '\U0000221E',
-	"infintie;":                 '\U000029DD',
-	"inodot;":                   '\U00000131',
-	"int;":                      '\U0000222B',
-	"intcal;":                   '\U000022BA',
-	"integers;":                 '\U00002124',
-	"intercal;":                 '\U000022BA',
-	"intlarhk;":                 '\U00002A17',
-	"intprod;":                  '\U00002A3C',
-	"iocy;":                     '\U00000451',
-	"iogon;":                    '\U0000012F',
-	"iopf;":                     '\U0001D55A',
-	"iota;":                     '\U000003B9',
-	"iprod;":                    '\U00002A3C',
-	"iquest;":                   '\U000000BF',
-	"iscr;":                     '\U0001D4BE',
-	"isin;":                     '\U00002208',
-	"isinE;":                    '\U000022F9',
-	"isindot;":                  '\U000022F5',
-	"isins;":                    '\U000022F4',
-	"isinsv;":                   '\U000022F3',
-	"isinv;":                    '\U00002208',
-	"it;":                       '\U00002062',
-	"itilde;":                   '\U00000129',
-	"iukcy;":                    '\U00000456',
-	"iuml;":                     '\U000000EF',
-	"jcirc;":                    '\U00000135',
-	"jcy;":                      '\U00000439',
-	"jfr;":                      '\U0001D527',
-	"jmath;":                    '\U00000237',
-	"jopf;":                     '\U0001D55B',
-	"jscr;":                     '\U0001D4BF',
-	"jsercy;":                   '\U00000458',
-	"jukcy;":                    '\U00000454',
-	"kappa;":                    '\U000003BA',
-	"kappav;":                   '\U000003F0',
-	"kcedil;":                   '\U00000137',
-	"kcy;":                      '\U0000043A',
-	"kfr;":                      '\U0001D528',
-	"kgreen;":                   '\U00000138',
-	"khcy;":                     '\U00000445',
-	"kjcy;":                     '\U0000045C',
-	"kopf;":                     '\U0001D55C',
-	"kscr;":                     '\U0001D4C0',
-	"lAarr;":                    '\U000021DA',
-	"lArr;":                     '\U000021D0',
-	"lAtail;":                   '\U0000291B',
-	"lBarr;":                    '\U0000290E',
-	"lE;":                       '\U00002266',
-	"lEg;":                      '\U00002A8B',
-	"lHar;":                     '\U00002962',
-	"lacute;":                   '\U0000013A',
-	"laemptyv;":                 '\U000029B4',
-	"lagran;":                   '\U00002112',
-	"lambda;":                   '\U000003BB',
-	"lang;":                     '\U000027E8',
-	"langd;":                    '\U00002991',
-	"langle;":                   '\U000027E8',
-	"lap;":                      '\U00002A85',
-	"laquo;":                    '\U000000AB',
-	"larr;":                     '\U00002190',
-	"larrb;":                    '\U000021E4',
-	"larrbfs;":                  '\U0000291F',
-	"larrfs;":                   '\U0000291D',
-	"larrhk;":                   '\U000021A9',
-	"larrlp;":                   '\U000021AB',
-	"larrpl;":                   '\U00002939',
-	"larrsim;":                  '\U00002973',
-	"larrtl;":                   '\U000021A2',
-	"lat;":                      '\U00002AAB',
-	"latail;":                   '\U00002919',
-	"late;":                     '\U00002AAD',
-	"lbarr;":                    '\U0000290C',
-	"lbbrk;":                    '\U00002772',
-	"lbrace;":                   '\U0000007B',
-	"lbrack;":                   '\U0000005B',
-	"lbrke;":                    '\U0000298B',
-	"lbrksld;":                  '\U0000298F',
-	"lbrkslu;":                  '\U0000298D',
-	"lcaron;":                   '\U0000013E',
-	"lcedil;":                   '\U0000013C',
-	"lceil;":                    '\U00002308',
-	"lcub;":                     '\U0000007B',
-	"lcy;":                      '\U0000043B',
-	"ldca;":                     '\U00002936',
-	"ldquo;":                    '\U0000201C',
-	"ldquor;":                   '\U0000201E',
-	"ldrdhar;":                  '\U00002967',
-	"ldrushar;":                 '\U0000294B',
-	"ldsh;":                     '\U000021B2',
-	"le;":                       '\U00002264',
-	"leftarrow;":                '\U00002190',
-	"leftarrowtail;":            '\U000021A2',
-	"leftharpoondown;":          '\U000021BD',
-	"leftharpoonup;":            '\U000021BC',
-	"leftleftarrows;":           '\U000021C7',
-	"leftrightarrow;":           '\U00002194',
-	"leftrightarrows;":          '\U000021C6',
-	"leftrightharpoons;":        '\U000021CB',
-	"leftrightsquigarrow;":      '\U000021AD',
-	"leftthreetimes;":           '\U000022CB',
-	"leg;":                      '\U000022DA',
-	"leq;":                      '\U00002264',
-	"leqq;":                     '\U00002266',
-	"leqslant;":                 '\U00002A7D',
-	"les;":                      '\U00002A7D',
-	"lescc;":                    '\U00002AA8',
-	"lesdot;":                   '\U00002A7F',
-	"lesdoto;":                  '\U00002A81',
-	"lesdotor;":                 '\U00002A83',
-	"lesges;":                   '\U00002A93',
-	"lessapprox;":               '\U00002A85',
-	"lessdot;":                  '\U000022D6',
-	"lesseqgtr;":                '\U000022DA',
-	"lesseqqgtr;":               '\U00002A8B',
-	"lessgtr;":                  '\U00002276',
-	"lesssim;":                  '\U00002272',
-	"lfisht;":                   '\U0000297C',
-	"lfloor;":                   '\U0000230A',
-	"lfr;":                      '\U0001D529',
-	"lg;":                       '\U00002276',
-	"lgE;":                      '\U00002A91',
-	"lhard;":                    '\U000021BD',
-	"lharu;":                    '\U000021BC',
-	"lharul;":                   '\U0000296A',
-	"lhblk;":                    '\U00002584',
-	"ljcy;":                     '\U00000459',
-	"ll;":                       '\U0000226A',
-	"llarr;":                    '\U000021C7',
-	"llcorner;":                 '\U0000231E',
-	"llhard;":                   '\U0000296B',
-	"lltri;":                    '\U000025FA',
-	"lmidot;":                   '\U00000140',
-	"lmoust;":                   '\U000023B0',
-	"lmoustache;":               '\U000023B0',
-	"lnE;":                      '\U00002268',
-	"lnap;":                     '\U00002A89',
-	"lnapprox;":                 '\U00002A89',
-	"lne;":                      '\U00002A87',
-	"lneq;":                     '\U00002A87',
-	"lneqq;":                    '\U00002268',
-	"lnsim;":                    '\U000022E6',
-	"loang;":                    '\U000027EC',
-	"loarr;":                    '\U000021FD',
-	"lobrk;":                    '\U000027E6',
-	"longleftarrow;":            '\U000027F5',
-	"longleftrightarrow;":       '\U000027F7',
-	"longmapsto;":               '\U000027FC',
-	"longrightarrow;":           '\U000027F6',
-	"looparrowleft;":            '\U000021AB',
-	"looparrowright;":           '\U000021AC',
-	"lopar;":                    '\U00002985',
-	"lopf;":                     '\U0001D55D',
-	"loplus;":                   '\U00002A2D',
-	"lotimes;":                  '\U00002A34',
-	"lowast;":                   '\U00002217',
-	"lowbar;":                   '\U0000005F',
-	"loz;":                      '\U000025CA',
-	"lozenge;":                  '\U000025CA',
-	"lozf;":                     '\U000029EB',
-	"lpar;":                     '\U00000028',
-	"lparlt;":                   '\U00002993',
-	"lrarr;":                    '\U000021C6',
-	"lrcorner;":                 '\U0000231F',
-	"lrhar;":                    '\U000021CB',
-	"lrhard;":                   '\U0000296D',
-	"lrm;":                      '\U0000200E',
-	"lrtri;":                    '\U000022BF',
-	"lsaquo;":                   '\U00002039',
-	"lscr;":                     '\U0001D4C1',
-	"lsh;":                      '\U000021B0',
-	"lsim;":                     '\U00002272',
-	"lsime;":                    '\U00002A8D',
-	"lsimg;":                    '\U00002A8F',
-	"lsqb;":                     '\U0000005B',
-	"lsquo;":                    '\U00002018',
-	"lsquor;":                   '\U0000201A',
-	"lstrok;":                   '\U00000142',
-	"lt;":                       '\U0000003C',
-	"ltcc;":                     '\U00002AA6',
-	"ltcir;":                    '\U00002A79',
-	"ltdot;":                    '\U000022D6',
-	"lthree;":                   '\U000022CB',
-	"ltimes;":                   '\U000022C9',
-	"ltlarr;":                   '\U00002976',
-	"ltquest;":                  '\U00002A7B',
-	"ltrPar;":                   '\U00002996',
-	"ltri;":                     '\U000025C3',
-	"ltrie;":                    '\U000022B4',
-	"ltrif;":                    '\U000025C2',
-	"lurdshar;":                 '\U0000294A',
-	"luruhar;":                  '\U00002966',
-	"mDDot;":                    '\U0000223A',
-	"macr;":                     '\U000000AF',
-	"male;":                     '\U00002642',
-	"malt;":                     '\U00002720',
-	"maltese;":                  '\U00002720',
-	"map;":                      '\U000021A6',
-	"mapsto;":                   '\U000021A6',
-	"mapstodown;":               '\U000021A7',
-	"mapstoleft;":               '\U000021A4',
-	"mapstoup;":                 '\U000021A5',
-	"marker;":                   '\U000025AE',
-	"mcomma;":                   '\U00002A29',
-	"mcy;":                      '\U0000043C',
-	"mdash;":                    '\U00002014',
-	"measuredangle;":            '\U00002221',
-	"mfr;":                      '\U0001D52A',
-	"mho;":                      '\U00002127',
-	"micro;":                    '\U000000B5',
-	"mid;":                      '\U00002223',
-	"midast;":                   '\U0000002A',
-	"midcir;":                   '\U00002AF0',
-	"middot;":                   '\U000000B7',
-	"minus;":                    '\U00002212',
-	"minusb;":                   '\U0000229F',
-	"minusd;":                   '\U00002238',
-	"minusdu;":                  '\U00002A2A',
-	"mlcp;":                     '\U00002ADB',
-	"mldr;":                     '\U00002026',
-	"mnplus;":                   '\U00002213',
-	"models;":                   '\U000022A7',
-	"mopf;":                     '\U0001D55E',
-	"mp;":                       '\U00002213',
-	"mscr;":                     '\U0001D4C2',
-	"mstpos;":                   '\U0000223E',
-	"mu;":                       '\U000003BC',
-	"multimap;":                 '\U000022B8',
-	"mumap;":                    '\U000022B8',
-	"nLeftarrow;":               '\U000021CD',
-	"nLeftrightarrow;":          '\U000021CE',
-	"nRightarrow;":              '\U000021CF',
-	"nVDash;":                   '\U000022AF',
-	"nVdash;":                   '\U000022AE',
-	"nabla;":                    '\U00002207',
-	"nacute;":                   '\U00000144',
-	"nap;":                      '\U00002249',
-	"napos;":                    '\U00000149',
-	"napprox;":                  '\U00002249',
-	"natur;":                    '\U0000266E',
-	"natural;":                  '\U0000266E',
-	"naturals;":                 '\U00002115',
-	"nbsp;":                     '\U000000A0',
-	"ncap;":                     '\U00002A43',
-	"ncaron;":                   '\U00000148',
-	"ncedil;":                   '\U00000146',
-	"ncong;":                    '\U00002247',
-	"ncup;":                     '\U00002A42',
-	"ncy;":                      '\U0000043D',
-	"ndash;":                    '\U00002013',
-	"ne;":                       '\U00002260',
-	"neArr;":                    '\U000021D7',
-	"nearhk;":                   '\U00002924',
-	"nearr;":                    '\U00002197',
-	"nearrow;":                  '\U00002197',
-	"nequiv;":                   '\U00002262',
-	"nesear;":                   '\U00002928',
-	"nexist;":                   '\U00002204',
-	"nexists;":                  '\U00002204',
-	"nfr;":                      '\U0001D52B',
-	"nge;":                      '\U00002271',
-	"ngeq;":                     '\U00002271',
-	"ngsim;":                    '\U00002275',
-	"ngt;":                      '\U0000226F',
-	"ngtr;":                     '\U0000226F',
-	"nhArr;":                    '\U000021CE',
-	"nharr;":                    '\U000021AE',
-	"nhpar;":                    '\U00002AF2',
-	"ni;":                       '\U0000220B',
-	"nis;":                      '\U000022FC',
-	"nisd;":                     '\U000022FA',
-	"niv;":                      '\U0000220B',
-	"njcy;":                     '\U0000045A',
-	"nlArr;":                    '\U000021CD',
-	"nlarr;":                    '\U0000219A',
-	"nldr;":                     '\U00002025',
-	"nle;":                      '\U00002270',
-	"nleftarrow;":               '\U0000219A',
-	"nleftrightarrow;":          '\U000021AE',
-	"nleq;":                     '\U00002270',
-	"nless;":                    '\U0000226E',
-	"nlsim;":                    '\U00002274',
-	"nlt;":                      '\U0000226E',
-	"nltri;":                    '\U000022EA',
-	"nltrie;":                   '\U000022EC',
-	"nmid;":                     '\U00002224',
-	"nopf;":                     '\U0001D55F',
-	"not;":                      '\U000000AC',
-	"notin;":                    '\U00002209',
-	"notinva;":                  '\U00002209',
-	"notinvb;":                  '\U000022F7',
-	"notinvc;":                  '\U000022F6',
-	"notni;":                    '\U0000220C',
-	"notniva;":                  '\U0000220C',
-	"notnivb;":                  '\U000022FE',
-	"notnivc;":                  '\U000022FD',
-	"npar;":                     '\U00002226',
-	"nparallel;":                '\U00002226',
-	"npolint;":                  '\U00002A14',
-	"npr;":                      '\U00002280',
-	"nprcue;":                   '\U000022E0',
-	"nprec;":                    '\U00002280',
-	"nrArr;":                    '\U000021CF',
-	"nrarr;":                    '\U0000219B',
-	"nrightarrow;":              '\U0000219B',
-	"nrtri;":                    '\U000022EB',
-	"nrtrie;":                   '\U000022ED',
-	"nsc;":                      '\U00002281',
-	"nsccue;":                   '\U000022E1',
-	"nscr;":                     '\U0001D4C3',
-	"nshortmid;":                '\U00002224',
-	"nshortparallel;":           '\U00002226',
-	"nsim;":                     '\U00002241',
-	"nsime;":                    '\U00002244',
-	"nsimeq;":                   '\U00002244',
-	"nsmid;":                    '\U00002224',
-	"nspar;":                    '\U00002226',
-	"nsqsube;":                  '\U000022E2',
-	"nsqsupe;":                  '\U000022E3',
-	"nsub;":                     '\U00002284',
-	"nsube;":                    '\U00002288',
-	"nsubseteq;":                '\U00002288',
-	"nsucc;":                    '\U00002281',
-	"nsup;":                     '\U00002285',
-	"nsupe;":                    '\U00002289',
-	"nsupseteq;":                '\U00002289',
-	"ntgl;":                     '\U00002279',
-	"ntilde;":                   '\U000000F1',
-	"ntlg;":                     '\U00002278',
-	"ntriangleleft;":            '\U000022EA',
-	"ntrianglelefteq;":          '\U000022EC',
-	"ntriangleright;":           '\U000022EB',
-	"ntrianglerighteq;":         '\U000022ED',
-	"nu;":                       '\U000003BD',
-	"num;":                      '\U00000023',
-	"numero;":                   '\U00002116',
-	"numsp;":                    '\U00002007',
-	"nvDash;":                   '\U000022AD',
-	"nvHarr;":                   '\U00002904',
-	"nvdash;":                   '\U000022AC',
-	"nvinfin;":                  '\U000029DE',
-	"nvlArr;":                   '\U00002902',
-	"nvrArr;":                   '\U00002903',
-	"nwArr;":                    '\U000021D6',
-	"nwarhk;":                   '\U00002923',
-	"nwarr;":                    '\U00002196',
-	"nwarrow;":                  '\U00002196',
-	"nwnear;":                   '\U00002927',
-	"oS;":                       '\U000024C8',
-	"oacute;":                   '\U000000F3',
-	"oast;":                     '\U0000229B',
-	"ocir;":                     '\U0000229A',
-	"ocirc;":                    '\U000000F4',
-	"ocy;":                      '\U0000043E',
-	"odash;":                    '\U0000229D',
-	"odblac;":                   '\U00000151',
-	"odiv;":                     '\U00002A38',
-	"odot;":                     '\U00002299',
-	"odsold;":                   '\U000029BC',
-	"oelig;":                    '\U00000153',
-	"ofcir;":                    '\U000029BF',
-	"ofr;":                      '\U0001D52C',
-	"ogon;":                     '\U000002DB',
-	"ograve;":                   '\U000000F2',
-	"ogt;":                      '\U000029C1',
-	"ohbar;":                    '\U000029B5',
-	"ohm;":                      '\U000003A9',
-	"oint;":                     '\U0000222E',
-	"olarr;":                    '\U000021BA',
-	"olcir;":                    '\U000029BE',
-	"olcross;":                  '\U000029BB',
-	"oline;":                    '\U0000203E',
-	"olt;":                      '\U000029C0',
-	"omacr;":                    '\U0000014D',
-	"omega;":                    '\U000003C9',
-	"omicron;":                  '\U000003BF',
-	"omid;":                     '\U000029B6',
-	"ominus;":                   '\U00002296',
-	"oopf;":                     '\U0001D560',
-	"opar;":                     '\U000029B7',
-	"operp;":                    '\U000029B9',
-	"oplus;":                    '\U00002295',
-	"or;":                       '\U00002228',
-	"orarr;":                    '\U000021BB',
-	"ord;":                      '\U00002A5D',
-	"order;":                    '\U00002134',
-	"orderof;":                  '\U00002134',
-	"ordf;":                     '\U000000AA',
-	"ordm;":                     '\U000000BA',
-	"origof;":                   '\U000022B6',
-	"oror;":                     '\U00002A56',
-	"orslope;":                  '\U00002A57',
-	"orv;":                      '\U00002A5B',
-	"oscr;":                     '\U00002134',
-	"oslash;":                   '\U000000F8',
-	"osol;":                     '\U00002298',
-	"otilde;":                   '\U000000F5',
-	"otimes;":                   '\U00002297',
-	"otimesas;":                 '\U00002A36',
-	"ouml;":                     '\U000000F6',
-	"ovbar;":                    '\U0000233D',
-	"par;":                      '\U00002225',
-	"para;":                     '\U000000B6',
-	"parallel;":                 '\U00002225',
-	"parsim;":                   '\U00002AF3',
-	"parsl;":                    '\U00002AFD',
-	"part;":                     '\U00002202',
-	"pcy;":                      '\U0000043F',
-	"percnt;":                   '\U00000025',
-	"period;":                   '\U0000002E',
-	"permil;":                   '\U00002030',
-	"perp;":                     '\U000022A5',
-	"pertenk;":                  '\U00002031',
-	"pfr;":                      '\U0001D52D',
-	"phi;":                      '\U000003C6',
-	"phiv;":                     '\U000003D5',
-	"phmmat;":                   '\U00002133',
-	"phone;":                    '\U0000260E',
-	"pi;":                       '\U000003C0',
-	"pitchfork;":                '\U000022D4',
-	"piv;":                      '\U000003D6',
-	"planck;":                   '\U0000210F',
-	"planckh;":                  '\U0000210E',
-	"plankv;":                   '\U0000210F',
-	"plus;":                     '\U0000002B',
-	"plusacir;":                 '\U00002A23',
-	"plusb;":                    '\U0000229E',
-	"pluscir;":                  '\U00002A22',
-	"plusdo;":                   '\U00002214',
-	"plusdu;":                   '\U00002A25',
-	"pluse;":                    '\U00002A72',
-	"plusmn;":                   '\U000000B1',
-	"plussim;":                  '\U00002A26',
-	"plustwo;":                  '\U00002A27',
-	"pm;":                       '\U000000B1',
-	"pointint;":                 '\U00002A15',
-	"popf;":                     '\U0001D561',
-	"pound;":                    '\U000000A3',
-	"pr;":                       '\U0000227A',
-	"prE;":                      '\U00002AB3',
-	"prap;":                     '\U00002AB7',
-	"prcue;":                    '\U0000227C',
-	"pre;":                      '\U00002AAF',
-	"prec;":                     '\U0000227A',
-	"precapprox;":               '\U00002AB7',
-	"preccurlyeq;":              '\U0000227C',
-	"preceq;":                   '\U00002AAF',
-	"precnapprox;":              '\U00002AB9',
-	"precneqq;":                 '\U00002AB5',
-	"precnsim;":                 '\U000022E8',
-	"precsim;":                  '\U0000227E',
-	"prime;":                    '\U00002032',
-	"primes;":                   '\U00002119',
-	"prnE;":                     '\U00002AB5',
-	"prnap;":                    '\U00002AB9',
-	"prnsim;":                   '\U000022E8',
-	"prod;":                     '\U0000220F',
-	"profalar;":                 '\U0000232E',
-	"profline;":                 '\U00002312',
-	"profsurf;":                 '\U00002313',
-	"prop;":                     '\U0000221D',
-	"propto;":                   '\U0000221D',
-	"prsim;":                    '\U0000227E',
-	"prurel;":                   '\U000022B0',
-	"pscr;":                     '\U0001D4C5',
-	"psi;":                      '\U000003C8',
-	"puncsp;":                   '\U00002008',
-	"qfr;":                      '\U0001D52E',
-	"qint;":                     '\U00002A0C',
-	"qopf;":                     '\U0001D562',
-	"qprime;":                   '\U00002057',
-	"qscr;":                     '\U0001D4C6',
-	"quaternions;":              '\U0000210D',
-	"quatint;":                  '\U00002A16',
-	"quest;":                    '\U0000003F',
-	"questeq;":                  '\U0000225F',
-	"quot;":                     '\U00000022',
-	"rAarr;":                    '\U000021DB',
-	"rArr;":                     '\U000021D2',
-	"rAtail;":                   '\U0000291C',
-	"rBarr;":                    '\U0000290F',
-	"rHar;":                     '\U00002964',
-	"racute;":                   '\U00000155',
-	"radic;":                    '\U0000221A',
-	"raemptyv;":                 '\U000029B3',
-	"rang;":                     '\U000027E9',
-	"rangd;":                    '\U00002992',
-	"range;":                    '\U000029A5',
-	"rangle;":                   '\U000027E9',
-	"raquo;":                    '\U000000BB',
-	"rarr;":                     '\U00002192',
-	"rarrap;":                   '\U00002975',
-	"rarrb;":                    '\U000021E5',
-	"rarrbfs;":                  '\U00002920',
-	"rarrc;":                    '\U00002933',
-	"rarrfs;":                   '\U0000291E',
-	"rarrhk;":                   '\U000021AA',
-	"rarrlp;":                   '\U000021AC',
-	"rarrpl;":                   '\U00002945',
-	"rarrsim;":                  '\U00002974',
-	"rarrtl;":                   '\U000021A3',
-	"rarrw;":                    '\U0000219D',
-	"ratail;":                   '\U0000291A',
-	"ratio;":                    '\U00002236',
-	"rationals;":                '\U0000211A',
-	"rbarr;":                    '\U0000290D',
-	"rbbrk;":                    '\U00002773',
-	"rbrace;":                   '\U0000007D',
-	"rbrack;":                   '\U0000005D',
-	"rbrke;":                    '\U0000298C',
-	"rbrksld;":                  '\U0000298E',
-	"rbrkslu;":                  '\U00002990',
-	"rcaron;":                   '\U00000159',
-	"rcedil;":                   '\U00000157',
-	"rceil;":                    '\U00002309',
-	"rcub;":                     '\U0000007D',
-	"rcy;":                      '\U00000440',
-	"rdca;":                     '\U00002937',
-	"rdldhar;":                  '\U00002969',
-	"rdquo;":                    '\U0000201D',
-	"rdquor;":                   '\U0000201D',
-	"rdsh;":                     '\U000021B3',
-	"real;":                     '\U0000211C',
-	"realine;":                  '\U0000211B',
-	"realpart;":                 '\U0000211C',
-	"reals;":                    '\U0000211D',
-	"rect;":                     '\U000025AD',
-	"reg;":                      '\U000000AE',
-	"rfisht;":                   '\U0000297D',
-	"rfloor;":                   '\U0000230B',
-	"rfr;":                      '\U0001D52F',
-	"rhard;":                    '\U000021C1',
-	"rharu;":                    '\U000021C0',
-	"rharul;":                   '\U0000296C',
-	"rho;":                      '\U000003C1',
-	"rhov;":                     '\U000003F1',
-	"rightarrow;":               '\U00002192',
-	"rightarrowtail;":           '\U000021A3',
-	"rightharpoondown;":         '\U000021C1',
-	"rightharpoonup;":           '\U000021C0',
-	"rightleftarrows;":          '\U000021C4',
-	"rightleftharpoons;":        '\U000021CC',
-	"rightrightarrows;":         '\U000021C9',
-	"rightsquigarrow;":          '\U0000219D',
-	"rightthreetimes;":          '\U000022CC',
-	"ring;":                     '\U000002DA',
-	"risingdotseq;":             '\U00002253',
-	"rlarr;":                    '\U000021C4',
-	"rlhar;":                    '\U000021CC',
-	"rlm;":                      '\U0000200F',
-	"rmoust;":                   '\U000023B1',
-	"rmoustache;":               '\U000023B1',
-	"rnmid;":                    '\U00002AEE',
-	"roang;":                    '\U000027ED',
-	"roarr;":                    '\U000021FE',
-	"robrk;":                    '\U000027E7',
-	"ropar;":                    '\U00002986',
-	"ropf;":                     '\U0001D563',
-	"roplus;":                   '\U00002A2E',
-	"rotimes;":                  '\U00002A35',
-	"rpar;":                     '\U00000029',
-	"rpargt;":                   '\U00002994',
-	"rppolint;":                 '\U00002A12',
-	"rrarr;":                    '\U000021C9',
-	"rsaquo;":                   '\U0000203A',
-	"rscr;":                     '\U0001D4C7',
-	"rsh;":                      '\U000021B1',
-	"rsqb;":                     '\U0000005D',
-	"rsquo;":                    '\U00002019',
-	"rsquor;":                   '\U00002019',
-	"rthree;":                   '\U000022CC',
-	"rtimes;":                   '\U000022CA',
-	"rtri;":                     '\U000025B9',
-	"rtrie;":                    '\U000022B5',
-	"rtrif;":                    '\U000025B8',
-	"rtriltri;":                 '\U000029CE',
-	"ruluhar;":                  '\U00002968',
-	"rx;":                       '\U0000211E',
-	"sacute;":                   '\U0000015B',
-	"sbquo;":                    '\U0000201A',
-	"sc;":                       '\U0000227B',
-	"scE;":                      '\U00002AB4',
-	"scap;":                     '\U00002AB8',
-	"scaron;":                   '\U00000161',
-	"sccue;":                    '\U0000227D',
-	"sce;":                      '\U00002AB0',
-	"scedil;":                   '\U0000015F',
-	"scirc;":                    '\U0000015D',
-	"scnE;":                     '\U00002AB6',
-	"scnap;":                    '\U00002ABA',
-	"scnsim;":                   '\U000022E9',
-	"scpolint;":                 '\U00002A13',
-	"scsim;":                    '\U0000227F',
-	"scy;":                      '\U00000441',
-	"sdot;":                     '\U000022C5',
-	"sdotb;":                    '\U000022A1',
-	"sdote;":                    '\U00002A66',
-	"seArr;":                    '\U000021D8',
-	"searhk;":                   '\U00002925',
-	"searr;":                    '\U00002198',
-	"searrow;":                  '\U00002198',
-	"sect;":                     '\U000000A7',
-	"semi;":                     '\U0000003B',
-	"seswar;":                   '\U00002929',
-	"setminus;":                 '\U00002216',
-	"setmn;":                    '\U00002216',
-	"sext;":                     '\U00002736',
-	"sfr;":                      '\U0001D530',
-	"sfrown;":                   '\U00002322',
-	"sharp;":                    '\U0000266F',
-	"shchcy;":                   '\U00000449',
-	"shcy;":                     '\U00000448',
-	"shortmid;":                 '\U00002223',
-	"shortparallel;":            '\U00002225',
-	"shy;":                      '\U000000AD',
-	"sigma;":                    '\U000003C3',
-	"sigmaf;":                   '\U000003C2',
-	"sigmav;":                   '\U000003C2',
-	"sim;":                      '\U0000223C',
-	"simdot;":                   '\U00002A6A',
-	"sime;":                     '\U00002243',
-	"simeq;":                    '\U00002243',
-	"simg;":                     '\U00002A9E',
-	"simgE;":                    '\U00002AA0',
-	"siml;":                     '\U00002A9D',
-	"simlE;":                    '\U00002A9F',
-	"simne;":                    '\U00002246',
-	"simplus;":                  '\U00002A24',
-	"simrarr;":                  '\U00002972',
-	"slarr;":                    '\U00002190',
-	"smallsetminus;":            '\U00002216',
-	"smashp;":                   '\U00002A33',
-	"smeparsl;":                 '\U000029E4',
-	"smid;":                     '\U00002223',
-	"smile;":                    '\U00002323',
-	"smt;":                      '\U00002AAA',
-	"smte;":                     '\U00002AAC',
-	"softcy;":                   '\U0000044C',
-	"sol;":                      '\U0000002F',
-	"solb;":                     '\U000029C4',
-	"solbar;":                   '\U0000233F',
-	"sopf;":                     '\U0001D564',
-	"spades;":                   '\U00002660',
-	"spadesuit;":                '\U00002660',
-	"spar;":                     '\U00002225',
-	"sqcap;":                    '\U00002293',
-	"sqcup;":                    '\U00002294',
-	"sqsub;":                    '\U0000228F',
-	"sqsube;":                   '\U00002291',
-	"sqsubset;":                 '\U0000228F',
-	"sqsubseteq;":               '\U00002291',
-	"sqsup;":                    '\U00002290',
-	"sqsupe;":                   '\U00002292',
-	"sqsupset;":                 '\U00002290',
-	"sqsupseteq;":               '\U00002292',
-	"squ;":                      '\U000025A1',
-	"square;":                   '\U000025A1',
-	"squarf;":                   '\U000025AA',
-	"squf;":                     '\U000025AA',
-	"srarr;":                    '\U00002192',
-	"sscr;":                     '\U0001D4C8',
-	"ssetmn;":                   '\U00002216',
-	"ssmile;":                   '\U00002323',
-	"sstarf;":                   '\U000022C6',
-	"star;":                     '\U00002606',
-	"starf;":                    '\U00002605',
-	"straightepsilon;":          '\U000003F5',
-	"straightphi;":              '\U000003D5',
-	"strns;":                    '\U000000AF',
-	"sub;":                      '\U00002282',
-	"subE;":                     '\U00002AC5',
-	"subdot;":                   '\U00002ABD',
-	"sube;":                     '\U00002286',
-	"subedot;":                  '\U00002AC3',
-	"submult;":                  '\U00002AC1',
-	"subnE;":                    '\U00002ACB',
-	"subne;":                    '\U0000228A',
-	"subplus;":                  '\U00002ABF',
-	"subrarr;":                  '\U00002979',
-	"subset;":                   '\U00002282',
-	"subseteq;":                 '\U00002286',
-	"subseteqq;":                '\U00002AC5',
-	"subsetneq;":                '\U0000228A',
-	"subsetneqq;":               '\U00002ACB',
-	"subsim;":                   '\U00002AC7',
-	"subsub;":                   '\U00002AD5',
-	"subsup;":                   '\U00002AD3',
-	"succ;":                     '\U0000227B',
-	"succapprox;":               '\U00002AB8',
-	"succcurlyeq;":              '\U0000227D',
-	"succeq;":                   '\U00002AB0',
-	"succnapprox;":              '\U00002ABA',
-	"succneqq;":                 '\U00002AB6',
-	"succnsim;":                 '\U000022E9',
-	"succsim;":                  '\U0000227F',
-	"sum;":                      '\U00002211',
-	"sung;":                     '\U0000266A',
-	"sup;":                      '\U00002283',
-	"sup1;":                     '\U000000B9',
-	"sup2;":                     '\U000000B2',
-	"sup3;":                     '\U000000B3',
-	"supE;":                     '\U00002AC6',
-	"supdot;":                   '\U00002ABE',
-	"supdsub;":                  '\U00002AD8',
-	"supe;":                     '\U00002287',
-	"supedot;":                  '\U00002AC4',
-	"suphsol;":                  '\U000027C9',
-	"suphsub;":                  '\U00002AD7',
-	"suplarr;":                  '\U0000297B',
-	"supmult;":                  '\U00002AC2',
-	"supnE;":                    '\U00002ACC',
-	"supne;":                    '\U0000228B',
-	"supplus;":                  '\U00002AC0',
-	"supset;":                   '\U00002283',
-	"supseteq;":                 '\U00002287',
-	"supseteqq;":                '\U00002AC6',
-	"supsetneq;":                '\U0000228B',
-	"supsetneqq;":               '\U00002ACC',
-	"supsim;":                   '\U00002AC8',
-	"supsub;":                   '\U00002AD4',
-	"supsup;":                   '\U00002AD6',
-	"swArr;":                    '\U000021D9',
-	"swarhk;":                   '\U00002926',
-	"swarr;":                    '\U00002199',
-	"swarrow;":                  '\U00002199',
-	"swnwar;":                   '\U0000292A',
-	"szlig;":                    '\U000000DF',
-	"target;":                   '\U00002316',
-	"tau;":                      '\U000003C4',
-	"tbrk;":                     '\U000023B4',
-	"tcaron;":                   '\U00000165',
-	"tcedil;":                   '\U00000163',
-	"tcy;":                      '\U00000442',
-	"tdot;":                     '\U000020DB',
-	"telrec;":                   '\U00002315',
-	"tfr;":                      '\U0001D531',
-	"there4;":                   '\U00002234',
-	"therefore;":                '\U00002234',
-	"theta;":                    '\U000003B8',
-	"thetasym;":                 '\U000003D1',
-	"thetav;":                   '\U000003D1',
-	"thickapprox;":              '\U00002248',
-	"thicksim;":                 '\U0000223C',
-	"thinsp;":                   '\U00002009',
-	"thkap;":                    '\U00002248',
-	"thksim;":                   '\U0000223C',
-	"thorn;":                    '\U000000FE',
-	"tilde;":                    '\U000002DC',
-	"times;":                    '\U000000D7',
-	"timesb;":                   '\U000022A0',
-	"timesbar;":                 '\U00002A31',
-	"timesd;":                   '\U00002A30',
-	"tint;":                     '\U0000222D',
-	"toea;":                     '\U00002928',
-	"top;":                      '\U000022A4',
-	"topbot;":                   '\U00002336',
-	"topcir;":                   '\U00002AF1',
-	"topf;":                     '\U0001D565',
-	"topfork;":                  '\U00002ADA',
-	"tosa;":                     '\U00002929',
-	"tprime;":                   '\U00002034',
-	"trade;":                    '\U00002122',
-	"triangle;":                 '\U000025B5',
-	"triangledown;":             '\U000025BF',
-	"triangleleft;":             '\U000025C3',
-	"trianglelefteq;":           '\U000022B4',
-	"triangleq;":                '\U0000225C',
-	"triangleright;":            '\U000025B9',
-	"trianglerighteq;":          '\U000022B5',
-	"tridot;":                   '\U000025EC',
-	"trie;":                     '\U0000225C',
-	"triminus;":                 '\U00002A3A',
-	"triplus;":                  '\U00002A39',
-	"trisb;":                    '\U000029CD',
-	"tritime;":                  '\U00002A3B',
-	"trpezium;":                 '\U000023E2',
-	"tscr;":                     '\U0001D4C9',
-	"tscy;":                     '\U00000446',
-	"tshcy;":                    '\U0000045B',
-	"tstrok;":                   '\U00000167',
-	"twixt;":                    '\U0000226C',
-	"twoheadleftarrow;":         '\U0000219E',
-	"twoheadrightarrow;":        '\U000021A0',
-	"uArr;":                     '\U000021D1',
-	"uHar;":                     '\U00002963',
-	"uacute;":                   '\U000000FA',
-	"uarr;":                     '\U00002191',
-	"ubrcy;":                    '\U0000045E',
-	"ubreve;":                   '\U0000016D',
-	"ucirc;":                    '\U000000FB',
-	"ucy;":                      '\U00000443',
-	"udarr;":                    '\U000021C5',
-	"udblac;":                   '\U00000171',
-	"udhar;":                    '\U0000296E',
-	"ufisht;":                   '\U0000297E',
-	"ufr;":                      '\U0001D532',
-	"ugrave;":                   '\U000000F9',
-	"uharl;":                    '\U000021BF',
-	"uharr;":                    '\U000021BE',
-	"uhblk;":                    '\U00002580',
-	"ulcorn;":                   '\U0000231C',
-	"ulcorner;":                 '\U0000231C',
-	"ulcrop;":                   '\U0000230F',
-	"ultri;":                    '\U000025F8',
-	"umacr;":                    '\U0000016B',
-	"uml;":                      '\U000000A8',
-	"uogon;":                    '\U00000173',
-	"uopf;":                     '\U0001D566',
-	"uparrow;":                  '\U00002191',
-	"updownarrow;":              '\U00002195',
-	"upharpoonleft;":            '\U000021BF',
-	"upharpoonright;":           '\U000021BE',
-	"uplus;":                    '\U0000228E',
-	"upsi;":                     '\U000003C5',
-	"upsih;":                    '\U000003D2',
-	"upsilon;":                  '\U000003C5',
-	"upuparrows;":               '\U000021C8',
-	"urcorn;":                   '\U0000231D',
-	"urcorner;":                 '\U0000231D',
-	"urcrop;":                   '\U0000230E',
-	"uring;":                    '\U0000016F',
-	"urtri;":                    '\U000025F9',
-	"uscr;":                     '\U0001D4CA',
-	"utdot;":                    '\U000022F0',
-	"utilde;":                   '\U00000169',
-	"utri;":                     '\U000025B5',
-	"utrif;":                    '\U000025B4',
-	"uuarr;":                    '\U000021C8',
-	"uuml;":                     '\U000000FC',
-	"uwangle;":                  '\U000029A7',
-	"vArr;":                     '\U000021D5',
-	"vBar;":                     '\U00002AE8',
-	"vBarv;":                    '\U00002AE9',
-	"vDash;":                    '\U000022A8',
-	"vangrt;":                   '\U0000299C',
-	"varepsilon;":               '\U000003F5',
-	"varkappa;":                 '\U000003F0',
-	"varnothing;":               '\U00002205',
-	"varphi;":                   '\U000003D5',
-	"varpi;":                    '\U000003D6',
-	"varpropto;":                '\U0000221D',
-	"varr;":                     '\U00002195',
-	"varrho;":                   '\U000003F1',
-	"varsigma;":                 '\U000003C2',
-	"vartheta;":                 '\U000003D1',
-	"vartriangleleft;":          '\U000022B2',
-	"vartriangleright;":         '\U000022B3',
-	"vcy;":                      '\U00000432',
-	"vdash;":                    '\U000022A2',
-	"vee;":                      '\U00002228',
-	"veebar;":                   '\U000022BB',
-	"veeeq;":                    '\U0000225A',
-	"vellip;":                   '\U000022EE',
-	"verbar;":                   '\U0000007C',
-	"vert;":                     '\U0000007C',
-	"vfr;":                      '\U0001D533',
-	"vltri;":                    '\U000022B2',
-	"vopf;":                     '\U0001D567',
-	"vprop;":                    '\U0000221D',
-	"vrtri;":                    '\U000022B3',
-	"vscr;":                     '\U0001D4CB',
-	"vzigzag;":                  '\U0000299A',
-	"wcirc;":                    '\U00000175',
-	"wedbar;":                   '\U00002A5F',
-	"wedge;":                    '\U00002227',
-	"wedgeq;":                   '\U00002259',
-	"weierp;":                   '\U00002118',
-	"wfr;":                      '\U0001D534',
-	"wopf;":                     '\U0001D568',
-	"wp;":                       '\U00002118',
-	"wr;":                       '\U00002240',
-	"wreath;":                   '\U00002240',
-	"wscr;":                     '\U0001D4CC',
-	"xcap;":                     '\U000022C2',
-	"xcirc;":                    '\U000025EF',
-	"xcup;":                     '\U000022C3',
-	"xdtri;":                    '\U000025BD',
-	"xfr;":                      '\U0001D535',
-	"xhArr;":                    '\U000027FA',
-	"xharr;":                    '\U000027F7',
-	"xi;":                       '\U000003BE',
-	"xlArr;":                    '\U000027F8',
-	"xlarr;":                    '\U000027F5',
-	"xmap;":                     '\U000027FC',
-	"xnis;":                     '\U000022FB',
-	"xodot;":                    '\U00002A00',
-	"xopf;":                     '\U0001D569',
-	"xoplus;":                   '\U00002A01',
-	"xotime;":                   '\U00002A02',
-	"xrArr;":                    '\U000027F9',
-	"xrarr;":                    '\U000027F6',
-	"xscr;":                     '\U0001D4CD',
-	"xsqcup;":                   '\U00002A06',
-	"xuplus;":                   '\U00002A04',
-	"xutri;":                    '\U000025B3',
-	"xvee;":                     '\U000022C1',
-	"xwedge;":                   '\U000022C0',
-	"yacute;":                   '\U000000FD',
-	"yacy;":                     '\U0000044F',
-	"ycirc;":                    '\U00000177',
-	"ycy;":                      '\U0000044B',
-	"yen;":                      '\U000000A5',
-	"yfr;":                      '\U0001D536',
-	"yicy;":                     '\U00000457',
-	"yopf;":                     '\U0001D56A',
-	"yscr;":                     '\U0001D4CE',
-	"yucy;":                     '\U0000044E',
-	"yuml;":                     '\U000000FF',
-	"zacute;":                   '\U0000017A',
-	"zcaron;":                   '\U0000017E',
-	"zcy;":                      '\U00000437',
-	"zdot;":                     '\U0000017C',
-	"zeetrf;":                   '\U00002128',
-	"zeta;":                     '\U000003B6',
-	"zfr;":                      '\U0001D537',
-	"zhcy;":                     '\U00000436',
-	"zigrarr;":                  '\U000021DD',
-	"zopf;":                     '\U0001D56B',
-	"zscr;":                     '\U0001D4CF',
-	"zwj;":                      '\U0000200D',
-	"zwnj;":                     '\U0000200C',
-	"AElig":                     '\U000000C6',
-	"AMP":                       '\U00000026',
-	"Aacute":                    '\U000000C1',
-	"Acirc":                     '\U000000C2',
-	"Agrave":                    '\U000000C0',
-	"Aring":                     '\U000000C5',
-	"Atilde":                    '\U000000C3',
-	"Auml":                      '\U000000C4',
-	"COPY":                      '\U000000A9',
-	"Ccedil":                    '\U000000C7',
-	"ETH":                       '\U000000D0',
-	"Eacute":                    '\U000000C9',
-	"Ecirc":                     '\U000000CA',
-	"Egrave":                    '\U000000C8',
-	"Euml":                      '\U000000CB',
-	"GT":                        '\U0000003E',
-	"Iacute":                    '\U000000CD',
-	"Icirc":                     '\U000000CE',
-	"Igrave":                    '\U000000CC',
-	"Iuml":                      '\U000000CF',
-	"LT":                        '\U0000003C',
-	"Ntilde":                    '\U000000D1',
-	"Oacute":                    '\U000000D3',
-	"Ocirc":                     '\U000000D4',
-	"Ograve":                    '\U000000D2',
-	"Oslash":                    '\U000000D8',
-	"Otilde":                    '\U000000D5',
-	"Ouml":                      '\U000000D6',
-	"QUOT":                      '\U00000022',
-	"REG":                       '\U000000AE',
-	"THORN":                     '\U000000DE',
-	"Uacute":                    '\U000000DA',
-	"Ucirc":                     '\U000000DB',
-	"Ugrave":                    '\U000000D9',
-	"Uuml":                      '\U000000DC',
-	"Yacute":                    '\U000000DD',
-	"aacute":                    '\U000000E1',
-	"acirc":                     '\U000000E2',
-	"acute":                     '\U000000B4',
-	"aelig":                     '\U000000E6',
-	"agrave":                    '\U000000E0',
-	"amp":                       '\U00000026',
-	"aring":                     '\U000000E5',
-	"atilde":                    '\U000000E3',
-	"auml":                      '\U000000E4',
-	"brvbar":                    '\U000000A6',
-	"ccedil":                    '\U000000E7',
-	"cedil":                     '\U000000B8',
-	"cent":                      '\U000000A2',
-	"copy":                      '\U000000A9',
-	"curren":                    '\U000000A4',
-	"deg":                       '\U000000B0',
-	"divide":                    '\U000000F7',
-	"eacute":                    '\U000000E9',
-	"ecirc":                     '\U000000EA',
-	"egrave":                    '\U000000E8',
-	"eth":                       '\U000000F0',
-	"euml":                      '\U000000EB',
-	"frac12":                    '\U000000BD',
-	"frac14":                    '\U000000BC',
-	"frac34":                    '\U000000BE',
-	"gt":                        '\U0000003E',
-	"iacute":                    '\U000000ED',
-	"icirc":                     '\U000000EE',
-	"iexcl":                     '\U000000A1',
-	"igrave":                    '\U000000EC',
-	"iquest":                    '\U000000BF',
-	"iuml":                      '\U000000EF',
-	"laquo":                     '\U000000AB',
-	"lt":                        '\U0000003C',
-	"macr":                      '\U000000AF',
-	"micro":                     '\U000000B5',
-	"middot":                    '\U000000B7',
-	"nbsp":                      '\U000000A0',
-	"not":                       '\U000000AC',
-	"ntilde":                    '\U000000F1',
-	"oacute":                    '\U000000F3',
-	"ocirc":                     '\U000000F4',
-	"ograve":                    '\U000000F2',
-	"ordf":                      '\U000000AA',
-	"ordm":                      '\U000000BA',
-	"oslash":                    '\U000000F8',
-	"otilde":                    '\U000000F5',
-	"ouml":                      '\U000000F6',
-	"para":                      '\U000000B6',
-	"plusmn":                    '\U000000B1',
-	"pound":                     '\U000000A3',
-	"quot":                      '\U00000022',
-	"raquo":                     '\U000000BB',
-	"reg":                       '\U000000AE',
-	"sect":                      '\U000000A7',
-	"shy":                       '\U000000AD',
-	"sup1":                      '\U000000B9',
-	"sup2":                      '\U000000B2',
-	"sup3":                      '\U000000B3',
-	"szlig":                     '\U000000DF',
-	"thorn":                     '\U000000FE',
-	"times":                     '\U000000D7',
-	"uacute":                    '\U000000FA',
-	"ucirc":                     '\U000000FB',
-	"ugrave":                    '\U000000F9',
-	"uml":                       '\U000000A8',
-	"uuml":                      '\U000000FC',
-	"yacute":                    '\U000000FD',
-	"yen":                       '\U000000A5',
-	"yuml":                      '\U000000FF',
-}
-
-// HTML entities that are two unicode codepoints.
-var entity2 = map[string][2]rune{
-	// TODO(nigeltao): Handle replacements that are wider than their names.
-	// "nLt;":                     {'\u226A', '\u20D2'},
-	// "nGt;":                     {'\u226B', '\u20D2'},
-	"NotEqualTilde;":           {'\u2242', '\u0338'},
-	"NotGreaterFullEqual;":     {'\u2267', '\u0338'},
-	"NotGreaterGreater;":       {'\u226B', '\u0338'},
-	"NotGreaterSlantEqual;":    {'\u2A7E', '\u0338'},
-	"NotHumpDownHump;":         {'\u224E', '\u0338'},
-	"NotHumpEqual;":            {'\u224F', '\u0338'},
-	"NotLeftTriangleBar;":      {'\u29CF', '\u0338'},
-	"NotLessLess;":             {'\u226A', '\u0338'},
-	"NotLessSlantEqual;":       {'\u2A7D', '\u0338'},
-	"NotNestedGreaterGreater;": {'\u2AA2', '\u0338'},
-	"NotNestedLessLess;":       {'\u2AA1', '\u0338'},
-	"NotPrecedesEqual;":        {'\u2AAF', '\u0338'},
-	"NotRightTriangleBar;":     {'\u29D0', '\u0338'},
-	"NotSquareSubset;":         {'\u228F', '\u0338'},
-	"NotSquareSuperset;":       {'\u2290', '\u0338'},
-	"NotSubset;":               {'\u2282', '\u20D2'},
-	"NotSucceedsEqual;":        {'\u2AB0', '\u0338'},
-	"NotSucceedsTilde;":        {'\u227F', '\u0338'},
-	"NotSuperset;":             {'\u2283', '\u20D2'},
-	"ThickSpace;":              {'\u205F', '\u200A'},
-	"acE;":                     {'\u223E', '\u0333'},
-	"bne;":                     {'\u003D', '\u20E5'},
-	"bnequiv;":                 {'\u2261', '\u20E5'},
-	"caps;":                    {'\u2229', '\uFE00'},
-	"cups;":                    {'\u222A', '\uFE00'},
-	"fjlig;":                   {'\u0066', '\u006A'},
-	"gesl;":                    {'\u22DB', '\uFE00'},
-	"gvertneqq;":               {'\u2269', '\uFE00'},
-	"gvnE;":                    {'\u2269', '\uFE00'},
-	"lates;":                   {'\u2AAD', '\uFE00'},
-	"lesg;":                    {'\u22DA', '\uFE00'},
-	"lvertneqq;":               {'\u2268', '\uFE00'},
-	"lvnE;":                    {'\u2268', '\uFE00'},
-	"nGg;":                     {'\u22D9', '\u0338'},
-	"nGtv;":                    {'\u226B', '\u0338'},
-	"nLl;":                     {'\u22D8', '\u0338'},
-	"nLtv;":                    {'\u226A', '\u0338'},
-	"nang;":                    {'\u2220', '\u20D2'},
-	"napE;":                    {'\u2A70', '\u0338'},
-	"napid;":                   {'\u224B', '\u0338'},
-	"nbump;":                   {'\u224E', '\u0338'},
-	"nbumpe;":                  {'\u224F', '\u0338'},
-	"ncongdot;":                {'\u2A6D', '\u0338'},
-	"nedot;":                   {'\u2250', '\u0338'},
-	"nesim;":                   {'\u2242', '\u0338'},
-	"ngE;":                     {'\u2267', '\u0338'},
-	"ngeqq;":                   {'\u2267', '\u0338'},
-	"ngeqslant;":               {'\u2A7E', '\u0338'},
-	"nges;":                    {'\u2A7E', '\u0338'},
-	"nlE;":                     {'\u2266', '\u0338'},
-	"nleqq;":                   {'\u2266', '\u0338'},
-	"nleqslant;":               {'\u2A7D', '\u0338'},
-	"nles;":                    {'\u2A7D', '\u0338'},
-	"notinE;":                  {'\u22F9', '\u0338'},
-	"notindot;":                {'\u22F5', '\u0338'},
-	"nparsl;":                  {'\u2AFD', '\u20E5'},
-	"npart;":                   {'\u2202', '\u0338'},
-	"npre;":                    {'\u2AAF', '\u0338'},
-	"npreceq;":                 {'\u2AAF', '\u0338'},
-	"nrarrc;":                  {'\u2933', '\u0338'},
-	"nrarrw;":                  {'\u219D', '\u0338'},
-	"nsce;":                    {'\u2AB0', '\u0338'},
-	"nsubE;":                   {'\u2AC5', '\u0338'},
-	"nsubset;":                 {'\u2282', '\u20D2'},
-	"nsubseteqq;":              {'\u2AC5', '\u0338'},
-	"nsucceq;":                 {'\u2AB0', '\u0338'},
-	"nsupE;":                   {'\u2AC6', '\u0338'},
-	"nsupset;":                 {'\u2283', '\u20D2'},
-	"nsupseteqq;":              {'\u2AC6', '\u0338'},
-	"nvap;":                    {'\u224D', '\u20D2'},
-	"nvge;":                    {'\u2265', '\u20D2'},
-	"nvgt;":                    {'\u003E', '\u20D2'},
-	"nvle;":                    {'\u2264', '\u20D2'},
-	"nvlt;":                    {'\u003C', '\u20D2'},
-	"nvltrie;":                 {'\u22B4', '\u20D2'},
-	"nvrtrie;":                 {'\u22B5', '\u20D2'},
-	"nvsim;":                   {'\u223C', '\u20D2'},
-	"race;":                    {'\u223D', '\u0331'},
-	"smtes;":                   {'\u2AAC', '\uFE00'},
-	"sqcaps;":                  {'\u2293', '\uFE00'},
-	"sqcups;":                  {'\u2294', '\uFE00'},
-	"varsubsetneq;":            {'\u228A', '\uFE00'},
-	"varsubsetneqq;":           {'\u2ACB', '\uFE00'},
-	"varsupsetneq;":            {'\u228B', '\uFE00'},
-	"varsupsetneqq;":           {'\u2ACC', '\uFE00'},
-	"vnsub;":                   {'\u2282', '\u20D2'},
-	"vnsup;":                   {'\u2283', '\u20D2'},
-	"vsubnE;":                  {'\u2ACB', '\uFE00'},
-	"vsubne;":                  {'\u228A', '\uFE00'},
-	"vsupnE;":                  {'\u2ACC', '\uFE00'},
-	"vsupne;":                  {'\u228B', '\uFE00'},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/entity_test.go gcc-4.8.1/libgo/go/exp/html/entity_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/entity_test.go	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/entity_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"testing"
-	"unicode/utf8"
-)
-
-func TestEntityLength(t *testing.T) {
-	// We verify that the length of UTF-8 encoding of each value is <= 1 + len(key).
-	// The +1 comes from the leading "&". This property implies that the length of
-	// unescaped text is <= the length of escaped text.
-	for k, v := range entity {
-		if 1+len(k) < utf8.RuneLen(v) {
-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v))
-		}
-		if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' {
-			t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon)
-		}
-	}
-	for k, v := range entity2 {
-		if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) {
-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1]))
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/escape.go gcc-4.8.1/libgo/go/exp/html/escape.go
--- gcc-4.8.1.orig/libgo/go/exp/html/escape.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/escape.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,258 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"strings"
-	"unicode/utf8"
-)
-
-// These replacements permit compatibility with old numeric entities that
-// assumed Windows-1252 encoding.
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
-var replacementTable = [...]rune{
-	'\u20AC', // First entry is what 0x80 should be replaced with.
-	'\u0081',
-	'\u201A',
-	'\u0192',
-	'\u201E',
-	'\u2026',
-	'\u2020',
-	'\u2021',
-	'\u02C6',
-	'\u2030',
-	'\u0160',
-	'\u2039',
-	'\u0152',
-	'\u008D',
-	'\u017D',
-	'\u008F',
-	'\u0090',
-	'\u2018',
-	'\u2019',
-	'\u201C',
-	'\u201D',
-	'\u2022',
-	'\u2013',
-	'\u2014',
-	'\u02DC',
-	'\u2122',
-	'\u0161',
-	'\u203A',
-	'\u0153',
-	'\u009D',
-	'\u017E',
-	'\u0178', // Last entry is 0x9F.
-	// 0x00->'\uFFFD' is handled programmatically.
-	// 0x0D->'\u000D' is a no-op.
-}
-
-// unescapeEntity reads an entity like "&lt;" from b[src:] and writes the
-// corresponding "<" to b[dst:], returning the incremented dst and src cursors.
-// Precondition: b[src] == '&' && dst <= src.
-// attribute should be true if parsing an attribute value.
-func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) {
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
-
-	// i starts at 1 because we already know that s[0] == '&'.
-	i, s := 1, b[src:]
-
-	if len(s) <= 1 {
-		b[dst] = b[src]
-		return dst + 1, src + 1
-	}
-
-	if s[i] == '#' {
-		if len(s) <= 3 { // We need to have at least "&#.".
-			b[dst] = b[src]
-			return dst + 1, src + 1
-		}
-		i++
-		c := s[i]
-		hex := false
-		if c == 'x' || c == 'X' {
-			hex = true
-			i++
-		}
-
-		x := '\x00'
-		for i < len(s) {
-			c = s[i]
-			i++
-			if hex {
-				if '0' <= c && c <= '9' {
-					x = 16*x + rune(c) - '0'
-					continue
-				} else if 'a' <= c && c <= 'f' {
-					x = 16*x + rune(c) - 'a' + 10
-					continue
-				} else if 'A' <= c && c <= 'F' {
-					x = 16*x + rune(c) - 'A' + 10
-					continue
-				}
-			} else if '0' <= c && c <= '9' {
-				x = 10*x + rune(c) - '0'
-				continue
-			}
-			if c != ';' {
-				i--
-			}
-			break
-		}
-
-		if i <= 3 { // No characters matched.
-			b[dst] = b[src]
-			return dst + 1, src + 1
-		}
-
-		if 0x80 <= x && x <= 0x9F {
-			// Replace characters from Windows-1252 with UTF-8 equivalents.
-			x = replacementTable[x-0x80]
-		} else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF {
-			// Replace invalid characters with the replacement character.
-			x = '\uFFFD'
-		}
-
-		return dst + utf8.EncodeRune(b[dst:], x), src + i
-	}
-
-	// Consume the maximum number of characters possible, with the
-	// consumed characters matching one of the named references.
-
-	for i < len(s) {
-		c := s[i]
-		i++
-		// Lower-cased characters are more common in entities, so we check for them first.
-		if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {
-			continue
-		}
-		if c != ';' {
-			i--
-		}
-		break
-	}
-
-	entityName := string(s[1:i])
-	if entityName == "" {
-		// No-op.
-	} else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' {
-		// No-op.
-	} else if x := entity[entityName]; x != 0 {
-		return dst + utf8.EncodeRune(b[dst:], x), src + i
-	} else if x := entity2[entityName]; x[0] != 0 {
-		dst1 := dst + utf8.EncodeRune(b[dst:], x[0])
-		return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i
-	} else if !attribute {
-		maxLen := len(entityName) - 1
-		if maxLen > longestEntityWithoutSemicolon {
-			maxLen = longestEntityWithoutSemicolon
-		}
-		for j := maxLen; j > 1; j-- {
-			if x := entity[entityName[:j]]; x != 0 {
-				return dst + utf8.EncodeRune(b[dst:], x), src + j + 1
-			}
-		}
-	}
-
-	dst1, src1 = dst+i, src+i
-	copy(b[dst:dst1], b[src:src1])
-	return dst1, src1
-}
-
-// unescape unescapes b's entities in-place, so that "a&lt;b" becomes "a<b".
-// attribute should be true if parsing an attribute value.
-func unescape(b []byte, attribute bool) []byte {
-	for i, c := range b {
-		if c == '&' {
-			dst, src := unescapeEntity(b, i, i, attribute)
-			for src < len(b) {
-				c := b[src]
-				if c == '&' {
-					dst, src = unescapeEntity(b, dst, src, attribute)
-				} else {
-					b[dst] = c
-					dst, src = dst+1, src+1
-				}
-			}
-			return b[0:dst]
-		}
-	}
-	return b
-}
-
-// lower lower-cases the A-Z bytes in b in-place, so that "aBc" becomes "abc".
-func lower(b []byte) []byte {
-	for i, c := range b {
-		if 'A' <= c && c <= 'Z' {
-			b[i] = c + 'a' - 'A'
-		}
-	}
-	return b
-}
-
-const escapedChars = "&'<>\"\r"
-
-func escape(w writer, s string) error {
-	i := strings.IndexAny(s, escapedChars)
-	for i != -1 {
-		if _, err := w.WriteString(s[:i]); err != nil {
-			return err
-		}
-		var esc string
-		switch s[i] {
-		case '&':
-			esc = "&amp;"
-		case '\'':
-			// "&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5.
-			esc = "&#39;"
-		case '<':
-			esc = "&lt;"
-		case '>':
-			esc = "&gt;"
-		case '"':
-			// "&#34;" is shorter than "&quot;".
-			esc = "&#34;"
-		case '\r':
-			esc = "&#13;"
-		default:
-			panic("unrecognized escape character")
-		}
-		s = s[i+1:]
-		if _, err := w.WriteString(esc); err != nil {
-			return err
-		}
-		i = strings.IndexAny(s, escapedChars)
-	}
-	_, err := w.WriteString(s)
-	return err
-}
-
-// EscapeString escapes special characters like "<" to become "&lt;". It
-// escapes only five such characters: <, >, &, ' and ".
-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
-// always true.
-func EscapeString(s string) string {
-	if strings.IndexAny(s, escapedChars) == -1 {
-		return s
-	}
-	var buf bytes.Buffer
-	escape(&buf, s)
-	return buf.String()
-}
-
-// UnescapeString unescapes entities like "&lt;" to become "<". It unescapes a
-// larger range of entities than EscapeString escapes. For example, "&aacute;"
-// unescapes to "Ã¡", as does "&#225;" and "&xE1;".
-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
-// always true.
-func UnescapeString(s string) string {
-	for _, c := range s {
-		if c == '&' {
-			return string(unescape([]byte(s), false))
-		}
-	}
-	return s
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/foreign.go gcc-4.8.1/libgo/go/exp/html/foreign.go
--- gcc-4.8.1.orig/libgo/go/exp/html/foreign.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/foreign.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,226 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"strings"
-)
-
-func adjustAttributeNames(aa []Attribute, nameMap map[string]string) {
-	for i := range aa {
-		if newName, ok := nameMap[aa[i].Key]; ok {
-			aa[i].Key = newName
-		}
-	}
-}
-
-func adjustForeignAttributes(aa []Attribute) {
-	for i, a := range aa {
-		if a.Key == "" || a.Key[0] != 'x' {
-			continue
-		}
-		switch a.Key {
-		case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show",
-			"xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink":
-			j := strings.Index(a.Key, ":")
-			aa[i].Namespace = a.Key[:j]
-			aa[i].Key = a.Key[j+1:]
-		}
-	}
-}
-
-func htmlIntegrationPoint(n *Node) bool {
-	if n.Type != ElementNode {
-		return false
-	}
-	switch n.Namespace {
-	case "math":
-		if n.Data == "annotation-xml" {
-			for _, a := range n.Attr {
-				if a.Key == "encoding" {
-					val := strings.ToLower(a.Val)
-					if val == "text/html" || val == "application/xhtml+xml" {
-						return true
-					}
-				}
-			}
-		}
-	case "svg":
-		switch n.Data {
-		case "desc", "foreignObject", "title":
-			return true
-		}
-	}
-	return false
-}
-
-func mathMLTextIntegrationPoint(n *Node) bool {
-	if n.Namespace != "math" {
-		return false
-	}
-	switch n.Data {
-	case "mi", "mo", "mn", "ms", "mtext":
-		return true
-	}
-	return false
-}
-
-// Section 12.2.5.5.
-var breakout = map[string]bool{
-	"b":          true,
-	"big":        true,
-	"blockquote": true,
-	"body":       true,
-	"br":         true,
-	"center":     true,
-	"code":       true,
-	"dd":         true,
-	"div":        true,
-	"dl":         true,
-	"dt":         true,
-	"em":         true,
-	"embed":      true,
-	"h1":         true,
-	"h2":         true,
-	"h3":         true,
-	"h4":         true,
-	"h5":         true,
-	"h6":         true,
-	"head":       true,
-	"hr":         true,
-	"i":          true,
-	"img":        true,
-	"li":         true,
-	"listing":    true,
-	"menu":       true,
-	"meta":       true,
-	"nobr":       true,
-	"ol":         true,
-	"p":          true,
-	"pre":        true,
-	"ruby":       true,
-	"s":          true,
-	"small":      true,
-	"span":       true,
-	"strong":     true,
-	"strike":     true,
-	"sub":        true,
-	"sup":        true,
-	"table":      true,
-	"tt":         true,
-	"u":          true,
-	"ul":         true,
-	"var":        true,
-}
-
-// Section 12.2.5.5.
-var svgTagNameAdjustments = map[string]string{
-	"altglyph":            "altGlyph",
-	"altglyphdef":         "altGlyphDef",
-	"altglyphitem":        "altGlyphItem",
-	"animatecolor":        "animateColor",
-	"animatemotion":       "animateMotion",
-	"animatetransform":    "animateTransform",
-	"clippath":            "clipPath",
-	"feblend":             "feBlend",
-	"fecolormatrix":       "feColorMatrix",
-	"fecomponenttransfer": "feComponentTransfer",
-	"fecomposite":         "feComposite",
-	"feconvolvematrix":    "feConvolveMatrix",
-	"fediffuselighting":   "feDiffuseLighting",
-	"fedisplacementmap":   "feDisplacementMap",
-	"fedistantlight":      "feDistantLight",
-	"feflood":             "feFlood",
-	"fefunca":             "feFuncA",
-	"fefuncb":             "feFuncB",
-	"fefuncg":             "feFuncG",
-	"fefuncr":             "feFuncR",
-	"fegaussianblur":      "feGaussianBlur",
-	"feimage":             "feImage",
-	"femerge":             "feMerge",
-	"femergenode":         "feMergeNode",
-	"femorphology":        "feMorphology",
-	"feoffset":            "feOffset",
-	"fepointlight":        "fePointLight",
-	"fespecularlighting":  "feSpecularLighting",
-	"fespotlight":         "feSpotLight",
-	"fetile":              "feTile",
-	"feturbulence":        "feTurbulence",
-	"foreignobject":       "foreignObject",
-	"glyphref":            "glyphRef",
-	"lineargradient":      "linearGradient",
-	"radialgradient":      "radialGradient",
-	"textpath":            "textPath",
-}
-
-// Section 12.2.5.1
-var mathMLAttributeAdjustments = map[string]string{
-	"definitionurl": "definitionURL",
-}
-
-var svgAttributeAdjustments = map[string]string{
-	"attributename":             "attributeName",
-	"attributetype":             "attributeType",
-	"basefrequency":             "baseFrequency",
-	"baseprofile":               "baseProfile",
-	"calcmode":                  "calcMode",
-	"clippathunits":             "clipPathUnits",
-	"contentscripttype":         "contentScriptType",
-	"contentstyletype":          "contentStyleType",
-	"diffuseconstant":           "diffuseConstant",
-	"edgemode":                  "edgeMode",
-	"externalresourcesrequired": "externalResourcesRequired",
-	"filterres":                 "filterRes",
-	"filterunits":               "filterUnits",
-	"glyphref":                  "glyphRef",
-	"gradienttransform":         "gradientTransform",
-	"gradientunits":             "gradientUnits",
-	"kernelmatrix":              "kernelMatrix",
-	"kernelunitlength":          "kernelUnitLength",
-	"keypoints":                 "keyPoints",
-	"keysplines":                "keySplines",
-	"keytimes":                  "keyTimes",
-	"lengthadjust":              "lengthAdjust",
-	"limitingconeangle":         "limitingConeAngle",
-	"markerheight":              "markerHeight",
-	"markerunits":               "markerUnits",
-	"markerwidth":               "markerWidth",
-	"maskcontentunits":          "maskContentUnits",
-	"maskunits":                 "maskUnits",
-	"numoctaves":                "numOctaves",
-	"pathlength":                "pathLength",
-	"patterncontentunits":       "patternContentUnits",
-	"patterntransform":          "patternTransform",
-	"patternunits":              "patternUnits",
-	"pointsatx":                 "pointsAtX",
-	"pointsaty":                 "pointsAtY",
-	"pointsatz":                 "pointsAtZ",
-	"preservealpha":             "preserveAlpha",
-	"preserveaspectratio":       "preserveAspectRatio",
-	"primitiveunits":            "primitiveUnits",
-	"refx":                      "refX",
-	"refy":                      "refY",
-	"repeatcount":               "repeatCount",
-	"repeatdur":                 "repeatDur",
-	"requiredextensions":        "requiredExtensions",
-	"requiredfeatures":          "requiredFeatures",
-	"specularconstant":          "specularConstant",
-	"specularexponent":          "specularExponent",
-	"spreadmethod":              "spreadMethod",
-	"startoffset":               "startOffset",
-	"stddeviation":              "stdDeviation",
-	"stitchtiles":               "stitchTiles",
-	"surfacescale":              "surfaceScale",
-	"systemlanguage":            "systemLanguage",
-	"tablevalues":               "tableValues",
-	"targetx":                   "targetX",
-	"targety":                   "targetY",
-	"textlength":                "textLength",
-	"viewbox":                   "viewBox",
-	"viewtarget":                "viewTarget",
-	"xchannelselector":          "xChannelSelector",
-	"ychannelselector":          "yChannelSelector",
-	"zoomandpan":                "zoomAndPan",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/node.go gcc-4.8.1/libgo/go/exp/html/node.go
--- gcc-4.8.1.orig/libgo/go/exp/html/node.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/node.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,193 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"exp/html/atom"
-)
-
-// A NodeType is the type of a Node.
-type NodeType uint32
-
-const (
-	ErrorNode NodeType = iota
-	TextNode
-	DocumentNode
-	ElementNode
-	CommentNode
-	DoctypeNode
-	scopeMarkerNode
-)
-
-// Section 12.2.3.3 says "scope markers are inserted when entering applet
-// elements, buttons, object elements, marquees, table cells, and table
-// captions, and are used to prevent formatting from 'leaking'".
-var scopeMarker = Node{Type: scopeMarkerNode}
-
-// A Node consists of a NodeType and some Data (tag name for element nodes,
-// content for text) and are part of a tree of Nodes. Element nodes may also
-// have a Namespace and contain a slice of Attributes. Data is unescaped, so
-// that it looks like "a<b" rather than "a&lt;b". For element nodes, DataAtom
-// is the atom for Data, or zero if Data is not a known tag name.
-//
-// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace.
-// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and
-// "svg" is short for "http://www.w3.org/2000/svg".
-type Node struct {
-	Parent, FirstChild, LastChild, PrevSibling, NextSibling *Node
-
-	Type      NodeType
-	DataAtom  atom.Atom
-	Data      string
-	Namespace string
-	Attr      []Attribute
-}
-
-// InsertBefore inserts newChild as a child of n, immediately before oldChild
-// in the sequence of n's children. oldChild may be nil, in which case newChild
-// is appended to the end of n's children.
-//
-// It will panic if newChild already has a parent or siblings.
-func (n *Node) InsertBefore(newChild, oldChild *Node) {
-	if newChild.Parent != nil || newChild.PrevSibling != nil || newChild.NextSibling != nil {
-		panic("html: InsertBefore called for an attached child Node")
-	}
-	var prev, next *Node
-	if oldChild != nil {
-		prev, next = oldChild.PrevSibling, oldChild
-	} else {
-		prev = n.LastChild
-	}
-	if prev != nil {
-		prev.NextSibling = newChild
-	} else {
-		n.FirstChild = newChild
-	}
-	if next != nil {
-		next.PrevSibling = newChild
-	} else {
-		n.LastChild = newChild
-	}
-	newChild.Parent = n
-	newChild.PrevSibling = prev
-	newChild.NextSibling = next
-}
-
-// AppendChild adds a node c as a child of n.
-//
-// It will panic if c already has a parent or siblings.
-func (n *Node) AppendChild(c *Node) {
-	if c.Parent != nil || c.PrevSibling != nil || c.NextSibling != nil {
-		panic("html: AppendChild called for an attached child Node")
-	}
-	last := n.LastChild
-	if last != nil {
-		last.NextSibling = c
-	} else {
-		n.FirstChild = c
-	}
-	n.LastChild = c
-	c.Parent = n
-	c.PrevSibling = last
-}
-
-// RemoveChild removes a node c that is a child of n. Afterwards, c will have
-// no parent and no siblings.
-//
-// It will panic if c's parent is not n.
-func (n *Node) RemoveChild(c *Node) {
-	if c.Parent != n {
-		panic("html: RemoveChild called for a non-child Node")
-	}
-	if n.FirstChild == c {
-		n.FirstChild = c.NextSibling
-	}
-	if c.NextSibling != nil {
-		c.NextSibling.PrevSibling = c.PrevSibling
-	}
-	if n.LastChild == c {
-		n.LastChild = c.PrevSibling
-	}
-	if c.PrevSibling != nil {
-		c.PrevSibling.NextSibling = c.NextSibling
-	}
-	c.Parent = nil
-	c.PrevSibling = nil
-	c.NextSibling = nil
-}
-
-// reparentChildren reparents all of src's child nodes to dst.
-func reparentChildren(dst, src *Node) {
-	for {
-		child := src.FirstChild
-		if child == nil {
-			break
-		}
-		src.RemoveChild(child)
-		dst.AppendChild(child)
-	}
-}
-
-// clone returns a new node with the same type, data and attributes.
-// The clone has no parent, no siblings and no children.
-func (n *Node) clone() *Node {
-	m := &Node{
-		Type:     n.Type,
-		DataAtom: n.DataAtom,
-		Data:     n.Data,
-		Attr:     make([]Attribute, len(n.Attr)),
-	}
-	copy(m.Attr, n.Attr)
-	return m
-}
-
-// nodeStack is a stack of nodes.
-type nodeStack []*Node
-
-// pop pops the stack. It will panic if s is empty.
-func (s *nodeStack) pop() *Node {
-	i := len(*s)
-	n := (*s)[i-1]
-	*s = (*s)[:i-1]
-	return n
-}
-
-// top returns the most recently pushed node, or nil if s is empty.
-func (s *nodeStack) top() *Node {
-	if i := len(*s); i > 0 {
-		return (*s)[i-1]
-	}
-	return nil
-}
-
-// index returns the index of the top-most occurrence of n in the stack, or -1
-// if n is not present.
-func (s *nodeStack) index(n *Node) int {
-	for i := len(*s) - 1; i >= 0; i-- {
-		if (*s)[i] == n {
-			return i
-		}
-	}
-	return -1
-}
-
-// insert inserts a node at the given index.
-func (s *nodeStack) insert(i int, n *Node) {
-	(*s) = append(*s, nil)
-	copy((*s)[i+1:], (*s)[i:])
-	(*s)[i] = n
-}
-
-// remove removes a node from the stack. It is a no-op if n is not present.
-func (s *nodeStack) remove(n *Node) {
-	i := s.index(n)
-	if i == -1 {
-		return
-	}
-	copy((*s)[i:], (*s)[i+1:])
-	j := len(*s) - 1
-	(*s)[j] = nil
-	*s = (*s)[:j]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/node_test.go gcc-4.8.1/libgo/go/exp/html/node_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/node_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/node_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,146 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"fmt"
-)
-
-// checkTreeConsistency checks that a node and its descendants are all
-// consistent in their parent/child/sibling relationships.
-func checkTreeConsistency(n *Node) error {
-	return checkTreeConsistency1(n, 0)
-}
-
-func checkTreeConsistency1(n *Node, depth int) error {
-	if depth == 1e4 {
-		return fmt.Errorf("html: tree looks like it contains a cycle")
-	}
-	if err := checkNodeConsistency(n); err != nil {
-		return err
-	}
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := checkTreeConsistency1(c, depth+1); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-// checkNodeConsistency checks that a node's parent/child/sibling relationships
-// are consistent.
-func checkNodeConsistency(n *Node) error {
-	if n == nil {
-		return nil
-	}
-
-	nParent := 0
-	for p := n.Parent; p != nil; p = p.Parent {
-		nParent++
-		if nParent == 1e4 {
-			return fmt.Errorf("html: parent list looks like an infinite loop")
-		}
-	}
-
-	nForward := 0
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		nForward++
-		if nForward == 1e6 {
-			return fmt.Errorf("html: forward list of children looks like an infinite loop")
-		}
-		if c.Parent != n {
-			return fmt.Errorf("html: inconsistent child/parent relationship")
-		}
-	}
-
-	nBackward := 0
-	for c := n.LastChild; c != nil; c = c.PrevSibling {
-		nBackward++
-		if nBackward == 1e6 {
-			return fmt.Errorf("html: backward list of children looks like an infinite loop")
-		}
-		if c.Parent != n {
-			return fmt.Errorf("html: inconsistent child/parent relationship")
-		}
-	}
-
-	if n.Parent != nil {
-		if n.Parent == n {
-			return fmt.Errorf("html: inconsistent parent relationship")
-		}
-		if n.Parent == n.FirstChild {
-			return fmt.Errorf("html: inconsistent parent/first relationship")
-		}
-		if n.Parent == n.LastChild {
-			return fmt.Errorf("html: inconsistent parent/last relationship")
-		}
-		if n.Parent == n.PrevSibling {
-			return fmt.Errorf("html: inconsistent parent/prev relationship")
-		}
-		if n.Parent == n.NextSibling {
-			return fmt.Errorf("html: inconsistent parent/next relationship")
-		}
-
-		parentHasNAsAChild := false
-		for c := n.Parent.FirstChild; c != nil; c = c.NextSibling {
-			if c == n {
-				parentHasNAsAChild = true
-				break
-			}
-		}
-		if !parentHasNAsAChild {
-			return fmt.Errorf("html: inconsistent parent/child relationship")
-		}
-	}
-
-	if n.PrevSibling != nil && n.PrevSibling.NextSibling != n {
-		return fmt.Errorf("html: inconsistent prev/next relationship")
-	}
-	if n.NextSibling != nil && n.NextSibling.PrevSibling != n {
-		return fmt.Errorf("html: inconsistent next/prev relationship")
-	}
-
-	if (n.FirstChild == nil) != (n.LastChild == nil) {
-		return fmt.Errorf("html: inconsistent first/last relationship")
-	}
-	if n.FirstChild != nil && n.FirstChild == n.LastChild {
-		// We have a sole child.
-		if n.FirstChild.PrevSibling != nil || n.FirstChild.NextSibling != nil {
-			return fmt.Errorf("html: inconsistent sole child's sibling relationship")
-		}
-	}
-
-	seen := map[*Node]bool{}
-
-	var last *Node
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if seen[c] {
-			return fmt.Errorf("html: inconsistent repeated child")
-		}
-		seen[c] = true
-		last = c
-	}
-	if last != n.LastChild {
-		return fmt.Errorf("html: inconsistent last relationship")
-	}
-
-	var first *Node
-	for c := n.LastChild; c != nil; c = c.PrevSibling {
-		if !seen[c] {
-			return fmt.Errorf("html: inconsistent missing child")
-		}
-		delete(seen, c)
-		first = c
-	}
-	if first != n.FirstChild {
-		return fmt.Errorf("html: inconsistent first relationship")
-	}
-
-	if len(seen) != 0 {
-		return fmt.Errorf("html: inconsistent forwards/backwards child list")
-	}
-
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/parse.go gcc-4.8.1/libgo/go/exp/html/parse.go
--- gcc-4.8.1.orig/libgo/go/exp/html/parse.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/parse.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,2091 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"errors"
-	a "exp/html/atom"
-	"fmt"
-	"io"
-	"strings"
-)
-
-// A parser implements the HTML5 parsing algorithm:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tree-construction
-type parser struct {
-	// tokenizer provides the tokens for the parser.
-	tokenizer *Tokenizer
-	// tok is the most recently read token.
-	tok Token
-	// Self-closing tags like <hr/> are treated as start tags, except that
-	// hasSelfClosingToken is set while they are being processed.
-	hasSelfClosingToken bool
-	// doc is the document root element.
-	doc *Node
-	// The stack of open elements (section 12.2.3.2) and active formatting
-	// elements (section 12.2.3.3).
-	oe, afe nodeStack
-	// Element pointers (section 12.2.3.4).
-	head, form *Node
-	// Other parsing state flags (section 12.2.3.5).
-	scripting, framesetOK bool
-	// im is the current insertion mode.
-	im insertionMode
-	// originalIM is the insertion mode to go back to after completing a text
-	// or inTableText insertion mode.
-	originalIM insertionMode
-	// fosterParenting is whether new elements should be inserted according to
-	// the foster parenting rules (section 12.2.5.3).
-	fosterParenting bool
-	// quirks is whether the parser is operating in "quirks mode."
-	quirks bool
-	// fragment is whether the parser is parsing an HTML fragment.
-	fragment bool
-	// context is the context element when parsing an HTML fragment
-	// (section 12.4).
-	context *Node
-}
-
-func (p *parser) top() *Node {
-	if n := p.oe.top(); n != nil {
-		return n
-	}
-	return p.doc
-}
-
-// Stop tags for use in popUntil. These come from section 12.2.3.2.
-var (
-	defaultScopeStopTags = map[string][]a.Atom{
-		"":     {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object},
-		"math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext},
-		"svg":  {a.Desc, a.ForeignObject, a.Title},
-	}
-)
-
-type scope int
-
-const (
-	defaultScope scope = iota
-	listItemScope
-	buttonScope
-	tableScope
-	tableRowScope
-	tableBodyScope
-	selectScope
-)
-
-// popUntil pops the stack of open elements at the highest element whose tag
-// is in matchTags, provided there is no higher element in the scope's stop
-// tags (as defined in section 12.2.3.2). It returns whether or not there was
-// such an element. If there was not, popUntil leaves the stack unchanged.
-//
-// For example, the set of stop tags for table scope is: "html", "table". If
-// the stack was:
-// ["html", "body", "font", "table", "b", "i", "u"]
-// then popUntil(tableScope, "font") would return false, but
-// popUntil(tableScope, "i") would return true and the stack would become:
-// ["html", "body", "font", "table", "b"]
-//
-// If an element's tag is in both the stop tags and matchTags, then the stack
-// will be popped and the function returns true (provided, of course, there was
-// no higher element in the stack that was also in the stop tags). For example,
-// popUntil(tableScope, "table") returns true and leaves:
-// ["html", "body", "font"]
-func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool {
-	if i := p.indexOfElementInScope(s, matchTags...); i != -1 {
-		p.oe = p.oe[:i]
-		return true
-	}
-	return false
-}
-
-// indexOfElementInScope returns the index in p.oe of the highest element whose
-// tag is in matchTags that is in scope. If no matching element is in scope, it
-// returns -1.
-func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		tagAtom := p.oe[i].DataAtom
-		if p.oe[i].Namespace == "" {
-			for _, t := range matchTags {
-				if t == tagAtom {
-					return i
-				}
-			}
-			switch s {
-			case defaultScope:
-				// No-op.
-			case listItemScope:
-				if tagAtom == a.Ol || tagAtom == a.Ul {
-					return -1
-				}
-			case buttonScope:
-				if tagAtom == a.Button {
-					return -1
-				}
-			case tableScope:
-				if tagAtom == a.Html || tagAtom == a.Table {
-					return -1
-				}
-			case selectScope:
-				if tagAtom != a.Optgroup && tagAtom != a.Option {
-					return -1
-				}
-			default:
-				panic("unreachable")
-			}
-		}
-		switch s {
-		case defaultScope, listItemScope, buttonScope:
-			for _, t := range defaultScopeStopTags[p.oe[i].Namespace] {
-				if t == tagAtom {
-					return -1
-				}
-			}
-		}
-	}
-	return -1
-}
-
-// elementInScope is like popUntil, except that it doesn't modify the stack of
-// open elements.
-func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool {
-	return p.indexOfElementInScope(s, matchTags...) != -1
-}
-
-// clearStackToContext pops elements off the stack of open elements until a
-// scope-defined element is found.
-func (p *parser) clearStackToContext(s scope) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		tagAtom := p.oe[i].DataAtom
-		switch s {
-		case tableScope:
-			if tagAtom == a.Html || tagAtom == a.Table {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		case tableRowScope:
-			if tagAtom == a.Html || tagAtom == a.Tr {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		case tableBodyScope:
-			if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		default:
-			panic("unreachable")
-		}
-	}
-}
-
-// generateImpliedEndTags pops nodes off the stack of open elements as long as
-// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt.
-// If exceptions are specified, nodes with that name will not be popped off.
-func (p *parser) generateImpliedEndTags(exceptions ...string) {
-	var i int
-loop:
-	for i = len(p.oe) - 1; i >= 0; i-- {
-		n := p.oe[i]
-		if n.Type == ElementNode {
-			switch n.DataAtom {
-			case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt:
-				for _, except := range exceptions {
-					if n.Data == except {
-						break loop
-					}
-				}
-				continue
-			}
-		}
-		break
-	}
-
-	p.oe = p.oe[:i+1]
-}
-
-// addChild adds a child node n to the top element, and pushes n onto the stack
-// of open elements if it is an element node.
-func (p *parser) addChild(n *Node) {
-	if p.shouldFosterParent() {
-		p.fosterParent(n)
-	} else {
-		p.top().AppendChild(n)
-	}
-
-	if n.Type == ElementNode {
-		p.oe = append(p.oe, n)
-	}
-}
-
-// shouldFosterParent returns whether the next node to be added should be
-// foster parented.
-func (p *parser) shouldFosterParent() bool {
-	if p.fosterParenting {
-		switch p.top().DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			return true
-		}
-	}
-	return false
-}
-
-// fosterParent adds a child node according to the foster parenting rules.
-// Section 12.2.5.3, "foster parenting".
-func (p *parser) fosterParent(n *Node) {
-	var table, parent, prev *Node
-	var i int
-	for i = len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == a.Table {
-			table = p.oe[i]
-			break
-		}
-	}
-
-	if table == nil {
-		// The foster parent is the html element.
-		parent = p.oe[0]
-	} else {
-		parent = table.Parent
-	}
-	if parent == nil {
-		parent = p.oe[i-1]
-	}
-
-	if table != nil {
-		prev = table.PrevSibling
-	} else {
-		prev = parent.LastChild
-	}
-	if prev != nil && prev.Type == TextNode && n.Type == TextNode {
-		prev.Data += n.Data
-		return
-	}
-
-	parent.InsertBefore(n, table)
-}
-
-// addText adds text to the preceding node if it is a text node, or else it
-// calls addChild with a new text node.
-func (p *parser) addText(text string) {
-	if text == "" {
-		return
-	}
-
-	if p.shouldFosterParent() {
-		p.fosterParent(&Node{
-			Type: TextNode,
-			Data: text,
-		})
-		return
-	}
-
-	t := p.top()
-	if n := t.LastChild; n != nil && n.Type == TextNode {
-		n.Data += text
-		return
-	}
-	p.addChild(&Node{
-		Type: TextNode,
-		Data: text,
-	})
-}
-
-// addElement adds a child element based on the current token.
-func (p *parser) addElement() {
-	p.addChild(&Node{
-		Type:     ElementNode,
-		DataAtom: p.tok.DataAtom,
-		Data:     p.tok.Data,
-		Attr:     p.tok.Attr,
-	})
-}
-
-// Section 12.2.3.3.
-func (p *parser) addFormattingElement() {
-	tagAtom, attr := p.tok.DataAtom, p.tok.Attr
-	p.addElement()
-
-	// Implement the Noah's Ark clause, but with three per family instead of two.
-	identicalElements := 0
-findIdenticalElements:
-	for i := len(p.afe) - 1; i >= 0; i-- {
-		n := p.afe[i]
-		if n.Type == scopeMarkerNode {
-			break
-		}
-		if n.Type != ElementNode {
-			continue
-		}
-		if n.Namespace != "" {
-			continue
-		}
-		if n.DataAtom != tagAtom {
-			continue
-		}
-		if len(n.Attr) != len(attr) {
-			continue
-		}
-	compareAttributes:
-		for _, t0 := range n.Attr {
-			for _, t1 := range attr {
-				if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val {
-					// Found a match for this attribute, continue with the next attribute.
-					continue compareAttributes
-				}
-			}
-			// If we get here, there is no attribute that matches a.
-			// Therefore the element is not identical to the new one.
-			continue findIdenticalElements
-		}
-
-		identicalElements++
-		if identicalElements >= 3 {
-			p.afe.remove(n)
-		}
-	}
-
-	p.afe = append(p.afe, p.top())
-}
-
-// Section 12.2.3.3.
-func (p *parser) clearActiveFormattingElements() {
-	for {
-		n := p.afe.pop()
-		if len(p.afe) == 0 || n.Type == scopeMarkerNode {
-			return
-		}
-	}
-}
-
-// Section 12.2.3.3.
-func (p *parser) reconstructActiveFormattingElements() {
-	n := p.afe.top()
-	if n == nil {
-		return
-	}
-	if n.Type == scopeMarkerNode || p.oe.index(n) != -1 {
-		return
-	}
-	i := len(p.afe) - 1
-	for n.Type != scopeMarkerNode && p.oe.index(n) == -1 {
-		if i == 0 {
-			i = -1
-			break
-		}
-		i--
-		n = p.afe[i]
-	}
-	for {
-		i++
-		clone := p.afe[i].clone()
-		p.addChild(clone)
-		p.afe[i] = clone
-		if i == len(p.afe)-1 {
-			break
-		}
-	}
-}
-
-// Section 12.2.4.
-func (p *parser) acknowledgeSelfClosingTag() {
-	p.hasSelfClosingToken = false
-}
-
-// An insertion mode (section 12.2.3.1) is the state transition function from
-// a particular state in the HTML5 parser's state machine. It updates the
-// parser's fields depending on parser.tok (where ErrorToken means EOF).
-// It returns whether the token was consumed.
-type insertionMode func(*parser) bool
-
-// setOriginalIM sets the insertion mode to return to after completing a text or
-// inTableText insertion mode.
-// Section 12.2.3.1, "using the rules for".
-func (p *parser) setOriginalIM() {
-	if p.originalIM != nil {
-		panic("html: bad parser state: originalIM was set twice")
-	}
-	p.originalIM = p.im
-}
-
-// Section 12.2.3.1, "reset the insertion mode".
-func (p *parser) resetInsertionMode() {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		n := p.oe[i]
-		if i == 0 && p.context != nil {
-			n = p.context
-		}
-
-		switch n.DataAtom {
-		case a.Select:
-			p.im = inSelectIM
-		case a.Td, a.Th:
-			p.im = inCellIM
-		case a.Tr:
-			p.im = inRowIM
-		case a.Tbody, a.Thead, a.Tfoot:
-			p.im = inTableBodyIM
-		case a.Caption:
-			p.im = inCaptionIM
-		case a.Colgroup:
-			p.im = inColumnGroupIM
-		case a.Table:
-			p.im = inTableIM
-		case a.Head:
-			p.im = inBodyIM
-		case a.Body:
-			p.im = inBodyIM
-		case a.Frameset:
-			p.im = inFramesetIM
-		case a.Html:
-			p.im = beforeHeadIM
-		default:
-			continue
-		}
-		return
-	}
-	p.im = inBodyIM
-}
-
-const whitespace = " \t\r\n\f"
-
-// Section 12.2.5.4.1.
-func initialIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		n, quirks := parseDoctype(p.tok.Data)
-		p.doc.AppendChild(n)
-		p.quirks = quirks
-		p.im = beforeHTMLIM
-		return true
-	}
-	p.quirks = true
-	p.im = beforeHTMLIM
-	return false
-}
-
-// Section 12.2.5.4.2.
-func beforeHTMLIM(p *parser) bool {
-	switch p.tok.Type {
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			p.addElement()
-			p.im = beforeHeadIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head, a.Body, a.Html, a.Br:
-			p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-	p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
-	return false
-}
-
-// Section 12.2.5.4.3.
-func beforeHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Head:
-			p.addElement()
-			p.head = p.top()
-			p.im = inHeadIM
-			return true
-		case a.Html:
-			return inBodyIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head, a.Body, a.Html, a.Br:
-			p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
-	return false
-}
-
-// Section 12.2.5.4.4.
-func inHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			return true
-		case a.Script, a.Title, a.Noscript, a.Noframes, a.Style:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-			return true
-		case a.Head:
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head:
-			n := p.oe.pop()
-			if n.DataAtom != a.Head {
-				panic("html: bad parser state: <head> element not found, in the in-head insertion mode")
-			}
-			p.im = afterHeadIM
-			return true
-		case a.Body, a.Html, a.Br:
-			p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
-	return false
-}
-
-// Section 12.2.5.4.6.
-func afterHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Body:
-			p.addElement()
-			p.framesetOK = false
-			p.im = inBodyIM
-			return true
-		case a.Frameset:
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			p.oe = append(p.oe, p.head)
-			defer p.oe.remove(p.head)
-			return inHeadIM(p)
-		case a.Head:
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body, a.Html, a.Br:
-			// Drop down to creating an implied <body> tag.
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(StartTagToken, a.Body, a.Body.String())
-	p.framesetOK = true
-	return false
-}
-
-// copyAttributes copies attributes of src not found on dst to dst.
-func copyAttributes(dst *Node, src Token) {
-	if len(src.Attr) == 0 {
-		return
-	}
-	attr := map[string]string{}
-	for _, t := range dst.Attr {
-		attr[t.Key] = t.Val
-	}
-	for _, t := range src.Attr {
-		if _, ok := attr[t.Key]; !ok {
-			dst.Attr = append(dst.Attr, t)
-			attr[t.Key] = t.Val
-		}
-	}
-}
-
-// Section 12.2.5.4.7.
-func inBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		d := p.tok.Data
-		switch n := p.oe.top(); n.DataAtom {
-		case a.Pre, a.Listing:
-			if n.FirstChild == nil {
-				// Ignore a newline at the start of a <pre> block.
-				if d != "" && d[0] == '\r' {
-					d = d[1:]
-				}
-				if d != "" && d[0] == '\n' {
-					d = d[1:]
-				}
-			}
-		}
-		d = strings.Replace(d, "\x00", "", -1)
-		if d == "" {
-			return true
-		}
-		p.reconstructActiveFormattingElements()
-		p.addText(d)
-		if p.framesetOK && strings.TrimLeft(d, whitespace) != "" {
-			// There were non-whitespace characters inserted.
-			p.framesetOK = false
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			copyAttributes(p.oe[0], p.tok)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			return inHeadIM(p)
-		case a.Body:
-			if len(p.oe) >= 2 {
-				body := p.oe[1]
-				if body.Type == ElementNode && body.DataAtom == a.Body {
-					p.framesetOK = false
-					copyAttributes(body, p.tok)
-				}
-			}
-		case a.Frameset:
-			if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body {
-				// Ignore the token.
-				return true
-			}
-			body := p.oe[1]
-			if body.Parent != nil {
-				body.Parent.RemoveChild(body)
-			}
-			p.oe = p.oe[:1]
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(buttonScope, a.P)
-			switch n := p.top(); n.DataAtom {
-			case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Pre, a.Listing:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			// The newline, if any, will be dealt with by the TextToken case.
-			p.framesetOK = false
-		case a.Form:
-			if p.form == nil {
-				p.popUntil(buttonScope, a.P)
-				p.addElement()
-				p.form = p.top()
-			}
-		case a.Li:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Li:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Dd, a.Dt:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Dd, a.Dt:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Plaintext:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Button:
-			p.popUntil(defaultScope, a.Button)
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-		case a.A:
-			for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
-				if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
-					p.inBodyEndTagFormatting(a.A)
-					p.oe.remove(n)
-					p.afe.remove(n)
-					break
-				}
-			}
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.Nobr:
-			p.reconstructActiveFormattingElements()
-			if p.elementInScope(defaultScope, a.Nobr) {
-				p.inBodyEndTagFormatting(a.Nobr)
-				p.reconstructActiveFormattingElements()
-			}
-			p.addFormattingElement()
-		case a.Applet, a.Marquee, a.Object:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.framesetOK = false
-		case a.Table:
-			if !p.quirks {
-				p.popUntil(buttonScope, a.P)
-			}
-			p.addElement()
-			p.framesetOK = false
-			p.im = inTableIM
-			return true
-		case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			if p.tok.DataAtom == a.Input {
-				for _, t := range p.tok.Attr {
-					if t.Key == "type" {
-						if strings.ToLower(t.Val) == "hidden" {
-							// Skip setting framesetOK = false
-							return true
-						}
-					}
-				}
-			}
-			p.framesetOK = false
-		case a.Param, a.Source, a.Track:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Hr:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			p.framesetOK = false
-		case a.Image:
-			p.tok.DataAtom = a.Img
-			p.tok.Data = a.Img.String()
-			return false
-		case a.Isindex:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			action := ""
-			prompt := "This is a searchable index. Enter search keywords: "
-			attr := []Attribute{{Key: "name", Val: "isindex"}}
-			for _, t := range p.tok.Attr {
-				switch t.Key {
-				case "action":
-					action = t.Val
-				case "name":
-					// Ignore the attribute.
-				case "prompt":
-					prompt = t.Val
-				default:
-					attr = append(attr, t)
-				}
-			}
-			p.acknowledgeSelfClosingTag()
-			p.popUntil(buttonScope, a.P)
-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
-			if action != "" {
-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
-			}
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
-			p.addText(prompt)
-			p.addChild(&Node{
-				Type:     ElementNode,
-				DataAtom: a.Input,
-				Data:     a.Input.String(),
-				Attr:     attr,
-			})
-			p.oe.pop()
-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
-		case a.Textarea:
-			p.addElement()
-			p.setOriginalIM()
-			p.framesetOK = false
-			p.im = textIM
-		case a.Xmp:
-			p.popUntil(buttonScope, a.P)
-			p.reconstructActiveFormattingElements()
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Iframe:
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Noembed, a.Noscript:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectIM
-			return true
-		case a.Optgroup, a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		case a.Rp, a.Rt:
-			if p.elementInScope(defaultScope, a.Ruby) {
-				p.generateImpliedEndTags()
-			}
-			p.addElement()
-		case a.Math, a.Svg:
-			p.reconstructActiveFormattingElements()
-			if p.tok.DataAtom == a.Math {
-				adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-			} else {
-				adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-			}
-			adjustForeignAttributes(p.tok.Attr)
-			p.addElement()
-			p.top().Namespace = p.tok.Data
-			if p.hasSelfClosingToken {
-				p.oe.pop()
-				p.acknowledgeSelfClosingTag()
-			}
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-		default:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.im = afterBodyIM
-			}
-		case a.Html:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.parseImpliedToken(EndTagToken, a.Body, a.Body.String())
-				return false
-			}
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.Form:
-			node := p.form
-			p.form = nil
-			i := p.indexOfElementInScope(defaultScope, a.Form)
-			if node == nil || i == -1 || p.oe[i] != node {
-				// Ignore the token.
-				return true
-			}
-			p.generateImpliedEndTags()
-			p.oe.remove(node)
-		case a.P:
-			if !p.elementInScope(buttonScope, a.P) {
-				p.parseImpliedToken(StartTagToken, a.P, a.P.String())
-			}
-			p.popUntil(buttonScope, a.P)
-		case a.Li:
-			p.popUntil(listItemScope, a.Li)
-		case a.Dd, a.Dt:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
-		case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.inBodyEndTagFormatting(p.tok.DataAtom)
-		case a.Applet, a.Marquee, a.Object:
-			if p.popUntil(defaultScope, p.tok.DataAtom) {
-				p.clearActiveFormattingElements()
-			}
-		case a.Br:
-			p.tok.Type = StartTagToken
-			return false
-		default:
-			p.inBodyEndTagOther(p.tok.DataAtom)
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	}
-
-	return true
-}
-
-func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
-	// This is the "adoption agency" algorithm, described at
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#adoptionAgency
-
-	// TODO: this is a fairly literal line-by-line translation of that algorithm.
-	// Once the code successfully parses the comprehensive test suite, we should
-	// refactor this code to be more idiomatic.
-
-	// Steps 1-3. The outer loop.
-	for i := 0; i < 8; i++ {
-		// Step 4. Find the formatting element.
-		var formattingElement *Node
-		for j := len(p.afe) - 1; j >= 0; j-- {
-			if p.afe[j].Type == scopeMarkerNode {
-				break
-			}
-			if p.afe[j].DataAtom == tagAtom {
-				formattingElement = p.afe[j]
-				break
-			}
-		}
-		if formattingElement == nil {
-			p.inBodyEndTagOther(tagAtom)
-			return
-		}
-		feIndex := p.oe.index(formattingElement)
-		if feIndex == -1 {
-			p.afe.remove(formattingElement)
-			return
-		}
-		if !p.elementInScope(defaultScope, tagAtom) {
-			// Ignore the tag.
-			return
-		}
-
-		// Steps 5-6. Find the furthest block.
-		var furthestBlock *Node
-		for _, e := range p.oe[feIndex:] {
-			if isSpecialElement(e) {
-				furthestBlock = e
-				break
-			}
-		}
-		if furthestBlock == nil {
-			e := p.oe.pop()
-			for e != formattingElement {
-				e = p.oe.pop()
-			}
-			p.afe.remove(e)
-			return
-		}
-
-		// Steps 7-8. Find the common ancestor and bookmark node.
-		commonAncestor := p.oe[feIndex-1]
-		bookmark := p.afe.index(formattingElement)
-
-		// Step 9. The inner loop. Find the lastNode to reparent.
-		lastNode := furthestBlock
-		node := furthestBlock
-		x := p.oe.index(node)
-		// Steps 9.1-9.3.
-		for j := 0; j < 3; j++ {
-			// Step 9.4.
-			x--
-			node = p.oe[x]
-			// Step 9.5.
-			if p.afe.index(node) == -1 {
-				p.oe.remove(node)
-				continue
-			}
-			// Step 9.6.
-			if node == formattingElement {
-				break
-			}
-			// Step 9.7.
-			clone := node.clone()
-			p.afe[p.afe.index(node)] = clone
-			p.oe[p.oe.index(node)] = clone
-			node = clone
-			// Step 9.8.
-			if lastNode == furthestBlock {
-				bookmark = p.afe.index(node) + 1
-			}
-			// Step 9.9.
-			if lastNode.Parent != nil {
-				lastNode.Parent.RemoveChild(lastNode)
-			}
-			node.AppendChild(lastNode)
-			// Step 9.10.
-			lastNode = node
-		}
-
-		// Step 10. Reparent lastNode to the common ancestor,
-		// or for misnested table nodes, to the foster parent.
-		if lastNode.Parent != nil {
-			lastNode.Parent.RemoveChild(lastNode)
-		}
-		switch commonAncestor.DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			p.fosterParent(lastNode)
-		default:
-			commonAncestor.AppendChild(lastNode)
-		}
-
-		// Steps 11-13. Reparent nodes from the furthest block's children
-		// to a clone of the formatting element.
-		clone := formattingElement.clone()
-		reparentChildren(clone, furthestBlock)
-		furthestBlock.AppendChild(clone)
-
-		// Step 14. Fix up the list of active formatting elements.
-		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
-			// Move the bookmark with the rest of the list.
-			bookmark--
-		}
-		p.afe.remove(formattingElement)
-		p.afe.insert(bookmark, clone)
-
-		// Step 15. Fix up the stack of open elements.
-		p.oe.remove(formattingElement)
-		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
-	}
-}
-
-// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
-func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == tagAtom {
-			p.oe = p.oe[:i]
-			break
-		}
-		if isSpecialElement(p.oe[i]) {
-			break
-		}
-	}
-}
-
-// Section 12.2.5.4.8.
-func textIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		p.oe.pop()
-	case TextToken:
-		d := p.tok.Data
-		if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil {
-			// Ignore a newline at the start of a <textarea> block.
-			if d != "" && d[0] == '\r' {
-				d = d[1:]
-			}
-			if d != "" && d[0] == '\n' {
-				d = d[1:]
-			}
-		}
-		if d == "" {
-			return true
-		}
-		p.addText(d)
-		return true
-	case EndTagToken:
-		p.oe.pop()
-	}
-	p.im = p.originalIM
-	p.originalIM = nil
-	return p.tok.Type == EndTagToken
-}
-
-// Section 12.2.5.4.9.
-func inTableIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1)
-		switch p.oe.top().DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if strings.Trim(p.tok.Data, whitespace) == "" {
-				p.addText(p.tok.Data)
-				return true
-			}
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption:
-			p.clearStackToContext(tableScope)
-			p.afe = append(p.afe, &scopeMarker)
-			p.addElement()
-			p.im = inCaptionIM
-			return true
-		case a.Colgroup:
-			p.clearStackToContext(tableScope)
-			p.addElement()
-			p.im = inColumnGroupIM
-			return true
-		case a.Col:
-			p.parseImpliedToken(StartTagToken, a.Colgroup, a.Colgroup.String())
-			return false
-		case a.Tbody, a.Tfoot, a.Thead:
-			p.clearStackToContext(tableScope)
-			p.addElement()
-			p.im = inTableBodyIM
-			return true
-		case a.Td, a.Th, a.Tr:
-			p.parseImpliedToken(StartTagToken, a.Tbody, a.Tbody.String())
-			return false
-		case a.Table:
-			if p.popUntil(tableScope, a.Table) {
-				p.resetInsertionMode()
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Style, a.Script:
-			return inHeadIM(p)
-		case a.Input:
-			for _, t := range p.tok.Attr {
-				if t.Key == "type" && strings.ToLower(t.Val) == "hidden" {
-					p.addElement()
-					p.oe.pop()
-					return true
-				}
-			}
-			// Otherwise drop down to the default action.
-		case a.Form:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			p.addElement()
-			p.form = p.oe.pop()
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			switch p.top().DataAtom {
-			case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-				p.fosterParenting = true
-			}
-			p.addElement()
-			p.fosterParenting = false
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Table:
-			if p.popUntil(tableScope, a.Table) {
-				p.resetInsertionMode()
-				return true
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.fosterParenting = true
-	defer func() { p.fosterParenting = false }()
-
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.11.
-func inCaptionIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-			}
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	}
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.12.
-func inColumnGroupIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Col:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Colgroup:
-			if p.oe.top().DataAtom != a.Html {
-				p.oe.pop()
-				p.im = inTableIM
-			}
-			return true
-		case a.Col:
-			// Ignore the token.
-			return true
-		}
-	}
-	if p.oe.top().DataAtom != a.Html {
-		p.oe.pop()
-		p.im = inTableIM
-		return false
-	}
-	return true
-}
-
-// Section 12.2.5.4.13.
-func inTableBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Tr:
-			p.clearStackToContext(tableBodyScope)
-			p.addElement()
-			p.im = inRowIM
-			return true
-		case a.Td, a.Th:
-			p.parseImpliedToken(StartTagToken, a.Tr, a.Tr.String())
-			return false
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead:
-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
-				p.im = inTableIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Tbody, a.Tfoot, a.Thead:
-			if p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.clearStackToContext(tableBodyScope)
-				p.oe.pop()
-				p.im = inTableIM
-			}
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
-				p.im = inTableIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-
-	return inTableIM(p)
-}
-
-// Section 12.2.5.4.14.
-func inRowIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Td, a.Th:
-			p.clearStackToContext(tableRowScope)
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.im = inCellIM
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Tr:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return true
-			}
-			// Ignore the token.
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Tbody, a.Tfoot, a.Thead:
-			if p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String())
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th:
-			// Ignore the token.
-			return true
-		}
-	}
-
-	return inTableIM(p)
-}
-
-// Section 12.2.5.4.15.
-func inCellIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Td, a.Th) {
-				// Close the cell and reprocess.
-				p.clearActiveFormattingElements()
-				p.im = inRowIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Td, a.Th:
-			if !p.popUntil(tableScope, p.tok.DataAtom) {
-				// Ignore the token.
-				return true
-			}
-			p.clearActiveFormattingElements()
-			p.im = inRowIM
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html:
-			// Ignore the token.
-			return true
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if !p.elementInScope(tableScope, p.tok.DataAtom) {
-				// Ignore the token.
-				return true
-			}
-			// Close the cell and reprocess.
-			p.popUntil(tableScope, a.Td, a.Th)
-			p.clearActiveFormattingElements()
-			p.im = inRowIM
-			return false
-		}
-	}
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.16.
-func inSelectIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		p.addText(strings.Replace(p.tok.Data, "\x00", "", -1))
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Optgroup:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			if p.top().DataAtom == a.Optgroup {
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Select:
-			p.tok.Type = EndTagToken
-			return false
-		case a.Input, a.Keygen, a.Textarea:
-			if p.elementInScope(selectScope, a.Select) {
-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
-				return false
-			}
-			// In order to properly ignore <textarea>, we need to change the tokenizer mode.
-			p.tokenizer.NextIsNotRawText()
-			// Ignore the token.
-			return true
-		case a.Script:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-		case a.Optgroup:
-			i := len(p.oe) - 1
-			if p.oe[i].DataAtom == a.Option {
-				i--
-			}
-			if p.oe[i].DataAtom == a.Optgroup {
-				p.oe = p.oe[:i]
-			}
-		case a.Select:
-			if p.popUntil(selectScope, a.Select) {
-				p.resetInsertionMode()
-			}
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	return true
-}
-
-// Section 12.2.5.4.17.
-func inSelectInTableIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken, EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
-			if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		}
-	}
-	return inSelectIM(p)
-}
-
-// Section 12.2.5.4.18.
-func afterBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) == 0 {
-			// It was all whitespace.
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			return inBodyIM(p)
-		}
-	case EndTagToken:
-		if p.tok.DataAtom == a.Html {
-			if !p.fragment {
-				p.im = afterAfterBodyIM
-			}
-			return true
-		}
-	case CommentToken:
-		// The comment is attached to the <html> element.
-		if len(p.oe) < 1 || p.oe[0].DataAtom != a.Html {
-			panic("html: bad parser state: <html> element not found, in the after-body insertion mode")
-		}
-		p.oe[0].AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-	p.im = inBodyIM
-	return false
-}
-
-// Section 12.2.5.4.19.
-func inFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.addText(s)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Frameset:
-			p.addElement()
-		case a.Frame:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Frameset:
-			if p.oe.top().DataAtom != a.Html {
-				p.oe.pop()
-				if p.oe.top().DataAtom != a.Frameset {
-					p.im = afterFramesetIM
-					return true
-				}
-			}
-		}
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.4.20.
-func afterFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.addText(s)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			p.im = afterAfterFramesetIM
-			return true
-		}
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.4.21.
-func afterAfterBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) == 0 {
-			// It was all whitespace.
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			return inBodyIM(p)
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		return inBodyIM(p)
-	}
-	p.im = inBodyIM
-	return false
-}
-
-// Section 12.2.5.4.22.
-func afterAfterFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.tok.Data = s
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case DoctypeToken:
-		return inBodyIM(p)
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-const whitespaceOrNUL = whitespace + "\x00"
-
-// Section 12.2.5.5.
-func parseForeignContent(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		if p.framesetOK {
-			p.framesetOK = strings.TrimLeft(p.tok.Data, whitespaceOrNUL) == ""
-		}
-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "\ufffd", -1)
-		p.addText(p.tok.Data)
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case StartTagToken:
-		b := breakout[p.tok.Data]
-		if p.tok.DataAtom == a.Font {
-		loop:
-			for _, attr := range p.tok.Attr {
-				switch attr.Key {
-				case "color", "face", "size":
-					b = true
-					break loop
-				}
-			}
-		}
-		if b {
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				n := p.oe[i]
-				if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
-					p.oe = p.oe[:i+1]
-					break
-				}
-			}
-			return false
-		}
-		switch p.top().Namespace {
-		case "math":
-			adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-		case "svg":
-			// Adjust SVG tag names. The tokenizer lower-cases tag names, but
-			// SVG wants e.g. "foreignObject" with a capital second "O".
-			if x := svgTagNameAdjustments[p.tok.Data]; x != "" {
-				p.tok.DataAtom = a.Lookup([]byte(x))
-				p.tok.Data = x
-			}
-			adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-		default:
-			panic("html: bad parser state: unexpected namespace")
-		}
-		adjustForeignAttributes(p.tok.Attr)
-		namespace := p.top().Namespace
-		p.addElement()
-		p.top().Namespace = namespace
-		if namespace != "" {
-			// Don't let the tokenizer go into raw text mode in foreign content
-			// (e.g. in an SVG <title> tag).
-			p.tokenizer.NextIsNotRawText()
-		}
-		if p.hasSelfClosingToken {
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		}
-	case EndTagToken:
-		for i := len(p.oe) - 1; i >= 0; i-- {
-			if p.oe[i].Namespace == "" {
-				return p.im(p)
-			}
-			if strings.EqualFold(p.oe[i].Data, p.tok.Data) {
-				p.oe = p.oe[:i]
-				break
-			}
-		}
-		return true
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.
-func (p *parser) inForeignContent() bool {
-	if len(p.oe) == 0 {
-		return false
-	}
-	n := p.oe[len(p.oe)-1]
-	if n.Namespace == "" {
-		return false
-	}
-	if mathMLTextIntegrationPoint(n) {
-		if p.tok.Type == StartTagToken && p.tok.DataAtom != a.Mglyph && p.tok.DataAtom != a.Malignmark {
-			return false
-		}
-		if p.tok.Type == TextToken {
-			return false
-		}
-	}
-	if n.Namespace == "math" && n.DataAtom == a.AnnotationXml && p.tok.Type == StartTagToken && p.tok.DataAtom == a.Svg {
-		return false
-	}
-	if htmlIntegrationPoint(n) && (p.tok.Type == StartTagToken || p.tok.Type == TextToken) {
-		return false
-	}
-	if p.tok.Type == ErrorToken {
-		return false
-	}
-	return true
-}
-
-// parseImpliedToken parses a token as though it had appeared in the parser's
-// input.
-func (p *parser) parseImpliedToken(t TokenType, dataAtom a.Atom, data string) {
-	realToken, selfClosing := p.tok, p.hasSelfClosingToken
-	p.tok = Token{
-		Type:     t,
-		DataAtom: dataAtom,
-		Data:     data,
-	}
-	p.hasSelfClosingToken = false
-	p.parseCurrentToken()
-	p.tok, p.hasSelfClosingToken = realToken, selfClosing
-}
-
-// parseCurrentToken runs the current token through the parsing routines
-// until it is consumed.
-func (p *parser) parseCurrentToken() {
-	if p.tok.Type == SelfClosingTagToken {
-		p.hasSelfClosingToken = true
-		p.tok.Type = StartTagToken
-	}
-
-	consumed := false
-	for !consumed {
-		if p.inForeignContent() {
-			consumed = parseForeignContent(p)
-		} else {
-			consumed = p.im(p)
-		}
-	}
-
-	if p.hasSelfClosingToken {
-		// This is a parse error, but ignore it.
-		p.hasSelfClosingToken = false
-	}
-}
-
-func (p *parser) parse() error {
-	// Iterate until EOF. Any other error will cause an early return.
-	var err error
-	for err != io.EOF {
-		// CDATA sections are allowed only in foreign content.
-		n := p.oe.top()
-		p.tokenizer.AllowCDATA(n != nil && n.Namespace != "")
-		// Read and parse the next token.
-		p.tokenizer.Next()
-		p.tok = p.tokenizer.Token()
-		if p.tok.Type == ErrorToken {
-			err = p.tokenizer.Err()
-			if err != nil && err != io.EOF {
-				return err
-			}
-		}
-		p.parseCurrentToken()
-	}
-	return nil
-}
-
-// Parse returns the parse tree for the HTML from the given Reader.
-// The input is assumed to be UTF-8 encoded.
-func Parse(r io.Reader) (*Node, error) {
-	p := &parser{
-		tokenizer: NewTokenizer(r),
-		doc: &Node{
-			Type: DocumentNode,
-		},
-		scripting:  true,
-		framesetOK: true,
-		im:         initialIM,
-	}
-	err := p.parse()
-	if err != nil {
-		return nil, err
-	}
-	return p.doc, nil
-}
-
-// ParseFragment parses a fragment of HTML and returns the nodes that were
-// found. If the fragment is the InnerHTML for an existing element, pass that
-// element in context.
-func ParseFragment(r io.Reader, context *Node) ([]*Node, error) {
-	contextTag := ""
-	if context != nil {
-		if context.Type != ElementNode {
-			return nil, errors.New("html: ParseFragment of non-element Node")
-		}
-		// The next check isn't just context.DataAtom.String() == context.Data because
-		// it is valid to pass an element whose tag isn't a known atom. For example,
-		// DataAtom == 0 and Data = "tagfromthefuture" is perfectly consistent.
-		if context.DataAtom != a.Lookup([]byte(context.Data)) {
-			return nil, fmt.Errorf("html: inconsistent Node: DataAtom=%q, Data=%q", context.DataAtom, context.Data)
-		}
-		contextTag = context.DataAtom.String()
-	}
-	p := &parser{
-		tokenizer: NewTokenizerFragment(r, contextTag),
-		doc: &Node{
-			Type: DocumentNode,
-		},
-		scripting: true,
-		fragment:  true,
-		context:   context,
-	}
-
-	root := &Node{
-		Type:     ElementNode,
-		DataAtom: a.Html,
-		Data:     a.Html.String(),
-	}
-	p.doc.AppendChild(root)
-	p.oe = nodeStack{root}
-	p.resetInsertionMode()
-
-	for n := context; n != nil; n = n.Parent {
-		if n.Type == ElementNode && n.DataAtom == a.Form {
-			p.form = n
-			break
-		}
-	}
-
-	err := p.parse()
-	if err != nil {
-		return nil, err
-	}
-
-	parent := p.doc
-	if context != nil {
-		parent = root
-	}
-
-	var result []*Node
-	for c := parent.FirstChild; c != nil; {
-		next := c.NextSibling
-		parent.RemoveChild(c)
-		result = append(result, c)
-		c = next
-	}
-	return result, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/parse_test.go gcc-4.8.1/libgo/go/exp/html/parse_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/parse_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/parse_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,390 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bufio"
-	"bytes"
-	"errors"
-	"exp/html/atom"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-	"runtime"
-	"sort"
-	"strings"
-	"testing"
-)
-
-// readParseTest reads a single test case from r.
-func readParseTest(r *bufio.Reader) (text, want, context string, err error) {
-	line, err := r.ReadSlice('\n')
-	if err != nil {
-		return "", "", "", err
-	}
-	var b []byte
-
-	// Read the HTML.
-	if string(line) != "#data\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#data\n"`, line)
-	}
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		if line[0] == '#' {
-			break
-		}
-		b = append(b, line...)
-	}
-	text = string(b)
-	if strings.HasSuffix(text, "\n") {
-		text = text[:len(text)-1]
-	}
-	b = b[:0]
-
-	// Skip the error list.
-	if string(line) != "#errors\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#errors\n"`, line)
-	}
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		if line[0] == '#' {
-			break
-		}
-	}
-
-	if string(line) == "#document-fragment\n" {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		context = strings.TrimSpace(string(line))
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-	}
-
-	// Read the dump of what the parse tree should be.
-	if string(line) != "#document\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#document\n"`, line)
-	}
-	inQuote := false
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil && err != io.EOF {
-			return "", "", "", err
-		}
-		trimmed := bytes.Trim(line, "| \n")
-		if len(trimmed) > 0 {
-			if line[0] == '|' && trimmed[0] == '"' {
-				inQuote = true
-			}
-			if trimmed[len(trimmed)-1] == '"' && !(line[0] == '|' && len(trimmed) == 1) {
-				inQuote = false
-			}
-		}
-		if len(line) == 0 || len(line) == 1 && line[0] == '\n' && !inQuote {
-			break
-		}
-		b = append(b, line...)
-	}
-	return text, string(b), context, nil
-}
-
-func dumpIndent(w io.Writer, level int) {
-	io.WriteString(w, "| ")
-	for i := 0; i < level; i++ {
-		io.WriteString(w, "  ")
-	}
-}
-
-type sortedAttributes []Attribute
-
-func (a sortedAttributes) Len() int {
-	return len(a)
-}
-
-func (a sortedAttributes) Less(i, j int) bool {
-	if a[i].Namespace != a[j].Namespace {
-		return a[i].Namespace < a[j].Namespace
-	}
-	return a[i].Key < a[j].Key
-}
-
-func (a sortedAttributes) Swap(i, j int) {
-	a[i], a[j] = a[j], a[i]
-}
-
-func dumpLevel(w io.Writer, n *Node, level int) error {
-	dumpIndent(w, level)
-	switch n.Type {
-	case ErrorNode:
-		return errors.New("unexpected ErrorNode")
-	case DocumentNode:
-		return errors.New("unexpected DocumentNode")
-	case ElementNode:
-		if n.Namespace != "" {
-			fmt.Fprintf(w, "<%s %s>", n.Namespace, n.Data)
-		} else {
-			fmt.Fprintf(w, "<%s>", n.Data)
-		}
-		attr := sortedAttributes(n.Attr)
-		sort.Sort(attr)
-		for _, a := range attr {
-			io.WriteString(w, "\n")
-			dumpIndent(w, level+1)
-			if a.Namespace != "" {
-				fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val)
-			} else {
-				fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
-			}
-		}
-	case TextNode:
-		fmt.Fprintf(w, `"%s"`, n.Data)
-	case CommentNode:
-		fmt.Fprintf(w, "<!-- %s -->", n.Data)
-	case DoctypeNode:
-		fmt.Fprintf(w, "<!DOCTYPE %s", n.Data)
-		if n.Attr != nil {
-			var p, s string
-			for _, a := range n.Attr {
-				switch a.Key {
-				case "public":
-					p = a.Val
-				case "system":
-					s = a.Val
-				}
-			}
-			if p != "" || s != "" {
-				fmt.Fprintf(w, ` "%s"`, p)
-				fmt.Fprintf(w, ` "%s"`, s)
-			}
-		}
-		io.WriteString(w, ">")
-	case scopeMarkerNode:
-		return errors.New("unexpected scopeMarkerNode")
-	default:
-		return errors.New("unknown node type")
-	}
-	io.WriteString(w, "\n")
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := dumpLevel(w, c, level+1); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-func dump(n *Node) (string, error) {
-	if n == nil || n.FirstChild == nil {
-		return "", nil
-	}
-	var b bytes.Buffer
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := dumpLevel(&b, c, 0); err != nil {
-			return "", err
-		}
-	}
-	return b.String(), nil
-}
-
-const testDataDir = "testdata/webkit/"
-
-func TestParser(t *testing.T) {
-	testFiles, err := filepath.Glob(testDataDir + "*.dat")
-	if err != nil {
-		t.Fatal(err)
-	}
-	for _, tf := range testFiles {
-		f, err := os.Open(tf)
-		if err != nil {
-			t.Fatal(err)
-		}
-		defer f.Close()
-		r := bufio.NewReader(f)
-
-		for i := 0; ; i++ {
-			text, want, context, err := readParseTest(r)
-			if err == io.EOF {
-				break
-			}
-			if err != nil {
-				t.Fatal(err)
-			}
-
-			err = testParseCase(text, want, context)
-
-			if err != nil {
-				t.Errorf("%s test #%d %q, %s", tf, i, text, err)
-			}
-		}
-	}
-}
-
-// testParseCase tests one test case from the test files. If the test does not
-// pass, it returns an error that explains the failure.
-// text is the HTML to be parsed, want is a dump of the correct parse tree,
-// and context is the name of the context node, if any.
-func testParseCase(text, want, context string) (err error) {
-	defer func() {
-		if x := recover(); x != nil {
-			switch e := x.(type) {
-			case error:
-				err = e
-			default:
-				err = fmt.Errorf("%v", e)
-			}
-		}
-	}()
-
-	var doc *Node
-	if context == "" {
-		doc, err = Parse(strings.NewReader(text))
-		if err != nil {
-			return err
-		}
-	} else {
-		contextNode := &Node{
-			Type:     ElementNode,
-			DataAtom: atom.Lookup([]byte(context)),
-			Data:     context,
-		}
-		nodes, err := ParseFragment(strings.NewReader(text), contextNode)
-		if err != nil {
-			return err
-		}
-		doc = &Node{
-			Type: DocumentNode,
-		}
-		for _, n := range nodes {
-			doc.AppendChild(n)
-		}
-	}
-
-	if err := checkTreeConsistency(doc); err != nil {
-		return err
-	}
-
-	got, err := dump(doc)
-	if err != nil {
-		return err
-	}
-	// Compare the parsed tree to the #document section.
-	if got != want {
-		return fmt.Errorf("got vs want:\n----\n%s----\n%s----", got, want)
-	}
-
-	if renderTestBlacklist[text] || context != "" {
-		return nil
-	}
-
-	// Check that rendering and re-parsing results in an identical tree.
-	pr, pw := io.Pipe()
-	go func() {
-		pw.CloseWithError(Render(pw, doc))
-	}()
-	doc1, err := Parse(pr)
-	if err != nil {
-		return err
-	}
-	got1, err := dump(doc1)
-	if err != nil {
-		return err
-	}
-	if got != got1 {
-		return fmt.Errorf("got vs got1:\n----\n%s----\n%s----", got, got1)
-	}
-
-	return nil
-}
-
-// Some test input result in parse trees are not 'well-formed' despite
-// following the HTML5 recovery algorithms. Rendering and re-parsing such a
-// tree will not result in an exact clone of that tree. We blacklist such
-// inputs from the render test.
-var renderTestBlacklist = map[string]bool{
-	// The second <a> will be reparented to the first <table>'s parent. This
-	// results in an <a> whose parent is an <a>, which is not 'well-formed'.
-	`<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y`: true,
-	// The same thing with a <p>:
-	`<p><table></p>`: true,
-	// More cases of <a> being reparented:
-	`<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe`: true,
-	`<a><table><a></table><p><a><div><a>`:                                     true,
-	`<a><table><td><a><table></table><a></tr><a></table><a>`:                  true,
-	// A similar reparenting situation involving <nobr>:
-	`<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3`: true,
-	// A <plaintext> element is reparented, putting it before a table.
-	// A <plaintext> element can't have anything after it in HTML.
-	`<table><plaintext><td>`:                                   true,
-	`<!doctype html><table><plaintext></plaintext>`:            true,
-	`<!doctype html><table><tbody><plaintext></plaintext>`:     true,
-	`<!doctype html><table><tbody><tr><plaintext></plaintext>`: true,
-	// A form inside a table inside a form doesn't work either.
-	`<!doctype html><form><table></form><form></table></form>`: true,
-	// A script that ends at EOF may escape its own closing tag when rendered.
-	`<!doctype html><script><!--<script `:          true,
-	`<!doctype html><script><!--<script <`:         true,
-	`<!doctype html><script><!--<script <a`:        true,
-	`<!doctype html><script><!--<script </`:        true,
-	`<!doctype html><script><!--<script </s`:       true,
-	`<!doctype html><script><!--<script </script`:  true,
-	`<!doctype html><script><!--<script </scripta`: true,
-	`<!doctype html><script><!--<script -`:         true,
-	`<!doctype html><script><!--<script -a`:        true,
-	`<!doctype html><script><!--<script -<`:        true,
-	`<!doctype html><script><!--<script --`:        true,
-	`<!doctype html><script><!--<script --a`:       true,
-	`<!doctype html><script><!--<script --<`:       true,
-	`<script><!--<script `:                         true,
-	`<script><!--<script <a`:                       true,
-	`<script><!--<script </script`:                 true,
-	`<script><!--<script </scripta`:                true,
-	`<script><!--<script -`:                        true,
-	`<script><!--<script -a`:                       true,
-	`<script><!--<script --`:                       true,
-	`<script><!--<script --a`:                      true,
-	`<script><!--<script <`:                        true,
-	`<script><!--<script </`:                       true,
-	`<script><!--<script </s`:                      true,
-	// Reconstructing the active formatting elements results in a <plaintext>
-	// element that contains an <a> element.
-	`<!doctype html><p><a><plaintext>b`: true,
-}
-
-func TestNodeConsistency(t *testing.T) {
-	// inconsistentNode is a Node whose DataAtom and Data do not agree.
-	inconsistentNode := &Node{
-		Type:     ElementNode,
-		DataAtom: atom.Frameset,
-		Data:     "table",
-	}
-	_, err := ParseFragment(strings.NewReader("<p>hello</p>"), inconsistentNode)
-	if err == nil {
-		t.Errorf("got nil error, want non-nil")
-	}
-}
-
-func BenchmarkParser(b *testing.B) {
-	buf, err := ioutil.ReadFile("testdata/go1.html")
-	if err != nil {
-		b.Fatalf("could not read testdata/go1.html: %v", err)
-	}
-	b.SetBytes(int64(len(buf)))
-	runtime.GC()
-	b.ReportAllocs()
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		Parse(bytes.NewBuffer(buf))
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/render.go gcc-4.8.1/libgo/go/exp/html/render.go
--- gcc-4.8.1.orig/libgo/go/exp/html/render.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/render.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,271 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"io"
-	"strings"
-)
-
-type writer interface {
-	io.Writer
-	io.ByteWriter
-	WriteString(string) (int, error)
-}
-
-// Render renders the parse tree n to the given writer.
-//
-// Rendering is done on a 'best effort' basis: calling Parse on the output of
-// Render will always result in something similar to the original tree, but it
-// is not necessarily an exact clone unless the original tree was 'well-formed'.
-// 'Well-formed' is not easily specified; the HTML5 specification is
-// complicated.
-//
-// Calling Parse on arbitrary input typically results in a 'well-formed' parse
-// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree.
-// For example, in a 'well-formed' parse tree, no <a> element is a child of
-// another <a> element: parsing "<a><a>" results in two sibling elements.
-// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a
-// <table> element: parsing "<p><table><a>" results in a <p> with two sibling
-// children; the <a> is reparented to the <table>'s parent. However, calling
-// Parse on "<a><table><a>" does not return an error, but the result has an <a>
-// element with an <a> child, and is therefore not 'well-formed'.
-//
-// Programmatically constructed trees are typically also 'well-formed', but it
-// is possible to construct a tree that looks innocuous but, when rendered and
-// re-parsed, results in a different tree. A simple example is that a solitary
-// text node would become a tree containing <html>, <head> and <body> elements.
-// Another example is that the programmatic equivalent of "a<head>b</head>c"
-// becomes "<html><head><head/><body>abc</body></html>".
-func Render(w io.Writer, n *Node) error {
-	if x, ok := w.(writer); ok {
-		return render(x, n)
-	}
-	buf := bufio.NewWriter(w)
-	if err := render(buf, n); err != nil {
-		return err
-	}
-	return buf.Flush()
-}
-
-// plaintextAbort is returned from render1 when a <plaintext> element
-// has been rendered. No more end tags should be rendered after that.
-var plaintextAbort = errors.New("html: internal error (plaintext abort)")
-
-func render(w writer, n *Node) error {
-	err := render1(w, n)
-	if err == plaintextAbort {
-		err = nil
-	}
-	return err
-}
-
-func render1(w writer, n *Node) error {
-	// Render non-element nodes; these are the easy cases.
-	switch n.Type {
-	case ErrorNode:
-		return errors.New("html: cannot render an ErrorNode node")
-	case TextNode:
-		return escape(w, n.Data)
-	case DocumentNode:
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if err := render1(w, c); err != nil {
-				return err
-			}
-		}
-		return nil
-	case ElementNode:
-		// No-op.
-	case CommentNode:
-		if _, err := w.WriteString("<!--"); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(n.Data); err != nil {
-			return err
-		}
-		if _, err := w.WriteString("-->"); err != nil {
-			return err
-		}
-		return nil
-	case DoctypeNode:
-		if _, err := w.WriteString("<!DOCTYPE "); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(n.Data); err != nil {
-			return err
-		}
-		if n.Attr != nil {
-			var p, s string
-			for _, a := range n.Attr {
-				switch a.Key {
-				case "public":
-					p = a.Val
-				case "system":
-					s = a.Val
-				}
-			}
-			if p != "" {
-				if _, err := w.WriteString(" PUBLIC "); err != nil {
-					return err
-				}
-				if err := writeQuoted(w, p); err != nil {
-					return err
-				}
-				if s != "" {
-					if err := w.WriteByte(' '); err != nil {
-						return err
-					}
-					if err := writeQuoted(w, s); err != nil {
-						return err
-					}
-				}
-			} else if s != "" {
-				if _, err := w.WriteString(" SYSTEM "); err != nil {
-					return err
-				}
-				if err := writeQuoted(w, s); err != nil {
-					return err
-				}
-			}
-		}
-		return w.WriteByte('>')
-	default:
-		return errors.New("html: unknown node type")
-	}
-
-	// Render the <xxx> opening tag.
-	if err := w.WriteByte('<'); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(n.Data); err != nil {
-		return err
-	}
-	for _, a := range n.Attr {
-		if err := w.WriteByte(' '); err != nil {
-			return err
-		}
-		if a.Namespace != "" {
-			if _, err := w.WriteString(a.Namespace); err != nil {
-				return err
-			}
-			if err := w.WriteByte(':'); err != nil {
-				return err
-			}
-		}
-		if _, err := w.WriteString(a.Key); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(`="`); err != nil {
-			return err
-		}
-		if err := escape(w, a.Val); err != nil {
-			return err
-		}
-		if err := w.WriteByte('"'); err != nil {
-			return err
-		}
-	}
-	if voidElements[n.Data] {
-		if n.FirstChild != nil {
-			return fmt.Errorf("html: void element <%s> has child nodes", n.Data)
-		}
-		_, err := w.WriteString("/>")
-		return err
-	}
-	if err := w.WriteByte('>'); err != nil {
-		return err
-	}
-
-	// Add initial newline where there is danger of a newline beging ignored.
-	if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") {
-		switch n.Data {
-		case "pre", "listing", "textarea":
-			if err := w.WriteByte('\n'); err != nil {
-				return err
-			}
-		}
-	}
-
-	// Render any child nodes.
-	switch n.Data {
-	case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp":
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if c.Type == TextNode {
-				if _, err := w.WriteString(c.Data); err != nil {
-					return err
-				}
-			} else {
-				if err := render1(w, c); err != nil {
-					return err
-				}
-			}
-		}
-		if n.Data == "plaintext" {
-			// Don't render anything else. <plaintext> must be the
-			// last element in the file, with no closing tag.
-			return plaintextAbort
-		}
-	default:
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if err := render1(w, c); err != nil {
-				return err
-			}
-		}
-	}
-
-	// Render the </xxx> closing tag.
-	if _, err := w.WriteString("</"); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(n.Data); err != nil {
-		return err
-	}
-	return w.WriteByte('>')
-}
-
-// writeQuoted writes s to w surrounded by quotes. Normally it will use double
-// quotes, but if s contains a double quote, it will use single quotes.
-// It is used for writing the identifiers in a doctype declaration.
-// In valid HTML, they can't contain both types of quotes.
-func writeQuoted(w writer, s string) error {
-	var q byte = '"'
-	if strings.Contains(s, `"`) {
-		q = '\''
-	}
-	if err := w.WriteByte(q); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(s); err != nil {
-		return err
-	}
-	if err := w.WriteByte(q); err != nil {
-		return err
-	}
-	return nil
-}
-
-// Section 12.1.2, "Elements", gives this list of void elements. Void elements
-// are those that can't have any contents.
-var voidElements = map[string]bool{
-	"area":    true,
-	"base":    true,
-	"br":      true,
-	"col":     true,
-	"command": true,
-	"embed":   true,
-	"hr":      true,
-	"img":     true,
-	"input":   true,
-	"keygen":  true,
-	"link":    true,
-	"meta":    true,
-	"param":   true,
-	"source":  true,
-	"track":   true,
-	"wbr":     true,
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/render_test.go gcc-4.8.1/libgo/go/exp/html/render_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/render_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/render_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,156 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"testing"
-)
-
-func TestRenderer(t *testing.T) {
-	nodes := [...]*Node{
-		0: {
-			Type: ElementNode,
-			Data: "html",
-		},
-		1: {
-			Type: ElementNode,
-			Data: "head",
-		},
-		2: {
-			Type: ElementNode,
-			Data: "body",
-		},
-		3: {
-			Type: TextNode,
-			Data: "0<1",
-		},
-		4: {
-			Type: ElementNode,
-			Data: "p",
-			Attr: []Attribute{
-				{
-					Key: "id",
-					Val: "A",
-				},
-				{
-					Key: "foo",
-					Val: `abc"def`,
-				},
-			},
-		},
-		5: {
-			Type: TextNode,
-			Data: "2",
-		},
-		6: {
-			Type: ElementNode,
-			Data: "b",
-			Attr: []Attribute{
-				{
-					Key: "empty",
-					Val: "",
-				},
-			},
-		},
-		7: {
-			Type: TextNode,
-			Data: "3",
-		},
-		8: {
-			Type: ElementNode,
-			Data: "i",
-			Attr: []Attribute{
-				{
-					Key: "backslash",
-					Val: `\`,
-				},
-			},
-		},
-		9: {
-			Type: TextNode,
-			Data: "&4",
-		},
-		10: {
-			Type: TextNode,
-			Data: "5",
-		},
-		11: {
-			Type: ElementNode,
-			Data: "blockquote",
-		},
-		12: {
-			Type: ElementNode,
-			Data: "br",
-		},
-		13: {
-			Type: TextNode,
-			Data: "6",
-		},
-	}
-
-	// Build a tree out of those nodes, based on a textual representation.
-	// Only the ".\t"s are significant. The trailing HTML-like text is
-	// just commentary. The "0:" prefixes are for easy cross-reference with
-	// the nodes array.
-	treeAsText := [...]string{
-		0: `<html>`,
-		1: `.	<head>`,
-		2: `.	<body>`,
-		3: `.	.	"0&lt;1"`,
-		4: `.	.	<p id="A" foo="abc&#34;def">`,
-		5: `.	.	.	"2"`,
-		6: `.	.	.	<b empty="">`,
-		7: `.	.	.	.	"3"`,
-		8: `.	.	.	<i backslash="\">`,
-		9: `.	.	.	.	"&amp;4"`,
-		10: `.	.	"5"`,
-		11: `.	.	<blockquote>`,
-		12: `.	.	<br>`,
-		13: `.	.	"6"`,
-	}
-	if len(nodes) != len(treeAsText) {
-		t.Fatal("len(nodes) != len(treeAsText)")
-	}
-	var stack [8]*Node
-	for i, line := range treeAsText {
-		level := 0
-		for line[0] == '.' {
-			// Strip a leading ".\t".
-			line = line[2:]
-			level++
-		}
-		n := nodes[i]
-		if level == 0 {
-			if stack[0] != nil {
-				t.Fatal("multiple root nodes")
-			}
-			stack[0] = n
-		} else {
-			stack[level-1].AppendChild(n)
-			stack[level] = n
-			for i := level + 1; i < len(stack); i++ {
-				stack[i] = nil
-			}
-		}
-		// At each stage of tree construction, we check all nodes for consistency.
-		for j, m := range nodes {
-			if err := checkNodeConsistency(m); err != nil {
-				t.Fatalf("i=%d, j=%d: %v", i, j, err)
-			}
-		}
-	}
-
-	want := `<html><head></head><body>0&lt;1<p id="A" foo="abc&#34;def">` +
-		`2<b empty="">3</b><i backslash="\">&amp;4</i></p>` +
-		`5<blockquote></blockquote><br/>6</body></html>`
-	b := new(bytes.Buffer)
-	if err := Render(b, nodes[0]); err != nil {
-		t.Fatal(err)
-	}
-	if got := b.String(); got != want {
-		t.Errorf("got vs want:\n%s\n%s\n", got, want)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/go1.html gcc-4.8.1/libgo/go/exp/html/testdata/go1.html
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/go1.html	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/go1.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,2237 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-  <title>Go 1 Release Notes - The Go Programming Language</title>
-
-<link type="text/css" rel="stylesheet" href="/doc/style.css">
-<script type="text/javascript" src="/doc/godocs.js"></script>
-
-<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" />
-
-<script type="text/javascript">
-var _gaq = _gaq || [];
-_gaq.push(["_setAccount", "UA-11222381-2"]);
-_gaq.push(["_trackPageview"]);
-</script>
-</head>
-<body>
-
-<div id="topbar"><div class="container wide">
-
-<form method="GET" action="/search">
-<div id="menu">
-<a href="/doc/">Documents</a>
-<a href="/ref/">References</a>
-<a href="/pkg/">Packages</a>
-<a href="/project/">The Project</a>
-<a href="/help/">Help</a>
-<input type="text" id="search" name="q" class="inactive" value="Search">
-</div>
-<div id="heading"><a href="/">The Go Programming Language</a></div>
-</form>
-
-</div></div>
-
-<div id="page" class="wide">
-
-
-  <div id="plusone"><g:plusone size="small" annotation="none"></g:plusone></div>
-  <h1>Go 1 Release Notes</h1>
-
-
-
-
-<div id="nav"></div>
-
-
-
-
-<h2 id="introduction">Introduction to Go 1</h2>
-
-<p>
-Go version 1, Go 1 for short, defines a language and a set of core libraries
-that provide a stable foundation for creating reliable products, projects, and
-publications.
-</p>
-
-<p>
-The driving motivation for Go 1 is stability for its users. People should be able to
-write Go programs and expect that they will continue to compile and run without
-change, on a time scale of years, including in production environments such as
-Google App Engine. Similarly, people should be able to write books about Go, be
-able to say which version of Go the book is describing, and have that version
-number still be meaningful much later.
-</p>
-
-<p>
-Code that compiles in Go 1 should, with few exceptions, continue to compile and
-run throughout the lifetime of that version, even as we issue updates and bug
-fixes such as Go version 1.1, 1.2, and so on. Other than critical fixes, changes
-made to the language and library for subsequent releases of Go 1 may
-add functionality but will not break existing Go 1 programs.
-<a href="go1compat.html">The Go 1 compatibility document</a>
-explains the compatibility guidelines in more detail.
-</p>
-
-<p>
-Go 1 is a representation of Go as it used today, not a wholesale rethinking of
-the language. We avoided designing new features and instead focused on cleaning
-up problems and inconsistencies and improving portability. There are a number
-changes to the Go language and packages that we had considered for some time and
-prototyped but not released primarily because they are significant and
-backwards-incompatible. Go 1 was an opportunity to get them out, which is
-helpful for the long term, but also means that Go 1 introduces incompatibilities
-for old programs. Fortunately, the <code>go</code> <code>fix</code> tool can
-automate much of the work needed to bring programs up to the Go 1 standard.
-</p>
-
-<p>
-This document outlines the major changes in Go 1 that will affect programmers
-updating existing code; its reference point is the prior release, r60 (tagged as
-r60.3). It also explains how to update code from r60 to run under Go 1.
-</p>
-
-<h2 id="language">Changes to the language</h2>
-
-<h3 id="append">Append</h3>
-
-<p>
-The <code>append</code> predeclared variadic function makes it easy to grow a slice
-by adding elements to the end.
-A common use is to add bytes to the end of a byte slice when generating output.
-However, <code>append</code> did not provide a way to append a string to a <code>[]byte</code>,
-which is another common case.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/greeting := ..byte/` `/append.*hello/`}}
--->    greeting := []byte{}
-    greeting = append(greeting, []byte(&#34;hello &#34;)...)</pre>
-
-<p>
-By analogy with the similar property of <code>copy</code>, Go 1
-permits a string to be appended (byte-wise) directly to a byte
-slice, reducing the friction between strings and byte slices.
-The conversion is no longer necessary:
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/append.*world/`}}
--->    greeting = append(greeting, &#34;world&#34;...)</pre>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes.
-</p>
-
-<h3 id="close">Close</h3>
-
-<p>
-The <code>close</code> predeclared function provides a mechanism
-for a sender to signal that no more values will be sent.
-It is important to the implementation of <code>for</code> <code>range</code>
-loops over channels and is helpful in other situations.
-Partly by design and partly because of race conditions that can occur otherwise,
-it is intended for use only by the goroutine sending on the channel,
-not by the goroutine receiving data.
-However, before Go 1 there was no compile-time checking that <code>close</code>
-was being used correctly.
-</p>
-
-<p>
-To close this gap, at least in part, Go 1 disallows <code>close</code> on receive-only channels.
-Attempting to close such a channel is a compile-time error.
-</p>
-
-<pre>
-    var c chan int
-    var csend chan&lt;- int = c
-    var crecv &lt;-chan int = c
-    close(c)     // legal
-    close(csend) // legal
-    close(crecv) // illegal
-</pre>
-
-<p>
-<em>Updating</em>:
-Existing code that attempts to close a receive-only channel was
-erroneous even before Go 1 and should be fixed.  The compiler will
-now reject such code.
-</p>
-
-<h3 id="literals">Composite literals</h3>
-
-<p>
-In Go 1, a composite literal of array, slice, or map type can elide the
-type specification for the elements' initializers if they are of pointer type.
-All four of the initializations in this example are legal; the last one was illegal before Go 1.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/type Date struct/` `/STOP/`}}
--->    type Date struct {
-        month string
-        day   int
-    }
-    <span class="comment">// Struct values, fully qualified; always legal.</span>
-    holiday1 := []Date{
-        Date{&#34;Feb&#34;, 14},
-        Date{&#34;Nov&#34;, 11},
-        Date{&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Struct values, type name elided; always legal.</span>
-    holiday2 := []Date{
-        {&#34;Feb&#34;, 14},
-        {&#34;Nov&#34;, 11},
-        {&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Pointers, fully qualified, always legal.</span>
-    holiday3 := []*Date{
-        &amp;Date{&#34;Feb&#34;, 14},
-        &amp;Date{&#34;Nov&#34;, 11},
-        &amp;Date{&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Pointers, type name elided; legal in Go 1.</span>
-    holiday4 := []*Date{
-        {&#34;Feb&#34;, 14},
-        {&#34;Nov&#34;, 11},
-        {&#34;Dec&#34;, 25},
-    }</pre>
-
-<p>
-<em>Updating</em>:
-This change has no effect on existing code, but the command
-<code>gofmt</code> <code>-s</code> applied to existing source
-will, among other things, elide explicit element types wherever permitted.
-</p>
-
-
-<h3 id="init">Goroutines during init</h3>
-
-<p>
-The old language defined that <code>go</code> statements executed during initialization created goroutines but that they did not begin to run until initialization of the entire program was complete.
-This introduced clumsiness in many places and, in effect, limited the utility
-of the <code>init</code> construct:
-if it was possible for another package to use the library during initialization, the library
-was forced to avoid goroutines.
-This design was done for reasons of simplicity and safety but,
-as our confidence in the language grew, it seemed unnecessary.
-Running goroutines during initialization is no more complex or unsafe than running them during normal execution.
-</p>
-
-<p>
-In Go 1, code that uses goroutines can be called from
-<code>init</code> routines and global initialization expressions
-without introducing a deadlock.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/PackageGlobal/` `/^}/`}}
--->var PackageGlobal int
-
-func init() {
-    c := make(chan int)
-    go initializationFunction(c)
-    PackageGlobal = &lt;-c
-}</pre>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes,
-although it's possible that code that depends on goroutines not starting before <code>main</code> will break.
-There was no such code in the standard repository.
-</p>
-
-<h3 id="rune">The rune type</h3>
-
-<p>
-The language spec allows the <code>int</code> type to be 32 or 64 bits wide, but current implementations set <code>int</code> to 32 bits even on 64-bit platforms.
-It would be preferable to have <code>int</code> be 64 bits on 64-bit platforms.
-(There are important consequences for indexing large slices.)
-However, this change would waste space when processing Unicode characters with
-the old language because the <code>int</code> type was also used to hold Unicode code points: each code point would waste an extra 32 bits of storage if <code>int</code> grew from 32 bits to 64.
-</p>
-
-<p>
-To make changing to 64-bit <code>int</code> feasible,
-Go 1 introduces a new basic type, <code>rune</code>, to represent
-individual Unicode code points.
-It is an alias for <code>int32</code>, analogous to <code>byte</code>
-as an alias for <code>uint8</code>.
-</p>
-
-<p>
-Character literals such as <code>'a'</code>, <code>'èªž'</code>, and <code>'\u0345'</code>
-now have default type <code>rune</code>,
-analogous to <code>1.0</code> having default type <code>float64</code>.
-A variable initialized to a character constant will therefore
-have type <code>rune</code> unless otherwise specified.
-</p>
-
-<p>
-Libraries have been updated to use <code>rune</code> rather than <code>int</code>
-when appropriate. For instance, the functions <code>unicode.ToLower</code> and
-relatives now take and return a <code>rune</code>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/STARTRUNE/` `/ENDRUNE/`}}
--->    delta := &#39;Î´&#39; <span class="comment">// delta has type rune.</span>
-    var DELTA rune
-    DELTA = unicode.ToUpper(delta)
-    epsilon := unicode.ToLower(DELTA + 1)
-    if epsilon != &#39;Î´&#39;+1 {
-        log.Fatal(&#34;inconsistent casing for Greek&#34;)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-Most source code will be unaffected by this because the type inference from
-<code>:=</code> initializers introduces the new type silently, and it propagates
-from there.
-Some code may get type errors that a trivial conversion will resolve.
-</p>
-
-<h3 id="error">The error type</h3>
-
-<p>
-Go 1 introduces a new built-in type, <code>error</code>, which has the following definition:
-</p>
-
-<pre>
-    type error interface {
-        Error() string
-    }
-</pre>
-
-<p>
-Since the consequences of this type are all in the package library,
-it is discussed <a href="#errors">below</a>.
-</p>
-
-<h3 id="delete">Deleting from maps</h3>
-
-<p>
-In the old language, to delete the entry with key <code>k</code> from map <code>m</code>, one wrote the statement,
-</p>
-
-<pre>
-    m[k] = value, false
-</pre>
-
-<p>
-This syntax was a peculiar special case, the only two-to-one assignment.
-It required passing a value (usually ignored) that is evaluated but discarded,
-plus a boolean that was nearly always the constant <code>false</code>.
-It did the job but was odd and a point of contention.
-</p>
-
-<p>
-In Go 1, that syntax has gone; instead there is a new built-in
-function, <code>delete</code>.  The call
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/delete\(m, k\)/`}}
--->    delete(m, k)</pre>
-
-<p>
-will delete the map entry retrieved by the expression <code>m[k]</code>.
-There is no return value. Deleting a non-existent entry is a no-op.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will convert expressions of the form <code>m[k] = value,
-false</code> into <code>delete(m, k)</code> when it is clear that
-the ignored value can be safely discarded from the program and
-<code>false</code> refers to the predefined boolean constant.
-The fix tool
-will flag other uses of the syntax for inspection by the programmer.
-</p>
-
-<h3 id="iteration">Iterating in maps</h3>
-
-<p>
-The old language specification did not define the order of iteration for maps,
-and in practice it differed across hardware platforms.
-This caused tests that iterated over maps to be fragile and non-portable, with the
-unpleasant property that a test might always pass on one machine but break on another.
-</p>
-
-<p>
-In Go 1, the order in which elements are visited when iterating
-over a map using a <code>for</code> <code>range</code> statement
-is defined to be unpredictable, even if the same loop is run multiple
-times with the same map.
-Code should not assume that the elements are visited in any particular order.
-</p>
-
-<p>
-This change means that code that depends on iteration order is very likely to break early and be fixed long before it becomes a problem.
-Just as important, it allows the map implementation to ensure better map balancing even when programs are using range loops to select an element from a map.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/Sunday/` `/^	}/`}}
--->    m := map[string]int{&#34;Sunday&#34;: 0, &#34;Monday&#34;: 1}
-    for name, value := range m {
-        <span class="comment">// This loop should not assume Sunday will be visited first.</span>
-        f(name, value)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-This is one change where tools cannot help.  Most existing code
-will be unaffected, but some programs may break or misbehave; we
-recommend manual checking of all range statements over maps to
-verify they do not depend on iteration order. There were a few such
-examples in the standard repository; they have been fixed.
-Note that it was already incorrect to depend on the iteration order, which
-was unspecified. This change codifies the unpredictability.
-</p>
-
-<h3 id="multiple_assignment">Multiple assignment</h3>
-
-<p>
-The language specification has long guaranteed that in assignments
-the right-hand-side expressions are all evaluated before any left-hand-side expressions are assigned.
-To guarantee predictable behavior,
-Go 1 refines the specification further.
-</p>
-
-<p>
-If the left-hand side of the assignment
-statement contains expressions that require evaluation, such as
-function calls or array indexing operations, these will all be done
-using the usual left-to-right rule before any variables are assigned
-their value.  Once everything is evaluated, the actual assignments
-proceed in left-to-right order.
-</p>
-
-<p>
-These examples illustrate the behavior.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/sa :=/` `/then sc.0. = 2/`}}
--->    sa := []int{1, 2, 3}
-    i := 0
-    i, sa[i] = 1, 2 <span class="comment">// sets i = 1, sa[0] = 2</span>
-
-    sb := []int{1, 2, 3}
-    j := 0
-    sb[j], j = 2, 1 <span class="comment">// sets sb[0] = 2, j = 1</span>
-
-    sc := []int{1, 2, 3}
-    sc[0], sc[0] = 1, 2 <span class="comment">// sets sc[0] = 1, then sc[0] = 2 (so sc[0] = 2 at end)</span></pre>
-
-<p>
-<em>Updating</em>:
-This is one change where tools cannot help, but breakage is unlikely.
-No code in the standard repository was broken by this change, and code
-that depended on the previous unspecified behavior was already incorrect.
-</p>
-
-<h3 id="shadowing">Returns and shadowed variables</h3>
-
-<p>
-A common mistake is to use <code>return</code> (without arguments) after an assignment to a variable that has the same name as a result variable but is not the same variable.
-This situation is called <em>shadowing</em>: the result variable has been shadowed by another variable with the same name declared in an inner scope.
-</p>
-
-<p>
-In functions with named return values,
-the Go 1 compilers disallow return statements without arguments if any of the named return values is shadowed at the point of the return statement.
-(It isn't part of the specification, because this is one area we are still exploring;
-the situation is analogous to the compilers rejecting functions that do not end with an explicit return statement.)
-</p>
-
-<p>
-This function implicitly returns a shadowed return value and will be rejected by the compiler:
-</p>
-
-<pre>
-    func Bug() (i, j, k int) {
-        for i = 0; i &lt; 5; i++ {
-            for j := 0; j &lt; 5; j++ { // Redeclares j.
-                k += i*j
-                if k > 100 {
-                    return // Rejected: j is shadowed here.
-                }
-            }
-        }
-        return // OK: j is not shadowed here.
-    }
-</pre>
-
-<p>
-<em>Updating</em>:
-Code that shadows return values in this way will be rejected by the compiler and will need to be fixed by hand.
-The few cases that arose in the standard repository were mostly bugs.
-</p>
-
-<h3 id="unexported">Copying structs with unexported fields</h3>
-
-<p>
-The old language did not allow a package to make a copy of a struct value containing unexported fields belonging to a different package.
-There was, however, a required exception for a method receiver;
-also, the implementations of <code>copy</code> and <code>append</code> have never honored the restriction.
-</p>
-
-<p>
-Go 1 will allow packages to copy struct values containing unexported fields from other packages.
-Besides resolving the inconsistency,
-this change admits a new kind of API: a package can return an opaque value without resorting to a pointer or interface.
-The new implementations of <code>time.Time</code> and
-<code>reflect.Value</code> are examples of types taking advantage of this new property.
-</p>
-
-<p>
-As an example, if package <code>p</code> includes the definitions,
-</p>
-
-<pre>
-    type Struct struct {
-        Public int
-        secret int
-    }
-    func NewStruct(a int) Struct {  // Note: not a pointer.
-        return Struct{a, f(a)}
-    }
-    func (s Struct) String() string {
-        return fmt.Sprintf("{%d (secret %d)}", s.Public, s.secret)
-    }
-</pre>
-
-<p>
-a package that imports <code>p</code> can assign and copy values of type
-<code>p.Struct</code> at will.
-Behind the scenes the unexported fields will be assigned and copied just
-as if they were exported,
-but the client code will never be aware of them. The code
-</p>
-
-<pre>
-    import "p"
-
-    myStruct := p.NewStruct(23)
-    copyOfMyStruct := myStruct
-    fmt.Println(myStruct, copyOfMyStruct)
-</pre>
-
-<p>
-will show that the secret field of the struct has been copied to the new value.
-</p>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes.
-</p>
-
-<h3 id="equality">Equality</h3>
-
-<p>
-Before Go 1, the language did not define equality on struct and array values.
-This meant,
-among other things, that structs and arrays could not be used as map keys.
-On the other hand, Go did define equality on function and map values.
-Function equality was problematic in the presence of closures
-(when are two closures equal?)
-while map equality compared pointers, not the maps' content, which was usually
-not what the user would want.
-</p>
-
-<p>
-Go 1 addressed these issues.
-First, structs and arrays can be compared for equality and inequality
-(<code>==</code> and <code>!=</code>),
-and therefore be used as map keys,
-provided they are composed from elements for which equality is also defined,
-using element-wise comparison.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/type Day struct/` `/Printf/`}}
--->    type Day struct {
-        long  string
-        short string
-    }
-    Christmas := Day{&#34;Christmas&#34;, &#34;XMas&#34;}
-    Thanksgiving := Day{&#34;Thanksgiving&#34;, &#34;Turkey&#34;}
-    holiday := map[Day]bool{
-        Christmas:    true,
-        Thanksgiving: true,
-    }
-    fmt.Printf(&#34;Christmas is a holiday: %t\n&#34;, holiday[Christmas])</pre>
-
-<p>
-Second, Go 1 removes the definition of equality for function values,
-except for comparison with <code>nil</code>.
-Finally, map equality is gone too, also except for comparison with <code>nil</code>.
-</p>
-
-<p>
-Note that equality is still undefined for slices, for which the
-calculation is in general infeasible.  Also note that the ordered
-comparison operators (<code>&lt;</code> <code>&lt;=</code>
-<code>&gt;</code> <code>&gt;=</code>) are still undefined for
-structs and arrays.
-
-<p>
-<em>Updating</em>:
-Struct and array equality is a new feature, so existing code needs no changes.
-Existing code that depends on function or map equality will be
-rejected by the compiler and will need to be fixed by hand.
-Few programs will be affected, but the fix may require some
-redesign.
-</p>
-
-<h2 id="packages">The package hierarchy</h2>
-
-<p>
-Go 1 addresses many deficiencies in the old standard library and
-cleans up a number of packages, making them more internally consistent
-and portable.
-</p>
-
-<p>
-This section describes how the packages have been rearranged in Go 1.
-Some have moved, some have been renamed, some have been deleted.
-New packages are described in later sections.
-</p>
-
-<h3 id="hierarchy">The package hierarchy</h3>
-
-<p>
-Go 1 has a rearranged package hierarchy that groups related items
-into subdirectories. For instance, <code>utf8</code> and
-<code>utf16</code> now occupy subdirectories of <code>unicode</code>.
-Also, <a href="#subrepo">some packages</a> have moved into
-subrepositories of
-<a href="http://code.google.com/p/go"><code>code.google.com/p/go</code></a>
-while <a href="#deleted">others</a> have been deleted outright.
-</p>
-
-<table class="codetable" frame="border" summary="Moved packages">
-<colgroup align="left" width="60%"></colgroup>
-<colgroup align="left" width="40%"></colgroup>
-<tr>
-<th align="left">Old path</th>
-<th align="left">New path</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>asn1</td> <td>encoding/asn1</td></tr>
-<tr><td>csv</td> <td>encoding/csv</td></tr>
-<tr><td>gob</td> <td>encoding/gob</td></tr>
-<tr><td>json</td> <td>encoding/json</td></tr>
-<tr><td>xml</td> <td>encoding/xml</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exp/template/html</td> <td>html/template</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>big</td> <td>math/big</td></tr>
-<tr><td>cmath</td> <td>math/cmplx</td></tr>
-<tr><td>rand</td> <td>math/rand</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>http</td> <td>net/http</td></tr>
-<tr><td>http/cgi</td> <td>net/http/cgi</td></tr>
-<tr><td>http/fcgi</td> <td>net/http/fcgi</td></tr>
-<tr><td>http/httptest</td> <td>net/http/httptest</td></tr>
-<tr><td>http/pprof</td> <td>net/http/pprof</td></tr>
-<tr><td>mail</td> <td>net/mail</td></tr>
-<tr><td>rpc</td> <td>net/rpc</td></tr>
-<tr><td>rpc/jsonrpc</td> <td>net/rpc/jsonrpc</td></tr>
-<tr><td>smtp</td> <td>net/smtp</td></tr>
-<tr><td>url</td> <td>net/url</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exec</td> <td>os/exec</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>scanner</td> <td>text/scanner</td></tr>
-<tr><td>tabwriter</td> <td>text/tabwriter</td></tr>
-<tr><td>template</td> <td>text/template</td></tr>
-<tr><td>template/parse</td> <td>text/template/parse</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>utf8</td> <td>unicode/utf8</td></tr>
-<tr><td>utf16</td> <td>unicode/utf16</td></tr>
-</table>
-
-<p>
-Note that the package names for the old <code>cmath</code> and
-<code>exp/template/html</code> packages have changed to <code>cmplx</code>
-and <code>template</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update all imports and package renames for packages that
-remain inside the standard repository.  Programs that import packages
-that are no longer in the standard repository will need to be edited
-by hand.
-</p>
-
-<h3 id="exp">The package tree exp</h3>
-
-<p>
-Because they are not standardized, the packages under the <code>exp</code> directory will not be available in the
-standard Go 1 release distributions, although they will be available in source code form
-in <a href="http://code.google.com/p/go/">the repository</a> for
-developers who wish to use them.
-</p>
-
-<p>
-Several packages have moved under <code>exp</code> at the time of Go 1's release:
-</p>
-
-<ul>
-<li><code>ebnf</code></li>
-<li><code>html</code><sup>&#8224;</sup></li>
-<li><code>go/types</code></li>
-</ul>
-
-<p>
-(<sup>&#8224;</sup>The <code>EscapeString</code> and <code>UnescapeString</code> types remain
-in package <code>html</code>.)
-</p>
-
-<p>
-All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc.
-</p>
-
-<p>
-Also, the <code>utf8.String</code> type has been moved to its own package, <code>exp/utf8string</code>.
-</p>
-
-<p>
-Finally, the <code>gotype</code> command now resides in <code>exp/gotype</code>, while
-<code>ebnflint</code> is now in <code>exp/ebnflint</code>.
-If they are installed, they now reside in <code>$GOROOT/bin/tool</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses packages in <code>exp</code> will need to be updated by hand,
-or else compiled from an installation that has <code>exp</code> available.
-The <code>go</code> <code>fix</code> tool or the compiler will complain about such uses.
-</p>
-
-<h3 id="old">The package tree old</h3>
-
-<p>
-Because they are deprecated, the packages under the <code>old</code> directory will not be available in the
-standard Go 1 release distributions, although they will be available in source code form for
-developers who wish to use them.
-</p>
-
-<p>
-The packages in their new locations are:
-</p>
-
-<ul>
-<li><code>old/netchan</code></li>
-<li><code>old/regexp</code></li>
-<li><code>old/template</code></li>
-</ul>
-
-<p>
-<em>Updating</em>:
-Code that uses packages now in <code>old</code> will need to be updated by hand,
-or else compiled from an installation that has <code>old</code> available.
-The <code>go</code> <code>fix</code> tool will warn about such uses.
-</p>
-
-<h3 id="deleted">Deleted packages</h3>
-
-<p>
-Go 1 deletes several packages outright:
-</p>
-
-<ul>
-<li><code>container/vector</code></li>
-<li><code>exp/datafmt</code></li>
-<li><code>go/typechecker</code></li>
-<li><code>try</code></li>
-</ul>
-
-<p>
-and also the command <code>gotry</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses <code>container/vector</code> should be updated to use
-slices directly.  See
-<a href="http://code.google.com/p/go-wiki/wiki/SliceTricks">the Go
-Language Community Wiki</a> for some suggestions.
-Code that uses the other packages (there should be almost zero) will need to be rethought.
-</p>
-
-<h3 id="subrepo">Packages moving to subrepositories</h3>
-
-<p>
-Go 1 has moved a number of packages into other repositories, usually sub-repositories of
-<a href="http://code.google.com/p/go/">the main Go repository</a>.
-This table lists the old and new import paths:
-
-<table class="codetable" frame="border" summary="Sub-repositories">
-<colgroup align="left" width="40%"></colgroup>
-<colgroup align="left" width="60%"></colgroup>
-<tr>
-<th align="left">Old</th>
-<th align="left">New</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>crypto/bcrypt</td> <td>code.google.com/p/go.crypto/bcrypt</tr>
-<tr><td>crypto/blowfish</td> <td>code.google.com/p/go.crypto/blowfish</tr>
-<tr><td>crypto/cast5</td> <td>code.google.com/p/go.crypto/cast5</tr>
-<tr><td>crypto/md4</td> <td>code.google.com/p/go.crypto/md4</tr>
-<tr><td>crypto/ocsp</td> <td>code.google.com/p/go.crypto/ocsp</tr>
-<tr><td>crypto/openpgp</td> <td>code.google.com/p/go.crypto/openpgp</tr>
-<tr><td>crypto/openpgp/armor</td> <td>code.google.com/p/go.crypto/openpgp/armor</tr>
-<tr><td>crypto/openpgp/elgamal</td> <td>code.google.com/p/go.crypto/openpgp/elgamal</tr>
-<tr><td>crypto/openpgp/errors</td> <td>code.google.com/p/go.crypto/openpgp/errors</tr>
-<tr><td>crypto/openpgp/packet</td> <td>code.google.com/p/go.crypto/openpgp/packet</tr>
-<tr><td>crypto/openpgp/s2k</td> <td>code.google.com/p/go.crypto/openpgp/s2k</tr>
-<tr><td>crypto/ripemd160</td> <td>code.google.com/p/go.crypto/ripemd160</tr>
-<tr><td>crypto/twofish</td> <td>code.google.com/p/go.crypto/twofish</tr>
-<tr><td>crypto/xtea</td> <td>code.google.com/p/go.crypto/xtea</tr>
-<tr><td>exp/ssh</td> <td>code.google.com/p/go.crypto/ssh</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
-<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr>
-<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr>
-<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>encoding/git85</td> <td>code.google.com/p/go.codereview/git85</tr>
-<tr><td>patch</td> <td>code.google.com/p/go.codereview/patch</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exp/wingui</td> <td>code.google.com/p/gowingui</tr>
-</table>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update imports of these packages to use the new import paths.
-Installations that depend on these packages will need to install them using
-a <code>go get</code> command.
-</p>
-
-<h2 id="major">Major changes to the library</h2>
-
-<p>
-This section describes significant changes to the core libraries, the ones that
-affect the most programs.
-</p>
-
-<h3 id="errors">The error type and errors package</h3>
-
-<p>
-The placement of <code>os.Error</code> in package <code>os</code> is mostly historical: errors first came up when implementing package <code>os</code>, and they seemed system-related at the time.
-Since then it has become clear that errors are more fundamental than the operating system.  For example, it would be nice to use <code>Errors</code> in packages that <code>os</code> depends on, like <code>syscall</code>.
-Also, having <code>Error</code> in <code>os</code> introduces many dependencies on <code>os</code> that would otherwise not exist.
-</p>
-
-<p>
-Go 1 solves these problems by introducing a built-in <code>error</code> interface type and a separate <code>errors</code> package (analogous to <code>bytes</code> and <code>strings</code>) that contains utility functions.
-It replaces <code>os.NewError</code> with
-<a href="/pkg/errors/#New"><code>errors.New</code></a>,
-giving errors a more central place in the environment.
-</p>
-
-<p>
-So the widely-used <code>String</code> method does not cause accidental satisfaction
-of the <code>error</code> interface, the <code>error</code> interface uses instead
-the name <code>Error</code> for that method:
-</p>
-
-<pre>
-    type error interface {
-        Error() string
-    }
-</pre>
-
-<p>
-The <code>fmt</code> library automatically invokes <code>Error</code>, as it already
-does for <code>String</code>, for easy printing of error values.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/START ERROR EXAMPLE/` `/END ERROR EXAMPLE/`}}
--->type SyntaxError struct {
-    File    string
-    Line    int
-    Message string
-}
-
-func (se *SyntaxError) Error() string {
-    return fmt.Sprintf(&#34;%s:%d: %s&#34;, se.File, se.Line, se.Message)
-}</pre>
-
-<p>
-All standard packages have been updated to use the new interface; the old <code>os.Error</code> is gone.
-</p>
-
-<p>
-A new package, <a href="/pkg/errors/"><code>errors</code></a>, contains the function
-</p>
-
-<pre>
-func New(text string) error
-</pre>
-
-<p>
-to turn a string into an error. It replaces the old <code>os.NewError</code>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/ErrSyntax/`}}
--->    var ErrSyntax = errors.New(&#34;syntax error&#34;)</pre>
-		
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-Code that defines error types with a <code>String</code> method will need to be updated
-by hand to rename the methods to <code>Error</code>.
-</p>
-
-<h3 id="errno">System call errors</h3>
-
-<p>
-The old <code>syscall</code> package, which predated <code>os.Error</code>
-(and just about everything else),
-returned errors as <code>int</code> values.
-In turn, the <code>os</code> package forwarded many of these errors, such
-as <code>EINVAL</code>, but using a different set of errors on each platform.
-This behavior was unpleasant and unportable.
-</p>
-
-<p>
-In Go 1, the
-<a href="/pkg/syscall/"><code>syscall</code></a>
-package instead returns an <code>error</code> for system call errors.
-On Unix, the implementation is done by a
-<a href="/pkg/syscall/#Errno"><code>syscall.Errno</code></a> type
-that satisfies <code>error</code> and replaces the old <code>os.Errno</code>.
-</p>
-
-<p>
-The changes affecting <code>os.EINVAL</code> and relatives are
-described <a href="#os">elsewhere</a>.
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-Regardless, most code should use the <code>os</code> package
-rather than <code>syscall</code> and so will be unaffected.
-</p>
-
-<h3 id="time">Time</h3>
-
-<p>
-Time is always a challenge to support well in a programming language.
-The old Go <code>time</code> package had <code>int64</code> units, no
-real type safety,
-and no distinction between absolute times and durations.
-</p>
-
-<p>
-One of the most sweeping changes in the Go 1 library is therefore a
-complete redesign of the
-<a href="/pkg/time/"><code>time</code></a> package.
-Instead of an integer number of nanoseconds as an <code>int64</code>,
-and a separate <code>*time.Time</code> type to deal with human
-units such as hours and years,
-there are now two fundamental types:
-<a href="/pkg/time/#Time"><code>time.Time</code></a>
-(a value, so the <code>*</code> is gone), which represents a moment in time;
-and <a href="/pkg/time/#Duration"><code>time.Duration</code></a>,
-which represents an interval.
-Both have nanosecond resolution.
-A <code>Time</code> can represent any time into the ancient
-past and remote future, while a <code>Duration</code> can
-span plus or minus only about 290 years.
-There are methods on these types, plus a number of helpful
-predefined constant durations such as <code>time.Second</code>.
-</p>
-
-<p>
-Among the new methods are things like
-<a href="/pkg/time/#Time.Add"><code>Time.Add</code></a>,
-which adds a <code>Duration</code> to a <code>Time</code>, and
-<a href="/pkg/time/#Time.Sub"><code>Time.Sub</code></a>,
-which subtracts two <code>Times</code> to yield a <code>Duration</code>.
-</p>
-
-<p>
-The most important semantic change is that the Unix epoch (Jan 1, 1970) is now
-relevant only for those functions and methods that mention Unix:
-<a href="/pkg/time/#Unix"><code>time.Unix</code></a>
-and the <a href="/pkg/time/#Time.Unix"><code>Unix</code></a>
-and <a href="/pkg/time/#Time.UnixNano"><code>UnixNano</code></a> methods
-of the <code>Time</code> type.
-In particular,
-<a href="/pkg/time/#Now"><code>time.Now</code></a>
-returns a <code>time.Time</code> value rather than, in the old
-API, an integer nanosecond count since the Unix epoch.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/sleepUntil/` `/^}/`}}
---><span class="comment">// sleepUntil sleeps until the specified time. It returns immediately if it&#39;s too late.</span>
-func sleepUntil(wakeup time.Time) {
-    now := time.Now() <span class="comment">// A Time.</span>
-    if !wakeup.After(now) {
-        return
-    }
-    delta := wakeup.Sub(now) <span class="comment">// A Duration.</span>
-    fmt.Printf(&#34;Sleeping for %.3fs\n&#34;, delta.Seconds())
-    time.Sleep(delta)
-}</pre>
-
-<p>
-The new types, methods, and constants have been propagated through
-all the standard packages that use time, such as <code>os</code> and
-its representation of file time stamps.
-</p>
-
-<p>
-<em>Updating</em>:
-The <code>go</code> <code>fix</code> tool will update many uses of the old <code>time</code> package to use the new
-types and methods, although it does not replace values such as <code>1e9</code>
-representing nanoseconds per second.
-Also, because of type changes in some of the values that arise,
-some of the expressions rewritten by the fix tool may require
-further hand editing; in such cases the rewrite will include
-the correct function or method for the old functionality, but
-may have the wrong type or require further analysis.
-</p>
-
-<h2 id="minor">Minor changes to the library</h2>
-
-<p>
-This section describes smaller changes, such as those to less commonly
-used packages or that affect
-few programs beyond the need to run <code>go</code> <code>fix</code>.
-This category includes packages that are new in Go 1.
-Collectively they improve portability, regularize behavior, and
-make the interfaces more modern and Go-like.
-</p>
-
-<h3 id="archive_zip">The archive/zip package</h3>
-
-<p>
-In Go 1, <a href="/pkg/archive/zip/#Writer"><code>*zip.Writer</code></a> no
-longer has a <code>Write</code> method. Its presence was a mistake.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="bufio">The bufio package</h3>
-
-<p>
-In Go 1, <a href="/pkg/bufio/#NewReaderSize"><code>bufio.NewReaderSize</code></a>
-and
-<a href="/pkg/bufio/#NewWriterSize"><code>bufio.NewWriterSize</code></a>
-functions no longer return an error for invalid sizes.
-If the argument size is too small or invalid, it is adjusted.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update calls that assign the error to _.
-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="compress">The compress/flate, compress/gzip and compress/zlib packages</h3>
-
-<p>
-In Go 1, the <code>NewWriterXxx</code> functions in
-<a href="/pkg/compress/flate"><code>compress/flate</code></a>,
-<a href="/pkg/compress/gzip"><code>compress/gzip</code></a> and
-<a href="/pkg/compress/zlib"><code>compress/zlib</code></a>
-all return <code>(*Writer, error)</code> if they take a compression level,
-and <code>*Writer</code> otherwise. Package <code>gzip</code>'s
-<code>Compressor</code> and <code>Decompressor</code> types have been renamed
-to <code>Writer</code> and <code>Reader</code>. Package <code>flate</code>'s
-<code>WrongValueError</code> type has been removed.
-</p>
-
-<p>
-<em>Updating</em>
-Running <code>go</code> <code>fix</code> will update old names and calls that assign the error to _.
-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="crypto_aes_des">The crypto/aes and crypto/des packages</h3>
-
-<p>
-In Go 1, the <code>Reset</code> method has been removed. Go does not guarantee
-that memory is not copied and therefore this method was misleading.
-</p>
-
-<p>
-The cipher-specific types <code>*aes.Cipher</code>, <code>*des.Cipher</code>,
-and <code>*des.TripleDESCipher</code> have been removed in favor of
-<code>cipher.Block</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Remove the calls to Reset. Replace uses of the specific cipher types with
-cipher.Block.
-</p>
-
-<h3 id="crypto_elliptic">The crypto/elliptic package</h3>
-
-<p>
-In Go 1, <a href="/pkg/crypto/elliptic/#Curve"><code>elliptic.Curve</code></a>
-has been made an interface to permit alternative implementations. The curve
-parameters have been moved to the
-<a href="/pkg/crypto/elliptic/#CurveParams"><code>elliptic.CurveParams</code></a>
-structure.
-</p>
-
-<p>
-<em>Updating</em>:
-Existing users of <code>*elliptic.Curve</code> will need to change to
-simply <code>elliptic.Curve</code>. Calls to <code>Marshal</code>,
-<code>Unmarshal</code> and <code>GenerateKey</code> are now functions
-in <code>crypto/elliptic</code> that take an <code>elliptic.Curve</code>
-as their first argument.
-</p>
-
-<h3 id="crypto_hmac">The crypto/hmac package</h3>
-
-<p>
-In Go 1, the hash-specific functions, such as <code>hmac.NewMD5</code>, have
-been removed from <code>crypto/hmac</code>. Instead, <code>hmac.New</code> takes
-a function that returns a <code>hash.Hash</code>, such as <code>md5.New</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will perform the needed changes.
-</p>
-
-<h3 id="crypto_x509">The crypto/x509 package</h3>
-
-<p>
-In Go 1, the
-<a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a>
-and
-<a href="/pkg/crypto/x509/#CreateCRL"><code>CreateCRL</code></a>
-functions in <code>crypto/x509</code> have been altered to take an
-<code>interface{}</code> where they previously took a <code>*rsa.PublicKey</code>
-or <code>*rsa.PrivateKey</code>. This will allow other public key algorithms
-to be implemented in the future.
-</p>
-
-<p>
-<em>Updating</em>:
-No changes will be needed.
-</p>
-
-<h3 id="encoding_binary">The encoding/binary package</h3>
-
-<p>
-In Go 1, the <code>binary.TotalSize</code> function has been replaced by
-<a href="/pkg/encoding/binary/#Size"><code>Size</code></a>,
-which takes an <code>interface{}</code> argument rather than
-a <code>reflect.Value</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="encoding_xml">The encoding/xml package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/encoding/xml/"><code>xml</code></a> package
-has been brought closer in design to the other marshaling packages such
-as <a href="/pkg/encoding/gob/"><code>encoding/gob</code></a>.
-</p>
-
-<p>
-The old <code>Parser</code> type is renamed
-<a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> and has a new
-<a href="/pkg/encoding/xml/#Decoder.Decode"><code>Decode</code></a> method. An
-<a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a> type was also introduced.
-</p>
-
-<p>
-The functions <a href="/pkg/encoding/xml/#Marshal"><code>Marshal</code></a>
-and <a href="/pkg/encoding/xml/#Unmarshal"><code>Unmarshal</code></a>
-work with <code>[]byte</code> values now. To work with streams,
-use the new <a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a>
-and <a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> types.
-</p>
-
-<p>
-When marshaling or unmarshaling values, the format of supported flags in
-field tags has changed to be closer to the
-<a href="/pkg/encoding/json"><code>json</code></a> package
-(<code>`xml:"name,flag"`</code>). The matching done between field tags, field
-names, and the XML attribute and element names is now case-sensitive.
-The <code>XMLName</code> field tag, if present, must also match the name
-of the XML element being marshaled.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update most uses of the package except for some calls to
-<code>Unmarshal</code>. Special care must be taken with field tags,
-since the fix tool will not update them and if not fixed by hand they will
-misbehave silently in some cases. For example, the old
-<code>"attr"</code> is now written <code>",attr"</code> while plain
-<code>"attr"</code> remains valid but with a different meaning.
-</p>
-
-<h3 id="expvar">The expvar package</h3>
-
-<p>
-In Go 1, the <code>RemoveAll</code> function has been removed.
-The <code>Iter</code> function and Iter method on <code>*Map</code> have
-been replaced by
-<a href="/pkg/expvar/#Do"><code>Do</code></a>
-and
-<a href="/pkg/expvar/#Map.Do"><code>(*Map).Do</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Most code using <code>expvar</code> will not need changing. The rare code that used
-<code>Iter</code> can be updated to pass a closure to <code>Do</code> to achieve the same effect.
-</p>
-
-<h3 id="flag">The flag package</h3>
-
-<p>
-In Go 1, the interface <a href="/pkg/flag/#Value"><code>flag.Value</code></a> has changed slightly.
-The <code>Set</code> method now returns an <code>error</code> instead of
-a <code>bool</code> to indicate success or failure.
-</p>
-
-<p>
-There is also a new kind of flag, <code>Duration</code>, to support argument
-values specifying time intervals.
-Values for such flags must be given units, just as <code>time.Duration</code>
-formats them: <code>10s</code>, <code>1h30m</code>, etc.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/timeout/`}}
--->var timeout = flag.Duration(&#34;timeout&#34;, 30*time.Second, &#34;how long to wait for completion&#34;)</pre>
-
-<p>
-<em>Updating</em>:
-Programs that implement their own flags will need minor manual fixes to update their
-<code>Set</code> methods.
-The <code>Duration</code> flag is new and affects no existing code.
-</p>
-
-
-<h3 id="go">The go/* packages</h3>
-
-<p>
-Several packages under <code>go</code> have slightly revised APIs.
-</p>
-
-<p>
-A concrete <code>Mode</code> type was introduced for configuration mode flags
-in the packages
-<a href="/pkg/go/scanner/"><code>go/scanner</code></a>,
-<a href="/pkg/go/parser/"><code>go/parser</code></a>,
-<a href="/pkg/go/printer/"><code>go/printer</code></a>, and
-<a href="/pkg/go/doc/"><code>go/doc</code></a>.
-</p>
-
-<p>
-The modes <code>AllowIllegalChars</code> and <code>InsertSemis</code> have been removed
-from the <a href="/pkg/go/scanner/"><code>go/scanner</code></a> package. They were mostly
-useful for scanning text other then Go source files. Instead, the
-<a href="/pkg/text/scanner/"><code>text/scanner</code></a> package should be used
-for that purpose.
-</p>
-
-<p>
-The <a href="/pkg/go/scanner/#ErrorHandler"><code>ErrorHandler</code></a> provided
-to the scanner's <a href="/pkg/go/scanner/#Scanner.Init"><code>Init</code></a> method is
-now simply a function rather than an interface. The <code>ErrorVector</code> type has
-been removed in favor of the (existing) <a href="/pkg/go/scanner/#ErrorList"><code>ErrorList</code></a>
-type, and the <code>ErrorVector</code> methods have been migrated. Instead of embedding
-an <code>ErrorVector</code> in a client of the scanner, now a client should maintain
-an <code>ErrorList</code>.
-</p>
-
-<p>
-The set of parse functions provided by the <a href="/pkg/go/parser/"><code>go/parser</code></a>
-package has been reduced to the primary parse function
-<a href="/pkg/go/parser/#ParseFile"><code>ParseFile</code></a>, and a couple of
-convenience functions <a href="/pkg/go/parser/#ParseDir"><code>ParseDir</code></a>
-and <a href="/pkg/go/parser/#ParseExpr"><code>ParseExpr</code></a>.
-</p>
-
-<p>
-The <a href="/pkg/go/printer/"><code>go/printer</code></a> package supports an additional
-configuration mode <a href="/pkg/go/printer/#Mode"><code>SourcePos</code></a>;
-if set, the printer will emit <code>//line</code> comments such that the generated
-output contains the original source code position information. The new type
-<a href="/pkg/go/printer/#CommentedNode"><code>CommentedNode</code></a> can be
-used to provide comments associated with an arbitrary
-<a href="/pkg/go/ast/#Node"><code>ast.Node</code></a> (until now only
-<a href="/pkg/go/ast/#File"><code>ast.File</code></a> carried comment information).
-</p>
-
-<p>
-The type names of the <a href="/pkg/go/doc/"><code>go/doc</code></a> package have been
-streamlined by removing the <code>Doc</code> suffix: <code>PackageDoc</code>
-is now <code>Package</code>, <code>ValueDoc</code> is <code>Value</code>, etc.
-Also, all types now consistently have a <code>Name</code> field (or <code>Names</code>,
-in the case of type <code>Value</code>) and <code>Type.Factories</code> has become
-<code>Type.Funcs</code>.
-Instead of calling <code>doc.NewPackageDoc(pkg, importpath)</code>,
-documentation for a package is created with:
-</p>
-
-<pre>
-    doc.New(pkg, importpath, mode)
-</pre>
-
-<p>
-where the new <code>mode</code> parameter specifies the operation mode:
-if set to <a href="/pkg/go/doc/#AllDecls"><code>AllDecls</code></a>, all declarations
-(not just exported ones) are considered.
-The function <code>NewFileDoc</code> was removed, and the function
-<code>CommentText</code> has become the method
-<a href="/pkg/go/ast/#Text"><code>Text</code></a> of
-<a href="/pkg/go/ast/#CommentGroup"><code>ast.CommentGroup</code></a>.
-</p>
-
-<p>
-In package <a href="/pkg/go/token/"><code>go/token</code></a>, the
-<a href="/pkg/go/token/#FileSet"><code>token.FileSet</code></a> method <code>Files</code>
-(which originally returned a channel of <code>*token.File</code>s) has been replaced
-with the iterator <a href="/pkg/go/token/#FileSet.Iterate"><code>Iterate</code></a> that
-accepts a function argument instead.
-</p>
-
-<p>
-In package <a href="/pkg/go/build/"><code>go/build</code></a>, the API
-has been nearly completely replaced.
-The package still computes Go package information
-but it does not run the build: the <code>Cmd</code> and <code>Script</code>
-types are gone.
-(To build code, use the new
-<a href="/cmd/go/"><code>go</code></a> command instead.)
-The <code>DirInfo</code> type is now named
-<a href="/pkg/go/build/#Package"><code>Package</code></a>.
-<code>FindTree</code> and <code>ScanDir</code> are replaced by
-<a href="/pkg/go/build/#Import"><code>Import</code></a>
-and
-<a href="/pkg/go/build/#ImportDir"><code>ImportDir</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses packages in <code>go</code> will have to be updated by hand; the
-compiler will reject incorrect uses. Templates used in conjunction with any of the
-<code>go/doc</code> types may need manual fixes; the renamed fields will lead
-to run-time errors.
-</p>
-
-<h3 id="hash">The hash package</h3>
-
-<p>
-In Go 1, the definition of <a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> includes
-a new method, <code>BlockSize</code>.  This new method is used primarily in the
-cryptographic libraries.
-</p>
-
-<p>
-The <code>Sum</code> method of the
-<a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> interface now takes a
-<code>[]byte</code> argument, to which the hash value will be appended.
-The previous behavior can be recreated by adding a <code>nil</code> argument to the call.
-</p>
-
-<p>
-<em>Updating</em>:
-Existing implementations of <code>hash.Hash</code> will need to add a
-<code>BlockSize</code> method.  Hashes that process the input one byte at
-a time can implement <code>BlockSize</code> to return 1.
-Running <code>go</code> <code>fix</code> will update calls to the <code>Sum</code> methods of the various
-implementations of <code>hash.Hash</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Since the package's functionality is new, no updating is necessary.
-</p>
-
-<h3 id="http">The http package</h3>
-
-<p>
-In Go 1 the <a href="/pkg/net/http/"><code>http</code></a> package is refactored,
-putting some of the utilities into a
-<a href="/pkg/net/http/httputil/"><code>httputil</code></a> subdirectory.
-These pieces are only rarely needed by HTTP clients.
-The affected items are:
-</p>
-
-<ul>
-<li>ClientConn</li>
-<li>DumpRequest</li>
-<li>DumpRequestOut</li>
-<li>DumpResponse</li>
-<li>NewChunkedReader</li>
-<li>NewChunkedWriter</li>
-<li>NewClientConn</li>
-<li>NewProxyClientConn</li>
-<li>NewServerConn</li>
-<li>NewSingleHostReverseProxy</li>
-<li>ReverseProxy</li>
-<li>ServerConn</li>
-</ul>
-
-<p>
-The <code>Request.RawURL</code> field has been removed; it was a
-historical artifact.
-</p>
-
-<p>
-The <code>Handle</code> and <code>HandleFunc</code>
-functions, and the similarly-named methods of <code>ServeMux</code>,
-now panic if an attempt is made to register the same pattern twice.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update the few programs that are affected except for
-uses of <code>RawURL</code>, which must be fixed by hand.
-</p>
-
-<h3 id="image">The image package</h3>
-
-<p>
-The <a href="/pkg/image/"><code>image</code></a> package has had a number of
-minor changes, rearrangements and renamings.
-</p>
-
-<p>
-Most of the color handling code has been moved into its own package,
-<a href="/pkg/image/color/"><code>image/color</code></a>.
-For the elements that moved, a symmetry arises; for instance,
-each pixel of an
-<a href="/pkg/image/#RGBA"><code>image.RGBA</code></a>
-is a
-<a href="/pkg/image/color/#RGBA"><code>color.RGBA</code></a>.
-</p>
-
-<p>
-The old <code>image/ycbcr</code> package has been folded, with some
-renamings, into the
-<a href="/pkg/image/"><code>image</code></a>
-and
-<a href="/pkg/image/color/"><code>image/color</code></a>
-packages.
-</p>
-
-<p>
-The old <code>image.ColorImage</code> type is still in the <code>image</code>
-package but has been renamed
-<a href="/pkg/image/#Uniform"><code>image.Uniform</code></a>,
-while <code>image.Tiled</code> has been removed.
-</p>
-
-<p>
-This table lists the renamings.
-</p>
-
-<table class="codetable" frame="border" summary="image renames">
-<colgroup align="left" width="50%"></colgroup>
-<colgroup align="left" width="50%"></colgroup>
-<tr>
-<th align="left">Old</th>
-<th align="left">New</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.Color</td> <td>color.Color</td></tr>
-<tr><td>image.ColorModel</td> <td>color.Model</td></tr>
-<tr><td>image.ColorModelFunc</td> <td>color.ModelFunc</td></tr>
-<tr><td>image.PalettedColorModel</td> <td>color.Palette</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.RGBAColor</td> <td>color.RGBA</td></tr>
-<tr><td>image.RGBA64Color</td> <td>color.RGBA64</td></tr>
-<tr><td>image.NRGBAColor</td> <td>color.NRGBA</td></tr>
-<tr><td>image.NRGBA64Color</td> <td>color.NRGBA64</td></tr>
-<tr><td>image.AlphaColor</td> <td>color.Alpha</td></tr>
-<tr><td>image.Alpha16Color</td> <td>color.Alpha16</td></tr>
-<tr><td>image.GrayColor</td> <td>color.Gray</td></tr>
-<tr><td>image.Gray16Color</td> <td>color.Gray16</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.RGBAColorModel</td> <td>color.RGBAModel</td></tr>
-<tr><td>image.RGBA64ColorModel</td> <td>color.RGBA64Model</td></tr>
-<tr><td>image.NRGBAColorModel</td> <td>color.NRGBAModel</td></tr>
-<tr><td>image.NRGBA64ColorModel</td> <td>color.NRGBA64Model</td></tr>
-<tr><td>image.AlphaColorModel</td> <td>color.AlphaModel</td></tr>
-<tr><td>image.Alpha16ColorModel</td> <td>color.Alpha16Model</td></tr>
-<tr><td>image.GrayColorModel</td> <td>color.GrayModel</td></tr>
-<tr><td>image.Gray16ColorModel</td> <td>color.Gray16Model</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>ycbcr.RGBToYCbCr</td> <td>color.RGBToYCbCr</td></tr>
-<tr><td>ycbcr.YCbCrToRGB</td> <td>color.YCbCrToRGB</td></tr>
-<tr><td>ycbcr.YCbCrColorModel</td> <td>color.YCbCrModel</td></tr>
-<tr><td>ycbcr.YCbCrColor</td> <td>color.YCbCr</td></tr>
-<tr><td>ycbcr.YCbCr</td> <td>image.YCbCr</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>ycbcr.SubsampleRatio444</td> <td>image.YCbCrSubsampleRatio444</td></tr>
-<tr><td>ycbcr.SubsampleRatio422</td> <td>image.YCbCrSubsampleRatio422</td></tr>
-<tr><td>ycbcr.SubsampleRatio420</td> <td>image.YCbCrSubsampleRatio420</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.ColorImage</td> <td>image.Uniform</td></tr>
-</table>
-
-<p>
-The image package's <code>New</code> functions
-(<a href="/pkg/image/#NewRGBA"><code>NewRGBA</code></a>,
-<a href="/pkg/image/#NewRGBA64"><code>NewRGBA64</code></a>, etc.)
-take an <a href="/pkg/image/#Rectangle"><code>image.Rectangle</code></a> as an argument
-instead of four integers.
-</p>
-
-<p>
-Finally, there are new predefined <code>color.Color</code> variables
-<a href="/pkg/image/color/#Black"><code>color.Black</code></a>,
-<a href="/pkg/image/color/#White"><code>color.White</code></a>,
-<a href="/pkg/image/color/#Opaque"><code>color.Opaque</code></a>
-and
-<a href="/pkg/image/color/#Transparent"><code>color.Transparent</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-</p>
-
-<h3 id="log_syslog">The log/syslog package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/log/syslog/#NewLogger"><code>syslog.NewLogger</code></a>
-function returns an error as well as a <code>log.Logger</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="mime">The mime package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/mime/#FormatMediaType"><code>FormatMediaType</code></a> function
-of the <code>mime</code> package has  been simplified to make it
-consistent with
-<a href="/pkg/mime/#ParseMediaType"><code>ParseMediaType</code></a>.
-It now takes <code>"text/html"</code> rather than <code>"text"</code> and <code>"html"</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="net">The net package</h3>
-
-<p>
-In Go 1, the various <code>SetTimeout</code>,
-<code>SetReadTimeout</code>, and <code>SetWriteTimeout</code> methods
-have been replaced with
-<a href="/pkg/net/#IPConn.SetDeadline"><code>SetDeadline</code></a>,
-<a href="/pkg/net/#IPConn.SetReadDeadline"><code>SetReadDeadline</code></a>, and
-<a href="/pkg/net/#IPConn.SetWriteDeadline"><code>SetWriteDeadline</code></a>,
-respectively.  Rather than taking a timeout value in nanoseconds that
-apply to any activity on the connection, the new methods set an
-absolute deadline (as a <code>time.Time</code> value) after which
-reads and writes will time out and no longer block.
-</p>
-
-<p>
-There are also new functions
-<a href="/pkg/net/#DialTimeout"><code>net.DialTimeout</code></a>
-to simplify timing out dialing a network address and
-<a href="/pkg/net/#ListenMulticastUDP"><code>net.ListenMulticastUDP</code></a>
-to allow multicast UDP to listen concurrently across multiple listeners.
-The <code>net.ListenMulticastUDP</code> function replaces the old
-<code>JoinGroup</code> and <code>LeaveGroup</code> methods.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the old methods will fail to compile and must be updated by hand.
-The semantic change makes it difficult for the fix tool to update automatically.
-</p>
-
-<h3 id="os">The os package</h3>
-
-<p>
-The <code>Time</code> function has been removed; callers should use
-the <a href="/pkg/time/#Time"><code>Time</code></a> type from the
-<code>time</code> package.
-</p>
-
-<p>
-The <code>Exec</code> function has been removed; callers should use
-<code>Exec</code> from the <code>syscall</code> package, where available.
-</p>
-
-<p>
-The <code>ShellExpand</code> function has been renamed to <a
-href="/pkg/os/#ExpandEnv"><code>ExpandEnv</code></a>.
-</p>
-
-<p>
-The <a href="/pkg/os/#NewFile"><code>NewFile</code></a> function
-now takes a <code>uintptr</code> fd, instead of an <code>int</code>.
-The <a href="/pkg/os/#File.Fd"><code>Fd</code></a> method on files now
-also returns a <code>uintptr</code>.
-</p>
-
-<p>
-There are no longer error constants such as <code>EINVAL</code>
-in the <code>os</code> package, since the set of values varied with
-the underlying operating system. There are new portable functions like
-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>
-to test common error properties, plus a few new error values
-with more Go-like names, such as
-<a href="/pkg/os/#ErrPermission"><code>ErrPermission</code></a>
-and
-<a href="/pkg/os/#ErrNoEnv"><code>ErrNoEnv</code></a>.
-</p>
-
-<p>
-The <code>Getenverror</code> function has been removed. To distinguish
-between a non-existent environment variable and an empty string,
-use <a href="/pkg/os/#Environ"><code>os.Environ</code></a> or
-<a href="/pkg/syscall/#Getenv"><code>syscall.Getenv</code></a>.
-</p>
-
-
-<p>
-The <a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a> method has
-dropped its option argument and the associated constants are gone
-from the package.
-Also, the function <code>Wait</code> is gone; only the method of
-the <code>Process</code> type persists.
-</p>
-
-<p>
-The <code>Waitmsg</code> type returned by
-<a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a>
-has been replaced with a more portable
-<a href="/pkg/os/#ProcessState"><code>ProcessState</code></a>
-type with accessor methods to recover information about the
-process.
-Because of changes to <code>Wait</code>, the <code>ProcessState</code>
-value always describes an exited process.
-Portability concerns simplified the interface in other ways, but the values returned by the
-<a href="/pkg/os/#ProcessState.Sys"><code>ProcessState.Sys</code></a> and
-<a href="/pkg/os/#ProcessState.SysUsage"><code>ProcessState.SysUsage</code></a>
-methods can be type-asserted to underlying system-specific data structures such as
-<a href="/pkg/syscall/#WaitStatus"><code>syscall.WaitStatus</code></a> and
-<a href="/pkg/syscall/#Rusage"><code>syscall.Rusage</code></a> on Unix.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will drop a zero argument to <code>Process.Wait</code>.
-All other changes will be caught by the compiler and must be updated by hand.
-</p>
-
-<h4 id="os_fileinfo">The os.FileInfo type</h4>
-
-<p>
-Go 1 redefines the <a href="/pkg/os/#FileInfo"><code>os.FileInfo</code></a> type,
-changing it from a struct to an interface:
-</p>
-
-<pre>
-    type FileInfo interface {
-        Name() string       // base name of the file
-        Size() int64        // length in bytes
-        Mode() FileMode     // file mode bits
-        ModTime() time.Time // modification time
-        IsDir() bool        // abbreviation for Mode().IsDir()
-        Sys() interface{}   // underlying data source (can return nil)
-    }
-</pre>
-
-<p>
-The file mode information has been moved into a subtype called
-<a href="/pkg/os/#FileMode"><code>os.FileMode</code></a>,
-a simple integer type with <code>IsDir</code>, <code>Perm</code>, and <code>String</code>
-methods.
-</p>
-
-<p>
-The system-specific details of file modes and properties such as (on Unix)
-i-number have been removed from <code>FileInfo</code> altogether.
-Instead, each operating system's <code>os</code> package provides an
-implementation of the <code>FileInfo</code> interface, which
-has a <code>Sys</code> method that returns the
-system-specific representation of file metadata.
-For instance, to discover the i-number of a file on a Unix system, unpack
-the <code>FileInfo</code> like this:
-</p>
-
-<pre>
-    fi, err := os.Stat("hello.go")
-    if err != nil {
-        log.Fatal(err)
-    }
-    // Check that it's a Unix file.
-    unixStat, ok := fi.Sys().(*syscall.Stat_t)
-    if !ok {
-        log.Fatal("hello.go: not a Unix file")
-    }
-    fmt.Printf("file i-number: %d\n", unixStat.Ino)
-</pre>
-
-<p>
-Assuming (which is unwise) that <code>"hello.go"</code> is a Unix file,
-the i-number expression could be contracted to
-</p>
-
-<pre>
-    fi.Sys().(*syscall.Stat_t).Ino
-</pre>
-
-<p>
-The vast majority of uses of <code>FileInfo</code> need only the methods
-of the standard interface.
-</p>
-
-<p>
-The <code>os</code> package no longer contains wrappers for the POSIX errors
-such as <code>ENOENT</code>.
-For the few programs that need to verify particular error conditions, there are
-now the boolean functions
-<a href="/pkg/os/#IsExist"><code>IsExist</code></a>,
-<a href="/pkg/os/#IsNotExist"><code>IsNotExist</code></a>
-and
-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/os\.Open/` `/}/`}}
--->    f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)
-    if os.IsExist(err) {
-        log.Printf(&#34;%s already exists&#34;, name)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update code that uses the old equivalent of the current <code>os.FileInfo</code>
-and <code>os.FileMode</code> API.
-Code that needs system-specific file details will need to be updated by hand.
-Code that uses the old POSIX error values from the <code>os</code> package
-will fail to compile and will also need to be updated by hand.
-</p>
-
-<h3 id="os_signal">The os/signal package</h3>
-
-<p>
-The <code>os/signal</code> package in Go 1 replaces the
-<code>Incoming</code> function, which returned a channel
-that received all incoming signals,
-with the selective <code>Notify</code> function, which asks
-for delivery of specific signals on an existing channel.
-</p>
-
-<p>
-<em>Updating</em>:
-Code must be updated by hand.
-A literal translation of
-</p>
-<pre>
-c := signal.Incoming()
-</pre>
-<p>
-is
-</p>
-<pre>
-c := make(chan os.Signal)
-signal.Notify(c) // ask for all signals
-</pre>
-<p>
-but most code should list the specific signals it wants to handle instead:
-</p>
-<pre>
-c := make(chan os.Signal)
-signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT)
-</pre>
-
-<h3 id="path_filepath">The path/filepath package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a> function of the
-<code>path/filepath</code> package
-has been changed to take a function value of type
-<a href="/pkg/path/filepath/#WalkFunc"><code>WalkFunc</code></a>
-instead of a <code>Visitor</code> interface value.
-<code>WalkFunc</code> unifies the handling of both files and directories.
-</p>
-
-<pre>
-    type WalkFunc func(path string, info os.FileInfo, err error) error
-</pre>
-
-<p>
-The <code>WalkFunc</code> function will be called even for files or directories that could not be opened;
-in such cases the error argument will describe the failure.
-If a directory's contents are to be skipped,
-the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a>
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/STARTWALK/` `/ENDWALK/`}}
--->    markFn := func(path string, info os.FileInfo, err error) error {
-        if path == &#34;pictures&#34; { <span class="comment">// Will skip walking of directory pictures and its contents.</span>
-            return filepath.SkipDir
-        }
-        if err != nil {
-            return err
-        }
-        log.Println(path)
-        return nil
-    }
-    err := filepath.Walk(&#34;.&#34;, markFn)
-    if err != nil {
-        log.Fatal(err)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-The change simplifies most code but has subtle consequences, so affected programs
-will need to be updated by hand.
-The compiler will catch code using the old interface.
-</p>
-
-<h3 id="regexp">The regexp package</h3>
-
-<p>
-The <a href="/pkg/regexp/"><code>regexp</code></a> package has been rewritten.
-It has the same interface but the specification of the regular expressions
-it supports has changed from the old "egrep" form to that of
-<a href="http://code.google.com/p/re2/">RE2</a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the package should have its regular expressions checked by hand.
-</p>
-
-<h3 id="runtime">The runtime package</h3>
-
-<p>
-In Go 1, much of the API exported by package
-<code>runtime</code> has been removed in favor of
-functionality provided by other packages.
-Code using the <code>runtime.Type</code> interface
-or its specific concrete type implementations should
-now use package <a href="/pkg/reflect/"><code>reflect</code></a>.
-Code using <code>runtime.Semacquire</code> or <code>runtime.Semrelease</code>
-should use channels or the abstractions in package <a href="/pkg/sync/"><code>sync</code></a>.
-The <code>runtime.Alloc</code>, <code>runtime.Free</code>,
-and <code>runtime.Lookup</code> functions, an unsafe API created for
-debugging the memory allocator, have no replacement.
-</p>
-
-<p>
-Before, <code>runtime.MemStats</code> was a global variable holding
-statistics about memory allocation, and calls to <code>runtime.UpdateMemStats</code>
-ensured that it was up to date.
-In Go 1, <code>runtime.MemStats</code> is a struct type, and code should use
-<a href="/pkg/runtime/#ReadMemStats"><code>runtime.ReadMemStats</code></a>
-to obtain the current statistics.
-</p>
-
-<p>
-The package adds a new function,
-<a href="/pkg/runtime/#NumCPU"><code>runtime.NumCPU</code></a>, that returns the number of CPUs available
-for parallel execution, as reported by the operating system kernel.
-Its value can inform the setting of <code>GOMAXPROCS</code>.
-The <code>runtime.Cgocalls</code> and <code>runtime.Goroutines</code> functions
-have been renamed to <code>runtime.NumCgoCall</code> and <code>runtime.NumGoroutine</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update code for the function renamings.
-Other code will need to be updated by hand.
-</p>
-
-<h3 id="strconv">The strconv package</h3>
-
-<p>
-In Go 1, the
-<a href="/pkg/strconv/"><code>strconv</code></a>
-package has been significantly reworked to make it more Go-like and less C-like,
-although <code>Atoi</code> lives on (it's similar to
-<code>int(ParseInt(x, 10, 0))</code>, as does
-<code>Itoa(x)</code> (<code>FormatInt(int64(x), 10)</code>).
-There are also new variants of some of the functions that append to byte slices rather than
-return strings, to allow control over allocation.
-</p>
-
-<p>
-This table summarizes the renamings; see the
-<a href="/pkg/strconv/">package documentation</a>
-for full details.
-</p>
-
-<table class="codetable" frame="border" summary="strconv renames">
-<colgroup align="left" width="50%"></colgroup>
-<colgroup align="left" width="50%"></colgroup>
-<tr>
-<th align="left">Old call</th>
-<th align="left">New call</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atob(x)</td> <td>ParseBool(x)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atof32(x)</td> <td>ParseFloat(x, 32)Â§</td></tr>
-<tr><td>Atof64(x)</td> <td>ParseFloat(x, 64)</td></tr>
-<tr><td>AtofN(x, n)</td> <td>ParseFloat(x, n)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atoi(x)</td> <td>Atoi(x)</td></tr>
-<tr><td>Atoi(x)</td> <td>ParseInt(x, 10, 0)Â§</td></tr>
-<tr><td>Atoi64(x)</td> <td>ParseInt(x, 10, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atoui(x)</td> <td>ParseUint(x, 10, 0)Â§</td></tr>
-<tr><td>Atoui64(x)</td> <td>ParseUint(x, 10, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Btoi64(x, b)</td> <td>ParseInt(x, b, 64)</td></tr>
-<tr><td>Btoui64(x, b)</td> <td>ParseUint(x, b, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Btoa(x)</td> <td>FormatBool(x)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Ftoa32(x, f, p)</td> <td>FormatFloat(float64(x), f, p, 32)</td></tr>
-<tr><td>Ftoa64(x, f, p)</td> <td>FormatFloat(x, f, p, 64)</td></tr>
-<tr><td>FtoaN(x, f, p, n)</td> <td>FormatFloat(x, f, p, n)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Itoa(x)</td> <td>Itoa(x)</td></tr>
-<tr><td>Itoa(x)</td> <td>FormatInt(int64(x), 10)</td></tr>
-<tr><td>Itoa64(x)</td> <td>FormatInt(x, 10)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Itob(x, b)</td> <td>FormatInt(int64(x), b)</td></tr>
-<tr><td>Itob64(x, b)</td> <td>FormatInt(x, b)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Uitoa(x)</td> <td>FormatUint(uint64(x), 10)</td></tr>
-<tr><td>Uitoa64(x)</td> <td>FormatUint(x, 10)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Uitob(x, b)</td> <td>FormatUint(uint64(x), b)</td></tr>
-<tr><td>Uitob64(x, b)</td> <td>FormatUint(x, b)</td></tr>
-</table>
-		
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-<br>
-Â§ <code>Atoi</code> persists but <code>Atoui</code> and <code>Atof32</code> do not, so
-they may require
-a cast that must be added by hand; the <code>go</code> <code>fix</code> tool will warn about it.
-</p>
-
-
-<h3 id="templates">The template packages</h3>
-
-<p>
-The <code>template</code> and <code>exp/template/html</code> packages have moved to 
-<a href="/pkg/text/template/"><code>text/template</code></a> and
-<a href="/pkg/html/template/"><code>html/template</code></a>.
-More significant, the interface to these packages has been simplified.
-The template language is the same, but the concept of "template set" is gone
-and the functions and methods of the packages have changed accordingly,
-often by elimination.
-</p>
-
-<p>
-Instead of sets, a <code>Template</code> object
-may contain multiple named template definitions,
-in effect constructing
-name spaces for template invocation.
-A template can invoke any other template associated with it, but only those
-templates associated with it.
-The simplest way to associate templates is to parse them together, something
-made easier with the new structure of the packages.
-</p>
-
-<p>
-<em>Updating</em>:
-The imports will be updated by fix tool.
-Single-template uses will be otherwise be largely unaffected.
-Code that uses multiple templates in concert will need to be updated by hand.
-The <a href="/pkg/text/template/#examples">examples</a> in
-the documentation for <code>text/template</code> can provide guidance.
-</p>
-
-<h3 id="testing">The testing package</h3>
-
-<p>
-The testing package has a type, <code>B</code>, passed as an argument to benchmark functions.
-In Go 1, <code>B</code> has new methods, analogous to those of <code>T</code>, enabling
-logging and failure reporting.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/func.*Benchmark/` `/^}/`}}
--->func BenchmarkSprintf(b *testing.B) {
-    <span class="comment">// Verify correctness before running benchmark.</span>
-    b.StopTimer()
-    got := fmt.Sprintf(&#34;%x&#34;, 23)
-    const expect = &#34;17&#34;
-    if expect != got {
-        b.Fatalf(&#34;expected %q; got %q&#34;, expect, got)
-    }
-    b.StartTimer()
-    for i := 0; i &lt; b.N; i++ {
-        fmt.Sprintf(&#34;%x&#34;, 23)
-    }
-}</pre>
-
-<p>
-<em>Updating</em>:
-Existing code is unaffected, although benchmarks that use <code>println</code>
-or <code>panic</code> should be updated to use the new methods.
-</p>
-
-<h3 id="testing_script">The testing/script package</h3>
-
-<p>
-The testing/script package has been deleted. It was a dreg.
-</p>
-
-<p>
-<em>Updating</em>:
-No code is likely to be affected.
-</p>
-
-<h3 id="unsafe">The unsafe package</h3>
-
-<p>
-In Go 1, the functions
-<code>unsafe.Typeof</code>, <code>unsafe.Reflect</code>,
-<code>unsafe.Unreflect</code>, <code>unsafe.New</code>, and
-<code>unsafe.NewArray</code> have been removed;
-they duplicated safer functionality provided by
-package <a href="/pkg/reflect/"><code>reflect</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code using these functions must be rewritten to use
-package <a href="/pkg/reflect/"><code>reflect</code></a>.
-The changes to <a href="http://code.google.com/p/go/source/detail?r=2646dc956207">encoding/gob</a> and the <a href="http://code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a>
-may be helpful as examples.
-</p>
-
-<h3 id="url">The url package</h3>
-
-<p>
-In Go 1 several fields from the <a href="/pkg/net/url/#URL"><code>url.URL</code></a> type
-were removed or replaced.
-</p>
-
-<p>
-The <a href="/pkg/net/url/#URL.String"><code>String</code></a> method now
-predictably rebuilds an encoded URL string using all of <code>URL</code>'s
-fields as necessary. The resulting string will also no longer have
-passwords escaped.
-</p>
-
-<p>
-The <code>Raw</code> field has been removed. In most cases the <code>String</code>
-method may be used in its place.
-</p>
-
-<p>
-The old <code>RawUserinfo</code> field is replaced by the <code>User</code>
-field, of type <a href="/pkg/net/url/#Userinfo"><code>*net.Userinfo</code></a>.
-Values of this type may be created using the new <a href="/pkg/net/url/#User"><code>net.User</code></a>
-and <a href="/pkg/net/url/#UserPassword"><code>net.UserPassword</code></a>
-functions. The <code>EscapeUserinfo</code> and <code>UnescapeUserinfo</code>
-functions are also gone.
-</p>
-
-<p>
-The <code>RawAuthority</code> field has been removed. The same information is
-available in the <code>Host</code> and <code>User</code> fields.
-</p>
-
-<p>
-The <code>RawPath</code> field and the <code>EncodedPath</code> method have
-been removed. The path information in rooted URLs (with a slash following the
-schema) is now available only in decoded form in the <code>Path</code> field.
-Occasionally, the encoded data may be required to obtain information that
-was lost in the decoding process. These cases must be handled by accessing
-the data the URL was built from.
-</p>
-
-<p>
-URLs with non-rooted paths, such as <code>"mailto:dev@golang.org?subject=Hi"</code>,
-are also handled differently. The <code>OpaquePath</code> boolean field has been
-removed and a new <code>Opaque</code> string field introduced to hold the encoded
-path for such URLs. In Go 1, the cited URL parses as:
-</p>
-
-<pre>
-    URL{
-        Scheme: "mailto",
-        Opaque: "dev@golang.org",
-        RawQuery: "subject=Hi",
-    }
-</pre>
-
-<p>
-A new <a href="/pkg/net/url/#URL.RequestURI"><code>RequestURI</code></a> method was
-added to <code>URL</code>.
-</p>
-
-<p>
-The <code>ParseWithReference</code> function has been renamed to <code>ParseWithFragment</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the old fields will fail to compile and must be updated by hand.
-The semantic changes make it difficult for the fix tool to update automatically.
-</p>
-
-<h2 id="cmd_go">The go command</h2>
-
-<p>
-Go 1 introduces the <a href="/cmd/go/">go command</a>, a tool for fetching,
-building, and installing Go packages and commands. The <code>go</code> command
-does away with makefiles, instead using Go source code to find dependencies and
-determine build conditions. Most existing Go programs will no longer require
-makefiles to be built.
-</p>
-
-<p>
-See <a href="/doc/code.html">How to Write Go Code</a> for a primer on the
-<code>go</code> command and the <a href="/cmd/go/">go command documentation</a>
-for the full details.
-</p>
-
-<p>
-<em>Updating</em>:
-Projects that depend on the Go project's old makefile-based build
-infrastructure (<code>Make.pkg</code>, <code>Make.cmd</code>, and so on) should
-switch to using the <code>go</code> command for building Go code and, if
-necessary, rewrite their makefiles to perform any auxiliary build tasks.
-</p>
-
-<h2 id="cmd_cgo">The cgo command</h2>
-
-<p>
-In Go 1, the <a href="/cmd/cgo">cgo command</a>
-uses a different <code>_cgo_export.h</code>
-file, which is generated for packages containing <code>//export</code> lines.
-The <code>_cgo_export.h</code> file now begins with the C preamble comment,
-so that exported function definitions can use types defined there.
-This has the effect of compiling the preamble multiple times, so a
-package using <code>//export</code> must not put function definitions
-or variable initializations in the C preamble.
-</p>
-
-<h2 id="releases">Packaged releases</h2>
-
-<p>
-One of the most significant changes associated with Go 1 is the availability
-of prepackaged, downloadable distributions.
-They are available for many combinations of architecture and operating system
-(including Windows) and the list will grow.
-Installation details are described on the
-<a href="/doc/install">Getting Started</a> page, while
-the distributions themselves are listed on the
-<a href="http://code.google.com/p/go/downloads/list">downloads page</a>.
-
-
-</div>
-
-<div id="footer">
-Build version go1.0.1.<br>
-Except as <a href="http://code.google.com/policies.html#restrictions">noted</a>,
-the content of this page is licensed under the
-Creative Commons Attribution 3.0 License,
-and code is licensed under a <a href="/LICENSE">BSD license</a>.<br>
-<a href="/doc/tos.html">Terms of Service</a> | 
-<a href="http://www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>
-</div>
-
-<script type="text/javascript">
-(function() {
-  var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
-  ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
-  var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
-})();
-</script>
-</body>
-<script type="text/javascript">
-  (function() {
-    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
-    po.src = 'https://apis.google.com/js/plusone.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
-  })();
-</script>
-</html>
-
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/README gcc-4.8.1/libgo/go/exp/html/testdata/webkit/README
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/README	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/README	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-The *.dat files in this directory are copied from The WebKit Open Source
-Project, specifically $WEBKITROOT/LayoutTests/html5lib/resources.
-WebKit is licensed under a BSD style license.
-http://webkit.org/coding/bsd-license.html says:
-
-Copyright (C) 2009 Apple Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption01.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,194 +0,0 @@
-#data
-<a><p></a></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-
-#data
-<a>1<p>2</a>3</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <p>
-|       <a>
-|         "2"
-|       "3"
-
-#data
-<a>1<button>2</a>3</button>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <button>
-|       <a>
-|         "2"
-|       "3"
-
-#data
-<a>1<b>2</a>3</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|       <b>
-|         "2"
-|     <b>
-|       "3"
-
-#data
-<a>1<div>2<div>3</a>4</div>5</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <div>
-|       <a>
-|         "2"
-|       <div>
-|         <a>
-|           "3"
-|         "4"
-|       "5"
-
-#data
-<table><a>1<p>2</a>3</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <p>
-|       <a>
-|         "2"
-|       "3"
-|     <table>
-
-#data
-<b><b><a><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <b>
-|         <a>
-|         <p>
-|           <a>
-
-#data
-<b><a><b><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <a>
-|         <b>
-|       <b>
-|         <p>
-|           <a>
-
-#data
-<a><b><b><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|         <b>
-|     <b>
-|       <b>
-|         <p>
-|           <a>
-
-#data
-<p>1<s id="A">2<b id="B">3</p>4</s>5</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "1"
-|       <s>
-|         id="A"
-|         "2"
-|         <b>
-|           id="B"
-|           "3"
-|     <s>
-|       id="A"
-|       <b>
-|         id="B"
-|         "4"
-|     <b>
-|       id="B"
-|       "5"
-
-#data
-<table><a>1<td>2</td>3</table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <a>
-|       "3"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "2"
-
-#data
-<table>A<td>B</td>C</table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "AC"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "B"
-
-#data
-<a><svg><tr><input></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <svg svg>
-|         <svg tr>
-|           <svg input>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption02.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption02.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-#data
-<b>1<i>2<p>3</b>4
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "1"
-|       <i>
-|         "2"
-|     <i>
-|       <p>
-|         <b>
-|           "3"
-|         "4"
-
-#data
-<a><div><style></style><address><a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <div>
-|       <a>
-|         <style>
-|       <address>
-|         <a>
-|         <a>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/comments01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/comments01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/comments01.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/comments01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,135 +0,0 @@
-#data
-FOO<!-- BAR -->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR --!>BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR --   >BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR --   >BAZ -->
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX --!>BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -- >BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX -- >BAZ -->
-
-#data
-FOO<!---->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-FOO<!--->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-FOO<!-->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-<?xml version="1.0">Hi
-#errors
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-|   <head>
-|   <body>
-|     "Hi"
-
-#data
-<?xml version="1.0">
-#errors
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?xml version
-#errors
-#document
-| <!-- ?xml version -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-FOO<!----->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!-- - -->
-|     "BAZ"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/doctype01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/doctype01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/doctype01.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/doctype01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,370 +0,0 @@
-#data
-<!DOCTYPE html>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!dOctYpE HtMl>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPEhtml>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE>Hello
-#errors
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE >Hello
-#errors
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato taco>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato taco "ddd>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato sYstEM>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato sYstEM    >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE   potato       sYstEM  ggg>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM taco  >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM 'taco"'>Hello
-#errors
-#document
-| <!DOCTYPE potato "" "taco"">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "taco">Hello
-#errors
-#document
-| <!DOCTYPE potato "" "taco">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "tai'co">Hello
-#errors
-#document
-| <!DOCTYPE potato "" "tai'co">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEMtaco "ddd">Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato grass SYSTEM taco>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIcgoof>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC goof>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "go'of">Hello
-#errors
-#document
-| <!DOCTYPE potato "go'of" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go'of'>Hello
-#errors
-#document
-| <!DOCTYPE potato "go" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go:hh   of' >Hello
-#errors
-#document
-| <!DOCTYPE potato "go:hh   of" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello
-#errors
-#document
-| <!DOCTYPE potato "W3C-//dfdf" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-   "http://www.w3.org/TR/html4/strict.dtd">Hello
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE ...>Hello
-#errors
-#document
-| <!DOCTYPE ...>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ 
-<!-- internal declarations -->
-]>
-#errors
-#document
-| <!DOCTYPE root-element>
-| <html>
-|   <head>
-|   <body>
-|     "]>"
-
-#data
-<!DOCTYPE html PUBLIC
-  "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
-    "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body>
-#errors
-#document
-| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd">
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "Mine!"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities01.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,603 +0,0 @@
-#data
-FOO&gt;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>BAR"
-
-#data
-FOO&gtBAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>BAR"
-
-#data
-FOO&gt BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO> BAR"
-
-#data
-FOO&gt;;;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>;;BAR"
-
-#data
-I'm &notit; I tell you
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "I'm Â¬it; I tell you"
-
-#data
-I'm &notin; I tell you
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "I'm âˆ‰ I tell you"
-
-#data
-FOO& BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO& BAR"
-
-#data
-FOO&<BAR>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&"
-|     <bar>
-
-#data
-FOO&&&&gt;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&&&>BAR"
-
-#data
-FOO&#41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO)BAR"
-
-#data
-FOO&#x41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOABAR"
-
-#data
-FOO&#X41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOABAR"
-
-#data
-FOO&#BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#BAR"
-
-#data
-FOO&#ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#ZOO"
-
-#data
-FOO&#xBAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂºR"
-
-#data
-FOO&#xZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#xZOO"
-
-#data
-FOO&#XZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#XZOO"
-
-#data
-FOO&#41BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO)BAR"
-
-#data
-FOO&#x41BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOä†ºR"
-
-#data
-FOO&#x41ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOAZOO"
-
-#data
-FOO&#x0000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#x0078;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOxZOO"
-
-#data
-FOO&#x0079;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOyZOO"
-
-#data
-FOO&#x0080;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ‚¬ZOO"
-
-#data
-FOO&#x0081;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0082;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€šZOO"
-
-#data
-FOO&#x0083;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÆ’ZOO"
-
-#data
-FOO&#x0084;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€žZOO"
-
-#data
-FOO&#x0085;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¦ZOO"
-
-#data
-FOO&#x0086;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ ZOO"
-
-#data
-FOO&#x0087;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¡ZOO"
-
-#data
-FOO&#x0088;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOË†ZOO"
-
-#data
-FOO&#x0089;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€°ZOO"
-
-#data
-FOO&#x008A;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ ZOO"
-
-#data
-FOO&#x008B;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¹ZOO"
-
-#data
-FOO&#x008C;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ’ZOO"
-
-#data
-FOO&#x008D;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x008E;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ½ZOO"
-
-#data
-FOO&#x008F;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0090;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0091;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€˜ZOO"
-
-#data
-FOO&#x0092;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€™ZOO"
-
-#data
-FOO&#x0093;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€œZOO"
-
-#data
-FOO&#x0094;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ZOO"
-
-#data
-FOO&#x0095;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¢ZOO"
-
-#data
-FOO&#x0096;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€“ZOO"
-
-#data
-FOO&#x0097;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€”ZOO"
-
-#data
-FOO&#x0098;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOËœZOO"
-
-#data
-FOO&#x0099;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ„¢ZOO"
-
-#data
-FOO&#x009A;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¡ZOO"
-
-#data
-FOO&#x009B;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ºZOO"
-
-#data
-FOO&#x009C;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ“ZOO"
-
-#data
-FOO&#x009D;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x009E;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¾ZOO"
-
-#data
-FOO&#x009F;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¸ZOO"
-
-#data
-FOO&#x00A0;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂ ZOO"
-
-#data
-FOO&#xD7FF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOíŸ¿ZOO"
-
-#data
-FOO&#xD800;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xD801;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xDFFE;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xDFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xE000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOî€€ZOO"
-
-#data
-FOO&#x10FFFE;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOô¿¾ZOO"
-
-#data
-FOO&#x1087D4;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOôˆŸ”ZOO"
-
-#data
-FOO&#x10FFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOô¿¿ZOO"
-
-#data
-FOO&#x110000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xFFFFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities02.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities02.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,249 +0,0 @@
-#data
-<div bar="ZZ&gt;YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>YY"
-
-#data
-<div bar="ZZ&"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar='ZZ&'></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar=ZZ&></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar="ZZ&gt=YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt=YY"
-
-#data
-<div bar="ZZ&gt0YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt0YY"
-
-#data
-<div bar="ZZ&gt9YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt9YY"
-
-#data
-<div bar="ZZ&gtaYY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gtaYY"
-
-#data
-<div bar="ZZ&gtZYY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gtZYY"
-
-#data
-<div bar="ZZ&gt YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ> YY"
-
-#data
-<div bar="ZZ&gt"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar='ZZ&gt'></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar=ZZ&gt></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar="ZZ&pound_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZÂ£_id=23"
-
-#data
-<div bar="ZZ&prod_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&prod_id=23"
-
-#data
-<div bar="ZZ&pound;_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZÂ£_id=23"
-
-#data
-<div bar="ZZ&prod;_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZâˆ_id=23"
-
-#data
-<div bar="ZZ&pound=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&pound=23"
-
-#data
-<div bar="ZZ&prod=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&prod=23"
-
-#data
-<div>ZZ&pound_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£_id=23"
-
-#data
-<div>ZZ&prod_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZ&prod_id=23"
-
-#data
-<div>ZZ&pound;_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£_id=23"
-
-#data
-<div>ZZ&prod;_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZâˆ_id=23"
-
-#data
-<div>ZZ&pound=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£=23"
-
-#data
-<div>ZZ&prod=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZ&prod=23"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/html5test-com.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/html5test-com.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/html5test-com.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/html5test-com.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,246 +0,0 @@
-#data
-<div<div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div<div>
-
-#data
-<div foo<bar=''>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo<bar=""
-
-#data
-<div foo=`bar`>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo="`bar`"
-
-#data
-<div \"foo=''>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       \"foo=""
-
-#data
-<a href='\nbar'></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="\nbar"
-
-#data
-<!DOCTYPE html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-&lang;&rang;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "âŸ¨âŸ©"
-
-#data
-&apos;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "'"
-
-#data
-&ImaginaryI;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "â…ˆ"
-
-#data
-&Kopf;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "ð•‚"
-
-#data
-&notinva;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "âˆ‰"
-
-#data
-<?import namespace="foo" implementation="#bar">
-#errors
-#document
-| <!-- ?import namespace="foo" implementation="#bar" -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!--foo--bar-->
-#errors
-#document
-| <!-- foo--bar -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<![CDATA[x]]>
-#errors
-#document
-| <!-- [CDATA[x]] -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<textarea><!--</textarea>--></textarea>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--"
-|     "-->"
-
-#data
-<textarea><!--</textarea>-->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--"
-|     "-->"
-
-#data
-<style><!--</style>--></style>
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "-->"
-
-#data
-<style><!--</style>-->
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "-->"
-
-#data
-<ul><li>A </li> <li>B</li></ul>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         "A "
-|       " "
-|       <li>
-|         "B"
-
-#data
-<table><form><input type=hidden><input></form><div></div></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     <div>
-|     <table>
-|       <form>
-|       <input>
-|         type="hidden"
-
-#data
-<i>A<b>B<p></i>C</b>D
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "A"
-|       <b>
-|         "B"
-|     <b>
-|     <p>
-|       <b>
-|         <i>
-|         "C"
-|       "D"
-
-#data
-<div></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<svg></svg>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<math></math>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/inbody01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/inbody01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/inbody01.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/inbody01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,43 +0,0 @@
-#data
-<button>1</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <button>
-|       "1"
-
-#data
-<foo>1<p>2</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "1"
-|       <p>
-|         "2"
-
-#data
-<dd>1</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-|       "1"
-
-#data
-<foo>1<dd>2</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "1"
-|       <dd>
-|         "2"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/isindex.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/isindex.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/isindex.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/isindex.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,40 +0,0 @@
-#data
-<isindex>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<isindex name="A" action="B" prompt="C" foo="D">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       action="B"
-|       <hr>
-|       <label>
-|         "C"
-|         <input>
-|           foo="D"
-|           name="isindex"
-|       <hr>
-
-#data
-<form><isindex>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-#data
-<input type="hidden"><frameset>
-#errors
-21: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-31: â€œframesetâ€ start tag seen.
-31: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><table><caption><svg>foo</table>bar
-#errors
-47: End tag â€œtableâ€ did not match the name of the current open element (â€œsvgâ€).
-47: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-47: End tag â€œtableâ€ seen, but there were open elements.
-36: Unclosed element â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           "foo"
-|     "bar"
-
-#data
-<table><tr><td><svg><desc><td></desc><circle>
-#errors
-7: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-30: A table cell was implicitly closed, but there were open elements.
-26: Unclosed element â€œdescâ€.
-20: Unclosed element â€œsvgâ€.
-37: Stray end tag â€œdescâ€.
-45: End of file seen and there were open elements.
-45: Unclosed element â€œcircleâ€.
-7: Unclosed element â€œtableâ€.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
-|             <circle>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scriptdata01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scriptdata01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scriptdata01.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scriptdata01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,308 +0,0 @@
-#data
-FOO<script>'Hello'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'Hello'"
-|     "BAR"
-
-#data
-FOO<script></script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script >BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script/>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script/ >BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script type="text/plain"></scriptx>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "</scriptx>BAR"
-
-#data
-FOO<script></script foo=">" dd>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script>'<'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<'"
-|     "BAR"
-
-#data
-FOO<script>'<!'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!'"
-|     "BAR"
-
-#data
-FOO<script>'<!-'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-'"
-|     "BAR"
-
-#data
-FOO<script>'<!--'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!--'"
-|     "BAR"
-
-#data
-FOO<script>'<!---'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!---'"
-|     "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-->'"
-|     "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-->'"
-|     "BAR"
-
-#data
-FOO<script>'<!-- potato'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- potato'"
-|     "BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- <sCrIpt'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> -'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> --'</script>BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt> -->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- <sCrIpt> -->'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> --!>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> -- >'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt '</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt/'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt\'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt/'</script>BAR"
-|     "QUX"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-#data
-<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         id="B"
-|         <script>
-|           "document.getElementById("A").id = "B""
-|     <b>
-|       id="A"
-|       "TEXT"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-#data
-1<script>document.write("2")</script>3
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "1"
-|     <script>
-|       "document.write("2")"
-|     "23"
-
-#data
-1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "1"
-|     <script>
-|       "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")"
-|     <script>
-|       "document.write('2')"
-|     "2"
-|     <script>
-|       "document.write('3')"
-|     "34"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tables01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tables01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tables01.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tables01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,212 +0,0 @@
-#data
-<table><th>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <th>
-
-#data
-<table><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><col foo='bar'>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|           foo="bar"
-
-#data
-<table><colgroup></html>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <table>
-|       <colgroup>
-
-#data
-<table></table><p>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|     <p>
-|       "foo"
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><select><option>3</select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "3"
-|     <table>
-
-#data
-<table><select><table></table></select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|     <table>
-
-#data
-<table><select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-
-#data
-<table><select><option>A<tr><td>B</td></tr></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "A"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "B"
-
-#data
-<table><td></body></caption></col></colgroup></html>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "foo"
-
-#data
-<table><td>A</table>B
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-|     "B"
-
-#data
-<table><tr><caption>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|       <caption>
-
-#data
-<table><tr></body></caption></col></colgroup></html></td></th><td>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "foo"
-
-#data
-<table><td><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|         <tr>
-
-#data
-<table><td><button><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <button>
-|           <td>
-
-#data
-<table><tr><td><svg><desc><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests1.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests1.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests1.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests1.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,1952 +0,0 @@
-#data
-Test
-#errors
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<p>One<p>Two
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "One"
-|     <p>
-|       "Two"
-
-#data
-Line1<br>Line2<br>Line3<br>Line4
-#errors
-Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Line1"
-|     <br>
-|     "Line2"
-|     <br>
-|     "Line3"
-|     <br>
-|     "Line4"
-
-#data
-<html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head><body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head><body></body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head><body></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end tag (body).
-Line: 1 Col: 26 Unexpected end tag (html).
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head><body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<head></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (html). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</head>
-#errors
-Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</body>
-#errors
-Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</html>
-#errors
-Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<b><table><td><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<b><table><td></b><i></table>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 30 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-|       "X"
-
-#data
-<h1>Hello<h2>World
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-13: Heading cannot be a child of another heading.
-18: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       "Hello"
-|     <h2>
-|       "World"
-
-#data
-<a><p>X<a>Y</a>Z</p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-|         "X"
-|       <a>
-|         "Y"
-|       "Z"
-
-#data
-<b><button>foo</b>bar
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <button>
-|       <b>
-|         "foo"
-|       "bar"
-
-#data
-<!DOCTYPE html><span><button>foo</span>bar
-#errors
-39: End tag â€œspanâ€ seen but there were unclosed elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <span>
-|       <button>
-|         "foobar"
-
-#data
-<p><b><div><marquee></p></b></div>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|     <div>
-|       <b>
-|         <marquee>
-|           <p>
-|           "X"
-
-#data
-<script><div></script></div><title><p></title><p><p>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected end tag (div). Ignored.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<div>"
-|     <title>
-|       "<p>"
-|   <body>
-|     <p>
-|     <p>
-
-#data
-<!--><div>--<!-->
-#errors
-Line: 1 Col: 5 Incorrect comment.
-Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 17 Incorrect comment.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <!--  -->
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "--"
-|       <!--  -->
-
-#data
-<p><hr></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <hr>
-|     <p>
-
-#data
-<select><b><option><select><option></b></select>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
-Line: 1 Col: 49 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|     <option>
-|       "X"
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 64 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 <table>
-|               <a>
-|     <a>
-|       <b>
-|         "X"
-|       "C"
-|     <a>
-|       "Y"
-
-#data
-<a X>0<b>1<a Y>2
-#errors
-Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       x=""
-|       "0"
-|       <b>
-|         "1"
-|     <b>
-|       <a>
-|         y=""
-|         "2"
-
-#data
-<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->
-#errors
-Line: 1 Col: 7 Unexpected '-' after '--' found in comment.
-Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode.
-Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase.
-Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase.
-Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing.
-Line: 1 Col: 71 Unexpected end of file. Expected table content.
-#document
-| <!-- - -->
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <div>
-|         "helloexcite!"
-|         <b>
-|           "me!"
-|         <table>
-|           <tbody>
-|             <tr>
-|               <th>
-|                 <i>
-|                   "please!"
-|             <!-- X -->
-
-#data
-<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->
-#errors
-Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <li>
-|       "hello"
-|     <li>
-|       "world"
-|       <ul>
-|         "how"
-|         <li>
-|           "do"
-|       "you"
-|   <!-- do -->
-
-#data
-<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E
-#errors
-Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored.
-Line: 1 Col: 55 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-|     <option>
-|       "B"
-|     <optgroup>
-|       "C"
-|       <select>
-|         "DE"
-
-#data
-<
-#errors
-Line: 1 Col: 1 Expected tag name. Got something else instead
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<"
-
-#data
-<#
-#errors
-Line: 1 Col: 1 Expected tag name. Got something else instead
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<#"
-
-#data
-</
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected end of file.
-Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "</"
-
-#data
-</#
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found.
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- # -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?#
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?# -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!#
-#errors
-Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- # -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?COMMENT?>
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?COMMENT? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!COMMENT>
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- COMMENT -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-</ COMMENT >
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  COMMENT  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?COM--MENT?>
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?COM--MENT? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!COM--MENT>
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- COM--MENT -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-</ COM--MENT >
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
-Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  COM--MENT  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><style> EOF
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       " EOF"
-|   <body>
-
-#data
-<!DOCTYPE html><script> <!-- </script> --> </script> EOF
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       " <!-- "
-|     " "
-|   <body>
-|     "-->  EOF"
-
-#data
-<b><p></b>TEST
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <p>
-|       <b>
-|       "TEST"
-
-#data
-<p id=a><b><p id=b></b>TEST
-#errors
-Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end tag (p). Ignored.
-Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       id="a"
-|       <b>
-|     <p>
-|       id="b"
-|       "TEST"
-
-#data
-<b id=a><p><b id=b></p></b>TEST
-#errors
-Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (p). Ignored.
-Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 31 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       id="a"
-|       <p>
-|         <b>
-|           id="b"
-|       "TEST"
-
-#data
-<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>
-#errors
-Line: 1 Col: 61 Unexpected end tag (p). Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "U-test"
-|   <body>
-|     <div>
-|       <p>
-|         "Test"
-|         <u>
-
-#data
-<!DOCTYPE html><font><table></font></table></font>
-#errors
-Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode.
-Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <table>
-
-#data
-<font><p>hello<b>cruel</font>world
-#errors
-Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE.
-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|     <p>
-|       <font>
-|         "hello"
-|         <b>
-|           "cruel"
-|       <b>
-|         "world"
-
-#data
-<b>Test</i>Test
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "TestTest"
-
-#data
-<b>A<cite>B<div>C
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|         <div>
-|           "C"
-
-#data
-<b>A<cite>B<div>C</cite>D
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end tag (cite). Ignored.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|         <div>
-|           "CD"
-
-#data
-<b>A<cite>B<div>C</b>D
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 22 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|     <div>
-|       <b>
-|         "C"
-|       "D"
-
-#data
-
-#errors
-Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<DIV>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 5 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<DIV> abc
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 9 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc"
-
-#data
-<DIV> abc <B>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-
-#data
-<DIV> abc <B> def
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def"
-
-#data
-<DIV> abc <B> def <I>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-
-#data
-<DIV> abc <B> def <I> ghi
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi"
-
-#data
-<DIV> abc <B> def <I> ghi <P>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|           <p>
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|           <p>
-|             " jkl"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 38 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|         <p>
-|           <b>
-|             " jkl "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|         <p>
-|           <b>
-|             " jkl "
-|           " mno"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 60 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr "
-|       " stu"
-
-#data
-<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
-#errors
-Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE.
-Line: 1 Col: 1040 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <test>
-|       attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=""
-
-#data
-<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe
-#errors
-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "aba"
-|       <a>
-|         href="foo"
-|         "br"
-|       <a>
-|         href="foo"
-|         "x"
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|     <a>
-|       href="foo"
-|       "aoe"
-
-#data
-<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "abax"
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 href="foo"
-|                 "br"
-|       "aoe"
-
-#data
-<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "aba"
-|     <a>
-|       href="blah"
-|       "x"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <a>
-|               href="foo"
-|               "br"
-|     <a>
-|       href="blah"
-|       "aoe"
-
-#data
-<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa
-#errors
-Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="a"
-|       "aa"
-|       <marquee>
-|         "aa"
-|         <a>
-|           href="b"
-|           "bb"
-|       "aa"
-
-#data
-<wbr><strike><code></strike><code><strike></code>
-#errors
-Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE.
-Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 49 Unexpected end tag (code). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-|     <strike>
-|       <code>
-|     <code>
-|       <code>
-|         <strike>
-
-#data
-<!DOCTYPE html><spacer>foo
-#errors
-26: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <spacer>
-|       "foo"
-
-#data
-<title><meta></title><link><title><meta></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<meta>"
-|     <link>
-|     <title>
-|       "<meta>"
-|   <body>
-
-#data
-<style><!--</style><meta><script>--><link></script>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 51 Unexpected end of file. Expected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|     <meta>
-|     <script>
-|       "--><link>"
-|   <body>
-
-#data
-<head><meta></head><link>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <meta>
-|     <link>
-|   <body>
-
-#data
-<table><tr><tr><td><td><span><th><span>X</table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|         <tr>
-|           <td>
-|           <td>
-|             <span>
-|           <th>
-|             <span>
-|               "X"
-
-#data
-<body><body><base><link><meta><title><p></title><body><p></body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (body).
-Line: 1 Col: 54 Unexpected start tag (body).
-Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <base>
-|     <link>
-|     <meta>
-|     <title>
-|       "<p>"
-|     <p>
-
-#data
-<textarea><p></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<p>"
-
-#data
-<p><image></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected start tag (image). Treated as img.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <img>
-
-#data
-<a><table><a></table><p><a><div><a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a).
-Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 32 Unexpected end tag (p). Ignored.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|     <p>
-|       <a>
-|     <div>
-|       <a>
-
-#data
-<head></p><meta><p>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|     <meta>
-|   <body>
-|     <p>
-
-#data
-<head></html><meta><p>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected start tag (meta).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     <p>
-
-#data
-<b><table><td><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<b><table><td></b><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<h1><h2>
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-8: Heading cannot be a child of another heading.
-8: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|     <h2>
-
-#data
-<a><p><a></a></p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-|       <a>
-
-#data
-<b><button></b></button></b>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <button>
-|       <b>
-
-#data
-<p><b><div><marquee></p></b></div>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|     <div>
-|       <b>
-|         <marquee>
-|           <p>
-
-#data
-<script></script></div><title></title><p><p>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (div). Ignored.
-#document
-| <html>
-|   <head>
-|     <script>
-|     <title>
-|   <body>
-|     <p>
-|     <p>
-
-#data
-<p><hr></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <hr>
-|     <p>
-
-#data
-<select><b><option><select><option></b></select>
-#errors
-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
-Line: 1 Col: 48 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|     <option>
-
-#data
-<html><head><title></title><body></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|   <body>
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 54 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 <table>
-|               <a>
-|     <a>
-
-#data
-<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>
-#errors
-Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE.
-Line: 1 Col: 45 Missing end tag (div, li).
-Line: 1 Col: 58 Missing end tag (address, li).
-Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|       <div>
-|         <li>
-|       <li>
-|       <li>
-|         <div>
-|       <li>
-|         <address>
-|       <li>
-|         <b>
-|           <em>
-|       <li>
-
-#data
-<ul><li><ul></li><li>a</li></ul></li></ul>
-#errors
-XXX: fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <ul>
-|           <li>
-|             "a"
-
-#data
-<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-|     <frameset>
-|       <frame>
-|     <noframes>
-
-#data
-<h1><table><td><h3></table><h3></h1>
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-15: â€œtdâ€ start tag in table body.
-27: Unclosed elements.
-31: Heading cannot be a child of another heading.
-36: End tag â€œh1â€ seen but there were unclosed elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <h3>
-|     <h3>
-
-#data
-<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|       <colgroup>
-|         <col>
-|         <col>
-|         <col>
-|       <colgroup>
-|         <col>
-|         <col>
-|       <thead>
-|         <tr>
-|           <td>
-
-#data
-<table><col><tbody><col><tr><col><td><col></table><col>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 55 Unexpected start tag col. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|         <tr>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|         <tr>
-|           <td>
-|       <colgroup>
-|         <col>
-
-#data
-<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 80 Unexpected start tag colgroup. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|       <tbody>
-|       <colgroup>
-|       <tbody>
-|         <tr>
-|       <colgroup>
-|       <tbody>
-|         <tr>
-|           <td>
-|       <colgroup>
-
-#data
-</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element.
-Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element.
-Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element.
-Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element.
-Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element.
-Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element.
-Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element.
-Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element.
-Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element.
-Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element.
-Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element.
-Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element.
-Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element.
-Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element.
-Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element.
-Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element.
-Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element.
-Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element.
-Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element.
-Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element.
-Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element.
-Line: 1 Col: 130 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 140 This element (img) has no end tag.
-Line: 1 Col: 148 Unexpected end tag (title). Ignored.
-Line: 1 Col: 155 Unexpected end tag (span). Ignored.
-Line: 1 Col: 163 Unexpected end tag (style). Ignored.
-Line: 1 Col: 172 Unexpected end tag (script). Ignored.
-Line: 1 Col: 180 Unexpected end tag (table). Ignored.
-Line: 1 Col: 185 Unexpected end tag (th). Ignored.
-Line: 1 Col: 190 Unexpected end tag (td). Ignored.
-Line: 1 Col: 195 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 203 This element (frame) has no end tag.
-Line: 1 Col: 210 This element (area) has no end tag.
-Line: 1 Col: 217 Unexpected end tag (link). Ignored.
-Line: 1 Col: 225 This element (param) has no end tag.
-Line: 1 Col: 230 This element (hr) has no end tag.
-Line: 1 Col: 238 This element (input) has no end tag.
-Line: 1 Col: 244 Unexpected end tag (col). Ignored.
-Line: 1 Col: 251 Unexpected end tag (base). Ignored.
-Line: 1 Col: 258 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 269 This element (basefont) has no end tag.
-Line: 1 Col: 279 This element (bgsound) has no end tag.
-Line: 1 Col: 287 This element (embed) has no end tag.
-Line: 1 Col: 296 This element (spacer) has no end tag.
-Line: 1 Col: 300 Unexpected end tag (p). Ignored.
-Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 320 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 339 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 355 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 393 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 460 This element (wbr) has no end tag.
-Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 513 Unexpected end tag (html). Ignored.
-Line: 1 Col: 513 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 520 Unexpected end tag (head). Ignored.
-Line: 1 Col: 529 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 537 This element (image) has no end tag.
-Line: 1 Col: 547 This element (isindex) has no end tag.
-Line: 1 Col: 557 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 568 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 599 Unexpected end tag (option). Ignored.
-Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 622 Unexpected end tag (textarea). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     <p>
-
-#data
-<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode.
-Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode.
-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode.
-Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode.
-Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode.
-Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode.
-Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode.
-Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode.
-Line: 1 Col: 58 Unexpected end tag (blink). Ignored.
-Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode.
-Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode.
-Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag.
-Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode.
-Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode.
-Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode.
-Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode.
-Line: 1 Col: 99 Unexpected end tag (select). Ignored.
-Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode.
-Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag.
-Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode.
-Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag.
-Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode.
-Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag.
-Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode.
-Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag.
-Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode.
-Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag.
-Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode.
-Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag.
-Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored.
-Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode.
-Line: 1 Col: 141 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode.
-Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode.
-Line: 1 Col: 151 This element (img) has no end tag.
-Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode.
-Line: 1 Col: 159 Unexpected end tag (title). Ignored.
-Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode.
-Line: 1 Col: 166 Unexpected end tag (span). Ignored.
-Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode.
-Line: 1 Col: 174 Unexpected end tag (style). Ignored.
-Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode.
-Line: 1 Col: 183 Unexpected end tag (script). Ignored.
-Line: 1 Col: 196 Unexpected end tag (th). Ignored.
-Line: 1 Col: 201 Unexpected end tag (td). Ignored.
-Line: 1 Col: 206 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 214 This element (frame) has no end tag.
-Line: 1 Col: 221 This element (area) has no end tag.
-Line: 1 Col: 228 Unexpected end tag (link). Ignored.
-Line: 1 Col: 236 This element (param) has no end tag.
-Line: 1 Col: 241 This element (hr) has no end tag.
-Line: 1 Col: 249 This element (input) has no end tag.
-Line: 1 Col: 255 Unexpected end tag (col). Ignored.
-Line: 1 Col: 262 Unexpected end tag (base). Ignored.
-Line: 1 Col: 269 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 280 This element (basefont) has no end tag.
-Line: 1 Col: 290 This element (bgsound) has no end tag.
-Line: 1 Col: 298 This element (embed) has no end tag.
-Line: 1 Col: 307 This element (spacer) has no end tag.
-Line: 1 Col: 311 Unexpected end tag (p). Ignored.
-Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 331 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 350 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 366 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 404 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 471 This element (wbr) has no end tag.
-Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 524 Unexpected end tag (html). Ignored.
-Line: 1 Col: 524 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 531 Unexpected end tag (head). Ignored.
-Line: 1 Col: 540 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 548 This element (image) has no end tag.
-Line: 1 Col: 558 This element (isindex) has no end tag.
-Line: 1 Col: 568 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 590 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 610 Unexpected end tag (option). Ignored.
-Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 633 Unexpected end tag (textarea). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     <table>
-|       <tbody>
-|         <tr>
-|     <p>
-
-#data
-<frameset>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 10 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests10.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests10.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests10.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests10.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,799 +0,0 @@
-#data
-<!DOCTYPE html><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!DOCTYPE html><svg></svg><![CDATA[a]]>
-#errors
-29: Bogus comment
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <!-- [CDATA[a]] -->
-
-#data
-<!DOCTYPE html><body><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!DOCTYPE html><body><select><svg></svg></select>
-#errors
-35: Stray â€œsvgâ€ start tag.
-42: Stray end tag â€œsvgâ€
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!DOCTYPE html><body><select><option><svg></svg></option></select>
-#errors
-43: Stray â€œsvgâ€ start tag.
-50: Stray end tag â€œsvgâ€
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!DOCTYPE html><body><table><svg></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-41: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-46: Stray end tag â€œgâ€.
-53: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-46: Stray end tag â€œgâ€.
-58: Stray end tag â€œgâ€.
-65: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>
-#errors
-41: Start tag â€œsvgâ€ seen in â€œtableâ€.
-53: Stray end tag â€œgâ€.
-65: Stray end tag â€œgâ€.
-72: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-|       <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>
-#errors
-45: Start tag â€œsvgâ€ seen in â€œtableâ€.
-57: Stray end tag â€œgâ€.
-69: Stray end tag â€œgâ€.
-76: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg g>
-|                 "foo"
-|               <svg g>
-|                 "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg g>
-|                 "foo"
-|               <svg g>
-|                 "bar"
-|             <p>
-|               "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|         <p>
-|           "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-70: HTML start tag â€œpâ€ in a foreign namespace context.
-81: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|         <p>
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux
-#errors
-78: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-78: Unclosed elements on stack.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-44: Start tag â€œsvgâ€ seen in â€œtableâ€.
-56: Stray end tag â€œgâ€.
-68: Stray end tag â€œgâ€.
-71: HTML start tag â€œpâ€ in a foreign namespace context.
-71: Start tag â€œpâ€ seen in â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-|     <table>
-|       <colgroup>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-50: Stray â€œsvgâ€ start tag.
-54: Stray â€œgâ€ start tag.
-62: Stray end tag â€œgâ€
-66: Stray â€œgâ€ start tag.
-74: Stray end tag â€œgâ€
-77: Stray â€œpâ€ start tag.
-88: â€œtableâ€ end tag with â€œselectâ€ open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|               "foobarbaz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-36: Start tag â€œselectâ€ seen in â€œtableâ€.
-42: Stray â€œsvgâ€ start tag.
-46: Stray â€œgâ€ start tag.
-54: Stray end tag â€œgâ€
-58: Stray â€œgâ€ start tag.
-66: Stray end tag â€œgâ€
-69: Stray â€œpâ€ start tag.
-80: â€œtableâ€ end tag with â€œselectâ€ open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "foobarbaz"
-|     <table>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz
-#errors
-41: Stray â€œsvgâ€ start tag.
-68: HTML start tag â€œpâ€ in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz
-#errors
-34: Stray â€œsvgâ€ start tag.
-61: HTML start tag â€œpâ€ in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>
-#errors
-31: Stray â€œsvgâ€ start tag.
-35: Stray â€œgâ€ start tag.
-40: Stray end tag â€œgâ€
-44: Stray â€œgâ€ start tag.
-49: Stray end tag â€œgâ€
-52: Stray â€œpâ€ start tag.
-58: Stray â€œspanâ€ start tag.
-58: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>
-#errors
-42: Stray â€œsvgâ€ start tag.
-46: Stray â€œgâ€ start tag.
-51: Stray end tag â€œgâ€
-55: Stray â€œgâ€ start tag.
-60: Stray end tag â€œgâ€
-63: Stray â€œpâ€ start tag.
-69: Stray â€œspanâ€ start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     <svg svg>
-|       xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-|       "bar"
-
-#data
-<svg></path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<div><svg></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|     "a"
-
-#data
-<div><svg><path></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|     "a"
-
-#data
-<div><svg><path></svg><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|       <path>
-
-#data
-<div><svg><path><foreignObject><math></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <math math>
-|               "a"
-
-#data
-<div><svg><path><foreignObject><p></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <p>
-|               "a"
-
-#data
-<!DOCTYPE html><svg><desc><div><svg><ul>a
-#errors
-40: HTML start tag â€œulâ€ in a foreign namespace context.
-41: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg desc>
-|         <div>
-|           <svg svg>
-|           <ul>
-|             "a"
-
-#data
-<!DOCTYPE html><svg><desc><svg><ul>a
-#errors
-35: HTML start tag â€œulâ€ in a foreign namespace context.
-36: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg desc>
-|         <svg svg>
-|         <ul>
-|           "a"
-
-#data
-<!DOCTYPE html><p><svg><desc><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <svg svg>
-|         <svg desc>
-|           <p>
-
-#data
-<!DOCTYPE html><p><svg><title><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <svg svg>
-|         <svg title>
-|           <p>
-
-#data
-<div><svg><path><foreignObject><p></foreignObject><p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <p>
-|             <p>
-
-#data
-<math><mi><div><object><div><span></span></div></object></div></mi><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <div>
-|           <object>
-|             <div>
-|               <span>
-|       <math mi>
-
-#data
-<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <svg svg>
-|           <svg foreignObject>
-|             <div>
-|               <div>
-|       <math mi>
-
-#data
-<svg><script></script><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg script>
-|       <svg path>
-
-#data
-<table><svg></svg><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<math><mi><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <math mglyph>
-
-#data
-<math><mi><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <math malignmark>
-
-#data
-<math><mo><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mo>
-|         <math mglyph>
-
-#data
-<math><mo><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mo>
-|         <math malignmark>
-
-#data
-<math><mn><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         <math mglyph>
-
-#data
-<math><mn><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         <math malignmark>
-
-#data
-<math><ms><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math ms>
-|         <math mglyph>
-
-#data
-<math><ms><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math ms>
-|         <math malignmark>
-
-#data
-<math><mtext><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <math mglyph>
-
-#data
-<math><mtext><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <math malignmark>
-
-#data
-<math><annotation-xml><svg></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|       <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg foreignObject>
-|             <div>
-|               <math math>
-|                 <math mi>
-|               <span>
-|           <svg path>
-|       <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg foreignObject>
-|             <math math>
-|               <math mi>
-|                 <svg svg>
-|               <math mo>
-|             <span>
-|           <svg path>
-|       <math mi>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests11.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests11.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests11.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests11.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,482 +0,0 @@
-#data
-<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       attributename=""
-|       attributetype=""
-|       basefrequency=""
-|       baseprofile=""
-|       calcmode=""
-|       clippathunits=""
-|       contentscripttype=""
-|       contentstyletype=""
-|       diffuseconstant=""
-|       edgemode=""
-|       externalresourcesrequired=""
-|       filterres=""
-|       filterunits=""
-|       glyphref=""
-|       gradienttransform=""
-|       gradientunits=""
-|       kernelmatrix=""
-|       kernelunitlength=""
-|       keypoints=""
-|       keysplines=""
-|       keytimes=""
-|       lengthadjust=""
-|       limitingconeangle=""
-|       markerheight=""
-|       markerunits=""
-|       markerwidth=""
-|       maskcontentunits=""
-|       maskunits=""
-|       numoctaves=""
-|       pathlength=""
-|       patterncontentunits=""
-|       patterntransform=""
-|       patternunits=""
-|       pointsatx=""
-|       pointsaty=""
-|       pointsatz=""
-|       preservealpha=""
-|       preserveaspectratio=""
-|       primitiveunits=""
-|       refx=""
-|       refy=""
-|       repeatcount=""
-|       repeatdur=""
-|       requiredextensions=""
-|       requiredfeatures=""
-|       specularconstant=""
-|       specularexponent=""
-|       spreadmethod=""
-|       startoffset=""
-|       stddeviation=""
-|       stitchtiles=""
-|       surfacescale=""
-|       systemlanguage=""
-|       tablevalues=""
-|       targetx=""
-|       targety=""
-|       textlength=""
-|       viewbox=""
-|       viewtarget=""
-|       xchannelselector=""
-|       ychannelselector=""
-|       zoomandpan=""
-
-#data
-<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math altglyph>
-|       <math altglyphdef>
-|       <math altglyphitem>
-|       <math animatecolor>
-|       <math animatemotion>
-|       <math animatetransform>
-|       <math clippath>
-|       <math feblend>
-|       <math fecolormatrix>
-|       <math fecomponenttransfer>
-|       <math fecomposite>
-|       <math feconvolvematrix>
-|       <math fediffuselighting>
-|       <math fedisplacementmap>
-|       <math fedistantlight>
-|       <math feflood>
-|       <math fefunca>
-|       <math fefuncb>
-|       <math fefuncg>
-|       <math fefuncr>
-|       <math fegaussianblur>
-|       <math feimage>
-|       <math femerge>
-|       <math femergenode>
-|       <math femorphology>
-|       <math feoffset>
-|       <math fepointlight>
-|       <math fespecularlighting>
-|       <math fespotlight>
-|       <math fetile>
-|       <math feturbulence>
-|       <math foreignobject>
-|       <math glyphref>
-|       <math lineargradient>
-|       <math radialgradient>
-|       <math textpath>
-
-#data
-<!DOCTYPE html><body><svg><solidColor /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg solidcolor>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests12.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests12.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests12.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests12.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,62 +0,0 @@
-#data
-<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "foo"
-|       <math math>
-|         <math mtext>
-|           <i>
-|             "baz"
-|         <math annotation-xml>
-|           <svg svg>
-|             <svg desc>
-|               <b>
-|                 "eggs"
-|             <svg g>
-|               <svg foreignObject>
-|                 <p>
-|                   "spam"
-|                 <table>
-|                   <tbody>
-|                     <tr>
-|                       <td>
-|                         <img>
-|             <svg g>
-|               "quux"
-|       "bar"
-
-#data
-<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <math math>
-|       <math mtext>
-|         <i>
-|           "baz"
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg desc>
-|             <b>
-|               "eggs"
-|           <svg g>
-|             <svg foreignObject>
-|               <p>
-|                 "spam"
-|               <table>
-|                 <tbody>
-|                   <tr>
-|                     <td>
-|                       <img>
-|           <svg g>
-|             "quux"
-|     "bar"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests14.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests14.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests14.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests14.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,74 +0,0 @@
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xyz:abc>
-
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xyz:abc>
-|     <span>
-
-#data
-<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>
-#errors
-15: Unexpected start tag html
-#document
-| <!DOCTYPE html>
-| <html>
-|   abc:def="gh"
-|   <head>
-|   <body>
-|     <xyz:abc>
-
-#data
-<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>
-#errors
-15: Unexpected start tag html
-#document
-| <!DOCTYPE html>
-| <html>
-|   xml:lang="bar"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html 123=456>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   123="456"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html 123=456><html 789=012>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   123="456"
-|   789="012"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html><body 789=012>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     789="012"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests15.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests15.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests15.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests15.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,208 +0,0 @@
-#data
-<!DOCTYPE html><p><b><i><u></p> <p>X
-#errors
-Line: 1 Col: 31 Unexpected end tag (p). Ignored.
-Line: 1 Col: 36 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         <i>
-|           <u>
-|     <b>
-|       <i>
-|         <u>
-|           " "
-|           <p>
-|             "X"
-
-#data
-<p><b><i><u></p>
-<p>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end tag (p). Ignored.
-Line: 2 Col: 4 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         <i>
-|           <u>
-|     <b>
-|       <i>
-|         <u>
-|           "
-"
-|           <p>
-|             "X"
-
-#data
-<!doctype html></html> <head>
-#errors
-Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " "
-
-#data
-<!doctype html></body><meta>
-#errors
-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-
-#data
-<html></html><!-- foo -->
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-| <!--  foo  -->
-
-#data
-<!doctype html></body><title>X</title>
-#errors
-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-
-#data
-<!doctype html><table> X<meta></table>
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " X"
-|     <meta>
-|     <table>
-
-#data
-<!doctype html><table> x</table>
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x"
-|     <table>
-
-#data
-<!doctype html><table> x </table>
-#errors
-Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x "
-|     <table>
-
-#data
-<!doctype html><table><tr> x</table>
-#errors
-Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table>X<style> <tr>x </style> </table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <style>
-|         " <tr>x "
-|       " "
-
-#data
-<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>
-#errors
-Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <a>
-|         "foo"
-|       <table>
-|         " "
-|         <tbody>
-|           <tr>
-|             <td>
-|               "bar"
-|             " "
-
-#data
-<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>
-#errors
-6: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-13: Stray start tag â€œframeâ€.
-21: Stray end tag â€œframeâ€.
-29: Stray end tag â€œframeâ€.
-39: â€œframesetâ€ start tag after â€œbodyâ€ already open.
-105: End of file seen inside an [R]CDATA element.
-105: End of file seen and there were open elements.
-XXX: These errors are wrong, please fix me!
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-|     <frameset>
-|       <frame>
-|     <noframes>
-|       "</frameset><noframes>"
-
-#data
-<!DOCTYPE html><object></html>
-#errors
-1: Expected closing tag. Unexpected end of file
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <object>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests16.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests16.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests16.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests16.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,2299 +0,0 @@
-#data
-<!doctype html><script>
-#errors
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script>a
-#errors
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "a"
-|   <body>
-
-#data
-<!doctype html><script><
-#errors
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<"
-|   <body>
-
-#data
-<!doctype html><script></
-#errors
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</"
-|   <body>
-
-#data
-<!doctype html><script></S
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</S"
-|   <body>
-
-#data
-<!doctype html><script></SC
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SC"
-|   <body>
-
-#data
-<!doctype html><script></SCR
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCR"
-|   <body>
-
-#data
-<!doctype html><script></SCRI
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRI"
-|   <body>
-
-#data
-<!doctype html><script></SCRIP
-#errors
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIP"
-|   <body>
-
-#data
-<!doctype html><script></SCRIPT
-#errors
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIPT"
-|   <body>
-
-#data
-<!doctype html><script></SCRIPT 
-#errors
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script></s
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</s"
-|   <body>
-
-#data
-<!doctype html><script></sc
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</sc"
-|   <body>
-
-#data
-<!doctype html><script></scr
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scr"
-|   <body>
-
-#data
-<!doctype html><script></scri
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scri"
-|   <body>
-
-#data
-<!doctype html><script></scrip
-#errors
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scrip"
-|   <body>
-
-#data
-<!doctype html><script></script
-#errors
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</script"
-|   <body>
-
-#data
-<!doctype html><script></script 
-#errors
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script><!
-#errors
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!"
-|   <body>
-
-#data
-<!doctype html><script><!a
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!a"
-|   <body>
-
-#data
-<!doctype html><script><!-
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!-"
-|   <body>
-
-#data
-<!doctype html><script><!-a
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!-a"
-|   <body>
-
-#data
-<!doctype html><script><!--
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<!doctype html><script><!--a
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--a"
-|   <body>
-
-#data
-<!doctype html><script><!--<
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<"
-|   <body>
-
-#data
-<!doctype html><script><!--<a
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<a"
-|   <body>
-
-#data
-<!doctype html><script><!--</
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--</"
-|   <body>
-
-#data
-<!doctype html><script><!--</script
-#errors
-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--</script"
-|   <body>
-
-#data
-<!doctype html><script><!--</script 
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<!doctype html><script><!--<s
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<s"
-|   <body>
-
-#data
-<!doctype html><script><!--<script
-#errors
-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script 
-#errors
-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script <
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <"
-|   <body>
-
-#data
-<!doctype html><script><!--<script <a
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </s
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </s"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script
-#errors
-Line: 1 Col: 43 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </scripta
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </scripta"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script 
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script>
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script>"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script/
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script/"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script <
-#errors
-Line: 1 Col: 45 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script <a
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script
-#errors
-Line: 1 Col: 52 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script 
-#errors
-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script/
-#errors
-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script -
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -a
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -<
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -<"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --a
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --<
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --<"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -->
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --><
-#errors
-Line: 1 Col: 39 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --><"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></
-#errors
-Line: 1 Col: 40 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script 
-#errors
-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script/
-#errors
-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script><\/script>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script><\/script>-->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt>-->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>--><!--</script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>--><!--"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-- ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>-- >"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- -></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- ->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- - ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- - >"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script>--!></script>X
-#errors
-Line: 1 Col: 49 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script>--!></script>X"
-|   <body>
-
-#data
-<!doctype html><script><!--<scr'+'ipt></script>--></script>
-#errors
-Line: 1 Col: 59 Unexpected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<scr'+'ipt>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt></script>X
-#errors
-Line: 1 Col: 57 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt></script>X"
-|   <body>
-
-#data
-<!doctype html><style><!--<style></style>--></style>
-#errors
-Line: 1 Col: 52 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--<style>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><style><!--</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><style><!--...</style>...--></style>
-#errors
-Line: 1 Col: 51 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|   <body>
-|     "...-->"
-
-#data
-<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><style><!--...<style><!--...--!></style>--></style>
-#errors
-Line: 1 Col: 66 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--...<style><!--...--!>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><style><!--...</style><!-- --><style>@import ...</style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|     <!--   -->
-|     <style>
-|       "@import ..."
-|   <body>
-
-#data
-<!doctype html><style>...<style><!--...</style><!-- --></style>
-#errors
-Line: 1 Col: 63 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "...<style><!--..."
-|     <!--   -->
-|   <body>
-
-#data
-<!doctype html><style>...<!--[if IE]><style>...</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "...<!--[if IE]><style>..."
-|   <body>
-|     "X"
-
-#data
-<!doctype html><title><!--<title></title>--></title>
-#errors
-Line: 1 Col: 52 Unexpected end tag (title).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "<!--<title>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><title>&lt;/title></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "</title>"
-|   <body>
-
-#data
-<!doctype html><title>foo/title><link></head><body>X
-#errors
-Line: 1 Col: 52 Unexpected end of file. Expected end tag (title).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "foo/title><link></head><body>X"
-|   <body>
-
-#data
-<!doctype html><noscript><!--<noscript></noscript>--></noscript>
-#errors
-Line: 1 Col: 64 Unexpected end tag (noscript).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--<noscript>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "X"
-|     <noscript>
-|       "-->"
-
-#data
-<!doctype html><noscript><iframe></noscript>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<iframe>"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><noframes><!--<noframes></noframes>--></noframes>
-#errors
-Line: 1 Col: 64 Unexpected end tag (noframes).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noframes>
-|       "<!--<noframes>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><noframes><body><script><!--...</script></body></noframes></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noframes>
-|       "<body><script><!--...</script></body>"
-|   <body>
-
-#data
-<!doctype html><textarea><!--<textarea></textarea>--></textarea>
-#errors
-Line: 1 Col: 64 Unexpected end tag (textarea).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--<textarea>"
-|     "-->"
-
-#data
-<!doctype html><textarea>&lt;/textarea></textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "</textarea>"
-
-#data
-<!doctype html><textarea>&lt;</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<"
-
-#data
-<!doctype html><textarea>a&lt;b</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "a<b"
-
-#data
-<!doctype html><iframe><!--<iframe></iframe>--></iframe>
-#errors
-Line: 1 Col: 56 Unexpected end tag (iframe).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "<!--<iframe>"
-|     "-->"
-
-#data
-<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "...<!--X->...<!--/X->..."
-
-#data
-<!doctype html><xmp><!--<xmp></xmp>--></xmp>
-#errors
-Line: 1 Col: 44 Unexpected end tag (xmp).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       "<!--<xmp>"
-|     "-->"
-
-#data
-<!doctype html><noembed><!--<noembed></noembed>--></noembed>
-#errors
-Line: 1 Col: 60 Unexpected end tag (noembed).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <noembed>
-|       "<!--<noembed>"
-|     "-->"
-
-#data
-<script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 8 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script>a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "a"
-|   <body>
-
-#data
-<script><
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<"
-|   <body>
-
-#data
-<script></
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</"
-|   <body>
-
-#data
-<script></S
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</S"
-|   <body>
-
-#data
-<script></SC
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SC"
-|   <body>
-
-#data
-<script></SCR
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCR"
-|   <body>
-
-#data
-<script></SCRI
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRI"
-|   <body>
-
-#data
-<script></SCRIP
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIP"
-|   <body>
-
-#data
-<script></SCRIPT
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIPT"
-|   <body>
-
-#data
-<script></SCRIPT 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script></s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</s"
-|   <body>
-
-#data
-<script></sc
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</sc"
-|   <body>
-
-#data
-<script></scr
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scr"
-|   <body>
-
-#data
-<script></scri
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scri"
-|   <body>
-
-#data
-<script></scrip
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scrip"
-|   <body>
-
-#data
-<script></script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</script"
-|   <body>
-
-#data
-<script></script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script><!
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!"
-|   <body>
-
-#data
-<script><!a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!a"
-|   <body>
-
-#data
-<script><!-
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!-"
-|   <body>
-
-#data
-<script><!-a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!-a"
-|   <body>
-
-#data
-<script><!--
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<script><!--a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--a"
-|   <body>
-
-#data
-<script><!--<
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<"
-|   <body>
-
-#data
-<script><!--<a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<a"
-|   <body>
-
-#data
-<script><!--</
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--</"
-|   <body>
-
-#data
-<script><!--</script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--</script"
-|   <body>
-
-#data
-<script><!--</script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<script><!--<s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<s"
-|   <body>
-
-#data
-<script><!--<script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script"
-|   <body>
-
-#data
-<script><!--<script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script "
-|   <body>
-
-#data
-<script><!--<script <
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <"
-|   <body>
-
-#data
-<script><!--<script <a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <a"
-|   <body>
-
-#data
-<script><!--<script </
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </"
-|   <body>
-
-#data
-<script><!--<script </s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </s"
-|   <body>
-
-#data
-<script><!--<script </script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script"
-|   <body>
-
-#data
-<script><!--<script </scripta
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </scripta"
-|   <body>
-
-#data
-<script><!--<script </script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script>"
-|   <body>
-
-#data
-<script><!--<script </script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script/"
-|   <body>
-
-#data
-<script><!--<script </script <
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <"
-|   <body>
-
-#data
-<script><!--<script </script <a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <a"
-|   <body>
-
-#data
-<script><!--<script </script </
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </"
-|   <body>
-
-#data
-<script><!--<script </script </script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </script"
-|   <body>
-
-#data
-<script><!--<script </script </script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script </script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script </script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script -
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -"
-|   <body>
-
-#data
-<script><!--<script -a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -a"
-|   <body>
-
-#data
-<script><!--<script --
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --"
-|   <body>
-
-#data
-<script><!--<script --a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --a"
-|   <body>
-
-#data
-<script><!--<script -->
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --><
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --><"
-|   <body>
-
-#data
-<script><!--<script --></
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></"
-|   <body>
-
-#data
-<script><!--<script --></script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></script"
-|   <body>
-
-#data
-<script><!--<script --></script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --></script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script><\/script>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script><\/script>-->"
-|   <body>
-
-#data
-<script><!--<script></scr'+'ipt>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt>-->"
-|   <body>
-
-#data
-<script><!--<script></script><script></script></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>--><!--</script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>--><!--"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>-- ></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>-- >"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>- -></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- ->"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>- - ></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- - >"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>-></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>->"
-|   <body>
-
-#data
-<script><!--<script>--!></script>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script>--!></script>X"
-|   <body>
-
-#data
-<script><!--<scr'+'ipt></script>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 44 Unexpected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<scr'+'ipt>"
-|   <body>
-|     "-->"
-
-#data
-<script><!--<script></scr'+'ipt></script>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 42 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt></script>X"
-|   <body>
-
-#data
-<style><!--<style></style>--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--<style>"
-|   <body>
-|     "-->"
-
-#data
-<style><!--</style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "X"
-
-#data
-<style><!--...</style>...--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 36 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|   <body>
-|     "...-->"
-
-#data
-<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-|   <body>
-|     "X"
-
-#data
-<style><!--...<style><!--...--!></style>--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 51 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--...<style><!--...--!>"
-|   <body>
-|     "-->"
-
-#data
-<style><!--...</style><!-- --><style>@import ...</style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|     <!--   -->
-|     <style>
-|       "@import ..."
-|   <body>
-
-#data
-<style>...<style><!--...</style><!-- --></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 48 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "...<style><!--..."
-|     <!--   -->
-|   <body>
-
-#data
-<style>...<!--[if IE]><style>...</style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "...<!--[if IE]><style>..."
-|   <body>
-|     "X"
-
-#data
-<title><!--<title></title>--></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--<title>"
-|   <body>
-|     "-->"
-
-#data
-<title>&lt;/title></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "</title>"
-|   <body>
-
-#data
-<title>foo/title><link></head><body>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "foo/title><link></head><body>X"
-|   <body>
-
-#data
-<noscript><!--<noscript></noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (noscript).
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--<noscript>"
-|   <body>
-|     "-->"
-
-#data
-<noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "X"
-|     <noscript>
-|       "-->"
-
-#data
-<noscript><iframe></noscript>X
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<iframe>"
-|   <body>
-|     "X"
-
-#data
-<noframes><!--<noframes></noframes>--></noframes>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (noframes).
-#document
-| <html>
-|   <head>
-|     <noframes>
-|       "<!--<noframes>"
-|   <body>
-|     "-->"
-
-#data
-<noframes><body><script><!--...</script></body></noframes></html>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noframes>
-|       "<body><script><!--...</script></body>"
-|   <body>
-
-#data
-<textarea><!--<textarea></textarea>--></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (textarea).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--<textarea>"
-|     "-->"
-
-#data
-<textarea>&lt;/textarea></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "</textarea>"
-
-#data
-<iframe><!--<iframe></iframe>--></iframe>
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-Line: 1 Col: 41 Unexpected end tag (iframe).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "<!--<iframe>"
-|     "-->"
-
-#data
-<iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "...<!--X->...<!--/X->..."
-
-#data
-<xmp><!--<xmp></xmp>--></xmp>
-#errors
-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end tag (xmp).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       "<!--<xmp>"
-|     "-->"
-
-#data
-<noembed><!--<noembed></noembed>--></noembed>
-#errors
-Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE.
-Line: 1 Col: 45 Unexpected end tag (noembed).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <noembed>
-|       "<!--<noembed>"
-|     "-->"
-
-#data
-<!doctype html><table>
-
-#errors
-Line 2 Col 0 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "
-"
-
-#data
-<!doctype html><table><td><span><font></span><span>
-#errors
-Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase.
-Line 1 Col 45 Unexpected end tag (span).
-Line 1 Col 51 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <span>
-|               <font>
-|             <font>
-|               <span>
-
-#data
-<!doctype html><form><table></form><form></table></form>
-#errors
-35: Stray end tag â€œformâ€.
-41: Start tag â€œformâ€ seen in â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <table>
-|         <form>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests17.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests17.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests17.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests17.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,153 +0,0 @@
-#data
-<!doctype html><table><tbody><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><tr><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<!doctype html><table><tr><td><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|           <td>
-
-#data
-<!doctype html><table><tr><th><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <th>
-|             <select>
-|           <td>
-
-#data
-<!doctype html><table><caption><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <select>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><th>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><tbody>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><thead>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><tfoot>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><caption>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><table><tr></table>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|     "a"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests18.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests18.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests18.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests18.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,269 +0,0 @@
-#data
-<!doctype html><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-
-#data
-<!doctype html><table><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-
-#data
-<!doctype html><table><tbody><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-
-#data
-<!doctype html><table><tbody><tr><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><tbody><tr><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><td><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <plaintext>
-|               "</plaintext>"
-
-#data
-<!doctype html><table><caption><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <plaintext>
-|           "</plaintext>"
-
-#data
-<!doctype html><table><tr><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <style>
-|             "</script>"
-
-#data
-<!doctype html><table><tr><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <script>
-|             "</style>"
-
-#data
-<!doctype html><table><caption><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <style>
-|           "</script>"
-|         "abc"
-
-#data
-<!doctype html><table><td><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <style>
-|               "</script>"
-|             "abc"
-
-#data
-<!doctype html><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-
-#data
-<!doctype html><table><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-|     <table>
-
-#data
-<!doctype html><table><tr><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><frameset></frameset><noframes>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-
-#data
-<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-|   <!-- abc -->
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-| <!-- abc -->
-
-#data
-<!doctype html><table><tr></tbody><tfoot>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|       <tfoot>
-
-#data
-<!doctype html><table><td><svg></svg>abc<td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|             "abc"
-|           <td>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests19.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests19.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests19.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests19.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,1237 +0,0 @@
-#data
-<!doctype html><math><mn DefinitionUrl="foo">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         definitionURL="foo"
-
-#data
-<!doctype html><html></p><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <!-- foo -->
-|   <head>
-|   <body>
-
-#data
-<!doctype html><head></head></p><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <!-- foo -->
-|   <body>
-
-#data
-<!doctype html><body><p><pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <pre>
-
-#data
-<!doctype html><body><p><listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <listing>
-
-#data
-<!doctype html><p><plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <plaintext>
-
-#data
-<!doctype html><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <h1>
-
-#data
-<!doctype html><form><isindex>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-
-#data
-<!doctype html><isindex action="POST">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       action="POST"
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><isindex prompt="this is isindex">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "this is isindex"
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><isindex type="hidden">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|           type="hidden"
-|       <hr>
-
-#data
-<!doctype html><isindex name="foo">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><ruby><p><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <p>
-|       <rp>
-
-#data
-<!doctype html><ruby><div><span><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <span>
-|           <rp>
-
-#data
-<!doctype html><ruby><div><p><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <p>
-|         <rp>
-
-#data
-<!doctype html><ruby><p><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <p>
-|       <rt>
-
-#data
-<!doctype html><ruby><div><span><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <span>
-|           <rt>
-
-#data
-<!doctype html><ruby><div><p><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <p>
-|         <rt>
-
-#data
-<!doctype html><math/><foo>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|     <foo>
-
-#data
-<!doctype html><svg/><foo>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <foo>
-
-#data
-<!doctype html><div></body><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|   <!-- foo -->
-
-#data
-<!doctype html><h1><div><h3><span></h1>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       <div>
-|         <h3>
-|           <span>
-|         "foo"
-
-#data
-<!doctype html><p></h3>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "foo"
-
-#data
-<!doctype html><h3><li>abc</h2>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <h3>
-|       <li>
-|         "abc"
-|     "foo"
-
-#data
-<!doctype html><table>abc<!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <!-- foo -->
-
-#data
-<!doctype html><table>  <!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <!-- foo -->
-
-#data
-<!doctype html><table> b <!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " b "
-|     <table>
-|       <!-- foo -->
-
-#data
-<!doctype html><select><option><option>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|       <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!doctype html><p><math><mi><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mi>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mo><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mo>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mn><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mn>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><ms><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math ms>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mtext><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mtext>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><frameset></noframes>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html c=d><body></html><html a=b>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <body>
-
-#data
-<!doctype html><html c=d><frameset></frameset></html><html a=b>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-| <!-- foo -->
-
-#data
-<!doctype html><html><frameset></frameset></html>  
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   "  "
-
-#data
-<!doctype html><html><frameset></frameset></html>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html></p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<html><frameset></frameset></html><!doctype html>
-#errors
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><body><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html><p><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><p>a<frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "a"
-
-#data
-<!doctype html><p> <frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><pre><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-
-#data
-<!doctype html><listing><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <listing>
-
-#data
-<!doctype html><li><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <li>
-
-#data
-<!doctype html><dd><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-
-#data
-<!doctype html><dt><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dt>
-
-#data
-<!doctype html><button><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <button>
-
-#data
-<!doctype html><applet><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <applet>
-
-#data
-<!doctype html><marquee><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <marquee>
-
-#data
-<!doctype html><object><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <object>
-
-#data
-<!doctype html><table><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-
-#data
-<!doctype html><area><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <area>
-
-#data
-<!doctype html><basefont><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <basefont>
-|   <frameset>
-
-#data
-<!doctype html><bgsound><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <bgsound>
-|   <frameset>
-
-#data
-<!doctype html><br><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<!doctype html><embed><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <embed>
-
-#data
-<!doctype html><img><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-
-#data
-<!doctype html><input><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-
-#data
-<!doctype html><keygen><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <keygen>
-
-#data
-<!doctype html><wbr><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-
-#data
-<!doctype html><hr><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <hr>
-
-#data
-<!doctype html><textarea></textarea><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-
-#data
-<!doctype html><xmp></xmp><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-
-#data
-<!doctype html><iframe></iframe><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-
-#data
-<!doctype html><select></select><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><svg></svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><math></math><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><svg><foreignObject><div> <frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><svg>a</svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "a"
-
-#data
-<!doctype html><svg> </svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<html>aaa<frameset></frameset>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "aaa"
-
-#data
-<html> a <frameset></frameset>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "a "
-
-#data
-<!doctype html><div><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><div><body><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<!doctype html><p><math></p>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|     "a"
-
-#data
-<!doctype html><p><math><mn><span></p>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mn>
-|           <span>
-|             <p>
-|             "a"
-
-#data
-<!doctype html><math></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!doctype html><meta charset="ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|       charset="ascii"
-|   <body>
-
-#data
-<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|       content="text/html;charset=ascii"
-|       http-equiv="content-type"
-|   <body>
-
-#data
-<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -->
-|     <meta>
-|       charset="utf8"
-|   <body>
-
-#data
-<!doctype html><html a=b><head></head><html c=d>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <body>
-
-#data
-<!doctype html><image/>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-
-#data
-<!doctype html>a<i>b<table>c<b>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "a"
-|     <i>
-|       "bc"
-|       <b>
-|         "de"
-|       "f"
-|       <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-|     <table>
-
-#data
-<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-
-#data
-<!doctype html><table><i>a<b>b<div>c</i>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|       <div>
-|         <i>
-|           "c"
-|     <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-|     <table>
-
-#data
-<!doctype html><table><i>a<div>b<tr>c<b>d</i>e
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <div>
-|         "b"
-|     <i>
-|       "c"
-|       <b>
-|         "d"
-|     <b>
-|       "e"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><td><table><i>a<div>b<b>c</i>d
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <i>
-|               "a"
-|             <div>
-|               <i>
-|                 "b"
-|                 <b>
-|                   "c"
-|               <b>
-|                 "d"
-|             <table>
-
-#data
-<!doctype html><body><bgsound>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <bgsound>
-
-#data
-<!doctype html><body><basefont>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <basefont>
-
-#data
-<!doctype html><a><b></a><basefont>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <basefont>
-
-#data
-<!doctype html><a><b></a><bgsound>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <bgsound>
-
-#data
-<!doctype html><figcaption><article></figcaption>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <figcaption>
-|       <article>
-|     "a"
-
-#data
-<!doctype html><summary><article></summary>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <summary>
-|       <article>
-|     "a"
-
-#data
-<!doctype html><p><a><plaintext>b
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <a>
-|     <plaintext>
-|       <a>
-|         "b"
-
-#data
-<!DOCTYPE html><div>a<a></div>b<p>c</p>d
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "a"
-|       <a>
-|     <a>
-|       "b"
-|       <p>
-|         "c"
-|       "d"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests2.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests2.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests2.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests2.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,763 +0,0 @@
-#data
-<!DOCTYPE html>Test
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<textarea>test</div>test
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 24 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "test</div>test"
-
-#data
-<table><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 11 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><td>test</tbody></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "test"
-
-#data
-<frame>test
-#errors
-Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected start tag frame. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "test"
-
-#data
-<!DOCTYPE html><frameset>test
-#errors
-Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset><!DOCTYPE html>
-#errors
-Line: 1 Col: 40 Unexpected DOCTYPE. Ignored.
-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><font><p><b>test</font>
-#errors
-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|     <p>
-|       <font>
-|         <b>
-|           "test"
-
-#data
-<!DOCTYPE html><dt><div><dd>
-#errors
-Line: 1 Col: 28 Missing end tag (div, dt).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dt>
-|       <div>
-|     <dd>
-
-#data
-<script></x
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</x"
-|   <body>
-
-#data
-<table><plaintext><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode.
-Line: 1 Col: 22 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "<td>"
-|     <table>
-
-#data
-<plaintext></plaintext>
-#errors
-Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-
-#data
-<!DOCTYPE html><table><tr>TEST
-#errors
-Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 30 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "TEST"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>
-#errors
-Line: 1 Col: 37 Unexpected start tag (body).
-Line: 1 Col: 53 Unexpected start tag (body).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     t1="1"
-|     t2="2"
-|     t3="3"
-|     t4="4"
-
-#data
-</b test
-#errors
-Line: 1 Col: 8 Unexpected end of file in attribute name.
-Line: 1 Col: 8 End tag contains unexpected attributes.
-Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE.
-Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html></b test<b &=&amp>X
-#errors
-Line: 1 Col: 32 Named entity didn't end with ';'.
-Line: 1 Col: 33 End tag contains unexpected attributes.
-Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-
-#data
-<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 54 Unexpected end of file in the tag name.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       type="text/x-foobar;baz"
-|       "X</SCRipt"
-|   <body>
-
-#data
-&
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&"
-
-#data
-&#
-#errors
-Line: 1 Col: 1 Numeric entity expected. Got end of file instead.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#"
-
-#data
-&#X
-#errors
-Line: 1 Col: 3 Numeric entity expected but none found.
-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#X"
-
-#data
-&#x
-#errors
-Line: 1 Col: 3 Numeric entity expected but none found.
-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#x"
-
-#data
-&#45
-#errors
-Line: 1 Col: 4 Numeric entity didn't end with ';'.
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "-"
-
-#data
-&x-test
-#errors
-Line: 1 Col: 1 Named entity expected. Got none.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&x-test"
-
-#data
-<!doctypehtml><p><li>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <li>
-
-#data
-<!doctypehtml><p><dt>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <dt>
-
-#data
-<!doctypehtml><p><dd>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <dd>
-
-#data
-<!doctypehtml><p><form>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <form>
-
-#data
-<!DOCTYPE html><p></P>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     "X"
-
-#data
-&AMP
-#errors
-Line: 1 Col: 4 Named entity didn't end with ';'.
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&"
-
-#data
-&AMp;
-#errors
-Line: 1 Col: 1 Named entity expected. Got none.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&AMp;"
-
-#data
-<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>
-#errors
-Line: 1 Col: 110 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>
-
-#data
-<!DOCTYPE html>X</body>X
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "XX"
-
-#data
-<!DOCTYPE html><!-- X
-#errors
-Line: 1 Col: 21 Unexpected end of file in comment.
-#document
-| <!DOCTYPE html>
-| <!--  X -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><table><caption>test TEST</caption><td>test
-#errors
-Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         "test TEST"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "test"
-
-#data
-<!DOCTYPE html><select><option><optgroup>
-#errors
-Line: 1 Col: 41 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|       <optgroup>
-
-#data
-<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>
-#errors
-Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 76 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-|         <option>
-|       <option>
-|     <option>
-
-#data
-<!DOCTYPE html><select><optgroup><option><optgroup>
-#errors
-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-|         <option>
-|       <optgroup>
-
-#data
-<!DOCTYPE html><datalist><option>foo</datalist>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <datalist>
-|       <option>
-|         "foo"
-|     "bar"
-
-#data
-<!DOCTYPE html><font><input><input></font>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <input>
-|       <input>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX
-#errors
-Line: 1 Col: 29 Unexpected end of file in comment (-)
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX - XXX  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<isindex test=x name=x>
-#errors
-Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected start tag isindex. Don't use it!
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|           test="x"
-|       <hr>
-
-#data
-test
-test
-#errors
-Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "test
-test"
-
-#data
-<!DOCTYPE html><body><title>test</body></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "test</body>"
-
-#data
-<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>
-x { content:"</style" } </style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-|     <meta>
-|       name="z"
-|     <link>
-|       rel="foo"
-|     <style>
-|       "
-x { content:"</style" } "
-
-#data
-<!DOCTYPE html><select><optgroup></optgroup></select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-
-#data
- 
- 
-#errors
-Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>  <html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><script>
-</script>  <title>x</title>  </head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "
-"
-|     "  "
-|     <title>
-|       "x"
-|     "  "
-|   <body>
-
-#data
-<!DOCTYPE html><html><body><html id=x>
-#errors
-Line: 1 Col: 38 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>X</body><html id="x">
-#errors
-Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase.
-Line: 1 Col: 36 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-|     "X"
-
-#data
-<!DOCTYPE html><head><html id=x>
-#errors
-Line: 1 Col: 32 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>X</html>X
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "XX"
-
-#data
-<!DOCTYPE html>X</html> 
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X "
-
-#data
-<!DOCTYPE html>X</html><p>X
-#errors
-Line: 1 Col: 26 Unexpected start tag (p).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <p>
-|       "X"
-
-#data
-<!DOCTYPE html>X<p/x/y/z>
-#errors
-Line: 1 Col: 19 Expected a > after the /.
-Line: 1 Col: 21 Solidus (/) incorrectly placed in tag.
-Line: 1 Col: 23 Solidus (/) incorrectly placed in tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <p>
-|       x=""
-|       y=""
-|       z=""
-
-#data
-<!DOCTYPE html><!--x--
-#errors
-Line: 1 Col: 22 Unexpected end of file in comment (--).
-#document
-| <!DOCTYPE html>
-| <!-- x -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><table><tr><td></p></table>
-#errors
-Line: 1 Col: 34 Unexpected end tag (p). Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <p>
-
-#data
-<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->
-#errors
-Line: 1 Col: 20 Expected space or '>'. Got ''
-Line: 1 Col: 25 Erroneous DOCTYPE.
-Line: 1 Col: 35 Unexpected character in comment found.
-#document
-| <!DOCTYPE <!doctype>
-| <html>
-|   <head>
-|   <body>
-|     ">"
-|     <!-- <!--x -->
-|     "-->"
-
-#data
-<!doctype html><div><form></form><div></div></div>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <form>
-|       <div>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests20.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests20.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests20.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests20.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,455 +0,0 @@
-#data
-<!doctype html><p><button><button>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|       <button>
-
-#data
-<!doctype html><p><button><address>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <address>
-
-#data
-<!doctype html><p><button><blockquote>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <blockquote>
-
-#data
-<!doctype html><p><button><menu>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <menu>
-
-#data
-<!doctype html><p><button><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <p>
-
-#data
-<!doctype html><p><button><ul>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <ul>
-
-#data
-<!doctype html><p><button><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <h1>
-
-#data
-<!doctype html><p><button><h6>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <h6>
-
-#data
-<!doctype html><p><button><listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <listing>
-
-#data
-<!doctype html><p><button><pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <pre>
-
-#data
-<!doctype html><p><button><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <form>
-
-#data
-<!doctype html><p><button><li>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <li>
-
-#data
-<!doctype html><p><button><dd>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <dd>
-
-#data
-<!doctype html><p><button><dt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <dt>
-
-#data
-<!doctype html><p><button><plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <plaintext>
-
-#data
-<!doctype html><p><button><table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <table>
-
-#data
-<!doctype html><p><button><hr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <hr>
-
-#data
-<!doctype html><p><button><xmp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <xmp>
-
-#data
-<!doctype html><p><button></p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <p>
-
-#data
-<!doctype html><address><button></address>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <address>
-|       <button>
-|     "a"
-
-#data
-<!doctype html><address><button></address>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <address>
-|       <button>
-|     "a"
-
-#data
-<p><table></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <p>
-|       <table>
-
-#data
-<!doctype html><svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!doctype html><p><figcaption>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <figcaption>
-
-#data
-<!doctype html><p><summary>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <summary>
-
-#data
-<!doctype html><form><table><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <table>
-
-#data
-<!doctype html><table><form><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <form>
-
-#data
-<!doctype html><table><form></table><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <form>
-
-#data
-<!doctype html><svg><foreignObject><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <p>
-
-#data
-<!doctype html><svg><title>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         "abc"
-
-#data
-<option><span><option>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <option>
-|       <span>
-|         <option>
-
-#data
-<option><option>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <option>
-|     <option>
-
-#data
-<math><annotation-xml><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|     <div>
-
-#data
-<math><annotation-xml encoding="application/svg+xml"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="application/svg+xml"
-|     <div>
-
-#data
-<math><annotation-xml encoding="application/xhtml+xml"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="application/xhtml+xml"
-|         <div>
-
-#data
-<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="aPPlication/xhtmL+xMl"
-|         <div>
-
-#data
-<math><annotation-xml encoding="text/html"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="text/html"
-|         <div>
-
-#data
-<math><annotation-xml encoding="Text/htmL"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="Text/htmL"
-|         <div>
-
-#data
-<math><annotation-xml encoding=" text/html "><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding=" text/html "
-|     <div>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests21.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests21.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests21.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests21.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,221 +0,0 @@
-#data
-<svg><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<math><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       "foo"
-
-#data
-<div><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<svg><![CDATA[foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<svg><![CDATA[
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<svg><![CDATA[]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]] >"
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]] >"
-
-#data
-<svg><![CDATA[]]
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]]"
-
-#data
-<svg><![CDATA[]
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]"
-
-#data
-<svg><![CDATA[]>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]>a"
-
-#data
-<svg><foreignObject><div><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <div>
-|           <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[<svg>]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-
-#data
-<svg><![CDATA[</svg>a]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "</svg>a"
-
-#data
-<svg><![CDATA[<svg>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>a"
-
-#data
-<svg><![CDATA[</svg>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "</svg>a"
-
-#data
-<svg><![CDATA[<svg>]]><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-|       <svg path>
-
-#data
-<svg><![CDATA[<svg>]]></path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-
-#data
-<svg><![CDATA[<svg>]]><!--path-->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-|       <!-- path -->
-
-#data
-<svg><![CDATA[<svg>]]>path
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>path"
-
-#data
-<svg><![CDATA[<!--svg-->]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<!--svg-->"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests22.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests22.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests22.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests22.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,157 +0,0 @@
-#data
-<a><b><big><em><strong><div>X</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|         <big>
-|           <em>
-|             <strong>
-|     <big>
-|       <em>
-|         <strong>
-|           <div>
-|             <a>
-|               "X"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         <div>
-|                           id="9"
-|                           "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         <div>
-|                           id="9"
-|                           <div>
-|                             id="10"
-|                             "A"
-
-#data
-<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST
-#errors
-Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE.
-Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 50 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <cite>
-|       <b>
-|         <cite>
-|           <i>
-|             <cite>
-|               <i>
-|                 <cite>
-|                   <i>
-|       <i>
-|         <i>
-|           <div>
-|             <b>
-|               "X"
-|             "TEST"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests23.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests23.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests23.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests23.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,155 +0,0 @@
-#data
-<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X
-#errors
-3: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-116: Unclosed elements.
-117: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           color="red"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               <font>
-|                 size="4"
-|                 <font>
-|                   size="4"
-|                   <font>
-|                     size="4"
-|                     <font>
-|                       color="red"
-|     <p>
-|       <font>
-|         color="red"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               <font>
-|                 color="red"
-|                 "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="5"
-|               <font>
-|                 size="4"
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="5"
-|             <font>
-|               size="4"
-|               "X"
-
-#data
-<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         id="a"
-|         size="4"
-|         <font>
-|           id="b"
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|     <p>
-|       <font>
-|         id="a"
-|         size="4"
-|         <font>
-|           id="b"
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               "X"
-
-#data
-<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         id="a"
-|         <b>
-|           id="a"
-|           <b>
-|             id="a"
-|             <b>
-|               <object>
-|                 <b>
-|                   id="a"
-|                   <b>
-|                     id="a"
-|                     "X"
-|     <p>
-|       <b>
-|         id="a"
-|         <b>
-|           id="a"
-|           <b>
-|             id="a"
-|             <b>
-|               "Y"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests24.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests24.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests24.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests24.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,79 +0,0 @@
-#data
-<!DOCTYPE html>&NotEqualTilde;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "â‰‚Ì¸"
-
-#data
-<!DOCTYPE html>&NotEqualTilde;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "â‰‚Ì¸A"
-
-#data
-<!DOCTYPE html>&ThickSpace;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŸâ€Š"
-
-#data
-<!DOCTYPE html>&ThickSpace;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŸâ€ŠA"
-
-#data
-<!DOCTYPE html>&NotSubset;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŠ‚âƒ’"
-
-#data
-<!DOCTYPE html>&NotSubset;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŠ‚âƒ’A"
-
-#data
-<!DOCTYPE html>&Gopf;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "ð”¾"
-
-#data
-<!DOCTYPE html>&Gopf;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "ð”¾A"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests25.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests25.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests25.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests25.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,219 +0,0 @@
-#data
-<!DOCTYPE html><body><foo>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "A"
-
-#data
-<!DOCTYPE html><body><area>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <area>
-|     "A"
-
-#data
-<!DOCTYPE html><body><base>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <base>
-|     "A"
-
-#data
-<!DOCTYPE html><body><basefont>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <basefont>
-|     "A"
-
-#data
-<!DOCTYPE html><body><bgsound>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <bgsound>
-|     "A"
-
-#data
-<!DOCTYPE html><body><br>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     "A"
-
-#data
-<!DOCTYPE html><body><col>A
-#errors
-26: Stray start tag â€œcolâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-
-#data
-<!DOCTYPE html><body><command>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <command>
-|     "A"
-
-#data
-<!DOCTYPE html><body><embed>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <embed>
-|     "A"
-
-#data
-<!DOCTYPE html><body><frame>A
-#errors
-26: Stray start tag â€œframeâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-
-#data
-<!DOCTYPE html><body><hr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <hr>
-|     "A"
-
-#data
-<!DOCTYPE html><body><img>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-|     "A"
-
-#data
-<!DOCTYPE html><body><input>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     "A"
-
-#data
-<!DOCTYPE html><body><keygen>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <keygen>
-|     "A"
-
-#data
-<!DOCTYPE html><body><link>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <link>
-|     "A"
-
-#data
-<!DOCTYPE html><body><meta>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     "A"
-
-#data
-<!DOCTYPE html><body><param>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <param>
-|     "A"
-
-#data
-<!DOCTYPE html><body><source>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <source>
-|     "A"
-
-#data
-<!DOCTYPE html><body><track>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <track>
-|     "A"
-
-#data
-<!DOCTYPE html><body><wbr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-|     "A"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests26.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests26.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests26.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests26.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,313 +0,0 @@
-#data
-<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="#1"
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <nobr>
-|       <br>
-|       <a>
-|         href="#2"
-|     <a>
-|       href="#2"
-|       <nobr>
-|         "2"
-|       <nobr>
-|     <nobr>
-|       <br>
-|       <a>
-|         href="#3"
-|     <a>
-|       href="#3"
-|       <nobr>
-|         "3"
-|       <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-|         "2"
-|       <nobr>
-|     <nobr>
-|       "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <nobr>
-|           <i>
-|         <i>
-|           <nobr>
-|             "2"
-|           <nobr>
-|         <nobr>
-|           "3"
-|         <table>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <table>
-|           <tbody>
-|             <tr>
-|               <td>
-|                 <nobr>
-|                   <i>
-|                 <i>
-|                   <nobr>
-|                     "2"
-|                   <nobr>
-|                 <nobr>
-|                   "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|     <div>
-|       <b>
-|         <nobr>
-|         <nobr>
-|       <nobr>
-|         <i>
-|       <i>
-|         <nobr>
-|           "2"
-|         <nobr>
-|       <nobr>
-|         "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <div>
-|       <nobr>
-|         <i>
-|       <i>
-|         <nobr>
-|           "2"
-|         <nobr>
-|       <nobr>
-|         "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|         <ins>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <ins>
-|       <nobr>
-|     <nobr>
-|       <i>
-|         "2"
-
-#data
-<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "1"
-|       <nobr>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-|         "2"
-
-#data
-<p><code x</code></p>
-
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <code>
-|         code=""
-|         x<=""
-|     <code>
-|       code=""
-|       x<=""
-|       "
-"
-
-#data
-<!DOCTYPE html><svg><foreignObject><p><i></p>a
-#errors
-45: End tag â€œpâ€ seen, but there were open elements.
-41: Unclosed element â€œiâ€.
-46: End of file seen and there were open elements.
-35: Unclosed element â€œforeignObjectâ€.
-20: Unclosed element â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <p>
-|           <i>
-|         <i>
-|           "a"
-
-#data
-<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a
-#errors
-56: End tag â€œpâ€ seen, but there were open elements.
-52: Unclosed element â€œiâ€.
-57: End of file seen and there were open elements.
-46: Unclosed element â€œforeignObjectâ€.
-31: Unclosed element â€œsvgâ€.
-22: Unclosed element â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg foreignObject>
-|                 <p>
-|                   <i>
-|                 <i>
-|                   "a"
-
-#data
-<!DOCTYPE html><math><mtext><p><i></p>a
-#errors
-38: End tag â€œpâ€ seen, but there were open elements.
-34: Unclosed element â€œiâ€.
-39: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <p>
-|           <i>
-|         <i>
-|           "a"
-
-#data
-<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a
-#errors
-53: End tag â€œpâ€ seen, but there were open elements.
-49: Unclosed element â€œiâ€.
-54: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mtext>
-|                 <p>
-|                   <i>
-|                 <i>
-|                   "a"
-
-#data
-<!DOCTYPE html><body><div><!/div>a
-#errors
-29: Bogus comment.
-34: End of file seen and there were open elements.
-26: Unclosed element â€œdivâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <!-- /div -->
-|       "a"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests3.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests3.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests3.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests3.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,305 +0,0 @@
-#data
-<head></head><style></style>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <style>
-|   <body>
-
-#data
-<head></head><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<head></head><!-- --><style></style><!-- --><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <style>
-|     <script>
-|   <!--   -->
-|   <!--   -->
-|   <body>
-
-#data
-<head></head><!-- -->x<style></style><!-- --><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <!--   -->
-|   <body>
-|     "x"
-|     <style>
-|     <!--   -->
-|     <script>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "foo
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x</pre><span>
-</span></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x"
-|     <span>
-|       "
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x
-y</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x
-y"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x<div>
-y</pre></body></html>
-#errors
-Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x"
-|       <div>
-|         "
-y"
-
-#data
-<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "
-A"
-
-#data
-<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>
-#errors
-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|   <body>
-
-#data
-<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>
-#errors
-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<textarea>foo<span>bar</span><i>baz
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "foo<span>bar</span><i>baz"
-
-#data
-<title>foo<span>bar</em><i>baz
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "foo<span>bar</em><i>baz"
-|   <body>
-
-#data
-<!DOCTYPE html><textarea>
-</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-
-#data
-<!DOCTYPE html><textarea>
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "foo"
-
-#data
-<!DOCTYPE html><textarea>
-
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>
-#errors
-Line: 1 Col: 60 Missing end tag (div, li).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <div>
-|           <p>
-|       <li>
-
-#data
-<!doctype html><nobr><nobr><nobr>
-#errors
-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <nobr>
-|     <nobr>
-|     <nobr>
-
-#data
-<!doctype html><nobr><nobr></nobr><nobr>
-#errors
-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <nobr>
-|     <nobr>
-|     <nobr>
-
-#data
-<!doctype html><html><body><p><table></table></body></html>
-#errors
-Not known
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <table>
-
-#data
-<p><table></table>
-#errors
-Not known
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <table>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests4.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests4.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests4.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests4.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-#data
-direct div content
-#errors
-#document-fragment
-div
-#document
-| "direct div content"
-
-#data
-direct textarea content
-#errors
-#document-fragment
-textarea
-#document
-| "direct textarea content"
-
-#data
-textarea content with <em>pseudo</em> <foo>markup
-#errors
-#document-fragment
-textarea
-#document
-| "textarea content with <em>pseudo</em> <foo>markup"
-
-#data
-this is &#x0043;DATA inside a <style> element
-#errors
-#document-fragment
-style
-#document
-| "this is &#x0043;DATA inside a <style> element"
-
-#data
-</plaintext>
-#errors
-#document-fragment
-plaintext
-#document
-| "</plaintext>"
-
-#data
-setting html's innerHTML
-#errors
-Line: 1 Col: 24 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   "setting html's innerHTML"
-
-#data
-<title>setting head's innerHTML</title>
-#errors
-#document-fragment
-head
-#document
-| <title>
-|   "setting head's innerHTML"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests5.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests5.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests5.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests5.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,191 +0,0 @@
-#data
-<style> <!-- </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!-- "
-|   <body>
-|     "x"
-
-#data
-<style> <!-- </style> --> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<style> <!--> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!--> "
-|   <body>
-|     "x"
-
-#data
-<style> <!---> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!---> "
-|   <body>
-|     "x"
-
-#data
-<iframe> <!---> </iframe>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       " <!---> "
-|     "x"
-
-#data
-<iframe> <!--- </iframe>->x</iframe> --> </iframe>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       " <!--- "
-|     "->x --> x"
-
-#data
-<script> <!-- </script> --> </script>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<title> <!-- </title> --> </title>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<textarea> <!--- </textarea>->x</textarea> --> </textarea>x
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       " <!--- "
-|     "->x --> x"
-
-#data
-<style> <!</-- </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!</-- "
-|   <body>
-|     "x"
-
-#data
-<p><xmp></xmp>
-#errors
-XXX: Unknown
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <xmp>
-
-#data
-<xmp> <!-- > --> </xmp>
-#errors
-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       " <!-- > --> "
-
-#data
-<title>&amp;</title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "&"
-|   <body>
-
-#data
-<title><!--&amp;--></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--&-->"
-|   <body>
-
-#data
-<title><!--</title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--"
-|   <body>
-
-#data
-<noscript><!--</noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "-->"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests6.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests6.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests6.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests6.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,663 +0,0 @@
-#data
-<!doctype html></head> <head>
-#errors
-Line: 1 Col: 29 Unexpected start tag head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   " "
-|   <body>
-
-#data
-<!doctype html><form><div></form><div>
-#errors
-33: End tag "form" seen but there were unclosed elements.
-38: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <div>
-|         <div>
-
-#data
-<!doctype html><title>&amp;</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "&"
-|   <body>
-
-#data
-<!doctype html><title><!--&amp;--></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "<!--&-->"
-|   <body>
-
-#data
-<!doctype>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name.
-Line: 1 Col: 10 Erroneous DOCTYPE.
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!---x
-#errors
-Line: 1 Col: 6 Unexpected end of file in comment.
-Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- -x -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>
-<div>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body).
-Line: 2 Col: 5 Expected closing tag. Unexpected end of file.
-#document-fragment
-div
-#document
-| "
-"
-| <div>
-
-#data
-<frameset></frameset>
-foo
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-<noframes>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 10 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-|   <noframes>
-
-#data
-<frameset></frameset>
-<div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-</html>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-</div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<form><form>
-#errors
-Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (form).
-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-
-#data
-<button><button>
-#errors
-Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button).
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <button>
-|     <button>
-
-#data
-<table><tr><td></th>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (th). Ignored.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><caption><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (td). Ignored.
-Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><caption><div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-</caption><div>
-#errors
-Line: 1 Col: 10 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption><div></caption>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div).
-Line: 1 Col: 31 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-<table><caption></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-
-#data
-</table><div>
-#errors
-Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption.
-Line: 1 Col: 8 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (body). Ignored.
-Line: 1 Col: 29 Unexpected end tag (col). Ignored.
-Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 47 Unexpected end tag (html). Ignored.
-Line: 1 Col: 55 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 60 Unexpected end tag (td). Ignored.
-Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 73 Unexpected end tag (th). Ignored.
-Line: 1 Col: 81 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 86 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 86 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-
-#data
-<table><caption><div></div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 27 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-<table><tr><td></body></caption></col></colgroup></html>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end tag (body). Ignored.
-Line: 1 Col: 32 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 38 Unexpected end tag (col). Ignored.
-Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 56 Unexpected end tag (html). Ignored.
-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-</table></tbody></tfoot></thead></tr><div>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 16 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 32 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 37 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
-#document-fragment
-td
-#document
-| <div>
-
-#data
-<table><colgroup>foo
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 20 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <table>
-|       <colgroup>
-
-#data
-foo<col>
-#errors
-Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored.
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<table><colgroup></col>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 23 This element (col) has no end tag.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-
-#data
-<frameset><div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</frameset><frame>
-#errors
-Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML).
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-<frameset></div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored.
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</body><div>
-#errors
-Line: 1 Col: 7 Unexpected end tag (body). Ignored.
-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
-#document-fragment
-body
-#document
-| <div>
-
-#data
-<table><tr><div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 16 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-</tr><td>
-#errors
-Line: 1 Col: 5 Unexpected end tag (tr). Ignored.
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</tbody></tfoot></thead><td>
-#errors
-Line: 1 Col: 8 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 24 Unexpected end tag (thead). Ignored.
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<table><tr><div><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<caption><col><colgroup><tbody><tfoot><thead><tr>
-#errors
-Line: 1 Col: 9 Unexpected start tag (caption).
-Line: 1 Col: 14 Unexpected start tag (col).
-Line: 1 Col: 24 Unexpected start tag (colgroup).
-Line: 1 Col: 31 Unexpected start tag (tbody).
-Line: 1 Col: 38 Unexpected start tag (tfoot).
-Line: 1 Col: 45 Unexpected start tag (thead).
-Line: 1 Col: 49 Unexpected end of file. Expected table content.
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></thead>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored.
-Line: 1 Col: 22 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-</table><tr>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 12 Unexpected end of file. Expected table content.
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></body></caption></col></colgroup></html></td></th></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored.
-Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored.
-Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored.
-Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored.
-Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored.
-Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored.
-Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored.
-Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored.
-Line: 1 Col: 70 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-<table><tbody></div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode.
-Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 20 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-<table><table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table).
-Line: 1 Col: 14 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|     <table>
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end tag (body). Ignored.
-Line: 1 Col: 24 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 30 Unexpected end tag (col). Ignored.
-Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 48 Unexpected end tag (html). Ignored.
-Line: 1 Col: 56 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 61 Unexpected end tag (td). Ignored.
-Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 74 Unexpected end tag (th). Ignored.
-Line: 1 Col: 82 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 87 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 87 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-
-#data
-</table><tr>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 12 Unexpected end of file. Expected table content.
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-<body></body></html>
-#errors
-Line: 1 Col: 20 Unexpected html end tag in inner html mode.
-Line: 1 Col: 20 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-
-#data
-<html><frameset></frameset></html> 
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   " "
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html>
-#errors
-Line: 1 Col: 50 Erroneous DOCTYPE.
-Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<param><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (param). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<source><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (source). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<track><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (track). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</html><frameset></frameset>
-#errors
-7: End tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-17: Stray â€œframesetâ€ start tag.
-17: â€œframesetâ€ start tag seen.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</body><frameset></frameset>
-#errors
-7: End tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-17: Stray â€œframesetâ€ start tag.
-17: â€œframesetâ€ start tag seen.
-#document
-| <html>
-|   <head>
-|   <frameset>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests7.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests7.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests7.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests7.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,390 +0,0 @@
-#data
-<!doctype html><body><title>X</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-
-#data
-<!doctype html><table><title>X</title></table>
-#errors
-Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode.
-Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-|     <table>
-
-#data
-<!doctype html><head></head><title>X</title>
-#errors
-Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "X"
-|   <body>
-
-#data
-<!doctype html></head><title>X</title>
-#errors
-Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "X"
-|   <body>
-
-#data
-<!doctype html><table><meta></table>
-#errors
-Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     <table>
-
-#data
-<!doctype html><table>X<tr><td><table> <meta></table></table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <meta>
-|             <table>
-|               " "
-
-#data
-<!doctype html><html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html><table><style> <tr>x </style> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <style>
-|         " <tr>x "
-|       " "
-
-#data
-<!doctype html><table><TBODY><script> <tr>x </script> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <script>
-|           " <tr>x "
-|         " "
-
-#data
-<!doctype html><p><applet><p>X</p></applet>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <applet>
-|         <p>
-|           "X"
-
-#data
-<!doctype html><listing>
-X</listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <listing>
-|       "X"
-
-#data
-<!doctype html><select><input>X
-#errors
-Line: 1 Col: 30 Unexpected input start tag in the select phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <input>
-|     "X"
-
-#data
-<!doctype html><select><select>X
-#errors
-Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     "X"
-
-#data
-<!doctype html><table><input type=hidDEN></table>
-#errors
-Line: 1 Col: 41 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>X<input type=hidDEN></table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>  <input type=hidDEN></table>
-#errors
-Line: 1 Col: 43 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>  <input type='hidDEN'></table>
-#errors
-Line: 1 Col: 45 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table><input type=" hidden"><input type=hidDEN></table>
-#errors
-Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|       type=" hidden"
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table><select>X<tr>
-#errors
-Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode.
-Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase.
-Line: 1 Col: 35 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "X"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><select>X</select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "X"
-
-#data
-<!DOCTYPE hTmL><html></html>
-#errors
-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML><html></html>
-#errors
-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>X</body></body>
-#errors
-Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase.
-Line: 1 Col: 21 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   "X"
-
-#data
-<div><p>a</x> b
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (x). Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <p>
-|         "a b"
-
-#data
-<table><tr><td><code></code> </table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <code>
-|             " "
-
-#data
-<table><b><tr><td>aaa</td></tr>bbb</table>ccc
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <b>
-|       "bbb"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "aaa"
-|     <b>
-|       "ccc"
-
-#data
-A<table><tr> B</tr> B</table>
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A B B"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-A<table><tr> B</tr> </em>C</table>
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A BC"
-|     <table>
-|       <tbody>
-|         <tr>
-|         " "
-
-#data
-<select><keygen>
-#errors
-Not known
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <keygen>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests8.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests8.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests8.dat	2010-08-26 23:31:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests8.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,148 +0,0 @@
-#data
-<div>
-<div></div>
-</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 3 Col: 7 Unexpected end tag (span). Ignored.
-Line: 3 Col: 8 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "
-"
-|       <div>
-|       "
-x"
-
-#data
-<div>x<div></div>
-</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 2 Col: 7 Unexpected end tag (span). Ignored.
-Line: 2 Col: 8 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "
-x"
-
-#data
-<div>x<div></div>x</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "xx"
-
-#data
-<div>x<div></div>y</span>z
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "yz"
-
-#data
-<table><div>x<div></div>x</span>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode.
-Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode.
-Line: 1 Col: 32 Unexpected end tag (span). Ignored.
-Line: 1 Col: 33 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "xx"
-|     <table>
-
-#data
-x<table>x
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 9 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "xx"
-|     <table>
-
-#data
-x<table><table>x
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table).
-Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 16 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <table>
-|     "x"
-|     <table>
-
-#data
-<b>a<div></div><div></b>y
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "a"
-|       <div>
-|     <div>
-|       <b>
-|       "y"
-
-#data
-<a><div><p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <div>
-|       <a>
-|       <p>
-|         <a>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests9.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests9.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests9.dat	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests9.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,457 +0,0 @@
-#data
-<!DOCTYPE html><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!DOCTYPE html><body><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!DOCTYPE html><math><mi>
-#errors
-25: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-
-#data
-<!DOCTYPE html><math><annotation-xml><svg><u>
-#errors
-45: HTML start tag â€œuâ€ in a foreign namespace context.
-45: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|     <u>
-
-#data
-<!DOCTYPE html><body><select><math></math></select>
-#errors
-Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!DOCTYPE html><body><select><option><math></math></option></select>
-#errors
-Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!DOCTYPE html><body><table><math></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>
-#errors
-Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-|       <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>
-#errors
-Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mi>
-|                 "foo"
-|               <math mi>
-|                 "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mi>
-|                 "foo"
-|               <math mi>
-|                 "bar"
-|             <p>
-|               "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|         <p>
-|           "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context.
-Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|         <p>
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux
-#errors
-Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption.
-Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context.
-Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-|     <table>
-|       <colgroup>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored.
-Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|               "foobarbaz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode.
-Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored.
-Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "foobarbaz"
-|     <table>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-Line: 1 Col: 41 Unexpected start tag (math).
-Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase.
-Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>
-#errors
-Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored.
-Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored.
-Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored.
-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>
-#errors
-Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored.
-Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored.
-Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     <math math>
-|       xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-|       "bar"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,741 +0,0 @@
-#data
-<body><span>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<body><span>
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   <span>
-
-#data
-<frameset><span>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<frameset><span>
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <frameset>
-
-#data
-<table><tr>
-#errors
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-</table><tr>
-#errors
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-<a>
-#errors
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a>
-#errors
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a><caption>a
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <caption>
-|   "a"
-
-#data
-<a><colgroup><col>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <colgroup>
-|   <col>
-
-#data
-<a><tbody><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-
-#data
-<a><tfoot><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tfoot>
-|   <tr>
-
-#data
-<a><thead><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <thead>
-|   <tr>
-
-#data
-<a><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-
-#data
-<a><th>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-|     <th>
-
-#data
-<a><td>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-|     <td>
-
-#data
-<table></table><tbody>
-#errors
-#document-fragment
-caption
-#document
-| <table>
-
-#data
-</table><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></table>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-</caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><col><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><colgroup><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><html><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tbody><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><td><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tfoot><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><thead><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><th><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tr><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span></table><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-</colgroup><col>
-#errors
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<a><col>
-#errors
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<caption><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<a><tr>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<td><table><tbody><a><tr>
-#errors
-#document-fragment
-tbody
-#document
-| <tr>
-|   <td>
-|     <a>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-</tr><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table><a><tr></tr><tr>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <a>
-|   <table>
-|     <tbody>
-|       <tr>
-|       <tr>
-
-#data
-<caption><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<col><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<colgroup><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tbody><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tfoot><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<thead><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tr><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <table>
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <table>
-| <td>
-
-#data
-<caption><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<th><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tr><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tbody><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</td><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tfoot><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</thead><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</th><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tr><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<table><td><td>
-#errors
-#document-fragment
-td
-#document
-| <table>
-|   <tbody>
-|     <tr>
-|       <td>
-|       <td>
-
-#data
-</select><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<input><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<keygen><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<textarea><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-</html><!--abc-->
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| <!-- abc -->
-
-#data
-</frameset><frame>
-#errors
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tricky01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tricky01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tricky01.dat	2011-09-22 04:02:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tricky01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,261 +0,0 @@
-#data
-<b><p>Bold </b> Not bold</p>
-Also not bold.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <p>
-|       <b>
-|         "Bold "
-|       " Not bold"
-|     "
-Also not bold."
-
-#data
-<html>
-<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain
-<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>
-<p>Italic and red. </i> Red.</font> I should not be red.</p>
-<b>Bold <i>Bold and italic</b> Only Italic </i> Plain
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       color="red"
-|       <i>
-|         "Italic and Red"
-|     <i>
-|       <p>
-|         <font>
-|           color="red"
-|           "Italic and Red "
-|         " Just italic."
-|       " Italic only."
-|     " Plain
-"
-|     <p>
-|       "I should not be red. "
-|       <font>
-|         color="red"
-|         "Red. "
-|         <i>
-|           "Italic and red."
-|     <font>
-|       color="red"
-|       <i>
-|         "
-"
-|     <p>
-|       <font>
-|         color="red"
-|         <i>
-|           "Italic and red. "
-|         " Red."
-|       " I should not be red."
-|     "
-"
-|     <b>
-|       "Bold "
-|       <i>
-|         "Bold and italic"
-|     <i>
-|       " Only Italic "
-|     " Plain"
-
-#data
-<html><body>
-<p><font size="7">First paragraph.</p>
-<p>Second paragraph.</p></font>
-<b><p><i>Bold and Italic</b> Italic</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <p>
-|       <font>
-|         size="7"
-|         "First paragraph."
-|     <font>
-|       size="7"
-|       "
-"
-|       <p>
-|         "Second paragraph."
-|     "
-"
-|     <b>
-|     <p>
-|       <b>
-|         <i>
-|           "Bold and Italic"
-|       <i>
-|         " Italic"
-
-#data
-<html>
-<dl>
-<dt><b>Boo
-<dd>Goo?
-</dl>
-</html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dl>
-|       "
-"
-|       <dt>
-|         <b>
-|           "Boo
-"
-|       <dd>
-|         <b>
-|           "Goo?
-"
-|     <b>
-|       "
-"
-
-#data
-<html><body>
-<label><a><div>Hello<div>World</div></a></label>  
-</body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <label>
-|       <a>
-|       <div>
-|         <a>
-|           "Hello"
-|           <div>
-|             "World"
-|         "  
-"
-
-#data
-<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <center>
-|       " "
-|       <font>
-|         "a"
-|     <font>
-|       <img>
-|       " "
-|     <table>
-|       " "
-|       <tbody>
-|         <tr>
-|           <td>
-|             " "
-|           " "
-|         " "
-
-#data
-<table><tr><p><a><p>You should see this text.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <a>
-|     <p>
-|       <a>
-|         "You should see this text."
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<TABLE>
-<TR>
-<CENTER><CENTER><TD></TD></TR><TR>
-<FONT>
-<TABLE><tr></tr></TABLE>
-</P>
-<a></font><font></a>
-This page contains an insanely badly-nested tag sequence.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <center>
-|       <center>
-|     <font>
-|       "
-"
-|     <table>
-|       "
-"
-|       <tbody>
-|         <tr>
-|           "
-"
-|           <td>
-|         <tr>
-|           "
-"
-|     <table>
-|       <tbody>
-|         <tr>
-|     <font>
-|       "
-"
-|       <p>
-|       "
-"
-|       <a>
-|     <a>
-|       <font>
-|     <font>
-|       "
-This page contains an insanely badly-nested tag sequence."
-
-#data
-<html>
-<body>
-<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>
-</body>
-</html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <b>
-|       <nobr>
-|     <div>
-|       <b>
-|         <nobr>
-|           "This text is in a div inside a nobr"
-|         "More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. "
-|       <pre>
-|         "A pre tag outside everything else."
-|       "
-
-"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit01.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit01.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,610 +0,0 @@
-#data
-Test
-#errors
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<div></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<div>Test</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Test"
-
-#data
-<di
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<div>Hello</div>
-<script>
-console.log("PASS");
-</script>
-<div>Bye</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Hello"
-|     "
-"
-|     <script>
-|       "
-console.log("PASS");
-"
-|     "
-"
-|     <div>
-|       "Bye"
-
-#data
-<div foo="bar">Hello</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo="bar"
-|       "Hello"
-
-#data
-<div>Hello</div>
-<script>
-console.log("FOO<span>BAR</span>BAZ");
-</script>
-<div>Bye</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Hello"
-|     "
-"
-|     <script>
-|       "
-console.log("FOO<span>BAR</span>BAZ");
-"
-|     "
-"
-|     <div>
-|       "Bye"
-
-#data
-<foo bar="baz"></foo><potato quack="duck"></potato>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="baz"
-|     <potato>
-|       quack="duck"
-
-#data
-<foo bar="baz"><potato quack="duck"></potato></foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="baz"
-|       <potato>
-|         quack="duck"
-
-#data
-<foo></foo bar="baz"><potato></potato quack="duck">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|     <potato>
-
-#data
-</ tttt>
-#errors
-#document
-| <!--  tttt -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<div FOO ><img><img></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo=""
-|       <img>
-|       <img>
-
-#data
-<p>Test</p<p>Test2</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "TestTest2"
-
-#data
-<rdar://problem/6869687>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <rdar:>
-|       6869687=""
-|       problem=""
-
-#data
-<A>test< /A>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "test< /A>"
-
-#data
-&lt;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<"
-
-#data
-<body foo='bar'><body foo='baz' yo='mama'>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     foo="bar"
-|     yo="mama"
-
-#data
-<body></br foo="bar"></body>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<bdy><br foo="bar"></body>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <bdy>
-|       <br>
-|         foo="bar"
-
-#data
-<body></body></br foo="bar">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<bdy></body><br foo="bar">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <bdy>
-|       <br>
-|         foo="bar"
-
-#data
-<html><body></body></html><!-- Hi there -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-| <!--  Hi there  -->
-
-#data
-<html><body></body></html>x<!-- Hi there -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></html><!-- Again -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-| <!--  Again  -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-| <!--  Again  -->
-
-#data
-<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <rp>
-|           "xx"
-
-#data
-<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <rt>
-|           "xx"
-
-#data
-<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->
-#errors
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <!-- 1 -->
-|     <noframes>
-|       "A"
-|     <!-- 2 -->
-|   <!-- 3 -->
-|   <noframes>
-|     "B"
-|   <!-- 4 -->
-|   <noframes>
-|     "C"
-| <!-- 5 -->
-| <!-- 6 -->
-
-#data
-<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "A"
-|     <option>
-|       "B"
-|       <select>
-|         <option>
-|           "C"
-|     <option>
-|       "D"
-|       <select>
-|         <option>
-|           "E"
-|     <option>
-|       "F"
-|       <select>
-|         <option>
-|           "G"
-
-#data
-<dd><dd><dt><dt><dd><li><li>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-|     <dd>
-|     <dt>
-|     <dt>
-|     <dd>
-|       <li>
-|       <li>
-
-#data
-<div><b></div><div><nobr>a<nobr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <b>
-|     <div>
-|       <b>
-|         <nobr>
-|           "a"
-|         <nobr>
-
-#data
-<head></head>
-<body></body>
-#errors
-#document
-| <html>
-|   <head>
-|   "
-"
-|   <body>
-
-#data
-<head></head> <style></style>ddd
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|   " "
-|   <body>
-|     "ddd"
-
-#data
-<kbd><table></kbd><col><select><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <kbd>
-|       <select>
-|       <table>
-|         <colgroup>
-|           <col>
-|         <tbody>
-|           <tr>
-
-#data
-<kbd><table></kbd><col><select><tr></table><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <kbd>
-|       <select>
-|       <table>
-|         <colgroup>
-|           <col>
-|         <tbody>
-|           <tr>
-|       <div>
-
-#data
-<a><li><style></style><title></title></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <li>
-|       <a>
-|         <style>
-|         <title>
-
-#data
-<font></p><p><meta><title></title></font>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <p>
-|     <p>
-|       <font>
-|         <meta>
-|         <title>
-
-#data
-<a><center><title></title><a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <center>
-|       <a>
-|         <title>
-|       <a>
-
-#data
-<svg><title><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <div>
-
-#data
-<svg><title><rect><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <rect>
-|           <div>
-
-#data
-<svg><title><svg><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <svg svg>
-|         <div>
-
-#data
-<img <="" FAIL>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <img>
-|       <=""
-|       fail=""
-
-#data
-<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <div>
-|           id="foo"
-|           "A"
-|       <li>
-|         "B"
-|         <div>
-|           "C"
-
-#data
-<svg><em><desc></em>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <em>
-|       <desc>
-
-#data
-<table><tr><td><svg><desc><td></desc><circle>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
-|             <circle>
-
-#data
-<svg><tfoot></mi><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg tfoot>
-|         <svg td>
-
-#data
-<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mrow>
-|         <math mrow>
-|           <math mn>
-|             "1"
-|         <math mi>
-|           "a"
-
-#data
-<!doctype html><input type="hidden"><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><input type="button"><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|       type="button"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit02.dat	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit02.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,159 +0,0 @@
-#data
-<foo bar=qux/>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="qux/"
-
-#data
-<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       id="status"
-|       <noscript>
-|         "<strong>A</strong>"
-|       <span>
-|         "B"
-
-#data
-<div><sarcasm><div></div></sarcasm></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <sarcasm>
-|         <div>
-
-#data
-<html><body><img src="" border="0" alt="><div>A</div></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<table><td></tbody>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><td></thead>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<table><td></tfoot>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<table><thead><td></tbody>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <thead>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<legend>test</legend>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <legend>
-|       "test"
-
-#data
-<table><input>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     <table>
-
-#data
-<b><em><dcell><postfield><postfield><postfield><postfield><missing_glyph><missing_glyph><missing_glyph><missing_glyph><hkern><aside></b></em>
-#errors
-#document-fragment
-div
-#document
-| <b>
-|   <em>
-|     <dcell>
-|       <postfield>
-|         <postfield>
-|           <postfield>
-|             <postfield>
-|               <missing_glyph>
-|                 <missing_glyph>
-|                   <missing_glyph>
-|                     <missing_glyph>
-|                       <hkern>
-| <aside>
-|   <em>
-|     <b>
-
-#data
-<isindex action="x">
-#errors
-#document-fragment
-table
-#document
-| <form>
-|   action="x"
-| <hr>
-| <label>
-|   "This is a searchable index. Enter search keywords: "
-|   <input>
-|     name="isindex"
-| <hr>
-
-#data
-<option><XH<optgroup></optgroup>
-#errors
-#document-fragment
-select
-#document
-| <option>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/token.go gcc-4.8.1/libgo/go/exp/html/token.go
--- gcc-4.8.1.orig/libgo/go/exp/html/token.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/token.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,1173 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"exp/html/atom"
-	"io"
-	"strconv"
-	"strings"
-)
-
-// A TokenType is the type of a Token.
-type TokenType uint32
-
-const (
-	// ErrorToken means that an error occurred during tokenization.
-	ErrorToken TokenType = iota
-	// TextToken means a text node.
-	TextToken
-	// A StartTagToken looks like <a>.
-	StartTagToken
-	// An EndTagToken looks like </a>.
-	EndTagToken
-	// A SelfClosingTagToken tag looks like <br/>.
-	SelfClosingTagToken
-	// A CommentToken looks like <!--x-->.
-	CommentToken
-	// A DoctypeToken looks like <!DOCTYPE x>
-	DoctypeToken
-)
-
-// String returns a string representation of the TokenType.
-func (t TokenType) String() string {
-	switch t {
-	case ErrorToken:
-		return "Error"
-	case TextToken:
-		return "Text"
-	case StartTagToken:
-		return "StartTag"
-	case EndTagToken:
-		return "EndTag"
-	case SelfClosingTagToken:
-		return "SelfClosingTag"
-	case CommentToken:
-		return "Comment"
-	case DoctypeToken:
-		return "Doctype"
-	}
-	return "Invalid(" + strconv.Itoa(int(t)) + ")"
-}
-
-// An Attribute is an attribute namespace-key-value triple. Namespace is
-// non-empty for foreign attributes like xlink, Key is alphabetic (and hence
-// does not contain escapable characters like '&', '<' or '>'), and Val is
-// unescaped (it looks like "a<b" rather than "a&lt;b").
-//
-// Namespace is only used by the parser, not the tokenizer.
-type Attribute struct {
-	Namespace, Key, Val string
-}
-
-// A Token consists of a TokenType and some Data (tag name for start and end
-// tags, content for text, comments and doctypes). A tag Token may also contain
-// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b"
-// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or
-// zero if Data is not a known tag name.
-type Token struct {
-	Type     TokenType
-	DataAtom atom.Atom
-	Data     string
-	Attr     []Attribute
-}
-
-// tagString returns a string representation of a tag Token's Data and Attr.
-func (t Token) tagString() string {
-	if len(t.Attr) == 0 {
-		return t.Data
-	}
-	buf := bytes.NewBufferString(t.Data)
-	for _, a := range t.Attr {
-		buf.WriteByte(' ')
-		buf.WriteString(a.Key)
-		buf.WriteString(`="`)
-		escape(buf, a.Val)
-		buf.WriteByte('"')
-	}
-	return buf.String()
-}
-
-// String returns a string representation of the Token.
-func (t Token) String() string {
-	switch t.Type {
-	case ErrorToken:
-		return ""
-	case TextToken:
-		return EscapeString(t.Data)
-	case StartTagToken:
-		return "<" + t.tagString() + ">"
-	case EndTagToken:
-		return "</" + t.tagString() + ">"
-	case SelfClosingTagToken:
-		return "<" + t.tagString() + "/>"
-	case CommentToken:
-		return "<!--" + t.Data + "-->"
-	case DoctypeToken:
-		return "<!DOCTYPE " + t.Data + ">"
-	}
-	return "Invalid(" + strconv.Itoa(int(t.Type)) + ")"
-}
-
-// span is a range of bytes in a Tokenizer's buffer. The start is inclusive,
-// the end is exclusive.
-type span struct {
-	start, end int
-}
-
-// A Tokenizer returns a stream of HTML Tokens.
-type Tokenizer struct {
-	// r is the source of the HTML text.
-	r io.Reader
-	// tt is the TokenType of the current token.
-	tt TokenType
-	// err is the first error encountered during tokenization. It is possible
-	// for tt != Error && err != nil to hold: this means that Next returned a
-	// valid token but the subsequent Next call will return an error token.
-	// For example, if the HTML text input was just "plain", then the first
-	// Next call would set z.err to io.EOF but return a TextToken, and all
-	// subsequent Next calls would return an ErrorToken.
-	// err is never reset. Once it becomes non-nil, it stays non-nil.
-	err error
-	// buf[raw.start:raw.end] holds the raw bytes of the current token.
-	// buf[raw.end:] is buffered input that will yield future tokens.
-	raw span
-	buf []byte
-	// buf[data.start:data.end] holds the raw bytes of the current token's data:
-	// a text token's text, a tag token's tag name, etc.
-	data span
-	// pendingAttr is the attribute key and value currently being tokenized.
-	// When complete, pendingAttr is pushed onto attr. nAttrReturned is
-	// incremented on each call to TagAttr.
-	pendingAttr   [2]span
-	attr          [][2]span
-	nAttrReturned int
-	// rawTag is the "script" in "</script>" that closes the next token. If
-	// non-empty, the subsequent call to Next will return a raw or RCDATA text
-	// token: one that treats "<p>" as text instead of an element.
-	// rawTag's contents are lower-cased.
-	rawTag string
-	// textIsRaw is whether the current text token's data is not escaped.
-	textIsRaw bool
-	// convertNUL is whether NUL bytes in the current token's data should
-	// be converted into \ufffd replacement characters.
-	convertNUL bool
-	// allowCDATA is whether CDATA sections are allowed in the current context.
-	allowCDATA bool
-}
-
-// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as
-// the text "foo". The default value is false, which means to recognize it as
-// a bogus comment "<!-- [CDATA[foo]] -->" instead.
-//
-// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and
-// only if tokenizing foreign content, such as MathML and SVG. However,
-// tracking foreign-contentness is difficult to do purely in the tokenizer,
-// as opposed to the parser, due to HTML integration points: an <svg> element
-// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to-
-// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the
-// responsibility of the user of a tokenizer to call AllowCDATA as appropriate.
-// In practice, if using the tokenizer without caring whether MathML or SVG
-// CDATA is text or comments, such as tokenizing HTML to find all the anchor
-// text, it is acceptable to ignore this responsibility.
-func (z *Tokenizer) AllowCDATA(allowCDATA bool) {
-	z.allowCDATA = allowCDATA
-}
-
-// NextIsNotRawText instructs the tokenizer that the next token should not be
-// considered as 'raw text'. Some elements, such as script and title elements,
-// normally require the next token after the opening tag to be 'raw text' that
-// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>"
-// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and
-// an end tag token for "</title>". There are no distinct start tag or end tag
-// tokens for the "<b>" and "</b>".
-//
-// This tokenizer implementation will generally look for raw text at the right
-// times. Strictly speaking, an HTML5 compliant tokenizer should not look for
-// raw text if in foreign content: <title> generally needs raw text, but a
-// <title> inside an <svg> does not. Another example is that a <textarea>
-// generally needs raw text, but a <textarea> is not allowed as an immediate
-// child of a <select>; in normal parsing, a <textarea> implies </select>, but
-// one cannot close the implicit element when parsing a <select>'s InnerHTML.
-// Similarly to AllowCDATA, tracking the correct moment to override raw-text-
-// ness is difficult to do purely in the tokenizer, as opposed to the parser.
-// For strict compliance with the HTML5 tokenization algorithm, it is the
-// responsibility of the user of a tokenizer to call NextIsNotRawText as
-// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this
-// responsibility for basic usage.
-//
-// Note that this 'raw text' concept is different from the one offered by the
-// Tokenizer.Raw method.
-func (z *Tokenizer) NextIsNotRawText() {
-	z.rawTag = ""
-}
-
-// Err returns the error associated with the most recent ErrorToken token.
-// This is typically io.EOF, meaning the end of tokenization.
-func (z *Tokenizer) Err() error {
-	if z.tt != ErrorToken {
-		return nil
-	}
-	return z.err
-}
-
-// readByte returns the next byte from the input stream, doing a buffered read
-// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte
-// slice that holds all the bytes read so far for the current token.
-// It sets z.err if the underlying reader returns an error.
-// Pre-condition: z.err == nil.
-func (z *Tokenizer) readByte() byte {
-	if z.raw.end >= len(z.buf) {
-		// Our buffer is exhausted and we have to read from z.r.
-		// We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length
-		// z.raw.end - z.raw.start is more than half the capacity of z.buf, then we
-		// allocate a new buffer before the copy.
-		c := cap(z.buf)
-		d := z.raw.end - z.raw.start
-		var buf1 []byte
-		if 2*d > c {
-			buf1 = make([]byte, d, 2*c)
-		} else {
-			buf1 = z.buf[:d]
-		}
-		copy(buf1, z.buf[z.raw.start:z.raw.end])
-		if x := z.raw.start; x != 0 {
-			// Adjust the data/attr spans to refer to the same contents after the copy.
-			z.data.start -= x
-			z.data.end -= x
-			z.pendingAttr[0].start -= x
-			z.pendingAttr[0].end -= x
-			z.pendingAttr[1].start -= x
-			z.pendingAttr[1].end -= x
-			for i := range z.attr {
-				z.attr[i][0].start -= x
-				z.attr[i][0].end -= x
-				z.attr[i][1].start -= x
-				z.attr[i][1].end -= x
-			}
-		}
-		z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d]
-		// Now that we have copied the live bytes to the start of the buffer,
-		// we read from z.r into the remainder.
-		n, err := z.r.Read(buf1[d:cap(buf1)])
-		if err != nil {
-			z.err = err
-			return 0
-		}
-		z.buf = buf1[:d+n]
-	}
-	x := z.buf[z.raw.end]
-	z.raw.end++
-	return x
-}
-
-// skipWhiteSpace skips past any white space.
-func (z *Tokenizer) skipWhiteSpace() {
-	if z.err != nil {
-		return
-	}
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f':
-			// No-op.
-		default:
-			z.raw.end--
-			return
-		}
-	}
-}
-
-// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and
-// is typically something like "script" or "textarea".
-func (z *Tokenizer) readRawOrRCDATA() {
-	if z.rawTag == "script" {
-		z.readScript()
-		z.textIsRaw = true
-		z.rawTag = ""
-		return
-	}
-loop:
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '<' {
-			continue loop
-		}
-		c = z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '/' {
-			continue loop
-		}
-		if z.readRawEndTag() || z.err != nil {
-			break loop
-		}
-	}
-	z.data.end = z.raw.end
-	// A textarea's or title's RCDATA can contain escaped entities.
-	z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title"
-	z.rawTag = ""
-}
-
-// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag.
-// If it succeeds, it backs up the input position to reconsume the tag and
-// returns true. Otherwise it returns false. The opening "</" has already been
-// consumed.
-func (z *Tokenizer) readRawEndTag() bool {
-	for i := 0; i < len(z.rawTag); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			return false
-		}
-		if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') {
-			z.raw.end--
-			return false
-		}
-	}
-	c := z.readByte()
-	if z.err != nil {
-		return false
-	}
-	switch c {
-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
-		// The 3 is 2 for the leading "</" plus 1 for the trailing character c.
-		z.raw.end -= 3 + len(z.rawTag)
-		return true
-	}
-	z.raw.end--
-	return false
-}
-
-// readScript reads until the next </script> tag, following the byzantine
-// rules for escaping/hiding the closing tag.
-func (z *Tokenizer) readScript() {
-	defer func() {
-		z.data.end = z.raw.end
-	}()
-	var c byte
-
-scriptData:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '<' {
-		goto scriptDataLessThanSign
-	}
-	goto scriptData
-
-scriptDataLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '/':
-		goto scriptDataEndTagOpen
-	case '!':
-		goto scriptDataEscapeStart
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEndTagOpen:
-	if z.readRawEndTag() || z.err != nil {
-		return
-	}
-	goto scriptData
-
-scriptDataEscapeStart:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '-' {
-		goto scriptDataEscapeStartDash
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscapeStartDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '-' {
-		goto scriptDataEscapedDashDash
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscaped:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDashDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedDashDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDashDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	case '>':
-		goto scriptData
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '/' {
-		goto scriptDataEscapedEndTagOpen
-	}
-	if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
-		goto scriptDataDoubleEscapeStart
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscapedEndTagOpen:
-	if z.readRawEndTag() || z.err != nil {
-		return
-	}
-	goto scriptDataEscaped
-
-scriptDataDoubleEscapeStart:
-	z.raw.end--
-	for i := 0; i < len("script"); i++ {
-		c = z.readByte()
-		if z.err != nil {
-			return
-		}
-		if c != "script"[i] && c != "SCRIPT"[i] {
-			z.raw.end--
-			goto scriptDataEscaped
-		}
-	}
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
-		goto scriptDataDoubleEscaped
-	}
-	z.raw.end--
-	goto scriptDataEscaped
-
-scriptDataDoubleEscaped:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDashDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedDashDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDashDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	case '>':
-		goto scriptData
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '/' {
-		goto scriptDataDoubleEscapeEnd
-	}
-	z.raw.end--
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapeEnd:
-	if z.readRawEndTag() {
-		z.raw.end += len("</script>")
-		goto scriptDataEscaped
-	}
-	if z.err != nil {
-		return
-	}
-	goto scriptDataDoubleEscaped
-}
-
-// readComment reads the next comment token starting with "<!--". The opening
-// "<!--" has already been consumed.
-func (z *Tokenizer) readComment() {
-	z.data.start = z.raw.end
-	defer func() {
-		if z.data.end < z.data.start {
-			// It's a comment with no data, like <!-->.
-			z.data.end = z.data.start
-		}
-	}()
-	for dashCount := 2; ; {
-		c := z.readByte()
-		if z.err != nil {
-			// Ignore up to two dashes at EOF.
-			if dashCount > 2 {
-				dashCount = 2
-			}
-			z.data.end = z.raw.end - dashCount
-			return
-		}
-		switch c {
-		case '-':
-			dashCount++
-			continue
-		case '>':
-			if dashCount >= 2 {
-				z.data.end = z.raw.end - len("-->")
-				return
-			}
-		case '!':
-			if dashCount >= 2 {
-				c = z.readByte()
-				if z.err != nil {
-					z.data.end = z.raw.end
-					return
-				}
-				if c == '>' {
-					z.data.end = z.raw.end - len("--!>")
-					return
-				}
-			}
-		}
-		dashCount = 0
-	}
-}
-
-// readUntilCloseAngle reads until the next ">".
-func (z *Tokenizer) readUntilCloseAngle() {
-	z.data.start = z.raw.end
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return
-		}
-		if c == '>' {
-			z.data.end = z.raw.end - len(">")
-			return
-		}
-	}
-}
-
-// readMarkupDeclaration reads the next token starting with "<!". It might be
-// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or
-// "<!a bogus comment". The opening "<!" has already been consumed.
-func (z *Tokenizer) readMarkupDeclaration() TokenType {
-	z.data.start = z.raw.end
-	var c [2]byte
-	for i := 0; i < 2; i++ {
-		c[i] = z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return CommentToken
-		}
-	}
-	if c[0] == '-' && c[1] == '-' {
-		z.readComment()
-		return CommentToken
-	}
-	z.raw.end -= 2
-	if z.readDoctype() {
-		return DoctypeToken
-	}
-	if z.allowCDATA && z.readCDATA() {
-		z.convertNUL = true
-		return TextToken
-	}
-	// It's a bogus comment.
-	z.readUntilCloseAngle()
-	return CommentToken
-}
-
-// readDoctype attempts to read a doctype declaration and returns true if
-// successful. The opening "<!" has already been consumed.
-func (z *Tokenizer) readDoctype() bool {
-	const s = "DOCTYPE"
-	for i := 0; i < len(s); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return false
-		}
-		if c != s[i] && c != s[i]+('a'-'A') {
-			// Back up to read the fragment of "DOCTYPE" again.
-			z.raw.end = z.data.start
-			return false
-		}
-	}
-	if z.skipWhiteSpace(); z.err != nil {
-		z.data.start = z.raw.end
-		z.data.end = z.raw.end
-		return true
-	}
-	z.readUntilCloseAngle()
-	return true
-}
-
-// readCDATA attempts to read a CDATA section and returns true if
-// successful. The opening "<!" has already been consumed.
-func (z *Tokenizer) readCDATA() bool {
-	const s = "[CDATA["
-	for i := 0; i < len(s); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return false
-		}
-		if c != s[i] {
-			// Back up to read the fragment of "[CDATA[" again.
-			z.raw.end = z.data.start
-			return false
-		}
-	}
-	z.data.start = z.raw.end
-	brackets := 0
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return true
-		}
-		switch c {
-		case ']':
-			brackets++
-		case '>':
-			if brackets >= 2 {
-				z.data.end = z.raw.end - len("]]>")
-				return true
-			}
-			brackets = 0
-		default:
-			brackets = 0
-		}
-	}
-	panic("unreachable")
-}
-
-// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end]
-// case-insensitively matches any element of ss.
-func (z *Tokenizer) startTagIn(ss ...string) bool {
-loop:
-	for _, s := range ss {
-		if z.data.end-z.data.start != len(s) {
-			continue loop
-		}
-		for i := 0; i < len(s); i++ {
-			c := z.buf[z.data.start+i]
-			if 'A' <= c && c <= 'Z' {
-				c += 'a' - 'A'
-			}
-			if c != s[i] {
-				continue loop
-			}
-		}
-		return true
-	}
-	return false
-}
-
-// readStartTag reads the next start tag token. The opening "<a" has already
-// been consumed, where 'a' means anything in [A-Za-z].
-func (z *Tokenizer) readStartTag() TokenType {
-	z.readTag(true)
-	if z.err != nil {
-		return ErrorToken
-	}
-	// Several tags flag the tokenizer's next token as raw.
-	c, raw := z.buf[z.data.start], false
-	if 'A' <= c && c <= 'Z' {
-		c += 'a' - 'A'
-	}
-	switch c {
-	case 'i':
-		raw = z.startTagIn("iframe")
-	case 'n':
-		raw = z.startTagIn("noembed", "noframes", "noscript")
-	case 'p':
-		raw = z.startTagIn("plaintext")
-	case 's':
-		raw = z.startTagIn("script", "style")
-	case 't':
-		raw = z.startTagIn("textarea", "title")
-	case 'x':
-		raw = z.startTagIn("xmp")
-	}
-	if raw {
-		z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end]))
-	}
-	// Look for a self-closing token like "<br/>".
-	if z.err == nil && z.buf[z.raw.end-2] == '/' {
-		return SelfClosingTagToken
-	}
-	return StartTagToken
-}
-
-// readTag reads the next tag token and its attributes. If saveAttr, those
-// attributes are saved in z.attr, otherwise z.attr is set to an empty slice.
-// The opening "<a" or "</a" has already been consumed, where 'a' means anything
-// in [A-Za-z].
-func (z *Tokenizer) readTag(saveAttr bool) {
-	z.attr = z.attr[:0]
-	z.nAttrReturned = 0
-	// Read the tag name and attribute key/value pairs.
-	z.readTagName()
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	for {
-		c := z.readByte()
-		if z.err != nil || c == '>' {
-			break
-		}
-		z.raw.end--
-		z.readTagAttrKey()
-		z.readTagAttrVal()
-		// Save pendingAttr if saveAttr and that attribute has a non-empty key.
-		if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end {
-			z.attr = append(z.attr, z.pendingAttr)
-		}
-		if z.skipWhiteSpace(); z.err != nil {
-			break
-		}
-	}
-}
-
-// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end)
-// is positioned such that the first byte of the tag name (the "d" in "<div")
-// has already been consumed.
-func (z *Tokenizer) readTagName() {
-	z.data.start = z.raw.end - 1
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f':
-			z.data.end = z.raw.end - 1
-			return
-		case '/', '>':
-			z.raw.end--
-			z.data.end = z.raw.end
-			return
-		}
-	}
-}
-
-// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>".
-// Precondition: z.err == nil.
-func (z *Tokenizer) readTagAttrKey() {
-	z.pendingAttr[0].start = z.raw.end
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.pendingAttr[0].end = z.raw.end
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f', '/':
-			z.pendingAttr[0].end = z.raw.end - 1
-			return
-		case '=', '>':
-			z.raw.end--
-			z.pendingAttr[0].end = z.raw.end
-			return
-		}
-	}
-}
-
-// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>".
-func (z *Tokenizer) readTagAttrVal() {
-	z.pendingAttr[1].start = z.raw.end
-	z.pendingAttr[1].end = z.raw.end
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	c := z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c != '=' {
-		z.raw.end--
-		return
-	}
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	quote := z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch quote {
-	case '>':
-		z.raw.end--
-		return
-
-	case '\'', '"':
-		z.pendingAttr[1].start = z.raw.end
-		for {
-			c := z.readByte()
-			if z.err != nil {
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-			if c == quote {
-				z.pendingAttr[1].end = z.raw.end - 1
-				return
-			}
-		}
-
-	default:
-		z.pendingAttr[1].start = z.raw.end - 1
-		for {
-			c := z.readByte()
-			if z.err != nil {
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-			switch c {
-			case ' ', '\n', '\r', '\t', '\f':
-				z.pendingAttr[1].end = z.raw.end - 1
-				return
-			case '>':
-				z.raw.end--
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-		}
-	}
-}
-
-// Next scans the next token and returns its type.
-func (z *Tokenizer) Next() TokenType {
-	if z.err != nil {
-		z.tt = ErrorToken
-		return z.tt
-	}
-	z.raw.start = z.raw.end
-	z.data.start = z.raw.end
-	z.data.end = z.raw.end
-	if z.rawTag != "" {
-		if z.rawTag == "plaintext" {
-			// Read everything up to EOF.
-			for z.err == nil {
-				z.readByte()
-			}
-			z.data.end = z.raw.end
-			z.textIsRaw = true
-		} else {
-			z.readRawOrRCDATA()
-		}
-		if z.data.end > z.data.start {
-			z.tt = TextToken
-			z.convertNUL = true
-			return z.tt
-		}
-	}
-	z.textIsRaw = false
-	z.convertNUL = false
-
-loop:
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '<' {
-			continue loop
-		}
-
-		// Check if the '<' we have just read is part of a tag, comment
-		// or doctype. If not, it's part of the accumulated text token.
-		c = z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		var tokenType TokenType
-		switch {
-		case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z':
-			tokenType = StartTagToken
-		case c == '/':
-			tokenType = EndTagToken
-		case c == '!' || c == '?':
-			// We use CommentToken to mean any of "<!--actual comments-->",
-			// "<!DOCTYPE declarations>" and "<?xml processing instructions?>".
-			tokenType = CommentToken
-		default:
-			continue
-		}
-
-		// We have a non-text token, but we might have accumulated some text
-		// before that. If so, we return the text first, and return the non-
-		// text token on the subsequent call to Next.
-		if x := z.raw.end - len("<a"); z.raw.start < x {
-			z.raw.end = x
-			z.data.end = x
-			z.tt = TextToken
-			return z.tt
-		}
-		switch tokenType {
-		case StartTagToken:
-			z.tt = z.readStartTag()
-			return z.tt
-		case EndTagToken:
-			c = z.readByte()
-			if z.err != nil {
-				break loop
-			}
-			if c == '>' {
-				// "</>" does not generate a token at all.
-				// Reset the tokenizer state and start again.
-				z.raw.start = z.raw.end
-				z.data.start = z.raw.end
-				z.data.end = z.raw.end
-				continue loop
-			}
-			if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
-				z.readTag(false)
-				if z.err != nil {
-					z.tt = ErrorToken
-				} else {
-					z.tt = EndTagToken
-				}
-				return z.tt
-			}
-			z.raw.end--
-			z.readUntilCloseAngle()
-			z.tt = CommentToken
-			return z.tt
-		case CommentToken:
-			if c == '!' {
-				z.tt = z.readMarkupDeclaration()
-				return z.tt
-			}
-			z.raw.end--
-			z.readUntilCloseAngle()
-			z.tt = CommentToken
-			return z.tt
-		}
-	}
-	if z.raw.start < z.raw.end {
-		z.data.end = z.raw.end
-		z.tt = TextToken
-		return z.tt
-	}
-	z.tt = ErrorToken
-	return z.tt
-}
-
-// Raw returns the unmodified text of the current token. Calling Next, Token,
-// Text, TagName or TagAttr may change the contents of the returned slice.
-func (z *Tokenizer) Raw() []byte {
-	return z.buf[z.raw.start:z.raw.end]
-}
-
-// convertNewlines converts "\r" and "\r\n" in s to "\n".
-// The conversion happens in place, but the resulting slice may be shorter.
-func convertNewlines(s []byte) []byte {
-	for i, c := range s {
-		if c != '\r' {
-			continue
-		}
-
-		src := i + 1
-		if src >= len(s) || s[src] != '\n' {
-			s[i] = '\n'
-			continue
-		}
-
-		dst := i
-		for src < len(s) {
-			if s[src] == '\r' {
-				if src+1 < len(s) && s[src+1] == '\n' {
-					src++
-				}
-				s[dst] = '\n'
-			} else {
-				s[dst] = s[src]
-			}
-			src++
-			dst++
-		}
-		return s[:dst]
-	}
-	return s
-}
-
-var (
-	nul         = []byte("\x00")
-	replacement = []byte("\ufffd")
-)
-
-// Text returns the unescaped text of a text, comment or doctype token. The
-// contents of the returned slice may change on the next call to Next.
-func (z *Tokenizer) Text() []byte {
-	switch z.tt {
-	case TextToken, CommentToken, DoctypeToken:
-		s := z.buf[z.data.start:z.data.end]
-		z.data.start = z.raw.end
-		z.data.end = z.raw.end
-		s = convertNewlines(s)
-		if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) {
-			s = bytes.Replace(s, nul, replacement, -1)
-		}
-		if !z.textIsRaw {
-			s = unescape(s, false)
-		}
-		return s
-	}
-	return nil
-}
-
-// TagName returns the lower-cased name of a tag token (the `img` out of
-// `<IMG SRC="foo">`) and whether the tag has attributes.
-// The contents of the returned slice may change on the next call to Next.
-func (z *Tokenizer) TagName() (name []byte, hasAttr bool) {
-	if z.data.start < z.data.end {
-		switch z.tt {
-		case StartTagToken, EndTagToken, SelfClosingTagToken:
-			s := z.buf[z.data.start:z.data.end]
-			z.data.start = z.raw.end
-			z.data.end = z.raw.end
-			return lower(s), z.nAttrReturned < len(z.attr)
-		}
-	}
-	return nil, false
-}
-
-// TagAttr returns the lower-cased key and unescaped value of the next unparsed
-// attribute for the current tag token and whether there are more attributes.
-// The contents of the returned slices may change on the next call to Next.
-func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) {
-	if z.nAttrReturned < len(z.attr) {
-		switch z.tt {
-		case StartTagToken, SelfClosingTagToken:
-			x := z.attr[z.nAttrReturned]
-			z.nAttrReturned++
-			key = z.buf[x[0].start:x[0].end]
-			val = z.buf[x[1].start:x[1].end]
-			return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr)
-		}
-	}
-	return nil, nil, false
-}
-
-// Token returns the next Token. The result's Data and Attr values remain valid
-// after subsequent Next calls.
-func (z *Tokenizer) Token() Token {
-	t := Token{Type: z.tt}
-	switch z.tt {
-	case TextToken, CommentToken, DoctypeToken:
-		t.Data = string(z.Text())
-	case StartTagToken, SelfClosingTagToken, EndTagToken:
-		name, moreAttr := z.TagName()
-		for moreAttr {
-			var key, val []byte
-			key, val, moreAttr = z.TagAttr()
-			t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)})
-		}
-		if a := atom.Lookup(name); a != 0 {
-			t.DataAtom, t.Data = a, a.String()
-		} else {
-			t.DataAtom, t.Data = 0, string(name)
-		}
-	}
-	return t
-}
-
-// NewTokenizer returns a new HTML Tokenizer for the given Reader.
-// The input is assumed to be UTF-8 encoded.
-func NewTokenizer(r io.Reader) *Tokenizer {
-	return NewTokenizerFragment(r, "")
-}
-
-// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for
-// tokenizing an exisitng element's InnerHTML fragment. contextTag is that
-// element's tag, such as "div" or "iframe".
-//
-// For example, how the InnerHTML "a<b" is tokenized depends on whether it is
-// for a <p> tag or a <script> tag.
-//
-// The input is assumed to be UTF-8 encoded.
-func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer {
-	z := &Tokenizer{
-		r:   r,
-		buf: make([]byte, 0, 4096),
-	}
-	if contextTag != "" {
-		switch s := strings.ToLower(contextTag); s {
-		case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp":
-			z.rawTag = s
-		}
-	}
-	return z
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/token_test.go gcc-4.8.1/libgo/go/exp/html/token_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/token_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/html/token_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,679 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"io"
-	"io/ioutil"
-	"runtime"
-	"strings"
-	"testing"
-)
-
-type tokenTest struct {
-	// A short description of the test case.
-	desc string
-	// The HTML to parse.
-	html string
-	// The string representations of the expected tokens, joined by '$'.
-	golden string
-}
-
-var tokenTests = []tokenTest{
-	{
-		"empty",
-		"",
-		"",
-	},
-	// A single text node. The tokenizer should not break text nodes on whitespace,
-	// nor should it normalize whitespace within a text node.
-	{
-		"text",
-		"foo  bar",
-		"foo  bar",
-	},
-	// An entity.
-	{
-		"entity",
-		"one &lt; two",
-		"one &lt; two",
-	},
-	// A start, self-closing and end tag. The tokenizer does not care if the start
-	// and end tokens don't match; that is the job of the parser.
-	{
-		"tags",
-		"<a>b<c/>d</e>",
-		"<a>$b$<c/>$d$</e>",
-	},
-	// Angle brackets that aren't a tag.
-	{
-		"not a tag #0",
-		"<",
-		"&lt;",
-	},
-	{
-		"not a tag #1",
-		"</",
-		"&lt;/",
-	},
-	{
-		"not a tag #2",
-		"</>",
-		"",
-	},
-	{
-		"not a tag #3",
-		"a</>b",
-		"a$b",
-	},
-	{
-		"not a tag #4",
-		"</ >",
-		"<!-- -->",
-	},
-	{
-		"not a tag #5",
-		"</.",
-		"<!--.-->",
-	},
-	{
-		"not a tag #6",
-		"</.>",
-		"<!--.-->",
-	},
-	{
-		"not a tag #7",
-		"a < b",
-		"a &lt; b",
-	},
-	{
-		"not a tag #8",
-		"<.>",
-		"&lt;.&gt;",
-	},
-	{
-		"not a tag #9",
-		"a<<<b>>>c",
-		"a&lt;&lt;$<b>$&gt;&gt;c",
-	},
-	{
-		"not a tag #10",
-		"if x<0 and y < 0 then x*y>0",
-		"if x&lt;0 and y &lt; 0 then x*y&gt;0",
-	},
-	// EOF in a tag name.
-	{
-		"tag name eof #0",
-		"<a",
-		"",
-	},
-	{
-		"tag name eof #1",
-		"<a ",
-		"",
-	},
-	{
-		"tag name eof #2",
-		"a<b",
-		"a",
-	},
-	{
-		"tag name eof #3",
-		"<a><b",
-		"<a>",
-	},
-	{
-		"tag name eof #4",
-		`<a x`,
-		``,
-	},
-	// Some malformed tags that are missing a '>'.
-	{
-		"malformed tag #0",
-		`<p</p>`,
-		`<p< p="">`,
-	},
-	{
-		"malformed tag #1",
-		`<p </p>`,
-		`<p <="" p="">`,
-	},
-	{
-		"malformed tag #2",
-		`<p id`,
-		``,
-	},
-	{
-		"malformed tag #3",
-		`<p id=`,
-		``,
-	},
-	{
-		"malformed tag #4",
-		`<p id=>`,
-		`<p id="">`,
-	},
-	{
-		"malformed tag #5",
-		`<p id=0`,
-		``,
-	},
-	{
-		"malformed tag #6",
-		`<p id=0</p>`,
-		`<p id="0&lt;/p">`,
-	},
-	{
-		"malformed tag #7",
-		`<p id="0</p>`,
-		``,
-	},
-	{
-		"malformed tag #8",
-		`<p id="0"</p>`,
-		`<p id="0" <="" p="">`,
-	},
-	{
-		"malformed tag #9",
-		`<p></p id`,
-		`<p>`,
-	},
-	// Raw text and RCDATA.
-	{
-		"basic raw text",
-		"<script><a></b></script>",
-		"<script>$&lt;a&gt;&lt;/b&gt;$</script>",
-	},
-	{
-		"unfinished script end tag",
-		"<SCRIPT>a</SCR",
-		"<script>$a&lt;/SCR",
-	},
-	{
-		"broken script end tag",
-		"<SCRIPT>a</SCR ipt>",
-		"<script>$a&lt;/SCR ipt&gt;",
-	},
-	{
-		"EOF in script end tag",
-		"<SCRIPT>a</SCRipt",
-		"<script>$a&lt;/SCRipt",
-	},
-	{
-		"scriptx end tag",
-		"<SCRIPT>a</SCRiptx",
-		"<script>$a&lt;/SCRiptx",
-	},
-	{
-		"' ' completes script end tag",
-		"<SCRIPT>a</SCRipt ",
-		"<script>$a",
-	},
-	{
-		"'>' completes script end tag",
-		"<SCRIPT>a</SCRipt>",
-		"<script>$a$</script>",
-	},
-	{
-		"self-closing script end tag",
-		"<SCRIPT>a</SCRipt/>",
-		"<script>$a$</script>",
-	},
-	{
-		"nested script tag",
-		"<SCRIPT>a</SCRipt<script>",
-		"<script>$a&lt;/SCRipt&lt;script&gt;",
-	},
-	{
-		"script end tag after unfinished",
-		"<SCRIPT>a</SCRipt</script>",
-		"<script>$a&lt;/SCRipt$</script>",
-	},
-	{
-		"script/style mismatched tags",
-		"<script>a</style>",
-		"<script>$a&lt;/style&gt;",
-	},
-	{
-		"style element with entity",
-		"<style>&apos;",
-		"<style>$&amp;apos;",
-	},
-	{
-		"textarea with tag",
-		"<textarea><div></textarea>",
-		"<textarea>$&lt;div&gt;$</textarea>",
-	},
-	{
-		"title with tag and entity",
-		"<title><b>K&amp;R C</b></title>",
-		"<title>$&lt;b&gt;K&amp;R C&lt;/b&gt;$</title>",
-	},
-	// DOCTYPE tests.
-	{
-		"Proper DOCTYPE",
-		"<!DOCTYPE html>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"DOCTYPE with no space",
-		"<!doctypehtml>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"DOCTYPE with two spaces",
-		"<!doctype  html>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"looks like DOCTYPE but isn't",
-		"<!DOCUMENT html>",
-		"<!--DOCUMENT html-->",
-	},
-	{
-		"DOCTYPE at EOF",
-		"<!DOCtype",
-		"<!DOCTYPE >",
-	},
-	// XML processing instructions.
-	{
-		"XML processing instruction",
-		"<?xml?>",
-		"<!--?xml?-->",
-	},
-	// Comments.
-	{
-		"comment0",
-		"abc<b><!-- skipme --></b>def",
-		"abc$<b>$<!-- skipme -->$</b>$def",
-	},
-	{
-		"comment1",
-		"a<!-->z",
-		"a$<!---->$z",
-	},
-	{
-		"comment2",
-		"a<!--->z",
-		"a$<!---->$z",
-	},
-	{
-		"comment3",
-		"a<!--x>-->z",
-		"a$<!--x>-->$z",
-	},
-	{
-		"comment4",
-		"a<!--x->-->z",
-		"a$<!--x->-->$z",
-	},
-	{
-		"comment5",
-		"a<!>z",
-		"a$<!---->$z",
-	},
-	{
-		"comment6",
-		"a<!->z",
-		"a$<!----->$z",
-	},
-	{
-		"comment7",
-		"a<!---<>z",
-		"a$<!---<>z-->",
-	},
-	{
-		"comment8",
-		"a<!--z",
-		"a$<!--z-->",
-	},
-	{
-		"comment9",
-		"a<!--z-",
-		"a$<!--z-->",
-	},
-	{
-		"comment10",
-		"a<!--z--",
-		"a$<!--z-->",
-	},
-	{
-		"comment11",
-		"a<!--z---",
-		"a$<!--z--->",
-	},
-	{
-		"comment12",
-		"a<!--z----",
-		"a$<!--z---->",
-	},
-	{
-		"comment13",
-		"a<!--x--!>z",
-		"a$<!--x-->$z",
-	},
-	// An attribute with a backslash.
-	{
-		"backslash",
-		`<p id="a\"b">`,
-		`<p id="a\" b"="">`,
-	},
-	// Entities, tag name and attribute key lower-casing, and whitespace
-	// normalization within a tag.
-	{
-		"tricky",
-		"<p \t\n iD=\"a&quot;B\"  foo=\"bar\"><EM>te&lt;&amp;;xt</em></p>",
-		`<p id="a&#34;B" foo="bar">$<em>$te&lt;&amp;;xt$</em>$</p>`,
-	},
-	// A nonexistent entity. Tokenizing and converting back to a string should
-	// escape the "&" to become "&amp;".
-	{
-		"noSuchEntity",
-		`<a b="c&noSuchEntity;d">&lt;&alsoDoesntExist;&`,
-		`<a b="c&amp;noSuchEntity;d">$&lt;&amp;alsoDoesntExist;&amp;`,
-	},
-	{
-		"entity without semicolon",
-		`&notit;&notin;<a b="q=z&amp=5&notice=hello&not;=world">`,
-		`Â¬it;âˆ‰$<a b="q=z&amp;amp=5&amp;notice=helloÂ¬=world">`,
-	},
-	{
-		"entity with digits",
-		"&frac12;",
-		"Â½",
-	},
-	// Attribute tests:
-	// http://dev.w3.org/html5/spec/Overview.html#attributes-0
-	{
-		"Empty attribute",
-		`<input disabled FOO>`,
-		`<input disabled="" foo="">`,
-	},
-	{
-		"Empty attribute, whitespace",
-		`<input disabled FOO >`,
-		`<input disabled="" foo="">`,
-	},
-	{
-		"Unquoted attribute value",
-		`<input value=yes FOO=BAR>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Unquoted attribute value, spaces",
-		`<input value = yes FOO = BAR>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Unquoted attribute value, trailing space",
-		`<input value=yes FOO=BAR >`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Single-quoted attribute value",
-		`<input value='yes' FOO='BAR'>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Single-quoted attribute value, trailing space",
-		`<input value='yes' FOO='BAR' >`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Double-quoted attribute value",
-		`<input value="I'm an attribute" FOO="BAR">`,
-		`<input value="I&#39;m an attribute" foo="BAR">`,
-	},
-	{
-		"Attribute name characters",
-		`<meta http-equiv="content-type">`,
-		`<meta http-equiv="content-type">`,
-	},
-	{
-		"Mixed attributes",
-		`a<P V="0 1" w='2' X=3 y>z`,
-		`a$<p v="0 1" w="2" x="3" y="">$z`,
-	},
-	{
-		"Attributes with a solitary single quote",
-		`<p id=can't><p id=won't>`,
-		`<p id="can&#39;t">$<p id="won&#39;t">`,
-	},
-}
-
-func TestTokenizer(t *testing.T) {
-loop:
-	for _, tt := range tokenTests {
-		z := NewTokenizer(strings.NewReader(tt.html))
-		if tt.golden != "" {
-			for i, s := range strings.Split(tt.golden, "$") {
-				if z.Next() == ErrorToken {
-					t.Errorf("%s token %d: want %q got error %v", tt.desc, i, s, z.Err())
-					continue loop
-				}
-				actual := z.Token().String()
-				if s != actual {
-					t.Errorf("%s token %d: want %q got %q", tt.desc, i, s, actual)
-					continue loop
-				}
-			}
-		}
-		z.Next()
-		if z.Err() != io.EOF {
-			t.Errorf("%s: want EOF got %q", tt.desc, z.Err())
-		}
-	}
-}
-
-type unescapeTest struct {
-	// A short description of the test case.
-	desc string
-	// The HTML text.
-	html string
-	// The unescaped text.
-	unescaped string
-}
-
-var unescapeTests = []unescapeTest{
-	// Handle no entities.
-	{
-		"copy",
-		"A\ttext\nstring",
-		"A\ttext\nstring",
-	},
-	// Handle simple named entities.
-	{
-		"simple",
-		"&amp; &gt; &lt;",
-		"& > <",
-	},
-	// Handle hitting the end of the string.
-	{
-		"stringEnd",
-		"&amp &amp",
-		"& &",
-	},
-	// Handle entities with two codepoints.
-	{
-		"multiCodepoint",
-		"text &gesl; blah",
-		"text \u22db\ufe00 blah",
-	},
-	// Handle decimal numeric entities.
-	{
-		"decimalEntity",
-		"Delta = &#916; ",
-		"Delta = Î” ",
-	},
-	// Handle hexadecimal numeric entities.
-	{
-		"hexadecimalEntity",
-		"Lambda = &#x3bb; = &#X3Bb ",
-		"Lambda = Î» = Î» ",
-	},
-	// Handle numeric early termination.
-	{
-		"numericEnds",
-		"&# &#x &#128;43 &copy = &#169f = &#xa9",
-		"&# &#x â‚¬43 Â© = Â©f = Â©",
-	},
-	// Handle numeric ISO-8859-1 entity replacements.
-	{
-		"numericReplacements",
-		"Footnote&#x87;",
-		"Footnoteâ€¡",
-	},
-}
-
-func TestUnescape(t *testing.T) {
-	for _, tt := range unescapeTests {
-		unescaped := UnescapeString(tt.html)
-		if unescaped != tt.unescaped {
-			t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped)
-		}
-	}
-}
-
-func TestUnescapeEscape(t *testing.T) {
-	ss := []string{
-		``,
-		`abc def`,
-		`a & b`,
-		`a&amp;b`,
-		`a &amp b`,
-		`&quot;`,
-		`"`,
-		`"<&>"`,
-		`&quot;&lt;&amp;&gt;&quot;`,
-		`3&5==1 && 0<1, "0&lt;1", a+acute=&aacute;`,
-		`The special characters are: <, >, &, ' and "`,
-	}
-	for _, s := range ss {
-		if got := UnescapeString(EscapeString(s)); got != s {
-			t.Errorf("got %q want %q", got, s)
-		}
-	}
-}
-
-func TestBufAPI(t *testing.T) {
-	s := "0<a>1</a>2<b>3<a>4<a>5</a>6</b>7</a>8<a/>9"
-	z := NewTokenizer(bytes.NewBufferString(s))
-	var result bytes.Buffer
-	depth := 0
-loop:
-	for {
-		tt := z.Next()
-		switch tt {
-		case ErrorToken:
-			if z.Err() != io.EOF {
-				t.Error(z.Err())
-			}
-			break loop
-		case TextToken:
-			if depth > 0 {
-				result.Write(z.Text())
-			}
-		case StartTagToken, EndTagToken:
-			tn, _ := z.TagName()
-			if len(tn) == 1 && tn[0] == 'a' {
-				if tt == StartTagToken {
-					depth++
-				} else {
-					depth--
-				}
-			}
-		}
-	}
-	u := "14567"
-	v := string(result.Bytes())
-	if u != v {
-		t.Errorf("TestBufAPI: want %q got %q", u, v)
-	}
-}
-
-func TestConvertNewlines(t *testing.T) {
-	testCases := map[string]string{
-		"Mac\rDOS\r\nUnix\n":    "Mac\nDOS\nUnix\n",
-		"Unix\nMac\rDOS\r\n":    "Unix\nMac\nDOS\n",
-		"DOS\r\nDOS\r\nDOS\r\n": "DOS\nDOS\nDOS\n",
-		"":         "",
-		"\n":       "\n",
-		"\n\r":     "\n\n",
-		"\r":       "\n",
-		"\r\n":     "\n",
-		"\r\n\n":   "\n\n",
-		"\r\n\r":   "\n\n",
-		"\r\n\r\n": "\n\n",
-		"\r\r":     "\n\n",
-		"\r\r\n":   "\n\n",
-		"\r\r\n\n": "\n\n\n",
-		"\r\r\r\n": "\n\n\n",
-		"\r \n":    "\n \n",
-		"xyz":      "xyz",
-	}
-	for in, want := range testCases {
-		if got := string(convertNewlines([]byte(in))); got != want {
-			t.Errorf("input %q: got %q, want %q", in, got, want)
-		}
-	}
-}
-
-const (
-	rawLevel = iota
-	lowLevel
-	highLevel
-)
-
-func benchmarkTokenizer(b *testing.B, level int) {
-	buf, err := ioutil.ReadFile("testdata/go1.html")
-	if err != nil {
-		b.Fatalf("could not read testdata/go1.html: %v", err)
-	}
-	b.SetBytes(int64(len(buf)))
-	runtime.GC()
-	b.ReportAllocs()
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		z := NewTokenizer(bytes.NewBuffer(buf))
-		for {
-			tt := z.Next()
-			if tt == ErrorToken {
-				if err := z.Err(); err != nil && err != io.EOF {
-					b.Fatalf("tokenizer error: %v", err)
-				}
-				break
-			}
-			switch level {
-			case rawLevel:
-				// Calling z.Raw just returns the raw bytes of the token. It does
-				// not unescape &lt; to <, or lower-case tag names and attribute keys.
-				z.Raw()
-			case lowLevel:
-				// Caling z.Text, z.TagName and z.TagAttr returns []byte values
-				// whose contents may change on the next call to z.Next.
-				switch tt {
-				case TextToken, CommentToken, DoctypeToken:
-					z.Text()
-				case StartTagToken, SelfClosingTagToken:
-					_, more := z.TagName()
-					for more {
-						_, _, more = z.TagAttr()
-					}
-				case EndTagToken:
-					z.TagName()
-				}
-			case highLevel:
-				// Calling z.Token converts []byte values to strings whose validity
-				// extend beyond the next call to z.Next.
-				z.Token()
-			}
-		}
-	}
-}
-
-func BenchmarkRawLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, rawLevel) }
-func BenchmarkLowLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, lowLevel) }
-func BenchmarkHighLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, highLevel) }
diff -Naur gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux.go gcc-4.8.1/libgo/go/exp/inotify/inotify_linux.go
--- gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/inotify/inotify_linux.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,289 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-Package inotify implements a wrapper for the Linux inotify system.
-
-Example:
-    watcher, err := inotify.NewWatcher()
-    if err != nil {
-        log.Fatal(err)
-    }
-    err = watcher.Watch("/tmp")
-    if err != nil {
-        log.Fatal(err)
-    }
-    for {
-        select {
-        case ev := <-watcher.Event:
-            log.Println("event:", ev)
-        case err := <-watcher.Error:
-            log.Println("error:", err)
-        }
-    }
-
-*/
-package inotify
-
-import (
-	"errors"
-	"fmt"
-	"os"
-	"strings"
-	"syscall"
-	"unsafe"
-)
-
-type Event struct {
-	Mask   uint32 // Mask of events
-	Cookie uint32 // Unique cookie associating related events (for rename(2))
-	Name   string // File name (optional)
-}
-
-type watch struct {
-	wd    uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall)
-	flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags)
-}
-
-type Watcher struct {
-	fd       int               // File descriptor (as returned by the inotify_init() syscall)
-	watches  map[string]*watch // Map of inotify watches (key: path)
-	paths    map[int]string    // Map of watched paths (key: watch descriptor)
-	Error    chan error        // Errors are sent on this channel
-	Event    chan *Event       // Events are returned on this channel
-	done     chan bool         // Channel for sending a "quit message" to the reader goroutine
-	isClosed bool              // Set to true when Close() is first called
-}
-
-// NewWatcher creates and returns a new inotify instance using inotify_init(2)
-func NewWatcher() (*Watcher, error) {
-	fd, errno := syscall.InotifyInit()
-	if fd == -1 {
-		return nil, os.NewSyscallError("inotify_init", errno)
-	}
-	w := &Watcher{
-		fd:      fd,
-		watches: make(map[string]*watch),
-		paths:   make(map[int]string),
-		Event:   make(chan *Event),
-		Error:   make(chan error),
-		done:    make(chan bool, 1),
-	}
-
-	go w.readEvents()
-	return w, nil
-}
-
-// Close closes an inotify watcher instance
-// It sends a message to the reader goroutine to quit and removes all watches
-// associated with the inotify instance
-func (w *Watcher) Close() error {
-	if w.isClosed {
-		return nil
-	}
-	w.isClosed = true
-
-	// Send "quit" message to the reader goroutine
-	w.done <- true
-	for path := range w.watches {
-		w.RemoveWatch(path)
-	}
-
-	return nil
-}
-
-// AddWatch adds path to the watched file set.
-// The flags are interpreted as described in inotify_add_watch(2).
-func (w *Watcher) AddWatch(path string, flags uint32) error {
-	if w.isClosed {
-		return errors.New("inotify instance already closed")
-	}
-
-	watchEntry, found := w.watches[path]
-	if found {
-		watchEntry.flags |= flags
-		flags |= syscall.IN_MASK_ADD
-	}
-	wd, err := syscall.InotifyAddWatch(w.fd, path, flags)
-	if err != nil {
-		return &os.PathError{
-			Op:   "inotify_add_watch",
-			Path: path,
-			Err:  err,
-		}
-	}
-
-	if !found {
-		w.watches[path] = &watch{wd: uint32(wd), flags: flags}
-		w.paths[wd] = path
-	}
-	return nil
-}
-
-// Watch adds path to the watched file set, watching all events.
-func (w *Watcher) Watch(path string) error {
-	return w.AddWatch(path, IN_ALL_EVENTS)
-}
-
-// RemoveWatch removes path from the watched file set.
-func (w *Watcher) RemoveWatch(path string) error {
-	watch, ok := w.watches[path]
-	if !ok {
-		return errors.New(fmt.Sprintf("can't remove non-existent inotify watch for: %s", path))
-	}
-	success, errno := syscall.InotifyRmWatch(w.fd, watch.wd)
-	if success == -1 {
-		return os.NewSyscallError("inotify_rm_watch", errno)
-	}
-	delete(w.watches, path)
-	return nil
-}
-
-// readEvents reads from the inotify file descriptor, converts the
-// received events into Event objects and sends them via the Event channel
-func (w *Watcher) readEvents() {
-	var buf [syscall.SizeofInotifyEvent * 4096]byte
-
-	for {
-		n, err := syscall.Read(w.fd, buf[0:])
-		// See if there is a message on the "done" channel
-		var done bool
-		select {
-		case done = <-w.done:
-		default:
-		}
-
-		// If EOF or a "done" message is received
-		if n == 0 || done {
-			err := syscall.Close(w.fd)
-			if err != nil {
-				w.Error <- os.NewSyscallError("close", err)
-			}
-			close(w.Event)
-			close(w.Error)
-			return
-		}
-		if n < 0 {
-			w.Error <- os.NewSyscallError("read", err)
-			continue
-		}
-		if n < syscall.SizeofInotifyEvent {
-			w.Error <- errors.New("inotify: short read in readEvents()")
-			continue
-		}
-
-		var offset uint32 = 0
-		// We don't know how many events we just read into the buffer
-		// While the offset points to at least one whole event...
-		for offset <= uint32(n-syscall.SizeofInotifyEvent) {
-			// Point "raw" to the event in the buffer
-			raw := (*syscall.InotifyEvent)(unsafe.Pointer(&buf[offset]))
-			event := new(Event)
-			event.Mask = uint32(raw.Mask)
-			event.Cookie = uint32(raw.Cookie)
-			nameLen := uint32(raw.Len)
-			// If the event happened to the watched directory or the watched file, the kernel
-			// doesn't append the filename to the event, but we would like to always fill the
-			// the "Name" field with a valid filename. We retrieve the path of the watch from
-			// the "paths" map.
-			event.Name = w.paths[int(raw.Wd)]
-			if nameLen > 0 {
-				// Point "bytes" at the first byte of the filename
-				bytes := (*[syscall.PathMax]byte)(unsafe.Pointer(&buf[offset+syscall.SizeofInotifyEvent]))
-				// The filename is padded with NUL bytes. TrimRight() gets rid of those.
-				event.Name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000")
-			}
-			// Send the event on the events channel
-			w.Event <- event
-
-			// Move to the next event in the buffer
-			offset += syscall.SizeofInotifyEvent + nameLen
-		}
-	}
-}
-
-// String formats the event e in the form
-// "filename: 0xEventMask = IN_ACCESS|IN_ATTRIB_|..."
-func (e *Event) String() string {
-	var events string = ""
-
-	m := e.Mask
-	for _, b := range eventBits {
-		if m&b.Value != 0 {
-			m &^= b.Value
-			events += "|" + b.Name
-		}
-	}
-
-	if m != 0 {
-		events += fmt.Sprintf("|%#x", m)
-	}
-	if len(events) > 0 {
-		events = " == " + events[1:]
-	}
-
-	return fmt.Sprintf("%q: %#x%s", e.Name, e.Mask, events)
-}
-
-const (
-	// Options for inotify_init() are not exported
-	// IN_CLOEXEC    uint32 = syscall.IN_CLOEXEC
-	// IN_NONBLOCK   uint32 = syscall.IN_NONBLOCK
-
-	// Options for AddWatch
-	IN_DONT_FOLLOW uint32 = syscall.IN_DONT_FOLLOW
-	IN_ONESHOT     uint32 = syscall.IN_ONESHOT
-	IN_ONLYDIR     uint32 = syscall.IN_ONLYDIR
-
-	// The "IN_MASK_ADD" option is not exported, as AddWatch
-	// adds it automatically, if there is already a watch for the given path
-	// IN_MASK_ADD      uint32 = syscall.IN_MASK_ADD
-
-	// Events
-	IN_ACCESS        uint32 = syscall.IN_ACCESS
-	IN_ALL_EVENTS    uint32 = syscall.IN_ALL_EVENTS
-	IN_ATTRIB        uint32 = syscall.IN_ATTRIB
-	IN_CLOSE         uint32 = syscall.IN_CLOSE
-	IN_CLOSE_NOWRITE uint32 = syscall.IN_CLOSE_NOWRITE
-	IN_CLOSE_WRITE   uint32 = syscall.IN_CLOSE_WRITE
-	IN_CREATE        uint32 = syscall.IN_CREATE
-	IN_DELETE        uint32 = syscall.IN_DELETE
-	IN_DELETE_SELF   uint32 = syscall.IN_DELETE_SELF
-	IN_MODIFY        uint32 = syscall.IN_MODIFY
-	IN_MOVE          uint32 = syscall.IN_MOVE
-	IN_MOVED_FROM    uint32 = syscall.IN_MOVED_FROM
-	IN_MOVED_TO      uint32 = syscall.IN_MOVED_TO
-	IN_MOVE_SELF     uint32 = syscall.IN_MOVE_SELF
-	IN_OPEN          uint32 = syscall.IN_OPEN
-
-	// Special events
-	IN_ISDIR      uint32 = syscall.IN_ISDIR
-	IN_IGNORED    uint32 = syscall.IN_IGNORED
-	IN_Q_OVERFLOW uint32 = syscall.IN_Q_OVERFLOW
-	IN_UNMOUNT    uint32 = syscall.IN_UNMOUNT
-)
-
-var eventBits = []struct {
-	Value uint32
-	Name  string
-}{
-	{IN_ACCESS, "IN_ACCESS"},
-	{IN_ATTRIB, "IN_ATTRIB"},
-	{IN_CLOSE, "IN_CLOSE"},
-	{IN_CLOSE_NOWRITE, "IN_CLOSE_NOWRITE"},
-	{IN_CLOSE_WRITE, "IN_CLOSE_WRITE"},
-	{IN_CREATE, "IN_CREATE"},
-	{IN_DELETE, "IN_DELETE"},
-	{IN_DELETE_SELF, "IN_DELETE_SELF"},
-	{IN_MODIFY, "IN_MODIFY"},
-	{IN_MOVE, "IN_MOVE"},
-	{IN_MOVED_FROM, "IN_MOVED_FROM"},
-	{IN_MOVED_TO, "IN_MOVED_TO"},
-	{IN_MOVE_SELF, "IN_MOVE_SELF"},
-	{IN_OPEN, "IN_OPEN"},
-	{IN_ISDIR, "IN_ISDIR"},
-	{IN_IGNORED, "IN_IGNORED"},
-	{IN_Q_OVERFLOW, "IN_Q_OVERFLOW"},
-	{IN_UNMOUNT, "IN_UNMOUNT"},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux_test.go gcc-4.8.1/libgo/go/exp/inotify/inotify_linux_test.go
--- gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux_test.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/inotify/inotify_linux_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,106 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build linux
-
-package inotify
-
-import (
-	"io/ioutil"
-	"os"
-	"testing"
-	"time"
-)
-
-func TestInotifyEvents(t *testing.T) {
-	// Create an inotify watcher instance and initialize it
-	watcher, err := NewWatcher()
-	if err != nil {
-		t.Fatalf("NewWatcher failed: %s", err)
-	}
-
-	dir, err := ioutil.TempDir("", "inotify")
-	if err != nil {
-		t.Fatalf("TempDir failed: %s", err)
-	}
-	defer os.RemoveAll(dir)
-
-	// Add a watch for "_test"
-	err = watcher.Watch(dir)
-	if err != nil {
-		t.Fatalf("Watch failed: %s", err)
-	}
-
-	// Receive errors on the error channel on a separate goroutine
-	go func() {
-		for err := range watcher.Error {
-			t.Fatalf("error received: %s", err)
-		}
-	}()
-
-	testFile := dir + "/TestInotifyEvents.testfile"
-
-	// Receive events on the event channel on a separate goroutine
-	eventstream := watcher.Event
-	var eventsReceived = 0
-	done := make(chan bool)
-	go func() {
-		for event := range eventstream {
-			// Only count relevant events
-			if event.Name == testFile {
-				eventsReceived++
-				t.Logf("event received: %s", event)
-			} else {
-				t.Logf("unexpected event received: %s", event)
-			}
-		}
-		done <- true
-	}()
-
-	// Create a file
-	// This should add at least one event to the inotify event queue
-	_, err = os.OpenFile(testFile, os.O_WRONLY|os.O_CREATE, 0666)
-	if err != nil {
-		t.Fatalf("creating test file: %s", err)
-	}
-
-	// We expect this event to be received almost immediately, but let's wait 1 s to be sure
-	time.Sleep(1 * time.Second)
-	if eventsReceived == 0 {
-		t.Fatal("inotify event hasn't been received after 1 second")
-	}
-
-	// Try closing the inotify instance
-	t.Log("calling Close()")
-	watcher.Close()
-	t.Log("waiting for the event channel to become closed...")
-	select {
-	case <-done:
-		t.Log("event channel closed")
-	case <-time.After(1 * time.Second):
-		t.Fatal("event stream was not closed after 1 second")
-	}
-}
-
-func TestInotifyClose(t *testing.T) {
-	watcher, _ := NewWatcher()
-	watcher.Close()
-
-	done := make(chan bool)
-	go func() {
-		watcher.Close()
-		done <- true
-	}()
-
-	select {
-	case <-done:
-	case <-time.After(50 * time.Millisecond):
-		t.Fatal("double Close() test failed: second Close() call didn't return")
-	}
-
-	err := watcher.Watch(os.TempDir())
-	if err == nil {
-		t.Fatal("expected error on Watch() after Close(), got nil")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder.go gcc-4.8.1/libgo/go/exp/locale/collate/build/builder.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/builder.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,688 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"exp/norm"
-	"fmt"
-	"io"
-	"log"
-	"sort"
-	"strings"
-	"unicode/utf8"
-)
-
-// TODO: optimizations:
-// - expandElem is currently 20K. By putting unique colElems in a separate
-//   table and having a byte array of indexes into this table, we can reduce
-//   the total size to about 7K. By also factoring out the length bytes, we
-//   can reduce this to about 6K.
-// - trie valueBlocks are currently 100K. There are a lot of sparse blocks
-//   and many consecutive values with the same stride. This can be further
-//   compacted.
-// - Compress secondary weights into 8 bits.
-// - Some LDML specs specify a context element. Currently we simply concatenate
-//   those.  Context can be implemented using the contraction trie. If Builder
-//   could analyze and detect when using a context makes sense, there is no
-//   need to expose this construct in the API.
-
-// A Builder builds a root collation table.  The user must specify the
-// collation elements for each entry.  A common use will be to base the weights
-// on those specified in the allkeys* file as provided by the UCA or CLDR.
-type Builder struct {
-	index  *trieBuilder
-	root   ordering
-	locale []*Tailoring
-	t      *table
-	err    error
-	built  bool
-
-	minNonVar int // lowest primary recorded for a variable
-	varTop    int // highest primary recorded for a non-variable
-
-	// indexes used for reusing expansions and contractions
-	expIndex map[string]int      // positions of expansions keyed by their string representation
-	ctHandle map[string]ctHandle // contraction handles keyed by a concatenation of the suffixes
-	ctElem   map[string]int      // contraction elements keyed by their string representation
-}
-
-// A Tailoring builds a collation table based on another collation table.
-// The table is defined by specifying tailorings to the underlying table.
-// See http://unicode.org/reports/tr35/ for an overview of tailoring
-// collation tables.  The CLDR contains pre-defined tailorings for a variety
-// of languages (See http://www.unicode.org/Public/cldr/2.0.1/core.zip.)
-type Tailoring struct {
-	id      string
-	builder *Builder
-	index   *ordering
-
-	anchor *entry
-	before bool
-}
-
-// NewBuilder returns a new Builder.
-func NewBuilder() *Builder {
-	return &Builder{
-		index:    newTrieBuilder(),
-		root:     makeRootOrdering(),
-		expIndex: make(map[string]int),
-		ctHandle: make(map[string]ctHandle),
-		ctElem:   make(map[string]int),
-	}
-}
-
-// Tailoring returns a Tailoring for the given locale.  One should
-// have completed all calls to Add before calling Tailoring.
-func (b *Builder) Tailoring(locale string) *Tailoring {
-	t := &Tailoring{
-		id:      locale,
-		builder: b,
-		index:   b.root.clone(),
-	}
-	t.index.id = t.id
-	b.locale = append(b.locale, t)
-	return t
-}
-
-// Add adds an entry to the collation element table, mapping
-// a slice of runes to a sequence of collation elements.
-// A collation element is specified as list of weights: []int{primary, secondary, ...}.
-// The entries are typically obtained from a collation element table
-// as defined in http://www.unicode.org/reports/tr10/#Data_Table_Format.
-// Note that the collation elements specified by colelems are only used
-// as a guide.  The actual weights generated by Builder may differ.
-// The argument variables is a list of indices into colelems that should contain
-// a value for each colelem that is a variable. (See the reference above.)
-func (b *Builder) Add(runes []rune, colelems [][]int, variables []int) error {
-	str := string(runes)
-	elems := make([]rawCE, len(colelems))
-	for i, ce := range colelems {
-		if len(ce) == 0 {
-			break
-		}
-		elems[i] = makeRawCE(ce, 0)
-		if len(ce) == 1 {
-			elems[i].w[1] = defaultSecondary
-		}
-		if len(ce) <= 2 {
-			elems[i].w[2] = defaultTertiary
-		}
-		if len(ce) <= 3 {
-			elems[i].w[3] = ce[0]
-		}
-	}
-	for i, ce := range elems {
-		p := ce.w[0]
-		isvar := false
-		for _, j := range variables {
-			if i == j {
-				isvar = true
-			}
-		}
-		if isvar {
-			if p >= b.minNonVar && b.minNonVar > 0 {
-				return fmt.Errorf("primary value %X of variable is larger than the smallest non-variable %X", p, b.minNonVar)
-			}
-			if p > b.varTop {
-				b.varTop = p
-			}
-		} else if p > 1 { // 1 is a special primary value reserved for FFFE
-			if p <= b.varTop {
-				return fmt.Errorf("primary value %X of non-variable is smaller than the highest variable %X", p, b.varTop)
-			}
-			if b.minNonVar == 0 || p < b.minNonVar {
-				b.minNonVar = p
-			}
-		}
-	}
-	elems, err := convertLargeWeights(elems)
-	if err != nil {
-		return err
-	}
-	cccs := []uint8{}
-	nfd := norm.NFD.String(str)
-	for i := range nfd {
-		cccs = append(cccs, norm.NFD.PropertiesString(nfd[i:]).CCC())
-	}
-	if len(cccs) < len(elems) {
-		if len(cccs) > 2 {
-			return fmt.Errorf("number of decomposed characters should be greater or equal to the number of collation elements for len(colelems) > 3 (%d < %d)", len(cccs), len(elems))
-		}
-		p := len(elems) - 1
-		for ; p > 0 && elems[p].w[0] == 0; p-- {
-			elems[p].ccc = cccs[len(cccs)-1]
-		}
-		for ; p >= 0; p-- {
-			elems[p].ccc = cccs[0]
-		}
-	} else {
-		for i := range elems {
-			elems[i].ccc = cccs[i]
-		}
-	}
-	// doNorm in collate.go assumes that the following conditions hold.
-	if len(elems) > 1 && len(cccs) > 1 && cccs[0] != 0 && cccs[0] != cccs[len(cccs)-1] {
-		return fmt.Errorf("incompatible CCC values for expansion %X (%d)", runes, cccs)
-	}
-	b.root.newEntry(str, elems)
-	return nil
-}
-
-func (t *Tailoring) setAnchor(anchor string) error {
-	anchor = norm.NFC.String(anchor)
-	a := t.index.find(anchor)
-	if a == nil {
-		a = t.index.newEntry(anchor, nil)
-		a.implicit = true
-		a.modified = true
-		for _, r := range []rune(anchor) {
-			e := t.index.find(string(r))
-			e.lock = true
-		}
-	}
-	t.anchor = a
-	return nil
-}
-
-// SetAnchor sets the point after which elements passed in subsequent calls to
-// Insert will be inserted.  It is equivalent to the reset directive in an LDML
-// specification.  See Insert for an example.
-// SetAnchor supports the following logical reset positions:
-// <first_tertiary_ignorable/>, <last_teriary_ignorable/>, <first_primary_ignorable/>,
-// and <last_non_ignorable/>.
-func (t *Tailoring) SetAnchor(anchor string) error {
-	if err := t.setAnchor(anchor); err != nil {
-		return err
-	}
-	t.before = false
-	return nil
-}
-
-// SetAnchorBefore is similar to SetAnchor, except that subsequent calls to
-// Insert will insert entries before the anchor.
-func (t *Tailoring) SetAnchorBefore(anchor string) error {
-	if err := t.setAnchor(anchor); err != nil {
-		return err
-	}
-	t.before = true
-	return nil
-}
-
-// Insert sets the ordering of str relative to the entry set by the previous
-// call to SetAnchor or Insert.  The argument extend corresponds
-// to the extend elements as defined in LDML.  A non-empty value for extend
-// will cause the collation elements corresponding to extend to be appended
-// to the collation elements generated for the entry added by Insert.
-// This has the same net effect as sorting str after the string anchor+extend.
-// See http://www.unicode.org/reports/tr10/#Tailoring_Example for details
-// on parametric tailoring and http://unicode.org/reports/tr35/#Collation_Elements
-// for full details on LDML.
-//
-// Examples: create a tailoring for Swedish, where "Ã¤" is ordered after "z"
-// at the primary sorting level:
-//      t := b.Tailoring("se")
-// 		t.SetAnchor("z")
-// 		t.Insert(collate.Primary, "Ã¤", "")
-// Order "Ã¼" after "ue" at the secondary sorting level:
-//		t.SetAnchor("ue")
-//		t.Insert(collate.Secondary, "Ã¼","")
-// or
-//		t.SetAnchor("u")
-//		t.Insert(collate.Secondary, "Ã¼", "e")
-// Order "q" afer "ab" at the secondary level and "Q" after "q"
-// at the tertiary level:
-// 		t.SetAnchor("ab")
-// 		t.Insert(collate.Secondary, "q", "")
-// 		t.Insert(collate.Tertiary, "Q", "")
-// Order "b" before "a":
-//      t.SetAnchorBefore("a")
-//      t.Insert(collate.Primary, "b", "")
-// Order "0" after the last primary ignorable:
-//      t.SetAnchor("<last_primary_ignorable/>")
-//      t.Insert(collate.Primary, "0", "")
-func (t *Tailoring) Insert(level collate.Level, str, extend string) error {
-	if t.anchor == nil {
-		return fmt.Errorf("%s:Insert: no anchor point set for tailoring of %s", t.id, str)
-	}
-	str = norm.NFC.String(str)
-	e := t.index.find(str)
-	if e == nil {
-		e = t.index.newEntry(str, nil)
-	} else if e.logical != noAnchor {
-		return fmt.Errorf("%s:Insert: cannot reinsert logical reset position %q", t.id, e.str)
-	}
-	if e.lock {
-		return fmt.Errorf("%s:Insert: cannot reinsert element %q", t.id, e.str)
-	}
-	a := t.anchor
-	// Find the first element after the anchor which differs at a level smaller or
-	// equal to the given level.  Then insert at this position.
-	// See http://unicode.org/reports/tr35/#Collation_Elements, Section 5.14.5 for details.
-	e.before = t.before
-	if t.before {
-		t.before = false
-		if a.prev == nil {
-			a.insertBefore(e)
-		} else {
-			for a = a.prev; a.level > level; a = a.prev {
-			}
-			a.insertAfter(e)
-		}
-		e.level = level
-	} else {
-		for ; a.level > level; a = a.next {
-		}
-		e.level = a.level
-		if a != e {
-			a.insertAfter(e)
-			a.level = level
-		} else {
-			// We don't set a to prev itself. This has the effect of the entry
-			// getting new collation elements that are an increment of itself.
-			// This is intentional.
-			a.prev.level = level
-		}
-	}
-	e.extend = norm.NFD.String(extend)
-	e.exclude = false
-	e.modified = true
-	e.elems = nil
-	t.anchor = e
-	return nil
-}
-
-func (o *ordering) getWeight(e *entry) []rawCE {
-	if len(e.elems) == 0 && e.logical == noAnchor {
-		if e.implicit {
-			for _, r := range e.runes {
-				e.elems = append(e.elems, o.getWeight(o.find(string(r)))...)
-			}
-		} else if e.before {
-			count := [collate.Identity + 1]int{}
-			a := e
-			for ; a.elems == nil && !a.implicit; a = a.next {
-				count[a.level]++
-			}
-			e.elems = []rawCE{makeRawCE(a.elems[0].w, a.elems[0].ccc)}
-			for i := collate.Primary; i < collate.Quaternary; i++ {
-				if count[i] != 0 {
-					e.elems[0].w[i] -= count[i]
-					break
-				}
-			}
-			if e.prev != nil {
-				o.verifyWeights(e.prev, e, e.prev.level)
-			}
-		} else {
-			prev := e.prev
-			e.elems = nextWeight(prev.level, o.getWeight(prev))
-			o.verifyWeights(e, e.next, e.level)
-		}
-	}
-	return e.elems
-}
-
-func (o *ordering) addExtension(e *entry) {
-	if ex := o.find(e.extend); ex != nil {
-		e.elems = append(e.elems, ex.elems...)
-	} else {
-		for _, r := range []rune(e.extend) {
-			e.elems = append(e.elems, o.find(string(r)).elems...)
-		}
-	}
-	e.extend = ""
-}
-
-func (o *ordering) verifyWeights(a, b *entry, level collate.Level) error {
-	if level == collate.Identity || b == nil || b.elems == nil || a.elems == nil {
-		return nil
-	}
-	for i := collate.Primary; i < level; i++ {
-		if a.elems[0].w[i] < b.elems[0].w[i] {
-			return nil
-		}
-	}
-	if a.elems[0].w[level] >= b.elems[0].w[level] {
-		err := fmt.Errorf("%s:overflow: collation elements of %q (%X) overflows those of %q (%X) at level %d (%X >= %X)", o.id, a.str, a.runes, b.str, b.runes, level, a.elems, b.elems)
-		log.Println(err)
-		// TODO: return the error instead, or better, fix the conflicting entry by making room.
-	}
-	return nil
-}
-
-func (b *Builder) error(e error) {
-	if e != nil {
-		b.err = e
-	}
-}
-
-func (b *Builder) errorID(locale string, e error) {
-	if e != nil {
-		b.err = fmt.Errorf("%s:%v", locale, e)
-	}
-}
-
-// patchNorm ensures that NFC and NFD counterparts are consistent.
-func (o *ordering) patchNorm() {
-	// Insert the NFD counterparts, if necessary.
-	for _, e := range o.ordered {
-		nfd := norm.NFD.String(e.str)
-		if nfd != e.str {
-			if e0 := o.find(nfd); e0 != nil && !e0.modified {
-				e0.elems = e.elems
-			} else if e.modified && !equalCEArrays(o.genColElems(nfd), e.elems) {
-				e := o.newEntry(nfd, e.elems)
-				e.modified = true
-			}
-		}
-	}
-	// Update unchanged composed forms if one of their parts changed.
-	for _, e := range o.ordered {
-		nfd := norm.NFD.String(e.str)
-		if e.modified || nfd == e.str {
-			continue
-		}
-		if e0 := o.find(nfd); e0 != nil {
-			e.elems = e0.elems
-		} else {
-			e.elems = o.genColElems(nfd)
-			if norm.NFD.LastBoundary([]byte(nfd)) == 0 {
-				r := []rune(nfd)
-				head := string(r[0])
-				tail := ""
-				for i := 1; i < len(r); i++ {
-					s := norm.NFC.String(head + string(r[i]))
-					if e0 := o.find(s); e0 != nil && e0.modified {
-						head = s
-					} else {
-						tail += string(r[i])
-					}
-				}
-				e.elems = append(o.genColElems(head), o.genColElems(tail)...)
-			}
-		}
-	}
-	// Exclude entries for which the individual runes generate the same collation elements.
-	for _, e := range o.ordered {
-		if len(e.runes) > 1 && equalCEArrays(o.genColElems(e.str), e.elems) {
-			e.exclude = true
-		}
-	}
-}
-
-func (b *Builder) buildOrdering(o *ordering) {
-	for _, e := range o.ordered {
-		o.getWeight(e)
-	}
-	for _, e := range o.ordered {
-		o.addExtension(e)
-	}
-	o.patchNorm()
-	o.sort()
-	simplify(o)
-	b.processExpansions(o)   // requires simplify
-	b.processContractions(o) // requires simplify
-
-	t := newNode()
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.skip() {
-			ce, err := e.encode()
-			b.errorID(o.id, err)
-			t.insert(e.runes[0], ce)
-		}
-	}
-	o.handle = b.index.addTrie(t)
-}
-
-func (b *Builder) build() (*table, error) {
-	if b.built {
-		return b.t, b.err
-	}
-	b.built = true
-	b.t = &table{
-		maxContractLen: utf8.UTFMax,
-		variableTop:    uint32(b.varTop),
-	}
-
-	b.buildOrdering(&b.root)
-	b.t.root = b.root.handle
-	for _, t := range b.locale {
-		b.buildOrdering(t.index)
-		if b.err != nil {
-			break
-		}
-	}
-	i, err := b.index.generate()
-	b.t.index = *i
-	b.error(err)
-	return b.t, b.err
-}
-
-// Build builds the root Collator.
-func (b *Builder) Build() (*collate.Collator, error) {
-	t, err := b.build()
-	if err != nil {
-		return nil, err
-	}
-	table := collate.Init(t)
-	if table == nil {
-		panic("generated table of incompatible type")
-	}
-	return collate.NewFromTable(table), nil
-}
-
-// Build builds a Collator for Tailoring t.
-func (t *Tailoring) Build() (*collate.Collator, error) {
-	// TODO: implement.
-	return nil, nil
-}
-
-// Print prints the tables for b and all its Tailorings as a Go file
-// that can be included in the Collate package.
-func (b *Builder) Print(w io.Writer) (n int, err error) {
-	p := func(nn int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	t, err := b.build()
-	if err != nil {
-		return 0, err
-	}
-	p(fmt.Fprintf(w, "var availableLocales = []string{"))
-	for _, loc := range b.locale {
-		p(fmt.Fprintf(w, "%q, ", loc.id))
-	}
-	p(fmt.Fprintln(w, "}\n"))
-	p(fmt.Fprintln(w, "var locales = map[string]tableIndex{"))
-	for _, loc := range b.locale {
-		p(fmt.Fprintf(w, "\t%q: ", loc.id))
-		p(t.fprintIndex(w, loc.index.handle))
-		p(fmt.Fprintln(w, ","))
-	}
-	p(fmt.Fprint(w, "}\n\n"))
-	n, _, err = t.fprint(w, "main")
-	return
-}
-
-// reproducibleFromNFKD checks whether the given expansion could be generated
-// from an NFKD expansion.
-func reproducibleFromNFKD(e *entry, exp, nfkd []rawCE) bool {
-	// Length must be equal.
-	if len(exp) != len(nfkd) {
-		return false
-	}
-	for i, ce := range exp {
-		// Primary and secondary values should be equal.
-		if ce.w[0] != nfkd[i].w[0] || ce.w[1] != nfkd[i].w[1] {
-			return false
-		}
-		// Tertiary values should be equal to maxTertiary for third element onwards.
-		// TODO: there seem to be a lot of cases in CLDR (e.g. ã­ in zh.xml) that can
-		// simply be dropped.  Try this out by dropping the following code.
-		if i >= 2 && ce.w[2] != maxTertiary {
-			return false
-		}
-		if _, err := makeCE(ce); err != nil {
-			// Simply return false. The error will be caught elsewhere.
-			return false
-		}
-	}
-	return true
-}
-
-func simplify(o *ordering) {
-	// Runes that are a starter of a contraction should not be removed.
-	// (To date, there is only Kannada character 0CCA.)
-	keep := make(map[rune]bool)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if len(e.runes) > 1 {
-			keep[e.runes[0]] = true
-		}
-	}
-	// Tag entries for which the runes NFKD decompose to identical values.
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		s := e.str
-		nfkd := norm.NFKD.String(s)
-		nfd := norm.NFD.String(s)
-		if e.decompose || len(e.runes) > 1 || len(e.elems) == 1 || keep[e.runes[0]] || nfkd == nfd {
-			continue
-		}
-		if reproducibleFromNFKD(e, e.elems, o.genColElems(nfkd)) {
-			e.decompose = true
-		}
-	}
-}
-
-// appendExpansion converts the given collation sequence to
-// collation elements and adds them to the expansion table.
-// It returns an index to the expansion table.
-func (b *Builder) appendExpansion(e *entry) int {
-	t := b.t
-	i := len(t.expandElem)
-	ce := uint32(len(e.elems))
-	t.expandElem = append(t.expandElem, ce)
-	for _, w := range e.elems {
-		ce, err := makeCE(w)
-		if err != nil {
-			b.error(err)
-			return -1
-		}
-		t.expandElem = append(t.expandElem, ce)
-	}
-	return i
-}
-
-// processExpansions extracts data necessary to generate
-// the extraction tables.
-func (b *Builder) processExpansions(o *ordering) {
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.expansion() {
-			continue
-		}
-		key := fmt.Sprintf("%v", e.elems)
-		i, ok := b.expIndex[key]
-		if !ok {
-			i = b.appendExpansion(e)
-			b.expIndex[key] = i
-		}
-		e.expansionIndex = i
-	}
-}
-
-func (b *Builder) processContractions(o *ordering) {
-	// Collate contractions per starter rune.
-	starters := []rune{}
-	cm := make(map[rune][]*entry)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if e.contraction() {
-			if len(e.str) > b.t.maxContractLen {
-				b.t.maxContractLen = len(e.str)
-			}
-			r := e.runes[0]
-			if _, ok := cm[r]; !ok {
-				starters = append(starters, r)
-			}
-			cm[r] = append(cm[r], e)
-		}
-	}
-	// Add entries of single runes that are at a start of a contraction.
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.contraction() {
-			r := e.runes[0]
-			if _, ok := cm[r]; ok {
-				cm[r] = append(cm[r], e)
-			}
-		}
-	}
-	// Build the tries for the contractions.
-	t := b.t
-	for _, r := range starters {
-		l := cm[r]
-		// Compute suffix strings. There are 31 different contraction suffix
-		// sets for 715 contractions and 82 contraction starter runes as of
-		// version 6.0.0.
-		sufx := []string{}
-		hasSingle := false
-		for _, e := range l {
-			if len(e.runes) > 1 {
-				sufx = append(sufx, string(e.runes[1:]))
-			} else {
-				hasSingle = true
-			}
-		}
-		if !hasSingle {
-			b.error(fmt.Errorf("no single entry for starter rune %U found", r))
-			continue
-		}
-		// Unique the suffix set.
-		sort.Strings(sufx)
-		key := strings.Join(sufx, "\n")
-		handle, ok := b.ctHandle[key]
-		if !ok {
-			var err error
-			handle, err = t.contractTries.appendTrie(sufx)
-			if err != nil {
-				b.error(err)
-			}
-			b.ctHandle[key] = handle
-		}
-		// Bucket sort entries in index order.
-		es := make([]*entry, len(l))
-		for _, e := range l {
-			var p, sn int
-			if len(e.runes) > 1 {
-				str := []byte(string(e.runes[1:]))
-				p, sn = t.contractTries.lookup(handle, str)
-				if sn != len(str) {
-					log.Fatalf("%s: processContractions: unexpected length for '%X'; len=%d; want %d", o.id, e.runes, sn, len(str))
-				}
-			}
-			if es[p] != nil {
-				log.Fatalf("%s: multiple contractions for position %d for rune %U", o.id, p, e.runes[0])
-			}
-			es[p] = e
-		}
-		// Create collation elements for contractions.
-		elems := []uint32{}
-		for _, e := range es {
-			ce, err := e.encodeBase()
-			b.errorID(o.id, err)
-			elems = append(elems, ce)
-		}
-		key = fmt.Sprintf("%v", elems)
-		i, ok := b.ctElem[key]
-		if !ok {
-			i = len(t.contractElem)
-			b.ctElem[key] = i
-			t.contractElem = append(t.contractElem, elems...)
-		}
-		// Store info in entry for starter rune.
-		es[0].contractionIndex = i
-		es[0].contractionHandle = handle
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/builder_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/builder_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,290 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import "testing"
-
-// cjk returns an implicit collation element for a CJK rune.
-func cjk(r rune) []rawCE {
-	// A CJK character C is represented in the DUCET as
-	//   [.AAAA.0020.0002.C][.BBBB.0000.0000.C]
-	// Where AAAA is the most significant 15 bits plus a base value.
-	// Any base value will work for the test, so we pick the common value of FB40.
-	const base = 0xFB40
-	return []rawCE{
-		{w: []int{base + int(r>>15), defaultSecondary, defaultTertiary, int(r)}},
-		{w: []int{int(r&0x7FFF) | 0x8000, 0, 0, int(r)}},
-	}
-}
-
-func pCE(p int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, defaultTertiary, 0}, 0)
-}
-
-func pqCE(p, q int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, defaultTertiary, q}, 0)
-}
-
-func ptCE(p, t int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, t, 0}, 0)
-}
-
-func ptcCE(p, t int, ccc uint8) []rawCE {
-	return mkCE([]int{p, defaultSecondary, t, 0}, ccc)
-}
-
-func sCE(s int) []rawCE {
-	return mkCE([]int{0, s, defaultTertiary, 0}, 0)
-}
-
-func stCE(s, t int) []rawCE {
-	return mkCE([]int{0, s, t, 0}, 0)
-}
-
-func scCE(s int, ccc uint8) []rawCE {
-	return mkCE([]int{0, s, defaultTertiary, 0}, ccc)
-}
-
-func mkCE(w []int, ccc uint8) []rawCE {
-	return []rawCE{rawCE{w, ccc}}
-}
-
-// ducetElem is used to define test data that is used to generate a table.
-type ducetElem struct {
-	str string
-	ces []rawCE
-}
-
-func newBuilder(t *testing.T, ducet []ducetElem) *Builder {
-	b := NewBuilder()
-	for _, e := range ducet {
-		ces := [][]int{}
-		for _, ce := range e.ces {
-			ces = append(ces, ce.w)
-		}
-		if err := b.Add([]rune(e.str), ces, nil); err != nil {
-			t.Errorf(err.Error())
-		}
-	}
-	b.t = &table{}
-	b.root.sort()
-	return b
-}
-
-type convertTest struct {
-	in, out []rawCE
-	err     bool
-}
-
-var convLargeTests = []convertTest{
-	{pCE(0xFB39), pCE(0xFB39), false},
-	{cjk(0x2F9B2), pqCE(0x3F9B2, 0x2F9B2), false},
-	{pCE(0xFB40), pCE(0), true},
-	{append(pCE(0xFB40), pCE(0)[0]), pCE(0), true},
-	{pCE(0xFFFE), pCE(illegalOffset), false},
-	{pCE(0xFFFF), pCE(illegalOffset + 1), false},
-}
-
-func TestConvertLarge(t *testing.T) {
-	for i, tt := range convLargeTests {
-		e := new(entry)
-		for _, ce := range tt.in {
-			e.elems = append(e.elems, makeRawCE(ce.w, ce.ccc))
-		}
-		elems, err := convertLargeWeights(e.elems)
-		if tt.err {
-			if err == nil {
-				t.Errorf("%d: expected error; none found", i)
-			}
-			continue
-		} else if err != nil {
-			t.Errorf("%d: unexpected error: %v", i, err)
-		}
-		if !equalCEArrays(elems, tt.out) {
-			t.Errorf("%d: conversion was %x; want %x", i, elems, tt.out)
-		}
-	}
-}
-
-// Collation element table for simplify tests.
-var simplifyTest = []ducetElem{
-	{"\u0300", sCE(30)}, // grave
-	{"\u030C", sCE(40)}, // caron
-	{"A", ptCE(100, 8)},
-	{"D", ptCE(104, 8)},
-	{"E", ptCE(105, 8)},
-	{"I", ptCE(110, 8)},
-	{"z", ptCE(130, 8)},
-	{"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0])},
-	{"\u05B7", sCE(80)},
-	{"\u00C0", append(ptCE(100, 8), sCE(30)...)},                                // A with grave, can be removed
-	{"\u00C8", append(ptCE(105, 8), sCE(30)...)},                                // E with grave
-	{"\uFB1F", append(ptCE(200, 4), ptCE(200, 4)[0], sCE(80)[0])},               // eliminated by NFD
-	{"\u00C8\u0302", ptCE(106, 8)},                                              // block previous from simplifying
-	{"\u01C5", append(ptCE(104, 9), ptCE(130, 4)[0], stCE(40, maxTertiary)[0])}, // eliminated by NFKD
-	// no removal: tertiary value of third element is not maxTertiary
-	{"\u2162", append(ptCE(110, 9), ptCE(110, 4)[0], ptCE(110, 8)[0])},
-}
-
-var genColTests = []ducetElem{
-	{"\uFA70", pqCE(0x1FA70, 0xFA70)},
-	{"A\u0300", append(ptCE(100, 8), sCE(30)...)},
-	{"A\u0300\uFA70", append(ptCE(100, 8), sCE(30)[0], pqCE(0x1FA70, 0xFA70)[0])},
-	{"A\u0300A\u0300", append(ptCE(100, 8), sCE(30)[0], ptCE(100, 8)[0], sCE(30)[0])},
-}
-
-func TestGenColElems(t *testing.T) {
-	b := newBuilder(t, simplifyTest[:5])
-
-	for i, tt := range genColTests {
-		res := b.root.genColElems(tt.str)
-		if !equalCEArrays(tt.ces, res) {
-			t.Errorf("%d: result %X; want %X", i, res, tt.ces)
-		}
-	}
-}
-
-type strArray []string
-
-func (sa strArray) contains(s string) bool {
-	for _, e := range sa {
-		if e == s {
-			return true
-		}
-	}
-	return false
-}
-
-var simplifyRemoved = strArray{"\u00C0", "\uFB1F"}
-var simplifyMarked = strArray{"\u01C5"}
-
-func TestSimplify(t *testing.T) {
-	b := newBuilder(t, simplifyTest)
-	o := &b.root
-	simplify(o)
-
-	for i, tt := range simplifyTest {
-		if simplifyRemoved.contains(tt.str) {
-			continue
-		}
-		e := o.find(tt.str)
-		if e.str != tt.str || !equalCEArrays(e.elems, tt.ces) {
-			t.Errorf("%d: found element %s -> %X; want %s -> %X", i, e.str, e.elems, tt.str, tt.ces)
-			break
-		}
-	}
-	var i, k int
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		gold := simplifyMarked.contains(e.str)
-		if gold {
-			k++
-		}
-		if gold != e.decompose {
-			t.Errorf("%d: %s has decompose %v; want %v", i, e.str, e.decompose, gold)
-		}
-		i++
-	}
-	if k != len(simplifyMarked) {
-		t.Errorf(" an entry that should be marked as decompose was deleted")
-	}
-}
-
-var expandTest = []ducetElem{
-	{"\u0300", append(scCE(29, 230), scCE(30, 230)...)},
-	{"\u00C0", append(ptCE(100, 8), scCE(30, 230)...)},
-	{"\u00C8", append(ptCE(105, 8), scCE(30, 230)...)},
-	{"\u00C9", append(ptCE(105, 8), scCE(30, 230)...)}, // identical expansion
-	{"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0], ptCE(200, 4)[0])},
-	{"\u01FF", append(ptCE(200, 4), ptcCE(201, 4, 0)[0], scCE(30, 230)[0])},
-}
-
-func TestExpand(t *testing.T) {
-	const (
-		totalExpansions = 5
-		totalElements   = 2 + 2 + 2 + 3 + 3 + totalExpansions
-	)
-	b := newBuilder(t, expandTest)
-	o := &b.root
-	b.processExpansions(o)
-
-	e := o.front()
-	for _, tt := range expandTest {
-		exp := b.t.expandElem[e.expansionIndex:]
-		if int(exp[0]) != len(tt.ces) {
-			t.Errorf("%U: len(expansion)==%d; want %d", []rune(tt.str)[0], exp[0], len(tt.ces))
-		}
-		exp = exp[1:]
-		for j, w := range tt.ces {
-			if ce, _ := makeCE(w); exp[j] != ce {
-				t.Errorf("%U: element %d is %X; want %X", []rune(tt.str)[0], j, exp[j], ce)
-			}
-		}
-		e, _ = e.nextIndexed()
-	}
-	// Verify uniquing.
-	if len(b.t.expandElem) != totalElements {
-		t.Errorf("len(expandElem)==%d; want %d", len(b.t.expandElem), totalElements)
-	}
-}
-
-var contractTest = []ducetElem{
-	{"abc", pCE(102)},
-	{"abd", pCE(103)},
-	{"a", pCE(100)},
-	{"ab", pCE(101)},
-	{"ac", pCE(104)},
-	{"bcd", pCE(202)},
-	{"b", pCE(200)},
-	{"bc", pCE(201)},
-	{"bd", pCE(203)},
-	// shares suffixes with a*
-	{"Ab", pCE(301)},
-	{"A", pCE(300)},
-	{"Ac", pCE(304)},
-	{"Abc", pCE(302)},
-	{"Abd", pCE(303)},
-	// starter to be ignored
-	{"z", pCE(1000)},
-}
-
-func TestContract(t *testing.T) {
-	const (
-		totalElements = 5 + 5 + 4
-	)
-	b := newBuilder(t, contractTest)
-	o := &b.root
-	b.processContractions(o)
-
-	indexMap := make(map[int]bool)
-	handleMap := make(map[rune]*entry)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if e.contractionHandle.n > 0 {
-			handleMap[e.runes[0]] = e
-			indexMap[e.contractionHandle.index] = true
-		}
-	}
-	// Verify uniquing.
-	if len(indexMap) != 2 {
-		t.Errorf("number of tries is %d; want %d", len(indexMap), 2)
-	}
-	for _, tt := range contractTest {
-		e, ok := handleMap[[]rune(tt.str)[0]]
-		if !ok {
-			continue
-		}
-		str := tt.str[1:]
-		offset, n := b.t.contractTries.lookup(e.contractionHandle, []byte(str))
-		if len(str) != n {
-			t.Errorf("%s: bytes consumed==%d; want %d", tt.str, n, len(str))
-		}
-		ce := b.t.contractElem[offset+e.contractionIndex]
-		if want, _ := makeCE(tt.ces[0]); want != ce {
-			t.Errorf("%s: element %X; want %X", tt.str, ce, want)
-		}
-	}
-	if len(b.t.contractElem) != totalElements {
-		t.Errorf("len(expandElem)==%d; want %d", len(b.t.contractElem), totalElements)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem.go gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,365 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"fmt"
-	"unicode"
-)
-
-const (
-	defaultSecondary = 0x20
-	defaultTertiary  = 0x2
-	maxTertiary      = 0x1F
-)
-
-type rawCE struct {
-	w   []int
-	ccc uint8
-}
-
-func makeRawCE(w []int, ccc uint8) rawCE {
-	ce := rawCE{w: make([]int, 4), ccc: ccc}
-	copy(ce.w, w)
-	return ce
-}
-
-// A collation element is represented as an uint32.
-// In the typical case, a rune maps to a single collation element. If a rune
-// can be the start of a contraction or expands into multiple collation elements,
-// then the collation element that is associated with a rune will have a special
-// form to represent such m to n mappings.  Such special collation elements
-// have a value >= 0x80000000.
-
-// For normal collation elements, we assume that a collation element either has
-// a primary or non-default secondary value, not both.
-// Collation elements with a primary value are of the form
-// 01pppppp pppppppp ppppppp0 ssssssss
-//   - p* is primary collation value
-//   - s* is the secondary collation value
-// 00pppppp pppppppp ppppppps sssttttt, where
-//   - p* is primary collation value
-//   - s* offset of secondary from default value.
-//   - t* is the tertiary collation value
-// 100ttttt cccccccc pppppppp pppppppp
-//   - t* is the tertiar collation value
-//   - c* is the cannonical combining class
-//   - p* is the primary collation value
-// Collation elements with a secondary value are of the form
-// 1010cccc ccccssss ssssssss tttttttt, where
-//   - c* is the canonical combining class
-//   - s* is the secondary collation value
-//   - t* is the tertiary collation value
-const (
-	maxPrimaryBits          = 21
-	maxPrimaryCompactBits   = 16
-	maxSecondaryBits        = 12
-	maxSecondaryCompactBits = 8
-	maxCCCBits              = 8
-	maxSecondaryDiffBits    = 4
-	maxTertiaryBits         = 8
-	maxTertiaryCompactBits  = 5
-
-	isPrimary    = 0x40000000
-	isPrimaryCCC = 0x80000000
-	isSecondary  = 0xA0000000
-)
-
-func makeCE(rce rawCE) (uint32, error) {
-	weights := rce.w
-	if w := weights[0]; w >= 1<<maxPrimaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: primary weight out of bounds: %x >= %x", w, 1<<maxPrimaryBits)
-	}
-	if w := weights[1]; w >= 1<<maxSecondaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: secondary weight out of bounds: %x >= %x", w, 1<<maxSecondaryBits)
-	}
-	if w := weights[2]; w >= 1<<maxTertiaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: tertiary weight out of bounds: %x >= %x", w, 1<<maxTertiaryBits)
-	}
-	ce := uint32(0)
-	if weights[0] != 0 {
-		if rce.ccc != 0 {
-			if weights[0] >= 1<<maxPrimaryCompactBits {
-				return 0, fmt.Errorf("makeCE: primary weight with non-zero CCC out of bounds: %x >= %x", weights[0], 1<<maxPrimaryCompactBits)
-			}
-			if weights[1] != defaultSecondary {
-				return 0, fmt.Errorf("makeCE: cannot combine non-default secondary value (%x) with non-zero CCC (%x)", weights[1], rce.ccc)
-			}
-			ce = uint32(weights[2] << (maxPrimaryCompactBits + maxCCCBits))
-			ce |= uint32(rce.ccc) << maxPrimaryCompactBits
-			ce |= uint32(weights[0])
-			ce |= isPrimaryCCC
-		} else if weights[2] == defaultTertiary {
-			if weights[1] >= 1<<maxSecondaryCompactBits {
-				return 0, fmt.Errorf("makeCE: secondary weight with non-zero primary out of bounds: %x >= %x", weights[1], 1<<maxSecondaryCompactBits)
-			}
-			ce = uint32(weights[0]<<(maxSecondaryCompactBits+1) + weights[1])
-			ce |= isPrimary
-		} else {
-			d := weights[1] - defaultSecondary + maxSecondaryDiffBits
-			if d >= 1<<maxSecondaryDiffBits || d < 0 {
-				return 0, fmt.Errorf("makeCE: secondary weight diff out of bounds: %x < 0 || %x > %x", d, d, 1<<maxSecondaryDiffBits)
-			}
-			if weights[2] >= 1<<maxTertiaryCompactBits {
-				return 0, fmt.Errorf("makeCE: tertiary weight with non-zero primary out of bounds: %x > %x (%X)", weights[2], 1<<maxTertiaryCompactBits, weights)
-			}
-			ce = uint32(weights[0]<<maxSecondaryDiffBits + d)
-			ce = ce<<maxTertiaryCompactBits + uint32(weights[2])
-		}
-	} else {
-		ce = uint32(weights[1]<<maxTertiaryBits + weights[2])
-		ce += uint32(rce.ccc) << (maxSecondaryBits + maxTertiaryBits)
-		ce |= isSecondary
-	}
-	return ce, nil
-}
-
-// For contractions, collation elements are of the form
-// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where
-//   - n* is the size of the first node in the contraction trie.
-//   - i* is the index of the first node in the contraction trie.
-//   - b* is the offset into the contraction collation element table.
-// See contract.go for details on the contraction trie.
-const (
-	contractID            = 0xC0000000
-	maxNBits              = 4
-	maxTrieIndexBits      = 12
-	maxContractOffsetBits = 13
-)
-
-func makeContractIndex(h ctHandle, offset int) (uint32, error) {
-	if h.n >= 1<<maxNBits {
-		return 0, fmt.Errorf("size of contraction trie node too large: %d >= %d", h.n, 1<<maxNBits)
-	}
-	if h.index >= 1<<maxTrieIndexBits {
-		return 0, fmt.Errorf("size of contraction trie offset too large: %d >= %d", h.index, 1<<maxTrieIndexBits)
-	}
-	if offset >= 1<<maxContractOffsetBits {
-		return 0, fmt.Errorf("contraction offset out of bounds: %x >= %x", offset, 1<<maxContractOffsetBits)
-	}
-	ce := uint32(contractID)
-	ce += uint32(offset << (maxNBits + maxTrieIndexBits))
-	ce += uint32(h.index << maxNBits)
-	ce += uint32(h.n)
-	return ce, nil
-}
-
-// For expansions, collation elements are of the form
-// 11100000 00000000 bbbbbbbb bbbbbbbb,
-// where b* is the index into the expansion sequence table.
-const (
-	expandID           = 0xE0000000
-	maxExpandIndexBits = 16
-)
-
-func makeExpandIndex(index int) (uint32, error) {
-	if index >= 1<<maxExpandIndexBits {
-		return 0, fmt.Errorf("expansion index out of bounds: %x >= %x", index, 1<<maxExpandIndexBits)
-	}
-	return expandID + uint32(index), nil
-}
-
-// Each list of collation elements corresponding to an expansion starts with
-// a header indicating the length of the sequence.
-func makeExpansionHeader(n int) (uint32, error) {
-	return uint32(n), nil
-}
-
-// Some runes can be expanded using NFKD decomposition. Instead of storing the full
-// sequence of collation elements, we decompose the rune and lookup the collation
-// elements for each rune in the decomposition and modify the tertiary weights.
-// The collation element, in this case, is of the form
-// 11110000 00000000 wwwwwwww vvvvvvvv, where
-//   - v* is the replacement tertiary weight for the first rune,
-//   - w* is the replacement tertiary weight for the second rune,
-// Tertiary weights of subsequent runes should be replaced with maxTertiary.
-// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details.
-const (
-	decompID = 0xF0000000
-)
-
-func makeDecompose(t1, t2 int) (uint32, error) {
-	if t1 >= 256 || t1 < 0 {
-		return 0, fmt.Errorf("first tertiary weight out of bounds: %d >= 256", t1)
-	}
-	if t2 >= 256 || t2 < 0 {
-		return 0, fmt.Errorf("second tertiary weight out of bounds: %d >= 256", t2)
-	}
-	return uint32(t2<<8+t1) + decompID, nil
-}
-
-const (
-	// These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf.
-	minUnified       rune = 0x4E00
-	maxUnified            = 0x9FFF
-	minCompatibility      = 0xF900
-	maxCompatibility      = 0xFAFF
-	minRare               = 0x3400
-	maxRare               = 0x4DBF
-)
-const (
-	commonUnifiedOffset = 0x10000
-	rareUnifiedOffset   = 0x20000 // largest rune in common is U+FAFF
-	otherOffset         = 0x50000 // largest rune in rare is U+2FA1D
-	illegalOffset       = otherOffset + int(unicode.MaxRune)
-	maxPrimary          = illegalOffset + 1
-)
-
-// implicitPrimary returns the primary weight for the a rune
-// for which there is no entry for the rune in the collation table.
-// We take a different approach from the one specified in
-// http://unicode.org/reports/tr10/#Implicit_Weights,
-// but preserve the resulting relative ordering of the runes.
-func implicitPrimary(r rune) int {
-	if unicode.Is(unicode.Ideographic, r) {
-		if r >= minUnified && r <= maxUnified {
-			// The most common case for CJK.
-			return int(r) + commonUnifiedOffset
-		}
-		if r >= minCompatibility && r <= maxCompatibility {
-			// This will typically not hit. The DUCET explicitly specifies mappings
-			// for all characters that do not decompose.
-			return int(r) + commonUnifiedOffset
-		}
-		return int(r) + rareUnifiedOffset
-	}
-	return int(r) + otherOffset
-}
-
-// convertLargeWeights converts collation elements with large
-// primaries (either double primaries or for illegal runes)
-// to our own representation.
-// A CJK character C is represented in the DUCET as
-//   [.FBxx.0020.0002.C][.BBBB.0000.0000.C]
-// We will rewrite these characters to a single CE.
-// We assume the CJK values start at 0x8000.
-// See http://unicode.org/reports/tr10/#Implicit_Weights
-func convertLargeWeights(elems []rawCE) (res []rawCE, err error) {
-	const (
-		cjkPrimaryStart   = 0xFB40
-		rarePrimaryStart  = 0xFB80
-		otherPrimaryStart = 0xFBC0
-		illegalPrimary    = 0xFFFE
-		highBitsMask      = 0x3F
-		lowBitsMask       = 0x7FFF
-		lowBitsFlag       = 0x8000
-		shiftBits         = 15
-	)
-	for i := 0; i < len(elems); i++ {
-		ce := elems[i].w
-		p := ce[0]
-		if p < cjkPrimaryStart {
-			continue
-		}
-		if p > 0xFFFF {
-			return elems, fmt.Errorf("found primary weight %X; should be <= 0xFFFF", p)
-		}
-		if p >= illegalPrimary {
-			ce[0] = illegalOffset + p - illegalPrimary
-		} else {
-			if i+1 >= len(elems) {
-				return elems, fmt.Errorf("second part of double primary weight missing: %v", elems)
-			}
-			if elems[i+1].w[0]&lowBitsFlag == 0 {
-				return elems, fmt.Errorf("malformed second part of double primary weight: %v", elems)
-			}
-			np := ((p & highBitsMask) << shiftBits) + elems[i+1].w[0]&lowBitsMask
-			switch {
-			case p < rarePrimaryStart:
-				np += commonUnifiedOffset
-			case p < otherPrimaryStart:
-				np += rareUnifiedOffset
-			default:
-				p += otherOffset
-			}
-			ce[0] = np
-			for j := i + 1; j+1 < len(elems); j++ {
-				elems[j] = elems[j+1]
-			}
-			elems = elems[:len(elems)-1]
-		}
-	}
-	return elems, nil
-}
-
-// nextWeight computes the first possible collation weights following elems
-// for the given level.
-func nextWeight(level collate.Level, elems []rawCE) []rawCE {
-	if level == collate.Identity {
-		next := make([]rawCE, len(elems))
-		copy(next, elems)
-		return next
-	}
-	next := []rawCE{makeRawCE(elems[0].w, elems[0].ccc)}
-	next[0].w[level]++
-	if level < collate.Secondary {
-		next[0].w[collate.Secondary] = defaultSecondary
-	}
-	if level < collate.Tertiary {
-		next[0].w[collate.Tertiary] = defaultTertiary
-	}
-	// Filter entries that cannot influence ordering.
-	for _, ce := range elems[1:] {
-		skip := true
-		for i := collate.Primary; i < level; i++ {
-			skip = skip && ce.w[i] == 0
-		}
-		if !skip {
-			next = append(next, ce)
-		}
-	}
-	return next
-}
-
-func nextVal(elems []rawCE, i int, level collate.Level) (index, value int) {
-	for ; i < len(elems) && elems[i].w[level] == 0; i++ {
-	}
-	if i < len(elems) {
-		return i, elems[i].w[level]
-	}
-	return i, 0
-}
-
-// compareWeights returns -1 if a < b, 1 if a > b, or 0 otherwise.
-// It also returns the collation level at which the difference is found.
-func compareWeights(a, b []rawCE) (result int, level collate.Level) {
-	for level := collate.Primary; level < collate.Identity; level++ {
-		var va, vb int
-		for ia, ib := 0, 0; ia < len(a) || ib < len(b); ia, ib = ia+1, ib+1 {
-			ia, va = nextVal(a, ia, level)
-			ib, vb = nextVal(b, ib, level)
-			if va != vb {
-				if va < vb {
-					return -1, level
-				} else {
-					return 1, level
-				}
-			}
-		}
-	}
-	return 0, collate.Identity
-}
-
-func equalCE(a, b rawCE) bool {
-	for i := 0; i < 3; i++ {
-		if b.w[i] != a.w[i] {
-			return false
-		}
-	}
-	return true
-}
-
-func equalCEArrays(a, b []rawCE) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	for i := range a {
-		if !equalCE(a[i], b[i]) {
-			return false
-		}
-	}
-	return true
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,214 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"testing"
-)
-
-type ceTest struct {
-	f   func(in []int) (uint32, error)
-	arg []int
-	val uint32
-}
-
-func normalCE(in []int) (ce uint32, err error) {
-	return makeCE(rawCE{w: in[:3], ccc: uint8(in[3])})
-}
-
-func expandCE(in []int) (ce uint32, err error) {
-	return makeExpandIndex(in[0])
-}
-
-func contractCE(in []int) (ce uint32, err error) {
-	return makeContractIndex(ctHandle{in[0], in[1]}, in[2])
-}
-
-func decompCE(in []int) (ce uint32, err error) {
-	return makeDecompose(in[0], in[1])
-}
-
-var ceTests = []ceTest{
-	{normalCE, []int{0, 0, 0, 0}, 0xA0000000},
-	{normalCE, []int{0, 0x28, 3, 0}, 0xA0002803},
-	{normalCE, []int{0, 0x28, 3, 0xFF}, 0xAFF02803},
-	{normalCE, []int{100, defaultSecondary, 3, 0}, 0x0000C883},
-	// non-ignorable primary with non-default secondary
-	{normalCE, []int{100, 0x28, defaultTertiary, 0}, 0x4000C828},
-	{normalCE, []int{100, defaultSecondary + 8, 3, 0}, 0x0000C983},
-	{normalCE, []int{100, 0, 3, 0}, 0xFFFF}, // non-ignorable primary with non-supported secondary
-	{normalCE, []int{100, 1, 3, 0}, 0xFFFF},
-	{normalCE, []int{1 << maxPrimaryBits, defaultSecondary, 0, 0}, 0xFFFF},
-	{normalCE, []int{0, 1 << maxSecondaryBits, 0, 0}, 0xFFFF},
-	{normalCE, []int{100, defaultSecondary, 1 << maxTertiaryBits, 0}, 0xFFFF},
-	{normalCE, []int{0x123, defaultSecondary, 8, 0xFF}, 0x88FF0123},
-	{normalCE, []int{0x123, defaultSecondary + 1, 8, 0xFF}, 0xFFFF},
-
-	{contractCE, []int{0, 0, 0}, 0xC0000000},
-	{contractCE, []int{1, 1, 1}, 0xC0010011},
-	{contractCE, []int{1, (1 << maxNBits) - 1, 1}, 0xC001001F},
-	{contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}, 0xC001FFF1},
-	{contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}, 0xDFFF0011},
-	{contractCE, []int{1, (1 << maxNBits), 1}, 0xFFFF},
-	{contractCE, []int{(1 << maxTrieIndexBits), 1, 1}, 0xFFFF},
-	{contractCE, []int{1, (1 << maxContractOffsetBits), 1}, 0xFFFF},
-
-	{expandCE, []int{0}, 0xE0000000},
-	{expandCE, []int{5}, 0xE0000005},
-	{expandCE, []int{(1 << maxExpandIndexBits) - 1}, 0xE000FFFF},
-	{expandCE, []int{1 << maxExpandIndexBits}, 0xFFFF},
-
-	{decompCE, []int{0, 0}, 0xF0000000},
-	{decompCE, []int{1, 1}, 0xF0000101},
-	{decompCE, []int{0x1F, 0x1F}, 0xF0001F1F},
-	{decompCE, []int{256, 0x1F}, 0xFFFF},
-	{decompCE, []int{0x1F, 256}, 0xFFFF},
-}
-
-func TestColElem(t *testing.T) {
-	for i, tt := range ceTests {
-		in := make([]int, len(tt.arg))
-		copy(in, tt.arg)
-		ce, err := tt.f(in)
-		if tt.val == 0xFFFF {
-			if err == nil {
-				t.Errorf("%d: expected error for args %x", i, tt.arg)
-			}
-			continue
-		}
-		if err != nil {
-			t.Errorf("%d: unexpected error: %v", i, err.Error())
-		}
-		if ce != tt.val {
-			t.Errorf("%d: colElem=%X; want %X", i, ce, tt.val)
-		}
-	}
-}
-
-func mkRawCES(in [][]int) []rawCE {
-	out := []rawCE{}
-	for _, w := range in {
-		out = append(out, rawCE{w: w})
-	}
-	return out
-}
-
-type weightsTest struct {
-	a, b   [][]int
-	level  collate.Level
-	result int
-}
-
-var nextWeightTests = []weightsTest{
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{101, defaultSecondary, defaultTertiary, 0}},
-		level: collate.Primary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 21, defaultTertiary, 0}},
-		level: collate.Secondary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 20, 6, 0}},
-		level: collate.Tertiary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 20, 5, 0}},
-		level: collate.Identity,
-	},
-}
-
-var extra = [][]int{{200, 32, 8, 0}, {0, 32, 8, 0}, {0, 0, 8, 0}, {0, 0, 0, 0}}
-
-func TestNextWeight(t *testing.T) {
-	for i, tt := range nextWeightTests {
-		test := func(l collate.Level, tt weightsTest, a, gold [][]int) {
-			res := nextWeight(tt.level, mkRawCES(a))
-			if !equalCEArrays(mkRawCES(gold), res) {
-				t.Errorf("%d:%d: expected weights %d; found %d", i, l, gold, res)
-			}
-		}
-		test(-1, tt, tt.a, tt.b)
-		for l := collate.Primary; l <= collate.Tertiary; l++ {
-			if tt.level <= l {
-				test(l, tt, append(tt.a, extra[l]), tt.b)
-			} else {
-				test(l, tt, append(tt.a, extra[l]), append(tt.b, extra[l]))
-			}
-		}
-	}
-}
-
-var compareTests = []weightsTest{
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 20, 5, 0}},
-		collate.Identity,
-		0,
-	},
-	{
-		[][]int{{100, 20, 5, 0}, extra[0]},
-		[][]int{{100, 20, 5, 1}},
-		collate.Primary,
-		1,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{101, 20, 5, 0}},
-		collate.Primary,
-		-1,
-	},
-	{
-		[][]int{{101, 20, 5, 0}},
-		[][]int{{100, 20, 5, 0}},
-		collate.Primary,
-		1,
-	},
-	{
-		[][]int{{100, 0, 0, 0}, {0, 20, 5, 0}},
-		[][]int{{0, 20, 5, 0}, {100, 0, 0, 0}},
-		collate.Identity,
-		0,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 21, 5, 0}},
-		collate.Secondary,
-		-1,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 20, 2, 0}},
-		collate.Tertiary,
-		1,
-	},
-	{
-		[][]int{{100, 20, 5, 1}},
-		[][]int{{100, 20, 5, 2}},
-		collate.Quaternary,
-		-1,
-	},
-}
-
-func TestCompareWeights(t *testing.T) {
-	for i, tt := range compareTests {
-		test := func(tt weightsTest, a, b [][]int) {
-			res, level := compareWeights(mkRawCES(a), mkRawCES(b))
-			if res != tt.result {
-				t.Errorf("%d: expected comparisson result %d; found %d", i, tt.result, res)
-			}
-			if level != tt.level {
-				t.Errorf("%d: expected level %d; found %d", i, tt.level, level)
-			}
-		}
-		test(tt, tt.a, tt.b)
-		test(tt, append(tt.a, extra[0]), append(tt.b, extra[0]))
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract.go gcc-4.8.1/libgo/go/exp/locale/collate/build/contract.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/contract.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,307 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"fmt"
-	"io"
-	"reflect"
-	"sort"
-	"strings"
-)
-
-// This file contains code for detecting contractions and generating
-// the necessary tables.
-// Any Unicode Collation Algorithm (UCA) table entry that has more than
-// one rune one the left-hand side is called a contraction.
-// See http://www.unicode.org/reports/tr10/#Contractions for more details.
-//
-// We define the following terms:
-//   initial:     a rune that appears as the first rune in a contraction.
-//   suffix:      a sequence of runes succeeding the initial rune
-//                in a given contraction.
-//   non-initial: a rune that appears in a suffix.
-//
-// A rune may be both a initial and a non-initial and may be so in
-// many contractions.  An initial may typically also appear by itself.
-// In case of ambiguities, the UCA requires we match the longest
-// contraction.
-//
-// Many contraction rules share the same set of possible suffixes.
-// We store sets of suffixes in a trie that associates an index with
-// each suffix in the set.  This index can be used to look up a
-// collation element associated with the (starter rune, suffix) pair.
-//
-// The trie is defined on a UTF-8 byte sequence.
-// The overall trie is represented as an array of ctEntries.  Each node of the trie
-// is represented as a subsequence of ctEntries, where each entry corresponds to
-// a possible match of a next character in the search string.  An entry
-// also includes the length and offset to the next sequence of entries
-// to check in case of a match.
-
-const (
-	final   = 0
-	noIndex = 0xFF
-)
-
-// ctEntry associates to a matching byte an offset and/or next sequence of
-// bytes to check. A ctEntry c is called final if a match means that the
-// longest suffix has been found.  An entry c is final if c.n == 0.
-// A single final entry can match a range of characters to an offset.
-// A non-final entry always matches a single byte. Note that a non-final
-// entry might still resemble a completed suffix.
-// Examples:
-// The suffix strings "ab" and "ac" can be represented as:
-// []ctEntry{
-//     {'a', 1, 1, noIndex},  // 'a' by itself does not match, so i is 0xFF.
-//     {'b', 'c', 0, 1},   // "ab" -> 1, "ac" -> 2
-// }
-//
-// The suffix strings "ab", "abc", "abd", and "abcd" can be represented as:
-// []ctEntry{
-//     {'a', 1, 1, noIndex}, // 'a' must be followed by 'b'.
-//     {'b', 1, 2, 1},    // "ab" -> 1, may be followed by 'c' or 'd'.
-//     {'d', 'd', final, 3},  // "abd" -> 3
-//     {'c', 4, 1, 2},    // "abc" -> 2, may be followed by 'd'.
-//     {'d', 'd', final, 4},  // "abcd" -> 4
-// }
-// See genStateTests in contract_test.go for more examples.
-type ctEntry struct {
-	l uint8 // non-final: byte value to match; final: lowest match in range.
-	h uint8 // non-final: relative index to next block; final: highest match in range.
-	n uint8 // non-final: length of next block; final: final
-	i uint8 // result offset. Will be noIndex if more bytes are needed to complete.
-}
-
-// contractTrieSet holds a set of contraction tries. The tries are stored
-// consecutively in the entry field.
-type contractTrieSet []struct{ l, h, n, i uint8 }
-
-// ctHandle is used to identify a trie in the trie set, consisting in an offset
-// in the array and the size of the first node.
-type ctHandle struct {
-	index, n int
-}
-
-// appendTrie adds a new trie for the given suffixes to the trie set and returns
-// a handle to it.  The handle will be invalid on error.
-func (ct *contractTrieSet) appendTrie(suffixes []string) (ctHandle, error) {
-	es := make([]stridx, len(suffixes))
-	for i, s := range suffixes {
-		es[i].str = s
-	}
-	sort.Sort(offsetSort(es))
-	for i := range es {
-		es[i].index = i + 1
-	}
-	sort.Sort(genidxSort(es))
-	i := len(*ct)
-	n, err := ct.genStates(es)
-	if err != nil {
-		*ct = (*ct)[:i]
-		return ctHandle{}, err
-	}
-	return ctHandle{i, n}, nil
-}
-
-// genStates generates ctEntries for a given suffix set and returns
-// the number of entries for the first node.
-func (ct *contractTrieSet) genStates(sis []stridx) (int, error) {
-	if len(sis) == 0 {
-		return 0, fmt.Errorf("genStates: list of suffices must be non-empty")
-	}
-	start := len(*ct)
-	// create entries for differing first bytes.
-	for _, si := range sis {
-		s := si.str
-		if len(s) == 0 {
-			continue
-		}
-		added := false
-		c := s[0]
-		if len(s) > 1 {
-			for j := len(*ct) - 1; j >= start; j-- {
-				if (*ct)[j].l == c {
-					added = true
-					break
-				}
-			}
-			if !added {
-				*ct = append(*ct, ctEntry{l: c, i: noIndex})
-			}
-		} else {
-			for j := len(*ct) - 1; j >= start; j-- {
-				// Update the offset for longer suffixes with the same byte.
-				if (*ct)[j].l == c {
-					(*ct)[j].i = uint8(si.index)
-					added = true
-				}
-				// Extend range of final ctEntry, if possible.
-				if (*ct)[j].h+1 == c {
-					(*ct)[j].h = c
-					added = true
-				}
-			}
-			if !added {
-				*ct = append(*ct, ctEntry{l: c, h: c, n: final, i: uint8(si.index)})
-			}
-		}
-	}
-	n := len(*ct) - start
-	// Append nodes for the remainder of the suffixes for each ctEntry.
-	sp := 0
-	for i, end := start, len(*ct); i < end; i++ {
-		fe := (*ct)[i]
-		if fe.h == 0 { // uninitialized non-final
-			ln := len(*ct) - start - n
-			if ln > 0xFF {
-				return 0, fmt.Errorf("genStates: relative block offset too large: %d > 255", ln)
-			}
-			fe.h = uint8(ln)
-			// Find first non-final strings with same byte as current entry.
-			for ; sis[sp].str[0] != fe.l; sp++ {
-			}
-			se := sp + 1
-			for ; se < len(sis) && len(sis[se].str) > 1 && sis[se].str[0] == fe.l; se++ {
-			}
-			sl := sis[sp:se]
-			sp = se
-			for i, si := range sl {
-				sl[i].str = si.str[1:]
-			}
-			nn, err := ct.genStates(sl)
-			if err != nil {
-				return 0, err
-			}
-			fe.n = uint8(nn)
-			(*ct)[i] = fe
-		}
-	}
-	sort.Sort(entrySort((*ct)[start : start+n]))
-	return n, nil
-}
-
-// There may be both a final and non-final entry for a byte if the byte
-// is implied in a range of matches in the final entry.
-// We need to ensure that the non-final entry comes first in that case.
-type entrySort contractTrieSet
-
-func (fe entrySort) Len() int      { return len(fe) }
-func (fe entrySort) Swap(i, j int) { fe[i], fe[j] = fe[j], fe[i] }
-func (fe entrySort) Less(i, j int) bool {
-	return fe[i].l > fe[j].l
-}
-
-// stridx is used for sorting suffixes and their associated offsets.
-type stridx struct {
-	str   string
-	index int
-}
-
-// For computing the offsets, we first sort by size, and then by string.
-// This ensures that strings that only differ in the last byte by 1
-// are sorted consecutively in increasing order such that they can
-// be packed as a range in a final ctEntry.
-type offsetSort []stridx
-
-func (si offsetSort) Len() int      { return len(si) }
-func (si offsetSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] }
-func (si offsetSort) Less(i, j int) bool {
-	if len(si[i].str) != len(si[j].str) {
-		return len(si[i].str) > len(si[j].str)
-	}
-	return si[i].str < si[j].str
-}
-
-// For indexing, we want to ensure that strings are sorted in string order, where
-// for strings with the same prefix, we put longer strings before shorter ones.
-type genidxSort []stridx
-
-func (si genidxSort) Len() int      { return len(si) }
-func (si genidxSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] }
-func (si genidxSort) Less(i, j int) bool {
-	if strings.HasPrefix(si[j].str, si[i].str) {
-		return false
-	}
-	if strings.HasPrefix(si[i].str, si[j].str) {
-		return true
-	}
-	return si[i].str < si[j].str
-}
-
-// lookup matches the longest suffix in str and returns the associated offset
-// and the number of bytes consumed.
-func (ct *contractTrieSet) lookup(h ctHandle, str []byte) (index, ns int) {
-	states := (*ct)[h.index:]
-	p := 0
-	n := h.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					index, ns = int(e.i), p
-				}
-				if e.n != final {
-					// set to new state
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-				} else {
-					return
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				return int(c-e.l) + int(e.i), p
-			}
-		}
-		i++
-	}
-	return
-}
-
-// print writes the contractTrieSet t as compilable Go code to w. It returns
-// the total number of bytes written and the size of the resulting data structure in bytes.
-func (t *contractTrieSet) print(w io.Writer, name string) (n, size int, err error) {
-	update3 := func(nn, sz int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-		size += sz
-	}
-	update2 := func(nn int, e error) { update3(nn, 0, e) }
-
-	update3(t.printArray(w, name))
-	update2(fmt.Fprintf(w, "var %sContractTrieSet = ", name))
-	update3(t.printStruct(w, name))
-	update2(fmt.Fprintln(w))
-	return
-}
-
-func (ct contractTrieSet) printArray(w io.Writer, name string) (n, size int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	size = len(ct) * 4
-	p("// %sCTEntries: %d entries, %d bytes\n", name, len(ct), size)
-	p("var %sCTEntries = [%d]struct{l,h,n,i uint8}{\n", name, len(ct))
-	for _, fe := range ct {
-		p("\t{0x%X, 0x%X, %d, %d},\n", fe.l, fe.h, fe.n, fe.i)
-	}
-	p("}\n")
-	return
-}
-
-func (ct contractTrieSet) printStruct(w io.Writer, name string) (n, size int, err error) {
-	n, err = fmt.Fprintf(w, "contractTrieSet( %sCTEntries[:] )", name)
-	size = int(reflect.TypeOf(ct).Size())
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/contract_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/contract_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,264 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"bytes"
-	"sort"
-	"testing"
-)
-
-var largetosmall = []stridx{
-	{"a", 5},
-	{"ab", 4},
-	{"abc", 3},
-	{"abcd", 2},
-	{"abcde", 1},
-	{"abcdef", 0},
-}
-
-var offsetSortTests = [][]stridx{
-	{
-		{"bcde", 1},
-		{"bc", 5},
-		{"ab", 4},
-		{"bcd", 3},
-		{"abcd", 0},
-		{"abc", 2},
-	},
-	largetosmall,
-}
-
-func TestOffsetSort(t *testing.T) {
-	for i, st := range offsetSortTests {
-		sort.Sort(offsetSort(st))
-		for j, si := range st {
-			if j != si.index {
-				t.Errorf("%d: failed: %v", i, st)
-			}
-		}
-	}
-	for i, tt := range genStateTests {
-		// ensure input is well-formed
-		sort.Sort(offsetSort(tt.in))
-		for j, si := range tt.in {
-			if si.index != j+1 {
-				t.Errorf("%dth sort failed: %v", i, tt.in)
-			}
-		}
-	}
-}
-
-var genidxtest1 = []stridx{
-	{"bcde", 3},
-	{"bc", 6},
-	{"ab", 2},
-	{"bcd", 5},
-	{"abcd", 0},
-	{"abc", 1},
-	{"bcdf", 4},
-}
-
-var genidxSortTests = [][]stridx{
-	genidxtest1,
-	largetosmall,
-}
-
-func TestGenIdxSort(t *testing.T) {
-	for i, st := range genidxSortTests {
-		sort.Sort(genidxSort(st))
-		for j, si := range st {
-			if j != si.index {
-				t.Errorf("%dth sort failed %v", i, st)
-				break
-			}
-		}
-	}
-}
-
-var entrySortTests = []contractTrieSet{
-	{
-		{10, 0, 1, 3},
-		{99, 0, 1, 0},
-		{20, 50, 0, 2},
-		{30, 0, 1, 1},
-	},
-}
-
-func TestEntrySort(t *testing.T) {
-	for i, et := range entrySortTests {
-		sort.Sort(entrySort(et))
-		for j, fe := range et {
-			if j != int(fe.i) {
-				t.Errorf("%dth sort failed %v", i, et)
-				break
-			}
-		}
-	}
-}
-
-type GenStateTest struct {
-	in            []stridx
-	firstBlockLen int
-	out           contractTrieSet
-}
-
-var genStateTests = []GenStateTest{
-	{[]stridx{
-		{"abc", 1},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, noIndex},
-			{'c', 'c', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"abd", 2},
-		{"abe", 3},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, noIndex},
-			{'c', 'e', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"ab", 2},
-		{"a", 3},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 3},
-			{'b', 0, 1, 2},
-			{'c', 'c', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"abd", 2},
-		{"ab", 3},
-		{"ac", 4},
-		{"a", 5},
-		{"b", 6},
-	},
-		2,
-		contractTrieSet{
-			{'b', 'b', final, 6},
-			{'a', 0, 2, 5},
-			{'c', 'c', final, 4},
-			{'b', 0, 1, 3},
-			{'c', 'd', final, 1},
-		},
-	},
-	{[]stridx{
-		{"bcde", 2},
-		{"bc", 7},
-		{"ab", 6},
-		{"bcd", 5},
-		{"abcd", 1},
-		{"abc", 4},
-		{"bcdf", 3},
-	},
-		2,
-		contractTrieSet{
-			{'b', 3, 1, noIndex},
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, 6},
-			{'c', 0, 1, 4},
-			{'d', 'd', final, 1},
-			{'c', 0, 1, 7},
-			{'d', 0, 1, 5},
-			{'e', 'f', final, 2},
-		},
-	},
-}
-
-func TestGenStates(t *testing.T) {
-	for i, tt := range genStateTests {
-		si := []stridx{}
-		for _, e := range tt.in {
-			si = append(si, e)
-		}
-		// ensure input is well-formed
-		sort.Sort(genidxSort(si))
-		ct := contractTrieSet{}
-		n, _ := ct.genStates(si)
-		if nn := tt.firstBlockLen; nn != n {
-			t.Errorf("%d: block len %v; want %v", i, n, nn)
-		}
-		if lv, lw := len(ct), len(tt.out); lv != lw {
-			t.Errorf("%d: len %v; want %v", i, lv, lw)
-			continue
-		}
-		for j, fe := range tt.out {
-			const msg = "%d:%d: value %s=%v; want %v"
-			if fe.l != ct[j].l {
-				t.Errorf(msg, i, j, "l", ct[j].l, fe.l)
-			}
-			if fe.h != ct[j].h {
-				t.Errorf(msg, i, j, "h", ct[j].h, fe.h)
-			}
-			if fe.n != ct[j].n {
-				t.Errorf(msg, i, j, "n", ct[j].n, fe.n)
-			}
-			if fe.i != ct[j].i {
-				t.Errorf(msg, i, j, "i", ct[j].i, fe.i)
-			}
-		}
-	}
-}
-
-func TestLookupContraction(t *testing.T) {
-	for i, tt := range genStateTests {
-		input := []string{}
-		for _, e := range tt.in {
-			input = append(input, e.str)
-		}
-		cts := contractTrieSet{}
-		h, _ := cts.appendTrie(input)
-		for j, si := range tt.in {
-			str := si.str
-			for _, s := range []string{str, str + "X"} {
-				msg := "%d:%d: %s(%s) %v; want %v"
-				idx, sn := cts.lookup(h, []byte(s))
-				if idx != si.index {
-					t.Errorf(msg, i, j, "index", s, idx, si.index)
-				}
-				if sn != len(str) {
-					t.Errorf(msg, i, j, "sn", s, sn, len(str))
-				}
-			}
-		}
-	}
-}
-
-func TestPrintContractionTrieSet(t *testing.T) {
-	testdata := contractTrieSet(genStateTests[4].out)
-	buf := &bytes.Buffer{}
-	testdata.print(buf, "test")
-	if contractTrieOutput != buf.String() {
-		t.Errorf("output differs; found\n%s", buf.String())
-		println(string(buf.Bytes()))
-	}
-}
-
-const contractTrieOutput = `// testCTEntries: 8 entries, 32 bytes
-var testCTEntries = [8]struct{l,h,n,i uint8}{
-	{0x62, 0x3, 1, 255},
-	{0x61, 0x0, 1, 255},
-	{0x62, 0x0, 1, 6},
-	{0x63, 0x0, 1, 4},
-	{0x64, 0x64, 0, 1},
-	{0x63, 0x0, 1, 7},
-	{0x64, 0x0, 1, 5},
-	{0x65, 0x66, 0, 2},
-}
-var testContractTrieSet = contractTrieSet( testCTEntries[:] )
-`
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order.go gcc-4.8.1/libgo/go/exp/locale/collate/build/order.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/order.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,392 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"exp/norm"
-	"fmt"
-	"log"
-	"sort"
-	"strings"
-	"unicode"
-)
-
-type logicalAnchor int
-
-const (
-	firstAnchor logicalAnchor = -1
-	noAnchor                  = 0
-	lastAnchor                = 1
-)
-
-// entry is used to keep track of a single entry in the collation element table
-// during building. Examples of entries can be found in the Default Unicode
-// Collation Element Table.
-// See http://www.unicode.org/Public/UCA/6.0.0/allkeys.txt.
-type entry struct {
-	str    string // same as string(runes)
-	runes  []rune
-	elems  []rawCE // the collation elements
-	extend string  // weights of extend to be appended to elems
-	before bool    // weights relative to next instead of previous.
-	lock   bool    // entry is used in extension and can no longer be moved.
-
-	// prev, next, and level are used to keep track of tailorings.
-	prev, next *entry
-	level      collate.Level // next differs at this level
-	skipRemove bool          // do not unlink when removed
-
-	decompose bool // can use NFKD decomposition to generate elems
-	exclude   bool // do not include in table
-	implicit  bool // derived, is not included in the list
-	modified  bool // entry was modified in tailoring
-	logical   logicalAnchor
-
-	expansionIndex    int // used to store index into expansion table
-	contractionHandle ctHandle
-	contractionIndex  int // index into contraction elements
-}
-
-func (e *entry) String() string {
-	return fmt.Sprintf("%X (%q) -> %X (ch:%x; ci:%d, ei:%d)",
-		e.runes, e.str, e.elems, e.contractionHandle, e.contractionIndex, e.expansionIndex)
-}
-
-func (e *entry) skip() bool {
-	return e.contraction()
-}
-
-func (e *entry) expansion() bool {
-	return !e.decompose && len(e.elems) > 1
-}
-
-func (e *entry) contraction() bool {
-	return len(e.runes) > 1
-}
-
-func (e *entry) contractionStarter() bool {
-	return e.contractionHandle.n != 0
-}
-
-// nextIndexed gets the next entry that needs to be stored in the table.
-// It returns the entry and the collation level at which the next entry differs
-// from the current entry.
-// Entries that can be explicitly derived and logical reset positions are
-// examples of entries that will not be indexed.
-func (e *entry) nextIndexed() (*entry, collate.Level) {
-	level := e.level
-	for e = e.next; e != nil && (e.exclude || len(e.elems) == 0); e = e.next {
-		if e.level < level {
-			level = e.level
-		}
-	}
-	return e, level
-}
-
-// remove unlinks entry e from the sorted chain and clears the collation
-// elements. e may not be at the front or end of the list. This should always
-// be the case, as the front and end of the list are always logical anchors,
-// which may not be removed.
-func (e *entry) remove() {
-	if e.logical != noAnchor {
-		log.Fatalf("may not remove anchor %q", e.str)
-	}
-	// TODO: need to set e.prev.level to e.level if e.level is smaller?
-	e.elems = nil
-	if !e.skipRemove {
-		if e.prev != nil {
-			e.prev.next = e.next
-		}
-		if e.next != nil {
-			e.next.prev = e.prev
-		}
-	}
-	e.skipRemove = false
-}
-
-// insertAfter inserts n after e.
-func (e *entry) insertAfter(n *entry) {
-	if e == n {
-		panic("e == anchor")
-	}
-	if e == nil {
-		panic("unexpected nil anchor")
-	}
-	n.remove()
-	n.decompose = false // redo decomposition test
-
-	n.next = e.next
-	n.prev = e
-	if e.next != nil {
-		e.next.prev = n
-	}
-	e.next = n
-}
-
-// insertBefore inserts n before e.
-func (e *entry) insertBefore(n *entry) {
-	if e == n {
-		panic("e == anchor")
-	}
-	if e == nil {
-		panic("unexpected nil anchor")
-	}
-	n.remove()
-	n.decompose = false // redo decomposition test
-
-	n.prev = e.prev
-	n.next = e
-	if e.prev != nil {
-		e.prev.next = n
-	}
-	e.prev = n
-}
-
-func (e *entry) encodeBase() (ce uint32, err error) {
-	switch {
-	case e.expansion():
-		ce, err = makeExpandIndex(e.expansionIndex)
-	default:
-		if e.decompose {
-			log.Fatal("decompose should be handled elsewhere")
-		}
-		ce, err = makeCE(e.elems[0])
-	}
-	return
-}
-
-func (e *entry) encode() (ce uint32, err error) {
-	if e.skip() {
-		log.Fatal("cannot build colElem for entry that should be skipped")
-	}
-	switch {
-	case e.decompose:
-		t1 := e.elems[0].w[2]
-		t2 := 0
-		if len(e.elems) > 1 {
-			t2 = e.elems[1].w[2]
-		}
-		ce, err = makeDecompose(t1, t2)
-	case e.contractionStarter():
-		ce, err = makeContractIndex(e.contractionHandle, e.contractionIndex)
-	default:
-		if len(e.runes) > 1 {
-			log.Fatal("colElem: contractions are handled in contraction trie")
-		}
-		ce, err = e.encodeBase()
-	}
-	return
-}
-
-// entryLess returns true if a sorts before b and false otherwise.
-func entryLess(a, b *entry) bool {
-	if res, _ := compareWeights(a.elems, b.elems); res != 0 {
-		return res == -1
-	}
-	if a.logical != noAnchor {
-		return a.logical == firstAnchor
-	}
-	if b.logical != noAnchor {
-		return b.logical == lastAnchor
-	}
-	return a.str < b.str
-}
-
-type sortedEntries []*entry
-
-func (s sortedEntries) Len() int {
-	return len(s)
-}
-
-func (s sortedEntries) Swap(i, j int) {
-	s[i], s[j] = s[j], s[i]
-}
-
-func (s sortedEntries) Less(i, j int) bool {
-	return entryLess(s[i], s[j])
-}
-
-type ordering struct {
-	id       string
-	entryMap map[string]*entry
-	ordered  []*entry
-	handle   *trieHandle
-}
-
-// insert inserts e into both entryMap and ordered.
-// Note that insert simply appends e to ordered.  To reattain a sorted
-// order, o.sort() should be called.
-func (o *ordering) insert(e *entry) {
-	if e.logical == noAnchor {
-		o.entryMap[e.str] = e
-	} else {
-		// Use key format as used in UCA rules.
-		o.entryMap[fmt.Sprintf("[%s]", e.str)] = e
-		// Also add index entry for XML format.
-		o.entryMap[fmt.Sprintf("<%s/>", strings.Replace(e.str, " ", "_", -1))] = e
-	}
-	o.ordered = append(o.ordered, e)
-}
-
-// newEntry creates a new entry for the given info and inserts it into
-// the index.
-func (o *ordering) newEntry(s string, ces []rawCE) *entry {
-	e := &entry{
-		runes: []rune(s),
-		elems: ces,
-		str:   s,
-	}
-	o.insert(e)
-	return e
-}
-
-// find looks up and returns the entry for the given string.
-// It returns nil if str is not in the index and if an implicit value
-// cannot be derived, that is, if str represents more than one rune.
-func (o *ordering) find(str string) *entry {
-	e := o.entryMap[str]
-	if e == nil {
-		r := []rune(str)
-		if len(r) == 1 {
-			const (
-				firstHangul = 0xAC00
-				lastHangul  = 0xD7A3
-			)
-			if r[0] >= firstHangul && r[0] <= lastHangul {
-				ce := []rawCE{}
-				nfd := norm.NFD.String(str)
-				for _, r := range nfd {
-					ce = append(ce, o.find(string(r)).elems...)
-				}
-				e = o.newEntry(nfd, ce)
-			} else {
-				e = o.newEntry(string(r[0]), []rawCE{
-					{w: []int{
-						implicitPrimary(r[0]),
-						defaultSecondary,
-						defaultTertiary,
-						int(r[0]),
-					},
-					},
-				})
-				e.modified = true
-			}
-			e.exclude = true // do not index implicits
-		}
-	}
-	return e
-}
-
-// makeRootOrdering returns a newly initialized ordering value and populates
-// it with a set of logical reset points that can be used as anchors.
-// The anchors first_tertiary_ignorable and __END__ will always sort at
-// the beginning and end, respectively. This means that prev and next are non-nil
-// for any indexed entry.
-func makeRootOrdering() ordering {
-	const max = unicode.MaxRune
-	o := ordering{
-		entryMap: make(map[string]*entry),
-	}
-	insert := func(typ logicalAnchor, s string, ce []int) {
-		e := &entry{
-			elems:   []rawCE{{w: ce}},
-			str:     s,
-			exclude: true,
-			logical: typ,
-		}
-		o.insert(e)
-	}
-	insert(firstAnchor, "first tertiary ignorable", []int{0, 0, 0, 0})
-	insert(lastAnchor, "last tertiary ignorable", []int{0, 0, 0, max})
-	insert(lastAnchor, "last primary ignorable", []int{0, defaultSecondary, defaultTertiary, max})
-	insert(lastAnchor, "last non ignorable", []int{maxPrimary, defaultSecondary, defaultTertiary, max})
-	insert(lastAnchor, "__END__", []int{1 << maxPrimaryBits, defaultSecondary, defaultTertiary, max})
-	return o
-}
-
-// patchForInsert eleminates entries from the list with more than one collation element.
-// The next and prev fields of the eliminated entries still point to appropriate
-// values in the newly created list.
-// It requires that sort has been called.
-func (o *ordering) patchForInsert() {
-	for i := 0; i < len(o.ordered)-1; {
-		e := o.ordered[i]
-		lev := e.level
-		n := e.next
-		for ; n != nil && len(n.elems) > 1; n = n.next {
-			if n.level < lev {
-				lev = n.level
-			}
-			n.skipRemove = true
-		}
-		for ; o.ordered[i] != n; i++ {
-			o.ordered[i].level = lev
-			o.ordered[i].next = n
-			o.ordered[i+1].prev = e
-		}
-	}
-}
-
-// clone copies all ordering of es into a new ordering value.
-func (o *ordering) clone() *ordering {
-	o.sort()
-	oo := ordering{
-		entryMap: make(map[string]*entry),
-	}
-	for _, e := range o.ordered {
-		ne := &entry{
-			runes:     e.runes,
-			elems:     e.elems,
-			str:       e.str,
-			decompose: e.decompose,
-			exclude:   e.exclude,
-			logical:   e.logical,
-		}
-		oo.insert(ne)
-	}
-	oo.sort() // link all ordering.
-	oo.patchForInsert()
-	return &oo
-}
-
-// front returns the first entry to be indexed.
-// It assumes that sort() has been called.
-func (o *ordering) front() *entry {
-	e := o.ordered[0]
-	if e.prev != nil {
-		log.Panicf("unexpected first entry: %v", e)
-	}
-	// The first entry is always a logical position, which should not be indexed.
-	e, _ = e.nextIndexed()
-	return e
-}
-
-// sort sorts all ordering based on their collation elements and initializes
-// the prev, next, and level fields accordingly.
-func (o *ordering) sort() {
-	sort.Sort(sortedEntries(o.ordered))
-	l := o.ordered
-	for i := 1; i < len(l); i++ {
-		k := i - 1
-		l[k].next = l[i]
-		_, l[k].level = compareWeights(l[k].elems, l[i].elems)
-		l[i].prev = l[k]
-	}
-}
-
-// genColElems generates a collation element array from the runes in str. This
-// assumes that all collation elements have already been added to the Builder.
-func (o *ordering) genColElems(str string) []rawCE {
-	elems := []rawCE{}
-	for _, r := range []rune(str) {
-		for _, ce := range o.find(string(r)).elems {
-			if ce.w[0] != 0 || ce.w[1] != 0 || ce.w[2] != 0 {
-				elems = append(elems, ce)
-			}
-		}
-	}
-	return elems
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/order_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/order_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,228 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"strconv"
-	"testing"
-)
-
-type entryTest struct {
-	f   func(in []int) (uint32, error)
-	arg []int
-	val uint32
-}
-
-// makeList returns a list of entries of length n+2, with n normal
-// entries plus a leading and trailing anchor.
-func makeList(n int) []*entry {
-	es := make([]*entry, n+2)
-	weights := []rawCE{{w: []int{100, 20, 5, 0}}}
-	for i := range es {
-		runes := []rune{rune(i)}
-		es[i] = &entry{
-			runes: runes,
-			elems: weights,
-		}
-		weights = nextWeight(collate.Primary, weights)
-	}
-	for i := 1; i < len(es); i++ {
-		es[i-1].next = es[i]
-		es[i].prev = es[i-1]
-		_, es[i-1].level = compareWeights(es[i-1].elems, es[i].elems)
-	}
-	es[0].exclude = true
-	es[0].logical = firstAnchor
-	es[len(es)-1].exclude = true
-	es[len(es)-1].logical = lastAnchor
-	return es
-}
-
-func TestNextIndexed(t *testing.T) {
-	const n = 5
-	es := makeList(n)
-	for i := int64(0); i < 1<<n; i++ {
-		mask := strconv.FormatInt(i+(1<<n), 2)
-		for i, c := range mask {
-			es[i].exclude = c == '1'
-		}
-		e := es[0]
-		for i, c := range mask {
-			if c == '0' {
-				e, _ = e.nextIndexed()
-				if e != es[i] {
-					t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems)
-				}
-			}
-		}
-		if e, _ = e.nextIndexed(); e != nil {
-			t.Errorf("%d: expected nil entry; found %d", i, e.elems)
-		}
-	}
-}
-
-func TestRemove(t *testing.T) {
-	const n = 5
-	for i := int64(0); i < 1<<n; i++ {
-		es := makeList(n)
-		mask := strconv.FormatInt(i+(1<<n), 2)
-		for i, c := range mask {
-			if c == '0' {
-				es[i].remove()
-			}
-		}
-		e := es[0]
-		for i, c := range mask {
-			if c == '1' {
-				if e != es[i] {
-					t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems)
-				}
-				e, _ = e.nextIndexed()
-			}
-		}
-		if e != nil {
-			t.Errorf("%d: expected nil entry; found %d", i, e.elems)
-		}
-	}
-}
-
-// nextPerm generates the next permutation of the array.  The starting
-// permutation is assumed to be a list of integers sorted in increasing order.
-// It returns false if there are no more permuations left.
-func nextPerm(a []int) bool {
-	i := len(a) - 2
-	for ; i >= 0; i-- {
-		if a[i] < a[i+1] {
-			break
-		}
-	}
-	if i < 0 {
-		return false
-	}
-	for j := len(a) - 1; j >= i; j-- {
-		if a[j] > a[i] {
-			a[i], a[j] = a[j], a[i]
-			break
-		}
-	}
-	for j := i + 1; j < (len(a)+i+1)/2; j++ {
-		a[j], a[len(a)+i-j] = a[len(a)+i-j], a[j]
-	}
-	return true
-}
-
-func TestInsertAfter(t *testing.T) {
-	const n = 5
-	orig := makeList(n)
-	perm := make([]int, n)
-	for i := range perm {
-		perm[i] = i + 1
-	}
-	for ok := true; ok; ok = nextPerm(perm) {
-		es := makeList(n)
-		last := es[0]
-		for _, i := range perm {
-			last.insertAfter(es[i])
-			last = es[i]
-		}
-		for _, e := range es {
-			e.elems = es[0].elems
-		}
-		e := es[0]
-		for _, i := range perm {
-			e, _ = e.nextIndexed()
-			if e.runes[0] != orig[i].runes[0] {
-				t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes)
-				break
-			}
-		}
-	}
-}
-
-func TestInsertBefore(t *testing.T) {
-	const n = 5
-	orig := makeList(n)
-	perm := make([]int, n)
-	for i := range perm {
-		perm[i] = i + 1
-	}
-	for ok := true; ok; ok = nextPerm(perm) {
-		es := makeList(n)
-		last := es[len(es)-1]
-		for _, i := range perm {
-			last.insertBefore(es[i])
-			last = es[i]
-		}
-		for _, e := range es {
-			e.elems = es[0].elems
-		}
-		e := es[0]
-		for i := n - 1; i >= 0; i-- {
-			e, _ = e.nextIndexed()
-			if e.runes[0] != rune(perm[i]) {
-				t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes)
-				break
-			}
-		}
-	}
-}
-
-type entryLessTest struct {
-	a, b *entry
-	res  bool
-}
-
-var (
-	w1 = []rawCE{{w: []int{100, 20, 5, 5}}}
-	w2 = []rawCE{{w: []int{101, 20, 5, 5}}}
-)
-
-var entryLessTests = []entryLessTest{
-	{&entry{str: "a", elems: w1},
-		&entry{str: "a", elems: w1},
-		false,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "a", elems: w2},
-		true,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "b", elems: w1},
-		true,
-	},
-	{&entry{str: "a", elems: w2},
-		&entry{str: "a", elems: w1},
-		false,
-	},
-	{&entry{str: "c", elems: w1},
-		&entry{str: "b", elems: w1},
-		false,
-	},
-	{&entry{str: "a", elems: w1, logical: firstAnchor},
-		&entry{str: "a", elems: w1},
-		true,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "b", elems: w1, logical: firstAnchor},
-		false,
-	},
-	{&entry{str: "b", elems: w1},
-		&entry{str: "a", elems: w1, logical: lastAnchor},
-		true,
-	},
-	{&entry{str: "a", elems: w1, logical: lastAnchor},
-		&entry{str: "c", elems: w1},
-		false,
-	},
-}
-
-func TestEntryLess(t *testing.T) {
-	for i, tt := range entryLessTests {
-		if res := entryLess(tt.a, tt.b); res != tt.res {
-			t.Errorf("%d: was %v; want %v", i, res, tt.res)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/table.go gcc-4.8.1/libgo/go/exp/locale/collate/build/table.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/table.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/table.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,120 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"fmt"
-	"io"
-	"reflect"
-)
-
-// table is an intermediate structure that roughly resembles the table in collate.
-// It implements the non-exported interface collate.tableInitializer
-type table struct {
-	index trie // main trie
-	root  *trieHandle
-
-	// expansion info
-	expandElem []uint32
-
-	// contraction info
-	contractTries  contractTrieSet
-	contractElem   []uint32
-	maxContractLen int
-	variableTop    uint32
-}
-
-func (t *table) TrieIndex() []uint16 {
-	return t.index.index
-}
-
-func (t *table) TrieValues() []uint32 {
-	return t.index.values
-}
-
-func (t *table) FirstBlockOffsets() (i, v uint16) {
-	return t.root.lookupStart, t.root.valueStart
-}
-
-func (t *table) ExpandElems() []uint32 {
-	return t.expandElem
-}
-
-func (t *table) ContractTries() []struct{ l, h, n, i uint8 } {
-	return t.contractTries
-}
-
-func (t *table) ContractElems() []uint32 {
-	return t.contractElem
-}
-
-func (t *table) MaxContractLen() int {
-	return t.maxContractLen
-}
-
-func (t *table) VariableTop() uint32 {
-	return t.variableTop
-}
-
-// print writes the table as Go compilable code to w. It prefixes the
-// variable names with name. It returns the number of bytes written
-// and the size of the resulting table.
-func (t *table) fprint(w io.Writer, name string) (n, size int, err error) {
-	update := func(nn, sz int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-		size += sz
-	}
-	// Write arrays needed for the structure.
-	update(printColElems(w, t.expandElem, name+"ExpandElem"))
-	update(printColElems(w, t.contractElem, name+"ContractElem"))
-	update(t.index.printArrays(w, name))
-	update(t.contractTries.printArray(w, name))
-
-	nn, e := fmt.Fprintf(w, "// Total size of %sTable is %d bytes\n", name, size)
-	update(nn, 0, e)
-	return
-}
-
-func (t *table) fprintIndex(w io.Writer, h *trieHandle) (n int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	p("tableIndex{\n")
-	p("\t\tlookupOffset: 0x%x,\n", h.lookupStart)
-	p("\t\tvaluesOffset: 0x%x,\n", h.valueStart)
-	p("\t}")
-	return
-}
-
-func printColElems(w io.Writer, a []uint32, name string) (n, sz int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	sz = len(a) * int(reflect.TypeOf(uint32(0)).Size())
-	p("// %s: %d entries, %d bytes\n", name, len(a), sz)
-	p("var %s = [%d]uint32 {", name, len(a))
-	for i, c := range a {
-		switch {
-		case i%64 == 0:
-			p("\n\t// Block %d, offset 0x%x\n", i/64, i)
-		case (i%64)%6 == 0:
-			p("\n\t")
-		}
-		p("0x%.8X, ", c)
-	}
-	p("\n}\n\n")
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie.go gcc-4.8.1/libgo/go/exp/locale/collate/build/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/trie.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,290 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// The trie in this file is used to associate the first full character
-// in a UTF-8 string to a collation element.
-// All but the last byte in a UTF-8 byte sequence are
-// used to look up offsets in the index table to be used for the next byte.
-// The last byte is used to index into a table of collation elements.
-// This file contains the code for the generation of the trie.
-
-package build
-
-import (
-	"fmt"
-	"hash/fnv"
-	"io"
-	"reflect"
-)
-
-const (
-	blockSize   = 64
-	blockOffset = 2 // Subtract 2 blocks to compensate for the 0x80 added to continuation bytes.
-)
-
-type trieHandle struct {
-	lookupStart uint16 // offset in table for first byte
-	valueStart  uint16 // offset in table for first byte
-}
-
-type trie struct {
-	index  []uint16
-	values []uint32
-}
-
-// trieNode is the intermediate trie structure used for generating a trie.
-type trieNode struct {
-	index    []*trieNode
-	value    []uint32
-	b        byte
-	refValue uint16
-	refIndex uint16
-}
-
-func newNode() *trieNode {
-	return &trieNode{
-		index: make([]*trieNode, 64),
-		value: make([]uint32, 128), // root node size is 128 instead of 64
-	}
-}
-
-func (n *trieNode) isInternal() bool {
-	return n.value != nil
-}
-
-func (n *trieNode) insert(r rune, value uint32) {
-	const maskx = 0x3F // mask out two most-significant bits
-	str := string(r)
-	if len(str) == 1 {
-		n.value[str[0]] = value
-		return
-	}
-	for i := 0; i < len(str)-1; i++ {
-		b := str[i] & maskx
-		if n.index == nil {
-			n.index = make([]*trieNode, blockSize)
-		}
-		nn := n.index[b]
-		if nn == nil {
-			nn = &trieNode{}
-			nn.b = b
-			n.index[b] = nn
-		}
-		n = nn
-	}
-	if n.value == nil {
-		n.value = make([]uint32, blockSize)
-	}
-	b := str[len(str)-1] & maskx
-	n.value[b] = value
-}
-
-type trieBuilder struct {
-	t *trie
-
-	roots []*trieHandle
-
-	lookupBlocks []*trieNode
-	valueBlocks  []*trieNode
-
-	lookupBlockIdx map[uint32]*trieNode
-	valueBlockIdx  map[uint32]*trieNode
-}
-
-func newTrieBuilder() *trieBuilder {
-	index := &trieBuilder{}
-	index.lookupBlocks = make([]*trieNode, 0)
-	index.valueBlocks = make([]*trieNode, 0)
-	index.lookupBlockIdx = make(map[uint32]*trieNode)
-	index.valueBlockIdx = make(map[uint32]*trieNode)
-	// The third nil is the default null block.  The other two blocks
-	// are used to guarantee an offset of at least 3 for each block.
-	index.lookupBlocks = append(index.lookupBlocks, nil, nil, nil)
-	index.t = &trie{}
-	return index
-}
-
-func (b *trieBuilder) computeOffsets(n *trieNode) *trieNode {
-	hasher := fnv.New32()
-	if n.index != nil {
-		for i, nn := range n.index {
-			var vi, vv uint16
-			if nn != nil {
-				nn = b.computeOffsets(nn)
-				n.index[i] = nn
-				vi = nn.refIndex
-				vv = nn.refValue
-			}
-			hasher.Write([]byte{byte(vi >> 8), byte(vi)})
-			hasher.Write([]byte{byte(vv >> 8), byte(vv)})
-		}
-		h := hasher.Sum32()
-		nn, ok := b.lookupBlockIdx[h]
-		if !ok {
-			n.refIndex = uint16(len(b.lookupBlocks)) - blockOffset
-			b.lookupBlocks = append(b.lookupBlocks, n)
-			b.lookupBlockIdx[h] = n
-		} else {
-			n = nn
-		}
-	} else {
-		for _, v := range n.value {
-			hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)})
-		}
-		h := hasher.Sum32()
-		nn, ok := b.valueBlockIdx[h]
-		if !ok {
-			n.refValue = uint16(len(b.valueBlocks)) - blockOffset
-			n.refIndex = n.refValue
-			b.valueBlocks = append(b.valueBlocks, n)
-			b.valueBlockIdx[h] = n
-		} else {
-			n = nn
-		}
-	}
-	return n
-}
-
-func (b *trieBuilder) addStartValueBlock(n *trieNode) uint16 {
-	hasher := fnv.New32()
-	for _, v := range n.value[:2*blockSize] {
-		hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)})
-	}
-	h := hasher.Sum32()
-	nn, ok := b.valueBlockIdx[h]
-	if !ok {
-		n.refValue = uint16(len(b.valueBlocks))
-		n.refIndex = n.refValue
-		b.valueBlocks = append(b.valueBlocks, n)
-		// Add a dummy block to accommodate the double block size.
-		b.valueBlocks = append(b.valueBlocks, nil)
-		b.valueBlockIdx[h] = n
-	} else {
-		n = nn
-	}
-	return n.refValue
-}
-
-func genValueBlock(t *trie, n *trieNode) {
-	if n != nil {
-		for _, v := range n.value {
-			t.values = append(t.values, v)
-		}
-	}
-}
-
-func genLookupBlock(t *trie, n *trieNode) {
-	for _, nn := range n.index {
-		v := uint16(0)
-		if nn != nil {
-			if n.index != nil {
-				v = nn.refIndex
-			} else {
-				v = nn.refValue
-			}
-		}
-		t.index = append(t.index, v)
-	}
-}
-
-func (b *trieBuilder) addTrie(n *trieNode) *trieHandle {
-	h := &trieHandle{}
-	b.roots = append(b.roots, h)
-	h.valueStart = b.addStartValueBlock(n)
-	if len(b.roots) == 1 {
-		// We insert a null block after the first start value block.
-		// This ensures that continuation bytes UTF-8 sequences of length
-		// greater than 2 will automatically hit a null block if there
-		// was an undefined entry.
-		b.valueBlocks = append(b.valueBlocks, nil)
-	}
-	n = b.computeOffsets(n)
-	// Offset by one extra block as the first byte starts at 0xC0 instead of 0x80.
-	h.lookupStart = n.refIndex - 1
-	return h
-}
-
-// generate generates and returns the trie for n.
-func (b *trieBuilder) generate() (t *trie, err error) {
-	t = b.t
-	if len(b.valueBlocks) >= 1<<16 {
-		return nil, fmt.Errorf("maximum number of value blocks exceeded (%d > %d)", len(b.valueBlocks), 1<<16)
-	}
-	if len(b.lookupBlocks) >= 1<<16 {
-		return nil, fmt.Errorf("maximum number of lookup blocks exceeded (%d > %d)", len(b.lookupBlocks), 1<<16)
-	}
-	genValueBlock(t, b.valueBlocks[0])
-	genValueBlock(t, &trieNode{value: make([]uint32, 64)})
-	for i := 2; i < len(b.valueBlocks); i++ {
-		genValueBlock(t, b.valueBlocks[i])
-	}
-	n := &trieNode{index: make([]*trieNode, 64)}
-	genLookupBlock(t, n)
-	genLookupBlock(t, n)
-	genLookupBlock(t, n)
-	for i := 3; i < len(b.lookupBlocks); i++ {
-		genLookupBlock(t, b.lookupBlocks[i])
-	}
-	return b.t, nil
-}
-
-func (t *trie) printArrays(w io.Writer, name string) (n, size int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	nv := len(t.values)
-	p("// %sValues: %d entries, %d bytes\n", name, nv, nv*4)
-	p("// Block 2 is the null block.\n")
-	p("var %sValues = [%d]uint32 {", name, nv)
-	var printnewline bool
-	for i, v := range t.values {
-		if i%blockSize == 0 {
-			p("\n\t// Block %#x, offset %#x", i/blockSize, i)
-		}
-		if i%4 == 0 {
-			printnewline = true
-		}
-		if v != 0 {
-			if printnewline {
-				p("\n\t")
-				printnewline = false
-			}
-			p("%#04x:%#08x, ", i, v)
-		}
-	}
-	p("\n}\n\n")
-	ni := len(t.index)
-	p("// %sLookup: %d entries, %d bytes\n", name, ni, ni*2)
-	p("// Block 0 is the null block.\n")
-	p("var %sLookup = [%d]uint16 {", name, ni)
-	printnewline = false
-	for i, v := range t.index {
-		if i%blockSize == 0 {
-			p("\n\t// Block %#x, offset %#x", i/blockSize, i)
-		}
-		if i%8 == 0 {
-			printnewline = true
-		}
-		if v != 0 {
-			if printnewline {
-				p("\n\t")
-				printnewline = false
-			}
-			p("%#03x:%#02x, ", i, v)
-		}
-	}
-	p("\n}\n\n")
-	return n, nv*4 + ni*2, err
-}
-
-func (t *trie) printStruct(w io.Writer, handle *trieHandle, name string) (n, sz int, err error) {
-	const msg = "trie{ %sLookup[%d:], %sValues[%d:], %sLookup[:], %sValues[:]}"
-	n, err = fmt.Fprintf(w, msg, name, handle.lookupStart*blockSize, name, handle.valueStart*blockSize, name, name)
-	sz += int(reflect.TypeOf(trie{}).Size())
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/trie_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,107 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"bytes"
-	"fmt"
-	"testing"
-)
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-func makeTestTrie(t *testing.T) trie {
-	n := newNode()
-	for i, r := range testRunes {
-		n.insert(r, uint32(i))
-	}
-	idx := newTrieBuilder()
-	idx.addTrie(n)
-	tr, err := idx.generate()
-	if err != nil {
-		t.Errorf(err.Error())
-	}
-	return *tr
-}
-
-func TestGenerateTrie(t *testing.T) {
-	testdata := makeTestTrie(t)
-	buf := &bytes.Buffer{}
-	testdata.printArrays(buf, "test")
-	fmt.Fprintf(buf, "var testTrie = ")
-	testdata.printStruct(buf, &trieHandle{19, 0}, "test")
-	if output != buf.String() {
-		t.Error("output differs")
-	}
-}
-
-var output = `// testValues: 832 entries, 3328 bytes
-// Block 2 is the null block.
-var testValues = [832]uint32 {
-	// Block 0x0, offset 0x0
-	0x000c:0x00000001, 
-	// Block 0x1, offset 0x40
-	0x007f:0x00000002, 
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0:0x00000003, 
-	// Block 0x4, offset 0x100
-	0x0100:0x00000004, 
-	// Block 0x5, offset 0x140
-	0x0140:0x0000000c, 0x0141:0x0000000d, 0x0142:0x0000000e, 
-	0x0150:0x0000000f, 
-	0x0155:0x00000010, 
-	// Block 0x6, offset 0x180
-	0x01bf:0x00000005, 
-	// Block 0x7, offset 0x1c0
-	0x01c0:0x00000006, 
-	// Block 0x8, offset 0x200
-	0x0219:0x00000007, 
-	// Block 0x9, offset 0x240
-	0x027f:0x00000008, 
-	// Block 0xa, offset 0x280
-	0x0280:0x00000009, 
-	// Block 0xb, offset 0x2c0
-	0x02c1:0x0000000a, 
-	// Block 0xc, offset 0x300
-	0x033f:0x0000000b, 
-}
-
-// testLookup: 640 entries, 1280 bytes
-// Block 0 is the null block.
-var testLookup = [640]uint16 {
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0e0:0x05, 0x0e6:0x06, 
-	// Block 0x4, offset 0x100
-	0x13f:0x07, 
-	// Block 0x5, offset 0x140
-	0x140:0x08, 0x144:0x09, 
-	// Block 0x6, offset 0x180
-	0x190:0x03, 
-	// Block 0x7, offset 0x1c0
-	0x1ff:0x0a, 
-	// Block 0x8, offset 0x200
-	0x20f:0x05, 
-	// Block 0x9, offset 0x240
-	0x242:0x01, 0x244:0x02, 
-	0x248:0x03, 
-	0x25f:0x04, 
-	0x260:0x01, 
-	0x26f:0x02, 
-	0x270:0x04, 0x274:0x06, 
-}
-
-var testTrie = trie{ testLookup[1216:], testValues[0:], testLookup[:], testValues[:]}`
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem.go gcc-4.8.1/libgo/go/exp/locale/collate/colelem.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colelem.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,317 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"unicode"
-)
-
-// Level identifies the collation comparison level.
-// The primary level corresponds to the basic sorting of text.
-// The secondary level corresponds to accents and related linguistic elements.
-// The tertiary level corresponds to casing and related concepts.
-// The quaternary level is derived from the other levels by the
-// various algorithms for handling variable elements.
-type Level int
-
-const (
-	Primary Level = iota
-	Secondary
-	Tertiary
-	Quaternary
-	Identity
-)
-
-const (
-	defaultSecondary = 0x20
-	defaultTertiary  = 0x2
-	maxTertiary      = 0x1F
-	MaxQuaternary    = 0x1FFFFF // 21 bits.
-)
-
-// Elem is a representation of a collation element. This API provides ways to encode
-// and decode Elems. Implementations of collation tables may use values greater
-// or equal to PrivateUse for their own purposes.  However, these should never be
-// returned by AppendNext.
-type Elem uint32
-
-const (
-	maxCE       Elem = 0xAFFFFFFF
-	PrivateUse       = minContract
-	minContract      = 0xC0000000
-	maxContract      = 0xDFFFFFFF
-	minExpand        = 0xE0000000
-	maxExpand        = 0xEFFFFFFF
-	minDecomp        = 0xF0000000
-)
-
-type ceType int
-
-const (
-	ceNormal           ceType = iota // ceNormal includes implicits (ce == 0)
-	ceContractionIndex               // rune can be a start of a contraction
-	ceExpansionIndex                 // rune expands into a sequence of collation elements
-	ceDecompose                      // rune expands using NFKC decomposition
-)
-
-func (ce Elem) ctype() ceType {
-	if ce <= maxCE {
-		return ceNormal
-	}
-	if ce <= maxContract {
-		return ceContractionIndex
-	} else {
-		if ce <= maxExpand {
-			return ceExpansionIndex
-		}
-		return ceDecompose
-	}
-	panic("should not reach here")
-	return ceType(-1)
-}
-
-// For normal collation elements, we assume that a collation element either has
-// a primary or non-default secondary value, not both.
-// Collation elements with a primary value are of the form
-// 01pppppp pppppppp ppppppp0 ssssssss
-//   - p* is primary collation value
-//   - s* is the secondary collation value
-// 00pppppp pppppppp ppppppps sssttttt, where
-//   - p* is primary collation value
-//   - s* offset of secondary from default value.
-//   - t* is the tertiary collation value
-// 100ttttt cccccccc pppppppp pppppppp
-//   - t* is the tertiar collation value
-//   - c* is the cannonical combining class
-//   - p* is the primary collation value
-// Collation elements with a secondary value are of the form
-// 1010cccc ccccssss ssssssss tttttttt, where
-//   - c* is the canonical combining class
-//   - s* is the secondary collation value
-//   - t* is the tertiary collation value
-// 11qqqqqq qqqqqqqq qqqqqqq0 00000000
-//   - q* quaternary value
-const (
-	ceTypeMask            = 0xC0000000
-	ceTypeMaskExt         = 0xE0000000
-	ceType1               = 0x40000000
-	ceType2               = 0x00000000
-	ceType3or4            = 0x80000000
-	ceType4               = 0xA0000000
-	ceTypeQ               = 0xC0000000
-	ceIgnore              = ceType4
-	firstNonPrimary       = 0x80000000
-	lastSpecialPrimary    = 0xA0000000
-	secondaryMask         = 0x80000000
-	hasTertiaryMask       = 0x40000000
-	primaryValueMask      = 0x3FFFFE00
-	primaryShift          = 9
-	compactPrimaryBits    = 16
-	compactSecondaryShift = 5
-	minCompactSecondary   = defaultSecondary - 4
-)
-
-func makeImplicitCE(primary int) Elem {
-	return ceType1 | Elem(primary<<primaryShift) | defaultSecondary
-}
-
-// MakeElem returns an Elem for the given values.  It will return an error
-// if the given combination of values is invalid.
-func MakeElem(primary, secondary, tertiary int, ccc uint8) (Elem, error) {
-	// TODO: implement
-	return 0, nil
-}
-
-// MakeQuaternary returns an Elem with the given quaternary value.
-func MakeQuaternary(v int) Elem {
-	return ceTypeQ | Elem(v<<primaryShift)
-}
-
-// Mask sets weights for any level smaller than l to 0.
-// The resulting Elem can be used to test for equality with
-// other Elems to which the same mask has been applied.
-func (ce Elem) Mask(l Level) uint32 {
-	return 0
-}
-
-// CCC returns the canoncial combining class associated with the underlying character,
-// if applicable, or 0 otherwise.
-func (ce Elem) CCC() uint8 {
-	if ce&ceType3or4 != 0 {
-		if ce&ceType4 == ceType3or4 {
-			return uint8(ce >> 16)
-		}
-		return uint8(ce >> 20)
-	}
-	return 0
-}
-
-// Primary returns the primary collation weight for ce.
-func (ce Elem) Primary() int {
-	if ce >= firstNonPrimary {
-		if ce > lastSpecialPrimary {
-			return 0
-		}
-		return int(uint16(ce))
-	}
-	return int(ce&primaryValueMask) >> primaryShift
-}
-
-// Secondary returns the secondary collation weight for ce.
-func (ce Elem) Secondary() int {
-	switch ce & ceTypeMask {
-	case ceType1:
-		return int(uint8(ce))
-	case ceType2:
-		return minCompactSecondary + int((ce>>compactSecondaryShift)&0xF)
-	case ceType3or4:
-		if ce < ceType4 {
-			return defaultSecondary
-		}
-		return int(ce>>8) & 0xFFF
-	case ceTypeQ:
-		return 0
-	}
-	panic("should not reach here")
-}
-
-// Tertiary returns the tertiary collation weight for ce.
-func (ce Elem) Tertiary() uint8 {
-	if ce&hasTertiaryMask == 0 {
-		if ce&ceType3or4 == 0 {
-			return uint8(ce & 0x1F)
-		}
-		if ce&ceType4 == ceType4 {
-			return uint8(ce)
-		}
-		return uint8(ce>>24) & 0x1F // type 2
-	} else if ce&ceTypeMask == ceType1 {
-		return defaultTertiary
-	}
-	// ce is a quaternary value.
-	return 0
-}
-
-func (ce Elem) updateTertiary(t uint8) Elem {
-	if ce&ceTypeMask == ceType1 {
-		// convert to type 4
-		nce := ce & primaryValueMask
-		nce |= Elem(uint8(ce)-minCompactSecondary) << compactSecondaryShift
-		ce = nce
-	} else if ce&ceTypeMaskExt == ceType3or4 {
-		ce &= ^Elem(maxTertiary << 24)
-		return ce | (Elem(t) << 24)
-	} else {
-		// type 2 or 4
-		ce &= ^Elem(maxTertiary)
-	}
-	return ce | Elem(t)
-}
-
-// Quaternary returns the quaternary value if explicitly specified,
-// 0 if ce == ceIgnore, or MaxQuaternary otherwise.
-// Quaternary values are used only for shifted variants.
-func (ce Elem) Quaternary() int {
-	if ce&ceTypeMask == ceTypeQ {
-		return int(ce&primaryValueMask) >> primaryShift
-	} else if ce == ceIgnore {
-		return 0
-	}
-	return MaxQuaternary
-}
-
-// Weight returns the collation weight for the given level.
-func (ce Elem) Weight(l Level) int {
-	switch l {
-	case Primary:
-		return ce.Primary()
-	case Secondary:
-		return ce.Secondary()
-	case Tertiary:
-		return int(ce.Tertiary())
-	case Quaternary:
-		return ce.Quaternary()
-	}
-	return 0 // return 0 (ignore) for undefined levels.
-}
-
-// For contractions, collation elements are of the form
-// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where
-//   - n* is the size of the first node in the contraction trie.
-//   - i* is the index of the first node in the contraction trie.
-//   - b* is the offset into the contraction collation element table.
-// See contract.go for details on the contraction trie.
-const (
-	maxNBits              = 4
-	maxTrieIndexBits      = 12
-	maxContractOffsetBits = 13
-)
-
-func splitContractIndex(ce Elem) (index, n, offset int) {
-	n = int(ce & (1<<maxNBits - 1))
-	ce >>= maxNBits
-	index = int(ce & (1<<maxTrieIndexBits - 1))
-	ce >>= maxTrieIndexBits
-	offset = int(ce & (1<<maxContractOffsetBits - 1))
-	return
-}
-
-// For expansions, Elems are of the form 11100000 00000000 bbbbbbbb bbbbbbbb,
-// where b* is the index into the expansion sequence table.
-const maxExpandIndexBits = 16
-
-func splitExpandIndex(ce Elem) (index int) {
-	return int(uint16(ce))
-}
-
-// Some runes can be expanded using NFKD decomposition. Instead of storing the full
-// sequence of collation elements, we decompose the rune and lookup the collation
-// elements for each rune in the decomposition and modify the tertiary weights.
-// The Elem, in this case, is of the form 11110000 00000000 wwwwwwww vvvvvvvv, where
-//   - v* is the replacement tertiary weight for the first rune,
-//   - w* is the replacement tertiary weight for the second rune,
-// Tertiary weights of subsequent runes should be replaced with maxTertiary.
-// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details.
-func splitDecompose(ce Elem) (t1, t2 uint8) {
-	return uint8(ce), uint8(ce >> 8)
-}
-
-const (
-	// These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf.
-	minUnified       rune = 0x4E00
-	maxUnified            = 0x9FFF
-	minCompatibility      = 0xF900
-	maxCompatibility      = 0xFAFF
-	minRare               = 0x3400
-	maxRare               = 0x4DBF
-)
-const (
-	commonUnifiedOffset = 0x10000
-	rareUnifiedOffset   = 0x20000 // largest rune in common is U+FAFF
-	otherOffset         = 0x50000 // largest rune in rare is U+2FA1D
-	illegalOffset       = otherOffset + int(unicode.MaxRune)
-	maxPrimary          = illegalOffset + 1
-)
-
-// implicitPrimary returns the primary weight for the a rune
-// for which there is no entry for the rune in the collation table.
-// We take a different approach from the one specified in
-// http://unicode.org/reports/tr10/#Implicit_Weights,
-// but preserve the resulting relative ordering of the runes.
-func implicitPrimary(r rune) int {
-	if unicode.Is(unicode.Ideographic, r) {
-		if r >= minUnified && r <= maxUnified {
-			// The most common case for CJK.
-			return int(r) + commonUnifiedOffset
-		}
-		if r >= minCompatibility && r <= maxCompatibility {
-			// This will typically not hit. The DUCET explicitly specifies mappings
-			// for all characters that do not decompose.
-			return int(r) + commonUnifiedOffset
-		}
-		return int(r) + rareUnifiedOffset
-	}
-	return int(r) + otherOffset
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem_test.go gcc-4.8.1/libgo/go/exp/locale/collate/colelem_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colelem_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,274 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-	"unicode"
-)
-
-type ceTest struct {
-	f   func(inout []int) (Elem, ceType)
-	arg []int
-}
-
-// The make* funcs are simplified versions of the functions in build/colelem.go
-func makeCE(weights []int) Elem {
-	const (
-		maxPrimaryBits          = 21
-		maxSecondaryBits        = 12
-		maxSecondaryCompactBits = 8
-		maxSecondaryDiffBits    = 4
-		maxTertiaryBits         = 8
-		maxTertiaryCompactBits  = 5
-		isPrimary               = 0x40000000
-		isPrimaryCCC            = 0x80000000
-		isSecondary             = 0xA0000000
-	)
-	var ce Elem
-	ccc := weights[3]
-	if weights[0] != 0 {
-		if ccc != 0 {
-			ce = Elem(weights[2] << 24)
-			ce |= Elem(ccc) << 16
-			ce |= Elem(weights[0])
-			ce |= isPrimaryCCC
-		} else if weights[2] == defaultTertiary {
-			ce = Elem(weights[0]<<(maxSecondaryCompactBits+1) + weights[1])
-			ce |= isPrimary
-		} else {
-			d := weights[1] - defaultSecondary + 4
-			ce = Elem(weights[0]<<maxSecondaryDiffBits + d)
-			ce = ce<<maxTertiaryCompactBits + Elem(weights[2])
-		}
-	} else {
-		ce = Elem(weights[1]<<maxTertiaryBits + weights[2])
-		ce += Elem(ccc) << 20
-		ce |= isSecondary
-	}
-	return ce
-}
-
-func makeContractIndex(index, n, offset int) Elem {
-	const (
-		contractID            = 0xC0000000
-		maxNBits              = 4
-		maxTrieIndexBits      = 12
-		maxContractOffsetBits = 13
-	)
-	ce := Elem(contractID)
-	ce += Elem(offset << (maxNBits + maxTrieIndexBits))
-	ce += Elem(index << maxNBits)
-	ce += Elem(n)
-	return ce
-}
-
-func makeExpandIndex(index int) Elem {
-	const expandID = 0xE0000000
-	return expandID + Elem(index)
-}
-
-func makeDecompose(t1, t2 int) Elem {
-	const decompID = 0xF0000000
-	return Elem(t2<<8+t1) + decompID
-}
-
-func normalCE(inout []int) (ce Elem, t ceType) {
-	ce = makeCE(inout)
-	inout[0] = ce.Primary()
-	inout[1] = ce.Secondary()
-	inout[2] = int(ce.Tertiary())
-	inout[3] = int(ce.CCC())
-	return ce, ceNormal
-}
-
-func expandCE(inout []int) (ce Elem, t ceType) {
-	ce = makeExpandIndex(inout[0])
-	inout[0] = splitExpandIndex(ce)
-	return ce, ceExpansionIndex
-}
-
-func contractCE(inout []int) (ce Elem, t ceType) {
-	ce = makeContractIndex(inout[0], inout[1], inout[2])
-	i, n, o := splitContractIndex(ce)
-	inout[0], inout[1], inout[2] = i, n, o
-	return ce, ceContractionIndex
-}
-
-func decompCE(inout []int) (ce Elem, t ceType) {
-	ce = makeDecompose(inout[0], inout[1])
-	t1, t2 := splitDecompose(ce)
-	inout[0], inout[1] = int(t1), int(t2)
-	return ce, ceDecompose
-}
-
-const (
-	maxPrimaryBits   = 21
-	maxSecondaryBits = 16
-	maxTertiaryBits  = 8
-)
-
-var ceTests = []ceTest{
-	{normalCE, []int{0, 0, 0, 0}},
-	{normalCE, []int{0, 30, 3, 0}},
-	{normalCE, []int{0, 30, 3, 0xFF}},
-	{normalCE, []int{100, defaultSecondary, defaultTertiary, 0}},
-	{normalCE, []int{100, defaultSecondary, defaultTertiary, 0xFF}},
-	{normalCE, []int{100, defaultSecondary, 3, 0}},
-	{normalCE, []int{0x123, defaultSecondary, 8, 0xFF}},
-
-	{contractCE, []int{0, 0, 0}},
-	{contractCE, []int{1, 1, 1}},
-	{contractCE, []int{1, (1 << maxNBits) - 1, 1}},
-	{contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}},
-	{contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}},
-
-	{expandCE, []int{0}},
-	{expandCE, []int{5}},
-	{expandCE, []int{(1 << maxExpandIndexBits) - 1}},
-
-	{decompCE, []int{0, 0}},
-	{decompCE, []int{1, 1}},
-	{decompCE, []int{0x1F, 0x1F}},
-}
-
-func TestColElem(t *testing.T) {
-	for i, tt := range ceTests {
-		inout := make([]int, len(tt.arg))
-		copy(inout, tt.arg)
-		ce, typ := tt.f(inout)
-		if ce.ctype() != typ {
-			t.Errorf("%d: type is %d; want %d (ColElem: %X)", i, ce.ctype(), typ, ce)
-		}
-		for j, a := range tt.arg {
-			if inout[j] != a {
-				t.Errorf("%d: argument %d is %X; want %X (ColElem: %X)", i, j, inout[j], a, ce)
-			}
-		}
-	}
-}
-
-type implicitTest struct {
-	r rune
-	p int
-}
-
-var implicitTests = []implicitTest{
-	{0x33FF, 0x533FF},
-	{0x3400, 0x23400},
-	{0x4DC0, 0x54DC0},
-	{0x4DFF, 0x54DFF},
-	{0x4E00, 0x14E00},
-	{0x9FCB, 0x19FCB},
-	{0xA000, 0x5A000},
-	{0xF8FF, 0x5F8FF},
-	{0xF900, 0x1F900},
-	{0xFA23, 0x1FA23},
-	{0xFAD9, 0x1FAD9},
-	{0xFB00, 0x5FB00},
-	{0x20000, 0x40000},
-	{0x2B81C, 0x4B81C},
-	{unicode.MaxRune, 0x15FFFF}, // maximum primary value
-}
-
-func TestImplicit(t *testing.T) {
-	for _, tt := range implicitTests {
-		if p := implicitPrimary(tt.r); p != tt.p {
-			t.Errorf("%U: was %X; want %X", tt.r, p, tt.p)
-		}
-	}
-}
-
-func TestUpdateTertiary(t *testing.T) {
-	tests := []struct {
-		in, out Elem
-		t       uint8
-	}{
-		{0x4000FE20, 0x0000FE8A, 0x0A},
-		{0x4000FE21, 0x0000FEAA, 0x0A},
-		{0x0000FE8B, 0x0000FE83, 0x03},
-		{0x82FF0188, 0x9BFF0188, 0x1B},
-		{0xAFF0CC02, 0xAFF0CC1B, 0x1B},
-	}
-	for i, tt := range tests {
-		if out := tt.in.updateTertiary(tt.t); out != tt.out {
-			t.Errorf("%d: was %X; want %X", i, out, tt.out)
-		}
-	}
-}
-
-func TestDoNorm(t *testing.T) {
-	const div = -1 // The insertion point of the next block.
-	tests := []struct {
-		in, out []int
-	}{
-		{in: []int{4, div, 3},
-			out: []int{3, 4},
-		},
-		{in: []int{4, div, 3, 3, 3},
-			out: []int{3, 3, 3, 4},
-		},
-		{in: []int{0, 4, div, 3},
-			out: []int{0, 3, 4},
-		},
-		{in: []int{0, 0, 4, 5, div, 3, 3},
-			out: []int{0, 0, 3, 3, 4, 5},
-		},
-		{in: []int{0, 0, 1, 4, 5, div, 3, 3},
-			out: []int{0, 0, 1, 3, 3, 4, 5},
-		},
-		{in: []int{0, 0, 1, 4, 5, div, 4, 4},
-			out: []int{0, 0, 1, 4, 4, 4, 5},
-		},
-	}
-	for j, tt := range tests {
-		i := iter{}
-		var w, p, s int
-		for k, cc := range tt.in {
-			if cc == 0 {
-				s = 0
-			}
-			if cc == div {
-				w = 100
-				p = k
-				i.pStarter = s
-				continue
-			}
-			i.ce = append(i.ce, makeCE([]int{w, 20, 2, cc}))
-		}
-		i.prevCCC = i.ce[p-1].CCC()
-		i.doNorm(p, i.ce[p].CCC())
-		if len(i.ce) != len(tt.out) {
-			t.Errorf("%d: length was %d; want %d", j, len(i.ce), len(tt.out))
-		}
-		prevCCC := uint8(0)
-		for k, ce := range i.ce {
-			if int(ce.CCC()) != tt.out[k] {
-				t.Errorf("%d:%d: unexpected CCC. Was %d; want %d", j, k, ce.CCC(), tt.out[k])
-			}
-			if k > 0 && ce.CCC() == prevCCC && i.ce[k-1].Primary() > ce.Primary() {
-				t.Errorf("%d:%d: normalization crossed across CCC boundary.", j, k)
-			}
-		}
-	}
-	// test cutoff of large sequence of combining characters.
-	result := []uint8{8, 8, 8, 5, 5}
-	for o := -2; o <= 2; o++ {
-		i := iter{pStarter: 2, prevCCC: 8}
-		n := maxCombiningCharacters + 1 + o
-		for j := 1; j < n+i.pStarter; j++ {
-			i.ce = append(i.ce, makeCE([]int{100, 20, 2, 8}))
-		}
-		p := len(i.ce)
-		i.ce = append(i.ce, makeCE([]int{0, 20, 2, 5}))
-		i.doNorm(p, 5)
-		if i.prevCCC != result[o+2] {
-			t.Errorf("%d: i.prevCCC was %d; want %d", n, i.prevCCC, result[o+2])
-		}
-		if result[o+2] == 5 && i.pStarter != p {
-			t.Errorf("%d: i.pStarter was %d; want %d", n, i.pStarter, p)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/collate.go gcc-4.8.1/libgo/go/exp/locale/collate/collate.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/collate.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/collate.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,586 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package collate contains types for comparing and sorting Unicode strings
-// according to a given collation order.  Package locale provides a high-level
-// interface to collation. Users should typically use that package instead.
-package collate
-
-import (
-	"bytes"
-	"exp/norm"
-)
-
-// AlternateHandling identifies the various ways in which variables are handled.
-// A rune with a primary weight lower than the variable top is considered a
-// variable.
-// See http://www.unicode.org/reports/tr10/#Variable_Weighting for details.
-type AlternateHandling int
-
-const (
-	// AltNonIgnorable turns off special handling of variables.
-	AltNonIgnorable AlternateHandling = iota
-
-	// AltBlanked sets variables and all subsequent primary ignorables to be
-	// ignorable at all levels. This is identical to removing all variables
-	// and subsequent primary ignorables from the input.
-	AltBlanked
-
-	// AltShifted sets variables to be ignorable for levels one through three and
-	// adds a fourth level based on the values of the ignored levels.
-	AltShifted
-
-	// AltShiftTrimmed is a slight variant of AltShifted that is used to
-	// emulate POSIX.
-	AltShiftTrimmed
-)
-
-// Collator provides functionality for comparing strings for a given
-// collation order.
-type Collator struct {
-	// TODO: hide most of these options. Low-level options are set through the locale
-	// identifier (as defined by LDML) while high-level options are set through SetOptions.
-	// Using high-level options allows us to be more flexible (such as not ignoring
-	// Thai vowels for IgnoreDiacriticals) and more user-friendly (such as allowing
-	// diacritical marks to be ignored but not case without having to fiddle with levels).
-
-	// Strength sets the maximum level to use in comparison.
-	Strength Level
-
-	// Alternate specifies an alternative handling of variables.
-	Alternate AlternateHandling
-
-	// Backwards specifies the order of sorting at the secondary level.
-	// This option exists predominantly to support reverse sorting of accents in French.
-	Backwards bool
-
-	// TODO: implement:
-	// With HiraganaQuaternary enabled, Hiragana codepoints will get lower values
-	// than all the other non-variable code points. Strength must be greater or
-	// equal to Quaternary for this to take effect.
-	HiraganaQuaternary bool
-
-	// If CaseLevel is true, a level consisting only of case characteristics will
-	// be inserted in front of the tertiary level.  To ignore accents but take
-	// cases into account, set Strength to Primary and CaseLevel to true.
-	CaseLevel bool
-
-	// If Numeric is true, any sequence of decimal digits (category is Nd) is sorted
-	// at a primary level with its numeric value.  For example, "A-21" < "A-123".
-	Numeric bool
-
-	// The largest primary value that is considered to be variable.
-	variableTop uint32
-
-	f norm.Form
-
-	t Weigher
-
-	sorter sorter
-
-	_iter [2]iter
-}
-
-// An Option is used to change the behavior of Collator.  They override the
-// settings passed through the locale identifier.
-type Option int
-
-const (
-	Numeric          Option = 1 << iota // Sort numbers numerically ("2" < "12").
-	IgnoreCase                          // Case-insensitive search.
-	IgnoreDiacritics                    // Ignore diacritical marks. ("o" == "Ã¶").
-	IgnoreWidth                         // Ignore full versus normal width.
-	UpperFirst                          // Sort upper case before lower case.
-	LowerFirst                          // Sort lower case before upper case.
-	Force                               // Force ordering if strings are equivalent but not equal.
-
-	Loose = IgnoreDiacritics | IgnoreWidth | IgnoreCase
-)
-
-// SetOptions accepts a Options or-ed together.  All previous calls to SetOptions are ignored.
-func (c *Collator) SetOptions(o Option) {
-	// TODO: implement
-}
-
-func (c *Collator) iter(i int) *iter {
-	// TODO: evaluate performance for making the second iterator optional.
-	return &c._iter[i]
-}
-
-// Locales returns the list of locales for which collating differs from its parent locale.
-// The returned value should not be modified.
-func Locales() []string {
-	return availableLocales
-}
-
-// New returns a new Collator initialized for the given locale.
-func New(loc string) *Collator {
-	// TODO: handle locale selection according to spec.
-	var t tableIndex
-	if loc != "" {
-		if idx, ok := locales[loc]; ok {
-			t = idx
-		} else {
-			t = locales["root"]
-		}
-	}
-	return NewFromTable(Init(t))
-}
-
-func NewFromTable(t Weigher) *Collator {
-	c := &Collator{
-		Strength: Tertiary,
-		f:        norm.NFD,
-		t:        t,
-	}
-	c._iter[0].init(c)
-	c._iter[1].init(c)
-	return c
-}
-
-// Buffer holds keys generated by Key and KeyString.
-type Buffer struct {
-	buf [4096]byte
-	key []byte
-}
-
-func (b *Buffer) init() {
-	if b.key == nil {
-		b.key = b.buf[:0]
-	}
-}
-
-// Reset clears the buffer from previous results generated by Key and KeyString.
-func (b *Buffer) Reset() {
-	b.key = b.key[:0]
-}
-
-// Compare returns an integer comparing the two byte slices.
-// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
-func (c *Collator) Compare(a, b []byte) int {
-	// TODO: skip identical prefixes once we have a fast way to detect if a rune is
-	// part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest.
-	c.iter(0).setInput(a)
-	c.iter(1).setInput(b)
-	if res := c.compare(); res != 0 {
-		return res
-	}
-	if Identity == c.Strength {
-		return bytes.Compare(a, b)
-	}
-	return 0
-}
-
-// CompareString returns an integer comparing the two strings.
-// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
-func (c *Collator) CompareString(a, b string) int {
-	// TODO: skip identical prefixes once we have a fast way to detect if a rune is
-	// part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest.
-	c.iter(0).setInputString(a)
-	c.iter(1).setInputString(b)
-	if res := c.compare(); res != 0 {
-		return res
-	}
-	if Identity == c.Strength {
-		if a < b {
-			return -1
-		} else if a > b {
-			return 1
-		}
-	}
-	return 0
-}
-
-func compareLevel(f func(i *iter) int, a, b *iter) int {
-	a.pce = 0
-	b.pce = 0
-	for {
-		va := f(a)
-		vb := f(b)
-		if va != vb {
-			if va < vb {
-				return -1
-			}
-			return 1
-		} else if va == 0 {
-			break
-		}
-	}
-	return 0
-}
-
-func (c *Collator) compare() int {
-	ia, ib := c.iter(0), c.iter(1)
-	// Process primary level
-	if c.Alternate != AltShifted {
-		// TODO: implement script reordering
-		// TODO: special hiragana handling
-		if res := compareLevel((*iter).nextPrimary, ia, ib); res != 0 {
-			return res
-		}
-	} else {
-		// TODO: handle shifted
-	}
-	if Secondary <= c.Strength {
-		f := (*iter).nextSecondary
-		if c.Backwards {
-			f = (*iter).prevSecondary
-		}
-		if res := compareLevel(f, ia, ib); res != 0 {
-			return res
-		}
-	}
-	// TODO: special case handling (Danish?)
-	if Tertiary <= c.Strength || c.CaseLevel {
-		if res := compareLevel((*iter).nextTertiary, ia, ib); res != 0 {
-			return res
-		}
-		// TODO: Not needed for the default value of AltNonIgnorable?
-		if Quaternary <= c.Strength {
-			if res := compareLevel((*iter).nextQuaternary, ia, ib); res != 0 {
-				return res
-			}
-		}
-	}
-	return 0
-}
-
-// Key returns the collation key for str.
-// Passing the buffer buf may avoid memory allocations.
-// The returned slice will point to an allocation in Buffer and will remain
-// valid until the next call to buf.Reset().
-func (c *Collator) Key(buf *Buffer, str []byte) []byte {
-	// See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details.
-	buf.init()
-	return c.key(buf, c.getColElems(str))
-}
-
-// KeyFromString returns the collation key for str.
-// Passing the buffer buf may avoid memory allocations.
-// The returned slice will point to an allocation in Buffer and will retain
-// valid until the next call to buf.ResetKeys().
-func (c *Collator) KeyFromString(buf *Buffer, str string) []byte {
-	// See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details.
-	buf.init()
-	return c.key(buf, c.getColElemsString(str))
-}
-
-func (c *Collator) key(buf *Buffer, w []Elem) []byte {
-	processWeights(c.Alternate, c.variableTop, w)
-	kn := len(buf.key)
-	c.keyFromElems(buf, w)
-	return buf.key[kn:]
-}
-
-func (c *Collator) getColElems(str []byte) []Elem {
-	i := c.iter(0)
-	i.setInput(str)
-	for i.next() {
-	}
-	return i.ce
-}
-
-func (c *Collator) getColElemsString(str string) []Elem {
-	i := c.iter(0)
-	i.setInputString(str)
-	for i.next() {
-	}
-	return i.ce
-}
-
-type iter struct {
-	bytes []byte
-	str   string
-
-	wa  [512]Elem
-	ce  []Elem
-	pce int
-	nce int // nce <= len(nce)
-
-	prevCCC  uint8
-	pStarter int
-
-	t Weigher
-}
-
-func (i *iter) init(c *Collator) {
-	i.t = c.t
-	i.ce = i.wa[:0]
-}
-
-func (i *iter) reset() {
-	i.ce = i.ce[:0]
-	i.nce = 0
-	i.prevCCC = 0
-	i.pStarter = 0
-}
-
-func (i *iter) setInput(s []byte) *iter {
-	i.bytes = s
-	i.str = ""
-	i.reset()
-	return i
-}
-
-func (i *iter) setInputString(s string) *iter {
-	i.str = s
-	i.bytes = nil
-	i.reset()
-	return i
-}
-
-func (i *iter) done() bool {
-	return len(i.str) == 0 && len(i.bytes) == 0
-}
-
-func (i *iter) tail(n int) {
-	if i.bytes == nil {
-		i.str = i.str[n:]
-	} else {
-		i.bytes = i.bytes[n:]
-	}
-}
-
-func (i *iter) appendNext() int {
-	var sz int
-	if i.bytes == nil {
-		i.ce, sz = i.t.AppendNextString(i.ce, i.str)
-	} else {
-		i.ce, sz = i.t.AppendNext(i.ce, i.bytes)
-	}
-	return sz
-}
-
-// next appends Elems to the internal array until it adds an element with CCC=0.
-// In the majority of cases, a Elem with a primary value > 0 will have
-// a CCC of 0. The CCC values of colation elements are also used to detect if the
-// input string was not normalized and to adjust the result accordingly.
-func (i *iter) next() bool {
-	for !i.done() {
-		p0 := len(i.ce)
-		sz := i.appendNext()
-		i.tail(sz)
-		last := len(i.ce) - 1
-		if ccc := i.ce[last].CCC(); ccc == 0 {
-			i.nce = len(i.ce)
-			i.pStarter = last
-			i.prevCCC = 0
-			return true
-		} else if p0 < last && i.ce[p0].CCC() == 0 {
-			// set i.nce to only cover part of i.ce for which ccc == 0 and
-			// use rest the next call to next.
-			for p0++; p0 < last && i.ce[p0].CCC() == 0; p0++ {
-			}
-			i.nce = p0
-			i.pStarter = p0 - 1
-			i.prevCCC = ccc
-			return true
-		} else if ccc < i.prevCCC {
-			i.doNorm(p0, ccc) // should be rare for most common cases
-		} else {
-			i.prevCCC = ccc
-		}
-	}
-	if len(i.ce) != i.nce {
-		i.nce = len(i.ce)
-		return true
-	}
-	return false
-}
-
-// nextPlain is the same as next, but does not "normalize" the collation
-// elements.
-// TODO: remove this function. Using this instead of next does not seem
-// to improve performance in any significant way. We retain this until
-// later for evaluation purposes.
-func (i *iter) nextPlain() bool {
-	if i.done() {
-		return false
-	}
-	sz := i.appendNext()
-	i.tail(sz)
-	i.nce = len(i.ce)
-	return true
-}
-
-const maxCombiningCharacters = 30
-
-// doNorm reorders the collation elements in i.ce.
-// It assumes that blocks of collation elements added with appendNext
-// either start and end with the same CCC or start with CCC == 0.
-// This allows for a single insertion point for the entire block.
-// The correctness of this assumption is verified in builder.go.
-func (i *iter) doNorm(p int, ccc uint8) {
-	if p-i.pStarter > maxCombiningCharacters {
-		i.prevCCC = i.ce[len(i.ce)-1].CCC()
-		i.pStarter = len(i.ce) - 1
-		return
-	}
-	n := len(i.ce)
-	k := p
-	for p--; p > i.pStarter && ccc < i.ce[p-1].CCC(); p-- {
-	}
-	i.ce = append(i.ce, i.ce[p:k]...)
-	copy(i.ce[p:], i.ce[k:])
-	i.ce = i.ce[:n]
-}
-
-func (i *iter) nextPrimary() int {
-	for {
-		for ; i.pce < i.nce; i.pce++ {
-			if v := i.ce[i.pce].Primary(); v != 0 {
-				i.pce++
-				return v
-			}
-		}
-		if !i.next() {
-			return 0
-		}
-	}
-	panic("should not reach here")
-}
-
-func (i *iter) nextSecondary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Secondary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func (i *iter) prevSecondary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[len(i.ce)-i.pce-1].Secondary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func (i *iter) nextTertiary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Tertiary(); v != 0 {
-			i.pce++
-			return int(v)
-		}
-	}
-	return 0
-}
-
-func (i *iter) nextQuaternary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Quaternary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func appendPrimary(key []byte, p int) []byte {
-	// Convert to variable length encoding; supports up to 23 bits.
-	if p <= 0x7FFF {
-		key = append(key, uint8(p>>8), uint8(p))
-	} else {
-		key = append(key, uint8(p>>16)|0x80, uint8(p>>8), uint8(p))
-	}
-	return key
-}
-
-// keyFromElems converts the weights ws to a compact sequence of bytes.
-// The result will be appended to the byte buffer in buf.
-func (c *Collator) keyFromElems(buf *Buffer, ws []Elem) {
-	for _, v := range ws {
-		if w := v.Primary(); w > 0 {
-			buf.key = appendPrimary(buf.key, w)
-		}
-	}
-	if Secondary <= c.Strength {
-		buf.key = append(buf.key, 0, 0)
-		// TODO: we can use one 0 if we can guarantee that all non-zero weights are > 0xFF.
-		if !c.Backwards {
-			for _, v := range ws {
-				if w := v.Secondary(); w > 0 {
-					buf.key = append(buf.key, uint8(w>>8), uint8(w))
-				}
-			}
-		} else {
-			for i := len(ws) - 1; i >= 0; i-- {
-				if w := ws[i].Secondary(); w > 0 {
-					buf.key = append(buf.key, uint8(w>>8), uint8(w))
-				}
-			}
-		}
-	} else if c.CaseLevel {
-		buf.key = append(buf.key, 0, 0)
-	}
-	if Tertiary <= c.Strength || c.CaseLevel {
-		buf.key = append(buf.key, 0, 0)
-		for _, v := range ws {
-			if w := v.Tertiary(); w > 0 {
-				buf.key = append(buf.key, uint8(w))
-			}
-		}
-		// Derive the quaternary weights from the options and other levels.
-		// Note that we represent MaxQuaternary as 0xFF. The first byte of the
-		// representation of a primary weight is always smaller than 0xFF,
-		// so using this single byte value will compare correctly.
-		if Quaternary <= c.Strength && c.Alternate >= AltShifted {
-			if c.Alternate == AltShiftTrimmed {
-				lastNonFFFF := len(buf.key)
-				buf.key = append(buf.key, 0)
-				for _, v := range ws {
-					if w := v.Quaternary(); w == MaxQuaternary {
-						buf.key = append(buf.key, 0xFF)
-					} else if w > 0 {
-						buf.key = appendPrimary(buf.key, w)
-						lastNonFFFF = len(buf.key)
-					}
-				}
-				buf.key = buf.key[:lastNonFFFF]
-			} else {
-				buf.key = append(buf.key, 0)
-				for _, v := range ws {
-					if w := v.Quaternary(); w == MaxQuaternary {
-						buf.key = append(buf.key, 0xFF)
-					} else if w > 0 {
-						buf.key = appendPrimary(buf.key, w)
-					}
-				}
-			}
-		}
-	}
-}
-
-func processWeights(vw AlternateHandling, top uint32, wa []Elem) {
-	ignore := false
-	vtop := int(top)
-	switch vw {
-	case AltShifted, AltShiftTrimmed:
-		for i := range wa {
-			if p := wa[i].Primary(); p <= vtop && p != 0 {
-				wa[i] = MakeQuaternary(p)
-				ignore = true
-			} else if p == 0 {
-				if ignore {
-					wa[i] = ceIgnore
-				}
-			} else {
-				ignore = false
-			}
-		}
-	case AltBlanked:
-		for i := range wa {
-			if p := wa[i].Primary(); p <= vtop && (ignore || p != 0) {
-				wa[i] = ceIgnore
-				ignore = true
-			} else {
-				ignore = false
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colltab.go gcc-4.8.1/libgo/go/exp/locale/collate/colltab.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colltab.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colltab.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// A Weigher can be used as a source for Collator and Searcher.
-type Weigher interface {
-	// Start finds the start of the segment that includes position p.
-	Start(p int, b []byte) int
-
-	// StartString finds the start of the segment that includes position p.
-	StartString(p int, s string) int
-
-	// AppendNext appends Elems to buf corresponding to the longest match
-	// of a single character or contraction from the start of s.
-	// It returns the new buf and the number of bytes consumed.
-	AppendNext(buf []Elem, s []byte) (ce []Elem, n int)
-
-	// AppendNextString appends Elems to buf corresponding to the longest match
-	// of a single character or contraction from the start of s.
-	// It returns the new buf and the number of bytes consumed.
-	AppendNextString(buf []Elem, s string) (ce []Elem, n int)
-
-	// Domain returns a slice of all single characters and contractions for which
-	// collation elements are defined in this table.
-	Domain() []string
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract.go gcc-4.8.1/libgo/go/exp/locale/collate/contract.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/contract.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,145 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import "unicode/utf8"
-
-// For a description of contractTrieSet, see exp/locale/collate/build/contract.go.
-
-type contractTrieSet []struct{ l, h, n, i uint8 }
-
-// ctScanner is used to match a trie to an input sequence.
-// A contraction may match a non-contiguous sequence of bytes in an input string.
-// For example, if there is a contraction for <a, combining_ring>, it should match
-// the sequence <a, combining_cedilla, combining_ring>, as combining_cedilla does
-// not block combining_ring.
-// ctScanner does not automatically skip over non-blocking non-starters, but rather
-// retains the state of the last match and leaves it up to the user to continue
-// the match at the appropriate points.
-type ctScanner struct {
-	states contractTrieSet
-	s      []byte
-	n      int
-	index  int
-	pindex int
-	done   bool
-}
-
-type ctScannerString struct {
-	states contractTrieSet
-	s      string
-	n      int
-	index  int
-	pindex int
-	done   bool
-}
-
-func (t contractTrieSet) scanner(index, n int, b []byte) ctScanner {
-	return ctScanner{s: b, states: t[index:], n: n}
-}
-
-func (t contractTrieSet) scannerString(index, n int, str string) ctScannerString {
-	return ctScannerString{s: str, states: t[index:], n: n}
-}
-
-// result returns the offset i and bytes consumed p so far.  If no suffix
-// matched, i and p will be 0.
-func (s *ctScanner) result() (i, p int) {
-	return s.index, s.pindex
-}
-
-func (s *ctScannerString) result() (i, p int) {
-	return s.index, s.pindex
-}
-
-const (
-	final   = 0
-	noIndex = 0xFF
-)
-
-// scan matches the longest suffix at the current location in the input
-// and returns the number of bytes consumed.
-func (s *ctScanner) scan(p int) int {
-	pr := p // the p at the rune start
-	str := s.s
-	states, n := s.states, s.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		// TODO: a significant number of contractions are of a form that
-		// cannot match discontiguous UTF-8 in a normalized string. We could let
-		// a negative value of e.n mean that we can set s.done = true and avoid
-		// the need for additional matches.
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					s.index = int(e.i)
-					s.pindex = p
-				}
-				if e.n != final {
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-					if p >= len(str) || utf8.RuneStart(str[p]) {
-						s.states, s.n, pr = states, n, p
-					}
-				} else {
-					s.done = true
-					return p
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				s.done = true
-				s.index = int(c-e.l) + int(e.i)
-				s.pindex = p
-				return p
-			}
-		}
-		i++
-	}
-	return pr
-}
-
-// scan is a verbatim copy of ctScanner.scan.
-func (s *ctScannerString) scan(p int) int {
-	pr := p // the p at the rune start
-	str := s.s
-	states, n := s.states, s.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		// TODO: a significant number of contractions are of a form that
-		// cannot match discontiguous UTF-8 in a normalized string. We could let
-		// a negative value of e.n mean that we can set s.done = true and avoid
-		// the need for additional matches.
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					s.index = int(e.i)
-					s.pindex = p
-				}
-				if e.n != final {
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-					if p >= len(str) || utf8.RuneStart(str[p]) {
-						s.states, s.n, pr = states, n, p
-					}
-				} else {
-					s.done = true
-					return p
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				s.done = true
-				s.index = int(c-e.l) + int(e.i)
-				s.pindex = p
-				return p
-			}
-		}
-		i++
-	}
-	return pr
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract_test.go gcc-4.8.1/libgo/go/exp/locale/collate/contract_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/contract_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,132 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-)
-
-type lookupStrings struct {
-	str    string
-	offset int
-	n      int // bytes consumed from input
-}
-
-type LookupTest struct {
-	lookup []lookupStrings
-	n      int
-	tries  contractTrieSet
-}
-
-var lookupTests = []LookupTest{
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"a", 0, 0},
-		{"b", 0, 0},
-		{"c", 0, 0},
-		{"d", 0, 0},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 0xFF},
-			{'c', 'c', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"abd", 2, 3},
-		{"abe", 3, 3},
-		{"a", 0, 0},
-		{"ab", 0, 0},
-		{"d", 0, 0},
-		{"f", 0, 0},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 0xFF},
-			{'c', 'e', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"ab", 2, 2},
-		{"a", 3, 1},
-		{"abcd", 1, 3},
-		{"abe", 2, 2},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 3},
-			{'b', 0, 1, 2},
-			{'c', 'c', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"abd", 2, 3},
-		{"ab", 3, 2},
-		{"ac", 4, 2},
-		{"a", 5, 1},
-		{"b", 6, 1},
-		{"ba", 6, 1},
-	},
-		2,
-		contractTrieSet{
-			{'b', 'b', 0, 6},
-			{'a', 0, 2, 5},
-			{'c', 'c', 0, 4},
-			{'b', 0, 1, 3},
-			{'c', 'd', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"bcde", 2, 4},
-		{"bc", 7, 2},
-		{"ab", 6, 2},
-		{"bcd", 5, 3},
-		{"abcd", 1, 4},
-		{"abc", 4, 3},
-		{"bcdf", 3, 4},
-	},
-		2,
-		contractTrieSet{
-			{'b', 3, 1, 0xFF},
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 6},
-			{'c', 0, 1, 4},
-			{'d', 'd', 0, 1},
-			{'c', 0, 1, 7},
-			{'d', 0, 1, 5},
-			{'e', 'f', 0, 2},
-		},
-	},
-}
-
-func lookup(c *contractTrieSet, nnode int, s []uint8) (i, n int) {
-	scan := c.scanner(0, nnode, s)
-	scan.scan(0)
-	return scan.result()
-}
-
-func TestLookupContraction(t *testing.T) {
-	for i, tt := range lookupTests {
-		cts := contractTrieSet(tt.tries)
-		for j, lu := range tt.lookup {
-			str := lu.str
-			for _, s := range []string{str, str + "X"} {
-				const msg = `%d:%d: %s of "%s" %v; want %v`
-				offset, n := lookup(&cts, tt.n, []byte(s))
-				if offset != lu.offset {
-					t.Errorf(msg, i, j, "offset", s, offset, lu.offset)
-				}
-				if n != lu.n {
-					t.Errorf(msg, i, j, "bytes consumed", s, n, len(str))
-				}
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/export.go gcc-4.8.1/libgo/go/exp/locale/collate/export.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/export.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/export.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,36 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// Init is for internal use only.
-func Init(data interface{}) Weigher {
-	init, ok := data.(tableInitializer)
-	if !ok {
-		return nil
-	}
-	t := &table{}
-	loff, voff := init.FirstBlockOffsets()
-	t.index.index = init.TrieIndex()
-	t.index.index0 = t.index.index[blockSize*int(loff):]
-	t.index.values = init.TrieValues()
-	t.index.values0 = t.index.values[blockSize*int(voff):]
-	t.expandElem = init.ExpandElems()
-	t.contractTries = init.ContractTries()
-	t.contractElem = init.ContractElems()
-	t.maxContractLen = init.MaxContractLen()
-	t.variableTop = init.VariableTop()
-	return t
-}
-
-type tableInitializer interface {
-	TrieIndex() []uint16
-	TrieValues() []uint32
-	FirstBlockOffsets() (lookup, value uint16)
-	ExpandElems() []uint32
-	ContractTries() []struct{ l, h, n, i uint8 }
-	ContractElems() []uint32
-	MaxContractLen() int
-	VariableTop() uint32
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/export_test.go gcc-4.8.1/libgo/go/exp/locale/collate/export_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/export_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/export_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// Export for testing.
-
-import (
-	"fmt"
-)
-
-type Weights struct {
-	Primary, Secondary, Tertiary, Quaternary int
-}
-
-func W(ce ...int) Weights {
-	w := Weights{ce[0], defaultSecondary, defaultTertiary, 0}
-	if len(ce) > 1 {
-		w.Secondary = ce[1]
-	}
-	if len(ce) > 2 {
-		w.Tertiary = ce[2]
-	}
-	if len(ce) > 3 {
-		w.Quaternary = ce[3]
-	} else if w.Tertiary != 0 {
-		w.Quaternary = MaxQuaternary
-	}
-	return w
-}
-func (w Weights) String() string {
-	return fmt.Sprintf("[%X.%X.%X.%X]", w.Primary, w.Secondary, w.Tertiary, w.Quaternary)
-}
-
-type Table struct {
-	t Weigher
-}
-
-func GetTable(c *Collator) *Table {
-	return &Table{c.t}
-}
-
-func convertToWeights(ws []Elem) []Weights {
-	out := make([]Weights, len(ws))
-	for i, w := range ws {
-		out[i] = Weights{int(w.Primary()), int(w.Secondary()), int(w.Tertiary()), int(w.Quaternary())}
-	}
-	return out
-}
-
-func convertFromWeights(ws []Weights) []Elem {
-	out := make([]Elem, len(ws))
-	for i, w := range ws {
-		out[i] = makeCE([]int{w.Primary, w.Secondary, w.Tertiary, 0})
-		if out[i] == ceIgnore && w.Quaternary > 0 {
-			out[i] = MakeQuaternary(w.Quaternary)
-		}
-	}
-	return out
-}
-
-func (t *Table) AppendNext(s []byte) ([]Weights, int) {
-	w, n := t.t.AppendNext(nil, s)
-	return convertToWeights(w), n
-}
-
-func SetTop(c *Collator, top int) {
-	if c.t == nil {
-		c.t = &table{}
-	}
-	c.variableTop = uint32(top)
-}
-
-func GetColElems(c *Collator, str []byte) []Weights {
-	ce := c.getColElems(str)
-	return convertToWeights(ce)
-}
-
-func ProcessWeights(h AlternateHandling, top int, w []Weights) []Weights {
-	in := convertFromWeights(w)
-	processWeights(h, uint32(top), in)
-	return convertToWeights(in)
-}
-
-func KeyFromElems(c *Collator, buf *Buffer, w []Weights) []byte {
-	k := len(buf.key)
-	c.keyFromElems(buf, convertFromWeights(w))
-	return buf.key[k:]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/maketables.go gcc-4.8.1/libgo/go/exp/locale/collate/maketables.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/maketables.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/maketables.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,722 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Collation table generator.
-// Data read from the web.
-
-package main
-
-import (
-	"archive/zip"
-	"bufio"
-	"bytes"
-	"encoding/xml"
-	"exp/locale/collate"
-	"exp/locale/collate/build"
-	"flag"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"sort"
-	"strconv"
-	"strings"
-	"unicode"
-	"unicode/utf8"
-)
-
-var (
-	root = flag.String("root",
-		"http://unicode.org/Public/UCA/"+unicode.Version+"/CollationAuxiliary.zip",
-		`URL of the Default Unicode Collation Element Table (DUCET). This can be a zip
-file containing the file allkeys_CLDR.txt or an allkeys.txt file.`)
-	cldr = flag.String("cldr",
-		"http://www.unicode.org/Public/cldr/22/core.zip",
-		"URL of CLDR archive.")
-	test = flag.Bool("test", false,
-		"test existing tables; can be used to compare web data with package data.")
-	localFiles = flag.Bool("local", false,
-		"data files have been copied to the current directory; for debugging only.")
-	short = flag.Bool("short", false, `Use "short" alternatives, when available.`)
-	draft = flag.Bool("draft", false, `Use draft versions, when available.`)
-	tags  = flag.String("tags", "", "build tags to be included after +build directive")
-	pkg   = flag.String("package", "collate",
-		"the name of the package in which the generated file is to be included")
-
-	tables = flagStringSetAllowAll("tables", "collate", "collate,chars",
-		"comma-spearated list of tables to generate.")
-	exclude = flagStringSet("exclude", "zh2", "",
-		"comma-separated list of languages to exclude.")
-	include = flagStringSet("include", "", "",
-		"comma-separated list of languages to include. Include trumps exclude.")
-	types = flagStringSetAllowAll("types", "", "",
-		"comma-separated list of types that should be included in addition to the standard type.")
-)
-
-// stringSet implements an ordered set based on a list.  It implements flag.Value
-// to allow a set to be specified as a comma-separated list.
-type stringSet struct {
-	s        []string
-	allowed  *stringSet
-	dirty    bool // needs compaction if true
-	all      bool
-	allowAll bool
-}
-
-func flagStringSet(name, def, allowed, usage string) *stringSet {
-	ss := &stringSet{}
-	if allowed != "" {
-		usage += fmt.Sprintf(" (allowed values: any of %s)", allowed)
-		ss.allowed = &stringSet{}
-		failOnError(ss.allowed.Set(allowed))
-	}
-	ss.Set(def)
-	flag.Var(ss, name, usage)
-	return ss
-}
-
-func flagStringSetAllowAll(name, def, allowed, usage string) *stringSet {
-	ss := &stringSet{allowAll: true}
-	if allowed == "" {
-		flag.Var(ss, name, usage+fmt.Sprintf(` Use "all" to select all.`))
-	} else {
-		ss.allowed = &stringSet{}
-		failOnError(ss.allowed.Set(allowed))
-		flag.Var(ss, name, usage+fmt.Sprintf(` (allowed values: "all" or any of %s)`, allowed))
-	}
-	ss.Set(def)
-	return ss
-}
-
-func (ss stringSet) Len() int {
-	return len(ss.s)
-}
-
-func (ss stringSet) String() string {
-	return strings.Join(ss.s, ",")
-}
-
-func (ss *stringSet) Set(s string) error {
-	if ss.allowAll && s == "all" {
-		ss.s = nil
-		ss.all = true
-		return nil
-	}
-	ss.s = ss.s[:0]
-	for _, s := range strings.Split(s, ",") {
-		if s := strings.TrimSpace(s); s != "" {
-			if ss.allowed != nil && !ss.allowed.contains(s) {
-				return fmt.Errorf("unsupported value %q; must be one of %s", s, ss.allowed)
-			}
-			ss.add(s)
-		}
-	}
-	ss.compact()
-	return nil
-}
-
-func (ss *stringSet) add(s string) {
-	ss.s = append(ss.s, s)
-	ss.dirty = true
-}
-
-func (ss *stringSet) values() []string {
-	ss.compact()
-	return ss.s
-}
-
-func (ss *stringSet) contains(s string) bool {
-	if ss.all {
-		return true
-	}
-	for _, v := range ss.s {
-		if v == s {
-			return true
-		}
-	}
-	return false
-}
-
-func (ss *stringSet) compact() {
-	if !ss.dirty {
-		return
-	}
-	a := ss.s
-	sort.Strings(a)
-	k := 0
-	for i := 1; i < len(a); i++ {
-		if a[k] != a[i] {
-			a[k+1] = a[i]
-			k++
-		}
-	}
-	ss.s = a[:k+1]
-	ss.dirty = false
-}
-
-func skipLang(l string) bool {
-	if include.Len() > 0 {
-		return !include.contains(l)
-	}
-	return exclude.contains(l)
-}
-
-func skipAlt(a string) bool {
-	if *draft && a == "proposed" {
-		return false
-	}
-	if *short && a == "short" {
-		return false
-	}
-	return true
-}
-
-func failOnError(e error) {
-	if e != nil {
-		log.Panic(e)
-	}
-}
-
-// openReader opens the URL or file given by url and returns it as an io.ReadCloser
-// or nil on error.
-func openReader(url *string) (io.ReadCloser, error) {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		*url = "file://" + path.Join(pwd, path.Base(*url))
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(*url)
-	if err != nil {
-		return nil, err
-	}
-	if resp.StatusCode != 200 {
-		return nil, fmt.Errorf(`bad GET status for "%s": %s`, *url, resp.Status)
-	}
-	return resp.Body, nil
-}
-
-func openArchive(url *string) *zip.Reader {
-	f, err := openReader(url)
-	failOnError(err)
-	buffer, err := ioutil.ReadAll(f)
-	f.Close()
-	failOnError(err)
-	archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
-	failOnError(err)
-	return archive
-}
-
-// parseUCA parses a Default Unicode Collation Element Table of the format
-// specified in http://www.unicode.org/reports/tr10/#File_Format.
-// It returns the variable top.
-func parseUCA(builder *build.Builder) {
-	var r io.ReadCloser
-	var err error
-	if strings.HasSuffix(*root, ".zip") {
-		for _, f := range openArchive(root).File {
-			if strings.HasSuffix(f.Name, "allkeys_CLDR.txt") {
-				r, err = f.Open()
-			}
-		}
-		if r == nil {
-			err = fmt.Errorf("file allkeys_CLDR.txt not found in archive %q", *root)
-		}
-	} else {
-		r, err = openReader(root)
-	}
-	failOnError(err)
-	defer r.Close()
-	input := bufio.NewReader(r)
-	colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`)
-	for i := 1; err == nil; i++ {
-		l, prefix, e := input.ReadLine()
-		err = e
-		line := string(l)
-		if prefix {
-			log.Fatalf("%d: buffer overflow", i)
-		}
-		if err != nil && err != io.EOF {
-			log.Fatalf("%d: %v", i, err)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		if line[0] == '@' {
-			// parse properties
-			switch {
-			case strings.HasPrefix(line[1:], "version "):
-				a := strings.Split(line[1:], " ")
-				if a[1] != unicode.Version {
-					log.Fatalf("incompatible version %s; want %s", a[1], unicode.Version)
-				}
-			case strings.HasPrefix(line[1:], "backwards "):
-				log.Fatalf("%d: unsupported option backwards", i)
-			default:
-				log.Printf("%d: unknown option %s", i, line[1:])
-			}
-		} else {
-			// parse entries
-			part := strings.Split(line, " ; ")
-			if len(part) != 2 {
-				log.Fatalf("%d: production rule without ';': %v", i, line)
-			}
-			lhs := []rune{}
-			for _, v := range strings.Split(part[0], " ") {
-				if v == "" {
-					continue
-				}
-				lhs = append(lhs, rune(convHex(i, v)))
-			}
-			var n int
-			var vars []int
-			rhs := [][]int{}
-			for i, m := range colelem.FindAllStringSubmatch(part[1], -1) {
-				n += len(m[0])
-				elem := []int{}
-				for _, h := range strings.Split(m[2], ".") {
-					elem = append(elem, convHex(i, h))
-				}
-				if m[1] == "*" {
-					vars = append(vars, i)
-				}
-				rhs = append(rhs, elem)
-			}
-			if len(part[1]) < n+3 || part[1][n+1] != '#' {
-				log.Fatalf("%d: expected comment; found %s", i, part[1][n:])
-			}
-			if *test {
-				testInput.add(string(lhs))
-			}
-			failOnError(builder.Add(lhs, rhs, vars))
-		}
-	}
-}
-
-func convHex(line int, s string) int {
-	r, e := strconv.ParseInt(s, 16, 32)
-	if e != nil {
-		log.Fatalf("%d: %v", line, e)
-	}
-	return int(r)
-}
-
-var testInput = stringSet{}
-
-// LDML holds all collation information parsed from an LDML XML file.
-// The format of these files is defined in http://unicode.org/reports/tr35/.
-type LDML struct {
-	XMLName   xml.Name `xml:"ldml"`
-	Language  Attr     `xml:"identity>language"`
-	Territory Attr     `xml:"identity>territory"`
-	Chars     *struct {
-		ExemplarCharacters []AttrValue `xml:"exemplarCharacters"`
-		MoreInformaton     string      `xml:"moreInformation,omitempty"`
-	} `xml:"characters"`
-	Default    Attr        `xml:"collations>default"`
-	Collations []Collation `xml:"collations>collation"`
-}
-
-type Attr struct {
-	XMLName xml.Name
-	Attr    string `xml:"type,attr"`
-}
-
-func (t Attr) String() string {
-	return t.Attr
-}
-
-type AttrValue struct {
-	Type  string `xml:"type,attr"`
-	Key   string `xml:"key,attr,omitempty"`
-	Draft string `xml:"draft,attr,omitempty"`
-	Value string `xml:",innerxml"`
-}
-
-type Collation struct {
-	Type                string    `xml:"type,attr"`
-	Alt                 string    `xml:"alt,attr"`
-	SuppressContraction string    `xml:"suppress_contractions,omitempty"`
-	Settings            *Settings `xml:"settings"`
-	Optimize            string    `xml:"optimize"`
-	Rules               Rules     `xml:"rules"`
-}
-
-type Optimize struct {
-	XMLName xml.Name `xml:"optimize"`
-	Data    string   `xml:"chardata"`
-}
-
-type Suppression struct {
-	XMLName xml.Name `xml:"suppress_contractions"`
-	Data    string   `xml:"chardata"`
-}
-
-type Settings struct {
-	Strength            string `xml:"strenght,attr,omitempty"`
-	Backwards           string `xml:"backwards,attr,omitempty"`
-	Normalization       string `xml:"normalization,attr,omitempty"`
-	CaseLevel           string `xml:"caseLevel,attr,omitempty"`
-	CaseFirst           string `xml:"caseFirst,attr,omitempty"`
-	HiraganaQuarternary string `xml:"hiraganaQuartenary,attr,omitempty"`
-	Numeric             string `xml:"numeric,attr,omitempty"`
-	VariableTop         string `xml:"variableTop,attr,omitempty"`
-}
-
-type Rules struct {
-	XMLName xml.Name   `xml:"rules"`
-	Any     []RuleElem `xml:",any"`
-}
-
-type RuleElem struct {
-	XMLName xml.Name
-	Value   string     `xml:",innerxml"`
-	Before  string     `xml:"before,attr"`
-	Any     []RuleElem `xml:",any"` // for <x> elements
-}
-
-var charRe = regexp.MustCompile(`&#x([0-9A-F]*);`)
-var tagRe = regexp.MustCompile(`<([a-z_]*)  */>`)
-
-func (r *RuleElem) rewrite() {
-	// Convert hexadecimal Unicode codepoint notation to a string.
-	if m := charRe.FindAllStringSubmatch(r.Value, -1); m != nil {
-		runes := []rune{}
-		for _, sa := range m {
-			runes = append(runes, rune(convHex(-1, sa[1])))
-		}
-		r.Value = string(runes)
-	}
-	// Strip spaces from reset positions.
-	if m := tagRe.FindStringSubmatch(r.Value); m != nil {
-		r.Value = fmt.Sprintf("<%s/>", m[1])
-	}
-	for _, rr := range r.Any {
-		rr.rewrite()
-	}
-}
-
-func decodeXML(f *zip.File) *LDML {
-	r, err := f.Open()
-	failOnError(err)
-	d := xml.NewDecoder(r)
-	var x LDML
-	err = d.Decode(&x)
-	failOnError(err)
-	return &x
-}
-
-var mainLocales = []string{}
-
-// charsets holds a list of exemplar characters per category.
-type charSets map[string][]string
-
-func (p charSets) fprint(w io.Writer) {
-	fmt.Fprintln(w, "[exN]string{")
-	for i, k := range []string{"", "contractions", "punctuation", "auxiliary", "currencySymbol", "index"} {
-		if set := p[k]; len(set) != 0 {
-			fmt.Fprintf(w, "\t\t%d: %q,\n", i, strings.Join(set, " "))
-		}
-	}
-	fmt.Fprintln(w, "\t},")
-}
-
-var localeChars = make(map[string]charSets)
-
-const exemplarHeader = `
-type exemplarType int
-const (
-	exCharacters exemplarType = iota
-	exContractions
-	exPunctuation
-	exAuxiliary
-	exCurrency
-	exIndex
-	exN
-)
-`
-
-func printExemplarCharacters(w io.Writer) {
-	fmt.Fprintln(w, exemplarHeader)
-	fmt.Fprintln(w, "var exemplarCharacters = map[string][exN]string{")
-	for _, loc := range mainLocales {
-		fmt.Fprintf(w, "\t%q: ", loc)
-		localeChars[loc].fprint(w)
-	}
-	fmt.Fprintln(w, "}")
-}
-
-var mainRe = regexp.MustCompile(`.*/main/(.*)\.xml`)
-
-// parseMain parses XML files in the main directory of the CLDR core.zip file.
-func parseMain() {
-	for _, f := range openArchive(cldr).File {
-		if m := mainRe.FindStringSubmatch(f.Name); m != nil {
-			locale := m[1]
-			x := decodeXML(f)
-			if skipLang(x.Language.Attr) {
-				continue
-			}
-			if x.Chars != nil {
-				for _, ec := range x.Chars.ExemplarCharacters {
-					if ec.Draft != "" {
-						continue
-					}
-					if _, ok := localeChars[locale]; !ok {
-						mainLocales = append(mainLocales, locale)
-						localeChars[locale] = make(charSets)
-					}
-					localeChars[locale][ec.Type] = parseCharacters(ec.Value)
-				}
-			}
-		}
-	}
-}
-
-func parseCharacters(chars string) []string {
-	parseSingle := func(s string) (r rune, tail string, escaped bool) {
-		if s[0] == '\\' {
-			if s[1] == 'u' || s[1] == 'U' {
-				r, _, tail, err := strconv.UnquoteChar(s, 0)
-				failOnError(err)
-				return r, tail, false
-			} else if strings.HasPrefix(s[1:], "&amp;") {
-				return '&', s[6:], false
-			}
-			return rune(s[1]), s[2:], true
-		} else if strings.HasPrefix(s, "&quot;") {
-			return '"', s[6:], false
-		}
-		r, sz := utf8.DecodeRuneInString(s)
-		return r, s[sz:], false
-	}
-	chars = strings.Trim(chars, "[ ]")
-	list := []string{}
-	var r, last, end rune
-	for len(chars) > 0 {
-		if chars[0] == '{' { // character sequence
-			buf := []rune{}
-			for chars = chars[1:]; len(chars) > 0; {
-				r, chars, _ = parseSingle(chars)
-				if r == '}' {
-					break
-				}
-				if r == ' ' {
-					log.Fatalf("space not supported in sequence %q", chars)
-				}
-				buf = append(buf, r)
-			}
-			list = append(list, string(buf))
-			last = 0
-		} else { // single character
-			escaped := false
-			r, chars, escaped = parseSingle(chars)
-			if r != ' ' {
-				if r == '-' && !escaped {
-					if last == 0 {
-						log.Fatal("'-' should be preceded by a character")
-					}
-					end, chars, _ = parseSingle(chars)
-					for ; last <= end; last++ {
-						list = append(list, string(last))
-					}
-					last = 0
-				} else {
-					list = append(list, string(r))
-					last = r
-				}
-			}
-		}
-	}
-	return list
-}
-
-var fileRe = regexp.MustCompile(`.*/collation/(.*)\.xml`)
-
-// parseCollation parses XML files in the collation directory of the CLDR core.zip file.
-func parseCollation(b *build.Builder) {
-	for _, f := range openArchive(cldr).File {
-		if m := fileRe.FindStringSubmatch(f.Name); m != nil {
-			lang := m[1]
-			x := decodeXML(f)
-			if skipLang(x.Language.Attr) {
-				continue
-			}
-			def := "standard"
-			if x.Default.Attr != "" {
-				def = x.Default.Attr
-			}
-			todo := make(map[string]Collation)
-			for _, c := range x.Collations {
-				if c.Type != def && !types.contains(c.Type) {
-					continue
-				}
-				if c.Alt != "" && skipAlt(c.Alt) {
-					continue
-				}
-				for j := range c.Rules.Any {
-					c.Rules.Any[j].rewrite()
-				}
-				locale := lang
-				if c.Type != def {
-					locale += "_u_co_" + c.Type
-				}
-				_, exists := todo[locale]
-				if c.Alt != "" || !exists {
-					todo[locale] = c
-				}
-			}
-			for _, c := range x.Collations {
-				locale := lang
-				if c.Type != def {
-					locale += "_u_co_" + c.Type
-				}
-				if d, ok := todo[locale]; ok && d.Alt == c.Alt {
-					insertCollation(b, locale, &c)
-				}
-			}
-		}
-	}
-}
-
-var lmap = map[byte]collate.Level{
-	'p': collate.Primary,
-	's': collate.Secondary,
-	't': collate.Tertiary,
-	'i': collate.Identity,
-}
-
-// cldrIndex is a Unicode-reserved sentinel value used.
-// We ignore any rule that starts with this rune.
-// See http://unicode.org/reports/tr35/#Collation_Elements for details.
-const cldrIndex = 0xFDD0
-
-func insertTailoring(t *build.Tailoring, r RuleElem, context, extend string) {
-	switch l := r.XMLName.Local; l {
-	case "p", "s", "t", "i":
-		if []rune(r.Value)[0] != cldrIndex {
-			str := context + r.Value
-			if *test {
-				testInput.add(str)
-			}
-			err := t.Insert(lmap[l[0]], str, context+extend)
-			failOnError(err)
-		}
-	case "pc", "sc", "tc", "ic":
-		level := lmap[l[0]]
-		for _, s := range r.Value {
-			str := context + string(s)
-			if *test {
-				testInput.add(str)
-			}
-			err := t.Insert(level, str, context+extend)
-			failOnError(err)
-		}
-	default:
-		log.Fatalf("unsupported tag: %q", l)
-	}
-}
-
-func insertCollation(builder *build.Builder, locale string, c *Collation) {
-	t := builder.Tailoring(locale)
-	for _, r := range c.Rules.Any {
-		switch r.XMLName.Local {
-		case "reset":
-			if r.Before == "" {
-				failOnError(t.SetAnchor(r.Value))
-			} else {
-				failOnError(t.SetAnchorBefore(r.Value))
-			}
-		case "x":
-			var context, extend string
-			for _, r1 := range r.Any {
-				switch r1.XMLName.Local {
-				case "context":
-					context = r1.Value
-				case "extend":
-					extend = r1.Value
-				}
-			}
-			for _, r1 := range r.Any {
-				if t := r1.XMLName.Local; t == "context" || t == "extend" {
-					continue
-				}
-				insertTailoring(t, r1, context, extend)
-			}
-		default:
-			insertTailoring(t, r, "", "")
-		}
-	}
-}
-
-func testCollator(c *collate.Collator) {
-	c0 := collate.New("")
-
-	// iterator over all characters for all locales and check
-	// whether Key is equal.
-	buf := collate.Buffer{}
-
-	// Add all common and not too uncommon runes to the test set.
-	for i := rune(0); i < 0x30000; i++ {
-		testInput.add(string(i))
-	}
-	for i := rune(0xE0000); i < 0xF0000; i++ {
-		testInput.add(string(i))
-	}
-	for _, str := range testInput.values() {
-		k0 := c0.KeyFromString(&buf, str)
-		k := c.KeyFromString(&buf, str)
-		if !bytes.Equal(k0, k) {
-			failOnError(fmt.Errorf("test:%U: keys differ (%x vs %x)", []rune(str), k0, k))
-		}
-		buf.Reset()
-	}
-	fmt.Println("PASS")
-}
-
-func main() {
-	flag.Parse()
-	b := build.NewBuilder()
-	if *root != "" {
-		parseUCA(b)
-	}
-	if *cldr != "" {
-		if tables.contains("chars") {
-			parseMain()
-		}
-		parseCollation(b)
-	}
-
-	c, err := b.Build()
-	failOnError(err)
-
-	if *test {
-		testCollator(c)
-	} else {
-		fmt.Println("// Generated by running")
-		fmt.Printf("//  maketables -root=%s -cldr=%s\n", *root, *cldr)
-		fmt.Println("// DO NOT EDIT")
-		fmt.Println("// TODO: implement more compact representation for sparse blocks.")
-		if *tags != "" {
-			fmt.Printf("// +build %s\n", *tags)
-		}
-		fmt.Println("")
-		fmt.Printf("package %s\n", *pkg)
-		if tables.contains("collate") {
-			fmt.Println("")
-			_, err = b.Print(os.Stdout)
-			failOnError(err)
-		}
-		if tables.contains("chars") {
-			printExemplarCharacters(os.Stdout)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/regtest.go gcc-4.8.1/libgo/go/exp/locale/collate/regtest.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/regtest.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/regtest.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,268 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-import (
-	"archive/zip"
-	"bufio"
-	"bytes"
-	"exp/locale/collate"
-	"exp/locale/collate/build"
-	"flag"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"strconv"
-	"strings"
-	"unicode"
-	"unicode/utf8"
-)
-
-// This regression test runs tests for the test files in CollationTest.zip
-// (taken from http://www.unicode.org/Public/UCA/<unicode.Version>/).
-//
-// The test files have the following form:
-// # header
-// 0009 0021;	# ('\u0009') <CHARACTER TABULATION>	[| | | 0201 025E]
-// 0009 003F;	# ('\u0009') <CHARACTER TABULATION>	[| | | 0201 0263]
-// 000A 0021;	# ('\u000A') <LINE FEED (LF)>	[| | | 0202 025E]
-// 000A 003F;	# ('\u000A') <LINE FEED (LF)>	[| | | 0202 0263]
-//
-// The part before the semicolon is the hex representation of a sequence
-// of runes. After the hash mark is a comment. The strings
-// represented by rune sequence are in the file in sorted order, as
-// defined by the DUCET.
-
-var testdata = flag.String("testdata",
-	"http://www.unicode.org/Public/UCA/"+unicode.Version+"/CollationTest.zip",
-	"URL of Unicode collation tests zip file")
-var ducet = flag.String("ducet",
-	"http://unicode.org/Public/UCA/"+unicode.Version+"/allkeys.txt",
-	"URL of the Default Unicode Collation Element Table (DUCET).")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-type Test struct {
-	name    string
-	str     [][]byte
-	comment []string
-}
-
-var versionRe = regexp.MustCompile(`# UCA Version: (.*)\n?$`)
-var testRe = regexp.MustCompile(`^([\dA-F ]+);.*# (.*)\n?$`)
-
-func Error(e error) {
-	if e != nil {
-		log.Fatal(e)
-	}
-}
-
-// openReader opens the url or file given by url and returns it as an io.ReadCloser
-// or nil on error.
-func openReader(url string) io.ReadCloser {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		url = "file://" + path.Join(pwd, path.Base(url))
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(url)
-	Error(err)
-	if resp.StatusCode != 200 {
-		Error(fmt.Errorf(`bad GET status for "%s": %s`, url, resp.Status))
-	}
-	return resp.Body
-}
-
-// parseUCA parses a Default Unicode Collation Element Table of the format
-// specified in http://www.unicode.org/reports/tr10/#File_Format.
-// It returns the variable top.
-func parseUCA(builder *build.Builder) {
-	r := openReader(*ducet)
-	defer r.Close()
-	input := bufio.NewReader(r)
-	colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`)
-	for i := 1; true; i++ {
-		l, prefix, err := input.ReadLine()
-		if err == io.EOF {
-			break
-		}
-		Error(err)
-		line := string(l)
-		if prefix {
-			log.Fatalf("%d: buffer overflow", i)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		if line[0] == '@' {
-			if strings.HasPrefix(line[1:], "version ") {
-				if v := strings.Split(line[1:], " ")[1]; v != unicode.Version {
-					log.Fatalf("incompatible version %s; want %s", v, unicode.Version)
-				}
-			}
-		} else {
-			// parse entries
-			part := strings.Split(line, " ; ")
-			if len(part) != 2 {
-				log.Fatalf("%d: production rule without ';': %v", i, line)
-			}
-			lhs := []rune{}
-			for _, v := range strings.Split(part[0], " ") {
-				if v != "" {
-					lhs = append(lhs, rune(convHex(i, v)))
-				}
-			}
-			vars := []int{}
-			rhs := [][]int{}
-			for i, m := range colelem.FindAllStringSubmatch(part[1], -1) {
-				if m[1] == "*" {
-					vars = append(vars, i)
-				}
-				elem := []int{}
-				for _, h := range strings.Split(m[2], ".") {
-					elem = append(elem, convHex(i, h))
-				}
-				rhs = append(rhs, elem)
-			}
-			builder.Add(lhs, rhs, vars)
-		}
-	}
-}
-
-func convHex(line int, s string) int {
-	r, e := strconv.ParseInt(s, 16, 32)
-	if e != nil {
-		log.Fatalf("%d: %v", line, e)
-	}
-	return int(r)
-}
-
-func loadTestData() []Test {
-	f := openReader(*testdata)
-	buffer, err := ioutil.ReadAll(f)
-	f.Close()
-	Error(err)
-	archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
-	Error(err)
-	tests := []Test{}
-	for _, f := range archive.File {
-		// Skip the short versions, which are simply duplicates of the long versions.
-		if strings.Contains(f.Name, "SHORT") || f.FileInfo().IsDir() {
-			continue
-		}
-		ff, err := f.Open()
-		Error(err)
-		defer ff.Close()
-		input := bufio.NewReader(ff)
-		test := Test{name: path.Base(f.Name)}
-		for {
-			line, err := input.ReadString('\n')
-			if err != nil {
-				if err == io.EOF {
-					break
-				}
-				log.Fatal(err)
-			}
-			if len(line) <= 1 || line[0] == '#' {
-				if m := versionRe.FindStringSubmatch(line); m != nil {
-					if m[1] != unicode.Version {
-						log.Printf("warning:%s: version is %s; want %s", f.Name, m[1], unicode.Version)
-					}
-				}
-				continue
-			}
-			m := testRe.FindStringSubmatch(line)
-			if m == nil || len(m) < 3 {
-				log.Fatalf(`Failed to parse: "%s" result: %#v`, line, m)
-			}
-			str := []byte{}
-			// In the regression test data (unpaired) surrogates are assigned a weight
-			// corresponding to their code point value.  However, utf8.DecodeRune,
-			// which is used to compute the implicit weight, assigns FFFD to surrogates.
-			// We therefore skip tests with surrogates.  This skips about 35 entries
-			// per test.
-			valid := true
-			for _, split := range strings.Split(m[1], " ") {
-				r, err := strconv.ParseUint(split, 16, 64)
-				Error(err)
-				valid = valid && utf8.ValidRune(rune(r))
-				str = append(str, string(rune(r))...)
-			}
-			if valid {
-				test.str = append(test.str, str)
-				test.comment = append(test.comment, m[2])
-			}
-		}
-		tests = append(tests, test)
-	}
-	return tests
-}
-
-var errorCount int
-
-func fail(t Test, pattern string, args ...interface{}) {
-	format := fmt.Sprintf("error:%s:%s", t.name, pattern)
-	log.Printf(format, args...)
-	errorCount++
-	if errorCount > 30 {
-		log.Fatal("too many errors")
-	}
-}
-
-func runes(b []byte) []rune {
-	return []rune(string(b))
-}
-
-func doTest(t Test) {
-	bld := build.NewBuilder()
-	parseUCA(bld)
-	c, err := bld.Build()
-	Error(err)
-	c.Strength = collate.Tertiary
-	c.Alternate = collate.AltShifted
-	b := &collate.Buffer{}
-	if strings.Contains(t.name, "NON_IGNOR") {
-		c.Alternate = collate.AltNonIgnorable
-	}
-	prev := t.str[0]
-	for i := 1; i < len(t.str); i++ {
-		b.Reset()
-		s := t.str[i]
-		ka := c.Key(b, prev)
-		kb := c.Key(b, s)
-		if r := bytes.Compare(ka, kb); r == 1 {
-			fail(t, "%d: Key(%.4X) < Key(%.4X) (%X < %X) == %d; want -1 or 0", i, []rune(string(prev)), []rune(string(s)), ka, kb, r)
-			prev = s
-			continue
-		}
-		if r := c.Compare(prev, s); r == 1 {
-			fail(t, "%d: Compare(%.4X, %.4X) == %d; want -1 or 0", i, runes(prev), runes(s), r)
-		}
-		if r := c.Compare(s, prev); r == -1 {
-			fail(t, "%d: Compare(%.4X, %.4X) == %d; want 1 or 0", i, runes(s), runes(prev), r)
-		}
-		prev = s
-	}
-}
-
-func main() {
-	flag.Parse()
-	for _, test := range loadTestData() {
-		doTest(test)
-	}
-	if errorCount == 0 {
-		fmt.Println("PASS")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort.go gcc-4.8.1/libgo/go/exp/locale/collate/sort.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/sort.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"bytes"
-	"sort"
-)
-
-const (
-	maxSortBuffer  = 40960
-	maxSortEntries = 4096
-)
-
-type swapper interface {
-	Swap(i, j int)
-}
-
-type sorter struct {
-	buf  *Buffer
-	keys [][]byte
-	src  swapper
-}
-
-func (s *sorter) init(n int) {
-	if s.buf == nil {
-		s.buf = &Buffer{}
-		s.buf.init()
-	}
-	if cap(s.keys) < n {
-		s.keys = make([][]byte, n)
-	}
-	s.keys = s.keys[0:n]
-}
-
-func (s *sorter) clean() {
-	if len(s.buf.key) > maxSortBuffer {
-		s.buf.key = s.buf.buf[:0]
-	}
-	if len(s.keys) > maxSortEntries {
-		s.keys = nil
-	}
-}
-
-func (s *sorter) sort(src swapper) {
-	s.src = src
-	sort.Sort(s)
-}
-
-func (s sorter) Len() int {
-	return len(s.keys)
-}
-
-func (s sorter) Less(i, j int) bool {
-	return bytes.Compare(s.keys[i], s.keys[j]) == -1
-}
-
-func (s sorter) Swap(i, j int) {
-	s.keys[i], s.keys[j] = s.keys[j], s.keys[i]
-	s.src.Swap(i, j)
-}
-
-// A Lister can be sorted by Collator's Sort method.
-type Lister interface {
-	Len() int
-	Swap(i, j int)
-	// Bytes returns the bytes of the text at index i.
-	Bytes(i int) []byte
-}
-
-// Sort uses sort.Sort to sort the strings represented by x using the rules of c.
-func (c *Collator) Sort(x Lister) {
-	n := x.Len()
-	c.sorter.init(n)
-	for i := 0; i < n; i++ {
-		c.sorter.keys[i] = c.Key(c.sorter.buf, x.Bytes(i))
-	}
-	c.sorter.sort(x)
-}
-
-// Strings sorts x using the rules of c.
-func (c *Collator) Strings(x []string) {
-	c.sorter.init(len(x))
-	for i, s := range x {
-		c.sorter.keys[i] = c.KeyFromString(c.sorter.buf, s)
-	}
-	c.sorter.sort(sort.StringSlice(x))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort_test.go gcc-4.8.1/libgo/go/exp/locale/collate/sort_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/sort_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate_test
-
-import (
-	"exp/locale/collate"
-	"fmt"
-	"testing"
-)
-
-func ExampleCollator_Strings() {
-	c := collate.New("root")
-	strings := []string{
-		"ad",
-		"Ã¤b",
-		"ac",
-	}
-	c.Strings(strings)
-	fmt.Println(strings)
-	// Output: [Ã¤b ac ad]
-}
-
-type sorter []string
-
-func (s sorter) Len() int {
-	return len(s)
-}
-
-func (s sorter) Swap(i, j int) {
-	s[j], s[i] = s[i], s[j]
-}
-
-func (s sorter) Bytes(i int) []byte {
-	return []byte(s[i])
-}
-
-func TestSort(t *testing.T) {
-	c := collate.New("en")
-	strings := []string{
-		"bcd",
-		"abc",
-		"ddd",
-	}
-	c.Sort(sorter(strings))
-	res := fmt.Sprint(strings)
-	want := "[abc bcd ddd]"
-	if res != want {
-		t.Errorf("found %s; want %s", res, want)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/table.go gcc-4.8.1/libgo/go/exp/locale/collate/table.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/table.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/table.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,317 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"exp/norm"
-	"unicode/utf8"
-)
-
-// tableIndex holds information for constructing a table
-// for a certain locale based on the main table.
-type tableIndex struct {
-	lookupOffset uint32
-	valuesOffset uint32
-}
-
-// table holds all collation data for a given collation ordering.
-type table struct {
-	index trie // main trie
-
-	// expansion info
-	expandElem []uint32
-
-	// contraction info
-	contractTries  contractTrieSet
-	contractElem   []uint32
-	maxContractLen int
-	variableTop    uint32
-}
-
-func (t *table) indexedTable(idx tableIndex) *table {
-	nt := *t
-	nt.index.index0 = t.index.index[idx.lookupOffset*blockSize:]
-	nt.index.values0 = t.index.values[idx.valuesOffset*blockSize:]
-	return &nt
-}
-
-func (t *table) AppendNext(w []Elem, b []byte) (res []Elem, n int) {
-	return t.appendNext(w, source{bytes: b})
-}
-
-func (t *table) AppendNextString(w []Elem, s string) (res []Elem, n int) {
-	return t.appendNext(w, source{str: s})
-}
-
-func (t *table) Start(p int, b []byte) int {
-	// TODO: implement
-	panic("not implemented")
-}
-
-func (t *table) StartString(p int, s string) int {
-	// TODO: implement
-	panic("not implemented")
-}
-
-func (t *table) Domain() []string {
-	// TODO: implement
-	panic("not implemented")
-}
-
-type source struct {
-	str   string
-	bytes []byte
-}
-
-func (src *source) lookup(t *table) (ce Elem, sz int) {
-	if src.bytes == nil {
-		return t.index.lookupString(src.str)
-	}
-	return t.index.lookup(src.bytes)
-}
-
-func (src *source) tail(sz int) {
-	if src.bytes == nil {
-		src.str = src.str[sz:]
-	} else {
-		src.bytes = src.bytes[sz:]
-	}
-}
-
-func (src *source) nfd(buf []byte, end int) []byte {
-	if src.bytes == nil {
-		return norm.NFD.AppendString(buf[:0], src.str[:end])
-	}
-	return norm.NFD.Append(buf[:0], src.bytes[:end]...)
-}
-
-func (src *source) rune() (r rune, sz int) {
-	if src.bytes == nil {
-		return utf8.DecodeRuneInString(src.str)
-	}
-	return utf8.DecodeRune(src.bytes)
-}
-
-func (src *source) properties(f norm.Form) norm.Properties {
-	if src.bytes == nil {
-		return f.PropertiesString(src.str)
-	}
-	return f.Properties(src.bytes)
-}
-
-// appendNext appends the weights corresponding to the next rune or
-// contraction in s.  If a contraction is matched to a discontinuous
-// sequence of runes, the weights for the interstitial runes are
-// appended as well.  It returns a new slice that includes the appended
-// weights and the number of bytes consumed from s.
-func (t *table) appendNext(w []Elem, src source) (res []Elem, n int) {
-	ce, sz := src.lookup(t)
-	tp := ce.ctype()
-	if tp == ceNormal {
-		if ce == 0 {
-			r, _ := src.rune()
-			const (
-				hangulSize  = 3
-				firstHangul = 0xAC00
-				lastHangul  = 0xD7A3
-			)
-			if r >= firstHangul && r <= lastHangul {
-				// TODO: performance can be considerably improved here.
-				n = sz
-				var buf [16]byte // Used for decomposing Hangul.
-				for b := src.nfd(buf[:0], hangulSize); len(b) > 0; b = b[sz:] {
-					ce, sz = t.index.lookup(b)
-					w = append(w, ce)
-				}
-				return w, n
-			}
-			ce = makeImplicitCE(implicitPrimary(r))
-		}
-		w = append(w, ce)
-	} else if tp == ceExpansionIndex {
-		w = t.appendExpansion(w, ce)
-	} else if tp == ceContractionIndex {
-		n := 0
-		src.tail(sz)
-		if src.bytes == nil {
-			w, n = t.matchContractionString(w, ce, src.str)
-		} else {
-			w, n = t.matchContraction(w, ce, src.bytes)
-		}
-		sz += n
-	} else if tp == ceDecompose {
-		// Decompose using NFKD and replace tertiary weights.
-		t1, t2 := splitDecompose(ce)
-		i := len(w)
-		nfkd := src.properties(norm.NFKD).Decomposition()
-		for p := 0; len(nfkd) > 0; nfkd = nfkd[p:] {
-			w, p = t.appendNext(w, source{bytes: nfkd})
-		}
-		w[i] = w[i].updateTertiary(t1)
-		if i++; i < len(w) {
-			w[i] = w[i].updateTertiary(t2)
-			for i++; i < len(w); i++ {
-				w[i] = w[i].updateTertiary(maxTertiary)
-			}
-		}
-	}
-	return w, sz
-}
-
-func (t *table) appendExpansion(w []Elem, ce Elem) []Elem {
-	i := splitExpandIndex(ce)
-	n := int(t.expandElem[i])
-	i++
-	for _, ce := range t.expandElem[i : i+n] {
-		w = append(w, Elem(ce))
-	}
-	return w
-}
-
-func (t *table) matchContraction(w []Elem, ce Elem, suffix []byte) ([]Elem, int) {
-	index, n, offset := splitContractIndex(ce)
-
-	scan := t.contractTries.scanner(index, n, suffix)
-	buf := [norm.MaxSegmentSize]byte{}
-	bufp := 0
-	p := scan.scan(0)
-
-	if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf {
-		// By now we should have filtered most cases.
-		p0 := p
-		bufn := 0
-		rune := norm.NFD.Properties(suffix[p:])
-		p += rune.Size()
-		if rune.LeadCCC() != 0 {
-			prevCC := rune.TrailCCC()
-			// A gap may only occur in the last normalization segment.
-			// This also ensures that len(scan.s) < norm.MaxSegmentSize.
-			if end := norm.NFD.FirstBoundary(suffix[p:]); end != -1 {
-				scan.s = suffix[:p+end]
-			}
-			for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf {
-				rune = norm.NFD.Properties(suffix[p:])
-				if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc {
-					break
-				}
-				prevCC = rune.TrailCCC()
-				if pp := scan.scan(p); pp != p {
-					// Copy the interstitial runes for later processing.
-					bufn += copy(buf[bufn:], suffix[p0:p])
-					if scan.pindex == pp {
-						bufp = bufn
-					}
-					p, p0 = pp, pp
-				} else {
-					p += rune.Size()
-				}
-			}
-		}
-	}
-	// Append weights for the matched contraction, which may be an expansion.
-	i, n := scan.result()
-	ce = Elem(t.contractElem[i+offset])
-	if ce.ctype() == ceNormal {
-		w = append(w, ce)
-	} else {
-		w = t.appendExpansion(w, ce)
-	}
-	// Append weights for the runes in the segment not part of the contraction.
-	for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] {
-		w, p = t.appendNext(w, source{bytes: b})
-	}
-	return w, n
-}
-
-// TODO: unify the two implementations. This is best done after first simplifying
-// the algorithm taking into account the inclusion of both NFC and NFD forms
-// in the table.
-func (t *table) matchContractionString(w []Elem, ce Elem, suffix string) ([]Elem, int) {
-	index, n, offset := splitContractIndex(ce)
-
-	scan := t.contractTries.scannerString(index, n, suffix)
-	buf := [norm.MaxSegmentSize]byte{}
-	bufp := 0
-	p := scan.scan(0)
-
-	if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf {
-		// By now we should have filtered most cases.
-		p0 := p
-		bufn := 0
-		rune := norm.NFD.PropertiesString(suffix[p:])
-		p += rune.Size()
-		if rune.LeadCCC() != 0 {
-			prevCC := rune.TrailCCC()
-			// A gap may only occur in the last normalization segment.
-			// This also ensures that len(scan.s) < norm.MaxSegmentSize.
-			if end := norm.NFD.FirstBoundaryInString(suffix[p:]); end != -1 {
-				scan.s = suffix[:p+end]
-			}
-			for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf {
-				rune = norm.NFD.PropertiesString(suffix[p:])
-				if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc {
-					break
-				}
-				prevCC = rune.TrailCCC()
-				if pp := scan.scan(p); pp != p {
-					// Copy the interstitial runes for later processing.
-					bufn += copy(buf[bufn:], suffix[p0:p])
-					if scan.pindex == pp {
-						bufp = bufn
-					}
-					p, p0 = pp, pp
-				} else {
-					p += rune.Size()
-				}
-			}
-		}
-	}
-	// Append weights for the matched contraction, which may be an expansion.
-	i, n := scan.result()
-	ce = Elem(t.contractElem[i+offset])
-	if ce.ctype() == ceNormal {
-		w = append(w, ce)
-	} else {
-		w = t.appendExpansion(w, ce)
-	}
-	// Append weights for the runes in the segment not part of the contraction.
-	for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] {
-		w, p = t.appendNext(w, source{bytes: b})
-	}
-	return w, n
-}
-
-// TODO: this should stay after the rest of this file is moved to colltab
-func (t tableIndex) TrieIndex() []uint16 {
-	return mainLookup[:]
-}
-
-func (t tableIndex) TrieValues() []uint32 {
-	return mainValues[:]
-}
-
-func (t tableIndex) FirstBlockOffsets() (lookup, value uint16) {
-	return uint16(t.lookupOffset), uint16(t.valuesOffset)
-}
-
-func (t tableIndex) ExpandElems() []uint32 {
-	return mainExpandElem[:]
-}
-
-func (t tableIndex) ContractTries() []struct{ l, h, n, i uint8 } {
-	return mainCTEntries[:]
-}
-
-func (t tableIndex) ContractElems() []uint32 {
-	return mainContractElem[:]
-}
-
-func (t tableIndex) MaxContractLen() int {
-	return 18
-}
-
-func (t tableIndex) VariableTop() uint32 {
-	return 0x30E
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tables.go gcc-4.8.1/libgo/go/exp/locale/collate/tables.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tables.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tables.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,51896 +0,0 @@
-// Generated by running
-//  maketables -root=http://unicode.org/Public/UCA/6.2.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/22/core.zip
-// DO NOT EDIT
-// TODO: implement more compact representation for sparse blocks.
-
-package collate
-
-var availableLocales = []string{"af", "ar", "as", "az", "be", "bg", "bn", "ca", "cs", "cy", "da", "de", "dz", "ee", "el", "en_US_POSIX", "eo", "es", "et", "fa", "fi", "fil", "fo", "fr_CA", "gu", "ha", "haw", "he", "hi", "hr", "hu", "hy", "ig", "is", "ja", "kk", "kl", "km", "kn", "ko", "kok", "ln", "lt", "lv", "mk", "ml", "mr", "mt", "my", "nb", "nn", "nso", "om", "or", "pa", "pl", "ps", "ro", "root", "ru", "se", "si", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tn", "to", "tr", "uk", "ur", "vi", "wae", "yo", "zh"}
-
-var locales = map[string]tableIndex{
-	"af": {
-		lookupOffset: 0x16,
-		valuesOffset: 0x0,
-	},
-	"ar": {
-		lookupOffset: 0x18,
-		valuesOffset: 0x0,
-	},
-	"as": {
-		lookupOffset: 0x1a,
-		valuesOffset: 0x0,
-	},
-	"az": {
-		lookupOffset: 0x20,
-		valuesOffset: 0x1c0,
-	},
-	"be": {
-		lookupOffset: 0x21,
-		valuesOffset: 0x0,
-	},
-	"bg": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"bn": {
-		lookupOffset: 0x23,
-		valuesOffset: 0x0,
-	},
-	"ca": {
-		lookupOffset: 0x24,
-		valuesOffset: 0x1d5,
-	},
-	"cs": {
-		lookupOffset: 0x26,
-		valuesOffset: 0x1d9,
-	},
-	"cy": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x1de,
-	},
-	"da": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x1e0,
-	},
-	"de": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"dz": {
-		lookupOffset: 0x2b,
-		valuesOffset: 0x0,
-	},
-	"ee": {
-		lookupOffset: 0x31,
-		valuesOffset: 0x1ed,
-	},
-	"el": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"en_US_POSIX": {
-		lookupOffset: 0x38,
-		valuesOffset: 0x1fc,
-	},
-	"eo": {
-		lookupOffset: 0x39,
-		valuesOffset: 0x21b,
-	},
-	"es": {
-		lookupOffset: 0x3a,
-		valuesOffset: 0x21f,
-	},
-	"et": {
-		lookupOffset: 0x40,
-		valuesOffset: 0x222,
-	},
-	"fa": {
-		lookupOffset: 0x42,
-		valuesOffset: 0x0,
-	},
-	"fi": {
-		lookupOffset: 0x45,
-		valuesOffset: 0x23a,
-	},
-	"fil": {
-		lookupOffset: 0x3a,
-		valuesOffset: 0x245,
-	},
-	"fo": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x1e0,
-	},
-	"fr_CA": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"gu": {
-		lookupOffset: 0x47,
-		valuesOffset: 0x0,
-	},
-	"ha": {
-		lookupOffset: 0x48,
-		valuesOffset: 0x248,
-	},
-	"haw": {
-		lookupOffset: 0x4f,
-		valuesOffset: 0x24d,
-	},
-	"he": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"hi": {
-		lookupOffset: 0x51,
-		valuesOffset: 0x0,
-	},
-	"hr": {
-		lookupOffset: 0x53,
-		valuesOffset: 0x264,
-	},
-	"hu": {
-		lookupOffset: 0x55,
-		valuesOffset: 0x26a,
-	},
-	"hy": {
-		lookupOffset: 0x56,
-		valuesOffset: 0x0,
-	},
-	"ig": {
-		lookupOffset: 0x58,
-		valuesOffset: 0x272,
-	},
-	"is": {
-		lookupOffset: 0x5a,
-		valuesOffset: 0x276,
-	},
-	"ja": {
-		lookupOffset: 0x66,
-		valuesOffset: 0x0,
-	},
-	"kk": {
-		lookupOffset: 0x67,
-		valuesOffset: 0x0,
-	},
-	"kl": {
-		lookupOffset: 0x68,
-		valuesOffset: 0x3e7,
-	},
-	"km": {
-		lookupOffset: 0x6a,
-		valuesOffset: 0x0,
-	},
-	"kn": {
-		lookupOffset: 0x6c,
-		valuesOffset: 0x0,
-	},
-	"ko": {
-		lookupOffset: 0x78,
-		valuesOffset: 0x0,
-	},
-	"kok": {
-		lookupOffset: 0x7a,
-		valuesOffset: 0x0,
-	},
-	"ln": {
-		lookupOffset: 0x7b,
-		valuesOffset: 0x0,
-	},
-	"lt": {
-		lookupOffset: 0x81,
-		valuesOffset: 0x545,
-	},
-	"lv": {
-		lookupOffset: 0x83,
-		valuesOffset: 0x553,
-	},
-	"mk": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"ml": {
-		lookupOffset: 0x85,
-		valuesOffset: 0x0,
-	},
-	"mr": {
-		lookupOffset: 0x87,
-		valuesOffset: 0x0,
-	},
-	"mt": {
-		lookupOffset: 0x8a,
-		valuesOffset: 0x55b,
-	},
-	"my": {
-		lookupOffset: 0x8c,
-		valuesOffset: 0x0,
-	},
-	"nb": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x564,
-	},
-	"nn": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x564,
-	},
-	"nso": {
-		lookupOffset: 0x8e,
-		valuesOffset: 0x566,
-	},
-	"om": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x56c,
-	},
-	"or": {
-		lookupOffset: 0x90,
-		valuesOffset: 0x0,
-	},
-	"pa": {
-		lookupOffset: 0x92,
-		valuesOffset: 0x0,
-	},
-	"pl": {
-		lookupOffset: 0x94,
-		valuesOffset: 0x572,
-	},
-	"ps": {
-		lookupOffset: 0x97,
-		valuesOffset: 0x0,
-	},
-	"ro": {
-		lookupOffset: 0x99,
-		valuesOffset: 0x584,
-	},
-	"root": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"ru": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"se": {
-		lookupOffset: 0x9b,
-		valuesOffset: 0x58b,
-	},
-	"si": {
-		lookupOffset: 0x9d,
-		valuesOffset: 0x0,
-	},
-	"sk": {
-		lookupOffset: 0x9f,
-		valuesOffset: 0x598,
-	},
-	"sl": {
-		lookupOffset: 0xa0,
-		valuesOffset: 0x59d,
-	},
-	"sq": {
-		lookupOffset: 0xa2,
-		valuesOffset: 0x5a0,
-	},
-	"sr": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"sv": {
-		lookupOffset: 0xa4,
-		valuesOffset: 0x5a4,
-	},
-	"ta": {
-		lookupOffset: 0xa6,
-		valuesOffset: 0x0,
-	},
-	"te": {
-		lookupOffset: 0xa8,
-		valuesOffset: 0x0,
-	},
-	"th": {
-		lookupOffset: 0xaa,
-		valuesOffset: 0x0,
-	},
-	"tn": {
-		lookupOffset: 0x8e,
-		valuesOffset: 0x566,
-	},
-	"to": {
-		lookupOffset: 0xac,
-		valuesOffset: 0x5af,
-	},
-	"tr": {
-		lookupOffset: 0xb2,
-		valuesOffset: 0x5bb,
-	},
-	"uk": {
-		lookupOffset: 0xb3,
-		valuesOffset: 0x0,
-	},
-	"ur": {
-		lookupOffset: 0xb5,
-		valuesOffset: 0x0,
-	},
-	"vi": {
-		lookupOffset: 0xb7,
-		valuesOffset: 0x5ca,
-	},
-	"wae": {
-		lookupOffset: 0xb8,
-		valuesOffset: 0x5de,
-	},
-	"yo": {
-		lookupOffset: 0xba,
-		valuesOffset: 0x5e1,
-	},
-	"zh": {
-		lookupOffset: 0xd4,
-		valuesOffset: 0x5e6,
-	},
-}
-
-// mainExpandElem: 45432 entries, 181728 bytes
-var mainExpandElem = [45432]uint32{
-	// Block 0, offset 0x0
-	0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A,
-	0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A,
-	0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A,
-	0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84,
-	0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84,
-	0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84,
-	// Block 1, offset 0x40
-	0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484,
-	0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F,
-	0x00000006, 0x0003F484, 0x0062C284, 0x0063B884,
-	// Block 2, offset 0x80
-	0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84,
-	0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20,
-	0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620,
-	0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620,
-	0xAE604502, 0x00000002, 0x40063820, 0xAE603202,
-	// Block 3, offset 0xc0
-	0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502,
-	0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402,
-	0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402,
-	0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402,
-	0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402,
-	0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402,
-	0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402,
-	0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402,
-	0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002,
-	0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002,
-	0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020,
-	// Block 4, offset 0x100
-	0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20,
-	0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420,
-	0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620,
-	0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20,
-	0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20,
-	0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220,
-	0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20,
-	0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20,
-	0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020,
-	0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20,
-	0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402,
-	// Block 5, offset 0x140
-	0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402,
-	0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402,
-	0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402,
-	0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802,
-	0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802,
-	0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002,
-	0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402,
-	0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602,
-	0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802,
-	0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02,
-	0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002,
-	// Block 6, offset 0x180
-	0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002,
-	0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002,
-	0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002,
-	0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002,
-	0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002,
-	0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002,
-	0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002,
-	0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002,
-	0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002,
-	0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002,
-	0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20,
-	// Block 7, offset 0x1c0
-	0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20,
-	0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20,
-	0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20,
-	0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20,
-	0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20,
-	0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E,
-	0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002,
-	0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002,
-	0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002,
-	0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002,
-	0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20,
-	// Block 8, offset 0x200
-	0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20,
-	0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20,
-	0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20,
-	0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20,
-	0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20,
-	0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20,
-	0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20,
-	0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20,
-	0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20,
-	0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20,
-	0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802,
-	// Block 9, offset 0x240
-	0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02,
-	0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02,
-	0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02,
-	0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002,
-	0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202,
-	0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402,
-	0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602,
-	0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802,
-	0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802,
-	0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02,
-	0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002,
-	// Block 10, offset 0x280
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002,
-	0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002,
-	0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002,
-	0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002,
-	0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002,
-	0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E,
-	0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003,
-	0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003,
-	// Block 11, offset 0x2c0
-	0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E,
-	0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003,
-	0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E,
-	0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002,
-	0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002,
-	0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002,
-	0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002,
-	0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86,
-	// Block 12, offset 0x300
-	0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020,
-	0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020,
-	0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020,
-	0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020,
-	0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020,
-	0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020,
-	0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020,
-	0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020,
-	0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020,
-	0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020,
-	0xA0015002, 0x00000002, 0x4029D020, 0xA0015102,
-	// Block 13, offset 0x340
-	0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302,
-	0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502,
-	0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604,
-	0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802,
-	0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02,
-	0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02,
-	0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02,
-	0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002,
-	0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202,
-	0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402,
-	0x00000002, 0x4029D020, 0xA0016502, 0x00000002,
-	// Block 14, offset 0x380
-	0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002,
-	0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002,
-	0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002,
-	0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002,
-	0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002,
-	0x4029D020, 0xA0017202, 0x00000002, 0x4029D020,
-	// Block 15, offset 0x3c0
-	0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020,
-	0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020,
-	0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003,
-	0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86,
-	0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02,
-	0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102,
-	0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302,
-	0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502,
-	0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702,
-	0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902,
-	0x00000002, 0x4029D220, 0xA0014A02, 0x00000002,
-	// Block 16, offset 0x400
-	0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002,
-	0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002,
-	0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002,
-	0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002,
-	0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002,
-	0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002,
-	0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002,
-	0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002,
-	0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002,
-	0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002,
-	0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220,
-	// Block 17, offset 0x440
-	0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220,
-	0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220,
-	0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220,
-	0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220,
-	0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220,
-	0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02,
-	// Block 18, offset 0x480
-	0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02,
-	0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02,
-	0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002,
-	0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202,
-	0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402,
-	0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602,
-	0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E,
-	0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003,
-	0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86,
-	0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002,
-	0x00000002, 0x4029D420, 0xA0014102, 0x00000002,
-	// Block 19, offset 0x4c0
-	0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002,
-	0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002,
-	0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002,
-	0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002,
-	0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002,
-	0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002,
-	0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002,
-	0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002,
-	0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002,
-	0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002,
-	0x4029D420, 0xA0015602, 0x00000002, 0x0029D484,
-	// Block 20, offset 0x500
-	0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420,
-	0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420,
-	0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420,
-	0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420,
-	0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420,
-	0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420,
-	0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420,
-	0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420,
-	0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420,
-	0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420,
-	0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	// Block 21, offset 0x540
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002,
-	0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202,
-	0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402,
-	0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602,
-	0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E,
-	0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86,
-	// Block 22, offset 0x580
-	0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002,
-	0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202,
-	0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402,
-	0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602,
-	0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802,
-	0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02,
-	0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02,
-	0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02,
-	0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002,
-	0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202,
-	0x00000002, 0x4029D620, 0xA0015302, 0x00000002,
-	// Block 23, offset 0x5c0
-	0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002,
-	0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002,
-	0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002,
-	0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002,
-	0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002,
-	0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002,
-	0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002,
-	0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002,
-	0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002,
-	0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002,
-	0x4029D620, 0xA0016702, 0x00000002, 0x4029D620,
-	// Block 24, offset 0x600
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620,
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620,
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620,
-	0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620,
-	0xA0017502, 0x00000002, 0x4029D620, 0xA0017702,
-	// Block 25, offset 0x640
-	0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E,
-	0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002,
-	0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002,
-	0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002,
-	0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002,
-	0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002,
-	0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002,
-	0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002,
-	0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002,
-	0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002,
-	0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820,
-	// Block 26, offset 0x680
-	0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820,
-	0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820,
-	0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820,
-	0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820,
-	0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820,
-	0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820,
-	0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820,
-	0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820,
-	0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820,
-	0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820,
-	0xA0016302, 0x00000002, 0x4029D820, 0xA0016402,
-	// Block 27, offset 0x6c0
-	0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602,
-	0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202,
-	0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402,
-	0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702,
-	0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02,
-	0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102,
-	0x00000002, 0x4029DA20, 0xA0014202, 0x00000002,
-	// Block 28, offset 0x700
-	0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002,
-	0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002,
-	0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002,
-	0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002,
-	0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002,
-	0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002,
-	0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002,
-	0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002,
-	0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002,
-	0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002,
-	0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20,
-	// Block 29, offset 0x740
-	0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20,
-	0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20,
-	0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20,
-	0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20,
-	0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20,
-	0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20,
-	0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20,
-	0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20,
-	0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20,
-	0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20,
-	0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02,
-	// Block 30, offset 0x780
-	0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02,
-	0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202,
-	0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402,
-	0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702,
-	0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86,
-	0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20,
-	0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20,
-	0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20,
-	0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20,
-	0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20,
-	0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902,
-	// Block 31, offset 0x7c0
-	0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02,
-	0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02,
-	0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02,
-	0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102,
-	0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302,
-	0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502,
-	0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604,
-	0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802,
-	0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02,
-	0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02,
-	0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002,
-	// Block 32, offset 0x800
-	0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002,
-	0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002,
-	0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002,
-	0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002,
-	0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002,
-	0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002,
-	0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20,
-	// Block 33, offset 0x840
-	0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20,
-	0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20,
-	0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20,
-	0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20,
-	0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20,
-	0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20,
-	0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20,
-	0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20,
-	0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20,
-	0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20,
-	0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202,
-	// Block 34, offset 0x880
-	0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402,
-	0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602,
-	0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702,
-	0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902,
-	0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02,
-	0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02,
-	0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02,
-	0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102,
-	0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302,
-	0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502,
-	0x00000002, 0x4029DE20, 0xA0016602, 0x00000002,
-	// Block 35, offset 0x8c0
-	0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002,
-	0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002,
-	0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002,
-	0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002,
-	0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002,
-	0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20,
-	// Block 36, offset 0x900
-	0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202,
-	0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88,
-	0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02,
-	0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20,
-	0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402,
-	0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02,
-	0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88,
-	0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502,
-	0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402,
-	// Block 37, offset 0x940
-	0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20,
-	0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20,
-	0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20,
-	0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202,
-	0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702,
-	0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002,
-	0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002,
-	0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02,
-	0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20,
-	0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902,
-	// Block 38, offset 0x980
-	0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02,
-	0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402,
-	0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502,
-	0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702,
-	0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002,
-	0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88,
-	0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02,
-	0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20,
-	0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF,
-	0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C,
-	0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84,
-	// Block 39, offset 0x9c0
-	0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A,
-	0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C,
-	0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A,
-	0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904,
-	0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003,
-	0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914,
-	0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202,
-	0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004,
-	0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A,
-	0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771,
-	0x00000002, 0x002BDE84, 0x002EE284, 0x00000002,
-	// Block 40, offset 0xa00
-	0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002,
-	0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002,
-	0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003,
-	0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904,
-	0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A,
-	0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88,
-	0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88,
-	0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88,
-	0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002,
-	0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002,
-	0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88,
-	// Block 41, offset 0xa40
-	0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88,
-	0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88,
-	0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D,
-	0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20,
-	0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202,
-	0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84,
-	0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C,
-	0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002,
-	0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C,
-	0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D,
-	0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D,
-	// Block 42, offset 0xa80
-	0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102,
-	0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202,
-	0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602,
-	0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002,
-	0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802,
-	0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02,
-	0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02,
-	0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904,
-	0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904,
-	0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04,
-	0x00000002, 0x002C628A, 0xA0013A04, 0x00000002,
-	// Block 43, offset 0xac0
-	0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C,
-	0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284,
-	0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003,
-	0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A,
-	0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284,
-	0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888,
-	0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888,
-	0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888,
-	0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888,
-	0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003,
-	0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003,
-	// Block 44, offset 0xb00
-	0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02,
-	0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003,
-	0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02,
-	0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002,
-	0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002,
-	0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002,
-	0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002,
-	0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002,
-	0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003,
-	0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602,
-	0xAE603702, 0x00000002, 0x402C9820, 0xACA05902,
-	// Block 45, offset 0xb40
-	0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02,
-	0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02,
-	0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02,
-	0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888,
-	0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888,
-	0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888,
-	0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888,
-	0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003,
-	0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802,
-	0x00000002, 0x002C9888, 0xADC07802, 0x00000002,
-	// Block 46, offset 0xb80
-	0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003,
-	0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202,
-	0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04,
-	0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A,
-	0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003,
-	0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84,
-	0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002,
-	0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002,
-	0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002,
-	0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002,
-	0x402D2220, 0xAE604102, 0x00000002, 0x002D2288,
-	// Block 47, offset 0xbc0
-	0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288,
-	0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288,
-	0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288,
-	0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A,
-	0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A,
-	0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003,
-	0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D,
-	0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888,
-	0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888,
-	0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888,
-	0xAE604702, 0x00000002, 0x402D6820, 0xAE605202,
-	// Block 48, offset 0xc00
-	0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602,
-	0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002,
-	0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902,
-	0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02,
-	0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02,
-	0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20,
-	0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20,
-	0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20,
-	0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20,
-	0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20,
-	0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102,
-	// Block 49, offset 0xc40
-	0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702,
-	0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88,
-	0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002,
-	0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002,
-	0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002,
-	0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002,
-	0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002,
-	0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002,
-	0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002,
-	0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002,
-	0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88,
-	// Block 50, offset 0xc80
-	0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D,
-	0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88,
-	0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20,
-	0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20,
-	0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20,
-	0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84,
-	0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20,
-	0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20,
-	0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C,
-	0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D,
-	0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C,
-	// Block 51, offset 0xcc0
-	0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003,
-	0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202,
-	0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102,
-	0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602,
-	0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002,
-	0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002,
-	0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002,
-	0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002,
-	0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002,
-	0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002,
-	0x402E2220, 0xA0013902, 0x00000002, 0x402E2220,
-	// Block 52, offset 0xd00
-	0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288,
-	0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A,
-	0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002,
-	0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D,
-	0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202,
-	0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202,
-	0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002,
-	0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C,
-	0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C,
-	0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C,
-	0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C,
-	// Block 53, offset 0xd40
-	0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C,
-	0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D,
-	0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002,
-	0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002,
-	0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002,
-	0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002,
-	0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002,
-	0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002,
-	0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002,
-	0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002,
-	0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20,
-	// Block 54, offset 0xd80
-	0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20,
-	0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D,
-	0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002,
-	0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002,
-	0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002,
-	0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002,
-	0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003,
-	0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02,
-	0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02,
-	// Block 55, offset 0xdc0
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003,
-	0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102,
-	0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702,
-	0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702,
-	0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002,
-	0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003,
-	0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003,
-	0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02,
-	0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02,
-	// Block 56, offset 0xe00
-	0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288,
-	0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003,
-	0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402,
-	0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402,
-	0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002,
-	0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003,
-	0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902,
-	0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288,
-	0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02,
-	// Block 57, offset 0xe40
-	0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288,
-	0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288,
-	0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288,
-	0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288,
-	0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003,
-	0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802,
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003,
-	0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802,
-	0xADC07002, 0x00000003, 0x002EE288, 0xAD806802,
-	// Block 58, offset 0xe80
-	0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288,
-	0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003,
-	0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904,
-	0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003,
-	0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D,
-	0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A,
-	0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202,
-	0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202,
-	0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002,
-	0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D,
-	0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D,
-	// Block 59, offset 0xec0
-	0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684,
-	0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88,
-	0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88,
-	0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88,
-	0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88,
-	0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A,
-	0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88,
-	0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88,
-	0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88,
-	0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003,
-	0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002,
-	// Block 60, offset 0xf00
-	0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002,
-	0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003,
-	0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C,
-	0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C,
-	0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620,
-	0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620,
-	0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202,
-	0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02,
-	0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102,
-	0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688,
-	0xAE604102, 0xAE605202, 0x00000002, 0x402FE620,
-	// Block 61, offset 0xf40
-	0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620,
-	0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684,
-	0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620,
-	0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620,
-	0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202,
-	0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702,
-	0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04,
-	0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04,
-	0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D,
-	0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003,
-	0x002FE684, 0xA0013904, 0x002FE684, 0x00000003,
-	// Block 62, offset 0xf80
-	0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04,
-	0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88,
-	0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20,
-	0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20,
-	0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20,
-	0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20,
-	0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20,
-	0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20,
-	0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84,
-	0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84,
-	0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A,
-	// Block 63, offset 0xfc0
-	0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003,
-	0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684,
-	0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884,
-	0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84,
-	0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202,
-	0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502,
-	0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702,
-	0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02,
-	0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102,
-	0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302,
-	0x00000002, 0x40306C20, 0xAE604702, 0x00000002,
-	// Block 64, offset 0x1000
-	0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20,
-	0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502,
-	0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88,
-	0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20,
-	0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20,
-	0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20,
-	0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202,
-	0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902,
-	0x00000002, 0x40306C20, 0xAE605B02, 0x00000002,
-	// Block 65, offset 0x1040
-	0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702,
-	0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20,
-	0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20,
-	0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20,
-	0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20,
-	0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20,
-	0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202,
-	0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88,
-	0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02,
-	0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20,
-	0xAD806802, 0xAE606402, 0x00000003, 0x00306C88,
-	// Block 66, offset 0x1080
-	0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002,
-	0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20,
-	0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20,
-	0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20,
-	0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20,
-	0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D,
-	0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002,
-	0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002,
-	0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C,
-	0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004,
-	0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F,
-	// Block 67, offset 0x10c0
-	0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084,
-	0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202,
-	0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502,
-	0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02,
-	0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302,
-	0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702,
-	0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202,
-	0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002,
-	0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702,
-	0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202,
-	0x00000002, 0x0030F688, 0xAE605202, 0x00000002,
-	// Block 68, offset 0x1100
-	0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002,
-	0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002,
-	0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002,
-	0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002,
-	0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002,
-	0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002,
-	0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002,
-	0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002,
-	0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002,
-	0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002,
-	0x00312A88, 0xAE603202, 0x00000002, 0x40312A20,
-	// Block 69, offset 0x1140
-	0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20,
-	0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20,
-	0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20,
-	0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20,
-	0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84,
-	0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488,
-	0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288,
-	0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003,
-	0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202,
-	0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	// Block 70, offset 0x1180
-	0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004,
-	0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288,
-	0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004,
-	0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288,
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002,
-	0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003,
-	0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02,
-	0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02,
-	0x00000004, 0x00325288, 0xAE602A02, 0xAE603202,
-	// Block 71, offset 0x11c0
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02,
-	0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02,
-	0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202,
-	0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202,
-	0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288,
-	0xAE603502, 0x00000003, 0x40325220, 0xAE603502,
-	// Block 72, offset 0x1200
-	0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288,
-	0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220,
-	0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002,
-	0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002,
-	0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002,
-	0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202,
-	0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20,
-	0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502,
-	0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02,
-	0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88,
-	0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20,
-	// Block 73, offset 0x1240
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502,
-	0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202,
-	0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502,
-	0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE604502,
-	// Block 74, offset 0x1280
-	0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820,
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202,
-	0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02,
-	0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820,
-	0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820,
-	0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202,
-	0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004,
-	0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502,
-	0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004,
-	0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02,
-	// Block 75, offset 0x12c0
-	0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002,
-	0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02,
-	0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502,
-	0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820,
-	0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002,
-	0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002,
-	0x40326C20, 0xAE602202, 0x00000002, 0x00326C88,
-	// Block 76, offset 0x1300
-	0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003,
-	0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202,
-	0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003,
-	0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202,
-	0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88,
-	0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003,
-	0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02,
-	0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003,
-	0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02,
-	0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88,
-	0xAE603202, 0x00000002, 0x40326C20, 0xAE603502,
-	// Block 77, offset 0x1340
-	0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702,
-	0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502,
-	0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702,
-	0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20,
-	0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502,
-	0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02,
-	0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A,
-	0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002,
-	0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202,
-	0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20,
-	0xAE602202, 0xAE603502, 0x00000003, 0x00327C88,
-	// Block 78, offset 0x1380
-	0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002,
-	0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202,
-	0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502,
-	0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202,
-	0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502,
-	0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02,
-	0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202,
-	0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820,
-	0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502,
-	0x00000002, 0x40329820, 0xAE602A02, 0x00000002,
-	// Block 79, offset 0x13c0
-	0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202,
-	0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502,
-	0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888,
-	0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002,
-	0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002,
-	0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002,
-	0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002,
-	0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003,
-	0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702,
-	0xAE603502, 0x00000003, 0x40329820, 0xAE604702,
-	// Block 80, offset 0x1400
-	0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888,
-	0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288,
-	0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288,
-	// Block 81, offset 0x1440
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202,
-	0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002,
-	0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02,
-	0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02,
-	0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02,
-	// Block 82, offset 0x1480
-	0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003,
-	0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202,
-	0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202,
-	0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288,
-	0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002,
-	0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02,
-	0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02,
-	0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284,
-	0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220,
-	0xAE603502, 0x00000002, 0x0033B288, 0xAE603502,
-	// Block 83, offset 0x14c0
-	0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702,
-	0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702,
-	0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502,
-	0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02,
-	0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02,
-	0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02,
-	0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202,
-	0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502,
-	0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202,
-	0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02,
-	0x00000002, 0x40389A20, 0xA1509202, 0x00000002,
-	// Block 84, offset 0x1500
-	0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002,
-	0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002,
-	0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002,
-	0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02,
-	0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202,
-	0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202,
-	0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202,
-	0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202,
-	0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502,
-	0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202,
-	0x00000002, 0x4038B620, 0xA1509202, 0x00000002,
-	// Block 85, offset 0x1540
-	0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002,
-	0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002,
-	0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20,
-	0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099,
-	0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097,
-	0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097,
-	0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097,
-	0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099,
-	0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098,
-	0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A,
-	0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699,
-	// Block 86, offset 0x1580
-	0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898,
-	0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A,
-	0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A,
-	0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A,
-	0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A,
-	0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A,
-	0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99,
-	0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A,
-	0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099,
-	0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897,
-	0x00000002, 0x00393099, 0x003A9899, 0x00000002,
-	// Block 87, offset 0x15c0
-	0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A,
-	0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A,
-	0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99,
-	0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97,
-	0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699,
-	0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497,
-	0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697,
-	0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97,
-	0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699,
-	0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497,
-	0x00000003, 0x00395697, 0x003A4E97, 0x00397297,
-	// Block 88, offset 0x1600
-	0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699,
-	0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099,
-	0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499,
-	0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A,
-	0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003,
-	0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99,
-	0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003,
-	0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499,
-	0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003,
-	0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A,
-	0x003A749A, 0x003A409A, 0x00000003, 0x0039C697,
-	// Block 89, offset 0x1640
-	0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99,
-	0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699,
-	0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099,
-	0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697,
-	0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299,
-	0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699,
-	0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099,
-	0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899,
-	0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099,
-	0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899,
-	0x003A4E99, 0x00397499, 0x00000003, 0x0039C897,
-	// Block 90, offset 0x1680
-	0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99,
-	0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99,
-	0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099,
-	0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003,
-	0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A,
-	0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A,
-	0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A,
-	0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A,
-	0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97,
-	0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99,
-	0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99,
-	// Block 91, offset 0x16c0
-	0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97,
-	0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697,
-	0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299,
-	0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699,
-	0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97,
-	0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A,
-	0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97,
-	0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003,
-	0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99,
-	0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003,
-	0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003,
-	// Block 92, offset 0x1700
-	0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497,
-	0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003,
-	0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A,
-	0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003,
-	0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99,
-	0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003,
-	0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99,
-	0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002,
-	0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002,
-	0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002,
-	0x003A4099, 0x00392899, 0x00000002, 0x003A409A,
-	// Block 93, offset 0x1740
-	0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003,
-	0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497,
-	0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003,
-	0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297,
-	0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003,
-	0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299,
-	0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003,
-	0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97,
-	0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003,
-	0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04,
-	0x00000003, 0x003A4E97, 0x00396497, 0x00397297,
-	// Block 94, offset 0x1780
-	0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97,
-	0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099,
-	0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97,
-	0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A,
-	0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003,
-	0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497,
-	0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003,
-	0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497,
-	0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003,
-	0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499,
-	0x003A4E99, 0x00000003, 0x003A5699, 0x00396499,
-	// Block 95, offset 0x17c0
-	0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003,
-	0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299,
-	0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003,
-	0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99,
-	0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003,
-	0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02,
-	0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A,
-	0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099,
-	0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097,
-	0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99,
-	0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099,
-	// Block 96, offset 0x1800
-	0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04,
-	0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04,
-	0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04,
-	0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904,
-	0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904,
-	0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102,
-	0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102,
-	0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102,
-	0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102,
-	0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102,
-	0x00000002, 0x40403020, 0xA070F102, 0x00000002,
-	// Block 97, offset 0x1840
-	0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002,
-	0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002,
-	0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002,
-	0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002,
-	0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002,
-	0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002,
-	0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002,
-	0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002,
-	0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002,
-	0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002,
-	0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20,
-	// Block 98, offset 0x1880
-	0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020,
-	0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020,
-	0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220,
-	0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220,
-	0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220,
-	0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420,
-	0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420,
-	0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620,
-	0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620,
-	0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620,
-	0x40498C20, 0x00000002, 0x40491820, 0x40498420,
-	// Block 99, offset 0x18c0
-	0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820,
-	0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20,
-	0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620,
-	0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20,
-	0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420,
-	0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820,
-	0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20,
-	0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620,
-	0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20,
-	0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420,
-	0x00000002, 0x40492020, 0x40498620, 0x00000002,
-	// Block 100, offset 0x1900
-	0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002,
-	0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002,
-	0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002,
-	0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002,
-	0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002,
-	0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002,
-	0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002,
-	0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002,
-	0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002,
-	0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002,
-	0x40492820, 0x40498820, 0x00000002, 0x40492820,
-	// Block 101, offset 0x1940
-	0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20,
-	0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20,
-	0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20,
-	0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20,
-	0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20,
-	0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20,
-	0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20,
-	0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20,
-	0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020,
-	0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020,
-	0x40498A20, 0x00000002, 0x40493020, 0x40498C20,
-	// Block 102, offset 0x1980
-	0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620,
-	0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20,
-	0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420,
-	0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820,
-	0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20,
-	0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620,
-	0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20,
-	0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420,
-	0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820,
-	0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20,
-	0x00000002, 0x40493A20, 0x40498420, 0x00000002,
-	// Block 103, offset 0x19c0
-	0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002,
-	0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002,
-	0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002,
-	0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002,
-	0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002,
-	0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002,
-	0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002,
-	0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002,
-	0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002,
-	0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002,
-	0x40494220, 0x40498620, 0x00000002, 0x40494220,
-	// Block 104, offset 0x1a00
-	0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220,
-	0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420,
-	0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420,
-	0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620,
-	0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620,
-	0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620,
-	0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820,
-	0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820,
-	0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20,
-	0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20,
-	0x40498820, 0x00000002, 0x40494A20, 0x40498A20,
-	// Block 105, offset 0x1a40
-	0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420,
-	0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820,
-	0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20,
-	0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620,
-	0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20,
-	0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420,
-	0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820,
-	0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20,
-	0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620,
-	0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20,
-	0x00000002, 0x40495220, 0x40498C20, 0x00000002,
-	// Block 106, offset 0x1a80
-	0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002,
-	0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002,
-	0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002,
-	0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002,
-	0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002,
-	0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002,
-	0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002,
-	0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002,
-	0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002,
-	0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002,
-	0x40495C20, 0x40498420, 0x00000002, 0x40495C20,
-	// Block 107, offset 0x1ac0
-	0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20,
-	0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20,
-	0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20,
-	0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20,
-	0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020,
-	0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020,
-	0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220,
-	0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220,
-	0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220,
-	0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420,
-	0x40498620, 0x00000002, 0x40496420, 0x40498820,
-	// Block 108, offset 0x1b00
-	0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20,
-	0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620,
-	0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20,
-	0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420,
-	0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820,
-	0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20,
-	0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620,
-	0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20,
-	0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620,
-	0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20,
-	0x00000002, 0x40499020, 0x4049EC20, 0x00000002,
-	// Block 109, offset 0x1b40
-	0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002,
-	0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002,
-	0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002,
-	0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002,
-	0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002,
-	0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002,
-	0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002,
-	0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002,
-	0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002,
-	0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002,
-	0x40499820, 0x4049EE20, 0x00000002, 0x40499A20,
-	// Block 110, offset 0x1b80
-	0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20,
-	0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20,
-	0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20,
-	0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20,
-	0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20,
-	0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20,
-	0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20,
-	0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020,
-	0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020,
-	0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220,
-	0x4049E620, 0x00000002, 0x4049A220, 0x4049E820,
-	// Block 111, offset 0x1bc0
-	0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20,
-	0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620,
-	0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20,
-	0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20,
-	0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820,
-	0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20,
-	0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620,
-	0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20,
-	0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20,
-	0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820,
-	0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002,
-	// Block 112, offset 0x1c00
-	0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002,
-	0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002,
-	0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002,
-	0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002,
-	0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002,
-	0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002,
-	0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002,
-	0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002,
-	0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002,
-	0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002,
-	0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220,
-	// Block 113, offset 0x1c40
-	0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420,
-	0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420,
-	0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620,
-	0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620,
-	0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620,
-	0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820,
-	0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820,
-	0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20,
-	0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20,
-	0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20,
-	0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620,
-	// Block 114, offset 0x1c80
-	0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20,
-	0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20,
-	0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820,
-	0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20,
-	0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620,
-	0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20,
-	0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20,
-	0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820,
-	0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20,
-	0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84,
-	0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84,
-	// Block 115, offset 0x1cc0
-	0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003,
-	0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84,
-	0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003,
-	0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84,
-	0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003,
-	0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620,
-	0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20,
-	0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20,
-	0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820,
-	0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20,
-	0x00000002, 0x4049C620, 0x4049EE20, 0x00000002,
-	// Block 116, offset 0x1d00
-	0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002,
-	0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002,
-	0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002,
-	0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002,
-	0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002,
-	0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002,
-	0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002,
-	0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002,
-	0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002,
-	0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002,
-	0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620,
-	// Block 117, offset 0x1d40
-	0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620,
-	0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820,
-	0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820,
-	0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820,
-	0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20,
-	0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20,
-	0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20,
-	0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20,
-	0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20,
-	0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20,
-	0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220,
-	// Block 118, offset 0x1d80
-	0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820,
-	0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20,
-	0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620,
-	0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20,
-	0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220,
-	0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820,
-	0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20,
-	0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620,
-	0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20,
-	0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220,
-	0x00000002, 0x404A0620, 0x404A6620, 0x00000002,
-	// Block 119, offset 0x1dc0
-	0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002,
-	0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002,
-	0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002,
-	0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002,
-	0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002,
-	0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002,
-	0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002,
-	0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002,
-	0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002,
-	0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002,
-	0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020,
-	// Block 120, offset 0x1e00
-	0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020,
-	0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020,
-	0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220,
-	0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220,
-	0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420,
-	0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420,
-	0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420,
-	0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620,
-	0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620,
-	0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820,
-	0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20,
-	// Block 121, offset 0x1e40
-	0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620,
-	0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20,
-	0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220,
-	0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820,
-	0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20,
-	0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620,
-	0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20,
-	0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220,
-	0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820,
-	0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20,
-	0x00000002, 0x404A2020, 0x404A6220, 0x00000002,
-	// Block 122, offset 0x1e80
-	0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002,
-	0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002,
-	0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002,
-	0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002,
-	0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002,
-	0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002,
-	0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002,
-	0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002,
-	0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002,
-	0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002,
-	0x404A2820, 0x404A6620, 0x00000002, 0x404A2820,
-	// Block 123, offset 0x1ec0
-	0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20,
-	0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20,
-	0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20,
-	0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20,
-	0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20,
-	0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20,
-	0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20,
-	0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020,
-	0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020,
-	0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020,
-	0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20,
-	// Block 124, offset 0x1f00
-	0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220,
-	0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820,
-	0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20,
-	0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620,
-	0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20,
-	0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220,
-	0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820,
-	0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20,
-	0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620,
-	0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20,
-	0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002,
-	// Block 125, offset 0x1f40
-	0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002,
-	0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002,
-	0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002,
-	0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002,
-	0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002,
-	0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002,
-	0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002,
-	0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002,
-	0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002,
-	0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002,
-	0x404A4220, 0x404A6220, 0x00000002, 0x404A4220,
-	// Block 126, offset 0x1f80
-	0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420,
-	0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420,
-	0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420,
-	0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620,
-	0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620,
-	0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820,
-	0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820,
-	0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820,
-	0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20,
-	0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20,
-	0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820,
-	// Block 127, offset 0x1fc0
-	0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20,
-	0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620,
-	0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20,
-	0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220,
-	0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820,
-	0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820,
-	0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020,
-	0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020,
-	0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020,
-	0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020,
-	0x00000002, 0x404AD020, 0x404B0020, 0x00000002,
-	// Block 128, offset 0x2000
-	0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002,
-	0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002,
-	0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002,
-	0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002,
-	0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304,
-	0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84,
-	0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003,
-	0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904,
-	0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04,
-	0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84,
-	0x00000002, 0x005AE084, 0xA0013904, 0x00000002,
-	// Block 129, offset 0x2040
-	0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002,
-	0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002,
-	0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002,
-	0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002,
-	0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002,
-	0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002,
-	0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002,
-	0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002,
-	0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002,
-	0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002,
-	0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84,
-	// Block 130, offset 0x2080
-	0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084,
-	0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284,
-	0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684,
-	0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684,
-	0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904,
-	0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904,
-	0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904,
-	0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904,
-	0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904,
-	0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904,
-	0x00000002, 0x005B3A84, 0xA0013904, 0x00000002,
-	// Block 131, offset 0x20c0
-	0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002,
-	0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002,
-	0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002,
-	0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002,
-	0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002,
-	0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002,
-	0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002,
-	0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002,
-	0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002,
-	0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002,
-	0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84,
-	// Block 132, offset 0x2100
-	0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84,
-	0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084,
-	0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084,
-	0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884,
-	0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284,
-	0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486,
-	0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886,
-	0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C,
-	0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C,
-	0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C,
-	0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C,
-	// Block 133, offset 0x2140
-	0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C,
-	0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C,
-	0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802,
-	0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C,
-	0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C,
-	0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C,
-	0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C,
-	0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802,
-	0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C,
-	0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C,
-	0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C,
-	// Block 134, offset 0x2180
-	0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C,
-	0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002,
-	0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C,
-	0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C,
-	0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006,
-	0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C,
-	0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C,
-	0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C,
-	0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C,
-	0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002,
-	0x00658691, 0xA0812802, 0x00000004, 0x0065869C,
-	// Block 135, offset 0x21c0
-	0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C,
-	0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C,
-	0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004,
-	0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E,
-	0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C,
-	0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002,
-	0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C,
-	0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002,
-	0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004,
-	0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C,
-	0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C,
-	// Block 136, offset 0x2200
-	0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802,
-	0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C,
-	0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802,
-	0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802,
-	0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C,
-	0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002,
-	0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002,
-	0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004,
-	0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E,
-	0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E,
-	0xA0812802, 0x00000002, 0x00659A91, 0xA0812802,
-	// Block 137, offset 0x2240
-	0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802,
-	0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E,
-	0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C,
-	0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C,
-	0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802,
-	0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902,
-	0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C,
-	0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C,
-	0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C,
-	0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E,
-	0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802,
-	// Block 138, offset 0x2280
-	0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902,
-	0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C,
-	0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C,
-	0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C,
-	0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002,
-	0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002,
-	0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C,
-	0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C,
-	0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C,
-	0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C,
-	0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802,
-	// Block 139, offset 0x22c0
-	0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902,
-	0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C,
-	0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C,
-	0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C,
-	0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C,
-	0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003,
-	0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C,
-	0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002,
-	0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002,
-	0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C,
-	0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C,
-	// Block 140, offset 0x2300
-	0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C,
-	0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005,
-	0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004,
-	0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C,
-	0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003,
-	0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C,
-	0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C,
-	0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C,
-	0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C,
-	0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C,
-	0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C,
-	// Block 141, offset 0x2340
-	0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C,
-	0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003,
-	0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C,
-	0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C,
-	0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C,
-	0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006,
-	0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C,
-	0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C,
-	0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491,
-	0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84,
-	0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04,
-	// Block 142, offset 0x2380
-	0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04,
-	0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04,
-	0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04,
-	0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04,
-	0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04,
-	0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904,
-	0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904,
-	0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904,
-	0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904,
-	0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04,
-	0x00000002, 0x00862E84, 0xA0013904, 0x00000002,
-	// Block 143, offset 0x23c0
-	0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002,
-	0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002,
-	0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002,
-	0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002,
-	0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002,
-	0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002,
-	0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002,
-	0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002,
-	0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002,
-	0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002,
-	0x00864A84, 0xA0013904, 0x00000002, 0x00864C84,
-	// Block 144, offset 0x2400
-	0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284,
-	0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084,
-	0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884,
-	0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484,
-	0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84,
-	0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684,
-	0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684,
-	0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084,
-	0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C,
-	0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904,
-	0x00000002, 0x02E4B684, 0xA0013904, 0x00000002,
-	// Block 145, offset 0x2440
-	0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002,
-	0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002,
-	0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002,
-	0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002,
-	0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002,
-	0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002,
-	0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002,
-	0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002,
-	0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002,
-	0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002,
-	0x032C3884, 0xA0013904, 0x00000002, 0x032DD084,
-	// Block 146, offset 0x2480
-	0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84,
-	0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884,
-	0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484,
-	0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84,
-	0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884,
-	0xA0013A04, 0x00000002, 0x00393C99, 0x003A8E99, 0x00000002, 0x00393C9A,
-	0x003A8E9A, 0x00000002, 0x00395699, 0x003A8E99, 0x00000002, 0x0039569A,
-	0x003A8E9A, 0x00000002, 0x00395899, 0x003A8E99, 0x00000002, 0x0039589A,
-	0x003A8E9A, 0x00000002, 0x00396499, 0x003A8E99, 0x00000002, 0x0039649A,
-	0x003A8E9A, 0x00000002, 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A,
-	0x003A8E9A, 0x00000002, 0x00397499, 0x003A8E99,
-	// Block 147, offset 0x24c0
-	0x00000002, 0x0039749A, 0x003A8E9A, 0x00000002, 0x0039C699, 0x003A8E99,
-	0x00000002, 0x0039C69A, 0x003A8E9A, 0x00000002, 0x0039C899, 0x003A8E99,
-	0x00000002, 0x0039C89A, 0x003A8E9A, 0x00000002, 0x0039DC99, 0x003A8E99,
-	0x00000002, 0x0039DC9A, 0x003A8E9A, 0x00000002, 0x0039DE99, 0x003A8E99,
-	0x00000002, 0x0039DE9A, 0x003A8E9A, 0x00000002, 0x0039E699, 0x003A8E99,
-	0x00000002, 0x0039E69A, 0x003A8E9A, 0x00000002, 0x0039EE99, 0x003A8E99,
-	0x00000002, 0x0039EE9A, 0x003A8E9A, 0x00000002, 0x0039F099, 0x003A8E99,
-	0x00000002, 0x0039F09A, 0x003A8E9A, 0x00000002, 0x0039FC99, 0x003A8E99,
-	0x00000002, 0x0039FC9A, 0x003A8E9A, 0x00000002, 0x003A1299, 0x003A8E99,
-	0x00000002, 0x003A129A, 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99,
-	0x00000002, 0x003A1A9A, 0x003A8E9A, 0x00000002,
-	// Block 148, offset 0x2500
-	0x003A4099, 0x003A8E99, 0x00000002, 0x003A409A, 0x003A8E9A, 0x00000002,
-	0x003A4E9A, 0x003A8E9A, 0x00000002, 0x003A5699, 0x003A8E99, 0x00000002,
-	0x003A569A, 0x003A8E9A, 0x00000002, 0x003A689A, 0x003A8E9A, 0x00000002,
-	0x003A9099, 0x003A8E99, 0x00000002, 0x003A909A, 0x003A8E9A, 0x00000003,
-	0x0003F484, 0x002D9A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F5684,
-	0x0003F69F, 0x00000003, 0x0003F484, 0x002F568A, 0x0003F69F, 0x00000003,
-	0x0003F484, 0x0030F684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F68A,
-	0x0003F69F, 0x00000002, 0x002C0A9D, 0x002F569C, 0x00000002, 0x402C3C20,
-	0xAE603202, 0x00000002, 0x002C3C83, 0xAE603202, 0x00000002, 0x402D6A20,
-	0xAE604702, 0x00000002, 0x002D6A83, 0xAE604702, 0x00000002, 0x402D6A20,
-	0xAE605202, 0x00000002, 0x002D6A83, 0xAE605202,
-	// Block 149, offset 0x2540
-	0x00000002, 0x002D9883, 0xAE603202, 0x00000002, 0x002D9883, 0xAE603502,
-	0x00000002, 0x002D9883, 0xAE603702, 0x00000002, 0x002D9883, 0xAE603C02,
-	0x00000002, 0x002D9883, 0xAE604102, 0x00000002, 0x002D9883, 0xAE604702,
-	0x00000003, 0x002D9883, 0xAE604702, 0xAE603202, 0x00000002, 0x002D9883,
-	0xAE604E02, 0x00000002, 0x002D9883, 0xACA05902, 0x00000002, 0x002D9883,
-	0xAE605B02, 0x00000002, 0x002D9883, 0xAE606402, 0x00000002, 0x002D9883,
-	0xAE606502, 0x00000002, 0x002D9883, 0xAE606702, 0x00000002, 0x002D9883,
-	0xADC07002, 0x00000002, 0x002D9883, 0xADC07A02, 0x00000002, 0x002D9A8A,
-	0x002D9A9F, 0x00000003, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, 0x00000002,
-	0x002D9A8A, 0x002DCC8A, 0x00000002, 0x002D9A9D, 0x00306C9D, 0x00000002,
-	0x002D9A8A, 0x0030BE9F, 0x00000002, 0x002D9A84,
-	// Block 150, offset 0x2580
-	0x0030F69F, 0x00000002, 0x002D9A8A, 0x0030F69F, 0x00000002, 0x002E229C,
-	0x0030F69C, 0x00000002, 0x402EE420, 0xAE604E02, 0x00000002, 0x002EE483,
-	0xAE604E02, 0x00000002, 0x402EE420, 0xAE605B02, 0x00000002, 0x002EE483,
-	0xAE605B02, 0x00000002, 0x40306E20, 0xAE603202, 0x00000002, 0x00306E83,
-	0xAE603202, 0x00000002, 0x40306E20, 0xAE603502, 0x00000002, 0x00306E83,
-	0xAE603502, 0x00000002, 0x40306E20, 0xAE604102, 0x00000002, 0x00306E83,
-	0xAE604102, 0x00000002, 0x40306E20, 0xAE605B02, 0x00000002, 0x00306E83,
-	0xAE605B02, 0x00000002, 0x0030BE8A, 0x002D9A9F, 0x00000003, 0x0030BE8A,
-	0x002D9A8A, 0x002D9A9F, 0x00000002, 0x0030F684, 0x002D9A9F, 0x00000002,
-	0x0030F68A, 0x002D9A9F, 0x00000003, 0x0030F684, 0x002D9A84, 0x002D9A9F,
-	0x00000003, 0x0030F68A, 0x002D9A8A, 0x002D9A9F,
-	// Block 151, offset 0x25c0
-	0x00000002, 0x402FE820, 0xAE605202, 0x00000002, 0x002FE883, 0xAE605202,
-	0x00000002, 0x002C6294, 0xA0013914, 0x00000002, 0x00302C83, 0x402D6820,
-	0x00000002, 0x00302C89, 0x002D6888, 0x00000002, 0x40310021, 0xAE603202,
-	0x00000002, 0x003100A3, 0xAE603202, 0x00000002, 0x40310021, 0xAE603502,
-	0x00000002, 0x003100A3, 0xAE603502, 0x00000002, 0x40310021, 0xAE604102,
-	0x00000002, 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02,
-	0x00000002, 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202,
-	0x00000002, 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02,
-	0x00000002, 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02,
-	0x00000002, 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202,
-	0x00000002, 0x00320E83, 0xAE603202, 0x00000002,
-	// Block 152, offset 0x2600
-	0x40320E21, 0xAE604E02, 0x00000002, 0x00320EA3, 0xAE604E02, 0x00000002,
-	0x40320E21, 0xAE605B02, 0x00000002, 0x00320EA3, 0xAE605B02, 0x00000002,
-	0x40321020, 0xAE603202, 0x00000002, 0x00321083, 0xAE603202, 0x00000002,
-	0x404A7620, 0x838225B3, 0x00000004, 0x004A8083, 0x404AB020, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004A8084, 0x404AB020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004A8083, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004A8084, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8083,
-	0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, 0x404AFA20,
-	0x404A8020, 0x404AFA20, 0x00000002, 0x404A8020, 0x828225B5, 0x00000004,
-	0x004AB083, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004,
-	// Block 153, offset 0x2640
-	0x004AB083, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, 0x404AB820,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084, 0x404AB820, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AB083, 0x404AC020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AB084, 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004AB083, 0x404AC420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404AC420, 0x404A8020, 0x404AFA20, 0x00000002, 0x404AB020, 0x828225B5,
-	0x00000002, 0x004AB083, 0x828225B5, 0x00000004, 0x004AC083, 0x404A8020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AC084, 0x404A8020, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AC083, 0x404AB020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC084, 0x404AB020, 0x404A8020,
-	// Block 154, offset 0x2680
-	0x404AFA20, 0x00000004, 0x004AC083, 0x404AFA20, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC084, 0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000002,
-	0x404AC020, 0x828225B5, 0x00000004, 0x004AC483, 0x404A8420, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AC484, 0x404A8420, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC483, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004AC484, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC483,
-	0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, 0x404AB420,
-	0x404A8020, 0x404AFA20, 0x00000002, 0x404AD020, 0x828225B5, 0x00000004,
-	0x004AE083, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084,
-	0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, 0x404AB020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084,
-	// Block 155, offset 0x26c0
-	0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, 0x404AC020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084, 0x404AC020, 0x404A8020,
-	0x404AFA20, 0x00000002, 0x404AEA20, 0x8281258B, 0x00000002, 0x404AF020,
-	0x8281258B, 0x00000002, 0x82822599, 0x838225B3, 0x00000002, 0x8282259B,
-	0x828225B5, 0x00000002, 0x828225A3, 0x828225B5, 0x00000002, 0x838225A3,
-	0x828225B5, 0x00000002, 0x828225A7, 0x828225B5, 0x00000002, 0x828225AB,
-	0x828225B5, 0x00000002, 0x402BDE20, 0xAE604202, 0x00000002, 0x002BDE88,
-	0xAE604202, 0x00000003, 0x402BDE20, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002BDE88, 0xAE604202, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402BDE20, 0xAE604202, 0xAE604E02, 0x00000003,
-	// Block 156, offset 0x2700
-	0x002BDE88, 0xAE604202, 0xAE604E02, 0x00000003, 0x402BDE20, 0xAE604202,
-	0xAE606402, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE606402, 0x00000003,
-	0x402BDE20, 0xADC07002, 0xAE604202, 0x00000003, 0x002BDE88, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402C3A20, 0xAE604202, 0x00000002, 0x002C3A88,
-	0xAE604202, 0x00000002, 0x402C9820, 0xAE604202, 0x00000002, 0x002C9888,
-	0xAE604202, 0x00000003, 0x402C9820, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002C9888, 0xAE604202, 0xAE603202, 0x00000003, 0x402C9820, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002C9888, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402C9820, 0xAE604202, 0xAE604E02, 0x00000003, 0x002C9888, 0xAE604202,
-	0xAE604E02, 0x00000003, 0x402C9820, 0xAE604202, 0xAE606402, 0x00000003,
-	0x002C9888, 0xAE604202, 0xAE606402, 0x00000003,
-	// Block 157, offset 0x2740
-	0x402C9820, 0xADC07002, 0xAE604202, 0x00000003, 0x002C9888, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402D2220, 0xAE604202, 0x00000002, 0x002D2288,
-	0xAE604202, 0x00000002, 0x402D6820, 0xAE604202, 0x00000002, 0x002D6888,
-	0xAE604202, 0x00000002, 0x402D9A20, 0xAE604202, 0x00000002, 0x002D9A88,
-	0xAE604202, 0x00000002, 0x402DCC20, 0xAE604202, 0x00000002, 0x002DCC88,
-	0xAE604202, 0x00000002, 0x402EE220, 0xAE604202, 0x00000002, 0x002EE288,
-	0xAE604202, 0x00000003, 0x402EE220, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAE604202, 0xAE603202, 0x00000003, 0x402EE220, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402EE220, 0xAE604202, 0xAE604E02, 0x00000003, 0x002EE288, 0xAE604202,
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAE604202,
-	// Block 158, offset 0x2780
-	0xAE606402, 0x00000003, 0x002EE288, 0xAE604202, 0xAE606402, 0x00000003,
-	0x402EE220, 0xADC07002, 0xAE604202, 0x00000003, 0x002EE288, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402FE620, 0xAE604202, 0x00000002, 0x002FE688,
-	0xAE604202, 0x00000002, 0x40306C20, 0xAE604202, 0x00000002, 0x00306C88,
-	0xAE604202, 0x00000002, 0x4030E220, 0xAE604202, 0x00000002, 0x0030E288,
-	0xAE604202, 0x00000002, 0x40310020, 0xAE604202, 0x00000002, 0x00310088,
-	0xAE604202, 0x00000002, 0x40312A20, 0xAE604202, 0x00000002, 0x00312A88,
-	0xAE604202, 0x00000002, 0x0002BA84, 0x0002BA9F, 0x00000002, 0x0002BA84,
-	0x0002C49F, 0x00000002, 0x0002C484, 0x0002BA9F, 0x00000003, 0x0003F484,
-	0x0029CE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D084, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0029D284, 0x0003F69F,
-	// Block 159, offset 0x27c0
-	0x00000003, 0x0003F484, 0x0029D484, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0029D684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0029DA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0029DC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029DE84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002BDE84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002BDE8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C0A84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C0A8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002C3A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C3A8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C6284, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002C628A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C9884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C988A, 0x0003F69F,
-	// Block 160, offset 0x2800
-	0x00000003, 0x0003F484, 0x002D0884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002D088A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002D228A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002D6884, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D688A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002D9A84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002DCC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002DCC8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002DFE84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002DFE8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002E228A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002E8284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E828A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002E9E84, 0x0003F69F,
-	// Block 161, offset 0x2840
-	0x00000003, 0x0003F484, 0x002E9E8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002EE284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002EE28A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002F2C84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002F2C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002F7A8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002FE684, 0x0003F69F, 0x00000003, 0x0003F484, 0x002FE68A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00302C84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00302C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x00306C84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00306C8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0030BE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030BE8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F,
-	// Block 162, offset 0x2880
-	0x00000003, 0x0003F484, 0x0030E28A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00310084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0031008A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00312A84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00312A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062AC84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062B084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062B284, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062B684, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062B884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062BA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062BE84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062C284, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062C484, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062C884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062CA84, 0x0003F69F,
-	// Block 163, offset 0x28c0
-	0x00000003, 0x0003F484, 0x0062CC84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062CE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062D084, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029C0084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029C0684, 0x0003F69F, 0x00000003, 0x0003F484, 0x029C1284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029CBA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029D1884, 0x0003F69F, 0x00000003, 0x0003F484, 0x029D2884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029DC684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029E0284, 0x0003F69F, 0x00000003, 0x0003F484, 0x029E2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02A2D684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02A2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A56884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02A68284, 0x0003F69F,
-	// Block 164, offset 0x2900
-	0x00000003, 0x0003F484, 0x02A6A884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02A81A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A8F884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02ADB684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02AE3E84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02B6CC84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02CBCA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02CE1084, 0x0003F69F, 0x00000003, 0x0003F484, 0x02CE1284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02CE5084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02D05484, 0x0003F69F, 0x00000003, 0x0003F484, 0x02D86884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02E0D684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02E4F284, 0x0003F69F, 0x00000003, 0x0003F484, 0x02EDC684, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02F27C84, 0x0003F69F,
-	// Block 165, offset 0x2940
-	0x00000003, 0x0003F484, 0x02F2BA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02F2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0303D484, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0303E684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x03194284, 0x0003F69F, 0x00000003, 0x0003F484, 0x03198E84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0323A284, 0x0003F69F, 0x00000003, 0x0004B084,
-	0x002FE68A, 0x0004B29F, 0x00000002, 0x00070484, 0x002C3A8A, 0x00000002,
-	0x00070484, 0x002D088A, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000003,
-	0x0029CE84, 0x0029DA84, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DA84,
-	0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029DA84, 0x02E1729F, 0x00000002,
-	0x0029D086, 0x0029DA86, 0x00000003, 0x0029D084, 0x0029DA84, 0x02CBCA9F,
-	0x00000002, 0x0029D286, 0x0029DA86, 0x00000002,
-	// Block 166, offset 0x2980
-	0x0029D486, 0x0029DA86, 0x00000002, 0x0029DA84, 0x0002409F, 0x00000002,
-	0x0029DA84, 0x0002E49F, 0x00000002, 0x0029DA84, 0x02CBCA9F, 0x00000002,
-	0x0029DA84, 0x02CE109F, 0x00000002, 0x0029DA84, 0x02E1729F, 0x00000002,
-	0x002BDE9D, 0x00306C9D, 0x00000002, 0x002BDE84, 0x0031E284, 0x00000002,
-	0x402BF220, 0xAE603202, 0x00000002, 0x402BF220, 0xAE603502, 0x00000002,
-	0x402BF220, 0xAE603702, 0x00000003, 0x402BF220, 0xAE603702, 0xAE603202,
-	0x00000003, 0x402BF220, 0xAE603702, 0xAE603502, 0x00000003, 0x402BF220,
-	0xAE603702, 0xAE604E02, 0x00000003, 0x402BF220, 0xAE603702, 0xAE606402,
-	0x00000002, 0x402BF220, 0xAE603C02, 0x00000003, 0x402BF220, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x402BF220, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x402BF220, 0xAE603C02, 0xAE604E02, 0x00000003,
-	// Block 167, offset 0x29c0
-	0x402BF220, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BF220, 0xAE604102,
-	0x00000002, 0x402BF220, 0xAE604302, 0x00000003, 0x402BF220, 0xAE604302,
-	0xAE603202, 0x00000002, 0x402BF220, 0xAE604702, 0x00000003, 0x402BF220,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402BF220, 0xAE604E02, 0x00000002,
-	0x402BF220, 0xAE605202, 0x00000003, 0x402BF220, 0xAE605202, 0xAE605B02,
-	0x00000002, 0x402BF220, 0xACA05902, 0x00000002, 0x402BF220, 0xAE605B02,
-	0x00000002, 0x402BF220, 0xAE606402, 0x00000002, 0x402BF220, 0xAE606502,
-	0x00000002, 0x402BF220, 0xAE606702, 0x00000002, 0x402BF220, 0xADC07002,
-	0x00000003, 0x402BF220, 0xADC07002, 0xAE603702, 0x00000003, 0x402BF220,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x402BF220, 0xADC07602, 0x00000002,
-	0x402BF420, 0xAE605202, 0x00000002, 0x402BF420,
-	// Block 168, offset 0x2a00
-	0xADC07002, 0x00000002, 0x402BF420, 0xADC07B02, 0x00000002, 0x402BF620,
-	0xAE603202, 0x00000002, 0x402BF620, 0xAE603C02, 0x00000002, 0x402BF620,
-	0xAE604102, 0x00000002, 0x402BF620, 0xAE605202, 0x00000002, 0x402BF620,
-	0xACA05602, 0x00000003, 0x402BF620, 0xACA05602, 0xAE603202, 0x00000002,
-	0x402BF820, 0xAE604102, 0x00000002, 0x402BF820, 0xAE605202, 0x00000002,
-	0x402BF820, 0xACA05602, 0x00000002, 0x402BF820, 0xADC07002, 0x00000002,
-	0x402BF820, 0xADC07802, 0x00000002, 0x402BF820, 0xADC07B02, 0x00000002,
-	0x402BFA20, 0xAE603202, 0x00000002, 0x402BFA20, 0xAE603502, 0x00000002,
-	0x402BFA20, 0xAE603702, 0x00000002, 0x402BFA20, 0xAE603C02, 0x00000003,
-	0x402BFA20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402BFA20, 0xAE603C02,
-	0xAE603502, 0x00000003, 0x402BFA20, 0xAE603C02,
-	// Block 169, offset 0x2a40
-	0xAE604E02, 0x00000003, 0x402BFA20, 0xAE603C02, 0xAE606402, 0x00000002,
-	0x402BFA20, 0xAE604102, 0x00000002, 0x402BFA20, 0xAE604702, 0x00000002,
-	0x402BFA20, 0xAE604E02, 0x00000002, 0x402BFA20, 0xAE605202, 0x00000002,
-	0x402BFA20, 0xACA05602, 0x00000003, 0x402BFA20, 0xACA05602, 0xAE603702,
-	0x00000002, 0x402BFA20, 0xACA05902, 0x00000002, 0x402BFA20, 0xAE605B02,
-	0x00000003, 0x402BFA20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402BFA20,
-	0xAE605B02, 0xAE603502, 0x00000002, 0x402BFA20, 0xAE606402, 0x00000002,
-	0x402BFA20, 0xAE606502, 0x00000002, 0x402BFA20, 0xAE606702, 0x00000002,
-	0x402BFA20, 0xADC07002, 0x00000003, 0x402BFA20, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402BFA20, 0xADC07802, 0x00000002, 0x402BFA20, 0xADC07A02,
-	0x00000002, 0x402BFC20, 0xAE605202, 0x00000002,
-	// Block 170, offset 0x2a80
-	0x402BFE20, 0xAE603202, 0x00000002, 0x402BFE20, 0xAE603702, 0x00000002,
-	0x402BFE20, 0xAE603C02, 0x00000002, 0x402BFE20, 0xAE604102, 0x00000002,
-	0x402BFE20, 0xAE605202, 0x00000002, 0x402BFE20, 0xACA05602, 0x00000002,
-	0x402BFE20, 0xAE605B02, 0x00000002, 0x402C0020, 0xAE603C02, 0x00000002,
-	0x402C0020, 0xAE604102, 0x00000002, 0x402C0020, 0xAE604702, 0x00000002,
-	0x402C0020, 0xAE605202, 0x00000002, 0x402C0020, 0xACA05602, 0x00000002,
-	0x402C0020, 0xADC07002, 0x00000002, 0x402C0020, 0xADC07902, 0x00000002,
-	0x402C0220, 0xAE603202, 0x00000002, 0x402C0220, 0xAE603502, 0x00000002,
-	0x402C0220, 0xAE603702, 0x00000002, 0x402C0220, 0xAE603C02, 0x00000002,
-	0x402C0220, 0xAE604102, 0x00000002, 0x402C0220, 0xAE604702, 0x00000003,
-	0x402C0220, 0xAE604702, 0xAE603202, 0x00000002,
-	// Block 171, offset 0x2ac0
-	0x402C0220, 0xAE604E02, 0x00000002, 0x402C0220, 0xAE605202, 0x00000002,
-	0x402C0220, 0xACA05902, 0x00000002, 0x402C0220, 0xAE605B02, 0x00000002,
-	0x402C0220, 0xAE606402, 0x00000002, 0x402C0220, 0xAE606502, 0x00000002,
-	0x402C0220, 0xAE606702, 0x00000002, 0x402C0220, 0xADC07002, 0x00000002,
-	0x402C0220, 0xADC07A02, 0x00000002, 0x402C0420, 0xAE603C02, 0x00000002,
-	0x402C0620, 0xAE603202, 0x00000002, 0x402C0620, 0xAE604102, 0x00000002,
-	0x402C0620, 0xACA05602, 0x00000002, 0x402C0620, 0xADC07002, 0x00000002,
-	0x402C0620, 0xADC07B02, 0x00000002, 0x402C0820, 0xAE603202, 0x00000002,
-	0x402C0820, 0xAE604102, 0x00000002, 0x402C0820, 0xACA05602, 0x00000002,
-	0x402C0820, 0xADC07002, 0x00000003, 0x402C0820, 0xADC07002, 0xAE605B02,
-	0x00000002, 0x402C0820, 0xADC07802, 0x00000002,
-	// Block 172, offset 0x2b00
-	0x402C0820, 0xADC07B02, 0x00000002, 0x402C0A20, 0xAE603202, 0x00000002,
-	0x402C0A20, 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002,
-	0x402C0C20, 0xAE603202, 0x00000002, 0x402C0C20, 0xAE603502, 0x00000002,
-	0x402C0C20, 0xAE604102, 0x00000002, 0x402C0C20, 0xAE604E02, 0x00000002,
-	0x402C0C20, 0xAE605202, 0x00000002, 0x402C0C20, 0xACA05602, 0x00000002,
-	0x402C0C20, 0xADC07002, 0x00000002, 0x402C0C20, 0xADC07802, 0x00000002,
-	0x402C0C20, 0xADC07B02, 0x00000002, 0x402C0E20, 0xAE603202, 0x00000002,
-	0x402C0E20, 0xAE603502, 0x00000002, 0x402C0E20, 0xAE603702, 0x00000002,
-	0x402C0E20, 0xAE603C02, 0x00000003, 0x402C0E20, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402C0E20, 0xAE603C02, 0xAE603502, 0x00000003, 0x402C0E20,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x402C0E20,
-	// Block 173, offset 0x2b40
-	0xAE603C02, 0xAE606402, 0x00000002, 0x402C0E20, 0xAE604102, 0x00000002,
-	0x402C0E20, 0xAE604702, 0x00000003, 0x402C0E20, 0xAE604702, 0xAE605B02,
-	0x00000002, 0x402C0E20, 0xAE604D02, 0x00000002, 0x402C0E20, 0xAE604E02,
-	0x00000003, 0x402C0E20, 0xAE604E02, 0xAE603202, 0x00000003, 0x402C0E20,
-	0xAE604E02, 0xAE604702, 0x00000003, 0x402C0E20, 0xAE604E02, 0xAE605B02,
-	0x00000002, 0x402C0E20, 0xAE605202, 0x00000003, 0x402C0E20, 0xAE605202,
-	0xAE605B02, 0x00000002, 0x402C0E20, 0xACA05902, 0x00000003, 0x402C0E20,
-	0xACA05902, 0xAE605B02, 0x00000002, 0x402C0E20, 0xAE605B02, 0x00000003,
-	0x402C0E20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C0E20, 0xAE605B02,
-	0xAE603502, 0x00000002, 0x402C0E20, 0xAE606402, 0x00000002, 0x402C0E20,
-	0xAE606502, 0x00000002, 0x402C0E20, 0xAE606702,
-	// Block 174, offset 0x2b80
-	0x00000002, 0x402C0E20, 0xAD806802, 0x00000003, 0x402C0E20, 0xAD806802,
-	0xAE603202, 0x00000003, 0x402C0E20, 0xAD806802, 0xAE603502, 0x00000003,
-	0x402C0E20, 0xAD806802, 0xAE604E02, 0x00000003, 0x402C0E20, 0xAD806802,
-	0xAE606402, 0x00000003, 0x402C0E20, 0xAD806802, 0xADC07002, 0x00000002,
-	0x402C0E20, 0xADC07002, 0x00000003, 0x402C0E20, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402C1020, 0xAE603202, 0x00000002, 0x402C1020, 0xAE605202,
-	0x00000002, 0x402C1420, 0xAE603202, 0x00000002, 0x402C1420, 0xAE604102,
-	0x00000002, 0x402C1420, 0xAE605202, 0x00000002, 0x402C1420, 0xACA05602,
-	0x00000002, 0x402C1420, 0xAE606502, 0x00000002, 0x402C1420, 0xAE606702,
-	0x00000002, 0x402C1420, 0xADC07002, 0x00000003, 0x402C1420, 0xADC07002,
-	0xAE605B02, 0x00000002, 0x402C1420, 0xADC07B02,
-	// Block 175, offset 0x2bc0
-	0x00000002, 0x402C1620, 0xAE603202, 0x00000003, 0x402C1620, 0xAE603202,
-	0xAE605202, 0x00000002, 0x402C1620, 0xAE603C02, 0x00000002, 0x402C1620,
-	0xAE604102, 0x00000003, 0x402C1620, 0xAE604102, 0xAE605202, 0x00000002,
-	0x402C1620, 0xAE605202, 0x00000002, 0x402C1620, 0xACA05602, 0x00000002,
-	0x402C1620, 0xADC07002, 0x00000003, 0x402C1620, 0xADC07002, 0xAE605202,
-	0x00000002, 0x402C1620, 0xADC07702, 0x00000002, 0x402C1820, 0xAE604102,
-	0x00000002, 0x402C1820, 0xAE605202, 0x00000002, 0x402C1820, 0xACA05602,
-	0x00000002, 0x402C1820, 0xADC07002, 0x00000002, 0x402C1820, 0xADC07702,
-	0x00000002, 0x402C1820, 0xADC07802, 0x00000002, 0x402C1820, 0xADC07B02,
-	0x00000002, 0x402C1A20, 0xAE603202, 0x00000002, 0x402C1A20, 0xAE603502,
-	0x00000002, 0x402C1A20, 0xAE603702, 0x00000002,
-	// Block 176, offset 0x2c00
-	0x402C1A20, 0xAE603C02, 0x00000002, 0x402C1A20, 0xAE604102, 0x00000002,
-	0x402C1A20, 0xAE604302, 0x00000002, 0x402C1A20, 0xAE604702, 0x00000003,
-	0x402C1A20, 0xAE604702, 0xAE603202, 0x00000003, 0x402C1A20, 0xAE604702,
-	0xAE603502, 0x00000003, 0x402C1A20, 0xAE604702, 0xAE604102, 0x00000003,
-	0x402C1A20, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C1A20, 0xAE604D02,
-	0x00000002, 0x402C1A20, 0xAE604E02, 0x00000003, 0x402C1A20, 0xAE604E02,
-	0xAE603202, 0x00000002, 0x402C1A20, 0xACA05902, 0x00000002, 0x402C1A20,
-	0xAE605B02, 0x00000003, 0x402C1A20, 0xAE605B02, 0xAE604702, 0x00000002,
-	0x402C1A20, 0xAE606402, 0x00000002, 0x402C1A20, 0xAE606502, 0x00000002,
-	0x402C1A20, 0xAE606702, 0x00000002, 0x402C1A20, 0xAD806802, 0x00000003,
-	0x402C1A20, 0xAD806802, 0xAE603202, 0x00000003,
-	// Block 177, offset 0x2c40
-	0x402C1A20, 0xAD806802, 0xAE603502, 0x00000003, 0x402C1A20, 0xAD806802,
-	0xAE604E02, 0x00000003, 0x402C1A20, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402C1A20, 0xAD806802, 0xADC07002, 0x00000002, 0x402C1A20, 0xADC07002,
-	0x00000002, 0x402C1A20, 0xADC07502, 0x00000002, 0x402C1A20, 0xADC07802,
-	0x00000002, 0x402C1A20, 0xADC07A02, 0x00000002, 0x402C1C20, 0xAE604E02,
-	0x00000002, 0x402C1C20, 0xADC07002, 0x00000002, 0x402C1E20, 0xAE603202,
-	0x00000002, 0x402C1E20, 0xAE603502, 0x00000002, 0x402C1E20, 0xAE603C02,
-	0x00000002, 0x402C1E20, 0xAE604702, 0x00000002, 0x402C1E20, 0xAE605202,
-	0x00000002, 0x402C1E20, 0xADC07002, 0x00000002, 0x402C2020, 0xAE604702,
-	0x00000002, 0x402C2020, 0xAE605202, 0x00000002, 0x402C2220, 0xAE603202,
-	0x00000002, 0x402C2220, 0xAE603502, 0x00000002,
-	// Block 178, offset 0x2c80
-	0x402C2220, 0xAE603C02, 0x00000002, 0x402C2220, 0xAE604702, 0x00000002,
-	0x402C2220, 0xAE604E02, 0x00000002, 0x402C2220, 0xAE605202, 0x00000002,
-	0x402C2220, 0xAE605B02, 0x00000002, 0x402C2220, 0xAE606402, 0x00000002,
-	0x402C2220, 0xADC07002, 0x00000002, 0x402C2420, 0xAE603202, 0x00000002,
-	0x402C2420, 0xAE603C02, 0x00000002, 0x402C2420, 0xAE604102, 0x00000002,
-	0x402C2420, 0xAE605202, 0x00000002, 0x402C2420, 0xADC07002, 0x00000002,
-	0x402C2420, 0xADC07B02, 0x00000002, 0x402C2820, 0xAE603202, 0x00000002,
-	0x402C2820, 0xAE603502, 0x00000002, 0x402C2820, 0xAE603702, 0x00000003,
-	0x402C2820, 0xAE603702, 0xAE603202, 0x00000003, 0x402C2820, 0xAE603702,
-	0xAE603502, 0x00000003, 0x402C2820, 0xAE603702, 0xAE604E02, 0x00000003,
-	0x402C2820, 0xAE603702, 0xAE606402, 0x00000002,
-	// Block 179, offset 0x2cc0
-	0x402C2820, 0xAE603C02, 0x00000003, 0x402C2820, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402C2820, 0xAE603C02, 0xAE603502, 0x00000003, 0x402C2820,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x402C2820, 0xAE603C02, 0xAE606402,
-	0x00000002, 0x402C2820, 0xAE604102, 0x00000002, 0x402C2820, 0xAE604302,
-	0x00000003, 0x402C2820, 0xAE604302, 0xAE603202, 0x00000002, 0x402C2820,
-	0xAE604702, 0x00000003, 0x402C2820, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x402C2820, 0xAE604E02, 0x00000002, 0x402C2820, 0xAE605202, 0x00000003,
-	0x402C2820, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C2820, 0xACA05902,
-	0x00000002, 0x402C2820, 0xAE605B02, 0x00000002, 0x402C2820, 0xAE606402,
-	0x00000002, 0x402C2820, 0xAE606502, 0x00000002, 0x402C2820, 0xAE606702,
-	0x00000002, 0x402C2820, 0xADC07002, 0x00000003,
-	// Block 180, offset 0x2d00
-	0x402C2820, 0xADC07002, 0xAE603702, 0x00000003, 0x402C2820, 0xADC07002,
-	0xAE603C02, 0x00000002, 0x402C2820, 0xADC07602, 0x00000002, 0x402C2A20,
-	0xAE603202, 0x00000002, 0x402C2A20, 0xAE603702, 0x00000002, 0x402C2A20,
-	0xAE603C02, 0x00000002, 0x402C2A20, 0xAE604102, 0x00000002, 0x402C2A20,
-	0xAE605202, 0x00000002, 0x402C2A20, 0xACA05602, 0x00000002, 0x402C2A20,
-	0xAE605B02, 0x00000002, 0x402C2C20, 0xAE603C02, 0x00000002, 0x402C2C20,
-	0xAE604102, 0x00000002, 0x402C2C20, 0xAE604702, 0x00000002, 0x402C2C20,
-	0xAE605202, 0x00000002, 0x402C2C20, 0xACA05602, 0x00000002, 0x402C2C20,
-	0xADC07002, 0x00000002, 0x402C2C20, 0xADC07902, 0x00000002, 0x402C2C20,
-	0xADC07B02, 0x00000002, 0x402C2E20, 0xAE603202, 0x00000002, 0x402C2E20,
-	0xAE603502, 0x00000002, 0x402C2E20, 0xAE603702,
-	// Block 181, offset 0x2d40
-	0x00000002, 0x402C2E20, 0xAE603C02, 0x00000002, 0x402C2E20, 0xAE604102,
-	0x00000002, 0x402C2E20, 0xAE604702, 0x00000003, 0x402C2E20, 0xAE604702,
-	0xAE603202, 0x00000002, 0x402C2E20, 0xAE604E02, 0x00000002, 0x402C2E20,
-	0xACA05902, 0x00000002, 0x402C2E20, 0xAE605B02, 0x00000002, 0x402C2E20,
-	0xAE606402, 0x00000002, 0x402C2E20, 0xAE606502, 0x00000002, 0x402C2E20,
-	0xAE606702, 0x00000002, 0x402C2E20, 0xADC07002, 0x00000002, 0x402C2E20,
-	0xADC07A02, 0x00000002, 0x402C3020, 0xAE603C02, 0x00000002, 0x402C3020,
-	0xAE604102, 0x00000002, 0x402C3220, 0xAE603202, 0x00000002, 0x402C3220,
-	0xAE604102, 0x00000002, 0x402C3220, 0xACA05602, 0x00000002, 0x402C3220,
-	0xADC07002, 0x00000002, 0x402C3220, 0xADC07B02, 0x00000002, 0x402C3420,
-	0xAE603202, 0x00000002, 0x402C3420, 0xAE604102,
-	// Block 182, offset 0x2d80
-	0x00000002, 0x402C3420, 0xACA05602, 0x00000002, 0x402C3420, 0xADC07002,
-	0x00000003, 0x402C3420, 0xADC07002, 0xAE605B02, 0x00000002, 0x402C3420,
-	0xADC07802, 0x00000002, 0x402C3420, 0xADC07B02, 0x00000002, 0x402C3620,
-	0xAE603202, 0x00000002, 0x402C3620, 0xAE605202, 0x00000002, 0x402C3620,
-	0xADC07002, 0x00000002, 0x402C3820, 0xAE603202, 0x00000002, 0x402C3820,
-	0xAE603502, 0x00000002, 0x402C3820, 0xAE604102, 0x00000002, 0x402C3820,
-	0xAE604E02, 0x00000002, 0x402C3820, 0xAE605202, 0x00000002, 0x402C3820,
-	0xACA05602, 0x00000002, 0x402C3820, 0xADC07002, 0x00000002, 0x402C3820,
-	0xADC07802, 0x00000002, 0x402C3820, 0xADC07B02, 0x00000002, 0x402C3A20,
-	0xAE603202, 0x00000002, 0x402C3A20, 0xAE603502, 0x00000002, 0x402C3A20,
-	0xAE603702, 0x00000002, 0x402C3A20, 0xAE603C02,
-	// Block 183, offset 0x2dc0
-	0x00000003, 0x402C3A20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402C3A20,
-	0xAE603C02, 0xAE603502, 0x00000003, 0x402C3A20, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402C3A20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C3A20,
-	0xAE604102, 0x00000002, 0x402C3A20, 0xAE604702, 0x00000003, 0x402C3A20,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402C3A20, 0xAE604D02, 0x00000002,
-	0x402C3A20, 0xAE604E02, 0x00000003, 0x402C3A20, 0xAE604E02, 0xAE603202,
-	0x00000003, 0x402C3A20, 0xAE604E02, 0xAE604702, 0x00000003, 0x402C3A20,
-	0xAE604E02, 0xAE605B02, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000003,
-	0x402C3A20, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C3A20, 0xACA05902,
-	0x00000003, 0x402C3A20, 0xACA05902, 0xAE605B02, 0x00000002, 0x402C3A20,
-	0xAE605B02, 0x00000003, 0x402C3A20, 0xAE605B02,
-	// Block 184, offset 0x2e00
-	0xAE603202, 0x00000003, 0x402C3A20, 0xAE605B02, 0xAE603502, 0x00000002,
-	0x402C3A20, 0xAE606402, 0x00000002, 0x402C3A20, 0xAE606502, 0x00000002,
-	0x402C3A20, 0xAE606702, 0x00000002, 0x402C3A20, 0xAD806802, 0x00000003,
-	0x402C3A20, 0xAD806802, 0xAE603202, 0x00000003, 0x402C3A20, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402C3A20, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x402C3A20, 0xAD806802, 0xAE606402, 0x00000003, 0x402C3A20, 0xAD806802,
-	0xADC07002, 0x00000002, 0x402C3A20, 0xADC07002, 0x00000003, 0x402C3A20,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x002C3A9C, 0x002C3A9C, 0x00000002,
-	0x002C3A8C, 0x002C628C, 0x00000002, 0x002C3A9C, 0x002C629C, 0x00000002,
-	0x002C3A9C, 0x002E829C, 0x00000002, 0x402C3C20, 0xAE603202, 0x00000002,
-	0x402C3C20, 0xAE605202, 0x00000002, 0x402C4020,
-	// Block 185, offset 0x2e40
-	0xAE603202, 0x00000002, 0x402C4020, 0xAE604102, 0x00000002, 0x402C4020,
-	0xAE605202, 0x00000002, 0x402C4020, 0xACA05602, 0x00000002, 0x402C4020,
-	0xAE606502, 0x00000002, 0x402C4020, 0xAE606702, 0x00000002, 0x402C4020,
-	0xADC07002, 0x00000003, 0x402C4020, 0xADC07002, 0xAE605B02, 0x00000002,
-	0x402C4020, 0xADC07B02, 0x00000002, 0x402C4220, 0xAE603202, 0x00000003,
-	0x402C4220, 0xAE603202, 0xAE605202, 0x00000002, 0x402C4220, 0xAE603C02,
-	0x00000002, 0x402C4220, 0xAE604102, 0x00000003, 0x402C4220, 0xAE604102,
-	0xAE605202, 0x00000002, 0x402C4220, 0xAE605202, 0x00000002, 0x402C4220,
-	0xACA05602, 0x00000002, 0x402C4220, 0xADC07002, 0x00000003, 0x402C4220,
-	0xADC07002, 0xAE605202, 0x00000002, 0x402C4220, 0xADC07702, 0x00000002,
-	0x402C4420, 0xAE604102, 0x00000002, 0x402C4420,
-	// Block 186, offset 0x2e80
-	0xAE604702, 0x00000002, 0x402C4420, 0xAE605202, 0x00000002, 0x402C4420,
-	0xACA05602, 0x00000002, 0x402C4420, 0xADC07002, 0x00000002, 0x402C4420,
-	0xADC07702, 0x00000002, 0x402C4420, 0xADC07802, 0x00000002, 0x402C4420,
-	0xADC07B02, 0x00000002, 0x402C4620, 0xAE603202, 0x00000002, 0x402C4620,
-	0xAE603502, 0x00000002, 0x402C4620, 0xAE603702, 0x00000002, 0x402C4620,
-	0xAE603C02, 0x00000002, 0x402C4620, 0xAE604102, 0x00000002, 0x402C4620,
-	0xAE604302, 0x00000002, 0x402C4620, 0xAE604702, 0x00000003, 0x402C4620,
-	0xAE604702, 0xAE603202, 0x00000003, 0x402C4620, 0xAE604702, 0xAE603502,
-	0x00000003, 0x402C4620, 0xAE604702, 0xAE604102, 0x00000003, 0x402C4620,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402C4620, 0xAE604D02, 0x00000002,
-	0x402C4620, 0xAE604E02, 0x00000003, 0x402C4620,
-	// Block 187, offset 0x2ec0
-	0xAE604E02, 0xAE603202, 0x00000002, 0x402C4620, 0xACA05902, 0x00000002,
-	0x402C4620, 0xAE605B02, 0x00000003, 0x402C4620, 0xAE605B02, 0xAE604702,
-	0x00000002, 0x402C4620, 0xAE606402, 0x00000002, 0x402C4620, 0xAE606502,
-	0x00000002, 0x402C4620, 0xAE606702, 0x00000002, 0x402C4620, 0xAD806802,
-	0x00000003, 0x402C4620, 0xAD806802, 0xAE603202, 0x00000003, 0x402C4620,
-	0xAD806802, 0xAE603502, 0x00000003, 0x402C4620, 0xAD806802, 0xAE604E02,
-	0x00000003, 0x402C4620, 0xAD806802, 0xAE606402, 0x00000003, 0x402C4620,
-	0xAD806802, 0xADC07002, 0x00000002, 0x402C4620, 0xADC07002, 0x00000002,
-	0x402C4620, 0xADC07502, 0x00000002, 0x402C4620, 0xADC07802, 0x00000002,
-	0x402C4620, 0xADC07A02, 0x00000002, 0x402C4820, 0xAE604E02, 0x00000002,
-	0x402C4820, 0xADC07002, 0x00000002, 0x402C4A20,
-	// Block 188, offset 0x2f00
-	0xAE603202, 0x00000002, 0x402C4A20, 0xAE603502, 0x00000002, 0x402C4A20,
-	0xAE603C02, 0x00000002, 0x402C4A20, 0xAE604302, 0x00000002, 0x402C4A20,
-	0xAE604702, 0x00000002, 0x402C4A20, 0xAE605202, 0x00000002, 0x402C4A20,
-	0xADC07002, 0x00000002, 0x402C4C20, 0xAE603202, 0x00000002, 0x402C4C20,
-	0xAE603502, 0x00000002, 0x402C4C20, 0xAE603C02, 0x00000002, 0x402C4C20,
-	0xAE604302, 0x00000002, 0x402C4C20, 0xAE604702, 0x00000002, 0x402C4C20,
-	0xAE604E02, 0x00000002, 0x402C4C20, 0xAE605202, 0x00000002, 0x402C4C20,
-	0xAE605B02, 0x00000002, 0x402C4C20, 0xAE606402, 0x00000002, 0x402C4C20,
-	0xADC07002, 0x00000002, 0x402C4E20, 0xAE603202, 0x00000002, 0x402C4E20,
-	0xAE603C02, 0x00000002, 0x402C4E20, 0xAE604102, 0x00000002, 0x402C4E20,
-	0xAE605202, 0x00000002, 0x402C4E20, 0xADC07002,
-	// Block 189, offset 0x2f40
-	0x00000002, 0x402C4E20, 0xADC07B02, 0x00000002, 0x402C5020, 0xAE605202,
-	0x00000002, 0x402C5020, 0xADC07002, 0x00000002, 0x402C5020, 0xADC07B02,
-	0x00000002, 0x402C5220, 0xAE603202, 0x00000002, 0x402C5220, 0xAE603C02,
-	0x00000002, 0x402C5220, 0xAE604102, 0x00000002, 0x402C5220, 0xAE605202,
-	0x00000002, 0x402C5220, 0xACA05602, 0x00000003, 0x402C5220, 0xACA05602,
-	0xAE603202, 0x00000002, 0x402C5420, 0xAE604102, 0x00000002, 0x402C5420,
-	0xAE605202, 0x00000002, 0x402C5420, 0xACA05602, 0x00000002, 0x402C5420,
-	0xADC07002, 0x00000002, 0x402C5420, 0xADC07802, 0x00000002, 0x402C5420,
-	0xADC07B02, 0x00000002, 0x402C5620, 0xAE603202, 0x00000002, 0x402C5620,
-	0xAE603502, 0x00000002, 0x402C5620, 0xAE603702, 0x00000002, 0x402C5620,
-	0xAE603C02, 0x00000003, 0x402C5620, 0xAE603C02,
-	// Block 190, offset 0x2f80
-	0xAE603202, 0x00000003, 0x402C5620, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x402C5620, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C5620, 0xAE603C02,
-	0xAE606402, 0x00000002, 0x402C5620, 0xAE604102, 0x00000002, 0x402C5620,
-	0xAE604702, 0x00000002, 0x402C5620, 0xAE604E02, 0x00000002, 0x402C5620,
-	0xAE605202, 0x00000002, 0x402C5620, 0xACA05602, 0x00000003, 0x402C5620,
-	0xACA05602, 0xAE603702, 0x00000002, 0x402C5620, 0xACA05902, 0x00000002,
-	0x402C5620, 0xAE605B02, 0x00000003, 0x402C5620, 0xAE605B02, 0xAE603202,
-	0x00000003, 0x402C5620, 0xAE605B02, 0xAE603502, 0x00000002, 0x402C5620,
-	0xAE606402, 0x00000002, 0x402C5620, 0xAE606502, 0x00000002, 0x402C5620,
-	0xAE606702, 0x00000002, 0x402C5620, 0xADC07002, 0x00000003, 0x402C5620,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x402C5620,
-	// Block 191, offset 0x2fc0
-	0xADC07802, 0x00000002, 0x402C5620, 0xADC07A02, 0x00000002, 0x402C5C20,
-	0xAE604702, 0x00000002, 0x402C5C20, 0xAE605202, 0x00000002, 0x402C6020,
-	0xAE605202, 0x00000002, 0x002C629C, 0x002BDE9C, 0x00000002, 0x002C629C,
-	0x002C0A9D, 0x00000002, 0x002C629D, 0x002DCC9D, 0x00000002, 0x002C629C,
-	0x002E229C, 0x00000002, 0x002C629C, 0x002E829C, 0x00000002, 0x002C6284,
-	0x00312A84, 0x00000002, 0x002C628A, 0x00312A84, 0x00000002, 0x002C628A,
-	0x00312A8A, 0x00000002, 0x002C989C, 0x0030BE9D, 0x00000002, 0x002D0884,
-	0x002D0884, 0x00000002, 0x002D0884, 0x002D9A84, 0x00000002, 0x002D0884,
-	0x002E2284, 0x00000002, 0x002D089C, 0x002E829C, 0x00000002, 0x002D229D,
-	0x002C0A9D, 0x00000002, 0x002D229D, 0x0031009C, 0x00000002, 0x002D689C,
-	0x002BDE9C, 0x00000002, 0x002D689D, 0x002D229C,
-	// Block 192, offset 0x3000
-	0x00000002, 0x002D689D, 0x002F2C9D, 0x00000002, 0x002D689D, 0x0030BE9D,
-	0x00000002, 0x002D689D, 0x00312A9C, 0x00000002, 0x002D9A84, 0x002D9A9F,
-	0x00000003, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000002, 0x002D9A84,
-	0x002DCC84, 0x00000002, 0x002D9A9C, 0x002E9E9C, 0x00000002, 0x002D9A84,
-	0x0030BE9F, 0x00000002, 0x002DFE9C, 0x002BDE9D, 0x00000002, 0x002DFE9D,
-	0x002C0A9D, 0x00000002, 0x002DFE9C, 0x002D229C, 0x00000002, 0x002DFE9D,
-	0x002DFE9D, 0x00000002, 0x002DFE9C, 0x002E229C, 0x00000002, 0x002DFE9C,
-	0x002E829C, 0x00000002, 0x002DFE9D, 0x002E829D, 0x00000002, 0x002DFE9C,
-	0x00302C9C, 0x00000002, 0x002DFE9C, 0x0030BE9D, 0x00000002, 0x002DFE9C,
-	0x0030E29D, 0x00000002, 0x002DFE9C, 0x0032A29D, 0x00000002, 0x002E2284,
-	0x002DCC84, 0x00000002, 0x002E228A, 0x002DCC84,
-	// Block 193, offset 0x3040
-	0x00000002, 0x002E228A, 0x002DCC8A, 0x00000002, 0x002E229C, 0x002E829C,
-	0x00000002, 0x002E229C, 0x002E9E9C, 0x00000002, 0x002E829C, 0x0029D09C,
-	0x00000002, 0x002E829C, 0x0029D29C, 0x00000002, 0x002E829C, 0x002BDE9D,
-	0x00000002, 0x002E829C, 0x002C0A9C, 0x00000002, 0x002E829D, 0x002C0A9D,
-	0x00000002, 0x002E8294, 0x002C3A94, 0x00000002, 0x002E8294, 0x002C6294,
-	0x00000002, 0x002E829C, 0x002D229C, 0x00000002, 0x002E829C, 0x002E229C,
-	0x00000002, 0x002E829C, 0x002E829C, 0x00000002, 0x002E829C, 0x002FE69C,
-	0x00000002, 0x002E829C, 0x0030BE9D, 0x00000002, 0x002E829D, 0x0030BE9D,
-	0x00000002, 0x002E829D, 0x0030BE9D, 0x00000002, 0x002E829C, 0x0030E29D,
-	0x00000002, 0x002E829D, 0x0030E29D, 0x00000002, 0x002E829D, 0x0032A29D,
-	0x00000002, 0x002E9E9C, 0x002BDE9D, 0x00000002,
-	// Block 194, offset 0x3080
-	0x002E9E9C, 0x002D089D, 0x00000002, 0x002E9E84, 0x002DCC84, 0x00000002,
-	0x002E9E8A, 0x002DCC84, 0x00000002, 0x002E9E8A, 0x002DCC8A, 0x00000002,
-	0x002E9E9C, 0x002E829C, 0x00000002, 0x002E9E8A, 0x002EE284, 0x00000002,
-	0x002E9E9C, 0x002FE69C, 0x00000002, 0x002E9E9C, 0x0030BE9D, 0x00000002,
-	0x002E9E9C, 0x0030E29D, 0x00000002, 0x002EE29C, 0x0030BE9D, 0x00000002,
-	0x002F2C9C, 0x002BDE9D, 0x00000002, 0x002F2C9D, 0x002BDE9C, 0x00000002,
-	0x002F2C9C, 0x002C3A9C, 0x00000002, 0x002F2C9C, 0x002D089D, 0x00000002,
-	0x002F2C9D, 0x002D689D, 0x00000002, 0x002F2C9D, 0x002F7A9D, 0x00000002,
-	0x002F2C9C, 0x002FE69C, 0x00000002, 0x002F2C9C, 0x0030BE9D, 0x00000002,
-	0x002F2C9C, 0x0030E29D, 0x00000002, 0x002FE69D, 0x002C629D, 0x00000002,
-	0x002FE694, 0x002E8294, 0x00000002, 0x002FE69C,
-	// Block 195, offset 0x30c0
-	0x002F7A9C, 0x00000002, 0x002FE69D, 0x002FE69D, 0x00000002, 0x002FE684,
-	0x00302C84, 0x00000002, 0x002FE69D, 0x0030BE9C, 0x00000002, 0x00302C94,
-	0x002E8294, 0x00000002, 0x0030BE84, 0x002D9A9F, 0x00000003, 0x0030BE84,
-	0x002D9A84, 0x002D9A9F, 0x00000002, 0x0030E29D, 0x002C0A9C, 0x00000002,
-	0x0030E29D, 0x002C3A9D, 0x00000002, 0x0030E28C, 0x00312A8C, 0x00000002,
-	0x0031DE84, 0x002E9E84, 0x00000002, 0x0032769C, 0x002BDE9D, 0x00000002,
-	0x0032769C, 0x002D089D, 0x00000002, 0x0032769C, 0x002D229C, 0x00000002,
-	0x0032769C, 0x002E229C, 0x00000002, 0x0032769C, 0x002E829C, 0x00000002,
-	0x0032769C, 0x002FE69C, 0x00000002, 0x0032769C, 0x0030BE9D, 0x00000002,
-	0x0032769C, 0x0030E29D, 0x00000002, 0x40302620, 0xAE605202, 0x00000002,
-	0x00302683, 0xAE605202, 0x00000002, 0x40302820,
-	// Block 196, offset 0x3100
-	0xAE603202, 0x00000002, 0x00302883, 0xAE603202, 0x00000002, 0x40302820,
-	0xAE603C02, 0x00000002, 0x00302883, 0xAE603C02, 0x00000002, 0x40302820,
-	0xAE605202, 0x00000002, 0x00302883, 0xAE605202, 0x00000002, 0x40302820,
-	0xADC07002, 0x00000002, 0x00302883, 0xADC07002, 0x00000002, 0x40302820,
-	0xADC07B02, 0x00000002, 0x00302883, 0xADC07B02, 0x00000002, 0x4030BE21,
-	0xAE603202, 0x00000002, 0x0030BEA3, 0xAE603202, 0x00000002, 0x4030BE21,
-	0xAE603502, 0x00000002, 0x0030BEA3, 0xAE603502, 0x00000002, 0x4030BE21,
-	0xAE603C02, 0x00000002, 0x0030BEA3, 0xAE603C02, 0x00000002, 0x4030BE21,
-	0xAE604302, 0x00000002, 0x4030BE21, 0xAE604702, 0x00000002, 0x0030BEA3,
-	0xAE604702, 0x00000002, 0x4030BE21, 0xAE605202, 0x00000002, 0x0030BEA3,
-	0xAE605202, 0x00000002, 0x4030BE21, 0xADC07002,
-	// Block 197, offset 0x3140
-	0x00000002, 0x0030BEA3, 0xADC07002, 0x00000002, 0x4030EE20, 0xAE603202,
-	0x00000002, 0x0030EE83, 0xAE603202, 0x00000002, 0x4030EE20, 0xAE603C02,
-	0x00000002, 0x0030EE83, 0xAE603C02, 0x00000002, 0x4030EE20, 0xAE604702,
-	0x00000002, 0x0030EE83, 0xAE604702, 0x00000002, 0x4030EE20, 0xAE605B02,
-	0x00000002, 0x0030EE83, 0xAE605B02, 0x00000002, 0x4030EE20, 0xAD806802,
-	0x00000002, 0x0030EE83, 0xAD806802, 0x00000002, 0x4030F020, 0xAE605B02,
-	0x00000002, 0x0030F083, 0xAE605B02, 0x00000002, 0x4030F220, 0xAE605B02,
-	0x00000002, 0x0030F283, 0xAE605B02, 0x00000002, 0x4030F420, 0xAE603202,
-	0x00000002, 0x0030F483, 0xAE603202, 0x00000002, 0x4030F420, 0xAE603502,
-	0x00000002, 0x0030F483, 0xAE603502, 0x00000002, 0x4030F420, 0xAE604102,
-	0x00000002, 0x0030F483, 0xAE604102, 0x00000002,
-	// Block 198, offset 0x3180
-	0x4030F420, 0xAE605B02, 0x00000002, 0x0030F483, 0xAE605B02, 0x00000002,
-	0xA000B218, 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, 0x00000002,
-	0x00393899, 0xA000A219, 0x00000002, 0x0039389A, 0xA000A21A, 0x00000002,
-	0x00393C97, 0x003A6897, 0x00000002, 0x00393C98, 0x003A6898, 0x00000002,
-	0x00393C99, 0x003A9099, 0x00000002, 0x00393C9A, 0x003A909A, 0x00000002,
-	0x00395697, 0x003A6897, 0x00000002, 0x00395698, 0x003A6898, 0x00000002,
-	0x00395699, 0x003A9099, 0x00000002, 0x0039569A, 0x003A909A, 0x00000002,
-	0x00395898, 0x003A6898, 0x00000002, 0x00395899, 0x003A9099, 0x00000002,
-	0x0039589A, 0x003A909A, 0x00000002, 0x00396499, 0x003A9099, 0x00000002,
-	0x0039649A, 0x003A909A, 0x00000002, 0x00397299, 0x003A9099, 0x00000002,
-	0x0039729A, 0x003A909A, 0x00000002, 0x00397499,
-	// Block 199, offset 0x31c0
-	0x003A9099, 0x00000002, 0x0039749A, 0x003A909A, 0x00000002, 0x0039C697,
-	0x003A6897, 0x00000002, 0x0039C698, 0x003A6898, 0x00000002, 0x0039C699,
-	0x003A9099, 0x00000002, 0x0039C69A, 0x003A909A, 0x00000002, 0x0039C897,
-	0x003A6897, 0x00000002, 0x0039C898, 0x003A6898, 0x00000002, 0x0039C899,
-	0x003A9099, 0x00000002, 0x0039C89A, 0x003A909A, 0x00000002, 0x0039DC99,
-	0x003A9099, 0x00000002, 0x0039DC9A, 0x003A909A, 0x00000002, 0x0039DE99,
-	0x003A9099, 0x00000002, 0x0039DE9A, 0x003A909A, 0x00000002, 0x0039E699,
-	0x003A9099, 0x00000002, 0x0039E69A, 0x003A909A, 0x00000002, 0x0039EE99,
-	0x003A9099, 0x00000002, 0x0039EE9A, 0x003A909A, 0x00000002, 0x0039F099,
-	0x003A9099, 0x00000002, 0x0039F09A, 0x003A909A, 0x00000002, 0x0039FC99,
-	0x003A9099, 0x00000002, 0x0039FC9A, 0x003A909A,
-	// Block 200, offset 0x3200
-	0x00000002, 0x003A1299, 0x003A9099, 0x00000002, 0x003A129A, 0x003A909A,
-	0x00000002, 0x003A1A99, 0x00393899, 0x00000002, 0x003A1A9A, 0x0039389A,
-	0x00000002, 0x003A1A97, 0x00396497, 0x00000002, 0x003A1A9A, 0x0039649A,
-	0x00000002, 0x003A1A97, 0x00397297, 0x00000002, 0x003A1A9A, 0x0039729A,
-	0x00000002, 0x003A1A97, 0x00397497, 0x00000002, 0x003A1A9A, 0x0039749A,
-	0x00000002, 0x003A1A97, 0x003A4097, 0x00000002, 0x003A1A98, 0x003A4098,
-	0x00000002, 0x003A1A99, 0x003A4099, 0x00000002, 0x003A1A9A, 0x003A409A,
-	0x00000002, 0x003A1A97, 0x003A4E97, 0x00000002, 0x003A1A98, 0x003A4E98,
-	0x00000002, 0x003A1A99, 0x003A4E99, 0x00000002, 0x003A1A9A, 0x003A4E9A,
-	0x00000002, 0x003A1A99, 0x003A9099, 0x00000002, 0x003A1A9A, 0x003A909A,
-	0x00000002, 0x003A4097, 0x003A6897, 0x00000002,
-	// Block 201, offset 0x3240
-	0x003A4099, 0x003A9099, 0x00000002, 0x003A409A, 0x003A909A, 0x00000002,
-	0x003A4E9A, 0x003A909A, 0x00000002, 0x003A5697, 0x003A6897, 0x00000002,
-	0x003A5698, 0x003A6898, 0x00000002, 0x003A5699, 0x003A9099, 0x00000002,
-	0x003A569A, 0x003A909A, 0x00000002, 0x003A6897, 0xA000D117, 0x00000002,
-	0x003A6897, 0x00396497, 0x00000002, 0x003A689A, 0x0039649A, 0x00000002,
-	0x003A6897, 0x003A4E97, 0x00000002, 0x003A689A, 0x003A4E9A, 0x00000002,
-	0x003A689A, 0x003A909A, 0x00000002, 0x003A7299, 0xA000BE19, 0x00000002,
-	0x003A729A, 0xA000BE1A, 0x00000002, 0x403A8822, 0xAE60BE02, 0x00000002,
-	0x003A8E99, 0xA000D119, 0x00000002, 0x003A8E9A, 0xA000D11A, 0x00000002,
-	0x003A9084, 0x00391C84, 0x00000002, 0x003A9097, 0x00396497, 0x00000002,
-	0x003A909A, 0x0039649A, 0x00000002, 0x003A9097,
-	// Block 202, offset 0x3280
-	0x00397297, 0x00000002, 0x003A909A, 0x0039729A, 0x00000002, 0x003A9097,
-	0x00397497, 0x00000002, 0x003A909A, 0x0039749A, 0x00000002, 0x003A9099,
-	0x0039A499, 0x00000002, 0x003A9099, 0x0039A699, 0x00000002, 0x003A9097,
-	0x003A4E97, 0x00000002, 0x003A9098, 0x003A4E98, 0x00000002, 0x003A9099,
-	0x003A4E99, 0x00000002, 0x003A909A, 0x003A4E9A, 0x00000002, 0x003A9099,
-	0x003A5699, 0x00000002, 0x003A9097, 0x003A6897, 0x00000002, 0x003A9098,
-	0x003A6898, 0x00000002, 0x003A9099, 0x003A9099, 0x00000002, 0x003A909A,
-	0x003A909A, 0x00000002, 0x403A9222, 0xAE60BE02, 0x00000002, 0x003AAA99,
-	0xA000BE19, 0x00000002, 0x003AAA9A, 0xA000BE1A, 0x00000002, 0x402C6221,
-	0x40021220, 0x00000002, 0x002C62A3, 0x40021220, 0x00000002, 0x402D2221,
-	0x40021220, 0x00000002, 0x002D22A3, 0x40021220,
-	// Block 203, offset 0x32c0
-	0x00000002, 0x402E9E21, 0x40021220, 0x00000002, 0x002E9EA3, 0x40021220,
-	0x00000002, 0x40302C21, 0x40021220, 0x00000002, 0x00302CA3, 0x40021220,
-	0x00000002, 0x40312A21, 0x40021220, 0x00000002, 0x00312AA3, 0x40021220,
-	0x00000003, 0x40312A21, 0x40021220, 0xAE604102, 0x00000003, 0x00312AA3,
-	0x40021220, 0xAE604102, 0x00000002, 0x40320E20, 0xAE605B02, 0x00000002,
-	0x00320E83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, 0x00000002,
-	0x00320EA3, 0xAE603202, 0x00000002, 0x40321020, 0xAE604E02, 0x00000002,
-	0x00321083, 0xAE604E02, 0x00000002, 0x40321020, 0xAE605B02, 0x00000002,
-	0x00321083, 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, 0x00000002,
-	0x003210A3, 0xAE603202, 0x00000002, 0x002BDE83, 0xAE603202, 0x00000002,
-	0x002BDE83, 0xAE603502, 0x00000002, 0x002BDE83,
-	// Block 204, offset 0x3300
-	0xAE603702, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE603202, 0x00000003,
-	0x002BDE83, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE83, 0xAE603702,
-	0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE606402, 0x00000002,
-	0x002BDE83, 0xAE603C02, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603502, 0x00000003, 0x002BDE83,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE606402,
-	0x00000002, 0x002BDE83, 0xAE604102, 0x00000002, 0x002BDE83, 0xAE604302,
-	0x00000003, 0x002BDE83, 0xAE604302, 0xAE603202, 0x00000002, 0x002BDE83,
-	0xAE604702, 0x00000003, 0x002BDE83, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x002BDE83, 0xAE604E02, 0x00000002, 0x002BDE83, 0xAE605202, 0x00000003,
-	0x002BDE83, 0xAE605202, 0xAE605B02, 0x00000002,
-	// Block 205, offset 0x3340
-	0x002BDE83, 0xACA05902, 0x00000002, 0x002BDE83, 0xAE605B02, 0x00000002,
-	0x002BDE83, 0xAE606402, 0x00000002, 0x002BDE83, 0xAE606502, 0x00000002,
-	0x002BDE83, 0xAE606702, 0x00000002, 0x002BDE83, 0xADC07002, 0x00000003,
-	0x002BDE83, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE83, 0xADC07002,
-	0xAE603C02, 0x00000002, 0x002BDE83, 0xADC07602, 0x00000002, 0x402BE020,
-	0xAE603202, 0x00000002, 0x002BE083, 0xAE603202, 0x00000002, 0x402BE020,
-	0xAE603502, 0x00000002, 0x002BE083, 0xAE603502, 0x00000002, 0x402BE020,
-	0xAE603702, 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, 0x402BE020,
-	0xAE603C02, 0x00000002, 0x002BE083, 0xAE603C02, 0x00000003, 0x402BE020,
-	0xAE603C02, 0xAE603202, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402BE020, 0xAE603C02, 0xAE603502,
-	// Block 206, offset 0x3380
-	0x00000003, 0x002BE083, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE020,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402BE020, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE083,
-	0xAE603C02, 0xAE606402, 0x00000002, 0x402BE020, 0xAE604102, 0x00000002,
-	0x002BE083, 0xAE604102, 0x00000002, 0x402BE020, 0xAE604702, 0x00000002,
-	0x002BE083, 0xAE604702, 0x00000002, 0x402BE020, 0xAE604E02, 0x00000002,
-	0x002BE083, 0xAE604E02, 0x00000002, 0x402BE020, 0xAE605202, 0x00000002,
-	0x002BE083, 0xAE605202, 0x00000002, 0x402BE020, 0xACA05602, 0x00000002,
-	0x002BE083, 0xACA05602, 0x00000003, 0x402BE020, 0xACA05602, 0xAE603702,
-	0x00000003, 0x002BE083, 0xACA05602, 0xAE603702, 0x00000002, 0x402BE020,
-	0xACA05902, 0x00000002, 0x002BE083, 0xACA05902,
-	// Block 207, offset 0x33c0
-	0x00000002, 0x402BE020, 0xAE605B02, 0x00000002, 0x002BE083, 0xAE605B02,
-	0x00000003, 0x402BE020, 0xAE605B02, 0xAE603202, 0x00000003, 0x002BE083,
-	0xAE605B02, 0xAE603202, 0x00000003, 0x402BE020, 0xAE605B02, 0xAE603502,
-	0x00000003, 0x002BE083, 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE020,
-	0xAE606402, 0x00000002, 0x002BE083, 0xAE606402, 0x00000002, 0x402BE020,
-	0xAE606502, 0x00000002, 0x002BE083, 0xAE606502, 0x00000002, 0x402BE020,
-	0xAE606702, 0x00000002, 0x002BE083, 0xAE606702, 0x00000002, 0x402BE020,
-	0xADC07002, 0x00000002, 0x002BE083, 0xADC07002, 0x00000003, 0x402BE020,
-	0xADC07002, 0xAE603C02, 0x00000003, 0x002BE083, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402BE020, 0xADC07802, 0x00000002, 0x002BE083, 0xADC07802,
-	0x00000002, 0x402BE020, 0xADC07A02, 0x00000002,
-	// Block 208, offset 0x3400
-	0x002BE083, 0xADC07A02, 0x00000002, 0x402BE220, 0xAE603202, 0x00000002,
-	0x002BE283, 0xAE603202, 0x00000002, 0x402BE220, 0xAE603502, 0x00000002,
-	0x002BE283, 0xAE603502, 0x00000002, 0x402BE220, 0xAE603702, 0x00000002,
-	0x002BE283, 0xAE603702, 0x00000002, 0x402BE220, 0xAE603C02, 0x00000002,
-	0x002BE283, 0xAE603C02, 0x00000002, 0x402BE220, 0xAE604102, 0x00000002,
-	0x002BE283, 0xAE604102, 0x00000002, 0x402BE220, 0xAE604702, 0x00000002,
-	0x002BE283, 0xAE604702, 0x00000003, 0x402BE220, 0xAE604702, 0xAE603202,
-	0x00000003, 0x002BE283, 0xAE604702, 0xAE603202, 0x00000002, 0x402BE220,
-	0xAE604E02, 0x00000002, 0x002BE283, 0xAE604E02, 0x00000002, 0x002BE283,
-	0xAE605202, 0x00000002, 0x402BE220, 0xACA05902, 0x00000002, 0x002BE283,
-	0xACA05902, 0x00000002, 0x402BE220, 0xAE605B02,
-	// Block 209, offset 0x3440
-	0x00000002, 0x002BE283, 0xAE605B02, 0x00000002, 0x402BE220, 0xAE606402,
-	0x00000002, 0x002BE283, 0xAE606402, 0x00000002, 0x402BE220, 0xAE606502,
-	0x00000002, 0x002BE283, 0xAE606502, 0x00000002, 0x402BE220, 0xAE606702,
-	0x00000002, 0x002BE283, 0xAE606702, 0x00000002, 0x402BE220, 0xADC07002,
-	0x00000002, 0x002BE283, 0xADC07002, 0x00000002, 0x402BE220, 0xADC07A02,
-	0x00000002, 0x002BE283, 0xADC07A02, 0x00000002, 0x402BE420, 0xAE603202,
-	0x00000002, 0x002BE483, 0xAE603202, 0x00000002, 0x402BE420, 0xAE603502,
-	0x00000002, 0x002BE483, 0xAE603502, 0x00000002, 0x402BE420, 0xAE603702,
-	0x00000002, 0x002BE483, 0xAE603702, 0x00000002, 0x402BE420, 0xAE603C02,
-	0x00000002, 0x002BE483, 0xAE603C02, 0x00000003, 0x402BE420, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE603C02,
-	// Block 210, offset 0x3480
-	0xAE603202, 0x00000003, 0x402BE420, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x002BE483, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE420, 0xAE603C02,
-	0xAE604E02, 0x00000003, 0x002BE483, 0xAE603C02, 0xAE604E02, 0x00000003,
-	0x402BE420, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE483, 0xAE603C02,
-	0xAE606402, 0x00000002, 0x402BE420, 0xAE604102, 0x00000002, 0x002BE483,
-	0xAE604102, 0x00000002, 0x402BE420, 0xAE604702, 0x00000002, 0x002BE483,
-	0xAE604702, 0x00000003, 0x402BE420, 0xAE604702, 0xAE605B02, 0x00000003,
-	0x002BE483, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE420, 0xAE604D02,
-	0x00000002, 0x002BE483, 0xAE604D02, 0x00000002, 0x402BE420, 0xAE604E02,
-	0x00000002, 0x002BE483, 0xAE604E02, 0x00000003, 0x402BE420, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE604E02,
-	// Block 211, offset 0x34c0
-	0xAE603202, 0x00000003, 0x402BE420, 0xAE604E02, 0xAE604702, 0x00000003,
-	0x002BE483, 0xAE604E02, 0xAE604702, 0x00000003, 0x402BE420, 0xAE604E02,
-	0xAE605B02, 0x00000003, 0x002BE483, 0xAE604E02, 0xAE605B02, 0x00000002,
-	0x402BE420, 0xAE605202, 0x00000002, 0x002BE483, 0xAE605202, 0x00000003,
-	0x402BE420, 0xAE605202, 0xAE605B02, 0x00000003, 0x002BE483, 0xAE605202,
-	0xAE605B02, 0x00000002, 0x402BE420, 0xACA05902, 0x00000002, 0x002BE483,
-	0xACA05902, 0x00000003, 0x402BE420, 0xACA05902, 0xAE605B02, 0x00000003,
-	0x002BE483, 0xACA05902, 0xAE605B02, 0x00000002, 0x402BE420, 0xAE605B02,
-	0x00000002, 0x002BE483, 0xAE605B02, 0x00000003, 0x402BE420, 0xAE605B02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x402BE420, 0xAE605B02, 0xAE603502, 0x00000003,
-	// Block 212, offset 0x3500
-	0x002BE483, 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE420, 0xAE606402,
-	0x00000002, 0x002BE483, 0xAE606402, 0x00000002, 0x402BE420, 0xAE606502,
-	0x00000002, 0x002BE483, 0xAE606502, 0x00000002, 0x402BE420, 0xAE606702,
-	0x00000002, 0x002BE483, 0xAE606702, 0x00000002, 0x402BE420, 0xAD806802,
-	0x00000002, 0x002BE483, 0xAD806802, 0x00000003, 0x402BE420, 0xAD806802,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAD806802, 0xAE603202, 0x00000003,
-	0x402BE420, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE483, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402BE420, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x002BE483, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE420, 0xAD806802,
-	0xAE606402, 0x00000003, 0x002BE483, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402BE420, 0xAD806802, 0xADC07002, 0x00000003,
-	// Block 213, offset 0x3540
-	0x002BE483, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE420, 0xADC07002,
-	0x00000002, 0x002BE483, 0xADC07002, 0x00000003, 0x402BE420, 0xADC07002,
-	0xAE603C02, 0x00000003, 0x002BE483, 0xADC07002, 0xAE603C02, 0x00000002,
-	0x402BE620, 0xAE603202, 0x00000002, 0x002BE683, 0xAE603202, 0x00000002,
-	0x402BE620, 0xAE603502, 0x00000002, 0x002BE683, 0xAE603502, 0x00000002,
-	0x402BE620, 0xAE603702, 0x00000002, 0x002BE683, 0xAE603702, 0x00000002,
-	0x402BE620, 0xAE603C02, 0x00000002, 0x002BE683, 0xAE603C02, 0x00000002,
-	0x402BE620, 0xAE604102, 0x00000002, 0x002BE683, 0xAE604102, 0x00000002,
-	0x402BE620, 0xAE604302, 0x00000002, 0x002BE683, 0xAE604302, 0x00000002,
-	0x402BE620, 0xAE604702, 0x00000002, 0x002BE683, 0xAE604702, 0x00000003,
-	0x402BE620, 0xAE604702, 0xAE603202, 0x00000003,
-	// Block 214, offset 0x3580
-	0x002BE683, 0xAE604702, 0xAE603202, 0x00000003, 0x402BE620, 0xAE604702,
-	0xAE603502, 0x00000003, 0x002BE683, 0xAE604702, 0xAE603502, 0x00000003,
-	0x402BE620, 0xAE604702, 0xAE604102, 0x00000003, 0x002BE683, 0xAE604702,
-	0xAE604102, 0x00000003, 0x402BE620, 0xAE604702, 0xAE605B02, 0x00000003,
-	0x002BE683, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE620, 0xAE604D02,
-	0x00000002, 0x002BE683, 0xAE604D02, 0x00000002, 0x402BE620, 0xAE604E02,
-	0x00000002, 0x002BE683, 0xAE604E02, 0x00000003, 0x402BE620, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x002BE683, 0xAE604E02, 0xAE603202, 0x00000002,
-	0x402BE620, 0xACA05902, 0x00000002, 0x002BE683, 0xACA05902, 0x00000002,
-	0x402BE620, 0xAE605B02, 0x00000002, 0x002BE683, 0xAE605B02, 0x00000003,
-	0x402BE620, 0xAE605B02, 0xAE604702, 0x00000003,
-	// Block 215, offset 0x35c0
-	0x002BE683, 0xAE605B02, 0xAE604702, 0x00000002, 0x402BE620, 0xAE606402,
-	0x00000002, 0x002BE683, 0xAE606402, 0x00000002, 0x402BE620, 0xAE606502,
-	0x00000002, 0x002BE683, 0xAE606502, 0x00000002, 0x402BE620, 0xAE606702,
-	0x00000002, 0x002BE683, 0xAE606702, 0x00000002, 0x402BE620, 0xAD806802,
-	0x00000002, 0x002BE683, 0xAD806802, 0x00000003, 0x402BE620, 0xAD806802,
-	0xAE603202, 0x00000003, 0x002BE683, 0xAD806802, 0xAE603202, 0x00000003,
-	0x402BE620, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE683, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402BE620, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x002BE683, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE620, 0xAD806802,
-	0xAE606402, 0x00000003, 0x002BE683, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402BE620, 0xAD806802, 0xADC07002, 0x00000003,
-	// Block 216, offset 0x3600
-	0x002BE683, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07002,
-	0x00000002, 0x002BE683, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07502,
-	0x00000002, 0x002BE683, 0xADC07502, 0x00000002, 0x402BE620, 0xADC07802,
-	0x00000002, 0x002BE683, 0xADC07802, 0x00000002, 0x402BE620, 0xADC07A02,
-	0x00000002, 0x002BE683, 0xADC07A02, 0x00000002, 0x402BE820, 0xAE603C02,
-	0x00000002, 0x002BE883, 0xAE603C02, 0x00000002, 0x402BE820, 0xAE604102,
-	0x00000002, 0x002BE883, 0xAE604102, 0x00000002, 0x402BE820, 0xAE604702,
-	0x00000002, 0x002BE883, 0xAE604702, 0x00000002, 0x402BE820, 0xAE605202,
-	0x00000002, 0x002BE883, 0xAE605202, 0x00000002, 0x402BE820, 0xACA05602,
-	0x00000002, 0x002BE883, 0xACA05602, 0x00000002, 0x402BE820, 0xADC07002,
-	0x00000002, 0x002BE883, 0xADC07002, 0x00000002,
-	// Block 217, offset 0x3640
-	0x402BE820, 0xADC07902, 0x00000002, 0x002BE883, 0xADC07902, 0x00000002,
-	0x402BE820, 0xADC07B02, 0x00000002, 0x402BEA20, 0xAE603202, 0x00000002,
-	0x002BEA83, 0xAE603202, 0x00000002, 0x402BEA20, 0xAE604102, 0x00000002,
-	0x002BEA83, 0xAE604102, 0x00000002, 0x402BEA20, 0xACA05602, 0x00000002,
-	0x002BEA83, 0xACA05602, 0x00000002, 0x402BEA20, 0xADC07002, 0x00000002,
-	0x002BEA83, 0xADC07002, 0x00000002, 0x402BEA20, 0xADC07B02, 0x00000002,
-	0x002BEA83, 0xADC07B02, 0x00000002, 0x402BEC20, 0xAE603202, 0x00000002,
-	0x002BEC83, 0xAE603202, 0x00000002, 0x402BEC20, 0xAE604102, 0x00000002,
-	0x002BEC83, 0xAE604102, 0x00000002, 0x402BEC20, 0xACA05602, 0x00000002,
-	0x002BEC83, 0xACA05602, 0x00000002, 0x402BEC20, 0xADC07002, 0x00000002,
-	0x002BEC83, 0xADC07002, 0x00000003, 0x402BEC20,
-	// Block 218, offset 0x3680
-	0xADC07002, 0xAE605B02, 0x00000003, 0x002BEC83, 0xADC07002, 0xAE605B02,
-	0x00000002, 0x402BEC20, 0xADC07802, 0x00000002, 0x002BEC83, 0xADC07802,
-	0x00000002, 0x402BEC20, 0xADC07B02, 0x00000002, 0x002BEC83, 0xADC07B02,
-	0x00000002, 0x402BEE20, 0xAE603202, 0x00000002, 0x002BEE83, 0xAE603202,
-	0x00000002, 0x402BEE20, 0xAE605202, 0x00000002, 0x002BEE83, 0xAE605202,
-	0x00000002, 0x402BEE20, 0xADC07002, 0x00000002, 0x002BEE83, 0xADC07002,
-	0x00000002, 0x402BF020, 0xAE603202, 0x00000002, 0x002BF083, 0xAE603202,
-	0x00000002, 0x402BF020, 0xAE603502, 0x00000002, 0x002BF083, 0xAE603502,
-	0x00000002, 0x402BF020, 0xAE604102, 0x00000002, 0x002BF083, 0xAE604102,
-	0x00000002, 0x402BF020, 0xAE604E02, 0x00000002, 0x002BF083, 0xAE604E02,
-	0x00000002, 0x402BF020, 0xAE605202, 0x00000002,
-	// Block 219, offset 0x36c0
-	0x002BF083, 0xAE605202, 0x00000002, 0x402BF020, 0xACA05602, 0x00000002,
-	0x002BF083, 0xACA05602, 0x00000002, 0x402BF020, 0xADC07002, 0x00000002,
-	0x002BF083, 0xADC07002, 0x00000002, 0x402BF020, 0xADC07802, 0x00000002,
-	0x002BF083, 0xADC07802, 0x00000002, 0x402BF020, 0xADC07B02, 0x00000002,
-	0x002BF083, 0xADC07B02, 0x00000002, 0x002BF283, 0xAE603202, 0x00000002,
-	0x002BF283, 0xAE605202, 0x00000002, 0x402BF420, 0xAE603202, 0x00000002,
-	0x002BF483, 0xAE603202, 0x00000002, 0x402BF420, 0xAE603502, 0x00000002,
-	0x002BF483, 0xAE603502, 0x00000002, 0x402BF420, 0xAE603C02, 0x00000002,
-	0x002BF483, 0xAE603C02, 0x00000002, 0x402BF420, 0xAE604302, 0x00000002,
-	0x402BF420, 0xAE604702, 0x00000002, 0x002BF483, 0xAE604702, 0x00000002,
-	0x002BF483, 0xAE605202, 0x00000002, 0x002BF483,
-	// Block 220, offset 0x3700
-	0xADC07002, 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, 0x002C3E83,
-	0xACA05602, 0x00000002, 0x002C3C83, 0x402C3C20, 0x00000002, 0x002C3C85,
-	0x402C3C20, 0x00000002, 0x002C3C87, 0x002C3C86, 0x00000002, 0x002C6483,
-	0x402C6420, 0x00000002, 0x002C6485, 0x402C6420, 0x00000002, 0x002C6487,
-	0x002C6486, 0x00000002, 0x002C6683, 0x402C6620, 0x00000002, 0x002C6685,
-	0x402C6620, 0x00000002, 0x002C6687, 0x002C6686, 0x00000002, 0x002D2483,
-	0x402D2420, 0x00000002, 0x002D2485, 0x402D2420, 0x00000002, 0x002D2487,
-	0x002D2486, 0x00000002, 0x002E2483, 0x402E2420, 0x00000002, 0x002E2485,
-	0x402E2420, 0x00000002, 0x002E2487, 0x002E2486, 0x00000002, 0x002EA083,
-	0x402EA020, 0x00000002, 0x002EA085, 0x402EA020, 0x00000002, 0x002EA087,
-	0x002EA086, 0x00000002, 0x002FE883, 0x402FE820,
-	// Block 221, offset 0x3740
-	0x00000002, 0x002FE885, 0x402FE820, 0x00000002, 0x002FE887, 0x002FE886,
-	0x00000002, 0x00302E83, 0x40302E20, 0x00000002, 0x00302E85, 0x40302E20,
-	0x00000002, 0x00302E87, 0x00302E86, 0x00000002, 0x00312C83, 0x40312C20,
-	0x00000002, 0x00312C85, 0x40312C20, 0x00000002, 0x00312C87, 0x00312C86,
-	0x00000002, 0x402EE420, 0xAE603C02, 0x00000002, 0x002EE483, 0xAE603C02,
-	0x00000002, 0x402EE420, 0xAD806802, 0x00000002, 0x002EE483, 0xAD806802,
-	0x00000002, 0x40306E20, 0xAD806802, 0x00000002, 0x00306E83, 0xAD806802,
-	0x00000002, 0x402C0820, 0xAE603702, 0x00000002, 0x002C0883, 0xAE603702,
-	0x00000002, 0x402C0820, 0xAE603C02, 0x00000002, 0x002C0883, 0xAE603C02,
-	0x00000002, 0x402D0620, 0xAE603C02, 0x00000002, 0x002D0683, 0xAE603C02,
-	0x00000002, 0x402D0620, 0xAE605B02, 0x00000002,
-	// Block 222, offset 0x3780
-	0x002D0683, 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, 0x00000002,
-	0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, 0x00000002,
-	0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, 0x00000002,
-	0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, 0x00000002,
-	0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, 0x00000002,
-	0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, 0xAE604702, 0x00000002,
-	0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, 0xAE604E02, 0x00000002,
-	0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, 0xAD806802, 0x00000002,
-	0x0030BC83, 0xAD806802, 0x00000002, 0x40320E20, 0xAE604E02, 0x00000002,
-	0x00320E83, 0xAE604E02, 0x00000003, 0x0004B084, 0x029C1284, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x029D1884, 0x0004B29F,
-	// Block 223, offset 0x37c0
-	0x00000003, 0x0004B084, 0x02A5BA84, 0x0004B29F, 0x00000003, 0x0004B084,
-	0x02B71284, 0x0004B29F, 0x00000003, 0x0004B084, 0x02C4A684, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x02CAAE84, 0x0004B29F, 0x00000003, 0x0004B084,
-	0x02CE5884, 0x0004B29F, 0x00000003, 0x0004B084, 0x02E17284, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x02EDAE84, 0x0004B29F, 0x00000005, 0x4004E620,
-	0x402BDE20, 0x402E8220, 0x402F2C20, 0x40026220, 0x00000004, 0x4004E620,
-	0x402D2220, 0x40302C20, 0x40026220, 0x00000004, 0x4004E620, 0x402E2220,
-	0x40302C20, 0x40026220, 0x00000006, 0x4004E620, 0x402F5620, 0x40306C20,
-	0x402EE220, 0x40302C20, 0x40026220, 0x00000002, 0x0029CC84, 0x02E1729F,
-	0x00000003, 0x0029CE84, 0x0029CC84, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	0x0029CC84, 0x02CE109F, 0x00000003, 0x0029CE84,
-	// Block 224, offset 0x3800
-	0x0029CC84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029CE84, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029CE84, 0x02CE109F, 0x00000003, 0x0029CE84,
-	0x0029CE84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D084, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D084, 0x02CE109F, 0x00000003, 0x0029CE84,
-	0x0029D084, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D284, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D284, 0x02E1729F, 0x00000003, 0x0029CE84,
-	0x0029D484, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D484, 0x02E1729F,
-	0x00000003, 0x0029CE84, 0x0029D684, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	0x0029D684, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D884, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D884, 0x02E1729F, 0x00000003, 0x0029CE84,
-	0x0029DC84, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	// Block 225, offset 0x3840
-	0x0029DC84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029DE84, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029DE84, 0x02E1729F, 0x00000002, 0x0029CE84,
-	0x02CBCA9F, 0x00000002, 0x0029CE84, 0x02CE109F, 0x00000002, 0x0029CE84,
-	0x02E1729F, 0x00000003, 0x0029D084, 0x0029CC84, 0x02CBCA9F, 0x00000003,
-	0x0029D084, 0x0029CC84, 0x02E1729F, 0x00000003, 0x0029D084, 0x0029CE84,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029CE84, 0x02E1729F, 0x00000003,
-	0x0029D084, 0x0029D084, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D084,
-	0x02E1729F, 0x00000003, 0x0029D084, 0x0029D284, 0x02CBCA9F, 0x00000003,
-	0x0029D084, 0x0029D284, 0x02E1729F, 0x00000003, 0x0029D084, 0x0029D484,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D484, 0x02E1729F, 0x00000003,
-	0x0029D084, 0x0029D684, 0x02CBCA9F, 0x00000003,
-	// Block 226, offset 0x3880
-	0x0029D084, 0x0029D884, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029DC84,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029DE84, 0x02CBCA9F, 0x00000002,
-	0x0029D084, 0x02CBCA9F, 0x00000002, 0x0029D084, 0x02CE109F, 0x00000002,
-	0x0029D084, 0x02E1729F, 0x00000003, 0x0029D284, 0x0029CC84, 0x02CBCA9F,
-	0x00000003, 0x0029D284, 0x0029CE84, 0x02CBCA9F, 0x00000002, 0x0029D284,
-	0x02CBCA9F, 0x00000002, 0x0029D284, 0x02CE109F, 0x00000002, 0x0029D284,
-	0x02E1729F, 0x00000002, 0x0029D484, 0x02CBCA9F, 0x00000002, 0x0029D484,
-	0x02CE109F, 0x00000002, 0x0029D484, 0x02E1729F, 0x00000002, 0x0029D684,
-	0x02CBCA9F, 0x00000002, 0x0029D684, 0x02CE109F, 0x00000002, 0x0029D684,
-	0x02E1729F, 0x00000002, 0x0029D884, 0x02CBCA9F, 0x00000002, 0x0029D884,
-	0x02CE109F, 0x00000002, 0x0029D884, 0x02E1729F,
-	// Block 227, offset 0x38c0
-	0x00000002, 0x0029DC84, 0x02CBCA9F, 0x00000002, 0x0029DC84, 0x02CE109F,
-	0x00000002, 0x0029DC84, 0x02E1729F, 0x00000002, 0x0029DE84, 0x02CBCA9F,
-	0x00000002, 0x0029DE84, 0x02CE109F, 0x00000002, 0x0029DE84, 0x02E1729F,
-	0x00000002, 0x0065768E, 0x0065768F, 0x00000002, 0x0065768E, 0x00657691,
-	0x00000002, 0x00657690, 0x0065768F, 0x00000002, 0x00657690, 0x00657691,
-	0x00000002, 0x0065768E, 0x0065828F, 0x00000002, 0x0065768E, 0x00658291,
-	0x00000003, 0x0065768E, 0x00658291, 0xA0812802, 0x00000002, 0x0065768E,
-	0x00658C91, 0x00000003, 0x0065768E, 0x00658C91, 0xA0812802, 0x00000002,
-	0x0065768E, 0x00659691, 0x00000003, 0x0065768E, 0x00659691, 0xA0812802,
-	0x00000002, 0x0065768E, 0x0065A091, 0x00000002, 0x0065768E, 0x0065AA8F,
-	0x00000002, 0x0065768E, 0x0065AA91, 0x00000003,
-	// Block 228, offset 0x3900
-	0x0065768E, 0x0065AA91, 0xA0812802, 0x00000003, 0x0065768E, 0x0065AA91,
-	0xA0812902, 0x00000002, 0x0065768E, 0x0065B491, 0x00000002, 0x0065768E,
-	0x0065BE8F, 0x00000002, 0x0065768E, 0x0065BE91, 0x00000002, 0x0065768E,
-	0x0065C68F, 0x00000002, 0x0065768E, 0x0065C691, 0x00000002, 0x0065768E,
-	0x0065D08F, 0x00000002, 0x0065768E, 0x0065D091, 0x00000003, 0x0065768E,
-	0x0065D091, 0xA0812802, 0x00000002, 0x0065788E, 0x0065788F, 0x00000002,
-	0x0065788E, 0x00657891, 0x00000002, 0x00657890, 0x0065788F, 0x00000002,
-	0x00657890, 0x00657891, 0x00000002, 0x0065788E, 0x00658491, 0x00000003,
-	0x0065788E, 0x00658491, 0xA0812802, 0x00000002, 0x0065788E, 0x00658E8F,
-	0x00000002, 0x0065788E, 0x00658E91, 0x00000003, 0x0065788E, 0x00658E91,
-	0xA0812802, 0x00000002, 0x0065788E, 0x00659891,
-	// Block 229, offset 0x3940
-	0x00000003, 0x0065788E, 0x00659891, 0xA0812802, 0x00000002, 0x0065788E,
-	0x0065A291, 0x00000002, 0x0065788E, 0x0065AC8F, 0x00000002, 0x0065788E,
-	0x0065AC91, 0x00000003, 0x0065788E, 0x0065AC91, 0xA0812802, 0x00000003,
-	0x0065788E, 0x0065AC91, 0xA0812902, 0x00000002, 0x0065788E, 0x0065B691,
-	0x00000002, 0x0065788E, 0x0065C88F, 0x00000002, 0x0065788E, 0x0065C891,
-	0x00000002, 0x0065788E, 0x0065D291, 0x00000003, 0x0065788E, 0x0065D291,
-	0xA0812802, 0x00000002, 0x00657A8E, 0x00657A8F, 0x00000002, 0x00657A8E,
-	0x00657A91, 0x00000002, 0x00657A90, 0x00657A8F, 0x00000002, 0x00657A90,
-	0x00657A91, 0x00000003, 0x00657A8E, 0x00657A91, 0xA0812802, 0x00000003,
-	0x00657A90, 0x00657A8F, 0xA0812802, 0x00000003, 0x00657A90, 0x00657A91,
-	0xA0812802, 0x00000004, 0x00657A90, 0x00657A91,
-	// Block 230, offset 0x3980
-	0xA0812802, 0xA0812802, 0x00000002, 0x00657A8E, 0x0065868F, 0x00000002,
-	0x00657A8E, 0x00658691, 0x00000003, 0x00657A8E, 0x00658691, 0xA0812802,
-	0x00000002, 0x00657A8E, 0x0065908F, 0x00000002, 0x00657A8E, 0x00659091,
-	0x00000003, 0x00657A8E, 0x00659091, 0xA0812802, 0x00000002, 0x00657A8E,
-	0x00659A8F, 0x00000002, 0x00657A8E, 0x00659A91, 0x00000003, 0x00657A8E,
-	0x00659A91, 0xA0812802, 0x00000002, 0x00657A8E, 0x0065A48F, 0x00000002,
-	0x00657A8E, 0x0065A491, 0x00000002, 0x00657A8E, 0x0065AE8F, 0x00000002,
-	0x00657A8E, 0x0065AE91, 0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812802,
-	0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812902, 0x00000002, 0x00657A8E,
-	0x0065B88F, 0x00000002, 0x00657A8E, 0x0065B891, 0x00000002, 0x00657A8E,
-	0x0065C08F, 0x00000002, 0x00657A8E, 0x0065C091,
-	// Block 231, offset 0x39c0
-	0x00000002, 0x00657A8E, 0x0065CA8F, 0x00000002, 0x00657A8E, 0x0065CA91,
-	0x00000002, 0x00657E8E, 0x00657E8F, 0x00000002, 0x00657E8E, 0x00657E91,
-	0x00000002, 0x00657E90, 0x00657E8F, 0x00000002, 0x00657E90, 0x00657E91,
-	0x00000002, 0x00657E8E, 0x0065888F, 0x00000002, 0x00657E8E, 0x00658891,
-	0x00000003, 0x00657E8E, 0x00658891, 0xA0812802, 0x00000002, 0x00657E8E,
-	0x00659291, 0x00000003, 0x00657E8E, 0x00659291, 0xA0812802, 0x00000002,
-	0x00657E8E, 0x00659C91, 0x00000003, 0x00657E8E, 0x00659C91, 0xA0812802,
-	0x00000002, 0x00657E8E, 0x0065A691, 0x00000002, 0x00657E8E, 0x0065B08F,
-	0x00000002, 0x00657E8E, 0x0065B091, 0x00000003, 0x00657E8E, 0x0065B091,
-	0xA0812802, 0x00000003, 0x00657E8E, 0x0065B091, 0xA0812902, 0x00000002,
-	0x00657E8E, 0x0065BA91, 0x00000002, 0x00657E8E,
-	// Block 232, offset 0x3a00
-	0x0065CC8F, 0x00000002, 0x00657E8E, 0x0065CC91, 0x00000002, 0x00657E8E,
-	0x0065D491, 0x00000003, 0x00657E8E, 0x0065D491, 0xA0812802, 0x00000002,
-	0x0065808E, 0x0065808F, 0x00000002, 0x0065808E, 0x00658091, 0x00000002,
-	0x00658090, 0x0065808F, 0x00000002, 0x00658090, 0x00658091, 0x00000002,
-	0x0065808E, 0x00658A91, 0x00000003, 0x0065808E, 0x00658A91, 0xA0812802,
-	0x00000002, 0x0065808E, 0x00659491, 0x00000003, 0x0065808E, 0x00659491,
-	0xA0812802, 0x00000002, 0x0065808E, 0x00659E8F, 0x00000002, 0x0065808E,
-	0x00659E91, 0x00000003, 0x0065808E, 0x00659E91, 0xA0812802, 0x00000002,
-	0x0065808E, 0x0065A891, 0x00000002, 0x0065808E, 0x0065B28F, 0x00000002,
-	0x0065808E, 0x0065B291, 0x00000003, 0x0065808E, 0x0065B291, 0xA0812802,
-	0x00000003, 0x0065808E, 0x0065B291, 0xA0812902,
-	// Block 233, offset 0x3a40
-	0x00000002, 0x0065808E, 0x0065BC91, 0x00000002, 0x0065808E, 0x0065C48F,
-	0x00000002, 0x0065808E, 0x0065C491, 0x00000002, 0x0065808E, 0x0065CE8F,
-	0x00000002, 0x0065808E, 0x0065CE91, 0x00000002, 0x0065808E, 0x0065D691,
-	0x00000003, 0x0065808E, 0x0065D691, 0xA0812802, 0x00000002, 0x00658290,
-	0x0065828F, 0x00000002, 0x00658290, 0x00658291, 0x00000003, 0x0065848F,
-	0x00658291, 0xA0812802, 0x00000002, 0x00658490, 0x00658491, 0x00000003,
-	0x00658490, 0x00658491, 0xA0812802, 0x00000004, 0x00658490, 0x00658491,
-	0xA0812802, 0xA0812802, 0x00000002, 0x00658690, 0x0065868F, 0x00000002,
-	0x00658690, 0x00658691, 0x00000003, 0x00658690, 0x0065868F, 0xA0812802,
-	0x00000003, 0x00658690, 0x00658691, 0xA0812802, 0x00000004, 0x00658690,
-	0x00658691, 0xA0812802, 0xA0812802, 0x00000002,
-	// Block 234, offset 0x3a80
-	0x00658890, 0x0065888F, 0x00000002, 0x00658890, 0x00658891, 0x00000003,
-	0x00658A8F, 0x00658891, 0xA0812802, 0x00000002, 0x00658A90, 0x00658A91,
-	0x00000003, 0x00658A90, 0x00658A91, 0xA0812802, 0x00000004, 0x00658A90,
-	0x00658A91, 0xA0812802, 0xA0812802, 0x00000002, 0x40658A21, 0x00659E91,
-	0x00000002, 0x00658C90, 0x00658C91, 0x00000003, 0x00658C90, 0x00658C91,
-	0xA0812802, 0x00000004, 0x00658C90, 0x00658C91, 0xA0812802, 0xA0812802,
-	0x00000002, 0x00658E90, 0x00658E8F, 0x00000002, 0x00658E90, 0x00658E91,
-	0x00000003, 0x00658E90, 0x00658E8F, 0xA0812802, 0x00000003, 0x00658E90,
-	0x00658E91, 0xA0812802, 0x00000004, 0x00658E90, 0x00658E91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659090, 0x0065908F, 0x00000002, 0x00659090,
-	0x00659091, 0x00000003, 0x00659090, 0x0065908F,
-	// Block 235, offset 0x3ac0
-	0xA0812802, 0x00000003, 0x00659090, 0x00659091, 0xA0812802, 0x00000004,
-	0x00659090, 0x00659091, 0xA0812802, 0xA0812802, 0x00000002, 0x00659290,
-	0x00659291, 0x00000003, 0x00659290, 0x00659291, 0xA0812802, 0x00000004,
-	0x00659290, 0x00659291, 0xA0812802, 0xA0812802, 0x00000002, 0x00659490,
-	0x00659491, 0x00000003, 0x00659490, 0x00659491, 0xA0812802, 0x00000004,
-	0x00659490, 0x00659491, 0xA0812802, 0xA0812802, 0x00000002, 0x00659690,
-	0x00659691, 0x00000003, 0x00659690, 0x00659691, 0xA0812802, 0x00000004,
-	0x00659690, 0x00659691, 0xA0812802, 0xA0812802, 0x00000002, 0x00659890,
-	0x00659891, 0x00000003, 0x00659890, 0x00659891, 0xA0812802, 0x00000004,
-	0x00659890, 0x00659891, 0xA0812802, 0xA0812802, 0x00000002, 0x00659A90,
-	0x00659A8F, 0x00000002, 0x00659A90, 0x00659A91,
-	// Block 236, offset 0x3b00
-	0x00000003, 0x00659A90, 0x00659A8F, 0xA0812802, 0x00000003, 0x00659A90,
-	0x00659A91, 0xA0812802, 0x00000004, 0x00659A90, 0x00659A91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659C90, 0x00659C91, 0x00000003, 0x00659C90,
-	0x00659C91, 0xA0812802, 0x00000004, 0x00659C90, 0x00659C91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659E90, 0x00659E8F, 0x00000002, 0x00659E90,
-	0x00659E91, 0x00000003, 0x00659E90, 0x00659E8F, 0xA0812802, 0x00000003,
-	0x00659E90, 0x00659E91, 0xA0812802, 0x00000004, 0x00659E90, 0x00659E91,
-	0xA0812802, 0xA0812802, 0x00000002, 0x0065A090, 0x0065A091, 0x00000002,
-	0x0065A290, 0x0065A291, 0x00000002, 0x0065A490, 0x0065A48F, 0x00000002,
-	0x0065A490, 0x0065A491, 0x00000002, 0x0065A690, 0x0065A691, 0x00000002,
-	0x0065A890, 0x0065A891, 0x00000002, 0x0065AA90,
-	// Block 237, offset 0x3b40
-	0x0065AA8F, 0x00000002, 0x0065AA90, 0x0065AA91, 0x00000003, 0x0065AA90,
-	0x0065AA8F, 0xA0812802, 0x00000003, 0x0065AA90, 0x0065AA91, 0xA0812802,
-	0x00000004, 0x0065AA90, 0x0065AA91, 0xA0812802, 0xA0812802, 0x00000003,
-	0x0065AA90, 0x0065AA91, 0xA0812902, 0x00000004, 0x0065AA90, 0x0065AA91,
-	0xA0812902, 0xA0812802, 0x00000002, 0x0065AC90, 0x0065AC8F, 0x00000002,
-	0x0065AC90, 0x0065AC91, 0x00000003, 0x0065AC90, 0x0065AC8F, 0xA0812802,
-	0x00000003, 0x0065AC90, 0x0065AC91, 0xA0812802, 0x00000004, 0x0065AC90,
-	0x0065AC91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AC90, 0x0065AC91,
-	0xA0812902, 0x00000004, 0x0065AC90, 0x0065AC91, 0xA0812902, 0xA0812802,
-	0x00000002, 0x0065AE90, 0x0065AE8F, 0x00000002, 0x0065AE90, 0x0065AE91,
-	0x00000003, 0x0065AE90, 0x0065AE8F, 0xA0812802,
-	// Block 238, offset 0x3b80
-	0x00000003, 0x0065AE90, 0x0065AE91, 0xA0812802, 0x00000004, 0x0065AE90,
-	0x0065AE91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AE90, 0x0065AE91,
-	0xA0812902, 0x00000004, 0x0065AE90, 0x0065AE91, 0xA0812902, 0xA0812802,
-	0x00000002, 0x0065B090, 0x0065B08F, 0x00000002, 0x0065B090, 0x0065B091,
-	0x00000003, 0x0065B090, 0x0065B08F, 0xA0812802, 0x00000003, 0x0065B090,
-	0x0065B091, 0xA0812802, 0x00000004, 0x0065B090, 0x0065B091, 0xA0812802,
-	0xA0812802, 0x00000003, 0x0065B090, 0x0065B091, 0xA0812902, 0x00000004,
-	0x0065B090, 0x0065B091, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B290,
-	0x0065B28F, 0x00000002, 0x0065B290, 0x0065B291, 0x00000003, 0x0065B290,
-	0x0065B28F, 0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, 0xA0812802,
-	0x00000004, 0x0065B290, 0x0065B291, 0xA0812802,
-	// Block 239, offset 0x3bc0
-	0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, 0xA0812902, 0x00000004,
-	0x0065B290, 0x0065B291, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B490,
-	0x0065B491, 0x00000002, 0x0065B690, 0x0065B691, 0x00000002, 0x0065B890,
-	0x0065B88F, 0x00000002, 0x0065B890, 0x0065B891, 0x00000002, 0x0065BA90,
-	0x0065BA91, 0x00000002, 0x0065BC90, 0x0065BC91, 0x00000002, 0x0065BE90,
-	0x0065BE8F, 0x00000002, 0x0065BE90, 0x0065BE91, 0x00000002, 0x0065C090,
-	0x0065C08F, 0x00000002, 0x0065C090, 0x0065C091, 0x00000002, 0x0065C490,
-	0x0065C48F, 0x00000002, 0x0065C490, 0x0065C491, 0x00000002, 0x4065C421,
-	0x0065C891, 0x00000002, 0x0065C690, 0x0065C68F, 0x00000002, 0x0065C690,
-	0x0065C691, 0x00000002, 0x0065C890, 0x0065C88F, 0x00000002, 0x0065C890,
-	0x0065C891, 0x00000002, 0x0065CA90, 0x0065CA8F,
-	// Block 240, offset 0x3c00
-	0x00000002, 0x0065CA90, 0x0065CA91, 0x00000002, 0x0065CC90, 0x0065CC8F,
-	0x00000002, 0x0065CC90, 0x0065CC91, 0x00000002, 0x0065CE90, 0x0065CE8F,
-	0x00000002, 0x0065CE90, 0x0065CE91, 0x00000002, 0x0065D090, 0x0065D08F,
-	0x00000002, 0x0065D090, 0x0065D091, 0x00000003, 0x0065D090, 0x0065D08F,
-	0xA0812802, 0x00000003, 0x0065D090, 0x0065D091, 0xA0812802, 0x00000004,
-	0x0065D090, 0x0065D091, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D290,
-	0x0065D291, 0x00000003, 0x0065D290, 0x0065D291, 0xA0812802, 0x00000004,
-	0x0065D290, 0x0065D291, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D490,
-	0x0065D491, 0x00000003, 0x0065D490, 0x0065D491, 0xA0812802, 0x00000004,
-	0x0065D490, 0x0065D491, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D690,
-	0x0065D691, 0x00000003, 0x0065D690, 0x0065D691,
-	// Block 241, offset 0x3c40
-	0xA0812802, 0x00000004, 0x0065D690, 0x0065D691, 0xA0812802, 0xA0812802,
-	0x00000002, 0x0065D890, 0x0065D891, 0x00000002, 0x02B24E9C, 0x02D6C69C,
-	0x00000002, 0x02BCE69C, 0x02C4209C, 0x00000002, 0x02CC1C9C, 0x02D9769C,
-	0x00000002, 0x02CC5A9C, 0x02A9189C, 0x00000003, 0x00032683, 0x404FDA20,
-	0x40032620, 0x00000003, 0x404FD821, 0x82092817, 0x404FA420, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FA620, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FA820, 0x00000003, 0x404FD821, 0x82092817, 0x404FAA20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FAC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FAE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FB020, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FB220, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FB420, 0x00000003, 0x404FD821, 0x82092817,
-	// Block 242, offset 0x3c80
-	0x404FB620, 0x00000003, 0x404FD821, 0x82092817, 0x404FB820, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FBA20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FBC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FBE20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FC020, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FC220, 0x00000003, 0x404FD821, 0x82092817, 0x404FC420, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FC620, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FC820, 0x00000003, 0x404FD821, 0x82092817, 0x404FCA20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FCC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FCE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FD020, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FD220, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FD420, 0x00000003, 0x404FD821, 0x82092817,
-	// Block 243, offset 0x3cc0
-	0x404FD620, 0x00000003, 0x404FD821, 0x82092817, 0x404FD820, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDA20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FDA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FDC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDE20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FE020, 0x00000003, 0x404FD821, 0x82092817, 0x404FE220, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FE420, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FE620, 0x00000003, 0x404FD821, 0x82092817, 0x404FE820, 0x00000002,
-	0x404FE820, 0x40500E20, 0x00000002, 0x404FE821, 0x40501020, 0x00000002,
-	0x404FE821, 0x40501220, 0x00000002, 0x404FE821,
-	// Block 244, offset 0x3d00
-	0x40501820, 0x00000003, 0x004FE8A3, 0x40501820, 0x404FA420, 0x00000002,
-	0x404FE821, 0x40501A20, 0x00000003, 0x004FE8A3, 0x40501A20, 0x404FDC20,
-	0x00000002, 0x404FE821, 0x40502620, 0x00000002, 0x404FE821, 0x40502820,
-	0x00000002, 0x404FE821, 0x40502A20, 0x00000002, 0x004FE8A3, 0x40502A20,
-	0x00000002, 0x404FE821, 0x40502C20, 0x00000002, 0x4062AC21, 0x4063A820,
-	0x00000002, 0x4062AC22, 0x4063A820, 0x00000002, 0x4062AC23, 0x4063A820,
-	0x00000002, 0x4062AC24, 0x4063A820, 0x00000002, 0x4062AC25, 0x4063A820,
-	0x00000002, 0x4062AC26, 0x4063A820, 0x00000002, 0x4062AC27, 0x4063A820,
-	0x00000002, 0x4062AC28, 0x4063A820, 0x00000002, 0x4062AC29, 0x4063A820,
-	0x00000002, 0x4062AC2A, 0x4063A820, 0x00000002, 0x4062AC2B, 0x4063A820,
-	0x00000002, 0x4062AC2C, 0x4063A820, 0x00000002,
-	// Block 245, offset 0x3d40
-	0x4062AC2D, 0x4063A820, 0x00000002, 0x4062AC2E, 0x4063A820, 0x00000002,
-	0x4062AC2F, 0x4063A820, 0x00000002, 0x4062AC30, 0x4063A820, 0x00000002,
-	0x4062AC31, 0x4063A820, 0x00000002, 0x4062AC32, 0x4063A820, 0x00000002,
-	0x4062AC33, 0x4063A820, 0x00000002, 0x4062AC34, 0x4063A820, 0x00000002,
-	0x4062AC35, 0x4063A820, 0x00000002, 0x4062AC36, 0x4063A820, 0x00000002,
-	0x4062AC37, 0x4063A820, 0x00000002, 0x4062AC38, 0x4063A820, 0x00000002,
-	0x4062AC39, 0x4063A820, 0x00000002, 0x4062AC3A, 0x4063A820, 0x00000002,
-	0x4062AC3B, 0x4063A820, 0x00000002, 0x4062AC3C, 0x4063A820, 0x00000002,
-	0x4062AC3D, 0x4063A820, 0x00000002, 0x4062AC3E, 0x4063A820, 0x00000002,
-	0x4062AC3F, 0x4063A820, 0x00000002, 0x4062AC40, 0x4063A820, 0x00000002,
-	0x4062AC41, 0x4063A820, 0x00000002, 0x4062AC42,
-	// Block 246, offset 0x3d80
-	0x4063A820, 0x00000002, 0x4062AC43, 0x4063A820, 0x00000002, 0x4062AC44,
-	0x4063A820, 0x00000002, 0x4062AC45, 0x4063A820, 0x00000002, 0x4062AC46,
-	0x4063A820, 0x00000002, 0x4062AC47, 0x4063A820, 0x00000002, 0x4062AC48,
-	0x4063A820, 0x00000002, 0x4062AC49, 0x4063A820, 0x00000002, 0x4062AC4A,
-	0x4063A820, 0x00000002, 0x4062AC4B, 0x4063A820, 0x00000002, 0x4062AC4C,
-	0x4063A820, 0x00000003, 0x4062AC21, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC22, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC25, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC27, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 247, offset 0x3dc0
-	0x4062AC29, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC2B, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC2C, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC2E, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC2F, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC30, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC31, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC23, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC27, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 248, offset 0x3e00
-	0x4062AC28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC30, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC33, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC37, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 249, offset 0x3e40
-	0x4062AC38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC3A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC3B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC40, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC43, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 250, offset 0x3e80
-	0x4062AC25, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC27, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40648220, 0x00000003,
-	// Block 251, offset 0x3ec0
-	0x4062AC25, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC27, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC33, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40648220, 0x00000003,
-	// Block 252, offset 0x3f00
-	0x4062AC35, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC36, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC37, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC38, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC39, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC3B, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC40, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC43, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 253, offset 0x3f40
-	0x4062AC22, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC23, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062AC24, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062AC25, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062AC27, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC27, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC29, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC2A, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 254, offset 0x3f80
-	0x4062AC2B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC30, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC33, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC37, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC39, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC3A, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 255, offset 0x3fc0
-	0x4062AC3B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC40, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC43, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC44, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC45, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC46, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC47, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC49, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062AC21, 0x4063AA20, 0x00000002, 0x4062AC22,
-	// Block 256, offset 0x4000
-	0x4063AA20, 0x00000002, 0x4062AC23, 0x4063AA20, 0x00000002, 0x4062AC24,
-	0x4063AA20, 0x00000002, 0x4062AC25, 0x4063AA20, 0x00000002, 0x4062AC26,
-	0x4063AA20, 0x00000002, 0x4062AC27, 0x4063AA20, 0x00000002, 0x4062AC28,
-	0x4063AA20, 0x00000002, 0x4062AC29, 0x4063AA20, 0x00000002, 0x4062AC2A,
-	0x4063AA20, 0x00000002, 0x4062AC2B, 0x4063AA20, 0x00000002, 0x4062AC2C,
-	0x4063AA20, 0x00000002, 0x4062AC2D, 0x4063AA20, 0x00000002, 0x4062AC2E,
-	0x4063AA20, 0x00000002, 0x4062AC2F, 0x4063AA20, 0x00000002, 0x4062AC30,
-	0x4063AA20, 0x00000002, 0x4062AC31, 0x4063AA20, 0x00000002, 0x4062AC32,
-	0x4063AA20, 0x00000002, 0x4062AC33, 0x4063AA20, 0x00000002, 0x4062AC34,
-	0x4063AA20, 0x00000002, 0x4062AC35, 0x4063AA20, 0x00000002, 0x4062AC36,
-	0x4063AA20, 0x00000002, 0x4062AC37, 0x4063AA20,
-	// Block 257, offset 0x4040
-	0x00000002, 0x4062AC38, 0x4063AA20, 0x00000002, 0x4062AC39, 0x4063AA20,
-	0x00000002, 0x4062AC3A, 0x4063AA20, 0x00000003, 0x4062AC21, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062AC22, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062AC21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062AC23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062AC24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062AC26, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062AC21, 0x4063AC20, 0x40646420, 0x00000002, 0x4062AC21, 0x4063B020,
-	0x00000002, 0x4062AC22, 0x4063B020, 0x00000002, 0x4062AC23, 0x4063B020,
-	0x00000002, 0x4062AC24, 0x4063B020, 0x00000002, 0x4062AC25, 0x4063B020,
-	0x00000002, 0x4062AC26, 0x4063B020, 0x00000002,
-	// Block 258, offset 0x4080
-	0x4062AC27, 0x4063B020, 0x00000002, 0x4062AC28, 0x4063B020, 0x00000002,
-	0x4062AC29, 0x4063B020, 0x00000002, 0x4062AC2A, 0x4063B020, 0x00000002,
-	0x4062AC2B, 0x4063B020, 0x00000002, 0x4062AC2C, 0x4063B020, 0x00000002,
-	0x4062AC2D, 0x4063B020, 0x00000002, 0x4062AC2E, 0x4063B020, 0x00000002,
-	0x4062AC2F, 0x4063B020, 0x00000002, 0x4062AC30, 0x4063B020, 0x00000002,
-	0x4062AC31, 0x4063B020, 0x00000002, 0x4062AC32, 0x4063B020, 0x00000002,
-	0x4062AC33, 0x4063B020, 0x00000002, 0x4062AC34, 0x4063B020, 0x00000002,
-	0x4062AC35, 0x4063B020, 0x00000002, 0x4062AC36, 0x4063B020, 0x00000002,
-	0x4062AC37, 0x4063B020, 0x00000002, 0x4062AC38, 0x4063B020, 0x00000002,
-	0x4062AC39, 0x4063B020, 0x00000002, 0x4062AC3A, 0x4063B020, 0x00000002,
-	0x4062AC3B, 0x4063B020, 0x00000002, 0x4062AC3C,
-	// Block 259, offset 0x40c0
-	0x4063B020, 0x00000002, 0x4062AC3D, 0x4063B020, 0x00000002, 0x4062AC3E,
-	0x4063B020, 0x00000003, 0x4062AC21, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC22, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC24, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC25, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC27, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC28, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC2A, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC2B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC2D, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC2E, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 260, offset 0x4100
-	0x4062AC2F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC31, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC32, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC22, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062AC23, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC25, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062AC26, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC27, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC21, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC22, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC23, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062AC24, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC25, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 261, offset 0x4140
-	0x4062AC26, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062AC28, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC29, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062AC22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062AC23, 0x4063B020, 0x40648420, 0x00000003, 0x4062AC24, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062AC25, 0x4063B020, 0x40648420, 0x00000002,
-	0x4062AC21, 0x4063B220, 0x00000002, 0x4062AC22, 0x4063B220, 0x00000002,
-	0x4062AC23, 0x4063B220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40646420,
-	// Block 262, offset 0x4180
-	0x00000003, 0x4062AC26, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC27,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40646A20,
-	// Block 263, offset 0x41c0
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062AC24, 0x4063B420, 0x40647220,
-	// Block 264, offset 0x4200
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC29,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC29,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC2A, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC2B, 0x4063B420, 0x40648220,
-	// Block 265, offset 0x4240
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC2F, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC21,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC23, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC26, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC27,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40648C20,
-	// Block 266, offset 0x4280
-	0x00000003, 0x4062AC2D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC30, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC31,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC33, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC34,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC36, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC37,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC39, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC3C, 0x4063B420, 0x40648C20,
-	// Block 267, offset 0x42c0
-	0x00000003, 0x4062AC3D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC40, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC41,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC43, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC44,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC45, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC46, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC47,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC49, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC4C, 0x4063B420, 0x40648C20,
-	// Block 268, offset 0x4300
-	0x00000003, 0x4062AC4D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC50, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC51,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC52, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC53, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC54,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC55, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC56, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC57,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC58, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC59, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC5C, 0x4063B420, 0x40648C20,
-	// Block 269, offset 0x4340
-	0x00000003, 0x4062AC5D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC60, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC61,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062AC21, 0x4063B620, 0x00000002,
-	0x4062AC22, 0x4063B620, 0x00000002, 0x4062AC23, 0x4063B620, 0x00000002,
-	0x4062AC24, 0x4063B620, 0x00000002, 0x4062AC25, 0x4063B620, 0x00000002,
-	0x4062AC26, 0x4063B620, 0x00000002, 0x4062AC27, 0x4063B620, 0x00000002,
-	0x4062AC28, 0x4063B620, 0x00000002, 0x4062AC29, 0x4063B620, 0x00000002,
-	0x4062AC2A, 0x4063B620, 0x00000002, 0x4062AC2B, 0x4063B620, 0x00000002,
-	0x4062AC2C, 0x4063B620, 0x00000002, 0x4062AC2D, 0x4063B620, 0x00000002,
-	0x4062AC2E, 0x4063B620, 0x00000002, 0x4062AC2F,
-	// Block 270, offset 0x4380
-	0x4063B620, 0x00000002, 0x4062AC30, 0x4063B620, 0x00000002, 0x4062AC31,
-	0x4063B620, 0x00000002, 0x4062AC32, 0x4063B620, 0x00000002, 0x4062AC33,
-	0x4063B620, 0x00000002, 0x4062AC34, 0x4063B620, 0x00000002, 0x4062AC35,
-	0x4063B620, 0x00000002, 0x4062AC36, 0x4063B620, 0x00000002, 0x4062AC37,
-	0x4063B620, 0x00000002, 0x4062AC38, 0x4063B620, 0x00000002, 0x4062AC39,
-	0x4063B620, 0x00000002, 0x4062AC3A, 0x4063B620, 0x00000002, 0x4062AC3B,
-	0x4063B620, 0x00000002, 0x4062AC3C, 0x4063B620, 0x00000002, 0x4062AC3D,
-	0x4063B620, 0x00000002, 0x4062AC3E, 0x4063B620, 0x00000002, 0x4062AC3F,
-	0x4063B620, 0x00000002, 0x4062AC40, 0x4063B620, 0x00000002, 0x4062AC41,
-	0x4063B620, 0x00000002, 0x4062AC42, 0x4063B620, 0x00000002, 0x4062AC43,
-	0x4063B620, 0x00000002, 0x4062AC44, 0x4063B620,
-	// Block 271, offset 0x43c0
-	0x00000002, 0x4062AC21, 0x4063B820, 0x00000002, 0x4062AC22, 0x4063B820,
-	0x00000002, 0x4062AC23, 0x4063B820, 0x00000002, 0x4062AC24, 0x4063B820,
-	0x00000002, 0x4062AC25, 0x4063B820, 0x00000002, 0x4062AC26, 0x4063B820,
-	0x00000002, 0x4062AC27, 0x4063B820, 0x00000002, 0x4062AC28, 0x4063B820,
-	0x00000002, 0x4062AC29, 0x4063B820, 0x00000002, 0x4062AC2A, 0x4063B820,
-	0x00000002, 0x4062AC2B, 0x4063B820, 0x00000002, 0x4062AC2C, 0x4063B820,
-	0x00000002, 0x4062AC2D, 0x4063B820, 0x00000002, 0x4062AC2E, 0x4063B820,
-	0x00000002, 0x4062AC2F, 0x4063B820, 0x00000002, 0x4062AC30, 0x4063B820,
-	0x00000002, 0x4062AC31, 0x4063B820, 0x00000002, 0x4062AC32, 0x4063B820,
-	0x00000002, 0x4062AC33, 0x4063B820, 0x00000002, 0x4062AC34, 0x4063B820,
-	0x00000002, 0x4062AC35, 0x4063B820, 0x00000002,
-	// Block 272, offset 0x4400
-	0x4062AC36, 0x4063B820, 0x00000002, 0x4062AC37, 0x4063B820, 0x00000002,
-	0x4062AC38, 0x4063B820, 0x00000002, 0x4062AC39, 0x4063B820, 0x00000002,
-	0x4062AC3A, 0x4063B820, 0x00000002, 0x4062AC3B, 0x4063B820, 0x00000002,
-	0x4062AC3C, 0x4063B820, 0x00000002, 0x4062AC3D, 0x4063B820, 0x00000002,
-	0x4062AC3E, 0x4063B820, 0x00000002, 0x4062AC3F, 0x4063B820, 0x00000002,
-	0x4062AC40, 0x4063B820, 0x00000002, 0x4062AC41, 0x4063B820, 0x00000002,
-	0x4062AC42, 0x4063B820, 0x00000002, 0x4062AC43, 0x4063B820, 0x00000002,
-	0x4062AC44, 0x4063B820, 0x00000002, 0x4062AC45, 0x4063B820, 0x00000002,
-	0x4062AC46, 0x4063B820, 0x00000002, 0x4062AC47, 0x4063B820, 0x00000002,
-	0x4062AC48, 0x4063B820, 0x00000002, 0x4062AC49, 0x4063B820, 0x00000002,
-	0x4062AC4A, 0x4063B820, 0x00000002, 0x4062AC4B,
-	// Block 273, offset 0x4440
-	0x4063B820, 0x00000002, 0x4062AC4C, 0x4063B820, 0x00000002, 0x4062AC4D,
-	0x4063B820, 0x00000002, 0x4062AC4E, 0x4063B820, 0x00000002, 0x4062AC4F,
-	0x4063B820, 0x00000002, 0x4062AC50, 0x4063B820, 0x00000002, 0x4062AC51,
-	0x4063B820, 0x00000002, 0x4062AC52, 0x4063B820, 0x00000002, 0x4062AC53,
-	0x4063B820, 0x00000002, 0x4062AC54, 0x4063B820, 0x00000002, 0x4062AC55,
-	0x4063B820, 0x00000002, 0x4062AC56, 0x4063B820, 0x00000002, 0x4062AC57,
-	0x4063B820, 0x00000002, 0x4062AC58, 0x4063B820, 0x00000002, 0x4062AC59,
-	0x4063B820, 0x00000002, 0x4062AC5A, 0x4063B820, 0x00000002, 0x4062AC5B,
-	0x4063B820, 0x00000002, 0x4062AC5C, 0x4063B820, 0x00000002, 0x4062AC5D,
-	0x4063B820, 0x00000002, 0x4062AC5E, 0x4063B820, 0x00000002, 0x4062AC5F,
-	0x4063B820, 0x00000002, 0x4062AC60, 0x4063B820,
-	// Block 274, offset 0x4480
-	0x00000002, 0x4062AC61, 0x4063B820, 0x00000002, 0x4062AC62, 0x4063B820,
-	0x00000002, 0x4062AC63, 0x4063B820, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC22, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC23, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC25, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC26, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC28, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC29, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC2C, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC22, 0x4063B820,
-	// Block 275, offset 0x44c0
-	0x40646A20, 0x00000003, 0x4062AC23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC24, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC26, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC27, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC29, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC2A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC2C, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC2D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC2F, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC30, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC32, 0x4063B820,
-	// Block 276, offset 0x4500
-	0x40646A20, 0x00000003, 0x4062AC33, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC34, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC36, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC37, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC38, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC21, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062AC22, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062AC24, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062AC25, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062AC21, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC23, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC24, 0x4063B820,
-	// Block 277, offset 0x4540
-	0x40648C20, 0x00000003, 0x4062AC25, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC28, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC2E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC30, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC31, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC33, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC34, 0x4063B820,
-	// Block 278, offset 0x4580
-	0x40648C20, 0x00000003, 0x4062AC35, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC36, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC38, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC39, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC3C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40648E20, 0x00000002, 0x4062AC21, 0x4063BA20, 0x00000002, 0x4062AC22,
-	0x4063BA20, 0x00000002, 0x4062AC23, 0x4063BA20, 0x00000002, 0x4062AC24,
-	0x4063BA20, 0x00000002, 0x4062AC25, 0x4063BA20, 0x00000002, 0x4062AC26,
-	0x4063BA20, 0x00000002, 0x4062AC27, 0x4063BA20, 0x00000002, 0x4062AC28,
-	0x4063BA20, 0x00000002, 0x4062AC29, 0x4063BA20,
-	// Block 279, offset 0x45c0
-	0x00000002, 0x4062AC2A, 0x4063BA20, 0x00000002, 0x4062AC2B, 0x4063BA20,
-	0x00000002, 0x4062AC2C, 0x4063BA20, 0x00000002, 0x4062AC2D, 0x4063BA20,
-	0x00000002, 0x4062AC2E, 0x4063BA20, 0x00000002, 0x4062AC2F, 0x4063BA20,
-	0x00000002, 0x4062AC30, 0x4063BA20, 0x00000002, 0x4062AC31, 0x4063BA20,
-	0x00000002, 0x4062AC32, 0x4063BA20, 0x00000002, 0x4062AC33, 0x4063BA20,
-	0x00000002, 0x4062AC34, 0x4063BA20, 0x00000002, 0x4062AC35, 0x4063BA20,
-	0x00000002, 0x4062AC36, 0x4063BA20, 0x00000002, 0x4062AC37, 0x4063BA20,
-	0x00000002, 0x4062AC38, 0x4063BA20, 0x00000002, 0x4062AC39, 0x4063BA20,
-	0x00000003, 0x4062AC21, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC22,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC23, 0x4063BA20, 0x40646420,
-	0x00000003, 0x4062AC24, 0x4063BA20, 0x40646420,
-	// Block 280, offset 0x4600
-	0x00000003, 0x4062AC25, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC26,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646420,
-	0x00000003, 0x4062AC28, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC29,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063BA20, 0x40646A20,
-	// Block 281, offset 0x4640
-	0x00000003, 0x4062AC2C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC35, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC36,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC37, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC38, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC39,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC3B, 0x4063BA20, 0x40646A20,
-	// Block 282, offset 0x4680
-	0x00000003, 0x4062AC3C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC3F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC21,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC23, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC24,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC26, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC27,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC29, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC2A,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC22, 0x4063BA20, 0x40648C20,
-	// Block 283, offset 0x46c0
-	0x00000003, 0x4062AC23, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC26, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC27,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC29, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2A,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC2C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2D,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC2F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC30,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC32, 0x4063BA20, 0x40648C20,
-	// Block 284, offset 0x4700
-	0x00000003, 0x4062AC33, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC34,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC36, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC37,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063BA20, 0x40648C20,
-	0x00000002, 0x4062AC21, 0x4063BC20, 0x00000002, 0x4062AC22, 0x4063BC20,
-	0x00000002, 0x4062AC23, 0x4063BC20, 0x00000002, 0x4062AC24, 0x4063BC20,
-	0x00000002, 0x4062AC25, 0x4063BC20, 0x00000002, 0x4062AC26, 0x4063BC20,
-	0x00000002, 0x4062AC27, 0x4063BC20, 0x00000002, 0x4062AC21, 0x4063BE20,
-	0x00000002, 0x4062AC22, 0x4063BE20, 0x00000002, 0x4062AC23, 0x4063BE20,
-	0x00000002, 0x4062AC24, 0x4063BE20, 0x00000002, 0x4062AC25, 0x4063BE20,
-	0x00000002, 0x4062AC26, 0x4063BE20, 0x00000002,
-	// Block 285, offset 0x4740
-	0x4062AC27, 0x4063BE20, 0x00000002, 0x4062AC28, 0x4063BE20, 0x00000002,
-	0x4062AC29, 0x4063BE20, 0x00000002, 0x4062AC2A, 0x4063BE20, 0x00000002,
-	0x4062AC2B, 0x4063BE20, 0x00000002, 0x4062AC2C, 0x4063BE20, 0x00000002,
-	0x4062AC2D, 0x4063BE20, 0x00000002, 0x4062AC2E, 0x4063BE20, 0x00000002,
-	0x4062AC2F, 0x4063BE20, 0x00000002, 0x4062AC30, 0x4063BE20, 0x00000003,
-	0x4062AC21, 0x4063BE20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC22, 0x4063BE20, 0x40648C20, 0x00000003,
-	0x4062AC23, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC25, 0x4063BE20, 0x40648C20, 0x00000003,
-	0x4062AC26, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC28, 0x4063BE20,
-	// Block 286, offset 0x4780
-	0x40648C20, 0x00000002, 0x4062AC21, 0x4063C020, 0x00000002, 0x4062AC22,
-	0x4063C020, 0x00000002, 0x4062AC23, 0x4063C020, 0x00000002, 0x4062AC24,
-	0x4063C020, 0x00000002, 0x4062AC25, 0x4063C020, 0x00000002, 0x4062AC26,
-	0x4063C020, 0x00000002, 0x4062AC27, 0x4063C020, 0x00000002, 0x4062AC28,
-	0x4063C020, 0x00000002, 0x4062AC29, 0x4063C020, 0x00000002, 0x4062AC2A,
-	0x4063C020, 0x00000002, 0x4062AC2B, 0x4063C020, 0x00000002, 0x4062AC2C,
-	0x4063C020, 0x00000002, 0x4062AC2D, 0x4063C020, 0x00000002, 0x4062AC2E,
-	0x4063C020, 0x00000002, 0x4062AC2F, 0x4063C020, 0x00000002, 0x4062AC30,
-	0x4063C020, 0x00000002, 0x4062AC31, 0x4063C020, 0x00000002, 0x4062AC32,
-	0x4063C020, 0x00000002, 0x4062AC33, 0x4063C020, 0x00000002, 0x4062AC34,
-	0x4063C020, 0x00000002, 0x4062AC35, 0x4063C020,
-	// Block 287, offset 0x47c0
-	0x00000002, 0x4062AC36, 0x4063C020, 0x00000002, 0x4062AC37, 0x4063C020,
-	0x00000002, 0x4062AC38, 0x4063C020, 0x00000002, 0x4062AC39, 0x4063C020,
-	0x00000002, 0x4062AC3A, 0x4063C020, 0x00000002, 0x4062AC3B, 0x4063C020,
-	0x00000002, 0x4062AC3C, 0x4063C020, 0x00000002, 0x4062AC3D, 0x4063C020,
-	0x00000002, 0x4062AC3E, 0x4063C020, 0x00000002, 0x4062AC3F, 0x4063C020,
-	0x00000002, 0x4062AC40, 0x4063C020, 0x00000002, 0x4062AC41, 0x4063C020,
-	0x00000002, 0x4062AC42, 0x4063C020, 0x00000002, 0x4062AC43, 0x4063C020,
-	0x00000002, 0x4062AC44, 0x4063C020, 0x00000002, 0x4062AC45, 0x4063C020,
-	0x00000002, 0x4062AC46, 0x4063C020, 0x00000002, 0x4062AC47, 0x4063C020,
-	0x00000002, 0x4062AC48, 0x4063C020, 0x00000002, 0x4062AC49, 0x4063C020,
-	0x00000002, 0x4062AC4A, 0x4063C020, 0x00000002,
-	// Block 288, offset 0x4800
-	0x4062AC4B, 0x4063C020, 0x00000002, 0x4062AC4C, 0x4063C020, 0x00000002,
-	0x4062AC21, 0x4063C220, 0x00000002, 0x4062AC22, 0x4063C220, 0x00000002,
-	0x4062AC23, 0x4063C220, 0x00000002, 0x4062AC24, 0x4063C220, 0x00000002,
-	0x4062AC25, 0x4063C220, 0x00000002, 0x4062AC26, 0x4063C220, 0x00000002,
-	0x4062AC27, 0x4063C220, 0x00000002, 0x4062AC28, 0x4063C220, 0x00000002,
-	0x4062AC29, 0x4063C220, 0x00000002, 0x4062AC2A, 0x4063C220, 0x00000002,
-	0x4062AC2B, 0x4063C220, 0x00000002, 0x4062AC2C, 0x4063C220, 0x00000002,
-	0x4062AC2D, 0x4063C220, 0x00000002, 0x4062AC2E, 0x4063C220, 0x00000002,
-	0x4062AC2F, 0x4063C220, 0x00000002, 0x4062AC30, 0x4063C220, 0x00000002,
-	0x4062AC31, 0x4063C220, 0x00000002, 0x4062AC32, 0x4063C220, 0x00000002,
-	0x4062AC33, 0x4063C220, 0x00000002, 0x4062AC34,
-	// Block 289, offset 0x4840
-	0x4063C220, 0x00000002, 0x4062AC35, 0x4063C220, 0x00000002, 0x4062AC36,
-	0x4063C220, 0x00000002, 0x4062AC37, 0x4063C220, 0x00000002, 0x4062AC38,
-	0x4063C220, 0x00000002, 0x4062AC39, 0x4063C220, 0x00000002, 0x4062AC3A,
-	0x4063C220, 0x00000002, 0x4062AC3B, 0x4063C220, 0x00000002, 0x4062AC3C,
-	0x4063C220, 0x00000002, 0x4062AC3D, 0x4063C220, 0x00000002, 0x4062AC3E,
-	0x4063C220, 0x00000002, 0x4062AC3F, 0x4063C220, 0x00000002, 0x4062AC40,
-	0x4063C220, 0x00000002, 0x4062AC41, 0x4063C220, 0x00000002, 0x4062AC42,
-	0x4063C220, 0x00000002, 0x4062AC43, 0x4063C220, 0x00000002, 0x4062AC44,
-	0x4063C220, 0x00000002, 0x4062AC45, 0x4063C220, 0x00000002, 0x4062AC46,
-	0x4063C220, 0x00000002, 0x4062AC47, 0x4063C220, 0x00000002, 0x4062AC48,
-	0x4063C220, 0x00000002, 0x4062AC49, 0x4063C220,
-	// Block 290, offset 0x4880
-	0x00000002, 0x4062AC4A, 0x4063C220, 0x00000002, 0x4062AC4B, 0x4063C220,
-	0x00000002, 0x4062AC4C, 0x4063C220, 0x00000002, 0x4062AC4D, 0x4063C220,
-	0x00000002, 0x4062AC4E, 0x4063C220, 0x00000002, 0x4062AC4F, 0x4063C220,
-	0x00000002, 0x4062AC50, 0x4063C220, 0x00000002, 0x4062AC51, 0x4063C220,
-	0x00000002, 0x4062AC52, 0x4063C220, 0x00000002, 0x4062AC53, 0x4063C220,
-	0x00000002, 0x4062AC54, 0x4063C220, 0x00000002, 0x4062AC55, 0x4063C220,
-	0x00000002, 0x4062AC56, 0x4063C220, 0x00000002, 0x4062AC57, 0x4063C220,
-	0x00000002, 0x4062AC58, 0x4063C220, 0x00000002, 0x4062AC59, 0x4063C220,
-	0x00000002, 0x4062AC5A, 0x4063C220, 0x00000002, 0x4062AC5B, 0x4063C220,
-	0x00000002, 0x4062AC5C, 0x4063C220, 0x00000002, 0x4062AC5D, 0x4063C220,
-	0x00000002, 0x4062AC5E, 0x4063C220, 0x00000002,
-	// Block 291, offset 0x48c0
-	0x4062AC5F, 0x4063C220, 0x00000002, 0x4062AC60, 0x4063C220, 0x00000002,
-	0x4062AC61, 0x4063C220, 0x00000002, 0x4062AC62, 0x4063C220, 0x00000002,
-	0x4062AC63, 0x4063C220, 0x00000002, 0x4062AC64, 0x4063C220, 0x00000002,
-	0x4062AC65, 0x4063C220, 0x00000002, 0x4062AC66, 0x4063C220, 0x00000002,
-	0x4062AC67, 0x4063C220, 0x00000002, 0x4062AC68, 0x4063C220, 0x00000002,
-	0x4062AC69, 0x4063C220, 0x00000002, 0x4062AC6A, 0x4063C220, 0x00000002,
-	0x4062AC6B, 0x4063C220, 0x00000002, 0x4062AC6C, 0x4063C220, 0x00000002,
-	0x4062AC6D, 0x4063C220, 0x00000002, 0x4062AC6E, 0x4063C220, 0x00000002,
-	0x4062AC6F, 0x4063C220, 0x00000002, 0x4062AC70, 0x4063C220, 0x00000002,
-	0x4062AC71, 0x4063C220, 0x00000002, 0x4062AC72, 0x4063C220, 0x00000002,
-	0x4062AC73, 0x4063C220, 0x00000002, 0x4062AC74,
-	// Block 292, offset 0x4900
-	0x4063C220, 0x00000002, 0x4062AC75, 0x4063C220, 0x00000002, 0x4062AC76,
-	0x4063C220, 0x00000002, 0x4062AC77, 0x4063C220, 0x00000002, 0x4062AC78,
-	0x4063C220, 0x00000002, 0x4062AC79, 0x4063C220, 0x00000002, 0x4062AC7A,
-	0x4063C220, 0x00000002, 0x4062AC7B, 0x4063C220, 0x00000002, 0x4062AC7C,
-	0x4063C220, 0x00000002, 0x4062AC7D, 0x4063C220, 0x00000002, 0x4062AC7E,
-	0x4063C220, 0x00000002, 0x4062AC7F, 0x4063C220, 0x00000002, 0x4062AC80,
-	0x4063C220, 0x00000002, 0x4062AC81, 0x4063C220, 0x00000002, 0x4062AC82,
-	0x4063C220, 0x00000002, 0x4062AC83, 0x4063C220, 0x00000002, 0x4062AC84,
-	0x4063C220, 0x00000002, 0x4062AC85, 0x4063C220, 0x00000002, 0x4062AC86,
-	0x4063C220, 0x00000002, 0x4062AC87, 0x4063C220, 0x00000003, 0x4062AC21,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC22,
-	// Block 293, offset 0x4940
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC23, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC24, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC25,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC26, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC27, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC28,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC21,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC23, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC24,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC26, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC27,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC28,
-	// Block 294, offset 0x4980
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC23, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062AC24, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC25,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC26, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062AC27, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC28,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC21, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062AC22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC23,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062AC25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC26,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC27,
-	// Block 295, offset 0x49c0
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2C,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC2E, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2F,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC30,
-	// Block 296, offset 0x4a00
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40647220,
-	0x00000003, 0x4062AC22, 0x4063C420, 0x40647220, 0x00000003, 0x4062AC23,
-	0x4063C420, 0x40647220, 0x00000003, 0x4062AC24, 0x4063C420, 0x40647220,
-	0x00000003, 0x4062AC25, 0x4063C420, 0x40647220, 0x00000002, 0x4062AC21,
-	0x4063C620, 0x00000002, 0x4062AC22, 0x4063C620, 0x00000002, 0x4062AC23,
-	0x4063C620, 0x00000002, 0x4062AC24, 0x4063C620, 0x00000002, 0x4062AC25,
-	0x4063C620, 0x00000002, 0x4062AC26, 0x4063C620, 0x00000002, 0x4062AC27,
-	0x4063C620, 0x00000002, 0x4062AC28, 0x4063C620, 0x00000002, 0x4062AC29,
-	0x4063C620, 0x00000002, 0x4062AC2A, 0x4063C620, 0x00000002, 0x4062AC2B,
-	0x4063C620, 0x00000002, 0x4062AC2C, 0x4063C620, 0x00000002, 0x4062AC2D,
-	0x4063C620, 0x00000002, 0x4062AC2E, 0x4063C620,
-	// Block 297, offset 0x4a40
-	0x00000002, 0x4062AC2F, 0x4063C620, 0x00000002, 0x4062AC30, 0x4063C620,
-	0x00000002, 0x4062AC31, 0x4063C620, 0x00000002, 0x4062AC32, 0x4063C620,
-	0x00000002, 0x4062AC33, 0x4063C620, 0x00000002, 0x4062AC34, 0x4063C620,
-	0x00000002, 0x4062AC21, 0x4063C820, 0x00000002, 0x4062AC22, 0x4063C820,
-	0x00000002, 0x4062AC23, 0x4063C820, 0x00000002, 0x4062AC24, 0x4063C820,
-	0x00000002, 0x4062AC21, 0x4063CA20, 0x00000002, 0x4062AC22, 0x4063CA20,
-	0x00000002, 0x4062AC23, 0x4063CA20, 0x00000002, 0x4062AC24, 0x4063CA20,
-	0x00000002, 0x4062AC25, 0x4063CA20, 0x00000002, 0x4062AC26, 0x4063CA20,
-	0x00000002, 0x4062AC27, 0x4063CA20, 0x00000002, 0x4062AC28, 0x4063CA20,
-	0x00000002, 0x4062AC29, 0x4063CA20, 0x00000002, 0x4062AC2A, 0x4063CA20,
-	0x00000002, 0x4062AC2B, 0x4063CA20, 0x00000002,
-	// Block 298, offset 0x4a80
-	0x4062AC2C, 0x4063CA20, 0x00000002, 0x4062AC2D, 0x4063CA20, 0x00000002,
-	0x4062AC2E, 0x4063CA20, 0x00000002, 0x4062AC2F, 0x4063CA20, 0x00000002,
-	0x4062AC30, 0x4063CA20, 0x00000002, 0x4062AC31, 0x4063CA20, 0x00000002,
-	0x4062AC32, 0x4063CA20, 0x00000002, 0x4062AC33, 0x4063CA20, 0x00000002,
-	0x4062AC34, 0x4063CA20, 0x00000002, 0x4062AC35, 0x4063CA20, 0x00000002,
-	0x4062AC36, 0x4063CA20, 0x00000002, 0x4062AC37, 0x4063CA20, 0x00000002,
-	0x4062AC38, 0x4063CA20, 0x00000002, 0x4062AC39, 0x4063CA20, 0x00000002,
-	0x4062AC3A, 0x4063CA20, 0x00000002, 0x4062AC3B, 0x4063CA20, 0x00000002,
-	0x4062AC3C, 0x4063CA20, 0x00000002, 0x4062AC3D, 0x4063CA20, 0x00000002,
-	0x4062AC3E, 0x4063CA20, 0x00000002, 0x4062AC3F, 0x4063CA20, 0x00000002,
-	0x4062AC40, 0x4063CA20, 0x00000003, 0x4062AC21,
-	// Block 299, offset 0x4ac0
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC23, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC24,
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC26, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC27,
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063CA20, 0x40647220, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC23, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC24,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC26, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC27,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC28,
-	// Block 300, offset 0x4b00
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC2A, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC2B,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2C,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2D,
-	// Block 301, offset 0x4b40
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC35, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC36,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC37, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC38, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC39,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC22, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC23,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC24,
-	// Block 302, offset 0x4b80
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC26, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC27,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC28, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC29, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2A,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2B, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC2C, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2D,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC2F, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC30,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC32, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC22,
-	// Block 303, offset 0x4bc0
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC24, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC25,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC27, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC28,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC2A, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2B,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2C, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC2D, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062AC23, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC25,
-	// Block 304, offset 0x4c00
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648C20,
-	0x00000002, 0x4062AC21, 0x4063D020, 0x00000002, 0x4062AC22, 0x4063D020,
-	0x00000002, 0x4062AC23, 0x4063D020, 0x00000002, 0x4062AC24, 0x4063D020,
-	0x00000002, 0x4062AC25, 0x4063D020, 0x00000002, 0x4062AC26, 0x4063D020,
-	0x00000002, 0x4062AC27, 0x4063D020, 0x00000002, 0x4062AC28, 0x4063D020,
-	0x00000002, 0x4062AC29, 0x4063D020, 0x00000002, 0x4062AC2A, 0x4063D020,
-	0x00000002, 0x4062AC2B, 0x4063D020, 0x00000002, 0x4062AC2C, 0x4063D020,
-	0x00000002, 0x4062AC2D, 0x4063D020, 0x00000002, 0x4062AC2E, 0x4063D020,
-	0x00000002, 0x4062AC2F, 0x4063D020, 0x00000002, 0x4062AC30, 0x4063D020,
-	0x00000002, 0x4062AC31, 0x4063D020, 0x00000002, 0x4062AC32, 0x4063D020,
-	0x00000002, 0x4062AC33, 0x4063D020, 0x00000002,
-	// Block 305, offset 0x4c40
-	0x4062AC34, 0x4063D020, 0x00000002, 0x4062AC35, 0x4063D020, 0x00000002,
-	0x4062AC36, 0x4063D020, 0x00000002, 0x4062AC37, 0x4063D020, 0x00000002,
-	0x4062AC38, 0x4063D020, 0x00000002, 0x4062AC39, 0x4063D020, 0x00000002,
-	0x4062AC3A, 0x4063D020, 0x00000002, 0x4062AC3B, 0x4063D020, 0x00000002,
-	0x4062AC3C, 0x4063D020, 0x00000002, 0x4062AC3D, 0x4063D020, 0x00000002,
-	0x4062AC3E, 0x4063D020, 0x00000002, 0x4062AC3F, 0x4063D020, 0x00000002,
-	0x4062AC40, 0x4063D020, 0x00000002, 0x4062AC41, 0x4063D020, 0x00000002,
-	0x4062AC42, 0x4063D020, 0x00000002, 0x4062AC43, 0x4063D020, 0x00000002,
-	0x4062AC44, 0x4063D020, 0x00000002, 0x4062AC45, 0x4063D020, 0x00000002,
-	0x4062AC46, 0x4063D020, 0x00000002, 0x4062AC47, 0x4063D020, 0x00000002,
-	0x4062AC48, 0x4063D020, 0x00000002, 0x4062AC49,
-	// Block 306, offset 0x4c80
-	0x4063D020, 0x00000002, 0x4062AC4A, 0x4063D020, 0x00000002, 0x4062AC4B,
-	0x4063D020, 0x00000002, 0x4062AC4C, 0x4063D020, 0x00000002, 0x4062AC4D,
-	0x4063D020, 0x00000002, 0x4062AC4E, 0x4063D020, 0x00000002, 0x4062AC4F,
-	0x4063D020, 0x00000002, 0x4062AC50, 0x4063D020, 0x00000002, 0x4062AC51,
-	0x4063D020, 0x00000002, 0x4062AC52, 0x4063D020, 0x00000002, 0x4062AC53,
-	0x4063D020, 0x00000002, 0x4062AC54, 0x4063D020, 0x00000002, 0x4062AC55,
-	0x4063D020, 0x00000002, 0x4062AC56, 0x4063D020, 0x00000002, 0x4062AC57,
-	0x4063D020, 0x00000002, 0x4062AC58, 0x4063D020, 0x00000002, 0x4062AC59,
-	0x4063D020, 0x00000002, 0x4062AC5A, 0x4063D020, 0x00000002, 0x4062AC5B,
-	0x4063D020, 0x00000002, 0x4062AC5C, 0x4063D020, 0x00000002, 0x4062AC5D,
-	0x4063D020, 0x00000002, 0x4062AC5E, 0x4063D020,
-	// Block 307, offset 0x4cc0
-	0x00000002, 0x4062AC5F, 0x4063D020, 0x00000002, 0x4062AC60, 0x4063D020,
-	0x00000002, 0x4062AC61, 0x4063D020, 0x00000002, 0x4062AC62, 0x4063D020,
-	0x00000002, 0x4062AC63, 0x4063D020, 0x00000002, 0x4062AC64, 0x4063D020,
-	0x00000002, 0x4062AC65, 0x4063D020, 0x00000002, 0x4062AC66, 0x4063D020,
-	0x00000002, 0x4062AC67, 0x4063D020, 0x00000002, 0x4062AC68, 0x4063D020,
-	0x00000002, 0x4062AC69, 0x4063D020, 0x00000002, 0x4062AC6A, 0x4063D020,
-	0x00000002, 0x4062AC6B, 0x4063D020, 0x00000002, 0x4062AC6C, 0x4063D020,
-	0x00000002, 0x4062AC6D, 0x4063D020, 0x00000002, 0x4062AC6E, 0x4063D020,
-	0x00000002, 0x4062AC6F, 0x4063D020, 0x00000002, 0x4062AC70, 0x4063D020,
-	0x00000002, 0x4062AC71, 0x4063D020, 0x00000002, 0x4062AC72, 0x4063D020,
-	0x00000002, 0x4062AC73, 0x4063D020, 0x00000002,
-	// Block 308, offset 0x4d00
-	0x4062AC74, 0x4063D020, 0x00000002, 0x4062AC75, 0x4063D020, 0x00000002,
-	0x4062AC76, 0x4063D020, 0x00000002, 0x4062AC77, 0x4063D020, 0x00000002,
-	0x4062AC78, 0x4063D020, 0x00000002, 0x4062AC79, 0x4063D020, 0x00000002,
-	0x4062AC7A, 0x4063D020, 0x00000002, 0x4062AC7B, 0x4063D020, 0x00000002,
-	0x4062AC7C, 0x4063D020, 0x00000002, 0x4062AC7D, 0x4063D020, 0x00000002,
-	0x4062AC7E, 0x4063D020, 0x00000002, 0x4062AC7F, 0x4063D020, 0x00000002,
-	0x4062AC80, 0x4063D020, 0x00000002, 0x4062AC81, 0x4063D020, 0x00000002,
-	0x4062AC82, 0x4063D020, 0x00000002, 0x4062AC83, 0x4063D020, 0x00000002,
-	0x4062AC84, 0x4063D020, 0x00000003, 0x4062AC21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC23,
-	// Block 309, offset 0x4d40
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062AC25, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC26,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC21, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062AE21, 0x4063D020, 0x40646420, 0x00000002, 0x4062B021,
-	0x4063A820, 0x00000002, 0x4062B022, 0x4063A820, 0x00000002, 0x4062B023,
-	0x4063A820, 0x00000002, 0x4062B024, 0x4063A820, 0x00000002, 0x4062B025,
-	0x4063A820, 0x00000002, 0x4062B026, 0x4063A820, 0x00000002, 0x4062B027,
-	0x4063A820, 0x00000002, 0x4062B028, 0x4063A820, 0x00000002, 0x4062B029,
-	0x4063A820, 0x00000002, 0x4062B02A, 0x4063A820, 0x00000002, 0x4062B02B,
-	0x4063A820, 0x00000003, 0x4062B021, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 310, offset 0x4d80
-	0x4062B022, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B023, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B024, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B025, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B026, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B027, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40647220, 0x00000003, 0x4062B022, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B021, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B022, 0x4063A820, 0x40648220, 0x00000003, 0x4062B023, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B024, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B025, 0x4063A820, 0x40648220, 0x00000003, 0x4062B026, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B027, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 311, offset 0x4dc0
-	0x4062B022, 0x4063A820, 0x40648420, 0x00000003, 0x4062B021, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B022, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B023, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063AA20,
-	0x00000002, 0x4062B022, 0x4063AA20, 0x00000002, 0x4062B023, 0x4063AA20,
-	0x00000002, 0x4062B024, 0x4063AA20, 0x00000002, 0x4062B025, 0x4063AA20,
-	0x00000002, 0x4062B026, 0x4063AA20, 0x00000002, 0x4062B027, 0x4063AA20,
-	0x00000002, 0x4062B028, 0x4063AA20, 0x00000002, 0x4062B029, 0x4063AA20,
-	0x00000002, 0x4062B02A, 0x4063AA20, 0x00000002, 0x4062B021, 0x4063B420,
-	0x00000003, 0x4062B021, 0x4063B420, 0x40646420, 0x00000003, 0x4062B021,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062B022, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062B023, 0x4063B420, 0x40646A20,
-	// Block 312, offset 0x4e00
-	0x00000003, 0x4062B024, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B021,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062B022, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062B023, 0x4063B420, 0x40648220, 0x00000003, 0x4062B024,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062B021, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062B022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B023,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062B024, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062B025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B026,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062B021, 0x4063B820, 0x00000002,
-	0x4062B022, 0x4063B820, 0x00000002, 0x4062B023, 0x4063B820, 0x00000002,
-	0x4062B024, 0x4063B820, 0x00000002, 0x4062B025, 0x4063B820, 0x00000002,
-	0x4062B026, 0x4063B820, 0x00000002, 0x4062B027,
-	// Block 313, offset 0x4e40
-	0x4063B820, 0x00000002, 0x4062B028, 0x4063B820, 0x00000002, 0x4062B029,
-	0x4063B820, 0x00000002, 0x4062B02A, 0x4063B820, 0x00000002, 0x4062B02B,
-	0x4063B820, 0x00000002, 0x4062B02C, 0x4063B820, 0x00000003, 0x4062B021,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B022, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B023, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B024,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B025, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B026, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B027,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063BE20, 0x00000002,
-	0x4062B022, 0x4063BE20, 0x00000002, 0x4062B023, 0x4063BE20, 0x00000002,
-	0x4062B021, 0x4063C020, 0x00000002, 0x4062B022, 0x4063C020, 0x00000002,
-	0x4062B023, 0x4063C020, 0x00000002, 0x4062B024,
-	// Block 314, offset 0x4e80
-	0x4063C020, 0x00000002, 0x4062B025, 0x4063C020, 0x00000002, 0x4062B026,
-	0x4063C020, 0x00000002, 0x4062B027, 0x4063C020, 0x00000002, 0x4062B021,
-	0x4063C220, 0x00000002, 0x4062B022, 0x4063C220, 0x00000003, 0x4062B021,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B021, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062B022, 0x4063C220, 0x40647220, 0x00000003, 0x4062B023,
-	0x4063C220, 0x40647220, 0x00000002, 0x4062B021, 0x4063CA20, 0x00000002,
-	0x4062B022, 0x4063CA20, 0x00000002, 0x4062B023, 0x4063CA20, 0x00000002,
-	0x4062B024, 0x4063CA20, 0x00000003, 0x4062B021, 0x4063CA20, 0x40646420,
-	0x00000003, 0x4062B021, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B021,
-	0x4063D020, 0x00000002, 0x4062B022, 0x4063D020, 0x00000002, 0x4062B023,
-	0x4063D020, 0x00000002, 0x4062B024, 0x4063D020,
-	// Block 315, offset 0x4ec0
-	0x00000002, 0x4062B025, 0x4063D020, 0x00000002, 0x4062B026, 0x4063D020,
-	0x00000002, 0x4062B027, 0x4063D020, 0x00000002, 0x4062B028, 0x4063D020,
-	0x00000003, 0x4062B021, 0x4063D020, 0x40646420, 0x00000003, 0x4062B022,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062B023, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062B024, 0x4063D020, 0x40646420, 0x00000002, 0x4062B221,
-	0x4063A820, 0x00000002, 0x4062B222, 0x4063A820, 0x00000002, 0x4062B223,
-	0x4063A820, 0x00000003, 0x4062B221, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B224, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B227, 0x4063A820,
-	// Block 316, offset 0x4f00
-	0x40646A20, 0x00000003, 0x4062B228, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B229, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B22B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B22C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B22E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B22F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B230, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B231, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B232, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B233, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B234, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B235, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B236, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B237, 0x4063A820,
-	// Block 317, offset 0x4f40
-	0x40646A20, 0x00000003, 0x4062B238, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B239, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B23B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B23C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B221, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40647220, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B224, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40647220, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B227, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B228, 0x4063A820, 0x40647220, 0x00000003, 0x4062B229, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B22A, 0x4063A820,
-	// Block 318, offset 0x4f80
-	0x40647220, 0x00000003, 0x4062B221, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40648220, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B224, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40648220, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B227, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B228, 0x4063A820, 0x40648220, 0x00000003, 0x4062B229, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B22A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B22B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B22D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B22E, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B230, 0x4063A820,
-	// Block 319, offset 0x4fc0
-	0x40648220, 0x00000003, 0x4062B231, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B232, 0x4063A820, 0x40648220, 0x00000003, 0x4062B233, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B234, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B235, 0x4063A820, 0x40648220, 0x00000003, 0x4062B236, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B237, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B238, 0x4063A820, 0x40648220, 0x00000003, 0x4062B239, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B23A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B23B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B23C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B23D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B221, 0x4063A820, 0x40648420, 0x00000003, 0x4062B222, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062B223, 0x4063A820,
-	// Block 320, offset 0x5000
-	0x40648420, 0x00000003, 0x4062B224, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40648420, 0x00000003, 0x4062B221, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B222, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B223, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B225, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B226, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B228, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B229, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22A, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B22B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B22C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B22E, 0x4063A820,
-	// Block 321, offset 0x5040
-	0x40648C20, 0x00000003, 0x4062B22F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B230, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B232, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B233, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B235, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B236, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B238, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B239, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23A, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B23B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B23C, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B221, 0x4063AA20,
-	0x00000002, 0x4062B222, 0x4063AA20, 0x00000002,
-	// Block 322, offset 0x5080
-	0x4062B223, 0x4063AA20, 0x00000002, 0x4062B224, 0x4063AA20, 0x00000002,
-	0x4062B225, 0x4063AA20, 0x00000002, 0x4062B226, 0x4063AA20, 0x00000002,
-	0x4062B227, 0x4063AA20, 0x00000002, 0x4062B228, 0x4063AA20, 0x00000002,
-	0x4062B229, 0x4063AA20, 0x00000002, 0x4062B22A, 0x4063AA20, 0x00000002,
-	0x4062B22B, 0x4063AA20, 0x00000002, 0x4062B22C, 0x4063AA20, 0x00000002,
-	0x4062B22D, 0x4063AA20, 0x00000002, 0x4062B22E, 0x4063AA20, 0x00000002,
-	0x4062B22F, 0x4063AA20, 0x00000002, 0x4062B230, 0x4063AA20, 0x00000002,
-	0x4062B231, 0x4063AA20, 0x00000002, 0x4062B232, 0x4063AA20, 0x00000002,
-	0x4062B233, 0x4063AA20, 0x00000002, 0x4062B234, 0x4063AA20, 0x00000002,
-	0x4062B235, 0x4063AA20, 0x00000002, 0x4062B236, 0x4063AA20, 0x00000003,
-	0x4062B221, 0x4063AA20, 0x40646420, 0x00000003,
-	// Block 323, offset 0x50c0
-	0x4062B221, 0x4063B020, 0x40646420, 0x00000003, 0x4062B222, 0x4063B020,
-	0x40646420, 0x00000002, 0x4062B221, 0x4063B820, 0x00000002, 0x4062B222,
-	0x4063B820, 0x00000002, 0x4062B223, 0x4063B820, 0x00000002, 0x4062B224,
-	0x4063B820, 0x00000002, 0x4062B225, 0x4063B820, 0x00000002, 0x4062B226,
-	0x4063B820, 0x00000002, 0x4062B227, 0x4063B820, 0x00000002, 0x4062B228,
-	0x4063B820, 0x00000002, 0x4062B229, 0x4063B820, 0x00000002, 0x4062B22A,
-	0x4063B820, 0x00000002, 0x4062B22B, 0x4063B820, 0x00000002, 0x4062B22C,
-	0x4063B820, 0x00000002, 0x4062B22D, 0x4063B820, 0x00000002, 0x4062B22E,
-	0x4063B820, 0x00000002, 0x4062B22F, 0x4063B820, 0x00000002, 0x4062B230,
-	0x4063B820, 0x00000002, 0x4062B231, 0x4063B820, 0x00000002, 0x4062B232,
-	0x4063B820, 0x00000002, 0x4062B233, 0x4063B820,
-	// Block 324, offset 0x5100
-	0x00000002, 0x4062B234, 0x4063B820, 0x00000002, 0x4062B235, 0x4063B820,
-	0x00000002, 0x4062B236, 0x4063B820, 0x00000002, 0x4062B237, 0x4063B820,
-	0x00000002, 0x4062B238, 0x4063B820, 0x00000002, 0x4062B239, 0x4063B820,
-	0x00000002, 0x4062B23A, 0x4063B820, 0x00000002, 0x4062B23B, 0x4063B820,
-	0x00000002, 0x4062B23C, 0x4063B820, 0x00000002, 0x4062B23D, 0x4063B820,
-	0x00000002, 0x4062B23E, 0x4063B820, 0x00000002, 0x4062B23F, 0x4063B820,
-	0x00000002, 0x4062B240, 0x4063B820, 0x00000002, 0x4062B241, 0x4063B820,
-	0x00000002, 0x4062B242, 0x4063B820, 0x00000002, 0x4062B243, 0x4063B820,
-	0x00000002, 0x4062B244, 0x4063B820, 0x00000002, 0x4062B245, 0x4063B820,
-	0x00000002, 0x4062B246, 0x4063B820, 0x00000002, 0x4062B247, 0x4063B820,
-	0x00000002, 0x4062B248, 0x4063B820, 0x00000002,
-	// Block 325, offset 0x5140
-	0x4062B249, 0x4063B820, 0x00000002, 0x4062B24A, 0x4063B820, 0x00000002,
-	0x4062B24B, 0x4063B820, 0x00000002, 0x4062B24C, 0x4063B820, 0x00000002,
-	0x4062B24D, 0x4063B820, 0x00000002, 0x4062B24E, 0x4063B820, 0x00000002,
-	0x4062B24F, 0x4063B820, 0x00000002, 0x4062B250, 0x4063B820, 0x00000002,
-	0x4062B251, 0x4063B820, 0x00000002, 0x4062B252, 0x4063B820, 0x00000002,
-	0x4062B253, 0x4063B820, 0x00000002, 0x4062B254, 0x4063B820, 0x00000002,
-	0x4062B255, 0x4063B820, 0x00000002, 0x4062B256, 0x4063B820, 0x00000002,
-	0x4062B257, 0x4063B820, 0x00000002, 0x4062B258, 0x4063B820, 0x00000002,
-	0x4062B259, 0x4063B820, 0x00000002, 0x4062B25A, 0x4063B820, 0x00000002,
-	0x4062B25B, 0x4063B820, 0x00000003, 0x4062B221, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B222, 0x4063B820, 0x40646420,
-	// Block 326, offset 0x5180
-	0x00000003, 0x4062B223, 0x4063B820, 0x40646420, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B225, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B226, 0x4063B820, 0x40646420, 0x00000003, 0x4062B227,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B228, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B229, 0x4063B820, 0x40646420, 0x00000003, 0x4062B22A,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B22B, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B22C, 0x4063B820, 0x40646420, 0x00000003, 0x4062B221,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B222, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B223, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B225, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B226, 0x4063B820, 0x40646A20,
-	// Block 327, offset 0x51c0
-	0x00000003, 0x4062B227, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B228,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B229, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B22A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B22B,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B22C, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B22D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B221,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062B222, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062B223, 0x4063B820, 0x40647220, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062B221, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B222, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B223,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B225, 0x4063B820, 0x40648C20,
-	// Block 328, offset 0x5200
-	0x00000003, 0x4062B226, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B227,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B228, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B229, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B22E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B22F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B230,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B232, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B233,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B235, 0x4063B820, 0x40648C20,
-	// Block 329, offset 0x5240
-	0x00000003, 0x4062B236, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B237,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B238, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B239, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B23B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B23C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B23E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B23F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B240,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B241, 0x4063B820, 0x40648C20,
-	0x00000002, 0x4062B221, 0x4063C220, 0x00000002, 0x4062B222, 0x4063C220,
-	0x00000002, 0x4062B223, 0x4063C220, 0x00000002, 0x4062B224, 0x4063C220,
-	0x00000002, 0x4062B225, 0x4063C220, 0x00000002,
-	// Block 330, offset 0x5280
-	0x4062B226, 0x4063C220, 0x00000002, 0x4062B227, 0x4063C220, 0x00000002,
-	0x4062B228, 0x4063C220, 0x00000002, 0x4062B229, 0x4063C220, 0x00000002,
-	0x4062B22A, 0x4063C220, 0x00000002, 0x4062B22B, 0x4063C220, 0x00000002,
-	0x4062B22C, 0x4063C220, 0x00000002, 0x4062B22D, 0x4063C220, 0x00000002,
-	0x4062B22E, 0x4063C220, 0x00000002, 0x4062B22F, 0x4063C220, 0x00000002,
-	0x4062B230, 0x4063C220, 0x00000002, 0x4062B231, 0x4063C220, 0x00000003,
-	0x4062B221, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B222, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062B223, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062B224, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B225, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062B226, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062B227, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 331, offset 0x52c0
-	0x4062B228, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B221, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062B221, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062B221, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B222, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B223, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B224, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B225, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B226, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B227, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B228, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B229, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B22A, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B22C, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B22D, 0x4063CC20, 0x40648C20, 0x00000003,
-	// Block 332, offset 0x5300
-	0x4062B22E, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22F, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B230, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B231, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, 0x4063A820,
-	0x00000002, 0x4062B622, 0x4063A820, 0x00000002, 0x4062B623, 0x4063A820,
-	0x00000002, 0x4062B624, 0x4063A820, 0x00000002, 0x4062B625, 0x4063A820,
-	0x00000002, 0x4062B626, 0x4063A820, 0x00000002, 0x4062B627, 0x4063A820,
-	0x00000002, 0x4062B628, 0x4063A820, 0x00000002, 0x4062B629, 0x4063A820,
-	0x00000002, 0x4062B62A, 0x4063A820, 0x00000002, 0x4062B62B, 0x4063A820,
-	0x00000002, 0x4062B62C, 0x4063A820, 0x00000002, 0x4062B62D, 0x4063A820,
-	0x00000002, 0x4062B62E, 0x4063A820, 0x00000002, 0x4062B62F, 0x4063A820,
-	0x00000002, 0x4062B630, 0x4063A820, 0x00000002,
-	// Block 333, offset 0x5340
-	0x4062B631, 0x4063A820, 0x00000003, 0x4062B621, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40646420, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B624, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B625, 0x4063A820, 0x40646420, 0x00000003, 0x4062B626,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B627, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B628, 0x4063A820, 0x40646420, 0x00000003, 0x4062B629,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B621, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B624, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B625, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B626,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B627,
-	// Block 334, offset 0x5380
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B628, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62D,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B62F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B621,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B622, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B623, 0x4063A820, 0x40647220, 0x00000003, 0x4062B624,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B621, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40648220, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B624,
-	// Block 335, offset 0x53c0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B625, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B626, 0x4063A820, 0x40648220, 0x00000003, 0x4062B627,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B628, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40648220, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40648220, 0x00000003, 0x4062B621,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062B622, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062B623, 0x4063A820, 0x40648420, 0x00000003, 0x4062B624,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062B621, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B624,
-	// Block 336, offset 0x5400
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B625, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B626, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B627,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B628, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40648C20,
-	0x00000002, 0x4062B621, 0x4063AA20, 0x00000002, 0x4062B622, 0x4063AA20,
-	0x00000002, 0x4062B623, 0x4063AA20, 0x00000002, 0x4062B624, 0x4063AA20,
-	0x00000002, 0x4062B625, 0x4063AA20, 0x00000002, 0x4062B626, 0x4063AA20,
-	0x00000003, 0x4062B621, 0x4063AA20, 0x40648C20,
-	// Block 337, offset 0x5440
-	0x00000003, 0x4062B621, 0x4063AC20, 0x40646420, 0x00000003, 0x4062B622,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062B623, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062B621, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B622,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B623, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B624, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B625,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B626, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B627, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B628,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B629, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B62A, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62B,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62C, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B62D, 0x4063AC20, 0x40648C20,
-	// Block 338, offset 0x5480
-	0x00000003, 0x4062B62E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B630, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B631, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B632,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B633, 0x4063AC20, 0x40648C20,
-	0x00000002, 0x4062B621, 0x4063B420, 0x00000002, 0x4062B622, 0x4063B420,
-	0x00000002, 0x4062B623, 0x4063B420, 0x00000002, 0x4062B624, 0x4063B420,
-	0x00000002, 0x4062B625, 0x4063B420, 0x00000002, 0x4062B626, 0x4063B420,
-	0x00000002, 0x4062B627, 0x4063B420, 0x00000002, 0x4062B628, 0x4063B420,
-	0x00000002, 0x4062B629, 0x4063B420, 0x00000002, 0x4062B62A, 0x4063B420,
-	0x00000002, 0x4062B62B, 0x4063B420, 0x00000002, 0x4062B62C, 0x4063B420,
-	0x00000002, 0x4062B62D, 0x4063B420, 0x00000002,
-	// Block 339, offset 0x54c0
-	0x4062B62E, 0x4063B420, 0x00000002, 0x4062B62F, 0x4063B420, 0x00000002,
-	0x4062B630, 0x4063B420, 0x00000002, 0x4062B631, 0x4063B420, 0x00000002,
-	0x4062B632, 0x4063B420, 0x00000002, 0x4062B633, 0x4063B420, 0x00000002,
-	0x4062B634, 0x4063B420, 0x00000002, 0x4062B635, 0x4063B420, 0x00000002,
-	0x4062B636, 0x4063B420, 0x00000002, 0x4062B637, 0x4063B420, 0x00000002,
-	0x4062B638, 0x4063B420, 0x00000002, 0x4062B639, 0x4063B420, 0x00000002,
-	0x4062B63A, 0x4063B420, 0x00000002, 0x4062B63B, 0x4063B420, 0x00000002,
-	0x4062B63C, 0x4063B420, 0x00000002, 0x4062B63D, 0x4063B420, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40646420, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B623, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 340, offset 0x5500
-	0x4062B625, 0x4063B420, 0x40646420, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B627, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40646420, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B62A, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B62B, 0x4063B420, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B62D, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B623, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B625, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B626, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B627, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 341, offset 0x5540
-	0x4062B628, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B62A, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B62B, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B62D, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B62E, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B630, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B631, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B632, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B633, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40647220, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B623, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40647220, 0x00000003,
-	// Block 342, offset 0x5580
-	0x4062B625, 0x4063B420, 0x40647220, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B627, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40647220, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B621, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B622, 0x4063B420, 0x40648220, 0x00000003, 0x4062B623, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062B624, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B625, 0x4063B420, 0x40648220, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062B627, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40648220, 0x00000003, 0x4062B621, 0x4063B420,
-	0x40648420, 0x00000003, 0x4062B622, 0x4063B420, 0x40648420, 0x00000003,
-	0x4062B623, 0x4063B420, 0x40648420, 0x00000003,
-	// Block 343, offset 0x55c0
-	0x4062B621, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B623, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B625, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B626, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B627, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B628, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B629, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B62A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B62C, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B62D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62E, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B62F, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B630, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 344, offset 0x5600
-	0x4062B631, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B632, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B633, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B634, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B635, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B636, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B637, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B638, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B639, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B63A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63B, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B63C, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B63D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63E, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062B621, 0x4063B620, 0x00000002, 0x4062B622,
-	0x4063B620, 0x00000002, 0x4062B623, 0x4063B620,
-	// Block 345, offset 0x5640
-	0x00000002, 0x4062B624, 0x4063B620, 0x00000002, 0x4062B625, 0x4063B620,
-	0x00000002, 0x4062B626, 0x4063B620, 0x00000002, 0x4062B627, 0x4063B620,
-	0x00000002, 0x4062B621, 0x4063B820, 0x00000002, 0x4062B622, 0x4063B820,
-	0x00000002, 0x4062B623, 0x4063B820, 0x00000002, 0x4062B624, 0x4063B820,
-	0x00000002, 0x4062B625, 0x4063B820, 0x00000002, 0x4062B626, 0x4063B820,
-	0x00000002, 0x4062B627, 0x4063B820, 0x00000002, 0x4062B628, 0x4063B820,
-	0x00000002, 0x4062B629, 0x4063B820, 0x00000002, 0x4062B62A, 0x4063B820,
-	0x00000002, 0x4062B62B, 0x4063B820, 0x00000002, 0x4062B62C, 0x4063B820,
-	0x00000002, 0x4062B62D, 0x4063B820, 0x00000002, 0x4062B62E, 0x4063B820,
-	0x00000002, 0x4062B62F, 0x4063B820, 0x00000002, 0x4062B630, 0x4063B820,
-	0x00000002, 0x4062B631, 0x4063B820, 0x00000002,
-	// Block 346, offset 0x5680
-	0x4062B632, 0x4063B820, 0x00000002, 0x4062B633, 0x4063B820, 0x00000002,
-	0x4062B634, 0x4063B820, 0x00000002, 0x4062B635, 0x4063B820, 0x00000002,
-	0x4062B636, 0x4063B820, 0x00000002, 0x4062B637, 0x4063B820, 0x00000002,
-	0x4062B638, 0x4063B820, 0x00000002, 0x4062B639, 0x4063B820, 0x00000002,
-	0x4062B63A, 0x4063B820, 0x00000002, 0x4062B63B, 0x4063B820, 0x00000002,
-	0x4062B63C, 0x4063B820, 0x00000002, 0x4062B63D, 0x4063B820, 0x00000002,
-	0x4062B63E, 0x4063B820, 0x00000002, 0x4062B63F, 0x4063B820, 0x00000003,
-	0x4062B621, 0x4063B820, 0x40646420, 0x00000003, 0x4062B622, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B623, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B624, 0x4063B820, 0x40646420, 0x00000003, 0x4062B625, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B626, 0x4063B820,
-	// Block 347, offset 0x56c0
-	0x40646420, 0x00000003, 0x4062B627, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B628, 0x4063B820, 0x40646420, 0x00000003, 0x4062B629, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B62A, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B62B, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B62D, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B62E, 0x4063B820, 0x40646420, 0x00000003, 0x4062B621, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062B621, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B622, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B623, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B624, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B625, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B626, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B627, 0x4063B820,
-	// Block 348, offset 0x5700
-	0x40648C20, 0x00000003, 0x4062B628, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B629, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B62B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B62C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B62E, 0x4063B820, 0x40648C20, 0x00000002,
-	0x4062B621, 0x4063BE20, 0x00000002, 0x4062B622, 0x4063BE20, 0x00000002,
-	0x4062B623, 0x4063BE20, 0x00000002, 0x4062B624, 0x4063BE20, 0x00000002,
-	0x4062B625, 0x4063BE20, 0x00000002, 0x4062B626, 0x4063BE20, 0x00000002,
-	0x4062B627, 0x4063BE20, 0x00000002, 0x4062B628, 0x4063BE20, 0x00000002,
-	0x4062B629, 0x4063BE20, 0x00000002, 0x4062B62A, 0x4063BE20, 0x00000002,
-	0x4062B62B, 0x4063BE20, 0x00000002, 0x4062B62C,
-	// Block 349, offset 0x5740
-	0x4063BE20, 0x00000002, 0x4062B62D, 0x4063BE20, 0x00000002, 0x4062B62E,
-	0x4063BE20, 0x00000002, 0x4062B62F, 0x4063BE20, 0x00000002, 0x4062B630,
-	0x4063BE20, 0x00000002, 0x4062B631, 0x4063BE20, 0x00000002, 0x4062B632,
-	0x4063BE20, 0x00000002, 0x4062B633, 0x4063BE20, 0x00000002, 0x4062B621,
-	0x4063C020, 0x00000002, 0x4062B622, 0x4063C020, 0x00000002, 0x4062B623,
-	0x4063C020, 0x00000002, 0x4062B624, 0x4063C020, 0x00000002, 0x4062B625,
-	0x4063C020, 0x00000002, 0x4062B626, 0x4063C020, 0x00000002, 0x4062B627,
-	0x4063C020, 0x00000002, 0x4062B628, 0x4063C020, 0x00000002, 0x4062B629,
-	0x4063C020, 0x00000002, 0x4062B62A, 0x4063C020, 0x00000002, 0x4062B62B,
-	0x4063C020, 0x00000002, 0x4062B62C, 0x4063C020, 0x00000002, 0x4062B62D,
-	0x4063C020, 0x00000002, 0x4062B62E, 0x4063C020,
-	// Block 350, offset 0x5780
-	0x00000002, 0x4062B62F, 0x4063C020, 0x00000002, 0x4062B630, 0x4063C020,
-	0x00000002, 0x4062B631, 0x4063C020, 0x00000002, 0x4062B632, 0x4063C020,
-	0x00000002, 0x4062B633, 0x4063C020, 0x00000002, 0x4062B634, 0x4063C020,
-	0x00000002, 0x4062B635, 0x4063C020, 0x00000002, 0x4062B636, 0x4063C020,
-	0x00000002, 0x4062B637, 0x4063C020, 0x00000002, 0x4062B638, 0x4063C020,
-	0x00000003, 0x4062B621, 0x4063C020, 0x40648C20, 0x00000003, 0x4062B622,
-	0x4063C020, 0x40648C20, 0x00000002, 0x4062B621, 0x4063C220, 0x00000002,
-	0x4062B622, 0x4063C220, 0x00000002, 0x4062B623, 0x4063C220, 0x00000002,
-	0x4062B624, 0x4063C220, 0x00000002, 0x4062B625, 0x4063C220, 0x00000002,
-	0x4062B626, 0x4063C220, 0x00000002, 0x4062B627, 0x4063C220, 0x00000002,
-	0x4062B628, 0x4063C220, 0x00000002, 0x4062B629,
-	// Block 351, offset 0x57c0
-	0x4063C220, 0x00000002, 0x4062B62A, 0x4063C220, 0x00000002, 0x4062B62B,
-	0x4063C220, 0x00000002, 0x4062B62C, 0x4063C220, 0x00000002, 0x4062B62D,
-	0x4063C220, 0x00000002, 0x4062B62E, 0x4063C220, 0x00000002, 0x4062B62F,
-	0x4063C220, 0x00000002, 0x4062B630, 0x4063C220, 0x00000002, 0x4062B631,
-	0x4063C220, 0x00000002, 0x4062B632, 0x4063C220, 0x00000002, 0x4062B633,
-	0x4063C220, 0x00000002, 0x4062B634, 0x4063C220, 0x00000002, 0x4062B621,
-	0x4063CA20, 0x00000002, 0x4062B622, 0x4063CA20, 0x00000002, 0x4062B623,
-	0x4063CA20, 0x00000002, 0x4062B624, 0x4063CA20, 0x00000002, 0x4062B625,
-	0x4063CA20, 0x00000002, 0x4062B626, 0x4063CA20, 0x00000002, 0x4062B627,
-	0x4063CA20, 0x00000002, 0x4062B628, 0x4063CA20, 0x00000002, 0x4062B629,
-	0x4063CA20, 0x00000002, 0x4062B62A, 0x4063CA20,
-	// Block 352, offset 0x5800
-	0x00000002, 0x4062B62B, 0x4063CA20, 0x00000002, 0x4062B62C, 0x4063CA20,
-	0x00000002, 0x4062B62D, 0x4063CA20, 0x00000002, 0x4062B62E, 0x4063CA20,
-	0x00000002, 0x4062B62F, 0x4063CA20, 0x00000002, 0x4062B630, 0x4063CA20,
-	0x00000002, 0x4062B631, 0x4063CA20, 0x00000002, 0x4062B632, 0x4063CA20,
-	0x00000002, 0x4062B633, 0x4063CA20, 0x00000003, 0x4062B621, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062B622, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062B623, 0x4063CA20, 0x40646420, 0x00000003, 0x4062B624, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062B621, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062B622, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B623, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062B624, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062B625, 0x4063CA20, 0x40646A20, 0x00000003,
-	// Block 353, offset 0x5840
-	0x4062B626, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B627, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062B621, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062B622, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B623, 0x4063CA20,
-	0x40647220, 0x00000003, 0x4062B624, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062B625, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B621, 0x4063CA20,
-	0x40648C20, 0x00000003, 0x4062B622, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062B623, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062B622, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062B622, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40648220, 0x00000003,
-	// Block 354, offset 0x5880
-	0x4062B624, 0x4063CC20, 0x40648220, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B622, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B624, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B625, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B626, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B627, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B628, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062B621, 0x4063D020, 0x00000002, 0x4062B622, 0x4063D020, 0x00000002,
-	0x4062B623, 0x4063D020, 0x00000002, 0x4062B624, 0x4063D020, 0x00000002,
-	0x4062B625, 0x4063D020, 0x00000002, 0x4062B626, 0x4063D020, 0x00000002,
-	0x4062B627, 0x4063D020, 0x00000002, 0x4062B628, 0x4063D020, 0x00000002,
-	0x4062B629, 0x4063D020, 0x00000002, 0x4062B62A,
-	// Block 355, offset 0x58c0
-	0x4063D020, 0x00000002, 0x4062B62B, 0x4063D020, 0x00000002, 0x4062B62C,
-	0x4063D020, 0x00000002, 0x4062B62D, 0x4063D020, 0x00000002, 0x4062B62E,
-	0x4063D020, 0x00000002, 0x4062B62F, 0x4063D020, 0x00000002, 0x4062B630,
-	0x4063D020, 0x00000002, 0x4062B631, 0x4063D020, 0x00000002, 0x4062B632,
-	0x4063D020, 0x00000002, 0x4062B633, 0x4063D020, 0x00000002, 0x4062B634,
-	0x4063D020, 0x00000002, 0x4062B635, 0x4063D020, 0x00000002, 0x4062B636,
-	0x4063D020, 0x00000002, 0x4062B637, 0x4063D020, 0x00000002, 0x4062B638,
-	0x4063D020, 0x00000002, 0x4062B639, 0x4063D020, 0x00000002, 0x4062B63A,
-	0x4063D020, 0x00000002, 0x4062B63B, 0x4063D020, 0x00000002, 0x4062B63C,
-	0x4063D020, 0x00000002, 0x4062B63D, 0x4063D020, 0x00000002, 0x4062B63E,
-	0x4063D020, 0x00000002, 0x4062B63F, 0x4063D020,
-	// Block 356, offset 0x5900
-	0x00000002, 0x4062B640, 0x4063D020, 0x00000002, 0x4062B641, 0x4063D020,
-	0x00000002, 0x4062B642, 0x4063D020, 0x00000002, 0x4062B643, 0x4063D020,
-	0x00000002, 0x4062B644, 0x4063D020, 0x00000002, 0x4062B645, 0x4063D020,
-	0x00000002, 0x4062B646, 0x4063D020, 0x00000002, 0x4062B647, 0x4063D020,
-	0x00000003, 0x4062B621, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B622,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B623, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B624, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B625,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B626, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B627, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B628,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B629, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B62A, 0x4063D020, 0x40646A20,
-	// Block 357, offset 0x5940
-	0x00000003, 0x4062B62B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62C,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B62D, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B62E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62F,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B630, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B631, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B632,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B633, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B634, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B635,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B621, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062B622, 0x4063D020, 0x40648220, 0x00000003, 0x4062B623,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062B624, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062B625, 0x4063D020, 0x40648220,
-	// Block 358, offset 0x5980
-	0x00000003, 0x4062B626, 0x4063D020, 0x40648220, 0x00000003, 0x4062B621,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062B622, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062B623, 0x4063D020, 0x40648420, 0x00000003, 0x4062B624,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062B625, 0x4063D020, 0x40648420,
-	0x00000002, 0x4062B821, 0x4063A820, 0x00000002, 0x4062B822, 0x4063A820,
-	0x00000002, 0x4062B823, 0x4063A820, 0x00000002, 0x4062B824, 0x4063A820,
-	0x00000002, 0x4062B825, 0x4063A820, 0x00000002, 0x4062B826, 0x4063A820,
-	0x00000002, 0x4062B827, 0x4063A820, 0x00000002, 0x4062B828, 0x4063A820,
-	0x00000002, 0x4062B829, 0x4063A820, 0x00000002, 0x4062B82A, 0x4063A820,
-	0x00000002, 0x4062B82B, 0x4063A820, 0x00000002, 0x4062B82C, 0x4063A820,
-	0x00000002, 0x4062B82D, 0x4063A820, 0x00000002,
-	// Block 359, offset 0x59c0
-	0x4062B82E, 0x4063A820, 0x00000003, 0x4062B821, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B822, 0x4063A820, 0x40646420, 0x00000003, 0x4062B823,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B824, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B825, 0x4063A820, 0x40646420, 0x00000003, 0x4062B826,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B827, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B828, 0x4063A820, 0x40646420, 0x00000003, 0x4062B821,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B822, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B823, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B824,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B825, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B826, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B827,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B828,
-	// Block 360, offset 0x5a00
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B829, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B82A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82B,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B82C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B82D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82E,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B830, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B831,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B832, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B833, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B834,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B835, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B836, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B837,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B838,
-	// Block 361, offset 0x5a40
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B839, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B83A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B83B,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B83C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B821, 0x4063A820, 0x40647220, 0x00000003, 0x4062B822,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B823, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B824, 0x4063A820, 0x40647220, 0x00000003, 0x4062B825,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B826, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B827, 0x4063A820, 0x40647220, 0x00000003, 0x4062B828,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B829, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B821, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B822,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B823,
-	// Block 362, offset 0x5a80
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B825, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B826,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B827, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B828, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B829,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B82B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82C,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B82E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82F,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B830, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B831, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B832,
-	0x4063A820, 0x40648C20, 0x00000002, 0x4062B821,
-	// Block 363, offset 0x5ac0
-	0x4063AA20, 0x00000002, 0x4062B822, 0x4063AA20, 0x00000002, 0x4062B823,
-	0x4063AA20, 0x00000002, 0x4062B824, 0x4063AA20, 0x00000002, 0x4062B825,
-	0x4063AA20, 0x00000002, 0x4062B826, 0x4063AA20, 0x00000002, 0x4062B827,
-	0x4063AA20, 0x00000002, 0x4062B828, 0x4063AA20, 0x00000002, 0x4062B829,
-	0x4063AA20, 0x00000002, 0x4062B82A, 0x4063AA20, 0x00000002, 0x4062B82B,
-	0x4063AA20, 0x00000002, 0x4062B82C, 0x4063AA20, 0x00000002, 0x4062B82D,
-	0x4063AA20, 0x00000002, 0x4062B82E, 0x4063AA20, 0x00000002, 0x4062B82F,
-	0x4063AA20, 0x00000002, 0x4062B830, 0x4063AA20, 0x00000002, 0x4062B831,
-	0x4063AA20, 0x00000002, 0x4062B832, 0x4063AA20, 0x00000002, 0x4062B833,
-	0x4063AA20, 0x00000002, 0x4062B834, 0x4063AA20, 0x00000002, 0x4062B835,
-	0x4063AA20, 0x00000002, 0x4062B836, 0x4063AA20,
-	// Block 364, offset 0x5b00
-	0x00000002, 0x4062B837, 0x4063AA20, 0x00000003, 0x4062B821, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B822, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B823, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B824, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B825, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B826, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B827, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B828, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B821, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B822, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B823, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B824, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B825, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B826, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B827, 0x4063AA20, 0x40648C20, 0x00000003,
-	// Block 365, offset 0x5b40
-	0x4062B828, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B829, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B82A, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B821, 0x4063B420, 0x40646420, 0x00000003, 0x4062B822, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B823, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B824, 0x4063B420, 0x40646420, 0x00000003, 0x4062B821, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B822, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B823, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B824, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B825, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B826, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B827, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B828, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B829, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 366, offset 0x5b80
-	0x4062B82A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B82C, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B82D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B82F, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B830, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B821, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B822, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B823, 0x4063B420, 0x40647220, 0x00000003, 0x4062B824, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B821, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B822, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B823, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B824, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B825, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 367, offset 0x5bc0
-	0x4062B826, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B828, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B829, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B82B, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B82C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B82E, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B82F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B830, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062B821, 0x4063B620, 0x00000002, 0x4062B821,
-	0x4063B820, 0x00000002, 0x4062B822, 0x4063B820, 0x00000002, 0x4062B823,
-	0x4063B820, 0x00000002, 0x4062B824, 0x4063B820, 0x00000002, 0x4062B825,
-	0x4063B820, 0x00000002, 0x4062B826, 0x4063B820,
-	// Block 368, offset 0x5c00
-	0x00000002, 0x4062B827, 0x4063B820, 0x00000002, 0x4062B828, 0x4063B820,
-	0x00000002, 0x4062B829, 0x4063B820, 0x00000002, 0x4062B82A, 0x4063B820,
-	0x00000002, 0x4062B82B, 0x4063B820, 0x00000002, 0x4062B82C, 0x4063B820,
-	0x00000002, 0x4062B82D, 0x4063B820, 0x00000002, 0x4062B82E, 0x4063B820,
-	0x00000002, 0x4062B82F, 0x4063B820, 0x00000002, 0x4062B830, 0x4063B820,
-	0x00000002, 0x4062B831, 0x4063B820, 0x00000002, 0x4062B832, 0x4063B820,
-	0x00000002, 0x4062B833, 0x4063B820, 0x00000002, 0x4062B834, 0x4063B820,
-	0x00000002, 0x4062B835, 0x4063B820, 0x00000002, 0x4062B836, 0x4063B820,
-	0x00000002, 0x4062B837, 0x4063B820, 0x00000002, 0x4062B838, 0x4063B820,
-	0x00000002, 0x4062B839, 0x4063B820, 0x00000002, 0x4062B83A, 0x4063B820,
-	0x00000002, 0x4062B83B, 0x4063B820, 0x00000002,
-	// Block 369, offset 0x5c40
-	0x4062B83C, 0x4063B820, 0x00000002, 0x4062B83D, 0x4063B820, 0x00000002,
-	0x4062B83E, 0x4063B820, 0x00000002, 0x4062B83F, 0x4063B820, 0x00000002,
-	0x4062B840, 0x4063B820, 0x00000002, 0x4062B841, 0x4063B820, 0x00000002,
-	0x4062B842, 0x4063B820, 0x00000002, 0x4062B843, 0x4063B820, 0x00000002,
-	0x4062B844, 0x4063B820, 0x00000002, 0x4062B845, 0x4063B820, 0x00000002,
-	0x4062B846, 0x4063B820, 0x00000002, 0x4062B847, 0x4063B820, 0x00000003,
-	0x4062B821, 0x4063B820, 0x40646420, 0x00000003, 0x4062B822, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B823, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B824, 0x4063B820, 0x40646420, 0x00000003, 0x4062B825, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B826, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B827, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 370, offset 0x5c80
-	0x4062B828, 0x4063B820, 0x40646420, 0x00000003, 0x4062B829, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B821, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062B822, 0x4063B820, 0x40647220, 0x00000003, 0x4062B821, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B822, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B823, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B825, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B826, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B828, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B829, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B82B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B82C, 0x4063B820, 0x40648C20, 0x00000003,
-	// Block 371, offset 0x5cc0
-	0x4062B82D, 0x4063B820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063C020,
-	0x00000002, 0x4062B822, 0x4063C020, 0x00000002, 0x4062B823, 0x4063C020,
-	0x00000002, 0x4062B824, 0x4063C020, 0x00000002, 0x4062B825, 0x4063C020,
-	0x00000002, 0x4062B826, 0x4063C020, 0x00000002, 0x4062B827, 0x4063C020,
-	0x00000002, 0x4062B828, 0x4063C020, 0x00000002, 0x4062B829, 0x4063C020,
-	0x00000002, 0x4062B82A, 0x4063C020, 0x00000002, 0x4062B82B, 0x4063C020,
-	0x00000002, 0x4062B82C, 0x4063C020, 0x00000002, 0x4062B82D, 0x4063C020,
-	0x00000002, 0x4062B82E, 0x4063C020, 0x00000002, 0x4062B82F, 0x4063C020,
-	0x00000002, 0x4062B830, 0x4063C020, 0x00000002, 0x4062B821, 0x4063C220,
-	0x00000002, 0x4062B822, 0x4063C220, 0x00000002, 0x4062B823, 0x4063C220,
-	0x00000002, 0x4062B824, 0x4063C220, 0x00000002,
-	// Block 372, offset 0x5d00
-	0x4062B825, 0x4063C220, 0x00000002, 0x4062B826, 0x4063C220, 0x00000002,
-	0x4062B827, 0x4063C220, 0x00000002, 0x4062B828, 0x4063C220, 0x00000002,
-	0x4062B829, 0x4063C220, 0x00000002, 0x4062B82A, 0x4063C220, 0x00000002,
-	0x4062B82B, 0x4063C220, 0x00000002, 0x4062B82C, 0x4063C220, 0x00000002,
-	0x4062B82D, 0x4063C220, 0x00000002, 0x4062B82E, 0x4063C220, 0x00000002,
-	0x4062B82F, 0x4063C220, 0x00000002, 0x4062B830, 0x4063C220, 0x00000002,
-	0x4062B831, 0x4063C220, 0x00000002, 0x4062B832, 0x4063C220, 0x00000002,
-	0x4062B833, 0x4063C220, 0x00000002, 0x4062B834, 0x4063C220, 0x00000002,
-	0x4062B835, 0x4063C220, 0x00000002, 0x4062B836, 0x4063C220, 0x00000002,
-	0x4062B837, 0x4063C220, 0x00000002, 0x4062B838, 0x4063C220, 0x00000002,
-	0x4062B839, 0x4063C220, 0x00000002, 0x4062B83A,
-	// Block 373, offset 0x5d40
-	0x4063C220, 0x00000002, 0x4062B83B, 0x4063C220, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062B822, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40646420, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B822, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B824,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B825, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B826, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B827,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B828, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B829, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82A,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B82C, 0x4063C220, 0x40646A20,
-	// Block 374, offset 0x5d80
-	0x00000003, 0x4062B82D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82E,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B830, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B831,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B832, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B833, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062B822, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40647220, 0x00000002, 0x4062B821,
-	0x4063D020, 0x00000002, 0x4062B822, 0x4063D020, 0x00000002, 0x4062B823,
-	0x4063D020, 0x00000002, 0x4062B824, 0x4063D020, 0x00000002, 0x4062B825,
-	0x4063D020, 0x00000002, 0x4062B826, 0x4063D020, 0x00000002, 0x4062B827,
-	0x4063D020, 0x00000002, 0x4062B828, 0x4063D020,
-	// Block 375, offset 0x5dc0
-	0x00000002, 0x4062B829, 0x4063D020, 0x00000002, 0x4062B82A, 0x4063D020,
-	0x00000002, 0x4062B82B, 0x4063D020, 0x00000002, 0x4062B82C, 0x4063D020,
-	0x00000002, 0x4062B82D, 0x4063D020, 0x00000002, 0x4062B82E, 0x4063D020,
-	0x00000002, 0x4062B82F, 0x4063D020, 0x00000002, 0x4062B830, 0x4063D020,
-	0x00000002, 0x4062B831, 0x4063D020, 0x00000002, 0x4062B832, 0x4063D020,
-	0x00000002, 0x4062B833, 0x4063D020, 0x00000002, 0x4062B834, 0x4063D020,
-	0x00000002, 0x4062B835, 0x4063D020, 0x00000002, 0x4062B836, 0x4063D020,
-	0x00000002, 0x4062B837, 0x4063D020, 0x00000002, 0x4062B838, 0x4063D020,
-	0x00000002, 0x4062B839, 0x4063D020, 0x00000002, 0x4062B83A, 0x4063D020,
-	0x00000002, 0x4062B83B, 0x4063D020, 0x00000002, 0x4062B83C, 0x4063D020,
-	0x00000002, 0x4062B83D, 0x4063D020, 0x00000002,
-	// Block 376, offset 0x5e00
-	0x4062B83E, 0x4063D020, 0x00000002, 0x4062B83F, 0x4063D020, 0x00000002,
-	0x4062B840, 0x4063D020, 0x00000002, 0x4062B841, 0x4063D020, 0x00000003,
-	0x4062B821, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B822, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B823, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B824, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B825, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B826, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B827, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B828, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B829, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B82A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B82C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B82D, 0x4063D020, 0x40646A20, 0x00000003,
-	// Block 377, offset 0x5e40
-	0x4062B82E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B830, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B831, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B832, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B833, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B834, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B835, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B836, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B837, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B821, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062B822, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062B823, 0x4063D020, 0x40647220, 0x00000003, 0x4062B824, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062B825, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 378, offset 0x5e80
-	0x4062BA22, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA25, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA27, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA28, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA30, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA31, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 379, offset 0x5ec0
-	0x4062BA32, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA34, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA35, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA37, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA38, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA28, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 380, offset 0x5f00
-	0x4062BA29, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA2B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA31, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA32, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA33, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA34, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA35, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA37, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA38, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 381, offset 0x5f40
-	0x4062BA39, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA3B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA3C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA3E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA3F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA40, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA41, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA22, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA23, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA24, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA25, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA26, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA27, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 382, offset 0x5f80
-	0x4062BA28, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA30, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA23, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA24, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA25, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA26, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA27, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 383, offset 0x5fc0
-	0x4062BA28, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA30, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA31, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA32, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA33, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA34, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA35, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA36, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA37, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 384, offset 0x6000
-	0x4062BA38, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA3A, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA3B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA3D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA3E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA40, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA41, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA42, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA43, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA44, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA45, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA46, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA47, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 385, offset 0x6040
-	0x4062BA48, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA49, 0x4063A820,
-	0x40648C20, 0x00000002, 0x4062BA21, 0x4063AA20, 0x00000002, 0x4062BA22,
-	0x4063AA20, 0x00000002, 0x4062BA23, 0x4063AA20, 0x00000002, 0x4062BA24,
-	0x4063AA20, 0x00000002, 0x4062BA25, 0x4063AA20, 0x00000002, 0x4062BA26,
-	0x4063AA20, 0x00000002, 0x4062BA27, 0x4063AA20, 0x00000002, 0x4062BA28,
-	0x4063AA20, 0x00000002, 0x4062BA29, 0x4063AA20, 0x00000002, 0x4062BA2A,
-	0x4063AA20, 0x00000002, 0x4062BA2B, 0x4063AA20, 0x00000002, 0x4062BA2C,
-	0x4063AA20, 0x00000002, 0x4062BA2D, 0x4063AA20, 0x00000002, 0x4062BA2E,
-	0x4063AA20, 0x00000002, 0x4062BA2F, 0x4063AA20, 0x00000002, 0x4062BA30,
-	0x4063AA20, 0x00000002, 0x4062BA31, 0x4063AA20, 0x00000002, 0x4062BA32,
-	0x4063AA20, 0x00000002, 0x4062BA33, 0x4063AA20,
-	// Block 386, offset 0x6080
-	0x00000002, 0x4062BA34, 0x4063AA20, 0x00000002, 0x4062BA35, 0x4063AA20,
-	0x00000002, 0x4062BA36, 0x4063AA20, 0x00000002, 0x4062BA37, 0x4063AA20,
-	0x00000002, 0x4062BA38, 0x4063AA20, 0x00000003, 0x4062BA21, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA22, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA23, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA24, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA25, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA26, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA27, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA28, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA29, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA22, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA23, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 387, offset 0x60c0
-	0x4062BA24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA2C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA2D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA21, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BA22, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BA24, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BA25, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 388, offset 0x6100
-	0x4062BA26, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA22, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA23, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA24, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA25, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA26, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA27, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA28, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA29, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2A, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA2B, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA2C, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BA22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BA21, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 389, offset 0x6140
-	0x4062BA22, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA24, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA27, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA28, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA2A, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA2B, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA2D, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA2E, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA30, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA31, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 390, offset 0x6180
-	0x4062BA21, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA23, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA24, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA2C, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA2D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA2F, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063B420, 0x40647220, 0x00000003,
-	// Block 391, offset 0x61c0
-	0x4062BA22, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062BA24, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062BA21, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA22, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA24, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA27, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA28, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA2A, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA2B, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 392, offset 0x6200
-	0x4062BA2C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA2F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA30, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA31, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA32, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA34, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA35, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA36, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA37, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA38, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062BA21, 0x4063B820, 0x00000002, 0x4062BA22,
-	0x4063B820, 0x00000002, 0x4062BA23, 0x4063B820,
-	// Block 393, offset 0x6240
-	0x00000002, 0x4062BA24, 0x4063B820, 0x00000002, 0x4062BA25, 0x4063B820,
-	0x00000002, 0x4062BA26, 0x4063B820, 0x00000002, 0x4062BA27, 0x4063B820,
-	0x00000002, 0x4062BA28, 0x4063B820, 0x00000002, 0x4062BA29, 0x4063B820,
-	0x00000002, 0x4062BA2A, 0x4063B820, 0x00000002, 0x4062BA2B, 0x4063B820,
-	0x00000002, 0x4062BA2C, 0x4063B820, 0x00000002, 0x4062BA2D, 0x4063B820,
-	0x00000002, 0x4062BA2E, 0x4063B820, 0x00000002, 0x4062BA2F, 0x4063B820,
-	0x00000002, 0x4062BA30, 0x4063B820, 0x00000002, 0x4062BA31, 0x4063B820,
-	0x00000002, 0x4062BA32, 0x4063B820, 0x00000002, 0x4062BA33, 0x4063B820,
-	0x00000002, 0x4062BA34, 0x4063B820, 0x00000002, 0x4062BA35, 0x4063B820,
-	0x00000002, 0x4062BA36, 0x4063B820, 0x00000002, 0x4062BA37, 0x4063B820,
-	0x00000003, 0x4062BA21, 0x4063B820, 0x40646420,
-	// Block 394, offset 0x6280
-	0x00000003, 0x4062BA22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA23,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA24, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA26,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA27, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA29,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA2A, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2C,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA2D, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA2E, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2F,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA30, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA31, 0x4063B820, 0x40646420,
-	// Block 395, offset 0x62c0
-	0x00000003, 0x4062BA32, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA33,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA34, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA35, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA36,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA37, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA38, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA39,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA3A, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BA21,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA23,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA24, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA25, 0x4063B820, 0x40648C20,
-	// Block 396, offset 0x6300
-	0x00000003, 0x4062BA26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA27,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA28, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA30,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA31, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA33,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA34, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA35, 0x4063B820, 0x40648C20,
-	// Block 397, offset 0x6340
-	0x00000003, 0x4062BA36, 0x4063B820, 0x40648C20, 0x00000002, 0x4062BA21,
-	0x4063C220, 0x00000002, 0x4062BA22, 0x4063C220, 0x00000002, 0x4062BA23,
-	0x4063C220, 0x00000002, 0x4062BA24, 0x4063C220, 0x00000002, 0x4062BA25,
-	0x4063C220, 0x00000002, 0x4062BA26, 0x4063C220, 0x00000002, 0x4062BA27,
-	0x4063C220, 0x00000002, 0x4062BA28, 0x4063C220, 0x00000002, 0x4062BA29,
-	0x4063C220, 0x00000002, 0x4062BA2A, 0x4063C220, 0x00000002, 0x4062BA2B,
-	0x4063C220, 0x00000002, 0x4062BA2C, 0x4063C220, 0x00000002, 0x4062BA2D,
-	0x4063C220, 0x00000002, 0x4062BA2E, 0x4063C220, 0x00000002, 0x4062BA2F,
-	0x4063C220, 0x00000002, 0x4062BA30, 0x4063C220, 0x00000002, 0x4062BA31,
-	0x4063C220, 0x00000002, 0x4062BA32, 0x4063C220, 0x00000002, 0x4062BA33,
-	0x4063C220, 0x00000002, 0x4062BA34, 0x4063C220,
-	// Block 398, offset 0x6380
-	0x00000002, 0x4062BA35, 0x4063C220, 0x00000002, 0x4062BA36, 0x4063C220,
-	0x00000002, 0x4062BA37, 0x4063C220, 0x00000002, 0x4062BA38, 0x4063C220,
-	0x00000002, 0x4062BA39, 0x4063C220, 0x00000002, 0x4062BA3A, 0x4063C220,
-	0x00000002, 0x4062BA3B, 0x4063C220, 0x00000002, 0x4062BA3C, 0x4063C220,
-	0x00000002, 0x4062BA3D, 0x4063C220, 0x00000002, 0x4062BA3E, 0x4063C220,
-	0x00000002, 0x4062BA3F, 0x4063C220, 0x00000002, 0x4062BA40, 0x4063C220,
-	0x00000002, 0x4062BA41, 0x4063C220, 0x00000002, 0x4062BA42, 0x4063C220,
-	0x00000002, 0x4062BA43, 0x4063C220, 0x00000002, 0x4062BA44, 0x4063C220,
-	0x00000002, 0x4062BA45, 0x4063C220, 0x00000002, 0x4062BA46, 0x4063C220,
-	0x00000002, 0x4062BA47, 0x4063C220, 0x00000002, 0x4062BA48, 0x4063C220,
-	0x00000002, 0x4062BA49, 0x4063C220, 0x00000002,
-	// Block 399, offset 0x63c0
-	0x4062BA4A, 0x4063C220, 0x00000002, 0x4062BA4B, 0x4063C220, 0x00000002,
-	0x4062BA4C, 0x4063C220, 0x00000002, 0x4062BA4D, 0x4063C220, 0x00000002,
-	0x4062BA4E, 0x4063C220, 0x00000002, 0x4062BA4F, 0x4063C220, 0x00000002,
-	0x4062BA50, 0x4063C220, 0x00000002, 0x4062BA51, 0x4063C220, 0x00000002,
-	0x4062BA52, 0x4063C220, 0x00000002, 0x4062BA53, 0x4063C220, 0x00000002,
-	0x4062BA54, 0x4063C220, 0x00000002, 0x4062BA55, 0x4063C220, 0x00000002,
-	0x4062BA56, 0x4063C220, 0x00000002, 0x4062BA57, 0x4063C220, 0x00000002,
-	0x4062BA58, 0x4063C220, 0x00000002, 0x4062BA59, 0x4063C220, 0x00000002,
-	0x4062BA5A, 0x4063C220, 0x00000002, 0x4062BA5B, 0x4063C220, 0x00000002,
-	0x4062BA5C, 0x4063C220, 0x00000002, 0x4062BA5D, 0x4063C220, 0x00000002,
-	0x4062BA5E, 0x4063C220, 0x00000002, 0x4062BA5F,
-	// Block 400, offset 0x6400
-	0x4063C220, 0x00000002, 0x4062BA60, 0x4063C220, 0x00000002, 0x4062BA61,
-	0x4063C220, 0x00000002, 0x4062BA62, 0x4063C220, 0x00000002, 0x4062BA63,
-	0x4063C220, 0x00000002, 0x4062BA64, 0x4063C220, 0x00000002, 0x4062BA65,
-	0x4063C220, 0x00000003, 0x4062BA21, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062BA21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA23, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 401, offset 0x6440
-	0x4062BA2B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA2D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA30, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA32, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA33, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA35, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA36, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA38, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA39, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA3A, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 402, offset 0x6480
-	0x4062BA3B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA3D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA40, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA42, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA43, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA45, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA46, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA22, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA23, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA24, 0x4063C220, 0x40647220, 0x00000003,
-	// Block 403, offset 0x64c0
-	0x4062BA25, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA26, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA27, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA28, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA29, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA2A, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA2B, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA21, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062BA24, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062BA27, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA28, 0x4063C220, 0x40648C20, 0x00000003,
-	// Block 404, offset 0x6500
-	0x4062BA29, 0x4063C220, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063D020,
-	0x00000002, 0x4062BA22, 0x4063D020, 0x00000002, 0x4062BA23, 0x4063D020,
-	0x00000002, 0x4062BA24, 0x4063D020, 0x00000002, 0x4062BA25, 0x4063D020,
-	0x00000002, 0x4062BA26, 0x4063D020, 0x00000002, 0x4062BA27, 0x4063D020,
-	0x00000002, 0x4062BA28, 0x4063D020, 0x00000002, 0x4062BA29, 0x4063D020,
-	0x00000002, 0x4062BA2A, 0x4063D020, 0x00000002, 0x4062BA2B, 0x4063D020,
-	0x00000002, 0x4062BA2C, 0x4063D020, 0x00000002, 0x4062BA2D, 0x4063D020,
-	0x00000002, 0x4062BA2E, 0x4063D020, 0x00000002, 0x4062BA2F, 0x4063D020,
-	0x00000002, 0x4062BA30, 0x4063D020, 0x00000002, 0x4062BA31, 0x4063D020,
-	0x00000002, 0x4062BA32, 0x4063D020, 0x00000002, 0x4062BA33, 0x4063D020,
-	0x00000002, 0x4062BA34, 0x4063D020, 0x00000002,
-	// Block 405, offset 0x6540
-	0x4062BA35, 0x4063D020, 0x00000002, 0x4062BA36, 0x4063D020, 0x00000002,
-	0x4062BA37, 0x4063D020, 0x00000002, 0x4062BA38, 0x4063D020, 0x00000002,
-	0x4062BA39, 0x4063D020, 0x00000002, 0x4062BA3A, 0x4063D020, 0x00000002,
-	0x4062BA3B, 0x4063D020, 0x00000002, 0x4062BA3C, 0x4063D020, 0x00000002,
-	0x4062BA3D, 0x4063D020, 0x00000002, 0x4062BA3E, 0x4063D020, 0x00000002,
-	0x4062BA3F, 0x4063D020, 0x00000002, 0x4062BA40, 0x4063D020, 0x00000002,
-	0x4062BA41, 0x4063D020, 0x00000002, 0x4062BA42, 0x4063D020, 0x00000002,
-	0x4062BA43, 0x4063D020, 0x00000002, 0x4062BA44, 0x4063D020, 0x00000002,
-	0x4062BA45, 0x4063D020, 0x00000002, 0x4062BA46, 0x4063D020, 0x00000002,
-	0x4062BA47, 0x4063D020, 0x00000002, 0x4062BA48, 0x4063D020, 0x00000002,
-	0x4062BA49, 0x4063D020, 0x00000002, 0x4062BA4A,
-	// Block 406, offset 0x6580
-	0x4063D020, 0x00000002, 0x4062BA4B, 0x4063D020, 0x00000002, 0x4062BA4C,
-	0x4063D020, 0x00000002, 0x4062BA4D, 0x4063D020, 0x00000002, 0x4062BA4E,
-	0x4063D020, 0x00000002, 0x4062BA4F, 0x4063D020, 0x00000002, 0x4062BA50,
-	0x4063D020, 0x00000002, 0x4062BA51, 0x4063D020, 0x00000002, 0x4062BA52,
-	0x4063D020, 0x00000002, 0x4062BA53, 0x4063D020, 0x00000002, 0x4062BA54,
-	0x4063D020, 0x00000002, 0x4062BA55, 0x4063D020, 0x00000002, 0x4062BA56,
-	0x4063D020, 0x00000002, 0x4062BA57, 0x4063D020, 0x00000002, 0x4062BA58,
-	0x4063D020, 0x00000002, 0x4062BA59, 0x4063D020, 0x00000002, 0x4062BA5A,
-	0x4063D020, 0x00000002, 0x4062BA5B, 0x4063D020, 0x00000002, 0x4062BA5C,
-	0x4063D020, 0x00000002, 0x4062BA5D, 0x4063D020, 0x00000002, 0x4062BA5E,
-	0x4063D020, 0x00000002, 0x4062BA5F, 0x4063D020,
-	// Block 407, offset 0x65c0
-	0x00000002, 0x4062BA60, 0x4063D020, 0x00000002, 0x4062BA61, 0x4063D020,
-	0x00000002, 0x4062BA62, 0x4063D020, 0x00000002, 0x4062BA63, 0x4063D020,
-	0x00000002, 0x4062BA64, 0x4063D020, 0x00000002, 0x4062BA65, 0x4063D020,
-	0x00000002, 0x4062BA66, 0x4063D020, 0x00000002, 0x4062BA67, 0x4063D020,
-	0x00000002, 0x4062BA68, 0x4063D020, 0x00000002, 0x4062BA69, 0x4063D020,
-	0x00000002, 0x4062BA6A, 0x4063D020, 0x00000002, 0x4062BA6B, 0x4063D020,
-	0x00000002, 0x4062BA6C, 0x4063D020, 0x00000002, 0x4062BA6D, 0x4063D020,
-	0x00000002, 0x4062BA6E, 0x4063D020, 0x00000002, 0x4062BA6F, 0x4063D020,
-	0x00000002, 0x4062BA70, 0x4063D020, 0x00000002, 0x4062BA71, 0x4063D020,
-	0x00000002, 0x4062BA72, 0x4063D020, 0x00000002, 0x4062BA73, 0x4063D020,
-	0x00000002, 0x4062BA74, 0x4063D020, 0x00000002,
-	// Block 408, offset 0x6600
-	0x4062BA75, 0x4063D020, 0x00000003, 0x4062BA21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA22, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA23,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA24, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA25, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA26,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA27, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA28, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA29,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA2B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2C,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA2E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2F,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA30,
-	// Block 409, offset 0x6640
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA31, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA32, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA33,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA34, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA35, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA36,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA37, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA38, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA39,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA3B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA21,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062BA23, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA24,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA25,
-	// Block 410, offset 0x6680
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062BA27, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA28,
-	0x4063D020, 0x40648C20, 0x00000002, 0x4062BE21, 0x4063A820, 0x00000002,
-	0x4062BE22, 0x4063A820, 0x00000002, 0x4062BE23, 0x4063A820, 0x00000002,
-	0x4062BE24, 0x4063A820, 0x00000002, 0x4062BE25, 0x4063A820, 0x00000002,
-	0x4062BE26, 0x4063A820, 0x00000002, 0x4062BE27, 0x4063A820, 0x00000002,
-	0x4062BE28, 0x4063A820, 0x00000002, 0x4062BE29, 0x4063A820, 0x00000002,
-	0x4062BE2A, 0x4063A820, 0x00000002, 0x4062BE2B, 0x4063A820, 0x00000002,
-	0x4062BE2C, 0x4063A820, 0x00000002, 0x4062BE2D, 0x4063A820, 0x00000002,
-	0x4062BE2E, 0x4063A820, 0x00000002, 0x4062BE2F, 0x4063A820, 0x00000002,
-	0x4062BE30, 0x4063A820, 0x00000002, 0x4062BE31,
-	// Block 411, offset 0x66c0
-	0x4063A820, 0x00000002, 0x4062BE32, 0x4063A820, 0x00000002, 0x4062BE33,
-	0x4063A820, 0x00000002, 0x4062BE34, 0x4063A820, 0x00000002, 0x4062BE35,
-	0x4063A820, 0x00000002, 0x4062BE36, 0x4063A820, 0x00000002, 0x4062BE37,
-	0x4063A820, 0x00000002, 0x4062BE38, 0x4063A820, 0x00000002, 0x4062BE39,
-	0x4063A820, 0x00000002, 0x4062BE3A, 0x4063A820, 0x00000002, 0x4062BE3B,
-	0x4063A820, 0x00000002, 0x4062BE3C, 0x4063A820, 0x00000002, 0x4062BE3D,
-	0x4063A820, 0x00000002, 0x4062BE3E, 0x4063A820, 0x00000002, 0x4062BE3F,
-	0x4063A820, 0x00000002, 0x4062BE40, 0x4063A820, 0x00000002, 0x4062BE41,
-	0x4063A820, 0x00000002, 0x4062BE42, 0x4063A820, 0x00000002, 0x4062BE43,
-	0x4063A820, 0x00000002, 0x4062BE44, 0x4063A820, 0x00000002, 0x4062BE45,
-	0x4063A820, 0x00000002, 0x4062BE46, 0x4063A820,
-	// Block 412, offset 0x6700
-	0x00000002, 0x4062BE47, 0x4063A820, 0x00000002, 0x4062BE48, 0x4063A820,
-	0x00000002, 0x4062BE49, 0x4063A820, 0x00000002, 0x4062BE4A, 0x4063A820,
-	0x00000002, 0x4062BE4B, 0x4063A820, 0x00000002, 0x4062BE4C, 0x4063A820,
-	0x00000002, 0x4062BE4D, 0x4063A820, 0x00000002, 0x4062BE4E, 0x4063A820,
-	0x00000002, 0x4062BE4F, 0x4063A820, 0x00000002, 0x4062BE50, 0x4063A820,
-	0x00000002, 0x4062BE51, 0x4063A820, 0x00000002, 0x4062BE52, 0x4063A820,
-	0x00000002, 0x4062BE53, 0x4063A820, 0x00000002, 0x4062BE54, 0x4063A820,
-	0x00000002, 0x4062BE55, 0x4063A820, 0x00000002, 0x4062BE56, 0x4063A820,
-	0x00000002, 0x4062BE57, 0x4063A820, 0x00000002, 0x4062BE58, 0x4063A820,
-	0x00000002, 0x4062BE59, 0x4063A820, 0x00000002, 0x4062BE5A, 0x4063A820,
-	0x00000002, 0x4062BE5B, 0x4063A820, 0x00000002,
-	// Block 413, offset 0x6740
-	0x4062BE5C, 0x4063A820, 0x00000002, 0x4062BE5D, 0x4063A820, 0x00000002,
-	0x4062BE5E, 0x4063A820, 0x00000002, 0x4062BE5F, 0x4063A820, 0x00000002,
-	0x4062BE60, 0x4063A820, 0x00000002, 0x4062BE61, 0x4063A820, 0x00000002,
-	0x4062BE62, 0x4063A820, 0x00000002, 0x4062BE63, 0x4063A820, 0x00000002,
-	0x4062BE64, 0x4063A820, 0x00000002, 0x4062BE65, 0x4063A820, 0x00000002,
-	0x4062BE66, 0x4063A820, 0x00000002, 0x4062BE67, 0x4063A820, 0x00000002,
-	0x4062BE68, 0x4063A820, 0x00000002, 0x4062BE69, 0x4063A820, 0x00000002,
-	0x4062BE6A, 0x4063A820, 0x00000002, 0x4062BE6B, 0x4063A820, 0x00000002,
-	0x4062BE6C, 0x4063A820, 0x00000002, 0x4062BE6D, 0x4063A820, 0x00000002,
-	0x4062BE6E, 0x4063A820, 0x00000002, 0x4062BE6F, 0x4063A820, 0x00000003,
-	0x4062BE21, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 414, offset 0x6780
-	0x4062BE22, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BE21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE2B, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 415, offset 0x67c0
-	0x4062BE2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE31, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE32, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE34, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE35, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE36, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE37, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BE22, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BE23, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 416, offset 0x6800
-	0x4062BE24, 0x4063A820, 0x40647220, 0x00000003, 0x4062BE25, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE22, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE24, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE27, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE21, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE22, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE23, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE24, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 417, offset 0x6840
-	0x4062BE25, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE27, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE2B, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE21, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 418, offset 0x6880
-	0x4062BE2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE2C, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2E, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE2F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE32, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE33, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE35, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE36, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE37, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE38, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE39, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 419, offset 0x68c0
-	0x4062BE3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3B, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE3C, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3E, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE3F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE41, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE42, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE43, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE44, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE45, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE46, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE47, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE48, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063AA20, 0x00000002, 0x4062BE22,
-	// Block 420, offset 0x6900
-	0x4063AA20, 0x00000002, 0x4062BE23, 0x4063AA20, 0x00000002, 0x4062BE24,
-	0x4063AA20, 0x00000003, 0x4062BE21, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE23, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE26, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BE27, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062BE23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062BE24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062BE26, 0x4063AA20, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063B020, 0x00000002, 0x4062BE22,
-	// Block 421, offset 0x6940
-	0x4063B020, 0x00000002, 0x4062BE23, 0x4063B020, 0x00000002, 0x4062BE24,
-	0x4063B020, 0x00000002, 0x4062BE25, 0x4063B020, 0x00000002, 0x4062BE26,
-	0x4063B020, 0x00000002, 0x4062BE27, 0x4063B020, 0x00000002, 0x4062BE28,
-	0x4063B020, 0x00000002, 0x4062BE29, 0x4063B020, 0x00000002, 0x4062BE2A,
-	0x4063B020, 0x00000002, 0x4062BE2B, 0x4063B020, 0x00000002, 0x4062BE2C,
-	0x4063B020, 0x00000002, 0x4062BE2D, 0x4063B020, 0x00000002, 0x4062BE2E,
-	0x4063B020, 0x00000002, 0x4062BE2F, 0x4063B020, 0x00000002, 0x4062BE30,
-	0x4063B020, 0x00000002, 0x4062BE31, 0x4063B020, 0x00000002, 0x4062BE32,
-	0x4063B020, 0x00000002, 0x4062BE33, 0x4063B020, 0x00000002, 0x4062BE34,
-	0x4063B020, 0x00000002, 0x4062BE35, 0x4063B020, 0x00000002, 0x4062BE36,
-	0x4063B020, 0x00000002, 0x4062BE37, 0x4063B020,
-	// Block 422, offset 0x6980
-	0x00000002, 0x4062BE38, 0x4063B020, 0x00000002, 0x4062BE39, 0x4063B020,
-	0x00000002, 0x4062BE3A, 0x4063B020, 0x00000002, 0x4062BE3B, 0x4063B020,
-	0x00000002, 0x4062BE3C, 0x4063B020, 0x00000002, 0x4062BE3D, 0x4063B020,
-	0x00000002, 0x4062BE3E, 0x4063B020, 0x00000002, 0x4062BE3F, 0x4063B020,
-	0x00000002, 0x4062BE40, 0x4063B020, 0x00000002, 0x4062BE41, 0x4063B020,
-	0x00000002, 0x4062BE42, 0x4063B020, 0x00000002, 0x4062BE43, 0x4063B020,
-	0x00000002, 0x4062BE44, 0x4063B020, 0x00000002, 0x4062BE45, 0x4063B020,
-	0x00000002, 0x4062BE46, 0x4063B020, 0x00000002, 0x4062BE47, 0x4063B020,
-	0x00000002, 0x4062BE48, 0x4063B020, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE22, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 423, offset 0x69c0
-	0x4062BE24, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE26, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE29, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2E, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE30, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE31, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE32, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE33, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 424, offset 0x6a00
-	0x4062BE34, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE36, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE23, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE26, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE29, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 425, offset 0x6a40
-	0x4062BE2E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE30, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE31, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE33, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE34, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE36, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE37, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE39, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE3A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE3C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE3D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 426, offset 0x6a80
-	0x4062BE3E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE40, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE41, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE43, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE44, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE45, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE46, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE47, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE48, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE49, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE4A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE4C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE4D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 427, offset 0x6ac0
-	0x4062BE4E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE50, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE21, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE22, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE23, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE24, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE26, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE29, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 428, offset 0x6b00
-	0x4062BE2E, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2F, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE30, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE31, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE32, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE33, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE34, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE22, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE23, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE25, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE26, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE28, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 429, offset 0x6b40
-	0x4062BE29, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE2C, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE2F, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE24, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE25, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE26, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE27, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE28, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE29, 0x4063B020, 0x40648420, 0x00000003,
-	// Block 430, offset 0x6b80
-	0x4062BE2A, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE2C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2D, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE2F, 0x4063B020, 0x40648C20, 0x00000003,
-	// Block 431, offset 0x6bc0
-	0x4062BE30, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE32, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE33, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063B020,
-	0x40648C20, 0x00000002, 0x4062BE21, 0x4063B220, 0x00000002, 0x4062BE22,
-	0x4063B220, 0x00000002, 0x4062BE23, 0x4063B220, 0x00000002, 0x4062BE24,
-	0x4063B220, 0x00000002, 0x4062BE25, 0x4063B220, 0x00000002, 0x4062BE26,
-	0x4063B220, 0x00000002, 0x4062BE27, 0x4063B220, 0x00000002, 0x4062BE28,
-	0x4063B220, 0x00000002, 0x4062BE29, 0x4063B220, 0x00000002, 0x4062BE2A,
-	0x4063B220, 0x00000002, 0x4062BE2B, 0x4063B220, 0x00000002, 0x4062BE2C,
-	0x4063B220, 0x00000002, 0x4062BE21, 0x4063B820, 0x00000002, 0x4062BE22,
-	0x4063B820, 0x00000002, 0x4062BE23, 0x4063B820,
-	// Block 432, offset 0x6c00
-	0x00000002, 0x4062BE24, 0x4063B820, 0x00000002, 0x4062BE25, 0x4063B820,
-	0x00000002, 0x4062BE26, 0x4063B820, 0x00000002, 0x4062BE27, 0x4063B820,
-	0x00000002, 0x4062BE28, 0x4063B820, 0x00000002, 0x4062BE29, 0x4063B820,
-	0x00000002, 0x4062BE2A, 0x4063B820, 0x00000002, 0x4062BE2B, 0x4063B820,
-	0x00000002, 0x4062BE2C, 0x4063B820, 0x00000002, 0x4062BE2D, 0x4063B820,
-	0x00000002, 0x4062BE2E, 0x4063B820, 0x00000002, 0x4062BE2F, 0x4063B820,
-	0x00000002, 0x4062BE30, 0x4063B820, 0x00000002, 0x4062BE31, 0x4063B820,
-	0x00000002, 0x4062BE32, 0x4063B820, 0x00000002, 0x4062BE33, 0x4063B820,
-	0x00000002, 0x4062BE34, 0x4063B820, 0x00000002, 0x4062BE35, 0x4063B820,
-	0x00000002, 0x4062BE36, 0x4063B820, 0x00000002, 0x4062BE37, 0x4063B820,
-	0x00000002, 0x4062BE38, 0x4063B820, 0x00000002,
-	// Block 433, offset 0x6c40
-	0x4062BE39, 0x4063B820, 0x00000002, 0x4062BE3A, 0x4063B820, 0x00000002,
-	0x4062BE3B, 0x4063B820, 0x00000002, 0x4062BE3C, 0x4063B820, 0x00000002,
-	0x4062BE3D, 0x4063B820, 0x00000002, 0x4062BE3E, 0x4063B820, 0x00000002,
-	0x4062BE3F, 0x4063B820, 0x00000002, 0x4062BE40, 0x4063B820, 0x00000002,
-	0x4062BE41, 0x4063B820, 0x00000002, 0x4062BE42, 0x4063B820, 0x00000002,
-	0x4062BE43, 0x4063B820, 0x00000002, 0x4062BE44, 0x4063B820, 0x00000002,
-	0x4062BE45, 0x4063B820, 0x00000002, 0x4062BE46, 0x4063B820, 0x00000002,
-	0x4062BE47, 0x4063B820, 0x00000002, 0x4062BE48, 0x4063B820, 0x00000002,
-	0x4062BE49, 0x4063B820, 0x00000002, 0x4062BE4A, 0x4063B820, 0x00000002,
-	0x4062BE4B, 0x4063B820, 0x00000002, 0x4062BE4C, 0x4063B820, 0x00000002,
-	0x4062BE4D, 0x4063B820, 0x00000002, 0x4062BE4E,
-	// Block 434, offset 0x6c80
-	0x4063B820, 0x00000002, 0x4062BE4F, 0x4063B820, 0x00000002, 0x4062BE50,
-	0x4063B820, 0x00000002, 0x4062BE51, 0x4063B820, 0x00000002, 0x4062BE52,
-	0x4063B820, 0x00000002, 0x4062BE53, 0x4063B820, 0x00000002, 0x4062BE54,
-	0x4063B820, 0x00000002, 0x4062BE55, 0x4063B820, 0x00000002, 0x4062BE56,
-	0x4063B820, 0x00000002, 0x4062BE57, 0x4063B820, 0x00000002, 0x4062BE58,
-	0x4063B820, 0x00000002, 0x4062BE59, 0x4063B820, 0x00000002, 0x4062BE5A,
-	0x4063B820, 0x00000002, 0x4062BE5B, 0x4063B820, 0x00000002, 0x4062BE5C,
-	0x4063B820, 0x00000003, 0x4062BE21, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 435, offset 0x6cc0
-	0x4062BE26, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE27, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE28, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE29, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE2B, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062BE24, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE26, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062BE27, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE21, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062BE22, 0x4063B820, 0x40647220, 0x00000003,
-	// Block 436, offset 0x6d00
-	0x4062BE23, 0x4063B820, 0x40647220, 0x00000003, 0x4062BE21, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B820, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063BC20, 0x00000002, 0x4062BE22, 0x4063BC20, 0x00000002,
-	0x4062BE23, 0x4063BC20, 0x00000002, 0x4062BE24, 0x4063BC20, 0x00000002,
-	0x4062BE25, 0x4063BC20, 0x00000002, 0x4062BE26,
-	// Block 437, offset 0x6d40
-	0x4063BC20, 0x00000002, 0x4062BE27, 0x4063BC20, 0x00000002, 0x4062BE21,
-	0x4063BE20, 0x00000002, 0x4062BE22, 0x4063BE20, 0x00000002, 0x4062BE21,
-	0x4063C220, 0x00000002, 0x4062BE22, 0x4063C220, 0x00000002, 0x4062BE23,
-	0x4063C220, 0x00000002, 0x4062BE24, 0x4063C220, 0x00000002, 0x4062BE25,
-	0x4063C220, 0x00000002, 0x4062BE26, 0x4063C220, 0x00000002, 0x4062BE27,
-	0x4063C220, 0x00000002, 0x4062BE28, 0x4063C220, 0x00000002, 0x4062BE29,
-	0x4063C220, 0x00000002, 0x4062BE2A, 0x4063C220, 0x00000002, 0x4062BE2B,
-	0x4063C220, 0x00000002, 0x4062BE2C, 0x4063C220, 0x00000002, 0x4062BE2D,
-	0x4063C220, 0x00000002, 0x4062BE2E, 0x4063C220, 0x00000002, 0x4062BE2F,
-	0x4063C220, 0x00000002, 0x4062BE30, 0x4063C220, 0x00000002, 0x4062BE31,
-	0x4063C220, 0x00000002, 0x4062BE32, 0x4063C220,
-	// Block 438, offset 0x6d80
-	0x00000002, 0x4062BE33, 0x4063C220, 0x00000002, 0x4062BE34, 0x4063C220,
-	0x00000002, 0x4062BE35, 0x4063C220, 0x00000002, 0x4062BE36, 0x4063C220,
-	0x00000002, 0x4062BE37, 0x4063C220, 0x00000002, 0x4062BE38, 0x4063C220,
-	0x00000002, 0x4062BE39, 0x4063C220, 0x00000002, 0x4062BE3A, 0x4063C220,
-	0x00000002, 0x4062BE3B, 0x4063C220, 0x00000002, 0x4062BE3C, 0x4063C220,
-	0x00000002, 0x4062BE3D, 0x4063C220, 0x00000002, 0x4062BE3E, 0x4063C220,
-	0x00000002, 0x4062BE3F, 0x4063C220, 0x00000002, 0x4062BE40, 0x4063C220,
-	0x00000002, 0x4062BE41, 0x4063C220, 0x00000002, 0x4062BE42, 0x4063C220,
-	0x00000002, 0x4062BE43, 0x4063C220, 0x00000002, 0x4062BE44, 0x4063C220,
-	0x00000002, 0x4062BE45, 0x4063C220, 0x00000002, 0x4062BE46, 0x4063C220,
-	0x00000002, 0x4062BE47, 0x4063C220, 0x00000002,
-	// Block 439, offset 0x6dc0
-	0x4062BE48, 0x4063C220, 0x00000002, 0x4062BE49, 0x4063C220, 0x00000002,
-	0x4062BE4A, 0x4063C220, 0x00000002, 0x4062BE4B, 0x4063C220, 0x00000002,
-	0x4062BE4C, 0x4063C220, 0x00000002, 0x4062BE4D, 0x4063C220, 0x00000002,
-	0x4062BE4E, 0x4063C220, 0x00000002, 0x4062BE4F, 0x4063C220, 0x00000002,
-	0x4062BE50, 0x4063C220, 0x00000002, 0x4062BE51, 0x4063C220, 0x00000002,
-	0x4062BE52, 0x4063C220, 0x00000002, 0x4062BE53, 0x4063C220, 0x00000002,
-	0x4062BE54, 0x4063C220, 0x00000002, 0x4062BE55, 0x4063C220, 0x00000002,
-	0x4062BE56, 0x4063C220, 0x00000002, 0x4062BE57, 0x4063C220, 0x00000002,
-	0x4062BE58, 0x4063C220, 0x00000002, 0x4062BE59, 0x4063C220, 0x00000002,
-	0x4062BE5A, 0x4063C220, 0x00000002, 0x4062BE5B, 0x4063C220, 0x00000002,
-	0x4062BE5C, 0x4063C220, 0x00000002, 0x4062BE5D,
-	// Block 440, offset 0x6e00
-	0x4063C220, 0x00000002, 0x4062BE5E, 0x4063C220, 0x00000002, 0x4062BE5F,
-	0x4063C220, 0x00000002, 0x4062BE60, 0x4063C220, 0x00000002, 0x4062BE61,
-	0x4063C220, 0x00000002, 0x4062BE62, 0x4063C220, 0x00000002, 0x4062BE63,
-	0x4063C220, 0x00000002, 0x4062BE64, 0x4063C220, 0x00000002, 0x4062BE65,
-	0x4063C220, 0x00000002, 0x4062BE66, 0x4063C220, 0x00000002, 0x4062BE67,
-	0x4063C220, 0x00000002, 0x4062BE68, 0x4063C220, 0x00000002, 0x4062BE69,
-	0x4063C220, 0x00000002, 0x4062BE6A, 0x4063C220, 0x00000002, 0x4062BE6B,
-	0x4063C220, 0x00000002, 0x4062BE6C, 0x4063C220, 0x00000002, 0x4062BE6D,
-	0x4063C220, 0x00000002, 0x4062BE6E, 0x4063C220, 0x00000002, 0x4062BE6F,
-	0x4063C220, 0x00000002, 0x4062BE70, 0x4063C220, 0x00000002, 0x4062BE71,
-	0x4063C220, 0x00000002, 0x4062BE72, 0x4063C220,
-	// Block 441, offset 0x6e40
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE25,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE27, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE28,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2B,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE2C, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE2D, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2E,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE2F, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE30, 0x4063C220, 0x40646420,
-	// Block 442, offset 0x6e80
-	0x00000003, 0x4062BE31, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE32,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE25,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE28,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE2A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE2D, 0x4063C220, 0x40646A20,
-	// Block 443, offset 0x6ec0
-	0x00000003, 0x4062BE2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE32,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE35,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE36, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE38,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE39, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE3A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE3D, 0x4063C220, 0x40646A20,
-	// Block 444, offset 0x6f00
-	0x00000003, 0x4062BE3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE40, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE42,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE43, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE21,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062BE22, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062BE23, 0x4063C220, 0x40647220, 0x00000003, 0x4062BE24,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062BE25, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40648C20,
-	// Block 445, offset 0x6f40
-	0x00000002, 0x4062BE21, 0x4063C820, 0x00000002, 0x4062BE22, 0x4063C820,
-	0x00000002, 0x4062BE23, 0x4063C820, 0x00000003, 0x4062BE21, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062BE22, 0x4063CC20, 0x40647220, 0x00000003,
-	0x4062BE23, 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE24, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE22, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE23, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062BE24, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE25, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE26, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062BE27, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE28, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE21, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063CC20,
-	// Block 446, offset 0x6f80
-	0x40648C20, 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE24, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE26, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE27, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE28, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE29, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE2A, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE2C, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063D020, 0x00000002, 0x4062BE22, 0x4063D020, 0x00000002,
-	0x4062BE23, 0x4063D020, 0x00000002, 0x4062BE24, 0x4063D020, 0x00000002,
-	0x4062BE25, 0x4063D020, 0x00000002, 0x4062BE26, 0x4063D020, 0x00000002,
-	0x4062BE27, 0x4063D020, 0x00000002, 0x4062BE28,
-	// Block 447, offset 0x6fc0
-	0x4063D020, 0x00000002, 0x4062BE29, 0x4063D020, 0x00000002, 0x4062BE2A,
-	0x4063D020, 0x00000002, 0x4062BE2B, 0x4063D020, 0x00000002, 0x4062BE2C,
-	0x4063D020, 0x00000002, 0x4062BE2D, 0x4063D020, 0x00000002, 0x4062BE2E,
-	0x4063D020, 0x00000002, 0x4062BE2F, 0x4063D020, 0x00000002, 0x4062BE30,
-	0x4063D020, 0x00000002, 0x4062BE31, 0x4063D020, 0x00000002, 0x4062BE32,
-	0x4063D020, 0x00000002, 0x4062BE33, 0x4063D020, 0x00000002, 0x4062BE34,
-	0x4063D020, 0x00000002, 0x4062BE35, 0x4063D020, 0x00000002, 0x4062BE36,
-	0x4063D020, 0x00000002, 0x4062BE37, 0x4063D020, 0x00000002, 0x4062BE38,
-	0x4063D020, 0x00000002, 0x4062BE39, 0x4063D020, 0x00000002, 0x4062BE3A,
-	0x4063D020, 0x00000002, 0x4062BE3B, 0x4063D020, 0x00000002, 0x4062BE3C,
-	0x4063D020, 0x00000002, 0x4062BE3D, 0x4063D020,
-	// Block 448, offset 0x7000
-	0x00000002, 0x4062BE3E, 0x4063D020, 0x00000002, 0x4062BE3F, 0x4063D020,
-	0x00000002, 0x4062BE40, 0x4063D020, 0x00000002, 0x4062BE41, 0x4063D020,
-	0x00000002, 0x4062BE42, 0x4063D020, 0x00000002, 0x4062BE43, 0x4063D020,
-	0x00000002, 0x4062BE44, 0x4063D020, 0x00000002, 0x4062BE45, 0x4063D020,
-	0x00000002, 0x4062BE46, 0x4063D020, 0x00000002, 0x4062BE47, 0x4063D020,
-	0x00000002, 0x4062BE48, 0x4063D020, 0x00000002, 0x4062BE49, 0x4063D020,
-	0x00000002, 0x4062BE4A, 0x4063D020, 0x00000002, 0x4062BE4B, 0x4063D020,
-	0x00000002, 0x4062BE4C, 0x4063D020, 0x00000002, 0x4062BE4D, 0x4063D020,
-	0x00000003, 0x4062BE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE22,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE23, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE24, 0x4063D020, 0x40646420,
-	// Block 449, offset 0x7040
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE27, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE28, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE29,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE2B, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2C,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE2D, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE2E, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2F,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE30, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE31, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE32,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40646A20,
-	// Block 450, offset 0x7080
-	0x00000003, 0x4062BE23, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE24,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE26, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE27,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE29, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE2C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE2F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE30,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE31, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE32, 0x4063D020, 0x40646A20,
-	// Block 451, offset 0x70c0
-	0x00000003, 0x4062BE33, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE34,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE36, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE37,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE39, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE3C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE3F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE40,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE41, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE21, 0x4063D020, 0x40647220,
-	// Block 452, offset 0x7100
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE23,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062BE21, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE23,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE27, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE28, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE29,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE2B, 0x4063D020, 0x40648220,
-	// Block 453, offset 0x7140
-	0x00000003, 0x4062BE2C, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE2D,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE2F, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE21,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062BE22, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062BE23, 0x4063D020, 0x40648420, 0x00000003, 0x4062C021,
-	0x4063A820, 0x40648C20, 0x00000002, 0x4062C021, 0x4063D020, 0x00000002,
-	0x4062C221, 0x4063A820, 0x00000002, 0x4062C222, 0x4063A820, 0x00000002,
-	0x4062C223, 0x4063A820, 0x00000002, 0x4062C224, 0x4063A820, 0x00000002,
-	0x4062C225, 0x4063A820, 0x00000002, 0x4062C226, 0x4063A820, 0x00000002,
-	0x4062C227, 0x4063A820, 0x00000002, 0x4062C228, 0x4063A820, 0x00000002,
-	0x4062C229, 0x4063A820, 0x00000002, 0x4062C22A,
-	// Block 454, offset 0x7180
-	0x4063A820, 0x00000002, 0x4062C22B, 0x4063A820, 0x00000002, 0x4062C22C,
-	0x4063A820, 0x00000002, 0x4062C22D, 0x4063A820, 0x00000002, 0x4062C22E,
-	0x4063A820, 0x00000002, 0x4062C22F, 0x4063A820, 0x00000002, 0x4062C230,
-	0x4063A820, 0x00000002, 0x4062C231, 0x4063A820, 0x00000002, 0x4062C232,
-	0x4063A820, 0x00000002, 0x4062C233, 0x4063A820, 0x00000002, 0x4062C234,
-	0x4063A820, 0x00000002, 0x4062C235, 0x4063A820, 0x00000002, 0x4062C236,
-	0x4063A820, 0x00000002, 0x4062C237, 0x4063A820, 0x00000002, 0x4062C238,
-	0x4063A820, 0x00000002, 0x4062C239, 0x4063A820, 0x00000002, 0x4062C23A,
-	0x4063A820, 0x00000002, 0x4062C23B, 0x4063A820, 0x00000002, 0x4062C23C,
-	0x4063A820, 0x00000002, 0x4062C23D, 0x4063A820, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C222,
-	// Block 455, offset 0x71c0
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C223, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40646420, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C226, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40646420, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C229, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C22C, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22E,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C22F, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C230, 0x4063A820, 0x40646420, 0x00000003, 0x4062C231,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C232,
-	// Block 456, offset 0x7200
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C233, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C234, 0x4063A820, 0x40646420, 0x00000003, 0x4062C235,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C236, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C237, 0x4063A820, 0x40646420, 0x00000003, 0x4062C238,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C239, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C223, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C226, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C229,
-	// Block 457, offset 0x7240
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C22C,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C222, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C223, 0x4063A820, 0x40647220, 0x00000003, 0x4062C224,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C225, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C226, 0x4063A820, 0x40647220, 0x00000003, 0x4062C227,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C228, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C229, 0x4063A820, 0x40647220, 0x00000003, 0x4062C22A,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C22B,
-	// Block 458, offset 0x7280
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40648220, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C223, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40648220, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C226, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40648220, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C229, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C22D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22E,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C22F,
-	// Block 459, offset 0x72c0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C230, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C231, 0x4063A820, 0x40648220, 0x00000003, 0x4062C232,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C233, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40648420, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062C223, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40648420, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C222, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C223, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C224,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C225, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C226, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C227,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C228,
-	// Block 460, offset 0x7300
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C229, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648C20,
-	0x00000002, 0x4062C221, 0x4063AA20, 0x00000002, 0x4062C222, 0x4063AA20,
-	0x00000002, 0x4062C223, 0x4063AA20, 0x00000002, 0x4062C224, 0x4063AA20,
-	0x00000002, 0x4062C225, 0x4063AA20, 0x00000002, 0x4062C226, 0x4063AA20,
-	0x00000002, 0x4062C227, 0x4063AA20, 0x00000002, 0x4062C228, 0x4063AA20,
-	0x00000002, 0x4062C229, 0x4063AA20, 0x00000002, 0x4062C22A, 0x4063AA20,
-	0x00000002, 0x4062C22B, 0x4063AA20, 0x00000002, 0x4062C22C, 0x4063AA20,
-	0x00000002, 0x4062C22D, 0x4063AA20, 0x00000002, 0x4062C22E, 0x4063AA20,
-	0x00000002, 0x4062C22F, 0x4063AA20, 0x00000002,
-	// Block 461, offset 0x7340
-	0x4062C230, 0x4063AA20, 0x00000002, 0x4062C231, 0x4063AA20, 0x00000002,
-	0x4062C232, 0x4063AA20, 0x00000002, 0x4062C233, 0x4063AA20, 0x00000002,
-	0x4062C234, 0x4063AA20, 0x00000002, 0x4062C235, 0x4063AA20, 0x00000002,
-	0x4062C236, 0x4063AA20, 0x00000002, 0x4062C237, 0x4063AA20, 0x00000002,
-	0x4062C238, 0x4063AA20, 0x00000002, 0x4062C239, 0x4063AA20, 0x00000002,
-	0x4062C23A, 0x4063AA20, 0x00000002, 0x4062C23B, 0x4063AA20, 0x00000002,
-	0x4062C23C, 0x4063AA20, 0x00000002, 0x4062C23D, 0x4063AA20, 0x00000002,
-	0x4062C23E, 0x4063AA20, 0x00000002, 0x4062C23F, 0x4063AA20, 0x00000003,
-	0x4062C221, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C222, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063AA20, 0x40646420, 0x00000003,
-	// Block 462, offset 0x7380
-	0x4062C225, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C226, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C227, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C228, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C229, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C22A, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C22B, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C221, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062C226, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C227, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C228, 0x4063AA20, 0x40648C20, 0x00000002,
-	0x4062C221, 0x4063AC20, 0x00000002, 0x4062C222,
-	// Block 463, offset 0x73c0
-	0x4063AC20, 0x00000002, 0x4062C223, 0x4063AC20, 0x00000002, 0x4062C224,
-	0x4063AC20, 0x00000002, 0x4062C225, 0x4063AC20, 0x00000002, 0x4062C226,
-	0x4063AC20, 0x00000002, 0x4062C227, 0x4063AC20, 0x00000002, 0x4062C228,
-	0x4063AC20, 0x00000002, 0x4062C229, 0x4063AC20, 0x00000002, 0x4062C22A,
-	0x4063AC20, 0x00000002, 0x4062C22B, 0x4063AC20, 0x00000003, 0x4062C221,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C222, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C225, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C227,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C228, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C229, 0x4063AC20, 0x40646420,
-	// Block 464, offset 0x7400
-	0x00000003, 0x4062C22A, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22B,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C22C, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22E,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C22F, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C221, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C222,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C223, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C224, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C225,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C226, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C227, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C228,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C229, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C22A, 0x4063AC20, 0x40648C20,
-	// Block 465, offset 0x7440
-	0x00000003, 0x4062C22B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22C,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C22E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C230, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C231, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C232,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C233, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C234, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C235,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C236, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C237, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C238,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C239, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C23A, 0x4063AC20, 0x40648C20,
-	// Block 466, offset 0x7480
-	0x00000003, 0x4062C23B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23C,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C23E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C240, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C241, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C242,
-	0x4063AC20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063B020, 0x00000002,
-	0x4062C222, 0x4063B020, 0x00000002, 0x4062C223, 0x4063B020, 0x00000002,
-	0x4062C224, 0x4063B020, 0x00000002, 0x4062C225, 0x4063B020, 0x00000002,
-	0x4062C226, 0x4063B020, 0x00000002, 0x4062C227, 0x4063B020, 0x00000002,
-	0x4062C228, 0x4063B020, 0x00000002, 0x4062C229, 0x4063B020, 0x00000002,
-	0x4062C22A, 0x4063B020, 0x00000002, 0x4062C22B,
-	// Block 467, offset 0x74c0
-	0x4063B020, 0x00000002, 0x4062C22C, 0x4063B020, 0x00000002, 0x4062C22D,
-	0x4063B020, 0x00000002, 0x4062C22E, 0x4063B020, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C222, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C225, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40646420, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C222, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C225, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C227,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C228,
-	// Block 468, offset 0x7500
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C229, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C22A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C22B,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C22D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C222, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40647220, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C222, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40648220, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C225, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40648220, 0x00000003, 0x4062C227,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C228,
-	// Block 469, offset 0x7540
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C229, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C22A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C22B,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C22C, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C221, 0x4063B020, 0x40648420, 0x00000003, 0x4062C222,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C223, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C224, 0x4063B020, 0x40648420, 0x00000002, 0x4062C221,
-	0x4063B220, 0x00000002, 0x4062C222, 0x4063B220, 0x00000003, 0x4062C221,
-	0x4063B220, 0x40646A20, 0x00000002, 0x4062C221, 0x4063B420, 0x00000002,
-	0x4062C222, 0x4063B420, 0x00000002, 0x4062C223, 0x4063B420, 0x00000002,
-	0x4062C224, 0x4063B420, 0x00000002, 0x4062C225, 0x4063B420, 0x00000002,
-	0x4062C226, 0x4063B420, 0x00000002, 0x4062C227,
-	// Block 470, offset 0x7580
-	0x4063B420, 0x00000002, 0x4062C228, 0x4063B420, 0x00000002, 0x4062C229,
-	0x4063B420, 0x00000002, 0x4062C22A, 0x4063B420, 0x00000002, 0x4062C22B,
-	0x4063B420, 0x00000002, 0x4062C22C, 0x4063B420, 0x00000002, 0x4062C22D,
-	0x4063B420, 0x00000002, 0x4062C22E, 0x4063B420, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C222, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063B420, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C225, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063B420, 0x40646420, 0x00000003, 0x4062C227,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C228, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C229, 0x4063B420, 0x40646420, 0x00000003, 0x4062C22A,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C22B,
-	// Block 471, offset 0x75c0
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C22C, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063B420, 0x40646420, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C222, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C223, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C224,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C225, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C226, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C227,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C228, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C229, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C22C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22E,
-	// Block 472, offset 0x7600
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C230, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C231,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C232, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C233, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C234,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C235, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C236, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C237,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C238, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C239, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C23C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23E,
-	// Block 473, offset 0x7640
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23F, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C240, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C241,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C242, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C243, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C244,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C245, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C246, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C247,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C248, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C249, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C24A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C24B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C24C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C222,
-	// Block 474, offset 0x7680
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C223, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062C224, 0x4063B420, 0x40647220, 0x00000003, 0x4062C225,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648220, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C224, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648220, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C227, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C228, 0x4063B420, 0x40648220, 0x00000003, 0x4062C229,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C22B, 0x4063B420, 0x40648220, 0x00000003, 0x4062C22C,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22D,
-	// Block 475, offset 0x76c0
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22E, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C22F, 0x4063B420, 0x40648220, 0x00000003, 0x4062C230,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C231, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C232, 0x4063B420, 0x40648220, 0x00000003, 0x4062C233,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C234, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C235, 0x4063B420, 0x40648220, 0x00000003, 0x4062C236,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648420, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C224, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648420, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C227,
-	// Block 476, offset 0x7700
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C221, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C224, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C227, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C228, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C229,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C22B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C22E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C230,
-	// Block 477, offset 0x7740
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C231, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C232, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C233,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C234, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C235, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C236,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C237, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C238, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C239,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C23B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C23E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C240,
-	// Block 478, offset 0x7780
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C241, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C242, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C243,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C244, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C245, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C246,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C247, 0x4063B420, 0x40648C20,
-	0x00000002, 0x4062C221, 0x4063B620, 0x00000002, 0x4062C222, 0x4063B620,
-	0x00000002, 0x4062C223, 0x4063B620, 0x00000002, 0x4062C224, 0x4063B620,
-	0x00000002, 0x4062C225, 0x4063B620, 0x00000002, 0x4062C226, 0x4063B620,
-	0x00000002, 0x4062C227, 0x4063B620, 0x00000002, 0x4062C228, 0x4063B620,
-	0x00000002, 0x4062C229, 0x4063B620, 0x00000002, 0x4062C22A, 0x4063B620,
-	0x00000002, 0x4062C22B, 0x4063B620, 0x00000002,
-	// Block 479, offset 0x77c0
-	0x4062C22C, 0x4063B620, 0x00000002, 0x4062C22D, 0x4063B620, 0x00000002,
-	0x4062C22E, 0x4063B620, 0x00000002, 0x4062C22F, 0x4063B620, 0x00000002,
-	0x4062C230, 0x4063B620, 0x00000002, 0x4062C231, 0x4063B620, 0x00000002,
-	0x4062C232, 0x4063B620, 0x00000002, 0x4062C233, 0x4063B620, 0x00000002,
-	0x4062C234, 0x4063B620, 0x00000002, 0x4062C235, 0x4063B620, 0x00000002,
-	0x4062C236, 0x4063B620, 0x00000002, 0x4062C237, 0x4063B620, 0x00000002,
-	0x4062C238, 0x4063B620, 0x00000002, 0x4062C239, 0x4063B620, 0x00000002,
-	0x4062C23A, 0x4063B620, 0x00000002, 0x4062C23B, 0x4063B620, 0x00000002,
-	0x4062C23C, 0x4063B620, 0x00000002, 0x4062C23D, 0x4063B620, 0x00000002,
-	0x4062C23E, 0x4063B620, 0x00000002, 0x4062C23F, 0x4063B620, 0x00000002,
-	0x4062C240, 0x4063B620, 0x00000002, 0x4062C241,
-	// Block 480, offset 0x7800
-	0x4063B620, 0x00000002, 0x4062C242, 0x4063B620, 0x00000002, 0x4062C243,
-	0x4063B620, 0x00000002, 0x4062C244, 0x4063B620, 0x00000002, 0x4062C245,
-	0x4063B620, 0x00000002, 0x4062C246, 0x4063B620, 0x00000002, 0x4062C247,
-	0x4063B620, 0x00000002, 0x4062C221, 0x4063B820, 0x00000002, 0x4062C222,
-	0x4063B820, 0x00000002, 0x4062C223, 0x4063B820, 0x00000002, 0x4062C224,
-	0x4063B820, 0x00000002, 0x4062C225, 0x4063B820, 0x00000002, 0x4062C226,
-	0x4063B820, 0x00000002, 0x4062C227, 0x4063B820, 0x00000002, 0x4062C228,
-	0x4063B820, 0x00000002, 0x4062C229, 0x4063B820, 0x00000002, 0x4062C22A,
-	0x4063B820, 0x00000002, 0x4062C22B, 0x4063B820, 0x00000002, 0x4062C22C,
-	0x4063B820, 0x00000002, 0x4062C22D, 0x4063B820, 0x00000002, 0x4062C22E,
-	0x4063B820, 0x00000002, 0x4062C22F, 0x4063B820,
-	// Block 481, offset 0x7840
-	0x00000002, 0x4062C230, 0x4063B820, 0x00000002, 0x4062C231, 0x4063B820,
-	0x00000002, 0x4062C232, 0x4063B820, 0x00000002, 0x4062C233, 0x4063B820,
-	0x00000002, 0x4062C234, 0x4063B820, 0x00000002, 0x4062C235, 0x4063B820,
-	0x00000002, 0x4062C236, 0x4063B820, 0x00000002, 0x4062C237, 0x4063B820,
-	0x00000002, 0x4062C238, 0x4063B820, 0x00000002, 0x4062C239, 0x4063B820,
-	0x00000002, 0x4062C23A, 0x4063B820, 0x00000002, 0x4062C23B, 0x4063B820,
-	0x00000002, 0x4062C23C, 0x4063B820, 0x00000002, 0x4062C23D, 0x4063B820,
-	0x00000002, 0x4062C23E, 0x4063B820, 0x00000002, 0x4062C23F, 0x4063B820,
-	0x00000002, 0x4062C240, 0x4063B820, 0x00000002, 0x4062C241, 0x4063B820,
-	0x00000002, 0x4062C242, 0x4063B820, 0x00000002, 0x4062C243, 0x4063B820,
-	0x00000002, 0x4062C244, 0x4063B820, 0x00000002,
-	// Block 482, offset 0x7880
-	0x4062C245, 0x4063B820, 0x00000002, 0x4062C246, 0x4063B820, 0x00000002,
-	0x4062C247, 0x4063B820, 0x00000002, 0x4062C248, 0x4063B820, 0x00000002,
-	0x4062C249, 0x4063B820, 0x00000002, 0x4062C24A, 0x4063B820, 0x00000002,
-	0x4062C24B, 0x4063B820, 0x00000002, 0x4062C24C, 0x4063B820, 0x00000002,
-	0x4062C24D, 0x4063B820, 0x00000002, 0x4062C24E, 0x4063B820, 0x00000002,
-	0x4062C24F, 0x4063B820, 0x00000002, 0x4062C250, 0x4063B820, 0x00000002,
-	0x4062C251, 0x4063B820, 0x00000002, 0x4062C252, 0x4063B820, 0x00000002,
-	0x4062C253, 0x4063B820, 0x00000002, 0x4062C254, 0x4063B820, 0x00000002,
-	0x4062C255, 0x4063B820, 0x00000002, 0x4062C256, 0x4063B820, 0x00000003,
-	0x4062C221, 0x4063B820, 0x40646420, 0x00000003, 0x4062C222, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063B820,
-	// Block 483, offset 0x78c0
-	0x40646420, 0x00000003, 0x4062C224, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C225, 0x4063B820, 0x40646420, 0x00000003, 0x4062C221, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C229, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C22B, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C22C, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C22E, 0x4063B820,
-	// Block 484, offset 0x7900
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063B820, 0x40647220, 0x00000003, 0x4062C223, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C222, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C224, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C225, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C226, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C227, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C228, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C229, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C22A, 0x4063B820,
-	// Block 485, offset 0x7940
-	0x40648C20, 0x00000003, 0x4062C22B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C22E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C22F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C231, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C232, 0x4063B820, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BA20,
-	0x00000002, 0x4062C222, 0x4063BA20, 0x00000002, 0x4062C223, 0x4063BA20,
-	0x00000002, 0x4062C224, 0x4063BA20, 0x00000002, 0x4062C225, 0x4063BA20,
-	0x00000002, 0x4062C226, 0x4063BA20, 0x00000002, 0x4062C227, 0x4063BA20,
-	0x00000002, 0x4062C228, 0x4063BA20, 0x00000002, 0x4062C229, 0x4063BA20,
-	0x00000002, 0x4062C22A, 0x4063BA20, 0x00000002,
-	// Block 486, offset 0x7980
-	0x4062C22B, 0x4063BA20, 0x00000002, 0x4062C22C, 0x4063BA20, 0x00000002,
-	0x4062C22D, 0x4063BA20, 0x00000002, 0x4062C22E, 0x4063BA20, 0x00000002,
-	0x4062C22F, 0x4063BA20, 0x00000002, 0x4062C230, 0x4063BA20, 0x00000002,
-	0x4062C231, 0x4063BA20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C222, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C223,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C224, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C225, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C226,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C227, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C228, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C229,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C22B, 0x4063BA20, 0x40646A20,
-	// Block 487, offset 0x79c0
-	0x00000003, 0x4062C22C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C22F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C230,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C231, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C232, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C233,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C234, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C235, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C236,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C237, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C238, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C239,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C23A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C221, 0x4063BA20, 0x40647220,
-	// Block 488, offset 0x7a00
-	0x00000003, 0x4062C221, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C222,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062C223, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062C224, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C225,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062C226, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062C227, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C228,
-	0x4063BA20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BC20, 0x00000002,
-	0x4062C222, 0x4063BC20, 0x00000002, 0x4062C223, 0x4063BC20, 0x00000002,
-	0x4062C224, 0x4063BC20, 0x00000002, 0x4062C225, 0x4063BC20, 0x00000002,
-	0x4062C221, 0x4063BE20, 0x00000002, 0x4062C222, 0x4063BE20, 0x00000002,
-	0x4062C223, 0x4063BE20, 0x00000002, 0x4062C224, 0x4063BE20, 0x00000002,
-	0x4062C225, 0x4063BE20, 0x00000002, 0x4062C226,
-	// Block 489, offset 0x7a40
-	0x4063BE20, 0x00000002, 0x4062C227, 0x4063BE20, 0x00000002, 0x4062C228,
-	0x4063BE20, 0x00000002, 0x4062C229, 0x4063BE20, 0x00000002, 0x4062C22A,
-	0x4063BE20, 0x00000002, 0x4062C22B, 0x4063BE20, 0x00000002, 0x4062C22C,
-	0x4063BE20, 0x00000002, 0x4062C22D, 0x4063BE20, 0x00000002, 0x4062C22E,
-	0x4063BE20, 0x00000002, 0x4062C221, 0x4063C020, 0x00000002, 0x4062C222,
-	0x4063C020, 0x00000002, 0x4062C223, 0x4063C020, 0x00000002, 0x4062C224,
-	0x4063C020, 0x00000002, 0x4062C225, 0x4063C020, 0x00000002, 0x4062C226,
-	0x4063C020, 0x00000002, 0x4062C227, 0x4063C020, 0x00000002, 0x4062C228,
-	0x4063C020, 0x00000002, 0x4062C229, 0x4063C020, 0x00000002, 0x4062C22A,
-	0x4063C020, 0x00000002, 0x4062C22B, 0x4063C020, 0x00000002, 0x4062C22C,
-	0x4063C020, 0x00000002, 0x4062C22D, 0x4063C020,
-	// Block 490, offset 0x7a80
-	0x00000002, 0x4062C22E, 0x4063C020, 0x00000002, 0x4062C22F, 0x4063C020,
-	0x00000002, 0x4062C230, 0x4063C020, 0x00000002, 0x4062C231, 0x4063C020,
-	0x00000002, 0x4062C232, 0x4063C020, 0x00000002, 0x4062C233, 0x4063C020,
-	0x00000002, 0x4062C234, 0x4063C020, 0x00000002, 0x4062C235, 0x4063C020,
-	0x00000002, 0x4062C236, 0x4063C020, 0x00000002, 0x4062C237, 0x4063C020,
-	0x00000002, 0x4062C238, 0x4063C020, 0x00000002, 0x4062C239, 0x4063C020,
-	0x00000002, 0x4062C23A, 0x4063C020, 0x00000002, 0x4062C23B, 0x4063C020,
-	0x00000002, 0x4062C23C, 0x4063C020, 0x00000002, 0x4062C23D, 0x4063C020,
-	0x00000002, 0x4062C23E, 0x4063C020, 0x00000002, 0x4062C23F, 0x4063C020,
-	0x00000002, 0x4062C240, 0x4063C020, 0x00000002, 0x4062C241, 0x4063C020,
-	0x00000002, 0x4062C242, 0x4063C020, 0x00000002,
-	// Block 491, offset 0x7ac0
-	0x4062C243, 0x4063C020, 0x00000002, 0x4062C244, 0x4063C020, 0x00000002,
-	0x4062C245, 0x4063C020, 0x00000002, 0x4062C246, 0x4063C020, 0x00000002,
-	0x4062C247, 0x4063C020, 0x00000002, 0x4062C248, 0x4063C020, 0x00000002,
-	0x4062C249, 0x4063C020, 0x00000002, 0x4062C24A, 0x4063C020, 0x00000002,
-	0x4062C24B, 0x4063C020, 0x00000002, 0x4062C24C, 0x4063C020, 0x00000003,
-	0x4062C221, 0x4063C020, 0x40646420, 0x00000003, 0x4062C222, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063C020, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063C020, 0x40646420, 0x00000003, 0x4062C225, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C226, 0x4063C020, 0x40646420, 0x00000003,
-	0x4062C227, 0x4063C020, 0x40646420, 0x00000003, 0x4062C228, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C221, 0x4063C020,
-	// Block 492, offset 0x7b00
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C224, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C226, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C227, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C228, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C229, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C22B, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C22C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C22E, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C22F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C230, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C231, 0x4063C020,
-	// Block 493, offset 0x7b40
-	0x40648C20, 0x00000003, 0x4062C232, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C233, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C234, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C235, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C236, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C237, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C238, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C239, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C23B, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C23C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C23E, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C23F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C240, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C241, 0x4063C020,
-	// Block 494, offset 0x7b80
-	0x40648C20, 0x00000002, 0x4062C221, 0x4063C220, 0x00000002, 0x4062C222,
-	0x4063C220, 0x00000002, 0x4062C223, 0x4063C220, 0x00000002, 0x4062C224,
-	0x4063C220, 0x00000002, 0x4062C225, 0x4063C220, 0x00000002, 0x4062C226,
-	0x4063C220, 0x00000002, 0x4062C227, 0x4063C220, 0x00000002, 0x4062C228,
-	0x4063C220, 0x00000002, 0x4062C229, 0x4063C220, 0x00000002, 0x4062C22A,
-	0x4063C220, 0x00000002, 0x4062C22B, 0x4063C220, 0x00000002, 0x4062C22C,
-	0x4063C220, 0x00000002, 0x4062C22D, 0x4063C220, 0x00000002, 0x4062C22E,
-	0x4063C220, 0x00000002, 0x4062C22F, 0x4063C220, 0x00000002, 0x4062C230,
-	0x4063C220, 0x00000002, 0x4062C231, 0x4063C220, 0x00000002, 0x4062C232,
-	0x4063C220, 0x00000002, 0x4062C233, 0x4063C220, 0x00000002, 0x4062C234,
-	0x4063C220, 0x00000002, 0x4062C235, 0x4063C220,
-	// Block 495, offset 0x7bc0
-	0x00000002, 0x4062C236, 0x4063C220, 0x00000002, 0x4062C237, 0x4063C220,
-	0x00000002, 0x4062C238, 0x4063C220, 0x00000002, 0x4062C239, 0x4063C220,
-	0x00000002, 0x4062C23A, 0x4063C220, 0x00000002, 0x4062C23B, 0x4063C220,
-	0x00000002, 0x4062C23C, 0x4063C220, 0x00000002, 0x4062C23D, 0x4063C220,
-	0x00000002, 0x4062C23E, 0x4063C220, 0x00000002, 0x4062C23F, 0x4063C220,
-	0x00000002, 0x4062C240, 0x4063C220, 0x00000002, 0x4062C241, 0x4063C220,
-	0x00000002, 0x4062C242, 0x4063C220, 0x00000002, 0x4062C243, 0x4063C220,
-	0x00000002, 0x4062C244, 0x4063C220, 0x00000002, 0x4062C245, 0x4063C220,
-	0x00000002, 0x4062C246, 0x4063C220, 0x00000002, 0x4062C247, 0x4063C220,
-	0x00000002, 0x4062C248, 0x4063C220, 0x00000002, 0x4062C249, 0x4063C220,
-	0x00000002, 0x4062C24A, 0x4063C220, 0x00000002,
-	// Block 496, offset 0x7c00
-	0x4062C24B, 0x4063C220, 0x00000002, 0x4062C24C, 0x4063C220, 0x00000002,
-	0x4062C24D, 0x4063C220, 0x00000002, 0x4062C24E, 0x4063C220, 0x00000002,
-	0x4062C24F, 0x4063C220, 0x00000002, 0x4062C250, 0x4063C220, 0x00000002,
-	0x4062C251, 0x4063C220, 0x00000002, 0x4062C252, 0x4063C220, 0x00000002,
-	0x4062C253, 0x4063C220, 0x00000002, 0x4062C254, 0x4063C220, 0x00000003,
-	0x4062C221, 0x4063C220, 0x40646420, 0x00000003, 0x4062C222, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063C220, 0x40646420, 0x00000003, 0x4062C225, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C226, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C227, 0x4063C220, 0x40646420, 0x00000003, 0x4062C228, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C229, 0x4063C220,
-	// Block 497, offset 0x7c40
-	0x40646420, 0x00000003, 0x4062C22A, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C221, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C222, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C225, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063C220,
-	// Block 498, offset 0x7c80
-	0x40646A20, 0x00000003, 0x4062C230, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C231, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C232, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063C220, 0x40647220, 0x00000003, 0x4062C223, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C222, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C221, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C224, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C227, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063C420,
-	// Block 499, offset 0x7cc0
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C232, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C233, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C234, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C235, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C236, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C237, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C238, 0x4063C420,
-	// Block 500, offset 0x7d00
-	0x40646A20, 0x00000003, 0x4062C239, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C23A, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C23C, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C23D, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C23F, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C240, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C242, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C243, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C244, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C245, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C246, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C247, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C248, 0x4063C420,
-	// Block 501, offset 0x7d40
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063C420, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063C420, 0x40647220, 0x00000003, 0x4062C223, 0x4063C420,
-	0x40647220, 0x00000003, 0x4062C224, 0x4063C420, 0x40647220, 0x00000003,
-	0x4062C225, 0x4063C420, 0x40647220, 0x00000002, 0x4062C221, 0x4063C820,
-	0x00000002, 0x4062C222, 0x4063C820, 0x00000002, 0x4062C223, 0x4063C820,
-	0x00000002, 0x4062C224, 0x4063C820, 0x00000002, 0x4062C225, 0x4063C820,
-	0x00000002, 0x4062C226, 0x4063C820, 0x00000002, 0x4062C227, 0x4063C820,
-	0x00000002, 0x4062C228, 0x4063C820, 0x00000002, 0x4062C229, 0x4063C820,
-	0x00000002, 0x4062C22A, 0x4063C820, 0x00000002, 0x4062C22B, 0x4063C820,
-	0x00000002, 0x4062C22C, 0x4063C820, 0x00000002, 0x4062C22D, 0x4063C820,
-	0x00000002, 0x4062C22E, 0x4063C820, 0x00000002,
-	// Block 502, offset 0x7d80
-	0x4062C22F, 0x4063C820, 0x00000002, 0x4062C230, 0x4063C820, 0x00000002,
-	0x4062C231, 0x4063C820, 0x00000002, 0x4062C232, 0x4063C820, 0x00000002,
-	0x4062C233, 0x4063C820, 0x00000002, 0x4062C234, 0x4063C820, 0x00000002,
-	0x4062C235, 0x4063C820, 0x00000002, 0x4062C236, 0x4063C820, 0x00000002,
-	0x4062C237, 0x4063C820, 0x00000002, 0x4062C238, 0x4063C820, 0x00000002,
-	0x4062C239, 0x4063C820, 0x00000002, 0x4062C23A, 0x4063C820, 0x00000002,
-	0x4062C23B, 0x4063C820, 0x00000002, 0x4062C23C, 0x4063C820, 0x00000002,
-	0x4062C23D, 0x4063C820, 0x00000002, 0x4062C23E, 0x4063C820, 0x00000002,
-	0x4062C23F, 0x4063C820, 0x00000002, 0x4062C240, 0x4063C820, 0x00000002,
-	0x4062C241, 0x4063C820, 0x00000002, 0x4062C242, 0x4063C820, 0x00000002,
-	0x4062C243, 0x4063C820, 0x00000002, 0x4062C244,
-	// Block 503, offset 0x7dc0
-	0x4063C820, 0x00000002, 0x4062C245, 0x4063C820, 0x00000002, 0x4062C246,
-	0x4063C820, 0x00000002, 0x4062C247, 0x4063C820, 0x00000002, 0x4062C221,
-	0x4063CA20, 0x00000002, 0x4062C222, 0x4063CA20, 0x00000002, 0x4062C223,
-	0x4063CA20, 0x00000002, 0x4062C224, 0x4063CA20, 0x00000002, 0x4062C225,
-	0x4063CA20, 0x00000002, 0x4062C226, 0x4063CA20, 0x00000002, 0x4062C227,
-	0x4063CA20, 0x00000002, 0x4062C228, 0x4063CA20, 0x00000002, 0x4062C229,
-	0x4063CA20, 0x00000002, 0x4062C22A, 0x4063CA20, 0x00000002, 0x4062C22B,
-	0x4063CA20, 0x00000002, 0x4062C22C, 0x4063CA20, 0x00000002, 0x4062C22D,
-	0x4063CA20, 0x00000002, 0x4062C22E, 0x4063CA20, 0x00000002, 0x4062C22F,
-	0x4063CA20, 0x00000002, 0x4062C230, 0x4063CA20, 0x00000002, 0x4062C231,
-	0x4063CA20, 0x00000002, 0x4062C232, 0x4063CA20,
-	// Block 504, offset 0x7e00
-	0x00000002, 0x4062C233, 0x4063CA20, 0x00000002, 0x4062C234, 0x4063CA20,
-	0x00000002, 0x4062C235, 0x4063CA20, 0x00000002, 0x4062C236, 0x4063CA20,
-	0x00000002, 0x4062C237, 0x4063CA20, 0x00000002, 0x4062C238, 0x4063CA20,
-	0x00000002, 0x4062C239, 0x4063CA20, 0x00000002, 0x4062C23A, 0x4063CA20,
-	0x00000002, 0x4062C23B, 0x4063CA20, 0x00000002, 0x4062C23C, 0x4063CA20,
-	0x00000002, 0x4062C23D, 0x4063CA20, 0x00000002, 0x4062C23E, 0x4063CA20,
-	0x00000002, 0x4062C23F, 0x4063CA20, 0x00000002, 0x4062C240, 0x4063CA20,
-	0x00000002, 0x4062C241, 0x4063CA20, 0x00000002, 0x4062C242, 0x4063CA20,
-	0x00000002, 0x4062C243, 0x4063CA20, 0x00000002, 0x4062C244, 0x4063CA20,
-	0x00000002, 0x4062C245, 0x4063CA20, 0x00000002, 0x4062C246, 0x4063CA20,
-	0x00000002, 0x4062C247, 0x4063CA20, 0x00000002,
-	// Block 505, offset 0x7e40
-	0x4062C248, 0x4063CA20, 0x00000002, 0x4062C249, 0x4063CA20, 0x00000002,
-	0x4062C24A, 0x4063CA20, 0x00000002, 0x4062C24B, 0x4063CA20, 0x00000002,
-	0x4062C24C, 0x4063CA20, 0x00000002, 0x4062C24D, 0x4063CA20, 0x00000002,
-	0x4062C24E, 0x4063CA20, 0x00000002, 0x4062C24F, 0x4063CA20, 0x00000002,
-	0x4062C250, 0x4063CA20, 0x00000002, 0x4062C251, 0x4063CA20, 0x00000002,
-	0x4062C252, 0x4063CA20, 0x00000002, 0x4062C253, 0x4063CA20, 0x00000002,
-	0x4062C254, 0x4063CA20, 0x00000002, 0x4062C255, 0x4063CA20, 0x00000002,
-	0x4062C256, 0x4063CA20, 0x00000002, 0x4062C257, 0x4063CA20, 0x00000002,
-	0x4062C258, 0x4063CA20, 0x00000002, 0x4062C259, 0x4063CA20, 0x00000002,
-	0x4062C25A, 0x4063CA20, 0x00000002, 0x4062C25B, 0x4063CA20, 0x00000002,
-	0x4062C25C, 0x4063CA20, 0x00000002, 0x4062C25D,
-	// Block 506, offset 0x7e80
-	0x4063CA20, 0x00000002, 0x4062C25E, 0x4063CA20, 0x00000002, 0x4062C25F,
-	0x4063CA20, 0x00000002, 0x4062C260, 0x4063CA20, 0x00000002, 0x4062C261,
-	0x4063CA20, 0x00000002, 0x4062C262, 0x4063CA20, 0x00000002, 0x4062C263,
-	0x4063CA20, 0x00000002, 0x4062C264, 0x4063CA20, 0x00000002, 0x4062C265,
-	0x4063CA20, 0x00000002, 0x4062C266, 0x4063CA20, 0x00000002, 0x4062C267,
-	0x4063CA20, 0x00000002, 0x4062C268, 0x4063CA20, 0x00000002, 0x4062C269,
-	0x4063CA20, 0x00000002, 0x4062C26A, 0x4063CA20, 0x00000002, 0x4062C26B,
-	0x4063CA20, 0x00000002, 0x4062C26C, 0x4063CA20, 0x00000002, 0x4062C26D,
-	0x4063CA20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062C222, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C223, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062C224, 0x4063CA20,
-	// Block 507, offset 0x7ec0
-	0x40646420, 0x00000003, 0x4062C225, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062C221, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063CA20, 0x40647220, 0x00000003, 0x4062C223, 0x4063CA20,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063CA20,
-	// Block 508, offset 0x7f00
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CA20,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062C221, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063CC20,
-	// Block 509, offset 0x7f40
-	0x40646A20, 0x00000003, 0x4062C22D, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C22E, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C230, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C231, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C232, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C233, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C234, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062C222, 0x4063CC20, 0x40647220, 0x00000003,
-	0x4062C221, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C222, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C223, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C224, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C225, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C226, 0x4063CC20,
-	// Block 510, offset 0x7f80
-	0x40648220, 0x00000003, 0x4062C227, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C228, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C229, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C22A, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C22B, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062C223, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C224, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062C225, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062C226, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CC20,
-	0x40648C20, 0x00000002, 0x4062C221, 0x4063CE20,
-	// Block 511, offset 0x7fc0
-	0x00000002, 0x4062C222, 0x4063CE20, 0x00000002, 0x4062C223, 0x4063CE20,
-	0x00000002, 0x4062C224, 0x4063CE20, 0x00000002, 0x4062C225, 0x4063CE20,
-	0x00000002, 0x4062C226, 0x4063CE20, 0x00000002, 0x4062C227, 0x4063CE20,
-	0x00000002, 0x4062C228, 0x4063CE20, 0x00000002, 0x4062C229, 0x4063CE20,
-	0x00000002, 0x4062C22A, 0x4063CE20, 0x00000002, 0x4062C22B, 0x4063CE20,
-	0x00000002, 0x4062C22C, 0x4063CE20, 0x00000002, 0x4062C22D, 0x4063CE20,
-	0x00000002, 0x4062C22E, 0x4063CE20, 0x00000002, 0x4062C22F, 0x4063CE20,
-	0x00000002, 0x4062C230, 0x4063CE20, 0x00000002, 0x4062C231, 0x4063CE20,
-	0x00000002, 0x4062C232, 0x4063CE20, 0x00000002, 0x4062C233, 0x4063CE20,
-	0x00000002, 0x4062C234, 0x4063CE20, 0x00000002, 0x4062C235, 0x4063CE20,
-	0x00000002, 0x4062C236, 0x4063CE20, 0x00000002,
-	// Block 512, offset 0x8000
-	0x4062C237, 0x4063CE20, 0x00000002, 0x4062C238, 0x4063CE20, 0x00000002,
-	0x4062C239, 0x4063CE20, 0x00000002, 0x4062C23A, 0x4063CE20, 0x00000002,
-	0x4062C23B, 0x4063CE20, 0x00000002, 0x4062C23C, 0x4063CE20, 0x00000002,
-	0x4062C23D, 0x4063CE20, 0x00000002, 0x4062C221, 0x4063D020, 0x00000002,
-	0x4062C222, 0x4063D020, 0x00000002, 0x4062C223, 0x4063D020, 0x00000002,
-	0x4062C224, 0x4063D020, 0x00000002, 0x4062C225, 0x4063D020, 0x00000002,
-	0x4062C226, 0x4063D020, 0x00000002, 0x4062C227, 0x4063D020, 0x00000002,
-	0x4062C228, 0x4063D020, 0x00000002, 0x4062C229, 0x4063D020, 0x00000002,
-	0x4062C22A, 0x4063D020, 0x00000002, 0x4062C22B, 0x4063D020, 0x00000002,
-	0x4062C22C, 0x4063D020, 0x00000002, 0x4062C22D, 0x4063D020, 0x00000002,
-	0x4062C22E, 0x4063D020, 0x00000002, 0x4062C22F,
-	// Block 513, offset 0x8040
-	0x4063D020, 0x00000002, 0x4062C230, 0x4063D020, 0x00000002, 0x4062C231,
-	0x4063D020, 0x00000002, 0x4062C232, 0x4063D020, 0x00000002, 0x4062C233,
-	0x4063D020, 0x00000002, 0x4062C234, 0x4063D020, 0x00000002, 0x4062C235,
-	0x4063D020, 0x00000002, 0x4062C236, 0x4063D020, 0x00000002, 0x4062C237,
-	0x4063D020, 0x00000002, 0x4062C238, 0x4063D020, 0x00000002, 0x4062C239,
-	0x4063D020, 0x00000002, 0x4062C23A, 0x4063D020, 0x00000002, 0x4062C23B,
-	0x4063D020, 0x00000002, 0x4062C23C, 0x4063D020, 0x00000002, 0x4062C23D,
-	0x4063D020, 0x00000002, 0x4062C23E, 0x4063D020, 0x00000002, 0x4062C23F,
-	0x4063D020, 0x00000002, 0x4062C240, 0x4063D020, 0x00000002, 0x4062C241,
-	0x4063D020, 0x00000002, 0x4062C242, 0x4063D020, 0x00000002, 0x4062C243,
-	0x4063D020, 0x00000003, 0x4062C221, 0x4063D020,
-	// Block 514, offset 0x8080
-	0x40646420, 0x00000003, 0x4062C222, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40646420, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C225, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40646420, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C228, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C229, 0x4063D020, 0x40646420, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063D020,
-	// Block 515, offset 0x80c0
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C231, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C232, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C233, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C234, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C235, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C236, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C237, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C238, 0x4063D020,
-	// Block 516, offset 0x8100
-	0x40646A20, 0x00000003, 0x4062C239, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C23A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C23C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C221, 0x4063D020, 0x40647220, 0x00000003, 0x4062C222, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C223, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C224, 0x4063D020, 0x40647220, 0x00000003, 0x4062C225, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C226, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C227, 0x4063D020, 0x40647220, 0x00000003, 0x4062C228, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C229, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C22A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C22B, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063D020,
-	// Block 517, offset 0x8140
-	0x40648220, 0x00000003, 0x4062C222, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40648220, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C225, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40648220, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C228, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C229, 0x4063D020, 0x40648220, 0x00000003, 0x4062C22A, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C22B, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C22C, 0x4063D020, 0x40648220, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40648420, 0x00000003, 0x4062C222, 0x4063D020, 0x40648420, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40648420, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063D020,
-	// Block 518, offset 0x8180
-	0x40648C20, 0x00000003, 0x4062C223, 0x4063D020, 0x40648C20, 0x00000003,
-	0x4062C224, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C225, 0x4063D020,
-	0x40648C20, 0x00000002, 0x4062C421, 0x4063A820, 0x00000002, 0x4062C422,
-	0x4063A820, 0x00000002, 0x4062C423, 0x4063A820, 0x00000002, 0x4062C424,
-	0x4063A820, 0x00000002, 0x4062C425, 0x4063A820, 0x00000002, 0x4062C426,
-	0x4063A820, 0x00000002, 0x4062C427, 0x4063A820, 0x00000002, 0x4062C428,
-	0x4063A820, 0x00000002, 0x4062C429, 0x4063A820, 0x00000002, 0x4062C42A,
-	0x4063A820, 0x00000002, 0x4062C42B, 0x4063A820, 0x00000002, 0x4062C42C,
-	0x4063A820, 0x00000002, 0x4062C42D, 0x4063A820, 0x00000002, 0x4062C42E,
-	0x4063A820, 0x00000002, 0x4062C42F, 0x4063A820, 0x00000002, 0x4062C430,
-	0x4063A820, 0x00000002, 0x4062C431, 0x4063A820,
-	// Block 519, offset 0x81c0
-	0x00000002, 0x4062C432, 0x4063A820, 0x00000002, 0x4062C433, 0x4063A820,
-	0x00000002, 0x4062C434, 0x4063A820, 0x00000002, 0x4062C435, 0x4063A820,
-	0x00000002, 0x4062C436, 0x4063A820, 0x00000002, 0x4062C437, 0x4063A820,
-	0x00000002, 0x4062C438, 0x4063A820, 0x00000002, 0x4062C439, 0x4063A820,
-	0x00000002, 0x4062C43A, 0x4063A820, 0x00000002, 0x4062C43B, 0x4063A820,
-	0x00000002, 0x4062C43C, 0x4063A820, 0x00000002, 0x4062C43D, 0x4063A820,
-	0x00000002, 0x4062C43E, 0x4063A820, 0x00000002, 0x4062C43F, 0x4063A820,
-	0x00000002, 0x4062C440, 0x4063A820, 0x00000002, 0x4062C441, 0x4063A820,
-	0x00000002, 0x4062C442, 0x4063A820, 0x00000002, 0x4062C443, 0x4063A820,
-	0x00000002, 0x4062C444, 0x4063A820, 0x00000002, 0x4062C445, 0x4063A820,
-	0x00000002, 0x4062C446, 0x4063A820, 0x00000002,
-	// Block 520, offset 0x8200
-	0x4062C447, 0x4063A820, 0x00000002, 0x4062C448, 0x4063A820, 0x00000002,
-	0x4062C449, 0x4063A820, 0x00000002, 0x4062C44A, 0x4063A820, 0x00000002,
-	0x4062C44B, 0x4063A820, 0x00000002, 0x4062C44C, 0x4063A820, 0x00000002,
-	0x4062C44D, 0x4063A820, 0x00000002, 0x4062C44E, 0x4063A820, 0x00000002,
-	0x4062C44F, 0x4063A820, 0x00000002, 0x4062C450, 0x4063A820, 0x00000002,
-	0x4062C451, 0x4063A820, 0x00000002, 0x4062C452, 0x4063A820, 0x00000002,
-	0x4062C453, 0x4063A820, 0x00000002, 0x4062C454, 0x4063A820, 0x00000003,
-	0x4062C421, 0x4063A820, 0x40646420, 0x00000003, 0x4062C422, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C423, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C424, 0x4063A820, 0x40646420, 0x00000003, 0x4062C425, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C426, 0x4063A820,
-	// Block 521, offset 0x8240
-	0x40646420, 0x00000003, 0x4062C427, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C428, 0x4063A820, 0x40646420, 0x00000003, 0x4062C429, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C42A, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C42B, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42C, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C42D, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C42E, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42F, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C430, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C431, 0x4063A820, 0x40646420, 0x00000003, 0x4062C432, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C433, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C434, 0x4063A820, 0x40646420, 0x00000003, 0x4062C435, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C421, 0x4063A820,
-	// Block 522, offset 0x8280
-	0x40646A20, 0x00000003, 0x4062C422, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C423, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C424, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062C425, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C426, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C427, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062C428, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C421, 0x4063A820, 0x40648220, 0x00000003, 0x4062C422, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C423, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062C424, 0x4063A820, 0x40648220, 0x00000003, 0x4062C425, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C426, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062C427, 0x4063A820, 0x40648220, 0x00000003, 0x4062C428, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C429, 0x4063A820,
-	// Block 523, offset 0x82c0
-	0x40648220, 0x00000003, 0x4062C421, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062C422, 0x4063A820, 0x40648420, 0x00000003, 0x4062C423, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062C424, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062C425, 0x4063A820, 0x40648420, 0x00000003, 0x4062C426, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062C421, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C422, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C424, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C425, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C426, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C427, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C428, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C429, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C42A, 0x4063A820,
-	// Block 524, offset 0x8300
-	0x40648C20, 0x00000003, 0x4062C42B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C42C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C42E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C42F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C430, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C431, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C432, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C434, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C435, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C436, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C437, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C438, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C439, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C43A, 0x4063A820,
-	// Block 525, offset 0x8340
-	0x40648C20, 0x00000003, 0x4062C43B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C43C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C43E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C43F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C440, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C441, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C442, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C443, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C444, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C445, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C446, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C447, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C448, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C449, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C44A, 0x4063A820,
-	// Block 526, offset 0x8380
-	0x40648C20, 0x00000003, 0x4062C44B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C44C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C44E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C44F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C450, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C451, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C452, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C453, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C454, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C455, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C456, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C457, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062C421, 0x4063AA20, 0x00000002, 0x4062C422, 0x4063AA20, 0x00000002,
-	0x4062C423, 0x4063AA20, 0x00000002, 0x4062C424,
-	// Block 527, offset 0x83c0
-	0x4063AA20, 0x00000002, 0x4062C425, 0x4063AA20, 0x00000002, 0x4062C426,
-	0x4063AA20, 0x00000002, 0x4062C427, 0x4063AA20, 0x00000002, 0x4062C428,
-	0x4063AA20, 0x00000002, 0x4062C429, 0x4063AA20, 0x00000002, 0x4062C42A,
-	0x4063AA20, 0x00000002, 0x4062C42B, 0x4063AA20, 0x00000002, 0x4062C42C,
-	0x4063AA20, 0x00000002, 0x4062C42D, 0x4063AA20, 0x00000002, 0x4062C42E,
-	0x4063AA20, 0x00000002, 0x4062C42F, 0x4063AA20, 0x00000002, 0x4062C430,
-	0x4063AA20, 0x00000002, 0x4062C431, 0x4063AA20, 0x00000002, 0x4062C432,
-	0x4063AA20, 0x00000002, 0x4062C433, 0x4063AA20, 0x00000002, 0x4062C434,
-	0x4063AA20, 0x00000002, 0x4062C435, 0x4063AA20, 0x00000002, 0x4062C436,
-	0x4063AA20, 0x00000002, 0x4062C437, 0x4063AA20, 0x00000003, 0x4062C421,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C422,
-	// Block 528, offset 0x8400
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C423, 0x4063AA20, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C426, 0x4063AA20, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063AA20, 0x40648C20, 0x00000002, 0x4062C421, 0x4063B020, 0x00000002,
-	0x4062C422, 0x4063B020, 0x00000002, 0x4062C423, 0x4063B020, 0x00000002,
-	0x4062C424, 0x4063B020, 0x00000002, 0x4062C425, 0x4063B020, 0x00000002,
-	0x4062C426, 0x4063B020, 0x00000002, 0x4062C427, 0x4063B020, 0x00000002,
-	0x4062C428, 0x4063B020, 0x00000002, 0x4062C429, 0x4063B020, 0x00000002,
-	0x4062C42A, 0x4063B020, 0x00000002, 0x4062C42B, 0x4063B020, 0x00000002,
-	0x4062C42C, 0x4063B020, 0x00000002, 0x4062C42D,
-	// Block 529, offset 0x8440
-	0x4063B020, 0x00000002, 0x4062C42E, 0x4063B020, 0x00000002, 0x4062C42F,
-	0x4063B020, 0x00000002, 0x4062C430, 0x4063B020, 0x00000002, 0x4062C431,
-	0x4063B020, 0x00000002, 0x4062C432, 0x4063B020, 0x00000002, 0x4062C433,
-	0x4063B020, 0x00000002, 0x4062C434, 0x4063B020, 0x00000002, 0x4062C435,
-	0x4063B020, 0x00000002, 0x4062C436, 0x4063B020, 0x00000002, 0x4062C437,
-	0x4063B020, 0x00000002, 0x4062C438, 0x4063B020, 0x00000002, 0x4062C439,
-	0x4063B020, 0x00000002, 0x4062C43A, 0x4063B020, 0x00000002, 0x4062C43B,
-	0x4063B020, 0x00000002, 0x4062C43C, 0x4063B020, 0x00000002, 0x4062C43D,
-	0x4063B020, 0x00000002, 0x4062C43E, 0x4063B020, 0x00000002, 0x4062C43F,
-	0x4063B020, 0x00000002, 0x4062C440, 0x4063B020, 0x00000002, 0x4062C441,
-	0x4063B020, 0x00000002, 0x4062C442, 0x4063B020,
-	// Block 530, offset 0x8480
-	0x00000002, 0x4062C443, 0x4063B020, 0x00000002, 0x4062C444, 0x4063B020,
-	0x00000002, 0x4062C445, 0x4063B020, 0x00000002, 0x4062C446, 0x4063B020,
-	0x00000002, 0x4062C447, 0x4063B020, 0x00000002, 0x4062C448, 0x4063B020,
-	0x00000002, 0x4062C449, 0x4063B020, 0x00000002, 0x4062C44A, 0x4063B020,
-	0x00000002, 0x4062C44B, 0x4063B020, 0x00000002, 0x4062C44C, 0x4063B020,
-	0x00000002, 0x4062C44D, 0x4063B020, 0x00000002, 0x4062C44E, 0x4063B020,
-	0x00000003, 0x4062C421, 0x4063B020, 0x40646420, 0x00000003, 0x4062C422,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C423, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C424, 0x4063B020, 0x40646420, 0x00000003, 0x4062C425,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C426, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C427, 0x4063B020, 0x40646420,
-	// Block 531, offset 0x84c0
-	0x00000003, 0x4062C428, 0x4063B020, 0x40646420, 0x00000003, 0x4062C429,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C42A, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C42B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42C,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C42D, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C42E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42F,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C430, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C431, 0x4063B020, 0x40646420, 0x00000003, 0x4062C432,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C433, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C434, 0x4063B020, 0x40646420, 0x00000003, 0x4062C435,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C436, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C437, 0x4063B020, 0x40646420,
-	// Block 532, offset 0x8500
-	0x00000003, 0x4062C438, 0x4063B020, 0x40646420, 0x00000003, 0x4062C439,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C43A, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C43B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43C,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C43D, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C43E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43F,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C421, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C422, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C423,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C424, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C425, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C426,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C427, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C428, 0x4063B020, 0x40646A20,
-	// Block 533, offset 0x8540
-	0x00000003, 0x4062C429, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C42F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C430,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C431, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C432, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C433,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C434, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C435, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C436,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C437, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C438, 0x4063B020, 0x40646A20,
-	// Block 534, offset 0x8580
-	0x00000003, 0x4062C439, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C43C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C43F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C440,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C441, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C442, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C443,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C444, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C445, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C446,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C447, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C448, 0x4063B020, 0x40646A20,
-	// Block 535, offset 0x85c0
-	0x00000003, 0x4062C449, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C44C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C44F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C450,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C451, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C452, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C453,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C454, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C455, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C456,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C457, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C458, 0x4063B020, 0x40646A20,
-	// Block 536, offset 0x8600
-	0x00000003, 0x4062C459, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C45C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C45F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C460,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C461, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C462, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C463,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C464, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C465, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C466,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C467, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C468, 0x4063B020, 0x40646A20,
-	// Block 537, offset 0x8640
-	0x00000003, 0x4062C469, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C46B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C46C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C46E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C46F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C470,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C471, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C421, 0x4063B020, 0x40647220, 0x00000003, 0x4062C422,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C423, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C424, 0x4063B020, 0x40647220, 0x00000003, 0x4062C425,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C426, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C427, 0x4063B020, 0x40647220,
-	// Block 538, offset 0x8680
-	0x00000003, 0x4062C428, 0x4063B020, 0x40647220, 0x00000003, 0x4062C429,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C42A, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C42B, 0x4063B020, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C422, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C423, 0x4063B020, 0x40648220, 0x00000003, 0x4062C424,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C425, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C426, 0x4063B020, 0x40648220, 0x00000003, 0x4062C427,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C428, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C42B, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40648220,
-	// Block 539, offset 0x86c0
-	0x00000003, 0x4062C42D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42E,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C430, 0x4063B020, 0x40648220, 0x00000003, 0x4062C431,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C432, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C433, 0x4063B020, 0x40648220, 0x00000003, 0x4062C434,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C421, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C422, 0x4063B020, 0x40648420, 0x00000003, 0x4062C423,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C424, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C425, 0x4063B020, 0x40648420, 0x00000003, 0x4062C426,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C427, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C428, 0x4063B020, 0x40648420,
-	// Block 540, offset 0x8700
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648420, 0x00000003, 0x4062C421,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C422, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C423, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C424,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C425, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C426, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C427,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C428, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C42F, 0x4063B020, 0x40648C20,
-	// Block 541, offset 0x8740
-	0x00000003, 0x4062C430, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C431,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C432, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C433, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C434,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C435, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C436, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C437,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C438, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C439, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C43C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C43F, 0x4063B020, 0x40648C20,
-	// Block 542, offset 0x8780
-	0x00000003, 0x4062C440, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C441,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C442, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C443, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C444,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C445, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C446, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C447,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C448, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C449, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C44C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C44F, 0x4063B020, 0x40648C20,
-	// Block 543, offset 0x87c0
-	0x00000003, 0x4062C450, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C451,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C452, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C453, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C454,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C455, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C456, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C457,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C458, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C459, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C45C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C45F, 0x4063B020, 0x40648C20,
-	// Block 544, offset 0x8800
-	0x00000003, 0x4062C460, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C461,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C462, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C463, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C464,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C465, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C466, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C467,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C468, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C469, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C46A,
-	0x4063B020, 0x40648C20, 0x00000002, 0x4062C421, 0x4063B220, 0x00000002,
-	0x4062C422, 0x4063B220, 0x00000002, 0x4062C423, 0x4063B220, 0x00000002,
-	0x4062C424, 0x4063B220, 0x00000002, 0x4062C425, 0x4063B220, 0x00000002,
-	0x4062C426, 0x4063B220, 0x00000002, 0x4062C427,
-	// Block 545, offset 0x8840
-	0x4063B220, 0x00000002, 0x4062C428, 0x4063B220, 0x00000002, 0x4062C429,
-	0x4063B220, 0x00000002, 0x4062C42A, 0x4063B220, 0x00000002, 0x4062C42B,
-	0x4063B220, 0x00000002, 0x4062C42C, 0x4063B220, 0x00000002, 0x4062C42D,
-	0x4063B220, 0x00000002, 0x4062C42E, 0x4063B220, 0x00000002, 0x4062C42F,
-	0x4063B220, 0x00000002, 0x4062C430, 0x4063B220, 0x00000002, 0x4062C431,
-	0x4063B220, 0x00000002, 0x4062C432, 0x4063B220, 0x00000002, 0x4062C433,
-	0x4063B220, 0x00000002, 0x4062C434, 0x4063B220, 0x00000002, 0x4062C435,
-	0x4063B220, 0x00000002, 0x4062C436, 0x4063B220, 0x00000002, 0x4062C437,
-	0x4063B220, 0x00000002, 0x4062C438, 0x4063B220, 0x00000002, 0x4062C439,
-	0x4063B220, 0x00000002, 0x4062C43A, 0x4063B220, 0x00000002, 0x4062C43B,
-	0x4063B220, 0x00000002, 0x4062C43C, 0x4063B220,
-	// Block 546, offset 0x8880
-	0x00000002, 0x4062C43D, 0x4063B220, 0x00000002, 0x4062C43E, 0x4063B220,
-	0x00000002, 0x4062C43F, 0x4063B220, 0x00000002, 0x4062C440, 0x4063B220,
-	0x00000002, 0x4062C441, 0x4063B220, 0x00000002, 0x4062C442, 0x4063B220,
-	0x00000002, 0x4062C443, 0x4063B220, 0x00000002, 0x4062C444, 0x4063B220,
-	0x00000002, 0x4062C445, 0x4063B220, 0x00000002, 0x4062C446, 0x4063B220,
-	0x00000002, 0x4062C447, 0x4063B220, 0x00000002, 0x4062C448, 0x4063B220,
-	0x00000002, 0x4062C421, 0x4063B820, 0x00000002, 0x4062C422, 0x4063B820,
-	0x00000002, 0x4062C423, 0x4063B820, 0x00000002, 0x4062C424, 0x4063B820,
-	0x00000002, 0x4062C425, 0x4063B820, 0x00000002, 0x4062C426, 0x4063B820,
-	0x00000002, 0x4062C427, 0x4063B820, 0x00000002, 0x4062C428, 0x4063B820,
-	0x00000002, 0x4062C429, 0x4063B820, 0x00000002,
-	// Block 547, offset 0x88c0
-	0x4062C42A, 0x4063B820, 0x00000002, 0x4062C42B, 0x4063B820, 0x00000002,
-	0x4062C42C, 0x4063B820, 0x00000002, 0x4062C42D, 0x4063B820, 0x00000002,
-	0x4062C42E, 0x4063B820, 0x00000002, 0x4062C42F, 0x4063B820, 0x00000002,
-	0x4062C430, 0x4063B820, 0x00000002, 0x4062C431, 0x4063B820, 0x00000002,
-	0x4062C432, 0x4063B820, 0x00000002, 0x4062C433, 0x4063B820, 0x00000002,
-	0x4062C434, 0x4063B820, 0x00000002, 0x4062C435, 0x4063B820, 0x00000002,
-	0x4062C436, 0x4063B820, 0x00000002, 0x4062C437, 0x4063B820, 0x00000002,
-	0x4062C438, 0x4063B820, 0x00000002, 0x4062C439, 0x4063B820, 0x00000002,
-	0x4062C43A, 0x4063B820, 0x00000002, 0x4062C43B, 0x4063B820, 0x00000002,
-	0x4062C43C, 0x4063B820, 0x00000002, 0x4062C43D, 0x4063B820, 0x00000002,
-	0x4062C43E, 0x4063B820, 0x00000002, 0x4062C43F,
-	// Block 548, offset 0x8900
-	0x4063B820, 0x00000002, 0x4062C440, 0x4063B820, 0x00000002, 0x4062C441,
-	0x4063B820, 0x00000002, 0x4062C442, 0x4063B820, 0x00000002, 0x4062C443,
-	0x4063B820, 0x00000002, 0x4062C444, 0x4063B820, 0x00000002, 0x4062C445,
-	0x4063B820, 0x00000002, 0x4062C446, 0x4063B820, 0x00000002, 0x4062C447,
-	0x4063B820, 0x00000002, 0x4062C448, 0x4063B820, 0x00000002, 0x4062C449,
-	0x4063B820, 0x00000002, 0x4062C44A, 0x4063B820, 0x00000002, 0x4062C44B,
-	0x4063B820, 0x00000002, 0x4062C44C, 0x4063B820, 0x00000002, 0x4062C44D,
-	0x4063B820, 0x00000002, 0x4062C44E, 0x4063B820, 0x00000002, 0x4062C44F,
-	0x4063B820, 0x00000002, 0x4062C450, 0x4063B820, 0x00000002, 0x4062C451,
-	0x4063B820, 0x00000002, 0x4062C452, 0x4063B820, 0x00000002, 0x4062C453,
-	0x4063B820, 0x00000002, 0x4062C454, 0x4063B820,
-	// Block 549, offset 0x8940
-	0x00000002, 0x4062C455, 0x4063B820, 0x00000002, 0x4062C456, 0x4063B820,
-	0x00000002, 0x4062C457, 0x4063B820, 0x00000002, 0x4062C458, 0x4063B820,
-	0x00000002, 0x4062C459, 0x4063B820, 0x00000002, 0x4062C45A, 0x4063B820,
-	0x00000002, 0x4062C45B, 0x4063B820, 0x00000002, 0x4062C45C, 0x4063B820,
-	0x00000002, 0x4062C45D, 0x4063B820, 0x00000002, 0x4062C45E, 0x4063B820,
-	0x00000002, 0x4062C45F, 0x4063B820, 0x00000002, 0x4062C460, 0x4063B820,
-	0x00000002, 0x4062C461, 0x4063B820, 0x00000002, 0x4062C462, 0x4063B820,
-	0x00000002, 0x4062C463, 0x4063B820, 0x00000002, 0x4062C464, 0x4063B820,
-	0x00000002, 0x4062C465, 0x4063B820, 0x00000002, 0x4062C466, 0x4063B820,
-	0x00000002, 0x4062C467, 0x4063B820, 0x00000002, 0x4062C468, 0x4063B820,
-	0x00000002, 0x4062C469, 0x4063B820, 0x00000002,
-	// Block 550, offset 0x8980
-	0x4062C46A, 0x4063B820, 0x00000002, 0x4062C46B, 0x4063B820, 0x00000002,
-	0x4062C46C, 0x4063B820, 0x00000002, 0x4062C46D, 0x4063B820, 0x00000002,
-	0x4062C46E, 0x4063B820, 0x00000002, 0x4062C46F, 0x4063B820, 0x00000002,
-	0x4062C470, 0x4063B820, 0x00000003, 0x4062C421, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062C422, 0x4063B820, 0x40646420, 0x00000003, 0x4062C423,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062C424, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062C425, 0x4063B820, 0x40646420, 0x00000003, 0x4062C421,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062C422, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062C423, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C421,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062C422, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062C423, 0x4063B820, 0x40647220,
-	// Block 551, offset 0x89c0
-	0x00000003, 0x4062C421, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C426, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C429, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C42A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42B,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C42C, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C42D, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42E,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C430, 0x4063B820, 0x40648C20,
-	// Block 552, offset 0x8a00
-	0x00000003, 0x4062C431, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C432,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C434, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C435,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C436, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C437, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C438,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C439, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C43A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C43B,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062C421, 0x4063BA20, 0x00000002,
-	0x4062C422, 0x4063BA20, 0x00000002, 0x4062C423, 0x4063BA20, 0x00000002,
-	0x4062C424, 0x4063BA20, 0x00000002, 0x4062C425, 0x4063BA20, 0x00000002,
-	0x4062C426, 0x4063BA20, 0x00000002, 0x4062C427,
-	// Block 553, offset 0x8a40
-	0x4063BA20, 0x00000002, 0x4062C428, 0x4063BA20, 0x00000002, 0x4062C429,
-	0x4063BA20, 0x00000002, 0x4062C421, 0x4063BE20, 0x00000002, 0x4062C421,
-	0x4063C220, 0x00000002, 0x4062C422, 0x4063C220, 0x00000002, 0x4062C423,
-	0x4063C220, 0x00000002, 0x4062C424, 0x4063C220, 0x00000002, 0x4062C425,
-	0x4063C220, 0x00000002, 0x4062C426, 0x4063C220, 0x00000002, 0x4062C427,
-	0x4063C220, 0x00000002, 0x4062C428, 0x4063C220, 0x00000002, 0x4062C429,
-	0x4063C220, 0x00000002, 0x4062C42A, 0x4063C220, 0x00000002, 0x4062C42B,
-	0x4063C220, 0x00000002, 0x4062C42C, 0x4063C220, 0x00000002, 0x4062C42D,
-	0x4063C220, 0x00000002, 0x4062C42E, 0x4063C220, 0x00000002, 0x4062C42F,
-	0x4063C220, 0x00000002, 0x4062C430, 0x4063C220, 0x00000002, 0x4062C431,
-	0x4063C220, 0x00000002, 0x4062C432, 0x4063C220,
-	// Block 554, offset 0x8a80
-	0x00000002, 0x4062C433, 0x4063C220, 0x00000002, 0x4062C434, 0x4063C220,
-	0x00000002, 0x4062C435, 0x4063C220, 0x00000002, 0x4062C436, 0x4063C220,
-	0x00000002, 0x4062C437, 0x4063C220, 0x00000002, 0x4062C438, 0x4063C220,
-	0x00000002, 0x4062C439, 0x4063C220, 0x00000002, 0x4062C43A, 0x4063C220,
-	0x00000002, 0x4062C43B, 0x4063C220, 0x00000002, 0x4062C43C, 0x4063C220,
-	0x00000002, 0x4062C43D, 0x4063C220, 0x00000002, 0x4062C43E, 0x4063C220,
-	0x00000002, 0x4062C43F, 0x4063C220, 0x00000002, 0x4062C440, 0x4063C220,
-	0x00000002, 0x4062C441, 0x4063C220, 0x00000002, 0x4062C442, 0x4063C220,
-	0x00000002, 0x4062C443, 0x4063C220, 0x00000002, 0x4062C444, 0x4063C220,
-	0x00000002, 0x4062C445, 0x4063C220, 0x00000002, 0x4062C446, 0x4063C220,
-	0x00000002, 0x4062C447, 0x4063C220, 0x00000002,
-	// Block 555, offset 0x8ac0
-	0x4062C448, 0x4063C220, 0x00000002, 0x4062C449, 0x4063C220, 0x00000002,
-	0x4062C44A, 0x4063C220, 0x00000002, 0x4062C44B, 0x4063C220, 0x00000002,
-	0x4062C44C, 0x4063C220, 0x00000002, 0x4062C44D, 0x4063C220, 0x00000002,
-	0x4062C44E, 0x4063C220, 0x00000002, 0x4062C44F, 0x4063C220, 0x00000002,
-	0x4062C450, 0x4063C220, 0x00000002, 0x4062C451, 0x4063C220, 0x00000002,
-	0x4062C452, 0x4063C220, 0x00000002, 0x4062C453, 0x4063C220, 0x00000002,
-	0x4062C454, 0x4063C220, 0x00000002, 0x4062C455, 0x4063C220, 0x00000002,
-	0x4062C456, 0x4063C220, 0x00000002, 0x4062C457, 0x4063C220, 0x00000002,
-	0x4062C458, 0x4063C220, 0x00000002, 0x4062C459, 0x4063C220, 0x00000002,
-	0x4062C45A, 0x4063C220, 0x00000002, 0x4062C45B, 0x4063C220, 0x00000002,
-	0x4062C45C, 0x4063C220, 0x00000002, 0x4062C45D,
-	// Block 556, offset 0x8b00
-	0x4063C220, 0x00000002, 0x4062C45E, 0x4063C220, 0x00000003, 0x4062C421,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062C422, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062C421, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C422,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C423, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C424, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C425,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C426, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C427, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C428,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C429, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C42A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C42C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C42D, 0x4063C220, 0x40646A20,
-	// Block 557, offset 0x8b40
-	0x00000003, 0x4062C42E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C430, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C431, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C432,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C433, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C434, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C435,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C436, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C437, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C438,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C439, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C43A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C43C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C43D, 0x4063C220, 0x40646A20,
-	// Block 558, offset 0x8b80
-	0x00000003, 0x4062C43E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C440, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C441, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C442,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C421, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062C422, 0x4063C220, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062C422, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062C423, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C424,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062C425, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C422,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062C423, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40647220,
-	// Block 559, offset 0x8bc0
-	0x00000003, 0x4062C422, 0x4063CC20, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062C422, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062C423, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C424,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062C425, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C423, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C426, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C429, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C42A, 0x4063CC20, 0x40648C20,
-	// Block 560, offset 0x8c00
-	0x00000003, 0x4062C42B, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42C,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C42E, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C421,
-	0x4063D020, 0x00000002, 0x4062C422, 0x4063D020, 0x00000002, 0x4062C423,
-	0x4063D020, 0x00000002, 0x4062C424, 0x4063D020, 0x00000002, 0x4062C425,
-	0x4063D020, 0x00000002, 0x4062C426, 0x4063D020, 0x00000002, 0x4062C427,
-	0x4063D020, 0x00000002, 0x4062C428, 0x4063D020, 0x00000002, 0x4062C429,
-	0x4063D020, 0x00000002, 0x4062C42A, 0x4063D020, 0x00000002, 0x4062C42B,
-	0x4063D020, 0x00000002, 0x4062C42C, 0x4063D020, 0x00000002, 0x4062C42D,
-	0x4063D020, 0x00000002, 0x4062C42E, 0x4063D020, 0x00000002, 0x4062C42F,
-	0x4063D020, 0x00000002, 0x4062C430, 0x4063D020,
-	// Block 561, offset 0x8c40
-	0x00000002, 0x4062C431, 0x4063D020, 0x00000002, 0x4062C432, 0x4063D020,
-	0x00000002, 0x4062C433, 0x4063D020, 0x00000002, 0x4062C434, 0x4063D020,
-	0x00000002, 0x4062C435, 0x4063D020, 0x00000002, 0x4062C436, 0x4063D020,
-	0x00000002, 0x4062C437, 0x4063D020, 0x00000002, 0x4062C438, 0x4063D020,
-	0x00000002, 0x4062C439, 0x4063D020, 0x00000002, 0x4062C43A, 0x4063D020,
-	0x00000002, 0x4062C43B, 0x4063D020, 0x00000002, 0x4062C43C, 0x4063D020,
-	0x00000002, 0x4062C43D, 0x4063D020, 0x00000002, 0x4062C43E, 0x4063D020,
-	0x00000002, 0x4062C43F, 0x4063D020, 0x00000002, 0x4062C440, 0x4063D020,
-	0x00000002, 0x4062C441, 0x4063D020, 0x00000002, 0x4062C442, 0x4063D020,
-	0x00000002, 0x4062C443, 0x4063D020, 0x00000002, 0x4062C444, 0x4063D020,
-	0x00000002, 0x4062C445, 0x4063D020, 0x00000002,
-	// Block 562, offset 0x8c80
-	0x4062C446, 0x4063D020, 0x00000002, 0x4062C447, 0x4063D020, 0x00000002,
-	0x4062C448, 0x4063D020, 0x00000002, 0x4062C449, 0x4063D020, 0x00000002,
-	0x4062C44A, 0x4063D020, 0x00000002, 0x4062C44B, 0x4063D020, 0x00000002,
-	0x4062C44C, 0x4063D020, 0x00000002, 0x4062C44D, 0x4063D020, 0x00000002,
-	0x4062C44E, 0x4063D020, 0x00000002, 0x4062C44F, 0x4063D020, 0x00000002,
-	0x4062C450, 0x4063D020, 0x00000003, 0x4062C421, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40646420, 0x00000003, 0x4062C423,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062C424, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062C425, 0x4063D020, 0x40646420, 0x00000003, 0x4062C426,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062C421, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40646A20,
-	// Block 563, offset 0x8cc0
-	0x00000003, 0x4062C423, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C425, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C427,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C428, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C429, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C42B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C42C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C42E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C42F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C430,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C431, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C432, 0x4063D020, 0x40646A20,
-	// Block 564, offset 0x8d00
-	0x00000003, 0x4062C433, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C434,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C435, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C436, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C437,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C438, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C439, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C43B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C43C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C43E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C43F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C440,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C441, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C442, 0x4063D020, 0x40646A20,
-	// Block 565, offset 0x8d40
-	0x00000003, 0x4062C443, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C444,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C445, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C446, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C447,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C448, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C449, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C44A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C44B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C44C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C421,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C422, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C423, 0x4063D020, 0x40647220, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C425, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40647220,
-	// Block 566, offset 0x8d80
-	0x00000003, 0x4062C427, 0x4063D020, 0x40647220, 0x00000003, 0x4062C428,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C429, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C42A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42B,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C42C, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C42D, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42E,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C42F, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C430, 0x4063D020, 0x40647220, 0x00000003, 0x4062C431,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C432, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C433, 0x4063D020, 0x40647220, 0x00000003, 0x4062C434,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C421, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40648220,
-	// Block 567, offset 0x8dc0
-	0x00000003, 0x4062C423, 0x4063D020, 0x40648220, 0x00000003, 0x4062C421,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C422, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C423, 0x4063D020, 0x40648420, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C425, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40648420, 0x00000003, 0x4062C427,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C428, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C421, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062C423, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062C426, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063D020, 0x40648C20,
-	// Block 568, offset 0x8e00
-	0x00000002, 0x4062C821, 0x4063A820, 0x00000002, 0x4062C822, 0x4063A820,
-	0x00000002, 0x4062C823, 0x4063A820, 0x00000002, 0x4062C824, 0x4063A820,
-	0x00000002, 0x4062C825, 0x4063A820, 0x00000002, 0x4062C826, 0x4063A820,
-	0x00000002, 0x4062C827, 0x4063A820, 0x00000002, 0x4062C828, 0x4063A820,
-	0x00000002, 0x4062C829, 0x4063A820, 0x00000002, 0x4062C82A, 0x4063A820,
-	0x00000002, 0x4062C82B, 0x4063A820, 0x00000002, 0x4062C82C, 0x4063A820,
-	0x00000002, 0x4062C82D, 0x4063A820, 0x00000002, 0x4062C82E, 0x4063A820,
-	0x00000002, 0x4062C82F, 0x4063A820, 0x00000002, 0x4062C830, 0x4063A820,
-	0x00000002, 0x4062C831, 0x4063A820, 0x00000002, 0x4062C832, 0x4063A820,
-	0x00000002, 0x4062C833, 0x4063A820, 0x00000002, 0x4062C834, 0x4063A820,
-	0x00000002, 0x4062C835, 0x4063A820, 0x00000002,
-	// Block 569, offset 0x8e40
-	0x4062C836, 0x4063A820, 0x00000003, 0x4062C821, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C822, 0x4063A820, 0x40646420, 0x00000003, 0x4062C823,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C824, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C825, 0x4063A820, 0x40646420, 0x00000003, 0x4062C826,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C827, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C828, 0x4063A820, 0x40646420, 0x00000003, 0x4062C829,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C821, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C822,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C823, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C824, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C825,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C826,
-	// Block 570, offset 0x8e80
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C827, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C828, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C829,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C82B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82C,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C82D, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C82E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82F,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C830, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C831, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C832,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C833, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C834, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C835,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C836,
-	// Block 571, offset 0x8ec0
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C837, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C821, 0x4063A820, 0x40647220, 0x00000003, 0x4062C822,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C823, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C824, 0x4063A820, 0x40647220, 0x00000003, 0x4062C825,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C826, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C827, 0x4063A820, 0x40647220, 0x00000003, 0x4062C821,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C822, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C823, 0x4063A820, 0x40648220, 0x00000003, 0x4062C824,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C825, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C826, 0x4063A820, 0x40648220, 0x00000003, 0x4062C827,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C828,
-	// Block 572, offset 0x8f00
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C829, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C82A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82B,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C82C, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C82D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82E,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C830, 0x4063A820, 0x40648220, 0x00000003, 0x4062C831,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C832, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C833, 0x4063A820, 0x40648220, 0x00000003, 0x4062C834,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C835, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C836, 0x4063A820, 0x40648220, 0x00000003, 0x4062C837,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C838,
-	// Block 573, offset 0x8f40
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C839, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C83A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C821,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C822, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C823, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C824,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C825, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C826, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C827,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C828, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C829, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C82C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82E,
-	// Block 574, offset 0x8f80
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C830, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C831,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C832, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C833, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C834,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C835, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C836, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C837,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C838, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C839, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C83C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83E,
-	// Block 575, offset 0x8fc0
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C840, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C841,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C842, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C843, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C844,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C845, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C846, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C847,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C848, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C849, 0x4063A820, 0x40648C20, 0x00000002, 0x4062C821,
-	0x4063AA20, 0x00000002, 0x4062C822, 0x4063AA20, 0x00000002, 0x4062C823,
-	0x4063AA20, 0x00000002, 0x4062C824, 0x4063AA20, 0x00000002, 0x4062C825,
-	0x4063AA20, 0x00000002, 0x4062C826, 0x4063AA20,
-	// Block 576, offset 0x9000
-	0x00000002, 0x4062C827, 0x4063AA20, 0x00000002, 0x4062C828, 0x4063AA20,
-	0x00000002, 0x4062C829, 0x4063AA20, 0x00000002, 0x4062C82A, 0x4063AA20,
-	0x00000002, 0x4062C82B, 0x4063AA20, 0x00000002, 0x4062C82C, 0x4063AA20,
-	0x00000002, 0x4062C82D, 0x4063AA20, 0x00000002, 0x4062C82E, 0x4063AA20,
-	0x00000003, 0x4062C821, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C822,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C823, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C824, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C825,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C826, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C827, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C828,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C829, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C82A, 0x4063AA20, 0x40646420,
-	// Block 577, offset 0x9040
-	0x00000002, 0x4062C821, 0x4063B020, 0x00000002, 0x4062C822, 0x4063B020,
-	0x00000002, 0x4062C823, 0x4063B020, 0x00000002, 0x4062C824, 0x4063B020,
-	0x00000002, 0x4062C825, 0x4063B020, 0x00000002, 0x4062C826, 0x4063B020,
-	0x00000002, 0x4062C827, 0x4063B020, 0x00000002, 0x4062C828, 0x4063B020,
-	0x00000002, 0x4062C829, 0x4063B020, 0x00000003, 0x4062C821, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063B020, 0x40646420, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C825, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40646420, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C828, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 578, offset 0x9080
-	0x4062C82A, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C82C, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82E, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C82F, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C830, 0x4063B020, 0x40646420, 0x00000003, 0x4062C831, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C832, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C833, 0x4063B020, 0x40646420, 0x00000003, 0x4062C834, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C835, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C836, 0x4063B020, 0x40646420, 0x00000003, 0x4062C837, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C822, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 579, offset 0x90c0
-	0x4062C823, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C825, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C828, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C82B, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C82C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82D, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C82E, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C82F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C830, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C831, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C832, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 580, offset 0x9100
-	0x4062C833, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C834, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C835, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C836, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C837, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C838, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C839, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83A, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C83B, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C83C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83D, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C83E, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C83F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C840, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C841, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C842, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 581, offset 0x9140
-	0x4062C843, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C844, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C845, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C821, 0x4063B020, 0x40647220, 0x00000003, 0x4062C822, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C823, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C824, 0x4063B020, 0x40647220, 0x00000003, 0x4062C825, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C826, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C827, 0x4063B020, 0x40647220, 0x00000003, 0x4062C828, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C829, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C82A, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C82C, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 582, offset 0x9180
-	0x4062C82E, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82F, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C830, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C831, 0x4063B020, 0x40647220, 0x00000003, 0x4062C832, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C833, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C834, 0x4063B020, 0x40647220, 0x00000003, 0x4062C821, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C822, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C823, 0x4063B020, 0x40648220, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C825, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40648220, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C828, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 583, offset 0x91c0
-	0x4062C82A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C82C, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82E, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C82F, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C830, 0x4063B020, 0x40648220, 0x00000003, 0x4062C831, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C832, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C821, 0x4063B020, 0x40648420, 0x00000003, 0x4062C822, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C823, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C824, 0x4063B020, 0x40648420, 0x00000003, 0x4062C825, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C826, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C827, 0x4063B020, 0x40648420, 0x00000003,
-	// Block 584, offset 0x9200
-	0x4062C828, 0x4063B020, 0x40648420, 0x00000003, 0x4062C829, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C82A, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C82B, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82C, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C82D, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C82E, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82F, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C821, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C822, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C823, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C824, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C825, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C826, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C827, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C828, 0x4063B020, 0x40648C20, 0x00000003,
-	// Block 585, offset 0x9240
-	0x4062C829, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C82B, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C82C, 0x4063B020, 0x40648C20, 0x00000002, 0x4062C821, 0x4063B220,
-	0x00000002, 0x4062C822, 0x4063B220, 0x00000002, 0x4062C823, 0x4063B220,
-	0x00000002, 0x4062C824, 0x4063B220, 0x00000002, 0x4062C825, 0x4063B220,
-	0x00000002, 0x4062C826, 0x4063B220, 0x00000002, 0x4062C827, 0x4063B220,
-	0x00000002, 0x4062C828, 0x4063B220, 0x00000002, 0x4062C829, 0x4063B220,
-	0x00000002, 0x4062C82A, 0x4063B220, 0x00000002, 0x4062C82B, 0x4063B220,
-	0x00000002, 0x4062C82C, 0x4063B220, 0x00000002, 0x4062C82D, 0x4063B220,
-	0x00000002, 0x4062C82E, 0x4063B220, 0x00000002, 0x4062C82F, 0x4063B220,
-	0x00000002, 0x4062C830, 0x4063B220, 0x00000002,
-	// Block 586, offset 0x9280
-	0x4062C831, 0x4063B220, 0x00000002, 0x4062C832, 0x4063B220, 0x00000002,
-	0x4062C833, 0x4063B220, 0x00000002, 0x4062C834, 0x4063B220, 0x00000002,
-	0x4062C821, 0x4063B820, 0x00000002, 0x4062C822, 0x4063B820, 0x00000002,
-	0x4062C823, 0x4063B820, 0x00000002, 0x4062C824, 0x4063B820, 0x00000002,
-	0x4062C825, 0x4063B820, 0x00000002, 0x4062C826, 0x4063B820, 0x00000002,
-	0x4062C827, 0x4063B820, 0x00000002, 0x4062C828, 0x4063B820, 0x00000002,
-	0x4062C829, 0x4063B820, 0x00000002, 0x4062C82A, 0x4063B820, 0x00000002,
-	0x4062C82B, 0x4063B820, 0x00000002, 0x4062C82C, 0x4063B820, 0x00000002,
-	0x4062C82D, 0x4063B820, 0x00000002, 0x4062C82E, 0x4063B820, 0x00000002,
-	0x4062C82F, 0x4063B820, 0x00000002, 0x4062C830, 0x4063B820, 0x00000002,
-	0x4062C831, 0x4063B820, 0x00000002, 0x4062C832,
-	// Block 587, offset 0x92c0
-	0x4063B820, 0x00000002, 0x4062C833, 0x4063B820, 0x00000002, 0x4062C834,
-	0x4063B820, 0x00000002, 0x4062C835, 0x4063B820, 0x00000002, 0x4062C836,
-	0x4063B820, 0x00000002, 0x4062C837, 0x4063B820, 0x00000002, 0x4062C838,
-	0x4063B820, 0x00000002, 0x4062C839, 0x4063B820, 0x00000002, 0x4062C83A,
-	0x4063B820, 0x00000002, 0x4062C83B, 0x4063B820, 0x00000002, 0x4062C83C,
-	0x4063B820, 0x00000002, 0x4062C83D, 0x4063B820, 0x00000002, 0x4062C83E,
-	0x4063B820, 0x00000002, 0x4062C83F, 0x4063B820, 0x00000002, 0x4062C840,
-	0x4063B820, 0x00000002, 0x4062C841, 0x4063B820, 0x00000002, 0x4062C842,
-	0x4063B820, 0x00000002, 0x4062C843, 0x4063B820, 0x00000002, 0x4062C844,
-	0x4063B820, 0x00000002, 0x4062C845, 0x4063B820, 0x00000002, 0x4062C846,
-	0x4063B820, 0x00000002, 0x4062C847, 0x4063B820,
-	// Block 588, offset 0x9300
-	0x00000002, 0x4062C848, 0x4063B820, 0x00000002, 0x4062C849, 0x4063B820,
-	0x00000002, 0x4062C84A, 0x4063B820, 0x00000002, 0x4062C84B, 0x4063B820,
-	0x00000002, 0x4062C84C, 0x4063B820, 0x00000002, 0x4062C84D, 0x4063B820,
-	0x00000002, 0x4062C84E, 0x4063B820, 0x00000002, 0x4062C84F, 0x4063B820,
-	0x00000002, 0x4062C850, 0x4063B820, 0x00000002, 0x4062C851, 0x4063B820,
-	0x00000002, 0x4062C852, 0x4063B820, 0x00000002, 0x4062C853, 0x4063B820,
-	0x00000002, 0x4062C854, 0x4063B820, 0x00000002, 0x4062C855, 0x4063B820,
-	0x00000002, 0x4062C856, 0x4063B820, 0x00000002, 0x4062C857, 0x4063B820,
-	0x00000002, 0x4062C858, 0x4063B820, 0x00000003, 0x4062C821, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 589, offset 0x9340
-	0x4062C824, 0x4063B820, 0x40646420, 0x00000003, 0x4062C825, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C826, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C827, 0x4063B820, 0x40646420, 0x00000003, 0x4062C828, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C829, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C82A, 0x4063B820, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C82C, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C821, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C822, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C823, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C824, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C825, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C821, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C822, 0x4063B820, 0x40648C20, 0x00000003,
-	// Block 590, offset 0x9380
-	0x4062C823, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C825, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C826, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C828, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C829, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C82B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C82C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C82E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C82F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C821, 0x4063BA20,
-	0x40647220, 0x00000002, 0x4062C821, 0x4063BE20, 0x00000002, 0x4062C822,
-	0x4063BE20, 0x00000002, 0x4062C823, 0x4063BE20,
-	// Block 591, offset 0x93c0
-	0x00000002, 0x4062C824, 0x4063BE20, 0x00000002, 0x4062C825, 0x4063BE20,
-	0x00000002, 0x4062C826, 0x4063BE20, 0x00000002, 0x4062C827, 0x4063BE20,
-	0x00000002, 0x4062C828, 0x4063BE20, 0x00000002, 0x4062C829, 0x4063BE20,
-	0x00000002, 0x4062C82A, 0x4063BE20, 0x00000002, 0x4062C82B, 0x4063BE20,
-	0x00000002, 0x4062C821, 0x4063C220, 0x00000002, 0x4062C822, 0x4063C220,
-	0x00000002, 0x4062C823, 0x4063C220, 0x00000002, 0x4062C824, 0x4063C220,
-	0x00000002, 0x4062C825, 0x4063C220, 0x00000002, 0x4062C826, 0x4063C220,
-	0x00000002, 0x4062C827, 0x4063C220, 0x00000002, 0x4062C828, 0x4063C220,
-	0x00000002, 0x4062C829, 0x4063C220, 0x00000002, 0x4062C82A, 0x4063C220,
-	0x00000002, 0x4062C82B, 0x4063C220, 0x00000002, 0x4062C82C, 0x4063C220,
-	0x00000002, 0x4062C82D, 0x4063C220, 0x00000002,
-	// Block 592, offset 0x9400
-	0x4062C82E, 0x4063C220, 0x00000002, 0x4062C82F, 0x4063C220, 0x00000002,
-	0x4062C830, 0x4063C220, 0x00000002, 0x4062C831, 0x4063C220, 0x00000002,
-	0x4062C832, 0x4063C220, 0x00000002, 0x4062C833, 0x4063C220, 0x00000002,
-	0x4062C834, 0x4063C220, 0x00000002, 0x4062C835, 0x4063C220, 0x00000002,
-	0x4062C836, 0x4063C220, 0x00000002, 0x4062C837, 0x4063C220, 0x00000002,
-	0x4062C838, 0x4063C220, 0x00000002, 0x4062C839, 0x4063C220, 0x00000002,
-	0x4062C83A, 0x4063C220, 0x00000002, 0x4062C83B, 0x4063C220, 0x00000002,
-	0x4062C83C, 0x4063C220, 0x00000002, 0x4062C83D, 0x4063C220, 0x00000002,
-	0x4062C83E, 0x4063C220, 0x00000002, 0x4062C83F, 0x4063C220, 0x00000002,
-	0x4062C840, 0x4063C220, 0x00000002, 0x4062C841, 0x4063C220, 0x00000002,
-	0x4062C842, 0x4063C220, 0x00000002, 0x4062C843,
-	// Block 593, offset 0x9440
-	0x4063C220, 0x00000002, 0x4062C844, 0x4063C220, 0x00000002, 0x4062C845,
-	0x4063C220, 0x00000002, 0x4062C846, 0x4063C220, 0x00000002, 0x4062C847,
-	0x4063C220, 0x00000002, 0x4062C848, 0x4063C220, 0x00000002, 0x4062C849,
-	0x4063C220, 0x00000002, 0x4062C84A, 0x4063C220, 0x00000002, 0x4062C84B,
-	0x4063C220, 0x00000002, 0x4062C84C, 0x4063C220, 0x00000002, 0x4062C84D,
-	0x4063C220, 0x00000002, 0x4062C84E, 0x4063C220, 0x00000002, 0x4062C84F,
-	0x4063C220, 0x00000002, 0x4062C850, 0x4063C220, 0x00000002, 0x4062C851,
-	0x4063C220, 0x00000002, 0x4062C852, 0x4063C220, 0x00000002, 0x4062C853,
-	0x4063C220, 0x00000003, 0x4062C821, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C822, 0x4063C220, 0x40646420, 0x00000003, 0x4062C823, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C824, 0x4063C220,
-	// Block 594, offset 0x9480
-	0x40646420, 0x00000003, 0x4062C825, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063C220, 0x40646420, 0x00000003, 0x4062C827, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C828, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C829, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82A, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C82B, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C82C, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82D, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C82E, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C82F, 0x4063C220, 0x40646420, 0x00000003, 0x4062C830, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C831, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C821, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C822, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C823, 0x4063C220,
-	// Block 595, offset 0x94c0
-	0x40646A20, 0x00000003, 0x4062C821, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C822, 0x4063C220, 0x40647220, 0x00000003, 0x4062C823, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062C824, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C821, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C822, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C823, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C824, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C825, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C826, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C827, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C828, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C829, 0x4063C220, 0x40648C20, 0x00000002,
-	0x4062C821, 0x4063C620, 0x00000002, 0x4062C822, 0x4063C620, 0x00000002,
-	0x4062C823, 0x4063C620, 0x00000002, 0x4062C824,
-	// Block 596, offset 0x9500
-	0x4063C620, 0x00000002, 0x4062C825, 0x4063C620, 0x00000002, 0x4062C826,
-	0x4063C620, 0x00000002, 0x4062C827, 0x4063C620, 0x00000002, 0x4062C828,
-	0x4063C620, 0x00000002, 0x4062C829, 0x4063C620, 0x00000002, 0x4062C821,
-	0x4063C820, 0x00000002, 0x4062C822, 0x4063C820, 0x00000002, 0x4062C823,
-	0x4063C820, 0x00000002, 0x4062C824, 0x4063C820, 0x00000002, 0x4062C825,
-	0x4063C820, 0x00000002, 0x4062C826, 0x4063C820, 0x00000002, 0x4062C827,
-	0x4063C820, 0x00000002, 0x4062C828, 0x4063C820, 0x00000002, 0x4062C829,
-	0x4063C820, 0x00000002, 0x4062C82A, 0x4063C820, 0x00000002, 0x4062C82B,
-	0x4063C820, 0x00000002, 0x4062C82C, 0x4063C820, 0x00000002, 0x4062C82D,
-	0x4063C820, 0x00000002, 0x4062C82E, 0x4063C820, 0x00000002, 0x4062C82F,
-	0x4063C820, 0x00000002, 0x4062C830, 0x4063C820,
-	// Block 597, offset 0x9540
-	0x00000002, 0x4062C831, 0x4063C820, 0x00000003, 0x4062C821, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C824, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C825, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C827, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062C821, 0x4063D020, 0x00000002, 0x4062C822, 0x4063D020, 0x00000002,
-	0x4062C823, 0x4063D020, 0x00000002, 0x4062C824, 0x4063D020, 0x00000002,
-	0x4062C825, 0x4063D020, 0x00000002, 0x4062C826, 0x4063D020, 0x00000002,
-	0x4062C827, 0x4063D020, 0x00000002, 0x4062C828, 0x4063D020, 0x00000002,
-	0x4062C829, 0x4063D020, 0x00000002, 0x4062C82A,
-	// Block 598, offset 0x9580
-	0x4063D020, 0x00000002, 0x4062C82B, 0x4063D020, 0x00000002, 0x4062C82C,
-	0x4063D020, 0x00000002, 0x4062C82D, 0x4063D020, 0x00000002, 0x4062C82E,
-	0x4063D020, 0x00000002, 0x4062C82F, 0x4063D020, 0x00000002, 0x4062C830,
-	0x4063D020, 0x00000002, 0x4062C831, 0x4063D020, 0x00000002, 0x4062C832,
-	0x4063D020, 0x00000002, 0x4062C833, 0x4063D020, 0x00000002, 0x4062C834,
-	0x4063D020, 0x00000002, 0x4062C835, 0x4063D020, 0x00000002, 0x4062C836,
-	0x4063D020, 0x00000002, 0x4062C837, 0x4063D020, 0x00000002, 0x4062C838,
-	0x4063D020, 0x00000002, 0x4062C839, 0x4063D020, 0x00000002, 0x4062C83A,
-	0x4063D020, 0x00000002, 0x4062C83B, 0x4063D020, 0x00000002, 0x4062C83C,
-	0x4063D020, 0x00000002, 0x4062C83D, 0x4063D020, 0x00000002, 0x4062C83E,
-	0x4063D020, 0x00000002, 0x4062C83F, 0x4063D020,
-	// Block 599, offset 0x95c0
-	0x00000002, 0x4062C840, 0x4063D020, 0x00000002, 0x4062C841, 0x4063D020,
-	0x00000002, 0x4062C842, 0x4063D020, 0x00000002, 0x4062C843, 0x4063D020,
-	0x00000002, 0x4062C844, 0x4063D020, 0x00000002, 0x4062C845, 0x4063D020,
-	0x00000002, 0x4062C846, 0x4063D020, 0x00000002, 0x4062C847, 0x4063D020,
-	0x00000002, 0x4062C848, 0x4063D020, 0x00000002, 0x4062C849, 0x4063D020,
-	0x00000002, 0x4062C84A, 0x4063D020, 0x00000003, 0x4062C821, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063D020, 0x40646420, 0x00000003, 0x4062C824, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C822, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C823, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C824, 0x4063D020,
-	// Block 600, offset 0x9600
-	0x40646A20, 0x00000003, 0x4062C825, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40647220, 0x00000003, 0x4062C822, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C823, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40648220, 0x00000003, 0x4062C822, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C823, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C824, 0x4063D020, 0x40648220, 0x00000003, 0x4062C825, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C826, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C827, 0x4063D020, 0x40648220, 0x00000003, 0x4062C828, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C829, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C82A, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C82C, 0x4063D020,
-	// Block 601, offset 0x9640
-	0x40648220, 0x00000003, 0x4062C82D, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C82E, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82F, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C830, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40648420, 0x00000003, 0x4062C821, 0x4063D020,
-	0x40648C20, 0x00000003, 0x4062C822, 0x4063D020, 0x40648C20, 0x00000002,
-	0x4062CA21, 0x4063BC20, 0x00000002, 0x4062CA22, 0x4063BC20, 0x00000002,
-	0x4062CA23, 0x4063BC20, 0x00000002, 0x4062CC21, 0x4063A820, 0x00000002,
-	0x4062CC22, 0x4063A820, 0x00000002, 0x4062CC23, 0x4063A820, 0x00000002,
-	0x4062CC24, 0x4063A820, 0x00000002, 0x4062CC25, 0x4063A820, 0x00000002,
-	0x4062CC26, 0x4063A820, 0x00000002, 0x4062CC27, 0x4063A820, 0x00000002,
-	0x4062CC28, 0x4063A820, 0x00000002, 0x4062CC29,
-	// Block 602, offset 0x9680
-	0x4063A820, 0x00000002, 0x4062CC2A, 0x4063A820, 0x00000002, 0x4062CC2B,
-	0x4063A820, 0x00000002, 0x4062CC2C, 0x4063A820, 0x00000002, 0x4062CC2D,
-	0x4063A820, 0x00000002, 0x4062CC2E, 0x4063A820, 0x00000002, 0x4062CC2F,
-	0x4063A820, 0x00000002, 0x4062CC30, 0x4063A820, 0x00000002, 0x4062CC31,
-	0x4063A820, 0x00000002, 0x4062CC32, 0x4063A820, 0x00000002, 0x4062CC33,
-	0x4063A820, 0x00000002, 0x4062CC34, 0x4063A820, 0x00000002, 0x4062CC35,
-	0x4063A820, 0x00000002, 0x4062CC36, 0x4063A820, 0x00000002, 0x4062CC37,
-	0x4063A820, 0x00000002, 0x4062CC38, 0x4063A820, 0x00000002, 0x4062CC39,
-	0x4063A820, 0x00000002, 0x4062CC3A, 0x4063A820, 0x00000002, 0x4062CC3B,
-	0x4063A820, 0x00000003, 0x4062CC21, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 603, offset 0x96c0
-	0x4062CC23, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC25, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC28, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC29, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2A, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC2C, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2D, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC2F, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC30, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC31, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC32, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 604, offset 0x9700
-	0x4062CC33, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC34, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC35, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC36, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC37, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC2B, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 605, offset 0x9740
-	0x4062CC2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062CC22, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40647220, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC22, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 606, offset 0x9780
-	0x4062CC23, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC22, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC28, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062CC21, 0x4063AA20, 0x00000002, 0x4062CC22, 0x4063AA20, 0x00000002,
-	0x4062CC23, 0x4063AA20, 0x00000002, 0x4062CC24, 0x4063AA20, 0x00000002,
-	0x4062CC25, 0x4063AA20, 0x00000002, 0x4062CC26,
-	// Block 607, offset 0x97c0
-	0x4063AA20, 0x00000002, 0x4062CC27, 0x4063AA20, 0x00000002, 0x4062CC28,
-	0x4063AA20, 0x00000002, 0x4062CC29, 0x4063AA20, 0x00000002, 0x4062CC2A,
-	0x4063AA20, 0x00000002, 0x4062CC2B, 0x4063AA20, 0x00000002, 0x4062CC2C,
-	0x4063AA20, 0x00000002, 0x4062CC2D, 0x4063AA20, 0x00000002, 0x4062CC2E,
-	0x4063AA20, 0x00000002, 0x4062CC2F, 0x4063AA20, 0x00000002, 0x4062CC30,
-	0x4063AA20, 0x00000002, 0x4062CC31, 0x4063AA20, 0x00000002, 0x4062CC32,
-	0x4063AA20, 0x00000002, 0x4062CC33, 0x4063AA20, 0x00000002, 0x4062CC34,
-	0x4063AA20, 0x00000002, 0x4062CC35, 0x4063AA20, 0x00000003, 0x4062CC21,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062CC22, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062CC21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC22,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC23,
-	// Block 608, offset 0x9800
-	0x4063AA20, 0x40648C20, 0x00000002, 0x4062CC21, 0x4063B020, 0x00000002,
-	0x4062CC21, 0x4063B820, 0x00000002, 0x4062CC22, 0x4063B820, 0x00000002,
-	0x4062CC23, 0x4063B820, 0x00000002, 0x4062CC24, 0x4063B820, 0x00000003,
-	0x4062CC21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC22, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062CC23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062CC21, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC22, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC23, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062CC24, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC25, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC26, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062CC27, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC28, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC29, 0x4063B820,
-	// Block 609, offset 0x9840
-	0x40648C20, 0x00000002, 0x4062CC21, 0x4063BE20, 0x00000002, 0x4062CC22,
-	0x4063BE20, 0x00000002, 0x4062CC23, 0x4063BE20, 0x00000002, 0x4062CC24,
-	0x4063BE20, 0x00000002, 0x4062CC25, 0x4063BE20, 0x00000002, 0x4062CC26,
-	0x4063BE20, 0x00000002, 0x4062CC27, 0x4063BE20, 0x00000002, 0x4062CC21,
-	0x4063C220, 0x00000002, 0x4062CC22, 0x4063C220, 0x00000002, 0x4062CC23,
-	0x4063C220, 0x00000002, 0x4062CC24, 0x4063C220, 0x00000002, 0x4062CC25,
-	0x4063C220, 0x00000002, 0x4062CC26, 0x4063C220, 0x00000002, 0x4062CC27,
-	0x4063C220, 0x00000002, 0x4062CC28, 0x4063C220, 0x00000002, 0x4062CC29,
-	0x4063C220, 0x00000003, 0x4062CC21, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CC21, 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC22, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062CC23, 0x4063CC20,
-	// Block 610, offset 0x9880
-	0x40646420, 0x00000003, 0x4062CC21, 0x4063CC20, 0x40648220, 0x00000002,
-	0x4062CE21, 0x4063A820, 0x00000002, 0x4062CE22, 0x4063A820, 0x00000002,
-	0x4062CE23, 0x4063A820, 0x00000002, 0x4062CE24, 0x4063A820, 0x00000002,
-	0x4062CE25, 0x4063A820, 0x00000002, 0x4062CE26, 0x4063A820, 0x00000002,
-	0x4062CE27, 0x4063A820, 0x00000002, 0x4062CE28, 0x4063A820, 0x00000002,
-	0x4062CE29, 0x4063A820, 0x00000002, 0x4062CE2A, 0x4063A820, 0x00000002,
-	0x4062CE2B, 0x4063A820, 0x00000002, 0x4062CE2C, 0x4063A820, 0x00000002,
-	0x4062CE2D, 0x4063A820, 0x00000002, 0x4062CE2E, 0x4063A820, 0x00000002,
-	0x4062CE2F, 0x4063A820, 0x00000002, 0x4062CE30, 0x4063A820, 0x00000002,
-	0x4062CE31, 0x4063A820, 0x00000002, 0x4062CE32, 0x4063A820, 0x00000002,
-	0x4062CE33, 0x4063A820, 0x00000002, 0x4062CE34,
-	// Block 611, offset 0x98c0
-	0x4063A820, 0x00000002, 0x4062CE35, 0x4063A820, 0x00000002, 0x4062CE36,
-	0x4063A820, 0x00000002, 0x4062CE37, 0x4063A820, 0x00000002, 0x4062CE38,
-	0x4063A820, 0x00000002, 0x4062CE39, 0x4063A820, 0x00000002, 0x4062CE3A,
-	0x4063A820, 0x00000002, 0x4062CE3B, 0x4063A820, 0x00000002, 0x4062CE3C,
-	0x4063A820, 0x00000002, 0x4062CE3D, 0x4063A820, 0x00000002, 0x4062CE3E,
-	0x4063A820, 0x00000003, 0x4062CE21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE28, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 612, offset 0x9900
-	0x4062CE29, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE2A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE21, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CE22, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE23, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062CE24, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CE25, 0x4063A820, 0x40647220, 0x00000002, 0x4062CE21, 0x4063AA20,
-	0x00000002, 0x4062CE22, 0x4063AA20, 0x00000002, 0x4062CE23, 0x4063AA20,
-	0x00000002, 0x4062CE24, 0x4063AA20, 0x00000002, 0x4062CE25, 0x4063AA20,
-	0x00000002, 0x4062CE26, 0x4063AA20, 0x00000002, 0x4062CE27, 0x4063AA20,
-	0x00000002, 0x4062CE28, 0x4063AA20, 0x00000002, 0x4062CE29, 0x4063AA20,
-	0x00000002, 0x4062CE2A, 0x4063AA20, 0x00000002, 0x4062CE2B, 0x4063AA20,
-	0x00000002, 0x4062CE2C, 0x4063AA20, 0x00000002,
-	// Block 613, offset 0x9940
-	0x4062CE2D, 0x4063AA20, 0x00000002, 0x4062CE2E, 0x4063AA20, 0x00000002,
-	0x4062CE2F, 0x4063AA20, 0x00000002, 0x4062CE30, 0x4063AA20, 0x00000003,
-	0x4062CE21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062CE24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE26, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062CE27, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE28, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE21, 0x4063AC20, 0x40646420, 0x00000003,
-	0x4062CE21, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE22, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE23, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE24, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 614, offset 0x9980
-	0x4062CE25, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE27, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE28, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE29, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE2A, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE2B, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2C, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE2D, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE2E, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2F, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE30, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE31, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE32, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE33, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE21, 0x4063B420, 0x40648220, 0x00000003,
-	// Block 615, offset 0x99c0
-	0x4062CE22, 0x4063B420, 0x40648220, 0x00000003, 0x4062CE23, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062CE21, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE22, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE23, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE24, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE25, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE26, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE27, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE28, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE29, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE2A, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE2B, 0x4063B420, 0x40648C20, 0x00000002, 0x4062CE21, 0x4063B620,
-	0x00000002, 0x4062CE22, 0x4063B620, 0x00000002, 0x4062CE23, 0x4063B620,
-	0x00000002, 0x4062CE24, 0x4063B620, 0x00000002,
-	// Block 616, offset 0x9a00
-	0x4062CE25, 0x4063B620, 0x00000002, 0x4062CE26, 0x4063B620, 0x00000002,
-	0x4062CE27, 0x4063B620, 0x00000002, 0x4062CE28, 0x4063B620, 0x00000002,
-	0x4062CE29, 0x4063B620, 0x00000002, 0x4062CE2A, 0x4063B620, 0x00000002,
-	0x4062CE2B, 0x4063B620, 0x00000002, 0x4062CE2C, 0x4063B620, 0x00000002,
-	0x4062CE2D, 0x4063B620, 0x00000002, 0x4062CE2E, 0x4063B620, 0x00000002,
-	0x4062CE21, 0x4063B820, 0x00000002, 0x4062CE22, 0x4063B820, 0x00000002,
-	0x4062CE23, 0x4063B820, 0x00000002, 0x4062CE24, 0x4063B820, 0x00000002,
-	0x4062CE25, 0x4063B820, 0x00000002, 0x4062CE26, 0x4063B820, 0x00000002,
-	0x4062CE27, 0x4063B820, 0x00000002, 0x4062CE28, 0x4063B820, 0x00000002,
-	0x4062CE29, 0x4063B820, 0x00000002, 0x4062CE2A, 0x4063B820, 0x00000002,
-	0x4062CE2B, 0x4063B820, 0x00000002, 0x4062CE2C,
-	// Block 617, offset 0x9a40
-	0x4063B820, 0x00000002, 0x4062CE2D, 0x4063B820, 0x00000002, 0x4062CE2E,
-	0x4063B820, 0x00000002, 0x4062CE2F, 0x4063B820, 0x00000002, 0x4062CE30,
-	0x4063B820, 0x00000002, 0x4062CE31, 0x4063B820, 0x00000002, 0x4062CE32,
-	0x4063B820, 0x00000002, 0x4062CE33, 0x4063B820, 0x00000002, 0x4062CE34,
-	0x4063B820, 0x00000002, 0x4062CE35, 0x4063B820, 0x00000002, 0x4062CE36,
-	0x4063B820, 0x00000002, 0x4062CE37, 0x4063B820, 0x00000002, 0x4062CE38,
-	0x4063B820, 0x00000002, 0x4062CE39, 0x4063B820, 0x00000002, 0x4062CE3A,
-	0x4063B820, 0x00000002, 0x4062CE3B, 0x4063B820, 0x00000002, 0x4062CE3C,
-	0x4063B820, 0x00000002, 0x4062CE3D, 0x4063B820, 0x00000002, 0x4062CE3E,
-	0x4063B820, 0x00000002, 0x4062CE3F, 0x4063B820, 0x00000002, 0x4062CE40,
-	0x4063B820, 0x00000002, 0x4062CE41, 0x4063B820,
-	// Block 618, offset 0x9a80
-	0x00000002, 0x4062CE42, 0x4063B820, 0x00000002, 0x4062CE43, 0x4063B820,
-	0x00000002, 0x4062CE44, 0x4063B820, 0x00000002, 0x4062CE45, 0x4063B820,
-	0x00000002, 0x4062CE46, 0x4063B820, 0x00000002, 0x4062CE47, 0x4063B820,
-	0x00000003, 0x4062CE21, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE22,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062CE23, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062CE24, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE25,
-	0x4063B820, 0x40646420, 0x00000002, 0x4062CE21, 0x4063C020, 0x00000002,
-	0x4062CE22, 0x4063C020, 0x00000002, 0x4062CE23, 0x4063C020, 0x00000002,
-	0x4062CE24, 0x4063C020, 0x00000002, 0x4062CE25, 0x4063C020, 0x00000002,
-	0x4062CE26, 0x4063C020, 0x00000002, 0x4062CE27, 0x4063C020, 0x00000002,
-	0x4062CE28, 0x4063C020, 0x00000002, 0x4062CE29,
-	// Block 619, offset 0x9ac0
-	0x4063C020, 0x00000002, 0x4062CE2A, 0x4063C020, 0x00000002, 0x4062CE2B,
-	0x4063C020, 0x00000002, 0x4062CE2C, 0x4063C020, 0x00000002, 0x4062CE2D,
-	0x4063C020, 0x00000002, 0x4062CE2E, 0x4063C020, 0x00000002, 0x4062CE2F,
-	0x4063C020, 0x00000002, 0x4062CE30, 0x4063C020, 0x00000002, 0x4062CE31,
-	0x4063C020, 0x00000002, 0x4062CE32, 0x4063C020, 0x00000002, 0x4062CE33,
-	0x4063C020, 0x00000002, 0x4062CE34, 0x4063C020, 0x00000002, 0x4062CE35,
-	0x4063C020, 0x00000002, 0x4062CE36, 0x4063C020, 0x00000002, 0x4062CE37,
-	0x4063C020, 0x00000002, 0x4062CE38, 0x4063C020, 0x00000002, 0x4062CE39,
-	0x4063C020, 0x00000002, 0x4062CE3A, 0x4063C020, 0x00000002, 0x4062CE3B,
-	0x4063C020, 0x00000003, 0x4062CE21, 0x4063C220, 0x40648220, 0x00000003,
-	0x4062CE22, 0x4063C220, 0x40648220, 0x00000003,
-	// Block 620, offset 0x9b00
-	0x4062CE23, 0x4063C220, 0x40648220, 0x00000003, 0x4062CE21, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062CE22, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CE23, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE24, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062CE25, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CE26, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE27, 0x4063C220,
-	0x40648C20, 0x00000002, 0x4062CE21, 0x4063D020, 0x00000002, 0x4062CE22,
-	0x4063D020, 0x00000002, 0x4062CE23, 0x4063D020, 0x00000002, 0x4062CE24,
-	0x4063D020, 0x00000002, 0x4062CE25, 0x4063D020, 0x00000002, 0x4062CE26,
-	0x4063D020, 0x00000002, 0x4062CE27, 0x4063D020, 0x00000002, 0x4062CE28,
-	0x4063D020, 0x00000002, 0x4062CE29, 0x4063D020, 0x00000002, 0x4062CE2A,
-	0x4063D020, 0x00000002, 0x4062CE2B, 0x4063D020,
-	// Block 621, offset 0x9b40
-	0x00000003, 0x4062CE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062CE21,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE22, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE23, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE24,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE25, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE26, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE27,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE28, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE29, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2A,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE2B, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE2C, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2D,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE2E, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE2F, 0x4063D020, 0x40647220,
-	// Block 622, offset 0x9b80
-	0x00000003, 0x4062CE30, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE31,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE32, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE33, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE34,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE35, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE36, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE21,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062CE22, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062CE23, 0x4063D020, 0x40648420, 0x00000002, 0x4062D021,
-	0x4063A820, 0x00000002, 0x4062D022, 0x4063A820, 0x00000002, 0x4062D023,
-	0x4063A820, 0x00000002, 0x4062D024, 0x4063A820, 0x00000002, 0x4062D025,
-	0x4063A820, 0x00000002, 0x4062D026, 0x4063A820, 0x00000002, 0x4062D027,
-	0x4063A820, 0x00000002, 0x4062D028, 0x4063A820,
-	// Block 623, offset 0x9bc0
-	0x00000002, 0x4062D029, 0x4063A820, 0x00000002, 0x4062D02A, 0x4063A820,
-	0x00000002, 0x4062D02B, 0x4063A820, 0x00000002, 0x4062D02C, 0x4063A820,
-	0x00000002, 0x4062D02D, 0x4063A820, 0x00000002, 0x4062D02E, 0x4063A820,
-	0x00000002, 0x4062D02F, 0x4063A820, 0x00000002, 0x4062D030, 0x4063A820,
-	0x00000002, 0x4062D031, 0x4063A820, 0x00000002, 0x4062D032, 0x4063A820,
-	0x00000002, 0x4062D033, 0x4063A820, 0x00000002, 0x4062D034, 0x4063A820,
-	0x00000002, 0x4062D035, 0x4063A820, 0x00000002, 0x4062D036, 0x4063A820,
-	0x00000003, 0x4062D021, 0x4063A820, 0x40646420, 0x00000003, 0x4062D022,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D023, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D024, 0x4063A820, 0x40646420, 0x00000003, 0x4062D025,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D026,
-	// Block 624, offset 0x9c00
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D027, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D028, 0x4063A820, 0x40646420, 0x00000003, 0x4062D029,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D02B, 0x4063A820, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D022, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D023, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D024,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D025, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D026, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D027,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D029, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02A,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02B,
-	// Block 625, offset 0x9c40
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D02D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02E,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D030, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D031,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D032, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D033, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D034,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D035, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D036, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D037,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D021, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063A820, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062D021,
-	// Block 626, offset 0x9c80
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D022, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D023, 0x4063A820, 0x40648220, 0x00000003, 0x4062D024,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D025, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D026, 0x4063A820, 0x40648220, 0x00000003, 0x4062D027,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D028, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D029, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02A,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D02B, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D02C, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02D,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D02E, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D02F, 0x4063A820, 0x40648220, 0x00000003, 0x4062D030,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D031,
-	// Block 627, offset 0x9cc0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D021, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D022, 0x4063A820, 0x40648420, 0x00000003, 0x4062D023,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D024, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D025, 0x4063A820, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D027, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063A820, 0x40648420, 0x00000003, 0x4062D029,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D02B, 0x4063A820, 0x40648420, 0x00000003, 0x4062D02C,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D02D, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D02E, 0x4063A820, 0x40648420, 0x00000003, 0x4062D021,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D022,
-	// Block 628, offset 0x9d00
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D023, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D026, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D028,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D029, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D02A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02B,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D02D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02E,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D030, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D031,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D032,
-	// Block 629, offset 0x9d40
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D033, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D034, 0x4063A820, 0x40648C20, 0x00000002, 0x4062D021,
-	0x4063AA20, 0x00000002, 0x4062D022, 0x4063AA20, 0x00000002, 0x4062D023,
-	0x4063AA20, 0x00000002, 0x4062D024, 0x4063AA20, 0x00000002, 0x4062D025,
-	0x4063AA20, 0x00000002, 0x4062D026, 0x4063AA20, 0x00000002, 0x4062D027,
-	0x4063AA20, 0x00000002, 0x4062D028, 0x4063AA20, 0x00000002, 0x4062D029,
-	0x4063AA20, 0x00000002, 0x4062D02A, 0x4063AA20, 0x00000002, 0x4062D02B,
-	0x4063AA20, 0x00000002, 0x4062D02C, 0x4063AA20, 0x00000002, 0x4062D02D,
-	0x4063AA20, 0x00000002, 0x4062D02E, 0x4063AA20, 0x00000002, 0x4062D02F,
-	0x4063AA20, 0x00000002, 0x4062D030, 0x4063AA20, 0x00000002, 0x4062D031,
-	0x4063AA20, 0x00000002, 0x4062D032, 0x4063AA20,
-	// Block 630, offset 0x9d80
-	0x00000002, 0x4062D033, 0x4063AA20, 0x00000002, 0x4062D034, 0x4063AA20,
-	0x00000002, 0x4062D035, 0x4063AA20, 0x00000002, 0x4062D036, 0x4063AA20,
-	0x00000002, 0x4062D037, 0x4063AA20, 0x00000002, 0x4062D038, 0x4063AA20,
-	0x00000002, 0x4062D039, 0x4063AA20, 0x00000002, 0x4062D03A, 0x4063AA20,
-	0x00000002, 0x4062D03B, 0x4063AA20, 0x00000002, 0x4062D03C, 0x4063AA20,
-	0x00000002, 0x4062D03D, 0x4063AA20, 0x00000003, 0x4062D021, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062D022, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062D023, 0x4063AA20, 0x40646420, 0x00000003, 0x4062D024, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062D021, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062D022, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D023, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062D024, 0x4063AA20,
-	// Block 631, offset 0x9dc0
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D022, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D023, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D028, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D029, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063AC20,
-	0x40648C20, 0x00000002, 0x4062D021, 0x4063B020, 0x00000002, 0x4062D022,
-	0x4063B020, 0x00000002, 0x4062D023, 0x4063B020, 0x00000002, 0x4062D024,
-	0x4063B020, 0x00000002, 0x4062D025, 0x4063B020,
-	// Block 632, offset 0x9e00
-	0x00000003, 0x4062D021, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D022,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062D023, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062D024, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D025,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062D026, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062D027, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D021,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062D021, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062D022, 0x4063B020, 0x40648220, 0x00000003, 0x4062D023,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062D024, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062D025, 0x4063B020, 0x40648220, 0x00000003, 0x4062D021,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D022, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063B420, 0x40646420,
-	// Block 633, offset 0x9e40
-	0x00000003, 0x4062D024, 0x4063B420, 0x40646420, 0x00000003, 0x4062D025,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D026, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062D027, 0x4063B420, 0x40646420, 0x00000003, 0x4062D028,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D021, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D022, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40646A20,
-	// Block 634, offset 0x9e80
-	0x00000003, 0x4062D02C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D02D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D02E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D02F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D030,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D031, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D032, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D033,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D034, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D035, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D036,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D037, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D038, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D039,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D03B, 0x4063B420, 0x40646A20,
-	// Block 635, offset 0x9ec0
-	0x00000003, 0x4062D03C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D03D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D03E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D03F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D040,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D021, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063B420, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062D024, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40647220, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062D021, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062D021, 0x4063B420, 0x40648420, 0x00000003, 0x4062D022,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D023, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D024, 0x4063B420, 0x40648420,
-	// Block 636, offset 0x9f00
-	0x00000003, 0x4062D025, 0x4063B420, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D027, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40648420, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02C,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D02E, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02F,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D030, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D031, 0x4063B420, 0x40648420, 0x00000003, 0x4062D032,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D033, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D021, 0x4063B420, 0x40648C20,
-	// Block 637, offset 0x9f40
-	0x00000003, 0x4062D022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D024, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D027, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D02E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D030, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D031, 0x4063B420, 0x40648C20,
-	// Block 638, offset 0x9f80
-	0x00000003, 0x4062D032, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D033,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D034, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D035, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D036,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D037, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D038, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D039,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062D021, 0x4063B620, 0x00000002,
-	0x4062D022, 0x4063B620, 0x00000002, 0x4062D023, 0x4063B620, 0x00000002,
-	0x4062D024, 0x4063B620, 0x00000002, 0x4062D025, 0x4063B620, 0x00000002,
-	0x4062D026, 0x4063B620, 0x00000002, 0x4062D027, 0x4063B620, 0x00000002,
-	0x4062D028, 0x4063B620, 0x00000002, 0x4062D029, 0x4063B620, 0x00000002,
-	0x4062D02A, 0x4063B620, 0x00000002, 0x4062D02B,
-	// Block 639, offset 0x9fc0
-	0x4063B620, 0x00000002, 0x4062D02C, 0x4063B620, 0x00000002, 0x4062D02D,
-	0x4063B620, 0x00000002, 0x4062D02E, 0x4063B620, 0x00000002, 0x4062D02F,
-	0x4063B620, 0x00000002, 0x4062D030, 0x4063B620, 0x00000002, 0x4062D031,
-	0x4063B620, 0x00000002, 0x4062D021, 0x4063B820, 0x00000002, 0x4062D022,
-	0x4063B820, 0x00000002, 0x4062D023, 0x4063B820, 0x00000002, 0x4062D024,
-	0x4063B820, 0x00000002, 0x4062D025, 0x4063B820, 0x00000002, 0x4062D026,
-	0x4063B820, 0x00000002, 0x4062D027, 0x4063B820, 0x00000002, 0x4062D028,
-	0x4063B820, 0x00000002, 0x4062D029, 0x4063B820, 0x00000002, 0x4062D02A,
-	0x4063B820, 0x00000002, 0x4062D02B, 0x4063B820, 0x00000002, 0x4062D02C,
-	0x4063B820, 0x00000002, 0x4062D02D, 0x4063B820, 0x00000002, 0x4062D02E,
-	0x4063B820, 0x00000002, 0x4062D02F, 0x4063B820,
-	// Block 640, offset 0xa000
-	0x00000002, 0x4062D030, 0x4063B820, 0x00000002, 0x4062D031, 0x4063B820,
-	0x00000002, 0x4062D032, 0x4063B820, 0x00000002, 0x4062D033, 0x4063B820,
-	0x00000002, 0x4062D034, 0x4063B820, 0x00000002, 0x4062D035, 0x4063B820,
-	0x00000002, 0x4062D036, 0x4063B820, 0x00000002, 0x4062D037, 0x4063B820,
-	0x00000002, 0x4062D038, 0x4063B820, 0x00000002, 0x4062D039, 0x4063B820,
-	0x00000002, 0x4062D03A, 0x4063B820, 0x00000002, 0x4062D03B, 0x4063B820,
-	0x00000002, 0x4062D03C, 0x4063B820, 0x00000002, 0x4062D03D, 0x4063B820,
-	0x00000002, 0x4062D03E, 0x4063B820, 0x00000002, 0x4062D03F, 0x4063B820,
-	0x00000002, 0x4062D040, 0x4063B820, 0x00000002, 0x4062D041, 0x4063B820,
-	0x00000002, 0x4062D042, 0x4063B820, 0x00000002, 0x4062D043, 0x4063B820,
-	0x00000002, 0x4062D044, 0x4063B820, 0x00000002,
-	// Block 641, offset 0xa040
-	0x4062D045, 0x4063B820, 0x00000002, 0x4062D046, 0x4063B820, 0x00000002,
-	0x4062D047, 0x4063B820, 0x00000002, 0x4062D048, 0x4063B820, 0x00000002,
-	0x4062D049, 0x4063B820, 0x00000002, 0x4062D04A, 0x4063B820, 0x00000002,
-	0x4062D04B, 0x4063B820, 0x00000002, 0x4062D04C, 0x4063B820, 0x00000002,
-	0x4062D04D, 0x4063B820, 0x00000002, 0x4062D04E, 0x4063B820, 0x00000002,
-	0x4062D04F, 0x4063B820, 0x00000002, 0x4062D050, 0x4063B820, 0x00000002,
-	0x4062D051, 0x4063B820, 0x00000002, 0x4062D052, 0x4063B820, 0x00000002,
-	0x4062D053, 0x4063B820, 0x00000002, 0x4062D054, 0x4063B820, 0x00000002,
-	0x4062D055, 0x4063B820, 0x00000002, 0x4062D056, 0x4063B820, 0x00000002,
-	0x4062D057, 0x4063B820, 0x00000002, 0x4062D058, 0x4063B820, 0x00000002,
-	0x4062D059, 0x4063B820, 0x00000002, 0x4062D05A,
-	// Block 642, offset 0xa080
-	0x4063B820, 0x00000002, 0x4062D05B, 0x4063B820, 0x00000003, 0x4062D021,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062D022, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063B820, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D022, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D023, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D024,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D025, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D026, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D027,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D029, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D02A,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D021, 0x4063B820, 0x40647220,
-	// Block 643, offset 0xa0c0
-	0x00000003, 0x4062D022, 0x4063B820, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062D024, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062D021, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D022,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D023, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D026, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D028,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D029, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D02A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02B,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D02D, 0x4063B820, 0x40648C20,
-	// Block 644, offset 0xa100
-	0x00000003, 0x4062D02E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02F,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062D021, 0x4063BA20, 0x00000002,
-	0x4062D022, 0x4063BA20, 0x00000002, 0x4062D023, 0x4063BA20, 0x00000002,
-	0x4062D024, 0x4063BA20, 0x00000002, 0x4062D025, 0x4063BA20, 0x00000002,
-	0x4062D026, 0x4063BA20, 0x00000002, 0x4062D027, 0x4063BA20, 0x00000002,
-	0x4062D028, 0x4063BA20, 0x00000002, 0x4062D029, 0x4063BA20, 0x00000002,
-	0x4062D02A, 0x4063BA20, 0x00000002, 0x4062D02B, 0x4063BA20, 0x00000002,
-	0x4062D02C, 0x4063BA20, 0x00000002, 0x4062D02D, 0x4063BA20, 0x00000002,
-	0x4062D02E, 0x4063BA20, 0x00000002, 0x4062D02F, 0x4063BA20, 0x00000002,
-	0x4062D030, 0x4063BA20, 0x00000002, 0x4062D031, 0x4063BA20, 0x00000002,
-	0x4062D032, 0x4063BA20, 0x00000002, 0x4062D033,
-	// Block 645, offset 0xa140
-	0x4063BA20, 0x00000002, 0x4062D034, 0x4063BA20, 0x00000002, 0x4062D035,
-	0x4063BA20, 0x00000003, 0x4062D021, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D024, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D026, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D027, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D028, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D029, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D021, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D024, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40646A20, 0x00000003,
-	// Block 646, offset 0xa180
-	0x4062D026, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D028, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D029, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D02B, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D02C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D02E, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D02F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D030, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D032, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D033, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D034, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D035, 0x4063BA20, 0x40646A20, 0x00000003,
-	// Block 647, offset 0xa1c0
-	0x4062D036, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D037, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D038, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D039, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D03B, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D03C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D021, 0x4063BA20, 0x40647220, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40647220, 0x00000003, 0x4062D024, 0x4063BA20, 0x40647220, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D026, 0x4063BA20,
-	0x40647220, 0x00000003, 0x4062D021, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40648C20, 0x00000003,
-	// Block 648, offset 0xa200
-	0x4062D023, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D028, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D029, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D02B, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D02C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D02E, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D02F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D030, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D032, 0x4063BA20, 0x40648C20, 0x00000003,
-	// Block 649, offset 0xa240
-	0x4062D033, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D034, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D035, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D036, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D037, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D038, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D039, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03A, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D03B, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D03C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03D, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D03E, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D03F, 0x4063BA20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063BE20,
-	0x00000002, 0x4062D022, 0x4063BE20, 0x00000002, 0x4062D023, 0x4063BE20,
-	0x00000002, 0x4062D024, 0x4063BE20, 0x00000002,
-	// Block 650, offset 0xa280
-	0x4062D025, 0x4063BE20, 0x00000002, 0x4062D026, 0x4063BE20, 0x00000002,
-	0x4062D027, 0x4063BE20, 0x00000002, 0x4062D028, 0x4063BE20, 0x00000002,
-	0x4062D029, 0x4063BE20, 0x00000002, 0x4062D02A, 0x4063BE20, 0x00000002,
-	0x4062D02B, 0x4063BE20, 0x00000002, 0x4062D02C, 0x4063BE20, 0x00000002,
-	0x4062D02D, 0x4063BE20, 0x00000002, 0x4062D02E, 0x4063BE20, 0x00000002,
-	0x4062D02F, 0x4063BE20, 0x00000002, 0x4062D030, 0x4063BE20, 0x00000002,
-	0x4062D031, 0x4063BE20, 0x00000002, 0x4062D032, 0x4063BE20, 0x00000002,
-	0x4062D033, 0x4063BE20, 0x00000002, 0x4062D034, 0x4063BE20, 0x00000002,
-	0x4062D035, 0x4063BE20, 0x00000002, 0x4062D036, 0x4063BE20, 0x00000002,
-	0x4062D037, 0x4063BE20, 0x00000002, 0x4062D038, 0x4063BE20, 0x00000002,
-	0x4062D039, 0x4063BE20, 0x00000002, 0x4062D03A,
-	// Block 651, offset 0xa2c0
-	0x4063BE20, 0x00000002, 0x4062D03B, 0x4063BE20, 0x00000002, 0x4062D03C,
-	0x4063BE20, 0x00000002, 0x4062D03D, 0x4063BE20, 0x00000003, 0x4062D021,
-	0x4063BE20, 0x40646420, 0x00000003, 0x4062D022, 0x4063BE20, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063BE20, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063BE20, 0x40648C20, 0x00000003, 0x4062D022, 0x4063BE20, 0x40648C20,
-	0x00000003, 0x4062D023, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062D024,
-	0x4063BE20, 0x40648C20, 0x00000003, 0x4062D025, 0x4063BE20, 0x40648C20,
-	0x00000003, 0x4062D026, 0x4063BE20, 0x40648C20, 0x00000002, 0x4062D021,
-	0x4063C020, 0x00000002, 0x4062D022, 0x4063C020, 0x00000002, 0x4062D023,
-	0x4063C020, 0x00000002, 0x4062D024, 0x4063C020, 0x00000002, 0x4062D025,
-	0x4063C020, 0x00000002, 0x4062D026, 0x4063C020,
-	// Block 652, offset 0xa300
-	0x00000002, 0x4062D027, 0x4063C020, 0x00000002, 0x4062D028, 0x4063C020,
-	0x00000002, 0x4062D029, 0x4063C020, 0x00000002, 0x4062D02A, 0x4063C020,
-	0x00000002, 0x4062D02B, 0x4063C020, 0x00000002, 0x4062D02C, 0x4063C020,
-	0x00000002, 0x4062D02D, 0x4063C020, 0x00000002, 0x4062D02E, 0x4063C020,
-	0x00000002, 0x4062D02F, 0x4063C020, 0x00000002, 0x4062D030, 0x4063C020,
-	0x00000002, 0x4062D031, 0x4063C020, 0x00000002, 0x4062D032, 0x4063C020,
-	0x00000002, 0x4062D033, 0x4063C020, 0x00000002, 0x4062D034, 0x4063C020,
-	0x00000002, 0x4062D035, 0x4063C020, 0x00000002, 0x4062D021, 0x4063C220,
-	0x00000002, 0x4062D022, 0x4063C220, 0x00000002, 0x4062D023, 0x4063C220,
-	0x00000002, 0x4062D024, 0x4063C220, 0x00000002, 0x4062D025, 0x4063C220,
-	0x00000002, 0x4062D026, 0x4063C220, 0x00000002,
-	// Block 653, offset 0xa340
-	0x4062D027, 0x4063C220, 0x00000002, 0x4062D028, 0x4063C220, 0x00000002,
-	0x4062D029, 0x4063C220, 0x00000002, 0x4062D02A, 0x4063C220, 0x00000002,
-	0x4062D02B, 0x4063C220, 0x00000002, 0x4062D02C, 0x4063C220, 0x00000002,
-	0x4062D02D, 0x4063C220, 0x00000002, 0x4062D02E, 0x4063C220, 0x00000002,
-	0x4062D02F, 0x4063C220, 0x00000002, 0x4062D030, 0x4063C220, 0x00000002,
-	0x4062D031, 0x4063C220, 0x00000002, 0x4062D032, 0x4063C220, 0x00000002,
-	0x4062D033, 0x4063C220, 0x00000002, 0x4062D034, 0x4063C220, 0x00000002,
-	0x4062D035, 0x4063C220, 0x00000002, 0x4062D036, 0x4063C220, 0x00000002,
-	0x4062D037, 0x4063C220, 0x00000002, 0x4062D038, 0x4063C220, 0x00000003,
-	0x4062D021, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D022, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D023, 0x4063C220,
-	// Block 654, offset 0xa380
-	0x40646A20, 0x00000003, 0x4062D024, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D025, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D026, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D027, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D028, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D029, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D02A, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D02B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D02D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D02E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D030, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D021, 0x4063C220, 0x40647220, 0x00000003, 0x4062D021, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062D021, 0x4063C420,
-	// Block 655, offset 0xa3c0
-	0x40646A20, 0x00000003, 0x4062D022, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062D023, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062D025, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062D026, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063C420,
-	0x40646A20, 0x00000002, 0x4062D021, 0x4063C620, 0x00000002, 0x4062D022,
-	0x4063C620, 0x00000002, 0x4062D023, 0x4063C620, 0x00000002, 0x4062D024,
-	0x4063C620, 0x00000002, 0x4062D025, 0x4063C620, 0x00000002, 0x4062D026,
-	0x4063C620, 0x00000002, 0x4062D027, 0x4063C620, 0x00000002, 0x4062D021,
-	0x4063C820, 0x00000002, 0x4062D022, 0x4063C820, 0x00000002, 0x4062D023,
-	0x4063C820, 0x00000002, 0x4062D024, 0x4063C820, 0x00000002, 0x4062D025,
-	0x4063C820, 0x00000002, 0x4062D026, 0x4063C820,
-	// Block 656, offset 0xa400
-	0x00000002, 0x4062D027, 0x4063C820, 0x00000002, 0x4062D028, 0x4063C820,
-	0x00000002, 0x4062D029, 0x4063C820, 0x00000002, 0x4062D02A, 0x4063C820,
-	0x00000002, 0x4062D021, 0x4063CA20, 0x00000002, 0x4062D022, 0x4063CA20,
-	0x00000002, 0x4062D023, 0x4063CA20, 0x00000002, 0x4062D024, 0x4063CA20,
-	0x00000002, 0x4062D025, 0x4063CA20, 0x00000002, 0x4062D026, 0x4063CA20,
-	0x00000002, 0x4062D027, 0x4063CA20, 0x00000002, 0x4062D028, 0x4063CA20,
-	0x00000002, 0x4062D029, 0x4063CA20, 0x00000002, 0x4062D02A, 0x4063CA20,
-	0x00000003, 0x4062D021, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D022,
-	0x4063CA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063CA20, 0x40647220,
-	0x00000003, 0x4062D024, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D021,
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D022,
-	// Block 657, offset 0xa440
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D023, 0x4063CA20, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D026, 0x4063CA20, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D021,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062D021, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D024, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D029,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D02A,
-	// Block 658, offset 0xa480
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D021, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D027, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D029,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D021, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40648220, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062D021, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D022,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D023,
-	// Block 659, offset 0xa4c0
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D027, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D021,
-	0x4063CC20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063CE20, 0x00000002,
-	0x4062D022, 0x4063CE20, 0x00000002, 0x4062D023, 0x4063CE20, 0x00000002,
-	0x4062D024, 0x4063CE20, 0x00000002, 0x4062D025, 0x4063CE20, 0x00000002,
-	0x4062D026, 0x4063CE20, 0x00000002, 0x4062D027, 0x4063CE20, 0x00000002,
-	0x4062D028, 0x4063CE20, 0x00000002, 0x4062D029, 0x4063CE20, 0x00000002,
-	0x4062D02A, 0x4063CE20, 0x00000002, 0x4062D02B, 0x4063CE20, 0x00000002,
-	0x4062D02C, 0x4063CE20, 0x00000002, 0x4062D02D,
-	// Block 660, offset 0xa500
-	0x4063CE20, 0x00000002, 0x4062D02E, 0x4063CE20, 0x00000002, 0x4062D02F,
-	0x4063CE20, 0x00000002, 0x4062D030, 0x4063CE20, 0x00000002, 0x4062D031,
-	0x4063CE20, 0x00000002, 0x4062D032, 0x4063CE20, 0x00000002, 0x4062D033,
-	0x4063CE20, 0x00000002, 0x4062D034, 0x4063CE20, 0x00000002, 0x4062D035,
-	0x4063CE20, 0x00000002, 0x4062D036, 0x4063CE20, 0x00000002, 0x4062D037,
-	0x4063CE20, 0x00000002, 0x4062D038, 0x4063CE20, 0x00000002, 0x4062D039,
-	0x4063CE20, 0x00000002, 0x4062D03A, 0x4063CE20, 0x00000002, 0x4062D03B,
-	0x4063CE20, 0x00000002, 0x4062D03C, 0x4063CE20, 0x00000002, 0x4062D03D,
-	0x4063CE20, 0x00000002, 0x4062D03E, 0x4063CE20, 0x00000002, 0x4062D03F,
-	0x4063CE20, 0x00000003, 0x4062D021, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062D022, 0x4063D020, 0x40647220, 0x00000003,
-	// Block 661, offset 0xa540
-	0x4062D023, 0x4063D020, 0x40647220, 0x00000003, 0x4062D024, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062D025, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062D026, 0x4063D020, 0x40647220, 0x00000002, 0x40403C20, 0xA070F102,
-	0x00000002, 0x402D9A22, 0xAE603202, 0x00000002, 0x002D9AC3, 0xAE603202,
-	0x00000002, 0x402D9A22, 0xAE603502, 0x00000002, 0x002D9AC3, 0xAE603502,
-	0x00000002, 0x402D9A22, 0xAE603C02, 0x00000002, 0x002D9AC3, 0xAE603C02,
-	0x00000002, 0x402D9A22, 0xAE604302, 0x00000002, 0x402D9A22, 0xAE604702,
-	0x00000002, 0x002D9AC3, 0xAE604702, 0x00000002, 0x402D9A22, 0xAE604E02,
-	0x00000002, 0x002D9AC3, 0xAE604E02, 0x00000002, 0x402D9A22, 0xAE605202,
-	0x00000002, 0x002D9AC3, 0xAE605202, 0x00000002, 0x402D9A22, 0xAE605B02,
-	0x00000002, 0x002D9AC3, 0xAE605B02, 0x00000002,
-	// Block 662, offset 0xa580
-	0x402D9A22, 0xAE606402, 0x00000002, 0x002D9AC3, 0xAE606402, 0x00000002,
-	0x402D9A22, 0xADC07002, 0x00000002, 0x002D9AC3, 0xADC07002, 0x00000002,
-	0x40306C22, 0xAE604702, 0x00000002, 0x00306CC3, 0xAE604702, 0x00000002,
-	0x40302A20, 0xAE605202, 0x00000002, 0x00302A83, 0xAE605202, 0x00000002,
-	0x40442221, 0x82092248, 0x00000002, 0x004422A3, 0x82092248, 0x00000002,
-	0x40443E21, 0x82092248, 0x00000002, 0x00443EA3, 0x82092248, 0x00000002,
-	0x00444883, 0x82092248, 0x00000002, 0x40444821, 0x82092248, 0x00000002,
-	0x004448A3, 0x82092248, 0x00000002, 0x40445421, 0x82092248, 0x00000002,
-	0x40445821, 0x82092248, 0x00000002, 0x004458A3, 0x82092248, 0x00000002,
-	0x40445A21, 0x82092248, 0x00000002, 0x00445AA3, 0x82092248, 0x00000002,
-	0x40446621, 0x82092248, 0x00000002, 0x004466A3,
-	// Block 663, offset 0xa5c0
-	0x82092248, 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6894,
-	0xA0007D14, 0x00000005, 0x404E6020, 0x404E8420, 0x404E2420, 0x8209278B,
-	0x404F3020, 0x00000006, 0x404E6A20, 0x8209278B, 0x404E6A20, 0x404EEE20,
-	0x404E7220, 0x8209278B, 0x00000006, 0x404E6A21, 0x40510E20, 0x404EE620,
-	0x404EEE20, 0x404E1420, 0x8209278B, 0x00000004, 0x404E8C21, 0x40510A20,
-	0x404EFE20, 0x404F2E20, 0x00000006, 0x404E9420, 0x404E1420, 0x8209278B,
-	0x404E8220, 0x404E1420, 0x8209278B, 0x00000005, 0x404E9420, 0x404E1420,
-	0x8209278B, 0x404E8820, 0x404EDE20, 0x0000000A, 0x404E9421, 0x404E4820,
-	0x8209278B, 0x404F3020, 0x404E1420, 0x404EFE20, 0x404EDE20, 0x404E2420,
-	0x8209278B, 0x404F3020, 0x00000003, 0x404EA620, 0x404E8420, 0x404EEA20,
-	0x00000003, 0x404EA620, 0x8209278A, 0x404EA620,
-	// Block 664, offset 0xa600
-	0x00000002, 0x004EC283, 0x404EE620, 0x00000002, 0x404EC221, 0x404EE620,
-	0x00000002, 0x004EC283, 0x404EEA20, 0x00000002, 0x004EC283, 0x404EEE20,
-	0x00000003, 0x004EC283, 0x404EEE20, 0x404F0C20, 0x00000002, 0x004EC283,
-	0x404EF420, 0x00000002, 0x004EC283, 0x404EFE20, 0x00000002, 0x004EC284,
-	0x404EFE20, 0x00000003, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	// Block 665, offset 0xa640
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 666, offset 0xa680
-	0x404EDE20, 0x404E2420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005,
-	// Block 667, offset 0xa6c0
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	// Block 668, offset 0xa700
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 669, offset 0xa740
-	0x404EDE20, 0x404E5220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005,
-	// Block 670, offset 0xa780
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	// Block 671, offset 0xa7c0
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 672, offset 0xa800
-	0x404EDE20, 0x404E7220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005,
-	// Block 673, offset 0xa840
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	// Block 674, offset 0xa880
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 675, offset 0xa8c0
-	0x404EDE20, 0x404EA620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278B, 0x00000004, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x8209278B, 0x00000006, 0x404EFE20, 0x404EDE20, 0x404E1420,
-	0x8209278B, 0x404E1420, 0x40510420, 0x00000002, 0x402C9A20, 0xAE603202,
-	0x00000002, 0x002C9A83, 0xAE603202, 0x00000002,
-	// Block 676, offset 0xa900
-	0x402C9A20, 0xAE603502, 0x00000002, 0x002C9A83, 0xAE603502, 0x00000002,
-	0x402C9A20, 0xAE604E02, 0x00000002, 0x002C9A83, 0xAE604E02, 0x00000002,
-	0x402C9A20, 0xAE606402, 0x00000002, 0x002C9A83, 0xAE606402, 0x00000002,
-	0x402C9A20, 0xADC07002, 0x00000002, 0x002C9A83, 0xADC07002, 0x00000002,
-	0x402EE420, 0xAE603202, 0x00000002, 0x002EE483, 0xAE603202, 0x00000002,
-	0x402EE420, 0xAE603502, 0x00000002, 0x002EE483, 0xAE603502, 0x00000002,
-	0x402EE420, 0xAE606402, 0x00000002, 0x002EE483, 0xAE606402, 0x00000002,
-	0x402EE420, 0xADC07002, 0x00000002, 0x002EE483, 0xADC07002, 0x00000002,
-	0x40411620, 0xA000FA02, 0x00000002, 0x40411E20, 0xA000FA02, 0x00000002,
-	0x40412020, 0xA000FA02, 0x00000002, 0x40412A20, 0xA000FA02, 0x00000002,
-	0x40414620, 0xA000FA02, 0x00000002, 0x40415420,
-	// Block 677, offset 0xa940
-	0xA000FA02, 0x00000002, 0x402C3C20, 0xACA05602, 0x00000002, 0x002C3C83,
-	0xACA05602, 0x00000002, 0x403A6822, 0xAE60BE02, 0x00000002, 0x003A7C84,
-	0x00391C84, 0x00000002, 0x003A7C9A, 0x00391C9A, 0x00000002, 0x40320820,
-	0xAE603202, 0x00000002, 0x00320883, 0xAE603202, 0x00000002, 0x40320A20,
-	0xAE603202, 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20,
-	0xAE605B02, 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21,
-	0xAE603702, 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21,
-	0xAE603C02, 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, 0x40321022,
-	0xAE603202, 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, 0x40321022,
-	0xAE604702, 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, 0x40321022,
-	0xAE605B02, 0x00000002, 0x003210C3, 0xAE605B02,
-	// Block 678, offset 0xa980
-	0x00000002, 0x40321022, 0xAD806802, 0x00000002, 0x003210C3, 0xAD806802,
-	0x00000002, 0x40321023, 0xAE603202, 0x00000002, 0x003210E3, 0xAE603202,
-	0x00000002, 0x40321023, 0xAE603502, 0x00000002, 0x003210E3, 0xAE603502,
-	0x00000002, 0x40321023, 0xAE604E02, 0x00000002, 0x003210E3, 0xAE604E02,
-	0x00000002, 0x40321023, 0xAE606402, 0x00000002, 0x003210E3, 0xAE606402,
-	0x00000002, 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002,
-	0x00000002, 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02,
-	0x00000002, 0x402C6020, 0xAE603202, 0x00000002, 0x002C6083, 0xAE603202,
-	0x00000002, 0x40321024, 0xAE603202, 0x00000002, 0x00321103, 0xAE603202,
-	0x00000002, 0x40321024, 0xAE603502, 0x00000002, 0x00321103, 0xAE603502,
-	0x00000002, 0x40321024, 0xAE604E02, 0x00000002,
-	// Block 679, offset 0xa9c0
-	0x00321103, 0xAE604E02, 0x00000002, 0x40321024, 0xAE606402, 0x00000002,
-	0x00321103, 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002,
-	0x00321103, 0xADC07002, 0x00000002, 0x00497283, 0x40496C20, 0x00000002,
-	0x00497284, 0x40496C20, 0x00000002, 0x402BDE21, 0xAE603702, 0x00000002,
-	0x002BDEA3, 0xAE603702, 0x00000002, 0x402BDE21, 0xAE603C02, 0x00000002,
-	0x002BDEA3, 0xAE603C02, 0x00000002, 0x402BDE21, 0xAE604302, 0x00000002,
-	0x002BDEA3, 0xAE604302, 0x00000002, 0x402BDE22, 0xAE604702, 0x00000002,
-	0x002BDEC3, 0xAE604702, 0x00000002, 0x402BDE22, 0xAE605202, 0x00000002,
-	0x002BDEC3, 0xAE605202, 0x00000002, 0x402C9821, 0xAE603C02, 0x00000002,
-	0x002C98A3, 0xAE603C02, 0x00000002, 0x402C9822, 0xAE603202, 0x00000002,
-	0x002C98C3, 0xAE603202, 0x00000002, 0x402C9822,
-	// Block 680, offset 0xaa00
-	0xAE603502, 0x00000002, 0x002C98C3, 0xAE603502, 0x00000002, 0x402D9A21,
-	0xAE604702, 0x00000002, 0x002D9AA3, 0xAE604702, 0x00000002, 0x402EE221,
-	0xAE603C02, 0x00000002, 0x002EE2A3, 0xAE603C02, 0x00000002, 0x402EE221,
-	0xAE604E02, 0x00000002, 0x002EE2A3, 0xAE604E02, 0x00000002, 0x402EE221,
-	0xAD806802, 0x00000002, 0x002EE2A3, 0xAD806802, 0x00000002, 0x402EE222,
-	0xAE603202, 0x00000002, 0x002EE2C3, 0xAE603202, 0x00000002, 0x402EE222,
-	0xAE603502, 0x00000002, 0x002EE2C3, 0xAE603502, 0x00000002, 0x402EE222,
-	0xAE604702, 0x00000002, 0x002EE2C3, 0xAE604702, 0x00000002, 0x402EE222,
-	0xAE604E02, 0x00000002, 0x002EE2C3, 0xAE604E02, 0x00000002, 0x402EE222,
-	0xAE605202, 0x00000002, 0x002EE2C3, 0xAE605202, 0x00000002, 0x402EE222,
-	0xACA05902, 0x00000002, 0x002EE2C3, 0xACA05902,
-	// Block 681, offset 0xaa40
-	0x00000002, 0x40306C21, 0xAE604702, 0x00000002, 0x00306CA3, 0xAE604702,
-	0x00000002, 0x40306C21, 0xAE604E02, 0x00000002, 0x00306CA3, 0xAE604E02,
-	0x00000002, 0x40306C21, 0xAD806802, 0x00000002, 0x00306CA3, 0xAD806802,
-	0x00000002, 0xA000AD18, 0xA000BA18, 0x00000002, 0x00393C97, 0x00396497,
-	0x00000002, 0x00393C9A, 0x0039649A, 0x00000002, 0x00393C97, 0x00397297,
-	0x00000002, 0x00393C9A, 0x0039729A, 0x00000002, 0x00393C97, 0x00397497,
-	0x00000002, 0x00393C9A, 0x0039749A, 0x00000002, 0x00393C99, 0x0039A499,
-	0x00000002, 0x00393C99, 0x0039A699, 0x00000002, 0x00393C97, 0x003A4E97,
-	0x00000002, 0x00393C98, 0x003A4E98, 0x00000002, 0x00393C99, 0x003A4E99,
-	0x00000002, 0x00393C9A, 0x003A4E9A, 0x00000002, 0x00393C99, 0x003A5699,
-	0x00000002, 0x00395697, 0x00396497, 0x00000002,
-	// Block 682, offset 0xaa80
-	0x0039569A, 0x0039649A, 0x00000002, 0x00395697, 0x00397297, 0x00000002,
-	0x0039569A, 0x0039729A, 0x00000002, 0x00395697, 0x00397497, 0x00000002,
-	0x0039569A, 0x0039749A, 0x00000002, 0x00395699, 0x0039A499, 0x00000002,
-	0x00395699, 0x0039A699, 0x00000002, 0x00395697, 0x003A4E97, 0x00000002,
-	0x00395698, 0x003A4E98, 0x00000002, 0x00395699, 0x003A4E99, 0x00000002,
-	0x0039569A, 0x003A4E9A, 0x00000002, 0x00395699, 0x003A5699, 0x00000002,
-	0x0039589A, 0x0039649A, 0x00000002, 0x00395899, 0x0039A499, 0x00000002,
-	0x00395899, 0x0039A699, 0x00000002, 0x00395897, 0x003A4E97, 0x00000002,
-	0x00395898, 0x003A4E98, 0x00000002, 0x00395899, 0x003A4E99, 0x00000002,
-	0x0039589A, 0x003A4E9A, 0x00000002, 0x00395899, 0x003A5699, 0x00000002,
-	0x00396497, 0x00397297, 0x00000002, 0x0039649A,
-	// Block 683, offset 0xaac0
-	0x0039729A, 0x00000002, 0x00396497, 0x003A4E97, 0x00000002, 0x0039649A,
-	0x003A4E9A, 0x00000002, 0x00397297, 0x00396497, 0x00000002, 0x0039729A,
-	0x0039649A, 0x00000002, 0x00397297, 0x003A4E97, 0x00000002, 0x0039729A,
-	0x003A4E9A, 0x00000002, 0x00397497, 0x00396497, 0x00000002, 0x0039749A,
-	0x0039649A, 0x00000002, 0x0039749A, 0x0039729A, 0x00000002, 0x00397497,
-	0x003A4E97, 0x00000002, 0x0039749A, 0x003A4E9A, 0x00000002, 0x00398A9A,
-	0xA000D11A, 0x00000002, 0x0039A49A, 0xA000D11A, 0x00000002, 0x0039C697,
-	0x00396497, 0x00000002, 0x0039C698, 0x00396498, 0x00000002, 0x0039C69A,
-	0x0039649A, 0x00000002, 0x0039C697, 0x00397297, 0x00000002, 0x0039C698,
-	0x00397298, 0x00000002, 0x0039C69A, 0x0039729A, 0x00000002, 0x0039C697,
-	0x00397497, 0x00000002, 0x0039C698, 0x00397498,
-	// Block 684, offset 0xab00
-	0x00000002, 0x0039C69A, 0x0039749A, 0x00000002, 0x0039C699, 0x0039A499,
-	0x00000002, 0x0039C69A, 0x0039A49A, 0x00000002, 0x0039C697, 0x003A4E97,
-	0x00000002, 0x0039C698, 0x003A4E98, 0x00000002, 0x0039C69A, 0x003A4E9A,
-	0x00000002, 0x0039C897, 0x00396497, 0x00000002, 0x0039C898, 0x00396498,
-	0x00000002, 0x0039C899, 0x00396499, 0x00000002, 0x0039C89A, 0x0039649A,
-	0x00000002, 0x0039C897, 0x00397297, 0x00000002, 0x0039C898, 0x00397298,
-	0x00000002, 0x0039C899, 0x00397299, 0x00000002, 0x0039C89A, 0x0039729A,
-	0x00000002, 0x0039C897, 0x00397497, 0x00000002, 0x0039C898, 0x00397498,
-	0x00000002, 0x0039C899, 0x00397499, 0x00000002, 0x0039C89A, 0x0039749A,
-	0x00000002, 0x0039C899, 0x0039A499, 0x00000002, 0x0039C89A, 0x0039A49A,
-	0x00000002, 0x0039C897, 0x003A4E97, 0x00000002,
-	// Block 685, offset 0xab40
-	0x0039C898, 0x003A4E98, 0x00000002, 0x0039C899, 0x003A4E99, 0x00000002,
-	0x0039C89A, 0x003A4E9A, 0x00000002, 0x0039DC97, 0x00397297, 0x00000002,
-	0x0039DC9A, 0x0039729A, 0x00000002, 0x0039DC97, 0x00397497, 0x00000002,
-	0x0039DC99, 0x0039A499, 0x00000002, 0x0039DC9A, 0x0039A49A, 0x00000002,
-	0x0039DC97, 0x003A4E97, 0x00000002, 0x0039DC9A, 0x003A4E9A, 0x00000002,
-	0x0039DE97, 0x00396497, 0x00000002, 0x0039DE9A, 0x0039649A, 0x00000002,
-	0x0039DE97, 0x00397297, 0x00000002, 0x0039DE9A, 0x0039729A, 0x00000002,
-	0x0039DE97, 0x00397497, 0x00000002, 0x0039DE9A, 0x0039749A, 0x00000002,
-	0x0039DE99, 0x0039A499, 0x00000002, 0x0039DE9A, 0x0039A49A, 0x00000002,
-	0x0039DE97, 0x003A4E97, 0x00000002, 0x0039DE9A, 0x003A4E9A, 0x00000002,
-	0x0039E697, 0x00397297, 0x00000002, 0x0039E69A,
-	// Block 686, offset 0xab80
-	0x0039729A, 0x00000002, 0x0039E697, 0x003A4E97, 0x00000002, 0x0039E698,
-	0x003A4E98, 0x00000002, 0x0039E69A, 0x003A4E9A, 0x00000002, 0x0039E897,
-	0x003A4E97, 0x00000002, 0x0039E898, 0x003A4E98, 0x00000002, 0x0039E89A,
-	0x003A4E9A, 0x00000002, 0x0039EE97, 0x00396497, 0x00000002, 0x0039EE9A,
-	0x0039649A, 0x00000002, 0x0039EE97, 0x003A4E97, 0x00000002, 0x0039EE9A,
-	0x003A4E9A, 0x00000002, 0x0039F097, 0x00396497, 0x00000002, 0x0039F09A,
-	0x0039649A, 0x00000002, 0x0039F097, 0x003A4E97, 0x00000002, 0x0039F09A,
-	0x003A4E9A, 0x00000002, 0x0039FC97, 0x00396497, 0x00000002, 0x0039FC9A,
-	0x0039649A, 0x00000002, 0x0039FC97, 0x00397297, 0x00000002, 0x0039FC9A,
-	0x0039729A, 0x00000002, 0x0039FC97, 0x00397497, 0x00000002, 0x0039FC9A,
-	0x0039749A, 0x00000002, 0x0039FC97, 0x003A4E97,
-	// Block 687, offset 0xabc0
-	0x00000002, 0x0039FC9A, 0x003A4E9A, 0x00000002, 0x003A1297, 0x00397297,
-	0x00000002, 0x003A129A, 0x0039729A, 0x00000002, 0x003A1297, 0x003A4E97,
-	0x00000002, 0x003A129A, 0x003A4E9A, 0x00000002, 0x003A4099, 0x00393899,
-	0x00000002, 0x003A409A, 0x0039389A, 0x00000002, 0x003A4097, 0x00396497,
-	0x00000002, 0x003A409A, 0x0039649A, 0x00000002, 0x003A4097, 0x00397297,
-	0x00000002, 0x003A409A, 0x0039729A, 0x00000002, 0x003A4097, 0x00397497,
-	0x00000002, 0x003A409A, 0x0039749A, 0x00000002, 0x003A4097, 0x003A4E97,
-	0x00000002, 0x003A4098, 0x003A4E98, 0x00000002, 0x003A4099, 0x003A4E99,
-	0x00000002, 0x003A409A, 0x003A4E9A, 0x00000002, 0x003A4E99, 0x00393899,
-	0x00000002, 0x003A4E97, 0x00396497, 0x00000002, 0x003A4E9A, 0x0039649A,
-	0x00000002, 0x003A4E97, 0x00397297, 0x00000002,
-	// Block 688, offset 0xac00
-	0x003A4E9A, 0x0039729A, 0x00000002, 0x003A4E97, 0x00397497, 0x00000002,
-	0x003A4E9A, 0x0039749A, 0x00000002, 0x003A4E97, 0x003A4E97, 0x00000002,
-	0x003A4E99, 0x003A4E99, 0x00000002, 0x003A4E9A, 0x003A4E9A, 0x00000002,
-	0x003A5697, 0x00396497, 0x00000002, 0x003A569A, 0x0039649A, 0x00000002,
-	0x003A5697, 0x00397297, 0x00000002, 0x003A569A, 0x0039729A, 0x00000002,
-	0x003A5697, 0x00397497, 0x00000002, 0x003A569A, 0x0039749A, 0x00000002,
-	0x003A5699, 0x0039A499, 0x00000002, 0x003A5699, 0x0039A699, 0x00000002,
-	0x003A5697, 0x003A4E97, 0x00000002, 0x003A5698, 0x003A4E98, 0x00000002,
-	0x003A5699, 0x003A4E99, 0x00000002, 0x003A569A, 0x003A4E9A, 0x00000002,
-	0x003A5699, 0x003A5699, 0x00000002, 0x403A7220, 0xA000C602, 0x00000002,
-	0x003A7484, 0x00391C84, 0x00000002, 0xAE604702,
-	// Block 689, offset 0xac40
-	0xAE603802, 0x00000002, 0x40062C20, 0xAE603802, 0x00000002, 0x40063620,
-	0xAE603802, 0x00000002, 0x40063820, 0xAE603802, 0x00000002, 0x402BDE20,
-	0xAE603602, 0x00000002, 0x002BDE88, 0xAE603602, 0x00000002, 0x402BDE20,
-	0xAE603702, 0x00000002, 0x002BDE88, 0xAE603702, 0x00000002, 0x402BDE20,
-	0xAE603802, 0x00000002, 0x002BDE88, 0xAE603802, 0x00000002, 0x402BDE20,
-	0xAE603902, 0x00000002, 0x002BDE88, 0xAE603902, 0x00000003, 0x402BDE20,
-	0xAE604302, 0xAE603802, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603802,
-	0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603802, 0x00000004,
-	0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603802, 0x00000002, 0x402BE020,
-	0xAE603602, 0x00000002, 0x002BE083, 0xAE603602, 0x00000002, 0x402BE020,
-	0xAE603702, 0x00000002, 0x002BE083, 0xAE603702,
-	// Block 690, offset 0xac80
-	0x00000002, 0x402BE020, 0xAE603802, 0x00000002, 0x002BE083, 0xAE603802,
-	0x00000002, 0x402BE020, 0xAE603902, 0x00000002, 0x002BE083, 0xAE603902,
-	0x00000002, 0x402BE220, 0xAE603602, 0x00000002, 0x002BE283, 0xAE603602,
-	0x00000002, 0x402BE220, 0xAE603702, 0x00000002, 0x002BE283, 0xAE603702,
-	0x00000002, 0x402BE220, 0xAE603802, 0x00000002, 0x002BE283, 0xAE603802,
-	0x00000002, 0x402BE220, 0xAE603902, 0x00000002, 0x002BE283, 0xAE603902,
-	0x00000002, 0x402C0A20, 0xAE603902, 0x00000002, 0x002C0A88, 0xAE603902,
-	0x00000002, 0x402C3A20, 0xAE603802, 0x00000002, 0x002C3A88, 0xAE603802,
-	0x00000003, 0x402C3A20, 0xACA05602, 0xAE603802, 0x00000003, 0x002C3A88,
-	0xACA05602, 0xAE603802, 0x00000002, 0x402C6220, 0xAE603902, 0x00000002,
-	0x002C6288, 0xAE603902, 0x00000002, 0x402C9820,
-	// Block 691, offset 0xacc0
-	0xAE603602, 0x00000002, 0x002C9888, 0xAE603602, 0x00000002, 0x402C9820,
-	0xAE603702, 0x00000002, 0x002C9888, 0xAE603702, 0x00000002, 0x402C9820,
-	0xAE603802, 0x00000002, 0x002C9888, 0xAE603802, 0x00000002, 0x402C9820,
-	0xAE603902, 0x00000002, 0x002C9888, 0xAE603902, 0x00000003, 0x402C9820,
-	0xAE605B02, 0xAE603802, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603802,
-	0x00000002, 0x402C9A20, 0xAE603602, 0x00000002, 0x002C9A83, 0xAE603602,
-	0x00000002, 0x402C9A20, 0xAE603702, 0x00000002, 0x002C9A83, 0xAE603702,
-	0x00000002, 0x402C9A20, 0xAE603802, 0x00000002, 0x002C9A83, 0xAE603802,
-	0x00000002, 0x402C9A20, 0xAE603902, 0x00000002, 0x002C9A83, 0xAE603902,
-	0x00000002, 0x402D2220, 0xAE603802, 0x00000002, 0x002D2288, 0xAE603802,
-	0x00000002, 0x402D6820, 0xAE603902, 0x00000002,
-	// Block 692, offset 0xad00
-	0x002D6888, 0xAE603902, 0x00000002, 0x402D9A20, 0xAE603602, 0x00000002,
-	0x002D9A88, 0xAE603602, 0x00000002, 0x402D9A20, 0xAE603702, 0x00000002,
-	0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, 0xAE603802, 0x00000002,
-	0x002D9A88, 0xAE603802, 0x00000002, 0x402D9A20, 0xAE603902, 0x00000002,
-	0x002D9A88, 0xAE603902, 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603802,
-	0x00000003, 0x002D9A88, 0xAE604702, 0xAE603802, 0x00000002, 0x402DFE20,
-	0xAE603802, 0x00000002, 0x002DFE88, 0xAE603802, 0x00000002, 0x402DFE20,
-	0xAE603902, 0x00000002, 0x002DFE88, 0xAE603902, 0x00000002, 0x402E2220,
-	0xAE603802, 0x00000002, 0x002E2288, 0xAE603802, 0x00000002, 0x402E2220,
-	0xAE603902, 0x00000002, 0x002E2288, 0xAE603902, 0x00000003, 0x402E2220,
-	0xAE603902, 0xAE605B02, 0x00000003, 0x002E2288,
-	// Block 693, offset 0xad40
-	0xAE603902, 0xAE605B02, 0x00000002, 0x402E8220, 0xAE603802, 0x00000002,
-	0x002E8288, 0xAE603802, 0x00000002, 0x402E8220, 0xAE603902, 0x00000002,
-	0x002E8288, 0xAE603902, 0x00000002, 0x402E9E20, 0xAE603702, 0x00000002,
-	0x002E9E88, 0xAE603702, 0x00000002, 0x402E9E20, 0xAE603802, 0x00000002,
-	0x002E9E88, 0xAE603802, 0x00000002, 0x402E9E20, 0xAE603902, 0x00000002,
-	0x002E9E88, 0xAE603902, 0x00000002, 0x402EE220, 0xAE603602, 0x00000002,
-	0x002EE288, 0xAE603602, 0x00000002, 0x402EE220, 0xAE603702, 0x00000002,
-	0x002EE288, 0xAE603702, 0x00000003, 0x402EE220, 0xAE603702, 0xAE603802,
-	0x00000003, 0x002EE288, 0xAE603702, 0xAE603802, 0x00000003, 0x402EE220,
-	0xAE603702, 0xAE604702, 0x00000003, 0x002EE288, 0xAE603702, 0xAE604702,
-	0x00000003, 0x402EE220, 0xAE603702, 0xAE605B02,
-	// Block 694, offset 0xad80
-	0x00000003, 0x002EE288, 0xAE603702, 0xAE605B02, 0x00000002, 0x402EE220,
-	0xAE603802, 0x00000002, 0x002EE288, 0xAE603802, 0x00000002, 0x402EE220,
-	0xAE603902, 0x00000002, 0x002EE288, 0xAE603902, 0x00000003, 0x402EE220,
-	0xA0005402, 0xAE603802, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603802,
-	0x00000003, 0x402EE220, 0xAE605B02, 0xAE603802, 0x00000003, 0x002EE288,
-	0xAE605B02, 0xAE603802, 0x00000002, 0x402EE420, 0xAE603602, 0x00000002,
-	0x002EE483, 0xAE603602, 0x00000002, 0x402EE420, 0xAE603702, 0x00000002,
-	0x002EE483, 0xAE603702, 0x00000002, 0x402EE420, 0xAE603802, 0x00000002,
-	0x002EE483, 0xAE603802, 0x00000002, 0x402EE420, 0xAE603902, 0x00000002,
-	0x002EE483, 0xAE603902, 0x00000002, 0x402EE620, 0xAE603502, 0x00000002,
-	0x002EE683, 0xAE603502, 0x00000002, 0x402EE620,
-	// Block 695, offset 0xadc0
-	0xAE603602, 0x00000002, 0x002EE683, 0xAE603602, 0x00000002, 0x402EE620,
-	0xAE603702, 0x00000002, 0x002EE683, 0xAE603702, 0x00000002, 0x402EE620,
-	0xAE603802, 0x00000002, 0x002EE683, 0xAE603802, 0x00000002, 0x402EE620,
-	0xAE603902, 0x00000002, 0x002EE683, 0xAE603902, 0x00000002, 0x402F2C20,
-	0xAE603802, 0x00000002, 0x002F2C88, 0xAE603802, 0x00000002, 0x402F7A20,
-	0xAE603802, 0x00000002, 0x002F7A88, 0xAE603802, 0x00000002, 0x402F7A20,
-	0xAE603902, 0x00000002, 0x002F7A88, 0xAE603902, 0x00000003, 0x402F7A20,
-	0xAE603902, 0xAE605B02, 0x00000003, 0x002F7A88, 0xAE603902, 0xAE605B02,
-	0x00000002, 0x402FE620, 0xAE603802, 0x00000002, 0x002FE688, 0xAE603802,
-	0x00000003, 0x402FE620, 0xAE603802, 0xAE605202, 0x00000003, 0x002FE688,
-	0xAE603802, 0xAE605202, 0x00000002, 0x402FE620,
-	// Block 696, offset 0xae00
-	0xAE603902, 0x00000002, 0x002FE688, 0xAE603902, 0x00000003, 0x402FE620,
-	0xAE603902, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603902, 0xAE605202,
-	0x00000002, 0x40302C20, 0xAE603902, 0x00000002, 0x00302C88, 0xAE603902,
-	0x00000002, 0x40306C20, 0xAE603602, 0x00000002, 0x00306C88, 0xAE603602,
-	0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702,
-	0x00000003, 0x40306C20, 0xAE603702, 0xAE603802, 0x00000003, 0x00306C88,
-	0xAE603702, 0xAE603802, 0x00000002, 0x40306C20, 0xAE603802, 0x00000002,
-	0x00306C88, 0xAE603802, 0x00000002, 0x40306C20, 0xAE603902, 0x00000002,
-	0x00306C88, 0xAE603902, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603802,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE603802, 0x00000002, 0x40306E20,
-	0xAE603602, 0x00000002, 0x00306E83, 0xAE603602,
-	// Block 697, offset 0xae40
-	0x00000002, 0x40306E20, 0xAE603702, 0x00000002, 0x00306E83, 0xAE603702,
-	0x00000002, 0x40306E20, 0xAE603802, 0x00000002, 0x00306E83, 0xAE603802,
-	0x00000002, 0x40306E20, 0xAE603902, 0x00000002, 0x00306E83, 0xAE603902,
-	0x00000002, 0x4030BE20, 0xAE603702, 0x00000002, 0x0030BE88, 0xAE603702,
-	0x00000002, 0x4030BE20, 0xAE603902, 0x00000002, 0x0030BE88, 0xAE603902,
-	0x00000002, 0x4030E220, 0xAE603802, 0x00000002, 0x0030E288, 0xAE603802,
-	0x00000002, 0x4030E220, 0xAE603902, 0x00000002, 0x0030E288, 0xAE603902,
-	0x00000002, 0x40310020, 0xAE603602, 0x00000002, 0x00310088, 0xAE603602,
-	0x00000002, 0x40310020, 0xAE603702, 0x00000002, 0x00310088, 0xAE603702,
-	0x00000002, 0x40310020, 0xAE603802, 0x00000002, 0x00310088, 0xAE603802,
-	0x00000002, 0x40310020, 0xAE603902, 0x00000002,
-	// Block 698, offset 0xae80
-	0x00310088, 0xAE603902, 0x00000002, 0x40312A20, 0xAE603802, 0x00000002,
-	0x00312A88, 0xAE603802, 0x00000002, 0x40312A20, 0xAE603902, 0x00000002,
-	0x00312A88, 0xAE603902, 0x00000003, 0x40325220, 0xAE602202, 0xAE603802,
-	0x00000003, 0x00325288, 0xAE602202, 0xAE603802, 0x00000004, 0x40325220,
-	0xAE602202, 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202,
-	0xAE603802, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603802,
-	0x00000003, 0x00325288, 0xAE602A02, 0xAE603802, 0x00000004, 0x40325220,
-	0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02,
-	0xAE603802, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603802, 0x00000002,
-	0x00325288, 0xAE603802, 0x00000003, 0x40325220, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x40325C20, 0xAE602202, 0xAE603802,
-	// Block 699, offset 0xaec0
-	0x00000003, 0x00325C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40325C20,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40325C20, 0xAE603802, 0x00000002, 0x00325C88, 0xAE603802,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603802, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603802, 0x00000004, 0x40326820, 0xAE602202, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602A02, 0xAE603802, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAE603802, 0x00000004, 0x40326820, 0xAE602A02, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE603802, 0xAF007F02,
-	0x00000002, 0x40326820, 0xAE603802, 0x00000002, 0x00326888, 0xAE603802,
-	0x00000003, 0x40326820, 0xAE603802, 0xAF007F02,
-	// Block 700, offset 0xaf00
-	0x00000003, 0x40326C20, 0xAE602202, 0xAE603802, 0x00000003, 0x00326C88,
-	0xAE602202, 0xAE603802, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603802,
-	0x00000003, 0x00326C88, 0xAE602A02, 0xAE603802, 0x00000002, 0x40326C20,
-	0xAE603802, 0x00000002, 0x00326C88, 0xAE603802, 0x00000003, 0x40326C20,
-	0xAE604702, 0xAE603802, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603802,
-	0x00000003, 0x00327C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40327C20,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40327C20, 0xAE603802, 0x00000002, 0x00327C88, 0xAE603802,
-	0x00000003, 0x40329820, 0xAE602202, 0xAE603802, 0x00000003, 0x40329820,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40329820, 0xAE603802, 0x00000002,
-	// Block 701, offset 0xaf40
-	0x00329888, 0xAE603802, 0x00000003, 0x40329820, 0xAE604702, 0xAE603802,
-	0x00000003, 0x4032A220, 0xAE602202, 0xAE603802, 0x00000003, 0x0032A288,
-	0xAE602202, 0xAE603802, 0x00000004, 0x4032A220, 0xAE602202, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x4032A220, 0xAE602A02, 0xAE603802, 0x00000003, 0x0032A288,
-	0xAE602A02, 0xAE603802, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603802, 0xAF007F02,
-	0x00000002, 0x4032A220, 0xAE603802, 0x00000002, 0x0032A288, 0xAE603802,
-	0x00000003, 0x4032A220, 0xAE603802, 0xAF007F02, 0x00000002, 0x402BDE20,
-	0xAE603202, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x402D9A20,
-	0xAE603202, 0x00000002, 0x402EE220, 0xAE603202,
-	// Block 702, offset 0xaf80
-	0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x402C9A20, 0xAE603C02,
-	0x00000002, 0x002C9A83, 0xAE603C02, 0x00000003, 0x0003F483, 0x6C030A20,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C110E20, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C272220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C37B420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C549820, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C5D8420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C61F420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C64CA20, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C6C2E20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C6F9A20,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C814020, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C8F2420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C9FE620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CA25C20,
-	// Block 703, offset 0xafc0
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CB4C620, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CB6C820, 0x4003F620, 0x00000003, 0x0003F483, 0x6CC63620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CC9F220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CCF3620, 0x4003F620, 0x00000003, 0x0003F483, 0x6CD22420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CD70220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CD87420, 0x4003F620, 0x00000003, 0x0003F483, 0x6CE27020,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CE91020, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CF41420, 0x4003F620, 0x00000003, 0x0003F483, 0x6D007020,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D04B220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D08F820, 0x4003F620, 0x00000003, 0x0003F483, 0x6D13B620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D1F9820,
-	// Block 704, offset 0xb000
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D266820, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D357020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D399220,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D3AC620, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D3E6020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D3F2A20,
-	0x4003F620, 0x00000003, 0x0004B083, 0x6C011220, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6C044020, 0x4004B220, 0x00000003, 0x0004B083, 0x6C079220,
-	0x4004B220, 0x00000003, 0x0004B083, 0x6C26E020, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6C2A1220, 0x4004B220, 0x00000003, 0x0004B083, 0x6C2D0A20,
-	0x4004B220, 0x00000003, 0x0004B083, 0x6C37B420, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6CC9F220, 0x4004B220, 0x00000003, 0x0004B083, 0x6CD16420,
-	0x4004B220, 0x00000003, 0x0029CE83, 0x4029CC20,
-	// Block 705, offset 0xb040
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029CC20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029CC20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029CE20,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029CE20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D020,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D020, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029D020, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D220,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D220, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029D420, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D420,
-	0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D620, 0x6C2D0A20, 0x00000003,
-	0x0029CE83, 0x4029D620, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D820,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D820,
-	// Block 706, offset 0xb080
-	0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DA20, 0x6C2D0A20, 0x00000003,
-	0x0029CE83, 0x4029DA20, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DC20,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029DE20, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DE20,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029CC20, 0x6C2D0A20, 0x00000003,
-	0x0029D083, 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029CE20,
-	0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029CE20, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029D020, 0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D020,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029D220, 0x6C2D0A20, 0x00000003,
-	0x0029D083, 0x4029D220, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029D420,
-	0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D420,
-	// Block 707, offset 0xb0c0
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029D620, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029D820, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029DA20,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029DC20, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029DE20, 0x6CC63620, 0x00000003, 0x0029D283, 0x4029CC20,
-	0x6CC63620, 0x00000003, 0x0029D283, 0x4029CE20, 0x6CC63620, 0x00000002,
-	0x402BDE1C, 0xAE604702, 0x00000002, 0x002BDE03, 0xAE604702, 0x00000002,
-	0x402BDE1C, 0xAE605202, 0x00000002, 0x002BDE03, 0xAE605202, 0x00000002,
-	0x402BDE1D, 0xAE603702, 0x00000002, 0x002BDE23, 0xAE603702, 0x00000002,
-	0x402BDE1D, 0xAE603C02, 0x00000002, 0x002BDE23, 0xAE603C02, 0x00000002,
-	0x402BDE1D, 0xAE604302, 0x00000002, 0x002BDE23, 0xAE604302, 0x00000002,
-	0x402BDE1F, 0xAE603702, 0x00000002, 0x002BDE63,
-	// Block 708, offset 0xb100
-	0xAE603702, 0x00000002, 0x402BDE1F, 0xAE603C02, 0x00000002, 0x002BDE63,
-	0xAE603C02, 0x00000002, 0x402C981C, 0xAE603202, 0x00000002, 0x002C9803,
-	0xAE603202, 0x00000002, 0x402C981C, 0xAE603502, 0x00000002, 0x002C9803,
-	0xAE603502, 0x00000002, 0x402D9A1D, 0xAE604702, 0x00000002, 0x002D9A23,
-	0xAE604702, 0x00000002, 0x402EE21C, 0xAE603202, 0x00000002, 0x002EE203,
-	0xAE603202, 0x00000002, 0x402EE21C, 0xAE603502, 0x00000002, 0x002EE203,
-	0xAE603502, 0x00000002, 0x402EE21C, 0xAE604702, 0x00000002, 0x002EE203,
-	0xAE604702, 0x00000002, 0x402EE21C, 0xAE604E02, 0x00000002, 0x002EE203,
-	0xAE604E02, 0x00000002, 0x402EE21C, 0xAE605202, 0x00000002, 0x002EE203,
-	0xAE605202, 0x00000002, 0x402EE21C, 0xACA05902, 0x00000002, 0x002EE203,
-	0xACA05902, 0x00000002, 0x402EE21D, 0xAE603C02,
-	// Block 709, offset 0xb140
-	0x00000002, 0x002EE223, 0xAE603C02, 0x00000002, 0x402EE21D, 0xAE604E02,
-	0x00000002, 0x002EE223, 0xAE604E02, 0x00000002, 0x402EE21D, 0xAD806802,
-	0x00000002, 0x002EE223, 0xAD806802, 0x00000002, 0x402EE21F, 0xAE603C02,
-	0x00000002, 0x002EE263, 0xAE603C02, 0x00000002, 0x402EE21F, 0xAD806802,
-	0x00000002, 0x002EE263, 0xAD806802, 0x00000002, 0x40306C1C, 0xAE604702,
-	0x00000002, 0x00306C03, 0xAE604702, 0x00000002, 0x40306C1D, 0xAE604E02,
-	0x00000002, 0x00306C23, 0xAE604E02, 0x00000002, 0x40306C1D, 0xAD806802,
-	0x00000002, 0x00306C23, 0xAD806802, 0x00000002, 0x40306C1F, 0xAD806802,
-	0x00000002, 0x00306C63, 0xAD806802, 0x00000004, 0x2D399283, 0x6CD2FC20,
-	0x6C5B8A20, 0x6CCF3620,
-}
-
-// mainContractElem: 4021 entries, 16084 bytes
-var mainContractElem = [4021]uint32{
-	// Block 0, offset 0x0
-	0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01,
-	0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288,
-	0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220,
-	0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20,
-	0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488,
-	0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20,
-	0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620,
-	0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688,
-	0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20,
-	0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20,
-	0x40358220, 0x40358A20, 0x00357288, 0x00357A88,
-	// Block 1, offset 0x40
-	0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288,
-	0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020,
-	0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88,
-	0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620,
-	0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20,
-	0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020,
-	0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220,
-	0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220,
-	0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20,
-	0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420,
-	0x40452820, 0x40452420, 0x40452620, 0x40498420,
-	// Block 2, offset 0x80
-	0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC,
-	0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926,
-	0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980,
-	0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA,
-	0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34,
-	0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E,
-	0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8,
-	0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884,
-	0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE,
-	0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938,
-	0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974,
-	// Block 3, offset 0xc0
-	0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE,
-	0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28,
-	0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82,
-	0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC,
-	0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820,
-	0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2,
-	0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C,
-	0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986,
-	0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0,
-	0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A,
-	0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76,
-	// Block 4, offset 0x100
-	0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0,
-	0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A,
-	0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6,
-	0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920,
-	0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A,
-	0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4,
-	0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E,
-	0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88,
-	0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2,
-	0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20,
-	0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA,
-	// Block 5, offset 0x140
-	0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914,
-	0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E,
-	0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8,
-	0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22,
-	0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C,
-	0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6,
-	0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30,
-	0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60,
-	0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8,
-	0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32,
-	0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E,
-	// Block 6, offset 0x180
-	0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1,
-	0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB,
-	0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81,
-	0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9,
-	0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53,
-	0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD,
-	0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1,
-	0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66,
-	0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE,
-	0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38,
-	0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74,
-	// Block 7, offset 0x1c0
-	0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7,
-	0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1,
-	0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87,
-	0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF,
-	0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59,
-	0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3,
-	0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9,
-	0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C,
-	0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4,
-	0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E,
-	0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A,
-	// Block 8, offset 0x200
-	0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED,
-	0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7,
-	0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C,
-	0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86,
-	0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0,
-	0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A,
-	0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94,
-	0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE,
-	0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48,
-	0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2,
-	0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20,
-	// Block 9, offset 0x240
-	0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C,
-	0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6,
-	0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10,
-	0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A,
-	0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4,
-	0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E,
-	0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78,
-	0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2,
-	0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50,
-	0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA,
-	0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6,
-	// Block 10, offset 0x280
-	0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40,
-	0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A,
-	0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4,
-	0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E,
-	0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8,
-	0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26,
-	0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80,
-	0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA,
-	0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34,
-	0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E,
-	0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA,
-	// Block 11, offset 0x2c0
-	0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24,
-	0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E,
-	0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8,
-	0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56,
-	0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0,
-	0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A,
-	0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64,
-	0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE,
-	0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18,
-	0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72,
-	0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE,
-	// Block 12, offset 0x300
-	0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011,
-	0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017,
-	0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591,
-	0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20,
-	0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20,
-	0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20,
-	0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420,
-	0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x4040B620,
-	0x4040B420, 0x40409820, 0x4040DC20, 0x402C3A20, 0x402C3C20, 0x002C3A88,
-	0x002C3C83, 0x402D2220, 0x402D2420, 0x002D2288, 0x002D2483, 0x002D9883,
-	0x002D9A83, 0x402EE220, 0x402EE420, 0x002EE288,
-	// Block 13, offset 0x340
-	0x002EE483, 0x402FE620, 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20,
-	0x40306E20, 0x00306C88, 0x00306E83, 0x4033B220, 0x4033BA20, 0x4033B420,
-	0x0033B288, 0x0033BA88, 0x0033B483, 0x402E2220, 0x402E2221, 0x402E2221,
-	0x002E2288, 0x002E22A3, 0x002E22A3, 0x402C3A20, 0x402C3C20, 0x002D6A83,
-	0x402D6A20, 0x002C3A88, 0x002C3C83, 0x002D6A85, 0x002D6A84, 0x402F7A20,
-	0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40312A20, 0x40312C20, 0x00312A88,
-	0x00312C83, 0x002C3A88, 0x002C3C84, 0x002C3C83, 0x402C6220, 0x402C6420,
-	0x002C6288, 0x002C6484, 0x002C6483, 0x402D0820, 0x402D0A20, 0x002D0888,
-	0x002D0A84, 0x002D0A83, 0x402E9E20, 0x402D2420, 0x002E9E88, 0x002D2484,
-	0x002D2483, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, 0x002E2288,
-	0xE0000D01, 0xE0000D01, 0x002E2484, 0x002E2483,
-	// Block 14, offset 0x380
-	0x402F2C20, 0x402F2E20, 0x002F2C88, 0x002F2E84, 0x002F2E83, 0x002F7A88,
-	0x002F7C84, 0x002F7C83, 0x40302C20, 0x40302E20, 0x00302C88, 0x00302E84,
-	0x00302E83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3,
-	0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88,
-	0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22,
-	0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288,
-	0x00320EA3, 0x00320EC3, 0xAE611302, 0x404A7621, 0x404A7C21, 0x404AB020,
-	0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404ADA20,
-	0x404A8220, 0x404A8420, 0xE0002635, 0xE000263A, 0x404A8620, 0x404A8820,
-	0x404A8A20, 0x404A8C20, 0x404A8E20, 0x404A9020, 0x404A9220, 0x404A9420,
-	0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20,
-	// Block 15, offset 0x3c0
-	0x404A8620, 0x404A8820, 0xE000263F, 0xE0002644, 0x404A8A20, 0x404A8C20,
-	0x404A8E20, 0x404A9020, 0x404ABA20, 0x404ABC20, 0xE0002649, 0xE000264E,
-	0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820,
-	0x404ACA20, 0x404AD620, 0x404AD820, 0x404AC220, 0x404AC420, 0xE0002653,
-	0xE0002658, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, 0x404ACE20,
-	0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20,
-	0x404ADC20, 0x404AC620, 0x404AC820, 0xE000265D, 0xE0002662, 0x404ACA20,
-	0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620,
-	0x404AD820, 0x404ADC20, 0x404A7820, 0x404AC020, 0x404A9E20, 0xE000266D,
-	0xE0002672, 0x404AA020, 0x404AA220, 0x404AA420, 0x404AA620, 0x404AA820,
-	0x404AAA20, 0x404AAC20, 0x004AA283, 0x404AAE20,
-	// Block 16, offset 0x400
-	0x404AB020, 0x404AB220, 0x404ACC20, 0xE0002677, 0xE000267C, 0x404ACE20,
-	0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20,
-	0x404ADC20, 0x004ACE83, 0x404A8220, 0x404AE820, 0x404AA420, 0x404A9A20,
-	0x404A9E20, 0x404AB420, 0x404B1420, 0x404AE420, 0x404AD220, 0x404AD820,
-	0x404AEA20, 0x404A9020, 0x404AB620, 0x404B1620, 0x404B1620, 0x404B1820,
-	0xE0002681, 0xE0002686, 0x404B1A20, 0x404B1C20, 0x404B1E20, 0x404B2020,
-	0x404B2220, 0x404B2420, 0x404B2620, 0x404B2820, 0x404B2A20, 0x004B1E83,
-	0x404A8420, 0x404AEA20, 0x404AA620, 0x404AA020, 0x404AB820, 0x404B1820,
-	0x404AE620, 0x404AD420, 0x404B2C20, 0x404B2E20, 0x404B3020, 0x404A7A20,
-	0x404A8C20, 0x404AAC20, 0x404ACC20, 0x404ADC20, 0x404AE020, 0x404AF620,
-	0x404AE820, 0x404A7C20, 0x404AE220, 0x404A9E20,
-	// Block 17, offset 0x440
-	0x404A9620, 0x404A9A20, 0x404AAE20, 0x404B0E20, 0x404AE020, 0x404AFC20,
-	0x404ADE20, 0x404ACE20, 0x404AD620, 0x404AEE20, 0x404A7E20, 0x404AE420,
-	0x404AA020, 0x404A8E20, 0x404A9820, 0x404AB020, 0x404B1020, 0x404ADA20,
-	0x404AFE20, 0x404B0020, 0x404AC420, 0x404AB420, 0x404AB620, 0x404AB820,
-	0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404A9220, 0xE000268E,
-	0xE0002693, 0x404A9420, 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20,
-	0x404ADE20, 0x404AE020, 0xE0002698, 0xE000269D, 0x404AE220, 0x404AE420,
-	0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, 0x404ACA20, 0x404ACC20,
-	0xE00026A2, 0xE00026A7, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420,
-	0x404AD620, 0x404AD820, 0x404ADA20, 0x404ADC20, 0x404ADE20, 0x004AD283,
-	0x404A7E20, 0x404A8E20, 0x404A9220, 0x404A9820,
-	// Block 18, offset 0x480
-	0x404AAE20, 0x404ACE20, 0x404AD220, 0x404AFA20, 0x404A8020, 0x404AE620,
-	0x404AA220, 0x404A9C20, 0x404AB220, 0x404B1220, 0x404AE220, 0x404ADC20,
-	0x404B0020, 0x404AE020, 0x404AD020, 0x404AE020, 0x404AC220, 0x404AC420,
-	0xE00026AF, 0xE00026B4, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20,
-	0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820,
-	0x404ADA20, 0x404ADC20, 0x004ACC83, 0x404ADE20, 0x404AE020, 0x404AEE20,
-	0x404AF020, 0xE00026B9, 0xE00026BE, 0x404AF220, 0x404AF420, 0x404AF620,
-	0x404AF820, 0x404AFA20, 0x404AFC20, 0x404AFE20, 0x404B0020, 0x404B0220,
-	0x404B0420, 0x404B0620, 0x404B0820, 0x404B0A20, 0x004AF883, 0x404B0C20,
-	0x404ADE20, 0x404AE020, 0xE00026C3, 0xE00026C8, 0x404AE220, 0x404AE420,
-	0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20,
-	// Block 19, offset 0x4c0
-	0x404AEE20, 0x404AF020, 0x404AF220, 0x404AF420, 0x404AF620, 0x004AE883,
-	0x404AF820, 0x404AFA20, 0x404A8020, 0x404A9020, 0x404A9420, 0x404AB020,
-	0x404ABE20, 0x404AD020, 0x404AD420, 0x404A8020, 0x404AB220, 0x404AB420,
-	0xE0002614, 0xE0002619, 0x404AB620, 0x404AB820, 0x404ABA20, 0x404ABC20,
-	0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820,
-	0x404ACA20, 0x004ABA83, 0x404AB620, 0x404AB820, 0xE000261E, 0xE0002623,
-	0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420,
-	0x404AC620, 0x404AC820, 0x004ABE83, 0x404AFC20, 0x404AFE20, 0xE0002628,
-	0xE000262D, 0x404B0020, 0x404B0220, 0x404B0420, 0x404B0620, 0x404B0820,
-	0x404B0A20, 0x404B0C20, 0x404B0E20, 0x404B1020, 0x404B1220, 0x404B1420,
-	0x404A8A20, 0x404A9620, 0x404AAA20, 0x404ACA20,
-	// Block 20, offset 0x500
-	0x404ADA20, 0x404ADE20, 0x404AE620, 0x404AF420, 0xAE611602, 0x404A9421,
-	0xAE611402, 0x404AB821, 0x404ABC21, 0x828225B1, 0xE000200E, 0xE0002011,
-	0x404B2620, 0xE00026CD, 0xE000200E, 0xE0002011, 0x404B2420, 0x404B2620,
-	0x828225B2, 0xE0002014, 0xE0002017, 0x404B2A20, 0xE00026D0, 0xE0002014,
-	0xE0002017, 0x404B2820, 0x404B2A20, 0xAE610F02, 0x8281258D, 0x82812591,
-	0x8281258F, 0x002D2288, 0x002D2484, 0x002D2483, 0x402DFE20, 0x402E0020,
-	0x002DFE88, 0x002E0084, 0x002E0083, 0x402E9E20, 0x402EA020, 0x002E9E88,
-	0x002EA084, 0x002EA083, 0x402C3420, 0xE0000CFB, 0xE0000CFB, 0x402C0820,
-	0xE0000D01, 0xE0000D01, 0x402D6820, 0x402D6A20, 0x002D6888, 0x002D6A83,
-	0x402DCC20, 0x402DCE20, 0x002DCC88, 0x002DCE83, 0x002E9E88, 0x002EA083,
-	0x402FE620, 0x40302620, 0x002FE688, 0x00302683,
-	// Block 21, offset 0x540
-	0x40302820, 0x40302A20, 0x00302883, 0x00302A83, 0x402EE220, 0x4030EE20,
-	0x4030F220, 0x002EE288, 0x0030EE83, 0x0030F283, 0x402BDE20, 0x4030F020,
-	0x002BDE88, 0x0030F083, 0x40306C20, 0x4030F420, 0x00306C88, 0x0030F483,
-	0x40393820, 0x40393620, 0x40393A21, 0x40393A23, 0x403A7420, 0x40393A25,
-	0x403A9220, 0x40393A26, 0x403A9221, 0x00393B43, 0x403A9223, 0x00393B44,
-	0x403A8821, 0x403A8825, 0x40306C20, 0x40310021, 0x00306C88, 0x003100A3,
-	0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, 0x00320E83, 0x00320C83,
-	0x402EE220, 0x40321020, 0x002EE288, 0x00321083, 0x402E9E20, 0x402EA020,
-	0x402EA220, 0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA283, 0x002FE688,
-	0x002FE884, 0x002FE883, 0x4031DE20, 0x00310286, 0x00310283, 0x4003D220,
-	0x00310287, 0x00310284, 0x402BEC20, 0xE0000CFB,
-	// Block 22, offset 0x580
-	0xE0000CFB, 0x002BEC83, 0xE0000D01, 0xE0000D01, 0x402C3A20, 0x402C3E20,
-	0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, 0x402C6220, 0x402C6420,
-	0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, 0x002C6486, 0x002C6484,
-	0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x002E9E88,
-	0x002EA086, 0x002EA084, 0x402C3A20, 0xE0003707, 0x402C3C20, 0x002C3A88,
-	0xE000370D, 0xE000370A, 0x002C3C86, 0x002C3C84, 0x402C6220, 0xE0003719,
-	0xE0003710, 0x402C6620, 0x402C6420, 0x002C6288, 0xE000371F, 0xE000371C,
-	0xE0003716, 0x002C6686, 0xE0003713, 0x002C6684, 0x002C6486, 0x002C6484,
-	0x402D2220, 0xE0003722, 0x402D2420, 0x002D2288, 0xE0003728, 0xE0003725,
-	0x002D2486, 0x002D2484, 0x402E2220, 0xE000372B, 0xE0000CFB, 0xE0000CFB,
-	0x402E2420, 0x002E2288, 0xE0003731, 0xE000372E,
-	// Block 23, offset 0x5c0
-	0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x402E9E20, 0xE0003734,
-	0x402EA020, 0x002E9E88, 0xE000373A, 0xE0003737, 0x002EA086, 0x002EA084,
-	0x402EE220, 0x402EE420, 0x402EE421, 0x002EE288, 0x002EE483, 0x002EE4A3,
-	0x402FE620, 0xE000373D, 0x402FE820, 0x002FE688, 0xE0003743, 0xE0003740,
-	0x002FE886, 0x002FE884, 0x40302C20, 0xE0003746, 0x40302E20, 0x00302C88,
-	0xE000374C, 0xE0003749, 0x00302E86, 0x00302E84, 0x40306C20, 0x40306E20,
-	0x40306E21, 0x00306C88, 0x00306E83, 0x00306EA3, 0x40312A20, 0xE000374F,
-	0x40312C20, 0x00312A88, 0xE0003755, 0xE0003752, 0x00312C86, 0x00312C84,
-	0x00384A88, 0x00388A83, 0x402C3A20, 0x402C0C20, 0x002C3A88, 0x002C0C84,
-	0x002C0C83, 0x402D2220, 0x402D2420, 0x402D2620, 0x402D2820, 0x002D2288,
-	0x002D2484, 0x002D2684, 0x002D2884, 0x002D2483,
-	// Block 24, offset 0x600
-	0x002D2683, 0x002D2883, 0x402D9A20, 0x402D9C20, 0x002D9A88, 0x002D9C83,
-	0x402DFE20, 0x402E0020, 0x402E0220, 0x002DFE88, 0x002E0084, 0x002E0284,
-	0x002E0083, 0x002E0283, 0x402E9E20, 0x402EA020, 0x402EA220, 0x402EA420,
-	0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA484, 0x002EA283, 0x002EA483,
-	0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, 0x002BDE88, 0x002C0883,
-	0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, 0x002C9888, 0x002D0683,
-	0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, 0x402EE220, 0x402F2A20,
-	0x40320E20, 0x002EE288, 0x002F2A83, 0x00320E83, 0x40306C20, 0x4030BC20,
-	0x00306C88, 0x0030BC83, 0x40310020, 0x40312820, 0x00310088, 0x00312883,
-	0x0065768F, 0xE00038D8, 0xE00038D2, 0x0065768F, 0xE00038D2, 0xE00038D8,
-	0x00657691, 0xE00038DB, 0xE00038D5, 0x00657691,
-	// Block 25, offset 0x640
-	0xE00038D5, 0xE00038DB, 0x0065828F, 0xE0003A56, 0xE00038DE, 0x0065828F,
-	0xE00038DE, 0xE0003A56, 0x00658291, 0xE0003A5C, 0xE00038E4, 0xE0003A59,
-	0xE00038E1, 0x00658291, 0xE00038E4, 0xE0003A5C, 0xE00038E1, 0xE0003A59,
-	0x00658291, 0xE00038E1, 0xE0003A59, 0xE000216D, 0xE0003A5C, 0xE00038E4,
-	0xE000216D, 0xE00038E4, 0xE0003A5C, 0x00658C91, 0xE0003A9F, 0xE0003A9B,
-	0xE00038EB, 0xE0003A9B, 0xE0003A98, 0xE0003A9B, 0xE00038E8, 0x00658C91,
-	0xE0003A9F, 0xE00038EB, 0xE0003A9B, 0xE0003A9B, 0xE00038E8, 0xE0003A98,
-	0xE0003A9B, 0x00658C91, 0xE0003A9B, 0xE00038E8, 0xE0003A98, 0xE0003A9B,
-	0xE00021F2, 0xE0003A9B, 0xE0003A9F, 0xE00038EB, 0xE00021F2, 0xE00038EB,
-	0xE0003A9B, 0xE0003A9F, 0x00659691, 0xE0003AE9, 0xE0003AE5, 0xE00038F2,
-	0xE0003AE5, 0xE0003AE2, 0xE0003AE5, 0xE00038EF,
-	// Block 26, offset 0x680
-	0x00659691, 0xE0003AE9, 0xE00038F2, 0xE0003AE5, 0xE0003AE5, 0xE00038EF,
-	0xE0003AE2, 0xE0003AE5, 0x00659691, 0xE0003AE5, 0xE00038EF, 0xE0003AE2,
-	0xE0003AE5, 0xE000222C, 0xE0003AE5, 0xE0003AE9, 0xE00038F2, 0xE000222C,
-	0xE00038F2, 0xE0003AE5, 0xE0003AE9, 0x0065A091, 0xE0003B2C, 0xE00038F6,
-	0x0065A091, 0xE00038F6, 0xE0003B2C, 0x0065AA8F, 0xE0003B44, 0xE00038F9,
-	0xE0003B3E, 0xE0003B44, 0x0065AA91, 0xE0003B4C, 0xE0003B55, 0xE0003B48,
-	0xE00038FF, 0xE0003B51, 0xE0003903, 0xE0003B48, 0xE0003B41, 0xE0003B48,
-	0xE00038FC, 0x0065AA91, 0xE0003B4C, 0xE0003B55, 0xE00038FF, 0xE0003B48,
-	0xE0003903, 0xE0003B51, 0xE0003B48, 0xE00038FC, 0xE0003B41, 0xE0003B48,
-	0x0065AA91, 0xE0003B48, 0xE00038FC, 0xE0003B41, 0xE0003B48, 0xE000225B,
-	0xE0003B48, 0xE0003B4C, 0xE00038FF, 0xE000225B,
-	// Block 27, offset 0x6c0
-	0xE00038FF, 0xE0003B48, 0xE0003B4C, 0xE0002261, 0xE0003B51, 0xE0003B55,
-	0xE0003903, 0xE0002261, 0xE0003903, 0xE0003B51, 0xE0003B55, 0x0065B491,
-	0xE0003BCA, 0xE0003907, 0x0065B491, 0xE0003907, 0xE0003BCA, 0x0065BE8F,
-	0xE0003BDC, 0xE000390A, 0x0065BE8F, 0xE000390A, 0xE0003BDC, 0x0065BE91,
-	0xE0003BDF, 0xE000390D, 0x0065BE91, 0xE000390D, 0xE0003BDF, 0x0065C68F,
-	0xE0003910, 0xE0003BF1, 0x0065C691, 0xE0003BF4, 0xE0003913, 0x0065C691,
-	0xE0003913, 0xE0003BF4, 0x0065D08F, 0xE0003C15, 0xE0003C0F, 0xE0003C15,
-	0xE0003916, 0x0065D08F, 0xE0003C15, 0xE0003916, 0xE0003C0F, 0xE0003C15,
-	0x0065D091, 0xE0003C19, 0xE0003C12, 0xE0003C19, 0xE0003919, 0x0065D091,
-	0xE0003C1D, 0xE000391C, 0xE0003C19, 0xE0003C19, 0xE0003919, 0xE0003C12,
-	0xE0003C19, 0x0065D091, 0xE0003C19, 0xE0003919,
-	// Block 28, offset 0x700
-	0xE0003C12, 0xE0003C19, 0xE000236A, 0xE000391C, 0xE0003C19, 0xE0003C1D,
-	0x0065788F, 0xE0003926, 0xE0003920, 0x0065788F, 0xE0003920, 0xE0003926,
-	0x00657891, 0xE0003929, 0xE0003923, 0x00657891, 0xE0003923, 0xE0003929,
-	0x00658491, 0xE0003A67, 0xE0003A63, 0xE000392F, 0xE0003A63, 0xE0003A60,
-	0xE0003A63, 0xE000392C, 0x00658491, 0xE0003A67, 0xE000392F, 0xE0003A63,
-	0xE0003A63, 0xE000392C, 0xE0003A60, 0xE0003A63, 0x00658491, 0xE0003A63,
-	0xE000392C, 0xE0003A60, 0xE0003A63, 0xE000218B, 0xE0003A63, 0xE0003A67,
-	0xE000392F, 0xE000218B, 0xE000392F, 0xE0003A63, 0xE0003A67, 0x00658E8F,
-	0xE0003AAA, 0xE0003933, 0xE0003AA4, 0xE0003AAA, 0x00658E91, 0xE0003AB2,
-	0xE0003AAE, 0xE0003939, 0xE0003AAE, 0xE0003AA7, 0xE0003AAE, 0xE0003936,
-	0x00658E91, 0xE0003AB2, 0xE0003939, 0xE0003AAE,
-	// Block 29, offset 0x740
-	0xE0003AAE, 0xE0003936, 0xE0003AA7, 0xE0003AAE, 0x00658E91, 0xE0003AAE,
-	0xE0003936, 0xE0003AA7, 0xE0003AAE, 0xE0002203, 0xE0003AAE, 0xE0003AB2,
-	0xE0003939, 0xE0002203, 0xE0003939, 0xE0003AAE, 0xE0003AB2, 0x00659891,
-	0xE0003AF5, 0xE0003AF1, 0xE0003940, 0xE0003AF1, 0xE0003AEE, 0xE0003AF1,
-	0xE000393D, 0x00659891, 0xE0003AF5, 0xE0003940, 0xE0003AF1, 0xE0003AF1,
-	0xE000393D, 0xE0003AEE, 0xE0003AF1, 0x00659891, 0xE0003AF1, 0xE000393D,
-	0xE0003AEE, 0xE0003AF1, 0xE0002237, 0xE0003AF1, 0xE0003AF5, 0xE0003940,
-	0xE0002237, 0xE0003940, 0xE0003AF1, 0xE0003AF5, 0x0065A291, 0xE0003B2F,
-	0xE0003944, 0x0065A291, 0xE0003944, 0xE0003B2F, 0x0065AC8F, 0xE0003B60,
-	0xE0003947, 0xE0003B5A, 0xE0003B60, 0x0065AC91, 0xE0003B68, 0xE0003B71,
-	0xE0003B64, 0xE000394D, 0xE0003B6D, 0xE0003951,
-	// Block 30, offset 0x780
-	0xE0003B64, 0xE0003B5D, 0xE0003B64, 0xE000394A, 0x0065AC91, 0xE0003B68,
-	0xE0003B71, 0xE000394D, 0xE0003B64, 0xE0003951, 0xE0003B6D, 0xE0003B64,
-	0xE000394A, 0xE0003B5D, 0xE0003B64, 0x0065AC91, 0xE0003B64, 0xE000394A,
-	0xE0003B5D, 0xE0003B64, 0xE000227D, 0xE0003B64, 0xE0003B68, 0xE000394D,
-	0xE000227D, 0xE000394D, 0xE0003B64, 0xE0003B68, 0xE0002283, 0xE0003B6D,
-	0xE0003B71, 0xE0003951, 0xE0002283, 0xE0003951, 0xE0003B6D, 0xE0003B71,
-	0x0065B691, 0xE0003BCD, 0xE0003955, 0x0065B691, 0xE0003955, 0xE0003BCD,
-	0x0065C88F, 0xE0003958, 0xE0003BF7, 0x0065C891, 0xE0003BFA, 0xE000395B,
-	0x0065C891, 0xE000395B, 0xE0003BFA, 0x0065D291, 0xE0003C25, 0xE0003C22,
-	0xE0003C25, 0xE000395E, 0x0065D291, 0xE0003C29, 0xE0003961, 0xE0003C25,
-	0xE0003C25, 0xE000395E, 0xE0003C22, 0xE0003C25,
-	// Block 31, offset 0x7c0
-	0xE0002371, 0xE0003961, 0xE0003C25, 0xE0003C29, 0x00657A8F, 0xE0003975,
-	0xE000396B, 0xE0003975, 0xE0003965, 0x00657A8F, 0xE0003975, 0xE0003965,
-	0xE000396B, 0xE0003975, 0x00657A91, 0xE000397D, 0xE0003979, 0xE0003971,
-	0xE0003979, 0xE000396E, 0xE0003979, 0xE0003968, 0x00657A91, 0xE000397D,
-	0xE0003971, 0xE0003979, 0xE0003979, 0xE0003968, 0xE000396E, 0xE0003979,
-	0x00657A91, 0xE0003979, 0xE0003968, 0xE000396E, 0xE0003979, 0xE000214F,
-	0xE0003979, 0xE000397D, 0xE0003971, 0xE000214F, 0xE0003971, 0xE0003979,
-	0xE000397D, 0x0065868F, 0xE0003A72, 0xE0003982, 0xE0003A6C, 0xE0003A72,
-	0x00658691, 0xE0003A7A, 0xE0003A76, 0xE0003988, 0xE0003A76, 0xE0003A6F,
-	0xE0003A76, 0xE0003985, 0x00658691, 0xE0003A7A, 0xE0003988, 0xE0003A76,
-	0xE0003A76, 0xE0003985, 0xE0003A6F, 0xE0003A76,
-	// Block 32, offset 0x800
-	0x00658691, 0xE0003A76, 0xE0003985, 0xE0003A6F, 0xE0003A76, 0xE00021BB,
-	0xE0003A76, 0xE0003A7A, 0xE0003988, 0xE00021BB, 0xE0003988, 0xE0003A76,
-	0xE0003A7A, 0x0065908F, 0xE0003ABD, 0xE000398C, 0xE0003AB7, 0xE0003ABD,
-	0x00659091, 0xE0003AC5, 0xE0003AC1, 0xE0003992, 0xE0003AC1, 0xE0003ABA,
-	0xE0003AC1, 0xE000398F, 0x00659091, 0xE0003AC5, 0xE0003992, 0xE0003AC1,
-	0xE0003AC1, 0xE000398F, 0xE0003ABA, 0xE0003AC1, 0x00659091, 0xE0003AC1,
-	0xE000398F, 0xE0003ABA, 0xE0003AC1, 0xE0002212, 0xE0003AC1, 0xE0003AC5,
-	0xE0003992, 0xE0002212, 0xE0003992, 0xE0003AC1, 0xE0003AC5, 0x00659A8F,
-	0xE0003B00, 0xE0003AFA, 0xE0003B00, 0xE0003996, 0x00659A8F, 0xE0003B00,
-	0xE0003996, 0xE0003AFA, 0xE0003B00, 0x00659A91, 0xE0003B08, 0xE0003B04,
-	0xE000399C, 0xE0003B04, 0xE0003AFD, 0xE0003B04,
-	// Block 33, offset 0x840
-	0xE0003999, 0x00659A91, 0xE0003B08, 0xE000399C, 0xE0003B04, 0xE0003B04,
-	0xE0003999, 0xE0003AFD, 0xE0003B04, 0x00659A91, 0xE0003B04, 0xE0003999,
-	0xE0003AFD, 0xE0003B04, 0xE000223D, 0xE0003B04, 0xE0003B08, 0xE000399C,
-	0xE000223D, 0xE000399C, 0xE0003B04, 0xE0003B08, 0x0065A48F, 0xE00039A0,
-	0xE0003B32, 0x0065A491, 0xE0003B35, 0xE00039A3, 0x0065A491, 0xE00039A3,
-	0xE0003B35, 0x0065AE8F, 0xE0003B7C, 0xE00039A6, 0xE0003B76, 0xE0003B7C,
-	0x0065AE91, 0xE0003B84, 0xE0003B8D, 0xE0003B80, 0xE00039AC, 0xE0003B89,
-	0xE00039B0, 0xE0003B80, 0xE0003B79, 0xE0003B80, 0xE00039A9, 0x0065AE91,
-	0xE0003B84, 0xE0003B8D, 0xE00039AC, 0xE0003B80, 0xE00039B0, 0xE0003B89,
-	0xE0003B80, 0xE00039A9, 0xE0003B79, 0xE0003B80, 0x0065AE91, 0xE0003B80,
-	0xE00039A9, 0xE0003B79, 0xE0003B80, 0xE000229D,
-	// Block 34, offset 0x880
-	0xE0003B80, 0xE0003B84, 0xE00039AC, 0xE000229D, 0xE00039AC, 0xE0003B80,
-	0xE0003B84, 0xE00022A3, 0xE0003B89, 0xE0003B8D, 0xE00039B0, 0xE00022A3,
-	0xE00039B0, 0xE0003B89, 0xE0003B8D, 0x0065B88F, 0xE00039B4, 0xE0003BD0,
-	0x0065B891, 0xE0003BD3, 0xE00039B7, 0x0065B891, 0xE00039B7, 0xE0003BD3,
-	0x0065C08F, 0xE0003BE2, 0xE00039BA, 0x0065C08F, 0xE00039BA, 0xE0003BE2,
-	0x0065C091, 0xE0003BE5, 0xE00039BD, 0x0065C091, 0xE00039BD, 0xE0003BE5,
-	0x0065CA8F, 0xE00039C0, 0xE0003BFD, 0x0065CA91, 0xE0003C00, 0xE00039C3,
-	0x0065CA91, 0xE00039C3, 0xE0003C00, 0x00657E8F, 0xE00039CC, 0xE00039C6,
-	0x00657E8F, 0xE00039C6, 0xE00039CC, 0x00657E91, 0xE00039CF, 0xE00039C9,
-	0x00657E91, 0xE00039C9, 0xE00039CF, 0x0065888F, 0xE0003A7F, 0xE00039D2,
-	0x0065888F, 0xE00039D2, 0xE0003A7F, 0x00658891,
-	// Block 35, offset 0x8c0
-	0xE0003A85, 0xE00039D8, 0xE0003A82, 0xE00039D5, 0x00658891, 0xE00039D8,
-	0xE0003A85, 0xE00039D5, 0xE0003A82, 0x00658891, 0xE00039D5, 0xE0003A82,
-	0xE00021D9, 0xE0003A85, 0xE00039D8, 0xE00021D9, 0xE00039D8, 0xE0003A85,
-	0x00659291, 0xE0003AD1, 0xE0003ACD, 0xE00039DF, 0xE0003ACD, 0xE0003ACA,
-	0xE0003ACD, 0xE00039DC, 0x00659291, 0xE0003AD1, 0xE00039DF, 0xE0003ACD,
-	0xE0003ACD, 0xE00039DC, 0xE0003ACA, 0xE0003ACD, 0x00659291, 0xE0003ACD,
-	0xE00039DC, 0xE0003ACA, 0xE0003ACD, 0xE0002218, 0xE0003ACD, 0xE0003AD1,
-	0xE00039DF, 0xE0002218, 0xE00039DF, 0xE0003ACD, 0xE0003AD1, 0x00659C91,
-	0xE0003B14, 0xE0003B10, 0xE00039E6, 0xE0003B10, 0xE0003B0D, 0xE0003B10,
-	0xE00039E3, 0x00659C91, 0xE0003B14, 0xE00039E6, 0xE0003B10, 0xE0003B10,
-	0xE00039E3, 0xE0003B0D, 0xE0003B10, 0x00659C91,
-	// Block 36, offset 0x900
-	0xE0003B10, 0xE00039E3, 0xE0003B0D, 0xE0003B10, 0xE0002243, 0xE0003B10,
-	0xE0003B14, 0xE00039E6, 0xE0002243, 0xE00039E6, 0xE0003B10, 0xE0003B14,
-	0x0065A691, 0xE0003B38, 0xE00039EA, 0x0065A691, 0xE00039EA, 0xE0003B38,
-	0x0065B08F, 0xE0003B98, 0xE00039ED, 0xE0003B92, 0xE0003B98, 0x0065B091,
-	0xE0003BA0, 0xE0003BA9, 0xE0003B9C, 0xE00039F3, 0xE0003BA5, 0xE00039F7,
-	0xE0003B9C, 0xE0003B95, 0xE0003B9C, 0xE00039F0, 0x0065B091, 0xE0003BA0,
-	0xE0003BA9, 0xE00039F3, 0xE0003B9C, 0xE00039F7, 0xE0003BA5, 0xE0003B9C,
-	0xE00039F0, 0xE0003B95, 0xE0003B9C, 0x0065B091, 0xE0003B9C, 0xE00039F0,
-	0xE0003B95, 0xE0003B9C, 0xE00022C0, 0xE0003B9C, 0xE0003BA0, 0xE00039F3,
-	0xE00022C0, 0xE00039F3, 0xE0003B9C, 0xE0003BA0, 0xE00022C6, 0xE0003BA5,
-	0xE0003BA9, 0xE00039F7, 0xE00022C6, 0xE00039F7,
-	// Block 37, offset 0x940
-	0xE0003BA5, 0xE0003BA9, 0x0065BA91, 0xE0003BD6, 0xE00039FB, 0x0065BA91,
-	0xE00039FB, 0xE0003BD6, 0x0065CC8F, 0xE00039FE, 0xE0003C03, 0x0065CC91,
-	0xE0003C06, 0xE0003A01, 0x0065CC91, 0xE0003A01, 0xE0003C06, 0x0065D491,
-	0xE0003C31, 0xE0003C2E, 0xE0003C31, 0xE0003A04, 0x0065D491, 0xE0003C35,
-	0xE0003A07, 0xE0003C31, 0xE0003C31, 0xE0003A04, 0xE0003C2E, 0xE0003C31,
-	0xE0002374, 0xE0003A07, 0xE0003C31, 0xE0003C35, 0x0065808F, 0xE0003A11,
-	0xE0003A0B, 0x0065808F, 0xE0003A0B, 0xE0003A11, 0x00658091, 0xE0003A14,
-	0xE0003A0E, 0x00658091, 0xE0003A0E, 0xE0003A14, 0x00658A91, 0xE0003A90,
-	0xE0003A8C, 0xE0003A1A, 0xE0003A8C, 0xE0003A89, 0xE0003A8C, 0xE0003A17,
-	0x00658A91, 0xE0003A90, 0xE0003A1A, 0xE0003A8C, 0xE0003A8C, 0xE0003A17,
-	0xE0003A89, 0xE0003A8C, 0x00658A91, 0xE0003A8C,
-	// Block 38, offset 0x980
-	0xE0003A17, 0xE0003A89, 0xE0003A8C, 0xE00021E3, 0xE0003A8C, 0xE0003A90,
-	0xE0003A1A, 0xE00021E3, 0xE0003A1A, 0xE0003A8C, 0xE0003A90, 0x00659491,
-	0xE0003ADD, 0xE0003AD9, 0xE0003A21, 0xE0003AD9, 0xE0003AD6, 0xE0003AD9,
-	0xE0003A1E, 0x00659491, 0xE0003ADD, 0xE0003A21, 0xE0003AD9, 0xE0003AD9,
-	0xE0003A1E, 0xE0003AD6, 0xE0003AD9, 0x00659491, 0xE0003AD9, 0xE0003A1E,
-	0xE0003AD6, 0xE0003AD9, 0xE0002226, 0xE0003AD9, 0xE0003ADD, 0xE0003A21,
-	0xE0002226, 0xE0003A21, 0xE0003AD9, 0xE0003ADD, 0x00659E8F, 0xE0003B1F,
-	0xE0003A25, 0xE0003B19, 0xE0003B1F, 0x00659E91, 0xE0003B27, 0xE0003B23,
-	0xE0003A2B, 0xE0003B23, 0xE0003B1C, 0xE0003B23, 0xE0003A28, 0x00659E91,
-	0xE0003B27, 0xE0003A2B, 0xE0003B23, 0xE0003B23, 0xE0003A28, 0xE0003B1C,
-	0xE0003B23, 0x00659E91, 0xE0003B23, 0xE0003A28,
-	// Block 39, offset 0x9c0
-	0xE0003B1C, 0xE0003B23, 0xE000224D, 0xE0003B23, 0xE0003B27, 0xE0003A2B,
-	0xE000224D, 0xE0003A2B, 0xE0003B23, 0xE0003B27, 0x0065A891, 0xE0003B3B,
-	0xE0003A2F, 0x0065A891, 0xE0003A2F, 0xE0003B3B, 0x0065B28F, 0xE0003BB4,
-	0xE0003A32, 0xE0003BAE, 0xE0003BB4, 0x0065B291, 0xE0003BBC, 0xE0003BC5,
-	0xE0003BB8, 0xE0003A38, 0xE0003BC1, 0xE0003A3C, 0xE0003BB8, 0xE0003BB1,
-	0xE0003BB8, 0xE0003A35, 0x0065B291, 0xE0003BBC, 0xE0003BC5, 0xE0003A38,
-	0xE0003BB8, 0xE0003A3C, 0xE0003BC1, 0xE0003BB8, 0xE0003A35, 0xE0003BB1,
-	0xE0003BB8, 0x0065B291, 0xE0003BB8, 0xE0003A35, 0xE0003BB1, 0xE0003BB8,
-	0xE00022EF, 0xE0003BB8, 0xE0003BBC, 0xE0003A38, 0xE00022EF, 0xE0003A38,
-	0xE0003BB8, 0xE0003BBC, 0xE00022F5, 0xE0003BC1, 0xE0003BC5, 0xE0003A3C,
-	0xE00022F5, 0xE0003A3C, 0xE0003BC1, 0xE0003BC5,
-	// Block 40, offset 0xa00
-	0x0065BC91, 0xE0003BD9, 0xE0003A40, 0x0065BC91, 0xE0003A40, 0xE0003BD9,
-	0x0065C48F, 0xE0003BE8, 0xE0003A43, 0x0065C48F, 0xE0003A43, 0xE0003BE8,
-	0x0065C491, 0xE0003BEB, 0xE0003A46, 0x0065C491, 0xE0003A46, 0xE0003BEB,
-	0x0065CE8F, 0xE0003A49, 0xE0003C09, 0x0065CE91, 0xE0003C0C, 0xE0003A4C,
-	0x0065CE91, 0xE0003A4C, 0xE0003C0C, 0x0065D691, 0xE0003C3D, 0xE0003C3A,
-	0xE0003C3D, 0xE0003A4F, 0x0065D691, 0xE0003C41, 0xE0003A52, 0xE0003C3D,
-	0xE0003C3D, 0xE0003A4F, 0xE0003C3A, 0xE0003C3D, 0x0065D691, 0xE0003C3D,
-	0xE0003A4F, 0xE0003C3A, 0xE0003C3D, 0xE0002377, 0xE0003A52, 0xE0003C3D,
-	0xE0003C41, 0x0065D891, 0xE0003C46, 0x40368C20, 0x40343620, 0x00368C83,
-	0x00343688, 0x002DFE88, 0x002F56A3, 0x402BDE20, 0x40320C21, 0x40321020,
-	0x002BDE88, 0x00320CA3, 0x00321083, 0x404FA420,
-	// Block 41, offset 0xa40
-	0xE0003C59, 0x404FA620, 0xE0003C5D, 0x404FA820, 0xE0003C61, 0x404FAA20,
-	0xE0003C65, 0x404FAC20, 0xE0003C69, 0x404FAE20, 0xE0003C6D, 0x404FB020,
-	0xE0003C71, 0x404FB220, 0xE0003C75, 0x404FB420, 0xE0003C79, 0x404FB620,
-	0xE0003C7D, 0x404FB820, 0xE0003C81, 0x404FBA20, 0xE0003C85, 0x404FBC20,
-	0xE0003C89, 0x404FBE20, 0xE0003C8D, 0x404FC020, 0xE0003C91, 0x404FC220,
-	0xE0003C95, 0x404FC420, 0xE0003C99, 0x404FC620, 0xE0003C9D, 0x404FC820,
-	0xE0003CA1, 0x404FCA20, 0xE0003CA5, 0x404FCC20, 0xE0003CA9, 0x404FCE20,
-	0xE0003CAD, 0x404FD020, 0xE0003CB1, 0x404FD220, 0xE0003CB5, 0x404FD420,
-	0xE0003CB9, 0x404FD620, 0xE0003CBD, 0x404FD820, 0xE0003CC1, 0x404FDA20,
-	0xE0003CC5, 0x404FDA20, 0xE0003CC9, 0x404FDC20, 0xE0003CCD, 0x404FDC20,
-	0xE0003CD1, 0x404FDC20, 0xE0003CD5, 0x404FDE20,
-	// Block 42, offset 0xa80
-	0xE0003CD9, 0x404FDE20, 0xE0003CDD, 0x404FE020, 0xE0003CE1, 0x404FE220,
-	0xE0003CE5, 0x404FE420, 0xE0003CE9, 0x404FE620, 0xE0003CED, 0x404FE820,
-	0xE0003CF1, 0x40501820, 0x40502E20, 0x40503820, 0x40500E20, 0x40503220,
-	0x40501020, 0x40503620, 0x40502420, 0x40503A20, 0x40502A20, 0x40503C20,
-	0x403FEC20, 0x40403E20, 0xAE605202, 0xAE603502, 0xAE603202, 0xAE604E02,
-	0x402BDE20, 0x402BDE21, 0x002BDE88, 0x002BDEA3, 0x402C9820, 0x402C9822,
-	0x402C9821, 0x002C9888, 0x002C98C3, 0x002C98A3, 0x402D9A20, 0x402D9A21,
-	0x002D9A88, 0x002D9AA3, 0x40306C20, 0x40306C22, 0x40306C21, 0x00306C88,
-	0x00306CC3, 0x00306CA3, 0x402C3A20, 0x402C6020, 0x002C3A88, 0x002C6083,
-	0x402D2220, 0x402D6620, 0x002D2288, 0x002D6683, 0x402DFE20, 0x402E2020,
-	0x002DFE88, 0x002E2083, 0x402E2220, 0xE0000CFB,
-	// Block 43, offset 0xac0
-	0x402E8020, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E8083, 0xE0000D01,
-	0x402E9E20, 0x402EE020, 0x002E9E88, 0x002EE083, 0x402F7A20, 0x402FE420,
-	0x002F7A88, 0x002FE483, 0x402FE620, 0x40302A20, 0x002FE688, 0x00302A83,
-	0x40312A20, 0x40316220, 0x00312A88, 0x00316283, 0x40442220, 0xE000A597,
-	0x40443E20, 0xE000A59D, 0xE000A5A9, 0xE000A5A3, 0x40444820, 0xE000A5A6,
-	0x40445820, 0xE000A5AF, 0x40445A20, 0xE000A5B5, 0x40446620, 0xE000A5BB,
-	0x40448220, 0x40448820, 0x00448C83, 0x403FFC20, 0x40404020, 0x002C3A88,
-	0x402C3820, 0x402C3A20, 0x002C3883, 0x002D2288, 0x402D6620, 0x002D6683,
-	0x402D2020, 0x402D2220, 0x002D6684, 0x002D6685, 0x002D2083, 0x00312A88,
-	0x40312820, 0x40312A20, 0x00312883, 0x404E6020, 0xE000A5C7, 0x404FFE20,
-	0x404FFE21, 0x404E6A20, 0xE000A5CD, 0x40502820,
-	// Block 44, offset 0xb00
-	0x40502821, 0x404E9420, 0xE000A5E7, 0xE000A5E0, 0x4050AC20, 0x4050AC21,
-	0x4005B820, 0xE000A5ED, 0x404EA620, 0xE000A5F8, 0x4050C820, 0x4050C821,
-	0xE000A609, 0xE000A60C, 0xE000A610, 0xE000A619, 0xE000A61D, 0xE000A629,
-	0xE000A635, 0xE000A641, 0xE000A64D, 0xE000A659, 0xE000A665, 0xE000A671,
-	0xE000A67D, 0xE000A689, 0xE000A695, 0xE000A6A1, 0xE000A6AD, 0xE000A6B9,
-	0xE000A6C5, 0xE000A6D1, 0xE000A6DD, 0xE000A6E9, 0xE000A6F5, 0xE000A701,
-	0xE000A70D, 0xE000A719, 0xE000A725, 0xE000A731, 0xE000A73D, 0xE000A749,
-	0xE000A755, 0xE000A761, 0xE000A76D, 0xE000A779, 0xE000A785, 0xE000A791,
-	0xE000A79D, 0xE000A7A9, 0xE000A7B5, 0xE000A7C1, 0xE000A7CD, 0xE000A7D9,
-	0xE000A7E5, 0xE000A7F1, 0xE000A7FD, 0xE000A809, 0xE000A815, 0xE000A821,
-	0xE000A82D, 0xE000A839, 0xE000A845, 0xE000A851,
-	// Block 45, offset 0xb40
-	0xE000A85D, 0xE000A869, 0xE000A875, 0xE000A881, 0xE000A88D, 0xE000A899,
-	0xE000A8A5, 0xE000A8B1, 0xE000A8BD, 0xE000A8C9, 0xE000A8D5, 0xE000A8E1,
-	0xE000A623, 0xE000A62F, 0xE000A63B, 0xE000A647, 0xE000A653, 0xE000A65F,
-	0xE000A66B, 0xE000A677, 0xE000A683, 0xE000A68F, 0xE000A69B, 0xE000A6A7,
-	0xE000A6B3, 0xE000A6BF, 0xE000A6CB, 0xE000A6D7, 0xE000A6E3, 0xE000A6EF,
-	0xE000A6FB, 0xE000A707, 0xE000A713, 0xE000A71F, 0xE000A72B, 0xE000A737,
-	0xE000A743, 0xE000A74F, 0xE000A75B, 0xE000A767, 0xE000A773, 0xE000A77F,
-	0xE000A78B, 0xE000A797, 0xE000A7A3, 0xE000A7AF, 0xE000A7BB, 0xE000A7C7,
-	0xE000A7D3, 0xE000A7DF, 0xE000A7EB, 0xE000A7F7, 0xE000A803, 0xE000A80F,
-	0xE000A81B, 0xE000A827, 0xE000A833, 0xE000A83F, 0xE000A84B, 0xE000A857,
-	0xE000A863, 0xE000A86F, 0xE000A87B, 0xE000A887,
-	// Block 46, offset 0xb80
-	0xE000A893, 0xE000A89F, 0xE000A8AB, 0xE000A8B7, 0xE000A8C3, 0xE000A8CF,
-	0xE000A8DB, 0xE000A8E7, 0x404EFE20, 0x404F5222, 0xE000A8F2, 0x404F5220,
-	0x404F5020, 0x404F1A22, 0x404F1A23, 0x404F2822, 0x404F2823, 0x404F3622,
-	0x404F3623, 0x404F4422, 0x404F4423, 0x404F5223, 0x404F6022, 0x404F6023,
-	0x404F6E22, 0x404F6E23, 0x404F7C22, 0x404F7C23, 0x404F8A21, 0x404F9822,
-	0x404F9823, 0x404FA622, 0x404FA623, 0x404FB422, 0x404FB423, 0x404FC222,
-	0x404FC223, 0x404FD022, 0x404FD023, 0x404FDE22, 0x404FDE23, 0x404FEC22,
-	0x404FEC23, 0x404FFA22, 0x404FFA23, 0x40500822, 0x40500823, 0x40501622,
-	0x40501623, 0x40502422, 0x40502423, 0x40503222, 0x40503223, 0x40504022,
-	0x40504023, 0x40504E22, 0x40504E23, 0x40505C22, 0x40505C23, 0x40506A22,
-	0x40506A23, 0x40508C22, 0x40508C23, 0x40509A22,
-	// Block 47, offset 0xbc0
-	0x40509A23, 0x4050A822, 0x4050A823, 0x4050B622, 0x4050B623, 0x4050C421,
-	0x4050D222, 0x4050D223, 0x4050E022, 0x4050E023, 0x4050EE21, 0x4050FC21,
-	0x404F1A20, 0x404F1A21, 0x404F2820, 0x404F2821, 0x404F3620, 0x404F3621,
-	0x404F4420, 0x404F4421, 0x404F5221, 0x404F6020, 0x404F6021, 0x404F6E20,
-	0x404F6E21, 0x404F7C20, 0x404F7C21, 0x404F8A20, 0x404F9820, 0x404F9821,
-	0x404FA620, 0x404FA621, 0x404FB420, 0x404FB421, 0x404FC220, 0x404FC221,
-	0x404FD020, 0x404FD021, 0x404FDE20, 0x404FDE21, 0x404FEC20, 0x404FEC21,
-	0x404FFA20, 0x404FFA21, 0x40500820, 0x40500821, 0x40501620, 0x40501621,
-	0x40502420, 0x40502421, 0x40503220, 0x40503221, 0x40504020, 0x40504021,
-	0x40504E20, 0x40504E21, 0x40505C20, 0x40505C21, 0x40506A20, 0x40506A21,
-	0x40508C20, 0x40508C21, 0x40509A20, 0x40509A21,
-	// Block 48, offset 0xc00
-	0x4050A820, 0x4050A821, 0x4050B620, 0x4050B621, 0x4050C420, 0x4050D220,
-	0x4050D221, 0x4050E020, 0x4050E021, 0x4050EE20, 0x4050FC20, 0x404F1820,
-	0x404F1821, 0x404F2620, 0x404F2621, 0x404F3420, 0x404F3421, 0x404F4220,
-	0x404F4221, 0x404F5021, 0x404F5E20, 0x404F5E21, 0x404F6C20, 0x404F6C21,
-	0x404F7A20, 0x404F7A21, 0x404F8820, 0x404F9620, 0x404F9621, 0x404FA420,
-	0x404FA421, 0x404FB220, 0x404FB221, 0x404FC020, 0x404FC021, 0x404FCE20,
-	0x404FCE21, 0x404FDC20, 0x404FDC21, 0x404FEA20, 0x404FEA21, 0x404FF820,
-	0x404FF821, 0x40500620, 0x40500621, 0x40501420, 0x40501421, 0x40502220,
-	0x40502221, 0x40503020, 0x40503021, 0x40503E20, 0x40503E21, 0x40504C20,
-	0x40504C21, 0x40505A20, 0x40505A21, 0x40506820, 0x40506821, 0x40508A20,
-	0x40508A21, 0x40509820, 0x40509821, 0x4050A620,
-	// Block 49, offset 0xc40
-	0x4050A621, 0x4050B420, 0x4050B421, 0x4050C220, 0x4050D020, 0x4050D021,
-	0x4050DE20, 0x4050DE21, 0x4050EC20, 0x4050FA20, 0x404F0A21, 0x404F0A20,
-	0x404F0821, 0x404F0820, 0x404EE620, 0x404F5420, 0x404F4C20, 0x40507620,
-	0x40507A20, 0x404F1C20, 0x404F1C21, 0x404F2A20, 0x404F2A21, 0x404F3820,
-	0x404F3821, 0x404F4620, 0x404F4621, 0x404F5421, 0x404F6220, 0x404F6221,
-	0x404F7020, 0x404F7021, 0x404F7E20, 0x404F7E21, 0x404F8C20, 0x404F9A20,
-	0x404F9A21, 0x404FA820, 0x404FA821, 0x404FB620, 0x404FB621, 0x404FC420,
-	0x404FC421, 0x404FD220, 0x404FD221, 0x404FE020, 0x404FE021, 0x404FEE20,
-	0x404FEE21, 0x404FFC20, 0x404FFC21, 0x40500A20, 0x40500A21, 0x40501820,
-	0x40501821, 0x40502620, 0x40502621, 0x40503420, 0x40503421, 0x40504220,
-	0x40504221, 0x40505020, 0x40505021, 0x40505E20,
-	// Block 50, offset 0xc80
-	0x40505E21, 0x40506C20, 0x40506C21, 0x40508E20, 0x40508E21, 0x40509C20,
-	0x40509C21, 0x4050AA20, 0x4050AA21, 0x4050B820, 0x4050B821, 0x4050C620,
-	0x4050D420, 0x4050D421, 0x4050E220, 0x4050E221, 0x4050F020, 0x4050FE20,
-	0x404F1420, 0x404F1421, 0x404F2220, 0x404F2221, 0x404F3020, 0x404F3021,
-	0x404F3E20, 0x404F3E21, 0x404F4C21, 0x404F5A20, 0x404F5A21, 0x404F6820,
-	0x404F6821, 0x404F7620, 0x404F7621, 0x404F8420, 0x404F9220, 0x404F9221,
-	0x404FA020, 0x404FA021, 0x404FAE20, 0x404FAE21, 0x404FBC20, 0x404FBC21,
-	0x404FCA20, 0x404FCA21, 0x404FD820, 0x404FD821, 0x404FE620, 0x404FE621,
-	0x404FF420, 0x404FF421, 0x40500220, 0x40500221, 0x40501020, 0x40501021,
-	0x40501E20, 0x40501E21, 0x40502C20, 0x40502C21, 0x40503A20, 0x40503A21,
-	0x40504820, 0x40504821, 0x40505620, 0x40505621,
-	// Block 51, offset 0xcc0
-	0x40506420, 0x40506421, 0x40507220, 0x40507221, 0x40509420, 0x40509421,
-	0x4050A220, 0x4050A221, 0x4050B020, 0x4050B021, 0x4050BE20, 0x4050CC20,
-	0x4050CC21, 0x4050DA20, 0x4050DA21, 0x4050E820, 0x4050F620, 0x40507820,
-	0x40507C20, 0x404F0E20, 0x40507420, 0x404E1420, 0x404F1020, 0x404F1021,
-	0x404EDE20, 0x404F4A20, 0x404F1220, 0x404F1221, 0x404F2020, 0x404F2021,
-	0x404F2E20, 0x404F2E21, 0x404F3C20, 0x404F3C21, 0x404F4A21, 0x404F5820,
-	0x404F5821, 0x404F6620, 0x404F6621, 0x404F7420, 0x404F7421, 0x404F8220,
-	0x404F9020, 0x404F9021, 0x404F9E20, 0x404F9E21, 0x404FAC20, 0x404FAC21,
-	0x404FBA20, 0x404FBA21, 0x404FC820, 0x404FC821, 0x404FD620, 0x404FD621,
-	0x404FE420, 0x404FE421, 0x404FF220, 0x404FF221, 0x40500020, 0x40500021,
-	0x40500E20, 0x40500E21, 0x40501C20, 0x40501C21,
-	// Block 52, offset 0xd00
-	0x40502A20, 0x40502A21, 0x40503820, 0x40503821, 0x40504620, 0x40504621,
-	0x40505420, 0x40505421, 0x40506220, 0x40506221, 0x40507020, 0x40507021,
-	0x40509220, 0x40509221, 0x4050A020, 0x4050A021, 0x4050AE20, 0x4050AE21,
-	0x4050BC20, 0x4050CA20, 0x4050CA21, 0x4050D820, 0x4050D821, 0x4050E620,
-	0x4050F420, 0x404EDE21, 0x404F4A22, 0x404F1222, 0x404F1223, 0x404F2022,
-	0x404F2023, 0x404F2E22, 0x404F2E23, 0x404F3C22, 0x404F3C23, 0x404F4A23,
-	0x404F5822, 0x404F5823, 0x404F6622, 0x404F6623, 0x404F7422, 0x404F7423,
-	0x404F8221, 0x404F9022, 0x404F9023, 0x404F9E22, 0x404F9E23, 0x404FAC22,
-	0x404FAC23, 0x404FBA22, 0x404FBA23, 0x404FC822, 0x404FC823, 0x404FD622,
-	0x404FD623, 0x404FE422, 0x404FE423, 0x404FF222, 0x404FF223, 0x40500022,
-	0x40500023, 0x40500E22, 0x40500E23, 0x40501C22,
-	// Block 53, offset 0xd40
-	0x40501C23, 0x40502A22, 0x40502A23, 0x40503822, 0x40503823, 0x40504622,
-	0x40504623, 0x40505422, 0x40505423, 0x40506222, 0x40506223, 0x40507022,
-	0x40507023, 0x40509222, 0x40509223, 0x4050A022, 0x4050A023, 0x4050AE22,
-	0x4050AE23, 0x4050BC21, 0x4050CA22, 0x4050CA23, 0x4050D822, 0x4050D823,
-	0x4050E621, 0x4050F421, 0x404EEE20, 0x404F4E20, 0x40508220, 0x40508620,
-	0x404F1620, 0x404F1621, 0x404F2420, 0x404F2421, 0x404F3220, 0x404F3221,
-	0x404F4020, 0x404F4021, 0x404F4E21, 0x404F5C20, 0x404F5C21, 0x404F6A20,
-	0x404F6A21, 0x404F7820, 0x404F7821, 0x404F8620, 0x404F9420, 0x404F9421,
-	0x404FA220, 0x404FA221, 0x404FB020, 0x404FB021, 0x404FBE20, 0x404FBE21,
-	0x404FCC20, 0x404FCC21, 0x404FDA20, 0x404FDA21, 0x404FE820, 0x404FE821,
-	0x404FF620, 0x404FF621, 0x40500420, 0x40500421,
-	// Block 54, offset 0xd80
-	0x40501220, 0x40501221, 0x40502020, 0x40502021, 0x40502E20, 0x40502E21,
-	0x40503C20, 0x40503C21, 0x40504A20, 0x40504A21, 0x40505820, 0x40505821,
-	0x40506620, 0x40506621, 0x40507E20, 0x40507E21, 0x40509620, 0x40509621,
-	0x4050A420, 0x4050A421, 0x4050B220, 0x4050B221, 0x4050C020, 0x4050CE20,
-	0x4050CE21, 0x4050DC20, 0x4050DC21, 0x4050EA20, 0x4050F820, 0x40508420,
-	0x40508820, 0x40508020, 0x404E1820, 0x404F1E20, 0x404F1E21, 0x404E1C20,
-	0x404F2C20, 0x404F2C21, 0x404F2E20, 0x404F3220, 0x404E2220, 0x404F3A20,
-	0x404F3A21, 0x404E2420, 0x404F4820, 0x404F4821, 0x404E2820, 0x404F5620,
-	0x404F5621, 0x404E2E20, 0x404F6420, 0x404F6421, 0x404E3220, 0x404F7220,
-	0x404F7221, 0x404E3A20, 0x404F8020, 0x404E4220, 0x404F8E20, 0x404F8E21,
-	0x404E4820, 0x404F9C20, 0x404F9C21, 0x404E4A20,
-	// Block 55, offset 0xdc0
-	0x404FAA20, 0x404FAA21, 0x404E4E20, 0x404FB820, 0x404FB821, 0x404E5220,
-	0x404FC620, 0x404FC621, 0x404E5620, 0x404FD420, 0x404FD421, 0x404E5A20,
-	0x404FE220, 0x404FE221, 0x404E5E20, 0x404FF020, 0x404FF021, 0x404E6220,
-	0x40500C20, 0x40500C21, 0x404E6620, 0x40501A20, 0x40501A21, 0x404E7220,
-	0x40503620, 0x40503621, 0x404E7420, 0x40504420, 0x40504421, 0x404E7E20,
-	0x40505220, 0x40505221, 0x404E8220, 0x40506020, 0x40506021, 0x404E8420,
-	0x40506E20, 0x40506E21, 0x404E8820, 0x40509020, 0x40509021, 0x404E8C20,
-	0x40509E20, 0x40509E21, 0x404E9820, 0x4050BA20, 0x404EAA20, 0x4050D620,
-	0x4050D621, 0x404EB620, 0x4050E420, 0x404EC220, 0x4050F220, 0x40510420,
-	0x40511A20, 0x40511020, 0x40511420, 0x40510620, 0x40511C20, 0x40511220,
-	0x40511620, 0x40510A20, 0x40511820, 0x402BDE20,
-	// Block 56, offset 0xe00
-	0x40320C21, 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083,
-	0x003210A4, 0x003210A3, 0x402C9820, 0x402C9A20, 0x002C9888, 0x002C9A83,
-	0x402C3A20, 0x40312C20, 0x002C3A88, 0x00312C84, 0x00312C83, 0x402C6220,
-	0x40312E20, 0x002C6288, 0x00312E84, 0x00312E83, 0x402DFE20, 0x40313020,
-	0x002DFE88, 0x00313084, 0x00313083, 0x402E9E20, 0x40313220, 0x002E9E88,
-	0x00313284, 0x00313283, 0x402F2C20, 0x40313420, 0x002F2C88, 0x00313484,
-	0x00313483, 0x402FE620, 0x40313620, 0x002FE688, 0x00313683, 0x40421220,
-	0x40425A20, 0x402BDE20, 0x402BE020, 0x002BDE88, 0x002BE083, 0x40312A20,
-	0x40312C20, 0x40312E20, 0x00312A88, 0x00312C83, 0x00312E83, 0x40393820,
-	0x40393620, 0x40393821, 0x40393824, 0x40397220, 0x40396621, 0x403A6821,
-	0x003A6883, 0x403A6820, 0x003A6884, 0x403A7420,
-	// Block 57, offset 0xe40
-	0x403A7421, 0x403A9220, 0x403A9226, 0x403A9221, 0x003A9343, 0x403A9223,
-	0x003A9344, 0x402BDE20, 0x402BE220, 0x402BE020, 0x002BDE88, 0x002BE283,
-	0x002BE083, 0x402FE620, 0x402FE820, 0x402FE820, 0x002FE688, 0x002FE883,
-	0x002FE883, 0x40302C20, 0x40302E20, 0x40302E20, 0x00302C88, 0x00302E83,
-	0x00302E83, 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, 0x40320E20,
-	0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, 0x00320E83,
-	0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, 0x402C5E20,
-	0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, 0x002D2288,
-	0x002D6483, 0x402E9E20, 0x402EE021, 0x402EE022, 0x002E9E88, 0x002EE0A3,
-	0x002EE0C3, 0x40312A20, 0x40320620, 0x00312A88, 0x00320683, 0x402EE220,
-	0x40321023, 0x40321022, 0x40321020, 0x40321021,
-	// Block 58, offset 0xe80
-	0x40321024, 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3,
-	0x00321103, 0x402C6220, 0x402C9620, 0x002C6288, 0x002C9684, 0x002C9683,
-	0x002D2288, 0x002D6684, 0x002D6683, 0x402E2220, 0xE0000CFB, 0xE0000CFB,
-	0x402E8020, 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E8084, 0x002E8083,
-	0x002E9E88, 0x002EE084, 0x002EE083, 0x002F7A88, 0x002FE484, 0x002FE483,
-	0x002FE688, 0x00302A84, 0x00302A83, 0x40302C20, 0x40306A20, 0x00302C88,
-	0x00306A84, 0x00306A83, 0x4030F620, 0x4030FE20, 0x0030F688, 0x0030FE84,
-	0x0030FE83, 0x00312A88, 0x00316284, 0x00316283, 0x402C9820, 0x40320E22,
-	0x002C9888, 0x00320EC3, 0x402EE220, 0x40321024, 0x40321020, 0x40321022,
-	0x002EE288, 0x00321103, 0x00321083, 0x003210C3, 0x40429820, 0x4042C220,
-	0x4042C420, 0x40429620, 0x40429A20, 0x40429820,
-	// Block 59, offset 0xec0
-	0x40429C20, 0x40429A20, 0x40429E20, 0x40429C20, 0x4042A020, 0x40429E20,
-	0x4042A220, 0x4042A020, 0x4042A420, 0x4042A220, 0x4042A620, 0x4042A420,
-	0x4042A820, 0x4042A620, 0x4042AA20, 0x4042A820, 0x4042AC20, 0x4042AA20,
-	0x4042AE20, 0x4042AC20, 0x4042B020, 0x4042AE20, 0x4042B220, 0x4042B020,
-	0x4042B420, 0x4042B220, 0x4042B620, 0x4042B420, 0x4042B820, 0x4042B620,
-	0x4042BA20, 0x4042B820, 0x4042BC20, 0x4042BA20, 0x4042BE20, 0x4042BC20,
-	0x4042C020, 0x4042BE20, 0x4042C220, 0x4042C020, 0x4042C420, 0x4042C220,
-	0x40496C20, 0xE000A9CE, 0xE000A9D1, 0x402BDE20, 0x402BDE21, 0x402BDE22,
-	0x002BDE88, 0x002BDEA3, 0x002BDEC3, 0x402C9820, 0x402C9821, 0x402C9822,
-	0x002C9888, 0x002C98A3, 0x002C98C3, 0x402D9A20, 0x402D9A21, 0x402D9A22,
-	0x002D9A88, 0x002D9AA3, 0x002D9AC3, 0x402EE220,
-	// Block 60, offset 0xf00
-	0x402EE221, 0x402EE222, 0x002EE288, 0x002EE2A3, 0x002EE2C3, 0x40306C20,
-	0x40306C21, 0x40306C22, 0x00306C88, 0x00306CA3, 0x00306CC3, 0x40393820,
-	0x40393A20, 0x40393821, 0x40392820, 0x40393C20, 0x40393E20, 0x40394020,
-	0x40394220, 0x40394420, 0x40394620, 0x40394820, 0x40394A20, 0x40394E20,
-	0x40395020, 0x40395220, 0x40395420, 0x40395A20, 0x40395C20, 0x40395E20,
-	0x40396020, 0x40396420, 0x40396620, 0x40396820, 0x40396A20, 0x40398420,
-	0x40398620, 0x40398820, 0x40398A20, 0x40398C20, 0x40398E20, 0x40399020,
-	0x40399220, 0x40399420, 0x40399620, 0x40399820, 0x40399A20, 0x40399C20,
-	0x40399C21, 0x40399E20, 0x4039A020, 0x4039A021, 0x403A9020, 0x4039A821,
-	0x4039A820, 0x4039AA20, 0x4039AC20, 0x4039AC21, 0x402EE220, 0x402EE420,
-	0x402EE620, 0x002EE288, 0x002EE483, 0x002EE683,
-	// Block 61, offset 0xf40
-	0x402BDE20, 0xE0000966, 0xE000AF74, 0xE0000958, 0xE0000966, 0x402C3A20,
-	0xE0000A41, 0x402C9820, 0xE000AF77, 0x402D9A20, 0xE000AF7A, 0x402EE220,
-	0xE0000DE3, 0xE000AF7D, 0xE0000DCF, 0xE0000DE3, 0x402FE620, 0xE0000F30,
-	0x40306C20, 0xE0001028, 0xE000AF80, 0xE0000FFC, 0xE0001028, 0x402BDE20,
-	0x402BDE1F, 0x402BDE1D, 0x402BDE1C, 0x402BDE1E, 0x002BDE88, 0x002BDE63,
-	0x002BDE23, 0x002BDE03, 0x002BDE43, 0x402C9820, 0x402C9824, 0x402C9822,
-	0x402C9821, 0x402C9823, 0x402C981F, 0x402C981D, 0x402C981C, 0x402C981E,
-	0x002C9888, 0x002C9903, 0x002C98C3, 0x002C98A3, 0x002C98E3, 0x002C9863,
-	0x002C9823, 0x002C9803, 0x002C9843, 0xE0000AF1, 0x402C9821, 0x402C9823,
-	0xE0000AF4, 0x002C98A3, 0x002C98E3, 0x402D9A20, 0x402D9A1F, 0x402D9A1D,
-	0x402D9A1C, 0x402D9A1E, 0x002D9A88, 0x002D9A63,
-	// Block 62, offset 0xf80
-	0x002D9A23, 0x002D9A03, 0x002D9A43, 0x402E8220, 0x402E821F, 0x402E821D,
-	0x402E821C, 0x402E821E, 0x002E8288, 0x002E8263, 0x002E8223, 0x002E8203,
-	0x002E8243, 0x402E9E20, 0x402E9E1F, 0x402E9E1D, 0x402E9E1C, 0x402E9E1E,
-	0x002E9E88, 0x002E9E63, 0x002E9E23, 0x002E9E03, 0x002E9E43, 0x402EE220,
-	0x402EE21F, 0x402EE21D, 0x402EE21C, 0x402EE21E, 0x002EE288, 0x002EE263,
-	0x002EE223, 0x002EE203, 0x002EE243, 0x40306C20, 0x40306C24, 0x40306C22,
-	0x40306C21, 0x40306C23, 0x40306C1F, 0x40306C1D, 0x40306C1C, 0x40306C25,
-	0x40306C1E, 0x00306C88, 0x00306D03, 0x00306CC3, 0x00306CA3, 0x00306CE3,
-	0x00306C63, 0x00306C23, 0x00306C03, 0x00306D23, 0x00306C43,
-}
-
-// mainValues: 171392 entries, 685568 bytes
-// Block 2 is the null block.
-var mainValues = [171392]uint32{
-	// Block 0x0, offset 0x0
-	0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000,
-	0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000,
-	0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420,
-	0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000,
-	0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000,
-	0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000,
-	0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000,
-	0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000,
-	0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20,
-	0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220,
-	0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820,
-	0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220,
-	0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220,
-	0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20,
-	0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220,
-	0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420,
-	// Block 0x1, offset 0x40
-	0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88,
-	0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288,
-	0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88,
-	0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288,
-	0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688,
-	0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288,
-	0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820,
-	0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620,
-	0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20,
-	0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220,
-	0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20,
-	0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220,
-	0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620,
-	0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220,
-	0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20,
-	0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000,
-	0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000,
-	0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000,
-	0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000,
-	0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000,
-	0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000,
-	0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000,
-	0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000,
-	0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020,
-	0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20,
-	0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020,
-	0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620,
-	0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294,
-	0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620,
-	0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220,
-	0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620,
-	// Block 0x4, offset 0x100
-	0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969,
-	0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53,
-	0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20,
-	0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43,
-	0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94,
-	0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20,
-	0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed,
-	0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b,
-	0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966,
-	0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d,
-	0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d,
-	0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40,
-	0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91,
-	0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20,
-	0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea,
-	0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114,
-	// Block 0x5, offset 0x140
-	0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8,
-	0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35,
-	0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47,
-	0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83,
-	0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43,
-	0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29,
-	0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17,
-	0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf,
-	0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7,
-	0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18,
-	0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d,
-	0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57,
-	0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404,
-	0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c,
-	0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8,
-	0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04,
-	// Block 0x6, offset 0x180
-	0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51,
-	0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d,
-	0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20,
-	0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d,
-	0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f,
-	0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9,
-	0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c,
-	0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44,
-	0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96,
-	0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620,
-	0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c,
-	0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6,
-	0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036,
-	0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b,
-	0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d,
-	0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220,
-	0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88,
-	0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488,
-	0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888,
-	0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488,
-	0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688,
-	0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220,
-	0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088,
-	0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020,
-	0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488,
-	0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220,
-	0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f,
-	0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888,
-	0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488,
-	0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620,
-	0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420,
-	// Block 0x8, offset 0x200
-	0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20,
-	0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a,
-	0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a,
-	0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d,
-	0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3,
-	0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006,
-	0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e,
-	0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e,
-	0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef,
-	0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb,
-	0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d,
-	0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f,
-	0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404,
-	0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488,
-	0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950,
-	0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15,
-	// Block 0x9, offset 0x240
-	0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992,
-	0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65,
-	0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f,
-	0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d,
-	0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb,
-	0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056,
-	0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2,
-	0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1,
-	0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220,
-	0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c,
-	0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5,
-	0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01,
-	0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126,
-	0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420,
-	0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488,
-	0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20,
-	// Block 0xa, offset 0x280
-	0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88,
-	0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220,
-	0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20,
-	0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020,
-	0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20,
-	0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20,
-	0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220,
-	0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20,
-	0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820,
-	0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20,
-	0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220,
-	0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020,
-	0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820,
-	0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20,
-	0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20,
-	0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020,
-	// Block 0xb, offset 0x2c0
-	0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820,
-	0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420,
-	0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20,
-	0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820,
-	0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020,
-	0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220,
-	0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20,
-	0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20,
-	0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca,
-	0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf,
-	0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18,
-	0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820,
-	0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94,
-	0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294,
-	0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620,
-	0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020,
-	// Block 0xc, offset 0x300
-	0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820,
-	0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020,
-	0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820,
-	0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020,
-	0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420,
-	0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20,
-	0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420,
-	0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020,
-	0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694,
-	0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620,
-	0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20,
-	0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420,
-	0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20,
-	0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420,
-	0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20,
-	0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420,
-	// Block 0xd, offset 0x340
-	0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02,
-	0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202,
-	0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02,
-	0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502,
-	0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202,
-	0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002,
-	0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802,
-	0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002,
-	0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002,
-	0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602,
-	0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002,
-	0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002,
-	0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002,
-	0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102,
-	0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002,
-	0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02,
-	// Block 0xe, offset 0x380
-	0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202,
-	0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002,
-	0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02,
-	0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000,
-	0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002,
-	0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02,
-	0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02,
-	0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002,
-	0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef,
-	0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836,
-	0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741,
-	0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b,
-	0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620,
-	0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020,
-	0x03ba: 0x00326c84, 0x03bb: 0x40329220,
-	0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220,
-	// Block 0xf, offset 0x3c0
-	0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620,
-	0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a,
-	0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492,
-	0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688,
-	0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888,
-	0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288,
-	0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88,
-	0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88,
-	0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88,
-	0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2,
-	0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337,
-	0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620,
-	0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820,
-	0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220,
-	0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20,
-	// Block 0x10, offset 0x400
-	0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20,
-	0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20,
-	0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef,
-	0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368,
-	0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a,
-	0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364,
-	0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220,
-	0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420,
-	0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820,
-	0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420,
-	0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820,
-	0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620,
-	0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20,
-	0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888,
-	0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220,
-	0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488,
-	// Block 0x11, offset 0x440
-	0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288,
-	0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688,
-	0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288,
-	0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488,
-	0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092,
-	0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071,
-	0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488,
-	0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88,
-	0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1,
-	0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071,
-	0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071,
-	0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488,
-	0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092,
-	0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071,
-	0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420,
-	0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20,
-	// Block 0x12, offset 0x480
-	0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1,
-	0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071,
-	0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071,
-	0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420,
-	0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220,
-	0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620,
-	0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220,
-	0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420,
-	0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20,
-	0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620,
-	0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020,
-	0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20,
-	0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20,
-	0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20,
-	0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20,
-	0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302,
-	0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02,
-	0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20,
-	0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020,
-	0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20,
-	0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20,
-	0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820,
-	0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020,
-	0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20,
-	0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820,
-	0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420,
-	0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220,
-	0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20,
-	0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20,
-	0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420,
-	0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20,
-	// Block 0x14, offset 0x500
-	0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088,
-	0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288,
-	0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288,
-	0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020,
-	0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220,
-	0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20,
-	0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220,
-	0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220,
-	0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2,
-	0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620,
-	0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620,
-	0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db,
-	0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20,
-	0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220,
-	0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220,
-	0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420,
-	// Block 0x15, offset 0x540
-	0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020,
-	0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020,
-	0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20,
-	0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620,
-	0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620,
-	0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820,
-	0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220,
-	0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020,
-	0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20,
-	0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20,
-	0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688,
-	0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88,
-	0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688,
-	0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88,
-	// Block 0x16, offset 0x580
-	0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688,
-	0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88,
-	0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688,
-	0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88,
-	0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688,
-	0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88,
-	0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020,
-	0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220,
-	0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620,
-	0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20,
-	0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620,
-	0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20,
-	0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620,
-	0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20,
-	0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620,
-	0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20,
-	// Block 0x17, offset 0x5c0
-	0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620,
-	0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404,
-	0x05c9: 0x40026e20, 0x05ca: 0x40021c20,
-	0x05cf: 0x4027e420,
-	0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000,
-	0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000,
-	0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000,
-	0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000,
-	0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000,
-	0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000,
-	0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000,
-	0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000,
-	0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802,
-	0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02,
-	0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02,
-	0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502,
-	// Block 0x18, offset 0x600
-	0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820,
-	0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02,
-	0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620,
-	0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20,
-	0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420,
-	0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99,
-	0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099,
-	0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420,
-	0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20,
-	0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20,
-	0x0634: 0x40055e20,
-	// Block 0x19, offset 0x640
-	0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000,
-	0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20,
-	0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620,
-	0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020,
-	0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000,
-	0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000,
-	0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420,
-	0x065e: 0x40027020, 0x065f: 0x4002cc20,
-	0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020,
-	0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151,
-	0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820,
-	0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820,
-	0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620,
-	0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620,
-	0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820,
-	0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020,
-	// Block 0x1a, offset 0x680
-	0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20,
-	0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820,
-	0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202,
-	0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202,
-	0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02,
-	0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202,
-	0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602,
-	0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002,
-	0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db,
-	0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3,
-	0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20,
-	0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020,
-	0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20,
-	0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404,
-	0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20,
-	0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220,
-	// Block 0x1b, offset 0x6c0
-	0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620,
-	0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20,
-	0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220,
-	0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20,
-	0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20,
-	0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420,
-	0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20,
-	0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20,
-	0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220,
-	0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420,
-	0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020,
-	0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20,
-	0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220,
-	0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620,
-	0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20,
-	0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20,
-	// Block 0x1c, offset 0x700
-	0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20,
-	0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20,
-	0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420,
-	0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620,
-	0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800,
-	0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000,
-	0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000,
-	0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000,
-	0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000,
-	0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000,
-	0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000,
-	0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20,
-	0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de,
-	0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6,
-	0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420,
-	0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020,
-	// Block 0x1d, offset 0x740
-	0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220,
-	0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20,
-	0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220,
-	0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000,
-	0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420,
-	0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20,
-	0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420,
-	0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20,
-	0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420,
-	0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812,
-	0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220,
-	0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c,
-	0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602,
-	0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02,
-	0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02,
-	0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202,
-	// Block 0x1e, offset 0x780
-	0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000,
-	0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000,
-	0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000,
-	0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20,
-	0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20,
-	0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20,
-	0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20,
-	0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20,
-	0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20,
-	0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220,
-	0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20,
-	0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220,
-	0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20,
-	0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820,
-	0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20,
-	0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420,
-	// Block 0x1f, offset 0x7c0
-	0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220,
-	0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20,
-	0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20,
-	0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20,
-	0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20,
-	0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220,
-	0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20,
-	0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420,
-	0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020,
-	0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820,
-	0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020,
-	0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820,
-	0x07f0: 0x403b7a20, 0x07f1: 0x403b6420,
-	// Block 0x20, offset 0x800
-	0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4,
-	0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc,
-	0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20,
-	0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620,
-	0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20,
-	0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620,
-	0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20,
-	0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620,
-	0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20,
-	0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620,
-	0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302,
-	0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702,
-	0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02,
-	0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20,
-	0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000,
-	// Block 0x21, offset 0x840
-	0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20,
-	0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620,
-	0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20,
-	0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620,
-	0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20,
-	0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b,
-	0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d,
-	0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802,
-	0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902,
-	0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02,
-	0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02,
-	0x086c: 0xae609e02, 0x086d: 0xae60a102,
-	0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420,
-	0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20,
-	0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420,
-	0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20,
-	// Block 0x22, offset 0x880
-	0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20,
-	0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420,
-	0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20,
-	0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420,
-	0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20,
-	0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420,
-	0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002,
-	0x089e: 0x40056820,
-	// Block 0x23, offset 0x8c0
-	0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20,
-	0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420,
-	0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20,
-	0x08ec: 0x40393620,
-	// Block 0x24, offset 0x900
-	0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402,
-	0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000,
-	0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000,
-	0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000,
-	0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02,
-	0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02,
-	0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502,
-	// Block 0x25, offset 0x940
-	0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402,
-	0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20,
-	0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420,
-	0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020,
-	0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820,
-	0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020,
-	0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20,
-	0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620,
-	0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020,
-	0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820,
-	0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20,
-	0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820,
-	0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020,
-	0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620,
-	0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20,
-	0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620,
-	// Block 0x26, offset 0x980
-	0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20,
-	0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20,
-	0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620,
-	0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020,
-	0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502,
-	0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420,
-	0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827,
-	0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836,
-	0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420,
-	0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8,
-	0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592,
-	0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856,
-	0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220,
-	0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20,
-	0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220,
-	0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220,
-	// Block 0x27, offset 0x9c0
-	0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402,
-	0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020,
-	0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820,
-	0x09cc: 0x40408c20, 0x09cf: 0x40409020,
-	0x09d0: 0x40409220, 0x09d3: 0x40409420,
-	0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20,
-	0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420,
-	0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20,
-	0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420,
-	0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20,
-	0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220,
-	0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20,
-	0x09f0: 0x4040cc20, 0x09f2: 0x4040d020,
-	0x09f6: 0x4040d420, 0x09f7: 0x4040d620,
-	0x09f8: 0x4040d820, 0x09f9: 0x4040da20,
-	0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820,
-	0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191,
-	0x0a08: 0x4040f220, 0x0a0b: 0x4040f420,
-	0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845,
-	0x0a17: 0x4040fa20,
-	0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848,
-	0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20,
-	0x0a26: 0xe000016d, 0x0a27: 0xe00001fb,
-	0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595,
-	0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859,
-	0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20,
-	0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620,
-	0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20,
-	// Block 0x29, offset 0xa40
-	0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402,
-	0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020,
-	0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220,
-	0x0a4f: 0x40411420,
-	0x0a50: 0x40410a20, 0x0a53: 0x40410420,
-	0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020,
-	0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820,
-	0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020,
-	0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820,
-	0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020,
-	0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620,
-	0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20,
-	0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a,
-	0x0a75: 0x40415620, 0x0a76: 0xe000184b,
-	0x0a78: 0x40411620, 0x0a79: 0x40411820,
-	0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220,
-	0x0a87: 0x40416420,
-	0x0a88: 0x40416620, 0x0a8b: 0x40416820,
-	0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6,
-	0x0a91: 0x40411a20,
-	0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854,
-	0x0a9c: 0x40415820, 0x0a9e: 0xe0001857,
-	0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe,
-	0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598,
-	0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c,
-	0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20,
-	0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020,
-	// Block 0x2b, offset 0xac0
-	0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402,
-	0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420,
-	0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20,
-	0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620,
-	0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20,
-	0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420,
-	0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20,
-	0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420,
-	0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20,
-	0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420,
-	0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20,
-	0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220,
-	0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220,
-	0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20,
-	0x0af8: 0x4041ce20, 0x0af9: 0x4041d020,
-	0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020,
-	0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20,
-	0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020,
-	0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa,
-	0x0b10: 0x40416e20,
-	0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620,
-	0x0b26: 0xe0000173, 0x0b27: 0xe0000201,
-	0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b,
-	0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f,
-	0x0b30: 0x40057420, 0x0b31: 0x4027ee20,
-	// Block 0x2d, offset 0xb40
-	0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402,
-	0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20,
-	0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220,
-	0x0b4c: 0x40420620, 0x0b4f: 0x40420a20,
-	0x0b50: 0x40420c20, 0x0b53: 0x40420e20,
-	0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620,
-	0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20,
-	0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620,
-	0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20,
-	0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620,
-	0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20,
-	0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420,
-	0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20,
-	0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420,
-	0x0b78: 0x40425620, 0x0b79: 0x40425820,
-	0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20,
-	// Block 0x2e, offset 0xb80
-	0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620,
-	0x0b84: 0x40426820, 0x0b87: 0xc05d01e1,
-	0x0b88: 0x40427020, 0x0b8b: 0x40427220,
-	0x0b8c: 0x40427420, 0x0b8d: 0x8209213b,
-	0x0b96: 0x40427820, 0x0b97: 0x40427a20,
-	0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620,
-	0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20,
-	0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204,
-	0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e,
-	0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862,
-	0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20,
-	0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620,
-	// Block 0x2f, offset 0xbc0
-	0x0bc2: 0xa000f302, 0x0bc3: 0x40429620,
-	0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220,
-	0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820,
-	0x0bce: 0x40428a20, 0x0bcf: 0x40428c20,
-	0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220,
-	0x0bd4: 0x40429420, 0x0bd5: 0x40429820,
-	0x0bd9: 0x40429a20, 0x0bda: 0x40429c20,
-	0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020,
-	0x0be3: 0x4042a220,
-	0x0be4: 0x4042a420,
-	0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820,
-	0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20,
-	0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620,
-	0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020,
-	0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420,
-	0x0bfe: 0x4042c620, 0x0bff: 0x4042c820,
-	// Block 0x30, offset 0xc00
-	0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20,
-	0x0c06: 0xc0630261, 0x0c07: 0xc06602b1,
-	0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820,
-	0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e,
-	0x0c10: 0x40427c20,
-	0x0c17: 0x4042de20,
-	0x0c26: 0xe0000179, 0x0c27: 0xe0000207,
-	0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1,
-	0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865,
-	0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20,
-	0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620,
-	0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20,
-	// Block 0x31, offset 0xc40
-	0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402,
-	0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420,
-	0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20,
-	0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620,
-	0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20,
-	0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420,
-	0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20,
-	0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820,
-	0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020,
-	0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820,
-	0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20,
-	0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620,
-	0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820,
-	0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220,
-	0x0c78: 0x40434420, 0x0c79: 0x40434620,
-	0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20,
-	// Block 0x32, offset 0xc80
-	0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620,
-	0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020,
-	0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620,
-	0x0c8c: 0x40436820, 0x0c8d: 0x820921b5,
-	0x0c95: 0x825421b6, 0x0c96: 0x825b21b7,
-	0x0c98: 0x40430c20, 0x0c99: 0x40431220,
-	0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20,
-	0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a,
-	0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4,
-	0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868,
-	0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402,
-	0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20,
-	// Block 0x33, offset 0xcc0
-	0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402,
-	0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420,
-	0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20,
-	0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620,
-	0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20,
-	0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420,
-	0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20,
-	0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420,
-	0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20,
-	0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420,
-	0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20,
-	0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220,
-	0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420,
-	0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20,
-	0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220,
-	0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311,
-	// Block 0x34, offset 0xd00
-	0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820,
-	0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220,
-	0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820,
-	0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe,
-	0x0d15: 0x4043fe20, 0x0d16: 0x40440020,
-	0x0d1e: 0x4043d620,
-	0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20,
-	0x0d26: 0xe0000182, 0x0d27: 0xe0000213,
-	0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7,
-	0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b,
-	0x0d31: 0x4043da20, 0x0d32: 0x4043dc20,
-	// Block 0x35, offset 0xd40
-	0x0d42: 0xa000f302, 0x0d43: 0xa000f402,
-	0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620,
-	0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20,
-	0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820,
-	0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20,
-	0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620,
-	0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20,
-	0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620,
-	0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20,
-	0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620,
-	0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20,
-	0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620,
-	0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620,
-	0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020,
-	0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20,
-	0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220,
-	// Block 0x36, offset 0xd80
-	0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20,
-	0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401,
-	0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20,
-	0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c,
-	0x0d97: 0x40448e20,
-	0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020,
-	0x0da6: 0xe0000185, 0x0da7: 0xe0000216,
-	0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa,
-	0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e,
-	0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020,
-	0x0db4: 0x40286220, 0x0db5: 0x40286420,
-	0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869,
-	0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863,
-	// Block 0x37, offset 0xdc0
-	0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402,
-	0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620,
-	0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20,
-	0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620,
-	0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20,
-	0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420,
-	0x0dda: 0x4044b620, 0x0ddb: 0x4044b820,
-	0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020,
-	0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820,
-	0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020,
-	0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820,
-	0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020,
-	0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620,
-	0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20,
-	0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620,
-	0x0dfd: 0x4044f820,
-	// Block 0x38, offset 0xe00
-	0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020,
-	0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620,
-	0x0e0a: 0x82092295,
-	0x0e0f: 0x40450820,
-	0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020,
-	0x0e14: 0x40451220, 0x0e16: 0x40451420,
-	0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220,
-	0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20,
-	0x0e32: 0x40451820, 0x0e33: 0x40451c20,
-	0x0e34: 0x40057620,
-	// Block 0x39, offset 0xe40
-	0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420,
-	0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20,
-	0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420,
-	0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20,
-	0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420,
-	0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20,
-	0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420,
-	0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20,
-	0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420,
-	0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20,
-	0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420,
-	0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20,
-	0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420,
-	0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20,
-	0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1,
-	0x0e7f: 0x4027f420,
-	// Block 0x3a, offset 0xe80
-	0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1,
-	0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02,
-	0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302,
-	0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820,
-	0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420,
-	0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732,
-	0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20,
-	// Block 0x3b, offset 0xec0
-	0x0ec1: 0x40499220, 0x0ec2: 0x40499420,
-	0x0ec4: 0x40499620, 0x0ec7: 0x40499820,
-	0x0ec8: 0x40499a20, 0x0eca: 0x40499e20,
-	0x0ecd: 0x4049a220,
-	0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20,
-	0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020,
-	0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820,
-	0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20,
-	0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220,
-	0x0eea: 0x40499c20, 0x0eeb: 0x4049c420,
-	0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20,
-	0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220,
-	0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20,
-	0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020,
-	0x0efc: 0x4049e220, 0x0efd: 0x4049e420,
-	// Block 0x3c, offset 0xf00
-	0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541,
-	0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20,
-	0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902,
-	0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641,
-	0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423,
-	0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735,
-	0x0f18: 0xe00007e1, 0x0f19: 0xe0000886,
-	0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020,
-	// Block 0x3d, offset 0xf40
-	0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220,
-	0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820,
-	0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420,
-	0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20,
-	0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420,
-	0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20,
-	0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20,
-	0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620,
-	0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426,
-	0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738,
-	0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f,
-	0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693,
-	0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3,
-	0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000,
-	0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220,
-	0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000,
-	// Block 0x3e, offset 0xf80
-	0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4,
-	0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020,
-	0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20,
-	0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820,
-	0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420,
-	0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6,
-	0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020,
-	0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20,
-	0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20,
-	0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20,
-	0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20,
-	0x0fac: 0x404aec20,
-	0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d,
-	0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620,
-	0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597,
-	0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402,
-	// Block 0x3f, offset 0xfc0
-	0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000,
-	0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000,
-	0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420,
-	0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020,
-	0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7,
-	0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220,
-	0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20,
-	0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20,
-	0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620,
-	0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9,
-	0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220,
-	0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20,
-	0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1,
-	0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020,
-	0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005,
-	0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020,
-	// Block 0x40, offset 0x1000
-	0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820,
-	0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20,
-	0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620,
-	0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20,
-	0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620,
-	0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220,
-	0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20,
-	// Block 0x41, offset 0x1040
-	0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220,
-	0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220,
-	0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20,
-	0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20,
-	0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620,
-	0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20,
-	0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20,
-	0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20,
-	0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620,
-	0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620,
-	0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84,
-	0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20,
-	0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20,
-	0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202,
-	0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20,
-	0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e,
-	// Block 0x42, offset 0x1080
-	0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432,
-	0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744,
-	0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420,
-	0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20,
-	0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020,
-	0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820,
-	0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20,
-	0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620,
-	0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820,
-	0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20,
-	0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020,
-	0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20,
-	0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020,
-	0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20,
-	0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420,
-	0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020,
-	// Block 0x43, offset 0x10c0
-	0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020,
-	0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620,
-	0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820,
-	0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220,
-	0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435,
-	0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747,
-	0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620,
-	0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20,
-	0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488,
-	0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888,
-	0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888,
-	0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88,
-	0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088,
-	0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088,
-	0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088,
-	0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488,
-	// Block 0x44, offset 0x1100
-	0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88,
-	0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288,
-	0x110d: 0x00383c88,
-	0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220,
-	0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620,
-	0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620,
-	0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20,
-	0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20,
-	0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20,
-	0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20,
-	0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220,
-	0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20,
-	0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020,
-	0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020,
-	0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020,
-	// Block 0x45, offset 0x1140
-	0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220,
-	0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20,
-	0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220,
-	0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20,
-	0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220,
-	0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20,
-	0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220,
-	0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20,
-	0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220,
-	0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20,
-	0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220,
-	0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20,
-	0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220,
-	0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20,
-	0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220,
-	0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220,
-	0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20,
-	0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220,
-	0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20,
-	0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220,
-	0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20,
-	0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220,
-	0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420,
-	0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20,
-	0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420,
-	0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20,
-	0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420,
-	0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20,
-	0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420,
-	0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20,
-	0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20,
-	0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420,
-	0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20,
-	0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420,
-	0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20,
-	0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420,
-	0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20,
-	0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420,
-	0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20,
-	0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420,
-	0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20,
-	0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220,
-	0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20,
-	0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220,
-	0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20,
-	0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220,
-	// Block 0x48, offset 0x1200
-	0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20,
-	0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220,
-	0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20,
-	0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220,
-	0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20,
-	0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220,
-	0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20,
-	0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220,
-	0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20,
-	0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220,
-	0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20,
-	0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220,
-	0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20,
-	0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220,
-	0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20,
-	0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220,
-	// Block 0x49, offset 0x1240
-	0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420,
-	0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20,
-	0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420,
-	0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20,
-	0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620,
-	0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20,
-	0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620,
-	0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20,
-	0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020,
-	0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820,
-	0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020,
-	0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820,
-	0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220,
-	0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20,
-	0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020,
-	0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820,
-	// Block 0x4a, offset 0x1280
-	0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220,
-	0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20,
-	0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020,
-	0x128c: 0x403ce220, 0x128d: 0x403ce420,
-	0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20,
-	0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220,
-	0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820,
-	0x129c: 0x403cfa20, 0x129d: 0x403cfc20,
-	0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420,
-	0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20,
-	0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20,
-	0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620,
-	0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20,
-	0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620,
-	0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020,
-	0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820,
-	// Block 0x4b, offset 0x12c0
-	0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220,
-	0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20,
-	0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020,
-	0x12cc: 0x403d6220, 0x12cd: 0x403d6420,
-	0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20,
-	0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420,
-	0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20,
-	0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620,
-	0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020,
-	0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820,
-	0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220,
-	0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20,
-	0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020,
-	0x12f4: 0x403db220, 0x12f5: 0x403db420,
-	0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20,
-	0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820,
-	0x1304: 0x403dca20, 0x1305: 0x403dcc20,
-	0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420,
-	0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20,
-	0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420,
-	0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20,
-	0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220,
-	0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20,
-	0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020,
-	0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820,
-	0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020,
-	0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820,
-	0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020,
-	0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820,
-	0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20,
-	0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620,
-	// Block 0x4d, offset 0x1340
-	0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020,
-	0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820,
-	0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220,
-	0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20,
-	0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020,
-	0x1354: 0x403e8220, 0x1355: 0x403e8420,
-	0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20,
-	0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420,
-	0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420,
-	0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20,
-	0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620,
-	0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20,
-	0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620,
-	0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20,
-	0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820,
-	0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620,
-	0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20,
-	0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620,
-	0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20,
-	0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20,
-	0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620,
-	0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620,
-	0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02,
-	0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20,
-	0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020,
-	0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7,
-	0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff,
-	0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820,
-	0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020,
-	0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820,
-	0x13bc: 0x40287a20,
-	// Block 0x4f, offset 0x13c0
-	0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620,
-	0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420,
-	0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620,
-	0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20,
-	0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20,
-	0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420,
-	0x13d8: 0x4006b620, 0x13d9: 0x4006b820,
-	0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20,
-	0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420,
-	0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20,
-	0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420,
-	0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20,
-	0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420,
-	0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20,
-	0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20,
-	0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420,
-	0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20,
-	0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420,
-	0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20,
-	0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420,
-	0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20,
-	0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420,
-	0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20,
-	0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420,
-	0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20,
-	0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420,
-	0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20,
-	0x1434: 0x40551e20,
-	// Block 0x51, offset 0x1440
-	0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420,
-	0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20,
-	0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420,
-	0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20,
-	0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420,
-	0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20,
-	0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420,
-	0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20,
-	0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420,
-	0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20,
-	0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420,
-	0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20,
-	0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420,
-	0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20,
-	0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420,
-	0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20,
-	// Block 0x52, offset 0x1480
-	0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420,
-	0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20,
-	0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420,
-	0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20,
-	0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420,
-	0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20,
-	0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420,
-	0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20,
-	0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420,
-	0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20,
-	0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420,
-	0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20,
-	0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420,
-	0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20,
-	0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420,
-	0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20,
-	// Block 0x53, offset 0x14c0
-	0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420,
-	0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20,
-	0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420,
-	0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20,
-	0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420,
-	0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20,
-	0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420,
-	0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20,
-	0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420,
-	0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20,
-	0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420,
-	0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20,
-	0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420,
-	0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20,
-	0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420,
-	0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20,
-	// Block 0x54, offset 0x1500
-	0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420,
-	0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20,
-	0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420,
-	0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20,
-	0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420,
-	0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20,
-	0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420,
-	0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20,
-	0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420,
-	0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20,
-	0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420,
-	0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20,
-	0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420,
-	0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20,
-	0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420,
-	0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420,
-	0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20,
-	0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420,
-	0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20,
-	0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420,
-	0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20,
-	0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420,
-	0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20,
-	0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420,
-	0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20,
-	0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420,
-	0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20,
-	0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420,
-	0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20,
-	0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420,
-	0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20,
-	// Block 0x56, offset 0x1580
-	0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420,
-	0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20,
-	0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420,
-	0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20,
-	0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420,
-	0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20,
-	0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420,
-	0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20,
-	0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420,
-	0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20,
-	0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420,
-	0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20,
-	0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420,
-	0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20,
-	0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420,
-	0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420,
-	0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20,
-	0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420,
-	0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20,
-	0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620,
-	0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20,
-	0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220,
-	0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20,
-	0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220,
-	0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20,
-	0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420,
-	0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20,
-	0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420,
-	0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20,
-	0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420,
-	0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20,
-	// Block 0x58, offset 0x1600
-	0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420,
-	0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20,
-	0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420,
-	0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20,
-	0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420,
-	0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20,
-	0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420,
-	0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20,
-	0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420,
-	0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20,
-	0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420,
-	0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20,
-	0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420,
-	0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20,
-	0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420,
-	0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20,
-	// Block 0x59, offset 0x1640
-	0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420,
-	0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20,
-	0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420,
-	0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20,
-	0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420,
-	0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20,
-	0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420,
-	0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20,
-	0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420,
-	0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20,
-	0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420,
-	0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20,
-	0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420,
-	0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20,
-	0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420,
-	0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20,
-	// Block 0x5a, offset 0x1680
-	0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420,
-	0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20,
-	0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420,
-	0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20,
-	0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420,
-	0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20,
-	0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420,
-	0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20,
-	0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420,
-	0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20,
-	0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420,
-	0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820,
-	0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020,
-	0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820,
-	0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020,
-	0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820,
-	// Block 0x5b, offset 0x16c0
-	0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20,
-	0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220,
-	0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20,
-	0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220,
-	0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20,
-	0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220,
-	0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820,
-	0x16dc: 0x40040a20,
-	0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420,
-	0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036,
-	0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220,
-	0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220,
-	0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048,
-	0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20,
-	0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057,
-	0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060,
-	// Block 0x5c, offset 0x1700
-	0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420,
-	0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820,
-	0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075,
-	0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020,
-	0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a,
-	0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620,
-	0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b,
-	0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20,
-	0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820,
-	0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1,
-	0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220,
-	0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096,
-	0x1730: 0xe0002039,
-	// Block 0x5d, offset 0x1740
-	0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20,
-	0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420,
-	0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20,
-	0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220,
-	0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20,
-	0x1754: 0x8209264e,
-	0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420,
-	0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20,
-	0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420,
-	0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20,
-	0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420,
-	0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20,
-	// Block 0x5e, offset 0x1780
-	0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20,
-	0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620,
-	0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20,
-	0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620,
-	0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20,
-	0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620,
-	0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20,
-	0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620,
-	0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20,
-	0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220,
-	// Block 0x5f, offset 0x17c0
-	0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20,
-	0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220,
-	0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20,
-	0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220,
-	0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20,
-	0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220,
-	0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20,
-	0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220,
-	0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20,
-	0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420,
-	0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20,
-	0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420,
-	0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20,
-	0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020,
-	0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820,
-	0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020,
-	// Block 0x60, offset 0x1800
-	0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820,
-	0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402,
-	0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02,
-	0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02,
-	0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000,
-	0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20,
-	0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620,
-	0x181c: 0x404fea20, 0x181d: 0xae605f02,
-	0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b,
-	0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d,
-	0x1828: 0xe00007f9, 0x1829: 0xe000089e,
-	0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e,
-	0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750,
-	0x1838: 0xe00007fc, 0x1839: 0xe00008a1,
-	// Block 0x61, offset 0x1840
-	0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020,
-	0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420,
-	0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000,
-	0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20,
-	0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d,
-	0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f,
-	0x1858: 0xe000080b, 0x1859: 0xe00008b0,
-	0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20,
-	0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220,
-	0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420,
-	0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20,
-	0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420,
-	0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220,
-	0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20,
-	0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020,
-	// Block 0x62, offset 0x1880
-	0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620,
-	0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420,
-	0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220,
-	0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20,
-	0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620,
-	0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220,
-	0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20,
-	0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20,
-	0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420,
-	0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220,
-	0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20,
-	0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420,
-	0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820,
-	0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20,
-	// Block 0x63, offset 0x18c0
-	0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20,
-	0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20,
-	0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220,
-	0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820,
-	0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620,
-	0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420,
-	0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20,
-	0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620,
-	0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20,
-	0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820,
-	0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20,
-	0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020,
-	0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820,
-	0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020,
-	0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820,
-	// Block 0x64, offset 0x1900
-	0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020,
-	0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820,
-	0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020,
-	0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820,
-	0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020,
-	0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820,
-	0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020,
-	0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820,
-	0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020,
-	0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820,
-	0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020,
-	0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820,
-	0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020,
-	0x1934: 0x405aa220, 0x1935: 0x405aa420,
-	// Block 0x65, offset 0x1940
-	0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820,
-	0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020,
-	0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820,
-	0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020,
-	0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820,
-	0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020,
-	0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820,
-	0x195c: 0x404c4a20,
-	0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220,
-	0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20,
-	0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220,
-	0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20,
-	0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220,
-	0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102,
-	// Block 0x66, offset 0x1980
-	0x1980: 0x4007a620,
-	0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f,
-	0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3,
-	0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877,
-	0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620,
-	0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20,
-	0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620,
-	0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20,
-	0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620,
-	0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20,
-	0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620,
-	0x19ac: 0x40506820, 0x19ad: 0x40506a20,
-	0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220,
-	0x19b4: 0x40507420,
-	// Block 0x67, offset 0x19c0
-	0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20,
-	0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420,
-	0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20,
-	0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420,
-	0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20,
-	0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420,
-	0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20,
-	0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420,
-	0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20,
-	0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420,
-	0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20,
-	0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420,
-	0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20,
-	0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420,
-	0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20,
-	// Block 0x68, offset 0x1a00
-	0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420,
-	0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20,
-	0x1a08: 0x4050fe20, 0x1a09: 0x40510020,
-	0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417,
-	0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729,
-	0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225,
-	0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025,
-	0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820,
-	0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020,
-	0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820,
-	0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020,
-	0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820,
-	0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020,
-	0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820,
-	0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020,
-	// Block 0x69, offset 0x1a40
-	0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20,
-	0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220,
-	0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20,
-	0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220,
-	0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20,
-	0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1,
-	0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20,
-	0x1a5e: 0x40036620, 0x1a5f: 0x40036820,
-	0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820,
-	0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020,
-	0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820,
-	0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020,
-	0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820,
-	0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020,
-	0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820,
-	0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020,
-	// Block 0x6a, offset 0x1a80
-	0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820,
-	0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020,
-	0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820,
-	0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020,
-	0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20,
-	0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420,
-	0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884,
-	0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20,
-	0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20,
-	0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420,
-	0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20,
-	0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20,
-	0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020,
-	0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902,
-	0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02,
-	0x1abc: 0xae611e02, 0x1abf: 0xadc00000,
-	// Block 0x6b, offset 0x1ac0
-	0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a,
-	0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c,
-	0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d,
-	0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d,
-	0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f,
-	0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880,
-	0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820,
-	0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20,
-	0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020,
-	0x1aec: 0x4005d020, 0x1aed: 0x4005d220,
-	// Block 0x6c, offset 0x1b00
-	0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702,
-	0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821,
-	0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821,
-	0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20,
-	0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220,
-	0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20,
-	0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620,
-	0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20,
-	0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820,
-	0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020,
-	0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20,
-	0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220,
-	0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020,
-	0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620,
-	0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20,
-	0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821,
-	// Block 0x6d, offset 0x1b40
-	0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20,
-	0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620,
-	0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20,
-	0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444,
-	0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756,
-	0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20,
-	0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420,
-	0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620,
-	0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20,
-	0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000,
-	0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000,
-	0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000,
-	0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20,
-	0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420,
-	0x1b7c: 0x40081620,
-	// Block 0x6e, offset 0x1b80
-	0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420,
-	0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20,
-	0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620,
-	0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20,
-	0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620,
-	0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20,
-	0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20,
-	0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20,
-	0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420,
-	0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20,
-	0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419,
-	0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020,
-	0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a,
-	0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c,
-	0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020,
-	0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499,
-	// Block 0x6f, offset 0x1bc0
-	0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84,
-	0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220,
-	0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620,
-	0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884,
-	0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84,
-	0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284,
-	0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620,
-	0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84,
-	0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220,
-	0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820,
-	0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84,
-	0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084,
-	0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4,
-	0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220,
-	// Block 0x70, offset 0x1c00
-	0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20,
-	0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420,
-	0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220,
-	0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20,
-	0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220,
-	0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20,
-	0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420,
-	0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20,
-	0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620,
-	0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20,
-	0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420,
-	0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20,
-	0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420,
-	0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102,
-	0x1c3b: 0x40031420,
-	0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220,
-	// Block 0x71, offset 0x1c40
-	0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c,
-	0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e,
-	0x1c48: 0xe00007ea, 0x1c49: 0xe000088f,
-	0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20,
-	0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450,
-	0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762,
-	0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020,
-	0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820,
-	0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020,
-	0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820,
-	0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020,
-	0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820,
-	0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020,
-	0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820,
-	0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020,
-	0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20,
-	// Block 0x72, offset 0x1c80
-	0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20,
-	0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420,
-	0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000,
-	0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000,
-	0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000,
-	0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000,
-	0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000,
-	0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000,
-	0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084,
-	0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084,
-	0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402,
-	0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420,
-	// Block 0x73, offset 0x1cc0
-	0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420,
-	0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020,
-	0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620,
-	0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20,
-	0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820,
-	0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20,
-	0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420,
-	0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20,
-	0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20,
-	0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420,
-	0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20,
-	0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220,
-	0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d,
-	0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d,
-	0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20,
-	0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d,
-	// Block 0x74, offset 0x1d00
-	0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94,
-	0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94,
-	0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294,
-	0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94,
-	0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94,
-	0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94,
-	0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94,
-	0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94,
-	0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95,
-	0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695,
-	0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20,
-	0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20,
-	0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20,
-	0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420,
-	0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20,
-	0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20,
-	// Block 0x75, offset 0x1d40
-	0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220,
-	0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620,
-	0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020,
-	0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20,
-	0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20,
-	0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620,
-	0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294,
-	0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94,
-	0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894,
-	0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94,
-	0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94,
-	0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894,
-	0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494,
-	0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494,
-	0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94,
-	0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94,
-	// Block 0x76, offset 0x1d80
-	0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02,
-	0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02,
-	0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02,
-	0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002,
-	0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4,
-	0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50,
-	0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699,
-	0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745,
-	0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5,
-	0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895,
-	0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002,
-	// Block 0x77, offset 0x1dc0
-	0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f,
-	0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b,
-	0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89,
-	0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1,
-	0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b,
-	0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49,
-	0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f,
-	0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89,
-	0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd,
-	0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7,
-	0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f,
-	0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46,
-	0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8,
-	0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb,
-	0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef,
-	0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b,
-	// Block 0x78, offset 0x1e00
-	0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27,
-	0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78,
-	0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e,
-	0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1,
-	0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31,
-	0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa,
-	0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1,
-	0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff,
-	0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50,
-	0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36,
-	0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90,
-	0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae,
-	0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090,
-	0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096,
-	0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042,
-	0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac,
-	// Block 0x79, offset 0x1e40
-	0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9,
-	0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4,
-	0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9,
-	0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120,
-	0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150,
-	0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d,
-	0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70,
-	0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620,
-	0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986,
-	0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c,
-	0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934,
-	0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe,
-	0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916,
-	0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e,
-	0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59,
-	0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7,
-	// Block 0x7a, offset 0x1e80
-	0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f,
-	0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71,
-	0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75,
-	0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41,
-	0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1,
-	0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9,
-	0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59,
-	0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71,
-	0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79,
-	0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a,
-	0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a,
-	0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072,
-	0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105,
-	0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c,
-	0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07,
-	0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020,
-	// Block 0x7b, offset 0x1ec0
-	0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1,
-	0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3,
-	0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5,
-	0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7,
-	0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e,
-	0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236,
-	0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242,
-	0x1edc: 0xe0001224, 0x1edd: 0xe000123a,
-	0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae,
-	0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0,
-	0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2,
-	0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4,
-	0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327,
-	0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f,
-	0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b,
-	0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333,
-	// Block 0x7c, offset 0x1f00
-	0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390,
-	0x1f04: 0xe0001372, 0x1f05: 0xe0001388,
-	0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394,
-	0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c,
-	0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca,
-	0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2,
-	0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce,
-	0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6,
-	0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463,
-	0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475,
-	0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467,
-	0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479,
-	0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246,
-	0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337,
-	0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da,
-	0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f,
-	// Block 0x7d, offset 0x1f40
-	0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9,
-	0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db,
-	0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce,
-	0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0,
-	0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6,
-	0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8,
-	0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb,
-	0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd,
-	0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b,
-	0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d,
-	0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470,
-	0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482,
-	0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214,
-	0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a,
-	0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0,
-	0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620,
-	// Block 0x7e, offset 0x1f80
-	0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5,
-	0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1,
-	0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd,
-	0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba,
-	0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352,
-	0x1f96: 0xe0001349, 0x1f97: 0xe000135a,
-	0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a,
-	0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3,
-	0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5,
-	0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd,
-	0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd,
-	0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20,
-	0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa,
-	0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6,
-	0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492,
-	0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820,
-	// Block 0x7f, offset 0x1fc0
-	0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284,
-	0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b,
-	0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000,
-	0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000,
-	0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20,
-	0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820,
-	0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20,
-	0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820,
-	0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420,
-	0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620,
-	0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000,
-	0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b,
-	0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04,
-	0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404,
-	0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820,
-	0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20,
-	// Block 0x80, offset 0x2000
-	0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820,
-	0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04,
-	0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420,
-	0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620,
-	0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420,
-	0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6,
-	0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620,
-	0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284,
-	0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000,
-	0x2024: 0xa0000000,
-	0x202a: 0xa0000000, 0x202b: 0xa0000000,
-	0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000,
-	0x2030: 0x0029cc94, 0x2031: 0x002d9a94,
-	0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94,
-	0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94,
-	0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94,
-	// Block 0x81, offset 0x2040
-	0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295,
-	0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95,
-	0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95,
-	0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695,
-	0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695,
-	0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295,
-	0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695,
-	0x205c: 0x00302c95,
-	0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20,
-	0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620,
-	0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20,
-	0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420,
-	0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20,
-	0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420,
-	0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20,
-	// Block 0x82, offset 0x2080
-	0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02,
-	0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002,
-	0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102,
-	0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202,
-	0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202,
-	0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502,
-	0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102,
-	0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002,
-	0x20b0: 0xae605f02,
-	// Block 0x83, offset 0x20c0
-	0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04,
-	0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a,
-	0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b,
-	0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202,
-	0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285,
-	0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220,
-	0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b,
-	0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820,
-	0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20,
-	0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20,
-	0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d,
-	0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885,
-	0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b,
-	0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484,
-	0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95,
-	0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b,
-	// Block 0x84, offset 0x2100
-	0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20,
-	0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885,
-	0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20,
-	0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220,
-	0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb,
-	0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab,
-	0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf,
-	0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e,
-	0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a,
-	0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb,
-	0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a,
-	0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a,
-	0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04,
-	0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6,
-	0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404,
-	0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284,
-	// Block 0x85, offset 0x2140
-	0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88,
-	0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420,
-	0x2148: 0x40288620, 0x2149: 0xe00001e2,
-	0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20,
-	0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220,
-	0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9,
-	0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20,
-	0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620,
-	0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20,
-	0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620,
-	0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20,
-	0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420,
-	0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20,
-	0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420,
-	0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20,
-	// Block 0x86, offset 0x2180
-	0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420,
-	0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20,
-	0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420,
-	0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2,
-	0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20,
-	0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620,
-	0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20,
-	0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620,
-	0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20,
-	0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620,
-	0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20,
-	0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620,
-	0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20,
-	0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620,
-	0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20,
-	0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620,
-	// Block 0x87, offset 0x21c0
-	0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20,
-	0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420,
-	0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20,
-	0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220,
-	0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220,
-	0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20,
-	0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420,
-	0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020,
-	0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820,
-	0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20,
-	0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420,
-	0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04,
-	0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20,
-	0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420,
-	0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20,
-	0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420,
-	// Block 0x88, offset 0x2200
-	0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20,
-	0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb,
-	0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420,
-	0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20,
-	0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420,
-	0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20,
-	0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420,
-	0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20,
-	0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020,
-	0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820,
-	0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020,
-	0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7,
-	0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620,
-	0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20,
-	0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20,
-	0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620,
-	// Block 0x89, offset 0x2240
-	0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20,
-	0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20,
-	0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220,
-	0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20,
-	0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220,
-	0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20,
-	0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220,
-	0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20,
-	0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220,
-	0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20,
-	0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220,
-	0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140,
-	0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20,
-	0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220,
-	0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20,
-	0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420,
-	// Block 0x8a, offset 0x2280
-	0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20,
-	0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420,
-	0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20,
-	0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420,
-	0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20,
-	0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420,
-	0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20,
-	0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420,
-	0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134,
-	0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20,
-	0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146,
-	0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420,
-	0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20,
-	0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420,
-	0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20,
-	0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420,
-	// Block 0x8b, offset 0x22c0
-	0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20,
-	0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420,
-	0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20,
-	0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420,
-	0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20,
-	0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420,
-	0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20,
-	0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420,
-	0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20,
-	0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420,
-	0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820,
-	0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020,
-	0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820,
-	0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020,
-	0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820,
-	0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020,
-	// Block 0x8c, offset 0x2300
-	0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820,
-	0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020,
-	0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820,
-	0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020,
-	0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820,
-	0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020,
-	0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820,
-	0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020,
-	0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820,
-	0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020,
-	0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820,
-	0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020,
-	0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820,
-	0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020,
-	0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820,
-	0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020,
-	// Block 0x8d, offset 0x2340
-	0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820,
-	0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020,
-	0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820,
-	0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020,
-	0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820,
-	0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020,
-	0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820,
-	0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020,
-	0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820,
-	0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020,
-	0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820,
-	0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020,
-	0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820,
-	0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020,
-	0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820,
-	0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020,
-	// Block 0x8e, offset 0x2380
-	0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820,
-	0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020,
-	0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820,
-	0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020,
-	0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820,
-	0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020,
-	0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820,
-	0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020,
-	0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820,
-	0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020,
-	0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820,
-	0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020,
-	0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820,
-	// Block 0x8f, offset 0x23c0
-	0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020,
-	0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820,
-	0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020,
-	0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820,
-	0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020,
-	0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820,
-	0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020,
-	0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820,
-	0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020,
-	0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620,
-	// Block 0x90, offset 0x2400
-	0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20,
-	0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620,
-	0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20,
-	0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486,
-	0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86,
-	0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606,
-	0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606,
-	0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606,
-	0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404,
-	0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404,
-	0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f,
-	// Block 0x91, offset 0x2440
-	0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033,
-	0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047,
-	0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04,
-	0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04,
-	0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404,
-	0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404,
-	0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404,
-	0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404,
-	0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404,
-	0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404,
-	0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404,
-	0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404,
-	0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404,
-	0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c,
-	0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c,
-	0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c,
-	// Block 0x92, offset 0x2480
-	0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c,
-	0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c,
-	0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c,
-	0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c,
-	0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286,
-	0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886,
-	0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286,
-	0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86,
-	0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86,
-	0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686,
-	0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6,
-	0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2,
-	0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe,
-	0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286,
-	0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86,
-	0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86,
-	// Block 0x93, offset 0x24c0
-	0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420,
-	0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20,
-	0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420,
-	0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20,
-	0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420,
-	0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20,
-	0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420,
-	0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20,
-	0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420,
-	0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20,
-	0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420,
-	0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20,
-	0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420,
-	0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20,
-	0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420,
-	0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20,
-	// Block 0x94, offset 0x2500
-	0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420,
-	0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20,
-	0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420,
-	0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20,
-	0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420,
-	0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20,
-	0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420,
-	0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20,
-	0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420,
-	0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20,
-	0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420,
-	0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20,
-	0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420,
-	0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20,
-	0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420,
-	0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20,
-	// Block 0x95, offset 0x2540
-	0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420,
-	0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20,
-	0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420,
-	0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20,
-	0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420,
-	0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20,
-	0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420,
-	0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20,
-	0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420,
-	0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20,
-	0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420,
-	0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20,
-	0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420,
-	0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20,
-	0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420,
-	0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20,
-	// Block 0x96, offset 0x2580
-	0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420,
-	0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20,
-	0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420,
-	0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20,
-	0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420,
-	0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20,
-	0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420,
-	0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20,
-	0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420,
-	0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20,
-	0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420,
-	0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20,
-	0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420,
-	0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20,
-	0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420,
-	0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20,
-	// Block 0x97, offset 0x25c0
-	0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420,
-	0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20,
-	0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420,
-	0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20,
-	0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420,
-	0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20,
-	0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420,
-	0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20,
-	0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420,
-	0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20,
-	0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420,
-	0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20,
-	0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820,
-	0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020,
-	0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420,
-	0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20,
-	// Block 0x98, offset 0x2600
-	0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420,
-	0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20,
-	0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420,
-	0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20,
-	0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420,
-	0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20,
-	0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420,
-	0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20,
-	0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420,
-	0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20,
-	0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420,
-	0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220,
-	0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20,
-	0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620,
-	0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20,
-	0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620,
-	// Block 0x99, offset 0x2640
-	0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20,
-	0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620,
-	0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820,
-	0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020,
-	0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220,
-	0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20,
-	0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220,
-	0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20,
-	0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220,
-	0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20,
-	0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220,
-	0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20,
-	0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220,
-	0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20,
-	0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220,
-	0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20,
-	// Block 0x9a, offset 0x2680
-	0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220,
-	0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20,
-	0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220,
-	0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20,
-	0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220,
-	0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20,
-	0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220,
-	0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20,
-	0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220,
-	0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20,
-	0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220,
-	0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20,
-	0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220,
-	0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20,
-	0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220,
-	0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20,
-	// Block 0x9b, offset 0x26c0
-	0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420,
-	0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20,
-	0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420,
-	0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20,
-	0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420,
-	0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20,
-	0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420,
-	0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20,
-	0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420,
-	0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20,
-	0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420,
-	0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20,
-	0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420,
-	0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20,
-	0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420,
-	0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20,
-	// Block 0x9c, offset 0x2700
-	0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420,
-	0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20,
-	0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420,
-	0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20,
-	0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420,
-	0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20,
-	0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420,
-	0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20,
-	0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420,
-	0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20,
-	0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20,
-	0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620,
-	0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20,
-	0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086,
-	0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886,
-	0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da,
-	// Block 0x9d, offset 0x2740
-	0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486,
-	0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86,
-	0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086,
-	0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886,
-	0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0,
-	0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420,
-	0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20,
-	0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420,
-	0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20,
-	0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420,
-	0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20,
-	0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420,
-	0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20,
-	0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420,
-	0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20,
-	0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420,
-	// Block 0x9e, offset 0x2780
-	0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20,
-	0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020,
-	0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820,
-	0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020,
-	0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820,
-	0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020,
-	0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820,
-	0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020,
-	0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820,
-	0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620,
-	0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20,
-	0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620,
-	0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420,
-	0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20,
-	0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420,
-	0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20,
-	// Block 0x9f, offset 0x27c0
-	0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20,
-	0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420,
-	0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20,
-	0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420,
-	0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20,
-	0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420,
-	0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20,
-	0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420,
-	0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20,
-	0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420,
-	0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20,
-	0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420,
-	0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20,
-	0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420,
-	0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20,
-	0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420,
-	// Block 0xa0, offset 0x2800
-	0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20,
-	0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420,
-	0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20,
-	0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420,
-	0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20,
-	0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420,
-	0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20,
-	0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420,
-	0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20,
-	0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420,
-	0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20,
-	0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420,
-	0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20,
-	0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420,
-	0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20,
-	0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420,
-	// Block 0xa1, offset 0x2840
-	0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20,
-	0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420,
-	0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20,
-	0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420,
-	0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20,
-	0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420,
-	0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20,
-	0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420,
-	0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20,
-	0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420,
-	0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20,
-	0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420,
-	0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20,
-	0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420,
-	0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20,
-	0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420,
-	// Block 0xa2, offset 0x2880
-	0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20,
-	0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420,
-	0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20,
-	0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420,
-	0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20,
-	0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420,
-	0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20,
-	0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420,
-	0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20,
-	0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420,
-	0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20,
-	0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420,
-	0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20,
-	0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420,
-	0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20,
-	0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420,
-	// Block 0xa3, offset 0x28c0
-	0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420,
-	0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20,
-	0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420,
-	0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20,
-	0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420,
-	0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20,
-	0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420,
-	0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20,
-	0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420,
-	0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20,
-	0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420,
-	0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20,
-	0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420,
-	0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20,
-	0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420,
-	0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20,
-	// Block 0xa4, offset 0x2900
-	0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420,
-	0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20,
-	0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420,
-	0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20,
-	0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420,
-	0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20,
-	0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420,
-	0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20,
-	0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420,
-	0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20,
-	0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420,
-	0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20,
-	0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420,
-	0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20,
-	0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420,
-	0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20,
-	// Block 0xa5, offset 0x2940
-	0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420,
-	0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20,
-	0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420,
-	0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20,
-	0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420,
-	0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20,
-	0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820,
-	0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020,
-	0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820,
-	0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020,
-	0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820,
-	0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020,
-	0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820,
-	0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020,
-	0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820,
-	0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020,
-	// Block 0xa6, offset 0x2980
-	0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820,
-	0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020,
-	0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820,
-	0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020,
-	0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820,
-	0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020,
-	0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20,
-	0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820,
-	0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020,
-	0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820,
-	0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020,
-	0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820,
-	0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020,
-	0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820,
-	0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020,
-	0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420,
-	// Block 0xa7, offset 0x29c0
-	0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20,
-	0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420,
-	0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20,
-	0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220,
-	0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20,
-	0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220,
-	0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20,
-	0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220,
-	0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20,
-	0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220,
-	0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20,
-	0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220,
-	0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20,
-	0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220,
-	0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20,
-	0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220,
-	// Block 0xa8, offset 0x2a00
-	0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20,
-	0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220,
-	0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20,
-	0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220,
-	0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20,
-	0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220,
-	0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20,
-	0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220,
-	0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20,
-	0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220,
-	0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20,
-	0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220,
-	0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20,
-	0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20,
-	0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420,
-	0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20,
-	// Block 0xa9, offset 0x2a40
-	0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420,
-	0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20,
-	0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420,
-	0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20,
-	0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420,
-	0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20,
-	0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420,
-	0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20,
-	0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420,
-	0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20,
-	0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420,
-	0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20,
-	0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420,
-	0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20,
-	0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420,
-	0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20,
-	// Block 0xaa, offset 0x2a80
-	0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420,
-	0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20,
-	0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420,
-	0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20,
-	0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420,
-	0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20,
-	0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420,
-	0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20,
-	0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220,
-	0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20,
-	0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220,
-	0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20,
-	0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220,
-	0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20,
-	0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220,
-	0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20,
-	// Block 0xab, offset 0x2ac0
-	0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220,
-	0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20,
-	0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220,
-	0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20,
-	0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220,
-	0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20,
-	0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220,
-	0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20,
-	0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220,
-	0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20,
-	0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220,
-	0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20,
-	0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220,
-	0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20,
-	0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220,
-	0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20,
-	// Block 0xac, offset 0x2b00
-	0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220,
-	0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20,
-	0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220,
-	0x2b0c: 0x40172420,
-	0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20,
-	0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420,
-	0x2b18: 0x40173620, 0x2b19: 0x40173820,
-	// Block 0xad, offset 0x2b40
-	0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88,
-	0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688,
-	0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88,
-	0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688,
-	0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88,
-	0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688,
-	0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88,
-	0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688,
-	0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88,
-	0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688,
-	0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88,
-	0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488,
-	0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20,
-	0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620,
-	0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20,
-	0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620,
-	// Block 0xae, offset 0x2b80
-	0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20,
-	0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620,
-	0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20,
-	0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620,
-	0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20,
-	0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620,
-	0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20,
-	0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420,
-	0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688,
-	0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888,
-	0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088,
-	0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088,
-	0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20,
-	0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420,
-	0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620,
-	0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888,
-	// Block 0xaf, offset 0x2bc0
-	0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20,
-	0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020,
-	0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620,
-	0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20,
-	0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20,
-	0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420,
-	0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820,
-	0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020,
-	0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420,
-	0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820,
-	0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20,
-	0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020,
-	0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820,
-	0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420,
-	0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20,
-	0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420,
-	// Block 0xb0, offset 0x2c00
-	0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20,
-	0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020,
-	0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20,
-	0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020,
-	0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420,
-	0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20,
-	0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220,
-	0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20,
-	0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020,
-	0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20,
-	0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88,
-	0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02,
-	0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620,
-	0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620,
-	0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820,
-	// Block 0xb1, offset 0x2c40
-	0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420,
-	0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820,
-	0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820,
-	0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20,
-	0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020,
-	0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020,
-	0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020,
-	0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420,
-	0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20,
-	0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220,
-	0x2c6d: 0x40383c20,
-	0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220,
-	0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20,
-	0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220,
-	0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20,
-	// Block 0xb2, offset 0x2c80
-	0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420,
-	0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20,
-	0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420,
-	0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20,
-	0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420,
-	0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20,
-	0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620,
-	0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20,
-	0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620,
-	0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620,
-	0x2caf: 0x403c2c20,
-	0x2cb0: 0x4005e620,
-	0x2cbf: 0xa0900000,
-	// Block 0xb3, offset 0x2cc0
-	0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20,
-	0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20,
-	0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20,
-	0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20,
-	0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620,
-	0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20,
-	0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20,
-	0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420,
-	0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20,
-	0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220,
-	0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20,
-	0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020,
-	0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820,
-	0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20,
-	// Block 0xb4, offset 0x2d00
-	0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620,
-	0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20,
-	0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420,
-	0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20,
-	0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220,
-	0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820,
-	0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020,
-	0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620,
-	0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5,
-	0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42,
-	0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87,
-	0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada,
-	0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33,
-	0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9,
-	0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c,
-	0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a,
-	// Block 0xb5, offset 0x2d40
-	0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620,
-	0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20,
-	0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020,
-	0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420,
-	0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20,
-	0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620,
-	0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620,
-	0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20,
-	0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20,
-	0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620,
-	0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020,
-	0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020,
-	0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20,
-	0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20,
-	0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220,
-	// Block 0xb6, offset 0x2d80
-	0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484,
-	0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a,
-	0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413,
-	0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684,
-	0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484,
-	0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428,
-	0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284,
-	0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84,
-	0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884,
-	0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c,
-	0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445,
-	0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284,
-	0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451,
-	0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a,
-	0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d,
-	0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466,
-	// Block 0xb7, offset 0x2dc0
-	0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084,
-	0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c,
-	0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84,
-	0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478,
-	0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84,
-	0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e,
-	0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84,
-	0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084,
-	0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487,
-	0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d,
-	0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490,
-	0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496,
-	0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84,
-	// Block 0xb8, offset 0x2e00
-	0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84,
-	0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084,
-	0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684,
-	0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084,
-	0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284,
-	0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284,
-	0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84,
-	0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84,
-	0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84,
-	0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084,
-	0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084,
-	0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84,
-	0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484,
-	0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684,
-	0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684,
-	0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684,
-	// Block 0xb9, offset 0x2e40
-	0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84,
-	0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84,
-	0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084,
-	0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684,
-	0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884,
-	0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84,
-	0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284,
-	0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284,
-	0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84,
-	0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484,
-	0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84,
-	0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684,
-	0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884,
-	0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084,
-	0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84,
-	0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684,
-	// Block 0xba, offset 0x2e80
-	0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484,
-	0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684,
-	0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084,
-	0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884,
-	0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484,
-	0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84,
-	0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084,
-	0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684,
-	0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284,
-	0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84,
-	0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284,
-	0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484,
-	0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684,
-	0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84,
-	0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084,
-	0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84,
-	// Block 0xbb, offset 0x2ec0
-	0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84,
-	0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684,
-	0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284,
-	0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084,
-	0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84,
-	0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084,
-	0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020,
-	0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820,
-	0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020,
-	// Block 0xbc, offset 0x2f00
-	0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220,
-	0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3,
-	0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220,
-	0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20,
-	0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20,
-	0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620,
-	0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20,
-	0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20,
-	0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459,
-	0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b,
-	0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302,
-	0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702,
-	0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020,
-	0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220,
-	0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20,
-	0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620,
-	// Block 0xbd, offset 0x2f40
-	0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d,
-	0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d,
-	0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e,
-	0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e,
-	0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e,
-	0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e,
-	0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e,
-	0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e,
-	0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d,
-	0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240,
-	0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e,
-	0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e,
-	0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a,
-	0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0,
-	0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e,
-	0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e,
-	// Block 0xbe, offset 0x2f80
-	0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d,
-	0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d,
-	0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e,
-	0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e,
-	0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e,
-	0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d,
-	0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20,
-	0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616,
-	0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f,
-	0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f,
-	0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291,
-	0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691,
-	0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91,
-	0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91,
-	0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291,
-	0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691,
-	// Block 0xbf, offset 0x2fc0
-	0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f,
-	0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243,
-	0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291,
-	0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91,
-	0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d,
-	0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3,
-	0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291,
-	0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691,
-	0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f,
-	0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f,
-	0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91,
-	0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091,
-	0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891,
-	0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a,
-	0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20,
-	0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616,
-	// Block 0xc0, offset 0x3000
-	0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20,
-	0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820,
-	0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420,
-	0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20,
-	0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620,
-	0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420,
-	0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020,
-	0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820,
-	0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820,
-	0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020,
-	0x302c: 0x4065fc20, 0x302d: 0x40663e20,
-	0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884,
-	0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284,
-	0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684,
-	0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84,
-	// Block 0xc1, offset 0x3040
-	0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84,
-	0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284,
-	0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84,
-	0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884,
-	0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084,
-	0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884,
-	0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084,
-	0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884,
-	0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084,
-	0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284,
-	0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84,
-	0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84,
-	0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84,
-	0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84,
-	0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884,
-	0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84,
-	// Block 0xc2, offset 0x3080
-	0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884,
-	0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84,
-	0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84,
-	0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884,
-	0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894,
-	0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94,
-	0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294,
-	0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494,
-	0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d,
-	0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389,
-	0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b,
-	0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392,
-	0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398,
-	0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499,
-	0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020,
-	// Block 0xc3, offset 0x30c0
-	0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820,
-	0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020,
-	0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820,
-	0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020,
-	0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820,
-	0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020,
-	0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820,
-	0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020,
-	0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820,
-	0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f,
-	0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f,
-	0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f,
-	0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f,
-	// Block 0xc4, offset 0x3100
-	0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404,
-	0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404,
-	0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404,
-	0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051,
-	0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065,
-	0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d,
-	0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1,
-	0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c,
-	0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404,
-	0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404,
-	0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404,
-	0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404,
-	0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404,
-	0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404,
-	0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404,
-	0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404,
-	// Block 0xc5, offset 0x3140
-	0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404,
-	0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86,
-	0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d,
-	0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841,
-	0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606,
-	0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606,
-	0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606,
-	0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606,
-	0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686,
-	0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286,
-	0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86,
-	0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606,
-	0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606,
-	0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606,
-	0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606,
-	0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20,
-	// Block 0xc6, offset 0x3180
-	0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686,
-	0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686,
-	0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686,
-	0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86,
-	0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86,
-	0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86,
-	0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686,
-	0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086,
-	0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686,
-	0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86,
-	0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86,
-	0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886,
-	0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606,
-	0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606,
-	0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606,
-	0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606,
-	// Block 0xc7, offset 0x31c0
-	0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04,
-	0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04,
-	0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404,
-	0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14,
-	0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93,
-	0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693,
-	0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93,
-	0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693,
-	0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93,
-	0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693,
-	0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93,
-	0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693,
-	0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93,
-	0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893,
-	0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093,
-	0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693,
-	// Block 0xc8, offset 0x3200
-	0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d,
-	0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b,
-	0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170,
-	0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183,
-	0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d,
-	0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2,
-	0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1,
-	0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5,
-	0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f,
-	0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c,
-	0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264,
-	0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d,
-	0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad,
-	0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da,
-	0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9,
-	0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c,
-	// Block 0xc9, offset 0x3240
-	0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311,
-	0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325,
-	0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c,
-	0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b,
-	0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e,
-	0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d,
-	0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04,
-	0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04,
-	0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404,
-	0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404,
-	0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404,
-	0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404,
-	0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d,
-	0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c,
-	0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c,
-	0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431,
-	// Block 0xca, offset 0x3280
-	0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c,
-	0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d,
-	0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c,
-	0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c,
-	0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3,
-	0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c,
-	0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c,
-	0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e,
-	0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42,
-	0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d,
-	0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a,
-	0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15,
-	0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c,
-	0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c,
-	0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c,
-	0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d,
-	// Block 0xcb, offset 0x32c0
-	0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d,
-	0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a,
-	0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d,
-	0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c,
-	0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c,
-	0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d,
-	0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c,
-	0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8,
-	0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04,
-	0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04,
-	0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404,
-	0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404,
-	0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404,
-	0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404,
-	0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404,
-	0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf,
-	// Block 0xcc, offset 0x3300
-	0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820,
-	0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020,
-	0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820,
-	0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020,
-	0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820,
-	0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020,
-	0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820,
-	0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020,
-	0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820,
-	0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020,
-	0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820,
-	0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020,
-	0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820,
-	0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020,
-	0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820,
-	0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020,
-	// Block 0xcd, offset 0x3340
-	0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620,
-	0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20,
-	0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620,
-	0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20,
-	0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620,
-	0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20,
-	0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620,
-	0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20,
-	0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620,
-	0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20,
-	0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620,
-	0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20,
-	0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620,
-	0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20,
-	0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620,
-	0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20,
-	// Block 0xce, offset 0x3380
-	0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620,
-	0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20,
-	0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620,
-	0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20,
-	0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620,
-	0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20,
-	0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620,
-	0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20,
-	0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620,
-	0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20,
-	0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620,
-	0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20,
-	0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620,
-	0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20,
-	0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620,
-	0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20,
-	// Block 0xcf, offset 0x33c0
-	0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620,
-	0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20,
-	0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620,
-	0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20,
-	0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620,
-	0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20,
-	0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620,
-	0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20,
-	0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620,
-	0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20,
-	0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620,
-	0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20,
-	0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620,
-	0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20,
-	0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620,
-	0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20,
-	// Block 0xd0, offset 0x3400
-	0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620,
-	0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20,
-	0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620,
-	0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20,
-	0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620,
-	0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20,
-	0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620,
-	0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20,
-	0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620,
-	0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20,
-	0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620,
-	0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20,
-	0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620,
-	0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20,
-	0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620,
-	0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20,
-	// Block 0xd1, offset 0x3440
-	0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620,
-	0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20,
-	0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620,
-	0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20,
-	0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620,
-	0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20,
-	0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620,
-	0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20,
-	0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620,
-	0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20,
-	0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620,
-	0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20,
-	0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620,
-	0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20,
-	0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620,
-	0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20,
-	// Block 0xd2, offset 0x3480
-	0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620,
-	0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20,
-	0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620,
-	0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20,
-	0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620,
-	0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20,
-	0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620,
-	0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20,
-	0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620,
-	0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20,
-	0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620,
-	0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20,
-	0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620,
-	0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20,
-	0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620,
-	0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20,
-	// Block 0xd3, offset 0x34c0
-	0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620,
-	0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20,
-	0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620,
-	0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20,
-	0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620,
-	0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20,
-	0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620,
-	0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20,
-	0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620,
-	0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20,
-	0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620,
-	0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20,
-	0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620,
-	0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20,
-	0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620,
-	0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20,
-	// Block 0xd4, offset 0x3500
-	0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620,
-	0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20,
-	0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620,
-	0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20,
-	0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620,
-	0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20,
-	0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620,
-	0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20,
-	0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620,
-	0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20,
-	0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620,
-	0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20,
-	0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620,
-	0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20,
-	0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620,
-	0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20,
-	// Block 0xd5, offset 0x3540
-	0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620,
-	0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20,
-	0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620,
-	0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20,
-	0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620,
-	0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20,
-	0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620,
-	0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20,
-	0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620,
-	0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20,
-	0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620,
-	0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20,
-	0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620,
-	0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20,
-	0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620,
-	0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20,
-	// Block 0xd6, offset 0x3580
-	0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620,
-	0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20,
-	0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620,
-	0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20,
-	0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620,
-	0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20,
-	0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620,
-	0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20,
-	0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620,
-	0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20,
-	0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620,
-	0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20,
-	0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620,
-	0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20,
-	0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620,
-	0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20,
-	// Block 0xd7, offset 0x35c0
-	0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620,
-	0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20,
-	0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620,
-	0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20,
-	0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620,
-	0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20,
-	0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620,
-	0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20,
-	0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620,
-	0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20,
-	0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620,
-	0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20,
-	0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620,
-	0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20,
-	0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620,
-	0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20,
-	// Block 0xd8, offset 0x3600
-	0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620,
-	0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20,
-	0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620,
-	0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20,
-	0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620,
-	0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20,
-	0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620,
-	0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20,
-	0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620,
-	0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20,
-	0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620,
-	0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20,
-	0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620,
-	0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20,
-	0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620,
-	0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20,
-	// Block 0xd9, offset 0x3640
-	0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620,
-	0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20,
-	0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620,
-	0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20,
-	0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620,
-	0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20,
-	0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620,
-	0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20,
-	0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620,
-	0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20,
-	0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620,
-	0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20,
-	0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620,
-	0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20,
-	0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620,
-	0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20,
-	// Block 0xda, offset 0x3680
-	0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620,
-	0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20,
-	0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620,
-	0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20,
-	0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620,
-	0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20,
-	0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620,
-	0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20,
-	0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620,
-	0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20,
-	0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620,
-	0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20,
-	0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620,
-	0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20,
-	0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620,
-	0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20,
-	// Block 0xdb, offset 0x36c0
-	0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620,
-	0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20,
-	0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620,
-	0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20,
-	0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620,
-	0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20,
-	0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620,
-	0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20,
-	0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620,
-	0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20,
-	0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620,
-	0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20,
-	0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620,
-	0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20,
-	0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620,
-	0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20,
-	// Block 0xdc, offset 0x3700
-	0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620,
-	0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20,
-	0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620,
-	0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20,
-	0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620,
-	0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20,
-	0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620,
-	0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20,
-	0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620,
-	0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20,
-	0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620,
-	0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20,
-	0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620,
-	0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20,
-	0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620,
-	0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20,
-	// Block 0xdd, offset 0x3740
-	0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620,
-	0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20,
-	0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620,
-	0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20,
-	0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620,
-	0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20,
-	0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620,
-	0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20,
-	0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620,
-	0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20,
-	0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620,
-	0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20,
-	0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620,
-	0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20,
-	0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620,
-	0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20,
-	// Block 0xde, offset 0x3780
-	0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620,
-	0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20,
-	0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620,
-	0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20,
-	0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620,
-	0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20,
-	0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620,
-	0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20,
-	0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620,
-	0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20,
-	0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620,
-	0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20,
-	0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620,
-	0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20,
-	0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620,
-	0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20,
-	// Block 0xdf, offset 0x37c0
-	0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620,
-	0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20,
-	0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620,
-	0x37cc: 0x406f5820,
-	0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620,
-	0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20,
-	0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620,
-	0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20,
-	0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620,
-	0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20,
-	0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620,
-	0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20,
-	0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620,
-	0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20,
-	0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620,
-	0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20,
-	// Block 0xe0, offset 0x3800
-	0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620,
-	0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20,
-	0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20,
-	0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420,
-	0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20,
-	0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420,
-	0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20,
-	0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420,
-	0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20,
-	0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420,
-	0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20,
-	0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420,
-	0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020,
-	0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20,
-	// Block 0xe1, offset 0x3840
-	0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620,
-	0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20,
-	0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620,
-	0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20,
-	0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620,
-	0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20,
-	0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620,
-	0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20,
-	0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620,
-	0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20,
-	0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620,
-	0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20,
-	0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620,
-	0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20,
-	0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620,
-	0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20,
-	// Block 0xe2, offset 0x3880
-	0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620,
-	0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20,
-	0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620,
-	0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20,
-	0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620,
-	0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20,
-	0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620,
-	0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20,
-	0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620,
-	0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20,
-	0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620,
-	0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20,
-	0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620,
-	0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20,
-	0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620,
-	0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20,
-	// Block 0xe3, offset 0x38c0
-	0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620,
-	0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20,
-	0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620,
-	0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20,
-	0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620,
-	0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20,
-	0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620,
-	0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20,
-	0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620,
-	0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20,
-	0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620,
-	0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20,
-	0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620,
-	0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20,
-	0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620,
-	0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20,
-	// Block 0xe4, offset 0x3900
-	0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620,
-	0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20,
-	0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620,
-	0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20,
-	0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620,
-	0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20,
-	0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620,
-	0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20,
-	0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620,
-	0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20,
-	0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620,
-	0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20,
-	0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620,
-	0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20,
-	0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620,
-	0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20,
-	// Block 0xe5, offset 0x3940
-	0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620,
-	0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20,
-	0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620,
-	0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820,
-	0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb,
-	0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107,
-	0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113,
-	0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f,
-	0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453,
-	0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765,
-	0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284,
-	// Block 0xe6, offset 0x3980
-	0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20,
-	0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420,
-	0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220,
-	0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20,
-	0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620,
-	0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220,
-	0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820,
-	0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420,
-	0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20,
-	0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820,
-	0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84,
-	0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402,
-	0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020,
-	0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9,
-	0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0,
-	0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220,
-	// Block 0xe7, offset 0x39c0
-	0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220,
-	0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220,
-	0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020,
-	0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20,
-	0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020,
-	0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420,
-	0x39df: 0x84e61b67,
-	0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020,
-	0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820,
-	0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020,
-	0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820,
-	0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020,
-	0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820,
-	0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020,
-	0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820,
-	// Block 0xe8, offset 0x3a00
-	0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020,
-	0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820,
-	0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020,
-	0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820,
-	0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020,
-	0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820,
-	0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020,
-	0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820,
-	0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020,
-	0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820,
-	0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020,
-	0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820,
-	0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220,
-	0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20,
-	// Block 0xe9, offset 0x3a40
-	0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020,
-	0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820,
-	0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020,
-	0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820,
-	0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020,
-	0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820,
-	0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020,
-	0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820,
-	0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420,
-	0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20,
-	0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20,
-	0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220,
-	0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc,
-	0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02,
-	0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11,
-	0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020,
-	// Block 0xea, offset 0x3a80
-	0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620,
-	0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220,
-	0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820,
-	0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e,
-	0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620,
-	0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20,
-	0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20,
-	0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820,
-	0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220,
-	0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220,
-	0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20,
-	0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220,
-	0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20,
-	0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220,
-	0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92,
-	0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620,
-	// Block 0xeb, offset 0x3ac0
-	0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05,
-	0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4,
-	0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688,
-	0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20,
-	0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20,
-	0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2,
-	0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf,
-	0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088,
-	// Block 0xec, offset 0x3b00
-	0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020,
-	0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20,
-	// Block 0xed, offset 0x3b40
-	0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020,
-	0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820,
-	0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302,
-	0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620,
-	0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20,
-	0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620,
-	0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20,
-	0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620,
-	0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20,
-	0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620,
-	0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620,
-	0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20,
-	0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20,
-	0x3b78: 0x4027f020, 0x3b79: 0x40075c20,
-	// Block 0xee, offset 0x3b80
-	0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020,
-	0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820,
-	0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820,
-	0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020,
-	0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820,
-	0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220,
-	0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420,
-	0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820,
-	0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020,
-	0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20,
-	0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20,
-	0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820,
-	0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020,
-	0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20,
-	// Block 0xef, offset 0x3bc0
-	0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20,
-	0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220,
-	0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20,
-	0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220,
-	0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20,
-	0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220,
-	0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20,
-	0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220,
-	0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20,
-	0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220,
-	0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20,
-	0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220,
-	0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20,
-	0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220,
-	0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20,
-	0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220,
-	// Block 0xf0, offset 0x3c00
-	0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20,
-	0x3c04: 0x8209233e,
-	0x3c0e: 0x40031020, 0x3c0f: 0x40031220,
-	0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411,
-	0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723,
-	0x3c18: 0xe00007cf, 0x3c19: 0xe0000874,
-	0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000,
-	0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000,
-	0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000,
-	0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000,
-	0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684,
-	0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684,
-	0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820,
-	// Block 0xf1, offset 0x3c40
-	0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f,
-	0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741,
-	0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420,
-	0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20,
-	0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420,
-	0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20,
-	0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420,
-	0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20,
-	0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420,
-	0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20,
-	0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02,
-	0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020,
-	0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020,
-	0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820,
-	0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020,
-	0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820,
-	// Block 0xf2, offset 0x3c80
-	0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020,
-	0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820,
-	0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020,
-	0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820,
-	0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8,
-	0x3c9f: 0x40038420,
-	0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020,
-	0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820,
-	0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020,
-	0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820,
-	0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020,
-	0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820,
-	0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020,
-	0x3cbc: 0x4063a220,
-	// Block 0xf3, offset 0x3cc0
-	0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402,
-	0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820,
-	0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020,
-	0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820,
-	0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020,
-	0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820,
-	0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020,
-	0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820,
-	0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020,
-	0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820,
-	0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220,
-	0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20,
-	0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102,
-	0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820,
-	0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220,
-	0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420,
-	// Block 0xf4, offset 0x3d00
-	0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220,
-	0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020,
-	0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20,
-	0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020,
-	0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447,
-	0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759,
-	0x3d18: 0xe0000805, 0x3d19: 0xe00008aa,
-	0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820,
-	// Block 0xf5, offset 0x3d40
-	0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220,
-	0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20,
-	0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220,
-	0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20,
-	0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220,
-	0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20,
-	0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220,
-	0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20,
-	0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220,
-	0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20,
-	0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20,
-	0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220,
-	0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20,
-	0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420,
-	// Block 0xf6, offset 0x3d80
-	0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020,
-	0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820,
-	0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020,
-	0x3d8c: 0x40522220, 0x3d8d: 0x40522420,
-	0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441,
-	0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753,
-	0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4,
-	0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20,
-	0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420,
-	0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020,
-	0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20,
-	0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20,
-	0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20,
-	0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20,
-	0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820,
-	// Block 0xf7, offset 0x3dc0
-	0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620,
-	0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20,
-	0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620,
-	0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20,
-	0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620,
-	0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20,
-	0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620,
-	0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20,
-	0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620,
-	0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20,
-	0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620,
-	0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20,
-	0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b,
-	0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f,
-	0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671,
-	0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02,
-	// Block 0xf8, offset 0x3e00
-	0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020,
-	0x3e1b: 0x404a7220,
-	0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020,
-	0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20,
-	0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220,
-	0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20,
-	0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220,
-	0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620,
-	0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4,
-	// Block 0xf9, offset 0x3e40
-	0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220,
-	0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820,
-	0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020,
-	0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620,
-	0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220,
-	0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820,
-	0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820,
-	0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20,
-	0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820,
-	0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20,
-	// Block 0xfa, offset 0x3e80
-	0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420,
-	0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20,
-	0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420,
-	0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20,
-	0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420,
-	0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20,
-	0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620,
-	0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20,
-	0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20,
-	0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220,
-	0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220,
-	0x3eac: 0xa000fa02, 0x3ead: 0x820922d3,
-	0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e,
-	0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720,
-	0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871,
-	// Block 0xfb, offset 0x3ec0
-	0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20,
-	0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420,
-	0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20,
-	0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420,
-	// Block 0xfc, offset 0x3f00
-	0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20,
-	0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220,
-	0x3f0b: 0x40651420,
-	0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20,
-	0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420,
-	0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20,
-	0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420,
-	0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20,
-	0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420,
-	0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20,
-	0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420,
-	0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20,
-	0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420,
-	0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20,
-	0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420,
-	// Block 0xfd, offset 0x3f40
-	0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020,
-	0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820,
-	0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20,
-	0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20,
-	0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20,
-	0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20,
-	0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420,
-	0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20,
-	0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20,
-	0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20,
-	0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820,
-	0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20,
-	0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20,
-	0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20,
-	0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820,
-	0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820,
-	// Block 0xfe, offset 0x3f80
-	0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820,
-	0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420,
-	0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420,
-	0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20,
-	0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620,
-	0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20,
-	0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20,
-	0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20,
-	0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20,
-	0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20,
-	0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620,
-	0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420,
-	0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20,
-	0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20,
-	0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20,
-	0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20,
-	// Block 0xff, offset 0x3fc0
-	0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20,
-	0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420,
-	0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20,
-	0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020,
-	0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220,
-	0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20,
-	0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420,
-	0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020,
-	0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20,
-	0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20,
-	0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420,
-	0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420,
-	0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020,
-	0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820,
-	0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420,
-	0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420,
-	// Block 0x100, offset 0x4000
-	0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820,
-	0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220,
-	0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820,
-	0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020,
-	0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020,
-	0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420,
-	0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20,
-	0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20,
-	0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20,
-	0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20,
-	0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20,
-	0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020,
-	0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20,
-	0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620,
-	0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220,
-	0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420,
-	// Block 0x101, offset 0x4040
-	0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20,
-	0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620,
-	0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620,
-	0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20,
-	0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620,
-	0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420,
-	0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20,
-	0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20,
-	0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620,
-	0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20,
-	0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820,
-	0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20,
-	0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220,
-	0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20,
-	0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820,
-	0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20,
-	// Block 0x102, offset 0x4080
-	0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220,
-	0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420,
-	0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220,
-	0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020,
-	0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20,
-	0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820,
-	0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20,
-	0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20,
-	0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220,
-	0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020,
-	0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20,
-	0x40ac: 0x4885dc20, 0x40ad: 0x43043020,
-	0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020,
-	0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420,
-	0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420,
-	0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820,
-	// Block 0x103, offset 0x40c0
-	0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220,
-	0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20,
-	0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420,
-	0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420,
-	0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620,
-	0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220,
-	0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20,
-	0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20,
-	0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620,
-	0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620,
-	0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820,
-	0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620,
-	0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420,
-	0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20,
-	0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620,
-	0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220,
-	// Block 0x104, offset 0x4100
-	0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420,
-	0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620,
-	0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620,
-	0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420,
-	0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020,
-	0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620,
-	0x4118: 0x433e8620, 0x4119: 0x433f1c20,
-	// Block 0x105, offset 0x4140
-	0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99,
-	0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404,
-	0x4153: 0xf0000404,
-	0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404,
-	0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514,
-	0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885,
-	0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685,
-	0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f,
-	0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4,
-	0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3,
-	0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505,
-	0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518,
-	0x417c: 0xe0001521, 0x417e: 0xe0001524,
-	// Block 0x106, offset 0x4180
-	0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530,
-	0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539,
-	0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9,
-	0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404,
-	0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99,
-	0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099,
-	0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299,
-	0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99,
-	0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299,
-	0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99,
-	0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499,
-	0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99,
-	0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899,
-	0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699,
-	0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99,
-	0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99,
-	// Block 0x107, offset 0x41c0
-	0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699,
-	0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899,
-	0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699,
-	0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99,
-	0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99,
-	0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299,
-	0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99,
-	0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899,
-	0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98,
-	0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99,
-	0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99,
-	0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99,
-	0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20,
-	0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220,
-	0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20,
-	0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220,
-	// Block 0x108, offset 0x4200
-	0x4200: 0x40073420, 0x4201: 0x40073620,
-	0x4213: 0x003a269a,
-	0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a,
-	0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a,
-	0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499,
-	0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099,
-	0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898,
-	0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556,
-	0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c,
-	0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592,
-	0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc,
-	0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4,
-	0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298,
-	// Block 0x109, offset 0x4240
-	0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0,
-	0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a,
-	0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a,
-	0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a,
-	0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a,
-	0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a,
-	0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a,
-	0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a,
-	0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a,
-	0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a,
-	0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a,
-	0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a,
-	0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a,
-	0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a,
-	0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a,
-	0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a,
-	// Block 0x10a, offset 0x4280
-	0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a,
-	0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a,
-	0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a,
-	0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a,
-	0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a,
-	0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a,
-	0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a,
-	0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006,
-	0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012,
-	0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d,
-	0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919,
-	0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919,
-	0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919,
-	0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919,
-	0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919,
-	0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919,
-	// Block 0x10b, offset 0x42c0
-	0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919,
-	0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919,
-	0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919,
-	0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919,
-	0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919,
-	0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c,
-	0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580,
-	0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717,
-	0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717,
-	0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717,
-	0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717,
-	0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717,
-	0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717,
-	0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717,
-	0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717,
-	0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717,
-	// Block 0x10c, offset 0x4300
-	0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717,
-	0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717,
-	0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717,
-	0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717,
-	0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717,
-	0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717,
-	0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717,
-	0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574,
-	0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818,
-	0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818,
-	0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818,
-	0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818,
-	0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818,
-	0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a,
-	0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a,
-	0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a,
-	// Block 0x10d, offset 0x4340
-	0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a,
-	0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a,
-	0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a,
-	0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a,
-	0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919,
-	0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919,
-	0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919,
-	0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919,
-	0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919,
-	0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919,
-	0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919,
-	0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717,
-	0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717,
-	0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818,
-	0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818,
-	0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220,
-	// Block 0x10e, offset 0x4380
-	0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8,
-	0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600,
-	0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631,
-	0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a,
-	0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e,
-	0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e,
-	0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676,
-	0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6,
-	0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2,
-	0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7,
-	0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb,
-	0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b,
-	// Block 0x10f, offset 0x43c0
-	0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741,
-	0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771,
-	0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799,
-	0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1,
-	0x43d2: 0xe0001780, 0x43d3: 0xe00017d9,
-	0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9,
-	0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1,
-	0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc,
-	0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608,
-	0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625,
-	0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be,
-	0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec,
-	0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd,
-	0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b,
-	0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727,
-	0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d,
-	// Block 0x110, offset 0x4400
-	0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723,
-	0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1,
-	0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2,
-	0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2,
-	0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614,
-	0x443c: 0x40282e20, 0x443d: 0x40071620,
-	// Block 0x111, offset 0x4440
-	0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000,
-	0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000,
-	0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000,
-	0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000,
-	0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96,
-	0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496,
-	0x4458: 0x0004b696, 0x4459: 0xf0001616,
-	0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000,
-	0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000,
-	0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696,
-	0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96,
-	0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96,
-	0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96,
-	// Block 0x112, offset 0x4480
-	0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896,
-	0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896,
-	0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484,
-	0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684,
-	0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f,
-	0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f,
-	0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f,
-	0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f,
-	0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f,
-	0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f,
-	0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f,
-	0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000,
-	0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18,
-	0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618,
-	0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18,
-	// Block 0x113, offset 0x44c0
-	0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a,
-	0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a,
-	0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097,
-	0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a,
-	0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a,
-	0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697,
-	0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897,
-	0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497,
-	0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297,
-	0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497,
-	0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a,
-	0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a,
-	0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697,
-	0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897,
-	0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97,
-	0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97,
-	// Block 0x114, offset 0x4500
-	0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697,
-	0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897,
-	0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97,
-	0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097,
-	0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97,
-	0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297,
-	0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97,
-	0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097,
-	0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97,
-	0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697,
-	0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897,
-	0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a,
-	0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097,
-	0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738,
-	0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a,
-	0x453c: 0xf0001919, 0x453f: 0xa0000000,
-	// Block 0x115, offset 0x4540
-	0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83,
-	0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283,
-	0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883,
-	0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283,
-	0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283,
-	0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83,
-	0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283,
-	0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483,
-	0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89,
-	0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289,
-	0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89,
-	0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289,
-	0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689,
-	0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289,
-	0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883,
-	0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683,
-	// Block 0x116, offset 0x4580
-	0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83,
-	0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283,
-	0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83,
-	0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283,
-	0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683,
-	0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283,
-	0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83,
-	0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883,
-	0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692,
-	0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690,
-	0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090,
-	0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90,
-	0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92,
-	0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492,
-	0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92,
-	0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492,
-	// Block 0x117, offset 0x45c0
-	0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92,
-	0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492,
-	0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92,
-	0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492,
-	0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92,
-	0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692,
-	0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92,
-	0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912,
-	0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892,
-	0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292,
-	0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692,
-	0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92,
-	0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92,
-	0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292,
-	0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92,
-	0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092,
-	// Block 0x118, offset 0x4600
-	0x4602: 0x0063a892, 0x4603: 0x0063aa92,
-	0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292,
-	0x460a: 0x0063b492, 0x460b: 0x0063b692,
-	0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92,
-	0x4612: 0x0063c092, 0x4613: 0x0063c292,
-	0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92,
-	0x461a: 0x0063cc92, 0x461b: 0x0063ce92,
-	0x461c: 0x0063d092,
-	0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683,
-	0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883,
-	0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692,
-	0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492,
-	0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000,
-	0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85,
-	// Block 0x119, offset 0x4640
-	0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020,
-	0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820,
-	0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020,
-	0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620,
-	0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20,
-	0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620,
-	0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20,
-	0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620,
-	0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20,
-	0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420,
-	0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20,
-	0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420,
-	0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20,
-	0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420,
-	0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20,
-	0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020,
-	// Block 0x11a, offset 0x4680
-	0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820,
-	0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020,
-	0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820,
-	0x468c: 0x4073aa20, 0x468d: 0x4073ac20,
-	0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420,
-	0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20,
-	0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420,
-	0x469c: 0x4073c620, 0x469d: 0x4073c820,
-	// Block 0x11b, offset 0x46c0
-	0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020,
-	0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820,
-	0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020,
-	0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820,
-	0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020,
-	0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820,
-	0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020,
-	0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820,
-	0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020,
-	0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820,
-	0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020,
-	0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820,
-	0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020,
-	0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820,
-	0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020,
-	0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820,
-	// Block 0x11c, offset 0x4700
-	0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020,
-	0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820,
-	0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020,
-	0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820,
-	0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020,
-	0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820,
-	0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020,
-	0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820,
-	0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020,
-	0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820,
-	0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020,
-	0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820,
-	0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020,
-	0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820,
-	0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20,
-	// Block 0x11d, offset 0x4740
-	0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220,
-	0x4747: 0xe000026a,
-	0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb,
-	0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf,
-	0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020,
-	0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820,
-	0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020,
-	0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820,
-	0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020,
-	0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820,
-	0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020,
-	0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820,
-	0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020,
-	0x4777: 0x401afe20,
-	0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620,
-	0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20,
-	// Block 0x11e, offset 0x4780
-	0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe,
-	0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20,
-	0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220,
-	0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604,
-	0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020,
-	0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820,
-	0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385,
-	0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607,
-	0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020,
-	0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820,
-	0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020,
-	0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820,
-	0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a,
-	0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620,
-	0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420,
-	0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20,
-	// Block 0x11f, offset 0x47c0
-	0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420,
-	0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20,
-	0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6,
-	0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820,
-	0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020,
-	0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820,
-	// Block 0x120, offset 0x4800
-	0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020,
-	0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820,
-	0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020,
-	0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820,
-	0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020,
-	0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820,
-	0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020,
-	0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820,
-	0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020,
-	0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820,
-	0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020,
-	0x483c: 0x401ba220, 0x483d: 0xadc13802,
-	// Block 0x121, offset 0x4840
-	0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20,
-	0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620,
-	0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20,
-	0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620,
-	0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20,
-	0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620,
-	0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20,
-	0x485c: 0x4070f020,
-	0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820,
-	0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020,
-	0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820,
-	0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020,
-	0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820,
-	0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020,
-	0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820,
-	0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020,
-	// Block 0x122, offset 0x4880
-	0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820,
-	0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020,
-	0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820,
-	0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020,
-	0x4890: 0x40715220,
-	// Block 0x123, offset 0x48c0
-	0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20,
-	0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620,
-	0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20,
-	0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620,
-	0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20,
-	0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620,
-	0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20,
-	0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420,
-	0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820,
-	0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20,
-	0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420,
-	0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20,
-	0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420,
-	// Block 0x124, offset 0x4900
-	0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20,
-	0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420,
-	0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20,
-	// Block 0x125, offset 0x4940
-	0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620,
-	0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20,
-	0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620,
-	0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20,
-	0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620,
-	0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20,
-	0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620,
-	0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420,
-	0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220,
-	0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20,
-	0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220,
-	0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20,
-	0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220,
-	0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20,
-	0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220,
-	0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20,
-	// Block 0x126, offset 0x4980
-	0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220,
-	0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20,
-	0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220,
-	0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20,
-	0x4994: 0x40295c20, 0x4995: 0x40295e20,
-	// Block 0x127, offset 0x49c0
-	0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288,
-	0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88,
-	0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288,
-	0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88,
-	0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288,
-	0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88,
-	0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288,
-	0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88,
-	0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288,
-	0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88,
-	0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220,
-	0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20,
-	0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220,
-	0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20,
-	0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220,
-	0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20,
-	// Block 0x128, offset 0x4a00
-	0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220,
-	0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20,
-	0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220,
-	0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20,
-	0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220,
-	0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20,
-	0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220,
-	0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20,
-	0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220,
-	0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20,
-	0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220,
-	0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20,
-	0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220,
-	0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20,
-	0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220,
-	0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20,
-	// Block 0x129, offset 0x4a40
-	0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220,
-	0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20,
-	0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220,
-	0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20,
-	0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220,
-	0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20,
-	0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220,
-	0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620,
-	0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea,
-	0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702,
-	0x4a68: 0xe00007ae, 0x4a69: 0xe0000853,
-	// Block 0x12a, offset 0x4a80
-	0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620,
-	0x4a84: 0x4074c820, 0x4a85: 0x4074ca20,
-	0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020,
-	0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820,
-	0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020,
-	0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820,
-	0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020,
-	0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820,
-	0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020,
-	0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820,
-	0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020,
-	0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820,
-	0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020,
-	0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620,
-	0x4ab8: 0x40752820,
-	0x4abc: 0x40752a20, 0x4abf: 0x40752c20,
-	// Block 0x12b, offset 0x4ac0
-	0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820,
-	0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020,
-	0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820,
-	0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020,
-	0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820,
-	0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620,
-	0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820,
-	0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020,
-	// Block 0x12c, offset 0x4b00
-	0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220,
-	0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20,
-	0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220,
-	0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20,
-	0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220,
-	0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220,
-	0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489,
-	0x4b1f: 0x4003c820,
-	0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20,
-	0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220,
-	0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20,
-	0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220,
-	0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20,
-	0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220,
-	0x4b38: 0x40718420, 0x4b39: 0x40718620,
-	0x4b3f: 0x4003bc20,
-	// Block 0x12d, offset 0x4b40
-	0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad,
-	0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9,
-	0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5,
-	0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1,
-	0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0,
-	0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec,
-	0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8,
-	0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420,
-	0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620,
-	0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20,
-	0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620,
-	0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20,
-	0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420,
-	0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20,
-	0x4b7e: 0x40864e20, 0x4b7f: 0x40865020,
-	// Block 0x12e, offset 0x4b80
-	0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220,
-	0x4b85: 0x4048c420, 0x4b86: 0x4048c620,
-	0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402,
-	0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020,
-	0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620,
-	0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20,
-	0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420,
-	0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20,
-	0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420,
-	0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20,
-	0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420,
-	0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20,
-	0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02,
-	0x4bbf: 0x82092487,
-	// Block 0x12f, offset 0x4bc0
-	0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573,
-	0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20,
-	0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20,
-	0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620,
-	0x4bd8: 0x40061220,
-	0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420,
-	0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20,
-	0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420,
-	0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20,
-	0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420,
-	0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20,
-	0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420,
-	0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20,
-	// Block 0x130, offset 0x4c00
-	0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20,
-	0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620,
-	0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20,
-	0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620,
-	0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20,
-	0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620,
-	0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20,
-	0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620,
-	0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20,
-	0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620,
-	0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20,
-	0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420,
-	0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20,
-	0x4c34: 0x4075ce20, 0x4c35: 0x4075d020,
-	0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20,
-	0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220,
-	// Block 0x131, offset 0x4c40
-	0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420,
-	0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20,
-	0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420,
-	0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20,
-	0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420,
-	0x4c54: 0x40762620, 0x4c55: 0x40762820,
-	0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561,
-	0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820,
-	0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020,
-	0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820,
-	0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020,
-	0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820,
-	0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20,
-	0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564,
-	0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020,
-	// Block 0x132, offset 0x4c80
-	0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20,
-	0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020,
-	0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420,
-	0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820,
-	0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20,
-	0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2,
-	0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8,
-	0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce,
-	0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020,
-	0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4,
-	0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da,
-	0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20,
-	0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0,
-	0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6,
-	0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec,
-	0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420,
-	// Block 0x133, offset 0x4cc0
-	0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820,
-	0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20,
-	0x4cc8: 0x405b7e20,
-	// Block 0x134, offset 0x4d00
-	0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc,
-	0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5,
-	0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20,
-	0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420,
-	0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20,
-	0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420,
-	0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20,
-	0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220,
-	// Block 0x135, offset 0x4d40
-	0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220,
-	0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820,
-	0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020,
-	0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820,
-	0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020,
-	0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820,
-	0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020,
-	0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820,
-	0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020,
-	0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820,
-	0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020,
-	0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820,
-	0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020,
-	0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20,
-	0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420,
-	0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20,
-	// Block 0x136, offset 0x4d80
-	0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420,
-	0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820,
-	0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020,
-	0x4d8c: 0x40060220, 0x4d8d: 0x40060420,
-	0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4,
-	0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea,
-	0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220,
-	0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20,
-	0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220,
-	0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6,
-	0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637,
-	0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3,
-	// Block 0x137, offset 0x4dc0
-	0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20,
-	0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620,
-	0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20,
-	0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620,
-	0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20,
-	0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620,
-	0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20,
-	0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220,
-	0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20,
-	0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220,
-	0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e,
-	0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020,
-	0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820,
-	0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020,
-	0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620,
-	0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620,
-	// Block 0x138, offset 0x4e00
-	0x4e00: 0x40034c20, 0x4e01: 0x40034e20,
-	0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20,
-	0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620,
-	0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20,
-	0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620,
-	0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20,
-	0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620,
-	0x4e28: 0x40731820,
-	0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456,
-	0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768,
-	0x4e38: 0xe0000814, 0x4e39: 0xe00008b9,
-	// Block 0x139, offset 0x4e40
-	0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020,
-	0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820,
-	0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020,
-	0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820,
-	0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020,
-	0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820,
-	0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020,
-	0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820,
-	0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020,
-	0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820,
-	0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020,
-	0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820,
-	0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0,
-	0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246,
-	0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7,
-	0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b,
-	// Block 0x13a, offset 0x4e80
-	0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20,
-	// Block 0x13b, offset 0x4ec0
-	0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820,
-	0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020,
-	0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820,
-	0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020,
-	0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820,
-	0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020,
-	0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820,
-	0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020,
-	0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820,
-	0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020,
-	0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820,
-	0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020,
-	0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820,
-	0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020,
-	0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820,
-	0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020,
-	// Block 0x13c, offset 0x4f00
-	0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820,
-	0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20,
-	0x4f08: 0x40039a20,
-	0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495,
-	0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789,
-	0x4f18: 0xe0000832, 0x4f19: 0xe00008dd,
-	// Block 0x13d, offset 0x4f40
-	0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020,
-	0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820,
-	0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620,
-	0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20,
-	0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620,
-	0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20,
-	0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620,
-	0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20,
-	0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620,
-	0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020,
-	0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302,
-	0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420,
-	0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20,
-	0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102,
-	// Block 0x13e, offset 0x4f80
-	0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498,
-	0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c,
-	0x4f88: 0xe0000835, 0x4f89: 0xe00008e0,
-	// Block 0x13f, offset 0x4fc0
-	0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20,
-	0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220,
-	0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20,
-	0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220,
-	0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20,
-	0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220,
-	0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20,
-	0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220,
-	0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20,
-	0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220,
-	0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20,
-	0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220,
-	0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20,
-	0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220,
-	0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20,
-	0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220,
-	// Block 0x140, offset 0x5000
-	0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20,
-	0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220,
-	0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20,
-	0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220,
-	0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20,
-	0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220,
-	0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20,
-	0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220,
-	0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20,
-	0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220,
-	0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20,
-	0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220,
-	0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20,
-	0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220,
-	0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20,
-	0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220,
-	// Block 0x141, offset 0x5040
-	0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20,
-	0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220,
-	0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20,
-	0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220,
-	0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20,
-	0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220,
-	0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20,
-	0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220,
-	0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20,
-	0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220,
-	0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20,
-	0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220,
-	0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20,
-	0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220,
-	0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20,
-	0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220,
-	// Block 0x142, offset 0x5080
-	0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20,
-	0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220,
-	0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20,
-	0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220,
-	0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20,
-	0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220,
-	0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20,
-	0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220,
-	0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20,
-	0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220,
-	0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20,
-	0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220,
-	0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20,
-	0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220,
-	0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20,
-	0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220,
-	// Block 0x143, offset 0x50c0
-	0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20,
-	0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220,
-	0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20,
-	0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220,
-	0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20,
-	0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220,
-	0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20,
-	0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220,
-	0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20,
-	0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220,
-	0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20,
-	0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220,
-	0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20,
-	0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220,
-	0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20,
-	0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220,
-	// Block 0x144, offset 0x5100
-	0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20,
-	0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220,
-	0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20,
-	0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220,
-	0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20,
-	0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220,
-	0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20,
-	0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220,
-	0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20,
-	0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220,
-	0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20,
-	0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220,
-	0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20,
-	0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220,
-	0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20,
-	0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220,
-	// Block 0x145, offset 0x5140
-	0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20,
-	0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220,
-	0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20,
-	0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220,
-	0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20,
-	0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220,
-	0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20,
-	0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220,
-	0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20,
-	0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220,
-	0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20,
-	0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220,
-	0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20,
-	0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220,
-	0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20,
-	0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220,
-	// Block 0x146, offset 0x5180
-	0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20,
-	0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220,
-	0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20,
-	0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220,
-	0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20,
-	0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220,
-	0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20,
-	0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220,
-	0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20,
-	0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220,
-	0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20,
-	0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220,
-	0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20,
-	0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220,
-	0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20,
-	0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220,
-	// Block 0x147, offset 0x51c0
-	0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20,
-	0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220,
-	0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20,
-	0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220,
-	0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20,
-	0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220,
-	0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20,
-	0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220,
-	0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20,
-	0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220,
-	0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20,
-	0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220,
-	0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20,
-	0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220,
-	0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20,
-	0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220,
-	// Block 0x148, offset 0x5200
-	0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20,
-	0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220,
-	0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20,
-	0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220,
-	0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20,
-	0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220,
-	0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20,
-	0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220,
-	0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20,
-	0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220,
-	0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20,
-	0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220,
-	0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20,
-	0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220,
-	0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20,
-	0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220,
-	// Block 0x149, offset 0x5240
-	0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20,
-	0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220,
-	0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20,
-	0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220,
-	0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20,
-	0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220,
-	0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20,
-	0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220,
-	0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20,
-	0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220,
-	0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20,
-	0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220,
-	0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20,
-	0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220,
-	0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20,
-	0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220,
-	// Block 0x14a, offset 0x5280
-	0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20,
-	0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220,
-	0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20,
-	0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220,
-	0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20,
-	0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220,
-	0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20,
-	0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220,
-	0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20,
-	0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220,
-	0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20,
-	0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220,
-	0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20,
-	0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220,
-	0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20,
-	0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220,
-	// Block 0x14b, offset 0x52c0
-	0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20,
-	0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220,
-	0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20,
-	0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220,
-	0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20,
-	0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220,
-	0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20,
-	0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220,
-	0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20,
-	0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220,
-	0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20,
-	0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220,
-	0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20,
-	0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220,
-	0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20,
-	0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220,
-	// Block 0x14c, offset 0x5300
-	0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20,
-	0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220,
-	0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20,
-	0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220,
-	0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20,
-	0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220,
-	0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20,
-	0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220,
-	0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20,
-	0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220,
-	0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20,
-	0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020,
-	// Block 0x14d, offset 0x5340
-	0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610,
-	0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2,
-	0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf,
-	0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a,
-	0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823,
-	0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465,
-	0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a,
-	0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a,
-	0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d,
-	0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f,
-	0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce,
-	0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474,
-	0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220,
-	0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a,
-	0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480,
-	0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555,
-	// Block 0x14e, offset 0x5380
-	0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786,
-	0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4,
-	0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483,
-	0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b,
-	0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e,
-	0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620,
-	0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20,
-	0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220,
-	0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820,
-	0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020,
-	// Block 0x14f, offset 0x53c0
-	0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820,
-	0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020,
-	0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820,
-	0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020,
-	0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820,
-	0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020,
-	0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820,
-	0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020,
-	0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820,
-	0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020,
-	0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820,
-	0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020,
-	0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820,
-	0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020,
-	0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820,
-	0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020,
-	// Block 0x150, offset 0x5400
-	0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820,
-	0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020,
-	0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820,
-	0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020,
-	0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820,
-	0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020,
-	0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820,
-	0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020,
-	0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820,
-	0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020,
-	0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820,
-	0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020,
-	0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820,
-	0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020,
-	0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820,
-	0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020,
-	// Block 0x151, offset 0x5440
-	0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820,
-	0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020,
-	0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820,
-	0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020,
-	0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820,
-	0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020,
-	0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820,
-	0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020,
-	0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820,
-	0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020,
-	0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820,
-	0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020,
-	0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820,
-	0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020,
-	0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820,
-	0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020,
-	// Block 0x152, offset 0x5480
-	0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820,
-	0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020,
-	0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820,
-	0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020,
-	0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820,
-	0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020,
-	0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820,
-	0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020,
-	0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820,
-	0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020,
-	0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820,
-	0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020,
-	0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820,
-	0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020,
-	0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820,
-	0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020,
-	// Block 0x153, offset 0x54c0
-	0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820,
-	0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020,
-	0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820,
-	0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020,
-	0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820,
-	0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020,
-	0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820,
-	0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020,
-	0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820,
-	0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020,
-	0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820,
-	0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020,
-	0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820,
-	0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020,
-	0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820,
-	0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020,
-	// Block 0x154, offset 0x5500
-	0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820,
-	0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020,
-	0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820,
-	0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020,
-	0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820,
-	0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020,
-	0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820,
-	0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020,
-	0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820,
-	0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020,
-	0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820,
-	0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020,
-	0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820,
-	0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020,
-	0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820,
-	0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020,
-	// Block 0x155, offset 0x5540
-	0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820,
-	0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020,
-	0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820,
-	0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020,
-	0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820,
-	0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020,
-	0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820,
-	0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020,
-	0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820,
-	0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020,
-	0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820,
-	0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020,
-	0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820,
-	0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020,
-	0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820,
-	0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020,
-	// Block 0x156, offset 0x5580
-	0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820,
-	0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020,
-	0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820,
-	0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020,
-	0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820,
-	0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020,
-	0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820,
-	0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020,
-	0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820,
-	0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020,
-	0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820,
-	0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020,
-	0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820,
-	0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020,
-	0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820,
-	0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020,
-	// Block 0x157, offset 0x55c0
-	0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820,
-	0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020,
-	0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820,
-	0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020,
-	0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820,
-	0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020,
-	0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820,
-	0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020,
-	0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820,
-	0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020,
-	0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820,
-	0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020,
-	0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820,
-	0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020,
-	0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820,
-	0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020,
-	// Block 0x158, offset 0x5600
-	0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820,
-	0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020,
-	0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820,
-	0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020,
-	0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820,
-	0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020,
-	0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820,
-	0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020,
-	0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820,
-	0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020,
-	0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820,
-	0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020,
-	0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820,
-	0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020,
-	0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820,
-	0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020,
-	// Block 0x159, offset 0x5640
-	0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820,
-	0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020,
-	0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820,
-	0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020,
-	0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820,
-	0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020,
-	0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820,
-	0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020,
-	0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820,
-	0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020,
-	0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820,
-	0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020,
-	0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820,
-	0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020,
-	0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820,
-	0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020,
-	// Block 0x15a, offset 0x5680
-	0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820,
-	0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020,
-	0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820,
-	0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020,
-	0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820,
-	0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020,
-	0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820,
-	0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020,
-	0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820,
-	0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020,
-	0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820,
-	0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020,
-	0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820,
-	0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020,
-	0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820,
-	0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020,
-	// Block 0x15b, offset 0x56c0
-	0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820,
-	0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020,
-	0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820,
-	0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020,
-	0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820,
-	0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020,
-	0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820,
-	0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020,
-	0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820,
-	0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020,
-	0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820,
-	0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020,
-	0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820,
-	0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020,
-	0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820,
-	0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020,
-	// Block 0x15c, offset 0x5700
-	0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820,
-	0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020,
-	0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820,
-	0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020,
-	0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820,
-	0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020,
-	0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820,
-	0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020,
-	0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820,
-	0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020,
-	0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820,
-	0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020,
-	0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820,
-	0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020,
-	0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820,
-	0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020,
-	// Block 0x15d, offset 0x5740
-	0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820,
-	0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020,
-	0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820,
-	0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020,
-	0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820,
-	0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020,
-	0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820,
-	0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020,
-	0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820,
-	0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020,
-	0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820,
-	0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020,
-	0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820,
-	0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020,
-	0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820,
-	0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020,
-	// Block 0x15e, offset 0x5780
-	0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820,
-	0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020,
-	0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820,
-	0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020,
-	0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820,
-	0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020,
-	0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820,
-	0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020,
-	0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820,
-	0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020,
-	0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820,
-	0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020,
-	0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820,
-	0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020,
-	0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820,
-	0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020,
-	// Block 0x15f, offset 0x57c0
-	0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820,
-	0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020,
-	0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820,
-	0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020,
-	0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820,
-	0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020,
-	0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820,
-	0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020,
-	0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820,
-	0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020,
-	0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820,
-	0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20,
-	// Block 0x160, offset 0x5800
-	0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020,
-	0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820,
-	0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020,
-	0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820,
-	0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020,
-	0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820,
-	0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020,
-	0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820,
-	0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020,
-	0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820,
-	0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020,
-	0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820,
-	0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020,
-	0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820,
-	0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020,
-	0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820,
-	// Block 0x161, offset 0x5840
-	0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020,
-	0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820,
-	0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020,
-	0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820,
-	0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020,
-	0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820,
-	0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020,
-	0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820,
-	0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020,
-	0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820,
-	0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020,
-	0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820,
-	0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020,
-	0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820,
-	0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020,
-	0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820,
-	// Block 0x162, offset 0x5880
-	0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020,
-	0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820,
-	0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020,
-	0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820,
-	0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020,
-	0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820,
-	0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020,
-	0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820,
-	0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020,
-	0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820,
-	0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020,
-	0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820,
-	0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020,
-	0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820,
-	0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020,
-	0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820,
-	// Block 0x163, offset 0x58c0
-	0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020,
-	0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820,
-	0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020,
-	0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820,
-	0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020,
-	0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820,
-	0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020,
-	0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820,
-	0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020,
-	0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820,
-	0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020,
-	0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820,
-	0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020,
-	0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820,
-	0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020,
-	0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820,
-	// Block 0x164, offset 0x5900
-	0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020,
-	0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820,
-	0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020,
-	0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820,
-	0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020,
-	0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820,
-	0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020,
-	0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820,
-	0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020,
-	0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820,
-	0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020,
-	0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820,
-	0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020,
-	0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820,
-	0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020,
-	0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820,
-	// Block 0x165, offset 0x5940
-	0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020,
-	0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820,
-	0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020,
-	0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820,
-	0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020,
-	0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820,
-	0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020,
-	0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820,
-	0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020,
-	0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820,
-	0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020,
-	0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820,
-	0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020,
-	0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820,
-	0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020,
-	0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820,
-	// Block 0x166, offset 0x5980
-	0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020,
-	0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820,
-	0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020,
-	0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820,
-	0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020,
-	0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820,
-	0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020,
-	0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820,
-	0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020,
-	0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820,
-	0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020,
-	0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820,
-	0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020,
-	0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820,
-	0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020,
-	0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820,
-	// Block 0x167, offset 0x59c0
-	0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020,
-	0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820,
-	0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020,
-	0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820,
-	0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020,
-	0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820,
-	0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020,
-	0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820,
-	0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020,
-	0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820,
-	0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020,
-	0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820,
-	0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020,
-	0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820,
-	0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020,
-	0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820,
-	// Block 0x168, offset 0x5a00
-	0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020,
-	0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820,
-	0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020,
-	0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820,
-	0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020,
-	0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820,
-	0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020,
-	0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820,
-	0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020,
-	0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820,
-	0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020,
-	0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820,
-	0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020,
-	0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820,
-	0x5a38: 0x4062aa20,
-	// Block 0x169, offset 0x5a40
-	0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20,
-	0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220,
-	0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20,
-	0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220,
-	0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484,
-	0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020,
-	0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820,
-	0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020,
-	0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820,
-	0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20,
-	0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620,
-	0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20,
-	0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620,
-	0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20,
-	0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620,
-	0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84,
-	// Block 0x16a, offset 0x5a80
-	0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420,
-	0x5a84: 0x40703620,
-	0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20,
-	0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620,
-	0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20,
-	0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620,
-	0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20,
-	0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620,
-	0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20,
-	0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620,
-	0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20,
-	0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620,
-	0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20,
-	0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420,
-	// Block 0x16b, offset 0x5ac0
-	0x5acf: 0x40709620,
-	0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20,
-	0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620,
-	0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20,
-	0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620,
-	// Block 0x16c, offset 0x5b00
-	0x5b00: 0x00657c91, 0x5b01: 0x0065c28e,
-	// Block 0x16d, offset 0x5b40
-	0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20,
-	0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220,
-	0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20,
-	0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220,
-	0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20,
-	0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220,
-	0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20,
-	0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220,
-	0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20,
-	0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220,
-	0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20,
-	0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220,
-	0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20,
-	0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220,
-	0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20,
-	0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220,
-	// Block 0x16e, offset 0x5b80
-	0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20,
-	0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220,
-	0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20,
-	0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220,
-	0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20,
-	0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220,
-	0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20,
-	0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220,
-	0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20,
-	0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220,
-	0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20,
-	0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220,
-	0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20,
-	0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220,
-	0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20,
-	0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220,
-	// Block 0x16f, offset 0x5bc0
-	0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20,
-	0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220,
-	0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20,
-	0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220,
-	0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20,
-	0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220,
-	0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20,
-	0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220,
-	0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20,
-	0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220,
-	0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20,
-	0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220,
-	0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20,
-	0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220,
-	0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20,
-	0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220,
-	// Block 0x170, offset 0x5c00
-	0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20,
-	0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220,
-	0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20,
-	0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220,
-	0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20,
-	0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220,
-	0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20,
-	0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220,
-	0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20,
-	0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220,
-	0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20,
-	0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220,
-	0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20,
-	0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20,
-	// Block 0x171, offset 0x5c40
-	0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620,
-	0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20,
-	0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620,
-	0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20,
-	0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620,
-	0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20,
-	0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620,
-	0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20,
-	0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620,
-	0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20,
-	0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620,
-	0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20,
-	0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620,
-	0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20,
-	0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820,
-	0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020,
-	// Block 0x172, offset 0x5c80
-	0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820,
-	0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020,
-	0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820,
-	0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020,
-	0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820,
-	0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020,
-	0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820,
-	0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220,
-	0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220,
-	0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000,
-	0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020,
-	0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000,
-	0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000,
-	0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000,
-	0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000,
-	0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000,
-	// Block 0x173, offset 0x5cc0
-	0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420,
-	0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000,
-	0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000,
-	0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20,
-	0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620,
-	0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20,
-	0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620,
-	0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20,
-	0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620,
-	0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20,
-	0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000,
-	0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620,
-	0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20,
-	0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620,
-	0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20,
-	0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20,
-	// Block 0x174, offset 0x5d00
-	0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220,
-	0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20,
-	0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220,
-	0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20,
-	0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220,
-	0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20,
-	0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220,
-	0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620,
-	// Block 0x175, offset 0x5d40
-	0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20,
-	0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620,
-	0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20,
-	0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620,
-	0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20,
-	0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620,
-	0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20,
-	0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620,
-	0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20,
-	0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620,
-	0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20,
-	0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620,
-	0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20,
-	0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620,
-	0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20,
-	0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620,
-	// Block 0x176, offset 0x5d80
-	0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000,
-	0x5d84: 0xae600000, 0x5d85: 0x401f6c20,
-	// Block 0x177, offset 0x5dc0
-	0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820,
-	0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020,
-	0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820,
-	0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020,
-	0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820,
-	0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020,
-	0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820,
-	0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020,
-	0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820,
-	0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020,
-	0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820,
-	0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020,
-	0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820,
-	0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020,
-	0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820,
-	0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020,
-	// Block 0x178, offset 0x5e00
-	0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820,
-	0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020,
-	0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820,
-	0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020,
-	0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820,
-	0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20,
-	0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576,
-	0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e,
-	0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20,
-	0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620,
-	0x5e30: 0x4029c820, 0x5e31: 0x4029ca20,
-	// Block 0x179, offset 0x5e40
-	0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b,
-	0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b,
-	0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b,
-	0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b,
-	0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b,
-	0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b,
-	0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85,
-	0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885,
-	0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85,
-	0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85,
-	0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85,
-	0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85,
-	0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85,
-	0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b,
-	0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b,
-	0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b,
-	// Block 0x17a, offset 0x5e80
-	0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b,
-	0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b,
-	0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b,
-	0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85,
-	0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885,
-	0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85,
-	0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85,
-	0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85,
-	0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85,
-	0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85,
-	0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b,
-	0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b,
-	0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b,
-	0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b,
-	0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b,
-	0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b,
-	// Block 0x17b, offset 0x5ec0
-	0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85,
-	0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885,
-	0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85,
-	0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85,
-	0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85,
-	0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85,
-	0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85,
-	0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b,
-	0x5ee2: 0x002d228b,
-	0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b,
-	0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b,
-	0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b,
-	0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b,
-	0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85,
-	0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885,
-	0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85,
-	// Block 0x17c, offset 0x5f00
-	0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85,
-	0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85,
-	0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85,
-	0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85,
-	0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b,
-	0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b,
-	0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b,
-	0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b,
-	0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b,
-	0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b,
-	0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85,
-	0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885,
-	0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85,
-	0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85,
-	0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85,
-	0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85,
-	// Block 0x17d, offset 0x5f40
-	0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85,
-	0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b,
-	0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b,
-	0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b,
-	0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b,
-	0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b,
-	0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b,
-	0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85,
-	0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885,
-	0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85,
-	0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85,
-	0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85,
-	0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85,
-	0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85,
-	0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b,
-	0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b,
-	// Block 0x17e, offset 0x5f80
-	0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b,
-	0x5f84: 0x002e828b, 0x5f86: 0x002ee28b,
-	0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b,
-	0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b,
-	0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85,
-	0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885,
-	0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85,
-	0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85,
-	0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85,
-	0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85,
-	0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85,
-	0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b,
-	0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b,
-	0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b,
-	0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b,
-	0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b,
-	// Block 0x17f, offset 0x5fc0
-	0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b,
-	0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85,
-	0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885,
-	0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85,
-	0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85,
-	0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85,
-	0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85,
-	0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85,
-	0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b,
-	0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b,
-	0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b,
-	0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b,
-	0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b,
-	0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b,
-	0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85,
-	0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885,
-	// Block 0x180, offset 0x6000
-	0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85,
-	0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85,
-	0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85,
-	0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85,
-	0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85,
-	0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b,
-	0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b,
-	0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b,
-	0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b,
-	0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b,
-	0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b,
-	0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85,
-	0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885,
-	0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85,
-	0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85,
-	0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85,
-	// Block 0x181, offset 0x6040
-	0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85,
-	0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85,
-	0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b,
-	0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b,
-	0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b,
-	0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b,
-	0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b,
-	0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b,
-	0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85,
-	0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885,
-	0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85,
-	0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85,
-	0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85,
-	0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85,
-	0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85,
-	0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b,
-	// Block 0x182, offset 0x6080
-	0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b,
-	0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b,
-	0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b,
-	0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b,
-	0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b,
-	0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85,
-	0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885,
-	0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85,
-	0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85,
-	0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85,
-	0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85,
-	0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85,
-	0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b,
-	0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b,
-	0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b,
-	0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b,
-	// Block 0x183, offset 0x60c0
-	0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b,
-	0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b,
-	0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85,
-	0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885,
-	0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85,
-	0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85,
-	0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85,
-	0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85,
-	0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85,
-	0x60e4: 0x002da285, 0x60e5: 0x002dd485,
-	0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b,
-	0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b,
-	0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b,
-	0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b,
-	0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b,
-	0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b,
-	// Block 0x184, offset 0x6100
-	0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485,
-	0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485,
-	0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085,
-	0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85,
-	0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85,
-	0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85,
-	0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85,
-	0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85,
-	0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b,
-	0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b,
-	0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b,
-	0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b,
-	0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b,
-	0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b,
-	0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485,
-	0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85,
-	// Block 0x185, offset 0x6140
-	0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85,
-	0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685,
-	0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85,
-	0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685,
-	0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85,
-	0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85,
-	0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85,
-	0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b,
-	0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b,
-	0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b,
-	0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b,
-	0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b,
-	0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b,
-	0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485,
-	0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485,
-	0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085,
-	// Block 0x186, offset 0x6180
-	0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85,
-	0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85,
-	0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85,
-	0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85,
-	0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85,
-	0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b,
-	0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b,
-	0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b,
-	0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b,
-	0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b,
-	0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b,
-	0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485,
-	0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85,
-	0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85,
-	0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685,
-	0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85,
-	// Block 0x187, offset 0x61c0
-	0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685,
-	0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85,
-	0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85,
-	0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85,
-	0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b,
-	0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b,
-	0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b,
-	0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b,
-	0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b,
-	0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b,
-	0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485,
-	0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485,
-	0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085,
-	0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85,
-	0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85,
-	0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85,
-	// Block 0x188, offset 0x6200
-	0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85,
-	0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85,
-	0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85,
-	0x620e: 0x0029cc85, 0x620f: 0x0029ce85,
-	0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685,
-	0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85,
-	0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285,
-	0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85,
-	0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85,
-	0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685,
-	0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85,
-	0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285,
-	0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85,
-	0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85,
-	0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685,
-	0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85,
-	// Block 0x189, offset 0x6240
-	0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885,
-	0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285,
-	0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085,
-	0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85,
-	0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485,
-	0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485,
-	0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085,
-	0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085,
-	0x6261: 0x00393c85, 0x6262: 0x00396485,
-	0x6264: 0x003a6885, 0x6267: 0x00397285,
-	0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085,
-	0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85,
-	0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285,
-	0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485,
-	0x6279: 0x0039de85, 0x627b: 0x0039f085,
-	// Block 0x18a, offset 0x6280
-	0x6282: 0x00396485,
-	0x6287: 0x00397285,
-	0x6289: 0x003a9085, 0x628b: 0x003a4085,
-	0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85,
-	0x6291: 0x0039dc85, 0x6292: 0x003a1285,
-	0x6294: 0x0039c885, 0x6297: 0x00397485,
-	0x6299: 0x0039de85, 0x629b: 0x0039f085,
-	0x629d: 0x003a5885, 0x629f: 0x003a1085,
-	0x62a1: 0x00393c85, 0x62a2: 0x00396485,
-	0x62a4: 0x003a6885, 0x62a7: 0x00397285,
-	0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85,
-	0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85,
-	0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285,
-	0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485,
-	0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085,
-	0x62bc: 0x00393a85, 0x62be: 0x0039fe85,
-	// Block 0x18b, offset 0x62c0
-	0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885,
-	0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285,
-	0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085,
-	0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85,
-	0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485,
-	0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485,
-	0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085,
-	0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885,
-	0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285,
-	0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085,
-	0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85,
-	0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485,
-	0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485,
-	0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085,
-	// Block 0x18c, offset 0x6300
-	0x6330: 0x40070a20, 0x6331: 0x40070c20,
-	// Block 0x18d, offset 0x6340
-	0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420,
-	0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20,
-	0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420,
-	0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20,
-	0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420,
-	0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20,
-	0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420,
-	0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20,
-	0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420,
-	0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20,
-	0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420,
-	0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20,
-	0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420,
-	0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20,
-	0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420,
-	// Block 0x18e, offset 0x6380
-	0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20,
-	0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420,
-	0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20,
-	0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420,
-	0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20,
-	0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420,
-	0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20,
-	0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420,
-	0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20,
-	0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420,
-	0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20,
-	0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420,
-	0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20,
-	0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420,
-	0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20,
-	0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420,
-	// Block 0x18f, offset 0x63c0
-	0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20,
-	0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420,
-	0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20,
-	0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420,
-	0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20,
-	0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420,
-	0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20,
-	0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420,
-	0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20,
-	0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020,
-	0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820,
-	0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020,
-	0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620,
-	// Block 0x190, offset 0x6400
-	0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20,
-	0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420,
-	0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20,
-	0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420,
-	0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20,
-	0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220,
-	0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20,
-	0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220,
-	// Block 0x191, offset 0x6440
-	0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04,
-	0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04,
-	0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04,
-	0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04,
-	0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04,
-	0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04,
-	0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04,
-	0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04,
-	0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04,
-	0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c,
-	0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c,
-	0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d,
-	0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d,
-	0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d,
-	0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d,
-	// Block 0x192, offset 0x6480
-	0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d,
-	0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d,
-	0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d,
-	0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d,
-	0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c,
-	0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c,
-	0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c,
-	0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c,
-	0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c,
-	0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c,
-	0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414,
-	0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d,
-	0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d,
-	0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d,
-	0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d,
-	// Block 0x193, offset 0x64c0
-	0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d,
-	0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d,
-	0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81,
-	0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0,
-	0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4,
-	0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b,
-	0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0,
-	// Block 0x194, offset 0x6500
-	0x6526: 0x40110c20, 0x6527: 0x40110e20,
-	0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620,
-	0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20,
-	0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620,
-	0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20,
-	0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620,
-	0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20,
-	// Block 0x195, offset 0x6540
-	0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c,
-	0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c,
-	0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c,
-	0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c,
-	0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c,
-	0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c,
-	0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c,
-	0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c,
-	0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c,
-	0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c,
-	0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c,
-	0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c,
-	// Block 0x196, offset 0x6580
-	0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404,
-	0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404,
-	0x6588: 0xf0000404,
-	0x6590: 0x02bf2e86, 0x6591: 0x02a7de86,
-	// Block 0x197, offset 0x65c0
-	0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20,
-	0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220,
-	0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20,
-	0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220,
-	0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20,
-	0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220,
-	0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20,
-	0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220,
-	0x65e0: 0x40214420,
-	0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20,
-	0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220,
-	0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20,
-	0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220,
-	// Block 0x198, offset 0x6600
-	0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20,
-	0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220,
-	0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20,
-	0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220,
-	0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20,
-	0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220,
-	0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20,
-	0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220,
-	0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20,
-	0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220,
-	0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20,
-	0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220,
-	0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20,
-	0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220,
-	0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20,
-	0x663c: 0x4021dc20,
-	// Block 0x199, offset 0x6640
-	0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420,
-	0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20,
-	0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420,
-	0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20,
-	0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420,
-	0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20,
-	0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420,
-	0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20,
-	0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420,
-	0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20,
-	0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420,
-	0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20,
-	0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420,
-	// Block 0x19a, offset 0x6680
-	0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20,
-	0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220,
-	0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820,
-	0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020,
-	0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820,
-	0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020,
-	0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820,
-	0x66b0: 0x40227a20,
-	// Block 0x19b, offset 0x66c0
-	0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220,
-	0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20,
-	0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220,
-	0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20,
-	0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220,
-	0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20,
-	0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220,
-	0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20,
-	0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220,
-	0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20,
-	0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220,
-	0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20,
-	0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220,
-	0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20,
-	0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220,
-	0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820,
-	// Block 0x19c, offset 0x6700
-	0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20,
-	0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620,
-	0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20,
-	0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620,
-	0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20,
-	0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620,
-	0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20,
-	0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620,
-	0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20,
-	0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620,
-	0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20,
-	0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620,
-	0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20,
-	0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620,
-	0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20,
-	0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620,
-	// Block 0x19d, offset 0x6740
-	0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20,
-	0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620,
-	0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20,
-	0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620,
-	0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20,
-	0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620,
-	0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20,
-	0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620,
-	0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20,
-	0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620,
-	0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20,
-	0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620,
-	0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20,
-	0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620,
-	0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20,
-	0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620,
-	// Block 0x19e, offset 0x6780
-	0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20,
-	0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620,
-	0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20,
-	0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620,
-	0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20,
-	0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620,
-	0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20,
-	0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620,
-	0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20,
-	0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620,
-	0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20,
-	0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620,
-	0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20,
-	0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620,
-	0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20,
-	0x67bc: 0x40246e20,
-	// Block 0x19f, offset 0x67c0
-	0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620,
-	0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20,
-	0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620,
-	0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20,
-	0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620,
-	0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20,
-	0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620,
-	0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20,
-	0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620,
-	0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20,
-	0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620,
-	0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20,
-	0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620,
-	0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20,
-	0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620,
-	0x67fc: 0x4024e820, 0x67fd: 0x4024ea20,
-	// Block 0x1a0, offset 0x6800
-	0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220,
-	0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20,
-	0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220,
-	0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20,
-	0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220,
-	0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20,
-	0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220,
-	// Block 0x1a1, offset 0x6840
-	0x687b: 0x40252420,
-	0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20,
-	// Block 0x1a2, offset 0x6880
-	0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420,
-	0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20,
-	0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420,
-	0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20,
-	0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420,
-	0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20,
-	0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420,
-	0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20,
-	0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420,
-	0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20,
-	0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420,
-	0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20,
-	0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420,
-	0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20,
-	0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420,
-	0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20,
-	// Block 0x1a3, offset 0x68c0
-	0x68c0: 0x4025ae20,
-	0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420,
-	0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20,
-	0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420,
-	// Block 0x1a4, offset 0x6900
-	0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20,
-	0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420,
-	0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20,
-	0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420,
-	0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20,
-	0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420,
-	0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20,
-	0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420,
-	0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20,
-	0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420,
-	0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20,
-	0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420,
-	0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20,
-	0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420,
-	0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20,
-	0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420,
-	// Block 0x1a5, offset 0x6940
-	0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20,
-	0x6944: 0x40264e20, 0x6945: 0x40265020,
-	// Block 0x1a6, offset 0x6980
-	0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820,
-	0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020,
-	0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820,
-	0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020,
-	0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820,
-	0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020,
-	0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820,
-	0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020,
-	0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820,
-	0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020,
-	0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820,
-	0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020,
-	0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820,
-	0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020,
-	0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820,
-	0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020,
-	// Block 0x1a7, offset 0x69c0
-	0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820,
-	0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020,
-	0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820,
-	0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020,
-	0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820,
-	0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020,
-	0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820,
-	0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020,
-	0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820,
-	0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020,
-	0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820,
-	0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020,
-	0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820,
-	// Block 0x1a8, offset 0x6a00
-	0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420,
-	0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420,
-	0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20,
-	0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820,
-	0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220,
-	0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20,
-	0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20,
-	0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20,
-	0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20,
-	0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820,
-	0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20,
-	0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620,
-	0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20,
-	0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20,
-	0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20,
-	0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020,
-	// Block 0x1a9, offset 0x6a40
-	0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620,
-	0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220,
-	0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20,
-	0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820,
-	0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820,
-	0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220,
-	0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20,
-	0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420,
-	0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620,
-	0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20,
-	0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20,
-	0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20,
-	0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20,
-	0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020,
-	0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820,
-	0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620,
-	// Block 0x1aa, offset 0x6a80
-	0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20,
-	0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220,
-	0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020,
-	0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420,
-	0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220,
-	0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020,
-	0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620,
-	0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220,
-	0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820,
-	0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820,
-	0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20,
-	0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20,
-	0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620,
-	0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020,
-	0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020,
-	0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420,
-	// Block 0x1ab, offset 0x6ac0
-	0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220,
-	0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820,
-	0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620,
-	0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220,
-	0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20,
-	0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220,
-	0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20,
-	0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420,
-	0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20,
-	0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20,
-	0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020,
-	0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220,
-	0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420,
-	0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20,
-	0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820,
-	0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20,
-	// Block 0x1ac, offset 0x6b00
-	0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220,
-	0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820,
-	0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620,
-	0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20,
-	0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220,
-	0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420,
-	0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20,
-	0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620,
-	0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020,
-	0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820,
-	0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20,
-	0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820,
-	0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620,
-	0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420,
-	0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220,
-	0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020,
-	// Block 0x1ad, offset 0x6b40
-	0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220,
-	0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20,
-	0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20,
-	0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820,
-	0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20,
-	0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620,
-	0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20,
-	0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20,
-	0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220,
-	0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020,
-	0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20,
-	0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420,
-	0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20,
-	0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20,
-	0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420,
-	0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020,
-	// Block 0x1ae, offset 0x6b80
-	0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620,
-	0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20,
-	0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220,
-	0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220,
-	0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220,
-	0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820,
-	0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20,
-	0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20,
-	0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820,
-	0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620,
-	0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420,
-	0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220,
-	0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020,
-	0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220,
-	0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220,
-	0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20,
-	// Block 0x1af, offset 0x6bc0
-	0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020,
-	0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20,
-	0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20,
-	0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020,
-	0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020,
-	0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20,
-	0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820,
-	0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020,
-	0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220,
-	0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020,
-	0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220,
-	0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20,
-	0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620,
-	0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420,
-	0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420,
-	0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620,
-	// Block 0x1b0, offset 0x6c00
-	0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620,
-	0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20,
-	0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020,
-	0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20,
-	0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20,
-	0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220,
-	0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20,
-	0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020,
-	// Block 0x1b1, offset 0x6c40
-	0x6c41: 0xa0000000,
-	0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000,
-	0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000,
-	0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000,
-	0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000,
-	0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000,
-	0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000,
-	0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000,
-	0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000,
-	// Block 0x1b2, offset 0x6c80
-	0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000,
-	0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000,
-	0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000,
-	0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000,
-	0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000,
-	0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000,
-	0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000,
-	0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000,
-	0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000,
-	0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000,
-	0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000,
-	0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000,
-	0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000,
-	0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000,
-	0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000,
-	0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000,
-	// Block 0x1b3, offset 0x6cc0
-	0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000,
-	0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000,
-	0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000,
-	0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000,
-	0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000,
-	0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000,
-	0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000,
-	0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000,
-	0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000,
-	0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000,
-	0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000,
-	0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000,
-	// Block 0x1b4, offset 0x6d00
-	0x6d00: 0xe0000cfe, 0x6d01: 0xe0000cf8, 0x6d02: 0xe0000cf5, 0x6d03: 0xe0000d51,
-	0x6d04: 0xe0000d4e, 0x6d05: 0xe0000d6f, 0x6d06: 0xe0000d6c, 0x6d07: 0xe0000d5d,
-	0x6d08: 0xe0000d5a, 0x6d09: 0x002e9e89, 0x6d0a: 0x002eda88, 0x6d0b: 0x402eda20,
-	0x6d0c: 0xe0000e2e, 0x6d0d: 0xe0000e2b, 0x6d0e: 0xe0000da0, 0x6d0f: 0xe0000d9d,
-	0x6d10: 0xe0000de0, 0x6d11: 0xe0000ddd, 0x6d12: 0xe0000e93, 0x6d13: 0xe0000e8f,
-	0x6d14: 0xe0000eca, 0x6d15: 0xe0000ec7, 0x6d16: 0xe0000edc, 0x6d17: 0xe0000ed9,
-	0x6d18: 0xe0000ed0, 0x6d19: 0xe0000ecd, 0x6d1a: 0xe0000f1f, 0x6d1b: 0xe0000f1c,
-	0x6d1c: 0xe0000f2d, 0x6d1d: 0xe0000f2a, 0x6d1e: 0xe0000f47, 0x6d1f: 0xe0000f44,
-	0x6d20: 0xe0000f33, 0x6d21: 0xe0000f30, 0x6d22: 0xe0000f99, 0x6d23: 0xe0000f96,
-	0x6d24: 0xe0000f8a, 0x6d25: 0xe0000f87, 0x6d26: 0x00303688, 0x6d27: 0x40303620,
-	0x6d28: 0xe000102b, 0x6d29: 0xe0001028, 0x6d2a: 0xe000103f, 0x6d2b: 0xe000103c,
-	0x6d2c: 0xe0000fe7, 0x6d2d: 0xe0000fe4, 0x6d2e: 0xe0000ff9, 0x6d2f: 0xe0000ff6,
-	0x6d30: 0xe0001025, 0x6d31: 0xe0001022, 0x6d32: 0xe0001039, 0x6d33: 0xe0001036,
-	0x6d34: 0xe00010d8, 0x6d35: 0xe00010d5, 0x6d36: 0xe000110e, 0x6d37: 0xe000110b,
-	0x6d38: 0xe0001117, 0x6d39: 0xe000113b, 0x6d3a: 0xe0001138, 0x6d3b: 0xe000114d,
-	0x6d3c: 0xe000114a, 0x6d3d: 0xe0001147, 0x6d3e: 0xe0001144, 0x6d3f: 0xe0000f64,
-	// Block 0x1b5, offset 0x6d40
-	0x6d40: 0xa0000000, 0x6d41: 0xa0000000, 0x6d42: 0xa0000000, 0x6d43: 0xa0000000,
-	0x6d44: 0xa0000000, 0x6d46: 0x40096620, 0x6d47: 0x40096a20,
-	0x6d48: 0x40070820, 0x6d49: 0x4004f220, 0x6d4a: 0x4004f620, 0x6d4b: 0x4027e620,
-	0x6d4c: 0x40024820, 0x6d4d: 0x40024a20, 0x6d4e: 0x40070e20, 0x6d4f: 0x40071020,
-	0x6d50: 0xae600000, 0x6d51: 0xae600000, 0x6d52: 0xae600000, 0x6d53: 0xae600000,
-	0x6d54: 0xae600000, 0x6d55: 0xae600000, 0x6d56: 0xae600000, 0x6d57: 0xae600000,
-	0x6d58: 0xa1e00000, 0x6d59: 0xa1f00000, 0x6d5a: 0xa2000000, 0x6d5b: 0x40026420,
-	0x6d5e: 0x40027020, 0x6d5f: 0x4002cc20,
-	0x6d60: 0x403aa220, 0x6d61: 0x40391c20, 0x6d62: 0x40391e20, 0x6d63: 0x40392020,
-	0x6d64: 0x40392620, 0x6d65: 0x40392820, 0x6d66: 0x40393020, 0x6d67: 0xc0520151,
-	0x6d68: 0x40393c20, 0x6d69: 0x40395621, 0x6d6a: 0x40395620, 0x6d6b: 0x40395820,
-	0x6d6c: 0x40396420, 0x6d6d: 0x40397220, 0x6d6e: 0x40397420, 0x6d6f: 0x40398820,
-	0x6d70: 0x40398a20, 0x6d71: 0x4039a420, 0x6d72: 0x4039a620, 0x6d73: 0x4039c620,
-	0x6d74: 0x4039c820, 0x6d75: 0x4039dc20, 0x6d76: 0x4039de20, 0x6d77: 0x4039e620,
-	0x6d78: 0x4039e820, 0x6d79: 0x4039ee20, 0x6d7a: 0x4039f020, 0x6d7b: 0x403a3820,
-	0x6d7c: 0x403a3a20, 0x6d7d: 0x403a9c20, 0x6d7e: 0x403a9e20, 0x6d7f: 0x403aa020,
-	// Block 0x1b6, offset 0x6d80
-	0x6d80: 0xa0000000, 0x6d81: 0x4039fc20, 0x6d82: 0x403a1220, 0x6d83: 0x403a1a20,
-	0x6d84: 0x403a4020, 0x6d85: 0x403a4e20, 0x6d86: 0x403a5620, 0x6d87: 0x403a6820,
-	0x6d88: 0xc0560171, 0x6d89: 0x403a9021, 0x6d8a: 0xc0580171, 0x6d8b: 0xa1b0a202,
-	0x6d8c: 0xa1c0a502, 0x6d8d: 0xa1d0a902, 0x6d8e: 0xa1e0ad02, 0x6d8f: 0xa1f0b202,
-	0x6d90: 0xa200b602, 0x6d91: 0xa210ba02, 0x6d92: 0xa220bc02, 0x6d93: 0xae60bd02,
-	0x6d94: 0xae60be02, 0x6d95: 0xadc0bf02, 0x6d96: 0xadc0c102, 0x6d97: 0xae60c202,
-	0x6d98: 0xae60c302, 0x6d99: 0xae60c402, 0x6d9a: 0xae60c502, 0x6d9b: 0xae60c602,
-	0x6d9c: 0xadc0c702, 0x6d9d: 0xae60c802, 0x6d9e: 0xae60c902, 0x6d9f: 0xadc0c002,
-	0x6da0: 0xe000015e, 0x6da1: 0xe00001e6, 0x6da2: 0xe0000301, 0x6da3: 0xe00003db,
-	0x6da4: 0xe00004b6, 0x6da5: 0xe0000580, 0x6da6: 0xe000064b, 0x6da7: 0xe00006f3,
-	0x6da8: 0xe000079f, 0x6da9: 0xe0000844, 0x6daa: 0x4004ee20, 0x6dab: 0x40024c20,
-	0x6dac: 0x40024e20, 0x6dad: 0x4004de20, 0x6dae: 0x40393a20, 0x6daf: 0x403a1020,
-	0x6db0: 0xa230d102, 0x6db1: 0x40392420, 0x6db2: 0x40392220, 0x6db3: 0x40392a20,
-	0x6db4: 0x00391c84, 0x6db5: 0xf0000404, 0x6db6: 0xf0000404, 0x6db7: 0xf0000404,
-	0x6db8: 0xf0000404, 0x6db9: 0x40395a20, 0x6dba: 0x40395c20, 0x6dbb: 0x40393e20,
-	0x6dbc: 0x40395e20, 0x6dbd: 0x40396020, 0x6dbe: 0x40394020, 0x6dbf: 0x40396220,
-	// Block 0x1b7, offset 0x6dc0
-	0x6dc0: 0x40073420, 0x6dc1: 0x40073620,
-	0x6dd3: 0x003a269a,
-	0x6dd4: 0x003a2699, 0x6dd5: 0x003a2697, 0x6dd6: 0x003a2698, 0x6dd7: 0x003a7c9a,
-	0x6dd8: 0x003a7c99, 0x6dd9: 0x003a7a9a, 0x6dda: 0x003a7a99, 0x6ddb: 0x003a7e9a,
-	0x6ddc: 0x003a7e99, 0x6ddd: 0xf0001a1a, 0x6dde: 0x003a849a, 0x6ddf: 0x003a8499,
-	0x6de0: 0x003a789a, 0x6de1: 0x003a7899, 0x6de2: 0x003a809a, 0x6de3: 0x003a8099,
-	0x6de4: 0x003a989a, 0x6de5: 0x003a9899, 0x6de6: 0x003a9897, 0x6de7: 0x003a9898,
-	0x6de8: 0x003a90a3, 0x6de9: 0x003a90a4, 0x6dea: 0xe0001559, 0x6deb: 0xe0001556,
-	0x6dec: 0xe0001589, 0x6ded: 0xe0001586, 0x6dee: 0xe000158f, 0x6def: 0xe000158c,
-	0x6df0: 0xe000159b, 0x6df1: 0xe0001598, 0x6df2: 0xe0001595, 0x6df3: 0xe0001592,
-	0x6df4: 0xe00015a1, 0x6df5: 0xe000159e, 0x6df6: 0xe00015bf, 0x6df7: 0xe00015bc,
-	0x6df8: 0xe00015b9, 0x6df9: 0xe00015ad, 0x6dfa: 0xe00015a7, 0x6dfb: 0xe00015a4,
-	0x6dfc: 0x003a929a, 0x6dfd: 0x003a9299, 0x6dfe: 0x003a9297, 0x6dff: 0x003a9298,
-	// Block 0x1b8, offset 0x6e00
-	0x6e00: 0xe000155f, 0x6e01: 0xe0001565, 0x6e02: 0xe000157a, 0x6e03: 0xe00015b0,
-	0x6e04: 0xe00015b6, 0x6e05: 0xf0001a1a, 0x6e06: 0xf0001a1a, 0x6e07: 0xf0001a1a,
-	0x6e08: 0xf0001a1a, 0x6e09: 0xe00024a2, 0x6e0a: 0xf0001a1a, 0x6e0b: 0xf0001a1a,
-	0x6e0c: 0xf0001a1a, 0x6e0d: 0xf0001a1a, 0x6e0e: 0xf0001a1a, 0x6e0f: 0xe00024a8,
-	0x6e10: 0xf0001a1a, 0x6e11: 0xf0001a1a, 0x6e12: 0xf0001a1a, 0x6e13: 0xe00024ae,
-	0x6e14: 0xf0001a1a, 0x6e15: 0xf0001a1a, 0x6e16: 0xf0001a1a, 0x6e17: 0xf0001a1a,
-	0x6e18: 0xf0001a1a, 0x6e19: 0xf0001a1a, 0x6e1a: 0xf0001a1a, 0x6e1b: 0xf0001a1a,
-	0x6e1c: 0xf0001a1a, 0x6e1d: 0xf0001a1a, 0x6e1e: 0xf0001a1a, 0x6e1f: 0xf0001a1a,
-	0x6e20: 0xf0001a1a, 0x6e21: 0xf0001a1a, 0x6e22: 0xf0001a1a, 0x6e23: 0xf0001a1a,
-	0x6e24: 0xf0001a1a, 0x6e25: 0xf0001a1a, 0x6e26: 0xf0001a1a, 0x6e27: 0xf0001a1a,
-	0x6e28: 0xf0001a1a, 0x6e29: 0xf0001a1a, 0x6e2a: 0xf0001a1a, 0x6e2b: 0xf0001a1a,
-	0x6e2c: 0xf0001a1a, 0x6e2d: 0xf0001a1a, 0x6e2e: 0xf0001a1a, 0x6e2f: 0xf0001a1a,
-	0x6e30: 0xf0001a1a, 0x6e31: 0xe00024f0, 0x6e32: 0xf0001a1a, 0x6e33: 0xf0001a1a,
-	0x6e34: 0xf0001a1a, 0x6e35: 0xe00024f6, 0x6e36: 0xf0001a1a, 0x6e37: 0xf0001a1a,
-	0x6e38: 0xf0001a1a, 0x6e39: 0xf0001a1a, 0x6e3a: 0xf0001a1a, 0x6e3b: 0xf0001a1a,
-	0x6e3c: 0xf0001a1a, 0x6e3d: 0xe00024fc, 0x6e3e: 0xf0001a1a, 0x6e3f: 0xf0001a1a,
-	// Block 0x1b9, offset 0x6e40
-	0x6e40: 0xf0001a1a, 0x6e41: 0xf0001a1a, 0x6e42: 0xf0001a1a, 0x6e43: 0xe0002502,
-	0x6e44: 0xf0001a1a, 0x6e45: 0xf0001a1a, 0x6e46: 0xf0001a1a, 0x6e47: 0xf0001a1a,
-	0x6e48: 0xf0001a1a, 0x6e49: 0xe0002505, 0x6e4a: 0xf0001a1a, 0x6e4b: 0xf0001a1a,
-	0x6e4c: 0xf0001a1a, 0x6e4d: 0xf0001a1a, 0x6e4e: 0xf0001a1a, 0x6e4f: 0xe000250b,
-	0x6e50: 0xf0001a1a, 0x6e51: 0xf0001a1a, 0x6e52: 0xf0001a1a, 0x6e53: 0xe000250e,
-	0x6e54: 0xf0001a1a, 0x6e55: 0xf0001a1a, 0x6e56: 0xf0001a1a, 0x6e57: 0xf0001a1a,
-	0x6e58: 0xf0001a1a, 0x6e59: 0xe0002514, 0x6e5a: 0xf0001a1a, 0x6e5b: 0xf0001a1a,
-	0x6e5c: 0xf0001a1a, 0x6e5d: 0x003a90a8, 0x6e5e: 0xe0000003, 0x6e5f: 0xe0000006,
-	0x6e60: 0xe0000009, 0x6e61: 0xe000000c, 0x6e62: 0xe000000f, 0x6e63: 0xe0000012,
-	0x6e64: 0xe000156b, 0x6e65: 0xe000156e, 0x6e66: 0xe0001577, 0x6e67: 0xe000157d,
-	0x6e68: 0xe00015aa, 0x6e69: 0xe00015b3, 0x6e6a: 0xf0001919, 0x6e6b: 0xf0001919,
-	0x6e6c: 0xf0001919, 0x6e6d: 0xf0001919, 0x6e6e: 0xe000249f, 0x6e6f: 0xf0001919,
-	0x6e70: 0xf0001919, 0x6e71: 0xf0001919, 0x6e72: 0xf0001919, 0x6e73: 0xf0001919,
-	0x6e74: 0xe00024a5, 0x6e75: 0xf0001919, 0x6e76: 0xf0001919, 0x6e77: 0xf0001919,
-	0x6e78: 0xf0001919, 0x6e79: 0xf0001919, 0x6e7a: 0xe00024ab, 0x6e7b: 0xf0001919,
-	0x6e7c: 0xe00024ed, 0x6e7d: 0xf0001919, 0x6e7e: 0xe00024f3, 0x6e7f: 0xf0001919,
-	// Block 0x1ba, offset 0x6e80
-	0x6e80: 0xf0001919, 0x6e81: 0xf0001919, 0x6e82: 0xf0001919, 0x6e83: 0xe00024f9,
-	0x6e84: 0xf0001919, 0x6e85: 0xf0001919, 0x6e86: 0xe00024ff, 0x6e87: 0xf0001919,
-	0x6e88: 0xf0001919, 0x6e89: 0xf0001919, 0x6e8a: 0xf0001919, 0x6e8b: 0xf0001919,
-	0x6e8c: 0xf0001919, 0x6e8d: 0xf0001919, 0x6e8e: 0xe0002508, 0x6e8f: 0xf0001919,
-	0x6e90: 0x003a90a7, 0x6e91: 0xf0001919, 0x6e92: 0xf0001919, 0x6e93: 0xf0001919,
-	0x6e94: 0xf0001919, 0x6e95: 0xe0002511, 0x6e96: 0xf0001919, 0x6e97: 0xe000155c,
-	0x6e98: 0xe0001562, 0x6e99: 0xe0001568, 0x6e9a: 0xe0001571, 0x6e9b: 0xe0001580,
-	0x6e9c: 0xf0001717, 0x6e9d: 0xf0001717, 0x6e9e: 0xf0001717, 0x6e9f: 0xf0001717,
-	0x6ea0: 0xf0001717, 0x6ea1: 0xf0001717, 0x6ea2: 0xf0001717, 0x6ea3: 0xf0001717,
-	0x6ea4: 0xf0001717, 0x6ea5: 0xf0001717, 0x6ea6: 0xf0001717, 0x6ea7: 0xf0001717,
-	0x6ea8: 0xf0001717, 0x6ea9: 0xf0001717, 0x6eaa: 0xf0001717, 0x6eab: 0xf0001717,
-	0x6eac: 0xf0001717, 0x6ead: 0xf0001717, 0x6eae: 0xf0001717, 0x6eaf: 0xf0001717,
-	0x6eb0: 0xf0001717, 0x6eb1: 0xf0001717, 0x6eb2: 0xf0001717, 0x6eb3: 0xf0001717,
-	0x6eb4: 0xf0001717, 0x6eb5: 0xf0001717, 0x6eb6: 0xf0001717, 0x6eb7: 0xf0001717,
-	0x6eb8: 0xf0001717, 0x6eb9: 0xf0001717, 0x6eba: 0xf0001717, 0x6ebb: 0xf0001717,
-	0x6ebc: 0xf0001717, 0x6ebd: 0xf0001717, 0x6ebe: 0xf0001717, 0x6ebf: 0xf0001717,
-	// Block 0x1bb, offset 0x6ec0
-	0x6ec0: 0xf0001717, 0x6ec1: 0xf0001717, 0x6ec2: 0xf0001717, 0x6ec3: 0xf0001717,
-	0x6ec4: 0xf0001717, 0x6ec5: 0xf0001717, 0x6ec6: 0xf0001717, 0x6ec7: 0xf0001717,
-	0x6ec8: 0xf0001717, 0x6ec9: 0xf0001717, 0x6eca: 0xf0001717, 0x6ecb: 0xf0001717,
-	0x6ecc: 0xf0001717, 0x6ecd: 0xf0001717, 0x6ece: 0xf0001717, 0x6ecf: 0xf0001717,
-	0x6ed0: 0xf0001717, 0x6ed1: 0xf0001717, 0x6ed2: 0xf0001717, 0x6ed3: 0xf0001717,
-	0x6ed4: 0xf0001717, 0x6ed5: 0xf0001717, 0x6ed6: 0xf0001717, 0x6ed7: 0xf0001717,
-	0x6ed8: 0xf0001717, 0x6ed9: 0xf0001717, 0x6eda: 0xf0001717, 0x6edb: 0xf0001717,
-	0x6edc: 0xf0001717, 0x6edd: 0xf0001717, 0x6ede: 0xf0001717, 0x6edf: 0xe0001574,
-	0x6ee0: 0xe0001583, 0x6ee1: 0xf0001818, 0x6ee2: 0xf0001818, 0x6ee3: 0xf0001818,
-	0x6ee4: 0xf0001818, 0x6ee5: 0xf0001818, 0x6ee6: 0xf0001818, 0x6ee7: 0xf0001818,
-	0x6ee8: 0xf0001818, 0x6ee9: 0xf0001818, 0x6eea: 0xf0001818, 0x6eeb: 0xf0001818,
-	0x6eec: 0xf0001818, 0x6eed: 0xf0001818, 0x6eee: 0xf0001818, 0x6eef: 0xf0001818,
-	0x6ef0: 0xf0001818, 0x6ef1: 0xf0001818, 0x6ef2: 0xf0001818, 0x6ef3: 0xf0001818,
-	0x6ef4: 0xf0001818, 0x6ef5: 0xe00024de, 0x6ef6: 0xf0001a1a, 0x6ef7: 0xe00024e4,
-	0x6ef8: 0xf0001a1a, 0x6ef9: 0xe00024ea, 0x6efa: 0xf0001a1a, 0x6efb: 0xe00024c6,
-	0x6efc: 0xf0001a1a, 0x6efd: 0xe00024cc, 0x6efe: 0xf0001a1a, 0x6eff: 0xe00024ba,
-	// Block 0x1bc, offset 0x6f00
-	0x6f00: 0xf0001a1a, 0x6f01: 0xe00024b4, 0x6f02: 0xf0001a1a, 0x6f03: 0xe00024c0,
-	0x6f04: 0xf0001a1a, 0x6f05: 0xe00024d2, 0x6f06: 0xf0001a1a, 0x6f07: 0xe00024d8,
-	0x6f08: 0xf0001a1a, 0x6f09: 0xf0001a1a, 0x6f0a: 0xf0001a1a, 0x6f0b: 0xf0001a1a,
-	0x6f0c: 0xf0001a1a, 0x6f0d: 0xf0001a1a, 0x6f0e: 0xf0001a1a, 0x6f0f: 0xf0001a1a,
-	0x6f10: 0xf0001a1a, 0x6f11: 0xe00024db, 0x6f12: 0xf0001919, 0x6f13: 0xe00024e1,
-	0x6f14: 0xf0001919, 0x6f15: 0xe00024e7, 0x6f16: 0xf0001919, 0x6f17: 0xe00024c3,
-	0x6f18: 0xf0001919, 0x6f19: 0xe00024c9, 0x6f1a: 0xf0001919, 0x6f1b: 0xe00024b7,
-	0x6f1c: 0xf0001919, 0x6f1d: 0xe00024b1, 0x6f1e: 0xf0001919, 0x6f1f: 0xe00024bd,
-	0x6f20: 0xf0001919, 0x6f21: 0xe00024cf, 0x6f22: 0xf0001919, 0x6f23: 0xe00024d5,
-	0x6f24: 0xf0001919, 0x6f25: 0xf0001919, 0x6f26: 0xf0001919, 0x6f27: 0xf0001919,
-	0x6f28: 0xf0001919, 0x6f29: 0xf0001919, 0x6f2a: 0xf0001919, 0x6f2b: 0xf0001919,
-	0x6f2c: 0xf0001919, 0x6f2d: 0xf0001717, 0x6f2e: 0xf0001717, 0x6f2f: 0xf0001717,
-	0x6f30: 0xf0001717, 0x6f31: 0xf0001717, 0x6f32: 0xf0001717, 0x6f33: 0xf0001717,
-	0x6f34: 0xf0001818, 0x6f35: 0xf0001818, 0x6f36: 0xf0001818, 0x6f37: 0xf0001818,
-	0x6f38: 0xf0001818, 0x6f39: 0xf0001818, 0x6f3a: 0xf0001818, 0x6f3b: 0xf0001818,
-	0x6f3c: 0xf0001919, 0x6f3d: 0xf0001a1a, 0x6f3e: 0x4004c020, 0x6f3f: 0x4004c220,
-	// Block 0x1bd, offset 0x6f40
-	0x6f40: 0x00391c9a, 0x6f41: 0x00391e9a, 0x6f42: 0x00391e99, 0x6f43: 0x0039209a,
-	0x6f44: 0x00392099, 0x6f45: 0x0039269a, 0x6f46: 0x00392699, 0x6f47: 0x0039289a,
-	0x6f48: 0x00392899, 0x6f49: 0x0039309a, 0x6f4a: 0x00393099, 0x6f4b: 0x00393097,
-	0x6f4c: 0x00393098, 0x6f4d: 0x0039389a, 0x6f4e: 0x00393899, 0x6f4f: 0x00393c9a,
-	0x6f50: 0x00393c99, 0x6f51: 0x00393c97, 0x6f52: 0x00393c98, 0x6f53: 0x003956a4,
-	0x6f54: 0x003956a3, 0x6f55: 0x0039569a, 0x6f56: 0x00395699, 0x6f57: 0x00395697,
-	0x6f58: 0x00395698, 0x6f59: 0x0039589a, 0x6f5a: 0x00395899, 0x6f5b: 0x00395897,
-	0x6f5c: 0x00395898, 0x6f5d: 0x0039649a, 0x6f5e: 0x00396499, 0x6f5f: 0x00396497,
-	0x6f60: 0x00396498, 0x6f61: 0x0039729a, 0x6f62: 0x00397299, 0x6f63: 0x00397297,
-	0x6f64: 0x00397298, 0x6f65: 0x0039749a, 0x6f66: 0x00397499, 0x6f67: 0x00397497,
-	0x6f68: 0x00397498, 0x6f69: 0x0039889a, 0x6f6a: 0x00398899, 0x6f6b: 0x00398a9a,
-	0x6f6c: 0x00398a99, 0x6f6d: 0x0039a49a, 0x6f6e: 0x0039a499, 0x6f6f: 0x0039a69a,
-	0x6f70: 0x0039a699, 0x6f71: 0x0039c69a, 0x6f72: 0x0039c699, 0x6f73: 0x0039c697,
-	0x6f74: 0x0039c698, 0x6f75: 0x0039c89a, 0x6f76: 0x0039c899, 0x6f77: 0x0039c897,
-	0x6f78: 0x0039c898, 0x6f79: 0x0039dc9a, 0x6f7a: 0x0039dc99, 0x6f7b: 0x0039dc97,
-	0x6f7c: 0x0039dc98, 0x6f7d: 0x0039de9a, 0x6f7e: 0x0039de99, 0x6f7f: 0x0039de97,
-	// Block 0x1be, offset 0x6f80
-	0x6f80: 0x0039de98, 0x6f81: 0x0039e69a, 0x6f82: 0x0039e699, 0x6f83: 0x0039e697,
-	0x6f84: 0x0039e698, 0x6f85: 0x0039e89a, 0x6f86: 0x0039e899, 0x6f87: 0x0039e897,
-	0x6f88: 0x0039e898, 0x6f89: 0x0039ee9a, 0x6f8a: 0x0039ee99, 0x6f8b: 0x0039ee97,
-	0x6f8c: 0x0039ee98, 0x6f8d: 0x0039f09a, 0x6f8e: 0x0039f099, 0x6f8f: 0x0039f097,
-	0x6f90: 0x0039f098, 0x6f91: 0x0039fc9a, 0x6f92: 0x0039fc99, 0x6f93: 0x0039fc97,
-	0x6f94: 0x0039fc98, 0x6f95: 0x003a129a, 0x6f96: 0x003a1299, 0x6f97: 0x003a1297,
-	0x6f98: 0x003a1298, 0x6f99: 0x003a1a9a, 0x6f9a: 0x003a1a99, 0x6f9b: 0x003a1a97,
-	0x6f9c: 0x003a1a98, 0x6f9d: 0x003a409a, 0x6f9e: 0x003a4099, 0x6f9f: 0x003a4097,
-	0x6fa0: 0x003a4098, 0x6fa1: 0x003a4e9a, 0x6fa2: 0x003a4e99, 0x6fa3: 0x003a4e97,
-	0x6fa4: 0x003a4e98, 0x6fa5: 0x003a569a, 0x6fa6: 0x003a5699, 0x6fa7: 0x003a5697,
-	0x6fa8: 0x003a5698, 0x6fa9: 0x003a689a, 0x6faa: 0x003a6899, 0x6fab: 0x003a6897,
-	0x6fac: 0x003a6898, 0x6fad: 0x003a749a, 0x6fae: 0x003a7499, 0x6faf: 0x003a90a6,
-	0x6fb0: 0x003a90a5, 0x6fb1: 0x003a909a, 0x6fb2: 0x003a9099, 0x6fb3: 0x003a9097,
-	0x6fb4: 0x003a9098, 0x6fb5: 0xe0001732, 0x6fb6: 0xe000172f, 0x6fb7: 0xe0001738,
-	0x6fb8: 0xe0001735, 0x6fb9: 0xe000173e, 0x6fba: 0xe000173b, 0x6fbb: 0xf0001a1a,
-	0x6fbc: 0xf0001919, 0x6fbf: 0xa0000000,
-	// Block 0x1bf, offset 0x6fc0
-	0x6fc1: 0x40409a20, 0x6fc2: 0x40409820, 0x6fc3: 0x40409c20,
-	0x6fc5: 0x40407c20, 0x6fc6: 0x40407e20, 0x6fc7: 0x40408020,
-	0x6fc8: 0x40408220, 0x6fc9: 0x40408420, 0x6fca: 0x40408620, 0x6fcb: 0x40408820,
-	0x6fcc: 0x40408c20, 0x6fcf: 0x40409020,
-	0x6fd0: 0x40409220, 0x6fd3: 0x40409420,
-	0x6fd4: 0x40409620, 0x6fd5: 0xc33108b1, 0x6fd6: 0x40409a20, 0x6fd7: 0x40409c20,
-	0x6fd8: 0x40409e20, 0x6fd9: 0x4040a020, 0x6fda: 0x4040a220, 0x6fdb: 0x4040a420,
-	0x6fdc: 0x4040a620, 0x6fdd: 0x4040a820, 0x6fde: 0x4040aa20, 0x6fdf: 0x4040ac20,
-	0x6fe0: 0x4040ae20, 0x6fe1: 0x4040b020, 0x6fe2: 0x4040b220, 0x6fe3: 0x4040b420,
-	0x6fe4: 0xc32f0851, 0x6fe5: 0x4040b820, 0x6fe6: 0x4040ba20, 0x6fe7: 0x4040bc20,
-	0x6fe8: 0x4040be20, 0x6fea: 0x4040c020, 0x6feb: 0x4040c220,
-	0x6fec: 0x4040c420, 0x6fed: 0x4040c620, 0x6fee: 0x4040c820, 0x6fef: 0x4040ca20,
-	0x6ff0: 0x4040cc20, 0x6ff2: 0x4040d020,
-	0x6ff6: 0x4040d420, 0x6ff7: 0x4040d620,
-	0x6ff8: 0x4040d820, 0x6ff9: 0x4040da20,
-	0x6ffc: 0xa070f102, 0x6ffd: 0x4040dc20, 0x6ffe: 0x4040de20, 0x6fff: 0x4040e020,
-	// Block 0x1c0, offset 0x7000
-	0x7000: 0xa0000000, 0x7001: 0xa0000000, 0x7002: 0xa0000000, 0x7003: 0xa0000000,
-	0x7004: 0xa0000000, 0x7005: 0xa0000000, 0x7006: 0xa0000000, 0x7007: 0xa0000000,
-	0x7008: 0xa0000000, 0x7009: 0x40020020, 0x700a: 0x40020220, 0x700b: 0x40020420,
-	0x700c: 0x40020620, 0x700d: 0x40020820, 0x700e: 0xa0000000, 0x700f: 0xa0000000,
-	0x7010: 0xa0000000, 0x7011: 0xa0000000, 0x7012: 0xa0000000, 0x7013: 0xa0000000,
-	0x7014: 0xa0000000, 0x7015: 0xa0000000, 0x7016: 0xa0000000, 0x7017: 0xa0000000,
-	0x7018: 0xa0000000, 0x7019: 0xa0000000, 0x701a: 0xa0000000, 0x701b: 0xa0000000,
-	0x701c: 0xa0000000, 0x701d: 0xa0000000, 0x701e: 0xa0000000, 0x701f: 0xa0000000,
-	0x7020: 0x40021220, 0x7021: 0x4002ba20, 0x7022: 0x4003e020, 0x7023: 0x4004ea20,
-	0x7024: 0x4027de20, 0x7025: 0x4004ec20, 0x7026: 0x4004e620, 0x7027: 0x4003d220,
-	0x7028: 0x4003f420, 0x7029: 0x4003f620, 0x702a: 0x4004d820, 0x702b: 0x40093820,
-	0x702c: 0x40024020, 0x702d: 0x40021a20, 0x702e: 0x4002e420, 0x702f: 0x4004e220,
-	0x7030: 0x4029cc20, 0x7031: 0x4029ce20, 0x7032: 0x4029d020, 0x7033: 0x4029d220,
-	0x7034: 0x4029d420, 0x7035: 0x4029d620, 0x7036: 0x4029d820, 0x7037: 0x4029da20,
-	0x7038: 0x4029dc20, 0x7039: 0x4029de20, 0x703a: 0x40026c20, 0x703b: 0x40026220,
-	0x703c: 0x40094020, 0x703d: 0x40094220, 0x703e: 0x40094420, 0x703f: 0x4002c420,
-	// Block 0x1c1, offset 0x7040
-	0x7040: 0x4004d620, 0x7041: 0x002bde88, 0x7042: 0x002c0a88, 0x7043: 0xc3350911,
-	0x7044: 0x002c6288, 0x7045: 0x002c9888, 0x7046: 0x002d0888, 0x7047: 0xc33900d1,
-	0x7048: 0x002d6888, 0x7049: 0xc33b0931, 0x704a: 0x002dcc88, 0x704b: 0x002dfe88,
-	0x704c: 0xc0030002, 0x704d: 0x002e8288, 0x704e: 0x002e9e88, 0x704f: 0xc33f0071,
-	0x7050: 0x002f2c88, 0x7051: 0x002e0083, 0x7052: 0x002f7a88, 0x7053: 0xc3430911,
-	0x7054: 0x00302c88, 0x7055: 0xc3470071, 0x7056: 0x0030be88, 0x7057: 0x0030e288,
-	0x7058: 0x002d6a83, 0x7059: 0x00310088, 0x705a: 0x00312a88, 0x705b: 0x4003f820,
-	0x705c: 0x4004e420, 0x705d: 0x4003fa20, 0x705e: 0x40062420, 0x705f: 0x40021620,
-	0x7060: 0x40061e20, 0x7061: 0x402bde20, 0x7062: 0x402c0a20, 0x7063: 0xc3330911,
-	0x7064: 0x402c6220, 0x7065: 0x402c9820, 0x7066: 0x402d0820, 0x7067: 0xc33700d1,
-	0x7068: 0x402d6820, 0x7069: 0x402d9a20, 0x706a: 0x402dcc20, 0x706b: 0x402dfe20,
-	0x706c: 0xc0000002, 0x706d: 0x402e8220, 0x706e: 0x402e9e20, 0x706f: 0xc33d0071,
-	0x7070: 0x402f2c20, 0x7071: 0x402e0020, 0x7072: 0x402f7a20, 0x7073: 0xc3410911,
-	0x7074: 0x40302c20, 0x7075: 0xc3450071, 0x7076: 0x4030be20, 0x7077: 0x4030e220,
-	0x7078: 0x402d6a20, 0x7079: 0x40310020, 0x707a: 0x40312a20, 0x707b: 0x4003fc20,
-	0x707c: 0x40094820, 0x707d: 0x4003fe20, 0x707e: 0x40094c20, 0x707f: 0xa0000000,
-	// Block 0x1c2, offset 0x7080
-	0x7080: 0xe00008f5, 0x7081: 0xe00008ef, 0x7082: 0xe0000921, 0x7083: 0xe0000969,
-	0x7084: 0xe000095b, 0x7085: 0xe000094d, 0x7086: 0xe00009dd, 0x7087: 0x002c3c83,
-	0x7088: 0xe0000ae8, 0x7089: 0xe0000ae2, 0x708a: 0xe0000af4, 0x708b: 0xe0000b20,
-	0x708c: 0xe0002543, 0x708d: 0xe0002540, 0x708e: 0xe0002549, 0x708f: 0xe000254f,
-	0x7090: 0xe0000ab3, 0x7091: 0xe0000d63, 0x7092: 0xe0000d9a, 0x7093: 0xe0000d94,
-	0x7094: 0xe0000da6, 0x7095: 0xe0000de6, 0x7096: 0x002ee483, 0x7097: 0x40093e20,
-	0x7098: 0xe0000e12, 0x7099: 0xe0000fe1, 0x709a: 0xe0000fdb, 0x709b: 0xe0000fed,
-	0x709c: 0x00306e83, 0x709d: 0xe0001102, 0x709e: 0x00318888, 0x709f: 0xe0000f7b,
-	0x70a0: 0xe00008f2, 0x70a1: 0xe00008ec, 0x70a2: 0xe000091e, 0x70a3: 0xe0000966,
-	0x70a4: 0xe0000958, 0x70a5: 0xe000094a, 0x70a6: 0xe00009d5, 0x70a7: 0x402c3c20,
-	0x70a8: 0xe0000ae5, 0x70a9: 0xe0000adf, 0x70aa: 0xe0000af1, 0x70ab: 0xe0000b1d,
-	0x70ac: 0xe0000c28, 0x70ad: 0xe0000c22, 0x70ae: 0xe0000c34, 0x70af: 0xe0000c40,
-	0x70b0: 0xe0000aad, 0x70b1: 0xe0000d60, 0x70b2: 0xe0000d97, 0x70b3: 0xe0000d91,
-	0x70b4: 0xe0000da3, 0x70b5: 0xe0000de3, 0x70b6: 0x402ee420, 0x70b7: 0x40093c20,
-	0x70b8: 0xe0000e0f, 0x70b9: 0xe0000fde, 0x70ba: 0xe0000fd8, 0x70bb: 0xe0000fea,
-	0x70bc: 0x40306e20, 0x70bd: 0xe00010ff, 0x70be: 0x40318820, 0x70bf: 0xe0001114,
-	// Block 0x1c3, offset 0x70c0
-	0x70c0: 0xe0000983, 0x70c1: 0xe0000980, 0x70c2: 0xe00008fb, 0x70c3: 0xe00008f8,
-	0x70c4: 0xe000097d, 0x70c5: 0xe000097a, 0x70c6: 0xe0000a38, 0x70c7: 0xe0000a35,
-	0x70c8: 0xe0000a3e, 0x70c9: 0xe0000a3b, 0x70ca: 0xe0000a4a, 0x70cb: 0xe0000a47,
-	0x70cc: 0xe0000a44, 0x70cd: 0xe0000a41, 0x70ce: 0xe0000a86, 0x70cf: 0xe0000a83,
-	0x70d0: 0xe0000aaa, 0x70d1: 0xe0000aa7, 0x70d2: 0xe0000b46, 0x70d3: 0xe0000b43,
-	0x70d4: 0xe0000aee, 0x70d5: 0xe0000aeb, 0x70d6: 0xe0000b2c, 0x70d7: 0xe0000b29,
-	0x70d8: 0xe0000b40, 0x70d9: 0xe0000b3d, 0x70da: 0xe0000b1a, 0x70db: 0xe0000b17,
-	0x70dc: 0xe0000bb8, 0x70dd: 0xe0000bb5, 0x70de: 0x002d2483, 0x70df: 0x402d2420,
-	0x70e0: 0xe0000bc4, 0x70e1: 0xe0000bc1, 0x70e2: 0xe0000bca, 0x70e3: 0xe0000bc7,
-	0x70e4: 0xe0000bee, 0x70e5: 0xe0000beb, 0x70e6: 0xe0000c1b, 0x70e7: 0xe0000c18,
-	0x70e8: 0xe0002556, 0x70e9: 0xe0000c4e, 0x70ea: 0xe000255c, 0x70eb: 0xe0000c5d,
-	0x70ec: 0xe0002546, 0x70ed: 0xe0000c2e, 0x70ee: 0xe0002559, 0x70ef: 0xe0000c57,
-	0x70f0: 0x002d9a83, 0x70f1: 0x402d9820, 0x70f2: 0xe0002575, 0x70f3: 0xf0000404,
-	0x70f4: 0xe0000c8a, 0x70f5: 0xe0000c87, 0x70f6: 0xe0000c9f, 0x70f7: 0xe0000c9c,
-	0x70f8: 0x402f7220, 0x70f9: 0xe0000ccc, 0x70fa: 0xe0000cc9, 0x70fb: 0xe0000cd8,
-	0x70fc: 0xe0000cd5, 0x70fd: 0xe0000cd2, 0x70fe: 0xe0000ccf, 0x70ff: 0xe0000d04,
-	// Block 0x1c4, offset 0x7100
-	0x7100: 0xe0000cfe, 0x7101: 0xe0000cf8, 0x7102: 0xe0000cf5, 0x7103: 0xe0000d51,
-	0x7104: 0xe0000d4e, 0x7105: 0xe0000d6f, 0x7106: 0xe0000d6c, 0x7107: 0xe0000d5d,
-	0x7108: 0xe0000d5a, 0x7109: 0xf0000404, 0x710a: 0x002eda88, 0x710b: 0x402eda20,
-	0x710c: 0xe0000e2e, 0x710d: 0xe0000e2b, 0x710e: 0xe0000da0, 0x710f: 0xe0000d9d,
-	0x7110: 0xe0000de0, 0x7111: 0xe0000ddd, 0x7112: 0xe0000e93, 0x7113: 0xe0000e8f,
-	0x7114: 0xe0000eca, 0x7115: 0xe0000ec7, 0x7116: 0xe0000edc, 0x7117: 0xe0000ed9,
-	0x7118: 0xe0000ed0, 0x7119: 0xe0000ecd, 0x711a: 0xe0000f1f, 0x711b: 0xe0000f1c,
-	0x711c: 0xe0000f2d, 0x711d: 0xe0000f2a, 0x711e: 0x002fe883, 0x711f: 0x402fe820,
-	0x7120: 0xe0000f33, 0x7121: 0xe0000f30, 0x7122: 0xe0000f99, 0x7123: 0xe0000f96,
-	0x7124: 0xe0000f8a, 0x7125: 0xe0000f87, 0x7126: 0x00303688, 0x7127: 0x40303620,
-	0x7128: 0xe000102b, 0x7129: 0xe0001028, 0x712a: 0xe000103f, 0x712b: 0xe000103c,
-	0x712c: 0xe0000fe7, 0x712d: 0xe0000fe4, 0x712e: 0xe0000ff9, 0x712f: 0xe0000ff6,
-	0x7130: 0xe0001025, 0x7131: 0xe0001022, 0x7132: 0xe0001039, 0x7133: 0xe0001036,
-	0x7134: 0xe00010d8, 0x7135: 0xe00010d5, 0x7136: 0xe000110e, 0x7137: 0xe000110b,
-	0x7138: 0xe0001117, 0x7139: 0xe000113b, 0x713a: 0xe0001138, 0x713b: 0xe000114d,
-	0x713c: 0xe000114a, 0x713d: 0xe0001147, 0x713e: 0xe0001144, 0x713f: 0xe0000f64,
-	// Block 0x1c5, offset 0x7140
-	0x7140: 0x402c1a20, 0x7141: 0x002c2a88, 0x7142: 0x002c3288, 0x7143: 0x402c3220,
-	0x7144: 0x0031c488, 0x7145: 0x4031c420, 0x7146: 0x002efa88, 0x7147: 0x002c4e88,
-	0x7148: 0x402c4e20, 0x7149: 0x002c7288, 0x714a: 0x002c7a88, 0x714b: 0x002c8488,
-	0x714c: 0x402c8420, 0x714d: 0xe000115c, 0x714e: 0x002cae88, 0x714f: 0x002c9a83,
-	0x7150: 0x002cc288, 0x7151: 0x002d1688, 0x7152: 0x402d1620, 0x7153: 0x002d4488,
-	0x7154: 0x002d5888, 0x7155: 0x402d7820, 0x7156: 0x002dc288, 0x7157: 0x002db688,
-	0x7158: 0x002e0a88, 0x7159: 0x402e0a20, 0x715a: 0x402e3820, 0x715b: 0x402e7220,
-	0x715c: 0x0030a088, 0x715d: 0x002eb488, 0x715e: 0x402ebc20, 0x715f: 0x002f1088,
-	0x7160: 0xe0000e56, 0x7161: 0xe0000e53, 0x7162: 0x002d6088, 0x7163: 0x402d6020,
-	0x7164: 0x002f3e88, 0x7165: 0x402f3e20, 0x7166: 0x002f8288, 0x7167: 0x0031b488,
-	0x7168: 0x4031b420, 0x7169: 0x00300888, 0x716a: 0x40301220, 0x716b: 0x40304220,
-	0x716c: 0x00304a88, 0x716d: 0x40304a20, 0x716e: 0x00305288, 0x716f: 0xe000105f,
-	0x7170: 0xe000105c, 0x7171: 0x0030b488, 0x7172: 0x0030cc88, 0x7173: 0x00311888,
-	0x7174: 0x40311820, 0x7175: 0x00313488, 0x7176: 0x40313420, 0x7177: 0x00316488,
-	0x7178: 0x00316e88, 0x7179: 0x40316e20, 0x717a: 0x40317820, 0x717b: 0x4031a620,
-	0x717c: 0x0031bc88, 0x717d: 0x4031bc20, 0x717e: 0xe0000fc9, 0x717f: 0x40319420,
-	// Block 0x1c6, offset 0x7180
-	0x7180: 0x40321220, 0x7181: 0x40321a20, 0x7182: 0x40322220, 0x7183: 0x40322a20,
-	0x7184: 0xe0000ad5, 0x7185: 0xe0000ad1, 0x7186: 0xe0000acd, 0x7187: 0xf0000a0a,
-	0x7188: 0xf000040a, 0x7189: 0xf0000404, 0x718a: 0xf0000a0a, 0x718b: 0xf000040a,
-	0x718c: 0xf0000404, 0x718d: 0xe0000947, 0x718e: 0xe0000944, 0x718f: 0xe000254c,
-	0x7190: 0xe0000c3a, 0x7191: 0xe0000dcc, 0x7192: 0xe0000dc9, 0x7193: 0xe0000ff3,
-	0x7194: 0xe0000ff0, 0x7195: 0xe00025a8, 0x7196: 0xe00025a5, 0x7197: 0xe0002596,
-	0x7198: 0xe0002593, 0x7199: 0xe00025a2, 0x719a: 0xe000259f, 0x719b: 0xe000259c,
-	0x719c: 0xe0002599, 0x719d: 0x402cae20, 0x719e: 0xe0000962, 0x719f: 0xe000095e,
-	0x71a0: 0xe0000976, 0x71a1: 0xe0000972, 0x71a2: 0xe00009f4, 0x71a3: 0xe00009ef,
-	0x71a4: 0x002d3a88, 0x71a5: 0x402d3a20, 0x71a6: 0xe0000bbe, 0x71a7: 0xe0000bbb,
-	0x71a8: 0xe0000c99, 0x71a9: 0xe0000c96, 0x71aa: 0xe0000e20, 0x71ab: 0xe0000e1d,
-	0x71ac: 0xe0000e27, 0x71ad: 0xe0000e23, 0x71ae: 0xe0001162, 0x71af: 0xe000115f,
-	0x71b0: 0xe0000c8d, 0x71b1: 0xf0000a0a, 0x71b2: 0xf000040a, 0x71b3: 0xf0000404,
-	0x71b4: 0xe0000bac, 0x71b5: 0xe0000ba9, 0x71b6: 0x002d7888, 0x71b7: 0x00319488,
-	0x71b8: 0xe0000d57, 0x71b9: 0xe0000d54, 0x71ba: 0xe0000954, 0x71bb: 0xe0000950,
-	0x71bc: 0xe00009ea, 0x71bd: 0xe00009e5, 0x71be: 0xe0000e19, 0x71bf: 0xe0000e15,
-	// Block 0x1c7, offset 0x71c0
-	0x71c0: 0xe000098f, 0x71c1: 0xe000098c, 0x71c2: 0xe0000995, 0x71c3: 0xe0000992,
-	0x71c4: 0xe0000b62, 0x71c5: 0xe0000b5f, 0x71c6: 0xe0000b68, 0x71c7: 0xe0000b65,
-	0x71c8: 0xe0002562, 0x71c9: 0xe0000c69, 0x71ca: 0xe0002565, 0x71cb: 0xe0000c6f,
-	0x71cc: 0xe0000e4a, 0x71cd: 0xe0000e47, 0x71ce: 0xe0000e50, 0x71cf: 0xe0000e4d,
-	0x71d0: 0xe0000ee8, 0x71d1: 0xe0000ee5, 0x71d2: 0xe0000eee, 0x71d3: 0xe0000eeb,
-	0x71d4: 0xe0001053, 0x71d5: 0xe0001050, 0x71d6: 0xe0001059, 0x71d7: 0xe0001056,
-	0x71d8: 0xe0000f61, 0x71d9: 0xe0000f5e, 0x71da: 0xe0000fa5, 0x71db: 0xe0000fa2,
-	0x71dc: 0x00312288, 0x71dd: 0x40312220, 0x71de: 0xe0000bf4, 0x71df: 0xe0000bf1,
-	0x71e0: 0x002ebc88, 0x71e1: 0x402c8c20, 0x71e2: 0x002f2288, 0x71e3: 0x402f2220,
-	0x71e4: 0x00314088, 0x71e5: 0x40314020, 0x71e6: 0xe000096f, 0x71e7: 0xe000096c,
-	0x71e8: 0xe0000b32, 0x71e9: 0xe0000b2f, 0x71ea: 0xe0002590, 0x71eb: 0xe000258d,
-	0x71ec: 0xe0000dfd, 0x71ed: 0xe0000df9, 0x71ee: 0xe0000e04, 0x71ef: 0xe0000e01,
-	0x71f0: 0xe0000e0b, 0x71f1: 0xe0000e07, 0x71f2: 0xe0001129, 0x71f3: 0xe0001126,
-	0x71f4: 0x402e5e20, 0x71f5: 0x402ed020, 0x71f6: 0x40305a20, 0x71f7: 0x402dd420,
-	0x71f8: 0xe0000abf, 0x71f9: 0xe0000ec4, 0x71fa: 0x002be888, 0x71fb: 0x002c4488,
-	0x71fc: 0x402c4420, 0x71fd: 0x002e3888, 0x71fe: 0x00303e88, 0x71ff: 0x402ffc20,
-	// Block 0x1c8, offset 0x7200
-	0x7200: 0x40315820, 0x7201: 0x0031d488, 0x7202: 0x4031d420, 0x7203: 0x002c1a88,
-	0x7204: 0x00307c88, 0x7205: 0x0030da88, 0x7206: 0x002ca288, 0x7207: 0x402ca220,
-	0x7208: 0x002dde88, 0x7209: 0x402dde20, 0x720a: 0x002f6a88, 0x720b: 0x402f6a20,
-	0x720c: 0x002f8e88, 0x720d: 0x402f8e20, 0x720e: 0x00311088, 0x720f: 0x40311020,
-	0x7210: 0x402bf020, 0x7211: 0x402bf820, 0x7212: 0x402c0220, 0x7213: 0x402c2a20,
-	0x7214: 0x402efa20, 0x7215: 0x402c5620, 0x7216: 0x402c7220, 0x7217: 0x402c7a20,
-	0x7218: 0x402ccc20, 0x7219: 0x402c9a20, 0x721a: 0x402cd420, 0x721b: 0x402cc220,
-	0x721c: 0x402cdc20, 0x721d: 0x402ce820, 0x721e: 0x402cf020, 0x721f: 0x402dee20,
-	0x7220: 0x402d4420, 0x7221: 0x402d2a20, 0x7222: 0x402d3220, 0x7223: 0x402d5820,
-	0x7224: 0x402d0020, 0x7225: 0x40308820, 0x7226: 0x402d8020, 0x7227: 0x402d8e20,
-	0x7228: 0x402db620, 0x7229: 0x402dc220, 0x722a: 0x402daa20, 0x722b: 0x402e4220,
-	0x722c: 0x402e4a20, 0x722d: 0x402e5420, 0x722e: 0x402e6820, 0x722f: 0x4030a020,
-	0x7230: 0x4030ac20, 0x7231: 0x402e9020, 0x7232: 0x402eb420, 0x7233: 0x402ec820,
-	0x7234: 0x402ea620, 0x7235: 0x402f1020, 0x7236: 0x402eee20, 0x7237: 0x402f1a20,
-	0x7238: 0x402f4c20, 0x7239: 0x402f9820, 0x723a: 0x402fa220, 0x723b: 0x402fac20,
-	0x723c: 0x402fb620, 0x723d: 0x402fbe20, 0x723e: 0x402fc620, 0x723f: 0x402fd020,
-	// Block 0x1c9, offset 0x7240
-	0x7240: 0xe00009b1, 0x7241: 0xe00009ae, 0x7242: 0xe0000a22, 0x7243: 0xe0000a1f,
-	0x7244: 0xe0000a28, 0x7245: 0xe0000a25, 0x7246: 0xe0000a2e, 0x7247: 0xe0000a2b,
-	0x7248: 0xe0002531, 0x7249: 0xe000252e, 0x724a: 0xe0000a8c, 0x724b: 0xe0000a89,
-	0x724c: 0xe0000a98, 0x724d: 0xe0000a95, 0x724e: 0xe0000aa4, 0x724f: 0xe0000aa1,
-	0x7250: 0xe0000a92, 0x7251: 0xe0000a8f, 0x7252: 0xe0000a9e, 0x7253: 0xe0000a9b,
-	0x7254: 0xe0000b55, 0x7255: 0xe0000b51, 0x7256: 0xe0000b4d, 0x7257: 0xe0000b49,
-	0x7258: 0xe0000b7c, 0x7259: 0xe0000b79, 0x725a: 0xe0000b82, 0x725b: 0xe0000b7f,
-	0x725c: 0xe0000b39, 0x725d: 0xe0000b35, 0x725e: 0xe0000b8c, 0x725f: 0xe0000b89,
-	0x7260: 0xe0000bd0, 0x7261: 0xe0000bcd, 0x7262: 0xe0000c00, 0x7263: 0xe0000bfd,
-	0x7264: 0xe0000c0c, 0x7265: 0xe0000c09, 0x7266: 0xe0000bfa, 0x7267: 0xe0000bf7,
-	0x7268: 0xe0000c06, 0x7269: 0xe0000c03, 0x726a: 0xe0000c12, 0x726b: 0xe0000c0f,
-	0x726c: 0xe000256b, 0x726d: 0xe0000c7b, 0x726e: 0xe0002552, 0x726f: 0xe0000c46,
-	0x7270: 0xe0000c93, 0x7271: 0xe0000c90, 0x7272: 0xe0000cab, 0x7273: 0xe0000ca8,
-	0x7274: 0xe0000cb1, 0x7275: 0xe0000cae, 0x7276: 0xe0000cde, 0x7277: 0xe0000cdb,
-	0x7278: 0xe0000ce5, 0x7279: 0xe0000ce1, 0x727a: 0xe0000cf2, 0x727b: 0xe0000cef,
-	0x727c: 0xe0000cec, 0x727d: 0xe0000ce9, 0x727e: 0xe0000d1e, 0x727f: 0xe0000d1b,
-	// Block 0x1ca, offset 0x7280
-	0x7280: 0xe0000d24, 0x7281: 0xe0000d21, 0x7282: 0xe0000d2a, 0x7283: 0xe0000d27,
-	0x7284: 0xe0000d69, 0x7285: 0xe0000d66, 0x7286: 0xe0000d7b, 0x7287: 0xe0000d78,
-	0x7288: 0xe0000d87, 0x7289: 0xe0000d84, 0x728a: 0xe0000d81, 0x728b: 0xe0000d7e,
-	0x728c: 0xe0000ded, 0x728d: 0xe0000de9, 0x728e: 0xe000258a, 0x728f: 0xe0002587,
-	0x7290: 0xe0000e3d, 0x7291: 0xe0000e39, 0x7292: 0xe0000e35, 0x7293: 0xe0000e31,
-	0x7294: 0xe0000ea7, 0x7295: 0xe0000ea4, 0x7296: 0xe0000ead, 0x7297: 0xe0000eaa,
-	0x7298: 0xe0000ed6, 0x7299: 0xe0000ed3, 0x729a: 0xe0000ef4, 0x729b: 0xe0000ef1,
-	0x729c: 0xe0000efb, 0x729d: 0xe0000ef7, 0x729e: 0xe0000f02, 0x729f: 0xe0000eff,
-	0x72a0: 0xe0000f41, 0x72a1: 0xe0000f3e, 0x72a2: 0xe0000f53, 0x72a3: 0xe0000f50,
-	0x72a4: 0xe0000f26, 0x72a5: 0xe0000f22, 0x72a6: 0xe0000f3a, 0x72a7: 0xe0000f36,
-	0x72a8: 0xe0000f5a, 0x72a9: 0xe0000f56, 0x72aa: 0xe0000f93, 0x72ab: 0xe0000f90,
-	0x72ac: 0xe0000f9f, 0x72ad: 0xe0000f9c, 0x72ae: 0xe0000fb1, 0x72af: 0xe0000fae,
-	0x72b0: 0xe0000fab, 0x72b1: 0xe0000fa8, 0x72b2: 0xe0001093, 0x72b3: 0xe0001090,
-	0x72b4: 0xe000109f, 0x72b5: 0xe000109c, 0x72b6: 0xe0001099, 0x72b7: 0xe0001096,
-	0x72b8: 0xe0001032, 0x72b9: 0xe000102e, 0x72ba: 0xe00025a8, 0x72bb: 0xe00025a5,
-	0x72bc: 0xe00010a9, 0x72bd: 0xe00010a6, 0x72be: 0xe00010af, 0x72bf: 0xe00010ac,
-	// Block 0x1cb, offset 0x72c0
-	0x72c0: 0xe00010d2, 0x72c1: 0xe00010cf, 0x72c2: 0xe00010cc, 0x72c3: 0xe00010c9,
-	0x72c4: 0xe00010e1, 0x72c5: 0xe00010de, 0x72c6: 0xe00010e7, 0x72c7: 0xe00010e4,
-	0x72c8: 0xe00010ed, 0x72c9: 0xe00010ea, 0x72ca: 0xe000253d, 0x72cb: 0xe000253a,
-	0x72cc: 0xe0002537, 0x72cd: 0xe0002534, 0x72ce: 0xe0001123, 0x72cf: 0xe0001120,
-	0x72d0: 0xe0001141, 0x72d1: 0xe000113e, 0x72d2: 0xe0001153, 0x72d3: 0xe0001150,
-	0x72d4: 0xe0001159, 0x72d5: 0xe0001156, 0x72d6: 0xe0000c15, 0x72d7: 0xe0000f8d,
-	0x72d8: 0xe00010db, 0x72d9: 0xe0001111, 0x72da: 0xf0000404, 0x72db: 0xe0000f70,
-	0x72dc: 0x40300420, 0x72dd: 0x40300620, 0x72de: 0xe0000f7f, 0x72df: 0x402c9620,
-	0x72e0: 0xe000099b, 0x72e1: 0xe0000998, 0x72e2: 0xe0000989, 0x72e3: 0xe0000986,
-	0x72e4: 0xe0000928, 0x72e5: 0xe0000924, 0x72e6: 0xe0000930, 0x72e7: 0xe000092c,
-	0x72e8: 0xe0000940, 0x72e9: 0xe000093c, 0x72ea: 0xe0000938, 0x72eb: 0xe0000934,
-	0x72ec: 0xe00009aa, 0x72ed: 0xe00009a6, 0x72ee: 0xe0000902, 0x72ef: 0xe00008fe,
-	0x72f0: 0xe000090a, 0x72f1: 0xe0000906, 0x72f2: 0xe000091a, 0x72f3: 0xe0000916,
-	0x72f4: 0xe0000912, 0x72f5: 0xe000090e, 0x72f6: 0xe00009a2, 0x72f7: 0xe000099e,
-	0x72f8: 0xe0000b6e, 0x72f9: 0xe0000b6b, 0x72fa: 0xe0000b5c, 0x72fb: 0xe0000b59,
-	0x72fc: 0xe0000b26, 0x72fd: 0xe0000b23, 0x72fe: 0xe0000afb, 0x72ff: 0xe0000af7,
-	// Block 0x1cc, offset 0x7300
-	0x7300: 0xe0000b03, 0x7301: 0xe0000aff, 0x7302: 0xe0000b13, 0x7303: 0xe0000b0f,
-	0x7304: 0xe0000b0b, 0x7305: 0xe0000b07, 0x7306: 0xe0000b75, 0x7307: 0xe0000b71,
-	0x7308: 0xe000255f, 0x7309: 0xe0000c63, 0x730a: 0xe0002568, 0x730b: 0xe0000c75,
-	0x730c: 0xe0000e84, 0x730d: 0xe0000e81, 0x730e: 0xe0000e44, 0x730f: 0xe0000e41,
-	0x7310: 0xe0000dad, 0x7311: 0xe0000da9, 0x7312: 0xe0000db5, 0x7313: 0xe0000db1,
-	0x7314: 0xe0000dc5, 0x7315: 0xe0000dc1, 0x7316: 0xe0000dbd, 0x7317: 0xe0000db9,
-	0x7318: 0xe0000e8b, 0x7319: 0xe0000e87, 0x731a: 0xe0000e5d, 0x731b: 0xe0000e59,
-	0x731c: 0xe0000e65, 0x731d: 0xe0000e61, 0x731e: 0xe0000e75, 0x731f: 0xe0000e71,
-	0x7320: 0xe0000e6d, 0x7321: 0xe0000e69, 0x7322: 0xe0000e7d, 0x7323: 0xe0000e79,
-	0x7324: 0xe000108d, 0x7325: 0xe000108a, 0x7326: 0xe000104d, 0x7327: 0xe000104a,
-	0x7328: 0xe0001066, 0x7329: 0xe0001062, 0x732a: 0xe000106e, 0x732b: 0xe000106a,
-	0x732c: 0xe000107e, 0x732d: 0xe000107a, 0x732e: 0xe0001076, 0x732f: 0xe0001072,
-	0x7330: 0xe0001086, 0x7331: 0xe0001082, 0x7332: 0xe0001108, 0x7333: 0xe0001105,
-	0x7334: 0xe0001135, 0x7335: 0xe0001132, 0x7336: 0xe000112f, 0x7337: 0xe000112c,
-	0x7338: 0xe000111d, 0x7339: 0xe000111a, 0x733a: 0xe0000d0a, 0x733b: 0xe0000d07,
-	0x733c: 0x0030d888, 0x733d: 0x4030d820, 0x733e: 0x00312088, 0x733f: 0x40312020,
-	// Block 0x1cd, offset 0x7340
-	0x7340: 0x00093685, 0x7341: 0x40083620, 0x7342: 0x40083820, 0x7343: 0x40083a20,
-	0x7344: 0x40083c20, 0x7345: 0x002c628b, 0x7346: 0x002c6285, 0x7347: 0x002c9885,
-	0x7348: 0x002d9a85, 0x7349: 0x002dcc85, 0x734a: 0x40083e20, 0x734b: 0x400a6e20,
-	0x734c: 0x40084020, 0x734d: 0xe00009c4, 0x734e: 0x402d1e20, 0x734f: 0x40084220,
-	0x7350: 0xe00002cb, 0x7351: 0xe00002d3, 0x7352: 0xe00002b2, 0x7353: 0xe00002bb,
-	0x7354: 0xe00003cd, 0x7355: 0xe00002c3, 0x7356: 0xe00003d1, 0x7357: 0xe00004ab,
-	0x7358: 0xe0000579, 0x7359: 0xe00002c7, 0x735a: 0xe0000640, 0x735b: 0xe00002cf,
-	0x735c: 0xe00004af, 0x735d: 0xe0000644, 0x735e: 0xe0000798, 0x735f: 0xf0001e1e,
-	0x7360: 0x002d9a8a, 0x7361: 0xe000256e, 0x7362: 0xe0002571, 0x7363: 0xe000257b,
-	0x7364: 0x0030be8a, 0x7365: 0xe00025ab, 0x7366: 0xe00025ae, 0x7367: 0xe00010bb,
-	0x7368: 0xe0002581, 0x7369: 0x0030f68a, 0x736a: 0xe00025b5, 0x736b: 0xe00025bc,
-	0x736c: 0x002e228a, 0x736d: 0x002c3a8a, 0x736e: 0x002c628a, 0x736f: 0x002e828a,
-	0x7370: 0x002d9a84, 0x7371: 0xf0001f04, 0x7372: 0xf0000404, 0x7373: 0xf0001f04,
-	0x7374: 0x0030be84, 0x7375: 0xf0001f04, 0x7376: 0xf0000404, 0x7377: 0xe00010b6,
-	0x7378: 0xe000257e, 0x7379: 0x0030f684, 0x737a: 0xe00025b2, 0x737b: 0xe00025b8,
-	0x737c: 0x002e2284, 0x737d: 0x002c3a84, 0x737e: 0x002c6284, 0x737f: 0x002e8284,
-	// Block 0x1ce, offset 0x7380
-	0x7380: 0xe0000024, 0x7381: 0xe0000029, 0x7382: 0xe000002e, 0x7383: 0xe0000033,
-	0x7384: 0xe0000038, 0x7385: 0xe000003d, 0x7386: 0xe0000042, 0x7387: 0xe0000047,
-	0x7388: 0xf0001f04, 0x7389: 0xf0001f04, 0x738a: 0xf0001f04, 0x738b: 0xf0001f04,
-	0x738c: 0xf0001f04, 0x738d: 0xf0001f04, 0x738e: 0xf0001f04, 0x738f: 0xf0001f04,
-	0x7390: 0xf0001f04, 0x7391: 0xf0000404, 0x7392: 0xf0000404, 0x7393: 0xf0000404,
-	0x7394: 0xf0000404, 0x7395: 0xf0000404, 0x7396: 0xf0000404, 0x7397: 0xf0000404,
-	0x7398: 0xf0000404, 0x7399: 0xf0000404, 0x739a: 0xf0000404, 0x739b: 0xf0000404,
-	0x739c: 0xf0000404, 0x739d: 0xf0000404, 0x739e: 0xf0000404, 0x739f: 0xf0000404,
-	0x73a0: 0xf0000404, 0x73a1: 0xf0000404, 0x73a2: 0xf0000404, 0x73a3: 0xf0000404,
-	0x73a4: 0xf0000404, 0x73a5: 0xf0000404, 0x73a6: 0xf0000404, 0x73a7: 0xf0000404,
-	0x73a8: 0xf0000404, 0x73a9: 0xf0000404, 0x73aa: 0xf0000404, 0x73ab: 0xf0000404,
-	0x73ac: 0xe000251b, 0x73ad: 0xf0000404, 0x73ae: 0xf0000404, 0x73af: 0xf0000404,
-	0x73b0: 0xf0000404, 0x73b1: 0xf0000404, 0x73b2: 0xf0000404, 0x73b3: 0xe0002523,
-	0x73b4: 0xf0000404, 0x73b5: 0xf0000404, 0x73b6: 0x002bde8c, 0x73b7: 0x002c0a8c,
-	0x73b8: 0x002c3a8c, 0x73b9: 0x002c628c, 0x73ba: 0x002c988c, 0x73bb: 0x002d088c,
-	0x73bc: 0x002d228c, 0x73bd: 0x002d688c, 0x73be: 0x002d9a8c, 0x73bf: 0x002dcc8c,
-	// Block 0x1cf, offset 0x73c0
-	0x73c0: 0xe000230b, 0x73c1: 0xe00022f8, 0x73c2: 0xe00022fc, 0x73c3: 0xe0002311,
-	0x73c4: 0xe0002316, 0x73c5: 0xe000231d, 0x73c6: 0xe0002321, 0x73c7: 0xe0002325,
-	0x73c8: 0xe000232b, 0x73c9: 0xf0001c1c, 0x73ca: 0xe0002330, 0x73cb: 0xe000233c,
-	0x73cc: 0xe0002340, 0x73cd: 0xe0002337, 0x73ce: 0xe0002346, 0x73cf: 0xe000234b,
-	0x73d0: 0xe000234f, 0x73d1: 0xe0002353, 0x73d2: 0xf0001c1c, 0x73d3: 0xe000235e,
-	0x73d4: 0xe0002358, 0x73d5: 0xf0001c1c, 0x73d6: 0xe0002363, 0x73d7: 0xe000236d,
-	0x73d8: 0xf0001f04, 0x73d9: 0xf0001f04, 0x73da: 0xf0001f04, 0x73db: 0xf0001f04,
-	0x73dc: 0xf0001f04, 0x73dd: 0xf0001f04, 0x73de: 0xf0001f04, 0x73df: 0xf0001f04,
-	0x73e0: 0xf0001f04, 0x73e1: 0xf0001f04, 0x73e2: 0xf0000404, 0x73e3: 0xf0000404,
-	0x73e4: 0xf0000404, 0x73e5: 0xf0000404, 0x73e6: 0xf0000404, 0x73e7: 0xf0000404,
-	0x73e8: 0xf0000404, 0x73e9: 0xf0000404, 0x73ea: 0xf0000404, 0x73eb: 0xf0000404,
-	0x73ec: 0xf0000404, 0x73ed: 0xf0000404, 0x73ee: 0xf0000404, 0x73ef: 0xf0000404,
-	0x73f0: 0xf0000404, 0x73f1: 0xe0000c1e, 0x73f2: 0xf0001c1c, 0x73f3: 0xf0001d1d,
-	0x73f4: 0xe0000a31, 0x73f5: 0xf0001d1c, 0x73f6: 0xf0001c1c, 0x73f7: 0xf0001c1c,
-	0x73f8: 0xe0000ac2, 0x73f9: 0xe0000ac6, 0x73fa: 0xe0002578, 0x73fb: 0xf0001c1c,
-	0x73fc: 0xf0001c1c, 0x73fd: 0xf0001c1c, 0x73fe: 0xf0001c1c, 0x73ff: 0xe0002431,
-	// Block 0x1d0, offset 0x7400
-	0x7400: 0xf0001d1c, 0x7401: 0xf0001d1d, 0x7402: 0xe00009b7, 0x7403: 0xe000252b,
-	0x7404: 0xf0001c1c, 0x7405: 0xf0001c1c, 0x7406: 0xe0000a66, 0x7407: 0xe0000a7a,
-	0x7408: 0xf0001d1c, 0x7409: 0xf0001c1d, 0x740a: 0xf0001c1c, 0x740b: 0xf0001d1d,
-	0x740c: 0xf0001c1c, 0x740d: 0xf0001d1d, 0x740e: 0xf0001d1d, 0x740f: 0xf0001c1c,
-	0x7410: 0xf0001c1c, 0x7411: 0xf0001c1c, 0x7412: 0xe0000d0d, 0x7413: 0xe0002584,
-	0x7414: 0xf0001c1c, 0x7415: 0xe0000d3a, 0x7416: 0xe0000d46, 0x7417: 0xf0001d1d,
-	0x7418: 0xe0000eb0, 0x7419: 0xe0000eb8, 0x741a: 0xf0001d1d, 0x741b: 0xf0001c1c,
-	0x741c: 0xf0001c1d, 0x741d: 0xf0001c1d, 0x741e: 0xe00010b2, 0x741f: 0xe00009c8,
-	0x7420: 0xf0001f04, 0x7421: 0xf0001f04, 0x7422: 0xf0001f04, 0x7423: 0xf0001f04,
-	0x7424: 0xf0001f04, 0x7425: 0xf0001f04, 0x7426: 0xf0001f04, 0x7427: 0xf0001f04,
-	0x7428: 0xf0001f04, 0x7429: 0xf0000404, 0x742a: 0xf0000404, 0x742b: 0xf0000404,
-	0x742c: 0xf0000404, 0x742d: 0xf0000404, 0x742e: 0xf0000404, 0x742f: 0xf0000404,
-	0x7430: 0xf0000404, 0x7431: 0xf0000404, 0x7432: 0xf0000404, 0x7433: 0xf0000404,
-	0x7434: 0xf0000404, 0x7435: 0xf0000404, 0x7436: 0xf0000404, 0x7437: 0xf0000404,
-	0x7438: 0xf0000404, 0x7439: 0xf0000404, 0x743a: 0xf0000404, 0x743b: 0xf0000404,
-	0x743c: 0xf0000404, 0x743d: 0xf0000404, 0x743e: 0xf0000404, 0x743f: 0xe0000bdf,
-	// Block 0x1d1, offset 0x7440
-	0x7440: 0xf0001f04, 0x7441: 0xf0001f04, 0x7442: 0xf0001f04, 0x7443: 0xf0001f04,
-	0x7444: 0xf0001f04, 0x7445: 0xf0001f04, 0x7446: 0xf0001f04, 0x7447: 0xf0001f04,
-	0x7448: 0xf0001f04, 0x7449: 0xf0001f04, 0x744a: 0xf0001f04,
-	0x7450: 0xf0000a04, 0x7451: 0xf0000a04, 0x7452: 0xf0000a04, 0x7453: 0xf0000a04,
-	0x7454: 0xf0000a04, 0x7455: 0xf0000a04, 0x7456: 0xf0000a04, 0x7457: 0xf0000a04,
-	0x7458: 0xe0002517, 0x7459: 0xf0000a04, 0x745a: 0xf0000a04, 0x745b: 0xf0000a04,
-	0x745c: 0xf0000a04, 0x745d: 0xf0000a04, 0x745e: 0xf0000a04, 0x745f: 0xf0000a04,
-	0x7460: 0xe000251f, 0x7461: 0xf0000a04, 0x7462: 0xf0000a04, 0x7463: 0xf0000a04,
-	0x7464: 0xf0000a04, 0x7465: 0xf0000a04, 0x7466: 0xf0000a04, 0x7467: 0xe0002527,
-	0x7468: 0xf0000a04, 0x7469: 0xf0000a04, 0x746a: 0xf0000a04, 0x746b: 0x002c3a8c,
-	0x746c: 0x002f7a8c, 0x746d: 0xf0000c0c, 0x746e: 0xf0000c0c,
-	0x7470: 0x002bde9d, 0x7471: 0x002c0a9d, 0x7472: 0x002c3a9d, 0x7473: 0x002c629d,
-	0x7474: 0x002c989d, 0x7475: 0x002d089d, 0x7476: 0x002d229d, 0x7477: 0x002d689d,
-	0x7478: 0x002d9a9d, 0x7479: 0x002dcc9d, 0x747a: 0x002dfe9d, 0x747b: 0x002e229d,
-	0x747c: 0x002e829d, 0x747d: 0x002e9e9d, 0x747e: 0x002ee29d, 0x747f: 0x002f2c9d,
-	// Block 0x1d2, offset 0x7480
-	0x7480: 0xe00014bd, 0x7481: 0x0033b483, 0x7482: 0x00339688, 0x7483: 0x0033a288,
-	0x7484: 0x0033c288, 0x7485: 0x0033fc88, 0x7486: 0xc02a0071, 0x7487: 0x00343688,
-	0x7488: 0x00344688, 0x7489: 0x00349a88, 0x748a: 0x0034e488, 0x748b: 0x00356288,
-	0x748c: 0x00356a88, 0x748d: 0xe00014cf, 0x748e: 0x00357a88, 0x748f: 0x00365488,
-	0x7490: 0xc0090041, 0x7491: 0x00335288, 0x7492: 0x00335a88, 0x7493: 0xc0130092,
-	0x7494: 0x00338a88, 0x7495: 0xc34c0041, 0x7496: 0xc01c0071, 0x7497: 0xc0200071,
-	0x7498: 0xc0250041, 0x7499: 0x00343e88, 0x749a: 0xc0370092, 0x749b: 0x00348488,
-	0x749c: 0x0034a888, 0x749d: 0x0034ba88, 0x749e: 0xc02e0071, 0x749f: 0x00350e88,
-	0x74a0: 0x00352888, 0x74a1: 0x00353a88, 0x74a2: 0x00354c88, 0x74a3: 0xc03e00f1,
-	0x74a4: 0x0035ac88, 0x74a5: 0x0035b488, 0x74a6: 0x00360288, 0x74a7: 0xc0440071,
-	0x74a8: 0x00365c88, 0x74a9: 0x00366688, 0x74aa: 0x00367488, 0x74ab: 0xc0480071,
-	0x74ac: 0x00368e88, 0x74ad: 0xc04c0071, 0x74ae: 0x0036b888, 0x74af: 0x0036c488,
-	0x74b0: 0xc0060041, 0x74b1: 0x40335220, 0x74b2: 0x40335a20, 0x74b3: 0xc0100092,
-	0x74b4: 0x40338a20, 0x74b5: 0xc3490041, 0x74b6: 0xc01a0071, 0x74b7: 0xc01e0071,
-	0x74b8: 0xc0220041, 0x74b9: 0x40343e20, 0x74ba: 0xc0340092, 0x74bb: 0x40348420,
-	0x74bc: 0x4034a820, 0x74bd: 0x4034ba20, 0x74be: 0xc02c0071, 0x74bf: 0x40350e20,
-	// Block 0x1d3, offset 0x74c0
-	0x74c0: 0x40352820, 0x74c1: 0x40353a20, 0x74c2: 0x40354c20, 0x74c3: 0xc03a00f1,
-	0x74c4: 0x4035ac20, 0x74c5: 0x4035b420, 0x74c6: 0x40360220, 0x74c7: 0xc0420071,
-	0x74c8: 0x40365c20, 0x74c9: 0x40366620, 0x74ca: 0x40367420, 0x74cb: 0xc0460071,
-	0x74cc: 0x40368e20, 0x74cd: 0xc04a0071, 0x74ce: 0x4036b820, 0x74cf: 0x4036c420,
-	0x74d0: 0xe00014ba, 0x74d1: 0x4033b420, 0x74d2: 0x40339620, 0x74d3: 0x4033a220,
-	0x74d4: 0x4033c220, 0x74d5: 0x4033fc20, 0x74d6: 0xc0280071, 0x74d7: 0x40343620,
-	0x74d8: 0x40344620, 0x74d9: 0x40349a20, 0x74da: 0x4034e420, 0x74db: 0x40356220,
-	0x74dc: 0x40356a20, 0x74dd: 0xe00014cc, 0x74de: 0x40357a20, 0x74df: 0x40365420,
-	0x74e0: 0x0035e088, 0x74e1: 0x4035e020, 0x74e2: 0x00369e88, 0x74e3: 0x40369e20,
-	0x74e4: 0x0036ce88, 0x74e5: 0x4036ce20, 0x74e6: 0x0036d688, 0x74e7: 0x4036d620,
-	0x74e8: 0x0036ea88, 0x74e9: 0x4036ea20, 0x74ea: 0x0036e088, 0x74eb: 0x4036e020,
-	0x74ec: 0x0036f488, 0x74ed: 0x4036f420, 0x74ee: 0x0036fc88, 0x74ef: 0x4036fc20,
-	0x74f0: 0x00370488, 0x74f1: 0x40370420, 0x74f2: 0x00370c88, 0x74f3: 0x40370c20,
-	0x74f4: 0xc0500131, 0x74f5: 0xc04e0131, 0x74f6: 0x00371c88, 0x74f7: 0x40371c20,
-	0x74f8: 0x0035a488, 0x74f9: 0x4035a420, 0x74fa: 0x0035fa88, 0x74fb: 0x4035fa20,
-	0x74fc: 0x0035f288, 0x74fd: 0x4035f220, 0x74fe: 0x0035e888, 0x74ff: 0x4035e820,
-	// Block 0x1d4, offset 0x7500
-	0x7501: 0x40409c20, 0x7502: 0x40409820, 0x7503: 0x40409a20,
-	0x7505: 0x40407c20, 0x7506: 0x40407e20, 0x7507: 0x40408020,
-	0x7508: 0x40408220, 0x7509: 0x40408420, 0x750a: 0x40408620, 0x750b: 0x40408820,
-	0x750c: 0x40408c20, 0x750f: 0x40409020,
-	0x7510: 0x40409220, 0x7513: 0x40409420,
-	0x7514: 0x40409620, 0x7515: 0x40409820, 0x7516: 0x40409a20, 0x7517: 0x40409c20,
-	0x7518: 0x40409e20, 0x7519: 0x4040a020, 0x751a: 0x4040a220, 0x751b: 0x4040a420,
-	0x751c: 0x4040a620, 0x751d: 0x4040a820, 0x751e: 0x4040aa20, 0x751f: 0x4040ac20,
-	0x7520: 0x4040ae20, 0x7521: 0x4040b020, 0x7522: 0x4040b220, 0x7523: 0x4040b420,
-	0x7524: 0x4040b620, 0x7525: 0x4040b820, 0x7526: 0x4040ba20, 0x7527: 0x4040bc20,
-	0x7528: 0x4040be20, 0x752a: 0x4040c020, 0x752b: 0x4040c220,
-	0x752c: 0x4040c420, 0x752d: 0x4040c620, 0x752e: 0x4040c820, 0x752f: 0x4040ca20,
-	0x7530: 0x4040cc20, 0x7532: 0x4040d020,
-	0x7536: 0x4040d420, 0x7537: 0x4040d620,
-	0x7538: 0x4040d820, 0x7539: 0x4040da20,
-	0x753c: 0xa070f102, 0x753d: 0x4040dc20, 0x753e: 0x4040de20, 0x753f: 0x4040e020,
-	// Block 0x1d5, offset 0x7540
-	0x7540: 0xa0000000, 0x7541: 0xa0000000, 0x7542: 0xa0000000, 0x7543: 0xa0000000,
-	0x7544: 0xa0000000, 0x7545: 0xa0000000, 0x7546: 0xa0000000, 0x7547: 0xa0000000,
-	0x7548: 0xa0000000, 0x7549: 0x40020020, 0x754a: 0x40020220, 0x754b: 0x40020420,
-	0x754c: 0x40020620, 0x754d: 0x40020820, 0x754e: 0xa0000000, 0x754f: 0xa0000000,
-	0x7550: 0xa0000000, 0x7551: 0xa0000000, 0x7552: 0xa0000000, 0x7553: 0xa0000000,
-	0x7554: 0xa0000000, 0x7555: 0xa0000000, 0x7556: 0xa0000000, 0x7557: 0xa0000000,
-	0x7558: 0xa0000000, 0x7559: 0xa0000000, 0x755a: 0xa0000000, 0x755b: 0xa0000000,
-	0x755c: 0xa0000000, 0x755d: 0xa0000000, 0x755e: 0xa0000000, 0x755f: 0xa0000000,
-	0x7560: 0x40021220, 0x7561: 0x4002ba20, 0x7562: 0x4003e020, 0x7563: 0x4004ea20,
-	0x7564: 0x4027de20, 0x7565: 0x4004ec20, 0x7566: 0x4004e620, 0x7567: 0x4003d220,
-	0x7568: 0x4003f420, 0x7569: 0x4003f620, 0x756a: 0x4004d820, 0x756b: 0x40093820,
-	0x756c: 0x40024020, 0x756d: 0x40021a20, 0x756e: 0x4002e420, 0x756f: 0x4004e220,
-	0x7570: 0x4029cc20, 0x7571: 0x4029ce20, 0x7572: 0x4029d020, 0x7573: 0x4029d220,
-	0x7574: 0x4029d420, 0x7575: 0x4029d620, 0x7576: 0x4029d820, 0x7577: 0x4029da20,
-	0x7578: 0x4029dc20, 0x7579: 0x4029de20, 0x757a: 0x40026c20, 0x757b: 0x40026220,
-	0x757c: 0x40094020, 0x757d: 0x40094220, 0x757e: 0x40094420, 0x757f: 0x4002c420,
-	// Block 0x1d6, offset 0x7580
-	0x7580: 0x4004d620, 0x7581: 0x002bde88, 0x7582: 0x002c0a88, 0x7583: 0x002c3a88,
-	0x7584: 0x002c6288, 0x7585: 0x002c9888, 0x7586: 0x002d0888, 0x7587: 0x002d2288,
-	0x7588: 0x002d6888, 0x7589: 0x002d9a88, 0x758a: 0x002dcc88, 0x758b: 0x002dfe88,
-	0x758c: 0xc3520002, 0x758d: 0x002e8288, 0x758e: 0x002e9e88, 0x758f: 0x002ee288,
-	0x7590: 0x002f2c88, 0x7591: 0x002f5688, 0x7592: 0x002f7a88, 0x7593: 0x002fe688,
-	0x7594: 0x00302c88, 0x7595: 0x00306c88, 0x7596: 0x0030be88, 0x7597: 0x0030e288,
-	0x7598: 0x0030f688, 0x7599: 0x00310088, 0x759a: 0x00312a88, 0x759b: 0x4003f820,
-	0x759c: 0x4004e420, 0x759d: 0x4003fa20, 0x759e: 0x40062420, 0x759f: 0x40021620,
-	0x75a0: 0x40061e20, 0x75a1: 0x402bde20, 0x75a2: 0x402c0a20, 0x75a3: 0x402c3a20,
-	0x75a4: 0x402c6220, 0x75a5: 0x402c9820, 0x75a6: 0x402d0820, 0x75a7: 0x402d2220,
-	0x75a8: 0x402d6820, 0x75a9: 0x402d9a20, 0x75aa: 0x402dcc20, 0x75ab: 0x402dfe20,
-	0x75ac: 0xc34f0002, 0x75ad: 0x402e8220, 0x75ae: 0x402e9e20, 0x75af: 0x402ee220,
-	0x75b0: 0x402f2c20, 0x75b1: 0x402f5620, 0x75b2: 0x402f7a20, 0x75b3: 0x402fe620,
-	0x75b4: 0x40302c20, 0x75b5: 0x40306c20, 0x75b6: 0x4030be20, 0x75b7: 0x4030e220,
-	0x75b8: 0x4030f620, 0x75b9: 0x40310020, 0x75ba: 0x40312a20, 0x75bb: 0x4003fc20,
-	0x75bc: 0x40094820, 0x75bd: 0x4003fe20, 0x75be: 0x40094c20, 0x75bf: 0xa0000000,
-	// Block 0x1d7, offset 0x75c0
-	0x75c0: 0xe0000983, 0x75c1: 0xe0000980, 0x75c2: 0xe00008fb, 0x75c3: 0xe00008f8,
-	0x75c4: 0xe000097d, 0x75c5: 0xe000097a, 0x75c6: 0xe0000a38, 0x75c7: 0xe0000a35,
-	0x75c8: 0xe0000a3e, 0x75c9: 0xe0000a3b, 0x75ca: 0xe0000a4a, 0x75cb: 0xe0000a47,
-	0x75cc: 0xe0000a44, 0x75cd: 0xe0000a41, 0x75ce: 0xe0000a86, 0x75cf: 0xe0000a83,
-	0x75d0: 0xe0000aaa, 0x75d1: 0xe0000aa7, 0x75d2: 0xe0000b46, 0x75d3: 0xe0000b43,
-	0x75d4: 0xe0000aee, 0x75d5: 0xe0000aeb, 0x75d6: 0xe0000b2c, 0x75d7: 0xe0000b29,
-	0x75d8: 0xe0000b40, 0x75d9: 0xe0000b3d, 0x75da: 0xe0000b1a, 0x75db: 0xe0000b17,
-	0x75dc: 0xe0000bb8, 0x75dd: 0xe0000bb5, 0x75de: 0xe0000bb2, 0x75df: 0xe0000baf,
-	0x75e0: 0xe0000bc4, 0x75e1: 0xe0000bc1, 0x75e2: 0xe0000bca, 0x75e3: 0xe0000bc7,
-	0x75e4: 0xe0000bee, 0x75e5: 0xe0000beb, 0x75e6: 0xe0000c1b, 0x75e7: 0xe0000c18,
-	0x75e8: 0xe0000c51, 0x75e9: 0xe0000c4e, 0x75ea: 0xe0000c60, 0x75eb: 0xe0000c5d,
-	0x75ec: 0xe0000c31, 0x75ed: 0xe0000c2e, 0x75ee: 0xe0000c5a, 0x75ef: 0xe0000c57,
-	0x75f0: 0xe0000c54, 0x75f1: 0x402da220, 0x75f2: 0xf0000a0a, 0x75f3: 0xf0000404,
-	0x75f4: 0xe0000c8a, 0x75f5: 0xe0000c87, 0x75f6: 0xe0000c9f, 0x75f7: 0xe0000c9c,
-	0x75f8: 0x402f7220, 0x75f9: 0xe0000ccc, 0x75fa: 0xe0000cc9, 0x75fb: 0xe0000cd8,
-	0x75fc: 0xe0000cd5, 0x75fd: 0xe0000cd2, 0x75fe: 0xe0000ccf, 0x75ff: 0x002e22a3,
-	// Block 0x1d8, offset 0x7600
-	0x7600: 0x402e2221, 0x7601: 0xe0000cf8, 0x7602: 0xe0000cf5, 0x7603: 0xe0000d51,
-	0x7604: 0xe0000d4e, 0x7605: 0xe0000d6f, 0x7606: 0xe0000d6c, 0x7607: 0xe0000d5d,
-	0x7608: 0xe0000d5a, 0x7609: 0xf0000404, 0x760a: 0x002eda88, 0x760b: 0x402eda20,
-	0x760c: 0xe0000e2e, 0x760d: 0xe0000e2b, 0x760e: 0xe0000da0, 0x760f: 0xe0000d9d,
-	0x7610: 0xe0000de0, 0x7611: 0xe0000ddd, 0x7612: 0xe0000e93, 0x7613: 0xe0000e8f,
-	0x7614: 0xe0000eca, 0x7615: 0xe0000ec7, 0x7616: 0xe0000edc, 0x7617: 0xe0000ed9,
-	0x7618: 0xe0000ed0, 0x7619: 0xe0000ecd, 0x761a: 0xe0000f1f, 0x761b: 0xe0000f1c,
-	0x761c: 0xe0000f2d, 0x761d: 0xe0000f2a, 0x761e: 0xe0000f47, 0x761f: 0xe0000f44,
-	0x7620: 0xe0000f33, 0x7621: 0xe0000f30, 0x7622: 0xe0000f99, 0x7623: 0xe0000f96,
-	0x7624: 0xe0000f8a, 0x7625: 0xe0000f87, 0x7626: 0x00303688, 0x7627: 0x40303620,
-	0x7628: 0xe000102b, 0x7629: 0xe0001028, 0x762a: 0xe000103f, 0x762b: 0xe000103c,
-	0x762c: 0xe0000fe7, 0x762d: 0xe0000fe4, 0x762e: 0xe0000ff9, 0x762f: 0xe0000ff6,
-	0x7630: 0xe0001025, 0x7631: 0xe0001022, 0x7632: 0xe0001039, 0x7633: 0xe0001036,
-	0x7634: 0xe00010d8, 0x7635: 0xe00010d5, 0x7636: 0xe000110e, 0x7637: 0xe000110b,
-	0x7638: 0xe0001117, 0x7639: 0xe000113b, 0x763a: 0xe0001138, 0x763b: 0xe000114d,
-	0x763c: 0xe000114a, 0x763d: 0xe0001147, 0x763e: 0xe0001144, 0x763f: 0xe0000f64,
-	// Block 0x1d9, offset 0x7640
-	0x7640: 0xa0000000, 0x7641: 0xa0000000, 0x7642: 0xa0000000, 0x7643: 0xa0000000,
-	0x7644: 0xa0000000, 0x7645: 0xa0000000, 0x7646: 0xa0000000, 0x7647: 0xa0000000,
-	0x7648: 0xa0000000, 0x7649: 0x40020020, 0x764a: 0x40020220, 0x764b: 0x40020420,
-	0x764c: 0x40020620, 0x764d: 0x40020820, 0x764e: 0xa0000000, 0x764f: 0xa0000000,
-	0x7650: 0xa0000000, 0x7651: 0xa0000000, 0x7652: 0xa0000000, 0x7653: 0xa0000000,
-	0x7654: 0xa0000000, 0x7655: 0xa0000000, 0x7656: 0xa0000000, 0x7657: 0xa0000000,
-	0x7658: 0xa0000000, 0x7659: 0xa0000000, 0x765a: 0xa0000000, 0x765b: 0xa0000000,
-	0x765c: 0xa0000000, 0x765d: 0xa0000000, 0x765e: 0xa0000000, 0x765f: 0xa0000000,
-	0x7660: 0x40021220, 0x7661: 0x4002ba20, 0x7662: 0x4003e020, 0x7663: 0x4004ea20,
-	0x7664: 0x4027de20, 0x7665: 0x4004ec20, 0x7666: 0x4004e620, 0x7667: 0x4003d220,
-	0x7668: 0x4003f420, 0x7669: 0x4003f620, 0x766a: 0x4004d820, 0x766b: 0x40093820,
-	0x766c: 0x40024020, 0x766d: 0x40021a20, 0x766e: 0x4002e420, 0x766f: 0x4004e220,
-	0x7670: 0x4029cc20, 0x7671: 0x4029ce20, 0x7672: 0x4029d020, 0x7673: 0x4029d220,
-	0x7674: 0x4029d420, 0x7675: 0x4029d620, 0x7676: 0x4029d820, 0x7677: 0x4029da20,
-	0x7678: 0x4029dc20, 0x7679: 0x4029de20, 0x767a: 0x40026c20, 0x767b: 0x40026220,
-	0x767c: 0x40094020, 0x767d: 0x40094220, 0x767e: 0x40094420, 0x767f: 0x4002c420,
-	// Block 0x1da, offset 0x7680
-	0x7680: 0x4004d620, 0x7681: 0x002bde88, 0x7682: 0x002c0a88, 0x7683: 0xc3590953,
-	0x7684: 0x002c6288, 0x7685: 0x002c9888, 0x7686: 0x002d0888, 0x7687: 0x002d2288,
-	0x7688: 0x002d6888, 0x7689: 0x002d9a88, 0x768a: 0x002dcc88, 0x768b: 0x002dfe88,
-	0x768c: 0xc0030002, 0x768d: 0x002e8288, 0x768e: 0x002e9e88, 0x768f: 0x002ee288,
-	0x7690: 0x002f2c88, 0x7691: 0x002f5688, 0x7692: 0xc35f0991, 0x7693: 0xc3430991,
-	0x7694: 0x00302c88, 0x7695: 0x00306c88, 0x7696: 0x0030be88, 0x7697: 0x0030e288,
-	0x7698: 0x0030f688, 0x7699: 0x00310088, 0x769a: 0xc3630991, 0x769b: 0x4003f820,
-	0x769c: 0x4004e420, 0x769d: 0x4003fa20, 0x769e: 0x40062420, 0x769f: 0x40021620,
-	0x76a0: 0x40061e20, 0x76a1: 0x402bde20, 0x76a2: 0x402c0a20, 0x76a3: 0xc3550953,
-	0x76a4: 0x402c6220, 0x76a5: 0x402c9820, 0x76a6: 0x402d0820, 0x76a7: 0x402d2220,
-	0x76a8: 0x402d6820, 0x76a9: 0x402d9a20, 0x76aa: 0x402dcc20, 0x76ab: 0x402dfe20,
-	0x76ac: 0xc0000002, 0x76ad: 0x402e8220, 0x76ae: 0x402e9e20, 0x76af: 0x402ee220,
-	0x76b0: 0x402f2c20, 0x76b1: 0x402f5620, 0x76b2: 0xc35d0991, 0x76b3: 0xc3410991,
-	0x76b4: 0x40302c20, 0x76b5: 0x40306c20, 0x76b6: 0x4030be20, 0x76b7: 0x4030e220,
-	0x76b8: 0x4030f620, 0x76b9: 0x40310020, 0x76ba: 0xc3610991, 0x76bb: 0x4003fc20,
-	0x76bc: 0x40094820, 0x76bd: 0x4003fe20, 0x76be: 0x40094c20, 0x76bf: 0xa0000000,
-	// Block 0x1db, offset 0x76c0
-	0x76c0: 0xe0000983, 0x76c1: 0xe0000980, 0x76c2: 0xe00008fb, 0x76c3: 0xe00008f8,
-	0x76c4: 0xe000097d, 0x76c5: 0xe000097a, 0x76c6: 0xe0000a38, 0x76c7: 0xe0000a35,
-	0x76c8: 0xe0000a3e, 0x76c9: 0xe0000a3b, 0x76ca: 0xe0000a4a, 0x76cb: 0xe0000a47,
-	0x76cc: 0x002c3c83, 0x76cd: 0x402c3c20, 0x76ce: 0xe0000a86, 0x76cf: 0xe0000a83,
-	0x76d0: 0xe0000aaa, 0x76d1: 0xe0000aa7, 0x76d2: 0xe0000b46, 0x76d3: 0xe0000b43,
-	0x76d4: 0xe0000aee, 0x76d5: 0xe0000aeb, 0x76d6: 0xe0000b2c, 0x76d7: 0xe0000b29,
-	0x76d8: 0xe0000b40, 0x76d9: 0xe0000b3d, 0x76da: 0xe0000b1a, 0x76db: 0xe0000b17,
-	0x76dc: 0xe0000bb8, 0x76dd: 0xe0000bb5, 0x76de: 0xe0000bb2, 0x76df: 0xe0000baf,
-	0x76e0: 0xe0000bc4, 0x76e1: 0xe0000bc1, 0x76e2: 0xe0000bca, 0x76e3: 0xe0000bc7,
-	0x76e4: 0xe0000bee, 0x76e5: 0xe0000beb, 0x76e6: 0xe0000c1b, 0x76e7: 0xe0000c18,
-	0x76e8: 0xe0000c51, 0x76e9: 0xe0000c4e, 0x76ea: 0xe0000c60, 0x76eb: 0xe0000c5d,
-	0x76ec: 0xe0000c31, 0x76ed: 0xe0000c2e, 0x76ee: 0xe0000c5a, 0x76ef: 0xe0000c57,
-	0x76f0: 0xe0000c54, 0x76f1: 0x402da220, 0x76f2: 0xf0000a0a, 0x76f3: 0xf0000404,
-	0x76f4: 0xe0000c8a, 0x76f5: 0xe0000c87, 0x76f6: 0xe0000c9f, 0x76f7: 0xe0000c9c,
-	0x76f8: 0x402f7220, 0x76f9: 0xe0000ccc, 0x76fa: 0xe0000cc9, 0x76fb: 0xe0000cd8,
-	0x76fc: 0xe0000cd5, 0x76fd: 0xe0000cd2, 0x76fe: 0xe0000ccf, 0x76ff: 0xe0000d04,
-	// Block 0x1dc, offset 0x7700
-	0x7700: 0xe0000cfe, 0x7701: 0xe0000cf8, 0x7702: 0xe0000cf5, 0x7703: 0xe0000d51,
-	0x7704: 0xe0000d4e, 0x7705: 0xe0000d6f, 0x7706: 0xe0000d6c, 0x7707: 0xe0000d5d,
-	0x7708: 0xe0000d5a, 0x7709: 0xf0000404, 0x770a: 0x002eda88, 0x770b: 0x402eda20,
-	0x770c: 0xe0000e2e, 0x770d: 0xe0000e2b, 0x770e: 0xe0000da0, 0x770f: 0xe0000d9d,
-	0x7710: 0xe0000de0, 0x7711: 0xe0000ddd, 0x7712: 0xe0000e93, 0x7713: 0xe0000e8f,
-	0x7714: 0xe0000eca, 0x7715: 0xe0000ec7, 0x7716: 0xe0000edc, 0x7717: 0xe0000ed9,
-	0x7718: 0x002f7c83, 0x7719: 0x402f7c20, 0x771a: 0xe0000f1f, 0x771b: 0xe0000f1c,
-	0x771c: 0xe0000f2d, 0x771d: 0xe0000f2a, 0x771e: 0xe0000f47, 0x771f: 0xe0000f44,
-	0x7720: 0x002fe883, 0x7721: 0x402fe820, 0x7722: 0xe0000f99, 0x7723: 0xe0000f96,
-	0x7724: 0xe0000f8a, 0x7725: 0xe0000f87, 0x7726: 0x00303688, 0x7727: 0x40303620,
-	0x7728: 0xe000102b, 0x7729: 0xe0001028, 0x772a: 0xe000103f, 0x772b: 0xe000103c,
-	0x772c: 0xe0000fe7, 0x772d: 0xe0000fe4, 0x772e: 0xe0000ff9, 0x772f: 0xe0000ff6,
-	0x7730: 0xe0001025, 0x7731: 0xe0001022, 0x7732: 0xe0001039, 0x7733: 0xe0001036,
-	0x7734: 0xe00010d8, 0x7735: 0xe00010d5, 0x7736: 0xe000110e, 0x7737: 0xe000110b,
-	0x7738: 0xe0001117, 0x7739: 0xe000113b, 0x773a: 0xe0001138, 0x773b: 0xe000114d,
-	0x773c: 0xe000114a, 0x773d: 0x00312c83, 0x773e: 0x40312c20, 0x773f: 0xe0000f64,
-	// Block 0x1dd, offset 0x7740
-	0x7740: 0xe0000d24, 0x7741: 0xe0000d21, 0x7742: 0xe0000d2a, 0x7743: 0xe0000d27,
-	0x7744: 0xe0000d69, 0x7745: 0xe0000d66, 0x7746: 0xe0000d7b, 0x7747: 0xe0000d78,
-	0x7748: 0xe0000d87, 0x7749: 0xe0000d84, 0x774a: 0xe0000d81, 0x774b: 0xe0000d7e,
-	0x774c: 0xe0000ded, 0x774d: 0xe0000de9, 0x774e: 0xe0000df5, 0x774f: 0xe0000df1,
-	0x7750: 0xe0000e3d, 0x7751: 0xe0000e39, 0x7752: 0xe0000e35, 0x7753: 0xe0000e31,
-	0x7754: 0xe0000ea7, 0x7755: 0xe0000ea4, 0x7756: 0xe0000ead, 0x7757: 0xe0000eaa,
-	0x7758: 0xe0000ed6, 0x7759: 0xe0000ed3, 0x775a: 0xe0000ef4, 0x775b: 0xe0000ef1,
-	0x775c: 0xe0000efb, 0x775d: 0xe0000ef7, 0x775e: 0xe0000f02, 0x775f: 0xe0000eff,
-	0x7760: 0xe0000f41, 0x7761: 0xe0000f3e, 0x7762: 0xe0000f53, 0x7763: 0xe0000f50,
-	0x7764: 0xe0000f26, 0x7765: 0xe0000f22, 0x7766: 0xe00025c3, 0x7767: 0xe00025c0,
-	0x7768: 0xe0000f5a, 0x7769: 0xe0000f56, 0x776a: 0xe0000f93, 0x776b: 0xe0000f90,
-	0x776c: 0xe0000f9f, 0x776d: 0xe0000f9c, 0x776e: 0xe0000fb1, 0x776f: 0xe0000fae,
-	0x7770: 0xe0000fab, 0x7771: 0xe0000fa8, 0x7772: 0xe0001093, 0x7773: 0xe0001090,
-	0x7774: 0xe000109f, 0x7775: 0xe000109c, 0x7776: 0xe0001099, 0x7777: 0xe0001096,
-	0x7778: 0xe0001032, 0x7779: 0xe000102e, 0x777a: 0xe0001046, 0x777b: 0xe0001042,
-	0x777c: 0xe00010a9, 0x777d: 0xe00010a6, 0x777e: 0xe00010af, 0x777f: 0xe00010ac,
-	// Block 0x1de, offset 0x7780
-	0x7780: 0xa0000000, 0x7781: 0xa0000000, 0x7782: 0xa0000000, 0x7783: 0xa0000000,
-	0x7784: 0xa0000000, 0x7785: 0xa0000000, 0x7786: 0xa0000000, 0x7787: 0xa0000000,
-	0x7788: 0xa0000000, 0x7789: 0x40020020, 0x778a: 0x40020220, 0x778b: 0x40020420,
-	0x778c: 0x40020620, 0x778d: 0x40020820, 0x778e: 0xa0000000, 0x778f: 0xa0000000,
-	0x7790: 0xa0000000, 0x7791: 0xa0000000, 0x7792: 0xa0000000, 0x7793: 0xa0000000,
-	0x7794: 0xa0000000, 0x7795: 0xa0000000, 0x7796: 0xa0000000, 0x7797: 0xa0000000,
-	0x7798: 0xa0000000, 0x7799: 0xa0000000, 0x779a: 0xa0000000, 0x779b: 0xa0000000,
-	0x779c: 0xa0000000, 0x779d: 0xa0000000, 0x779e: 0xa0000000, 0x779f: 0xa0000000,
-	0x77a0: 0x40021220, 0x77a1: 0x4002ba20, 0x77a2: 0x4003e020, 0x77a3: 0x4004ea20,
-	0x77a4: 0x4027de20, 0x77a5: 0x4004ec20, 0x77a6: 0x4004e620, 0x77a7: 0x4003d220,
-	0x77a8: 0x4003f420, 0x77a9: 0x4003f620, 0x77aa: 0x4004d820, 0x77ab: 0x40093820,
-	0x77ac: 0x40024020, 0x77ad: 0x40021a20, 0x77ae: 0x4002e420, 0x77af: 0x4004e220,
-	0x77b0: 0x4029cc20, 0x77b1: 0x4029ce20, 0x77b2: 0x4029d020, 0x77b3: 0x4029d220,
-	0x77b4: 0x4029d420, 0x77b5: 0x4029d620, 0x77b6: 0x4029d820, 0x77b7: 0x4029da20,
-	0x77b8: 0x4029dc20, 0x77b9: 0x4029de20, 0x77ba: 0x40026c20, 0x77bb: 0x40026220,
-	0x77bc: 0x40094020, 0x77bd: 0x40094220, 0x77be: 0x40094420, 0x77bf: 0x4002c420,
-	// Block 0x1df, offset 0x77c0
-	0x77c0: 0x4004d620, 0x77c1: 0x002bde88, 0x77c2: 0x002c0a88, 0x77c3: 0xc36509c2,
-	0x77c4: 0xc36a09f2, 0x77c5: 0x002c9888, 0x77c6: 0xc36f0a22, 0x77c7: 0x002d2288,
-	0x77c8: 0x002d6888, 0x77c9: 0x002d9a88, 0x77ca: 0x002dcc88, 0x77cb: 0x002dfe88,
-	0x77cc: 0xc37b0ac4, 0x77cd: 0x002e8288, 0x77ce: 0xc3740a52, 0x77cf: 0x002ee288,
-	0x77d0: 0xc38209c2, 0x77d1: 0x002f5688, 0x77d2: 0xc38509c2, 0x77d3: 0x002fe688,
-	0x77d4: 0xc38a09c2, 0x77d5: 0x00306c88, 0x77d6: 0x0030be88, 0x77d7: 0x0030e288,
-	0x77d8: 0x0030f688, 0x77d9: 0x00310088, 0x77da: 0x00312a88, 0x77db: 0x4003f820,
-	0x77dc: 0x4004e420, 0x77dd: 0x4003fa20, 0x77de: 0x40062420, 0x77df: 0x40021620,
-	0x77e0: 0x40061e20, 0x77e1: 0x402bde20, 0x77e2: 0x402c0a20, 0x77e3: 0xc33309b1,
-	0x77e4: 0xc36809e1, 0x77e5: 0x402c9820, 0x77e6: 0xc36d0a11, 0x77e7: 0x402d2220,
-	0x77e8: 0x402d6820, 0x77e9: 0x402d9a20, 0x77ea: 0x402dcc20, 0x77eb: 0x402dfe20,
-	0x77ec: 0xc3770a73, 0x77ed: 0x402e8220, 0x77ee: 0xc3720a41, 0x77ef: 0x402ee220,
-	0x77f0: 0xc38009b1, 0x77f1: 0x402f5620, 0x77f2: 0xc35d09b1, 0x77f3: 0x402fe620,
-	0x77f4: 0xc38809b1, 0x77f5: 0x40306c20, 0x77f6: 0x4030be20, 0x77f7: 0x4030e220,
-	0x77f8: 0x4030f620, 0x77f9: 0x40310020, 0x77fa: 0x40312a20, 0x77fb: 0x4003fc20,
-	0x77fc: 0x40094820, 0x77fd: 0x4003fe20, 0x77fe: 0x40094c20, 0x77ff: 0xa0000000,
-	// Block 0x1e0, offset 0x7800
-	0x7800: 0xa0000000, 0x7801: 0xa0000000, 0x7802: 0xa0000000, 0x7803: 0xa0000000,
-	0x7804: 0xa0000000, 0x7805: 0xa0000000, 0x7806: 0xa0000000, 0x7807: 0xa0000000,
-	0x7808: 0xa0000000, 0x7809: 0x40020020, 0x780a: 0x40020220, 0x780b: 0x40020420,
-	0x780c: 0x40020620, 0x780d: 0x40020820, 0x780e: 0xa0000000, 0x780f: 0xa0000000,
-	0x7810: 0xa0000000, 0x7811: 0xa0000000, 0x7812: 0xa0000000, 0x7813: 0xa0000000,
-	0x7814: 0xa0000000, 0x7815: 0xa0000000, 0x7816: 0xa0000000, 0x7817: 0xa0000000,
-	0x7818: 0xa0000000, 0x7819: 0xa0000000, 0x781a: 0xa0000000, 0x781b: 0xa0000000,
-	0x781c: 0xa0000000, 0x781d: 0xa0000000, 0x781e: 0xa0000000, 0x781f: 0xa0000000,
-	0x7820: 0x40021220, 0x7821: 0x4002ba20, 0x7822: 0x4003e020, 0x7823: 0x4004ea20,
-	0x7824: 0x4027de20, 0x7825: 0x4004ec20, 0x7826: 0x4004e620, 0x7827: 0x4003d220,
-	0x7828: 0x4003f420, 0x7829: 0x4003f620, 0x782a: 0x4004d820, 0x782b: 0x40093820,
-	0x782c: 0x40024020, 0x782d: 0x40021a20, 0x782e: 0x4002e420, 0x782f: 0x4004e220,
-	0x7830: 0x4029cc20, 0x7831: 0x4029ce20, 0x7832: 0x4029d020, 0x7833: 0x4029d220,
-	0x7834: 0x4029d420, 0x7835: 0x4029d620, 0x7836: 0x4029d820, 0x7837: 0x4029da20,
-	0x7838: 0x4029dc20, 0x7839: 0x4029de20, 0x783a: 0x40026c20, 0x783b: 0x40026220,
-	0x783c: 0x40094020, 0x783d: 0x40094220, 0x783e: 0x40094420, 0x783f: 0x4002c420,
-	// Block 0x1e1, offset 0x7840
-	0x7840: 0x4004d620, 0x7841: 0xc3970b93, 0x7842: 0x002c0a88, 0x7843: 0x002c3a88,
-	0x7844: 0x002c6288, 0x7845: 0xc39e0be1, 0x7846: 0x002d0888, 0x7847: 0x002d2288,
-	0x7848: 0x002d6888, 0x7849: 0x002d9a88, 0x784a: 0x002dcc88, 0x784b: 0x002dfe88,
-	0x784c: 0xc0030002, 0x784d: 0x002e8288, 0x784e: 0x002e9e88, 0x784f: 0xc3a30b21,
-	0x7850: 0x002f2c88, 0x7851: 0x002f5688, 0x7852: 0x002f7a88, 0x7853: 0x002fe688,
-	0x7854: 0x00302c88, 0x7855: 0xc3900b21, 0x7856: 0x0030be88, 0x7857: 0x0030e288,
-	0x7858: 0x0030f688, 0x7859: 0x00310088, 0x785a: 0x00312a88, 0x785b: 0x4003f820,
-	0x785c: 0x4004e420, 0x785d: 0x4003fa20, 0x785e: 0x40062420, 0x785f: 0x40021620,
-	0x7860: 0x40061e20, 0x7861: 0xc3930b52, 0x7862: 0x402c0a20, 0x7863: 0x402c3a20,
-	0x7864: 0x402c6220, 0x7865: 0xc39c0be1, 0x7866: 0x402d0820, 0x7867: 0x402d2220,
-	0x7868: 0x402d6820, 0x7869: 0x402d9a20, 0x786a: 0x402dcc20, 0x786b: 0x402dfe20,
-	0x786c: 0xc0000002, 0x786d: 0x402e8220, 0x786e: 0x402e9e20, 0x786f: 0xc3a00b21,
-	0x7870: 0x402f2c20, 0x7871: 0x402f5620, 0x7872: 0x402f7a20, 0x7873: 0x402fe620,
-	0x7874: 0x40302c20, 0x7875: 0xc38d0b21, 0x7876: 0x4030be20, 0x7877: 0x4030e220,
-	0x7878: 0x4030f620, 0x7879: 0x40310020, 0x787a: 0x40312a20, 0x787b: 0x4003fc20,
-	0x787c: 0x40094820, 0x787d: 0x4003fe20, 0x787e: 0x40094c20, 0x787f: 0xa0000000,
-	// Block 0x1e2, offset 0x7880
-	0x7880: 0xe00008f5, 0x7881: 0xe00008ef, 0x7882: 0xe0000921, 0x7883: 0xe0000969,
-	0x7884: 0x00320ca3, 0x7885: 0x00321083, 0x7886: 0x00320c83, 0x7887: 0xe0000a53,
-	0x7888: 0xe0000ae8, 0x7889: 0xe0000ae2, 0x788a: 0xe0000af4, 0x788b: 0xe0000b20,
-	0x788c: 0xe0000c2b, 0x788d: 0xe0000c25, 0x788e: 0xe0000c37, 0x788f: 0xe0000c43,
-	0x7890: 0x002c62c3, 0x7891: 0xe0000d63, 0x7892: 0xe0000d9a, 0x7893: 0xe0000d94,
-	0x7894: 0xe0000da6, 0x7895: 0xe0000de6, 0x7896: 0x00320ea3, 0x7897: 0x40093e20,
-	0x7898: 0x00320e83, 0x7899: 0xe0000fe1, 0x789a: 0xe0000fdb, 0x789b: 0xe0000fed,
-	0x789c: 0x003100a3, 0x789d: 0xe0001102, 0x789e: 0xe00025cc, 0x789f: 0xe0000f7b,
-	0x78a0: 0xe00008f2, 0x78a1: 0xe00008ec, 0x78a2: 0xe000091e, 0x78a3: 0xe0000966,
-	0x78a4: 0x40320c21, 0x78a5: 0x40321020, 0x78a6: 0x40320c20, 0x78a7: 0xe0000a4d,
-	0x78a8: 0xe0000ae5, 0x78a9: 0xe0000adf, 0x78aa: 0xe0000af1, 0x78ab: 0xe0000b1d,
-	0x78ac: 0xe0000c28, 0x78ad: 0xe0000c22, 0x78ae: 0xe0000c34, 0x78af: 0xe0000c40,
-	0x78b0: 0x402c6222, 0x78b1: 0xe0000d60, 0x78b2: 0xe0000d97, 0x78b3: 0xe0000d91,
-	0x78b4: 0xe0000da3, 0x78b5: 0xe0000de3, 0x78b6: 0x40320e21, 0x78b7: 0x40093c20,
-	0x78b8: 0x40320e20, 0x78b9: 0xe0000fde, 0x78ba: 0xe0000fd8, 0x78bb: 0xe0000fea,
-	0x78bc: 0x40310021, 0x78bd: 0xe00010ff, 0x78be: 0xe00025c9, 0x78bf: 0xe0001114,
-	// Block 0x1e3, offset 0x78c0
-	0x78c0: 0xe0000983, 0x78c1: 0xe0000980, 0x78c2: 0xe00008fb, 0x78c3: 0xe00008f8,
-	0x78c4: 0xe000097d, 0x78c5: 0xe000097a, 0x78c6: 0xe0000a38, 0x78c7: 0xe0000a35,
-	0x78c8: 0xe0000a3e, 0x78c9: 0xe0000a3b, 0x78ca: 0xe0000a4a, 0x78cb: 0xe0000a47,
-	0x78cc: 0xe0000a44, 0x78cd: 0xe0000a41, 0x78ce: 0xe0000a86, 0x78cf: 0xe0000a83,
-	0x78d0: 0x002c62a3, 0x78d1: 0x402c6221, 0x78d2: 0xe0000b46, 0x78d3: 0xe0000b43,
-	0x78d4: 0xe0000aee, 0x78d5: 0xe0000aeb, 0x78d6: 0xe0000b2c, 0x78d7: 0xe0000b29,
-	0x78d8: 0x00320cc3, 0x78d9: 0x40320c22, 0x78da: 0xe0000b1a, 0x78db: 0xe0000b17,
-	0x78dc: 0xe0000bb8, 0x78dd: 0xe0000bb5, 0x78de: 0xe0000bb2, 0x78df: 0xe0000baf,
-	0x78e0: 0xe0000bc4, 0x78e1: 0xe0000bc1, 0x78e2: 0xe0000bca, 0x78e3: 0xe0000bc7,
-	0x78e4: 0xe0000bee, 0x78e5: 0xe0000beb, 0x78e6: 0xe0000c1b, 0x78e7: 0xe0000c18,
-	0x78e8: 0xe0000c51, 0x78e9: 0xe0000c4e, 0x78ea: 0xe0000c60, 0x78eb: 0xe0000c5d,
-	0x78ec: 0xe0000c31, 0x78ed: 0xe0000c2e, 0x78ee: 0xe0000c5a, 0x78ef: 0xe0000c57,
-	0x78f0: 0xe0000c54, 0x78f1: 0x402da220, 0x78f2: 0xf0000a0a, 0x78f3: 0xf0000404,
-	0x78f4: 0xe0000c8a, 0x78f5: 0xe0000c87, 0x78f6: 0xe0000c9f, 0x78f7: 0xe0000c9c,
-	0x78f8: 0x402f7220, 0x78f9: 0xe0000ccc, 0x78fa: 0xe0000cc9, 0x78fb: 0xe0000cd8,
-	0x78fc: 0xe0000cd5, 0x78fd: 0xe0000cd2, 0x78fe: 0xe0000ccf, 0x78ff: 0xe0000d04,
-	// Block 0x1e4, offset 0x7900
-	0x7900: 0xe0000cfe, 0x7901: 0xe0000cf8, 0x7902: 0xe0000cf5, 0x7903: 0xe0000d51,
-	0x7904: 0xe0000d4e, 0x7905: 0xe0000d6f, 0x7906: 0xe0000d6c, 0x7907: 0xe0000d5d,
-	0x7908: 0xe0000d5a, 0x7909: 0xf0000404, 0x790a: 0x002eda88, 0x790b: 0x402eda20,
-	0x790c: 0xe0000e2e, 0x790d: 0xe0000e2b, 0x790e: 0xe0000da0, 0x790f: 0xe0000d9d,
-	0x7910: 0x00320ec3, 0x7911: 0x40320e22, 0x7912: 0x00320ee3, 0x7913: 0x40320e23,
-	0x7914: 0xe0000eca, 0x7915: 0xe0000ec7, 0x7916: 0xe0000edc, 0x7917: 0xe0000ed9,
-	0x7918: 0xe0000ed0, 0x7919: 0xe0000ecd, 0x791a: 0xe0000f1f, 0x791b: 0xe0000f1c,
-	0x791c: 0xe0000f2d, 0x791d: 0xe0000f2a, 0x791e: 0xe0000f47, 0x791f: 0xe0000f44,
-	0x7920: 0xe0000f33, 0x7921: 0xe0000f30, 0x7922: 0xe0000f99, 0x7923: 0xe0000f96,
-	0x7924: 0xe0000f8a, 0x7925: 0xe0000f87, 0x7926: 0x00303688, 0x7927: 0x40303620,
-	0x7928: 0xe000102b, 0x7929: 0xe0001028, 0x792a: 0xe000103f, 0x792b: 0xe000103c,
-	0x792c: 0xe0000fe7, 0x792d: 0xe0000fe4, 0x792e: 0xe0000ff9, 0x792f: 0xe0000ff6,
-	0x7930: 0x003100c3, 0x7931: 0x40310022, 0x7932: 0xe0001039, 0x7933: 0xe0001036,
-	0x7934: 0xe00010d8, 0x7935: 0xe00010d5, 0x7936: 0xe000110e, 0x7937: 0xe000110b,
-	0x7938: 0xe0001117, 0x7939: 0xe000113b, 0x793a: 0xe0001138, 0x793b: 0xe000114d,
-	0x793c: 0xe000114a, 0x793d: 0xe0001147, 0x793e: 0xe0001144, 0x793f: 0xe0000f64,
-	// Block 0x1e5, offset 0x7940
-	0x7940: 0x40321220, 0x7941: 0x40321a20, 0x7942: 0x40322220, 0x7943: 0x40322a20,
-	0x7944: 0xe0000ad5, 0x7945: 0xe0000ad1, 0x7946: 0xe0000acd, 0x7947: 0xf0000a0a,
-	0x7948: 0xf000040a, 0x7949: 0xf0000404, 0x794a: 0xf0000a0a, 0x794b: 0xf000040a,
-	0x794c: 0xf0000404, 0x794d: 0xe0000947, 0x794e: 0xe0000944, 0x794f: 0xe0000c3d,
-	0x7950: 0xe0000c3a, 0x7951: 0xe0000dcc, 0x7952: 0xe0000dc9, 0x7953: 0xe0000ff3,
-	0x7954: 0xe0000ff0, 0x7955: 0xe00025e4, 0x7956: 0xe00025e1, 0x7957: 0xe00025d2,
-	0x7958: 0xe00025cf, 0x7959: 0xe00025de, 0x795a: 0xe00025db, 0x795b: 0xe00025d8,
-	0x795c: 0xe00025d5, 0x795d: 0x402cae20, 0x795e: 0xe00025f6, 0x795f: 0xe00025f3,
-	0x7960: 0xe0000976, 0x7961: 0xe0000972, 0x7962: 0xe00025f0, 0x7963: 0xe00025ed,
-	0x7964: 0x002d3a88, 0x7965: 0x402d3a20, 0x7966: 0xe0000bbe, 0x7967: 0xe0000bbb,
-	0x7968: 0xe0000c99, 0x7969: 0xe0000c96, 0x796a: 0xe0000e20, 0x796b: 0xe0000e1d,
-	0x796c: 0xe0000e27, 0x796d: 0xe0000e23, 0x796e: 0xe0001162, 0x796f: 0xe000115f,
-	0x7970: 0xe0000c8d, 0x7971: 0xf0000a0a, 0x7972: 0xf000040a, 0x7973: 0xf0000404,
-	0x7974: 0xe0000bac, 0x7975: 0xe0000ba9, 0x7976: 0x002d7888, 0x7977: 0x00319488,
-	0x7978: 0xe0000d57, 0x7979: 0xe0000d54, 0x797a: 0xe000260e, 0x797b: 0xe000260b,
-	0x797c: 0xe00025ea, 0x797d: 0xe00025e7, 0x797e: 0xe00025fc, 0x797f: 0xe00025f9,
-	// Block 0x1e6, offset 0x7980
-	0x7980: 0xe000098f, 0x7981: 0xe000098c, 0x7982: 0xe0000995, 0x7983: 0xe0000992,
-	0x7984: 0xe0000b62, 0x7985: 0xe0000b5f, 0x7986: 0xe0000b68, 0x7987: 0xe0000b65,
-	0x7988: 0xe0000c6c, 0x7989: 0xe0000c69, 0x798a: 0xe0000c72, 0x798b: 0xe0000c6f,
-	0x798c: 0xe0000e4a, 0x798d: 0xe0000e47, 0x798e: 0xe0000e50, 0x798f: 0xe0000e4d,
-	0x7990: 0xe0000ee8, 0x7991: 0xe0000ee5, 0x7992: 0xe0000eee, 0x7993: 0xe0000eeb,
-	0x7994: 0xe0001053, 0x7995: 0xe0001050, 0x7996: 0xe0001059, 0x7997: 0xe0001056,
-	0x7998: 0xe0000f61, 0x7999: 0xe0000f5e, 0x799a: 0xe0000fa5, 0x799b: 0xe0000fa2,
-	0x799c: 0x00312288, 0x799d: 0x40312220, 0x799e: 0xe0000bf4, 0x799f: 0xe0000bf1,
-	0x79a0: 0x002ebc88, 0x79a1: 0x402c8c20, 0x79a2: 0x002f2288, 0x79a3: 0x402f2220,
-	0x79a4: 0x00314088, 0x79a5: 0x40314020, 0x79a6: 0xe000096f, 0x79a7: 0xe000096c,
-	0x79a8: 0xe0000b32, 0x79a9: 0xe0000b2f, 0x79aa: 0xe0002608, 0x79ab: 0xe0002605,
-	0x79ac: 0xe0000dfd, 0x79ad: 0xe0000df9, 0x79ae: 0xe0000e04, 0x79af: 0xe0000e01,
-	0x79b0: 0xe0000e0b, 0x79b1: 0xe0000e07, 0x79b2: 0xe0001129, 0x79b3: 0xe0001126,
-	0x79b4: 0x402e5e20, 0x79b5: 0x402ed020, 0x79b6: 0x40305a20, 0x79b7: 0x402dd420,
-	0x79b8: 0xe0000abf, 0x79b9: 0xe0000ec4, 0x79ba: 0x002be888, 0x79bb: 0x002c4488,
-	0x79bc: 0x402c4420, 0x79bd: 0x002e3888, 0x79be: 0x00303e88, 0x79bf: 0x402ffc20,
-	// Block 0x1e7, offset 0x79c0
-	0x79c0: 0x402c2820, 0x79c1: 0x402c7020, 0x79c2: 0x402d1420, 0x79c3: 0x402d4220,
-	0x79c4: 0x402e0820, 0x79c5: 0x402e5220, 0x79c6: 0x402e8e20, 0x79c7: 0x402ec620,
-	0x79c8: 0x402f3c20, 0x79c9: 0x402faa20, 0x79ca: 0x402ff220, 0x79cb: 0x40301020,
-	0x79cc: 0x4030ca20, 0x79cd: 0x4030fe20, 0x79ce: 0x40313e20, 0x79cf: 0x402bea20,
-	0x79d0: 0x402c0020, 0x79d1: 0x402c8220, 0x79d2: 0x402caa20, 0x79d3: 0x402cca20,
-	0x79d4: 0x402ce420, 0x79d5: 0x402cc020, 0x79d6: 0x402dc020, 0x79d7: 0x402f0620,
-	0x79d8: 0x40302220, 0x79d9: 0x40308620, 0x79da: 0x40317620, 0x79db: 0x002c0294,
-	0x79dc: 0x002c3a94, 0x79dd: 0x002c5694, 0x79de: 0xe00025c6, 0x79df: 0x002cdc94,
-	0x79e0: 0x002d0894, 0x79e1: 0x002dee94, 0x79e2: 0x002d2a94, 0x79e3: 0x00308894,
-	0x79e4: 0x002db694, 0x79e5: 0x002dc294, 0x79e6: 0x002daa94, 0x79e7: 0x002dbe94,
-	0x79e8: 0x002de694, 0x79e9: 0x002e5494, 0x79ea: 0x002e5294, 0x79eb: 0x002e2a94,
-	0x79ec: 0x002e9094, 0x79ed: 0x0030ac94, 0x79ee: 0x002eb494, 0x79ef: 0x002ec894,
-	0x79f0: 0x002ea694, 0x79f1: 0x002f1094, 0x79f2: 0x002f4c94, 0x79f3: 0x002ff494,
-	0x79f4: 0x00300894, 0x79f5: 0x00304294, 0x79f6: 0x00307c94, 0x79f7: 0x0030b494,
-	0x79f8: 0x00307494, 0x79f9: 0x0030cc94, 0x79fa: 0x0030da94, 0x79fb: 0x00312a94,
-	0x79fc: 0x00314894, 0x79fd: 0x00315094, 0x79fe: 0x00316494, 0x79ff: 0x00326a94,
-	// Block 0x1e8, offset 0x7a00
-	0x7a00: 0xe0000d24, 0x7a01: 0xe0000d21, 0x7a02: 0xe0000d2a, 0x7a03: 0xe0000d27,
-	0x7a04: 0xe0000d69, 0x7a05: 0xe0000d66, 0x7a06: 0xe0000d7b, 0x7a07: 0xe0000d78,
-	0x7a08: 0xe0000d87, 0x7a09: 0xe0000d84, 0x7a0a: 0xe0000d81, 0x7a0b: 0xe0000d7e,
-	0x7a0c: 0xe0000ded, 0x7a0d: 0xe0000de9, 0x7a0e: 0xe0002602, 0x7a0f: 0xe00025ff,
-	0x7a10: 0xe0000e3d, 0x7a11: 0xe0000e39, 0x7a12: 0xe0000e35, 0x7a13: 0xe0000e31,
-	0x7a14: 0xe0000ea7, 0x7a15: 0xe0000ea4, 0x7a16: 0xe0000ead, 0x7a17: 0xe0000eaa,
-	0x7a18: 0xe0000ed6, 0x7a19: 0xe0000ed3, 0x7a1a: 0xe0000ef4, 0x7a1b: 0xe0000ef1,
-	0x7a1c: 0xe0000efb, 0x7a1d: 0xe0000ef7, 0x7a1e: 0xe0000f02, 0x7a1f: 0xe0000eff,
-	0x7a20: 0xe0000f41, 0x7a21: 0xe0000f3e, 0x7a22: 0xe0000f53, 0x7a23: 0xe0000f50,
-	0x7a24: 0xe0000f26, 0x7a25: 0xe0000f22, 0x7a26: 0xe0000f3a, 0x7a27: 0xe0000f36,
-	0x7a28: 0xe0000f5a, 0x7a29: 0xe0000f56, 0x7a2a: 0xe0000f93, 0x7a2b: 0xe0000f90,
-	0x7a2c: 0xe0000f9f, 0x7a2d: 0xe0000f9c, 0x7a2e: 0xe0000fb1, 0x7a2f: 0xe0000fae,
-	0x7a30: 0xe0000fab, 0x7a31: 0xe0000fa8, 0x7a32: 0xe0001093, 0x7a33: 0xe0001090,
-	0x7a34: 0xe000109f, 0x7a35: 0xe000109c, 0x7a36: 0xe0001099, 0x7a37: 0xe0001096,
-	0x7a38: 0xe0001032, 0x7a39: 0xe000102e, 0x7a3a: 0xe00025e4, 0x7a3b: 0xe00025e1,
-	0x7a3c: 0xe00010a9, 0x7a3d: 0xe00010a6, 0x7a3e: 0xe00010af, 0x7a3f: 0xe00010ac,
-	// Block 0x1e9, offset 0x7a40
-	0x7a40: 0xe00009bc, 0x7a41: 0xe00009c0, 0x7a42: 0x002c3a8b, 0x7a43: 0xf0000a04,
-	0x7a44: 0x40081c20, 0x7a45: 0xe0000a5e, 0x7a46: 0xe0000a62, 0x7a47: 0x002cc28a,
-	0x7a48: 0x40081e20, 0x7a49: 0xf0000a04, 0x7a4a: 0x002d2285, 0x7a4b: 0x002d688b,
-	0x7a4c: 0x002d688b, 0x7a4d: 0x002d688b, 0x7a4e: 0x002d6885, 0x7a4f: 0xf0000202,
-	0x7a50: 0x002d9a8b, 0x7a51: 0x002d9a8b, 0x7a52: 0x002e228b, 0x7a53: 0x002e2285,
-	0x7a54: 0x40082020, 0x7a55: 0x002e9e8b, 0x7a56: 0xf000040a, 0x7a57: 0x40082220,
-	0x7a58: 0x40082420, 0x7a59: 0x002f2c8b, 0x7a5a: 0x002f568b, 0x7a5b: 0x002f7a8b,
-	0x7a5c: 0x002f7a8b, 0x7a5d: 0x002f7a8b, 0x7a5e: 0x40082620, 0x7a5f: 0x40082820,
-	0x7a60: 0xf0001414, 0x7a61: 0xe0000fbd, 0x7a62: 0xf0001414, 0x7a63: 0x40082a20,
-	0x7a64: 0x00312a8b, 0x7a65: 0x40082c20, 0x7a66: 0x0032a288, 0x7a67: 0x40082e20,
-	0x7a68: 0x00312a8b, 0x7a69: 0x40083020, 0x7a6a: 0x002dfe88, 0x7a6b: 0x00321083,
-	0x7a6c: 0x002c0a8b, 0x7a6d: 0x002c3a8b, 0x7a6e: 0x40083220, 0x7a6f: 0x002c9885,
-	0x7a70: 0x002c988b, 0x7a71: 0x002d088b, 0x7a72: 0x002d1e88, 0x7a73: 0x002e828b,
-	0x7a74: 0x002ee285, 0x7a75: 0x00389084, 0x7a76: 0x00389284, 0x7a77: 0x00389484,
-	0x7a78: 0x00389684, 0x7a79: 0x002d9a85, 0x7a7a: 0x40083420, 0x7a7b: 0xe0000b95,
-	0x7a7c: 0x00327e85, 0x7a7d: 0x00325685, 0x7a7e: 0x0032568b, 0x7a7f: 0x00327e8b,
-	// Block 0x1ea, offset 0x7a80
-	0x7a80: 0x40078220, 0x7a81: 0x40075e20, 0x7a82: 0x40076020, 0x7a83: 0x40076220,
-	0x7a84: 0x40058220, 0x7a85: 0x40058420, 0x7a86: 0x40058620, 0x7a87: 0x40058820,
-	0x7a88: 0x40058a20, 0x7a89: 0x40058c20, 0x7a8a: 0x40058e20, 0x7a8b: 0x4027bc20,
-	0x7a8c: 0x0027bc83, 0x7a8d: 0x4027bc21, 0x7a8e: 0x4027bc22, 0x7a8f: 0x4027bc23,
-	0x7a90: 0x4027bc24, 0x7a91: 0x4027bc25, 0x7a92: 0x4005a020, 0x7a93: 0x40076420,
-	0x7a94: 0x4027bc26, 0x7a95: 0x40076620, 0x7a96: 0x40076820, 0x7a97: 0x40076a20,
-	0x7a98: 0xadc00000, 0x7a99: 0xadc00000, 0x7a9a: 0x40076c20, 0x7a9b: 0x40076e20,
-	0x7a9c: 0x40077020, 0x7a9d: 0x40077220, 0x7a9e: 0x40077420, 0x7a9f: 0x40077620,
-	0x7aa0: 0xe00001a0, 0x7aa1: 0xe0000234, 0x7aa2: 0xe000034c, 0x7aa3: 0xe0000426,
-	0x7aa4: 0xe00004fb, 0x7aa5: 0xe00005c5, 0x7aa6: 0xe0000690, 0x7aa7: 0xe0000738,
-	0x7aa8: 0xe00007e4, 0x7aa9: 0xe0000889, 0x7aaa: 0xe0000237, 0x7aab: 0xe000034f,
-	0x7aac: 0xe0000429, 0x7aad: 0xe00004fe, 0x7aae: 0xe00005c8, 0x7aaf: 0xe0000693,
-	0x7ab0: 0xe000073b, 0x7ab1: 0xe00007e7, 0x7ab2: 0xe000088c, 0x7ab3: 0xe00001a3,
-	0x7ab4: 0x4027bc27, 0x7ab5: 0xadc00000, 0x7ab6: 0x40077a20, 0x7ab7: 0xadc00000,
-	0x7ab8: 0x40077c20, 0x7ab9: 0xae611002, 0x7aba: 0x40040020, 0x7abb: 0x40040220,
-	0x7abc: 0x40040420, 0x7abd: 0x40040620, 0x7abe: 0xa0000000, 0x7abf: 0xa0000000,
-	// Block 0x1eb, offset 0x7ac0
-	0x7ac0: 0x404a7620, 0x7ac1: 0x404a7c20, 0x7ac2: 0xc4cf2161, 0x7ac3: 0xe0002632,
-	0x7ac4: 0x404a8420, 0x7ac5: 0x404a8820, 0x7ac6: 0x404a8c20, 0x7ac7: 0x404a9020,
-	0x7ac9: 0x404a9420, 0x7aca: 0x004aa883, 0x7acb: 0x004aac83,
-	0x7acc: 0x004ab083, 0x7acd: 0xe000266a, 0x7ace: 0x004ab483, 0x7acf: 0x404aa820,
-	0x7ad0: 0x404aac20, 0x7ad1: 0xc3a90c31, 0x7ad2: 0xe0002667, 0x7ad3: 0x404ab420,
-	0x7ad4: 0x404ab820, 0x7ad5: 0x404abc20, 0x7ad6: 0xc3f31211, 0x7ad7: 0xe000268b,
-	0x7ad8: 0xc45418e1, 0x7ad9: 0x404ac820, 0x7ada: 0x404acc20, 0x7adb: 0x404ad020,
-	0x7adc: 0xe00026ac, 0x7add: 0x404ad420, 0x7ade: 0x404ad820, 0x7adf: 0x404adc20,
-	0x7ae0: 0xc48f1d01, 0x7ae1: 0x404ae420, 0x7ae2: 0xc43c1761, 0x7ae3: 0xc4491831,
-	0x7ae4: 0x404af220, 0x7ae5: 0x004af283, 0x7ae6: 0xc4831c51, 0x7ae7: 0x404afe20,
-	0x7ae8: 0x404b0220, 0x7ae9: 0xe0002611, 0x7aea: 0x004ae883, 0x7aeb: 0x404a7a20,
-	0x7aec: 0x404aec20,
-	0x7af1: 0xc51b0751, 0x7af2: 0x8282258c, 0x7af3: 0x8281258d,
-	0x7af4: 0x82842590, 0x7af5: 0x82812591, 0x7af6: 0x404b2420, 0x7af7: 0x404b2620,
-	0x7af8: 0x404b2820, 0x7af9: 0x404b2a20, 0x7afa: 0x82822596, 0x7afb: 0x83822596,
-	0x7afc: 0x82822598, 0x7afd: 0x83822598, 0x7afe: 0x004ac483, 0x7aff: 0xae611102,
-	// Block 0x1ec, offset 0x7b00
-	0x7b00: 0x8382258c, 0x7b01: 0x8281258f, 0x7b02: 0x004ac484, 0x7b03: 0x004ac485,
-	0x7b04: 0xae610e02, 0x7b05: 0xae611202, 0x7b06: 0xae600000, 0x7b07: 0xae600000,
-	0x7b08: 0xc3a60c01, 0x7b09: 0xc5062551, 0x7b0a: 0xae611502, 0x7b0b: 0xc5042521,
-	0x7b0c: 0x404b0e20, 0x7b0d: 0x404b0820, 0x7b0e: 0x404b0c20, 0x7b0f: 0x404b1020,
-	0x7b10: 0x82822599, 0x7b11: 0x8282259a, 0x7b12: 0x8282259b, 0x7b13: 0xe00026d6,
-	0x7b14: 0x8282259c, 0x7b15: 0x8282259d, 0x7b16: 0x8282259e, 0x7b17: 0x8282259f,
-	0x7b19: 0x828225a0, 0x7b1a: 0x838225a1, 0x7b1b: 0x838225a2,
-	0x7b1c: 0x838225a3, 0x7b1d: 0xe00026dc, 0x7b1e: 0x838225a4, 0x7b1f: 0x828225a1,
-	0x7b20: 0x828225a2, 0x7b21: 0x828225a3, 0x7b22: 0xe00026d9, 0x7b23: 0x828225a4,
-	0x7b24: 0x828225a5, 0x7b25: 0x828225a6, 0x7b26: 0x828225a7, 0x7b27: 0xe00026df,
-	0x7b28: 0x828225a8, 0x7b29: 0x828225a9, 0x7b2a: 0x828225aa, 0x7b2b: 0x828225ab,
-	0x7b2c: 0xe00026e2, 0x7b2d: 0x828225ac, 0x7b2e: 0x828225ad, 0x7b2f: 0x828225ae,
-	0x7b30: 0x828225af, 0x7b31: 0x828225b0, 0x7b32: 0xc5092581, 0x7b33: 0xc5122581,
-	0x7b34: 0x828225b3, 0x7b35: 0x838225b3, 0x7b36: 0x828225b4, 0x7b37: 0x828225b5,
-	0x7b38: 0x828225b6, 0x7b39: 0xe00026d3, 0x7b3a: 0x838225ac, 0x7b3b: 0x838225b0,
-	0x7b3c: 0x838225b1, 0x7b3e: 0x40077e20, 0x7b3f: 0x40078020,
-	// Block 0x1ed, offset 0x7b40
-	0x7b40: 0xa0000000, 0x7b41: 0xa0000000, 0x7b42: 0xa0000000, 0x7b43: 0xa0000000,
-	0x7b44: 0xa0000000, 0x7b45: 0xa0000000, 0x7b46: 0xa0000000, 0x7b47: 0xa0000000,
-	0x7b48: 0xa0000000, 0x7b49: 0x40020020, 0x7b4a: 0x40020220, 0x7b4b: 0x40020420,
-	0x7b4c: 0x40020620, 0x7b4d: 0x40020820, 0x7b4e: 0xa0000000, 0x7b4f: 0xa0000000,
-	0x7b50: 0xa0000000, 0x7b51: 0xa0000000, 0x7b52: 0xa0000000, 0x7b53: 0xa0000000,
-	0x7b54: 0xa0000000, 0x7b55: 0xa0000000, 0x7b56: 0xa0000000, 0x7b57: 0xa0000000,
-	0x7b58: 0xa0000000, 0x7b59: 0xa0000000, 0x7b5a: 0xa0000000, 0x7b5b: 0xa0000000,
-	0x7b5c: 0xa0000000, 0x7b5d: 0xa0000000, 0x7b5e: 0xa0000000, 0x7b5f: 0xa0000000,
-	0x7b60: 0x40021220, 0x7b61: 0x4002ba20, 0x7b62: 0x4003e020, 0x7b63: 0x4004ea20,
-	0x7b64: 0x4027de20, 0x7b65: 0x4004ec20, 0x7b66: 0x4004e620, 0x7b67: 0x4003d220,
-	0x7b68: 0x4003f420, 0x7b69: 0x4003f620, 0x7b6a: 0x4004d820, 0x7b6b: 0x40093820,
-	0x7b6c: 0x40024020, 0x7b6d: 0x40021a20, 0x7b6e: 0x4002e420, 0x7b6f: 0x4004e220,
-	0x7b70: 0x4029cc20, 0x7b71: 0x4029ce20, 0x7b72: 0x4029d020, 0x7b73: 0x4029d220,
-	0x7b74: 0x4029d420, 0x7b75: 0x4029d620, 0x7b76: 0x4029d820, 0x7b77: 0x4029da20,
-	0x7b78: 0x4029dc20, 0x7b79: 0x4029de20, 0x7b7a: 0x40026c20, 0x7b7b: 0x40026220,
-	0x7b7c: 0x40094020, 0x7b7d: 0x40094220, 0x7b7e: 0x40094420, 0x7b7f: 0x4002c420,
-	// Block 0x1ee, offset 0x7b80
-	0x7b80: 0x4004d620, 0x7b81: 0x002bde88, 0x7b82: 0x002c0a88, 0x7b83: 0x002c3a88,
-	0x7b84: 0xc36a2662, 0x7b85: 0x002c9888, 0x7b86: 0x002d0888, 0x7b87: 0xc51f2692,
-	0x7b88: 0x002d6888, 0x7b89: 0x002d9a88, 0x7b8a: 0x002dcc88, 0x7b8b: 0xc52426c2,
-	0x7b8c: 0xc0030002, 0x7b8d: 0x002e8288, 0x7b8e: 0xc52926f2, 0x7b8f: 0x002ee288,
-	0x7b90: 0x002f2c88, 0x7b91: 0x002f5688, 0x7b92: 0x002f7a88, 0x7b93: 0x002fe688,
-	0x7b94: 0xc38a2722, 0x7b95: 0x00306c88, 0x7b96: 0x0030be88, 0x7b97: 0x0030e288,
-	0x7b98: 0x002d6a83, 0x7b99: 0x00310088, 0x7b9a: 0x00312a88, 0x7b9b: 0x4003f820,
-	0x7b9c: 0x4004e420, 0x7b9d: 0x4003fa20, 0x7b9e: 0x40062420, 0x7b9f: 0x40021620,
-	0x7ba0: 0x40061e20, 0x7ba1: 0x402bde20, 0x7ba2: 0x402c0a20, 0x7ba3: 0x402c3a20,
-	0x7ba4: 0xc3682651, 0x7ba5: 0x402c9820, 0x7ba6: 0x402d0820, 0x7ba7: 0xc3372681,
-	0x7ba8: 0x402d6820, 0x7ba9: 0x402d9a20, 0x7baa: 0x402dcc20, 0x7bab: 0xc52226b1,
-	0x7bac: 0xc0000002, 0x7bad: 0x402e8220, 0x7bae: 0xc52726e1, 0x7baf: 0x402ee220,
-	0x7bb0: 0x402f2c20, 0x7bb1: 0x402f5620, 0x7bb2: 0x402f7a20, 0x7bb3: 0x402fe620,
-	0x7bb4: 0xc3882711, 0x7bb5: 0x40306c20, 0x7bb6: 0x4030be20, 0x7bb7: 0x4030e220,
-	0x7bb8: 0x402d6a20, 0x7bb9: 0x40310020, 0x7bba: 0x40312a20, 0x7bbb: 0x4003fc20,
-	0x7bbc: 0x40094820, 0x7bbd: 0x4003fe20, 0x7bbe: 0x40094c20, 0x7bbf: 0xa0000000,
-	// Block 0x1ef, offset 0x7bc0
-	0x7bc0: 0xe00008f5, 0x7bc1: 0xe00008ef, 0x7bc2: 0xe00026e8, 0x7bc3: 0xe0000969,
-	0x7bc4: 0xe000095b, 0x7bc5: 0xe000094d, 0x7bc6: 0xe00009dd, 0x7bc7: 0xe0000a53,
-	0x7bc8: 0xe0000ae8, 0x7bc9: 0xe0000ae2, 0x7bca: 0xe000271c, 0x7bcb: 0xe0000b20,
-	0x7bcc: 0xe0000c2b, 0x7bcd: 0xe0000c25, 0x7bce: 0xe0002756, 0x7bcf: 0xe0000c43,
-	0x7bd0: 0xe0000ab3, 0x7bd1: 0xe0000d63, 0x7bd2: 0xe0000d9a, 0x7bd3: 0xe0000d94,
-	0x7bd4: 0xe0002762, 0x7bd5: 0xe0000de6, 0x7bd6: 0xe0000dd2, 0x7bd7: 0x40093e20,
-	0x7bd8: 0xe0000e12, 0x7bd9: 0xe0000fe1, 0x7bda: 0xe0000fdb, 0x7bdb: 0xe0002796,
-	0x7bdc: 0xe0000fff, 0x7bdd: 0xe0001102, 0x7bde: 0x00318888, 0x7bdf: 0xe0000f7b,
-	0x7be0: 0xe00008f2, 0x7be1: 0xe00008ec, 0x7be2: 0xe00026e5, 0x7be3: 0xe0000966,
-	0x7be4: 0xe0000958, 0x7be5: 0xe000094a, 0x7be6: 0xe00009d5, 0x7be7: 0xe0000a4d,
-	0x7be8: 0xe0000ae5, 0x7be9: 0xe0000adf, 0x7bea: 0xe0002719, 0x7beb: 0xe0000b1d,
-	0x7bec: 0xe0000c28, 0x7bed: 0xe0000c22, 0x7bee: 0xe0002753, 0x7bef: 0xe0000c40,
-	0x7bf0: 0xe0000aad, 0x7bf1: 0xe0000d60, 0x7bf2: 0xe0000d97, 0x7bf3: 0xe0000d91,
-	0x7bf4: 0xe000275f, 0x7bf5: 0xe0000de3, 0x7bf6: 0xe0000dcf, 0x7bf7: 0x40093c20,
-	0x7bf8: 0xe0000e0f, 0x7bf9: 0xe0000fde, 0x7bfa: 0xe0000fd8, 0x7bfb: 0xe0002793,
-	0x7bfc: 0xe0000ffc, 0x7bfd: 0xe00010ff, 0x7bfe: 0x40318820, 0x7bff: 0xe0001114,
-	// Block 0x1f0, offset 0x7c00
-	0x7c00: 0xe0000983, 0x7c01: 0xe0000980, 0x7c02: 0xe00008fb, 0x7c03: 0xe00008f8,
-	0x7c04: 0xe000097d, 0x7c05: 0xe000097a, 0x7c06: 0xe0000a38, 0x7c07: 0xe0000a35,
-	0x7c08: 0xe0002716, 0x7c09: 0xe0002713, 0x7c0a: 0xe0000a4a, 0x7c0b: 0xe0000a47,
-	0x7c0c: 0xe0000a44, 0x7c0d: 0xe0000a41, 0x7c0e: 0xe0000a86, 0x7c0f: 0xe0000a83,
-	0x7c10: 0xe0000aaa, 0x7c11: 0xe0000aa7, 0x7c12: 0xe0000b46, 0x7c13: 0xe0000b43,
-	0x7c14: 0xe0000aee, 0x7c15: 0xe0000aeb, 0x7c16: 0xe0000b2c, 0x7c17: 0xe0000b29,
-	0x7c18: 0xe0000b40, 0x7c19: 0xe0000b3d, 0x7c1a: 0xe0000b1a, 0x7c1b: 0xe0000b17,
-	0x7c1c: 0xe000274a, 0x7c1d: 0xe0002747, 0x7c1e: 0xe0000bb2, 0x7c1f: 0xe0000baf,
-	0x7c20: 0xe0000bc4, 0x7c21: 0xe0000bc1, 0x7c22: 0xe0000bca, 0x7c23: 0xe0000bc7,
-	0x7c24: 0xe0002750, 0x7c25: 0xe000274d, 0x7c26: 0xe0000c1b, 0x7c27: 0xe0000c18,
-	0x7c28: 0xe0000c51, 0x7c29: 0xe0000c4e, 0x7c2a: 0xe0000c60, 0x7c2b: 0xe0000c5d,
-	0x7c2c: 0xe0000c31, 0x7c2d: 0xe0000c2e, 0x7c2e: 0xe0000c5a, 0x7c2f: 0xe0000c57,
-	0x7c30: 0xe0000c54, 0x7c31: 0x402da220, 0x7c32: 0xf0000a0a, 0x7c33: 0xf0000404,
-	0x7c34: 0xe000275c, 0x7c35: 0xe0002759, 0x7c36: 0xe0000c9f, 0x7c37: 0xe0000c9c,
-	0x7c38: 0x402f7220, 0x7c39: 0xe0000ccc, 0x7c3a: 0xe0000cc9, 0x7c3b: 0xe0000cd8,
-	0x7c3c: 0xe0000cd5, 0x7c3d: 0xe0000cd2, 0x7c3e: 0xe0000ccf, 0x7c3f: 0xe0000d04,
-	// Block 0x1f1, offset 0x7c40
-	0x7c40: 0xe0000cfe, 0x7c41: 0xe0000cf8, 0x7c42: 0xe0000cf5, 0x7c43: 0xe0000d51,
-	0x7c44: 0xe0000d4e, 0x7c45: 0xe0000d6f, 0x7c46: 0xe0000d6c, 0x7c47: 0xe0000d5d,
-	0x7c48: 0xe0000d5a, 0x7c49: 0xf0000404, 0x7c4a: 0x002ea283, 0x7c4b: 0x402ea220,
-	0x7c4c: 0xe0000e2e, 0x7c4d: 0xe0000e2b, 0x7c4e: 0xe0000da0, 0x7c4f: 0xe0000d9d,
-	0x7c50: 0xe0000de0, 0x7c51: 0xe0000ddd, 0x7c52: 0xe0000e93, 0x7c53: 0xe0000e8f,
-	0x7c54: 0xe0000eca, 0x7c55: 0xe0000ec7, 0x7c56: 0xe0000edc, 0x7c57: 0xe0000ed9,
-	0x7c58: 0xe0000ed0, 0x7c59: 0xe0000ecd, 0x7c5a: 0xe0000f1f, 0x7c5b: 0xe0000f1c,
-	0x7c5c: 0xe0002790, 0x7c5d: 0xe000278d, 0x7c5e: 0xe0000f47, 0x7c5f: 0xe0000f44,
-	0x7c60: 0xe0000f33, 0x7c61: 0xe0000f30, 0x7c62: 0xe0000f99, 0x7c63: 0xe0000f96,
-	0x7c64: 0xe0000f8a, 0x7c65: 0xe0000f87, 0x7c66: 0x00303688, 0x7c67: 0x40303620,
-	0x7c68: 0xe000102b, 0x7c69: 0xe0001028, 0x7c6a: 0xe000103f, 0x7c6b: 0xe000103c,
-	0x7c6c: 0xe0000fe7, 0x7c6d: 0xe0000fe4, 0x7c6e: 0xe0000ff9, 0x7c6f: 0xe0000ff6,
-	0x7c70: 0xe0001025, 0x7c71: 0xe0001022, 0x7c72: 0xe0001039, 0x7c73: 0xe0001036,
-	0x7c74: 0xe000279c, 0x7c75: 0xe0002799, 0x7c76: 0xe00027a2, 0x7c77: 0xe000279f,
-	0x7c78: 0xe0001117, 0x7c79: 0xe000113b, 0x7c7a: 0xe0001138, 0x7c7b: 0xe000114d,
-	0x7c7c: 0xe000114a, 0x7c7d: 0xe0001147, 0x7c7e: 0xe0001144, 0x7c7f: 0xe0000f64,
-	// Block 0x1f2, offset 0x7c80
-	0x7c80: 0x402c1a20, 0x7c81: 0x002c2a88, 0x7c82: 0x002c3288, 0x7c83: 0x402c3220,
-	0x7c84: 0x0031c488, 0x7c85: 0x4031c420, 0x7c86: 0x002ee483, 0x7c87: 0x002c4e88,
-	0x7c88: 0x402c4e20, 0x7c89: 0x002c6683, 0x7c8a: 0x002c7a88, 0x7c8b: 0x002c8488,
-	0x7c8c: 0x402c8420, 0x7c8d: 0xe000115c, 0x7c8e: 0x002cae88, 0x7c8f: 0x002cb888,
-	0x7c90: 0x002c9a83, 0x7c91: 0x002d0a83, 0x7c92: 0x402d0a20, 0x7c93: 0x002d4488,
-	0x7c94: 0x002d2683, 0x7c95: 0x402d7820, 0x7c96: 0x002dc288, 0x7c97: 0x002db688,
-	0x7c98: 0x002e0a88, 0x7c99: 0x402e0a20, 0x7c9a: 0x402e3820, 0x7c9b: 0x402e7220,
-	0x7c9c: 0x0030a088, 0x7c9d: 0x002eb488, 0x7c9e: 0x402ebc20, 0x7c9f: 0x002f1088,
-	0x7ca0: 0xe0000e56, 0x7ca1: 0xe0000e53, 0x7ca2: 0x002d6088, 0x7ca3: 0x402d6020,
-	0x7ca4: 0x002f3e88, 0x7ca5: 0x402f3e20, 0x7ca6: 0x002f8288, 0x7ca7: 0x0031b488,
-	0x7ca8: 0x4031b420, 0x7ca9: 0x00300888, 0x7caa: 0x40301220, 0x7cab: 0x40304220,
-	0x7cac: 0x00304a88, 0x7cad: 0x40304a20, 0x7cae: 0x00305288, 0x7caf: 0xe000105f,
-	0x7cb0: 0xe000105c, 0x7cb1: 0x0030b488, 0x7cb2: 0x0030c083, 0x7cb3: 0x00311888,
-	0x7cb4: 0x40311820, 0x7cb5: 0x00313488, 0x7cb6: 0x40313420, 0x7cb7: 0x00316488,
-	0x7cb8: 0x00316e88, 0x7cb9: 0x40316e20, 0x7cba: 0x40317820, 0x7cbb: 0x4031a620,
-	0x7cbc: 0x0031bc88, 0x7cbd: 0x4031bc20, 0x7cbe: 0xe0000fc9, 0x7cbf: 0x40319420,
-	// Block 0x1f3, offset 0x7cc0
-	0x7cc0: 0x40315820, 0x7cc1: 0x0031d488, 0x7cc2: 0x4031d420, 0x7cc3: 0x002c1a88,
-	0x7cc4: 0x00307c88, 0x7cc5: 0x0030da88, 0x7cc6: 0x002ca288, 0x7cc7: 0x402ca220,
-	0x7cc8: 0x002dde88, 0x7cc9: 0x402dde20, 0x7cca: 0x002f6a88, 0x7ccb: 0x402f6a20,
-	0x7ccc: 0x002f8e88, 0x7ccd: 0x402f8e20, 0x7cce: 0x00311088, 0x7ccf: 0x40311020,
-	0x7cd0: 0x402bf020, 0x7cd1: 0x402bf820, 0x7cd2: 0x402c0220, 0x7cd3: 0x402c2a20,
-	0x7cd4: 0x402ee420, 0x7cd5: 0x402c5620, 0x7cd6: 0x402c6620, 0x7cd7: 0x402c7a20,
-	0x7cd8: 0x402ccc20, 0x7cd9: 0x402cb820, 0x7cda: 0x402cd420, 0x7cdb: 0x402c9a20,
-	0x7cdc: 0x402cdc20, 0x7cdd: 0x402ce820, 0x7cde: 0x402cf020, 0x7cdf: 0x402dee20,
-	0x7ce0: 0x402d4420, 0x7ce1: 0x402d2a20, 0x7ce2: 0x402d3220, 0x7ce3: 0x402d2620,
-	0x7ce4: 0x402d0020, 0x7ce5: 0x40308820, 0x7ce6: 0x402d8020, 0x7ce7: 0x402d8e20,
-	0x7ce8: 0x402db620, 0x7ce9: 0x402dc220, 0x7cea: 0x402daa20, 0x7ceb: 0x402e4220,
-	0x7cec: 0x402e4a20, 0x7ced: 0x402e5420, 0x7cee: 0x402e6820, 0x7cef: 0x4030a020,
-	0x7cf0: 0x4030ac20, 0x7cf1: 0x402e9020, 0x7cf2: 0x402eb420, 0x7cf3: 0x402ec820,
-	0x7cf4: 0x402ea620, 0x7cf5: 0x402f1020, 0x7cf6: 0x402eee20, 0x7cf7: 0x402f1a20,
-	0x7cf8: 0x402f4c20, 0x7cf9: 0x402f9820, 0x7cfa: 0x402fa220, 0x7cfb: 0x402fac20,
-	0x7cfc: 0x402fb620, 0x7cfd: 0x402fbe20, 0x7cfe: 0x402fc620, 0x7cff: 0x402fd020,
-	// Block 0x1f4, offset 0x7d00
-	0x7d00: 0x402f8220, 0x7d01: 0x402fd820, 0x7d02: 0x402ff420, 0x7d03: 0x40300820,
-	0x7d04: 0x402df620, 0x7d05: 0x40301a20, 0x7d06: 0x40302420, 0x7d07: 0x40306420,
-	0x7d08: 0x40305220, 0x7d09: 0x40307c20, 0x7d0a: 0x4030b420, 0x7d0b: 0x4030c020,
-	0x7d0c: 0x4030da20, 0x7d0d: 0x4030ee20, 0x7d0e: 0x402e7a20, 0x7d0f: 0x40310820,
-	0x7d10: 0x40314820, 0x7d11: 0x40315020, 0x7d12: 0x40316420, 0x7d13: 0x40318020,
-	0x7d14: 0x4031cc20, 0x7d15: 0x4031e820, 0x7d16: 0x40320a20, 0x7d17: 0x40323220,
-	0x7d18: 0x40323a20, 0x7d19: 0x402c1220, 0x7d1a: 0x402cf820, 0x7d1b: 0x402d4c20,
-	0x7d1c: 0x402d7020, 0x7d1d: 0x402de620, 0x7d1e: 0x402e1a20, 0x7d1f: 0x402e2a20,
-	0x7d20: 0x402f6220, 0x7d21: 0x4031fa20, 0x7d22: 0x40320220, 0x7d23: 0xe0000aca,
-	0x7d24: 0xe0000adc, 0x7d25: 0xe0000ad9, 0x7d26: 0xe0000fcc, 0x7d27: 0xe0000fcf,
-	0x7d28: 0xe0000fba, 0x7d29: 0xe0000ba1, 0x7d2a: 0xe0000d11, 0x7d2b: 0xe0000d18,
-	0x7d2c: 0x40324220, 0x7d2d: 0x40324a20, 0x7d2e: 0x40309020, 0x7d2f: 0x40309820,
-	0x7d30: 0x002d6894, 0x7d31: 0x002d8094, 0x7d32: 0x002dcc94, 0x7d33: 0x002f7a94,
-	0x7d34: 0x002f9894, 0x7d35: 0x002fac94, 0x7d36: 0x002fd894, 0x7d37: 0x0030e294,
-	0x7d38: 0x00310094, 0x7d39: 0x40064020, 0x7d3a: 0x40064420, 0x7d3b: 0x402d9620,
-	0x7d3c: 0x4031de20, 0x7d3d: 0x402d9820, 0x7d3e: 0x4031e220, 0x7d3f: 0x4031f020,
-	// Block 0x1f5, offset 0x7d40
-	0x7d40: 0xae603502, 0x7d41: 0xae603202, 0x7d42: 0xae604202, 0x7d43: 0xae604e02,
-	0x7d44: 0xae605b02, 0x7d45: 0xae606302, 0x7d46: 0xae603702, 0x7d47: 0xae605202,
-	0x7d48: 0xae604702, 0x7d49: 0xae606402, 0x7d4a: 0xae604302, 0x7d4b: 0xae604d02,
-	0x7d4c: 0xae604102, 0x7d4d: 0xae605f02, 0x7d4e: 0xae605f02, 0x7d4f: 0xae606502,
-	0x7d50: 0xae606602, 0x7d51: 0xae606702, 0x7d52: 0xae605f02, 0x7d53: 0xae602202,
-	0x7d54: 0xae602a02, 0x7d55: 0xae805f02, 0x7d56: 0xadc06002, 0x7d57: 0xadc06002,
-	0x7d58: 0xadc06002, 0x7d59: 0xadc06002, 0x7d5a: 0xae805f02, 0x7d5b: 0xad806802,
-	0x7d5c: 0xadc06002, 0x7d5d: 0xadc06002, 0x7d5e: 0xadc06002, 0x7d5f: 0xadc06002,
-	0x7d60: 0xadc06002, 0x7d61: 0xaca06e02, 0x7d62: 0xaca06f02, 0x7d63: 0xadc07002,
-	0x7d64: 0xadc07502, 0x7d65: 0xadc07602, 0x7d66: 0xadc07702, 0x7d67: 0xaca05602,
-	0x7d68: 0xaca05902, 0x7d69: 0xadc06002, 0x7d6a: 0xadc06002, 0x7d6b: 0xadc06002,
-	0x7d6c: 0xadc06002, 0x7d6d: 0xadc07802, 0x7d6e: 0xadc07902, 0x7d6f: 0xadc06002,
-	0x7d70: 0xadc07a02, 0x7d71: 0xadc07b02, 0x7d72: 0xadc02102, 0x7d73: 0xadc06002,
-	0x7d74: 0xa0107c02, 0x7d75: 0xa0107d02, 0x7d76: 0xa0106102, 0x7d77: 0xa0106102,
-	0x7d78: 0xa0105402, 0x7d79: 0xadc07e02, 0x7d7a: 0xadc06002, 0x7d7b: 0xadc06002,
-	0x7d7c: 0xadc06002, 0x7d7d: 0xae605f02, 0x7d7e: 0xae605f02, 0x7d7f: 0xae605f02,
-	// Block 0x1f6, offset 0x7d80
-	0x7d80: 0xe00010d2, 0x7d81: 0xe00010cf, 0x7d82: 0xe00010cc, 0x7d83: 0xe00010c9,
-	0x7d84: 0xe00010e1, 0x7d85: 0xe00010de, 0x7d86: 0xe00010e7, 0x7d87: 0xe00010e4,
-	0x7d88: 0xe00010ed, 0x7d89: 0xe00010ea, 0x7d8a: 0xe000253d, 0x7d8b: 0xe000253a,
-	0x7d8c: 0xe0002537, 0x7d8d: 0xe0002534, 0x7d8e: 0xe0001123, 0x7d8f: 0xe0001120,
-	0x7d90: 0xe00027a8, 0x7d91: 0xe00027a5, 0x7d92: 0xe0001153, 0x7d93: 0xe0001150,
-	0x7d94: 0xe0001159, 0x7d95: 0xe0001156, 0x7d96: 0xe0000c15, 0x7d97: 0xe0000f8d,
-	0x7d98: 0xe00010db, 0x7d99: 0xe0001111, 0x7d9a: 0xf0000404, 0x7d9b: 0xe0000f70,
-	0x7d9c: 0x40300420, 0x7d9d: 0x40300620, 0x7d9e: 0xe0000f7f, 0x7d9f: 0x402c9620,
-	0x7da0: 0xe000099b, 0x7da1: 0xe0000998, 0x7da2: 0xe0000989, 0x7da3: 0xe0000986,
-	0x7da4: 0xe00026ef, 0x7da5: 0xe00026eb, 0x7da6: 0xe00026f7, 0x7da7: 0xe00026f3,
-	0x7da8: 0xe0002707, 0x7da9: 0xe0002703, 0x7daa: 0xe00026ff, 0x7dab: 0xe00026fb,
-	0x7dac: 0xe000270f, 0x7dad: 0xe000270b, 0x7dae: 0xe0000902, 0x7daf: 0xe00008fe,
-	0x7db0: 0xe000090a, 0x7db1: 0xe0000906, 0x7db2: 0xe000091a, 0x7db3: 0xe0000916,
-	0x7db4: 0xe0000912, 0x7db5: 0xe000090e, 0x7db6: 0xe00009a2, 0x7db7: 0xe000099e,
-	0x7db8: 0xe0000b6e, 0x7db9: 0xe0000b6b, 0x7dba: 0xe0000b5c, 0x7dbb: 0xe0000b59,
-	0x7dbc: 0xe0000b26, 0x7dbd: 0xe0000b23, 0x7dbe: 0xe0002723, 0x7dbf: 0xe000271f,
-	// Block 0x1f7, offset 0x7dc0
-	0x7dc0: 0xe000272b, 0x7dc1: 0xe0002727, 0x7dc2: 0xe000273b, 0x7dc3: 0xe0002737,
-	0x7dc4: 0xe0002733, 0x7dc5: 0xe000272f, 0x7dc6: 0xe0002743, 0x7dc7: 0xe000273f,
-	0x7dc8: 0xe0000c66, 0x7dc9: 0xe0000c63, 0x7dca: 0xe0000c78, 0x7dcb: 0xe0000c75,
-	0x7dcc: 0xe0000e84, 0x7dcd: 0xe0000e81, 0x7dce: 0xe0000e44, 0x7dcf: 0xe0000e41,
-	0x7dd0: 0xe0002769, 0x7dd1: 0xe0002765, 0x7dd2: 0xe0002771, 0x7dd3: 0xe000276d,
-	0x7dd4: 0xe0002781, 0x7dd5: 0xe000277d, 0x7dd6: 0xe0002779, 0x7dd7: 0xe0002775,
-	0x7dd8: 0xe0002789, 0x7dd9: 0xe0002785, 0x7dda: 0xe0000e5d, 0x7ddb: 0xe0000e59,
-	0x7ddc: 0xe0000e65, 0x7ddd: 0xe0000e61, 0x7dde: 0xe0000e75, 0x7ddf: 0xe0000e71,
-	0x7de0: 0xe0000e6d, 0x7de1: 0xe0000e69, 0x7de2: 0xe0000e7d, 0x7de3: 0xe0000e79,
-	0x7de4: 0xe000108d, 0x7de5: 0xe000108a, 0x7de6: 0xe000104d, 0x7de7: 0xe000104a,
-	0x7de8: 0xe0001066, 0x7de9: 0xe0001062, 0x7dea: 0xe000106e, 0x7deb: 0xe000106a,
-	0x7dec: 0xe000107e, 0x7ded: 0xe000107a, 0x7dee: 0xe0001076, 0x7def: 0xe0001072,
-	0x7df0: 0xe0001086, 0x7df1: 0xe0001082, 0x7df2: 0xe0001108, 0x7df3: 0xe0001105,
-	0x7df4: 0xe0001135, 0x7df5: 0xe0001132, 0x7df6: 0xe000112f, 0x7df7: 0xe000112c,
-	0x7df8: 0xe000111d, 0x7df9: 0xe000111a, 0x7dfa: 0xe0000d0a, 0x7dfb: 0xe0000d07,
-	0x7dfc: 0x0030d888, 0x7dfd: 0x4030d820, 0x7dfe: 0x00312088, 0x7dff: 0x40312020,
-	// Block 0x1f8, offset 0x7e00
-	0x7e00: 0x00093685, 0x7e01: 0x40083620, 0x7e02: 0x40083820, 0x7e03: 0x40083a20,
-	0x7e04: 0x40083c20, 0x7e05: 0x002c628b, 0x7e06: 0x002c6285, 0x7e07: 0x002c9885,
-	0x7e08: 0x002d9a85, 0x7e09: 0x002dcc85, 0x7e0a: 0x40083e20, 0x7e0b: 0x400a6e20,
-	0x7e0c: 0x40084020, 0x7e0d: 0xe00009c4, 0x7e0e: 0x402d1e20, 0x7e0f: 0x40084220,
-	0x7e10: 0xe00002cb, 0x7e11: 0xe00002d3, 0x7e12: 0xe00002b2, 0x7e13: 0xe00002bb,
-	0x7e14: 0xe00003cd, 0x7e15: 0xe00002c3, 0x7e16: 0xe00003d1, 0x7e17: 0xe00004ab,
-	0x7e18: 0xe0000579, 0x7e19: 0xe00002c7, 0x7e1a: 0xe0000640, 0x7e1b: 0xe00002cf,
-	0x7e1c: 0xe00004af, 0x7e1d: 0xe0000644, 0x7e1e: 0xe0000798, 0x7e1f: 0xf0001e1e,
-	0x7e20: 0x002d9a8a, 0x7e21: 0xf0001f0a, 0x7e22: 0xf0000a0a, 0x7e23: 0xf0001f0a,
-	0x7e24: 0x0030be8a, 0x7e25: 0xf0001f0a, 0x7e26: 0xf0000a0a, 0x7e27: 0xe00010bb,
-	0x7e28: 0xe0002581, 0x7e29: 0x0030f68a, 0x7e2a: 0xe00025b5, 0x7e2b: 0xe00025bc,
-	0x7e2c: 0x002e228a, 0x7e2d: 0x002c3a8a, 0x7e2e: 0x002c628a, 0x7e2f: 0x002e828a,
-	0x7e30: 0x002d9a84, 0x7e31: 0xf0001f04, 0x7e32: 0xf0000404, 0x7e33: 0xf0001f04,
-	0x7e34: 0x0030be84, 0x7e35: 0xf0001f04, 0x7e36: 0xf0000404, 0x7e37: 0xe00010b6,
-	0x7e38: 0xe000257e, 0x7e39: 0x0030f684, 0x7e3a: 0xe00025b2, 0x7e3b: 0xe00025b8,
-	0x7e3c: 0x002e2284, 0x7e3d: 0x002c3a84, 0x7e3e: 0x002c6284, 0x7e3f: 0x002e8284,
-	// Block 0x1f9, offset 0x7e40
-	0x7e40: 0xe0000024, 0x7e41: 0xe0000029, 0x7e42: 0xe000002e, 0x7e43: 0xe0000033,
-	0x7e44: 0xe0000038, 0x7e45: 0xe000003d, 0x7e46: 0xe0000042, 0x7e47: 0xe0000047,
-	0x7e48: 0xf0001f04, 0x7e49: 0xf0001f04, 0x7e4a: 0xf0001f04, 0x7e4b: 0xf0001f04,
-	0x7e4c: 0xf0001f04, 0x7e4d: 0xf0001f04, 0x7e4e: 0xf0001f04, 0x7e4f: 0xf0001f04,
-	0x7e50: 0xf0001f04, 0x7e51: 0xf0000404, 0x7e52: 0xf0000404, 0x7e53: 0xf0000404,
-	0x7e54: 0xf0000404, 0x7e55: 0xf0000404, 0x7e56: 0xf0000404, 0x7e57: 0xf0000404,
-	0x7e58: 0xf0000404, 0x7e59: 0xf0000404, 0x7e5a: 0xf0000404, 0x7e5b: 0xf0000404,
-	0x7e5c: 0xf0000404, 0x7e5d: 0xf0000404, 0x7e5e: 0xf0000404, 0x7e5f: 0xf0000404,
-	0x7e60: 0xf0000404, 0x7e61: 0xf0000404, 0x7e62: 0xf0000404, 0x7e63: 0xf0000404,
-	0x7e64: 0xf0000404, 0x7e65: 0xf0000404, 0x7e66: 0xf0000404, 0x7e67: 0xf0000404,
-	0x7e68: 0xf0000404, 0x7e69: 0xf0000404, 0x7e6a: 0xf0000404, 0x7e6b: 0xf0000404,
-	0x7e6c: 0xf0000404, 0x7e6d: 0xf0000404, 0x7e6e: 0xf0000404, 0x7e6f: 0xf0000404,
-	0x7e70: 0xf0000404, 0x7e71: 0xf0000404, 0x7e72: 0xf0000404, 0x7e73: 0xe0002523,
-	0x7e74: 0xf0000404, 0x7e75: 0xf0000404, 0x7e76: 0x002bde8c, 0x7e77: 0x002c0a8c,
-	0x7e78: 0x002c3a8c, 0x7e79: 0x002c628c, 0x7e7a: 0x002c988c, 0x7e7b: 0x002d088c,
-	0x7e7c: 0x002d228c, 0x7e7d: 0x002d688c, 0x7e7e: 0x002d9a8c, 0x7e7f: 0x002dcc8c,
-	// Block 0x1fa, offset 0x7e80
-	0x7e80: 0xf0001d1c, 0x7e81: 0xf0001d1d, 0x7e82: 0xe00009b7, 0x7e83: 0xf0001c1d,
-	0x7e84: 0xf0001c1c, 0x7e85: 0xf0001c1c, 0x7e86: 0xe0000a66, 0x7e87: 0xe0000a7a,
-	0x7e88: 0xf0001d1c, 0x7e89: 0xf0001c1d, 0x7e8a: 0xf0001c1c, 0x7e8b: 0xf0001d1d,
-	0x7e8c: 0xf0001c1c, 0x7e8d: 0xf0001d1d, 0x7e8e: 0xf0001d1d, 0x7e8f: 0xf0001c1c,
-	0x7e90: 0xf0001c1c, 0x7e91: 0xf0001c1c, 0x7e92: 0xe0000d0d, 0x7e93: 0xe0002584,
-	0x7e94: 0xf0001c1c, 0x7e95: 0xe0000d3a, 0x7e96: 0xe0000d46, 0x7e97: 0xf0001d1d,
-	0x7e98: 0xe0000eb0, 0x7e99: 0xe0000eb8, 0x7e9a: 0xf0001d1d, 0x7e9b: 0xf0001c1c,
-	0x7e9c: 0xf0001c1d, 0x7e9d: 0xf0001c1d, 0x7e9e: 0xe00010b2, 0x7e9f: 0xe00009c8,
-	0x7ea0: 0xf0001f04, 0x7ea1: 0xf0001f04, 0x7ea2: 0xf0001f04, 0x7ea3: 0xf0001f04,
-	0x7ea4: 0xf0001f04, 0x7ea5: 0xf0001f04, 0x7ea6: 0xf0001f04, 0x7ea7: 0xf0001f04,
-	0x7ea8: 0xf0001f04, 0x7ea9: 0xf0000404, 0x7eaa: 0xf0000404, 0x7eab: 0xf0000404,
-	0x7eac: 0xf0000404, 0x7ead: 0xf0000404, 0x7eae: 0xf0000404, 0x7eaf: 0xf0000404,
-	0x7eb0: 0xf0000404, 0x7eb1: 0xf0000404, 0x7eb2: 0xf0000404, 0x7eb3: 0xf0000404,
-	0x7eb4: 0xf0000404, 0x7eb5: 0xf0000404, 0x7eb6: 0xf0000404, 0x7eb7: 0xf0000404,
-	0x7eb8: 0xf0000404, 0x7eb9: 0xf0000404, 0x7eba: 0xf0000404, 0x7ebb: 0xf0000404,
-	0x7ebc: 0xf0000404, 0x7ebd: 0xf0000404, 0x7ebe: 0xf0000404, 0x7ebf: 0xe0000bdf,
-	// Block 0x1fb, offset 0x7ec0
-	0x7ec0: 0xf0001f04, 0x7ec1: 0xf0001f04, 0x7ec2: 0xf0001f04, 0x7ec3: 0xf0001f04,
-	0x7ec4: 0xf0001f04, 0x7ec5: 0xf0001f04, 0x7ec6: 0xf0001f04, 0x7ec7: 0xf0001f04,
-	0x7ec8: 0xf0001f04, 0x7ec9: 0xf0001f04, 0x7eca: 0xf0001f04,
-	0x7ed0: 0xf0000a04, 0x7ed1: 0xf0000a04, 0x7ed2: 0xf0000a04, 0x7ed3: 0xf0000a04,
-	0x7ed4: 0xf0000a04, 0x7ed5: 0xf0000a04, 0x7ed6: 0xf0000a04, 0x7ed7: 0xf0000a04,
-	0x7ed8: 0xf0000a04, 0x7ed9: 0xf0000a04, 0x7eda: 0xf0000a04, 0x7edb: 0xf0000a04,
-	0x7edc: 0xf0000a04, 0x7edd: 0xf0000a04, 0x7ede: 0xf0000a04, 0x7edf: 0xf0000a04,
-	0x7ee0: 0xf0000a04, 0x7ee1: 0xf0000a04, 0x7ee2: 0xf0000a04, 0x7ee3: 0xf0000a04,
-	0x7ee4: 0xf0000a04, 0x7ee5: 0xf0000a04, 0x7ee6: 0xf0000a04, 0x7ee7: 0xe0002527,
-	0x7ee8: 0xf0000a04, 0x7ee9: 0xf0000a04, 0x7eea: 0xf0000a04, 0x7eeb: 0x002c3a8c,
-	0x7eec: 0x002f7a8c, 0x7eed: 0xf0000c0c, 0x7eee: 0xf0000c0c,
-	0x7ef0: 0x002bde9d, 0x7ef1: 0x002c0a9d, 0x7ef2: 0x002c3a9d, 0x7ef3: 0x002c629d,
-	0x7ef4: 0x002c989d, 0x7ef5: 0x002d089d, 0x7ef6: 0x002d229d, 0x7ef7: 0x002d689d,
-	0x7ef8: 0x002d9a9d, 0x7ef9: 0x002dcc9d, 0x7efa: 0x002dfe9d, 0x7efb: 0x002e229d,
-	0x7efc: 0x002e829d, 0x7efd: 0x002e9e9d, 0x7efe: 0x002ee29d, 0x7eff: 0x002f2c9d,
-	// Block 0x1fc, offset 0x7f00
-	0x7f00: 0xa0000000, 0x7f01: 0xa0000000, 0x7f02: 0xa0000000, 0x7f03: 0xa0000000,
-	0x7f04: 0xa0000000, 0x7f05: 0xa0000000, 0x7f06: 0xa0000000, 0x7f07: 0xa0000000,
-	0x7f08: 0xa0000000, 0x7f09: 0x40020020, 0x7f0a: 0x40020220, 0x7f0b: 0x40020420,
-	0x7f0c: 0x40020620, 0x7f0d: 0x40020820, 0x7f0e: 0xa0000000, 0x7f0f: 0xa0000000,
-	0x7f10: 0xa0000000, 0x7f11: 0xa0000000, 0x7f12: 0xa0000000, 0x7f13: 0xa0000000,
-	0x7f14: 0xa0000000, 0x7f15: 0xa0000000, 0x7f16: 0xa0000000, 0x7f17: 0xa0000000,
-	0x7f18: 0xa0000000, 0x7f19: 0xa0000000, 0x7f1a: 0xa0000000, 0x7f1b: 0xa0000000,
-	0x7f1c: 0xa0000000, 0x7f1d: 0xa0000000, 0x7f1e: 0xa0000000, 0x7f1f: 0xa0000000,
-	0x7f20: 0x402be020, 0x7f21: 0x402be220, 0x7f22: 0x402be420, 0x7f23: 0x402c5a20,
-	0x7f24: 0x402be620, 0x7f25: 0x402be820, 0x7f26: 0x402c5820, 0x7f27: 0x402bea20,
-	0x7f28: 0x402bec20, 0x7f29: 0x402bee20, 0x7f2a: 0x4004d820, 0x7f2b: 0x40093820,
-	0x7f2c: 0x40024020, 0x7f2d: 0x40021a20, 0x7f2e: 0x4002e420, 0x7f2f: 0x4004e220,
-	0x7f30: 0x4029cc20, 0x7f31: 0x4029ce20, 0x7f32: 0x4029d020, 0x7f33: 0x4029d220,
-	0x7f34: 0x4029d420, 0x7f35: 0x4029d620, 0x7f36: 0x4029d820, 0x7f37: 0x402c5e20,
-	0x7f38: 0x4029dc20, 0x7f39: 0x4029de20, 0x7f3a: 0x40026c20, 0x7f3b: 0x402c6220,
-	0x7f3c: 0x40094020, 0x7f3d: 0x40094220, 0x7f3e: 0x40094420, 0x7f3f: 0x4002c420,
-	// Block 0x1fd, offset 0x7f40
-	0x7f40: 0x402bf020, 0x7f41: 0x402bf220, 0x7f42: 0x402bf420, 0x7f43: 0x402bf620,
-	0x7f44: 0x402bf820, 0x7f45: 0x402bfa20, 0x7f46: 0x402bfc20, 0x7f47: 0x402bfe20,
-	0x7f48: 0x402c0020, 0x7f49: 0x402c0220, 0x7f4a: 0x402c0420, 0x7f4b: 0x402c0620,
-	0x7f4c: 0xc52f0002, 0x7f4d: 0x402c0a20, 0x7f4e: 0x402c0c20, 0x7f4f: 0x402c0e20,
-	0x7f50: 0x402c1020, 0x7f51: 0x402c1220, 0x7f52: 0x402c1420, 0x7f53: 0x402c1620,
-	0x7f54: 0x402c1820, 0x7f55: 0x402c1a20, 0x7f56: 0x402c1c20, 0x7f57: 0x402c1e20,
-	0x7f58: 0x402c2020, 0x7f59: 0x402c2220, 0x7f5a: 0x402c2420, 0x7f5b: 0x4003f820,
-	0x7f5c: 0x4004e420, 0x7f5d: 0x4003fa20, 0x7f5e: 0x40062420, 0x7f5f: 0x40021620,
-	0x7f60: 0x402c2620, 0x7f61: 0x402c2820, 0x7f62: 0x402c5020, 0x7f63: 0x402c5220,
-	0x7f64: 0x402c5420, 0x7f65: 0x402c5620, 0x7f66: 0x402c6020, 0x7f67: 0x402c2a20,
-	0x7f68: 0x402c2c20, 0x7f69: 0x402c2e20, 0x7f6a: 0x402c3020, 0x7f6b: 0x402c3220,
-	0x7f6c: 0xc52c0002, 0x7f6d: 0x402c3620, 0x7f6e: 0x402c3820, 0x7f6f: 0x402c3a20,
-	0x7f70: 0x402c3c20, 0x7f71: 0x402c3e20, 0x7f72: 0x402c4020, 0x7f73: 0x402c4220,
-	0x7f74: 0x402c4420, 0x7f75: 0x402c4620, 0x7f76: 0x402c4820, 0x7f77: 0x402c4a20,
-	0x7f78: 0x402c5c20, 0x7f79: 0x402c4c20, 0x7f7a: 0x402c4e20, 0x7f7b: 0x4003fc20,
-	0x7f7c: 0x40094820, 0x7f7d: 0x4003fe20, 0x7f7e: 0x40094c20, 0x7f7f: 0xa0000000,
-	// Block 0x1fe, offset 0x7f80
-	0x7f80: 0xe000299a, 0x7f81: 0xe0002997, 0x7f82: 0xe00029b0, 0x7f83: 0xe00029d4,
-	0x7f84: 0xe00029cd, 0x7f85: 0xe00029c6, 0x7f86: 0xe00009dd, 0x7f87: 0xe0002a10,
-	0x7f88: 0xe0002a2c, 0x7f89: 0xe0002a29, 0x7f8a: 0xe0002a32, 0x7f8b: 0xe0002a48,
-	0x7f8c: 0xe0002aac, 0x7f8d: 0xe0002aa9, 0x7f8e: 0xe0002ab2, 0x7f8f: 0xe0002ab8,
-	0x7f90: 0xe0000ab3, 0x7f91: 0xe0002b14, 0x7f92: 0xe0002b29, 0x7f93: 0xe0002b26,
-	0x7f94: 0xe0002b2f, 0x7f95: 0xe0002b4f, 0x7f96: 0xe0002b45, 0x7f97: 0x40093e20,
-	0x7f98: 0xe0000e12, 0x7f99: 0xe0002bf9, 0x7f9a: 0xe0002bf6, 0x7f9b: 0xe0002bff,
-	0x7f9c: 0xe0002c08, 0x7f9d: 0xe0002c79, 0x7f9e: 0x00318888, 0x7f9f: 0xe0000f7b,
-	0x7fa0: 0xe0002ca9, 0x7fa1: 0xe0002ca6, 0x7fa2: 0xe0002cbf, 0x7fa3: 0xe0002ce3,
-	0x7fa4: 0xe0002cdc, 0x7fa5: 0xe0002cd5, 0x7fa6: 0xe00009d5, 0x7fa7: 0xe0002f58,
-	0x7fa8: 0xe0002f74, 0x7fa9: 0xe0002f71, 0x7faa: 0xe0002f7a, 0x7fab: 0xe0002f90,
-	0x7fac: 0xe0002d3a, 0x7fad: 0xe0002d37, 0x7fae: 0xe0002d40, 0x7faf: 0xe0002d46,
-	0x7fb0: 0xe0000aad, 0x7fb1: 0xe0002da2, 0x7fb2: 0xe0002db7, 0x7fb3: 0xe0002db4,
-	0x7fb4: 0xe0002dbd, 0x7fb5: 0xe0002ddd, 0x7fb6: 0xe0002dd3, 0x7fb7: 0x40093c20,
-	0x7fb8: 0xe0000e0f, 0x7fb9: 0xe0002e96, 0x7fba: 0xe0002e93, 0x7fbb: 0xe0002e9c,
-	0x7fbc: 0xe0002ea5, 0x7fbd: 0xe0002f13, 0x7fbe: 0x40318820, 0x7fbf: 0xe0002f1f,
-	// Block 0x1ff, offset 0x7fc0
-	0x7fc0: 0xe00029e1, 0x7fc1: 0xe0002cf0, 0x7fc2: 0xe000299d, 0x7fc3: 0xe0002cac,
-	0x7fc4: 0xe00029de, 0x7fc5: 0xe0002ced, 0x7fc6: 0xe0002a04, 0x7fc7: 0xe0002f4c,
-	0x7fc8: 0xe0002a07, 0x7fc9: 0xe0002f4f, 0x7fca: 0xe0002a0d, 0x7fcb: 0xe0002f55,
-	0x7fcc: 0xe0002a0a, 0x7fcd: 0xe0002f52, 0x7fce: 0xe0002a17, 0x7fcf: 0xe0002f5f,
-	0x7fd0: 0xe0000aaa, 0x7fd1: 0xe0000aa7, 0x7fd2: 0xe0002a5b, 0x7fd3: 0xe0002fa3,
-	0x7fd4: 0xe0002a2f, 0x7fd5: 0xe0002f77, 0x7fd6: 0xe0002a4e, 0x7fd7: 0xe0002f96,
-	0x7fd8: 0xe0002a58, 0x7fd9: 0xe0002fa0, 0x7fda: 0xe0002a45, 0x7fdb: 0xe0002f8d,
-	0x7fdc: 0xe0002a85, 0x7fdd: 0xe0002d10, 0x7fde: 0xe0002a82, 0x7fdf: 0xe0002d0d,
-	0x7fe0: 0xe0002a8b, 0x7fe1: 0xe0002d16, 0x7fe2: 0xe0002a8e, 0x7fe3: 0xe0002d19,
-	0x7fe4: 0xe0002a94, 0x7fe5: 0xe0002d1f, 0x7fe6: 0xe0000c1b, 0x7fe7: 0xe0000c18,
-	0x7fe8: 0xe0002abf, 0x7fe9: 0xe0002d4d, 0x7fea: 0xe0002ac8, 0x7feb: 0xe0002d53,
-	0x7fec: 0xe0002aaf, 0x7fed: 0xe0002d3d, 0x7fee: 0xe0002ac5, 0x7fef: 0xe0002d50,
-	0x7ff0: 0xe0002ac2, 0x7ff1: 0x402da220, 0x7ff2: 0xe0002575, 0x7ff3: 0xe0003010,
-	0x7ff4: 0xe0002ada, 0x7ff5: 0xe0002d65, 0x7ff6: 0xe0002ae3, 0x7ff7: 0xe0002d71,
-	0x7ff8: 0x402f7220, 0x7ff9: 0xe0002aec, 0x7ffa: 0xe0002d7a, 0x7ffb: 0xe0002af2,
-	0x7ffc: 0xe0002d80, 0x7ffd: 0xe0002aef, 0x7ffe: 0xe0002d7d, 0x7fff: 0xe0000d04,
-	// Block 0x200, offset 0x8000
-	0x8000: 0xe0000cfe, 0x8001: 0xe0000cf8, 0x8002: 0xe0000cf5, 0x8003: 0xe0002b0b,
-	0x8004: 0xe0002d99, 0x8005: 0xe0002b1a, 0x8006: 0xe0002da8, 0x8007: 0xe0002b11,
-	0x8008: 0xe0002d9f, 0x8009: 0xe00030dd, 0x800a: 0x002eda88, 0x800b: 0x402eda20,
-	0x800c: 0xe0002b6c, 0x800d: 0xe0002dfa, 0x800e: 0xe0002b2c, 0x800f: 0xe0002dba,
-	0x8010: 0xe0002b4c, 0x8011: 0xe0002dda, 0x8012: 0xe0000e93, 0x8013: 0xe0000e8f,
-	0x8014: 0xe0002ba4, 0x8015: 0xe0002e3e, 0x8016: 0xe0002bad, 0x8017: 0xe0002e47,
-	0x8018: 0xe0002ba7, 0x8019: 0xe0002e41, 0x801a: 0xe0002bc0, 0x801b: 0xe0002e5a,
-	0x801c: 0xe0002bc7, 0x801d: 0xe0002e61, 0x801e: 0xe0002bd4, 0x801f: 0xe0002e6e,
-	0x8020: 0xe0002bca, 0x8021: 0xe0002e64, 0x8022: 0xe0002be7, 0x8023: 0xe0002e84,
-	0x8024: 0xe0002be1, 0x8025: 0xe0002e7b, 0x8026: 0x00303688, 0x8027: 0x40303620,
-	0x8028: 0xe0002c1e, 0x8029: 0xe0002ebb, 0x802a: 0xe0002c28, 0x802b: 0xe0002ec5,
-	0x802c: 0xe0002bfc, 0x802d: 0xe0002e99, 0x802e: 0xe0002c05, 0x802f: 0xe0002ea2,
-	0x8030: 0xe0002c1b, 0x8031: 0xe0002eb8, 0x8032: 0xe0002c25, 0x8033: 0xe0002ec2,
-	0x8034: 0xe0002c67, 0x8035: 0xe0002f04, 0x8036: 0xe0002c7f, 0x8037: 0xe0002f19,
-	0x8038: 0xe0002c82, 0x8039: 0xe0002c94, 0x803a: 0xe0002f31, 0x803b: 0xe0002c9d,
-	0x803c: 0xe0002f3a, 0x803d: 0xe0002c9a, 0x803e: 0xe0002f37, 0x803f: 0xe0000f64,
-	// Block 0x201, offset 0x8040
-	0x8040: 0x402c1a20, 0x8041: 0x002c2a88, 0x8042: 0x002c3288, 0x8043: 0x402c3220,
-	0x8044: 0x0031c488, 0x8045: 0x4031c420, 0x8046: 0x002efa88, 0x8047: 0x002c4e88,
-	0x8048: 0x402c4e20, 0x8049: 0x002c7288, 0x804a: 0x002c7a88, 0x804b: 0x002c8488,
-	0x804c: 0x402c8420, 0x804d: 0xe000115c, 0x804e: 0x002cae88, 0x804f: 0x002cb888,
-	0x8050: 0x002cc288, 0x8051: 0x002d1688, 0x8052: 0x402d1620, 0x8053: 0x002d4488,
-	0x8054: 0x002d5888, 0x8055: 0x402d7820, 0x8056: 0x002dc288, 0x8057: 0x002db688,
-	0x8058: 0x002e0a88, 0x8059: 0x402e0a20, 0x805a: 0x402e3820, 0x805b: 0x402e7220,
-	0x805c: 0x0030a088, 0x805d: 0x002eb488, 0x805e: 0x402ebc20, 0x805f: 0x002f1088,
-	0x8060: 0xe0002b80, 0x8061: 0xe0002e0e, 0x8062: 0x002d6088, 0x8063: 0x402d6020,
-	0x8064: 0x002f3e88, 0x8065: 0x402f3e20, 0x8066: 0x002f8288, 0x8067: 0x0031b488,
-	0x8068: 0x4031b420, 0x8069: 0x00300888, 0x806a: 0x40301220, 0x806b: 0x40304220,
-	0x806c: 0x00304a88, 0x806d: 0x40304a20, 0x806e: 0x00305288, 0x806f: 0xe0002c38,
-	0x8070: 0xe0002ed5, 0x8071: 0x0030b488, 0x8072: 0x0030cc88, 0x8073: 0x00311888,
-	0x8074: 0x40311820, 0x8075: 0x00313488, 0x8076: 0x40313420, 0x8077: 0x00316488,
-	0x8078: 0x00316e88, 0x8079: 0x40316e20, 0x807a: 0x40317820, 0x807b: 0x4031a620,
-	0x807c: 0x0031bc88, 0x807d: 0x4031bc20, 0x807e: 0xe0000fc9, 0x807f: 0x40319420,
-	// Block 0x202, offset 0x8080
-	0x8080: 0x40321220, 0x8081: 0x40321a20, 0x8082: 0x40322220, 0x8083: 0x40322a20,
-	0x8084: 0xe0000ad5, 0x8085: 0xe0000ad1, 0x8086: 0xe0000acd, 0x8087: 0xe0003040,
-	0x8088: 0xe000303d, 0x8089: 0xe000303a, 0x808a: 0xe0003088, 0x808b: 0xe0003085,
-	0x808c: 0xe0003082, 0x808d: 0xe00029c3, 0x808e: 0xe0002cd2, 0x808f: 0xe0002ab5,
-	0x8090: 0xe0002d43, 0x8091: 0xe0002b42, 0x8092: 0xe0002dd0, 0x8093: 0xe0002c02,
-	0x8094: 0xe0002e9f, 0x8095: 0xe0002c17, 0x8096: 0xe0002eb4, 0x8097: 0xe0002c0b,
-	0x8098: 0xe0002ea8, 0x8099: 0xe0002c13, 0x809a: 0xe0002eb0, 0x809b: 0xe0002c0f,
-	0x809c: 0xe0002eac, 0x809d: 0x402cae20, 0x809e: 0xe00029d0, 0x809f: 0xe0002cdf,
-	0x80a0: 0xe00029da, 0x80a1: 0xe0002ce9, 0x80a2: 0xe00009f4, 0x80a3: 0xe00009ef,
-	0x80a4: 0x002d3a88, 0x80a5: 0x402d3a20, 0x80a6: 0xe0002a88, 0x80a7: 0xe0002d13,
-	0x80a8: 0xe0002ae0, 0x80a9: 0xe0002d6e, 0x80aa: 0xe0002b65, 0x80ab: 0xe0002df3,
-	0x80ac: 0xe0002b68, 0x80ad: 0xe0002df6, 0x80ae: 0xe0001162, 0x80af: 0xe000115f,
-	0x80b0: 0xe0002d68, 0x80b1: 0xe0002fe2, 0x80b2: 0xe0002fdf, 0x80b3: 0xe0002fdc,
-	0x80b4: 0xe0002a7f, 0x80b5: 0xe0002d0a, 0x80b6: 0x002d7888, 0x80b7: 0x00319488,
-	0x80b8: 0xe0002b0e, 0x80b9: 0xe0002d9c, 0x80ba: 0xe00029c9, 0x80bb: 0xe0002cd8,
-	0x80bc: 0xe00009ea, 0x80bd: 0xe00009e5, 0x80be: 0xe0000e19, 0x80bf: 0xe0000e15,
-	// Block 0x203, offset 0x80c0
-	0x80c0: 0xe00029e7, 0x80c1: 0xe0002cf6, 0x80c2: 0xe00029ea, 0x80c3: 0xe0002cf9,
-	0x80c4: 0xe0002a69, 0x80c5: 0xe0002fb1, 0x80c6: 0xe0002a6c, 0x80c7: 0xe0002fb4,
-	0x80c8: 0xe0002ace, 0x80c9: 0xe0002d59, 0x80ca: 0xe0002ad1, 0x80cb: 0xe0002d5c,
-	0x80cc: 0xe0002b7a, 0x80cd: 0xe0002e08, 0x80ce: 0xe0002b7d, 0x80cf: 0xe0002e0b,
-	0x80d0: 0xe0002bb0, 0x80d1: 0xe0002e4a, 0x80d2: 0xe0002bb3, 0x80d3: 0xe0002e4d,
-	0x80d4: 0xe0002c32, 0x80d5: 0xe0002ecf, 0x80d6: 0xe0002c35, 0x80d7: 0xe0002ed2,
-	0x80d8: 0xe0002bde, 0x80d9: 0xe0002e78, 0x80da: 0xe0002bed, 0x80db: 0xe0002e8a,
-	0x80dc: 0x00312288, 0x80dd: 0x40312220, 0x80de: 0xe0002a97, 0x80df: 0xe0002d22,
-	0x80e0: 0x002ebc88, 0x80e1: 0x402c8c20, 0x80e2: 0x002f2288, 0x80e3: 0x402f2220,
-	0x80e4: 0x00314088, 0x80e5: 0x40314020, 0x80e6: 0xe00029d7, 0x80e7: 0xe0002ce6,
-	0x80e8: 0xe0002a51, 0x80e9: 0xe0002f99, 0x80ea: 0xe0002b48, 0x80eb: 0xe0002dd6,
-	0x80ec: 0xe0002b5a, 0x80ed: 0xe0002de8, 0x80ee: 0xe0002b5e, 0x80ef: 0xe0002dec,
-	0x80f0: 0xe0002b61, 0x80f1: 0xe0002def, 0x80f2: 0xe0002c8b, 0x80f3: 0xe0002f28,
-	0x80f4: 0x402e5e20, 0x80f5: 0x402ed020, 0x80f6: 0x40305a20, 0x80f7: 0x402dd420,
-	0x80f8: 0xe0000abf, 0x80f9: 0xe0000ec4, 0x80fa: 0x002be888, 0x80fb: 0x002c4488,
-	0x80fc: 0x402c4420, 0x80fd: 0x002e3888, 0x80fe: 0x00303e88, 0x80ff: 0x402ffc20,
-	// Block 0x204, offset 0x8100
-	0x8100: 0xae603502, 0x8101: 0xae603202, 0x8102: 0xae604502, 0x8103: 0xae602202,
-	0x8104: 0xe0000000, 0x8105: 0xaf007f02, 0x8106: 0xae605f02, 0x8107: 0xadc06002,
-	0x8108: 0xadc06002, 0x8109: 0xadc06002, 0x810a: 0xae605f02, 0x810b: 0xae605f02,
-	0x810c: 0xae605f02, 0x810d: 0xadc06002, 0x810e: 0xadc06002, 0x810f: 0xa0000000,
-	0x8110: 0xae605f02, 0x8111: 0xae605f02, 0x8112: 0xae605f02, 0x8113: 0xadc06002,
-	0x8114: 0xadc06002, 0x8115: 0xadc06002, 0x8116: 0xadc06002, 0x8117: 0xae605f02,
-	0x8118: 0xae808002, 0x8119: 0xadc06002, 0x811a: 0xadc06002, 0x811b: 0xae605f02,
-	0x811c: 0xae906002, 0x811d: 0xaea05f02, 0x811e: 0xaea05f02, 0x811f: 0xae906002,
-	0x8120: 0xaea08102, 0x8121: 0xaea08202, 0x8122: 0xae906002, 0x8123: 0x84e615ef,
-	0x8124: 0x84e6164c, 0x8125: 0x84e616cd, 0x8126: 0x84e61771, 0x8127: 0x84e61836,
-	0x8128: 0x84e6161d, 0x8129: 0x84e61631, 0x812a: 0x84e616b4, 0x812b: 0x84e61741,
-	0x812c: 0x84e617bd, 0x812d: 0x84e61816, 0x812e: 0x84e6185f, 0x812f: 0x84e6187b,
-	0x8130: 0x00326688, 0x8131: 0x40326620, 0x8132: 0x0032a688, 0x8133: 0x4032a620,
-	0x8134: 0x40064020, 0x8135: 0x40064220, 0x8136: 0x00326088, 0x8137: 0x40326020,
-	0x813a: 0x00326c84, 0x813b: 0x40329220,
-	0x813c: 0x40329020, 0x813d: 0x40329420, 0x813e: 0x402c6220,
-	// Block 0x205, offset 0x8140
-	0x8140: 0xe00029f8, 0x8141: 0xe0002d07, 0x8142: 0xe00029fb, 0x8143: 0xe0002f43,
-	0x8144: 0xe00029fe, 0x8145: 0xe0002f46, 0x8146: 0xe0002a01, 0x8147: 0xe0002f49,
-	0x8148: 0xe0002a13, 0x8149: 0xe0002f5b, 0x814a: 0xe0002a1a, 0x814b: 0xe0002f62,
-	0x814c: 0xe0002a20, 0x814d: 0xe0002f68, 0x814e: 0xe0002a26, 0x814f: 0xe0002f6e,
-	0x8150: 0xe0002a1d, 0x8151: 0xe0002f65, 0x8152: 0xe0002a23, 0x8153: 0xe0002f6b,
-	0x8154: 0xe0002a62, 0x8155: 0xe0002faa, 0x8156: 0xe0002a5e, 0x8157: 0xe0002fa6,
-	0x8158: 0xe0002a76, 0x8159: 0xe0002fbe, 0x815a: 0xe0002a79, 0x815b: 0xe0002fc1,
-	0x815c: 0xe0002a54, 0x815d: 0xe0002f9c, 0x815e: 0xe0002a7c, 0x815f: 0xe0002fca,
-	0x8160: 0xe0002a91, 0x8161: 0xe0002d1c, 0x8162: 0xe0002a9d, 0x8163: 0xe0002d28,
-	0x8164: 0xe0002aa3, 0x8165: 0xe0002d2e, 0x8166: 0xe0002a9a, 0x8167: 0xe0002d25,
-	0x8168: 0xe0002aa0, 0x8169: 0xe0002d2b, 0x816a: 0xe0002aa6, 0x816b: 0xe0002d31,
-	0x816c: 0xe0002ad7, 0x816d: 0xe0002d62, 0x816e: 0xe0002abb, 0x816f: 0xe0002d49,
-	0x8170: 0xe0002add, 0x8171: 0xe0002d6b, 0x8172: 0xe0002ae6, 0x8173: 0xe0002d74,
-	0x8174: 0xe0002ae9, 0x8175: 0xe0002d77, 0x8176: 0xe0002af5, 0x8177: 0xe0002d83,
-	0x8178: 0xe0002af8, 0x8179: 0xe0002d86, 0x817a: 0xe0002aff, 0x817b: 0xe0002d8d,
-	0x817c: 0xe0002afc, 0x817d: 0xe0002d8a, 0x817e: 0xe0002b02, 0x817f: 0xe0002d90,
-	// Block 0x206, offset 0x8180
-	0x8180: 0xe0002b05, 0x8181: 0xe0002d93, 0x8182: 0xe0002b08, 0x8183: 0xe0002d96,
-	0x8184: 0xe0002b17, 0x8185: 0xe0002da5, 0x8186: 0xe0002b1d, 0x8187: 0xe0002dab,
-	0x8188: 0xe0002b23, 0x8189: 0xe0002db1, 0x818a: 0xe0002b20, 0x818b: 0xe0002dae,
-	0x818c: 0xe0002b52, 0x818d: 0xe0002de0, 0x818e: 0xe0002b56, 0x818f: 0xe0002de4,
-	0x8190: 0xe0002b73, 0x8191: 0xe0002e01, 0x8192: 0xe0002b6f, 0x8193: 0xe0002dfd,
-	0x8194: 0xe0002b9e, 0x8195: 0xe0002e38, 0x8196: 0xe0002ba1, 0x8197: 0xe0002e3b,
-	0x8198: 0xe0002baa, 0x8199: 0xe0002e44, 0x819a: 0xe0002bb6, 0x819b: 0xe0002e50,
-	0x819c: 0xe0002bb9, 0x819d: 0xe0002e53, 0x819e: 0xe0002bbd, 0x819f: 0xe0002e57,
-	0x81a0: 0xe0002bd1, 0x81a1: 0xe0002e6b, 0x81a2: 0xe0002bd7, 0x81a3: 0xe0002e71,
-	0x81a4: 0xe0002bc3, 0x81a5: 0xe0002e5d, 0x81a6: 0xe0002bcd, 0x81a7: 0xe0002e67,
-	0x81a8: 0xe0002bda, 0x81a9: 0xe0002e74, 0x81aa: 0xe0002be4, 0x81ab: 0xe0002e81,
-	0x81ac: 0xe0002bea, 0x81ad: 0xe0002e87, 0x81ae: 0xe0002bf3, 0x81af: 0xe0002e90,
-	0x81b0: 0xe0002bf0, 0x81b1: 0xe0002e8d, 0x81b2: 0xe0002c52, 0x81b3: 0xe0002eef,
-	0x81b4: 0xe0002c58, 0x81b5: 0xe0002ef5, 0x81b6: 0xe0002c55, 0x81b7: 0xe0002ef2,
-	0x81b8: 0xe0002c21, 0x81b9: 0xe0002ebe, 0x81ba: 0xe0002c2b, 0x81bb: 0xe0002ec8,
-	0x81bc: 0xe0002c5b, 0x81bd: 0xe0002ef8, 0x81be: 0xe0002c5e, 0x81bf: 0xe0002efb,
-	// Block 0x207, offset 0x81c0
-	0x81c0: 0xe0002c64, 0x81c1: 0xe0002f01, 0x81c2: 0xe0002c61, 0x81c3: 0xe0002efe,
-	0x81c4: 0xe0002c6a, 0x81c5: 0xe0002f0a, 0x81c6: 0xe0002c6d, 0x81c7: 0xe0002f0d,
-	0x81c8: 0xe0002c70, 0x81c9: 0xe0002f10, 0x81ca: 0xe0002c76, 0x81cb: 0xe0002fc7,
-	0x81cc: 0xe0002c73, 0x81cd: 0xe0002fc4, 0x81ce: 0xe0002c88, 0x81cf: 0xe0002f25,
-	0x81d0: 0xe0002c97, 0x81d1: 0xe0002f34, 0x81d2: 0xe0002ca0, 0x81d3: 0xe0002f3d,
-	0x81d4: 0xe0002ca3, 0x81d5: 0xe0002f40, 0x81d6: 0xe0002d34, 0x81d7: 0xe0002e7e,
-	0x81d8: 0xe0002f07, 0x81d9: 0xe0002f1c, 0x81da: 0xe0002994, 0x81db: 0xe0000f70,
-	0x81dc: 0x40300420, 0x81dd: 0x40300620, 0x81de: 0xe0000f7f, 0x81df: 0x402c9620,
-	0x81e0: 0xe00029ed, 0x81e1: 0xe0002cfc, 0x81e2: 0xe00029e4, 0x81e3: 0xe0002cf3,
-	0x81e4: 0xe00029b3, 0x81e5: 0xe0002cc2, 0x81e6: 0xe00029b7, 0x81e7: 0xe0002cc6,
-	0x81e8: 0xe00029bf, 0x81e9: 0xe0002cce, 0x81ea: 0xe00029bb, 0x81eb: 0xe0002cca,
-	0x81ec: 0xe00029f4, 0x81ed: 0xe0002d03, 0x81ee: 0xe00029a0, 0x81ef: 0xe0002caf,
-	0x81f0: 0xe00029a4, 0x81f1: 0xe0002cb3, 0x81f2: 0xe00029ac, 0x81f3: 0xe0002cbb,
-	0x81f4: 0xe00029a8, 0x81f5: 0xe0002cb7, 0x81f6: 0xe00029f0, 0x81f7: 0xe0002cff,
-	0x81f8: 0xe0002a6f, 0x81f9: 0xe0002fb7, 0x81fa: 0xe0002a66, 0x81fb: 0xe0002fae,
-	0x81fc: 0xe0002a4b, 0x81fd: 0xe0002f93, 0x81fe: 0xe0002a35, 0x81ff: 0xe0002f7d,
-	// Block 0x208, offset 0x8200
-	0x8200: 0xe0002a39, 0x8201: 0xe0002f81, 0x8202: 0xe0002a41, 0x8203: 0xe0002f89,
-	0x8204: 0xe0002a3d, 0x8205: 0xe0002f85, 0x8206: 0xe0002a72, 0x8207: 0xe0002fba,
-	0x8208: 0xe0002acb, 0x8209: 0xe0002d56, 0x820a: 0xe0002ad4, 0x820b: 0xe0002d5f,
-	0x820c: 0xe0002b97, 0x820d: 0xe0002e25, 0x820e: 0xe0002b77, 0x820f: 0xe0002e05,
-	0x8210: 0xe0002b32, 0x8211: 0xe0002dc0, 0x8212: 0xe0002b36, 0x8213: 0xe0002dc4,
-	0x8214: 0xe0002b3e, 0x8215: 0xe0002dcc, 0x8216: 0xe0002b3a, 0x8217: 0xe0002dc8,
-	0x8218: 0xe0002b9a, 0x8219: 0xe0002e28, 0x821a: 0xe0002b83, 0x821b: 0xe0002e11,
-	0x821c: 0xe0002b87, 0x821d: 0xe0002e15, 0x821e: 0xe0002b8f, 0x821f: 0xe0002e1d,
-	0x8220: 0xe0002b8b, 0x8221: 0xe0002e19, 0x8222: 0xe0002b93, 0x8223: 0xe0002e21,
-	0x8224: 0xe0002c4f, 0x8225: 0xe0002eec, 0x8226: 0xe0002c2f, 0x8227: 0xe0002ecc,
-	0x8228: 0xe0002c3b, 0x8229: 0xe0002ed8, 0x822a: 0xe0002c3f, 0x822b: 0xe0002edc,
-	0x822c: 0xe0002c47, 0x822d: 0xe0002ee4, 0x822e: 0xe0002c43, 0x822f: 0xe0002ee0,
-	0x8230: 0xe0002c4b, 0x8231: 0xe0002ee8, 0x8232: 0xe0002c7c, 0x8233: 0xe0002f16,
-	0x8234: 0xe0002c91, 0x8235: 0xe0002f2e, 0x8236: 0xe0002c8e, 0x8237: 0xe0002f2b,
-	0x8238: 0xe0002c85, 0x8239: 0xe0002f22, 0x823a: 0xe0000d0a, 0x823b: 0xe0000d07,
-	0x823c: 0x0030d888, 0x823d: 0x4030d820, 0x823e: 0x00312088, 0x823f: 0x40312020,
-	// Block 0x209, offset 0x8240
-	0x8240: 0x40063a20, 0x8241: 0xe00000b1, 0x8242: 0xe00012ea, 0x8243: 0xe00012f5,
-	0x8244: 0xe00012e0, 0x8246: 0xe00012ee, 0x8247: 0xe00012f1,
-	0x8248: 0xe000124f, 0x8249: 0xe0001249, 0x824a: 0xe00012e7, 0x824b: 0xe00012dd,
-	0x824c: 0xe00012f8, 0x824d: 0xe00000b7, 0x824e: 0xe00000b4, 0x824f: 0xe00000ba,
-	0x8250: 0xe0001343, 0x8251: 0xe000135e, 0x8252: 0xe0001356, 0x8253: 0xe0001352,
-	0x8256: 0xe0001349, 0x8257: 0xe000135a,
-	0x8258: 0xe0001346, 0x8259: 0xe0001361, 0x825a: 0xe0001340, 0x825b: 0xe000133a,
-	0x825d: 0xe00000c0, 0x825e: 0xe00000bd, 0x825f: 0xe00000c3,
-	0x8260: 0xe00013e6, 0x8261: 0xe0001401, 0x8262: 0xe00013f9, 0x8263: 0xe00013f5,
-	0x8264: 0xe00013a4, 0x8265: 0xe00013a7, 0x8266: 0xe00013ec, 0x8267: 0xe00013fd,
-	0x8268: 0xe00013e9, 0x8269: 0xe0001404, 0x826a: 0xe00013e3, 0x826b: 0xe00013dd,
-	0x826c: 0xe00013aa, 0x826d: 0xe00000ae, 0x826e: 0xe00000ab, 0x826f: 0x402c2620,
-	0x8272: 0xe000149f, 0x8273: 0xe00014aa,
-	0x8274: 0xe0001495, 0x8276: 0xe00014a3, 0x8277: 0xe00014a6,
-	0x8278: 0xe00013a1, 0x8279: 0xe000139b, 0x827a: 0xe000149c, 0x827b: 0xe0001492,
-	0x827c: 0xe00014ad, 0x827d: 0x40062020, 0x827e: 0x40063820,
-	// Block 0x20a, offset 0x8280
-	0x8280: 0x00021284, 0x8281: 0x00021284, 0x8282: 0x00021284, 0x8283: 0x00021284,
-	0x8284: 0x00021284, 0x8285: 0x00021284, 0x8286: 0x00021284, 0x8287: 0x0002129b,
-	0x8288: 0x00021284, 0x8289: 0x00021284, 0x828a: 0x00021284, 0x828b: 0xa0000000,
-	0x828c: 0xa0000000, 0x828d: 0xa0000000, 0x828e: 0xa0000000, 0x828f: 0xa0000000,
-	0x8290: 0x40022620, 0x8291: 0x0002269b, 0x8292: 0x40022820, 0x8293: 0x40022a20,
-	0x8294: 0x40022c20, 0x8295: 0x40022e20, 0x8296: 0x4004c420, 0x8297: 0x40021820,
-	0x8298: 0x4003d420, 0x8299: 0x4003d620, 0x829a: 0x4003d820, 0x829b: 0x4003da20,
-	0x829c: 0x4003e220, 0x829d: 0x4003e420, 0x829e: 0x4003e620, 0x829f: 0x4003e820,
-	0x82a0: 0x4004f820, 0x82a1: 0x4004fa20, 0x82a2: 0x40050220, 0x82a3: 0x40050420,
-	0x82a4: 0x0002e484, 0x82a5: 0xf0001f04, 0x82a6: 0xf0000404, 0x82a7: 0x40050620,
-	0x82a8: 0x40020e20, 0x82a9: 0x40021020, 0x82aa: 0xa0000000, 0x82ab: 0xa0000000,
-	0x82ac: 0xa0000000, 0x82ad: 0xa0000000, 0x82ae: 0xa0000000, 0x82af: 0x0002129b,
-	0x82b0: 0x4004f020, 0x82b1: 0x4004f420, 0x82b2: 0x40050e20, 0x82b3: 0xf0001f04,
-	0x82b4: 0xf0000404, 0x82b5: 0x40051020, 0x82b6: 0xf0001f04, 0x82b7: 0xf0000404,
-	0x82b8: 0x40051620, 0x82b9: 0x4003dc20, 0x82ba: 0x4003de20, 0x82bb: 0x40051820,
-	0x82bc: 0xe00027ab, 0x82bd: 0x4002e020, 0x82be: 0x40021420, 0x82bf: 0x40051a20,
-	// Block 0x20b, offset 0x82c0
-	0x82c0: 0x40051e20, 0x82c1: 0x40052220, 0x82c2: 0x40052420, 0x82c3: 0x40050820,
-	0x82c4: 0x40095820, 0x82c5: 0x40040c20, 0x82c6: 0x40040e20, 0x82c7: 0xf0001f04,
-	0x82c8: 0xe00027b1, 0x82c9: 0xe00027ae, 0x82ca: 0x4004e820, 0x82cb: 0x4004d420,
-	0x82cc: 0x40050a20, 0x82cd: 0x40050c20, 0x82ce: 0x4004da20, 0x82cf: 0x40026620,
-	0x82d0: 0x40052020, 0x82d1: 0x4004dc20, 0x82d2: 0x40095020, 0x82d3: 0x40023420,
-	0x82d4: 0x40051c20, 0x82d5: 0x40039c20, 0x82d6: 0x40039e20, 0x82d7: 0xe00000a6,
-	0x82d8: 0x4003a020, 0x82d9: 0x4003a220, 0x82da: 0x4003a420, 0x82db: 0x4003a620,
-	0x82dc: 0x4003a820, 0x82dd: 0x4003aa20, 0x82de: 0x4003ac20, 0x82df: 0x00021284,
-	0x82e0: 0xa0000000, 0x82e1: 0xa0000000, 0x82e2: 0xa0000000, 0x82e3: 0xa0000000,
-	0x82e4: 0xa0000000,
-	0x82ea: 0xa0000000, 0x82eb: 0xa0000000,
-	0x82ec: 0xa0000000, 0x82ed: 0xa0000000, 0x82ee: 0xa0000000, 0x82ef: 0xa0000000,
-	0x82f0: 0x0029cc94, 0x82f1: 0x002d9a94,
-	0x82f4: 0x0029d494, 0x82f5: 0x0029d694, 0x82f6: 0x0029d894, 0x82f7: 0x0029da94,
-	0x82f8: 0x0029dc94, 0x82f9: 0x0029de94, 0x82fa: 0x00093894, 0x82fb: 0x00094e94,
-	0x82fc: 0x00094294, 0x82fd: 0x0003f494, 0x82fe: 0x0003f694, 0x82ff: 0x002e9e94,
-	// Block 0x20c, offset 0x8300
-	0x8300: 0xe00009bc, 0x8301: 0xe00009c0, 0x8302: 0x002c3a8b, 0x8303: 0xe0002960,
-	0x8304: 0x40081c20, 0x8305: 0xe0000a5e, 0x8306: 0xe0000a62, 0x8307: 0x002cc28a,
-	0x8308: 0x40081e20, 0x8309: 0xe0002963, 0x830a: 0x002d2285, 0x830b: 0x002d688b,
-	0x830c: 0x002d688b, 0x830d: 0x002d688b, 0x830e: 0x002d6885, 0x830f: 0xf0000202,
-	0x8310: 0x002d9a8b, 0x8311: 0x002d9a8b, 0x8312: 0x002e228b, 0x8313: 0x002e2285,
-	0x8314: 0x40082020, 0x8315: 0x002e9e8b, 0x8316: 0xe000308e, 0x8317: 0x40082220,
-	0x8318: 0x40082420, 0x8319: 0x002f2c8b, 0x831a: 0x002f568b, 0x831b: 0x002f7a8b,
-	0x831c: 0x002f7a8b, 0x831d: 0x002f7a8b, 0x831e: 0x40082620, 0x831f: 0x40082820,
-	0x8320: 0xe00030bb, 0x8321: 0xe0000fbd, 0x8322: 0xe00030ca, 0x8323: 0x40082a20,
-	0x8324: 0x00312a8b, 0x8325: 0x40082c20, 0x8326: 0x0032a288, 0x8327: 0x40082e20,
-	0x8328: 0x00312a8b, 0x8329: 0x40083020, 0x832a: 0x402c0620, 0x832b: 0xe00029c6,
-	0x832c: 0x002c0a8b, 0x832d: 0x002c3a8b, 0x832e: 0x40083220, 0x832f: 0x002c9885,
-	0x8330: 0x002c988b, 0x8331: 0x002d088b, 0x8332: 0x002d1e88, 0x8333: 0x002e828b,
-	0x8334: 0x002ee285, 0x8335: 0x00389084, 0x8336: 0x00389284, 0x8337: 0x00389484,
-	0x8338: 0x00389684, 0x8339: 0x002d9a85, 0x833a: 0x40083420, 0x833b: 0xe0000b95,
-	0x833c: 0x00327e85, 0x833d: 0x00325685, 0x833e: 0x0032568b, 0x833f: 0x00327e8b,
-	// Block 0x20d, offset 0x8340
-	0x8340: 0x00093685, 0x8341: 0x40083620, 0x8342: 0x40083820, 0x8343: 0x40083a20,
-	0x8344: 0x40083c20, 0x8345: 0x002c628b, 0x8346: 0x002c6285, 0x8347: 0x002c9885,
-	0x8348: 0x002d9a85, 0x8349: 0x002dcc85, 0x834a: 0x40083e20, 0x834b: 0x400a6e20,
-	0x834c: 0x40084020, 0x834d: 0xe00009c4, 0x834e: 0x402d1e20, 0x834f: 0x40084220,
-	0x8350: 0xe00002cb, 0x8351: 0xe00002d3, 0x8352: 0xe00002b2, 0x8353: 0xe00002bb,
-	0x8354: 0xe00003cd, 0x8355: 0xe00002c3, 0x8356: 0xe00003d1, 0x8357: 0xe00004ab,
-	0x8358: 0xe0000579, 0x8359: 0xe00002c7, 0x835a: 0xe0000640, 0x835b: 0xe00002cf,
-	0x835c: 0xe00004af, 0x835d: 0xe0000644, 0x835e: 0xe0000798, 0x835f: 0xf0001e1e,
-	0x8360: 0x002d9a8a, 0x8361: 0xe000256e, 0x8362: 0xe0002571, 0x8363: 0xe000257b,
-	0x8364: 0x0030be8a, 0x8365: 0xe00025ab, 0x8366: 0xe00025ae, 0x8367: 0xe00010bb,
-	0x8368: 0xe0002581, 0x8369: 0x0030f68a, 0x836a: 0xe00025b5, 0x836b: 0xe00025bc,
-	0x836c: 0x002e228a, 0x836d: 0x002c3a8a, 0x836e: 0x002c628a, 0x836f: 0x002e828a,
-	0x8370: 0x002d9a84, 0x8371: 0xe0003009, 0x8372: 0xe000300c, 0x8373: 0xe0003016,
-	0x8374: 0x0030be84, 0x8375: 0xe00030cd, 0x8376: 0xe00030d0, 0x8377: 0xe00010b6,
-	0x8378: 0xe000257e, 0x8379: 0x0030f684, 0x837a: 0xe00025b2, 0x837b: 0xe00025b8,
-	0x837c: 0x002e2284, 0x837d: 0x002c3a84, 0x837e: 0x002c6284, 0x837f: 0x002e8284,
-	// Block 0x20e, offset 0x8380
-	0x8380: 0x400d1820, 0x8381: 0x400d1a20, 0x8382: 0x400d1c20, 0x8383: 0x400d1e20,
-	0x8384: 0x400d2020, 0x8385: 0x400d2220, 0x8386: 0x400d2420, 0x8387: 0x400d2620,
-	0x8388: 0x400d2820, 0x8389: 0x400d2a20, 0x838a: 0x400d2c20,
-	0x83a0: 0x0029ce86, 0x83a1: 0x0029d086, 0x83a2: 0x0029d286, 0x83a3: 0x0029d486,
-	0x83a4: 0x0029d686, 0x83a5: 0x0029d886, 0x83a6: 0x0029da86, 0x83a7: 0x0029dc86,
-	0x83a8: 0x0029de86, 0x83a9: 0xf0000606, 0x83aa: 0xf0000606, 0x83ab: 0xf0000606,
-	0x83ac: 0xf0000606, 0x83ad: 0xf0000606, 0x83ae: 0xf0000606, 0x83af: 0xf0000606,
-	0x83b0: 0xe0002966, 0x83b1: 0xf0000606, 0x83b2: 0xf0000606, 0x83b3: 0xf0000606,
-	0x83b4: 0xe00027b4, 0x83b5: 0xe00027b8, 0x83b6: 0xe00027bc, 0x83b7: 0xe00027c0,
-	0x83b8: 0xe00027c4, 0x83b9: 0xe00027c8, 0x83ba: 0xe00027cc, 0x83bb: 0xe00027d0,
-	0x83bc: 0xe00027d4, 0x83bd: 0xe0000015, 0x83be: 0xe000001a, 0x83bf: 0xe000001f,
-	// Block 0x20f, offset 0x83c0
-	0x83c0: 0xe0000024, 0x83c1: 0xe0000029, 0x83c2: 0xe000002e, 0x83c3: 0xe0000033,
-	0x83c4: 0xe0000038, 0x83c5: 0xe000003d, 0x83c6: 0xe0000042, 0x83c7: 0xe0000047,
-	0x83c8: 0xf0001f04, 0x83c9: 0xf0001f04, 0x83ca: 0xf0001f04, 0x83cb: 0xf0001f04,
-	0x83cc: 0xf0001f04, 0x83cd: 0xf0001f04, 0x83ce: 0xe0002985, 0x83cf: 0xf0001f04,
-	0x83d0: 0xf0001f04, 0x83d1: 0xf0000404, 0x83d2: 0xf0000404, 0x83d3: 0xf0000404,
-	0x83d4: 0xf0000404, 0x83d5: 0xf0000404, 0x83d6: 0xf0000404, 0x83d7: 0xf0000404,
-	0x83d8: 0xe0002969, 0x83d9: 0xf0000404, 0x83da: 0xf0000404, 0x83db: 0xf0000404,
-	0x83dc: 0xe00027d8, 0x83dd: 0xe00027e0, 0x83de: 0xe00027e8, 0x83df: 0xe00027f0,
-	0x83e0: 0xe00027f8, 0x83e1: 0xe0002800, 0x83e2: 0xe0002808, 0x83e3: 0xe0002810,
-	0x83e4: 0xe0002818, 0x83e5: 0xe000281c, 0x83e6: 0xe0002824, 0x83e7: 0xe000282c,
-	0x83e8: 0xe0002834, 0x83e9: 0xe000283c, 0x83ea: 0xe0002844, 0x83eb: 0xe000284c,
-	0x83ec: 0xe000251b, 0x83ed: 0xe0002854, 0x83ee: 0xe000285c, 0x83ef: 0xe0002864,
-	0x83f0: 0xe000286c, 0x83f1: 0xe0002874, 0x83f2: 0xe000287c, 0x83f3: 0xe0002523,
-	0x83f4: 0xe0002884, 0x83f5: 0xe000288c, 0x83f6: 0x002bde8c, 0x83f7: 0x002c0a8c,
-	0x83f8: 0x002c3a8c, 0x83f9: 0x002c628c, 0x83fa: 0x002c988c, 0x83fb: 0x002d088c,
-	0x83fc: 0x002d228c, 0x83fd: 0x002d688c, 0x83fe: 0x002d9a8c, 0x83ff: 0x002dcc8c,
-	// Block 0x210, offset 0x8400
-	0x8400: 0xe0002894, 0x8401: 0xe0002898, 0x8402: 0xe000289c, 0x8403: 0xe00028a0,
-	0x8404: 0xe00028a4, 0x8405: 0xe00028a8, 0x8406: 0xe00028ac, 0x8407: 0xe00028b0,
-	0x8408: 0xe00028b4, 0x8409: 0xe00028b8, 0x840a: 0xe00028bc, 0x840b: 0xe00028c0,
-	0x840c: 0xe00028c4, 0x840d: 0xe00028c8, 0x840e: 0xe000004c, 0x840f: 0xe0000051,
-	0x8410: 0xe0000056, 0x8411: 0xe000005b, 0x8412: 0xe0000060, 0x8413: 0xe0000065,
-	0x8414: 0xe000006a, 0x8415: 0xe000006f, 0x8416: 0xe0000083, 0x8417: 0xe000008d,
-	0x8418: 0xe0000092, 0x8419: 0xe0000097, 0x841a: 0xe000009c, 0x841b: 0xe00000a1,
-	0x841c: 0xe0000088, 0x841d: 0xe0000074, 0x841e: 0xe000007c,
-	0x8420: 0xe00028cc, 0x8421: 0xe00028dc, 0x8422: 0xe00028d4, 0x8423: 0xe000290c,
-	0x8424: 0xe00028e0, 0x8425: 0xe00028f4, 0x8426: 0xe00028d0, 0x8427: 0xe00028f0,
-	0x8428: 0xe00028d8, 0x8429: 0xe00028fc, 0x842a: 0xe000291c, 0x842b: 0xe0002930,
-	0x842c: 0xe000292c, 0x842d: 0xe0002924, 0x842e: 0xe0002958, 0x842f: 0xe0002910,
-	0x8430: 0xe0002918, 0x8431: 0xe0002928, 0x8432: 0xe0002920, 0x8433: 0xe000293c,
-	0x8434: 0xe0002904, 0x8435: 0xe0002934, 0x8436: 0xe0002950, 0x8437: 0xe0002940,
-	0x8438: 0xe00028f8, 0x8439: 0xe00028e4, 0x843a: 0xe0002908, 0x843b: 0xe0002914,
-	0x843c: 0xe0002938, 0x843d: 0xe00028e8, 0x843e: 0xe0002954, 0x843f: 0xe0002900,
-	// Block 0x211, offset 0x8440
-	0x8440: 0xe0002944, 0x8441: 0xe00028ec, 0x8442: 0xe0002948, 0x8443: 0xe000294c,
-	0x8444: 0x02aa9e86, 0x8445: 0x02bcf886, 0x8446: 0x02cb0e86, 0x8447: 0x02f71e86,
-	0x8448: 0xe00002e3, 0x8449: 0xe00003d8, 0x844a: 0xe00004b3, 0x844b: 0xe000057d,
-	0x844c: 0xe0000648, 0x844d: 0xe00006f0, 0x844e: 0xe000079c, 0x844f: 0xe0000841,
-	0x8450: 0xe0000ec0, 0x8451: 0xf0000606, 0x8452: 0xf0000606, 0x8453: 0xf0000606,
-	0x8454: 0xf0000606, 0x8455: 0xf0000606, 0x8456: 0xf0000606, 0x8457: 0xe0002975,
-	0x8458: 0xf0000606, 0x8459: 0xf0000606, 0x845a: 0xf0000606, 0x845b: 0xf0000606,
-	0x845c: 0xf0000606, 0x845d: 0xf0000606, 0x845e: 0xf0000606, 0x845f: 0xf0000606,
-	0x8460: 0x0062ac86, 0x8461: 0x0062b086, 0x8462: 0x0062b286, 0x8463: 0x0062b686,
-	0x8464: 0x0062b886, 0x8465: 0x0062ba86, 0x8466: 0x0062be86, 0x8467: 0x0062c286,
-	0x8468: 0x0062c486, 0x8469: 0x0062c886, 0x846a: 0x0062ca86, 0x846b: 0x0062cc86,
-	0x846c: 0x0062ce86, 0x846d: 0x0062d086, 0x846e: 0xf0000606, 0x846f: 0xf0000606,
-	0x8470: 0xf0000606, 0x8471: 0xf0000606, 0x8472: 0xf0000606, 0x8473: 0xf0000606,
-	0x8474: 0xf0000606, 0x8475: 0xf0000606, 0x8476: 0xf0000606, 0x8477: 0xf0000606,
-	0x8478: 0xf0000606, 0x8479: 0xf0000606, 0x847a: 0xf0000606, 0x847b: 0xf0000606,
-	0x847c: 0xe0002127, 0x847d: 0xe0002122, 0x847e: 0xf0000606, 0x847f: 0x4027ac20,
-	// Block 0x212, offset 0x8480
-	0x8480: 0x029c0086, 0x8481: 0x029d1886, 0x8482: 0x029c1286, 0x8483: 0x02adb686,
-	0x8484: 0x029d2886, 0x8485: 0x02a2da86, 0x8486: 0x029c0686, 0x8487: 0x02a2d686,
-	0x8488: 0x029cba86, 0x8489: 0x02a68286, 0x848a: 0x02ce1086, 0x848b: 0x02e0d686,
-	0x848c: 0x02d86886, 0x848d: 0x02ce5086, 0x848e: 0x0323a286, 0x848f: 0x02ae3e86,
-	0x8490: 0x02cbca86, 0x8491: 0x02d05486, 0x8492: 0x02ce1286, 0x8493: 0x02f27c86,
-	0x8494: 0x02a81a86, 0x8495: 0x02e4f286, 0x8496: 0x03194286, 0x8497: 0x02f2ba86,
-	0x8498: 0x02a56886, 0x8499: 0x02f3b086, 0x849a: 0x02ea6e86, 0x849b: 0x02b2e686,
-	0x849c: 0x0320d286, 0x849d: 0x02a25486, 0x849e: 0x02a6e086, 0x849f: 0x02d9d086,
-	0x84a0: 0x03300a86, 0x84a1: 0x029e2286, 0x84a2: 0x02a33286, 0x84a3: 0x02d6c686,
-	0x84a4: 0x029c1486, 0x84a5: 0x029c5a86, 0x84a6: 0x029c1686, 0x84a7: 0x02bbcc86,
-	0x84a8: 0x02a7e686, 0x84a9: 0x02a67686, 0x84aa: 0x02b72e86, 0x84ab: 0x02b6cc86,
-	0x84ac: 0x02edc686, 0x84ad: 0x029e0286, 0x84ae: 0x03198e86, 0x84af: 0x02a6a886,
-	0x84b0: 0x02b23886, 0x84b1: 0xf0000606, 0x84b2: 0xe000297c, 0x84b3: 0xf0000606,
-	0x84b4: 0xf0000606, 0x84b5: 0xf0000606, 0x84b6: 0xf0000606, 0x84b7: 0xf0000606,
-	0x84b8: 0xf0000606, 0x84b9: 0xf0000606, 0x84ba: 0xf0000606, 0x84bb: 0xf0000606,
-	0x84bc: 0xe000297f, 0x84bd: 0xf0000606, 0x84be: 0xf0000606, 0x84bf: 0xf0000606,
-	// Block 0x213, offset 0x84c0
-	0x84c0: 0xf0001f04, 0x84c1: 0xf0001f04, 0x84c2: 0xf0001f04, 0x84c3: 0xf0001f04,
-	0x84c4: 0xf0001f04, 0x84c5: 0xf0001f04, 0x84c6: 0xe000298b, 0x84c7: 0xf0001f04,
-	0x84c8: 0xf0001f04, 0x84c9: 0xf0000404, 0x84ca: 0xf0000404, 0x84cb: 0xf0000404,
-	0x84cc: 0xe0002ffd, 0x84cd: 0xe0000b85, 0x84ce: 0xe0002fe5, 0x84cf: 0xe0000d14,
-	0x84d0: 0x00657693, 0x84d1: 0x00657893, 0x84d2: 0x00657a93, 0x84d3: 0x00657e93,
-	0x84d4: 0x00658093, 0x84d5: 0x00658293, 0x84d6: 0x00658493, 0x84d7: 0x00658693,
-	0x84d8: 0x00658893, 0x84d9: 0x00658a93, 0x84da: 0x00658c93, 0x84db: 0x00658e93,
-	0x84dc: 0x00659093, 0x84dd: 0x00659293, 0x84de: 0x00659493, 0x84df: 0x00659693,
-	0x84e0: 0x00659893, 0x84e1: 0x00659a93, 0x84e2: 0x00659c93, 0x84e3: 0x00659e93,
-	0x84e4: 0x0065a093, 0x84e5: 0x0065a293, 0x84e6: 0x0065a493, 0x84e7: 0x0065a693,
-	0x84e8: 0x0065a893, 0x84e9: 0x0065aa93, 0x84ea: 0x0065ac93, 0x84eb: 0x0065ae93,
-	0x84ec: 0x0065b093, 0x84ed: 0x0065b293, 0x84ee: 0x0065b493, 0x84ef: 0x0065b693,
-	0x84f0: 0x0065b893, 0x84f1: 0x0065ba93, 0x84f2: 0x0065bc93, 0x84f3: 0x0065be93,
-	0x84f4: 0x0065c093, 0x84f5: 0x0065c493, 0x84f6: 0x0065c693, 0x84f7: 0x0065c893,
-	0x84f8: 0x0065ca93, 0x84f9: 0x0065cc93, 0x84fa: 0x0065ce93, 0x84fb: 0x0065d093,
-	0x84fc: 0x0065d293, 0x84fd: 0x0065d493, 0x84fe: 0x0065d693,
-	// Block 0x214, offset 0x8500
-	0x8500: 0xe000230b, 0x8501: 0xe00022f8, 0x8502: 0xe00022fc, 0x8503: 0xe0002311,
-	0x8504: 0xe0002316, 0x8505: 0xe000231d, 0x8506: 0xe0002321, 0x8507: 0xe0002325,
-	0x8508: 0xe000232b, 0x8509: 0xf0001c1c, 0x850a: 0xe0002330, 0x850b: 0xe000233c,
-	0x850c: 0xe0002340, 0x850d: 0xe0002337, 0x850e: 0xe0002346, 0x850f: 0xe000234b,
-	0x8510: 0xe000234f, 0x8511: 0xe0002353, 0x8512: 0xf0001c1c, 0x8513: 0xe000235e,
-	0x8514: 0xe0002358, 0x8515: 0xf0001c1c, 0x8516: 0xe0002363, 0x8517: 0xe000236d,
-	0x8518: 0xf0001f04, 0x8519: 0xf0001f04, 0x851a: 0xf0001f04, 0x851b: 0xf0001f04,
-	0x851c: 0xf0001f04, 0x851d: 0xf0001f04, 0x851e: 0xf0001f04, 0x851f: 0xe000298e,
-	0x8520: 0xf0001f04, 0x8521: 0xf0001f04, 0x8522: 0xf0000404, 0x8523: 0xf0000404,
-	0x8524: 0xf0000404, 0x8525: 0xf0000404, 0x8526: 0xf0000404, 0x8527: 0xf0000404,
-	0x8528: 0xf0000404, 0x8529: 0xe0002971, 0x852a: 0xf0000404, 0x852b: 0xf0000404,
-	0x852c: 0xf0000404, 0x852d: 0xf0000404, 0x852e: 0xf0000404, 0x852f: 0xf0000404,
-	0x8530: 0xf0000404, 0x8531: 0xe0000c1e, 0x8532: 0xe0002fcd, 0x8533: 0xe0002991,
-	0x8534: 0xe0000a31, 0x8535: 0xe000309a, 0x8536: 0xe00030a3, 0x8537: 0xe0002fd9,
-	0x8538: 0xe0000ac2, 0x8539: 0xe0000ac6, 0x853a: 0xe0002578, 0x853b: 0xf0001c1c,
-	0x853c: 0xf0001c1c, 0x853d: 0xf0001c1c, 0x853e: 0xf0001c1c, 0x853f: 0xe0002431,
-	// Block 0x215, offset 0x8540
-	0x8540: 0xe000309d, 0x8541: 0xe000307c, 0x8542: 0xe00030e0, 0x8543: 0xe000304f,
-	0x8544: 0xe0003019, 0x8545: 0xe000301c, 0x8546: 0xe0003055, 0x8547: 0xe0002ff4,
-	0x8548: 0xe0000a6b, 0x8549: 0xe0000cb4, 0x854a: 0xe00030a6, 0x854b: 0xe000307f,
-	0x854c: 0xe00030e3, 0x854d: 0xe00030e6, 0x854e: 0xe000305e, 0x854f: 0xe000301f,
-	0x8550: 0xe0003006, 0x8551: 0xe0000cb9, 0x8552: 0xe0000d36, 0x8553: 0xe0000be3,
-	0x8554: 0xe0000fc5, 0x8555: 0xe00030e9, 0x8556: 0xe0003061, 0x8557: 0xe0002fd6,
-	0x8558: 0xe0003025, 0x8559: 0xe0002ff1, 0x855a: 0xe000308b, 0x855b: 0xe00030ec,
-	0x855c: 0xe0003064, 0x855d: 0xe0002e35, 0x855e: 0xe0003028, 0x855f: 0xe0000d3e,
-	0x8560: 0xe0000a72, 0x8561: 0xe0003049, 0x8562: 0xe0000cbd, 0x8563: 0xe0000d42,
-	0x8564: 0xe0000a76, 0x8565: 0xe000304c, 0x8566: 0xe0000cc1, 0x8567: 0xe0000d2d,
-	0x8568: 0xe0000d31, 0x8569: 0xe00030a0, 0x856a: 0xe0000cc5, 0x856b: 0xe0000d4a,
-	0x856c: 0xe0000be7, 0x856d: 0xe0000f0b, 0x856e: 0xe0000f0f, 0x856f: 0xe0000f15,
-	0x8570: 0xe00030af, 0x8571: 0xe0003091, 0x8572: 0xe00030ef, 0x8573: 0xe0003067,
-	0x8574: 0xe00030b2, 0x8575: 0xe0003094, 0x8576: 0xe00030f2, 0x8577: 0xe000306a,
-	0x8578: 0xe0003031, 0x8579: 0xe000306d, 0x857a: 0xe00030b5, 0x857b: 0xe0003097,
-	0x857c: 0xe00030f5, 0x857d: 0xe0003073, 0x857e: 0xe0003034, 0x857f: 0xe0003076,
-	// Block 0x216, offset 0x8580
-	0x8580: 0xe0003037, 0x8581: 0xe0003079, 0x8582: 0xe00009b7, 0x8583: 0xe000252b,
-	0x8584: 0xe0002e2c, 0x8585: 0xe0002e32, 0x8586: 0xe0000a66, 0x8587: 0xe0000a7a,
-	0x8588: 0xe0002fd0, 0x8589: 0xe0002ff7, 0x858a: 0xe0002ffa, 0x858b: 0xe0003000,
-	0x858c: 0xe0003013, 0x858d: 0xe0003022, 0x858e: 0xe000302b, 0x858f: 0xe000302e,
-	0x8590: 0xe0003043, 0x8591: 0xe0003046, 0x8592: 0xe0000d0d, 0x8593: 0xe0002584,
-	0x8594: 0xe0003052, 0x8595: 0xe0000d3a, 0x8596: 0xe0000d46, 0x8597: 0xe00030a9,
-	0x8598: 0xe0000eb0, 0x8599: 0xe0000eb8, 0x859a: 0xe00030ac, 0x859b: 0xe00030be,
-	0x859c: 0xe00030c7, 0x859d: 0xe00030d4, 0x859e: 0xe00010b2, 0x859f: 0xe00009c8,
-	0x85a0: 0xf0001f04, 0x85a1: 0xf0001f04, 0x85a2: 0xf0001f04, 0x85a3: 0xf0001f04,
-	0x85a4: 0xf0001f04, 0x85a5: 0xf0001f04, 0x85a6: 0xe0002988, 0x85a7: 0xf0001f04,
-	0x85a8: 0xf0001f04, 0x85a9: 0xf0000404, 0x85aa: 0xf0000404, 0x85ab: 0xf0000404,
-	0x85ac: 0xf0000404, 0x85ad: 0xf0000404, 0x85ae: 0xf0000404, 0x85af: 0xf0000404,
-	0x85b0: 0xe000296d, 0x85b1: 0xf0000404, 0x85b2: 0xf0000404, 0x85b3: 0xf0000404,
-	0x85b4: 0xf0000404, 0x85b5: 0xf0000404, 0x85b6: 0xf0000404, 0x85b7: 0xf0000404,
-	0x85b8: 0xf0000404, 0x85b9: 0xf0000404, 0x85ba: 0xe0002978, 0x85bb: 0xf0000404,
-	0x85bc: 0xf0000404, 0x85bd: 0xf0000404, 0x85be: 0xf0000404, 0x85bf: 0xe0000bdf,
-	// Block 0x217, offset 0x85c0
-	0x85c0: 0xe0002fe8, 0x85c1: 0xe0002feb, 0x85c2: 0xe0002fee, 0x85c3: 0xe0000b99,
-	0x85c4: 0xe0000b9d, 0x85c5: 0xe0000f83, 0x85c6: 0xe00030c4,
-	0x85d3: 0xf0000404,
-	0x85d4: 0xf0000404, 0x85d5: 0xf0000404, 0x85d6: 0xf0000404, 0x85d7: 0xf0000404,
-	0x85dd: 0xe000150b, 0x85de: 0xa1a09602, 0x85df: 0xe0001514,
-	0x85e0: 0x0038ae85, 0x85e1: 0x00389085, 0x85e2: 0x00389685, 0x85e3: 0x00389885,
-	0x85e4: 0x0038a485, 0x85e5: 0x0038a685, 0x85e6: 0x0038a885, 0x85e7: 0x0038b685,
-	0x85e8: 0x0038ba85, 0x85e9: 0x00093885, 0x85ea: 0xe0001542, 0x85eb: 0xe000153f,
-	0x85ec: 0xe000154c, 0x85ed: 0xe0001548, 0x85ee: 0xe00014e1, 0x85ef: 0xe00014e4,
-	0x85f0: 0xe00014e7, 0x85f1: 0xe00014ea, 0x85f2: 0xe00014f0, 0x85f3: 0xe00014f3,
-	0x85f4: 0xe00014f6, 0x85f5: 0xe00014fc, 0x85f6: 0xe0001505,
-	0x85f8: 0xe0001508, 0x85f9: 0xe000150e, 0x85fa: 0xe000151b, 0x85fb: 0xe0001518,
-	0x85fc: 0xe0001521, 0x85fe: 0xe0001524,
-	// Block 0x218, offset 0x8600
-	0x8600: 0xf0001f04, 0x8601: 0xf0001f04, 0x8602: 0xf0001f04, 0x8603: 0xf0001f04,
-	0x8604: 0xf0001f04, 0x8605: 0xf0001f04, 0x8606: 0xf0001f04, 0x8607: 0xf0001f04,
-	0x8608: 0xe0002982, 0x8609: 0xf0001f04, 0x860a: 0xf0001f04,
-	0x8610: 0xe00027dc, 0x8611: 0xe00027e4, 0x8612: 0xe00027ec, 0x8613: 0xe00027f4,
-	0x8614: 0xe00027fc, 0x8615: 0xe0002804, 0x8616: 0xe000280c, 0x8617: 0xe0002814,
-	0x8618: 0xe0002517, 0x8619: 0xe0002820, 0x861a: 0xe0002828, 0x861b: 0xe0002830,
-	0x861c: 0xe0002838, 0x861d: 0xe0002840, 0x861e: 0xe0002848, 0x861f: 0xe0002850,
-	0x8620: 0xe000251f, 0x8621: 0xe0002858, 0x8622: 0xe0002860, 0x8623: 0xe0002868,
-	0x8624: 0xe0002870, 0x8625: 0xe0002878, 0x8626: 0xe0002880, 0x8627: 0xe0002527,
-	0x8628: 0xe0002888, 0x8629: 0xe0002890, 0x862a: 0xe000295c, 0x862b: 0x002c3a8c,
-	0x862c: 0x002f7a8c, 0x862d: 0xe0002e2f, 0x862e: 0xe00030da,
-	0x8630: 0x002bde9d, 0x8631: 0x002c0a9d, 0x8632: 0x002c3a9d, 0x8633: 0x002c629d,
-	0x8634: 0x002c989d, 0x8635: 0x002d089d, 0x8636: 0x002d229d, 0x8637: 0x002d689d,
-	0x8638: 0x002d9a9d, 0x8639: 0x002dcc9d, 0x863a: 0x002dfe9d, 0x863b: 0x002e229d,
-	0x863c: 0x002e829d, 0x863d: 0x002e9e9d, 0x863e: 0x002ee29d, 0x863f: 0x002f2c9d,
-	// Block 0x219, offset 0x8640
-	0x8640: 0x002f569d, 0x8641: 0x002f7a9d, 0x8642: 0x002fe69d, 0x8643: 0x00302c9d,
-	0x8644: 0x00306c9d, 0x8645: 0x0030be9d, 0x8646: 0x0030e29d, 0x8647: 0x0030f69d,
-	0x8648: 0x0031009d, 0x8649: 0x00312a9d, 0x864a: 0xe0003003, 0x864b: 0xe0003070,
-	0x864c: 0xe00030b8, 0x864d: 0xe00030c1, 0x864e: 0xe0000ebc, 0x864f: 0xe00030d7,
-	0x8650: 0x002bde8c, 0x8651: 0x002c0a8c, 0x8652: 0x002c3a8c, 0x8653: 0x002c628c,
-	0x8654: 0x002c988c, 0x8655: 0x002d088c, 0x8656: 0x002d228c, 0x8657: 0x002d688c,
-	0x8658: 0x002d9a8c, 0x8659: 0x002dcc8c, 0x865a: 0x002dfe8c, 0x865b: 0x002e228c,
-	0x865c: 0x002e828c, 0x865d: 0x002e9e8c, 0x865e: 0x002ee28c, 0x865f: 0x002f2c8c,
-	0x8660: 0x002f568c, 0x8661: 0x002f7a8c, 0x8662: 0x002fe68c, 0x8663: 0x00302c8c,
-	0x8664: 0x00306c8c, 0x8665: 0x0030be8c, 0x8666: 0x0030e28c, 0x8667: 0x0030f68c,
-	0x8668: 0x0031008c, 0x8669: 0x00312a8c, 0x866a: 0xe0003058, 0x866b: 0xe000305b,
-	0x8670: 0x002bde9d, 0x8671: 0x002c0a9d, 0x8672: 0x002c3a9d, 0x8673: 0x002c629d,
-	0x8674: 0x002c989d, 0x8675: 0x002d089d, 0x8676: 0x002d229d, 0x8677: 0x002d689d,
-	0x8678: 0x002d9a9d, 0x8679: 0x002dcc9d, 0x867a: 0x002dfe9d, 0x867b: 0x002e229d,
-	0x867c: 0x002e829d, 0x867d: 0x002e9e9d, 0x867e: 0x002ee29d, 0x867f: 0x002f2c9d,
-	// Block 0x21a, offset 0x8680
-	0x8680: 0x002f569d, 0x8681: 0x002f7a9d, 0x8682: 0x002fe69d, 0x8683: 0x00302c9d,
-	0x8684: 0x00306c9d, 0x8685: 0x0030be9d, 0x8686: 0x0030e29d, 0x8687: 0x0030f69d,
-	0x8688: 0x0031009d, 0x8689: 0x00312a9d, 0x868a: 0x002f2c9d, 0x868b: 0xe0000c81,
-	0x868c: 0xe0000eb5, 0x868d: 0xe0000f74, 0x868e: 0xe00009d2, 0x868f: 0xe00010f0,
-	0x8690: 0xe0002fd3, 0x8691: 0xe0000a6f, 0x8692: 0xe0000a7e, 0x8693: 0xe0000ba4,
-	0x8694: 0xe0000c84, 0x8695: 0xe0000d8a, 0x8696: 0xe0000d8e, 0x8697: 0xe0000e9b,
-	0x8698: 0xe0000f77, 0x8699: 0xe00010a2, 0x869a: 0xe00010c0,
-	// Block 0x21b, offset 0x86c0
-	0x86c0: 0xa0000000, 0x86c1: 0xa0000000, 0x86c2: 0xa0000000, 0x86c3: 0xa0000000,
-	0x86c4: 0xa0000000, 0x86c5: 0xa0000000, 0x86c6: 0xa0000000, 0x86c7: 0xa0000000,
-	0x86c8: 0xa0000000, 0x86c9: 0x40020020, 0x86ca: 0x40020220, 0x86cb: 0x40020420,
-	0x86cc: 0x40020620, 0x86cd: 0x40020820, 0x86ce: 0xa0000000, 0x86cf: 0xa0000000,
-	0x86d0: 0xa0000000, 0x86d1: 0xa0000000, 0x86d2: 0xa0000000, 0x86d3: 0xa0000000,
-	0x86d4: 0xa0000000, 0x86d5: 0xa0000000, 0x86d6: 0xa0000000, 0x86d7: 0xa0000000,
-	0x86d8: 0xa0000000, 0x86d9: 0xa0000000, 0x86da: 0xa0000000, 0x86db: 0xa0000000,
-	0x86dc: 0xa0000000, 0x86dd: 0xa0000000, 0x86de: 0xa0000000, 0x86df: 0xa0000000,
-	0x86e0: 0x40021220, 0x86e1: 0x4002ba20, 0x86e2: 0x4003e020, 0x86e3: 0x4004ea20,
-	0x86e4: 0x4027de20, 0x86e5: 0x4004ec20, 0x86e6: 0x4004e620, 0x86e7: 0x4003d220,
-	0x86e8: 0x4003f420, 0x86e9: 0x4003f620, 0x86ea: 0x4004d820, 0x86eb: 0x40093820,
-	0x86ec: 0x40024020, 0x86ed: 0x40021a20, 0x86ee: 0x4002e420, 0x86ef: 0x4004e220,
-	0x86f0: 0x4029cc20, 0x86f1: 0x4029ce20, 0x86f2: 0x4029d020, 0x86f3: 0x4029d220,
-	0x86f4: 0x4029d420, 0x86f5: 0x4029d620, 0x86f6: 0x4029d820, 0x86f7: 0x4029da20,
-	0x86f8: 0x4029dc20, 0x86f9: 0x4029de20, 0x86fa: 0x40026c20, 0x86fb: 0x40026220,
-	0x86fc: 0x40094020, 0x86fd: 0x40094220, 0x86fe: 0x40094420, 0x86ff: 0x4002c420,
-	// Block 0x21c, offset 0x8700
-	0x8700: 0x4004d620, 0x8701: 0x002bde88, 0x8702: 0x002c0a88, 0x8703: 0xc3352741,
-	0x8704: 0x002c6288, 0x8705: 0x002c9888, 0x8706: 0x002d0888, 0x8707: 0xc3392741,
-	0x8708: 0xc5342741, 0x8709: 0x002d9a88, 0x870a: 0xc5382741, 0x870b: 0x002dfe88,
-	0x870c: 0xc0030002, 0x870d: 0x002e8288, 0x870e: 0x002e9e88, 0x870f: 0x002ee288,
-	0x8710: 0x002f2c88, 0x8711: 0x002f5688, 0x8712: 0x002f7a88, 0x8713: 0xc3432741,
-	0x8714: 0x00302c88, 0x8715: 0xc34700d1, 0x8716: 0x0030be88, 0x8717: 0x0030e288,
-	0x8718: 0x0030f688, 0x8719: 0x00310088, 0x871a: 0x00312a88, 0x871b: 0x4003f820,
-	0x871c: 0x4004e420, 0x871d: 0x4003fa20, 0x871e: 0x40062420, 0x871f: 0x40021620,
-	0x8720: 0x40061e20, 0x8721: 0x402bde20, 0x8722: 0x402c0a20, 0x8723: 0xc3332741,
-	0x8724: 0x402c6220, 0x8725: 0x402c9820, 0x8726: 0x402d0820, 0x8727: 0xc3372741,
-	0x8728: 0xc5322741, 0x8729: 0x402d9a20, 0x872a: 0xc5362741, 0x872b: 0x402dfe20,
-	0x872c: 0xc0000002, 0x872d: 0x402e8220, 0x872e: 0x402e9e20, 0x872f: 0x402ee220,
-	0x8730: 0x402f2c20, 0x8731: 0x402f5620, 0x8732: 0x402f7a20, 0x8733: 0xc3412741,
-	0x8734: 0x40302c20, 0x8735: 0xc34500d1, 0x8736: 0x4030be20, 0x8737: 0x4030e220,
-	0x8738: 0x4030f620, 0x8739: 0x40310020, 0x873a: 0x40312a20, 0x873b: 0x4003fc20,
-	0x873c: 0x40094820, 0x873d: 0x4003fe20, 0x873e: 0x40094c20, 0x873f: 0xa0000000,
-	// Block 0x21d, offset 0x8740
-	0x8740: 0xe0000983, 0x8741: 0xe0000980, 0x8742: 0xe00008fb, 0x8743: 0xe00008f8,
-	0x8744: 0xe000097d, 0x8745: 0xe000097a, 0x8746: 0xe0000a38, 0x8747: 0xe0000a35,
-	0x8748: 0x002c3c83, 0x8749: 0x402c3c20, 0x874a: 0xe0000a4a, 0x874b: 0xe0000a47,
-	0x874c: 0xe0000a44, 0x874d: 0xe0000a41, 0x874e: 0xe0000a86, 0x874f: 0xe0000a83,
-	0x8750: 0xe0000aaa, 0x8751: 0xe0000aa7, 0x8752: 0xe0000b46, 0x8753: 0xe0000b43,
-	0x8754: 0xe0000aee, 0x8755: 0xe0000aeb, 0x8756: 0xe0000b2c, 0x8757: 0xe0000b29,
-	0x8758: 0xe0000b40, 0x8759: 0xe0000b3d, 0x875a: 0xe0000b1a, 0x875b: 0xe0000b17,
-	0x875c: 0x002d2483, 0x875d: 0x402d2420, 0x875e: 0xe0000bb2, 0x875f: 0xe0000baf,
-	0x8760: 0xe0000bc4, 0x8761: 0xe0000bc1, 0x8762: 0xe0000bca, 0x8763: 0xe0000bc7,
-	0x8764: 0x002d6a83, 0x8765: 0x402d6a20, 0x8766: 0xe0000c1b, 0x8767: 0xe0000c18,
-	0x8768: 0xe0000c51, 0x8769: 0xe0000c4e, 0x876a: 0xe0000c60, 0x876b: 0xe0000c5d,
-	0x876c: 0xe0000c31, 0x876d: 0xe0000c2e, 0x876e: 0xe0000c5a, 0x876f: 0xe0000c57,
-	0x8770: 0xe0000c54, 0x8771: 0x402da220, 0x8772: 0xf0000a0a, 0x8773: 0xf0000404,
-	0x8774: 0x002dce83, 0x8775: 0x402dce20, 0x8776: 0xe0000c9f, 0x8777: 0xe0000c9c,
-	0x8778: 0x402f7220, 0x8779: 0xe0000ccc, 0x877a: 0xe0000cc9, 0x877b: 0xe0000cd8,
-	0x877c: 0xe0000cd5, 0x877d: 0xe0000cd2, 0x877e: 0xe0000ccf, 0x877f: 0xe0000d04,
-	// Block 0x21e, offset 0x8780
-	0x8780: 0xe0000cfe, 0x8781: 0xe0000cf8, 0x8782: 0xe0000cf5, 0x8783: 0xe0000d51,
-	0x8784: 0xe0000d4e, 0x8785: 0xe0000d6f, 0x8786: 0xe0000d6c, 0x8787: 0xe0000d5d,
-	0x8788: 0xe0000d5a, 0x8789: 0xf0000404, 0x878a: 0x002eda88, 0x878b: 0x402eda20,
-	0x878c: 0xe0000e2e, 0x878d: 0xe0000e2b, 0x878e: 0xe0000da0, 0x878f: 0xe0000d9d,
-	0x8790: 0xe0000de0, 0x8791: 0xe0000ddd, 0x8792: 0xe0000e93, 0x8793: 0xe0000e8f,
-	0x8794: 0xe0000eca, 0x8795: 0xe0000ec7, 0x8796: 0xe0000edc, 0x8797: 0xe0000ed9,
-	0x8798: 0xe0000ed0, 0x8799: 0xe0000ecd, 0x879a: 0xe0000f1f, 0x879b: 0xe0000f1c,
-	0x879c: 0x002fe883, 0x879d: 0x402fe820, 0x879e: 0xe0000f47, 0x879f: 0xe0000f44,
-	0x87a0: 0xe0000f33, 0x87a1: 0xe0000f30, 0x87a2: 0xe0000f99, 0x87a3: 0xe0000f96,
-	0x87a4: 0xe0000f8a, 0x87a5: 0xe0000f87, 0x87a6: 0x00303688, 0x87a7: 0x40303620,
-	0x87a8: 0xe000102b, 0x87a9: 0xe0001028, 0x87aa: 0xe000103f, 0x87ab: 0xe000103c,
-	0x87ac: 0x00306e83, 0x87ad: 0x40306e20, 0x87ae: 0xe0000ff9, 0x87af: 0xe0000ff6,
-	0x87b0: 0xe0001025, 0x87b1: 0xe0001022, 0x87b2: 0xe0001039, 0x87b3: 0xe0001036,
-	0x87b4: 0xe00010d8, 0x87b5: 0xe00010d5, 0x87b6: 0xe000110e, 0x87b7: 0xe000110b,
-	0x87b8: 0xe0001117, 0x87b9: 0xe000113b, 0x87ba: 0xe0001138, 0x87bb: 0xe000114d,
-	0x87bc: 0xe000114a, 0x87bd: 0xe0001147, 0x87be: 0xe0001144, 0x87bf: 0xe0000f64,
-	// Block 0x21f, offset 0x87c0
-	0x87c0: 0xa0000000, 0x87c1: 0xa0000000, 0x87c2: 0xa0000000, 0x87c3: 0xa0000000,
-	0x87c4: 0xa0000000, 0x87c5: 0xa0000000, 0x87c6: 0xa0000000, 0x87c7: 0xa0000000,
-	0x87c8: 0xa0000000, 0x87c9: 0x40020020, 0x87ca: 0x40020220, 0x87cb: 0x40020420,
-	0x87cc: 0x40020620, 0x87cd: 0x40020820, 0x87ce: 0xa0000000, 0x87cf: 0xa0000000,
-	0x87d0: 0xa0000000, 0x87d1: 0xa0000000, 0x87d2: 0xa0000000, 0x87d3: 0xa0000000,
-	0x87d4: 0xa0000000, 0x87d5: 0xa0000000, 0x87d6: 0xa0000000, 0x87d7: 0xa0000000,
-	0x87d8: 0xa0000000, 0x87d9: 0xa0000000, 0x87da: 0xa0000000, 0x87db: 0xa0000000,
-	0x87dc: 0xa0000000, 0x87dd: 0xa0000000, 0x87de: 0xa0000000, 0x87df: 0xa0000000,
-	0x87e0: 0x40021220, 0x87e1: 0x4002ba20, 0x87e2: 0x4003e020, 0x87e3: 0x4004ea20,
-	0x87e4: 0x4027de20, 0x87e5: 0x4004ec20, 0x87e6: 0x4004e620, 0x87e7: 0x4003d220,
-	0x87e8: 0x4003f420, 0x87e9: 0x4003f620, 0x87ea: 0x4004d820, 0x87eb: 0x40093820,
-	0x87ec: 0x40024020, 0x87ed: 0x40021a20, 0x87ee: 0x4002e420, 0x87ef: 0x4004e220,
-	0x87f0: 0x4029cc20, 0x87f1: 0x4029ce20, 0x87f2: 0x4029d020, 0x87f3: 0x4029d220,
-	0x87f4: 0x4029d420, 0x87f5: 0x4029d620, 0x87f6: 0x4029d820, 0x87f7: 0x4029da20,
-	0x87f8: 0x4029dc20, 0x87f9: 0x4029de20, 0x87fa: 0x40026c20, 0x87fb: 0x40026220,
-	0x87fc: 0x40094020, 0x87fd: 0x40094220, 0x87fe: 0x40094420, 0x87ff: 0x4002c420,
-	// Block 0x220, offset 0x8800
-	0x8800: 0x4004d620, 0x8801: 0x002bde88, 0x8802: 0x002c0a88, 0x8803: 0x002c3a88,
-	0x8804: 0x002c6288, 0x8805: 0x002c9888, 0x8806: 0x002d0888, 0x8807: 0x002d2288,
-	0x8808: 0x002d6888, 0x8809: 0x002d9a88, 0x880a: 0x002dcc88, 0x880b: 0x002dfe88,
-	0x880c: 0xc0030002, 0x880d: 0x002e8288, 0x880e: 0xc53a2761, 0x880f: 0x002ee288,
-	0x8810: 0x002f2c88, 0x8811: 0x002f5688, 0x8812: 0x002f7a88, 0x8813: 0x002fe688,
-	0x8814: 0x00302c88, 0x8815: 0x00306c88, 0x8816: 0x0030be88, 0x8817: 0x0030e288,
-	0x8818: 0x0030f688, 0x8819: 0x00310088, 0x881a: 0x00312a88, 0x881b: 0x4003f820,
-	0x881c: 0x4004e420, 0x881d: 0x4003fa20, 0x881e: 0x40062420, 0x881f: 0x40021620,
-	0x8820: 0x40061e20, 0x8821: 0x402bde20, 0x8822: 0x402c0a20, 0x8823: 0x402c3a20,
-	0x8824: 0x402c6220, 0x8825: 0x402c9820, 0x8826: 0x402d0820, 0x8827: 0x402d2220,
-	0x8828: 0x402d6820, 0x8829: 0x402d9a20, 0x882a: 0x402dcc20, 0x882b: 0x402dfe20,
-	0x882c: 0xc0000002, 0x882d: 0x402e8220, 0x882e: 0xc5272761, 0x882f: 0x402ee220,
-	0x8830: 0x402f2c20, 0x8831: 0x402f5620, 0x8832: 0x402f7a20, 0x8833: 0x402fe620,
-	0x8834: 0x40302c20, 0x8835: 0x40306c20, 0x8836: 0x4030be20, 0x8837: 0x4030e220,
-	0x8838: 0x4030f620, 0x8839: 0x40310020, 0x883a: 0x40312a20, 0x883b: 0x4003fc20,
-	0x883c: 0x40094820, 0x883d: 0x4003fe20, 0x883e: 0x40094c20, 0x883f: 0xa0000000,
-	// Block 0x221, offset 0x8840
-	0x8840: 0xe00008f5, 0x8841: 0xe00008ef, 0x8842: 0xe0000921, 0x8843: 0xe0000969,
-	0x8844: 0xe000095b, 0x8845: 0xe000094d, 0x8846: 0xe00009dd, 0x8847: 0xe0000a53,
-	0x8848: 0xe0000ae8, 0x8849: 0xe0000ae2, 0x884a: 0xe0000af4, 0x884b: 0xe0000b20,
-	0x884c: 0xe0000c2b, 0x884d: 0xe0000c25, 0x884e: 0xe0000c37, 0x884f: 0xe0000c43,
-	0x8850: 0xe0000ab3, 0x8851: 0x002ea083, 0x8852: 0xe0000d9a, 0x8853: 0xe0000d94,
-	0x8854: 0xe0000da6, 0x8855: 0xe0000de6, 0x8856: 0xe0000dd2, 0x8857: 0x40093e20,
-	0x8858: 0xe0000e12, 0x8859: 0xe0000fe1, 0x885a: 0xe0000fdb, 0x885b: 0xe0000fed,
-	0x885c: 0xe0000fff, 0x885d: 0xe0001102, 0x885e: 0x00318888, 0x885f: 0xe0000f7b,
-	0x8860: 0xe00008f2, 0x8861: 0xe00008ec, 0x8862: 0xe000091e, 0x8863: 0xe0000966,
-	0x8864: 0xe0000958, 0x8865: 0xe000094a, 0x8866: 0xe00009d5, 0x8867: 0xe0000a4d,
-	0x8868: 0xe0000ae5, 0x8869: 0xe0000adf, 0x886a: 0xe0000af1, 0x886b: 0xe0000b1d,
-	0x886c: 0xe0000c28, 0x886d: 0xe0000c22, 0x886e: 0xe0000c34, 0x886f: 0xe0000c40,
-	0x8870: 0xe0000aad, 0x8871: 0x402ea020, 0x8872: 0xe0000d97, 0x8873: 0xe0000d91,
-	0x8874: 0xe0000da3, 0x8875: 0xe0000de3, 0x8876: 0xe0000dcf, 0x8877: 0x40093c20,
-	0x8878: 0xe0000e0f, 0x8879: 0xe0000fde, 0x887a: 0xe0000fd8, 0x887b: 0xe0000fea,
-	0x887c: 0xe0000ffc, 0x887d: 0xe00010ff, 0x887e: 0x40318820, 0x887f: 0xe0001114,
-	// Block 0x222, offset 0x8880
-	0x8880: 0xa0000000, 0x8881: 0xa0000000, 0x8882: 0xa0000000, 0x8883: 0xa0000000,
-	0x8884: 0xa0000000, 0x8885: 0xa0000000, 0x8886: 0xa0000000, 0x8887: 0xa0000000,
-	0x8888: 0xa0000000, 0x8889: 0x40020020, 0x888a: 0x40020220, 0x888b: 0x40020420,
-	0x888c: 0x40020620, 0x888d: 0x40020820, 0x888e: 0xa0000000, 0x888f: 0xa0000000,
-	0x8890: 0xa0000000, 0x8891: 0xa0000000, 0x8892: 0xa0000000, 0x8893: 0xa0000000,
-	0x8894: 0xa0000000, 0x8895: 0xa0000000, 0x8896: 0xa0000000, 0x8897: 0xa0000000,
-	0x8898: 0xa0000000, 0x8899: 0xa0000000, 0x889a: 0xa0000000, 0x889b: 0xa0000000,
-	0x889c: 0xa0000000, 0x889d: 0xa0000000, 0x889e: 0xa0000000, 0x889f: 0xa0000000,
-	0x88a0: 0x40021220, 0x88a1: 0x4002ba20, 0x88a2: 0x4003e020, 0x88a3: 0x4004ea20,
-	0x88a4: 0x4027de20, 0x88a5: 0x4004ec20, 0x88a6: 0x4004e620, 0x88a7: 0x4003d220,
-	0x88a8: 0x4003f420, 0x88a9: 0x4003f620, 0x88aa: 0x4004d820, 0x88ab: 0x40093820,
-	0x88ac: 0x40024020, 0x88ad: 0x40021a20, 0x88ae: 0x4002e420, 0x88af: 0x4004e220,
-	0x88b0: 0x4029cc20, 0x88b1: 0x4029ce20, 0x88b2: 0x4029d020, 0x88b3: 0x4029d220,
-	0x88b4: 0x4029d420, 0x88b5: 0x4029d620, 0x88b6: 0x4029d820, 0x88b7: 0x4029da20,
-	0x88b8: 0x4029dc20, 0x88b9: 0x4029de20, 0x88ba: 0x40026c20, 0x88bb: 0x40026220,
-	0x88bc: 0x40094020, 0x88bd: 0x40094220, 0x88be: 0x40094420, 0x88bf: 0x4002c420,
-	// Block 0x223, offset 0x88c0
-	0x88c0: 0x4004d620, 0x88c1: 0xc54c0071, 0x88c2: 0x002c0a88, 0x88c3: 0x002c3a88,
-	0x88c4: 0x002c6288, 0x88c5: 0x002c9888, 0x88c6: 0x002d0888, 0x88c7: 0x002d2288,
-	0x88c8: 0x002d6888, 0x88c9: 0x002d9a88, 0x88ca: 0x002dcc88, 0x88cb: 0x002dfe88,
-	0x88cc: 0xc0030002, 0x88cd: 0x002e8288, 0x88ce: 0x002e9e88, 0x88cf: 0xc5472781,
-	0x88d0: 0x002f2c88, 0x88d1: 0x002f5688, 0x88d2: 0x002f7a88, 0x88d3: 0xc53e0991,
-	0x88d4: 0x00302c88, 0x88d5: 0xc5500071, 0x88d6: 0x0030be88, 0x88d7: 0x0030bea3,
-	0x88d8: 0x0030f688, 0x88d9: 0x00310088, 0x88da: 0xc5420991, 0x88db: 0x4003f820,
-	0x88dc: 0x4004e420, 0x88dd: 0x4003fa20, 0x88de: 0x40062420, 0x88df: 0x40021620,
-	0x88e0: 0x40061e20, 0x88e1: 0xc54a0071, 0x88e2: 0x402c0a20, 0x88e3: 0x402c3a20,
-	0x88e4: 0x402c6220, 0x88e5: 0x402c9820, 0x88e6: 0x402d0820, 0x88e7: 0x402d2220,
-	0x88e8: 0x402d6820, 0x88e9: 0x402d9a20, 0x88ea: 0x402dcc20, 0x88eb: 0x402dfe20,
-	0x88ec: 0xc0000002, 0x88ed: 0x402e8220, 0x88ee: 0x402e9e20, 0x88ef: 0xc5442781,
-	0x88f0: 0x402f2c20, 0x88f1: 0x402f5620, 0x88f2: 0x402f7a20, 0x88f3: 0xc53c0991,
-	0x88f4: 0x40302c20, 0x88f5: 0xc54e0071, 0x88f6: 0x4030be20, 0x88f7: 0x4030be21,
-	0x88f8: 0x4030f620, 0x88f9: 0x40310020, 0x88fa: 0xc5400991, 0x88fb: 0x4003fc20,
-	0x88fc: 0x40094820, 0x88fd: 0x4003fe20, 0x88fe: 0x40094c20, 0x88ff: 0xa0000000,
-	// Block 0x224, offset 0x8900
-	0x8900: 0xe00008f5, 0x8901: 0xe00008ef, 0x8902: 0xe0000921, 0x8903: 0xe0000969,
-	0x8904: 0x0030f083, 0x8905: 0xe000094d, 0x8906: 0xe00009dd, 0x8907: 0xe0000a53,
-	0x8908: 0xe0000ae8, 0x8909: 0xe0000ae2, 0x890a: 0xe0000af4, 0x890b: 0xe0000b20,
-	0x890c: 0xe0000c2b, 0x890d: 0xe0000c25, 0x890e: 0xe0000c37, 0x890f: 0xe0000c43,
-	0x8910: 0xe0000ab3, 0x8911: 0xe0000d63, 0x8912: 0xe0000d9a, 0x8913: 0xe0000d94,
-	0x8914: 0xe0000da6, 0x8915: 0x0030ee83, 0x8916: 0x0030f283, 0x8917: 0x40093e20,
-	0x8918: 0xe0000e12, 0x8919: 0xe0000fe1, 0x891a: 0xe0000fdb, 0x891b: 0xe0000fed,
-	0x891c: 0x0030f483, 0x891d: 0xe0001102, 0x891e: 0x00318888, 0x891f: 0xe0000f7b,
-	0x8920: 0xe00008f2, 0x8921: 0xe00008ec, 0x8922: 0xe000091e, 0x8923: 0xe0000966,
-	0x8924: 0x4030f020, 0x8925: 0xe000094a, 0x8926: 0xe00009d5, 0x8927: 0xe0000a4d,
-	0x8928: 0xe0000ae5, 0x8929: 0xe0000adf, 0x892a: 0xe0000af1, 0x892b: 0xe0000b1d,
-	0x892c: 0xe0000c28, 0x892d: 0xe0000c22, 0x892e: 0xe0000c34, 0x892f: 0xe0000c40,
-	0x8930: 0xe0000aad, 0x8931: 0xe0000d60, 0x8932: 0xe0000d97, 0x8933: 0xe0000d91,
-	0x8934: 0xe0000da3, 0x8935: 0x4030ee20, 0x8936: 0x4030f220, 0x8937: 0x40093c20,
-	0x8938: 0xe0000e0f, 0x8939: 0xe0000fde, 0x893a: 0xe0000fd8, 0x893b: 0xe0000fea,
-	0x893c: 0x4030f420, 0x893d: 0xe00010ff, 0x893e: 0x40318820, 0x893f: 0xe0001114,
-	// Block 0x225, offset 0x8940
-	0x8940: 0xe0000cfe, 0x8941: 0xe0000cf8, 0x8942: 0xe0000cf5, 0x8943: 0xe0000d51,
-	0x8944: 0xe0000d4e, 0x8945: 0xe0000d6f, 0x8946: 0xe0000d6c, 0x8947: 0xe0000d5d,
-	0x8948: 0xe0000d5a, 0x8949: 0xf0000404, 0x894a: 0x002eda88, 0x894b: 0x402eda20,
-	0x894c: 0xe0000e2e, 0x894d: 0xe0000e2b, 0x894e: 0xe0000da0, 0x894f: 0xe0000d9d,
-	0x8950: 0xe0000de0, 0x8951: 0xe0000ddd, 0x8952: 0xe0000e93, 0x8953: 0xe0000e8f,
-	0x8954: 0xe0000eca, 0x8955: 0xe0000ec7, 0x8956: 0xe0000edc, 0x8957: 0xe0000ed9,
-	0x8958: 0xe0000ed0, 0x8959: 0xe0000ecd, 0x895a: 0xe0000f1f, 0x895b: 0xe0000f1c,
-	0x895c: 0xe0000f2d, 0x895d: 0xe0000f2a, 0x895e: 0xe0000f47, 0x895f: 0xe0000f44,
-	0x8960: 0x00302683, 0x8961: 0x40302620, 0x8962: 0xe0000f99, 0x8963: 0xe0000f96,
-	0x8964: 0xe0000f8a, 0x8965: 0xe0000f87, 0x8966: 0x00303688, 0x8967: 0x40303620,
-	0x8968: 0xe000102b, 0x8969: 0xe0001028, 0x896a: 0xe000103f, 0x896b: 0xe000103c,
-	0x896c: 0xe0000fe7, 0x896d: 0xe0000fe4, 0x896e: 0xe0000ff9, 0x896f: 0xe0000ff6,
-	0x8970: 0xe0001025, 0x8971: 0xe0001022, 0x8972: 0xe0001039, 0x8973: 0xe0001036,
-	0x8974: 0xe000312b, 0x8975: 0xe0003128, 0x8976: 0xe000110e, 0x8977: 0xe000110b,
-	0x8978: 0xe0001117, 0x8979: 0xe0003101, 0x897a: 0xe00030fe, 0x897b: 0xe000310d,
-	0x897c: 0xe000310a, 0x897d: 0x00302a83, 0x897e: 0x40302a20, 0x897f: 0xe0000f64,
-	// Block 0x226, offset 0x8980
-	0x8980: 0x40321220, 0x8981: 0x40321a20, 0x8982: 0x40322220, 0x8983: 0x40322a20,
-	0x8984: 0xe0000ad5, 0x8985: 0xe0000ad1, 0x8986: 0xe0000acd, 0x8987: 0xf0000a0a,
-	0x8988: 0xf000040a, 0x8989: 0xf0000404, 0x898a: 0xf0000a0a, 0x898b: 0xf000040a,
-	0x898c: 0xf0000404, 0x898d: 0xe0000947, 0x898e: 0xe0000944, 0x898f: 0xe0000c3d,
-	0x8990: 0xe0000c3a, 0x8991: 0xe0000dcc, 0x8992: 0xe0000dc9, 0x8993: 0xe0000ff3,
-	0x8994: 0xe0000ff0, 0x8995: 0xe0003182, 0x8996: 0xe000317f, 0x8997: 0xe0003170,
-	0x8998: 0xe000316d, 0x8999: 0xe000317c, 0x899a: 0xe0003179, 0x899b: 0xe0003176,
-	0x899c: 0xe0003173, 0x899d: 0x402cae20, 0x899e: 0xe0003164, 0x899f: 0xe0003161,
-	0x89a0: 0xe0000976, 0x89a1: 0xe0000972, 0x89a2: 0xe00009f4, 0x89a3: 0xe00009ef,
-	0x89a4: 0x002d3a88, 0x89a5: 0x402d3a20, 0x89a6: 0xe0000bbe, 0x89a7: 0xe0000bbb,
-	0x89a8: 0xe0000c99, 0x89a9: 0xe0000c96, 0x89aa: 0xe0000e20, 0x89ab: 0xe0000e1d,
-	0x89ac: 0xe0000e27, 0x89ad: 0xe0000e23, 0x89ae: 0xe0001162, 0x89af: 0xe000115f,
-	0x89b0: 0xe0000c8d, 0x89b1: 0xe0002fe2, 0x89b2: 0xe0002fdf, 0x89b3: 0xe0002fdc,
-	0x89b4: 0xe0000bac, 0x89b5: 0xe0000ba9, 0x89b6: 0x002d7888, 0x89b7: 0x00319488,
-	0x89b8: 0xe0000d57, 0x89b9: 0xe0000d54, 0x89ba: 0xe0000954, 0x89bb: 0xe0000950,
-	0x89bc: 0xe00009ea, 0x89bd: 0xe00009e5, 0x89be: 0xe0000e19, 0x89bf: 0xe0000e15,
-	// Block 0x227, offset 0x89c0
-	0x89c0: 0xe000098f, 0x89c1: 0xe000098c, 0x89c2: 0xe0000995, 0x89c3: 0xe0000992,
-	0x89c4: 0xe0000b62, 0x89c5: 0xe0000b5f, 0x89c6: 0xe0000b68, 0x89c7: 0xe0000b65,
-	0x89c8: 0xe0000c6c, 0x89c9: 0xe0000c69, 0x89ca: 0xe0000c72, 0x89cb: 0xe0000c6f,
-	0x89cc: 0xe0000e4a, 0x89cd: 0xe0000e47, 0x89ce: 0xe0000e50, 0x89cf: 0xe0000e4d,
-	0x89d0: 0xe0000ee8, 0x89d1: 0xe0000ee5, 0x89d2: 0xe0000eee, 0x89d3: 0xe0000eeb,
-	0x89d4: 0xe0001053, 0x89d5: 0xe0001050, 0x89d6: 0xe0001059, 0x89d7: 0xe0001056,
-	0x89d8: 0xe0000f61, 0x89d9: 0xe0000f5e, 0x89da: 0xe0000fa5, 0x89db: 0xe0000fa2,
-	0x89dc: 0x00312288, 0x89dd: 0x40312220, 0x89de: 0xe0000bf4, 0x89df: 0xe0000bf1,
-	0x89e0: 0x002ebc88, 0x89e1: 0x402c8c20, 0x89e2: 0x002f2288, 0x89e3: 0x402f2220,
-	0x89e4: 0x00314088, 0x89e5: 0x40314020, 0x89e6: 0xe000096f, 0x89e7: 0xe000096c,
-	0x89e8: 0xe0000b32, 0x89e9: 0xe0000b2f, 0x89ea: 0xe000316a, 0x89eb: 0xe0003167,
-	0x89ec: 0xe0003158, 0x89ed: 0xe0003155, 0x89ee: 0xe0000e04, 0x89ef: 0xe0000e01,
-	0x89f0: 0xe0000e0b, 0x89f1: 0xe0000e07, 0x89f2: 0xe0001129, 0x89f3: 0xe0001126,
-	0x89f4: 0x402e5e20, 0x89f5: 0x402ed020, 0x89f6: 0x40305a20, 0x89f7: 0x402dd420,
-	0x89f8: 0xe0000abf, 0x89f9: 0xe0000ec4, 0x89fa: 0x002be888, 0x89fb: 0x002c4488,
-	0x89fc: 0x402c4420, 0x89fd: 0x002e3888, 0x89fe: 0x00303e88, 0x89ff: 0x402ffc20,
-	// Block 0x228, offset 0x8a00
-	0x8a00: 0xe0000d24, 0x8a01: 0xe0000d21, 0x8a02: 0xe0000d2a, 0x8a03: 0xe0000d27,
-	0x8a04: 0xe0000d69, 0x8a05: 0xe0000d66, 0x8a06: 0xe0000d7b, 0x8a07: 0xe0000d78,
-	0x8a08: 0xe0000d87, 0x8a09: 0xe0000d84, 0x8a0a: 0xe0000d81, 0x8a0b: 0xe0000d7e,
-	0x8a0c: 0xe0003146, 0x8a0d: 0xe0003143, 0x8a0e: 0xe0003152, 0x8a0f: 0xe000314f,
-	0x8a10: 0xe0000e3d, 0x8a11: 0xe0000e39, 0x8a12: 0xe0000e35, 0x8a13: 0xe0000e31,
-	0x8a14: 0xe0000ea7, 0x8a15: 0xe0000ea4, 0x8a16: 0xe0000ead, 0x8a17: 0xe0000eaa,
-	0x8a18: 0xe0000ed6, 0x8a19: 0xe0000ed3, 0x8a1a: 0xe0000ef4, 0x8a1b: 0xe0000ef1,
-	0x8a1c: 0xe0000efb, 0x8a1d: 0xe0000ef7, 0x8a1e: 0xe0000f02, 0x8a1f: 0xe0000eff,
-	0x8a20: 0xe0000f41, 0x8a21: 0xe0000f3e, 0x8a22: 0xe0000f53, 0x8a23: 0xe0000f50,
-	0x8a24: 0xe0000f26, 0x8a25: 0xe0000f22, 0x8a26: 0xe00030fb, 0x8a27: 0xe00030f8,
-	0x8a28: 0xe0000f5a, 0x8a29: 0xe0000f56, 0x8a2a: 0xe0000f93, 0x8a2b: 0xe0000f90,
-	0x8a2c: 0xe0000f9f, 0x8a2d: 0xe0000f9c, 0x8a2e: 0xe0000fb1, 0x8a2f: 0xe0000fae,
-	0x8a30: 0xe0000fab, 0x8a31: 0xe0000fa8, 0x8a32: 0xe0001093, 0x8a33: 0xe0001090,
-	0x8a34: 0xe000109f, 0x8a35: 0xe000109c, 0x8a36: 0xe0001099, 0x8a37: 0xe0001096,
-	0x8a38: 0xe0001032, 0x8a39: 0xe000102e, 0x8a3a: 0xe0003182, 0x8a3b: 0xe000317f,
-	0x8a3c: 0xe00010a9, 0x8a3d: 0xe00010a6, 0x8a3e: 0xe00010af, 0x8a3f: 0xe00010ac,
-	// Block 0x229, offset 0x8a40
-	0x8a40: 0xe0003125, 0x8a41: 0xe0003122, 0x8a42: 0xe000311f, 0x8a43: 0xe000311c,
-	0x8a44: 0xe0003134, 0x8a45: 0xe0003131, 0x8a46: 0xe000313a, 0x8a47: 0xe0003137,
-	0x8a48: 0xe0003140, 0x8a49: 0xe000313d, 0x8a4a: 0xe00010fc, 0x8a4b: 0xe00010f9,
-	0x8a4c: 0xe00010f6, 0x8a4d: 0xe00010f3, 0x8a4e: 0xe0001123, 0x8a4f: 0xe0001120,
-	0x8a50: 0xe0003107, 0x8a51: 0xe0003104, 0x8a52: 0xe0003113, 0x8a53: 0xe0003110,
-	0x8a54: 0xe0003119, 0x8a55: 0xe0003116, 0x8a56: 0xe0000c15, 0x8a57: 0xe0000f8d,
-	0x8a58: 0xe000312e, 0x8a59: 0xe0001111, 0x8a5a: 0xf0000404, 0x8a5b: 0xe0000f70,
-	0x8a5c: 0x40300420, 0x8a5d: 0x40300620, 0x8a5e: 0xe0000f7f, 0x8a5f: 0x402c9620,
-	0x8a60: 0xe000099b, 0x8a61: 0xe0000998, 0x8a62: 0xe0000989, 0x8a63: 0xe0000986,
-	0x8a64: 0xe0000928, 0x8a65: 0xe0000924, 0x8a66: 0xe0000930, 0x8a67: 0xe000092c,
-	0x8a68: 0xe0000940, 0x8a69: 0xe000093c, 0x8a6a: 0xe0000938, 0x8a6b: 0xe0000934,
-	0x8a6c: 0xe00009aa, 0x8a6d: 0xe00009a6, 0x8a6e: 0xe0000902, 0x8a6f: 0xe00008fe,
-	0x8a70: 0xe000090a, 0x8a71: 0xe0000906, 0x8a72: 0xe000091a, 0x8a73: 0xe0000916,
-	0x8a74: 0xe0000912, 0x8a75: 0xe000090e, 0x8a76: 0xe00009a2, 0x8a77: 0xe000099e,
-	0x8a78: 0xe0000b6e, 0x8a79: 0xe0000b6b, 0x8a7a: 0xe0000b5c, 0x8a7b: 0xe0000b59,
-	0x8a7c: 0xe0000b26, 0x8a7d: 0xe0000b23, 0x8a7e: 0xe0000afb, 0x8a7f: 0xe0000af7,
-	// Block 0x22a, offset 0x8a80
-	0x8a80: 0xe0000b03, 0x8a81: 0xe0000aff, 0x8a82: 0xe0000b13, 0x8a83: 0xe0000b0f,
-	0x8a84: 0xe0000b0b, 0x8a85: 0xe0000b07, 0x8a86: 0xe0000b75, 0x8a87: 0xe0000b71,
-	0x8a88: 0xe0000c66, 0x8a89: 0xe0000c63, 0x8a8a: 0xe0000c78, 0x8a8b: 0xe0000c75,
-	0x8a8c: 0xe0000e84, 0x8a8d: 0xe0000e81, 0x8a8e: 0xe0000e44, 0x8a8f: 0xe0000e41,
-	0x8a90: 0xe0000dad, 0x8a91: 0xe0000da9, 0x8a92: 0xe0000db5, 0x8a93: 0xe0000db1,
-	0x8a94: 0xe0000dc5, 0x8a95: 0xe0000dc1, 0x8a96: 0xe000314c, 0x8a97: 0xe0003149,
-	0x8a98: 0xe0000e8b, 0x8a99: 0xe0000e87, 0x8a9a: 0xe0000e5d, 0x8a9b: 0xe0000e59,
-	0x8a9c: 0xe0000e65, 0x8a9d: 0xe0000e61, 0x8a9e: 0xe0000e75, 0x8a9f: 0xe0000e71,
-	0x8aa0: 0xe000315e, 0x8aa1: 0xe000315b, 0x8aa2: 0xe0000e7d, 0x8aa3: 0xe0000e79,
-	0x8aa4: 0xe000108d, 0x8aa5: 0xe000108a, 0x8aa6: 0xe000104d, 0x8aa7: 0xe000104a,
-	0x8aa8: 0xe0001066, 0x8aa9: 0xe0001062, 0x8aaa: 0xe000106e, 0x8aab: 0xe000106a,
-	0x8aac: 0xe000107e, 0x8aad: 0xe000107a, 0x8aae: 0xe0001076, 0x8aaf: 0xe0001072,
-	0x8ab0: 0xe0001086, 0x8ab1: 0xe0001082, 0x8ab2: 0xe0001108, 0x8ab3: 0xe0001105,
-	0x8ab4: 0xe0001135, 0x8ab5: 0xe0001132, 0x8ab6: 0xe000112f, 0x8ab7: 0xe000112c,
-	0x8ab8: 0xe000111d, 0x8ab9: 0xe000111a, 0x8aba: 0xe0000d0a, 0x8abb: 0xe0000d07,
-	0x8abc: 0x0030d888, 0x8abd: 0x4030d820, 0x8abe: 0x00312088, 0x8abf: 0x40312020,
-	// Block 0x22b, offset 0x8ac0
-	0x8ac0: 0xe0000024, 0x8ac1: 0xe0000029, 0x8ac2: 0xe000002e, 0x8ac3: 0xe0000033,
-	0x8ac4: 0xe0000038, 0x8ac5: 0xe000003d, 0x8ac6: 0xe0000042, 0x8ac7: 0xe0000047,
-	0x8ac8: 0xf0001f04, 0x8ac9: 0xf0001f04, 0x8aca: 0xf0001f04, 0x8acb: 0xf0001f04,
-	0x8acc: 0xf0001f04, 0x8acd: 0xf0001f04, 0x8ace: 0xf0001f04, 0x8acf: 0xf0001f04,
-	0x8ad0: 0xf0001f04, 0x8ad1: 0xf0000404, 0x8ad2: 0xf0000404, 0x8ad3: 0xf0000404,
-	0x8ad4: 0xf0000404, 0x8ad5: 0xf0000404, 0x8ad6: 0xf0000404, 0x8ad7: 0xf0000404,
-	0x8ad8: 0xf0000404, 0x8ad9: 0xf0000404, 0x8ada: 0xf0000404, 0x8adb: 0xf0000404,
-	0x8adc: 0xf0000404, 0x8add: 0xf0000404, 0x8ade: 0xf0000404, 0x8adf: 0xf0000404,
-	0x8ae0: 0xf0000404, 0x8ae1: 0xf0000404, 0x8ae2: 0xf0000404, 0x8ae3: 0xf0000404,
-	0x8ae4: 0xf0000404, 0x8ae5: 0xf0000404, 0x8ae6: 0xf0000404, 0x8ae7: 0xf0000404,
-	0x8ae8: 0xf0000404, 0x8ae9: 0xf0000404, 0x8aea: 0xf0000404, 0x8aeb: 0xf0000404,
-	0x8aec: 0xf0000404, 0x8aed: 0xf0000404, 0x8aee: 0xf0000404, 0x8aef: 0xf0000404,
-	0x8af0: 0xf0000404, 0x8af1: 0xf0000404, 0x8af2: 0xe000287c, 0x8af3: 0xf0000404,
-	0x8af4: 0xf0000404, 0x8af5: 0xe000288c, 0x8af6: 0x002bde8c, 0x8af7: 0x002c0a8c,
-	0x8af8: 0x002c3a8c, 0x8af9: 0x002c628c, 0x8afa: 0x002c988c, 0x8afb: 0x002d088c,
-	0x8afc: 0x002d228c, 0x8afd: 0x002d688c, 0x8afe: 0x002d9a8c, 0x8aff: 0x002dcc8c,
-	// Block 0x22c, offset 0x8b00
-	0x8b00: 0xf0001d1c, 0x8b01: 0xf0001d1c, 0x8b02: 0xf0001d1c, 0x8b03: 0xf0001d1c,
-	0x8b04: 0xf0001d1c, 0x8b05: 0xf0001d1d, 0x8b06: 0xf0001d1d, 0x8b07: 0xf0001d1d,
-	0x8b08: 0xe0000a6b, 0x8b09: 0xe0000cb4, 0x8b0a: 0xf0001d1c, 0x8b0b: 0xf0001d1c,
-	0x8b0c: 0xf0001d1c, 0x8b0d: 0xf0001c1c, 0x8b0e: 0xf0001c1c, 0x8b0f: 0xf0001c1c,
-	0x8b10: 0xe0003006, 0x8b11: 0xe0000cb9, 0x8b12: 0xe0000d36, 0x8b13: 0xe0000be3,
-	0x8b14: 0xe0000fc5, 0x8b15: 0xf0001c1c, 0x8b16: 0xf0001c1c, 0x8b17: 0xf0001c1c,
-	0x8b18: 0xf0001c1c, 0x8b19: 0xf0001c1c, 0x8b1a: 0xf0001c1c, 0x8b1b: 0xf0001c1c,
-	0x8b1c: 0xf0001c1c, 0x8b1d: 0xf0001c1c, 0x8b1e: 0xf0001c1c, 0x8b1f: 0xe0000d3e,
-	0x8b20: 0xe0000a72, 0x8b21: 0xf0001c1c, 0x8b22: 0xe0000cbd, 0x8b23: 0xe0000d42,
-	0x8b24: 0xe0000a76, 0x8b25: 0xf0001c1c, 0x8b26: 0xe0000cc1, 0x8b27: 0xe0000d2d,
-	0x8b28: 0xe0000d31, 0x8b29: 0xf0001c1d, 0x8b2a: 0xe0000cc5, 0x8b2b: 0xe0000d4a,
-	0x8b2c: 0xe0000be7, 0x8b2d: 0xe0000f0b, 0x8b2e: 0xe0000f0f, 0x8b2f: 0xe0000f15,
-	0x8b30: 0xf0001c1c, 0x8b31: 0xf0001c1c, 0x8b32: 0xf0001c1c, 0x8b33: 0xf0001c1c,
-	0x8b34: 0xf0001d1c, 0x8b35: 0xf0001d1c, 0x8b36: 0xf0001d1c, 0x8b37: 0xf0001d1c,
-	0x8b38: 0xf0001d1c, 0x8b39: 0xf0001d1d, 0x8b3a: 0xe00030b5, 0x8b3b: 0xe0003097,
-	0x8b3c: 0xe00030f5, 0x8b3d: 0xe0003073, 0x8b3e: 0xe0003034, 0x8b3f: 0xe0003076,
-	// Block 0x22d, offset 0x8b40
-	0x8b40: 0xf0001d1c, 0x8b41: 0xf0001d1d, 0x8b42: 0xe00009b7, 0x8b43: 0xf0001c1d,
-	0x8b44: 0xf0001c1c, 0x8b45: 0xf0001c1c, 0x8b46: 0xe0000a66, 0x8b47: 0xe0000a7a,
-	0x8b48: 0xf0001d1c, 0x8b49: 0xf0001c1d, 0x8b4a: 0xf0001c1c, 0x8b4b: 0xf0001d1d,
-	0x8b4c: 0xf0001c1c, 0x8b4d: 0xf0001d1d, 0x8b4e: 0xf0001d1d, 0x8b4f: 0xf0001c1c,
-	0x8b50: 0xf0001c1c, 0x8b51: 0xf0001c1c, 0x8b52: 0xe0000d0d, 0x8b53: 0xf0001c1c,
-	0x8b54: 0xf0001c1c, 0x8b55: 0xe0000d3a, 0x8b56: 0xe0000d46, 0x8b57: 0xf0001d1d,
-	0x8b58: 0xe0000eb0, 0x8b59: 0xe0000eb8, 0x8b5a: 0xf0001d1d, 0x8b5b: 0xf0001c1c,
-	0x8b5c: 0xf0001c1d, 0x8b5d: 0xe00030d4, 0x8b5e: 0xe00010b2, 0x8b5f: 0xe00009c8,
-	0x8b60: 0xf0001f04, 0x8b61: 0xf0001f04, 0x8b62: 0xf0001f04, 0x8b63: 0xf0001f04,
-	0x8b64: 0xf0001f04, 0x8b65: 0xf0001f04, 0x8b66: 0xf0001f04, 0x8b67: 0xf0001f04,
-	0x8b68: 0xf0001f04, 0x8b69: 0xf0000404, 0x8b6a: 0xf0000404, 0x8b6b: 0xf0000404,
-	0x8b6c: 0xf0000404, 0x8b6d: 0xf0000404, 0x8b6e: 0xf0000404, 0x8b6f: 0xf0000404,
-	0x8b70: 0xf0000404, 0x8b71: 0xf0000404, 0x8b72: 0xf0000404, 0x8b73: 0xf0000404,
-	0x8b74: 0xf0000404, 0x8b75: 0xf0000404, 0x8b76: 0xf0000404, 0x8b77: 0xf0000404,
-	0x8b78: 0xf0000404, 0x8b79: 0xf0000404, 0x8b7a: 0xf0000404, 0x8b7b: 0xf0000404,
-	0x8b7c: 0xf0000404, 0x8b7d: 0xf0000404, 0x8b7e: 0xf0000404, 0x8b7f: 0xe0000bdf,
-	// Block 0x22e, offset 0x8b80
-	0x8b80: 0xf0001f04, 0x8b81: 0xf0001f04, 0x8b82: 0xf0001f04, 0x8b83: 0xf0001f04,
-	0x8b84: 0xf0001f04, 0x8b85: 0xf0001f04, 0x8b86: 0xf0001f04, 0x8b87: 0xf0001f04,
-	0x8b88: 0xf0001f04, 0x8b89: 0xf0001f04, 0x8b8a: 0xf0001f04,
-	0x8b90: 0xf0000a04, 0x8b91: 0xf0000a04, 0x8b92: 0xf0000a04, 0x8b93: 0xf0000a04,
-	0x8b94: 0xf0000a04, 0x8b95: 0xf0000a04, 0x8b96: 0xf0000a04, 0x8b97: 0xf0000a04,
-	0x8b98: 0xf0000a04, 0x8b99: 0xf0000a04, 0x8b9a: 0xf0000a04, 0x8b9b: 0xf0000a04,
-	0x8b9c: 0xf0000a04, 0x8b9d: 0xf0000a04, 0x8b9e: 0xf0000a04, 0x8b9f: 0xf0000a04,
-	0x8ba0: 0xf0000a04, 0x8ba1: 0xf0000a04, 0x8ba2: 0xf0000a04, 0x8ba3: 0xf0000a04,
-	0x8ba4: 0xf0000a04, 0x8ba5: 0xf0000a04, 0x8ba6: 0xe0002880, 0x8ba7: 0xf0000a04,
-	0x8ba8: 0xf0000a04, 0x8ba9: 0xe0002890, 0x8baa: 0xf0000a04, 0x8bab: 0x002c3a8c,
-	0x8bac: 0x002f7a8c, 0x8bad: 0xf0000c0c, 0x8bae: 0xe00030da,
-	0x8bb0: 0x002bde9d, 0x8bb1: 0x002c0a9d, 0x8bb2: 0x002c3a9d, 0x8bb3: 0x002c629d,
-	0x8bb4: 0x002c989d, 0x8bb5: 0x002d089d, 0x8bb6: 0x002d229d, 0x8bb7: 0x002d689d,
-	0x8bb8: 0x002d9a9d, 0x8bb9: 0x002dcc9d, 0x8bba: 0x002dfe9d, 0x8bbb: 0x002e229d,
-	0x8bbc: 0x002e829d, 0x8bbd: 0x002e9e9d, 0x8bbe: 0x002ee29d, 0x8bbf: 0x002f2c9d,
-	// Block 0x22f, offset 0x8bc0
-	0x8bc0: 0x002f569d, 0x8bc1: 0x002f7a9d, 0x8bc2: 0x002fe69d, 0x8bc3: 0x00302c9d,
-	0x8bc4: 0x00306c9d, 0x8bc5: 0x0030be9d, 0x8bc6: 0x0030e29d, 0x8bc7: 0x0030f69d,
-	0x8bc8: 0x0031009d, 0x8bc9: 0x00312a9d, 0x8bca: 0xf0001d1d, 0x8bcb: 0xf0001d1d,
-	0x8bcc: 0xf0001d1d, 0x8bcd: 0xf0001d1d, 0x8bce: 0xe0000ebc, 0x8bcf: 0xe00030d7,
-	0x8bd0: 0x002bde8c, 0x8bd1: 0x002c0a8c, 0x8bd2: 0x002c3a8c, 0x8bd3: 0x002c628c,
-	0x8bd4: 0x002c988c, 0x8bd5: 0x002d088c, 0x8bd6: 0x002d228c, 0x8bd7: 0x002d688c,
-	0x8bd8: 0x002d9a8c, 0x8bd9: 0x002dcc8c, 0x8bda: 0x002dfe8c, 0x8bdb: 0x002e228c,
-	0x8bdc: 0x002e828c, 0x8bdd: 0x002e9e8c, 0x8bde: 0x002ee28c, 0x8bdf: 0x002f2c8c,
-	0x8be0: 0x002f568c, 0x8be1: 0x002f7a8c, 0x8be2: 0x002fe68c, 0x8be3: 0x00302c8c,
-	0x8be4: 0x00306c8c, 0x8be5: 0x0030be8c, 0x8be6: 0x0030e28c, 0x8be7: 0x0030f68c,
-	0x8be8: 0x0031008c, 0x8be9: 0x00312a8c, 0x8bea: 0xf0001414, 0x8beb: 0xf0001414,
-	0x8bf0: 0x002bde9d, 0x8bf1: 0x002c0a9d, 0x8bf2: 0x002c3a9d, 0x8bf3: 0x002c629d,
-	0x8bf4: 0x002c989d, 0x8bf5: 0x002d089d, 0x8bf6: 0x002d229d, 0x8bf7: 0x002d689d,
-	0x8bf8: 0x002d9a9d, 0x8bf9: 0x002dcc9d, 0x8bfa: 0x002dfe9d, 0x8bfb: 0x002e229d,
-	0x8bfc: 0x002e829d, 0x8bfd: 0x002e9e9d, 0x8bfe: 0x002ee29d, 0x8bff: 0x002f2c9d,
-	// Block 0x230, offset 0x8c00
-	0x8c00: 0xa0000000, 0x8c01: 0xa0000000, 0x8c02: 0xa0000000, 0x8c03: 0xa0000000,
-	0x8c04: 0xa0000000, 0x8c06: 0x40096620, 0x8c07: 0x40096a20,
-	0x8c08: 0x40070820, 0x8c09: 0x4004f220, 0x8c0a: 0x4004f620, 0x8c0b: 0x4027e620,
-	0x8c0c: 0x40024820, 0x8c0d: 0x40024a20, 0x8c0e: 0x40070e20, 0x8c0f: 0x40071020,
-	0x8c10: 0xae600000, 0x8c11: 0xae600000, 0x8c12: 0xae600000, 0x8c13: 0xae600000,
-	0x8c14: 0xae600000, 0x8c15: 0xae600000, 0x8c16: 0xae600000, 0x8c17: 0xae600000,
-	0x8c18: 0xa1e00000, 0x8c19: 0xa1f00000, 0x8c1a: 0xa2000000, 0x8c1b: 0x40026420,
-	0x8c1e: 0x40027020, 0x8c1f: 0x4002cc20,
-	0x8c20: 0x403aa220, 0x8c21: 0x40393a20, 0x8c22: 0x40393620, 0x8c23: 0x40393a21,
-	0x8c24: 0x40393a25, 0x8c25: 0x40393a23, 0x8c26: 0x00393b44, 0x8c27: 0xc5520151,
-	0x8c28: 0x40393c20, 0x8c29: 0x403a8823, 0x8c2a: 0x40395620, 0x8c2b: 0x40395820,
-	0x8c2c: 0x40396420, 0x8c2d: 0x40397220, 0x8c2e: 0x40397420, 0x8c2f: 0x40398820,
-	0x8c30: 0x40398a20, 0x8c31: 0x4039a420, 0x8c32: 0x4039a620, 0x8c33: 0x4039c620,
-	0x8c34: 0x4039c820, 0x8c35: 0x4039dc20, 0x8c36: 0x4039de20, 0x8c37: 0x4039e620,
-	0x8c38: 0x4039e820, 0x8c39: 0x4039ee20, 0x8c3a: 0x4039f020, 0x8c3b: 0x403a3820,
-	0x8c3c: 0x403a3a20, 0x8c3d: 0x403a9c20, 0x8c3e: 0x403a9e20, 0x8c3f: 0x403aa020,
-	// Block 0x231, offset 0x8c40
-	0x8c40: 0xa0000000, 0x8c41: 0x4039fc20, 0x8c42: 0x403a1220, 0x8c43: 0x403a1c23,
-	0x8c44: 0x403a4020, 0x8c45: 0x403a4e20, 0x8c46: 0x403a5620, 0x8c47: 0x403a8820,
-	0x8c48: 0xc5560171, 0x8c49: 0xc55a0171, 0x8c4a: 0xc55c0171, 0x8c4b: 0xa000b002,
-	0x8c4c: 0xa000b202, 0x8c4d: 0xa000b102, 0x8c4e: 0xa1e0ad02, 0x8c4f: 0xa000af02,
-	0x8c50: 0xa000ae02, 0x8c51: 0xa210ba02, 0x8c52: 0xa220bc02, 0x8c53: 0xae60bd02,
-	0x8c54: 0xae60be02, 0x8c55: 0xadc0bf02, 0x8c56: 0xadc0c102, 0x8c57: 0xae60c202,
-	0x8c58: 0xae60c302, 0x8c59: 0xae60c402, 0x8c5a: 0xae60c502, 0x8c5b: 0xae60c602,
-	0x8c5c: 0xadc0c702, 0x8c5d: 0xae60c802, 0x8c5e: 0xae60c902, 0x8c5f: 0xadc0c002,
-	0x8c60: 0xe000015e, 0x8c61: 0xe00001e6, 0x8c62: 0xe0000301, 0x8c63: 0xe00003db,
-	0x8c64: 0xe00004b6, 0x8c65: 0xe0000580, 0x8c66: 0xe000064b, 0x8c67: 0xe00006f3,
-	0x8c68: 0xe000079f, 0x8c69: 0xe0000844, 0x8c6a: 0x4004ee20, 0x8c6b: 0x40024c20,
-	0x8c6c: 0x40024e20, 0x8c6d: 0x4004de20, 0x8c6e: 0x40393a20, 0x8c6f: 0x403a1020,
-	0x8c70: 0xa230d102, 0x8c71: 0x40393821, 0x8c72: 0x40393a22, 0x8c73: 0x40393a24,
-	0x8c74: 0x00391c84, 0x8c75: 0xf0000404, 0x8c76: 0xf0000404, 0x8c77: 0xf0000404,
-	0x8c78: 0xe0003275, 0x8c79: 0x40395a20, 0x8c7a: 0x40395c20, 0x8c7b: 0x40393e20,
-	0x8c7c: 0x40395e20, 0x8c7d: 0x40396020, 0x8c7e: 0x40394020, 0x8c7f: 0x40396220,
-	// Block 0x232, offset 0x8c80
-	0x8c80: 0x40394220, 0x8c81: 0x40397620, 0x8c82: 0x40397820, 0x8c83: 0x40396620,
-	0x8c84: 0x40396820, 0x8c85: 0x40397a20, 0x8c86: 0x40396a20, 0x8c87: 0x40396e20,
-	0x8c88: 0x40398c20, 0x8c89: 0x40398e20, 0x8c8a: 0x40399020, 0x8c8b: 0x40399220,
-	0x8c8c: 0x40399420, 0x8c8d: 0x40399620, 0x8c8e: 0x40399820, 0x8c8f: 0x40399a20,
-	0x8c90: 0x40399c20, 0x8c91: 0x4039a820, 0x8c92: 0x4039aa20, 0x8c93: 0x4039ac20,
-	0x8c94: 0x4039ae20, 0x8c95: 0x4039b020, 0x8c96: 0x4039b220, 0x8c97: 0x4039b420,
-	0x8c98: 0x4039b620, 0x8c99: 0x4039b820, 0x8c9a: 0x4039ca20, 0x8c9b: 0x4039cc20,
-	0x8c9c: 0x4039ce20, 0x8c9d: 0x4039e020, 0x8c9e: 0x4039e220, 0x8c9f: 0x4039ea20,
-	0x8ca0: 0x4039f220, 0x8ca1: 0x4039fe20, 0x8ca2: 0x403a0020, 0x8ca3: 0x403a0220,
-	0x8ca4: 0x403a0420, 0x8ca5: 0x403a0820, 0x8ca6: 0x403a0a20, 0x8ca7: 0x403a1420,
-	0x8ca8: 0x403a1620, 0x8ca9: 0x403a1c20, 0x8caa: 0x403a1c21, 0x8cab: 0x403a1c22,
-	0x8cac: 0x403a1c24, 0x8cad: 0x403a1c25, 0x8cae: 0x403a1c26, 0x8caf: 0x403a2a20,
-	0x8cb0: 0x403a2c20, 0x8cb1: 0x403a2e20, 0x8cb2: 0x403a3020, 0x8cb3: 0x403a3220,
-	0x8cb4: 0x403a3420, 0x8cb5: 0x403a4220, 0x8cb6: 0x403a4420, 0x8cb7: 0x403a4620,
-	0x8cb8: 0x403a4820, 0x8cb9: 0x403a6020, 0x8cba: 0x403a5820, 0x8cbb: 0x403a5a20,
-	0x8cbc: 0x403a5c20, 0x8cbd: 0x403a5e20, 0x8cbe: 0x403a8826, 0x8cbf: 0x40396c20,
-	// Block 0x233, offset 0x8cc0
-	0x8cc0: 0x403a8825, 0x8cc1: 0x403a8822, 0x8cc2: 0xe000326c, 0x8cc3: 0x403a8824,
-	0x8cc4: 0x403a7620, 0x8cc5: 0x403a7820, 0x8cc6: 0x403a7a20, 0x8cc7: 0x403a7c20,
-	0x8cc8: 0x403a7e20, 0x8cc9: 0x403a8020, 0x8cca: 0x403a8220, 0x8ccb: 0x403a8420,
-	0x8ccc: 0xc5580171, 0x8ccd: 0x403a9226, 0x8cce: 0x403a9227, 0x8ccf: 0x403a8620,
-	0x8cd0: 0x403a9224, 0x8cd1: 0x403a9225, 0x8cd2: 0x403a9222, 0x8cd3: 0xe00032ab,
-	0x8cd4: 0x4002e820, 0x8cd5: 0xc55e0171, 0x8cd6: 0xae600000, 0x8cd7: 0xae600000,
-	0x8cd8: 0xae600000, 0x8cd9: 0xae600000, 0x8cda: 0xae600000, 0x8cdb: 0xae600000,
-	0x8cdc: 0xae600000, 0x8cdd: 0xa0000000, 0x8cde: 0x40071220, 0x8cdf: 0xae600000,
-	0x8ce0: 0xae600000, 0x8ce1: 0xae600000, 0x8ce2: 0xae600000, 0x8ce3: 0xadc00000,
-	0x8ce4: 0xae600000, 0x8ce5: 0x003a7484, 0x8ce6: 0x003a9084, 0x8ce7: 0xae600000,
-	0x8ce8: 0xae600000, 0x8ce9: 0x40071420, 0x8cea: 0xadc00000, 0x8ceb: 0xae600000,
-	0x8cec: 0xae600000, 0x8ced: 0xadc00000, 0x8cee: 0x40399e20, 0x8cef: 0x4039ba20,
-	0x8cf0: 0xe0000161, 0x8cf1: 0xe00001e9, 0x8cf2: 0xe0000304, 0x8cf3: 0xe00003de,
-	0x8cf4: 0xe00004b9, 0x8cf5: 0xe0000583, 0x8cf6: 0xe000064e, 0x8cf7: 0xe00006f6,
-	0x8cf8: 0xe00007a2, 0x8cf9: 0xe0000847, 0x8cfa: 0x4039d020, 0x8cfb: 0x4039e420,
-	0x8cfc: 0x4039f420, 0x8cfd: 0xe0001553, 0x8cfe: 0xe0001779, 0x8cff: 0x403a7020,
-	// Block 0x234, offset 0x8d00
-	0x8d00: 0x00396e97, 0x8d01: 0x00396e98, 0x8d02: 0x0039969a, 0x8d03: 0x00399699,
-	0x8d04: 0x0039949a, 0x8d05: 0x00399499, 0x8d06: 0x0039989a, 0x8d07: 0x00399899,
-	0x8d08: 0x00398c9a, 0x8d09: 0x00398c99, 0x8d0a: 0x0039b69a, 0x8d0b: 0x0039b699,
-	0x8d0c: 0x0039a89a, 0x8d0d: 0x0039a899, 0x8d0e: 0x003a1c9a, 0x8d0f: 0x003a1c99,
-	0x8d10: 0x003a1c97, 0x8d11: 0x003a1c98, 0x8d12: 0x003a2a9a, 0x8d13: 0x003a2a99,
-	0x8d14: 0x003a2a97, 0x8d15: 0x003a2a98, 0x8d16: 0x003a329a, 0x8d17: 0x003a3299,
-	0x8d18: 0x003a3297, 0x8d19: 0x003a3298, 0x8d1a: 0x003a2e9a, 0x8d1b: 0x003a2e99,
-	0x8d1c: 0x003a2e97, 0x8d1d: 0x003a2e98, 0x8d1e: 0x003a589a, 0x8d1f: 0x003a5899,
-	0x8d20: 0x003a5a9a, 0x8d21: 0x003a5a99, 0x8d22: 0x003a5a97, 0x8d23: 0x003a5a98,
-	0x8d24: 0xe0003269, 0x8d25: 0xe0003266, 0x8d26: 0x003a6c9a, 0x8d27: 0x003a6c99,
-	0x8d28: 0x003a6c97, 0x8d29: 0x003a6c98, 0x8d2a: 0x003a6a9a, 0x8d2b: 0x003a6a99,
-	0x8d2c: 0x003a6a97, 0x8d2d: 0x003a6a98, 0x8d2e: 0x003aaa9a, 0x8d2f: 0x003aaa99,
-	0x8d30: 0xe00032b1, 0x8d31: 0xe00032ae, 0x8d32: 0x40071820, 0x8d33: 0x40071a20,
-	0x8d34: 0x40071c20, 0x8d35: 0x40071e20, 0x8d36: 0x40072020, 0x8d37: 0x40072220,
-	0x8d38: 0x40072420, 0x8d39: 0x40072620, 0x8d3a: 0x40072820, 0x8d3b: 0x40072a20,
-	0x8d3c: 0x40072c20, 0x8d3d: 0x40072e20, 0x8d3e: 0x40073020, 0x8d3f: 0x40073220,
-	// Block 0x235, offset 0x8d40
-	0x8d40: 0xe000155f, 0x8d41: 0xe0001565, 0x8d42: 0xe000157a, 0x8d43: 0xe00015b0,
-	0x8d44: 0xe00015b6, 0x8d45: 0xf0001a1a, 0x8d46: 0xf0001a1a, 0x8d47: 0xf0001a1a,
-	0x8d48: 0xf0001a1a, 0x8d49: 0xe00024a2, 0x8d4a: 0xe000319a, 0x8d4b: 0xf0001a1a,
-	0x8d4c: 0xf0001a1a, 0x8d4d: 0xf0001a1a, 0x8d4e: 0xf0001a1a, 0x8d4f: 0xe00024a8,
-	0x8d50: 0xe00031a6, 0x8d51: 0xf0001a1a, 0x8d52: 0xf0001a1a, 0x8d53: 0xe00024ae,
-	0x8d54: 0xe00031af, 0x8d55: 0xf0001a1a, 0x8d56: 0xf0001a1a, 0x8d57: 0xf0001a1a,
-	0x8d58: 0xf0001a1a, 0x8d59: 0xf0001a1a, 0x8d5a: 0xf0001a1a, 0x8d5b: 0xf0001a1a,
-	0x8d5c: 0xf0001a1a, 0x8d5d: 0xf0001a1a, 0x8d5e: 0xf0001a1a, 0x8d5f: 0xf0001a1a,
-	0x8d60: 0xf0001a1a, 0x8d61: 0xf0001a1a, 0x8d62: 0xf0001a1a, 0x8d63: 0xf0001a1a,
-	0x8d64: 0xf0001a1a, 0x8d65: 0xf0001a1a, 0x8d66: 0xf0001a1a, 0x8d67: 0xf0001a1a,
-	0x8d68: 0xf0001a1a, 0x8d69: 0xf0001a1a, 0x8d6a: 0xf0001a1a, 0x8d6b: 0xf0001a1a,
-	0x8d6c: 0xf0001a1a, 0x8d6d: 0xf0001a1a, 0x8d6e: 0xf0001a1a, 0x8d6f: 0xf0001a1a,
-	0x8d70: 0xf0001a1a, 0x8d71: 0xe00024f0, 0x8d72: 0xe00031fd, 0x8d73: 0xf0001a1a,
-	0x8d74: 0xf0001a1a, 0x8d75: 0xe00024f6, 0x8d76: 0xe0003203, 0x8d77: 0xe0003209,
-	0x8d78: 0xe000320f, 0x8d79: 0xe0003215, 0x8d7a: 0xe000321b, 0x8d7b: 0xe0003227,
-	0x8d7c: 0xe0003233, 0x8d7d: 0xe00024fc, 0x8d7e: 0xe0003239, 0x8d7f: 0xf0001a1a,
-	// Block 0x236, offset 0x8d80
-	0x8d80: 0xf0001a1a, 0x8d81: 0xf0001a1a, 0x8d82: 0xf0001a1a, 0x8d83: 0xe0002502,
-	0x8d84: 0xe0003242, 0x8d85: 0xf0001a1a, 0x8d86: 0xf0001a1a, 0x8d87: 0xf0001a1a,
-	0x8d88: 0xf0001a1a, 0x8d89: 0xe0002505, 0x8d8a: 0xe0003245, 0x8d8b: 0xf0001a1a,
-	0x8d8c: 0xf0001a1a, 0x8d8d: 0xf0001a1a, 0x8d8e: 0xf0001a1a, 0x8d8f: 0xe000250b,
-	0x8d90: 0xe0003251, 0x8d91: 0xe000325a, 0x8d92: 0xe0003260, 0x8d93: 0xe000250e,
-	0x8d94: 0xe0003263, 0x8d95: 0xe000327b, 0x8d96: 0xe0003281, 0x8d97: 0xe0003287,
-	0x8d98: 0xe0003299, 0x8d99: 0xe0002514, 0x8d9a: 0xe00032a8, 0x8d9b: 0xf0001a1a,
-	0x8d9c: 0xf0001a1a, 0x8d9d: 0xe0003272, 0x8d9e: 0xe0000003, 0x8d9f: 0xe0000006,
-	0x8da0: 0xe0000009, 0x8da1: 0xe000000c, 0x8da2: 0xe000000f, 0x8da3: 0xe0000012,
-	0x8da4: 0xe000156b, 0x8da5: 0xe000156e, 0x8da6: 0xe0001577, 0x8da7: 0xe000157d,
-	0x8da8: 0xe00015aa, 0x8da9: 0xe00015b3, 0x8daa: 0xf0001919, 0x8dab: 0xf0001919,
-	0x8dac: 0xf0001919, 0x8dad: 0xf0001919, 0x8dae: 0xe000249f, 0x8daf: 0xe0003197,
-	0x8db0: 0xf0001919, 0x8db1: 0xf0001919, 0x8db2: 0xf0001919, 0x8db3: 0xf0001919,
-	0x8db4: 0xe00024a5, 0x8db5: 0xe00031a3, 0x8db6: 0xf0001919, 0x8db7: 0xf0001919,
-	0x8db8: 0xf0001919, 0x8db9: 0xf0001919, 0x8dba: 0xe00024ab, 0x8dbb: 0xe00031ac,
-	0x8dbc: 0xe00024ed, 0x8dbd: 0xe00031fa, 0x8dbe: 0xe00024f3, 0x8dbf: 0xe0003200,
-	// Block 0x237, offset 0x8dc0
-	0x8dc0: 0xe0003206, 0x8dc1: 0xe0003224, 0x8dc2: 0xe0003230, 0x8dc3: 0xe00024f9,
-	0x8dc4: 0xe0003236, 0x8dc5: 0xf0001919, 0x8dc6: 0xe00024ff, 0x8dc7: 0xe000323f,
-	0x8dc8: 0xf0001919, 0x8dc9: 0xf0001919, 0x8dca: 0xf0001919, 0x8dcb: 0xf0001919,
-	0x8dcc: 0xf0001919, 0x8dcd: 0xf0001919, 0x8dce: 0xe0002508, 0x8dcf: 0xe000324e,
-	0x8dd0: 0xe000326f, 0x8dd1: 0xe000328a, 0x8dd2: 0xe000328d, 0x8dd3: 0xe0003296,
-	0x8dd4: 0xe000329c, 0x8dd5: 0xe0002511, 0x8dd6: 0xe00032a5, 0x8dd7: 0xe000155c,
-	0x8dd8: 0xe0001562, 0x8dd9: 0xe0001568, 0x8dda: 0xe0001571, 0x8ddb: 0xe0001580,
-	0x8ddc: 0xf0001717, 0x8ddd: 0xf0001717, 0x8dde: 0xf0001717, 0x8ddf: 0xf0001717,
-	0x8de0: 0xe0003191, 0x8de1: 0xf0001717, 0x8de2: 0xf0001717, 0x8de3: 0xf0001717,
-	0x8de4: 0xf0001717, 0x8de5: 0xe000319d, 0x8de6: 0xf0001717, 0x8de7: 0xf0001717,
-	0x8de8: 0xf0001717, 0x8de9: 0xf0001717, 0x8dea: 0xf0001717, 0x8deb: 0xf0001717,
-	0x8dec: 0xf0001717, 0x8ded: 0xf0001717, 0x8dee: 0xf0001717, 0x8def: 0xf0001717,
-	0x8df0: 0xf0001717, 0x8df1: 0xf0001717, 0x8df2: 0xf0001717, 0x8df3: 0xf0001717,
-	0x8df4: 0xf0001717, 0x8df5: 0xf0001717, 0x8df6: 0xf0001717, 0x8df7: 0xf0001717,
-	0x8df8: 0xf0001717, 0x8df9: 0xf0001717, 0x8dfa: 0xf0001717, 0x8dfb: 0xf0001717,
-	0x8dfc: 0xf0001717, 0x8dfd: 0xf0001717, 0x8dfe: 0xf0001717, 0x8dff: 0xf0001717,
-	// Block 0x238, offset 0x8e00
-	0x8e00: 0xf0001717, 0x8e01: 0xf0001717, 0x8e02: 0xf0001717, 0x8e03: 0xf0001717,
-	0x8e04: 0xe000320c, 0x8e05: 0xe0003212, 0x8e06: 0xe0003218, 0x8e07: 0xe000321e,
-	0x8e08: 0xe000322a, 0x8e09: 0xf0001717, 0x8e0a: 0xf0001717, 0x8e0b: 0xf0001717,
-	0x8e0c: 0xf0001717, 0x8e0d: 0xe000323c, 0x8e0e: 0xf0001717, 0x8e0f: 0xf0001717,
-	0x8e10: 0xf0001717, 0x8e11: 0xf0001717, 0x8e12: 0xf0001717, 0x8e13: 0xf0001717,
-	0x8e14: 0xf0001717, 0x8e15: 0xf0001717, 0x8e16: 0xe0003248, 0x8e17: 0xe0003257,
-	0x8e18: 0xe000325d, 0x8e19: 0xe0003254, 0x8e1a: 0xe0003278, 0x8e1b: 0xe000327e,
-	0x8e1c: 0xe0003284, 0x8e1d: 0xe0003290, 0x8e1e: 0xe000329f, 0x8e1f: 0xe0001574,
-	0x8e20: 0xe0001583, 0x8e21: 0xf0001818, 0x8e22: 0xe0003194, 0x8e23: 0xf0001818,
-	0x8e24: 0xe00031a0, 0x8e25: 0xf0001818, 0x8e26: 0xe00031a9, 0x8e27: 0xf0001818,
-	0x8e28: 0xe00031c7, 0x8e29: 0xf0001818, 0x8e2a: 0xe00031d3, 0x8e2b: 0xe0003221,
-	0x8e2c: 0xe000322d, 0x8e2d: 0xf0001818, 0x8e2e: 0xf0001818, 0x8e2f: 0xe000324b,
-	0x8e30: 0xe0003293, 0x8e31: 0xe00032a2, 0x8e32: 0xf0001818, 0x8e33: 0xe0003185,
-	0x8e34: 0xe0003188, 0x8e35: 0xe00024de, 0x8e36: 0xe00031eb, 0x8e37: 0xe00024e4,
-	0x8e38: 0xe00031f1, 0x8e39: 0xe00024ea, 0x8e3a: 0xe00031f7, 0x8e3b: 0xe00024c6,
-	0x8e3c: 0xe00031cd, 0x8e3d: 0xe00024cc, 0x8e3e: 0xe00031d9, 0x8e3f: 0xe00024ba,
-	// Block 0x239, offset 0x8e40
-	0x8e40: 0xe00031bb, 0x8e41: 0xe00024b4, 0x8e42: 0xe00031b5, 0x8e43: 0xe00024c0,
-	0x8e44: 0xe00031c1, 0x8e45: 0xe00024d2, 0x8e46: 0xe00031df, 0x8e47: 0xe00024d8,
-	0x8e48: 0xe00031e5, 0x8e49: 0xf0001a1a, 0x8e4a: 0xf0001a1a, 0x8e4b: 0xf0001a1a,
-	0x8e4c: 0xf0001a1a, 0x8e4d: 0xf0001a1a, 0x8e4e: 0xf0001a1a, 0x8e4f: 0xf0001a1a,
-	0x8e50: 0xf0001a1a, 0x8e51: 0xe00024db, 0x8e52: 0xe00031e8, 0x8e53: 0xe00024e1,
-	0x8e54: 0xe00031ee, 0x8e55: 0xe00024e7, 0x8e56: 0xe00031f4, 0x8e57: 0xe00024c3,
-	0x8e58: 0xe00031ca, 0x8e59: 0xe00024c9, 0x8e5a: 0xe00031d6, 0x8e5b: 0xe00024b7,
-	0x8e5c: 0xe00031b8, 0x8e5d: 0xe00024b1, 0x8e5e: 0xe00031b2, 0x8e5f: 0xe00024bd,
-	0x8e60: 0xe00031be, 0x8e61: 0xe00024cf, 0x8e62: 0xe00031dc, 0x8e63: 0xe00024d5,
-	0x8e64: 0xe00031e2, 0x8e65: 0xf0001919, 0x8e66: 0xf0001919, 0x8e67: 0xf0001919,
-	0x8e68: 0xf0001919, 0x8e69: 0xf0001919, 0x8e6a: 0xf0001919, 0x8e6b: 0xf0001919,
-	0x8e6c: 0xf0001919, 0x8e6d: 0xf0001717, 0x8e6e: 0xf0001717, 0x8e6f: 0xf0001717,
-	0x8e70: 0xf0001717, 0x8e71: 0xe00031c4, 0x8e72: 0xe00031d0, 0x8e73: 0xf0001717,
-	0x8e74: 0xf0001818, 0x8e75: 0xf0001818, 0x8e76: 0xf0001818, 0x8e77: 0xf0001818,
-	0x8e78: 0xf0001818, 0x8e79: 0xf0001818, 0x8e7a: 0xf0001818, 0x8e7b: 0xf0001818,
-	0x8e7c: 0xe000318b, 0x8e7d: 0xe000318e, 0x8e7e: 0x4004c020, 0x8e7f: 0x4004c220,
-	// Block 0x23a, offset 0x8e80
-	0x8e80: 0xa0000000, 0x8e81: 0xa0000000, 0x8e82: 0xa0000000, 0x8e83: 0xa0000000,
-	0x8e84: 0xa0000000, 0x8e85: 0xa0000000, 0x8e86: 0xa0000000, 0x8e87: 0xa0000000,
-	0x8e88: 0xa0000000, 0x8e89: 0x40020020, 0x8e8a: 0x40020220, 0x8e8b: 0x40020420,
-	0x8e8c: 0x40020620, 0x8e8d: 0x40020820, 0x8e8e: 0xa0000000, 0x8e8f: 0xa0000000,
-	0x8e90: 0xa0000000, 0x8e91: 0xa0000000, 0x8e92: 0xa0000000, 0x8e93: 0xa0000000,
-	0x8e94: 0xa0000000, 0x8e95: 0xa0000000, 0x8e96: 0xa0000000, 0x8e97: 0xa0000000,
-	0x8e98: 0xa0000000, 0x8e99: 0xa0000000, 0x8e9a: 0xa0000000, 0x8e9b: 0xa0000000,
-	0x8e9c: 0xa0000000, 0x8e9d: 0xa0000000, 0x8e9e: 0xa0000000, 0x8e9f: 0xa0000000,
-	0x8ea0: 0x40021220, 0x8ea1: 0x4002ba20, 0x8ea2: 0x4003e020, 0x8ea3: 0x4004ea20,
-	0x8ea4: 0x4027de20, 0x8ea5: 0x4004ec20, 0x8ea6: 0x4004e620, 0x8ea7: 0x4003d220,
-	0x8ea8: 0x4003f420, 0x8ea9: 0x4003f620, 0x8eaa: 0x4004d820, 0x8eab: 0x40093820,
-	0x8eac: 0x40024020, 0x8ead: 0x40021a20, 0x8eae: 0x4002e420, 0x8eaf: 0x4004e220,
-	0x8eb0: 0x4029cc20, 0x8eb1: 0x4029ce20, 0x8eb2: 0x4029d020, 0x8eb3: 0x4029d220,
-	0x8eb4: 0x4029d420, 0x8eb5: 0x4029d620, 0x8eb6: 0x4029d820, 0x8eb7: 0x4029da20,
-	0x8eb8: 0x4029dc20, 0x8eb9: 0x4029de20, 0x8eba: 0x40026c20, 0x8ebb: 0x40026220,
-	0x8ebc: 0x40094020, 0x8ebd: 0x40094220, 0x8ebe: 0x40094420, 0x8ebf: 0x4002c420,
-	// Block 0x23b, offset 0x8ec0
-	0x8ec0: 0x4004d620, 0x8ec1: 0xc56727b1, 0x8ec2: 0x002c0a88, 0x8ec3: 0x002c3a88,
-	0x8ec4: 0x002c6288, 0x8ec5: 0x002c9888, 0x8ec6: 0x002d0888, 0x8ec7: 0x002d2288,
-	0x8ec8: 0x002d6888, 0x8ec9: 0x002d9a88, 0x8eca: 0x002dcc88, 0x8ecb: 0x002dfe88,
-	0x8ecc: 0xc0030002, 0x8ecd: 0x002e8288, 0x8ece: 0x002e9e88, 0x8ecf: 0xc56c0071,
-	0x8ed0: 0x002f2c88, 0x8ed1: 0x002f5688, 0x8ed2: 0x002f7a88, 0x8ed3: 0x002fe688,
-	0x8ed4: 0x00302c88, 0x8ed5: 0xc5620071, 0x8ed6: 0x0030be88, 0x8ed7: 0x0030e288,
-	0x8ed8: 0x0030f688, 0x8ed9: 0x00310088, 0x8eda: 0x00312a88, 0x8edb: 0x4003f820,
-	0x8edc: 0x4004e420, 0x8edd: 0x4003fa20, 0x8ede: 0x40062420, 0x8edf: 0x40021620,
-	0x8ee0: 0x40061e20, 0x8ee1: 0xc56427b1, 0x8ee2: 0x402c0a20, 0x8ee3: 0x402c3a20,
-	0x8ee4: 0x402c6220, 0x8ee5: 0x402c9820, 0x8ee6: 0x402d0820, 0x8ee7: 0x402d2220,
-	0x8ee8: 0x402d6820, 0x8ee9: 0x402d9a20, 0x8eea: 0x402dcc20, 0x8eeb: 0x402dfe20,
-	0x8eec: 0xc0000002, 0x8eed: 0x402e8220, 0x8eee: 0x402e9e20, 0x8eef: 0xc56a0071,
-	0x8ef0: 0x402f2c20, 0x8ef1: 0x402f5620, 0x8ef2: 0x402f7a20, 0x8ef3: 0x402fe620,
-	0x8ef4: 0x40302c20, 0x8ef5: 0xc5600071, 0x8ef6: 0x4030be20, 0x8ef7: 0x4030e220,
-	0x8ef8: 0x4030f620, 0x8ef9: 0x40310020, 0x8efa: 0x40312a20, 0x8efb: 0x4003fc20,
-	0x8efc: 0x40094820, 0x8efd: 0x4003fe20, 0x8efe: 0x40094c20, 0x8eff: 0xa0000000,
-	// Block 0x23c, offset 0x8f00
-	0x8f00: 0xe00008f5, 0x8f01: 0xe00008ef, 0x8f02: 0xe0000921, 0x8f03: 0xe0000969,
-	0x8f04: 0x00320e83, 0x8f05: 0x00320c83, 0x8f06: 0x00320ea3, 0x8f07: 0xe0000a53,
-	0x8f08: 0xe0000ae8, 0x8f09: 0xe0000ae2, 0x8f0a: 0xe0000af4, 0x8f0b: 0xe0000b20,
-	0x8f0c: 0xe0000c2b, 0x8f0d: 0xe0000c25, 0x8f0e: 0xe0000c37, 0x8f0f: 0xe0000c43,
-	0x8f10: 0xe0000ab3, 0x8f11: 0xe0000d63, 0x8f12: 0xe0000d9a, 0x8f13: 0xe0000d94,
-	0x8f14: 0xe0000da6, 0x8f15: 0xe0000de6, 0x8f16: 0x00321083, 0x8f17: 0x40093e20,
-	0x8f18: 0x003210a3, 0x8f19: 0xe0000fe1, 0x8f1a: 0xe0000fdb, 0x8f1b: 0xe0000fed,
-	0x8f1c: 0x003100a3, 0x8f1d: 0xe0001102, 0x8f1e: 0x00318888, 0x8f1f: 0xe0000f7b,
-	0x8f20: 0xe00008f2, 0x8f21: 0xe00008ec, 0x8f22: 0xe000091e, 0x8f23: 0xe0000966,
-	0x8f24: 0x40320e20, 0x8f25: 0x40320c20, 0x8f26: 0x40320e21, 0x8f27: 0xe0000a4d,
-	0x8f28: 0xe0000ae5, 0x8f29: 0xe0000adf, 0x8f2a: 0xe0000af1, 0x8f2b: 0xe0000b1d,
-	0x8f2c: 0xe0000c28, 0x8f2d: 0xe0000c22, 0x8f2e: 0xe0000c34, 0x8f2f: 0xe0000c40,
-	0x8f30: 0xe0000aad, 0x8f31: 0xe0000d60, 0x8f32: 0xe0000d97, 0x8f33: 0xe0000d91,
-	0x8f34: 0xe0000da3, 0x8f35: 0xe0000de3, 0x8f36: 0x40321020, 0x8f37: 0x40093c20,
-	0x8f38: 0x40321021, 0x8f39: 0xe0000fde, 0x8f3a: 0xe0000fd8, 0x8f3b: 0xe0000fea,
-	0x8f3c: 0x40310021, 0x8f3d: 0xe00010ff, 0x8f3e: 0x40318820, 0x8f3f: 0xe0001114,
-	// Block 0x23d, offset 0x8f40
-	0x8f40: 0xe0000983, 0x8f41: 0xe0000980, 0x8f42: 0xe00008fb, 0x8f43: 0xe00008f8,
-	0x8f44: 0xe000097d, 0x8f45: 0xe000097a, 0x8f46: 0xe0000a38, 0x8f47: 0xe0000a35,
-	0x8f48: 0xe0000a3e, 0x8f49: 0xe0000a3b, 0x8f4a: 0xe0000a4a, 0x8f4b: 0xe0000a47,
-	0x8f4c: 0xe0000a44, 0x8f4d: 0xe0000a41, 0x8f4e: 0xe0000a86, 0x8f4f: 0xe0000a83,
-	0x8f50: 0xe00032b7, 0x8f51: 0xe00032b4, 0x8f52: 0xe0000b46, 0x8f53: 0xe0000b43,
-	0x8f54: 0xe0000aee, 0x8f55: 0xe0000aeb, 0x8f56: 0xe0000b2c, 0x8f57: 0xe0000b29,
-	0x8f58: 0xe0000b40, 0x8f59: 0xe0000b3d, 0x8f5a: 0xe0000b1a, 0x8f5b: 0xe0000b17,
-	0x8f5c: 0xe0000bb8, 0x8f5d: 0xe0000bb5, 0x8f5e: 0xe0000bb2, 0x8f5f: 0xe0000baf,
-	0x8f60: 0xe0000bc4, 0x8f61: 0xe0000bc1, 0x8f62: 0xe0000bca, 0x8f63: 0xe0000bc7,
-	0x8f64: 0xe0000bee, 0x8f65: 0xe0000beb, 0x8f66: 0xe0000c1b, 0x8f67: 0xe0000c18,
-	0x8f68: 0xe0000c51, 0x8f69: 0xe0000c4e, 0x8f6a: 0xe0000c60, 0x8f6b: 0xe0000c5d,
-	0x8f6c: 0xe0000c31, 0x8f6d: 0xe0000c2e, 0x8f6e: 0xe0000c5a, 0x8f6f: 0xe0000c57,
-	0x8f70: 0xe0000c54, 0x8f71: 0x402da220, 0x8f72: 0xf0000a0a, 0x8f73: 0xf0000404,
-	0x8f74: 0xe0000c8a, 0x8f75: 0xe0000c87, 0x8f76: 0xe0000c9f, 0x8f77: 0xe0000c9c,
-	0x8f78: 0x402f7220, 0x8f79: 0xe0000ccc, 0x8f7a: 0xe0000cc9, 0x8f7b: 0xe0000cd8,
-	0x8f7c: 0xe0000cd5, 0x8f7d: 0xe0000cd2, 0x8f7e: 0xe0000ccf, 0x8f7f: 0xe0000d04,
-	// Block 0x23e, offset 0x8f80
-	0x8f80: 0xe0000cfe, 0x8f81: 0xe0000cf8, 0x8f82: 0xe0000cf5, 0x8f83: 0xe0000d51,
-	0x8f84: 0xe0000d4e, 0x8f85: 0xe0000d6f, 0x8f86: 0xe0000d6c, 0x8f87: 0xe0000d5d,
-	0x8f88: 0xe0000d5a, 0x8f89: 0xf0000404, 0x8f8a: 0xe00032c3, 0x8f8b: 0xe00032c0,
-	0x8f8c: 0xe0000e2e, 0x8f8d: 0xe0000e2b, 0x8f8e: 0xe0000da0, 0x8f8f: 0xe0000d9d,
-	0x8f90: 0xe0000de0, 0x8f91: 0xe0000ddd, 0x8f92: 0xe0000e93, 0x8f93: 0xe0000e8f,
-	0x8f94: 0xe0000eca, 0x8f95: 0xe0000ec7, 0x8f96: 0xe0000edc, 0x8f97: 0xe0000ed9,
-	0x8f98: 0xe0000ed0, 0x8f99: 0xe0000ecd, 0x8f9a: 0xe0000f1f, 0x8f9b: 0xe0000f1c,
-	0x8f9c: 0xe0000f2d, 0x8f9d: 0xe0000f2a, 0x8f9e: 0xe0000f47, 0x8f9f: 0xe0000f44,
-	0x8fa0: 0xe0000f33, 0x8fa1: 0xe0000f30, 0x8fa2: 0xe0000f99, 0x8fa3: 0xe0000f96,
-	0x8fa4: 0xe0000f8a, 0x8fa5: 0xe0000f87, 0x8fa6: 0xe00032c9, 0x8fa7: 0xe00032c6,
-	0x8fa8: 0xe000102b, 0x8fa9: 0xe0001028, 0x8faa: 0xe000103f, 0x8fab: 0xe000103c,
-	0x8fac: 0xe0000fe7, 0x8fad: 0xe0000fe4, 0x8fae: 0xe0000ff9, 0x8faf: 0xe0000ff6,
-	0x8fb0: 0xe0001025, 0x8fb1: 0xe0001022, 0x8fb2: 0xe0001039, 0x8fb3: 0xe0001036,
-	0x8fb4: 0xe00010d8, 0x8fb5: 0xe00010d5, 0x8fb6: 0xe000110e, 0x8fb7: 0xe000110b,
-	0x8fb8: 0xe0001117, 0x8fb9: 0xe000113b, 0x8fba: 0xe0001138, 0x8fbb: 0xe000114d,
-	0x8fbc: 0xe000114a, 0x8fbd: 0xe0001147, 0x8fbe: 0xe0001144, 0x8fbf: 0xe0000f64,
-	// Block 0x23f, offset 0x8fc0
-	0x8fc0: 0x402c1a20, 0x8fc1: 0x002c2a88, 0x8fc2: 0x002c3288, 0x8fc3: 0x402c3220,
-	0x8fc4: 0x0031c488, 0x8fc5: 0x4031c420, 0x8fc6: 0x002efa88, 0x8fc7: 0x002c4e88,
-	0x8fc8: 0x402c4e20, 0x8fc9: 0x002c7288, 0x8fca: 0x002c7a88, 0x8fcb: 0x002c8488,
-	0x8fcc: 0x402c8420, 0x8fcd: 0xe000115c, 0x8fce: 0x002cae88, 0x8fcf: 0x002cb888,
-	0x8fd0: 0x002cc288, 0x8fd1: 0x002d1688, 0x8fd2: 0x402d1620, 0x8fd3: 0x002d4488,
-	0x8fd4: 0x002d5888, 0x8fd5: 0x402d7820, 0x8fd6: 0x002dc288, 0x8fd7: 0x002db688,
-	0x8fd8: 0x002e0a88, 0x8fd9: 0x402e0a20, 0x8fda: 0x402e3820, 0x8fdb: 0x402e7220,
-	0x8fdc: 0x0030a088, 0x8fdd: 0x002eb488, 0x8fde: 0x402ebc20, 0x8fdf: 0x002f1088,
-	0x8fe0: 0xe0000e56, 0x8fe1: 0xe0000e53, 0x8fe2: 0x002d6088, 0x8fe3: 0x402d6020,
-	0x8fe4: 0x002f3e88, 0x8fe5: 0x402f3e20, 0x8fe6: 0x002f8288, 0x8fe7: 0x0031b488,
-	0x8fe8: 0x4031b420, 0x8fe9: 0x00300888, 0x8fea: 0x40301220, 0x8feb: 0x40304220,
-	0x8fec: 0x00304a88, 0x8fed: 0x40304a20, 0x8fee: 0x00305288, 0x8fef: 0xe000105f,
-	0x8ff0: 0xe000105c, 0x8ff1: 0x0030b488, 0x8ff2: 0x0030cc88, 0x8ff3: 0x00311888,
-	0x8ff4: 0x40311820, 0x8ff5: 0x00313488, 0x8ff6: 0x40313420, 0x8ff7: 0xe00032cf,
-	0x8ff8: 0x00316e88, 0x8ff9: 0x40316e20, 0x8ffa: 0x40317820, 0x8ffb: 0x4031a620,
-	0x8ffc: 0x0031bc88, 0x8ffd: 0x4031bc20, 0x8ffe: 0xe0000fc9, 0x8fff: 0x40319420,
-	// Block 0x240, offset 0x9000
-	0x9000: 0x40321220, 0x9001: 0x40321a20, 0x9002: 0x40322220, 0x9003: 0x40322a20,
-	0x9004: 0xe0000ad5, 0x9005: 0xe0000ad1, 0x9006: 0xe0000acd, 0x9007: 0xf0000a0a,
-	0x9008: 0xf000040a, 0x9009: 0xf0000404, 0x900a: 0xf0000a0a, 0x900b: 0xf000040a,
-	0x900c: 0xf0000404, 0x900d: 0xe0000947, 0x900e: 0xe0000944, 0x900f: 0xe0000c3d,
-	0x9010: 0xe0000c3a, 0x9011: 0xe0000dcc, 0x9012: 0xe0000dc9, 0x9013: 0xe0000ff3,
-	0x9014: 0xe0000ff0, 0x9015: 0xe00025e4, 0x9016: 0xe00025e1, 0x9017: 0xe00025d2,
-	0x9018: 0xe00025cf, 0x9019: 0xe00025de, 0x901a: 0xe00025db, 0x901b: 0xe00025d8,
-	0x901c: 0xe00025d5, 0x901d: 0x402cae20, 0x901e: 0xe00032dd, 0x901f: 0xe00032da,
-	0x9020: 0xe0000976, 0x9021: 0xe0000972, 0x9022: 0xe0002608, 0x9023: 0xe0002605,
-	0x9024: 0xe00032bd, 0x9025: 0xe00032ba, 0x9026: 0xe0000bbe, 0x9027: 0xe0000bbb,
-	0x9028: 0xe0000c99, 0x9029: 0xe0000c96, 0x902a: 0xe0000e20, 0x902b: 0xe0000e1d,
-	0x902c: 0xe0000e27, 0x902d: 0xe0000e23, 0x902e: 0xe00032d6, 0x902f: 0xe00032d2,
-	0x9030: 0xe0000c8d, 0x9031: 0xf0000a0a, 0x9032: 0xf000040a, 0x9033: 0xf0000404,
-	0x9034: 0xe0000bac, 0x9035: 0xe0000ba9, 0x9036: 0x002d7888, 0x9037: 0x00319488,
-	0x9038: 0xe0000d57, 0x9039: 0xe0000d54, 0x903a: 0xe00025ea, 0x903b: 0xe00025e7,
-	0x903c: 0xe00032e3, 0x903d: 0xe00032e0, 0x903e: 0xe00032f5, 0x903f: 0xe00032f2,
-	// Block 0x241, offset 0x9040
-	0x9040: 0xe000098f, 0x9041: 0xe000098c, 0x9042: 0xe0000995, 0x9043: 0xe0000992,
-	0x9044: 0xe0000b62, 0x9045: 0xe0000b5f, 0x9046: 0xe0000b68, 0x9047: 0xe0000b65,
-	0x9048: 0xe0000c6c, 0x9049: 0xe0000c69, 0x904a: 0xe0000c72, 0x904b: 0xe0000c6f,
-	0x904c: 0xe0000e4a, 0x904d: 0xe0000e47, 0x904e: 0xe0000e50, 0x904f: 0xe0000e4d,
-	0x9050: 0xe0000ee8, 0x9051: 0xe0000ee5, 0x9052: 0xe0000eee, 0x9053: 0xe0000eeb,
-	0x9054: 0xe0001053, 0x9055: 0xe0001050, 0x9056: 0xe0001059, 0x9057: 0xe0001056,
-	0x9058: 0xe0000f61, 0x9059: 0xe0000f5e, 0x905a: 0xe0000fa5, 0x905b: 0xe0000fa2,
-	0x905c: 0x00312288, 0x905d: 0x40312220, 0x905e: 0xe0000bf4, 0x905f: 0xe0000bf1,
-	0x9060: 0x002ebc88, 0x9061: 0x402c8c20, 0x9062: 0x002f2288, 0x9063: 0x402f2220,
-	0x9064: 0x00314088, 0x9065: 0x40314020, 0x9066: 0xe000096f, 0x9067: 0xe000096c,
-	0x9068: 0xe0000b32, 0x9069: 0xe0000b2f, 0x906a: 0xe00032ef, 0x906b: 0xe00032ec,
-	0x906c: 0xe0000dfd, 0x906d: 0xe0000df9, 0x906e: 0xe0000e04, 0x906f: 0xe0000e01,
-	0x9070: 0xe0000e0b, 0x9071: 0xe0000e07, 0x9072: 0xe0001129, 0x9073: 0xe0001126,
-	0x9074: 0x402e5e20, 0x9075: 0x402ed020, 0x9076: 0x40305a20, 0x9077: 0x402dd420,
-	0x9078: 0xe0000abf, 0x9079: 0xe0000ec4, 0x907a: 0x002be888, 0x907b: 0x002c4488,
-	0x907c: 0x402c4420, 0x907d: 0x002e3888, 0x907e: 0x00303e88, 0x907f: 0x402ffc20,
-	// Block 0x242, offset 0x9080
-	0x9080: 0x402f8220, 0x9081: 0x402fd820, 0x9082: 0x402ff420, 0x9083: 0x40300820,
-	0x9084: 0x402df620, 0x9085: 0x40301a20, 0x9086: 0x40302420, 0x9087: 0x40306420,
-	0x9088: 0x40305220, 0x9089: 0x40307c20, 0x908a: 0x4030b420, 0x908b: 0x4030cc20,
-	0x908c: 0x4030da20, 0x908d: 0x4030ee20, 0x908e: 0x402e7a20, 0x908f: 0x40310820,
-	0x9090: 0x40314820, 0x9091: 0x40315020, 0x9092: 0xe00032cc, 0x9093: 0x40318020,
-	0x9094: 0x4031cc20, 0x9095: 0x4031e820, 0x9096: 0x40320a20, 0x9097: 0x40323220,
-	0x9098: 0x40323a20, 0x9099: 0x402c1220, 0x909a: 0x402cf820, 0x909b: 0x402d4c20,
-	0x909c: 0x402d7020, 0x909d: 0x402de620, 0x909e: 0x402e1a20, 0x909f: 0x402e2a20,
-	0x90a0: 0x402f6220, 0x90a1: 0x4031fa20, 0x90a2: 0x40320220, 0x90a3: 0xe0000aca,
-	0x90a4: 0xe0000adc, 0x90a5: 0xe0000ad9, 0x90a6: 0xe0000fcc, 0x90a7: 0xe0000fcf,
-	0x90a8: 0xe0000fba, 0x90a9: 0xe0000ba1, 0x90aa: 0xe0000d11, 0x90ab: 0xe0000d18,
-	0x90ac: 0x40324220, 0x90ad: 0x40324a20, 0x90ae: 0x40309020, 0x90af: 0x40309820,
-	0x90b0: 0x002d6894, 0x90b1: 0x002d8094, 0x90b2: 0x002dcc94, 0x90b3: 0x002f7a94,
-	0x90b4: 0x002f9894, 0x90b5: 0x002fac94, 0x90b6: 0x002fd894, 0x90b7: 0x0030e294,
-	0x90b8: 0x00310094, 0x90b9: 0x40064020, 0x90ba: 0x40064420, 0x90bb: 0x402d9620,
-	0x90bc: 0x4031de20, 0x90bd: 0x402d9820, 0x90be: 0x4031e220, 0x90bf: 0x4031f020,
-	// Block 0x243, offset 0x90c0
-	0x90c0: 0xe0000d24, 0x90c1: 0xe0000d21, 0x90c2: 0xe0000d2a, 0x90c3: 0xe0000d27,
-	0x90c4: 0xe0000d69, 0x90c5: 0xe0000d66, 0x90c6: 0xe0000d7b, 0x90c7: 0xe0000d78,
-	0x90c8: 0xe0000d87, 0x90c9: 0xe0000d84, 0x90ca: 0xe0000d81, 0x90cb: 0xe0000d7e,
-	0x90cc: 0xe0000ded, 0x90cd: 0xe0000de9, 0x90ce: 0xe00032e9, 0x90cf: 0xe00032e6,
-	0x90d0: 0xe0000e3d, 0x90d1: 0xe0000e39, 0x90d2: 0xe0000e35, 0x90d3: 0xe0000e31,
-	0x90d4: 0xe0000ea7, 0x90d5: 0xe0000ea4, 0x90d6: 0xe0000ead, 0x90d7: 0xe0000eaa,
-	0x90d8: 0xe0000ed6, 0x90d9: 0xe0000ed3, 0x90da: 0xe0000ef4, 0x90db: 0xe0000ef1,
-	0x90dc: 0xe0000efb, 0x90dd: 0xe0000ef7, 0x90de: 0xe0000f02, 0x90df: 0xe0000eff,
-	0x90e0: 0xe0000f41, 0x90e1: 0xe0000f3e, 0x90e2: 0xe0000f53, 0x90e3: 0xe0000f50,
-	0x90e4: 0xe0000f26, 0x90e5: 0xe0000f22, 0x90e6: 0xe0000f3a, 0x90e7: 0xe0000f36,
-	0x90e8: 0xe0000f5a, 0x90e9: 0xe0000f56, 0x90ea: 0xe0000f93, 0x90eb: 0xe0000f90,
-	0x90ec: 0xe0000f9f, 0x90ed: 0xe0000f9c, 0x90ee: 0xe0000fb1, 0x90ef: 0xe0000fae,
-	0x90f0: 0xe0000fab, 0x90f1: 0xe0000fa8, 0x90f2: 0xe0001093, 0x90f3: 0xe0001090,
-	0x90f4: 0xe000109f, 0x90f5: 0xe000109c, 0x90f6: 0xe0001099, 0x90f7: 0xe0001096,
-	0x90f8: 0xe0001032, 0x90f9: 0xe000102e, 0x90fa: 0xe00025e4, 0x90fb: 0xe00025e1,
-	0x90fc: 0xe00010a9, 0x90fd: 0xe00010a6, 0x90fe: 0xe00010af, 0x90ff: 0xe00010ac,
-	// Block 0x244, offset 0x9100
-	0x9100: 0xe00009bc, 0x9101: 0xe00009c0, 0x9102: 0x002c3a8b, 0x9103: 0xf0000a04,
-	0x9104: 0x40081c20, 0x9105: 0xe0000a5e, 0x9106: 0xe0000a62, 0x9107: 0x002cc28a,
-	0x9108: 0x40081e20, 0x9109: 0xf0000a04, 0x910a: 0x002d2285, 0x910b: 0x002d688b,
-	0x910c: 0x002d688b, 0x910d: 0x002d688b, 0x910e: 0x002d6885, 0x910f: 0xf0000202,
-	0x9110: 0x002d9a8b, 0x9111: 0x002d9a8b, 0x9112: 0x002e228b, 0x9113: 0x002e2285,
-	0x9114: 0x40082020, 0x9115: 0x002e9e8b, 0x9116: 0xf000040a, 0x9117: 0x40082220,
-	0x9118: 0x40082420, 0x9119: 0x002f2c8b, 0x911a: 0x002f568b, 0x911b: 0x002f7a8b,
-	0x911c: 0x002f7a8b, 0x911d: 0x002f7a8b, 0x911e: 0x40082620, 0x911f: 0x40082820,
-	0x9120: 0xf0001414, 0x9121: 0xe0000fbd, 0x9122: 0xf0001414, 0x9123: 0x40082a20,
-	0x9124: 0x00312a8b, 0x9125: 0x40082c20, 0x9126: 0x0032a288, 0x9127: 0x40082e20,
-	0x9128: 0x00312a8b, 0x9129: 0x40083020, 0x912a: 0x002dfe88, 0x912b: 0x00320c83,
-	0x912c: 0x002c0a8b, 0x912d: 0x002c3a8b, 0x912e: 0x40083220, 0x912f: 0x002c9885,
-	0x9130: 0x002c988b, 0x9131: 0x002d088b, 0x9132: 0x002d1e88, 0x9133: 0x002e828b,
-	0x9134: 0x002ee285, 0x9135: 0x00389084, 0x9136: 0x00389284, 0x9137: 0x00389484,
-	0x9138: 0x00389684, 0x9139: 0x002d9a85, 0x913a: 0x40083420, 0x913b: 0xe0000b95,
-	0x913c: 0x00327e85, 0x913d: 0x00325685, 0x913e: 0x0032568b, 0x913f: 0x00327e8b,
-	// Block 0x245, offset 0x9140
-	0x9140: 0xa0000000, 0x9141: 0xa0000000, 0x9142: 0xa0000000, 0x9143: 0xa0000000,
-	0x9144: 0xa0000000, 0x9145: 0xa0000000, 0x9146: 0xa0000000, 0x9147: 0xa0000000,
-	0x9148: 0xa0000000, 0x9149: 0x40020020, 0x914a: 0x40020220, 0x914b: 0x40020420,
-	0x914c: 0x40020620, 0x914d: 0x40020820, 0x914e: 0xa0000000, 0x914f: 0xa0000000,
-	0x9150: 0xa0000000, 0x9151: 0xa0000000, 0x9152: 0xa0000000, 0x9153: 0xa0000000,
-	0x9154: 0xa0000000, 0x9155: 0xa0000000, 0x9156: 0xa0000000, 0x9157: 0xa0000000,
-	0x9158: 0xa0000000, 0x9159: 0xa0000000, 0x915a: 0xa0000000, 0x915b: 0xa0000000,
-	0x915c: 0xa0000000, 0x915d: 0xa0000000, 0x915e: 0xa0000000, 0x915f: 0xa0000000,
-	0x9160: 0x40021220, 0x9161: 0x4002ba20, 0x9162: 0x4003e020, 0x9163: 0x4004ea20,
-	0x9164: 0x4027de20, 0x9165: 0x4004ec20, 0x9166: 0x4004e620, 0x9167: 0x4003d220,
-	0x9168: 0x4003f420, 0x9169: 0x4003f620, 0x916a: 0x4004d820, 0x916b: 0x40093820,
-	0x916c: 0x40024020, 0x916d: 0x40021a20, 0x916e: 0x4002e420, 0x916f: 0x4004e220,
-	0x9170: 0x4029cc20, 0x9171: 0x4029ce20, 0x9172: 0x4029d020, 0x9173: 0x4029d220,
-	0x9174: 0x4029d420, 0x9175: 0x4029d620, 0x9176: 0x4029d820, 0x9177: 0x4029da20,
-	0x9178: 0x4029dc20, 0x9179: 0x4029de20, 0x917a: 0x40026c20, 0x917b: 0x40026220,
-	0x917c: 0x40094020, 0x917d: 0x40094220, 0x917e: 0x40094420, 0x917f: 0x4002c420,
-	// Block 0x246, offset 0x9180
-	0x9180: 0x4004d620, 0x9181: 0x002bde88, 0x9182: 0x002c0a88, 0x9183: 0x002c3a88,
-	0x9184: 0x002c6288, 0x9185: 0x002c9888, 0x9186: 0x002d0888, 0x9187: 0x002d2288,
-	0x9188: 0x002d6888, 0x9189: 0x002d9a88, 0x918a: 0x002dcc88, 0x918b: 0x002dfe88,
-	0x918c: 0xc0030002, 0x918d: 0x002e8288, 0x918e: 0xc5712813, 0x918f: 0x002ee288,
-	0x9190: 0x002f2c88, 0x9191: 0x002f5688, 0x9192: 0x002f7a88, 0x9193: 0x002fe688,
-	0x9194: 0x00302c88, 0x9195: 0x00306c88, 0x9196: 0x0030be88, 0x9197: 0x0030e288,
-	0x9198: 0x0030f688, 0x9199: 0x00310088, 0x919a: 0x00312a88, 0x919b: 0x4003f820,
-	0x919c: 0x4004e420, 0x919d: 0x4003fa20, 0x919e: 0x40062420, 0x919f: 0x40021620,
-	0x91a0: 0x40061e20, 0x91a1: 0x402bde20, 0x91a2: 0x402c0a20, 0x91a3: 0x402c3a20,
-	0x91a4: 0x402c6220, 0x91a5: 0x402c9820, 0x91a6: 0x402d0820, 0x91a7: 0x402d2220,
-	0x91a8: 0x402d6820, 0x91a9: 0x402d9a20, 0x91aa: 0x402dcc20, 0x91ab: 0x402dfe20,
-	0x91ac: 0xc0000002, 0x91ad: 0x402e8220, 0x91ae: 0xc56e27e2, 0x91af: 0x402ee220,
-	0x91b0: 0x402f2c20, 0x91b1: 0x402f5620, 0x91b2: 0x402f7a20, 0x91b3: 0x402fe620,
-	0x91b4: 0x40302c20, 0x91b5: 0x40306c20, 0x91b6: 0x4030be20, 0x91b7: 0x4030e220,
-	0x91b8: 0x4030f620, 0x91b9: 0x40310020, 0x91ba: 0x40312a20, 0x91bb: 0x4003fc20,
-	0x91bc: 0x40094820, 0x91bd: 0x4003fe20, 0x91be: 0x40094c20, 0x91bf: 0xa0000000,
-	// Block 0x247, offset 0x91c0
-	0x91c1: 0x40417021, 0x91c2: 0x40417020, 0x91c3: 0x40417220,
-	0x91c5: 0x40417020, 0x91c6: 0x40417220, 0x91c7: 0x40417420,
-	0x91c8: 0x40417620, 0x91c9: 0x40417820, 0x91ca: 0x40417a20, 0x91cb: 0x40417c20,
-	0x91cc: 0x40418020, 0x91cd: 0x40418420, 0x91cf: 0x40418620,
-	0x91d0: 0x40418820, 0x91d1: 0x40418a20, 0x91d3: 0x40418c20,
-	0x91d4: 0x40418e20, 0x91d5: 0x40419020, 0x91d6: 0x40419220, 0x91d7: 0x40419420,
-	0x91d8: 0x40419620, 0x91d9: 0x40419820, 0x91da: 0x40419a20, 0x91db: 0x40419c20,
-	0x91dc: 0x40419e20, 0x91dd: 0x4041a020, 0x91de: 0x4041a220, 0x91df: 0x4041a420,
-	0x91e0: 0x4041a620, 0x91e1: 0x4041a820, 0x91e2: 0x4041aa20, 0x91e3: 0x4041ac20,
-	0x91e4: 0x4041ae20, 0x91e5: 0x4041b020, 0x91e6: 0x4041b220, 0x91e7: 0x4041b420,
-	0x91e8: 0x4041b620, 0x91ea: 0x4041b820, 0x91eb: 0x4041ba20,
-	0x91ec: 0x4041bc20, 0x91ed: 0x4041be20, 0x91ee: 0x4041c020, 0x91ef: 0x4041c220,
-	0x91f0: 0x4041c420, 0x91f2: 0x4041c620, 0x91f3: 0x4041d220,
-	0x91f5: 0x4041c820, 0x91f6: 0x4041ca20, 0x91f7: 0x4041cc20,
-	0x91f8: 0x4041ce20, 0x91f9: 0x4041d020,
-	0x91fc: 0xa070f102, 0x91fd: 0x4041d420, 0x91fe: 0x4041d620, 0x91ff: 0x4041d820,
-	// Block 0x248, offset 0x9200
-	0x9200: 0xa0000000, 0x9201: 0xa0000000, 0x9202: 0xa0000000, 0x9203: 0xa0000000,
-	0x9204: 0xa0000000, 0x9205: 0xa0000000, 0x9206: 0xa0000000, 0x9207: 0xa0000000,
-	0x9208: 0xa0000000, 0x9209: 0x40020020, 0x920a: 0x40020220, 0x920b: 0x40020420,
-	0x920c: 0x40020620, 0x920d: 0x40020820, 0x920e: 0xa0000000, 0x920f: 0xa0000000,
-	0x9210: 0xa0000000, 0x9211: 0xa0000000, 0x9212: 0xa0000000, 0x9213: 0xa0000000,
-	0x9214: 0xa0000000, 0x9215: 0xa0000000, 0x9216: 0xa0000000, 0x9217: 0xa0000000,
-	0x9218: 0xa0000000, 0x9219: 0xa0000000, 0x921a: 0xa0000000, 0x921b: 0xa0000000,
-	0x921c: 0xa0000000, 0x921d: 0xa0000000, 0x921e: 0xa0000000, 0x921f: 0xa0000000,
-	0x9220: 0x40021220, 0x9221: 0x4002ba20, 0x9222: 0x4003e020, 0x9223: 0x4004ea20,
-	0x9224: 0x4027de20, 0x9225: 0x4004ec20, 0x9226: 0x4004e620, 0x9227: 0xc57b26f2,
-	0x9228: 0x4003f420, 0x9229: 0x4003f620, 0x922a: 0x4004d820, 0x922b: 0x40093820,
-	0x922c: 0x40024020, 0x922d: 0x40021a20, 0x922e: 0x4002e420, 0x922f: 0x4004e220,
-	0x9230: 0x4029cc20, 0x9231: 0x4029ce20, 0x9232: 0x4029d020, 0x9233: 0x4029d220,
-	0x9234: 0x4029d420, 0x9235: 0x4029d620, 0x9236: 0x4029d820, 0x9237: 0x4029da20,
-	0x9238: 0x4029dc20, 0x9239: 0x4029de20, 0x923a: 0x40026c20, 0x923b: 0x40026220,
-	0x923c: 0x40094020, 0x923d: 0x40094220, 0x923e: 0x40094420, 0x923f: 0x4002c420,
-	// Block 0x249, offset 0x9240
-	0x9240: 0x4004d620, 0x9241: 0x002bde88, 0x9242: 0x002c0a88, 0x9243: 0x002c3a88,
-	0x9244: 0x002c6288, 0x9245: 0x002c9888, 0x9246: 0x002d0888, 0x9247: 0x002d2288,
-	0x9248: 0x002d6888, 0x9249: 0x002d9a88, 0x924a: 0x002dcc88, 0x924b: 0x002dfe88,
-	0x924c: 0xc0030002, 0x924d: 0x002e8288, 0x924e: 0x002e9e88, 0x924f: 0x002ee288,
-	0x9250: 0x002f2c88, 0x9251: 0x002f5688, 0x9252: 0x002f7a88, 0x9253: 0xc57509c2,
-	0x9254: 0xc38a2722, 0x9255: 0x00306c88, 0x9256: 0x0030be88, 0x9257: 0x0030e288,
-	0x9258: 0x0030f688, 0x9259: 0x00310088, 0x925a: 0x00312a88, 0x925b: 0x4003f820,
-	0x925c: 0x4004e420, 0x925d: 0x4003fa20, 0x925e: 0x40062420, 0x925f: 0x40021620,
-	0x9260: 0x40061e20, 0x9261: 0x402bde20, 0x9262: 0x402c0a20, 0x9263: 0x402c3a20,
-	0x9264: 0x402c6220, 0x9265: 0x402c9820, 0x9266: 0x402d0820, 0x9267: 0x402d2220,
-	0x9268: 0x402d6820, 0x9269: 0x402d9a20, 0x926a: 0x402dcc20, 0x926b: 0x402dfe20,
-	0x926c: 0xc0000002, 0x926d: 0x402e8220, 0x926e: 0x402e9e20, 0x926f: 0x402ee220,
-	0x9270: 0x402f2c20, 0x9271: 0x402f5620, 0x9272: 0x402f7a20, 0x9273: 0xc34109b1,
-	0x9274: 0xc3882711, 0x9275: 0x40306c20, 0x9276: 0x4030be20, 0x9277: 0x4030e220,
-	0x9278: 0x4030f620, 0x9279: 0x40310020, 0x927a: 0x40312a20, 0x927b: 0x4003fc20,
-	0x927c: 0x40094820, 0x927d: 0x4003fe20, 0x927e: 0x40094c20, 0x927f: 0xa0000000,
-	// Block 0x24a, offset 0x9280
-	0x9280: 0x402c1a20, 0x9281: 0x002c0c83, 0x9282: 0x002c3288, 0x9283: 0x402c3220,
-	0x9284: 0x0031c488, 0x9285: 0x4031c420, 0x9286: 0x002efa88, 0x9287: 0x002c4e88,
-	0x9288: 0x402c4e20, 0x9289: 0x002c7288, 0x928a: 0x002c6483, 0x928b: 0x002c8488,
-	0x928c: 0x402c8420, 0x928d: 0xe000115c, 0x928e: 0x002cae88, 0x928f: 0x002cb888,
-	0x9290: 0x002cc288, 0x9291: 0x002d1688, 0x9292: 0x402d1620, 0x9293: 0x002d4488,
-	0x9294: 0x002d5888, 0x9295: 0x402d7820, 0x9296: 0x002dc288, 0x9297: 0x002db688,
-	0x9298: 0x002e0083, 0x9299: 0x402e0020, 0x929a: 0x402e3820, 0x929b: 0x402e7220,
-	0x929c: 0x0030a088, 0x929d: 0x002eb488, 0x929e: 0x402ebc20, 0x929f: 0x002f1088,
-	0x92a0: 0xe0000e56, 0x92a1: 0xe0000e53, 0x92a2: 0x002d6088, 0x92a3: 0x402d6020,
-	0x92a4: 0x002f3e88, 0x92a5: 0x402f3e20, 0x92a6: 0x002f8288, 0x92a7: 0x0031b488,
-	0x92a8: 0x4031b420, 0x92a9: 0x00300888, 0x92aa: 0x40301220, 0x92ab: 0x40304220,
-	0x92ac: 0x00304a88, 0x92ad: 0x40304a20, 0x92ae: 0x00305288, 0x92af: 0xe000105f,
-	0x92b0: 0xe000105c, 0x92b1: 0x0030b488, 0x92b2: 0x0030cc88, 0x92b3: 0x00310285,
-	0x92b4: 0x40310220, 0x92b5: 0x00313488, 0x92b6: 0x40313420, 0x92b7: 0x00316488,
-	0x92b8: 0x00316e88, 0x92b9: 0x40316e20, 0x92ba: 0x40317820, 0x92bb: 0x4031a620,
-	0x92bc: 0x0031bc88, 0x92bd: 0x4031bc20, 0x92be: 0xe0000fc9, 0x92bf: 0x40319420,
-	// Block 0x24b, offset 0x92c0
-	0x92c0: 0x40315820, 0x92c1: 0x0031d488, 0x92c2: 0x4031d420, 0x92c3: 0x002c1a88,
-	0x92c4: 0x00307c88, 0x92c5: 0x0030da88, 0x92c6: 0x002ca288, 0x92c7: 0x402ca220,
-	0x92c8: 0x002dde88, 0x92c9: 0x402dde20, 0x92ca: 0x002f6a88, 0x92cb: 0x402f6a20,
-	0x92cc: 0x002f8e88, 0x92cd: 0x402f8e20, 0x92ce: 0x00311088, 0x92cf: 0x40311020,
-	0x92d0: 0x402bf020, 0x92d1: 0x402bf820, 0x92d2: 0x402c0220, 0x92d3: 0x402c0c20,
-	0x92d4: 0x402efa20, 0x92d5: 0x402c5620, 0x92d6: 0x402c7220, 0x92d7: 0x402c6420,
-	0x92d8: 0x402ccc20, 0x92d9: 0x402cb820, 0x92da: 0x402cd420, 0x92db: 0x402cc220,
-	0x92dc: 0x402cdc20, 0x92dd: 0x402ce820, 0x92de: 0x402cf020, 0x92df: 0x402dee20,
-	0x92e0: 0x402d4420, 0x92e1: 0x402d2a20, 0x92e2: 0x402d3220, 0x92e3: 0x402d5820,
-	0x92e4: 0x402d0020, 0x92e5: 0x40308820, 0x92e6: 0x402d8020, 0x92e7: 0x402d8e20,
-	0x92e8: 0x402db620, 0x92e9: 0x402dc220, 0x92ea: 0x402daa20, 0x92eb: 0x402e4220,
-	0x92ec: 0x402e4a20, 0x92ed: 0x402e5420, 0x92ee: 0x402e6820, 0x92ef: 0x4030a020,
-	0x92f0: 0x4030ac20, 0x92f1: 0x402e9020, 0x92f2: 0x402eb420, 0x92f3: 0x402ec820,
-	0x92f4: 0x402ea620, 0x92f5: 0x402f1020, 0x92f6: 0x402eee20, 0x92f7: 0x402f1a20,
-	0x92f8: 0x402f4c20, 0x92f9: 0x402f9820, 0x92fa: 0x402fa220, 0x92fb: 0x402fac20,
-	0x92fc: 0x402fb620, 0x92fd: 0x402fbe20, 0x92fe: 0x402fc620, 0x92ff: 0x402fd020,
-	// Block 0x24c, offset 0x9300
-	0x9300: 0x402f8220, 0x9301: 0x402fd820, 0x9302: 0x402ff420, 0x9303: 0x40300820,
-	0x9304: 0x402df620, 0x9305: 0x40301a20, 0x9306: 0x40302420, 0x9307: 0x40306420,
-	0x9308: 0x40305220, 0x9309: 0x40307c20, 0x930a: 0x4030b420, 0x930b: 0x4030cc20,
-	0x930c: 0x4030da20, 0x930d: 0x4030ee20, 0x930e: 0x402e7a20, 0x930f: 0x40310820,
-	0x9310: 0x40314820, 0x9311: 0x40315020, 0x9312: 0x40316420, 0x9313: 0x40318020,
-	0x9314: 0x4031cc20, 0x9315: 0x4031e820, 0x9316: 0x40320a20, 0x9317: 0x40323220,
-	0x9318: 0x40323a20, 0x9319: 0x402c1220, 0x931a: 0x402cf820, 0x931b: 0x402d4c20,
-	0x931c: 0x402d7020, 0x931d: 0x402de620, 0x931e: 0x402e1a20, 0x931f: 0x402e2a20,
-	0x9320: 0x402f6220, 0x9321: 0x4031fa20, 0x9322: 0x40320220, 0x9323: 0xe0000aca,
-	0x9324: 0xe0000adc, 0x9325: 0xe0000ad9, 0x9326: 0xe0000fcc, 0x9327: 0xe0000fcf,
-	0x9328: 0xe0000fba, 0x9329: 0xe0000ba1, 0x932a: 0xe0000d11, 0x932b: 0xe0000d18,
-	0x932c: 0x40324220, 0x932d: 0x40324a20, 0x932e: 0x40309020, 0x932f: 0x40309820,
-	0x9330: 0x002d6894, 0x9331: 0x002d8094, 0x9332: 0x002dcc94, 0x9333: 0x002f7a94,
-	0x9334: 0x002f9894, 0x9335: 0x002fac94, 0x9336: 0x002fd894, 0x9337: 0x0030e294,
-	0x9338: 0x00310094, 0x9339: 0x40064020, 0x933a: 0x40064420, 0x933b: 0x402d9620,
-	0x933c: 0xc57826f2, 0x933d: 0x402d9820, 0x933e: 0x4031e220, 0x933f: 0x4031f020,
-	// Block 0x24d, offset 0x9340
-	0x9340: 0xa0000000, 0x9341: 0xa0000000, 0x9342: 0xa0000000, 0x9343: 0xa0000000,
-	0x9344: 0xa0000000, 0x9345: 0xa0000000, 0x9346: 0xa0000000, 0x9347: 0xa0000000,
-	0x9348: 0xa0000000, 0x9349: 0x40020020, 0x934a: 0x40020220, 0x934b: 0x40020420,
-	0x934c: 0x40020620, 0x934d: 0x40020820, 0x934e: 0xa0000000, 0x934f: 0xa0000000,
-	0x9350: 0xa0000000, 0x9351: 0xa0000000, 0x9352: 0xa0000000, 0x9353: 0xa0000000,
-	0x9354: 0xa0000000, 0x9355: 0xa0000000, 0x9356: 0xa0000000, 0x9357: 0xa0000000,
-	0x9358: 0xa0000000, 0x9359: 0xa0000000, 0x935a: 0xa0000000, 0x935b: 0xa0000000,
-	0x935c: 0xa0000000, 0x935d: 0xa0000000, 0x935e: 0xa0000000, 0x935f: 0xa0000000,
-	0x9360: 0x40021220, 0x9361: 0x4002ba20, 0x9362: 0x4003e020, 0x9363: 0x4004ea20,
-	0x9364: 0x4027de20, 0x9365: 0x4004ec20, 0x9366: 0x4004e620, 0x9367: 0x4003d220,
-	0x9368: 0x4003f420, 0x9369: 0x4003f620, 0x936a: 0x4004d820, 0x936b: 0x40093820,
-	0x936c: 0x40024020, 0x936d: 0x40021a20, 0x936e: 0x4002e420, 0x936f: 0x4004e220,
-	0x9370: 0x4029cc20, 0x9371: 0x4029ce20, 0x9372: 0x4029d020, 0x9373: 0x4029d220,
-	0x9374: 0x4029d420, 0x9375: 0x4029d620, 0x9376: 0x4029d820, 0x9377: 0x4029da20,
-	0x9378: 0x4029dc20, 0x9379: 0x4029de20, 0x937a: 0x40026c20, 0x937b: 0x40026220,
-	0x937c: 0x40094020, 0x937d: 0x40094220, 0x937e: 0x40094420, 0x937f: 0x4002c420,
-	// Block 0x24e, offset 0x9380
-	0x9380: 0x4004d620, 0x9381: 0x002bde83, 0x9382: 0x002c0a88, 0x9383: 0x002c3a88,
-	0x9384: 0x002c6288, 0x9385: 0x002be083, 0x9386: 0x002d0888, 0x9387: 0x002d2288,
-	0x9388: 0x002be883, 0x9389: 0x002be283, 0x938a: 0x002dcc88, 0x938b: 0x002bea83,
-	0x938c: 0xc5810002, 0x938d: 0x002bee83, 0x938e: 0x002bf083, 0x938f: 0x002be483,
-	0x9390: 0x002bf283, 0x9391: 0x002f5688, 0x9392: 0x002f7a88, 0x9393: 0x002fe688,
-	0x9394: 0x00302c88, 0x9395: 0x002be683, 0x9396: 0x0030be88, 0x9397: 0x002bf483,
-	0x9398: 0x0030f688, 0x9399: 0x00310088, 0x939a: 0x00312a88, 0x939b: 0x4003f820,
-	0x939c: 0x4004e420, 0x939d: 0x4003fa20, 0x939e: 0x40062420, 0x939f: 0x40021620,
-	0x93a0: 0x40061e20, 0x93a1: 0x402bde20, 0x93a2: 0x402c0a20, 0x93a3: 0x402c3a20,
-	0x93a4: 0x402c6220, 0x93a5: 0x402be020, 0x93a6: 0x402d0820, 0x93a7: 0x402d2220,
-	0x93a8: 0x402be820, 0x93a9: 0x402be220, 0x93aa: 0x402dcc20, 0x93ab: 0x402bea20,
-	0x93ac: 0xc57e0002, 0x93ad: 0x402bee20, 0x93ae: 0x402bf020, 0x93af: 0x402be420,
-	0x93b0: 0x402bf220, 0x93b1: 0x402f5620, 0x93b2: 0x402f7a20, 0x93b3: 0x402fe620,
-	0x93b4: 0x40302c20, 0x93b5: 0x402be620, 0x93b6: 0x4030be20, 0x93b7: 0x402bf420,
-	0x93b8: 0x4030f620, 0x93b9: 0x40310020, 0x93ba: 0x40312a20, 0x93bb: 0x4003fc20,
-	0x93bc: 0x40094820, 0x93bd: 0x4003fe20, 0x93be: 0x40094c20, 0x93bf: 0xa0000000,
-	// Block 0x24f, offset 0x93c0
-	0x93c0: 0xe00032fb, 0x93c1: 0xe00032f8, 0x93c2: 0xe0003311, 0x93c3: 0xe0003335,
-	0x93c4: 0xe000332e, 0x93c5: 0xe0003327, 0x93c6: 0xe00009dd, 0x93c7: 0xe0000a53,
-	0x93c8: 0xe0003365, 0x93c9: 0xe000335f, 0x93ca: 0xe0003371, 0x93cb: 0xe000339d,
-	0x93cc: 0xe000340b, 0x93cd: 0xe0003405, 0x93ce: 0xe0003417, 0x93cf: 0xe0003423,
-	0x93d0: 0xe0000ab3, 0x93d1: 0xe00036b9, 0x93d2: 0xe000346a, 0x93d3: 0xe0003464,
-	0x93d4: 0xe0003476, 0x93d5: 0xe00034b6, 0x93d6: 0xe00034a2, 0x93d7: 0x40093e20,
-	0x93d8: 0xe0000e12, 0x93d9: 0xe000355a, 0x93da: 0xe0003554, 0x93db: 0xe0003566,
-	0x93dc: 0xe0003578, 0x93dd: 0xe0001102, 0x93de: 0x00318888, 0x93df: 0xe0000f7b,
-	0x93e0: 0xe00008f2, 0x93e1: 0xe00008ec, 0x93e2: 0xe000091e, 0x93e3: 0xe0000966,
-	0x93e4: 0xe0000958, 0x93e5: 0xe000094a, 0x93e6: 0xe00009d5, 0x93e7: 0xe0000a4d,
-	0x93e8: 0xe0003362, 0x93e9: 0xe000335c, 0x93ea: 0xe000336e, 0x93eb: 0xe000339a,
-	0x93ec: 0xe0003408, 0x93ed: 0xe0003402, 0x93ee: 0xe0003414, 0x93ef: 0xe0003420,
-	0x93f0: 0xe0000aad, 0x93f1: 0xe00036b6, 0x93f2: 0xe0003467, 0x93f3: 0xe0003461,
-	0x93f4: 0xe0003473, 0x93f5: 0xe00034b3, 0x93f6: 0xe000349f, 0x93f7: 0x40093c20,
-	0x93f8: 0xe0000e0f, 0x93f9: 0xe0003557, 0x93fa: 0xe0003551, 0x93fb: 0xe0003563,
-	0x93fc: 0xe0003575, 0x93fd: 0xe00010ff, 0x93fe: 0x40318820, 0x93ff: 0xe0001114,
-	// Block 0x250, offset 0x9400
-	0x9400: 0xe0003342, 0x9401: 0xe0000980, 0x9402: 0xe00032fe, 0x9403: 0xe00008f8,
-	0x9404: 0xe000333f, 0x9405: 0xe000097a, 0x9406: 0xe0000a38, 0x9407: 0xe0000a35,
-	0x9408: 0xe0000a3e, 0x9409: 0xe0000a3b, 0x940a: 0xe0000a4a, 0x940b: 0xe0000a47,
-	0x940c: 0xe0000a44, 0x940d: 0xe0000a41, 0x940e: 0xe0000a86, 0x940f: 0xe0000a83,
-	0x9410: 0xe0000aaa, 0x9411: 0xe0000aa7, 0x9412: 0xe00033c3, 0x9413: 0xe00033c0,
-	0x9414: 0xe000336b, 0x9415: 0xe0003368, 0x9416: 0xe00033a9, 0x9417: 0xe00033a6,
-	0x9418: 0xe00033bd, 0x9419: 0xe00033ba, 0x941a: 0xe0003397, 0x941b: 0xe0003394,
-	0x941c: 0xe0000bb8, 0x941d: 0xe0000bb5, 0x941e: 0xe0000bb2, 0x941f: 0xe0000baf,
-	0x9420: 0xe0000bc4, 0x9421: 0xe0000bc1, 0x9422: 0xe0000bca, 0x9423: 0xe0000bc7,
-	0x9424: 0xe000361e, 0x9425: 0xe000361b, 0x9426: 0xe0000c1b, 0x9427: 0xe0000c18,
-	0x9428: 0xe0003431, 0x9429: 0xe000342e, 0x942a: 0xe0003440, 0x942b: 0xe000343d,
-	0x942c: 0xe0003411, 0x942d: 0xe000340e, 0x942e: 0xe000343a, 0x942f: 0xe0003437,
-	0x9430: 0xe0003434, 0x9431: 0x402da220, 0x9432: 0xe0002575, 0x9433: 0xe0003010,
-	0x9434: 0xe0000c8a, 0x9435: 0xe0000c87, 0x9436: 0xe0003657, 0x9437: 0xe0003654,
-	0x9438: 0x402f7220, 0x9439: 0xe0003669, 0x943a: 0xe0003666, 0x943b: 0xe0003675,
-	0x943c: 0xe0003672, 0x943d: 0xe000366f, 0x943e: 0xe000366c, 0x943f: 0xe0000d04,
-	// Block 0x251, offset 0x9440
-	0x9440: 0xe0000cfe, 0x9441: 0xe0000cf8, 0x9442: 0xe0000cf5, 0x9443: 0xe00036a7,
-	0x9444: 0xe00036a4, 0x9445: 0xe00036c5, 0x9446: 0xe00036c2, 0x9447: 0xe00036b3,
-	0x9448: 0xe00036b0, 0x9449: 0xe00030dd, 0x944a: 0x002eda88, 0x944b: 0x402eda20,
-	0x944c: 0xe00034f0, 0x944d: 0xe00034ed, 0x944e: 0xe0003470, 0x944f: 0xe000346d,
-	0x9450: 0xe00034b0, 0x9451: 0xe00034ad, 0x9452: 0xe0000e93, 0x9453: 0xe0000e8f,
-	0x9454: 0xe0000eca, 0x9455: 0xe0000ec7, 0x9456: 0xe0000edc, 0x9457: 0xe0000ed9,
-	0x9458: 0xe0000ed0, 0x9459: 0xe0000ecd, 0x945a: 0xe0000f1f, 0x945b: 0xe0000f1c,
-	0x945c: 0xe0000f2d, 0x945d: 0xe0000f2a, 0x945e: 0xe0000f47, 0x945f: 0xe0000f44,
-	0x9460: 0xe0000f33, 0x9461: 0xe0000f30, 0x9462: 0xe0000f99, 0x9463: 0xe0000f96,
-	0x9464: 0xe0000f8a, 0x9465: 0xe0000f87, 0x9466: 0x00303688, 0x9467: 0x40303620,
-	0x9468: 0xe00035a4, 0x9469: 0xe00035a1, 0x946a: 0xe00035b8, 0x946b: 0xe00035b5,
-	0x946c: 0xe0003560, 0x946d: 0xe000355d, 0x946e: 0xe0003572, 0x946f: 0xe000356f,
-	0x9470: 0xe000359e, 0x9471: 0xe000359b, 0x9472: 0xe00035b2, 0x9473: 0xe00035af,
-	0x9474: 0xe00036ef, 0x9475: 0xe00036ec, 0x9476: 0xe000110e, 0x9477: 0xe000110b,
-	0x9478: 0xe0001117, 0x9479: 0xe000113b, 0x947a: 0xe0001138, 0x947b: 0xe000114d,
-	0x947c: 0xe000114a, 0x947d: 0xe0001147, 0x947e: 0xe0001144, 0x947f: 0xe0000f64,
-	// Block 0x252, offset 0x9480
-	0x9480: 0x402c1a20, 0x9481: 0x002c2a88, 0x9482: 0x002c3288, 0x9483: 0x402c3220,
-	0x9484: 0x0031c488, 0x9485: 0x4031c420, 0x9486: 0x002efa88, 0x9487: 0x002c4e88,
-	0x9488: 0x402c4e20, 0x9489: 0x002c7288, 0x948a: 0x002c7a88, 0x948b: 0x002c8488,
-	0x948c: 0x402c8420, 0x948d: 0xe000115c, 0x948e: 0x002cae88, 0x948f: 0x002cb888,
-	0x9490: 0x002cc288, 0x9491: 0x002d1688, 0x9492: 0x402d1620, 0x9493: 0x002d4488,
-	0x9494: 0x002d5888, 0x9495: 0x402d7820, 0x9496: 0x002dc288, 0x9497: 0x002db688,
-	0x9498: 0x002e0a88, 0x9499: 0x402e0a20, 0x949a: 0x402e3820, 0x949b: 0x402e7220,
-	0x949c: 0x0030a088, 0x949d: 0x002eb488, 0x949e: 0x402ebc20, 0x949f: 0x002f1088,
-	0x94a0: 0xe0003518, 0x94a1: 0xe0003515, 0x94a2: 0x002d6088, 0x94a3: 0x402d6020,
-	0x94a4: 0x002f3e88, 0x94a5: 0x402f3e20, 0x94a6: 0x002f8288, 0x94a7: 0x0031b488,
-	0x94a8: 0x4031b420, 0x94a9: 0x00300888, 0x94aa: 0x40301220, 0x94ab: 0x40304220,
-	0x94ac: 0x00304a88, 0x94ad: 0x40304a20, 0x94ae: 0x00305288, 0x94af: 0xe00035d8,
-	0x94b0: 0xe00035d5, 0x94b1: 0x0030b488, 0x94b2: 0x0030cc88, 0x94b3: 0x00311888,
-	0x94b4: 0x40311820, 0x94b5: 0x00313488, 0x94b6: 0x40313420, 0x94b7: 0x00316488,
-	0x94b8: 0x00316e88, 0x94b9: 0x40316e20, 0x94ba: 0x40317820, 0x94bb: 0x4031a620,
-	0x94bc: 0x0031bc88, 0x94bd: 0x4031bc20, 0x94be: 0xe0000fc9, 0x94bf: 0x40319420,
-	// Block 0x253, offset 0x94c0
-	0x94c0: 0x40321220, 0x94c1: 0x40321a20, 0x94c2: 0x40322220, 0x94c3: 0x40322a20,
-	0x94c4: 0xe0000ad5, 0x94c5: 0xe0000ad1, 0x94c6: 0xe0000acd, 0x94c7: 0xe0003040,
-	0x94c8: 0xe000303d, 0x94c9: 0xe000303a, 0x94ca: 0xe0003088, 0x94cb: 0xe0003085,
-	0x94cc: 0xe0003082, 0x94cd: 0xe0003324, 0x94ce: 0xe0000944, 0x94cf: 0xe000341d,
-	0x94d0: 0xe000341a, 0x94d1: 0xe000349c, 0x94d2: 0xe0003499, 0x94d3: 0xe000356c,
-	0x94d4: 0xe0003569, 0x94d5: 0xe0003597, 0x94d6: 0xe0003593, 0x94d7: 0xe000357f,
-	0x94d8: 0xe000357b, 0x94d9: 0xe000358f, 0x94da: 0xe000358b, 0x94db: 0xe0003587,
-	0x94dc: 0xe0003583, 0x94dd: 0x402cae20, 0x94de: 0xe0003331, 0x94df: 0xe000095e,
-	0x94e0: 0xe000333b, 0x94e1: 0xe0000972, 0x94e2: 0xe00009f4, 0x94e3: 0xe00009ef,
-	0x94e4: 0x002d3a88, 0x94e5: 0x402d3a20, 0x94e6: 0xe0000bbe, 0x94e7: 0xe0000bbb,
-	0x94e8: 0xe0003651, 0x94e9: 0xe000364e, 0x94ea: 0xe00034e2, 0x94eb: 0xe00034df,
-	0x94ec: 0xe00034e9, 0x94ed: 0xe00034e5, 0x94ee: 0xe0001162, 0x94ef: 0xe000115f,
-	0x94f0: 0xe0000c8d, 0x94f1: 0xf0000a0a, 0x94f2: 0xf000040a, 0x94f3: 0xf0000404,
-	0x94f4: 0xe0000bac, 0x94f5: 0xe0000ba9, 0x94f6: 0x002d7888, 0x94f7: 0x00319488,
-	0x94f8: 0xe00036ad, 0x94f9: 0xe00036aa, 0x94fa: 0xe000332a, 0x94fb: 0xe0000950,
-	0x94fc: 0xe00009ea, 0x94fd: 0xe00009e5, 0x94fe: 0xe0000e19, 0x94ff: 0xe0000e15,
-	// Block 0x254, offset 0x9500
-	0x9500: 0xe0003348, 0x9501: 0xe000098c, 0x9502: 0xe000334b, 0x9503: 0xe0000992,
-	0x9504: 0xe00033df, 0x9505: 0xe00033dc, 0x9506: 0xe00033e5, 0x9507: 0xe00033e2,
-	0x9508: 0xe000344c, 0x9509: 0xe0003449, 0x950a: 0xe0003452, 0x950b: 0xe000344f,
-	0x950c: 0xe000350c, 0x950d: 0xe0003509, 0x950e: 0xe0003512, 0x950f: 0xe000350f,
-	0x9510: 0xe0000ee8, 0x9511: 0xe0000ee5, 0x9512: 0xe0000eee, 0x9513: 0xe0000eeb,
-	0x9514: 0xe00035cc, 0x9515: 0xe00035c9, 0x9516: 0xe00035d2, 0x9517: 0xe00035cf,
-	0x9518: 0xe0000f61, 0x9519: 0xe0000f5e, 0x951a: 0xe0000fa5, 0x951b: 0xe0000fa2,
-	0x951c: 0x00312288, 0x951d: 0x40312220, 0x951e: 0xe0003624, 0x951f: 0xe0003621,
-	0x9520: 0x002ebc88, 0x9521: 0x402c8c20, 0x9522: 0x002f2288, 0x9523: 0x402f2220,
-	0x9524: 0x00314088, 0x9525: 0x40314020, 0x9526: 0xe0003338, 0x9527: 0xe000096c,
-	0x9528: 0xe00033af, 0x9529: 0xe00033ac, 0x952a: 0xe00034a9, 0x952b: 0xe00034a5,
-	0x952c: 0xe00034cd, 0x952d: 0xe00034c9, 0x952e: 0xe00034d4, 0x952f: 0xe00034d1,
-	0x9530: 0xe00034db, 0x9531: 0xe00034d7, 0x9532: 0xe0001129, 0x9533: 0xe0001126,
-	0x9534: 0x402e5e20, 0x9535: 0x402ed020, 0x9536: 0x40305a20, 0x9537: 0x402dd420,
-	0x9538: 0xe0000abf, 0x9539: 0xe0000ec4, 0x953a: 0x002be888, 0x953b: 0x002c4488,
-	0x953c: 0x402c4420, 0x953d: 0x002e3888, 0x953e: 0x00303e88, 0x953f: 0x402ffc20,
-	// Block 0x255, offset 0x9540
-	0x9540: 0x402f8220, 0x9541: 0x402fd820, 0x9542: 0x402ff420, 0x9543: 0x40300820,
-	0x9544: 0x402df620, 0x9545: 0x40301a20, 0x9546: 0x40302420, 0x9547: 0x40306420,
-	0x9548: 0x40305220, 0x9549: 0x40307c20, 0x954a: 0x4030b420, 0x954b: 0x4030cc20,
-	0x954c: 0x4030da20, 0x954d: 0x4030ee20, 0x954e: 0x402e7a20, 0x954f: 0x40310820,
-	0x9550: 0x40314820, 0x9551: 0x40315020, 0x9552: 0x40316420, 0x9553: 0x40318020,
-	0x9554: 0x4031cc20, 0x9555: 0x4031e820, 0x9556: 0x40320a20, 0x9557: 0x40323220,
-	0x9558: 0x40323a20, 0x9559: 0x402c1220, 0x955a: 0x402cf820, 0x955b: 0x402d4c20,
-	0x955c: 0x402d7020, 0x955d: 0x402de620, 0x955e: 0x402e1a20, 0x955f: 0x402e2a20,
-	0x9560: 0x402f6220, 0x9561: 0x4031fa20, 0x9562: 0x40320220, 0x9563: 0xe0000aca,
-	0x9564: 0xe0000adc, 0x9565: 0xe0000ad9, 0x9566: 0xe0000fcc, 0x9567: 0xe0000fcf,
-	0x9568: 0xe0000fba, 0x9569: 0xe0000ba1, 0x956a: 0xe0000d11, 0x956b: 0xe0000d18,
-	0x956c: 0x40324220, 0x956d: 0x40324a20, 0x956e: 0x40309020, 0x956f: 0x40309820,
-	0x9570: 0x002d6894, 0x9571: 0x002d8094, 0x9572: 0x002dcc94, 0x9573: 0x002f7a94,
-	0x9574: 0x002f9894, 0x9575: 0x002fac94, 0x9576: 0x002fd894, 0x9577: 0x0030e294,
-	0x9578: 0x00310094, 0x9579: 0x40064020, 0x957a: 0x40064420, 0x957b: 0x402bf620,
-	0x957c: 0x4031de20, 0x957d: 0x402d9820, 0x957e: 0x4031e220, 0x957f: 0x4031f020,
-	// Block 0x256, offset 0x9580
-	0x9580: 0xe0003359, 0x9581: 0xe00009ae, 0x9582: 0xe0000a22, 0x9583: 0xe0000a1f,
-	0x9584: 0xe0000a28, 0x9585: 0xe0000a25, 0x9586: 0xe0000a2e, 0x9587: 0xe0000a2b,
-	0x9588: 0xe0000a5a, 0x9589: 0xe0000a56, 0x958a: 0xe0000a8c, 0x958b: 0xe0000a89,
-	0x958c: 0xe0000a98, 0x958d: 0xe0000a95, 0x958e: 0xe0000aa4, 0x958f: 0xe0000aa1,
-	0x9590: 0xe0000a92, 0x9591: 0xe0000a8f, 0x9592: 0xe0000a9e, 0x9593: 0xe0000a9b,
-	0x9594: 0xe00033d2, 0x9595: 0xe00033ce, 0x9596: 0xe00033ca, 0x9597: 0xe00033c6,
-	0x9598: 0xe00033f9, 0x9599: 0xe00033f6, 0x959a: 0xe00033ff, 0x959b: 0xe00033fc,
-	0x959c: 0xe00033b6, 0x959d: 0xe00033b2, 0x959e: 0xe0000b8c, 0x959f: 0xe0000b89,
-	0x95a0: 0xe0000bd0, 0x95a1: 0xe0000bcd, 0x95a2: 0xe0003630, 0x95a3: 0xe000362d,
-	0x95a4: 0xe000363c, 0x95a5: 0xe0003639, 0x95a6: 0xe000362a, 0x95a7: 0xe0003627,
-	0x95a8: 0xe0003636, 0x95a9: 0xe0003633, 0x95aa: 0xe0003642, 0x95ab: 0xe000363f,
-	0x95ac: 0xe000345e, 0x95ad: 0xe000345b, 0x95ae: 0xe000342a, 0x95af: 0xe0003426,
-	0x95b0: 0xe000364b, 0x95b1: 0xe0003648, 0x95b2: 0xe000365d, 0x95b3: 0xe000365a,
-	0x95b4: 0xe0003663, 0x95b5: 0xe0003660, 0x95b6: 0xe000367b, 0x95b7: 0xe0003678,
-	0x95b8: 0xe0003682, 0x95b9: 0xe000367e, 0x95ba: 0xe000368f, 0x95bb: 0xe000368c,
-	0x95bc: 0xe0003689, 0x95bd: 0xe0003686, 0x95be: 0xe0003695, 0x95bf: 0xe0003692,
-	// Block 0x257, offset 0x95c0
-	0x95c0: 0xe000369b, 0x95c1: 0xe0003698, 0x95c2: 0xe00036a1, 0x95c3: 0xe000369e,
-	0x95c4: 0xe00036bf, 0x95c5: 0xe00036bc, 0x95c6: 0xe00036cb, 0x95c7: 0xe00036c8,
-	0x95c8: 0xe00036d7, 0x95c9: 0xe00036d4, 0x95ca: 0xe00036d1, 0x95cb: 0xe00036ce,
-	0x95cc: 0xe00034bd, 0x95cd: 0xe00034b9, 0x95ce: 0xe00034c5, 0x95cf: 0xe00034c1,
-	0x95d0: 0xe00034ff, 0x95d1: 0xe00034fb, 0x95d2: 0xe00034f7, 0x95d3: 0xe00034f3,
-	0x95d4: 0xe00036da, 0x95d5: 0xe0002997, 0x95d6: 0xe00036dd, 0x95d7: 0xe00029d7,
-	0x95d8: 0xe0000ed6, 0x95d9: 0xe0000ed3, 0x95da: 0xe0000ef4, 0x95db: 0xe0000ef1,
-	0x95dc: 0xe0000efb, 0x95dd: 0xe0000ef7, 0x95de: 0xe0000f02, 0x95df: 0xe0000eff,
-	0x95e0: 0xe0000f41, 0x95e1: 0xe0000f3e, 0x95e2: 0xe0000f53, 0x95e3: 0xe0000f50,
-	0x95e4: 0xe0000f26, 0x95e5: 0xe0000f22, 0x95e6: 0xe0000f3a, 0x95e7: 0xe0000f36,
-	0x95e8: 0xe0000f5a, 0x95e9: 0xe0000f56, 0x95ea: 0xe0000f93, 0x95eb: 0xe0000f90,
-	0x95ec: 0xe0000f9f, 0x95ed: 0xe0000f9c, 0x95ee: 0xe0000fb1, 0x95ef: 0xe0000fae,
-	0x95f0: 0xe0000fab, 0x95f1: 0xe0000fa8, 0x95f2: 0xe000360c, 0x95f3: 0xe0003609,
-	0x95f4: 0xe0003618, 0x95f5: 0xe0003615, 0x95f6: 0xe0003612, 0x95f7: 0xe000360f,
-	0x95f8: 0xe00035ab, 0x95f9: 0xe00035a7, 0x95fa: 0xe00035bf, 0x95fb: 0xe00035bb,
-	0x95fc: 0xe00010a9, 0x95fd: 0xe00010a6, 0x95fe: 0xe00010af, 0x95ff: 0xe00010ac,
-	// Block 0x258, offset 0x9600
-	0x9600: 0xe00036e9, 0x9601: 0xe00036e6, 0x9602: 0xe00036e3, 0x9603: 0xe00036e0,
-	0x9604: 0xe00036f8, 0x9605: 0xe00036f5, 0x9606: 0xe00036fb, 0x9607: 0xe00029fb,
-	0x9608: 0xe00036fe, 0x9609: 0xe00029fe, 0x960a: 0xe00010fc, 0x960b: 0xe00010f9,
-	0x960c: 0xe00010f6, 0x960d: 0xe00010f3, 0x960e: 0xe0001123, 0x960f: 0xe0001120,
-	0x9610: 0xe0001141, 0x9611: 0xe000113e, 0x9612: 0xe0001153, 0x9613: 0xe0001150,
-	0x9614: 0xe0001159, 0x9615: 0xe0001156, 0x9616: 0xe0003645, 0x9617: 0xe0000f8d,
-	0x9618: 0xe00036f2, 0x9619: 0xe0001111, 0x961a: 0xf0000404, 0x961b: 0xe0000f70,
-	0x961c: 0x40300420, 0x961d: 0x40300620, 0x961e: 0xe0000f7f, 0x961f: 0x402c9620,
-	0x9620: 0xe000334e, 0x9621: 0xe0000998, 0x9622: 0xe0003345, 0x9623: 0xe0000986,
-	0x9624: 0xe0003314, 0x9625: 0xe0000924, 0x9626: 0xe0003318, 0x9627: 0xe000092c,
-	0x9628: 0xe0003320, 0x9629: 0xe000093c, 0x962a: 0xe000331c, 0x962b: 0xe0000934,
-	0x962c: 0xe0003355, 0x962d: 0xe00009a6, 0x962e: 0xe0003301, 0x962f: 0xe00008fe,
-	0x9630: 0xe0003305, 0x9631: 0xe0000906, 0x9632: 0xe000330d, 0x9633: 0xe0000916,
-	0x9634: 0xe0003309, 0x9635: 0xe000090e, 0x9636: 0xe0003351, 0x9637: 0xe000099e,
-	0x9638: 0xe00033eb, 0x9639: 0xe00033e8, 0x963a: 0xe00033d9, 0x963b: 0xe00033d6,
-	0x963c: 0xe00033a3, 0x963d: 0xe00033a0, 0x963e: 0xe0003378, 0x963f: 0xe0003374,
-	// Block 0x259, offset 0x9640
-	0x9640: 0xe0003380, 0x9641: 0xe000337c, 0x9642: 0xe0003390, 0x9643: 0xe000338c,
-	0x9644: 0xe0003388, 0x9645: 0xe0003384, 0x9646: 0xe00033f2, 0x9647: 0xe00033ee,
-	0x9648: 0xe0003446, 0x9649: 0xe0003443, 0x964a: 0xe0003458, 0x964b: 0xe0003455,
-	0x964c: 0xe0003546, 0x964d: 0xe0003543, 0x964e: 0xe0003506, 0x964f: 0xe0003503,
-	0x9650: 0xe000347d, 0x9651: 0xe0003479, 0x9652: 0xe0003485, 0x9653: 0xe0003481,
-	0x9654: 0xe0003495, 0x9655: 0xe0003491, 0x9656: 0xe000348d, 0x9657: 0xe0003489,
-	0x9658: 0xe000354d, 0x9659: 0xe0003549, 0x965a: 0xe000351f, 0x965b: 0xe000351b,
-	0x965c: 0xe0003527, 0x965d: 0xe0003523, 0x965e: 0xe0003537, 0x965f: 0xe0003533,
-	0x9660: 0xe000352f, 0x9661: 0xe000352b, 0x9662: 0xe000353f, 0x9663: 0xe000353b,
-	0x9664: 0xe0003606, 0x9665: 0xe0003603, 0x9666: 0xe00035c6, 0x9667: 0xe00035c3,
-	0x9668: 0xe00035df, 0x9669: 0xe00035db, 0x966a: 0xe00035e7, 0x966b: 0xe00035e3,
-	0x966c: 0xe00035f7, 0x966d: 0xe00035f3, 0x966e: 0xe00035ef, 0x966f: 0xe00035eb,
-	0x9670: 0xe00035ff, 0x9671: 0xe00035fb, 0x9672: 0xe0001108, 0x9673: 0xe0001105,
-	0x9674: 0xe0001135, 0x9675: 0xe0001132, 0x9676: 0xe000112f, 0x9677: 0xe000112c,
-	0x9678: 0xe000111d, 0x9679: 0xe000111a, 0x967a: 0xe0000d0a, 0x967b: 0xe0000d07,
-	0x967c: 0x0030d888, 0x967d: 0x4030d820, 0x967e: 0x00312088, 0x967f: 0x40312020,
-	// Block 0x25a, offset 0x9680
-	0x9680: 0xe00009bc, 0x9681: 0xe00009c0, 0x9682: 0x002c3a8b, 0x9683: 0xf0000a04,
-	0x9684: 0x40081c20, 0x9685: 0xe0000a5e, 0x9686: 0xe0000a62, 0x9687: 0x002cc28a,
-	0x9688: 0x40081e20, 0x9689: 0xf0000a04, 0x968a: 0x002d2285, 0x968b: 0x002d688b,
-	0x968c: 0x002d688b, 0x968d: 0x002d688b, 0x968e: 0x002d6885, 0x968f: 0xf0000202,
-	0x9690: 0x002d9a8b, 0x9691: 0x002d9a8b, 0x9692: 0x002e228b, 0x9693: 0x002e2285,
-	0x9694: 0x40082020, 0x9695: 0x002e9e8b, 0x9696: 0xe000308e, 0x9697: 0x40082220,
-	0x9698: 0x40082420, 0x9699: 0x002f2c8b, 0x969a: 0x002f568b, 0x969b: 0x002f7a8b,
-	0x969c: 0x002f7a8b, 0x969d: 0x002f7a8b, 0x969e: 0x40082620, 0x969f: 0x40082820,
-	0x96a0: 0xe00030bb, 0x96a1: 0xe0000fbd, 0x96a2: 0xe00030ca, 0x96a3: 0x40082a20,
-	0x96a4: 0x00312a8b, 0x96a5: 0x40082c20, 0x96a6: 0x0032a288, 0x96a7: 0x40082e20,
-	0x96a8: 0x00312a8b, 0x96a9: 0x40083020, 0x96aa: 0x002bea83, 0x96ab: 0xe0003327,
-	0x96ac: 0x002c0a8b, 0x96ad: 0x002c3a8b, 0x96ae: 0x40083220, 0x96af: 0x002c9885,
-	0x96b0: 0x002c988b, 0x96b1: 0x002d088b, 0x96b2: 0x002d1e88, 0x96b3: 0x002e828b,
-	0x96b4: 0x002ee285, 0x96b5: 0x00389084, 0x96b6: 0x00389284, 0x96b7: 0x00389484,
-	0x96b8: 0x00389684, 0x96b9: 0x002d9a85, 0x96ba: 0x40083420, 0x96bb: 0xe0000b95,
-	0x96bc: 0x00327e85, 0x96bd: 0x00325685, 0x96be: 0x0032568b, 0x96bf: 0x00327e8b,
-	// Block 0x25b, offset 0x96c0
-	0x96c0: 0xe0000024, 0x96c1: 0xe0000029, 0x96c2: 0xe000002e, 0x96c3: 0xe0000033,
-	0x96c4: 0xe0000038, 0x96c5: 0xe000003d, 0x96c6: 0xe0000042, 0x96c7: 0xe0000047,
-	0x96c8: 0xf0001f04, 0x96c9: 0xf0001f04, 0x96ca: 0xf0001f04, 0x96cb: 0xf0001f04,
-	0x96cc: 0xf0001f04, 0x96cd: 0xf0001f04, 0x96ce: 0xf0001f04, 0x96cf: 0xf0001f04,
-	0x96d0: 0xf0001f04, 0x96d1: 0xf0000404, 0x96d2: 0xf0000404, 0x96d3: 0xf0000404,
-	0x96d4: 0xf0000404, 0x96d5: 0xf0000404, 0x96d6: 0xf0000404, 0x96d7: 0xf0000404,
-	0x96d8: 0xf0000404, 0x96d9: 0xf0000404, 0x96da: 0xf0000404, 0x96db: 0xf0000404,
-	0x96dc: 0xf0000404, 0x96dd: 0xf0000404, 0x96de: 0xf0000404, 0x96df: 0xf0000404,
-	0x96e0: 0xe00027f8, 0x96e1: 0xf0000404, 0x96e2: 0xf0000404, 0x96e3: 0xe0002810,
-	0x96e4: 0xe0002818, 0x96e5: 0xf0000404, 0x96e6: 0xe0002824, 0x96e7: 0xe000282c,
-	0x96e8: 0xe0002834, 0x96e9: 0xe000283c, 0x96ea: 0xe0002844, 0x96eb: 0xe000284c,
-	0x96ec: 0xf0000404, 0x96ed: 0xf0000404, 0x96ee: 0xf0000404, 0x96ef: 0xf0000404,
-	0x96f0: 0xe000286c, 0x96f1: 0xf0000404, 0x96f2: 0xe000287c, 0x96f3: 0xf0000404,
-	0x96f4: 0xf0000404, 0x96f5: 0xf0000404, 0x96f6: 0x002bde8c, 0x96f7: 0x002c0a8c,
-	0x96f8: 0x002c3a8c, 0x96f9: 0x002c628c, 0x96fa: 0x002c988c, 0x96fb: 0x002d088c,
-	0x96fc: 0x002d228c, 0x96fd: 0x002d688c, 0x96fe: 0x002d9a8c, 0x96ff: 0x002dcc8c,
-	// Block 0x25c, offset 0x9700
-	0x9700: 0xf0001f04, 0x9701: 0xf0001f04, 0x9702: 0xf0001f04, 0x9703: 0xf0001f04,
-	0x9704: 0xf0001f04, 0x9705: 0xf0001f04, 0x9706: 0xf0001f04, 0x9707: 0xf0001f04,
-	0x9708: 0xf0001f04, 0x9709: 0xf0000404, 0x970a: 0xf0000404, 0x970b: 0xf0000404,
-	0x970c: 0xe0002ffd, 0x970d: 0xe0000b85, 0x970e: 0xe0002fe5, 0x970f: 0xe0000d14,
-	0x9710: 0x00657693, 0x9711: 0x00657893, 0x9712: 0x00657a93, 0x9713: 0x00657e93,
-	0x9714: 0x00658093, 0x9715: 0x00658293, 0x9716: 0x00658493, 0x9717: 0x00658693,
-	0x9718: 0x00658893, 0x9719: 0x00658a93, 0x971a: 0x00658c93, 0x971b: 0x00658e93,
-	0x971c: 0x00659093, 0x971d: 0x00659293, 0x971e: 0x00659493, 0x971f: 0x00659693,
-	0x9720: 0x00659893, 0x9721: 0x00659a93, 0x9722: 0x00659c93, 0x9723: 0x00659e93,
-	0x9724: 0x0065a093, 0x9725: 0x0065a293, 0x9726: 0x0065a493, 0x9727: 0x0065a693,
-	0x9728: 0x0065a893, 0x9729: 0x0065aa93, 0x972a: 0x0065ac93, 0x972b: 0x0065ae93,
-	0x972c: 0x0065b093, 0x972d: 0x0065b293, 0x972e: 0x0065b493, 0x972f: 0x0065b693,
-	0x9730: 0x0065b893, 0x9731: 0x0065ba93, 0x9732: 0x0065bc93, 0x9733: 0x0065be93,
-	0x9734: 0x0065c093, 0x9735: 0x0065c493, 0x9736: 0x0065c693, 0x9737: 0x0065c893,
-	0x9738: 0x0065ca93, 0x9739: 0x0065cc93, 0x973a: 0x0065ce93, 0x973b: 0x0065d093,
-	0x973c: 0x0065d293, 0x973d: 0x0065d493, 0x973e: 0x0065d693,
-	// Block 0x25d, offset 0x9740
-	0x9740: 0xe000230b, 0x9741: 0xe00022f8, 0x9742: 0xe00022fc, 0x9743: 0xe0002311,
-	0x9744: 0xe0002316, 0x9745: 0xe000231d, 0x9746: 0xe0002321, 0x9747: 0xe0002325,
-	0x9748: 0xe000232b, 0x9749: 0xf0001c1c, 0x974a: 0xe0002330, 0x974b: 0xe000233c,
-	0x974c: 0xe0002340, 0x974d: 0xe0002337, 0x974e: 0xe0002346, 0x974f: 0xe000234b,
-	0x9750: 0xe000234f, 0x9751: 0xe0002353, 0x9752: 0xf0001c1c, 0x9753: 0xe000235e,
-	0x9754: 0xe0002358, 0x9755: 0xf0001c1c, 0x9756: 0xe0002363, 0x9757: 0xe000236d,
-	0x9758: 0xf0001f04, 0x9759: 0xf0001f04, 0x975a: 0xf0001f04, 0x975b: 0xf0001f04,
-	0x975c: 0xf0001f04, 0x975d: 0xf0001f04, 0x975e: 0xf0001f04, 0x975f: 0xf0001f04,
-	0x9760: 0xf0001f04, 0x9761: 0xf0001f04, 0x9762: 0xf0000404, 0x9763: 0xf0000404,
-	0x9764: 0xf0000404, 0x9765: 0xf0000404, 0x9766: 0xf0000404, 0x9767: 0xf0000404,
-	0x9768: 0xf0000404, 0x9769: 0xf0000404, 0x976a: 0xf0000404, 0x976b: 0xf0000404,
-	0x976c: 0xf0000404, 0x976d: 0xf0000404, 0x976e: 0xf0000404, 0x976f: 0xf0000404,
-	0x9770: 0xf0000404, 0x9771: 0xe0000c1e, 0x9772: 0xf0001c1c, 0x9773: 0xe0002991,
-	0x9774: 0xe0000a31, 0x9775: 0xe000309a, 0x9776: 0xe00030a3, 0x9777: 0xe0002fd9,
-	0x9778: 0xe0000ac2, 0x9779: 0xe0000ac6, 0x977a: 0xe0002578, 0x977b: 0xf0001c1c,
-	0x977c: 0xf0001c1c, 0x977d: 0xf0001c1c, 0x977e: 0xf0001c1c, 0x977f: 0xe0002431,
-	// Block 0x25e, offset 0x9780
-	0x9780: 0xe000309d, 0x9781: 0xe000307c, 0x9782: 0xf0001d1c, 0x9783: 0xe000304f,
-	0x9784: 0xe0003019, 0x9785: 0xe000301c, 0x9786: 0xe0003055, 0x9787: 0xf0001d1d,
-	0x9788: 0xe0000a6b, 0x9789: 0xe0000cb4, 0x978a: 0xe00030a6, 0x978b: 0xe000307f,
-	0x978c: 0xf0001d1c, 0x978d: 0xf0001c1c, 0x978e: 0xe000305e, 0x978f: 0xe000301f,
-	0x9790: 0xe0003006, 0x9791: 0xe0000cb9, 0x9792: 0xe0000d36, 0x9793: 0xe0000be3,
-	0x9794: 0xe0000fc5, 0x9795: 0xe00030e9, 0x9796: 0xe0003061, 0x9797: 0xe0002fd6,
-	0x9798: 0xe0003025, 0x9799: 0xe0002ff1, 0x979a: 0xe000308b, 0x979b: 0xe00030ec,
-	0x979c: 0xe0003064, 0x979d: 0xe0002e35, 0x979e: 0xe0003028, 0x979f: 0xe0000d3e,
-	0x97a0: 0xe0000a72, 0x97a1: 0xe0003049, 0x97a2: 0xe0000cbd, 0x97a3: 0xe0000d42,
-	0x97a4: 0xe0000a76, 0x97a5: 0xe000304c, 0x97a6: 0xe0000cc1, 0x97a7: 0xe0000d2d,
-	0x97a8: 0xe0000d31, 0x97a9: 0xe00030a0, 0x97aa: 0xe0000cc5, 0x97ab: 0xe0000d4a,
-	0x97ac: 0xe0000be7, 0x97ad: 0xe0000f0b, 0x97ae: 0xe0000f0f, 0x97af: 0xe0000f15,
-	0x97b0: 0xe00030af, 0x97b1: 0xe0003091, 0x97b2: 0xf0001c1c, 0x97b3: 0xe0003067,
-	0x97b4: 0xe00030b2, 0x97b5: 0xe0003094, 0x97b6: 0xf0001d1c, 0x97b7: 0xe000306a,
-	0x97b8: 0xe0003031, 0x97b9: 0xe000306d, 0x97ba: 0xe00030b5, 0x97bb: 0xe0003097,
-	0x97bc: 0xe00030f5, 0x97bd: 0xe0003073, 0x97be: 0xe0003034, 0x97bf: 0xe0003076,
-	// Block 0x25f, offset 0x97c0
-	0x97c0: 0xe0003037, 0x97c1: 0xe0003079, 0x97c2: 0xe00009b7, 0x97c3: 0xf0001c1d,
-	0x97c4: 0xf0001c1c, 0x97c5: 0xf0001c1c, 0x97c6: 0xe0000a66, 0x97c7: 0xe0000a7a,
-	0x97c8: 0xf0001d1c, 0x97c9: 0xf0001c1d, 0x97ca: 0xe0002ffa, 0x97cb: 0xe0003000,
-	0x97cc: 0xe0003013, 0x97cd: 0xe0003022, 0x97ce: 0xe000302b, 0x97cf: 0xe000302e,
-	0x97d0: 0xe0003043, 0x97d1: 0xe0003046, 0x97d2: 0xe0000d0d, 0x97d3: 0xe0002584,
-	0x97d4: 0xe0003052, 0x97d5: 0xe0000d3a, 0x97d6: 0xe0000d46, 0x97d7: 0xe00030a9,
-	0x97d8: 0xe0000eb0, 0x97d9: 0xe0000eb8, 0x97da: 0xe00030ac, 0x97db: 0xf0001c1c,
-	0x97dc: 0xf0001c1d, 0x97dd: 0xe00030d4, 0x97de: 0xe00010b2, 0x97df: 0xe00009c8,
-	0x97e0: 0xf0001f04, 0x97e1: 0xf0001f04, 0x97e2: 0xf0001f04, 0x97e3: 0xf0001f04,
-	0x97e4: 0xf0001f04, 0x97e5: 0xf0001f04, 0x97e6: 0xf0001f04, 0x97e7: 0xf0001f04,
-	0x97e8: 0xf0001f04, 0x97e9: 0xf0000404, 0x97ea: 0xf0000404, 0x97eb: 0xf0000404,
-	0x97ec: 0xf0000404, 0x97ed: 0xf0000404, 0x97ee: 0xf0000404, 0x97ef: 0xf0000404,
-	0x97f0: 0xf0000404, 0x97f1: 0xf0000404, 0x97f2: 0xf0000404, 0x97f3: 0xf0000404,
-	0x97f4: 0xf0000404, 0x97f5: 0xf0000404, 0x97f6: 0xf0000404, 0x97f7: 0xf0000404,
-	0x97f8: 0xf0000404, 0x97f9: 0xf0000404, 0x97fa: 0xf0000404, 0x97fb: 0xf0000404,
-	0x97fc: 0xf0000404, 0x97fd: 0xf0000404, 0x97fe: 0xf0000404, 0x97ff: 0xe0000bdf,
-	// Block 0x260, offset 0x9800
-	0x9800: 0xf0000404, 0x9801: 0xe0002feb, 0x9802: 0xe0002fee, 0x9803: 0xe0000b99,
-	0x9804: 0xe0000b9d, 0x9805: 0xe0000f83, 0x9806: 0xf0000404,
-	0x9813: 0xf0000404,
-	0x9814: 0xf0000404, 0x9815: 0xf0000404, 0x9816: 0xf0000404, 0x9817: 0xf0000404,
-	0x981d: 0xe000150b, 0x981e: 0xa1a09602, 0x981f: 0xe0001514,
-	0x9820: 0x0038ae85, 0x9821: 0x00389085, 0x9822: 0x00389685, 0x9823: 0x00389885,
-	0x9824: 0x0038a485, 0x9825: 0x0038a685, 0x9826: 0x0038a885, 0x9827: 0x0038b685,
-	0x9828: 0x0038ba85, 0x9829: 0x00093885, 0x982a: 0xe0001542, 0x982b: 0xe000153f,
-	0x982c: 0xe000154c, 0x982d: 0xe0001548, 0x982e: 0xe00014e1, 0x982f: 0xe00014e4,
-	0x9830: 0xe00014e7, 0x9831: 0xe00014ea, 0x9832: 0xe00014f0, 0x9833: 0xe00014f3,
-	0x9834: 0xe00014f6, 0x9835: 0xe00014fc, 0x9836: 0xe0001505,
-	0x9838: 0xe0001508, 0x9839: 0xe000150e, 0x983a: 0xe000151b, 0x983b: 0xe0001518,
-	0x983c: 0xe0001521, 0x983e: 0xe0001524,
-	// Block 0x261, offset 0x9840
-	0x9840: 0xf0001f04, 0x9841: 0xf0001f04, 0x9842: 0xf0001f04, 0x9843: 0xf0001f04,
-	0x9844: 0xf0001f04, 0x9845: 0xf0001f04, 0x9846: 0xf0001f04, 0x9847: 0xf0001f04,
-	0x9848: 0xf0001f04, 0x9849: 0xf0001f04, 0x984a: 0xf0001f04,
-	0x9850: 0xf0000a04, 0x9851: 0xf0000a04, 0x9852: 0xf0000a04, 0x9853: 0xf0000a04,
-	0x9854: 0xe00027fc, 0x9855: 0xf0000a04, 0x9856: 0xf0000a04, 0x9857: 0xe0002814,
-	0x9858: 0xe0002517, 0x9859: 0xf0000a04, 0x985a: 0xe0002828, 0x985b: 0xe0002830,
-	0x985c: 0xe0002838, 0x985d: 0xe0002840, 0x985e: 0xe0002848, 0x985f: 0xe0002850,
-	0x9860: 0xf0000a04, 0x9861: 0xf0000a04, 0x9862: 0xf0000a04, 0x9863: 0xf0000a04,
-	0x9864: 0xe0002870, 0x9865: 0xf0000a04, 0x9866: 0xe0002880, 0x9867: 0xf0000a04,
-	0x9868: 0xf0000a04, 0x9869: 0xf0000a04, 0x986a: 0xf0000a04, 0x986b: 0x002c3a8c,
-	0x986c: 0x002f7a8c, 0x986d: 0xf0000c0c, 0x986e: 0xe00030da,
-	0x9870: 0x002bde9d, 0x9871: 0x002c0a9d, 0x9872: 0x002c3a9d, 0x9873: 0x002c629d,
-	0x9874: 0x002c989d, 0x9875: 0x002d089d, 0x9876: 0x002d229d, 0x9877: 0x002d689d,
-	0x9878: 0x002d9a9d, 0x9879: 0x002dcc9d, 0x987a: 0x002dfe9d, 0x987b: 0x002e229d,
-	0x987c: 0x002e829d, 0x987d: 0x002e9e9d, 0x987e: 0x002ee29d, 0x987f: 0x002f2c9d,
-	// Block 0x262, offset 0x9880
-	0x9880: 0x002f569d, 0x9881: 0x002f7a9d, 0x9882: 0x002fe69d, 0x9883: 0x00302c9d,
-	0x9884: 0x00306c9d, 0x9885: 0x0030be9d, 0x9886: 0x0030e29d, 0x9887: 0x0030f69d,
-	0x9888: 0x0031009d, 0x9889: 0x00312a9d, 0x988a: 0xe0003003, 0x988b: 0xe0003070,
-	0x988c: 0xf0001d1d, 0x988d: 0xf0001d1d, 0x988e: 0xe0000ebc, 0x988f: 0xe00030d7,
-	0x9890: 0x002bde8c, 0x9891: 0x002c0a8c, 0x9892: 0x002c3a8c, 0x9893: 0x002c628c,
-	0x9894: 0x002c988c, 0x9895: 0x002d088c, 0x9896: 0x002d228c, 0x9897: 0x002d688c,
-	0x9898: 0x002d9a8c, 0x9899: 0x002dcc8c, 0x989a: 0x002dfe8c, 0x989b: 0x002e228c,
-	0x989c: 0x002e828c, 0x989d: 0x002e9e8c, 0x989e: 0x002ee28c, 0x989f: 0x002f2c8c,
-	0x98a0: 0x002f568c, 0x98a1: 0x002f7a8c, 0x98a2: 0x002fe68c, 0x98a3: 0x00302c8c,
-	0x98a4: 0x00306c8c, 0x98a5: 0x0030be8c, 0x98a6: 0x0030e28c, 0x98a7: 0x0030f68c,
-	0x98a8: 0x0031008c, 0x98a9: 0x00312a8c, 0x98aa: 0xe0003058, 0x98ab: 0xe000305b,
-	0x98b0: 0x002bde9d, 0x98b1: 0x002c0a9d, 0x98b2: 0x002c3a9d, 0x98b3: 0x002c629d,
-	0x98b4: 0x002c989d, 0x98b5: 0x002d089d, 0x98b6: 0x002d229d, 0x98b7: 0x002d689d,
-	0x98b8: 0x002d9a9d, 0x98b9: 0x002dcc9d, 0x98ba: 0x002dfe9d, 0x98bb: 0x002e229d,
-	0x98bc: 0x002e829d, 0x98bd: 0x002e9e9d, 0x98be: 0x002ee29d, 0x98bf: 0x002f2c9d,
-	// Block 0x263, offset 0x98c0
-	0x98c0: 0xa000f202, 0x98c1: 0x403fba21, 0x98c2: 0x403fba20, 0x98c3: 0x403fbc20,
-	0x98c4: 0x403fbc20, 0x98c5: 0x403fbe20, 0x98c6: 0x403fc020, 0x98c7: 0x403fcc20,
-	0x98c8: 0x403fce20, 0x98c9: 0x403fd020, 0x98ca: 0x403fd220, 0x98cb: 0x403fd420,
-	0x98cc: 0x403fd820, 0x98cd: 0x403fdc20, 0x98ce: 0x403fde20, 0x98cf: 0x403fe020,
-	0x98d0: 0x403fe220, 0x98d1: 0x403fe420, 0x98d2: 0x403fe620, 0x98d3: 0x403fe820,
-	0x98d4: 0x403fea20, 0x98d5: 0x403fec20, 0x98d6: 0x403fee20, 0x98d7: 0x403ff020,
-	0x98d8: 0x403ff420, 0x98d9: 0x403ff620, 0x98da: 0x403ff820, 0x98db: 0x403ffa20,
-	0x98dc: 0x403ffc20, 0x98dd: 0x40400220, 0x98de: 0x40400420, 0x98df: 0x40400620,
-	0x98e0: 0x40400820, 0x98e1: 0x40400a20, 0x98e2: 0x40400e20, 0x98e3: 0x40401020,
-	0x98e4: 0x40401220, 0x98e5: 0x40401420, 0x98e6: 0x40401620, 0x98e7: 0x40401820,
-	0x98e8: 0x40401a20, 0x98e9: 0xe0001830, 0x98ea: 0x40401c20, 0x98eb: 0x40401e20,
-	0x98ec: 0x40402020, 0x98ed: 0x40402420, 0x98ee: 0x40402620, 0x98ef: 0x40402820,
-	0x98f0: 0x40402c20, 0x98f1: 0xe0001839, 0x98f2: 0x40402e20, 0x98f3: 0x40403020,
-	0x98f4: 0xe000183c, 0x98f5: 0x40403220, 0x98f6: 0x40403420, 0x98f7: 0x40403620,
-	0x98f8: 0x40403820, 0x98f9: 0x40403a20, 0x98fa: 0x40404c20, 0x98fb: 0x40404e20,
-	0x98fc: 0xa070f102, 0x98fd: 0x40403c20, 0x98fe: 0x40404a20, 0x98ff: 0x40405620,
-	// Block 0x264, offset 0x9900
-	0x9900: 0xa0000000, 0x9901: 0xa0000000, 0x9902: 0xa0000000, 0x9903: 0xa0000000,
-	0x9904: 0xa0000000, 0x9905: 0xa0000000, 0x9906: 0xa0000000, 0x9907: 0xa0000000,
-	0x9908: 0xa0000000, 0x9909: 0x40020020, 0x990a: 0x40020220, 0x990b: 0x40020420,
-	0x990c: 0x40020620, 0x990d: 0x40020820, 0x990e: 0xa0000000, 0x990f: 0xa0000000,
-	0x9910: 0xa0000000, 0x9911: 0xa0000000, 0x9912: 0xa0000000, 0x9913: 0xa0000000,
-	0x9914: 0xa0000000, 0x9915: 0xa0000000, 0x9916: 0xa0000000, 0x9917: 0xa0000000,
-	0x9918: 0xa0000000, 0x9919: 0xa0000000, 0x991a: 0xa0000000, 0x991b: 0xa0000000,
-	0x991c: 0xa0000000, 0x991d: 0xa0000000, 0x991e: 0xa0000000, 0x991f: 0xa0000000,
-	0x9920: 0x40021220, 0x9921: 0x4002ba20, 0x9922: 0x4003e020, 0x9923: 0x4004ea20,
-	0x9924: 0x4027de20, 0x9925: 0x4004ec20, 0x9926: 0x4004e620, 0x9927: 0x4003d220,
-	0x9928: 0x4003f420, 0x9929: 0x4003f620, 0x992a: 0x4004d820, 0x992b: 0x40093820,
-	0x992c: 0x40024020, 0x992d: 0x40021a20, 0x992e: 0x4002e420, 0x992f: 0x4004e220,
-	0x9930: 0x4029cc20, 0x9931: 0x4029ce20, 0x9932: 0x4029d020, 0x9933: 0x4029d220,
-	0x9934: 0x4029d420, 0x9935: 0x4029d620, 0x9936: 0x4029d820, 0x9937: 0x4029da20,
-	0x9938: 0x4029dc20, 0x9939: 0x4029de20, 0x993a: 0x40026c20, 0x993b: 0x40026220,
-	0x993c: 0x40094020, 0x993d: 0x40094220, 0x993e: 0x40094420, 0x993f: 0x4002c420,
-	// Block 0x265, offset 0x9940
-	0x9940: 0x4004d620, 0x9941: 0x002bde88, 0x9942: 0x002c0a88, 0x9943: 0xc5872851,
-	0x9944: 0xc58d28d3, 0x9945: 0x002c9888, 0x9946: 0x002d0888, 0x9947: 0x002d2288,
-	0x9948: 0x002d6888, 0x9949: 0x002d9a88, 0x994a: 0x002dcc88, 0x994b: 0x002dfe88,
-	0x994c: 0xc59229a4, 0x994d: 0x002e8288, 0x994e: 0xc5972a12, 0x994f: 0x002ee288,
-	0x9950: 0x002f2c88, 0x9951: 0x002f5688, 0x9952: 0x002f7a88, 0x9953: 0xc3430991,
-	0x9954: 0x00302c88, 0x9955: 0x00306c88, 0x9956: 0x0030be88, 0x9957: 0x0030e288,
-	0x9958: 0x0030f688, 0x9959: 0x00310088, 0x995a: 0xc3630991, 0x995b: 0x4003f820,
-	0x995c: 0x4004e420, 0x995d: 0x4003fa20, 0x995e: 0x40062420, 0x995f: 0x40021620,
-	0x9960: 0x40061e20, 0x9961: 0x402bde20, 0x9962: 0x402c0a20, 0x9963: 0xc5842851,
-	0x9964: 0xc58a2882, 0x9965: 0x402c9820, 0x9966: 0x402d0820, 0x9967: 0x402d2220,
-	0x9968: 0x402d6820, 0x9969: 0x402d9a20, 0x996a: 0x402dcc20, 0x996b: 0x402dfe20,
-	0x996c: 0xc3772953, 0x996d: 0x402e8220, 0x996e: 0xc5272a01, 0x996f: 0x402ee220,
-	0x9970: 0x402f2c20, 0x9971: 0x402f5620, 0x9972: 0x402f7a20, 0x9973: 0xc3410991,
-	0x9974: 0x40302c20, 0x9975: 0x40306c20, 0x9976: 0x4030be20, 0x9977: 0x4030e220,
-	0x9978: 0x4030f620, 0x9979: 0x40310020, 0x997a: 0xc3610991, 0x997b: 0x4003fc20,
-	0x997c: 0x40094820, 0x997d: 0x4003fe20, 0x997e: 0x40094c20, 0x997f: 0xa0000000,
-	// Block 0x266, offset 0x9980
-	0x9980: 0xe0000983, 0x9981: 0xe0000980, 0x9982: 0xe00008fb, 0x9983: 0xe00008f8,
-	0x9984: 0xe000097d, 0x9985: 0xe000097a, 0x9986: 0x002c3e83, 0x9987: 0x402c3e20,
-	0x9988: 0xe0000a3e, 0x9989: 0xe0000a3b, 0x998a: 0xe0000a4a, 0x998b: 0xe0000a47,
-	0x998c: 0x002c3c83, 0x998d: 0x402c3c20, 0x998e: 0xe0000a86, 0x998f: 0xe0000a83,
-	0x9990: 0x002c6683, 0x9991: 0x402c6620, 0x9992: 0xe0000b46, 0x9993: 0xe0000b43,
-	0x9994: 0xe0000aee, 0x9995: 0xe0000aeb, 0x9996: 0xe0000b2c, 0x9997: 0xe0000b29,
-	0x9998: 0xe0000b40, 0x9999: 0xe0000b3d, 0x999a: 0xe0000b1a, 0x999b: 0xe0000b17,
-	0x999c: 0xe0000bb8, 0x999d: 0xe0000bb5, 0x999e: 0xe0000bb2, 0x999f: 0xe0000baf,
-	0x99a0: 0xe0000bc4, 0x99a1: 0xe0000bc1, 0x99a2: 0xe0000bca, 0x99a3: 0xe0000bc7,
-	0x99a4: 0xe0000bee, 0x99a5: 0xe0000beb, 0x99a6: 0xe0000c1b, 0x99a7: 0xe0000c18,
-	0x99a8: 0xe0000c51, 0x99a9: 0xe0000c4e, 0x99aa: 0xe0000c60, 0x99ab: 0xe0000c5d,
-	0x99ac: 0xe0000c31, 0x99ad: 0xe0000c2e, 0x99ae: 0xe0000c5a, 0x99af: 0xe0000c57,
-	0x99b0: 0xe0000c54, 0x99b1: 0x402da220, 0x99b2: 0xf0000a0a, 0x99b3: 0xf0000404,
-	0x99b4: 0xe0000c8a, 0x99b5: 0xe0000c87, 0x99b6: 0xe0000c9f, 0x99b7: 0xe0000c9c,
-	0x99b8: 0x402f7220, 0x99b9: 0xe0000ccc, 0x99ba: 0xe0000cc9, 0x99bb: 0xe0000cd8,
-	0x99bc: 0xe0000cd5, 0x99bd: 0xe0000cd2, 0x99be: 0xe0000ccf, 0x99bf: 0xe0000d04,
-	// Block 0x267, offset 0x99c0
-	0x99c0: 0xe0000cfe, 0x99c1: 0xe0000cf8, 0x99c2: 0xe0000cf5, 0x99c3: 0xe0000d51,
-	0x99c4: 0xe0000d4e, 0x99c5: 0xe0000d6f, 0x99c6: 0xe0000d6c, 0x99c7: 0xe0000d5d,
-	0x99c8: 0xe0000d5a, 0x99c9: 0xf0000404, 0x99ca: 0x002eda88, 0x99cb: 0x402eda20,
-	0x99cc: 0xe0000e2e, 0x99cd: 0xe0000e2b, 0x99ce: 0xe0000da0, 0x99cf: 0xe0000d9d,
-	0x99d0: 0xe0000de0, 0x99d1: 0xe0000ddd, 0x99d2: 0xe0000e93, 0x99d3: 0xe0000e8f,
-	0x99d4: 0xe0000eca, 0x99d5: 0xe0000ec7, 0x99d6: 0xe0000edc, 0x99d7: 0xe0000ed9,
-	0x99d8: 0xe0000ed0, 0x99d9: 0xe0000ecd, 0x99da: 0xe0000f1f, 0x99db: 0xe0000f1c,
-	0x99dc: 0xe0000f2d, 0x99dd: 0xe0000f2a, 0x99de: 0xe0000f47, 0x99df: 0xe0000f44,
-	0x99e0: 0x002fe883, 0x99e1: 0x402fe820, 0x99e2: 0xe0000f99, 0x99e3: 0xe0000f96,
-	0x99e4: 0xe0000f8a, 0x99e5: 0xe0000f87, 0x99e6: 0x00303688, 0x99e7: 0x40303620,
-	0x99e8: 0xe000102b, 0x99e9: 0xe0001028, 0x99ea: 0xe000103f, 0x99eb: 0xe000103c,
-	0x99ec: 0xe0000fe7, 0x99ed: 0xe0000fe4, 0x99ee: 0xe0000ff9, 0x99ef: 0xe0000ff6,
-	0x99f0: 0xe0001025, 0x99f1: 0xe0001022, 0x99f2: 0xe0001039, 0x99f3: 0xe0001036,
-	0x99f4: 0xe00010d8, 0x99f5: 0xe00010d5, 0x99f6: 0xe000110e, 0x99f7: 0xe000110b,
-	0x99f8: 0xe0001117, 0x99f9: 0xe000113b, 0x99fa: 0xe0001138, 0x99fb: 0xe000114d,
-	0x99fc: 0xe000114a, 0x99fd: 0x00312c83, 0x99fe: 0x40312c20, 0x99ff: 0xe0000f64,
-	// Block 0x268, offset 0x9a00
-	0x9a00: 0x40321220, 0x9a01: 0x40321a20, 0x9a02: 0x40322220, 0x9a03: 0x40322a20,
-	0x9a04: 0x002c6487, 0x9a05: 0x002c6485, 0x9a06: 0x002c6483, 0x9a07: 0x002e2487,
-	0x9a08: 0x002e2485, 0x9a09: 0x002e2483, 0x9a0a: 0x002ea087, 0x9a0b: 0x002ea085,
-	0x9a0c: 0x002ea083, 0x9a0d: 0xe0000947, 0x9a0e: 0xe0000944, 0x9a0f: 0xe0000c3d,
-	0x9a10: 0xe0000c3a, 0x9a11: 0xe0000dcc, 0x9a12: 0xe0000dc9, 0x9a13: 0xe0000ff3,
-	0x9a14: 0xe0000ff0, 0x9a15: 0xe000101e, 0x9a16: 0xe000101a, 0x9a17: 0xe0001006,
-	0x9a18: 0xe0001002, 0x9a19: 0xe0001016, 0x9a1a: 0xe0001012, 0x9a1b: 0xe000100e,
-	0x9a1c: 0xe000100a, 0x9a1d: 0x402cae20, 0x9a1e: 0xe0000962, 0x9a1f: 0xe000095e,
-	0x9a20: 0xe0000976, 0x9a21: 0xe0000972, 0x9a22: 0xe00009f4, 0x9a23: 0xe00009ef,
-	0x9a24: 0x002d3a88, 0x9a25: 0x402d3a20, 0x9a26: 0xe0000bbe, 0x9a27: 0xe0000bbb,
-	0x9a28: 0xe0000c99, 0x9a29: 0xe0000c96, 0x9a2a: 0xe0000e20, 0x9a2b: 0xe0000e1d,
-	0x9a2c: 0xe0000e27, 0x9a2d: 0xe0000e23, 0x9a2e: 0xe0001162, 0x9a2f: 0xe000115f,
-	0x9a30: 0xe0000c8d, 0x9a31: 0xf0000a0a, 0x9a32: 0xf000040a, 0x9a33: 0xf0000404,
-	0x9a34: 0xe0000bac, 0x9a35: 0xe0000ba9, 0x9a36: 0x002d7888, 0x9a37: 0x00319488,
-	0x9a38: 0xe0000d57, 0x9a39: 0xe0000d54, 0x9a3a: 0xe0000954, 0x9a3b: 0xe0000950,
-	0x9a3c: 0xe00009ea, 0x9a3d: 0xe00009e5, 0x9a3e: 0xe0000e19, 0x9a3f: 0xe0000e15,
-	// Block 0x269, offset 0x9a40
-	0x9a40: 0xe00009b1, 0x9a41: 0xe00009ae, 0x9a42: 0xe0000a22, 0x9a43: 0xe0000a1f,
-	0x9a44: 0xe0000a28, 0x9a45: 0xe0000a25, 0x9a46: 0xe0000a2e, 0x9a47: 0xe0000a2b,
-	0x9a48: 0xe0003704, 0x9a49: 0xe0003701, 0x9a4a: 0xe0000a8c, 0x9a4b: 0xe0000a89,
-	0x9a4c: 0xe0000a98, 0x9a4d: 0xe0000a95, 0x9a4e: 0xe0000aa4, 0x9a4f: 0xe0000aa1,
-	0x9a50: 0xe0000a92, 0x9a51: 0xe0000a8f, 0x9a52: 0xe0000a9e, 0x9a53: 0xe0000a9b,
-	0x9a54: 0xe0000b55, 0x9a55: 0xe0000b51, 0x9a56: 0xe0000b4d, 0x9a57: 0xe0000b49,
-	0x9a58: 0xe0000b7c, 0x9a59: 0xe0000b79, 0x9a5a: 0xe0000b82, 0x9a5b: 0xe0000b7f,
-	0x9a5c: 0xe0000b39, 0x9a5d: 0xe0000b35, 0x9a5e: 0xe0000b8c, 0x9a5f: 0xe0000b89,
-	0x9a60: 0xe0000bd0, 0x9a61: 0xe0000bcd, 0x9a62: 0xe0000c00, 0x9a63: 0xe0000bfd,
-	0x9a64: 0xe0000c0c, 0x9a65: 0xe0000c09, 0x9a66: 0xe0000bfa, 0x9a67: 0xe0000bf7,
-	0x9a68: 0xe0000c06, 0x9a69: 0xe0000c03, 0x9a6a: 0xe0000c12, 0x9a6b: 0xe0000c0f,
-	0x9a6c: 0xe0000c7e, 0x9a6d: 0xe0000c7b, 0x9a6e: 0xe0000c4a, 0x9a6f: 0xe0000c46,
-	0x9a70: 0xe0000c93, 0x9a71: 0xe0000c90, 0x9a72: 0xe0000cab, 0x9a73: 0xe0000ca8,
-	0x9a74: 0xe0000cb1, 0x9a75: 0xe0000cae, 0x9a76: 0xe0000cde, 0x9a77: 0xe0000cdb,
-	0x9a78: 0xe0000ce5, 0x9a79: 0xe0000ce1, 0x9a7a: 0xe0000cf2, 0x9a7b: 0xe0000cef,
-	0x9a7c: 0xe0000cec, 0x9a7d: 0xe0000ce9, 0x9a7e: 0xe0000d1e, 0x9a7f: 0xe0000d1b,
-	// Block 0x26a, offset 0x9a80
-	0x9a80: 0xa0000000, 0x9a81: 0xa0000000, 0x9a82: 0xa0000000, 0x9a83: 0xa0000000,
-	0x9a84: 0xa0000000, 0x9a85: 0xa0000000, 0x9a86: 0xa0000000, 0x9a87: 0xa0000000,
-	0x9a88: 0xa0000000, 0x9a89: 0x40020020, 0x9a8a: 0x40020220, 0x9a8b: 0x40020420,
-	0x9a8c: 0x40020620, 0x9a8d: 0x40020820, 0x9a8e: 0xa0000000, 0x9a8f: 0xa0000000,
-	0x9a90: 0xa0000000, 0x9a91: 0xa0000000, 0x9a92: 0xa0000000, 0x9a93: 0xa0000000,
-	0x9a94: 0xa0000000, 0x9a95: 0xa0000000, 0x9a96: 0xa0000000, 0x9a97: 0xa0000000,
-	0x9a98: 0xa0000000, 0x9a99: 0xa0000000, 0x9a9a: 0xa0000000, 0x9a9b: 0xa0000000,
-	0x9a9c: 0xa0000000, 0x9a9d: 0xa0000000, 0x9a9e: 0xa0000000, 0x9a9f: 0xa0000000,
-	0x9aa0: 0x40021220, 0x9aa1: 0x4002ba20, 0x9aa2: 0x4003e020, 0x9aa3: 0x4004ea20,
-	0x9aa4: 0x4027de20, 0x9aa5: 0x4004ec20, 0x9aa6: 0x4004e620, 0x9aa7: 0x4003d220,
-	0x9aa8: 0x4003f420, 0x9aa9: 0x4003f620, 0x9aaa: 0x4004d820, 0x9aab: 0x40093820,
-	0x9aac: 0x40024020, 0x9aad: 0x40021a20, 0x9aae: 0x4002e420, 0x9aaf: 0x4004e220,
-	0x9ab0: 0x4029cc20, 0x9ab1: 0x4029ce20, 0x9ab2: 0x4029d020, 0x9ab3: 0x4029d220,
-	0x9ab4: 0x4029d420, 0x9ab5: 0x4029d620, 0x9ab6: 0x4029d820, 0x9ab7: 0x4029da20,
-	0x9ab8: 0x4029dc20, 0x9ab9: 0x4029de20, 0x9aba: 0x40026c20, 0x9abb: 0x40026220,
-	0x9abc: 0x40094020, 0x9abd: 0x40094220, 0x9abe: 0x40094420, 0x9abf: 0x4002c420,
-	// Block 0x26b, offset 0x9ac0
-	0x9ac0: 0x4004d620, 0x9ac1: 0x002bde88, 0x9ac2: 0x002c0a88, 0x9ac3: 0xc59d2a64,
-	0x9ac4: 0xc5a72b14, 0x9ac5: 0x002c9888, 0x9ac6: 0x002d0888, 0x9ac7: 0xc5b32be4,
-	0x9ac8: 0x002d6888, 0x9ac9: 0x002d9a88, 0x9aca: 0x002dcc88, 0x9acb: 0x002dfe88,
-	0x9acc: 0xc5bd2cb6, 0x9acd: 0x002e8288, 0x9ace: 0xc5c72d84, 0x9acf: 0xc5cf0b21,
-	0x9ad0: 0x002f2c88, 0x9ad1: 0x002f5688, 0x9ad2: 0x002f7a88, 0x9ad3: 0xc5d52e14,
-	0x9ad4: 0xc5dd2ea4, 0x9ad5: 0xc5e50b21, 0x9ad6: 0x0030be88, 0x9ad7: 0x0030e288,
-	0x9ad8: 0x0030f688, 0x9ad9: 0x00310088, 0x9ada: 0xc5eb2f34, 0x9adb: 0x4003f820,
-	0x9adc: 0x4004e420, 0x9add: 0x4003fa20, 0x9ade: 0x40062420, 0x9adf: 0x40021620,
-	0x9ae0: 0x40061e20, 0x9ae1: 0x402bde20, 0x9ae2: 0x402c0a20, 0x9ae3: 0xc59a2a32,
-	0x9ae4: 0xc5a22ac2, 0x9ae5: 0x402c9820, 0x9ae6: 0x402d0820, 0x9ae7: 0xc5b02bb2,
-	0x9ae8: 0x402d6820, 0x9ae9: 0x402d9a20, 0x9aea: 0x402dcc20, 0x9aeb: 0x402dfe20,
-	0x9aec: 0xc5b82c44, 0x9aed: 0x402e8220, 0x9aee: 0xc5c42d52, 0x9aef: 0xc5cc0b21,
-	0x9af0: 0x402f2c20, 0x9af1: 0x402f5620, 0x9af2: 0x402f7a20, 0x9af3: 0xc5d22de2,
-	0x9af4: 0xc5da2e72, 0x9af5: 0xc5e20b21, 0x9af6: 0x4030be20, 0x9af7: 0x4030e220,
-	0x9af8: 0x4030f620, 0x9af9: 0x40310020, 0x9afa: 0xc5e82f02, 0x9afb: 0x4003fc20,
-	0x9afc: 0x40094820, 0x9afd: 0x4003fe20, 0x9afe: 0x40094c20, 0x9aff: 0xa0000000,
-	// Block 0x26c, offset 0x9b00
-	0x9b00: 0xe00008f5, 0x9b01: 0xe00008ef, 0x9b02: 0xe0000921, 0x9b03: 0xe0000969,
-	0x9b04: 0xe000095b, 0x9b05: 0xe000094d, 0x9b06: 0xe00009dd, 0x9b07: 0xe0000a53,
-	0x9b08: 0xe0000ae8, 0x9b09: 0xe0000ae2, 0x9b0a: 0xe0000af4, 0x9b0b: 0xe0000b20,
-	0x9b0c: 0xe0000c2b, 0x9b0d: 0xe0000c25, 0x9b0e: 0xe0000c37, 0x9b0f: 0xe0000c43,
-	0x9b10: 0xe0000ab3, 0x9b11: 0xe0000d63, 0x9b12: 0xe0000d9a, 0x9b13: 0xe0000d94,
-	0x9b14: 0xe0000da6, 0x9b15: 0xe0000de6, 0x9b16: 0x002ee483, 0x9b17: 0x40093e20,
-	0x9b18: 0xe0000e12, 0x9b19: 0xe0000fe1, 0x9b1a: 0xe0000fdb, 0x9b1b: 0xe0000fed,
-	0x9b1c: 0x00306e83, 0x9b1d: 0xe0001102, 0x9b1e: 0x00318888, 0x9b1f: 0xe0000f7b,
-	0x9b20: 0xe00008f2, 0x9b21: 0xe00008ec, 0x9b22: 0xe000091e, 0x9b23: 0xe0000966,
-	0x9b24: 0xe0000958, 0x9b25: 0xe000094a, 0x9b26: 0xe00009d5, 0x9b27: 0xe0000a4d,
-	0x9b28: 0xe0000ae5, 0x9b29: 0xe0000adf, 0x9b2a: 0xe0000af1, 0x9b2b: 0xe0000b1d,
-	0x9b2c: 0xe0000c28, 0x9b2d: 0xe0000c22, 0x9b2e: 0xe0000c34, 0x9b2f: 0xe0000c40,
-	0x9b30: 0xe0000aad, 0x9b31: 0xe0000d60, 0x9b32: 0xe0000d97, 0x9b33: 0xe0000d91,
-	0x9b34: 0xe0000da3, 0x9b35: 0xe0000de3, 0x9b36: 0x402ee420, 0x9b37: 0x40093c20,
-	0x9b38: 0xe0000e0f, 0x9b39: 0xe0000fde, 0x9b3a: 0xe0000fd8, 0x9b3b: 0xe0000fea,
-	0x9b3c: 0x40306e20, 0x9b3d: 0xe00010ff, 0x9b3e: 0x40318820, 0x9b3f: 0xe0001114,
-	// Block 0x26d, offset 0x9b40
-	0x9b40: 0xe0000cfe, 0x9b41: 0xe0000cf8, 0x9b42: 0xe0000cf5, 0x9b43: 0xe0000d51,
-	0x9b44: 0xe0000d4e, 0x9b45: 0xe0000d6f, 0x9b46: 0xe0000d6c, 0x9b47: 0xe0000d5d,
-	0x9b48: 0xe0000d5a, 0x9b49: 0xf0000404, 0x9b4a: 0x002eda88, 0x9b4b: 0x402eda20,
-	0x9b4c: 0xe0000e2e, 0x9b4d: 0xe0000e2b, 0x9b4e: 0xe0000da0, 0x9b4f: 0xe0000d9d,
-	0x9b50: 0x002ee4a3, 0x9b51: 0x402ee421, 0x9b52: 0xe0000e93, 0x9b53: 0xe0000e8f,
-	0x9b54: 0xe0000eca, 0x9b55: 0xe0000ec7, 0x9b56: 0xe0000edc, 0x9b57: 0xe0000ed9,
-	0x9b58: 0xe0000ed0, 0x9b59: 0xe0000ecd, 0x9b5a: 0xe0000f1f, 0x9b5b: 0xe0000f1c,
-	0x9b5c: 0xe0000f2d, 0x9b5d: 0xe0000f2a, 0x9b5e: 0xe0000f47, 0x9b5f: 0xe0000f44,
-	0x9b60: 0xe0000f33, 0x9b61: 0xe0000f30, 0x9b62: 0xe0000f99, 0x9b63: 0xe0000f96,
-	0x9b64: 0xe0000f8a, 0x9b65: 0xe0000f87, 0x9b66: 0x00303688, 0x9b67: 0x40303620,
-	0x9b68: 0xe000102b, 0x9b69: 0xe0001028, 0x9b6a: 0xe000103f, 0x9b6b: 0xe000103c,
-	0x9b6c: 0xe0000fe7, 0x9b6d: 0xe0000fe4, 0x9b6e: 0xe0000ff9, 0x9b6f: 0xe0000ff6,
-	0x9b70: 0x00306ea3, 0x9b71: 0x40306e21, 0x9b72: 0xe0001039, 0x9b73: 0xe0001036,
-	0x9b74: 0xe00010d8, 0x9b75: 0xe00010d5, 0x9b76: 0xe000110e, 0x9b77: 0xe000110b,
-	0x9b78: 0xe0001117, 0x9b79: 0xe000113b, 0x9b7a: 0xe0001138, 0x9b7b: 0xe000114d,
-	0x9b7c: 0xe000114a, 0x9b7d: 0xe0001147, 0x9b7e: 0xe0001144, 0x9b7f: 0xe0000f64,
-	// Block 0x26e, offset 0x9b80
-	0x9b80: 0x40321220, 0x9b81: 0x40321a20, 0x9b82: 0x40322220, 0x9b83: 0x40322a20,
-	0x9b84: 0xe0000ad5, 0x9b85: 0xe0000ad1, 0x9b86: 0xe0000acd, 0x9b87: 0xf0000a0a,
-	0x9b88: 0xf000040a, 0x9b89: 0xf0000404, 0x9b8a: 0xf0000a0a, 0x9b8b: 0xf000040a,
-	0x9b8c: 0xf0000404, 0x9b8d: 0xe0000947, 0x9b8e: 0xe0000944, 0x9b8f: 0xe0000c3d,
-	0x9b90: 0xe0000c3a, 0x9b91: 0xe0000dcc, 0x9b92: 0xe0000dc9, 0x9b93: 0xe0000ff3,
-	0x9b94: 0xe0000ff0, 0x9b95: 0xe00025a8, 0x9b96: 0xe00025a5, 0x9b97: 0xe0002596,
-	0x9b98: 0xe0002593, 0x9b99: 0xe00025a2, 0x9b9a: 0xe000259f, 0x9b9b: 0xe000259c,
-	0x9b9c: 0xe0002599, 0x9b9d: 0x402cae20, 0x9b9e: 0xe0000962, 0x9b9f: 0xe000095e,
-	0x9ba0: 0xe0000976, 0x9ba1: 0xe0000972, 0x9ba2: 0xe00009f4, 0x9ba3: 0xe00009ef,
-	0x9ba4: 0x002d3a88, 0x9ba5: 0x402d3a20, 0x9ba6: 0xe0000bbe, 0x9ba7: 0xe0000bbb,
-	0x9ba8: 0xe0000c99, 0x9ba9: 0xe0000c96, 0x9baa: 0xe0000e20, 0x9bab: 0xe0000e1d,
-	0x9bac: 0xe0000e27, 0x9bad: 0xe0000e23, 0x9bae: 0xe0001162, 0x9baf: 0xe000115f,
-	0x9bb0: 0xe0000c8d, 0x9bb1: 0xf0000a0a, 0x9bb2: 0xf000040a, 0x9bb3: 0xf0000404,
-	0x9bb4: 0xe0000bac, 0x9bb5: 0xe0000ba9, 0x9bb6: 0x002d7888, 0x9bb7: 0x00319488,
-	0x9bb8: 0xe0000d57, 0x9bb9: 0xe0000d54, 0x9bba: 0xe0000954, 0x9bbb: 0xe0000950,
-	0x9bbc: 0xe00009ea, 0x9bbd: 0xe00009e5, 0x9bbe: 0xe0000e19, 0x9bbf: 0xe0000e15,
-	// Block 0x26f, offset 0x9bc0
-	0x9bc0: 0xe000098f, 0x9bc1: 0xe000098c, 0x9bc2: 0xe0000995, 0x9bc3: 0xe0000992,
-	0x9bc4: 0xe0000b62, 0x9bc5: 0xe0000b5f, 0x9bc6: 0xe0000b68, 0x9bc7: 0xe0000b65,
-	0x9bc8: 0xe0000c6c, 0x9bc9: 0xe0000c69, 0x9bca: 0xe0000c72, 0x9bcb: 0xe0000c6f,
-	0x9bcc: 0xe0000e4a, 0x9bcd: 0xe0000e47, 0x9bce: 0xe0000e50, 0x9bcf: 0xe0000e4d,
-	0x9bd0: 0xe0000ee8, 0x9bd1: 0xe0000ee5, 0x9bd2: 0xe0000eee, 0x9bd3: 0xe0000eeb,
-	0x9bd4: 0xe0001053, 0x9bd5: 0xe0001050, 0x9bd6: 0xe0001059, 0x9bd7: 0xe0001056,
-	0x9bd8: 0xe0000f61, 0x9bd9: 0xe0000f5e, 0x9bda: 0xe0000fa5, 0x9bdb: 0xe0000fa2,
-	0x9bdc: 0x00312288, 0x9bdd: 0x40312220, 0x9bde: 0xe0000bf4, 0x9bdf: 0xe0000bf1,
-	0x9be0: 0x002ebc88, 0x9be1: 0x402c8c20, 0x9be2: 0x002f2288, 0x9be3: 0x402f2220,
-	0x9be4: 0x00314088, 0x9be5: 0x40314020, 0x9be6: 0xe000096f, 0x9be7: 0xe000096c,
-	0x9be8: 0xe0000b32, 0x9be9: 0xe0000b2f, 0x9bea: 0xe0002590, 0x9beb: 0xe000258d,
-	0x9bec: 0xe0000dfd, 0x9bed: 0xe0000df9, 0x9bee: 0xe0000e04, 0x9bef: 0xe0000e01,
-	0x9bf0: 0xe0000e0b, 0x9bf1: 0xe0000e07, 0x9bf2: 0xe0001129, 0x9bf3: 0xe0001126,
-	0x9bf4: 0x402e5e20, 0x9bf5: 0x402ed020, 0x9bf6: 0x40305a20, 0x9bf7: 0x402dd420,
-	0x9bf8: 0xe0000abf, 0x9bf9: 0xe0000ec4, 0x9bfa: 0x002be888, 0x9bfb: 0x002c4488,
-	0x9bfc: 0x402c4420, 0x9bfd: 0x002e3888, 0x9bfe: 0x00303e88, 0x9bff: 0x402ffc20,
-	// Block 0x270, offset 0x9c00
-	0x9c00: 0x00339288, 0x9c01: 0x40339220, 0x9c02: 0x0033a088, 0x9c03: 0x4033a020,
-	0x9c04: 0x0033ee88, 0x9c05: 0x4033ee20, 0x9c06: 0x00341088, 0x9c07: 0x40341020,
-	0x9c08: 0x0034a488, 0x9c09: 0x4034a420, 0x9c0a: 0x0034ec88, 0x9c0b: 0x4034ec20,
-	0x9c0c: 0x00354288, 0x9c0d: 0x40354220, 0x9c0e: 0x00355688, 0x9c0f: 0x40355620,
-	0x9c10: 0x0033f088, 0x9c11: 0x4033f020, 0x9c12: 0x00349688, 0x9c13: 0x40349620,
-	0x9c14: 0x0034a688, 0x9c15: 0x4034a620, 0x9c16: 0x00353888, 0x9c17: 0x40353820,
-	0x9c18: 0x0036cc88, 0x9c19: 0x4036cc20, 0x9c1a: 0x00348288, 0x9c1b: 0x40348220,
-	0x9c1c: 0x00372e88, 0x9c1d: 0x40372e20, 0x9c1e: 0x00348088, 0x9c1f: 0x40348020,
-	0x9c20: 0x00349888, 0x9c21: 0x40349820, 0x9c22: 0x0034da88, 0x9c23: 0x4034da20,
-	0x9c24: 0x00351688, 0x9c25: 0x40351620, 0x9c26: 0x0035dc88, 0x9c27: 0x4035dc20,
-	0x9c31: 0x00384288, 0x9c32: 0x00384488, 0x9c33: 0x00384688,
-	0x9c34: 0x00384888, 0x9c35: 0xc5f02f91, 0x9c36: 0x00384c88, 0x9c37: 0x00384e88,
-	0x9c38: 0x00385088, 0x9c39: 0x00385288, 0x9c3a: 0x00385488, 0x9c3b: 0x00385688,
-	0x9c3c: 0x00385888, 0x9c3d: 0x00385a88, 0x9c3e: 0x00385c88, 0x9c3f: 0x00385e88,
-	// Block 0x271, offset 0x9c40
-	0x9c40: 0x40388020, 0x9c41: 0x40388220, 0x9c42: 0x40388420, 0x9c43: 0x40388620,
-	0x9c44: 0x40388820, 0x9c45: 0x40388a20, 0x9c46: 0x40388c20, 0x9c47: 0x40388a20,
-	0x9c49: 0x40026e20, 0x9c4a: 0x40021c20,
-	0x9c4f: 0x4027e420,
-	0x9c51: 0xadc00000, 0x9c52: 0xae600000, 0x9c53: 0xae600000,
-	0x9c54: 0xae600000, 0x9c55: 0xae600000, 0x9c56: 0xadc00000, 0x9c57: 0xae600000,
-	0x9c58: 0xae600000, 0x9c59: 0xae600000, 0x9c5a: 0xade00000, 0x9c5b: 0xadc00000,
-	0x9c5c: 0xae600000, 0x9c5d: 0xae600000, 0x9c5e: 0xae600000, 0x9c5f: 0xae600000,
-	0x9c60: 0xae600000, 0x9c61: 0xae600000, 0x9c62: 0xadc00000, 0x9c63: 0xadc00000,
-	0x9c64: 0xadc00000, 0x9c65: 0xadc00000, 0x9c66: 0xadc00000, 0x9c67: 0xadc00000,
-	0x9c68: 0xae600000, 0x9c69: 0xae600000, 0x9c6a: 0xadc00000, 0x9c6b: 0xae600000,
-	0x9c6c: 0xae600000, 0x9c6d: 0xade00000, 0x9c6e: 0xae400000, 0x9c6f: 0xae600000,
-	0x9c70: 0xa0a08502, 0x9c71: 0xa0b08602, 0x9c72: 0xa0c08702, 0x9c73: 0xa0d08802,
-	0x9c74: 0xa0e08902, 0x9c75: 0xa0f08a02, 0x9c76: 0xa1008b02, 0x9c77: 0xa1108c02,
-	0x9c78: 0xa1208d02, 0x9c79: 0xa1308e02, 0x9c7a: 0xa1308e02, 0x9c7b: 0xa1408f02,
-	0x9c7c: 0xa1509202, 0x9c7d: 0xa1600000, 0x9c7e: 0x40055420, 0x9c7f: 0xa1709502,
-	// Block 0x272, offset 0x9c80
-	0x9c80: 0xa0000000, 0x9c81: 0xa0000000, 0x9c82: 0xa0000000, 0x9c83: 0xa0000000,
-	0x9c84: 0xa0000000, 0x9c85: 0xa0000000, 0x9c86: 0xa0000000, 0x9c87: 0xa0000000,
-	0x9c88: 0xa0000000, 0x9c89: 0x40020020, 0x9c8a: 0x40020220, 0x9c8b: 0x40020420,
-	0x9c8c: 0x40020620, 0x9c8d: 0x40020820, 0x9c8e: 0xa0000000, 0x9c8f: 0xa0000000,
-	0x9c90: 0xa0000000, 0x9c91: 0xa0000000, 0x9c92: 0xa0000000, 0x9c93: 0xa0000000,
-	0x9c94: 0xa0000000, 0x9c95: 0xa0000000, 0x9c96: 0xa0000000, 0x9c97: 0xa0000000,
-	0x9c98: 0xa0000000, 0x9c99: 0xa0000000, 0x9c9a: 0xa0000000, 0x9c9b: 0xa0000000,
-	0x9c9c: 0xa0000000, 0x9c9d: 0xa0000000, 0x9c9e: 0xa0000000, 0x9c9f: 0xa0000000,
-	0x9ca0: 0x40021220, 0x9ca1: 0x4002ba20, 0x9ca2: 0x4003e020, 0x9ca3: 0x4004ea20,
-	0x9ca4: 0x4027de20, 0x9ca5: 0x4004ec20, 0x9ca6: 0x4004e620, 0x9ca7: 0x4003d220,
-	0x9ca8: 0x4003f420, 0x9ca9: 0x4003f620, 0x9caa: 0x4004d820, 0x9cab: 0x40093820,
-	0x9cac: 0x40024020, 0x9cad: 0x40021a20, 0x9cae: 0x4002e420, 0x9caf: 0x4004e220,
-	0x9cb0: 0x4029cc20, 0x9cb1: 0x4029ce20, 0x9cb2: 0x4029d020, 0x9cb3: 0x4029d220,
-	0x9cb4: 0x4029d420, 0x9cb5: 0x4029d620, 0x9cb6: 0x4029d820, 0x9cb7: 0x4029da20,
-	0x9cb8: 0x4029dc20, 0x9cb9: 0x4029de20, 0x9cba: 0x40026c20, 0x9cbb: 0x40026220,
-	0x9cbc: 0x40094020, 0x9cbd: 0x40094220, 0x9cbe: 0x40094420, 0x9cbf: 0x4002c420,
-	// Block 0x273, offset 0x9cc0
-	0x9cc0: 0x4004d620, 0x9cc1: 0x002bde88, 0x9cc2: 0x002c0a88, 0x9cc3: 0xc5f409c2,
-	0x9cc4: 0x002c6288, 0x9cc5: 0x002c9888, 0x9cc6: 0x002d0888, 0x9cc7: 0xc5fb2fe6,
-	0x9cc8: 0x002d6888, 0x9cc9: 0xc6043041, 0x9cca: 0x002dcc88, 0x9ccb: 0xc6093084,
-	0x9ccc: 0xc0030002, 0x9ccd: 0x002e8288, 0x9cce: 0xc6123105, 0x9ccf: 0xc33f3041,
-	0x9cd0: 0x002f2c88, 0x9cd1: 0x002f5688, 0x9cd2: 0x002f7a88, 0x9cd3: 0xc57509c2,
-	0x9cd4: 0x00302c88, 0x9cd5: 0xc3473041, 0x9cd6: 0x0030be88, 0x9cd7: 0x0030e288,
-	0x9cd8: 0x0030f688, 0x9cd9: 0x00310088, 0x9cda: 0x00312a88, 0x9cdb: 0x4003f820,
-	0x9cdc: 0x4004e420, 0x9cdd: 0x4003fa20, 0x9cde: 0x40062420, 0x9cdf: 0x40021620,
-	0x9ce0: 0x40061e20, 0x9ce1: 0x402bde20, 0x9ce2: 0x402c0a20, 0x9ce3: 0xc5f209b1,
-	0x9ce4: 0x402c6220, 0x9ce5: 0x402c9820, 0x9ce6: 0x402d0820, 0x9ce7: 0xc5f72fb3,
-	0x9ce8: 0x402d6820, 0x9ce9: 0xc6023041, 0x9cea: 0x402dcc20, 0x9ceb: 0xc6063062,
-	0x9cec: 0xc0000002, 0x9ced: 0x402e8220, 0x9cee: 0xc60e30c3, 0x9cef: 0xc33d3041,
-	0x9cf0: 0x402f2c20, 0x9cf1: 0x402f5620, 0x9cf2: 0x402f7a20, 0x9cf3: 0xc34109b1,
-	0x9cf4: 0x40302c20, 0x9cf5: 0xc3453041, 0x9cf6: 0x4030be20, 0x9cf7: 0x4030e220,
-	0x9cf8: 0x4030f620, 0x9cf9: 0x40310020, 0x9cfa: 0x40312a20, 0x9cfb: 0x4003fc20,
-	0x9cfc: 0x40094820, 0x9cfd: 0x4003fe20, 0x9cfe: 0x40094c20, 0x9cff: 0xa0000000,
-	// Block 0x274, offset 0x9d00
-	0x9d00: 0xe0000d24, 0x9d01: 0xe0000d21, 0x9d02: 0xe0000d2a, 0x9d03: 0xe0000d27,
-	0x9d04: 0x002ea083, 0x9d05: 0x402ea020, 0x9d06: 0xe0000d7b, 0x9d07: 0xe0000d78,
-	0x9d08: 0xe0000d87, 0x9d09: 0xe0000d84, 0x9d0a: 0xe0000d81, 0x9d0b: 0xe0000d7e,
-	0x9d0c: 0xe0000ded, 0x9d0d: 0xe0000de9, 0x9d0e: 0xe0000df5, 0x9d0f: 0xe0000df1,
-	0x9d10: 0xe0000e3d, 0x9d11: 0xe0000e39, 0x9d12: 0xe0000e35, 0x9d13: 0xe0000e31,
-	0x9d14: 0xe0000ea7, 0x9d15: 0xe0000ea4, 0x9d16: 0xe0000ead, 0x9d17: 0xe0000eaa,
-	0x9d18: 0xe0000ed6, 0x9d19: 0xe0000ed3, 0x9d1a: 0xe0000ef4, 0x9d1b: 0xe0000ef1,
-	0x9d1c: 0xe0000efb, 0x9d1d: 0xe0000ef7, 0x9d1e: 0xe0000f02, 0x9d1f: 0xe0000eff,
-	0x9d20: 0xe0000f41, 0x9d21: 0xe0000f3e, 0x9d22: 0xe0000f53, 0x9d23: 0xe0000f50,
-	0x9d24: 0xe0000f26, 0x9d25: 0xe0000f22, 0x9d26: 0xe0000f3a, 0x9d27: 0xe0000f36,
-	0x9d28: 0xe0000f5a, 0x9d29: 0xe0000f56, 0x9d2a: 0xe0000f93, 0x9d2b: 0xe0000f90,
-	0x9d2c: 0xe0000f9f, 0x9d2d: 0xe0000f9c, 0x9d2e: 0xe0000fb1, 0x9d2f: 0xe0000fae,
-	0x9d30: 0xe0000fab, 0x9d31: 0xe0000fa8, 0x9d32: 0xe0001093, 0x9d33: 0xe0001090,
-	0x9d34: 0xe000109f, 0x9d35: 0xe000109c, 0x9d36: 0xe0001099, 0x9d37: 0xe0001096,
-	0x9d38: 0xe0001032, 0x9d39: 0xe000102e, 0x9d3a: 0xe0001046, 0x9d3b: 0xe0001042,
-	0x9d3c: 0xe00010a9, 0x9d3d: 0xe00010a6, 0x9d3e: 0xe00010af, 0x9d3f: 0xe00010ac,
-	// Block 0x275, offset 0x9d40
-	0x9d40: 0xe0000b03, 0x9d41: 0xe0000aff, 0x9d42: 0xe0000b13, 0x9d43: 0xe0000b0f,
-	0x9d44: 0xe0000b0b, 0x9d45: 0xe0000b07, 0x9d46: 0xe0000b75, 0x9d47: 0xe0000b71,
-	0x9d48: 0xe0000c66, 0x9d49: 0xe0000c63, 0x9d4a: 0x002d9c83, 0x9d4b: 0x402d9c20,
-	0x9d4c: 0x002ee483, 0x9d4d: 0x402ee420, 0x9d4e: 0xe0000e44, 0x9d4f: 0xe0000e41,
-	0x9d50: 0xe0000dad, 0x9d51: 0xe0000da9, 0x9d52: 0xe0000db5, 0x9d53: 0xe0000db1,
-	0x9d54: 0xe0000dc5, 0x9d55: 0xe0000dc1, 0x9d56: 0xe0000dbd, 0x9d57: 0xe0000db9,
-	0x9d58: 0xe000375b, 0x9d59: 0xe0003758, 0x9d5a: 0xe0000e5d, 0x9d5b: 0xe0000e59,
-	0x9d5c: 0xe0000e65, 0x9d5d: 0xe0000e61, 0x9d5e: 0xe0000e75, 0x9d5f: 0xe0000e71,
-	0x9d60: 0xe0000e6d, 0x9d61: 0xe0000e69, 0x9d62: 0xe0003761, 0x9d63: 0xe000375e,
-	0x9d64: 0x00306e83, 0x9d65: 0x40306e20, 0x9d66: 0xe000104d, 0x9d67: 0xe000104a,
-	0x9d68: 0xe0001066, 0x9d69: 0xe0001062, 0x9d6a: 0xe000106e, 0x9d6b: 0xe000106a,
-	0x9d6c: 0xe000107e, 0x9d6d: 0xe000107a, 0x9d6e: 0xe0001076, 0x9d6f: 0xe0001072,
-	0x9d70: 0xe0003767, 0x9d71: 0xe0003764, 0x9d72: 0xe0001108, 0x9d73: 0xe0001105,
-	0x9d74: 0xe0001135, 0x9d75: 0xe0001132, 0x9d76: 0xe000112f, 0x9d77: 0xe000112c,
-	0x9d78: 0xe000111d, 0x9d79: 0xe000111a, 0x9d7a: 0xe0000d0a, 0x9d7b: 0xe0000d07,
-	0x9d7c: 0x0030d888, 0x9d7d: 0x4030d820, 0x9d7e: 0x00312088, 0x9d7f: 0x40312020,
-	// Block 0x276, offset 0x9d80
-	0x9d80: 0xa0000000, 0x9d81: 0xa0000000, 0x9d82: 0xa0000000, 0x9d83: 0xa0000000,
-	0x9d84: 0xa0000000, 0x9d85: 0xa0000000, 0x9d86: 0xa0000000, 0x9d87: 0xa0000000,
-	0x9d88: 0xa0000000, 0x9d89: 0x40020020, 0x9d8a: 0x40020220, 0x9d8b: 0x40020420,
-	0x9d8c: 0x40020620, 0x9d8d: 0x40020820, 0x9d8e: 0xa0000000, 0x9d8f: 0xa0000000,
-	0x9d90: 0xa0000000, 0x9d91: 0xa0000000, 0x9d92: 0xa0000000, 0x9d93: 0xa0000000,
-	0x9d94: 0xa0000000, 0x9d95: 0xa0000000, 0x9d96: 0xa0000000, 0x9d97: 0xa0000000,
-	0x9d98: 0xa0000000, 0x9d99: 0xa0000000, 0x9d9a: 0xa0000000, 0x9d9b: 0xa0000000,
-	0x9d9c: 0xa0000000, 0x9d9d: 0xa0000000, 0x9d9e: 0xa0000000, 0x9d9f: 0xa0000000,
-	0x9da0: 0x40021220, 0x9da1: 0x4002ba20, 0x9da2: 0x4003e020, 0x9da3: 0x4004ea20,
-	0x9da4: 0x4027de20, 0x9da5: 0x4004ec20, 0x9da6: 0x4004e620, 0x9da7: 0x4003d220,
-	0x9da8: 0x4003f420, 0x9da9: 0x4003f620, 0x9daa: 0x4004d820, 0x9dab: 0x40093820,
-	0x9dac: 0x40024020, 0x9dad: 0x40021a20, 0x9dae: 0x4002e420, 0x9daf: 0x4004e220,
-	0x9db0: 0x4029cc20, 0x9db1: 0x4029ce20, 0x9db2: 0x4029d020, 0x9db3: 0x4029d220,
-	0x9db4: 0x4029d420, 0x9db5: 0x4029d620, 0x9db6: 0x4029d820, 0x9db7: 0x4029da20,
-	0x9db8: 0x4029dc20, 0x9db9: 0x4029de20, 0x9dba: 0x40026c20, 0x9dbb: 0x40026220,
-	0x9dbc: 0x40094020, 0x9dbd: 0x40094220, 0x9dbe: 0x40094420, 0x9dbf: 0x4002c420,
-	// Block 0x277, offset 0x9dc0
-	0x9dc0: 0x4004d620, 0x9dc1: 0xc61c3161, 0x9dc2: 0x002c0a88, 0x9dc3: 0x002c3a88,
-	0x9dc4: 0x002c6288, 0x9dc5: 0xc62231a1, 0x9dc6: 0x002d0888, 0x9dc7: 0x002d2288,
-	0x9dc8: 0x002d6888, 0x9dc9: 0xc62631a1, 0x9dca: 0x002dcc88, 0x9dcb: 0x002dfe88,
-	0x9dcc: 0xc0030002, 0x9dcd: 0x002e8288, 0x9dce: 0x002e9e88, 0x9dcf: 0xc62b31c1,
-	0x9dd0: 0x002f2c88, 0x9dd1: 0x002f5688, 0x9dd2: 0x002f7a88, 0x9dd3: 0x002fe688,
-	0x9dd4: 0x00302c88, 0x9dd5: 0xc63031a1, 0x9dd6: 0x0030be88, 0x9dd7: 0x0030e288,
-	0x9dd8: 0x0030f688, 0x9dd9: 0xc63431a1, 0x9dda: 0x00312a88, 0x9ddb: 0x4003f820,
-	0x9ddc: 0x4004e420, 0x9ddd: 0x4003fa20, 0x9dde: 0x40062420, 0x9ddf: 0x40021620,
-	0x9de0: 0x40061e20, 0x9de1: 0xc6183161, 0x9de2: 0x402c0a20, 0x9de3: 0x402c3a20,
-	0x9de4: 0x402c6220, 0x9de5: 0xc62031a1, 0x9de6: 0x402d0820, 0x9de7: 0x402d2220,
-	0x9de8: 0x402d6820, 0x9de9: 0xc62431a1, 0x9dea: 0x402dcc20, 0x9deb: 0x402dfe20,
-	0x9dec: 0xc0000002, 0x9ded: 0x402e8220, 0x9dee: 0x402e9e20, 0x9def: 0xc62831c1,
-	0x9df0: 0x402f2c20, 0x9df1: 0x402f5620, 0x9df2: 0x402f7a20, 0x9df3: 0x402fe620,
-	0x9df4: 0x40302c20, 0x9df5: 0xc62e31a1, 0x9df6: 0x4030be20, 0x9df7: 0x4030e220,
-	0x9df8: 0x4030f620, 0x9df9: 0xc63231a1, 0x9dfa: 0x40312a20, 0x9dfb: 0x4003fc20,
-	0x9dfc: 0x40094820, 0x9dfd: 0x4003fe20, 0x9dfe: 0x40094c20, 0x9dff: 0xa0000000,
-	// Block 0x278, offset 0x9e00
-	0x9e00: 0xe00008f5, 0x9e01: 0x002c0883, 0x9e02: 0xe0000921, 0x9e03: 0xe0000969,
-	0x9e04: 0x00320ca3, 0x9e05: 0x00321083, 0x9e06: 0x00320c83, 0x9e07: 0xe0000a53,
-	0x9e08: 0xe0000ae8, 0x9e09: 0x002d0683, 0x9e0a: 0xe0000af4, 0x9e0b: 0xe0000b20,
-	0x9e0c: 0xe0000c2b, 0x9e0d: 0x002dca83, 0x9e0e: 0xe0000c37, 0x9e0f: 0xe0000c43,
-	0x9e10: 0x002c6483, 0x9e11: 0xe0000d63, 0x9e12: 0xe0000d9a, 0x9e13: 0x002f2a83,
-	0x9e14: 0xe0000da6, 0x9e15: 0xe0000de6, 0x9e16: 0x00320e83, 0x9e17: 0x40093e20,
-	0x9e18: 0x00320ea3, 0x9e19: 0xe0000fe1, 0x9e1a: 0x0030bc83, 0x9e1b: 0xe0000fed,
-	0x9e1c: 0xe0000fff, 0x9e1d: 0x00312883, 0x9e1e: 0x00318888, 0x9e1f: 0xe0000f7b,
-	0x9e20: 0xe00008f2, 0x9e21: 0x402c0820, 0x9e22: 0xe000091e, 0x9e23: 0xe0000966,
-	0x9e24: 0x40320c21, 0x9e25: 0x40321020, 0x9e26: 0x40320c20, 0x9e27: 0xe0000a4d,
-	0x9e28: 0xe0000ae5, 0x9e29: 0x402d0620, 0x9e2a: 0xe0000af1, 0x9e2b: 0xe0000b1d,
-	0x9e2c: 0xe0000c28, 0x9e2d: 0x402dca20, 0x9e2e: 0xe0000c34, 0x9e2f: 0xe0000c40,
-	0x9e30: 0x402c6420, 0x9e31: 0xe0000d60, 0x9e32: 0xe0000d97, 0x9e33: 0x402f2a20,
-	0x9e34: 0xe0000da3, 0x9e35: 0xe0000de3, 0x9e36: 0x40320e20, 0x9e37: 0x40093c20,
-	0x9e38: 0x40320e21, 0x9e39: 0xe0000fde, 0x9e3a: 0x4030bc20, 0x9e3b: 0xe0000fea,
-	0x9e3c: 0xe0000ffc, 0x9e3d: 0x40312820, 0x9e3e: 0x40318820, 0x9e3f: 0xe0001114,
-	// Block 0x279, offset 0x9e40
-	0x9e40: 0xe0000983, 0x9e41: 0xe0000980, 0x9e42: 0xe00008fb, 0x9e43: 0xe00008f8,
-	0x9e44: 0xe000097d, 0x9e45: 0xe000097a, 0x9e46: 0xe0000a38, 0x9e47: 0xe0000a35,
-	0x9e48: 0xe0000a3e, 0x9e49: 0xe0000a3b, 0x9e4a: 0xe0000a4a, 0x9e4b: 0xe0000a47,
-	0x9e4c: 0xe0000a44, 0x9e4d: 0xe0000a41, 0x9e4e: 0xe0000a86, 0x9e4f: 0xe0000a83,
-	0x9e50: 0x002c62a3, 0x9e51: 0x402c6221, 0x9e52: 0xe0000b46, 0x9e53: 0xe0000b43,
-	0x9e54: 0xe0000aee, 0x9e55: 0xe0000aeb, 0x9e56: 0xe0000b2c, 0x9e57: 0xe0000b29,
-	0x9e58: 0xe0000b40, 0x9e59: 0xe0000b3d, 0x9e5a: 0xe0000b1a, 0x9e5b: 0xe0000b17,
-	0x9e5c: 0xe0000bb8, 0x9e5d: 0xe0000bb5, 0x9e5e: 0xe0000bb2, 0x9e5f: 0xe0000baf,
-	0x9e60: 0xe0000bc4, 0x9e61: 0xe0000bc1, 0x9e62: 0xe0000bca, 0x9e63: 0xe0000bc7,
-	0x9e64: 0xe0000bee, 0x9e65: 0xe0000beb, 0x9e66: 0xe0000c1b, 0x9e67: 0xe0000c18,
-	0x9e68: 0xe0000c51, 0x9e69: 0xe0000c4e, 0x9e6a: 0xe0000c60, 0x9e6b: 0xe0000c5d,
-	0x9e6c: 0xe0000c31, 0x9e6d: 0xe0000c2e, 0x9e6e: 0xe0000c5a, 0x9e6f: 0xe0000c57,
-	0x9e70: 0xe0000c54, 0x9e71: 0x402da220, 0x9e72: 0xf0000a0a, 0x9e73: 0xf0000404,
-	0x9e74: 0xe0000c8a, 0x9e75: 0xe0000c87, 0x9e76: 0xe0000c9f, 0x9e77: 0xe0000c9c,
-	0x9e78: 0x402f7220, 0x9e79: 0xe0000ccc, 0x9e7a: 0xe0000cc9, 0x9e7b: 0xe0000cd8,
-	0x9e7c: 0xe0000cd5, 0x9e7d: 0xe0000cd2, 0x9e7e: 0xe0000ccf, 0x9e7f: 0xe0000d04,
-	// Block 0x27a, offset 0x9e80
-	0x9e80: 0x40321220, 0x9e81: 0x40321a20, 0x9e82: 0x40322220, 0x9e83: 0x40322a20,
-	0x9e84: 0xe0000ad5, 0x9e85: 0xe0000ad1, 0x9e86: 0xe0000acd, 0x9e87: 0xf0000a0a,
-	0x9e88: 0xf000040a, 0x9e89: 0xf0000404, 0x9e8a: 0xf0000a0a, 0x9e8b: 0xf000040a,
-	0x9e8c: 0xf0000404, 0x9e8d: 0xe0000947, 0x9e8e: 0xe0000944, 0x9e8f: 0xe0000c3d,
-	0x9e90: 0xe0000c3a, 0x9e91: 0xe0000dcc, 0x9e92: 0xe0000dc9, 0x9e93: 0xe0000ff3,
-	0x9e94: 0xe0000ff0, 0x9e95: 0xe000101e, 0x9e96: 0xe000101a, 0x9e97: 0xe00037a3,
-	0x9e98: 0xe00037a0, 0x9e99: 0xe0001016, 0x9e9a: 0xe0001012, 0x9e9b: 0xe000100e,
-	0x9e9c: 0xe000100a, 0x9e9d: 0x402cae20, 0x9e9e: 0xe00025f6, 0x9e9f: 0xe00025f3,
-	0x9ea0: 0xe0000976, 0x9ea1: 0xe0000972, 0x9ea2: 0xe00025f0, 0x9ea3: 0xe00025ed,
-	0x9ea4: 0x002d3a88, 0x9ea5: 0x402d3a20, 0x9ea6: 0xe0000bbe, 0x9ea7: 0xe0000bbb,
-	0x9ea8: 0xe0000c99, 0x9ea9: 0xe0000c96, 0x9eaa: 0xe0000e20, 0x9eab: 0xe0000e1d,
-	0x9eac: 0xe0000e27, 0x9ead: 0xe0000e23, 0x9eae: 0xe0001162, 0x9eaf: 0xe000115f,
-	0x9eb0: 0xe0000c8d, 0x9eb1: 0xf0000a0a, 0x9eb2: 0xf000040a, 0x9eb3: 0xf0000404,
-	0x9eb4: 0xe0000bac, 0x9eb5: 0xe0000ba9, 0x9eb6: 0x002d7888, 0x9eb7: 0x00319488,
-	0x9eb8: 0xe0000d57, 0x9eb9: 0xe0000d54, 0x9eba: 0xe000260e, 0x9ebb: 0xe000260b,
-	0x9ebc: 0xe00025ea, 0x9ebd: 0xe00025e7, 0x9ebe: 0xe00032e3, 0x9ebf: 0xe00032e0,
-	// Block 0x27b, offset 0x9ec0
-	0x9ec0: 0xe000098f, 0x9ec1: 0xe000098c, 0x9ec2: 0xe0000995, 0x9ec3: 0xe0000992,
-	0x9ec4: 0xe0000b62, 0x9ec5: 0xe0000b5f, 0x9ec6: 0xe0000b68, 0x9ec7: 0xe0000b65,
-	0x9ec8: 0xe0000c6c, 0x9ec9: 0xe0000c69, 0x9eca: 0xe0000c72, 0x9ecb: 0xe0000c6f,
-	0x9ecc: 0xe0000e4a, 0x9ecd: 0xe0000e47, 0x9ece: 0xe0000e50, 0x9ecf: 0xe0000e4d,
-	0x9ed0: 0xe0000ee8, 0x9ed1: 0xe0000ee5, 0x9ed2: 0xe0000eee, 0x9ed3: 0xe0000eeb,
-	0x9ed4: 0xe0001053, 0x9ed5: 0xe0001050, 0x9ed6: 0xe0001059, 0x9ed7: 0xe0001056,
-	0x9ed8: 0xe0000f61, 0x9ed9: 0xe0000f5e, 0x9eda: 0xe0000fa5, 0x9edb: 0xe0000fa2,
-	0x9edc: 0x00312288, 0x9edd: 0x40312220, 0x9ede: 0xe0000bf4, 0x9edf: 0xe0000bf1,
-	0x9ee0: 0x002ebc88, 0x9ee1: 0x402c8c20, 0x9ee2: 0x002f2288, 0x9ee3: 0x402f2220,
-	0x9ee4: 0x00314088, 0x9ee5: 0x40314020, 0x9ee6: 0xe000096f, 0x9ee7: 0xe000096c,
-	0x9ee8: 0xe0000b32, 0x9ee9: 0xe0000b2f, 0x9eea: 0xe00032dd, 0x9eeb: 0xe00032da,
-	0x9eec: 0xe0000dfd, 0x9eed: 0xe0000df9, 0x9eee: 0xe0000e04, 0x9eef: 0xe0000e01,
-	0x9ef0: 0xe0000e0b, 0x9ef1: 0xe0000e07, 0x9ef2: 0xe0001129, 0x9ef3: 0xe0001126,
-	0x9ef4: 0x402e5e20, 0x9ef5: 0x402ed020, 0x9ef6: 0x40305a20, 0x9ef7: 0x402dd420,
-	0x9ef8: 0xe0000abf, 0x9ef9: 0xe0000ec4, 0x9efa: 0x002be888, 0x9efb: 0x002c4488,
-	0x9efc: 0x402c4420, 0x9efd: 0x002e3888, 0x9efe: 0x00303e88, 0x9eff: 0x402ffc20,
-	// Block 0x27c, offset 0x9f00
-	0x9f00: 0xe00009b1, 0x9f01: 0xe00009ae, 0x9f02: 0xe0000a22, 0x9f03: 0xe0000a1f,
-	0x9f04: 0xe0000a28, 0x9f05: 0xe0000a25, 0x9f06: 0xe0000a2e, 0x9f07: 0xe0000a2b,
-	0x9f08: 0xe0000a5a, 0x9f09: 0xe0000a56, 0x9f0a: 0xe0000a8c, 0x9f0b: 0xe0000a89,
-	0x9f0c: 0xe0000a98, 0x9f0d: 0xe0000a95, 0x9f0e: 0xe0000aa4, 0x9f0f: 0xe0000aa1,
-	0x9f10: 0xe0000a92, 0x9f11: 0xe0000a8f, 0x9f12: 0xe0000a9e, 0x9f13: 0xe0000a9b,
-	0x9f14: 0xe0000b55, 0x9f15: 0xe0000b51, 0x9f16: 0xe000377f, 0x9f17: 0xe000377c,
-	0x9f18: 0xe0000b7c, 0x9f19: 0xe0000b79, 0x9f1a: 0xe0000b82, 0x9f1b: 0xe0000b7f,
-	0x9f1c: 0xe0000b39, 0x9f1d: 0xe0000b35, 0x9f1e: 0xe0000b8c, 0x9f1f: 0xe0000b89,
-	0x9f20: 0xe0000bd0, 0x9f21: 0xe0000bcd, 0x9f22: 0xe0000c00, 0x9f23: 0xe0000bfd,
-	0x9f24: 0xe0000c0c, 0x9f25: 0xe0000c09, 0x9f26: 0xe0000bfa, 0x9f27: 0xe0000bf7,
-	0x9f28: 0xe0000c06, 0x9f29: 0xe0000c03, 0x9f2a: 0xe0000c12, 0x9f2b: 0xe0000c0f,
-	0x9f2c: 0xe0000c7e, 0x9f2d: 0xe0000c7b, 0x9f2e: 0xe0003785, 0x9f2f: 0xe0003782,
-	0x9f30: 0xe0000c93, 0x9f31: 0xe0000c90, 0x9f32: 0xe0000cab, 0x9f33: 0xe0000ca8,
-	0x9f34: 0xe0000cb1, 0x9f35: 0xe0000cae, 0x9f36: 0xe0000cde, 0x9f37: 0xe0000cdb,
-	0x9f38: 0xe0000ce5, 0x9f39: 0xe0000ce1, 0x9f3a: 0xe0000cf2, 0x9f3b: 0xe0000cef,
-	0x9f3c: 0xe0000cec, 0x9f3d: 0xe0000ce9, 0x9f3e: 0xe0000d1e, 0x9f3f: 0xe0000d1b,
-	// Block 0x27d, offset 0x9f40
-	0x9f40: 0xe0000d24, 0x9f41: 0xe0000d21, 0x9f42: 0xe0000d2a, 0x9f43: 0xe0000d27,
-	0x9f44: 0xe0000d69, 0x9f45: 0xe0000d66, 0x9f46: 0xe0000d7b, 0x9f47: 0xe0000d78,
-	0x9f48: 0xe0000d87, 0x9f49: 0xe0000d84, 0x9f4a: 0xe0000d81, 0x9f4b: 0xe0000d7e,
-	0x9f4c: 0xe0003791, 0x9f4d: 0xe000378e, 0x9f4e: 0xe00037b5, 0x9f4f: 0xe00037b2,
-	0x9f50: 0xe0000e3d, 0x9f51: 0xe0000e39, 0x9f52: 0xe0003797, 0x9f53: 0xe0003794,
-	0x9f54: 0xe0000ea7, 0x9f55: 0xe0000ea4, 0x9f56: 0xe0000ead, 0x9f57: 0xe0000eaa,
-	0x9f58: 0xe0000ed6, 0x9f59: 0xe0000ed3, 0x9f5a: 0xe0000ef4, 0x9f5b: 0xe0000ef1,
-	0x9f5c: 0xe0000efb, 0x9f5d: 0xe0000ef7, 0x9f5e: 0xe0000f02, 0x9f5f: 0xe0000eff,
-	0x9f60: 0xe0000f41, 0x9f61: 0xe0000f3e, 0x9f62: 0xe0000f53, 0x9f63: 0xe0000f50,
-	0x9f64: 0xe0000f26, 0x9f65: 0xe0000f22, 0x9f66: 0xe0000f3a, 0x9f67: 0xe0000f36,
-	0x9f68: 0xe0000f5a, 0x9f69: 0xe0000f56, 0x9f6a: 0xe0000f93, 0x9f6b: 0xe0000f90,
-	0x9f6c: 0xe0000f9f, 0x9f6d: 0xe0000f9c, 0x9f6e: 0xe0000fb1, 0x9f6f: 0xe0000fae,
-	0x9f70: 0xe0000fab, 0x9f71: 0xe0000fa8, 0x9f72: 0xe0001093, 0x9f73: 0xe0001090,
-	0x9f74: 0xe000109f, 0x9f75: 0xe000109c, 0x9f76: 0xe0001099, 0x9f77: 0xe0001096,
-	0x9f78: 0xe00037a9, 0x9f79: 0xe00037a6, 0x9f7a: 0xe0001046, 0x9f7b: 0xe0001042,
-	0x9f7c: 0xe00010a9, 0x9f7d: 0xe00010a6, 0x9f7e: 0xe00010af, 0x9f7f: 0xe00010ac,
-	// Block 0x27e, offset 0x9f80
-	0x9f80: 0xe00010d2, 0x9f81: 0xe00010cf, 0x9f82: 0xe00010cc, 0x9f83: 0xe00010c9,
-	0x9f84: 0xe00010e1, 0x9f85: 0xe00010de, 0x9f86: 0xe00010e7, 0x9f87: 0xe00010e4,
-	0x9f88: 0xe00010ed, 0x9f89: 0xe00010ea, 0x9f8a: 0xe00010fc, 0x9f8b: 0xe00010f9,
-	0x9f8c: 0xe00010f6, 0x9f8d: 0xe00010f3, 0x9f8e: 0xe0001123, 0x9f8f: 0xe0001120,
-	0x9f90: 0xe0001141, 0x9f91: 0xe000113e, 0x9f92: 0xe0001153, 0x9f93: 0xe0001150,
-	0x9f94: 0xe0001159, 0x9f95: 0xe0001156, 0x9f96: 0xe0000c15, 0x9f97: 0xe0000f8d,
-	0x9f98: 0xe00010db, 0x9f99: 0xe0001111, 0x9f9a: 0xf0000404, 0x9f9b: 0xe0000f70,
-	0x9f9c: 0x40300420, 0x9f9d: 0x40300620, 0x9f9e: 0xe0000f7f, 0x9f9f: 0x402c9620,
-	0x9fa0: 0xe000099b, 0x9fa1: 0xe0000998, 0x9fa2: 0xe0000989, 0x9fa3: 0xe0000986,
-	0x9fa4: 0xe0003773, 0x9fa5: 0xe0003770, 0x9fa6: 0xe0000930, 0x9fa7: 0xe000092c,
-	0x9fa8: 0xe0000940, 0x9fa9: 0xe000093c, 0x9faa: 0xe0000938, 0x9fab: 0xe0000934,
-	0x9fac: 0xe00009aa, 0x9fad: 0xe00009a6, 0x9fae: 0xe000376d, 0x9faf: 0xe000376a,
-	0x9fb0: 0xe000090a, 0x9fb1: 0xe0000906, 0x9fb2: 0xe000091a, 0x9fb3: 0xe0000916,
-	0x9fb4: 0xe0000912, 0x9fb5: 0xe000090e, 0x9fb6: 0xe00009a2, 0x9fb7: 0xe000099e,
-	0x9fb8: 0xe0000b6e, 0x9fb9: 0xe0000b6b, 0x9fba: 0xe0000b5c, 0x9fbb: 0xe0000b59,
-	0x9fbc: 0xe0000b26, 0x9fbd: 0xe0000b23, 0x9fbe: 0xe0003779, 0x9fbf: 0xe0003776,
-	// Block 0x27f, offset 0x9fc0
-	0x9fc0: 0xe0000b03, 0x9fc1: 0xe0000aff, 0x9fc2: 0xe0000b13, 0x9fc3: 0xe0000b0f,
-	0x9fc4: 0xe0000b0b, 0x9fc5: 0xe0000b07, 0x9fc6: 0xe0000b75, 0x9fc7: 0xe0000b71,
-	0x9fc8: 0xe0000c66, 0x9fc9: 0xe0000c63, 0x9fca: 0xe0000c78, 0x9fcb: 0xe0000c75,
-	0x9fcc: 0xe0000e84, 0x9fcd: 0xe0000e81, 0x9fce: 0xe0000e44, 0x9fcf: 0xe0000e41,
-	0x9fd0: 0xe000378b, 0x9fd1: 0xe0003788, 0x9fd2: 0xe0000db5, 0x9fd3: 0xe0000db1,
-	0x9fd4: 0xe0000dc5, 0x9fd5: 0xe0000dc1, 0x9fd6: 0xe0000dbd, 0x9fd7: 0xe0000db9,
-	0x9fd8: 0xe0000e8b, 0x9fd9: 0xe0000e87, 0x9fda: 0xe000379d, 0x9fdb: 0xe000379a,
-	0x9fdc: 0xe0000e65, 0x9fdd: 0xe0000e61, 0x9fde: 0xe0000e75, 0x9fdf: 0xe0000e71,
-	0x9fe0: 0xe0000e6d, 0x9fe1: 0xe0000e69, 0x9fe2: 0xe0000e7d, 0x9fe3: 0xe0000e79,
-	0x9fe4: 0xe000108d, 0x9fe5: 0xe000108a, 0x9fe6: 0xe000104d, 0x9fe7: 0xe000104a,
-	0x9fe8: 0xe00037af, 0x9fe9: 0xe00037ac, 0x9fea: 0xe000106e, 0x9feb: 0xe000106a,
-	0x9fec: 0xe000107e, 0x9fed: 0xe000107a, 0x9fee: 0xe0001076, 0x9fef: 0xe0001072,
-	0x9ff0: 0xe0001086, 0x9ff1: 0xe0001082, 0x9ff2: 0xe0001108, 0x9ff3: 0xe0001105,
-	0x9ff4: 0xe0001135, 0x9ff5: 0xe0001132, 0x9ff6: 0xe000112f, 0x9ff7: 0xe000112c,
-	0x9ff8: 0xe000111d, 0x9ff9: 0xe000111a, 0x9ffa: 0xe0000d0a, 0x9ffb: 0xe0000d07,
-	0x9ffc: 0x0030d888, 0x9ffd: 0x4030d820, 0x9ffe: 0x00312088, 0x9fff: 0x40312020,
-	// Block 0x280, offset 0xa000
-	0xa000: 0x40021220, 0xa001: 0x40025c20, 0xa002: 0x40030420, 0xa003: 0x40051220,
-	0xa004: 0x40279a20, 0xa005: 0x4027ca20, 0xa006: 0xe0002206, 0xa007: 0xe00001d3,
-	0xa008: 0x40049c20, 0xa009: 0x40049e20, 0xa00a: 0x4004a020, 0xa00b: 0x4004a220,
-	0xa00c: 0x4004a420, 0xa00d: 0x4004a620, 0xa00e: 0x4004a820, 0xa00f: 0x4004aa20,
-	0xa010: 0x4004ac20, 0xa011: 0x4004ae20, 0xa012: 0x40279c20, 0xa013: 0x40279e20,
-	0xa014: 0x4004b020, 0xa015: 0x4004b220, 0xa016: 0x4004b420, 0xa017: 0x4004b620,
-	0xa018: 0x4004b820, 0xa019: 0x4004ba20, 0xa01a: 0x4004bc20, 0xa01b: 0x4004be20,
-	0xa01c: 0x40023820, 0xa01d: 0x4003ea20, 0xa01e: 0x4003ec20, 0xa01f: 0x4003ee20,
-	0xa020: 0x4027a020, 0xa021: 0xe0000267, 0xa022: 0xe000037f, 0xa023: 0xe0000459,
-	0xa024: 0xe000052e, 0xa025: 0xe00005f8, 0xa026: 0xe00006c3, 0xa027: 0xe000076b,
-	0xa028: 0xe0000817, 0xa029: 0xe00008bc, 0xa02a: 0xada12202, 0xa02b: 0xae412302,
-	0xa02c: 0xae812402, 0xa02d: 0xade12502, 0xa02e: 0xae012602, 0xa02f: 0xae012702,
-	0xa030: 0x40023a20, 0xa031: 0x4027ce20, 0xa032: 0xe0000152, 0xa033: 0x4027d020,
-	0xa034: 0xe0000155, 0xa035: 0x4027d220, 0xa036: 0x00279c84, 0xa037: 0x4027a220,
-	0xa038: 0x02a68284, 0xa039: 0x02a68884, 0xa03a: 0x02a68a84, 0xa03b: 0x4027cc20,
-	0xa03c: 0xe000231a, 0xa03d: 0x40051420, 0xa03e: 0x4027a420, 0xa03f: 0x4027a620,
-	// Block 0x281, offset 0xa040
-	0xa041: 0xc63631f1, 0xa042: 0xc63c31f1, 0xa043: 0xc70631f1,
-	0xa044: 0xc70c31f1, 0xa045: 0xc7c439e1, 0xa046: 0xc7ce33a1, 0xa047: 0xc8ad31f1,
-	0xa048: 0xc8b331f1, 0xa049: 0xc96231f1, 0xa04a: 0xc96831f1, 0xa04b: 0xc6483271,
-	0xa04c: 0xc65531f1, 0xa04d: 0xc71233a1, 0xa04e: 0xc7273631, 0xa04f: 0xc7f033a1,
-	0xa050: 0xc8053631, 0xa051: 0xc8bf3271, 0xa052: 0xc8cc31f1, 0xa053: 0xc96e33a1,
-	0xa054: 0xc9833631, 0xa055: 0xc65b33a1, 0xa056: 0xc6703631, 0xa057: 0xc73433a1,
-	0xa058: 0xc7493631, 0xa059: 0xc81233a1, 0xa05a: 0xc8273631, 0xa05b: 0xc8d233a1,
-	0xa05c: 0xc8e73631, 0xa05d: 0xc98b33a1, 0xa05e: 0xc9a03631, 0xa05f: 0xc67833a1,
-	0xa060: 0xc68d3631, 0xa061: 0xc75133a1, 0xa062: 0xc7663631, 0xa063: 0xc82f39e1,
-	0xa064: 0xc83933a1, 0xa065: 0xc84e3631, 0xa066: 0xc8ef33a1, 0xa067: 0xc9043631,
-	0xa068: 0xc9ad33a1, 0xa069: 0xc9c23631, 0xa06a: 0xc69531f1, 0xa06b: 0xc76e31f1,
-	0xa06c: 0xc85931f1, 0xa06d: 0xc90c31f1, 0xa06e: 0xc9ca31f1, 0xa06f: 0xc6a036b1,
-	0xa070: 0xc6bb3631, 0xa071: 0xc6c33631, 0xa072: 0xc77936b1, 0xa073: 0xc7943631,
-	0xa074: 0xc79c3631, 0xa075: 0xc86436b1, 0xa076: 0xc87f3631, 0xa077: 0xc8873631,
-	0xa078: 0xc91736b1, 0xa079: 0xc9323631, 0xa07a: 0xc93a3631, 0xa07b: 0xc9d536b1,
-	0xa07c: 0xc9f03631, 0xa07d: 0xc9f83631, 0xa07e: 0xc6cb31f1, 0xa07f: 0xc7a431f1,
-	// Block 0x282, offset 0xa080
-	0xa080: 0xc89231f1, 0xa081: 0xc94231f1, 0xa082: 0xca0031f1, 0xa083: 0xc6d131f1,
-	0xa084: 0xc6d731f1, 0xa085: 0xc89831f1, 0xa086: 0xc89e31f1, 0xa087: 0xca0631f1,
-	0xa088: 0xca0c31f1, 0xa089: 0xc6e031f1, 0xa08a: 0xc7ad31f1, 0xa08b: 0xc8a731f1,
-	0xa08c: 0xc94b31f1, 0xa08d: 0xca1531f1, 0xa08e: 0xc6e639e1, 0xa08f: 0xc6f039e1,
-	0xa090: 0xc7b339e1, 0xa091: 0xc95139e1, 0xa092: 0xca1b39e1, 0xa093: 0xca313a71,
-	0xa094: 0xc7e33631, 0xa095: 0xc64231f1, 0xa096: 0xc8b931f1,
-	0xa099: 0xa0812802, 0xa09a: 0xa0812902, 0xa09b: 0x40063c20,
-	0xa09c: 0x40063e20, 0xa09d: 0x4027d820, 0xa09e: 0xe000015b, 0xa09f: 0xe0003bee,
-	0xa0a0: 0x40023c20, 0xa0a1: 0xc6393241, 0xa0a2: 0xc63f3241, 0xa0a3: 0xc7093241,
-	0xa0a4: 0xc70f3241, 0xa0a5: 0xc7c935c1, 0xa0a6: 0xc7d634c1, 0xa0a7: 0xc8b03241,
-	0xa0a8: 0xc8b63241, 0xa0a9: 0xc9653241, 0xa0aa: 0xc96b3241, 0xa0ab: 0xc64d3321,
-	0xa0ac: 0xc6583241, 0xa0ad: 0xc71a34c1, 0xa0ae: 0xc72b3681, 0xa0af: 0xc7f834c1,
-	0xa0b0: 0xc8093681, 0xa0b1: 0xc8c43321, 0xa0b2: 0xc8cf3241, 0xa0b3: 0xc97634c1,
-	0xa0b4: 0xc9873681, 0xa0b5: 0xc66334c1, 0xa0b6: 0xc6743681, 0xa0b7: 0xc73c34c1,
-	0xa0b8: 0xc74d3681, 0xa0b9: 0xc81a34c1, 0xa0ba: 0xc82b3681, 0xa0bb: 0xc8da34c1,
-	0xa0bc: 0xc8eb3681, 0xa0bd: 0xc99334c1, 0xa0be: 0xc9a43681, 0xa0bf: 0xc68034c1,
-	// Block 0x283, offset 0xa0c0
-	0xa0c0: 0xc6913681, 0xa0c1: 0xc75934c1, 0xa0c2: 0xc76a3681, 0xa0c3: 0xc83435c1,
-	0xa0c4: 0xc84134c1, 0xa0c5: 0xc8523681, 0xa0c6: 0xc8f734c1, 0xa0c7: 0xc9083681,
-	0xa0c8: 0xc9b534c1, 0xa0c9: 0xc9c63681, 0xa0ca: 0xc6983241, 0xa0cb: 0xc7713241,
-	0xa0cc: 0xc85c3241, 0xa0cd: 0xc90f3241, 0xa0ce: 0xc9cd3241, 0xa0cf: 0xc6ab3861,
-	0xa0d0: 0xc6bf3681, 0xa0d1: 0xc6c73681, 0xa0d2: 0xc7843861, 0xa0d3: 0xc7983681,
-	0xa0d4: 0xc7a03681, 0xa0d5: 0xc86f3861, 0xa0d6: 0xc8833681, 0xa0d7: 0xc88b3681,
-	0xa0d8: 0xc9223861, 0xa0d9: 0xc9363681, 0xa0da: 0xc93e3681, 0xa0db: 0xc9e03861,
-	0xa0dc: 0xc9f43681, 0xa0dd: 0xc9fc3681, 0xa0de: 0xc6ce3241, 0xa0df: 0xc7a73241,
-	0xa0e0: 0xc8953241, 0xa0e1: 0xc9453241, 0xa0e2: 0xca033241, 0xa0e3: 0xc6d43241,
-	0xa0e4: 0xc6da3241, 0xa0e5: 0xc89b3241, 0xa0e6: 0xc8a13241, 0xa0e7: 0xca093241,
-	0xa0e8: 0xca0f3241, 0xa0e9: 0xc6e33241, 0xa0ea: 0xc7b03241, 0xa0eb: 0xc8aa3241,
-	0xa0ec: 0xc94e3241, 0xa0ed: 0xca183241, 0xa0ee: 0xc6eb35c1, 0xa0ef: 0xc6f534c1,
-	0xa0f0: 0xc7b834c1, 0xa0f1: 0xc95634c1, 0xa0f2: 0xca2034c1, 0xa0f3: 0xca313aa1,
-	0xa0f4: 0xc7e73681, 0xa0f5: 0xc6453241, 0xa0f6: 0xc8bc3241, 0xa0f7: 0xc7023681,
-	0xa0f8: 0xc7c03681, 0xa0f9: 0xc95e3681, 0xa0fa: 0xca2d3681, 0xa0fb: 0x40023e20,
-	0xa0fc: 0x4027d620, 0xa0fd: 0x4027d820, 0xa0fe: 0xe000015b, 0xa0ff: 0xe0003a95,
-	// Block 0x284, offset 0xa100
-	0xa105: 0x4065da20, 0xa106: 0x4065dc20, 0xa107: 0x4065de20,
-	0xa108: 0x4065e020, 0xa109: 0x4065e420, 0xa10a: 0x4065e620, 0xa10b: 0x4065e820,
-	0xa10c: 0x4065ea20, 0xa10d: 0x4065ec20, 0xa10e: 0x4065ee20, 0xa10f: 0x4065f420,
-	0xa110: 0x4065f620, 0xa111: 0x4065f820, 0xa112: 0x4065fa20, 0xa113: 0x4065fe20,
-	0xa114: 0x40660020, 0xa115: 0x40660220, 0xa116: 0x40660420, 0xa117: 0x40660620,
-	0xa118: 0x40660820, 0xa119: 0x40660a20, 0xa11a: 0x40661220, 0xa11b: 0x40661420,
-	0xa11c: 0x40661820, 0xa11d: 0x40661a20, 0xa11e: 0x40661e20, 0xa11f: 0x40662020,
-	0xa120: 0x40662220, 0xa121: 0x40662420, 0xa122: 0x40662620, 0xa123: 0x40662820,
-	0xa124: 0x40662a20, 0xa125: 0x40662e20, 0xa126: 0x40663620, 0xa127: 0x40663820,
-	0xa128: 0x40663a20, 0xa129: 0x40663c20, 0xa12a: 0x4065e220, 0xa12b: 0x4065f020,
-	0xa12c: 0x4065fc20, 0xa12d: 0x40663e20,
-	0xa131: 0x4062ac20, 0xa132: 0x4062ae20, 0xa133: 0x40646820,
-	0xa134: 0x4062b020, 0xa135: 0x40646c20, 0xa136: 0x40646e20, 0xa137: 0x4062b220,
-	0xa138: 0x4062b420, 0xa139: 0x4062b620, 0xa13a: 0x40647420, 0xa13b: 0x40647620,
-	0xa13c: 0x40647820, 0xa13d: 0x40647a20, 0xa13e: 0x40647c20, 0xa13f: 0x40647e20,
-	// Block 0x285, offset 0xa140
-	0xa140: 0x4062e020, 0xa141: 0x4062b820, 0xa142: 0x4062ba20, 0xa143: 0x4062bc20,
-	0xa144: 0x4062ee20, 0xa145: 0x4062be20, 0xa146: 0x4062c020, 0xa147: 0x4062c220,
-	0xa148: 0x4062c420, 0xa149: 0x4062c620, 0xa14a: 0x4062c820, 0xa14b: 0x4062ca20,
-	0xa14c: 0x4062cc20, 0xa14d: 0x4062ce20, 0xa14e: 0x4062d020, 0xa14f: 0x4063a820,
-	0xa150: 0x4063aa20, 0xa151: 0x4063ac20, 0xa152: 0x4063ae20, 0xa153: 0x4063b020,
-	0xa154: 0x4063b220, 0xa155: 0x4063b420, 0xa156: 0x4063b620, 0xa157: 0x4063b820,
-	0xa158: 0x4063ba20, 0xa159: 0x4063bc20, 0xa15a: 0x4063be20, 0xa15b: 0x4063c020,
-	0xa15c: 0x4063c220, 0xa15d: 0x4063c420, 0xa15e: 0x4063c620, 0xa15f: 0x4063c820,
-	0xa160: 0x4063ca20, 0xa161: 0x4063cc20, 0xa162: 0x4063ce20, 0xa163: 0x4063d020,
-	0xa164: 0x4063a620, 0xa165: 0x0062d484, 0xa166: 0x0062d684, 0xa167: 0x0064a284,
-	0xa168: 0x0064a484, 0xa169: 0x0064ac84, 0xa16a: 0x0064b084, 0xa16b: 0x0064ba84,
-	0xa16c: 0x0064c284, 0xa16d: 0x0064c684, 0xa16e: 0x0062e484, 0xa16f: 0x0064ce84,
-	0xa170: 0x0064d284, 0xa171: 0x0062e684, 0xa172: 0x0062e884, 0xa173: 0x0062ec84,
-	0xa174: 0x0062f084, 0xa175: 0x0062f284, 0xa176: 0x0062fa84, 0xa177: 0x0062fe84,
-	0xa178: 0x00630284, 0xa179: 0x00630484, 0xa17a: 0x00630684, 0xa17b: 0x00630884,
-	0xa17c: 0x00630a84, 0xa17d: 0x00631084, 0xa17e: 0x00631884, 0xa17f: 0x00632c84,
-	// Block 0x286, offset 0xa180
-	0xa180: 0x40275220, 0xa181: 0x40275420, 0xa182: 0x40275620, 0xa183: 0x40275820,
-	0xa184: 0x40275a20, 0xa185: 0x40275c20, 0xa186: 0x40275e20, 0xa187: 0x40276020,
-	0xa188: 0x40276220, 0xa189: 0x40276420, 0xa18a: 0x40276620, 0xa18b: 0x40276820,
-	0xa18c: 0x40276a20, 0xa18d: 0x40276c20, 0xa18e: 0x40276e20, 0xa18f: 0x40277020,
-	0xa190: 0x40277220, 0xa191: 0x40277420, 0xa192: 0x40277620, 0xa193: 0x40277820,
-	0xa194: 0x40277a20, 0xa195: 0x40277c20, 0xa196: 0x40277e20, 0xa197: 0x40278020,
-	0xa198: 0x40278220, 0xa199: 0x40278420, 0xa19a: 0x40278620, 0xa19b: 0x40278820,
-	0xa19c: 0x40278a20, 0xa19d: 0x40278c20, 0xa19e: 0x40278e20, 0xa19f: 0x40279020,
-	0xa1a0: 0x40279220, 0xa1a1: 0x40279420, 0xa1a2: 0x40279620, 0xa1a3: 0x40279820,
-	0xa1b0: 0xc7eb35c1, 0xa1b1: 0xc72f35c1, 0xa1b2: 0xc80d35c1, 0xa1b3: 0xc9a835c1,
-	0xa1b4: 0xc8563241, 0xa1b5: 0xc69b35c1, 0xa1b6: 0xc77435c1, 0xa1b7: 0xc85f35c1,
-	0xa1b8: 0xc91235c1, 0xa1b9: 0xc9d035c1, 0xa1ba: 0xc88f3241, 0xa1bb: 0xc6dd3241,
-	0xa1bc: 0xc7aa3241, 0xa1bd: 0xc8a43241, 0xa1be: 0xc9483241, 0xa1bf: 0xca123241,
-	// Block 0x287, offset 0xa1c0
-	0xa1c0: 0xf0000404, 0xa1c1: 0xf0000404, 0xa1c2: 0xf0000404, 0xa1c3: 0xf0000404,
-	0xa1c4: 0xf0000404, 0xa1c5: 0xf0000404, 0xa1c6: 0xf0000404, 0xa1c7: 0xf0000404,
-	0xa1c8: 0xf0000404, 0xa1c9: 0xf0000404, 0xa1ca: 0xf0000404, 0xa1cb: 0xf0000404,
-	0xa1cc: 0xf0000404, 0xa1cd: 0xf0000404, 0xa1ce: 0xe000004c, 0xa1cf: 0xe0000051,
-	0xa1d0: 0xe0000056, 0xa1d1: 0xe000005b, 0xa1d2: 0xe0000060, 0xa1d3: 0xe0000065,
-	0xa1d4: 0xe000006a, 0xa1d5: 0xe000006f, 0xa1d6: 0xe0000083, 0xa1d7: 0xe000008d,
-	0xa1d8: 0xe0000092, 0xa1d9: 0xe0000097, 0xa1da: 0xe000009c, 0xa1db: 0xe00000a1,
-	0xa1dc: 0xe0000088, 0xa1dd: 0xe0000074, 0xa1de: 0xe000007c,
-	0xa1e0: 0xe00028cc, 0xa1e1: 0xe00028dc, 0xa1e2: 0xe00028d4, 0xa1e3: 0xe000290c,
-	0xa1e4: 0xe00028e0, 0xa1e5: 0xe00028f4, 0xa1e6: 0xe00028d0, 0xa1e7: 0xe00028f0,
-	0xa1e8: 0xe00028d8, 0xa1e9: 0xe00028fc, 0xa1ea: 0xe000291c, 0xa1eb: 0xe0002930,
-	0xa1ec: 0xe000292c, 0xa1ed: 0xe0002924, 0xa1ee: 0xe0002958, 0xa1ef: 0xe0002910,
-	0xa1f0: 0xe0002918, 0xa1f1: 0xe0002928, 0xa1f2: 0xe0002920, 0xa1f3: 0xe000293c,
-	0xa1f4: 0xe0002904, 0xa1f5: 0xe0002934, 0xa1f6: 0xe0002950, 0xa1f7: 0xe0002940,
-	0xa1f8: 0xe00028f8, 0xa1f9: 0xe00028e4, 0xa1fa: 0xe0002908, 0xa1fb: 0xe0002914,
-	0xa1fc: 0xe0002938, 0xa1fd: 0xe00028e8, 0xa1fe: 0xe0002954, 0xa1ff: 0xe0002900,
-	// Block 0x288, offset 0xa200
-	0xa200: 0xe0002944, 0xa201: 0xe00028ec, 0xa202: 0xe0002948, 0xa203: 0xe000294c,
-	0xa204: 0x02aa9e86, 0xa205: 0x02bcf886, 0xa206: 0x02cb0e86, 0xa207: 0x02f71e86,
-	0xa208: 0xe00002e3, 0xa209: 0xe00003d8, 0xa20a: 0xe00004b3, 0xa20b: 0xe000057d,
-	0xa20c: 0xe0000648, 0xa20d: 0xe00006f0, 0xa20e: 0xe000079c, 0xa20f: 0xe0000841,
-	0xa210: 0xe0000ec0, 0xa211: 0xf0000606, 0xa212: 0xf0000606, 0xa213: 0xf0000606,
-	0xa214: 0xf0000606, 0xa215: 0xf0000606, 0xa216: 0xf0000606, 0xa217: 0xf0000606,
-	0xa218: 0xf0000606, 0xa219: 0xf0000606, 0xa21a: 0xf0000606, 0xa21b: 0xf0000606,
-	0xa21c: 0xf0000606, 0xa21d: 0xf0000606, 0xa21e: 0xf0000606, 0xa21f: 0xf0000606,
-	0xa220: 0x0062ac86, 0xa221: 0x0062b086, 0xa222: 0x0062b286, 0xa223: 0x0062b686,
-	0xa224: 0x0062b886, 0xa225: 0x0062ba86, 0xa226: 0x0062be86, 0xa227: 0x0062c286,
-	0xa228: 0x0062c486, 0xa229: 0x0062c886, 0xa22a: 0x0062ca86, 0xa22b: 0x0062cc86,
-	0xa22c: 0x0062ce86, 0xa22d: 0x0062d086, 0xa22e: 0xf0000606, 0xa22f: 0xf0000606,
-	0xa230: 0xf0000606, 0xa231: 0xf0000606, 0xa232: 0xf0000606, 0xa233: 0xf0000606,
-	0xa234: 0xf0000606, 0xa235: 0xf0000606, 0xa236: 0xf0000606, 0xa237: 0xf0000606,
-	0xa238: 0xf0000606, 0xa239: 0xf0000606, 0xa23a: 0xf0000606, 0xa23b: 0xf0000606,
-	0xa23c: 0xe0002127, 0xa23d: 0xe0002122, 0xa23e: 0xf0000606, 0xa23f: 0x4027ac20,
-	// Block 0x289, offset 0xa240
-	0xa240: 0xe000384d, 0xa241: 0xe000388e, 0xa242: 0xe000389f, 0xa243: 0xe00038a8,
-	0xa244: 0xe00038b1, 0xa245: 0xe00038ba, 0xa246: 0xe000298b, 0xa247: 0xe00038c3,
-	0xa248: 0xe00038cc, 0xa249: 0xe00037fa, 0xa24a: 0xe0003806, 0xa24b: 0xe0003812,
-	0xa24c: 0xf0001c1d, 0xa24d: 0xe0000b85, 0xa24e: 0xf0001d1c, 0xa24f: 0xe0000d14,
-	0xa250: 0x00657693, 0xa251: 0x00657893, 0xa252: 0x00657a93, 0xa253: 0x00657e93,
-	0xa254: 0x00658093, 0xa255: 0x00658293, 0xa256: 0x00658493, 0xa257: 0x00658693,
-	0xa258: 0x00658893, 0xa259: 0x00658a93, 0xa25a: 0x00658c93, 0xa25b: 0x00658e93,
-	0xa25c: 0x00659093, 0xa25d: 0x00659293, 0xa25e: 0x00659493, 0xa25f: 0x00659693,
-	0xa260: 0x00659893, 0xa261: 0x00659a93, 0xa262: 0x00659c93, 0xa263: 0x00659e93,
-	0xa264: 0x0065a093, 0xa265: 0x0065a293, 0xa266: 0x0065a493, 0xa267: 0x0065a693,
-	0xa268: 0x0065a893, 0xa269: 0x0065aa93, 0xa26a: 0x0065ac93, 0xa26b: 0x0065ae93,
-	0xa26c: 0x0065b093, 0xa26d: 0x0065b293, 0xa26e: 0x0065b493, 0xa26f: 0x0065b693,
-	0xa270: 0x0065b893, 0xa271: 0x0065ba93, 0xa272: 0x0065bc93, 0xa273: 0x0065be93,
-	0xa274: 0x0065c093, 0xa275: 0x0065c493, 0xa276: 0x0065c693, 0xa277: 0x0065c893,
-	0xa278: 0x0065ca93, 0xa279: 0x0065cc93, 0xa27a: 0x0065ce93, 0xa27b: 0x0065d093,
-	0xa27c: 0x0065d293, 0xa27d: 0x0065d493, 0xa27e: 0x0065d693,
-	// Block 0x28a, offset 0xa280
-	0xa280: 0xe000230b, 0xa281: 0xe00022f8, 0xa282: 0xe00022fc, 0xa283: 0xe0002311,
-	0xa284: 0xe0002316, 0xa285: 0xe000231d, 0xa286: 0xe0002321, 0xa287: 0xe0002325,
-	0xa288: 0xe000232b, 0xa289: 0xf0001c1c, 0xa28a: 0xe0002330, 0xa28b: 0xe000233c,
-	0xa28c: 0xe0002340, 0xa28d: 0xe0002337, 0xa28e: 0xe0002346, 0xa28f: 0xe000234b,
-	0xa290: 0xe000234f, 0xa291: 0xe0002353, 0xa292: 0xf0001c1c, 0xa293: 0xe000235e,
-	0xa294: 0xe0002358, 0xa295: 0xf0001c1c, 0xa296: 0xe0002363, 0xa297: 0xe000236d,
-	0xa298: 0xe00037f3, 0xa299: 0xe0003850, 0xa29a: 0xe0003891, 0xa29b: 0xe00038a2,
-	0xa29c: 0xe00038ab, 0xa29d: 0xe00038b4, 0xa29e: 0xe00038bd, 0xa29f: 0xe000298e,
-	0xa2a0: 0xe00038c6, 0xa2a1: 0xe00038cf, 0xa2a2: 0xe00037fe, 0xa2a3: 0xe000380a,
-	0xa2a4: 0xe0003816, 0xa2a5: 0xe000381e, 0xa2a6: 0xe0003826, 0xa2a7: 0xe000382e,
-	0xa2a8: 0xe0003836, 0xa2a9: 0xe0002971, 0xa2aa: 0xe000383e, 0xa2ab: 0xe0003846,
-	0xa2ac: 0xe0003857, 0xa2ad: 0xe000385f, 0xa2ae: 0xe0003867, 0xa2af: 0xe000386f,
-	0xa2b0: 0xe0003877, 0xa2b1: 0xe0000c1e, 0xa2b2: 0xf0001c1c, 0xa2b3: 0xf0001d1d,
-	0xa2b4: 0xe0000a31, 0xa2b5: 0xf0001d1c, 0xa2b6: 0xf0001c1c, 0xa2b7: 0xf0001c1c,
-	0xa2b8: 0xe0000ac2, 0xa2b9: 0xe0000ac6, 0xa2ba: 0xf0001d1d, 0xa2bb: 0xe0003c4c,
-	0xa2bc: 0xe0003c52, 0xa2bd: 0xe0003c49, 0xa2be: 0xe0003c4f, 0xa2bf: 0xe0002431,
-	// Block 0x28b, offset 0xa2c0
-	0xa2c0: 0xf0001d1c, 0xa2c1: 0xf0001d1d, 0xa2c2: 0xe00009b7, 0xa2c3: 0xf0001c1d,
-	0xa2c4: 0xf0001c1c, 0xa2c5: 0xf0001c1c, 0xa2c6: 0xe0000a66, 0xa2c7: 0xe0000a7a,
-	0xa2c8: 0xf0001d1c, 0xa2c9: 0xf0001c1d, 0xa2ca: 0xf0001c1c, 0xa2cb: 0xf0001d1d,
-	0xa2cc: 0xf0001c1c, 0xa2cd: 0xf0001d1d, 0xa2ce: 0xf0001d1d, 0xa2cf: 0xf0001c1c,
-	0xa2d0: 0xf0001c1c, 0xa2d1: 0xf0001c1c, 0xa2d2: 0xe0000d0d, 0xa2d3: 0xf0001c1c,
-	0xa2d4: 0xf0001c1c, 0xa2d5: 0xe0000d3a, 0xa2d6: 0xe0000d46, 0xa2d7: 0xf0001d1d,
-	0xa2d8: 0xe0000eb0, 0xa2d9: 0xe0000eb8, 0xa2da: 0xf0001d1d, 0xa2db: 0xf0001c1c,
-	0xa2dc: 0xf0001c1d, 0xa2dd: 0xf0001c1d, 0xa2de: 0xe00010b2, 0xa2df: 0xe00009c8,
-	0xa2e0: 0xe000384a, 0xa2e1: 0xe000388b, 0xa2e2: 0xe000389c, 0xa2e3: 0xe00038a5,
-	0xa2e4: 0xe00038ae, 0xa2e5: 0xe00038b7, 0xa2e6: 0xe0002988, 0xa2e7: 0xe00038c0,
-	0xa2e8: 0xe00038c9, 0xa2e9: 0xe00037f6, 0xa2ea: 0xe0003802, 0xa2eb: 0xe000380e,
-	0xa2ec: 0xe000381a, 0xa2ed: 0xe0003822, 0xa2ee: 0xe000382a, 0xa2ef: 0xe0003832,
-	0xa2f0: 0xe000296d, 0xa2f1: 0xe000383a, 0xa2f2: 0xe0003842, 0xa2f3: 0xe0003853,
-	0xa2f4: 0xe000385b, 0xa2f5: 0xe0003863, 0xa2f6: 0xe000386b, 0xa2f7: 0xe0003873,
-	0xa2f8: 0xe000387b, 0xa2f9: 0xe000387f, 0xa2fa: 0xe0002978, 0xa2fb: 0xe0003883,
-	0xa2fc: 0xe0003887, 0xa2fd: 0xe0003894, 0xa2fe: 0xe0003898, 0xa2ff: 0xe0000bdf,
-	// Block 0x28c, offset 0xa300
-	0xa300: 0x6c009820, 0xa301: 0x6c0ea820, 0xa303: 0x6c08fe20,
-	0xa307: 0x6c148c20,
-	0xa308: 0x6c0ad420, 0xa309: 0x6c083420, 0xa30a: 0x6c0ad220, 0xa30b: 0x6c01b020,
-	0xa30d: 0x6c12c420, 0xa30e: 0x6c158a20,
-	0xa310: 0x6c172e20, 0xa311: 0x6c00da20,
-	0xa314: 0x6c02d020, 0xa315: 0x6c173020, 0xa316: 0x6c0bc820, 0xa317: 0x6c18e620,
-	0xa318: 0x6c041820, 0xa319: 0x6c134c20,
-	0xa31e: 0x6c0ad620,
-	0xa321: 0x6c164420,
-	0xa326: 0x6c135c20,
-	0xa32a: 0x6c173220,
-	0xa32d: 0x6c0e8020,
-	0xa331: 0x6c173420, 0xa332: 0x6c051c20,
-	0xa336: 0x6c173620,
-	0xa338: 0x6c036a20, 0xa339: 0x6c0e1420, 0xa33b: 0x6c095e20,
-	0xa33c: 0x6c173820, 0xa33f: 0x6c173a20,
-	// Block 0x28d, offset 0xa340
-	0xa342: 0x6c173c20, 0xa343: 0x6c110e20,
-	0xa345: 0x6c041a20,
-	0xa34b: 0x6c111220,
-	0xa34d: 0x6c10ae20, 0xa34e: 0x6c062620, 0xa34f: 0x6c13fa20,
-	0xa355: 0x6c29d820, 0xa356: 0x6c173e20, 0xa357: 0x6c0ad820,
-	0xa358: 0x6c174020, 0xa359: 0x6c01a220,
-	0xa35d: 0x6c04f220, 0xa35e: 0x6c068020, 0xa35f: 0x6c152220,
-	0xa362: 0x6c1b9e20,
-	0xa371: 0x6c15ec20, 0xa373: 0x6c10e220,
-	0xa37e: 0x6c02fa20,
-	// Block 0x28e, offset 0xa380
-	0xa380: 0x6c03d620, 0xa382: 0x6c174220,
-	0xa385: 0x6c174420, 0xa386: 0x6c163e20,
-	0xa388: 0x6c158620, 0xa389: 0x6c0d0c20, 0xa38a: 0x6c174820, 0xa38b: 0x6c08c020,
-	0xa38c: 0x6c10ce20, 0xa38e: 0x6c174e20,
-	0xa391: 0x6c00f820, 0xa392: 0x6c065e20,
-	0xa394: 0x6c065c20, 0xa395: 0x6c008c20,
-	0xa398: 0x6c171a20, 0xa399: 0x6c171820, 0xa39b: 0x6c077e20,
-	0xa39c: 0x6c000220, 0xa39e: 0x6c175020, 0xa39f: 0x6c175220,
-	0xa3a0: 0x6c175420, 0xa3a1: 0x6c13fc20, 0xa3a2: 0x6c175620,
-	0xa3a4: 0x6c068420, 0xa3a5: 0x6c008e20, 0xa3a6: 0x6c147820,
-	0xa3a8: 0x6c046420, 0xa3ab: 0x6c046620,
-	0xa3ac: 0x6c046820, 0xa3ad: 0x6c0f3420, 0xa3ae: 0x6c164020,
-	0xa3b0: 0x6c175820, 0xa3b3: 0x6c175a20,
-	0xa3b6: 0x6c175c20,
-	0xa3ba: 0x6c0b5e20,
-	// Block 0x28f, offset 0xa3c0
-	0xa3c0: 0x6c09c020, 0xa3c1: 0x6c0b6020, 0xa3c2: 0x6c176620,
-	0xa3c4: 0x6c176220, 0xa3c6: 0x6c176420, 0xa3c7: 0x6c041c20,
-	0xa3ca: 0x6c075e20, 0xa3cb: 0x6c021820,
-	0xa3cd: 0x6c176020, 0xa3ce: 0x6c175e20, 0xa3cf: 0x6c132a20,
-	0xa3d4: 0x6c086020, 0xa3d5: 0x6c085e20, 0xa3d6: 0x6c0d7420, 0xa3d7: 0x6c176820,
-	0xa3d8: 0x6c12c620, 0xa3d9: 0x6c0c4e20,
-	0xa3de: 0x6c176a20, 0xa3df: 0x6c176e20,
-	0xa3e3: 0x6c0dc220,
-	0xa3e4: 0x6c168a20, 0xa3e5: 0x6c005420,
-	0xa3ed: 0x6c176c20, 0xa3ee: 0x6c01b420,
-	0xa3f0: 0x6c04b020, 0xa3f2: 0x6c0e8220,
-	0xa3f6: 0x6c05c220, 0xa3f7: 0x6c177020,
-	0xa3fb: 0x6c10ec20,
-	// Block 0x290, offset 0xa400
-	0xa401: 0x6c038620,
-	0xa409: 0x6c177220, 0xa40a: 0x6c005620,
-	0xa40d: 0x6c066020, 0xa40e: 0x6c038820, 0xa40f: 0x6c131020,
-	0xa410: 0x6c11c420, 0xa411: 0x6c041e20,
-	0xa41a: 0x6c021a20,
-	0xa41c: 0x6c17b820, 0xa41d: 0x6c0fae20,
-	0xa42f: 0x6c117c20,
-	0xa430: 0x6c177620,
-	0xa434: 0x6c11d820, 0xa436: 0x6c168c20,
-	0xa438: 0x6c0b1e20, 0xa43a: 0x6c086220,
-	0xa43c: 0x6c08c220, 0xa43d: 0x6c01b820,
-	// Block 0x291, offset 0xa440
-	0xa443: 0x6c0f1220,
-	0xa446: 0x6c0df820, 0xa447: 0x6c177e20,
-	0xa44d: 0x6c005820, 0xa44e: 0x6c0f3620, 0xa44f: 0x6c09c220,
-	0xa450: 0x6c078020, 0xa451: 0x6c155420, 0xa453: 0x6c0d9420,
-	0xa455: 0x6c01b620, 0xa457: 0x6c177c20,
-	0xa459: 0x6c158820, 0xa45a: 0x6c177420, 0xa45b: 0x6c177820,
-	0xa45c: 0x6c07f420, 0xa45d: 0x6c177a20, 0xa45e: 0x6c1ade20,
-	0xa469: 0x6c178a20,
-	0xa46f: 0x6c179020,
-	0xa470: 0x6c178c20, 0xa473: 0x6c01bc20,
-	0xa475: 0x6c134e20, 0xa476: 0x6c178020,
-	0xa47b: 0x6c178820,
-	0xa47c: 0x6c068620, 0xa47f: 0x6c086420,
-	// Block 0x292, offset 0xa480
-	0xa483: 0x6c02fc20,
-	0xa486: 0x6c179220,
-	0xa488: 0x6c178220, 0xa48b: 0x6c168e20,
-	0xa48d: 0x6c08c420, 0xa48f: 0x6c178420,
-	0xa491: 0x6c178e20,
-	0xa496: 0x6c179420,
-	0xa498: 0x6c178620, 0xa49b: 0x6c046a20,
-	0xa49d: 0x6c005a20,
-	0xa4a0: 0x6c046c20, 0xa4a1: 0x6c01ba20,
-	0xa4ab: 0x6c1ae020,
-	0xa4ad: 0x6c148620, 0xa4ae: 0x6c12f820, 0xa4af: 0x6c068820,
-	0xa4b5: 0x6c0b2220, 0xa4b6: 0x6c163620,
-	0xa4bf: 0x6c138820,
-	// Block 0x293, offset 0xa4c0
-	0xa4c2: 0x6c055420, 0xa4c3: 0x6c0d4220,
-	0xa4c4: 0x6c020020,
-	0xa4ca: 0x6c09f220,
-	0xa4ce: 0x6c179c20,
-	0xa4d0: 0x6c17a620, 0xa4d1: 0x6c17a220,
-	0xa4d4: 0x6c179820, 0xa4d7: 0x6c0d5620,
-	0xa4d8: 0x6c179e20, 0xa4da: 0x6c17a420, 0xa4db: 0x6c17a020,
-	0xa4dd: 0x6c139220, 0xa4df: 0x6c179a20,
-	0xa4e1: 0x6c0b2020, 0xa4e3: 0x6c147a20,
-	0xa4e4: 0x6c17a820, 0xa4e5: 0x6c17aa20,
-	0xa4ee: 0x6c099420, 0xa4ef: 0x6c17c420,
-	0xa4f3: 0x6c114420,
-	0xa4f5: 0x6c128820, 0xa4f6: 0x6c17ba20,
-	0xa4f8: 0x6c13b820, 0xa4fa: 0x6c01a420,
-	0xa4fe: 0x6c17c220,
-	// Block 0x294, offset 0xa500
-	0xa505: 0x6c17b620, 0xa506: 0x6c17c820,
-	0xa509: 0x6c0ce020, 0xa50b: 0x6c062820,
-	0xa50d: 0x6c115c20, 0xa50f: 0x6c233820,
-	0xa511: 0x6c17c620, 0xa512: 0x6c0fe620,
-	0xa514: 0x6c17b020, 0xa516: 0x6c068c20,
-	0xa519: 0x6c068a20, 0xa51a: 0x6c17ac20,
-	0xa51f: 0x6c094420,
-	0xa521: 0x6c17bc20, 0xa523: 0x6c13b620,
-	0xa524: 0x6c0e4e20, 0xa525: 0x6c17b420, 0xa526: 0x6c05c620,
-	0xa528: 0x6c17ae20, 0xa529: 0x6c17be20, 0xa52a: 0x6c17b220, 0xa52b: 0x6c166a20,
-	0xa52c: 0x6c17c020, 0xa52d: 0x6c170620,
-	0xa536: 0x6c04f420,
-	0xa539: 0x6c05c420,
-	// Block 0x295, offset 0xa540
-	0xa543: 0x6c17ca20,
-	0xa547: 0x6c17cc20,
-	0xa548: 0x6c17d420, 0xa549: 0x6c005c20,
-	0xa54f: 0x6c137820,
-	0xa550: 0x6c17d220,
-	0xa555: 0x6c17d020, 0xa556: 0x6c17d820,
-	0xa55a: 0x6c17d620,
-	0xa55c: 0x6c0f3820,
-	0xa565: 0x6c05c820,
-	0xa56c: 0x6c17da20,
-	0xa572: 0x6c091a20,
-	0xa574: 0x6c0d4420, 0xa575: 0x6c0f3a20, 0xa576: 0x6c051420,
-	0xa578: 0x6c17dc20,
-	0xa57d: 0x6c03d820,
-	// Block 0x296, offset 0xa580
-	0xa580: 0x6c17de20,
-	0xa585: 0x6c17e220,
-	0xa58d: 0x6c13fe20,
-	0xa591: 0x6c05b020,
-	0xa598: 0x6c083620, 0xa599: 0x6c124e20, 0xa59a: 0x6c17e020,
-	0xa5ac: 0x6c07a220, 0xa5ad: 0x6c159220,
-	0xa5b2: 0x6c17e620, 0xa5b3: 0x6c17ec20,
-	0xa5b4: 0x6c17e420, 0xa5b5: 0x6c07a020, 0xa5b7: 0x6c0a4620,
-	0xa5be: 0x6c055620,
-	// Block 0x297, offset 0xa5c0
-	0xa5c2: 0x6c17ee20,
-	0xa5c5: 0x6c04c620,
-	0xa5c9: 0x6c17e820, 0xa5ca: 0x6c17ea20,
-	0xa5cd: 0x6c104620, 0xa5cf: 0x6c0d3420,
-	0xa5d1: 0x6c046e20,
-	0xa5d5: 0x6c142e20, 0xa5d6: 0x6c17f020,
-	0xa5da: 0x6c164220,
-	0xa5de: 0x6c17f220,
-	0xa5e3: 0x6c17f820,
-	0xa5e5: 0x6c17f420, 0xa5e7: 0x6c0cd820,
-	0xa5ed: 0x6c17f620, 0xa5ee: 0x6c17fa20,
-	0xa5f5: 0x6c17fe20,
-	0xa5f9: 0x6c17fc20, 0xa5fb: 0x6c136820,
-	// Block 0x298, offset 0xa600
-	0xa600: 0x6c03da20, 0xa601: 0x6c180220, 0xa602: 0x6c180420,
-	0xa604: 0x6c019620,
-	0xa609: 0x6c180020,
-	0xa612: 0x6c097820,
-	0xa614: 0x6c180a20, 0xa615: 0x6c180820, 0xa616: 0x6c180620,
-	0xa618: 0x6c179620, 0xa61a: 0x6c180c20,
-	0xa61f: 0x6c0a4820,
-	0xa621: 0x6c180e20,
-	0xa62a: 0x6c155620,
-	0xa632: 0x6c150220,
-	0xa637: 0x6c181220,
-	0xa63a: 0x6c181020, 0xa63b: 0x6c181620,
-	0xa63c: 0x6c181420, 0xa63f: 0x6c181820,
-	// Block 0x299, offset 0xa640
-	0xa640: 0x6c181a20, 0xa641: 0x6c00a820, 0xa643: 0x6c060a20,
-	0xa644: 0x6c055a20, 0xa645: 0x6c09c420, 0xa646: 0x6c0eaa20, 0xa647: 0x6c047020,
-	0xa648: 0x6c0c5020, 0xa649: 0x6c068e20, 0xa64b: 0x6c073820,
-	0xa64c: 0x6c181e20, 0xa64d: 0x6c14e020, 0xa64e: 0x6c0fb820,
-	0xa650: 0x6c08c620, 0xa652: 0x6c181c20,
-	0xa654: 0x6c182020,
-	0xa65a: 0x6c0fe820,
-	0xa65c: 0x6c02de20,
-	0xa662: 0x6c182220,
-	0xa665: 0x6c10e420,
-	0xa668: 0x6c0ca420, 0xa669: 0x6c182620, 0xa66a: 0x6c182820, 0xa66b: 0x6c11b820,
-	0xa66c: 0x6c069020, 0xa66d: 0x6c16fa20, 0xa66e: 0x6c182a20,
-	0xa671: 0x6c047420,
-	0xa675: 0x6c135020, 0xa676: 0x6c0d6420, 0xa677: 0x6c050a20,
-	0xa678: 0x6c0f9620,
-	0xa67c: 0x6c05ca20,
-	// Block 0x29a, offset 0xa680
-	0xa680: 0x6c182c20, 0xa682: 0x6c182e20,
-	0xa685: 0x6c10ac20, 0xa686: 0x6c013a20,
-	0xa689: 0x6c183420, 0xa68a: 0x6c081220,
-	0xa68c: 0x6c183220, 0xa68d: 0x6c07a420, 0xa68f: 0x6c183620,
-	0xa690: 0x6c27ee20, 0xa691: 0x6c183820, 0xa692: 0x6c141620, 0xa693: 0x6c183a20,
-	0xa695: 0x6c183c20, 0xa696: 0x6c183e20, 0xa697: 0x6c0ada20,
-	0xa699: 0x6c092820,
-	0xa6a0: 0x6c02fe20, 0xa6a2: 0x6c184420,
-	0xa6a4: 0x6c184020, 0xa6a5: 0x6c14ca20, 0xa6a6: 0x6c184220,
-	0xa6a8: 0x6c12d020, 0xa6a9: 0x6c184620, 0xa6aa: 0x6c184820, 0xa6ab: 0x6c184a20,
-	0xa6ac: 0x6c0fea20,
-	0xa6b0: 0x6c185220, 0xa6b1: 0x6c184e20, 0xa6b2: 0x6c185020, 0xa6b3: 0x6c184c20,
-	0xa6b4: 0x6c07de20, 0xa6b5: 0x6c185420, 0xa6b6: 0x6c152420, 0xa6b7: 0x6c169020,
-	0xa6bd: 0x6c185620,
-	// Block 0x29b, offset 0xa6c0
-	0xa6c4: 0x6c0bd020, 0xa6c5: 0x6c185820, 0xa6c6: 0x6c0a0020,
-	0xa6c9: 0x6c185a20, 0xa6cb: 0x6c0eac20,
-	0xa6cc: 0x6c164620, 0xa6cd: 0x6c0fec20,
-	0xa6d6: 0x6c18ec20,
-	0xa6db: 0x6c185c20,
-	0xa6dc: 0x6c31a420, 0xa6dd: 0x6c04b220,
-	0xa6e0: 0x6c185e20, 0xa6e1: 0x6c145020,
-	0xa6e6: 0x6c0a1c20, 0xa6e7: 0x6c0df020,
-	0xa6e9: 0x6c186220, 0xa6ea: 0x6c10b020,
-	0xa6ed: 0x6c186420,
-	0xa6f0: 0x6c186620, 0xa6f1: 0x6c025020,
-	0xa6f5: 0x6c186820, 0xa6f6: 0x6c047620,
-	0xa6f8: 0x6c108020, 0xa6f9: 0x6c017020, 0xa6fa: 0x6c09ec20,
-	0xa6fd: 0x6c11a220, 0xa6fe: 0x6c186a20,
-	// Block 0x29c, offset 0xa700
-	0xa700: 0x6c0fee20, 0xa703: 0x6c0b6220,
-	0xa704: 0x6c186c20, 0xa706: 0x6c133020, 0xa707: 0x6c0c3420,
-	0xa708: 0x6c02f420, 0xa70a: 0x6c030220, 0xa70b: 0x6c186e20,
-	0xa70e: 0x6c187220,
-	0xa711: 0x6c055820,
-	0xa714: 0x6c187020, 0xa717: 0x6c16ae20,
-	0xa71d: 0x6c0a1e20,
-	0xa724: 0x6c11da20, 0xa725: 0x6c137020, 0xa727: 0x6c187420,
-	0xa729: 0x6c15fc20, 0xa72a: 0x6c187620,
-	0xa72e: 0x6c187820,
-	0xa730: 0x6c102820, 0xa733: 0x6c187a20,
-	0xa736: 0x6c0bd220, 0xa737: 0x6c081420,
-	0xa738: 0x6c05cc20, 0xa739: 0x6c187c20, 0xa73a: 0x6c086620, 0xa73b: 0x6c073a20,
-	// Block 0x29d, offset 0xa740
-	0xa743: 0x6c0f3c20,
-	0xa744: 0x6c188020, 0xa747: 0x6c0d4620,
-	0xa74a: 0x6c07f620, 0xa74b: 0x6c188220,
-	0xa74c: 0x6c188420, 0xa74d: 0x6c0c9c20, 0xa74f: 0x6c187e20,
-	0xa754: 0x6c188820, 0xa756: 0x6c140020,
-	0xa75b: 0x6c072420,
-	0xa75e: 0x6c188620,
-	0xa763: 0x6c05ce20,
-	0xa764: 0x6c07d420, 0xa765: 0x6c117e20,
-	0xa769: 0x6c188e20, 0xa76a: 0x6c188a20,
-	0xa76f: 0x6c131220,
-	0xa770: 0x6c0adc20, 0xa771: 0x6c189c20, 0xa772: 0x6c02bc20, 0xa773: 0x6c189020,
-	0xa774: 0x6c188c20, 0xa775: 0x6c0cda20,
-	0xa77d: 0x6c189420, 0xa77f: 0x6c189220,
-	// Block 0x29e, offset 0xa780
-	0xa783: 0x6c027c20,
-	0xa787: 0x6c05a420,
-	0xa788: 0x6c189e20, 0xa789: 0x6c162220,
-	0xa78d: 0x6c189620,
-	0xa791: 0x6c18a020, 0xa792: 0x6c189a20,
-	0xa794: 0x6c189820,
-	0xa79b: 0x6c166620,
-	0xa79f: 0x6c069220,
-	0xa7a0: 0x6c01be20, 0xa7a3: 0x6c16b020,
-	0xa7a9: 0x6c0a3620, 0xa7aa: 0x6c0fdc20, 0xa7ab: 0x6c072620,
-	0xa7ac: 0x6c18a620, 0xa7ad: 0x6c18a820,
-	0xa7b1: 0x6c169220,
-	0xa7b4: 0x6c16da20, 0xa7b5: 0x6c18ac20,
-	0xa7b9: 0x6c069420,
-	0xa7bc: 0x6c18aa20, 0xa7be: 0x6c025220,
-	// Block 0x29f, offset 0xa7c0
-	0xa7c1: 0x6c18ae20, 0xa7c3: 0x6c144020,
-	0xa7c5: 0x6c0ee820, 0xa7c7: 0x6c155820,
-	0xa7c9: 0x6c138a20,
-	0xa7cd: 0x6c18b020,
-	0xa7d2: 0x6c2f1420,
-	0xa7d5: 0x6c104820, 0xa7d7: 0x6c18b220,
-	0xa7d8: 0x6c030420, 0xa7d9: 0x6c14b620,
-	0xa7dd: 0x6c0a4a20, 0xa7de: 0x6c18b420, 0xa7df: 0x6c13a620,
-	0xa7e0: 0x6c18bc20, 0xa7e2: 0x6c0bd420, 0xa7e3: 0x6c18b620,
-	0xa7e4: 0x6c04c820, 0xa7e6: 0x6c18b820, 0xa7e7: 0x6c030620,
-	0xa7f2: 0x6c054020, 0xa7f3: 0x6c18be20,
-	0xa7f5: 0x6c18c020,
-	0xa7f8: 0x6c18c220, 0xa7f9: 0x6c18c420, 0xa7fa: 0x6c094620,
-	0xa7fe: 0x6c069620, 0xa7ff: 0x6c150c20,
-	// Block 0x2a0, offset 0xa800
-	0xa801: 0x6c152020, 0xa802: 0x6c10d620,
-	0xa805: 0x6c13ba20, 0xa806: 0x6c18c620,
-	0xa808: 0x6c18c820,
-	0xa80d: 0x6c18cc20, 0xa80f: 0x6c18d020,
-	0xa810: 0x6c18ce20,
-	0xa815: 0x6c18d220, 0xa816: 0x6c01b220, 0xa817: 0x6c142c20,
-	0xa819: 0x6c081020, 0xa81a: 0x6c18d420,
-	0xa81d: 0x6c0cee20,
-	0xa820: 0x6c0a4c20, 0xa821: 0x6c047a20, 0xa823: 0x6c18d620,
-	0xa82a: 0x6c121620,
-	0xa82f: 0x6c18d820,
-	0xa831: 0x6c18da20, 0xa833: 0x6c18dc20,
-	0xa838: 0x6c18de20, 0xa839: 0x6c126420, 0xa83a: 0x6c04f820, 0xa83b: 0x6c008a20,
-	0xa83f: 0x6c106620,
-	// Block 0x2a1, offset 0xa840
-	0xa840: 0x6c18e020, 0xa841: 0x6c09c620, 0xa843: 0x6c0c5220,
-	0xa845: 0x6c18e420, 0xa846: 0x6c18e220, 0xa847: 0x6c0a4e20,
-	0xa848: 0x6c066220, 0xa849: 0x6c18e820, 0xa84a: 0x6c11dc20,
-	0xa84d: 0x6c18ea20,
-	0xa851: 0x6c121820, 0xa852: 0x6c0d6020, 0xa853: 0x6c0dd420,
-	0xa854: 0x6c047820, 0xa857: 0x6c10c420,
-	0xa858: 0x6c0e1620, 0xa85a: 0x6c118020,
-	0xa85c: 0x6c143020, 0xa85e: 0x6c18ee20,
-	0xa860: 0x6c0c5420,
-	0xa866: 0x6c054e20,
-	0xa869: 0x6c18f020,
-	0xa86e: 0x6c18f220, 0xa86f: 0x6c00d420,
-	0xa870: 0x6c00aa20, 0xa871: 0x6c038a20, 0xa873: 0x6c0d4820,
-	0xa874: 0x6c040e20, 0xa875: 0x6c15ee20, 0xa877: 0x6c18f820,
-	0xa878: 0x6c01a620, 0xa87b: 0x6c18f620,
-	0xa87f: 0x6c047c20,
-	// Block 0x2a2, offset 0xa880
-	0xa882: 0x6c18fa20,
-	0xa884: 0x6c153220,
-	0xa896: 0x6c18fc20,
-	0xa898: 0x6c166c20, 0xa89a: 0x6c069820,
-	0xa89f: 0x6c060c20,
-	0xa8a0: 0x6c18fe20,
-	0xa8a5: 0x6c190220, 0xa8a6: 0x6c190020,
-	0xa8a8: 0x6c0b8220, 0xa8a9: 0x6c00ee20,
-	0xa8ad: 0x6c013820, 0xa8ae: 0x6c190420,
-	0xa8b0: 0x6c190620, 0xa8b3: 0x6c060e20,
-	0xa8b6: 0x6c190820,
-	0xa8bb: 0x6c044820,
-	// Block 0x2a3, offset 0xa8c0
-	0xa8c2: 0x6c083820, 0xa8c3: 0x6c190a20,
-	0xa8c8: 0x6c147c20, 0xa8c9: 0x6c078220, 0xa8ca: 0x6c042020, 0xa8cb: 0x6c155a20,
-	0xa8cc: 0x6c0cdc20, 0xa8cd: 0x6c11de20, 0xa8ce: 0x6c098a20,
-	0xa8d4: 0x6c09da20, 0xa8d6: 0x6c096020, 0xa8d7: 0x6c097a20,
-	0xa8d9: 0x6c0a3820, 0xa8db: 0x6c11e020,
-	0xa8df: 0x6c191020,
-	0xa8e1: 0x6c010220, 0xa8e2: 0x6c0cde20, 0xa8e3: 0x6c069a20,
-	0xa8e4: 0x6c062a20, 0xa8e5: 0x6c04f620,
-	0xa8e8: 0x6c191820, 0xa8e9: 0x6c0df620, 0xa8ea: 0x6c0df420, 0xa8eb: 0x6c047e20,
-	0xa8ec: 0x6c0a5020, 0xa8ed: 0x6c191a20, 0xa8ee: 0x6c191620, 0xa8ef: 0x6c01c020,
-	0xa8f0: 0x6c0dc420, 0xa8f1: 0x6c090020, 0xa8f2: 0x6c086a20, 0xa8f3: 0x6c00c820,
-	0xa8f6: 0x6c02d420, 0xa8f7: 0x6c072820,
-	0xa8f8: 0x6c086820, 0xa8fa: 0x6c191c20,
-	// Block 0x2a4, offset 0xa900
-	0xa901: 0x6c191e20, 0xa903: 0x6c03fe20,
-	0xa904: 0x6c028020,
-	0xa908: 0x6c072a20, 0xa909: 0x6c03fc20, 0xa90a: 0x6c0f2e20, 0xa90b: 0x6c00c620,
-	0xa90c: 0x6c104a20, 0xa90d: 0x6c14cc20, 0xa90e: 0x6c069e20, 0xa90f: 0x6c15fe20,
-	0xa910: 0x6c0fba20, 0xa911: 0x6c069c20,
-	0xa91b: 0x6c054220,
-	0xa91d: 0x6c193020, 0xa91f: 0x6c04ee20,
-	0xa920: 0x6c142820,
-	0xa926: 0x6c121a20,
-	0xa929: 0x6c192e20, 0xa92b: 0x6c036c20,
-	0xa92c: 0x6c192420, 0xa92d: 0x6c192620, 0xa92e: 0x6c192a20,
-	0xa936: 0x6c192c20,
-	0xa938: 0x6c042220, 0xa939: 0x6c0b8620, 0xa93b: 0x6c133220,
-	0xa93c: 0x6c192820, 0xa93d: 0x6c192020, 0xa93e: 0x6c066620,
-	// Block 0x2a5, offset 0xa940
-	0xa940: 0x6c192220, 0xa942: 0x6c16cc20,
-	0xa946: 0x6c13bc20,
-	0xa948: 0x6c0f4020, 0xa949: 0x6c066420, 0xa94a: 0x6c073c20,
-	0xa94e: 0x6c193220,
-	0xa951: 0x6c10a220,
-	0xa95f: 0x6c193a20,
-	0xa968: 0x6c098c20, 0xa96a: 0x6c097c20,
-	0xa970: 0x6c194020, 0xa971: 0x6c193c20, 0xa973: 0x6c149620,
-	0xa975: 0x6c193620, 0xa976: 0x6c194820, 0xa977: 0x6c193e20,
-	0xa97b: 0x6c194420,
-	0xa97c: 0x6c062c20, 0xa97d: 0x6c14ce20,
-	// Block 0x2a6, offset 0xa980
-	0xa980: 0x6c194620,
-	0xa984: 0x6c194a20, 0xa986: 0x6c194e20,
-	0xa98b: 0x6c07f820,
-	0xa98c: 0x6c170820, 0xa98e: 0x6c193820, 0xa98f: 0x6c193420,
-	0xa990: 0x6c194c20, 0xa992: 0x6c194220,
-	0xa9a2: 0x6c195220,
-	0xa9a4: 0x6c196420, 0xa9a5: 0x6c195620,
-	0xa9a8: 0x6c195e20, 0xa9ab: 0x6c196020,
-	0xa9ac: 0x6c195820, 0xa9af: 0x6c199a20,
-	0xa9b2: 0x6c07ea20, 0xa9b3: 0x6c025620,
-	0xa9b8: 0x6c195420,
-	0xa9bc: 0x6c196820, 0xa9bd: 0x6c00ac20, 0xa9be: 0x6c196620,
-	// Block 0x2a7, offset 0xa9c0
-	0xa9c0: 0x6c000a20, 0xa9c1: 0x6c12b020, 0xa9c2: 0x6c196220,
-	0xa9c4: 0x6c195a20, 0xa9c7: 0x6c195020,
-	0xa9c8: 0x6c195c20, 0xa9c9: 0x6c07a820,
-	0xa9d8: 0x6c196a20,
-	0xa9e1: 0x6c00ae20, 0xa9e2: 0x6c197c20,
-	0xa9e5: 0x6c196c20, 0xa9e6: 0x6c196e20,
-	0xa9e8: 0x6c0a5220, 0xa9e9: 0x6c146620,
-	0xa9ed: 0x6c197820, 0xa9ee: 0x6c197620,
-	0xa9f2: 0x6c0f8a20,
-	0xa9fa: 0x6c197a20,
-	0xa9fd: 0x6c197420,
-	// Block 0x2a8, offset 0xaa00
-	0xaa04: 0x6c00e420, 0xaa06: 0x6c078420, 0xaa07: 0x6c0b2420,
-	0xaa0f: 0x6c197020,
-	0xaa10: 0x6c0ff020,
-	0xaa14: 0x6c197220, 0xaa16: 0x6c000420,
-	0xaa2e: 0x6c198620, 0xaa2f: 0x6c155220,
-	0xaa31: 0x6c0a5620, 0xaa33: 0x6c199220,
-	0xaa38: 0x6c199020, 0xaa39: 0x6c197e20,
-	0xaa3e: 0x6c0d7e20,
-	// Block 0x2a9, offset 0xaa40
-	0xaa40: 0x6c198020,
-	0xaa44: 0x6c0dd620, 0xaa45: 0x6c198a20, 0xaa46: 0x6c0a5420,
-	0xaa4c: 0x6c198420, 0xaa4f: 0x6c151820,
-	0xaa53: 0x6c055c20,
-	0xaa56: 0x6c198c20, 0xaa57: 0x6c198e20,
-	0xaa5c: 0x6c198820, 0xaa5d: 0x6c199420,
-	0xaa63: 0x6c198220,
-	0xaa7b: 0x6c19a020,
-	0xaa7c: 0x6c19aa20, 0xaa7e: 0x6c19a220,
-	// Block 0x2aa, offset 0xaa80
-	0xaa80: 0x6c199820, 0xaa83: 0x6c19ac20,
-	0xaa84: 0x6c0c9e20, 0xaa87: 0x6c19b020,
-	0xaa89: 0x6c06a020, 0xaa8a: 0x6c199c20, 0xaa8b: 0x6c0eae20,
-	0xaa98: 0x6c19a420, 0xaa99: 0x6c199620, 0xaa9a: 0x6c030a20,
-	0xaa9c: 0x6c038c20, 0xaa9d: 0x6c02be20, 0xaa9e: 0x6c19a620, 0xaa9f: 0x6c199e20,
-	0xaaa7: 0x6c05d020,
-	0xaaa8: 0x6c19b220, 0xaaa9: 0x6c19ae20, 0xaaaa: 0x6c0ce220, 0xaaab: 0x6c040020,
-	0xaaac: 0x6c048020, 0xaaae: 0x6c19a820,
-	0xaab0: 0x6c051020,
-	0xaab6: 0x6c010420,
-	// Block 0x2ab, offset 0xaac0
-	0xaac4: 0x6c19ba20, 0xaac5: 0x6c19b620, 0xaac7: 0x6c1a2820,
-	0xaad4: 0x6c19c020,
-	0xaada: 0x6c19b420,
-	0xaadc: 0x6c19bc20, 0xaadf: 0x6c19b820,
-	0xaae3: 0x6c086c20,
-	0xaae4: 0x6c19be20,
-	0xaaf7: 0x6c19c420,
-	0xaaf9: 0x6c19ce20,
-	0xaafd: 0x6c19ca20, 0xaafe: 0x6c19c820,
-	// Block 0x2ac, offset 0xab00
-	0xab06: 0x6c0e1820,
-	0xab09: 0x6c01c220,
-	0xab14: 0x6c19c220, 0xab16: 0x6c19c620, 0xab17: 0x6c0a5820,
-	0xab18: 0x6c00e220, 0xab1b: 0x6c19cc20,
-	0xab29: 0x6c01f420,
-	0xab2f: 0x6c19e220,
-	0xab31: 0x6c0b0020, 0xab32: 0x6c19da20,
-	0xab34: 0x6c19d620, 0xab36: 0x6c19d820,
-	0xab38: 0x6c19dc20,
-	// Block 0x2ad, offset 0xab40
-	0xab42: 0x6c00f620,
-	0xab4c: 0x6c0cae20, 0xab4e: 0x6c19d020,
-	0xab50: 0x6c19d220,
-	0xab5b: 0x6c02e820,
-	0xab64: 0x6c19e020,
-	0xab68: 0x6c038e20, 0xab6a: 0x6c19e620, 0xab6b: 0x6c19de20,
-	0xab6c: 0x6c19e420,
-	0xab74: 0x6c133420,
-	0xab78: 0x6c109220, 0xab7a: 0x6c11d020,
-	// Block 0x2ae, offset 0xab80
-	0xab80: 0x6c19ea20,
-	0xab86: 0x6c19e820, 0xab87: 0x6c027e20,
-	0xab8a: 0x6c19ec20,
-	0xab8f: 0x6c19f220,
-	0xab94: 0x6c19f020,
-	0xaba0: 0x6c19ee20, 0xaba2: 0x6c111620,
-	0xaba5: 0x6c19f420,
-	0xabae: 0x6c19f620,
-	0xabb4: 0x6c19fa20, 0xabb6: 0x6c19f820,
-	0xabbc: 0x6c19fe20,
-	// Block 0x2af, offset 0xabc0
-	0xabc0: 0x6c1a0420, 0xabc1: 0x6c1a0020, 0xabc2: 0x6c19fc20, 0xabc3: 0x6c1a0220,
-	0xabc8: 0x6c1a0620,
-	0xabce: 0x6c1a0820,
-	0xabd1: 0x6c1a0a20, 0xabd3: 0x6c1a0c20,
-	0xabd7: 0x6c1a0e20,
-	0xabd8: 0x6c183020, 0xabda: 0x6c098820, 0xabdb: 0x6c086e20,
-	0xabde: 0x6c021e20,
-	0xabe0: 0x6c00b020, 0xabe3: 0x6c0e3c20,
-	0xabee: 0x6c1a1020,
-	0xabf0: 0x6c076020, 0xabf2: 0x6c005e20, 0xabf3: 0x6c0b8020,
-	0xabf9: 0x6c1a1220, 0xabfa: 0x6c062e20,
-	0xabfd: 0x6c073e20, 0xabff: 0x6c1a1620,
-	// Block 0x2b0, offset 0xac00
-	0xac00: 0x6c1a1420, 0xac03: 0x6c139820,
-	0xac04: 0x6c1a1820,
-	0xac08: 0x6c1a1c20, 0xac09: 0x6c1a1a20, 0xac0b: 0x6c1a1e20,
-	0xac0d: 0x6c1a2020, 0xac0f: 0x6c05d220,
-	0xac12: 0x6c013c20, 0xac13: 0x6c1a2220,
-	0xac16: 0x6c1a2620,
-	0xac18: 0x6c1a2420,
-	0xac1c: 0x6c1a2a20, 0xac1f: 0x6c0fe020,
-	0xac26: 0x6c1a2c20, 0xac27: 0x6c002a20,
-	0xac28: 0x6c07d620,
-	0xac2d: 0x6c055e20,
-	0xac30: 0x6c0e5220,
-	0xac37: 0x6c1a2e20,
-	0xac38: 0x6c1a3020, 0xac3b: 0x6c1a3420,
-	// Block 0x2b1, offset 0xac40
-	0xac40: 0x6c1a3620, 0xac42: 0x6c07e020,
-	0xac47: 0x6c04ca20,
-	0xac4a: 0x6c140220,
-	0xac4e: 0x6c1a3220, 0xac4f: 0x6c1a3820,
-	0xac50: 0x6c079a20, 0xac51: 0x6c06a220,
-	0xac61: 0x6c1a4020,
-	0xac64: 0x6c076220, 0xac66: 0x6c0e1a20,
-	0xac69: 0x6c1a3a20, 0xac6a: 0x6c0f2420,
-	0xac7f: 0x6c1a4220,
-	// Block 0x2b2, offset 0xac80
-	0xac82: 0x6c0b8820,
-	0xac88: 0x6c1a3e20, 0xac89: 0x6c1a4420, 0xac8b: 0x6c056220,
-	0xac93: 0x6c1a4620,
-	0xaca0: 0x6c1a4820, 0xaca2: 0x6c06a420, 0xaca3: 0x6c027420,
-	0xaca4: 0x6c1a4c20,
-	0xacaa: 0x6c1a4e20,
-	0xacb0: 0x6c1a5020, 0xacb3: 0x6c1a4a20,
-	// Block 0x2b3, offset 0xacc0
-	0xacc0: 0x6c1a3c20, 0xacc3: 0x6c1a5220,
-	0xacc6: 0x6c1a5420,
-	0xaccb: 0x6c145c20,
-	0xacce: 0x6c0ade20,
-	0xacd2: 0x6c1a5820, 0xacd3: 0x6c1a5a20,
-	0xacd4: 0x6c1a5620, 0xacd6: 0x6c1a5e20,
-	0xacdc: 0x6c111420, 0xacdf: 0x6c009020,
-	0xace0: 0x6c12c820, 0xace3: 0x6c1a6020,
-	0xacf4: 0x6c0b0220, 0xacf7: 0x6c090220,
-	0xacf9: 0x6c115e20, 0xacfa: 0x6c039020,
-	0xacfc: 0x6c07ee20,
-	// Block 0x2b4, offset 0xad00
-	0xad00: 0x6c144620, 0xad02: 0x6c104c20,
-	0xad05: 0x6c05d420, 0xad06: 0x6c0d9620,
-	0xad0a: 0x6c1a5c20, 0xad0b: 0x6c1a6220,
-	0xad15: 0x6c0d8020,
-	0xad19: 0x6c1a6420,
-	0xad1d: 0x6c1a6620,
-	0xad21: 0x6c1a6a20,
-	0xad24: 0x6c0f4220,
-	0xad2a: 0x6c030c20,
-	0xad2f: 0x6c319c20,
-	0xad30: 0x6c013e20, 0xad31: 0x6c13be20,
-	0xad34: 0x6c0ae020, 0xad35: 0x6c0fbc20,
-	0xad3a: 0x6c07e420,
-	0xad3d: 0x6c1a7620,
-	// Block 0x2b5, offset 0xad40
-	0xad40: 0x6c135220, 0xad41: 0x6c168220,
-	0xad4a: 0x6c022020, 0xad4b: 0x6c1a6e20,
-	0xad51: 0x6c0cb020, 0xad52: 0x6c1a7420,
-	0xad54: 0x6c0ff220, 0xad57: 0x6c0fbe20,
-	0xad58: 0x6c0ff420, 0xad59: 0x6c11d220, 0xad5a: 0x6c0f0a20,
-	0xad5e: 0x6c07aa20,
-	0xad62: 0x6c1a6c20,
-	0xad69: 0x6c016820, 0xad6b: 0x6c0f9820,
-	0xad70: 0x6c1a7020, 0xad72: 0x6c1a6820,
-	0xad75: 0x6c0b6420,
-	0xad79: 0x6c1a7820,
-	0xad7e: 0x6c09e820,
-	// Block 0x2b6, offset 0xad80
-	0xad83: 0x6c048220,
-	0xad85: 0x6c1a7a20,
-	0xad93: 0x6c13a820,
-	0xad97: 0x6c0d3620,
-	0xad9c: 0x6c0efc20, 0xad9f: 0x6c1a7e20,
-	0xada8: 0x6c143220, 0xadab: 0x6c1a8020,
-	0xadae: 0x6c1a8a20,
-	0xadb3: 0x6c133620,
-	0xadb8: 0x6c1a8820, 0xadb9: 0x6c1a7c20, 0xadba: 0x6c1a8220, 0xadbb: 0x6c1a8620,
-	0xadbe: 0x6c076420,
-	// Block 0x2b7, offset 0xadc0
-	0xadc1: 0x6c136a20,
-	0xadc5: 0x6c1a8c20, 0xadc7: 0x6c0e3e20,
-	0xadca: 0x6c022220,
-	0xadcc: 0x6c0ae220,
-	0xadd1: 0x6c1a9020, 0xadd3: 0x6c1a8e20,
-	0xadd5: 0x6c072c20, 0xadd7: 0x6c1a9220,
-	0xadd8: 0x6c1a9620, 0xadd9: 0x6c1a9420,
-	0xaddc: 0x6c1a9a20, 0xadde: 0x6c1a8420, 0xaddf: 0x6c1a9e20,
-	0xade4: 0x6c1a9c20, 0xade5: 0x6c1a9820,
-	0xadeb: 0x6c087020,
-	0xadec: 0x6c0b6620, 0xadee: 0x6c0ce420, 0xadef: 0x6c1aa020,
-	0xadf0: 0x6c0bf820, 0xadf1: 0x6c009a20, 0xadf2: 0x6c116c20,
-	0xadf7: 0x6c0f2620,
-	0xadf9: 0x6c1aa420, 0xadfa: 0x6c1aa220, 0xadfb: 0x6c1aa620,
-	0xadfc: 0x6c1aa820, 0xadfd: 0x6c1aaa20,
-	// Block 0x2b8, offset 0xae00
-	0xae02: 0x6c1aac20,
-	0xae09: 0x6c137a20, 0xae0a: 0x6c1aae20,
-	0xae0f: 0x6c01c420,
-	0xae10: 0x6c1ab020,
-	0xae15: 0x6c158420, 0xae16: 0x6c025420,
-	0xae18: 0x6c18f420, 0xae19: 0x6c09dc20, 0xae1a: 0x6c0d7620, 0xae1b: 0x6c1ab220,
-	0xae1c: 0x6c152620,
-	0xae22: 0x6c14b820,
-	0xae25: 0x6c1ab620, 0xae27: 0x6c0dc620,
-	0xae29: 0x6c0f9a20, 0xae2a: 0x6c0d7820, 0xae2b: 0x6c12ca20,
-	0xae2c: 0x6c1ab820, 0xae2d: 0x6c1aba20, 0xae2e: 0x6c017220,
-	0xae31: 0x6c090420, 0xae32: 0x6c1abc20,
-	0xae37: 0x6c006020,
-	0xae38: 0x6c1abe20,
-	0xae3e: 0x6c1ac020,
-	// Block 0x2b9, offset 0xae40
-	0xae44: 0x6c014020, 0xae47: 0x6c039220,
-	0xae48: 0x6c10a820, 0xae49: 0x6c13c020,
-	0xae4e: 0x6c1ac820, 0xae4f: 0x6c0ce620,
-	0xae50: 0x6c1ac620, 0xae51: 0x6c056420,
-	0xae54: 0x6c144a20, 0xae55: 0x6c1ac420, 0xae57: 0x6c0ff620,
-	0xae58: 0x6c1acc20, 0xae5a: 0x6c1aca20,
-	0xae60: 0x6c1ad020, 0xae62: 0x6c1ace20,
-	0xae65: 0x6c017420, 0xae67: 0x6c1ad220,
-	0xae68: 0x6c0a5a20, 0xae69: 0x6c1ad620, 0xae6a: 0x6c0dfe20,
-	0xae6c: 0x6c1ad420, 0xae6e: 0x6c133e20,
-	0xae73: 0x6c0a3a20,
-	0xae74: 0x6c0fe220,
-	0xae78: 0x6c1ad820,
-	0xae7d: 0x6c06a620,
-	// Block 0x2ba, offset 0xae80
-	0xae81: 0x6c1ada20, 0xae82: 0x6c10e620, 0xae83: 0x6c121c20,
-	0xae84: 0x6c14f220,
-	0xae8a: 0x6c10ee20,
-	0xae8d: 0x6c1aec20,
-	0xae93: 0x6c03dc20,
-	0xae96: 0x6c159620,
-	0xae99: 0x6c14ae20, 0xae9b: 0x6c1baa20,
-	0xae9d: 0x6c1adc20,
-	0xaea3: 0x6c1ae220,
-	0xaea5: 0x6c0d8220,
-	0xaea8: 0x6c140420,
-	0xaeac: 0x6c0fc020,
-	0xaeb2: 0x6c1ae420,
-	0xaeb9: 0x6c145e20, 0xaebb: 0x6c07ac20,
-	0xaebe: 0x6c0a5c20,
-	// Block 0x2bb, offset 0xaec0
-	0xaec6: 0x6c1ae620,
-	0xaec9: 0x6c087420, 0xaecb: 0x6c087220,
-	0xaed0: 0x6c003220, 0xaed1: 0x6c063020, 0xaed3: 0x6c0bd620,
-	0xaed4: 0x6c006220,
-	0xaed9: 0x6c1aee20, 0xaeda: 0x6c1af020,
-	0xaedc: 0x6c1aea20,
-	0xaee5: 0x6c00ec20, 0xaee6: 0x6c030e20,
-	0xaee8: 0x6c1ae820, 0xaeea: 0x6c14da20, 0xaeeb: 0x6c127e20,
-	0xaef6: 0x6c001020,
-	0xaefb: 0x6c00b220,
-	0xaeff: 0x6c087620,
-	// Block 0x2bc, offset 0xaf00
-	0xaf01: 0x6c006420, 0xaf03: 0x6c000620,
-	0xaf09: 0x6c1afa20,
-	0xaf11: 0x6c1af620,
-	0xaf18: 0x6c14c820, 0xaf1a: 0x6c1afc20,
-	0xaf1c: 0x6c1af820, 0xaf1f: 0x6c1af420,
-	0xaf20: 0x6c0b2620,
-	0xaf25: 0x6c1af220,
-	0xaf29: 0x6c138c20,
-	0xaf2f: 0x6c066820,
-	0xaf35: 0x6c1b0420, 0xaf36: 0x6c1b0620,
-	0xaf3c: 0x6c0a5e20,
-	// Block 0x2bd, offset 0xaf40
-	0xaf40: 0x6c1afe20, 0xaf41: 0x6c16dc20,
-	0xaf46: 0x6c113c20,
-	0xaf49: 0x6c1b0220,
-	0xaf5a: 0x6c076620,
-	0xaf62: 0x6c1b0820,
-	0xaf66: 0x6c12cc20,
-	0xaf6a: 0x6c1b0a20,
-	0xaf6c: 0x6c1b0020,
-	0xaf7f: 0x6c14c620,
-	// Block 0x2be, offset 0xaf80
-	0xaf92: 0x6c116020,
-	0xaf9a: 0x6c1b0c20, 0xaf9b: 0x6c128020,
-	0xafbc: 0x6c1b0e20, 0xafbd: 0x6c1b1620, 0xafbe: 0x6c1b1020,
-	// Block 0x2bf, offset 0xafc0
-	0xafc1: 0x6c01c620, 0xafc2: 0x6c1b1420,
-	0xafc9: 0x6c090620, 0xafcb: 0x6c1b1220,
-	0xafcc: 0x6c05d620,
-	0xafd0: 0x6c1b2e20,
-	0xafd6: 0x6c1b2020, 0xafd7: 0x6c1b1a20,
-	0xafe1: 0x6c0e7c20, 0xafe3: 0x6c1b1820,
-	0xafe6: 0x6c1b1c20,
-	0xafe9: 0x6c1b1e20,
-	0xaffa: 0x6c1b2220, 0xaffb: 0x6c1b2420,
-	// Block 0x2c0, offset 0xb000
-	0xb009: 0x6c039420, 0xb00b: 0x6c1b2820,
-	0xb00c: 0x6c1b2620,
-	0xb016: 0x6c1b2a20,
-	0xb022: 0x6c0ae420,
-	0xb02a: 0x6c1b3020,
-	0xb02c: 0x6c0f2820,
-	0xb030: 0x6c010620, 0xb032: 0x6c1b2c20,
-	0xb036: 0x6c1b3220,
-	0xb03e: 0x6c1b3420,
-	// Block 0x2c1, offset 0xb040
-	0xb040: 0x6c1b3a20, 0xb043: 0x6c1b3620,
-	0xb045: 0x6c1b3820,
-	0xb050: 0x6c087820, 0xb051: 0x6c1b3c20,
-	0xb054: 0x6c06a820, 0xb055: 0x6c1b3e20, 0xb057: 0x6c08c820,
-	0xb058: 0x6c0d6820, 0xb05a: 0x6c1b4020, 0xb05b: 0x6c1b4220,
-	0xb05c: 0x6c088820, 0xb05d: 0x6c06aa20, 0xb05f: 0x6c14f420,
-	0xb063: 0x6c03bc20,
-	0xb064: 0x6c063220, 0xb065: 0x6c1b4420, 0xb066: 0x6c02a420,
-	0xb069: 0x6c1b4620, 0xb06b: 0x6c0d6a20,
-	0xb070: 0x6c1b4820, 0xb071: 0x6c1b9820, 0xb073: 0x6c1b4a20,
-	0xb075: 0x6c1b4c20,
-	0xb078: 0x6c1b4e20, 0xb07a: 0x6c1b5220,
-	// Block 0x2c2, offset 0xb080
-	0xb080: 0x6c1b5420, 0xb083: 0x6c1b5620,
-	0xb085: 0x6c0dd820, 0xb087: 0x6c00ca20,
-	0xb088: 0x6c096220, 0xb089: 0x6c004420, 0xb08b: 0x6c0cea20,
-	0xb08c: 0x6c031020, 0xb08d: 0x6c08fa20, 0xb08f: 0x6c06ac20,
-	0xb095: 0x6c0ff820, 0xb097: 0x6c098e20,
-	0xb098: 0x6c031220, 0xb099: 0x6c0e8420, 0xb09a: 0x6c0f4420, 0xb09b: 0x6c003020,
-	0xb09c: 0x6c03de20, 0xb09d: 0x6c13c220, 0xb09f: 0x6c091420,
-	0xb0a2: 0x6c041020, 0xb0a3: 0x6c0c5620,
-	0xb0a4: 0x6c090820, 0xb0a5: 0x6c155c20, 0xb0a6: 0x6c1b5820,
-	0xb0ae: 0x6c042420,
-	0xb0b0: 0x6c07ae20, 0xb0b3: 0x6c025820,
-	0xb0b4: 0x6c014220, 0xb0b5: 0x6c0a6020, 0xb0b6: 0x6c01c820,
-	0xb0b8: 0x6c1b5a20, 0xb0b9: 0x6c159820,
-	0xb0bf: 0x6c09de20,
-	// Block 0x2c3, offset 0xb0c0
-	0xb0c2: 0x6c095820, 0xb0c3: 0x6c1b5c20,
-	0xb0c4: 0x6c039620, 0xb0c5: 0x6c108c20, 0xb0c6: 0x6c14a220, 0xb0c7: 0x6c1b5e20,
-	0xb0c9: 0x6c1b6020,
-	0xb0cc: 0x6c12ce20,
-	0xb0d0: 0x6c1b6420, 0xb0d2: 0x6c030020, 0xb0d3: 0x6c051620,
-	0xb0d4: 0x6c1b6220,
-	0xb0db: 0x6c031420,
-	0xb0dd: 0x6c0b2820, 0xb0de: 0x6c1b6c20, 0xb0df: 0x6c081620,
-	0xb0e1: 0x6c01ca20, 0xb0e2: 0x6c1b6a20,
-	0xb0e4: 0x6c1b6620, 0xb0e5: 0x6c1b6e20, 0xb0e6: 0x6c1b6820, 0xb0e7: 0x6c10fa20,
-	0xb0e8: 0x6c205420, 0xb0e9: 0x6c0b2a20, 0xb0eb: 0x6c1b7020,
-	0xb0ee: 0x6c164820,
-	0xb0f0: 0x6c1b7220, 0xb0f3: 0x6c1b7620,
-	0xb0f5: 0x6c0eb020, 0xb0f6: 0x6c1b7420,
-	0xb0f8: 0x6c0bc620, 0xb0fa: 0x6c08ca20,
-	0xb0fe: 0x6c0d9820, 0xb0ff: 0x6c097e20,
-	// Block 0x2c4, offset 0xb100
-	0xb101: 0x6c130620, 0xb102: 0x6c0c5820,
-	0xb104: 0x6c092a20, 0xb105: 0x6c1b7820, 0xb106: 0x6c0a6220, 0xb107: 0x6c1b7a20,
-	0xb108: 0x6c1b7c20, 0xb109: 0x6c006620, 0xb10a: 0x6c0d6c20, 0xb10b: 0x6c0b6820,
-	0xb10d: 0x6c1b7e20, 0xb10e: 0x6c104e20, 0xb10f: 0x6c0a6420,
-	0xb111: 0x6c0a6620, 0xb113: 0x6c1b8020,
-	0xb116: 0x6c0c5a20,
-	0xb11a: 0x6c0a6820,
-	0xb120: 0x6c1b8220, 0xb122: 0x6c1b8420,
-	0xb124: 0x6c151020,
-	0xb128: 0x6c1b8620,
-	0xb12d: 0x6c04b420,
-	0xb131: 0x6c099020,
-	0xb138: 0x6c1b8820, 0xb139: 0x6c1b8a20, 0xb13a: 0x6c094820, 0xb13b: 0x6c0b1c20,
-	0xb13c: 0x6c10d020, 0xb13d: 0x6c0b6c20, 0xb13e: 0x6c125020, 0xb13f: 0x6c10e820,
-	// Block 0x2c5, offset 0xb140
-	0xb140: 0x6c04ba20, 0xb141: 0x6c1b8c20,
-	0xb145: 0x6c044a20, 0xb146: 0x6c1b8e20,
-	0xb148: 0x6c052420, 0xb14a: 0x6c108620, 0xb14b: 0x6c019820,
-	0xb14d: 0x6c087a20, 0xb14e: 0x6c1b9020, 0xb14f: 0x6c1b9620,
-	0xb150: 0x6c1b9420, 0xb151: 0x6c052220, 0xb153: 0x6c1b9220,
-	0xb155: 0x6c0f9c20,
-	0xb15e: 0x6c0d5820,
-	0xb160: 0x6c0fc220, 0xb161: 0x6c092020,
-	0xb164: 0x6c0cec20, 0xb165: 0x6c160020,
-	0xb16c: 0x6c1b9a20, 0xb16e: 0x6c1b9c20, 0xb16f: 0x6c109420,
-	0xb171: 0x6c083a20,
-	0xb176: 0x6c1ba020,
-	0xb179: 0x6c1ba220,
-	// Block 0x2c6, offset 0xb180
-	0xb18c: 0x6c1ba420,
-	0xb190: 0x6c039820, 0xb191: 0x6c1ba620,
-	0xb194: 0x6c1ba820,
-	0xb1a1: 0x6c019020,
-	0xb1a8: 0x6c0cb220, 0xb1a9: 0x6c037820, 0xb1ab: 0x6c1bac20,
-	0xb1ac: 0x6c14a020,
-	0xb1b1: 0x6c0d9c20, 0xb1b3: 0x6c02a620,
-	0xb1b6: 0x6c1bb020, 0xb1b7: 0x6c1bb420,
-	0xb1b8: 0x6c036e20, 0xb1bb: 0x6c1bae20,
-	0xb1bc: 0x6c1bb220, 0xb1be: 0x6c1bb820,
-	// Block 0x2c7, offset 0xb1c0
-	0xb1c5: 0x6c1bb620, 0xb1c7: 0x6c1bba20,
-	0xb1d9: 0x6c1bbc20,
-	0xb1e0: 0x6c106220, 0xb1e1: 0x6c048420,
-	0xb1e8: 0x6c020220, 0xb1e9: 0x6c1bbe20, 0xb1ea: 0x6c1bc820,
-	0xb1ed: 0x6c1bc420, 0xb1ef: 0x6c13c620,
-	0xb1f0: 0x6c13c420,
-	0xb1f6: 0x6c0ffa20,
-	0xb1fa: 0x6c1bc220, 0xb1fb: 0x6c09f420,
-	0xb1fd: 0x6c1bc020,
-	// Block 0x2c8, offset 0xb200
-	0xb207: 0x6c0ba820,
-	0xb20b: 0x6c1bca20,
-	0xb20e: 0x6c07ec20,
-	0xb211: 0x6c1bd620,
-	0xb214: 0x6c1bd820, 0xb215: 0x6c1bcc20, 0xb216: 0x6c025a20, 0xb217: 0x6c1bce20,
-	0xb218: 0x6c1be020, 0xb219: 0x6c1bde20, 0xb21a: 0x6c1bdc20, 0xb21b: 0x6c1bd420,
-	0xb21f: 0x6c1bd220,
-	0xb222: 0x6c1bda20,
-	0xb229: 0x6c13c820,
-	// Block 0x2c9, offset 0xb240
-	0xb24b: 0x6c1be820,
-	0xb24c: 0x6c1be220, 0xb24e: 0x6c1be620,
-	0xb250: 0x6c15f020, 0xb252: 0x6c1be420,
-	0xb25c: 0x6c1bd020,
-	0xb269: 0x6c0baa20,
-	0xb26c: 0x6c1bea20, 0xb26f: 0x6c078620,
-	0xb273: 0x6c1bec20,
-	0xb276: 0x6c1bee20,
-	// Block 0x2ca, offset 0xb280
-	0xb282: 0x6c1bf420,
-	0xb284: 0x6c1bf220, 0xb287: 0x6c1bf020,
-	0xb28b: 0x6c0ffc20,
-	0xb28c: 0x6c1bc620,
-	0xb290: 0x6c1c0020,
-	0xb29d: 0x6c1bf820,
-	0xb2a2: 0x6c1bf620,
-	0xb2ac: 0x6c1bfa20, 0xb2ae: 0x6c1bfc20,
-	0xb2b7: 0x6c1c0220,
-	0xb2ba: 0x6c169420,
-	0xb2bc: 0x6c1c0420, 0xb2bd: 0x6c1bfe20,
-	// Block 0x2cb, offset 0xb2c0
-	0xb2c9: 0x6c1c0620,
-	0xb2cc: 0x6c037020, 0xb2cd: 0x6c1c0820,
-	0xb2d2: 0x6c1c0c20, 0xb2d3: 0x6c1c0a20,
-	0xb2d6: 0x6c1c0e20,
-	0xb2db: 0x6c1c1020,
-	0xb2dd: 0x6c0c5c20, 0xb2de: 0x6c099220,
-	0xb2e1: 0x6c0a1420, 0xb2e3: 0x6c0d0220,
-	0xb2e5: 0x6c06ae20, 0xb2e6: 0x6c078820, 0xb2e7: 0x6c06b020,
-	0xb2e8: 0x6c044c20, 0xb2eb: 0x6c1c1220,
-	0xb2ee: 0x6c078a20,
-	0xb2f1: 0x6c063420, 0xb2f2: 0x6c1c1420, 0xb2f3: 0x6c149c20,
-	0xb2f4: 0x6c112a20, 0xb2f5: 0x6c1c1620, 0xb2f7: 0x6c06b220,
-	0xb2fb: 0x6c030820,
-	0xb2fd: 0x6c0e0220, 0xb2fe: 0x6c04cc20,
-	// Block 0x2cc, offset 0xb300
-	0xb302: 0x6c087c20, 0xb303: 0x6c12d220,
-	0xb306: 0x6c11e220,
-	0xb30b: 0x6c1c1820,
-	0xb30c: 0x6c039a20,
-	0xb311: 0x6c1c1e20,
-	0xb316: 0x6c0eb220,
-	0xb319: 0x6c1c1c20, 0xb31a: 0x6c1c1a20, 0xb31b: 0x6c1c2020,
-	0xb31d: 0x6c0f4620,
-	0xb325: 0x6c0b8a20,
-	0xb32b: 0x6c087e20,
-	0xb32d: 0x6c0c1420, 0xb32f: 0x6c0d9e20,
-	0xb330: 0x6c03b020, 0xb333: 0x6c0eb420,
-	0xb336: 0x6c1c2220, 0xb337: 0x6c1c2420,
-	0xb338: 0x6c0ae620,
-	0xb33d: 0x6c140620,
-	// Block 0x2cd, offset 0xb340
-	0xb340: 0x6c1c2a20, 0xb343: 0x6c1c2820,
-	0xb344: 0x6c1c2620, 0xb345: 0x6c131620, 0xb347: 0x6c1c3820,
-	0xb34c: 0x6c144820, 0xb34e: 0x6c1c2c20,
-	0xb354: 0x6c1c3020, 0xb355: 0x6c146a20, 0xb357: 0x6c1c2e20,
-	0xb35f: 0x6c1c3220,
-	0xb361: 0x6c11b020, 0xb362: 0x6c1c3420, 0xb363: 0x6c135420,
-	0xb364: 0x6c1c3620,
-	0xb372: 0x6c031620, 0xb373: 0x6c135620,
-	0xb374: 0x6c110220, 0xb375: 0x6c1c3a20, 0xb376: 0x6c1c3c20,
-	0xb378: 0x6c06b420, 0xb379: 0x6c031820, 0xb37a: 0x6c1c3e20, 0xb37b: 0x6c061020,
-	0xb37c: 0x6c159420, 0xb37d: 0x6c155e20, 0xb37e: 0x6c039c20, 0xb37f: 0x6c1c4220,
-	// Block 0x2ce, offset 0xb380
-	0xb381: 0x6c0eb620, 0xb383: 0x6c06b620,
-	0xb384: 0x6c0a6a20, 0xb387: 0x6c121e20,
-	0xb38a: 0x6c0a6c20,
-	0xb38f: 0x6c0a3c20,
-	0xb395: 0x6c0f4820, 0xb396: 0x6c13ca20, 0xb397: 0x6c0f9e20,
-	0xb39a: 0x6c06b820,
-	0xb39c: 0x6c12d420,
-	0xb3a0: 0x6c1c4420,
-	0xb3a6: 0x6c0fde20, 0xb3a7: 0x6c079c20,
-	0xb3ab: 0x6c063620,
-	0xb3ad: 0x6c0f4a20,
-	0xb3b5: 0x6c004620, 0xb3b6: 0x6c0a2820, 0xb3b7: 0x6c06ba20,
-	0xb3b8: 0x6c159a20,
-	// Block 0x2cf, offset 0xb3c0
-	0xb3c1: 0x6c1c4620, 0xb3c2: 0x6c1c4820, 0xb3c3: 0x6c114620,
-	0xb3c8: 0x6c1c4a20, 0xb3c9: 0x6c16b620, 0xb3ca: 0x6c16de20,
-	0xb3cf: 0x6c1c4e20,
-	0xb3d0: 0x6c1c4c20, 0xb3d3: 0x6c028220,
-	0xb3d6: 0x6c1c5020,
-	0xb3da: 0x6c1c5620, 0xb3db: 0x6c1c5820,
-	0xb3dd: 0x6c1c5420, 0xb3df: 0x6c129c20,
-	0xb3e0: 0x6c0a6e20, 0xb3e1: 0x6c1c5c20, 0xb3e2: 0x6c1c5a20, 0xb3e3: 0x6c1c5220,
-	0xb3e8: 0x6c1c5e20, 0xb3e9: 0x6c1c6020,
-	0xb3ec: 0x6c1c6220,
-	0xb3f0: 0x6c1c6820, 0xb3f1: 0x6c1c6420, 0xb3f3: 0x6c1c6620,
-	0xb3f4: 0x6c1c6a20, 0xb3f6: 0x6c014420, 0xb3f7: 0x6c0f4c20,
-	0xb3f8: 0x6c1c6c20, 0xb3fa: 0x6c05d820, 0xb3fb: 0x6c022420,
-	0xb3fc: 0x6c111020, 0xb3fe: 0x6c1c6e20, 0xb3ff: 0x6c10de20,
-	// Block 0x2d0, offset 0xb400
-	0xb401: 0x6c138e20, 0xb403: 0x6c1c7020,
-	0xb404: 0x6c16e020,
-	0xb409: 0x6c1c7220, 0xb40a: 0x6c135820, 0xb40b: 0x6c1c7820,
-	0xb40c: 0x6c172c20, 0xb40d: 0x6c174c20, 0xb40f: 0x6c08f020,
-	0xb410: 0x6c10d220, 0xb411: 0x6c1c7a20, 0xb413: 0x6c042620,
-	0xb414: 0x6c0eb820, 0xb415: 0x6c00b420, 0xb416: 0x6c1c7c20, 0xb417: 0x6c132420,
-	0xb418: 0x6c06bc20, 0xb41b: 0x6c0e5420,
-	0xb41f: 0x6c0f4e20,
-	0xb425: 0x6c152e20, 0xb426: 0x6c061220, 0xb427: 0x6c063820,
-	0xb429: 0x6c1c7e20,
-	0xb42d: 0x6c1c8020, 0xb42f: 0x6c1c8c20,
-	0xb431: 0x6c095a20,
-	0xb435: 0x6c0eba20, 0xb437: 0x6c048620,
-	0xb438: 0x6c1c8220,
-	0xb43c: 0x6c127220, 0xb43e: 0x6c0e4020,
-	// Block 0x2d1, offset 0xb440
-	0xb441: 0x6c1c8420,
-	0xb448: 0x6c1c8620, 0xb44a: 0x6c048820,
-	0xb44c: 0x6c1c8820, 0xb44e: 0x6c1c8a20,
-	0xb451: 0x6c1c8e20, 0xb453: 0x6c101820,
-	0xb456: 0x6c1c9020, 0xb457: 0x6c1c9220,
-	0xb459: 0x6c1c9420,
-	0xb45c: 0x6c1c7620, 0xb45d: 0x6c1c7420,
-	0xb461: 0x6c1c9620, 0xb462: 0x6c056620,
-	0xb466: 0x6c126a20,
-	0xb469: 0x6c07b020, 0xb46a: 0x6c128a20, 0xb46b: 0x6c0ebc20,
-	0xb46c: 0x6c12b220, 0xb46d: 0x6c1c9820,
-	0xb470: 0x6c0a7020, 0xb471: 0x6c010820, 0xb473: 0x6c1c9a20,
-	0xb477: 0x6c1c9c20,
-	0xb479: 0x6c153420,
-	0xb47c: 0x6c122020, 0xb47f: 0x6c1ca220,
-	// Block 0x2d2, offset 0xb480
-	0xb480: 0x6c017620, 0xb481: 0x6c0bd820, 0xb482: 0x6c1ca020, 0xb483: 0x6c1c9e20,
-	0xb484: 0x6c056820, 0xb485: 0x6c0da020, 0xb487: 0x6c1caa20,
-	0xb488: 0x6c1ca620, 0xb48a: 0x6c1ca420, 0xb48b: 0x6c161620,
-	0xb48c: 0x6c066a20,
-	0xb490: 0x6c0a3e20, 0xb491: 0x6c1ca820, 0xb492: 0x6c0fc420, 0xb493: 0x6c09c820,
-	0xb497: 0x6c106820,
-	0xb498: 0x6c1cb020, 0xb499: 0x6c1cae20,
-	0xb49e: 0x6c1cac20,
-	0xb4a0: 0x6c1cb220, 0xb4a1: 0x6c066c20,
-	0xb4a8: 0x6c1cb420, 0xb4a9: 0x6c131420, 0xb4aa: 0x6c0a0220,
-	0xb4ad: 0x6c1cb620, 0xb4ae: 0x6c125220,
-	0xb4b3: 0x6c106a20,
-	0xb4b4: 0x6c0ebe20,
-	0xb4b9: 0x6c0f8c20,
-	0xb4bc: 0x6c1cb820, 0xb4bd: 0x6c03c220,
-	// Block 0x2d3, offset 0xb4c0
-	0xb4c3: 0x6c0b2c20,
-	0xb4c5: 0x6c127420,
-	0xb4cc: 0x6c039e20, 0xb4cd: 0x6c10f020,
-	0xb4d6: 0x6c1cba20, 0xb4d7: 0x6c088020,
-	0xb4d8: 0x6c140820, 0xb4d9: 0x6c140a20,
-	0xb4dc: 0x6c017820, 0xb4dd: 0x6c1cc420,
-	0xb4e0: 0x6c0e8620,
-	0xb4e4: 0x6c1cbe20,
-	0xb4eb: 0x6c022620,
-	0xb4f0: 0x6c1d2420, 0xb4f1: 0x6c1cc220,
-	0xb4f5: 0x6c110420,
-	0xb4f8: 0x6c1cc020, 0xb4fb: 0x6c1cbc20,
-	0xb4fd: 0x6c075020, 0xb4ff: 0x6c1cc820,
-	// Block 0x2d4, offset 0xb500
-	0xb50e: 0x6c1cd420, 0xb50f: 0x6c1ce020,
-	0xb510: 0x6c1cd020, 0xb512: 0x6c0fe420,
-	0xb515: 0x6c1cda20, 0xb516: 0x6c12d620,
-	0xb519: 0x6c1cce20, 0xb51b: 0x6c1cd820,
-	0xb51c: 0x6c169620, 0xb51d: 0x6c088220,
-	0xb520: 0x6c0da220, 0xb521: 0x6c1cca20,
-	0xb525: 0x6c042820, 0xb526: 0x6c1cde20, 0xb527: 0x6c0bda20,
-	0xb528: 0x6c014620, 0xb529: 0x6c1cd220, 0xb52a: 0x6c022820, 0xb52b: 0x6c1cdc20,
-	0xb52f: 0x6c048a20,
-	0xb531: 0x6c1cd620,
-	0xb53a: 0x6c1ce220,
-	// Block 0x2d5, offset 0xb540
-	0xb541: 0x6c1ce620, 0xb542: 0x6c1cfa20, 0xb543: 0x6c1cf620,
-	0xb546: 0x6c1cf020,
-	0xb54a: 0x6c1cee20, 0xb54b: 0x6c16b820,
-	0xb54d: 0x6c1cf220,
-	0xb550: 0x6c048c20, 0xb552: 0x6c06be20,
-	0xb555: 0x6c0a4020,
-	0xb559: 0x6c1d0020, 0xb55a: 0x6c1ce420,
-	0xb55f: 0x6c1cec20,
-	0xb560: 0x6c1ccc20, 0xb562: 0x6c022c20, 0xb563: 0x6c1cf420,
-	0xb564: 0x6c1cf820, 0xb565: 0x6c0e5620,
-	0xb568: 0x6c076820, 0xb569: 0x6c01a820, 0xb56a: 0x6c1ce820, 0xb56b: 0x6c1cfe20,
-	0xb56c: 0x6c1cfc20, 0xb56d: 0x6c048e20, 0xb56f: 0x6c0d4a20,
-	0xb570: 0x6c02c020,
-	0xb575: 0x6c056a20, 0xb577: 0x6c1cea20,
-	// Block 0x2d6, offset 0xb580
-	0xb581: 0x6c1d0220, 0xb583: 0x6c1d0820,
-	0xb584: 0x6c1d0c20,
-	0xb589: 0x6c090a20, 0xb58b: 0x6c1d1820,
-	0xb58c: 0x6c0f5020, 0xb58d: 0x6c1d0420,
-	0xb592: 0x6c1d1420,
-	0xb594: 0x6c022a20, 0xb596: 0x6c1d1020, 0xb597: 0x6c1d1220,
-	0xb59a: 0x6c1d0a20, 0xb59b: 0x6c1d0e20,
-	0xb59f: 0x6c066e20,
-	0xb5a0: 0x6c156020, 0xb5a3: 0x6c031a20,
-	0xb5a6: 0x6c012e20, 0xb5a7: 0x6c1d1620,
-	0xb5a9: 0x6c111820, 0xb5aa: 0x6c001a20,
-	0xb5b2: 0x6c122220, 0xb5b3: 0x6c1cc620,
-	0xb5b4: 0x6c1d2220, 0xb5b5: 0x6c1d2a20, 0xb5b6: 0x6c151a20,
-	0xb5b8: 0x6c1d1c20,
-	0xb5bc: 0x6c0ffe20, 0xb5bd: 0x6c1d2620,
-	// Block 0x2d7, offset 0xb5c0
-	0xb5c5: 0x6c0ae820, 0xb5c6: 0x6c1d2820, 0xb5c7: 0x6c109620,
-	0xb5d1: 0x6c171220, 0xb5d3: 0x6c1d2020,
-	0xb5d8: 0x6c1d2c20, 0xb5da: 0x6c075220,
-	0xb5dc: 0x6c0c1620, 0xb5df: 0x6c006820,
-	0xb5e0: 0x6c1d1e20, 0xb5e1: 0x6c1d1a20, 0xb5e3: 0x6c0cf020,
-	0xb5e7: 0x6c1d0620,
-	0xb5e8: 0x6c083c20,
-	0xb5f0: 0x6c0d8420, 0xb5f1: 0x6c1d4420, 0xb5f3: 0x6c0cf220,
-	0xb5f4: 0x6c1d3a20, 0xb5f6: 0x6c1d3420, 0xb5f7: 0x6c1d3620,
-	0xb5f9: 0x6c095c20, 0xb5fa: 0x6c1d3c20, 0xb5fb: 0x6c1d4220,
-	// Block 0x2d8, offset 0xb600
-	0xb600: 0x6c1d3820, 0xb601: 0x6c099620, 0xb603: 0x6c1d3e20,
-	0xb606: 0x6c1d3220,
-	0xb608: 0x6c154820, 0xb609: 0x6c154620,
-	0xb60d: 0x6c1d4620, 0xb60e: 0x6c1d4820, 0xb60f: 0x6c006a20,
-	0xb615: 0x6c1d3020,
-	0xb61a: 0x6c050c20, 0xb61b: 0x6c000c20,
-	0xb61f: 0x6c031c20,
-	0xb621: 0x6c1d4020,
-	0xb627: 0x6c1d5020,
-	0xb628: 0x6c1d4e20,
-	0xb62c: 0x6c1d5820,
-	0xb634: 0x6c1d5a20,
-	0xb63c: 0x6c1d5620, 0xb63d: 0x6c1d5c20, 0xb63e: 0x6c1d4c20, 0xb63f: 0x6c1d5420,
-	// Block 0x2d9, offset 0xb640
-	0xb642: 0x6c1d5e20,
-	0xb644: 0x6c1d6020, 0xb647: 0x6c1d4a20,
-	0xb648: 0x6c08cc20, 0xb64a: 0x6c1d5220, 0xb64b: 0x6c0da420,
-	0xb64c: 0x6c06c020, 0xb64d: 0x6c1d2e20, 0xb64e: 0x6c0b2e20,
-	0xb653: 0x6c1d7a20,
-	0xb655: 0x6c13aa20,
-	0xb658: 0x6c1d6620, 0xb659: 0x6c1d6820, 0xb65a: 0x6c1d6a20,
-	0xb65d: 0x6c1d7820, 0xb65f: 0x6c1d7620,
-	0xb662: 0x6c148e20, 0xb663: 0x6c031e20,
-	0xb665: 0x6c1d7220, 0xb667: 0x6c056e20,
-	0xb668: 0x6c025c20, 0xb66b: 0x6c1d6c20,
-	0xb66e: 0x6c163820, 0xb66f: 0x6c1d7020,
-	0xb670: 0x6c006c20, 0xb671: 0x6c1d7420, 0xb673: 0x6c1d6220,
-	0xb674: 0x6c1d6e20, 0xb675: 0x6c1d7c20, 0xb676: 0x6c056c20, 0xb677: 0x6c1d6420,
-	0xb67e: 0x6c15c620,
-	// Block 0x2da, offset 0xb680
-	0xb682: 0x6c156220,
-	0xb687: 0x6c1d8220,
-	0xb68a: 0x6c1d8a20,
-	0xb68e: 0x6c0d3820,
-	0xb690: 0x6c16ba20, 0xb691: 0x6c1d8c20,
-	0xb694: 0x6c1d8620, 0xb696: 0x6c1d8020,
-	0xb699: 0x6c1d7e20, 0xb69a: 0x6c1d8820,
-	0xb6a4: 0x6c133820, 0xb6a7: 0x6c105020,
-	0xb6a9: 0x6c057020, 0xb6ab: 0x6c1d8e20,
-	0xb6ac: 0x6c1d8420, 0xb6ae: 0x6c1d9020,
-	0xb6b2: 0x6c05da20,
-	0xb6b6: 0x6c019a20,
-	0xb6ba: 0x6c1da020,
-	0xb6be: 0x6c032020,
-	// Block 0x2db, offset 0xb6c0
-	0xb6c3: 0x6c1d9c20,
-	0xb6c6: 0x6c1d9e20, 0xb6c7: 0x6c076a20,
-	0xb6c8: 0x6c1d9a20, 0xb6c9: 0x6c1d9620, 0xb6ca: 0x6c1d9420, 0xb6cb: 0x6c1da220,
-	0xb6cc: 0x6c1d9220, 0xb6cd: 0x6c1da620,
-	0xb6d0: 0x6c022e20,
-	0xb6e3: 0x6c1daa20,
-	0xb6e6: 0x6c1da820,
-	0xb6f2: 0x6c0ec020,
-	0xb6f4: 0x6c1db020, 0xb6f6: 0x6c1dac20, 0xb6f7: 0x6c1d9820,
-	0xb6f8: 0x6c05dc20, 0xb6fa: 0x6c1dae20,
-	0xb6fc: 0x6c1db620, 0xb6fd: 0x6c1db420, 0xb6fe: 0x6c1db820, 0xb6ff: 0x6c1db220,
-	// Block 0x2dc, offset 0xb700
-	0xb700: 0x6c1dba20,
-	0xb708: 0x6c1dbc20, 0xb709: 0x6c1dbe20, 0xb70a: 0x6c13ac20,
-	0xb70c: 0x6c1dc220, 0xb70d: 0x6c1dc020, 0xb70e: 0x6c09ca20,
-	0xb710: 0x6c0bdc20, 0xb711: 0x6c020420, 0xb712: 0x6c023020,
-	0xb714: 0x6c1dc420, 0xb716: 0x6c003e20,
-	0xb71a: 0x6c0c1820, 0xb71b: 0x6c1dc620,
-	0xb71d: 0x6c2c0020, 0xb71e: 0x6c1dc820, 0xb71f: 0x6c05a620,
-	0xb721: 0x6c1dca20,
-	0xb726: 0x6c0c5e20,
-	0xb72a: 0x6c1dcc20,
-	0xb72e: 0x6c1dce20, 0xb72f: 0x6c03e020,
-	0xb730: 0x6c1dd020, 0xb732: 0x6c1dd220, 0xb733: 0x6c1dd420,
-	0xb734: 0x6c0da620,
-	0xb738: 0x6c063a20, 0xb73b: 0x6c151220,
-	0xb73f: 0x6c140c20,
-	// Block 0x2dd, offset 0xb740
-	0xb740: 0x6c0a2020, 0xb741: 0x6c1dd620,
-	0xb747: 0x6c0c6020,
-	0xb748: 0x6c2d6c20, 0xb749: 0x6c122420, 0xb74b: 0x6c096420,
-	0xb74d: 0x6c07b220, 0xb74e: 0x6c1dd820,
-	0xb753: 0x6c0d8620,
-	0xb755: 0x6c132620,
-	0xb758: 0x6c0dda20, 0xb75b: 0x6c1dde20,
-	0xb75e: 0x6c1dda20,
-	0xb760: 0x6c1de020, 0xb763: 0x6c1ddc20,
-	0xb768: 0x6c1de220,
-	0xb76e: 0x6c133a20,
-	0xb771: 0x6c002e20,
-	0xb776: 0x6c12d820,
-	0xb779: 0x6c122620,
-	0xb77c: 0x6c1de420, 0xb77e: 0x6c1dea20, 0xb77f: 0x6c0a7220,
-	// Block 0x2de, offset 0xb780
-	0xb780: 0x6c03e220, 0xb782: 0x6c1de620, 0xb783: 0x6c1df420,
-	0xb784: 0x6c0a7420,
-	0xb789: 0x6c1de820, 0xb78a: 0x6c112c20,
-	0xb791: 0x6c15c820, 0xb792: 0x6c1dec20, 0xb793: 0x6c1dee20,
-	0xb794: 0x6c1df620, 0xb795: 0x6c100020, 0xb796: 0x6c1df020, 0xb797: 0x6c06c220,
-	0xb798: 0x6c0c3c20, 0xb79b: 0x6c1e1220,
-	0xb79c: 0x6c11c820, 0xb79e: 0x6c0ddc20,
-	0xb7ab: 0x6c122820,
-	0xb7ac: 0x6c1e9c20,
-	0xb7b1: 0x6c13cc20,
-	0xb7b5: 0x6c0f5220,
-	0xb7b9: 0x6c147e20, 0xb7bb: 0x6c1dfc20,
-	0xb7bc: 0x6c017a20, 0xb7bd: 0x6c0e8820,
-	// Block 0x2df, offset 0xb7c0
-	0xb7c2: 0x6c1e0e20,
-	0xb7c5: 0x6c0e1c20, 0xb7c6: 0x6c1e0220, 0xb7c7: 0x6c1e1020,
-	0xb7c8: 0x6c1e0620, 0xb7c9: 0x6c1e1420, 0xb7ca: 0x6c1e0c20,
-	0xb7cc: 0x6c1e0a20, 0xb7cd: 0x6c118220, 0xb7cf: 0x6c1dfe20,
-	0xb7d0: 0x6c023220, 0xb7d1: 0x6c1dfa20, 0xb7d2: 0x6c044e20, 0xb7d3: 0x6c0dde20,
-	0xb7d4: 0x6c1df220, 0xb7d7: 0x6c1df820,
-	0xb7d8: 0x6c06c420, 0xb7d9: 0x6c0c3620, 0xb7db: 0x6c0a7620,
-	0xb7dc: 0x6c1e0820, 0xb7dd: 0x6c114820,
-	0xb7e0: 0x6c045020, 0xb7e1: 0x6c028420,
-	0xb7ec: 0x6c02c220, 0xb7ed: 0x6c0b0620, 0xb7ee: 0x6c1e1820, 0xb7ef: 0x6c1e2220,
-	0xb7f1: 0x6c1e1a20, 0xb7f3: 0x6c05de20,
-	0xb7f5: 0x6c1e2420, 0xb7f6: 0x6c081820, 0xb7f7: 0x6c072e20,
-	0xb7fe: 0x6c099820, 0xb7ff: 0x6c1e0020,
-	// Block 0x2e0, offset 0xb800
-	0xb801: 0x6c08ce20, 0xb802: 0x6c1e1e20,
-	0xb807: 0x6c088420,
-	0xb808: 0x6c1e2020, 0xb809: 0x6c004820,
-	0xb80c: 0x6c1e1620,
-	0xb811: 0x6c0ec220,
-	0xb819: 0x6c045220,
-	0xb81f: 0x6c049020,
-	0xb827: 0x6c1e1c20,
-	0xb828: 0x6c000e20, 0xb82b: 0x6c079e20,
-	0xb82f: 0x6c0b3020,
-	0xb83a: 0x6c0f5420,
-	0xb83d: 0x6c120820, 0xb83e: 0x6c1e2820, 0xb83f: 0x6c0cf820,
-	// Block 0x2e1, offset 0xb840
-	0xb849: 0x6c0d4c20,
-	0xb84c: 0x6c082a20, 0xb84d: 0x6c1e2a20, 0xb84f: 0x6c1e2e20,
-	0xb850: 0x6c1e2620,
-	0xb855: 0x6c139a20, 0xb857: 0x6c0eea20,
-	0xb85c: 0x6c0cf420,
-	0xb867: 0x6c13ce20,
-	0xb868: 0x6c092c20, 0xb869: 0x6c1e4620, 0xb86b: 0x6c1e4420,
-	0xb86e: 0x6c0bb420,
-	0xb872: 0x6c05e020,
-	0xb876: 0x6c1e3820, 0xb877: 0x6c0a7a20,
-	0xb87a: 0x6c10b820, 0xb87b: 0x6c110620,
-	// Block 0x2e2, offset 0xb880
-	0xb880: 0x6c1e3420, 0xb883: 0x6c0cf620,
-	0xb888: 0x6c098020, 0xb889: 0x6c1e3e20,
-	0xb88c: 0x6c0a7820, 0xb88e: 0x6c1e3220, 0xb88f: 0x6c1e3c20,
-	0xb892: 0x6c114a20,
-	0xb896: 0x6c1e3020,
-	0xb898: 0x6c052620, 0xb89b: 0x6c02ae20,
-	0xb89f: 0x6c1e4020,
-	0xb8a0: 0x6c161e20, 0xb8a1: 0x6c07b420, 0xb8a2: 0x6c0e1e20, 0xb8a3: 0x6c1e3a20,
-	0xb8a5: 0x6c0c3820, 0xb8a7: 0x6c06c620,
-	0xb8a8: 0x6c0b8c20, 0xb8a9: 0x6c014820, 0xb8aa: 0x6c0cb420, 0xb8ab: 0x6c1e3620,
-	0xb8ac: 0x6c03f620,
-	0xb8b2: 0x6c057220,
-	0xb8b4: 0x6c0f0e20, 0xb8b5: 0x6c1e4220,
-	0xb8bb: 0x6c0cfa20,
-	0xb8be: 0x6c1e4820,
-	// Block 0x2e3, offset 0xb8c0
-	0xb8c0: 0x6c1e4c20, 0xb8c3: 0x6c0d6620,
-	0xb8c4: 0x6c1e5820, 0xb8c6: 0x6c1e4e20,
-	0xb8c9: 0x6c1e5220,
-	0xb8cf: 0x6c129e20,
-	0xb8d0: 0x6c0f5620, 0xb8d2: 0x6c1e5420,
-	0xb8d6: 0x6c156420,
-	0xb8da: 0x6c159c20, 0xb8db: 0x6c032220,
-	0xb8e1: 0x6c001c20, 0xb8e3: 0x6c1e5020,
-	0xb8e9: 0x6c1e4a20,
-	0xb8ee: 0x6c03a020,
-	0xb8f4: 0x6c014a20, 0xb8f6: 0x6c1e5620,
-	0xb8fa: 0x6c159e20,
-	// Block 0x2e4, offset 0xb900
-	0xb906: 0x6c1e5e20,
-	0xb90d: 0x6c0d6e20, 0xb90f: 0x6c1e6c20,
-	0xb913: 0x6c1e6020,
-	0xb916: 0x6c1e5a20, 0xb917: 0x6c1e6820,
-	0xb91c: 0x6c1e2c20,
-	0xb926: 0x6c1e6220,
-	0xb928: 0x6c1e6a20,
-	0xb92c: 0x6c11e420, 0xb92d: 0x6c100220,
-	0xb934: 0x6c1e5c20, 0xb936: 0x6c1e6420,
-	0xb93a: 0x6c057420,
-	0xb93e: 0x6c07fa20,
-	// Block 0x2e5, offset 0xb940
-	0xb942: 0x6c0c3a20,
-	0xb94e: 0x6c1e7420,
-	0xb958: 0x6c0f7820,
-	0xb967: 0x6c1e6e20,
-	0xb969: 0x6c145420,
-	0xb96f: 0x6c1e7020,
-	0xb976: 0x6c1e7220,
-	0xb978: 0x6c14ec20, 0xb97a: 0x6c0bc420,
-	// Block 0x2e6, offset 0xb980
-	0xb983: 0x6c05a820,
-	0xb988: 0x6c1e8020,
-	0xb992: 0x6c083e20, 0xb993: 0x6c1e7a20,
-	0xb995: 0x6c1e7820,
-	0xb99a: 0x6c110820,
-	0xb99e: 0x6c105220,
-	0xb9a4: 0x6c0f8e20, 0xb9a5: 0x6c1e7c20,
-	0xb9a9: 0x6c1e7e20, 0xb9ab: 0x6c12fa20,
-	0xb9ad: 0x6c112e20, 0xb9ae: 0x6c081a20,
-	0xb9b0: 0x6c0c6220, 0xb9b2: 0x6c143420,
-	0xb9b9: 0x6c028620, 0xb9bb: 0x6c1e8c20,
-	0xb9bc: 0x6c1e8220,
-	// Block 0x2e7, offset 0xb9c0
-	0xb9c1: 0x6c15a020, 0xb9c2: 0x6c1e9020,
-	0xb9c5: 0x6c1e8820, 0xb9c7: 0x6c1e8a20,
-	0xb9cd: 0x6c0cfc20,
-	0xb9d2: 0x6c1e8620,
-	0xb9d4: 0x6c1e0420,
-	0xb9d8: 0x6c1e8e20, 0xb9da: 0x6c1e8420,
-	0xb9e0: 0x6c1e9820, 0xb9e1: 0x6c1e9a20, 0xb9e2: 0x6c0f7a20, 0xb9e3: 0x6c1e9e20,
-	0xb9e6: 0x6c081c20, 0xb9e7: 0x6c1e9420,
-	0xb9ec: 0x6c03e420, 0xb9ef: 0x6c1ea020,
-	0xb9f1: 0x6c1e9220, 0xb9f2: 0x6c1ea820,
-	0xb9f4: 0x6c1ea620, 0xb9f6: 0x6c1ea420,
-	0xb9fa: 0x6c1eaa20,
-	0xb9fd: 0x6c1eae20, 0xb9fe: 0x6c0aea20,
-	// Block 0x2e8, offset 0xba00
-	0xba00: 0x6c1eac20,
-	0xba05: 0x6c1eb420,
-	0xba18: 0x6c1eb020,
-	0xba1c: 0x6c1eb220, 0xba1d: 0x6c1e6620,
-	0xba23: 0x6c1eb820,
-	0xba24: 0x6c1eb620,
-	0xba2a: 0x6c1e7620, 0xba2b: 0x6c1eba20,
-	0xba2c: 0x6c1ea220, 0xba2f: 0x6c088620,
-	0xba34: 0x6c1ebc20, 0xba35: 0x6c1ebe20, 0xba36: 0x6c1ec220, 0xba37: 0x6c1ec020,
-	0xba38: 0x6c1ec420, 0xba39: 0x6c023420, 0xba3b: 0x6c06c820,
-	0xba3e: 0x6c13d020, 0xba3f: 0x6c0bde20,
-	// Block 0x2e9, offset 0xba40
-	0xba45: 0x6c063c20,
-	0xba48: 0x6c1ec820,
-	0xba4d: 0x6c1ece20, 0xba4f: 0x6c12c020,
-	0xba51: 0x6c042a20,
-	0xba55: 0x6c1ecc20, 0xba56: 0x6c1eca20, 0xba57: 0x6c114c20,
-	0xba58: 0x6c1ed020, 0xba59: 0x6c049220,
-	0xba5d: 0x6c1ed420, 0xba5e: 0x6c1ed220,
-	0xba62: 0x6c032420, 0xba63: 0x6c084020,
-	0xba66: 0x6c109820,
-	0xba6c: 0x6c057620,
-	0xba70: 0x6c0bac20, 0xba72: 0x6c1ed620,
-	0xba74: 0x6c0be020, 0xba75: 0x6c0f7c20, 0xba77: 0x6c12da20,
-	0xba78: 0x6c1ed820,
-	// Block 0x2ea, offset 0xba80
-	0xba82: 0x6c1eda20, 0xba83: 0x6c1edc20,
-	0xba87: 0x6c134820,
-	0xba88: 0x6c1b5020, 0xba89: 0x6c0c0c20,
-	0xba8c: 0x6c12b420, 0xba8e: 0x6c07c820,
-	0xba90: 0x6c122a20, 0xba91: 0x6c11e620,
-	0xba97: 0x6c0fc620,
-	0xba99: 0x6c164a20, 0xba9b: 0x6c1ee020,
-	0xba9c: 0x6c093020, 0xba9f: 0x6c1ee220,
-	0xbaa1: 0x6c002c20,
-	0xbaa4: 0x6c04d020, 0xbaa5: 0x6c0c1a20, 0xbaa7: 0x6c12dc20,
-	0xbaab: 0x6c1ee420,
-	0xbaac: 0x6c085820, 0xbaad: 0x6c0e4220, 0xbaaf: 0x6c088a20,
-	0xbab0: 0x6c0b3220,
-	0xbab7: 0x6c1ee620,
-	0xbab9: 0x6c13d220,
-	0xbabc: 0x6c016a20, 0xbabd: 0x6c088c20,
-	// Block 0x2eb, offset 0xbac0
-	0xbac1: 0x6c1eec20, 0xbac3: 0x6c1ee820,
-	0xbac4: 0x6c1eee20, 0xbac5: 0x6c163a20, 0xbac6: 0x6c1eea20,
-	0xbacb: 0x6c0c7620,
-	0xbacc: 0x6c1ef020, 0xbacf: 0x6c0d5c20,
-	0xbad2: 0x6c1ef220,
-	0xbad7: 0x6c03a420,
-	0xbad9: 0x6c1ef620, 0xbadb: 0x6c1ef420,
-	0xbae0: 0x6c1ef820, 0xbae1: 0x6c1efa20, 0xbae2: 0x6c03a620,
-	0xbae5: 0x6c10e020, 0xbae6: 0x6c0e2020, 0xbae7: 0x6c044420,
-	0xbae8: 0x6c088e20, 0xbae9: 0x6c0cfe20,
-	0xbaec: 0x6c0a0420, 0xbaed: 0x6c002020,
-	0xbaf1: 0x6c1efc20,
-	0xbafa: 0x6c017c20, 0xbafb: 0x6c1f0420,
-	// Block 0x2ec, offset 0xbb00
-	0xbb02: 0x6c06ca20, 0xbb03: 0x6c1f0220,
-	0xbb06: 0x6c076e20, 0xbb07: 0x6c0a7c20,
-	0xbb0a: 0x6c1f0020,
-	0xbb0c: 0x6c0a7e20, 0xbb0e: 0x6c14d020, 0xbb0f: 0x6c076c20,
-	0xbb13: 0x6c006e20,
-	0xbb14: 0x6c0c1c20,
-	0xbb1c: 0x6c1f0e20, 0xbb1f: 0x6c0be220,
-	0xbb20: 0x6c010a20,
-	0xbb25: 0x6c09f620, 0xbb27: 0x6c146020,
-	0xbb28: 0x6c07fc20,
-	0xbb2d: 0x6c0a8020, 0xbb2f: 0x6c0bce20,
-	0xbb34: 0x6c1f0c20, 0xbb35: 0x6c1f0820, 0xbb36: 0x6c1f0a20,
-	0xbb3c: 0x6c0e8a20, 0xbb3f: 0x6c1f4a20,
-	// Block 0x2ed, offset 0xbb40
-	0xbb41: 0x6c1f1620, 0xbb42: 0x6c08d020, 0xbb43: 0x6c06cc20,
-	0xbb44: 0x6c1f1220,
-	0xbb49: 0x6c1f1420, 0xbb4b: 0x6c0b3420,
-	0xbb4f: 0x6c1f1020,
-	0xbb52: 0x6c083220,
-	0xbb5d: 0x6c1f1a20, 0xbb5e: 0x6c1f1820, 0xbb5f: 0x6c1f2220,
-	0xbb62: 0x6c1f2420,
-	0xbb64: 0x6c1f1c20, 0xbb66: 0x6c023820, 0xbb67: 0x6c1f1e20,
-	0xbb68: 0x6c1f2020, 0xbb69: 0x6c120a20,
-	0xbb6e: 0x6c12de20, 0xbb6f: 0x6c057820,
-	0xbb70: 0x6c1f2620,
-	0xbb74: 0x6c0be420, 0xbb76: 0x6c0a8220,
-	0xbb7a: 0x6c0e5820,
-	// Block 0x2ee, offset 0xbb80
-	0xbb81: 0x6c04b620, 0xbb83: 0x6c1f2820,
-	0xbb84: 0x6c1f3020, 0xbb87: 0x6c01ce20,
-	0xbb88: 0x6c1f2a20, 0xbb89: 0x6c1f2e20,
-	0xbb8e: 0x6c1f2c20,
-	0xbb91: 0x6c0a2220,
-	0xbb96: 0x6c0e4420, 0xbb97: 0x6c004a20,
-	0xbb98: 0x6c1f3220,
-	0xbb9d: 0x6c1f3420,
-	0xbba2: 0x6c0ec420,
-	0xbba6: 0x6c16aa20,
-	0xbbab: 0x6c085a20,
-	0xbbae: 0x6c13ae20,
-	0xbbb4: 0x6c140e20,
-	0xbbb8: 0x6c1f4220, 0xbbb9: 0x6c1f3820,
-	0xbbbc: 0x6c1f3e20, 0xbbbe: 0x6c1f3c20,
-	// Block 0x2ef, offset 0xbbc0
-	0xbbc1: 0x6c1f3620,
-	0xbbc4: 0x6c1f4020, 0xbbc7: 0x6c10a420,
-	0xbbc9: 0x6c1f3a20,
-	0xbbd6: 0x6c1f4420,
-	0xbbd9: 0x6c0a2420, 0xbbda: 0x6c1f4620,
-	0xbbdc: 0x6c15a220, 0xbbdd: 0x6c119420,
-	0xbbe0: 0x6c1f4820,
-	0xbbe6: 0x6c1f4c20,
-	0xbbe9: 0x6c1f4e20,
-	0xbbf0: 0x6c1f5020, 0xbbf2: 0x6c04bc20, 0xbbf3: 0x6c010c20,
-	0xbbf4: 0x6c06ce20, 0xbbf5: 0x6c1f5220, 0xbbf7: 0x6c1f5420,
-	0xbbf8: 0x6c0a2e20, 0xbbf9: 0x6c0d0020,
-	0xbbfc: 0x6c191220, 0xbbfd: 0x6c0cb820, 0xbbfe: 0x6c0cb620, 0xbbff: 0x6c0da820,
-	// Block 0x2f0, offset 0xbc00
-	0xbc00: 0x6c07a620, 0xbc03: 0x6c17ce20,
-	0xbc08: 0x6c05c020, 0xbc09: 0x6c156620, 0xbc0b: 0x6c13d420,
-	0xbc0d: 0x6c131820, 0xbc0f: 0x6c1f5620,
-	0xbc14: 0x6c07fe20, 0xbc15: 0x6c0eee20, 0xbc16: 0x6c1f5820, 0xbc17: 0x6c16e220,
-	0xbc1b: 0x6c141020,
-	0xbc1d: 0x6c0ec620, 0xbc1e: 0x6c1f5a20, 0xbc1f: 0x6c03a820,
-	0xbc26: 0x6c1f5c20, 0xbc27: 0x6c1f5e20,
-	0xbc28: 0x6c150420, 0xbc2a: 0x6c149820, 0xbc2b: 0x6c148020,
-	0xbc2c: 0x6c144c20, 0xbc2d: 0x6c081e20, 0xbc2e: 0x6c1f6220,
-	0xbc31: 0x6c096620,
-	0xbc34: 0x6c143620, 0xbc36: 0x6c1f6620, 0xbc37: 0x6c1f6c20,
-	0xbc38: 0x6c1f6a20, 0xbc3a: 0x6c03a220,
-	0xbc3d: 0x6c042c20, 0xbc3f: 0x6c1f6420,
-	// Block 0x2f1, offset 0xbc40
-	0xbc41: 0x6c1f6820,
-	0xbc46: 0x6c1f6e20,
-	0xbc49: 0x6c0bb620,
-	0xbc4e: 0x6c160220, 0xbc4f: 0x6c005220,
-	0xbc50: 0x6c07d820, 0xbc51: 0x6c0d7020, 0xbc53: 0x6c094a20,
-	0xbc56: 0x6c0aee20,
-	0xbc59: 0x6c1f7420,
-	0xbc5c: 0x6c0fc820, 0xbc5e: 0x6c1f7020, 0xbc5f: 0x6c0d4e20,
-	0xbc60: 0x6c1f7220, 0xbc61: 0x6c0aec20, 0xbc62: 0x6c150a20, 0xbc63: 0x6c1f7620,
-	0xbc64: 0x6c1f7820, 0xbc65: 0x6c15dc20,
-	0xbc6a: 0x6c1f8220,
-	0xbc6d: 0x6c06d020, 0xbc6f: 0x6c114e20,
-	0xbc70: 0x6c1f7c20, 0xbc71: 0x6c100420, 0xbc72: 0x6c1efe20, 0xbc73: 0x6c1f0620,
-	0xbc75: 0x6c040a20, 0xbc77: 0x6c113220,
-	0xbc7c: 0x6c1f8020, 0xbc7e: 0x6c0a8420, 0xbc7f: 0x6c11e820,
-	// Block 0x2f2, offset 0xbc80
-	0xbc85: 0x6c1f8c20, 0xbc87: 0x6c125420,
-	0xbc89: 0x6c1f7a20, 0xbc8b: 0x6c1f8620,
-	0xbc8c: 0x6c1f8420,
-	0xbc90: 0x6c0c1e20,
-	0xbc95: 0x6c146e20, 0xbc97: 0x6c166e20,
-	0xbc9a: 0x6c146220,
-	0xbc9c: 0x6c01d020, 0xbc9d: 0x6c089020,
-	0xbca0: 0x6c171420, 0xbca1: 0x6c1f8a20, 0xbca2: 0x6c0bae20,
-	0xbca6: 0x6c1f8820,
-	0xbca9: 0x6c1f7e20,
-	0xbcaf: 0x6c063e20,
-	0xbcb3: 0x6c1f9620,
-	0xbcb4: 0x6c1f9220, 0xbcb6: 0x6c01d220, 0xbcb7: 0x6c1f8e20,
-	0xbcb8: 0x6c1f9a20, 0xbcb9: 0x6c1fa620,
-	// Block 0x2f3, offset 0xbcc0
-	0xbcc1: 0x6c0d8820,
-	0xbcc4: 0x6c135a20, 0xbcc6: 0x6c1faa20,
-	0xbcca: 0x6c126020,
-	0xbcce: 0x6c1fa820, 0xbccf: 0x6c118420,
-	0xbcd0: 0x6c141220, 0xbcd1: 0x6c032620, 0xbcd3: 0x6c0c6e20,
-	0xbcd4: 0x6c09cc20,
-	0xbcd8: 0x6c0f1620, 0xbcda: 0x6c156820,
-	0xbcdd: 0x6c1fa020, 0xbcde: 0x6c1f9e20,
-	0xbce2: 0x6c1fa220,
-	0xbce4: 0x6c1f9c20, 0xbce7: 0x6c1fac20,
-	0xbce9: 0x6c1f9820,
-	0xbcec: 0x6c1f9420, 0xbcee: 0x6c1fa420, 0xbcef: 0x6c1f9020,
-	0xbcf1: 0x6c0e8c20, 0xbcf3: 0x6c154020,
-	0xbcf4: 0x6c091c20, 0xbcf5: 0x6c080020,
-	0xbcfb: 0x6c078c20,
-	0xbcfe: 0x6c147220, 0xbcff: 0x6c027620,
-	// Block 0x2f4, offset 0xbd00
-	0xbd02: 0x6c0f0c20, 0xbd03: 0x6c107c20,
-	0xbd04: 0x6c010e20,
-	0xbd13: 0x6c0c6420,
-	0xbd16: 0x6c0be820, 0xbd17: 0x6c053820,
-	0xbd1e: 0x6c1fb020,
-	0xbd21: 0x6c06d220, 0xbd22: 0x6c02ec20,
-	0xbd29: 0x6c1fb420, 0xbd2a: 0x6c02dc20, 0xbd2b: 0x6c1fc020,
-	0xbd32: 0x6c1fba20,
-	0xbd34: 0x6c0c6620,
-	0xbd38: 0x6c028a20, 0xbd39: 0x6c077020,
-	0xbd3c: 0x6c028820, 0xbd3d: 0x6c07b620,
-	// Block 0x2f5, offset 0xbd40
-	0xbd40: 0x6c1fb620, 0xbd41: 0x6c05ae20, 0xbd42: 0x6c057a20, 0xbd43: 0x6c100620,
-	0xbd46: 0x6c1fb220,
-	0xbd48: 0x6c004c20,
-	0xbd4d: 0x6c1fb820, 0xbd4e: 0x6c1fbc20,
-	0xbd50: 0x6c04c220, 0xbd51: 0x6c053c20, 0xbd53: 0x6c032820,
-	0xbd54: 0x6c040220,
-	0xbd59: 0x6c1fc220,
-	0xbd5c: 0x6c080a20, 0xbd5d: 0x6c147620, 0xbd5f: 0x6c084220,
-	0xbd63: 0x6c1fc420,
-	0xbd67: 0x6c127c20,
-	0xbd74: 0x6c1fdc20, 0xbd76: 0x6c019e20, 0xbd77: 0x6c1fc620,
-	0xbd7e: 0x6c1fe820, 0xbd7f: 0x6c1fc820,
-	// Block 0x2f6, offset 0xbd80
-	0xbd81: 0x6c164c20, 0xbd83: 0x6c1fd620,
-	0xbd85: 0x6c116220,
-	0xbd8d: 0x6c1fe620, 0xbd8f: 0x6c1fcc20,
-	0xbd93: 0x6c002820,
-	0xbd94: 0x6c1fd020, 0xbd97: 0x6c06d420,
-	0xbd9b: 0x6c1fd420,
-	0xbd9d: 0x6c1fd220, 0xbd9f: 0x6c1fca20,
-	0xbda0: 0x6c1fe020, 0xbda2: 0x6c0a8620,
-	0xbda6: 0x6c1ab420, 0xbda7: 0x6c067020,
-	0xbda8: 0x6c160420,
-	0xbdad: 0x6c1fce20, 0xbdaf: 0x6c0f5820,
-	0xbdb0: 0x6c023a20, 0xbdb1: 0x6c077220, 0xbdb3: 0x6c1fbe20,
-	0xbdb5: 0x6c1fde20, 0xbdb6: 0x6c02b620,
-	0xbdb9: 0x6c1fda20, 0xbdba: 0x6c1fe220,
-	0xbdbc: 0x6c100820,
-	// Block 0x2f7, offset 0xbdc0
-	0xbdc4: 0x6c03ac20, 0xbdc6: 0x6c201e20,
-	0xbdc9: 0x6c14e220, 0xbdca: 0x6c1fec20, 0xbdcb: 0x6c03aa20,
-	0xbdcd: 0x6c1ffa20,
-	0xbdd2: 0x6c141420,
-	0xbdd4: 0x6c1ffc20, 0xbdd5: 0x6c200020, 0xbdd7: 0x6c200820,
-	0xbdd8: 0x6c1ff020, 0xbdda: 0x6c0e0820,
-	0xbddf: 0x6c100a20,
-	0xbde0: 0x6c201020, 0xbde1: 0x6c1ff620, 0xbde3: 0x6c200a20,
-	0xbde7: 0x6c1ffe20,
-	0xbdee: 0x6c0b3620, 0xbdef: 0x6c201220,
-	0xbdf2: 0x6c0be620,
-	0xbdf9: 0x6c200e20, 0xbdfa: 0x6c032a20,
-	// Block 0x2f8, offset 0xbe00
-	0xbe00: 0x6c172420, 0xbe01: 0x6c1fea20,
-	0xbe04: 0x6c200620, 0xbe05: 0x6c007020,
-	0xbe08: 0x6c1fee20, 0xbe0b: 0x6c14c420,
-	0xbe0c: 0x6c1ff820, 0xbe0d: 0x6c0b0820, 0xbe0e: 0x6c0efe20, 0xbe0f: 0x6c1fe420,
-	0xbe12: 0x6c200420,
-	0xbe19: 0x6c0bb820, 0xbe1a: 0x6c201820, 0xbe1b: 0x6c02d620,
-	0xbe1c: 0x6c05e220,
-	0xbe21: 0x6c201c20, 0xbe22: 0x6c1ff220, 0xbe23: 0x6c201a20,
-	0xbe25: 0x6c200c20, 0xbe26: 0x6c1ff420,
-	0xbe28: 0x6c201420, 0xbe2a: 0x6c201620,
-	0xbe30: 0x6c203820,
-	0xbe34: 0x6c108420, 0xbe36: 0x6c200220,
-	0xbe39: 0x6c203020,
-	0xbe3d: 0x6c203420, 0xbe3f: 0x6c0f2020,
-	// Block 0x2f9, offset 0xbe40
-	0xbe4a: 0x6c15a420,
-	0xbe53: 0x6c130820,
-	0xbe54: 0x6c202a20, 0xbe55: 0x6c0d8c20,
-	0xbe59: 0x6c203620, 0xbe5a: 0x6c0cba20,
-	0xbe5c: 0x6c202420, 0xbe5d: 0x6c203e20, 0xbe5e: 0x6c203c20,
-	0xbe60: 0x6c10c620, 0xbe61: 0x6c203a20, 0xbe62: 0x6c10bc20,
-	0xbe6a: 0x6c204220, 0xbe6b: 0x6c202820,
-	0xbe6d: 0x6c04b820, 0xbe6e: 0x6c202e20, 0xbe6f: 0x6c0a0620,
-	0xbe73: 0x6c116420,
-	0xbe74: 0x6c203220, 0xbe75: 0x6c04be20, 0xbe77: 0x6c202220,
-	0xbe78: 0x6c202620, 0xbe79: 0x6c202020,
-	0xbe7c: 0x6c16e420, 0xbe7d: 0x6c02a820, 0xbe7e: 0x6c202c20,
-	// Block 0x2fa, offset 0xbe80
-	0xbe81: 0x6c204020, 0xbe82: 0x6c025e20,
-	0xbe8a: 0x6c07e620,
-	0xbe8e: 0x6c013620,
-	0xbe91: 0x6c206220,
-	0xbe94: 0x6c16e620, 0xbe95: 0x6c206820,
-	0xbe9b: 0x6c0b3820,
-	0xbe9c: 0x6c206620,
-	0xbea0: 0x6c206420,
-	0xbea7: 0x6c205e20,
-	0xbeae: 0x6c204620,
-	0xbeb1: 0x6c208020, 0xbeb2: 0x6c204420,
-	0xbeb4: 0x6c206a20,
-	0xbebb: 0x6c205a20,
-	0xbebe: 0x6c205020, 0xbebf: 0x6c204a20,
-	// Block 0x2fb, offset 0xbec0
-	0xbec1: 0x6c204c20, 0xbec3: 0x6c205c20,
-	0xbec7: 0x6c319e20,
-	0xbeca: 0x6c205620, 0xbecb: 0x6c06d620,
-	0xbecc: 0x6c0f0020, 0xbecd: 0x6c0d0420, 0xbece: 0x6c205220,
-	0xbed0: 0x6c204820, 0xbed3: 0x6c204e20,
-	0xbed8: 0x6c15a620, 0xbed9: 0x6c146820,
-	0xbedd: 0x6c205820, 0xbede: 0x6c206c20,
-	0xbee7: 0x6c207c20,
-	0xbee8: 0x6c206e20, 0xbeeb: 0x6c208820,
-	0xbeed: 0x6c208420,
-	0xbef2: 0x6c207a20,
-	0xbef9: 0x6c207820, 0xbefb: 0x6c0f1020,
-	0xbefd: 0x6c0d0620, 0xbeff: 0x6c207420,
-	// Block 0x2fc, offset 0xbf00
-	0xbf02: 0x6c207020,
-	0xbf05: 0x6c207e20,
-	0xbf0a: 0x6c208a20, 0xbf0b: 0x6c124a20,
-	0xbf0c: 0x6c209620,
-	0xbf12: 0x6c208c20, 0xbf13: 0x6c209220,
-	0xbf14: 0x6c208620, 0xbf17: 0x6c0e9c20,
-	0xbf19: 0x6c128c20, 0xbf1b: 0x6c207220,
-	0xbf1e: 0x6c208220, 0xbf1f: 0x6c0a8820,
-	0xbf21: 0x6c14ee20, 0xbf22: 0x6c20aa20, 0xbf23: 0x6c209020,
-	0xbf29: 0x6c05e420, 0xbf2a: 0x6c017e20, 0xbf2b: 0x6c02b220,
-	0xbf2e: 0x6c206020,
-	0xbf35: 0x6c0a8a20, 0xbf36: 0x6c209a20,
-	0xbf38: 0x6c20a820, 0xbf39: 0x6c098220, 0xbf3a: 0x6c02d820,
-	0xbf3d: 0x6c0e1020,
-	// Block 0x2fd, offset 0xbf40
-	0xbf44: 0x6c209420, 0xbf47: 0x6c209e20,
-	0xbf48: 0x6c20a620, 0xbf4b: 0x6c049420,
-	0xbf58: 0x6c040420, 0xbf59: 0x6c20a220,
-	0xbf5f: 0x6c03ae20,
-	0xbf61: 0x6c107e20, 0xbf62: 0x6c20a020,
-	0xbf66: 0x6c20a420,
-	0xbf72: 0x6c209820,
-	0xbf78: 0x6c209c20,
-	0xbf7f: 0x6c02b420,
-	// Block 0x2fe, offset 0xbf80
-	0xbf80: 0x6c0e4620,
-	0xbf84: 0x6c20b220,
-	0xbf8d: 0x6c20ae20, 0xbf8e: 0x6c067220,
-	0xbf90: 0x6c20ac20,
-	0xbf97: 0x6c20b820,
-	0xbf9c: 0x6c1fae20,
-	0xbfa0: 0x6c20b020, 0xbfa2: 0x6c20b420, 0xbfa3: 0x6c20b620,
-	0xbfaa: 0x6c20ce20,
-	0xbfac: 0x6c20c620, 0xbfae: 0x6c1fd820,
-	0xbfb3: 0x6c20c420,
-	0xbfb8: 0x6c20c220, 0xbfbb: 0x6c20bc20,
-	// Block 0x2ff, offset 0xbfc0
-	0xbfc1: 0x6c208e20, 0xbfc2: 0x6c20c020, 0xbfc3: 0x6c20be20,
-	0xbfd1: 0x6c20ca20, 0xbfd3: 0x6c16d020,
-	0xbfda: 0x6c20d020, 0xbfdb: 0x6c051e20,
-	0xbfde: 0x6c20c820, 0xbfdf: 0x6c20cc20,
-	0xbfe8: 0x6c11ae20, 0xbfea: 0x6c20d220,
-	0xbffa: 0x6c20da20, 0xbffb: 0x6c20d420,
-	// Block 0x300, offset 0xc000
-	0xc004: 0x6c15f220, 0xc005: 0x6c20d620,
-	0xc00a: 0x6c207620,
-	0xc012: 0x6c20dc20,
-	0xc016: 0x6c20de20,
-	0xc01d: 0x6c00e620, 0xc01f: 0x6c20e220,
-	0xc020: 0x6c05b220, 0xc021: 0x6c08d220, 0xc023: 0x6c04d220,
-	0xc027: 0x6c018020,
-	0xc032: 0x6c15ca20,
-	0xc037: 0x6c20e620,
-	0xc038: 0x6c20e420, 0xc039: 0x6c20ea20, 0xc03a: 0x6c03e620,
-	0xc03d: 0x6c04d420, 0xc03e: 0x6c032c20,
-	// Block 0x301, offset 0xc040
-	0xc043: 0x6c20f020,
-	0xc047: 0x6c20ee20,
-	0xc049: 0x6c20f220,
-	0xc04c: 0x6c01d420, 0xc04e: 0x6c0e2220,
-	0xc050: 0x6c20f420, 0xc053: 0x6c032e20,
-	0xc054: 0x6c20f820,
-	0xc059: 0x6c20f620, 0xc05b: 0x6c20fa20,
-	0xc05f: 0x6c20fc20,
-	0xc061: 0x6c20fe20, 0xc062: 0x6c089220, 0xc063: 0x6c0bea20,
-	0xc064: 0x6c075a20, 0xc066: 0x6c12fc20,
-	0xc069: 0x6c139c20, 0xc06a: 0x6c170c20,
-	0xc06f: 0x6c08be20,
-	0xc073: 0x6c07b820,
-	0xc074: 0x6c16ac20,
-	0xc078: 0x6c210020, 0xc079: 0x6c210220, 0xc07b: 0x6c089420,
-	0xc07f: 0x6c210420,
-	// Block 0x302, offset 0xc080
-	0xc080: 0x6c210620, 0xc083: 0x6c210a20,
-	0xc084: 0x6c210820, 0xc086: 0x6c144420,
-	0xc089: 0x6c0a0820, 0xc08a: 0x6c096820, 0xc08b: 0x6c085c20,
-	0xc08d: 0x6c210c20,
-	0xc095: 0x6c211020, 0xc096: 0x6c0b0a20,
-	0xc098: 0x6c210e20,
-	0xc09e: 0x6c211220,
-	0xc0a4: 0x6c211420,
-	0xc0aa: 0x6c211620, 0xc0ab: 0x6c211820,
-	0xc0af: 0x6c211a20,
-	0xc0b1: 0x6c211e20, 0xc0b2: 0x6c211c20, 0xc0b3: 0x6c212020,
-	0xc0b4: 0x6c018220, 0xc0b5: 0x6c0e4820, 0xc0b7: 0x6c212220,
-	0xc0ba: 0x6c082020, 0xc0bb: 0x6c028c20,
-	0xc0bc: 0x6c212420, 0xc0bf: 0x6c0fb020,
-	// Block 0x303, offset 0xc0c0
-	0xc0c0: 0x6c1a7220,
-	0xc0c5: 0x6c03b220, 0xc0c6: 0x6c212620,
-	0xc0cb: 0x6c212820,
-	0xc0cd: 0x6c13b020, 0xc0ce: 0x6c146420,
-	0xc0d2: 0x6c107620, 0xc0d3: 0x6c212a20,
-	0xc0d4: 0x6c122c20,
-	0xc0d8: 0x6c125620, 0xc0db: 0x6c14f620,
-	0xc0df: 0x6c212c20,
-	0xc0eb: 0x6c213020,
-	0xc0ec: 0x6c212e20, 0xc0ef: 0x6c213420,
-	0xc0f3: 0x6c213220,
-	// Block 0x304, offset 0xc100
-	0xc108: 0x6c213820,
-	0xc10f: 0x6c089620,
-	0xc111: 0x6c14b220, 0xc113: 0x6c213a20,
-	0xc114: 0x6c213c20, 0xc117: 0x6c03b420,
-	0xc11b: 0x6c213e20,
-	0xc123: 0x6c214220,
-	0xc124: 0x6c214020,
-	0xc134: 0x6c0b8e20, 0xc137: 0x6c128e20,
-	0xc138: 0x6c011020,
-	0xc13e: 0x6c11ea20,
-	// Block 0x305, offset 0xc140
-	0xc140: 0x6c0f5a20, 0xc141: 0x6c09ce20, 0xc142: 0x6c042e20,
-	0xc14e: 0x6c11ec20,
-	0xc150: 0x6c08ec20,
-	0xc155: 0x6c214620, 0xc157: 0x6c033020,
-	0xc15a: 0x6c016c20,
-	0xc15d: 0x6c10cc20, 0xc15e: 0x6c214420, 0xc15f: 0x6c06d820,
-	0xc160: 0x6c0e5a20, 0xc162: 0x6c214820,
-	0xc168: 0x6c215820, 0xc16a: 0x6c214a20,
-	0xc170: 0x6c0d7a20, 0xc172: 0x6c043020, 0xc173: 0x6c215a20,
-	0xc17a: 0x6c05b420,
-	0xc17d: 0x6c03b620, 0xc17e: 0x6c215620,
-	// Block 0x306, offset 0xc180
-	0xc181: 0x6c215220, 0xc182: 0x6c214c20, 0xc183: 0x6c15cc20,
-	0xc188: 0x6c0ef020,
-	0xc18c: 0x6c109a20, 0xc18d: 0x6c214e20,
-	0xc190: 0x6c215e20, 0xc192: 0x6c215c20, 0xc193: 0x6c052a20,
-	0xc196: 0x6c019220,
-	0xc199: 0x6c078e20, 0xc19a: 0x6c215020, 0xc19b: 0x6c215420,
-	0xc1a1: 0x6c144220, 0xc1a2: 0x6c0de020,
-	0xc1ab: 0x6c148220,
-	0xc1ae: 0x6c216e20,
-	0xc1b1: 0x6c217020, 0xc1b3: 0x6c01d620,
-	0xc1b8: 0x6c132820, 0xc1b9: 0x6c154a20, 0xc1ba: 0x6c217420, 0xc1bb: 0x6c08d620,
-	0xc1bc: 0x6c0a8c20, 0xc1bd: 0x6c216620, 0xc1be: 0x6c217220, 0xc1bf: 0x6c014c20,
-	// Block 0x307, offset 0xc1c0
-	0xc1c1: 0x6c049620,
-	0xc1c4: 0x6c216020, 0xc1c5: 0x6c216a20,
-	0xc1c9: 0x6c0c6820, 0xc1ca: 0x6c118620,
-	0xc1cc: 0x6c122e20,
-	0xc1d3: 0x6c216420,
-	0xc1d5: 0x6c13d620, 0xc1d7: 0x6c216820,
-	0xc1d9: 0x6c217a20, 0xc1db: 0x6c217620,
-	0xc1dd: 0x6c216c20,
-	0xc1e1: 0x6c13d820, 0xc1e2: 0x6c113420, 0xc1e3: 0x6c043220,
-	0xc1e5: 0x6c0f7620,
-	0xc1e8: 0x6c0e8e20, 0xc1ea: 0x6c217c20,
-	0xc1ef: 0x6c217820,
-	0xc1f0: 0x6c0daa20, 0xc1f1: 0x6c216220, 0xc1f3: 0x6c011220,
-	// Block 0x308, offset 0xc200
-	0xc20b: 0x6c15a820,
-	0xc20c: 0x6c219220,
-	0xc212: 0x6c219020,
-	0xc217: 0x6c0c6c20,
-	0xc219: 0x6c218a20, 0xc21b: 0x6c15e420,
-	0xc21e: 0x6c105420, 0xc21f: 0x6c217e20,
-	0xc225: 0x6c0efa20,
-	0xc229: 0x6c011420, 0xc22a: 0x6c06da20, 0xc22b: 0x6c218420,
-	0xc232: 0x6c099a20, 0xc233: 0x6c218e20,
-	0xc235: 0x6c218c20, 0xc236: 0x6c218220,
-	0xc238: 0x6c218820, 0xc23b: 0x6c02c420,
-	0xc23d: 0x6c218620, 0xc23e: 0x6c113620,
-	// Block 0x309, offset 0xc240
-	0xc241: 0x6c162420,
-	0xc244: 0x6c0af020, 0xc245: 0x6c0c6a20,
-	0xc259: 0x6c219e20, 0xc25a: 0x6c219a20,
-	0xc25c: 0x6c12b620,
-	0xc263: 0x6c219420,
-	0xc264: 0x6c219820, 0xc266: 0x6c00f020,
-	0xc269: 0x6c06dc20, 0xc26a: 0x6c16e820,
-	0xc26c: 0x6c026e20, 0xc26e: 0x6c12e020,
-	0xc274: 0x6c15ce20, 0xc277: 0x6c023c20,
-	0xc278: 0x6c0b3a20, 0xc279: 0x6c219c20,
-	// Block 0x30a, offset 0xc280
-	0xc285: 0x6c21a620,
-	0xc288: 0x6c0a8e20,
-	0xc28c: 0x6c156c20, 0xc28e: 0x6c21a020,
-	0xc293: 0x6c219620,
-	0xc295: 0x6c21a220,
-	0xc299: 0x6c168420, 0xc29b: 0x6c101220,
-	0xc29c: 0x6c106c20,
-	0xc2af: 0x6c026020,
-	0xc2b2: 0x6c012620,
-	0xc2b5: 0x6c21ae20,
-	0xc2b8: 0x6c21b420,
-	0xc2bc: 0x6c164e20,
-	// Block 0x30b, offset 0xc2c0
-	0xc2c0: 0x6c15d420,
-	0xc2c5: 0x6c21c220, 0xc2c6: 0x6c21b620, 0xc2c7: 0x6c21b020,
-	0xc2cb: 0x6c167020,
-	0xc2cc: 0x6c21bc20,
-	0xc2d1: 0x6c09e020, 0xc2d2: 0x6c21c020,
-	0xc2d5: 0x6c21ca20,
-	0xc2d8: 0x6c100e20, 0xc2d9: 0x6c21c620,
-	0xc2de: 0x6c21ba20,
-	0xc2e1: 0x6c0e2420,
-	0xc2e4: 0x6c21c820, 0xc2e6: 0x6c21b220,
-	0xc2e8: 0x6c21be20, 0xc2ea: 0x6c21cc20, 0xc2eb: 0x6c00b820,
-	0xc2ec: 0x6c21b820, 0xc2ee: 0x6c21ce20,
-	0xc2f1: 0x6c0b3c20, 0xc2f3: 0x6c0a0a20,
-	0xc2f5: 0x6c132220, 0xc2f7: 0x6c077420,
-	0xc2f9: 0x6c21a820, 0xc2fa: 0x6c21c420, 0xc2fb: 0x6c0fa020,
-	// Block 0x30c, offset 0xc300
-	0xc305: 0x6c0bec20, 0xc307: 0x6c02c620,
-	0xc308: 0x6c07ba20, 0xc309: 0x6c0a9020, 0xc30a: 0x6c21ac20, 0xc30b: 0x6c09d020,
-	0xc313: 0x6c057c20,
-	0xc315: 0x6c21aa20,
-	0xc319: 0x6c21d620, 0xc31a: 0x6c0a2620, 0xc31b: 0x6c061420,
-	0xc31d: 0x6c21f420, 0xc31f: 0x6c21e820,
-	0xc320: 0x6c045420, 0xc321: 0x6c0fca20, 0xc323: 0x6c21de20,
-	0xc324: 0x6c21f020, 0xc325: 0x6c001e20, 0xc326: 0x6c00e020,
-	0xc329: 0x6c01aa20, 0xc32b: 0x6c21e220,
-	0xc32c: 0x6c0d5020, 0xc32d: 0x6c21d020, 0xc32e: 0x6c21d420, 0xc32f: 0x6c06de20,
-	0xc338: 0x6c21f620, 0xc33a: 0x6c21ec20,
-	0xc33e: 0x6c21dc20,
-	// Block 0x30d, offset 0xc340
-	0xc343: 0x6c21ea20,
-	0xc34a: 0x6c14a620,
-	0xc34d: 0x6c21e620, 0xc34e: 0x6c21ee20,
-	0xc356: 0x6c064020,
-	0xc358: 0x6c0a9220, 0xc35b: 0x6c0e2620,
-	0xc35f: 0x6c21da20,
-	0xc367: 0x6c156a20,
-	0xc36b: 0x6c21e020,
-	0xc36e: 0x6c21d220, 0xc36f: 0x6c101020,
-	0xc372: 0x6c21d820,
-	0xc376: 0x6c21e420,
-	0xc37e: 0x6c172620, 0xc37f: 0x6c090c20,
-	// Block 0x30e, offset 0xc380
-	0xc380: 0x6c149020, 0xc382: 0x6c21f820,
-	0xc38c: 0x6c11bc20, 0xc38f: 0x6c221020,
-	0xc390: 0x6c061620,
-	0xc396: 0x6c0a0c20,
-	0xc398: 0x6c21fc20,
-	0xc39c: 0x6c162620, 0xc39d: 0x6c06e020, 0xc39f: 0x6c221620,
-	0xc3a2: 0x6c009c20,
-	0xc3a5: 0x6c221220,
-	0xc3aa: 0x6c21fa20,
-	0xc3af: 0x6c220620,
-	0xc3b2: 0x6c220a20,
-	0xc3b6: 0x6c15aa20, 0xc3b7: 0x6c220020,
-	0xc3ba: 0x6c0f8820,
-	0xc3bd: 0x6c220420,
-	// Block 0x30f, offset 0xc3c0
-	0xc3c2: 0x6c221420,
-	0xc3c4: 0x6c220820, 0xc3c5: 0x6c14de20,
-	0xc3c9: 0x6c21fe20, 0xc3cb: 0x6c08d420,
-	0xc3cc: 0x6c222e20,
-	0xc3d1: 0x6c02c820, 0xc3d3: 0x6c220220,
-	0xc3d4: 0x6c220c20, 0xc3d5: 0x6c220e20,
-	0xc3dd: 0x6c0dd020, 0xc3de: 0x6c0dac20,
-	0xc3ec: 0x6c221e20, 0xc3ef: 0x6c222a20,
-	0xc3f2: 0x6c222620,
-	0xc3f4: 0x6c0f7e20, 0xc3f7: 0x6c223420,
-	0xc3f8: 0x6c222020,
-	0xc3fe: 0x6c222220, 0xc3ff: 0x6c21f220,
-	// Block 0x310, offset 0xc400
-	0xc401: 0x6c045e20, 0xc402: 0x6c129020,
-	0xc406: 0x6c090e20,
-	0xc409: 0x6c074a20,
-	0xc40f: 0x6c16ea20,
-	0xc411: 0x6c221a20, 0xc413: 0x6c223220,
-	0xc414: 0x6c014e20, 0xc415: 0x6c0d0820,
-	0xc420: 0x6c119620, 0xc422: 0x6c033220, 0xc423: 0x6c16bc20,
-	0xc42b: 0x6c149220,
-	0xc42c: 0x6c0f1420,
-	0xc431: 0x6c222820, 0xc432: 0x6c222c20,
-	0xc438: 0x6c0ca020,
-	0xc43e: 0x6c223020, 0xc43f: 0x6c222420,
-	// Block 0x311, offset 0xc440
-	0xc441: 0x6c221820,
-	0xc445: 0x6c033620,
-	0xc454: 0x6c05b620,
-	0xc458: 0x6c224c20, 0xc45b: 0x6c224220,
-	0xc45c: 0x6c0c7020, 0xc45f: 0x6c02ba20,
-	0xc464: 0x6c0a0e20, 0xc466: 0x6c225420,
-	0xc46d: 0x6c224620, 0xc46e: 0x6c0ec820, 0xc46f: 0x6c224020,
-	0xc470: 0x6c0f2220,
-	0xc474: 0x6c228620,
-	0xc478: 0x6c223a20, 0xc47a: 0x6c223820,
-	0xc47c: 0x6c224a20,
-	// Block 0x312, offset 0xc480
-	0xc480: 0x6c223e20, 0xc481: 0x6c223c20, 0xc482: 0x6c224820,
-	0xc484: 0x6c0bc220, 0xc486: 0x6c223620,
-	0xc48e: 0x6c224e20,
-	0xc491: 0x6c225020,
-	0xc497: 0x6c033420,
-	0xc4a1: 0x6c225a20, 0xc4a3: 0x6c225820,
-	0xc4a4: 0x6c225c20,
-	0xc4aa: 0x6c226220,
-	0xc4b1: 0x6c0fb220, 0xc4b3: 0x6c225620,
-	0xc4b9: 0x6c225e20,
-	// Block 0x313, offset 0xc4c0
-	0xc4c0: 0x6c05aa20, 0xc4c1: 0x6c0dea20, 0xc4c2: 0x6c225220, 0xc4c3: 0x6c111a20,
-	0xc4c6: 0x6c226020,
-	0xc4d4: 0x6c226a20, 0xc4d5: 0x6c226620,
-	0xc4d8: 0x6c226c20, 0xc4db: 0x6c227220,
-	0xc4df: 0x6c226420,
-	0xc4e0: 0x6c073020, 0xc4e1: 0x6c10f420,
-	0xc4e4: 0x6c21a420,
-	0xc4eb: 0x6c15f420,
-	0xc4ec: 0x6c226820, 0xc4ee: 0x6c227020, 0xc4ef: 0x6c0de220,
-	0xc4f1: 0x6c226e20, 0xc4f3: 0x6c224420,
-	0xc4f6: 0x6c2e8020,
-	0xc4fa: 0x6c227820,
-	0xc4fe: 0x6c228020,
-	// Block 0x314, offset 0xc500
-	0xc501: 0x6c227c20,
-	0xc509: 0x6c227420, 0xc50b: 0x6c227620,
-	0xc50f: 0x6c227e20,
-	0xc511: 0x6c227a20,
-	0xc515: 0x6c12b820,
-	0xc518: 0x6c228a20, 0xc51a: 0x6c228420, 0xc51b: 0x6c228220,
-	0xc51d: 0x6c228820, 0xc51e: 0x6c109020, 0xc51f: 0x6c228c20,
-	0xc526: 0x6c0e9e20, 0xc527: 0x6c0dd220,
-	0xc52c: 0x6c0bca20,
-	0xc530: 0x6c228e20, 0xc532: 0x6c229220,
-	0xc53e: 0x6c229020,
-	// Block 0x315, offset 0xc540
-	0xc54c: 0x6c221c20,
-	0xc551: 0x6c229420,
-	0xc558: 0x6c10b620,
-	0xc563: 0x6c229620,
-	0xc56b: 0x6c01d820,
-	0xc56f: 0x6c101420,
-	0xc570: 0x6c023e20,
-	0xc578: 0x6c043420,
-	0xc57c: 0x6c094c20, 0xc57d: 0x6c07bc20,
-	// Block 0x316, offset 0xc580
-	0xc589: 0x6c16d220, 0xc58a: 0x6c0b9020,
-	0xc58e: 0x6c015020,
-	0xc592: 0x6c229a20,
-	0xc599: 0x6c229820,
-	0xc5ac: 0x6c22a020, 0xc5ad: 0x6c0e2820, 0xc5ae: 0x6c22a620, 0xc5af: 0x6c229c20,
-	0xc5b3: 0x6c22a420,
-	0xc5b8: 0x6c22a220, 0xc5b9: 0x6c0fac20, 0xc5ba: 0x6c007220,
-	// Block 0x317, offset 0xc5c0
-	0xc5c8: 0x6c16b220, 0xc5cb: 0x6c22aa20,
-	0xc5cf: 0x6c00cc20,
-	0xc5d9: 0x6c22ae20,
-	0xc5dd: 0x6c22ac20, 0xc5df: 0x6c22a820,
-	0xc5f1: 0x6c229e20,
-	0xc5f9: 0x6c13da20,
-	0xc5fd: 0x6c22b220,
-	// Block 0x318, offset 0xc600
-	0xc609: 0x6c22b020,
-	0xc614: 0x6c015220,
-	0xc619: 0x6c22b620, 0xc61a: 0x6c133c20,
-	0xc61c: 0x6c22b420,
-	0xc621: 0x6c14ba20,
-	0xc626: 0x6c0a9620,
-	0xc636: 0x6c0ca220,
-	0xc63c: 0x6c0a9420,
-	// Block 0x319, offset 0xc640
-	0xc649: 0x6c16be20,
-	0xc64c: 0x6c22c220, 0xc64e: 0x6c0c7220,
-	0xc655: 0x6c22ba20, 0xc656: 0x6c22c420,
-	0xc659: 0x6c015420,
-	0xc662: 0x6c22c020,
-	0xc664: 0x6c116620, 0xc665: 0x6c22b820, 0xc666: 0x6c22be20, 0xc667: 0x6c0a9820,
-	0xc669: 0x6c120220,
-	0xc66c: 0x6c22c620, 0xc66e: 0x6c093220,
-	0xc67d: 0x6c0c7420,
-	// Block 0x31a, offset 0xc680
-	0xc684: 0x6c22cc20,
-	0xc688: 0x6c22bc20, 0xc68a: 0x6c053220,
-	0xc68f: 0x6c22c820,
-	0xc694: 0x6c15ac20, 0xc695: 0x6c22ce20,
-	0xc699: 0x6c31a620,
-	0xc69f: 0x6c09ea20,
-	0xc6a8: 0x6c22d020,
-	0xc6ac: 0x6c22d220,
-	0xc6b1: 0x6c110020,
-	0xc6b9: 0x6c22d620,
-	0xc6be: 0x6c22d820,
-	// Block 0x31b, offset 0xc6c0
-	0xc6c3: 0x6c110a20,
-	0xc6c8: 0x6c101620, 0xc6c9: 0x6c22dc20,
-	0xc6ce: 0x6c22e020,
-	0xc6d0: 0x6c167220, 0xc6d2: 0x6c22da20,
-	0xc6d4: 0x6c22de20, 0xc6d5: 0x6c015620, 0xc6d7: 0x6c22d420,
-	0xc6df: 0x6c19d420,
-	0xc6e0: 0x6c22e220,
-	0xc6e5: 0x6c0d0a20, 0xc6e6: 0x6c084420, 0xc6e7: 0x6c22e620,
-	0xc6ec: 0x6c22e420, 0xc6ed: 0x6c0b0c20, 0xc6ee: 0x6c191420,
-	0xc6f5: 0x6c22e820,
-	0xc6f9: 0x6c22ec20, 0xc6fb: 0x6c22ca20,
-	0xc6fc: 0x6c22ea20, 0xc6ff: 0x6c22ee20,
-	// Block 0x31c, offset 0xc700
-	0xc706: 0x6c119820,
-	0xc70d: 0x6c22f020,
-	0xc710: 0x6c22f220,
-	0xc71b: 0x6c22f420,
-	0xc728: 0x6c22f620, 0xc72a: 0x6c0f2c20,
-	0xc72c: 0x6c22fa20, 0xc72d: 0x6c22f820,
-	0xc730: 0x6c22fc20, 0xc732: 0x6c22fe20,
-	0xc735: 0x6c094e20, 0xc736: 0x6c12e220,
-	0xc73a: 0x6c152820, 0xc73b: 0x6c230020,
-	0xc73c: 0x6c230220, 0xc73d: 0x6c0ce820, 0xc73e: 0x6c08d820, 0xc73f: 0x6c230420,
-	// Block 0x31d, offset 0xc740
-	0xc740: 0x6c230620,
-	0xc746: 0x6c230820, 0xc747: 0x6c137c20,
-	0xc748: 0x6c11ee20, 0xc74b: 0x6c230a20,
-	0xc74c: 0x6c115220,
-	0xc752: 0x6c0eca20,
-	0xc758: 0x6c230c20, 0xc759: 0x6c020620, 0xc75b: 0x6c044620,
-	0xc75d: 0x6c14dc20, 0xc75f: 0x6c14bc20,
-	0xc761: 0x6c01a020, 0xc762: 0x6c16ec20,
-	0xc767: 0x6c143820,
-	0xc769: 0x6c132c20,
-	0xc772: 0x6c0bee20,
-	0xc774: 0x6c230e20,
-	0xc779: 0x6c106e20,
-	0xc77d: 0x6c05e620, 0xc77e: 0x6c231020,
-	// Block 0x31e, offset 0xc780
-	0xc780: 0x6c07c020, 0xc781: 0x6c231420, 0xc782: 0x6c231220,
-	0xc787: 0x6c231620,
-	0xc792: 0x6c231820,
-	0xc796: 0x6c231a20,
-	0xc7a0: 0x6c03e820, 0xc7a2: 0x6c231c20,
-	0xc7a7: 0x6c231e20,
-	0xc7ac: 0x6c05e820, 0xc7af: 0x6c11f020,
-	0xc7b2: 0x6c232220,
-	0xc7b6: 0x6c0af220,
-	0xc7b9: 0x6c232020,
-	// Block 0x31f, offset 0xc7c0
-	0xc7c2: 0x6c049820, 0xc7c3: 0x6c232420,
-	0xc7c4: 0x6c232820, 0xc7c6: 0x6c232620,
-	0xc7ce: 0x6c232a20,
-	0xc7d0: 0x6c064220, 0xc7d2: 0x6c232c20,
-	0xc7d7: 0x6c04fa20,
-	0xc7d9: 0x6c0cbc20, 0xc7db: 0x6c075620,
-	0xc7e0: 0x6c233020, 0xc7e1: 0x6c233220, 0xc7e2: 0x6c232e20,
-	0xc7e9: 0x6c096a20,
-	0xc7ec: 0x6c107820, 0xc7ed: 0x6c049a20,
-	0xc7f7: 0x6c233620,
-	0xc7f8: 0x6c0e0c20, 0xc7f9: 0x6c233420,
-	0xc7fc: 0x6c16ee20, 0xc7fd: 0x6c116820,
-	// Block 0x320, offset 0xc800
-	0xc80a: 0x6c233c20,
-	0xc816: 0x6c234020, 0xc817: 0x6c233a20,
-	0xc81b: 0x6c14f820,
-	0xc81c: 0x6c233e20, 0xc81d: 0x6c234220, 0xc81f: 0x6c165020,
-	0xc825: 0x6c234a20,
-	0xc829: 0x6c234820, 0xc82a: 0x6c0ea020, 0xc82b: 0x6c10fe20,
-	0xc82e: 0x6c05ea20, 0xc82f: 0x6c234620,
-	0xc834: 0x6c234420, 0xc836: 0x6c156e20, 0xc837: 0x6c157020,
-	0xc83e: 0x6c234c20, 0xc83f: 0x6c015820,
-	// Block 0x321, offset 0xc840
-	0xc844: 0x6c074820, 0xc845: 0x6c089820,
-	0xc84e: 0x6c234e20, 0xc84f: 0x6c235020,
-	0xc857: 0x6c235420,
-	0xc863: 0x6c09d220,
-	0xc868: 0x6c235820, 0xc86a: 0x6c235620,
-	0xc870: 0x6c235a20, 0xc872: 0x6c028e20,
-	0xc875: 0x6c235e20,
-	0xc878: 0x6c235c20, 0xc87a: 0x6c236220, 0xc87b: 0x6c236020,
-	// Block 0x322, offset 0xc880
-	0xc884: 0x6c061820, 0xc887: 0x6c161820,
-	0xc889: 0x6c04c020, 0xc88b: 0x6c018420,
-	0xc896: 0x6c04fc20,
-	0xc8a9: 0x6c037220,
-	0xc8b2: 0x6c169820, 0xc8b3: 0x6c236620,
-	0xc8bb: 0x6c236a20,
-	// Block 0x323, offset 0xc8c0
-	0xc8c0: 0x6c236c20, 0xc8c2: 0x6c01da20,
-	0xc8c8: 0x6c236420, 0xc8ca: 0x6c084620,
-	0xc8cd: 0x6c0ef220, 0xc8ce: 0x6c236820,
-	0xc8de: 0x6c237220,
-	0xc8e0: 0x6c096c20,
-	0xc8e5: 0x6c236e20,
-	0xc8ea: 0x6c056020,
-	0xc8ed: 0x6c11f220, 0xc8ee: 0x6c237020,
-	0xc8f1: 0x6c23a620,
-	0xc8f8: 0x6c237c20,
-	0xc8fe: 0x6c061a20,
-	// Block 0x324, offset 0xc900
-	0xc903: 0x6c043620,
-	0xc905: 0x6c237620, 0xc906: 0x6c160620,
-	0xc909: 0x6c162820,
-	0xc922: 0x6c0de420,
-	0xc925: 0x6c237a20,
-	0xc932: 0x6c237e20, 0xc933: 0x6c167420,
-	0xc934: 0x6c04d620, 0xc935: 0x6c125820, 0xc936: 0x6c113820,
-	0xc93a: 0x6c238020,
-	0xc93f: 0x6c238420,
-	// Block 0x325, offset 0xc940
-	0xc941: 0x6c238a20,
-	0xc955: 0x6c238220,
-	0xc959: 0x6c238820, 0xc95a: 0x6c067420, 0xc95b: 0x6c011620,
-	0xc95c: 0x6c238c20, 0xc95e: 0x6c0ba420, 0xc95f: 0x6c238620,
-	0xc960: 0x6c168020, 0xc963: 0x6c239220,
-	0xc964: 0x6c31a220,
-	0xc969: 0x6c238e20, 0xc96a: 0x6c239420,
-	0xc96f: 0x6c237820,
-	0xc970: 0x6c239020, 0xc973: 0x6c079020,
-	0xc976: 0x6c239620,
-	0xc97e: 0x6c239820,
-	// Block 0x326, offset 0xc980
-	0xc983: 0x6c160820,
-	0xc98b: 0x6c239a20,
-	0xc99e: 0x6c239c20,
-	0xc9a2: 0x6c237420,
-	0xc9a7: 0x6c239e20,
-	0xc9b0: 0x6c033820,
-	0xc9bd: 0x6c08da20,
-	// Block 0x327, offset 0xc9c0
-	0xc9ca: 0x6c23a020,
-	0xc9cf: 0x6c23a220,
-	0xc9d4: 0x6c23a420,
-	0xc9dc: 0x6c00f220,
-	0xc9e0: 0x6c23a820, 0xc9e2: 0x6c129220, 0xc9e3: 0x6c23aa20,
-	0xc9e6: 0x6c02f820, 0xc9e7: 0x6c23ac20,
-	0xc9e9: 0x6c23ae20,
-	0xc9ee: 0x6c23b020,
-	0xc9f0: 0x6c23b420, 0xc9f1: 0x6c23b620, 0xc9f2: 0x6c23b220,
-	0xc9f6: 0x6c12c220, 0xc9f7: 0x6c23ba20,
-	0xc9f8: 0x6c23b820,
-	// Block 0x328, offset 0xca00
-	0xca03: 0x6c23be20,
-	0xca04: 0x6c23bc20, 0xca05: 0x6c23c020,
-	0xca0c: 0x6c23c220, 0xca0d: 0x6c23c620, 0xca0e: 0x6c23c420,
-	0xca11: 0x6c074e20, 0xca13: 0x6c23ca20,
-	0xca15: 0x6c23c820,
-	0xca18: 0x6c033a20, 0xca1a: 0x6c0b6a20,
-	0xca1c: 0x6c0fa420, 0xca1e: 0x6c23cc20, 0xca1f: 0x6c0bf020,
-	0xca23: 0x6c084820,
-	0xca25: 0x6c016e20, 0xca26: 0x6c23ce20,
-	0xca28: 0x6c15ae20, 0xca2b: 0x6c139e20,
-	0xca2c: 0x6c23d020,
-	0xca30: 0x6c0fb420, 0xca31: 0x6c157220, 0xca32: 0x6c06e220, 0xca33: 0x6c0b3e20,
-	0xca37: 0x6c0e4a20,
-	0xca38: 0x6c18ca20, 0xca3a: 0x6c0ecc20, 0xca3b: 0x6c020820,
-	0xca3c: 0x6c23d220,
-	// Block 0x329, offset 0xca40
-	0xca44: 0x6c23d420, 0xca46: 0x6c23de20,
-	0xca49: 0x6c23da20, 0xca4a: 0x6c23d820, 0xca4b: 0x6c1ec620,
-	0xca4c: 0x6c024020, 0xca4d: 0x6c23d620, 0xca4f: 0x6c007420,
-	0xca51: 0x6c11b420,
-	0xca54: 0x6c11f420,
-	0xca59: 0x6c162a20, 0xca5a: 0x6c23e020, 0xca5b: 0x6c23dc20,
-	0xca5c: 0x6c0e6c20, 0xca5d: 0x6c0bcc20,
-	0xca60: 0x6c11b620, 0xca62: 0x6c127620,
-	0xca64: 0x6c23e420, 0xca65: 0x6c162020, 0xca66: 0x6c057e20, 0xca67: 0x6c23e620,
-	0xca69: 0x6c23e220, 0xca6a: 0x6c120c20, 0xca6b: 0x6c23e820,
-	0xca6d: 0x6c23ea20,
-	0xca70: 0x6c007620, 0xca73: 0x6c0af420,
-	0xca74: 0x6c23f420, 0xca76: 0x6c23ee20, 0xca77: 0x6c10c220,
-	0xca78: 0x6c23ec20,
-	0xca7f: 0x6c03b820,
-	// Block 0x32a, offset 0xca80
-	0xca82: 0x6c23fa20,
-	0xca86: 0x6c23f020, 0xca87: 0x6c23f220,
-	0xca89: 0x6c23f820, 0xca8a: 0x6c23f620, 0xca8b: 0x6c126620,
-	0xca8e: 0x6c0cc020, 0xca8f: 0x6c0cbe20,
-	0xca91: 0x6c03ea20,
-	0xca94: 0x6c23fc20,
-	0xca9a: 0x6c23fe20,
-	0xca9d: 0x6c240020,
-	0xcaa3: 0x6c240420,
-	0xcaa5: 0x6c240220,
-	0xcaab: 0x6c012820,
-	0xcab1: 0x6c241420, 0xcab2: 0x6c123020, 0xcab3: 0x6c240820,
-	0xcab5: 0x6c240c20,
-	0xcab8: 0x6c241020, 0xcab9: 0x6c0b4020,
-	0xcabc: 0x6c241220, 0xcabd: 0x6c240e20, 0xcabe: 0x6c091020,
-	// Block 0x32b, offset 0xcac0
-	0xcac2: 0x6c240620, 0xcac3: 0x6c240a20,
-	0xcac5: 0x6c12a020, 0xcac7: 0x6c0a9a20,
-	0xcaca: 0x6c241820,
-	0xcacd: 0x6c241620,
-	0xcad2: 0x6c241a20,
-	0xcad4: 0x6c08dc20, 0xcad5: 0x6c077620,
-	0xcad8: 0x6c101a20, 0xcad9: 0x6c241c20, 0xcadb: 0x6c0f0620,
-	0xcade: 0x6c242020,
-	0xcae2: 0x6c160a20, 0xcae3: 0x6c241e20,
-	0xcae9: 0x6c0d0e20,
-	0xcaf0: 0x6c242a20, 0xcaf2: 0x6c242e20, 0xcaf3: 0x6c243020,
-	0xcaf4: 0x6c0e5c20,
-	0xcafa: 0x6c242c20,
-	0xcafc: 0x6c242620, 0xcafe: 0x6c242220, 0xcaff: 0x6c242420,
-	// Block 0x32c, offset 0xcb00
-	0xcb01: 0x6c242820,
-	0xcb09: 0x6c243620, 0xcb0b: 0x6c243220,
-	0xcb0d: 0x6c243420,
-	0xcb1f: 0x6c243820,
-	0xcb20: 0x6c243c20, 0xcb21: 0x6c243e20, 0xcb22: 0x6c244020,
-	0xcb24: 0x6c244220, 0xcb27: 0x6c243a20,
-	0xcb30: 0x6c244620,
-	0xcb34: 0x6c244420,
-	0xcb3b: 0x6c244820,
-	// Block 0x32d, offset 0xcb40
-	0xcb42: 0x6c165220,
-	0xcb46: 0x6c244e20, 0xcb47: 0x6c244a20,
-	0xcb48: 0x6c244c20,
-	0xcb4c: 0x6c037420,
-	0xcb52: 0x6c154c20,
-	0xcb56: 0x6c136c20,
-	0xcb58: 0x6c245220,
-	0xcb5c: 0x6c245020,
-	0xcb61: 0x6c245420, 0xcb62: 0x6c245620,
-	0xcb67: 0x6c245e20,
-	0xcb68: 0x6c245820, 0xcb69: 0x6c245a20, 0xcb6a: 0x6c245c20,
-	0xcb6c: 0x6c246020,
-	0xcb70: 0x6c246220, 0xcb72: 0x6c246420,
-	0xcb76: 0x6c246620,
-	0xcb78: 0x6c246820, 0xcb7a: 0x6c11be20, 0xcb7b: 0x6c0fcc20,
-	0xcb7c: 0x6c246a20, 0xcb7d: 0x6c118820, 0xcb7e: 0x6c128420,
-	// Block 0x32e, offset 0xcb80
-	0xcb80: 0x6c246c20, 0xcb83: 0x6c246e20,
-	0xcb84: 0x6c0f8020, 0xcb86: 0x6c024220, 0xcb87: 0x6c06e420,
-	0xcb88: 0x6c247020, 0xcb8b: 0x6c247220,
-	0xcb8e: 0x6c247420,
-	0xcb90: 0x6c082620, 0xcb93: 0x6c247820,
-	0xcb96: 0x6c247620,
-	0xcb99: 0x6c247a20, 0xcb9a: 0x6c247c20,
-	0xcbae: 0x6c123220,
-	0xcbb0: 0x6c247e20,
-	0xcbb4: 0x6c248020, 0xcbb7: 0x6c317020,
-	0xcbb8: 0x6c248220, 0xcbb9: 0x6c248420, 0xcbba: 0x6c248620,
-	0xcbbf: 0x6c083020,
-	// Block 0x32f, offset 0xcbc0
-	0xcbc2: 0x6c248820, 0xcbc3: 0x6c115020,
-	0xcbc6: 0x6c145220,
-	0xcbc8: 0x6c011820, 0xcbca: 0x6c012a20,
-	0xcbcd: 0x6c248a20,
-	0xcbd2: 0x6c248e20,
-	0xcbd6: 0x6c248c20, 0xcbd7: 0x6c100c20,
-	0xcbdb: 0x6c0bf220,
-	0xcbdc: 0x6c20e820, 0xcbde: 0x6c249020, 0xcbdf: 0x6c14d220,
-	0xcbe1: 0x6c249220, 0xcbe3: 0x6c033c20,
-	0xcbe4: 0x6c120e20, 0xcbe5: 0x6c249420, 0xcbe7: 0x6c249620,
-	0xcbea: 0x6c249820,
-	0xcbee: 0x6c150820,
-	0xcbf2: 0x6c14fa20,
-	0xcbf4: 0x6c0eec20,
-	0xcbf8: 0x6c0d1020, 0xcbfb: 0x6c249c20,
-	0xcbfe: 0x6c0a1020,
-	// Block 0x330, offset 0xcc00
-	0xcc01: 0x6c0a9c20,
-	0xcc04: 0x6c24a220, 0xcc07: 0x6c24a020,
-	0xcc08: 0x6c249e20, 0xcc09: 0x6c125a20, 0xcc0b: 0x6c033e20,
-	0xcc0c: 0x6c05f220,
-	0xcc1b: 0x6c24ae20,
-	0xcc1e: 0x6c24a820, 0xcc1f: 0x6c0b4220,
-	0xcc20: 0x6c14b420,
-	0xcc24: 0x6c24a620, 0xcc25: 0x6c24aa20, 0xcc26: 0x6c24ac20,
-	0xcc29: 0x6c24a420,
-	0xcc37: 0x6c24b020,
-	0xcc38: 0x6c24b220, 0xcc3a: 0x6c0ece20,
-	0xcc3c: 0x6c037620,
-	// Block 0x331, offset 0xcc40
-	0xcc40: 0x6c0e7e20,
-	0xcc47: 0x6c24b420,
-	0xcc5a: 0x6c24b620, 0xcc5b: 0x6c24bc20,
-	0xcc61: 0x6c0b9220, 0xcc63: 0x6c107020,
-	0xcc65: 0x6c24be20, 0xcc66: 0x6c143a20,
-	0xcc68: 0x6c24b820, 0xcc6b: 0x6c24ba20,
-	0xcc79: 0x6c24c420,
-	0xcc7e: 0x6c24c220, 0xcc7f: 0x6c24c020,
-	// Block 0x332, offset 0xcc80
-	0xcc8b: 0x6c24c820,
-	0xcc8e: 0x6c24c620,
-	0xcc91: 0x6c24ca20,
-	0xcc9e: 0x6c24ce20,
-	0xcca0: 0x6c24cc20,
-	0xcca5: 0x6c137220,
-	0xccac: 0x6c09f820, 0xccad: 0x6c165420,
-	0xccb0: 0x6c24d020, 0xccb3: 0x6c105620,
-	0xccb6: 0x6c24d220,
-	0xccb9: 0x6c24d420, 0xccbb: 0x6c24dc20,
-	0xccbc: 0x6c24d820, 0xccbd: 0x6c24da20, 0xccbf: 0x6c24d620,
-	// Block 0x333, offset 0xccc0
-	0xccc7: 0x6c24de20,
-	0xcccd: 0x6c24e020,
-	0xccd7: 0x6c24e220,
-	0xccda: 0x6c24e420, 0xccdb: 0x6c14be20,
-	0xccdc: 0x6c24e620,
-	0xcce2: 0x6c153020, 0xcce3: 0x6c24e820,
-	0xcce5: 0x6c0e5020, 0xcce7: 0x6c117820,
-	0xcce9: 0x6c04fe20,
-	0xcced: 0x6c0e2a20, 0xccee: 0x6c24ea20, 0xccef: 0x6c049c20,
-	0xccf3: 0x6c0c2020,
-	0xccfc: 0x6c24ec20,
-	// Block 0x334, offset 0xcd00
-	0xcd02: 0x6c079220,
-	0xcd0c: 0x6c24ee20,
-	0xcd12: 0x6c24f020,
-	0xcd14: 0x6c05ec20, 0xcd15: 0x6c07c220,
-	0xcd20: 0x6c24f420,
-	0xcd25: 0x6c0fd820, 0xcd26: 0x6c07c420, 0xcd27: 0x6c040820,
-	0xcd32: 0x6c13dc20,
-	0xcd34: 0x6c113a20,
-	0xcd3a: 0x6c0fda20,
-	0xcd3f: 0x6c071420,
-	// Block 0x335, offset 0xcd40
-	0xcd45: 0x6c24f820,
-	0xcd5d: 0x6c0a9e20,
-	0xcd6b: 0x6c162c20,
-	0xcd6c: 0x6c06e620, 0xcd6f: 0x6c05ee20,
-	0xcd72: 0x6c11a620,
-	0xcd74: 0x6c24fc20,
-	0xcd7c: 0x6c250020,
-	// Block 0x336, offset 0xcd80
-	0xcd81: 0x6c067620,
-	0xcd86: 0x6c24fe20, 0xcd87: 0x6c0f5c20,
-	0xcd8c: 0x6c250420, 0xcd8d: 0x6c026220, 0xcd8e: 0x6c24fa20,
-	0xcd91: 0x6c123420, 0xcd93: 0x6c00dc20,
-	0xcd95: 0x6c07f020, 0xcd97: 0x6c172820,
-	0xcd9a: 0x6c250220,
-	0xcda3: 0x6c250620,
-	0xcda7: 0x6c136e20,
-	0xcda9: 0x6c0c3220, 0xcdaa: 0x6c250a20,
-	0xcdaf: 0x6c250c20,
-	0xcdb5: 0x6c250820,
-	0xcdba: 0x6c029020,
-	0xcdbc: 0x6c251820, 0xcdbe: 0x6c251620,
-	// Block 0x337, offset 0xcdc0
-	0xcdc1: 0x6c08de20,
-	0xcdc5: 0x6c251a20, 0xcdc6: 0x6c251020,
-	0xcdca: 0x6c251c20, 0xcdcb: 0x6c251220,
-	0xcdd0: 0x6c121020, 0xcdd1: 0x6c250e20,
-	0xcdd4: 0x6c251420,
-	0xcdda: 0x6c252220,
-	0xcde7: 0x6c252020,
-	0xcde8: 0x6c145620,
-	0xcdec: 0x6c251e20, 0xcdef: 0x6c009620,
-	0xcdf4: 0x6c252620,
-	0xcdfd: 0x6c252420,
-	// Block 0x338, offset 0xce00
-	0xce01: 0x6c0aa020,
-	0xce07: 0x6c252820,
-	0xce0e: 0x6c0cc220,
-	0xce11: 0x6c252c20, 0xce12: 0x6c252a20,
-	0xce19: 0x6c252e20,
-	0xce26: 0x6c24f220,
-	0xce2a: 0x6c24f620, 0xce2b: 0x6c253220,
-	0xce2c: 0x6c253020,
-	0xce3a: 0x6c08e020,
-	0xce3c: 0x6c169a20, 0xce3e: 0x6c093420,
-	// Block 0x339, offset 0xce40
-	0xce40: 0x6c253420, 0xce41: 0x6c055220,
-	0xce47: 0x6c03ec20,
-	0xce48: 0x6c03ba20, 0xce49: 0x6c089a20,
-	0xce50: 0x6c157420, 0xce53: 0x6c254020,
-	0xce55: 0x6c253e20, 0xce56: 0x6c0cc420, 0xce57: 0x6c253820,
-	0xce5a: 0x6c253c20,
-	0xce5d: 0x6c09e220, 0xce5e: 0x6c0b4420, 0xce5f: 0x6c253a20,
-	0xce60: 0x6c253620, 0xce62: 0x6c10f820,
-	0xce65: 0x6c0aa220,
-	0xce68: 0x6c129420,
-	0xce6d: 0x6c07c620,
-	0xce77: 0x6c101c20,
-	0xce7a: 0x6c254220,
-	0xce7f: 0x6c254420,
-	// Block 0x33a, offset 0xce80
-	0xce80: 0x6c257020, 0xce81: 0x6c04d820,
-	0xce84: 0x6c16fe20, 0xce85: 0x6c0ca620,
-	0xce8a: 0x6c254620,
-	0xce8d: 0x6c01dc20, 0xce8e: 0x6c0f5e20, 0xce8f: 0x6c131a20,
-	0xce9d: 0x6c254820,
-	0xcea6: 0x6c046020, 0xcea7: 0x6c254a20,
-	0xceaa: 0x6c254e20,
-	0xceae: 0x6c255020,
-	0xceb0: 0x6c10f620, 0xceb3: 0x6c255220,
-	0xceb9: 0x6c255420, 0xceba: 0x6c255620,
-	0xcebd: 0x6c04da20, 0xcebe: 0x6c01de20, 0xcebf: 0x6c107220,
-	// Block 0x33b, offset 0xcec0
-	0xcec0: 0x6c099c20, 0xcec1: 0x6c089c20,
-	0xcec9: 0x6c255820, 0xcecb: 0x6c099e20,
-	0xced1: 0x6c01cc20, 0xced2: 0x6c12a220,
-	0xced5: 0x6c255a20,
-	0xced8: 0x6c123620,
-	0xcedf: 0x6c0cc620,
-	0xcee1: 0x6c256020, 0xcee3: 0x6c256220,
-	0xcee4: 0x6c117620, 0xcee6: 0x6c0b4620, 0xcee7: 0x6c255c20,
-	0xcee9: 0x6c0e7620,
-	0xceec: 0x6c255e20,
-	0xcef0: 0x6c0aa420,
-	0xcefb: 0x6c007820,
-	// Block 0x33c, offset 0xcf00
-	0xcf00: 0x6c03be20,
-	0xcf08: 0x6c256420, 0xcf0b: 0x6c0f6020,
-	0xcf0d: 0x6c256620, 0xcf0e: 0x6c0c0e20,
-	0xcf14: 0x6c14aa20, 0xcf17: 0x6c126220,
-	0xcf18: 0x6c256820, 0xcf19: 0x6c256a20, 0xcf1a: 0x6c0e5e20,
-	0xcf1c: 0x6c165620, 0xcf1f: 0x6c256e20,
-	0xcf20: 0x6c256c20,
-	0xcf2e: 0x6c096e20,
-	0xcf31: 0x6c257220, 0xcf32: 0x6c00a020,
-	0xcf37: 0x6c257820,
-	0xcf3b: 0x6c257420,
-	0xcf3c: 0x6c01e020, 0xcf3d: 0x6c058020, 0xcf3e: 0x6c257620, 0xcf3f: 0x6c06e820,
-	// Block 0x33d, offset 0xcf40
-	0xcf40: 0x6c074020, 0xcf42: 0x6c13a420, 0xcf43: 0x6c257a20,
-	0xcf46: 0x6c143c20,
-	0xcf49: 0x6c257e20,
-	0xcf4d: 0x6c0c2220, 0xcf4e: 0x6c011a20, 0xcf4f: 0x6c01ac20,
-	0xcf50: 0x6c001820,
-	0xcf57: 0x6c257c20,
-	0xcf61: 0x6c258020, 0xcf62: 0x6c258220, 0xcf63: 0x6c0af620,
-	0xcf69: 0x6c258420, 0xcf6b: 0x6c029220,
-	0xcf70: 0x6c258820,
-	0xcf74: 0x6c05b820, 0xcf76: 0x6c043820,
-	0xcf79: 0x6c258a20, 0xcf7a: 0x6c051220,
-	0xcf7d: 0x6c258c20, 0xcf7f: 0x6c0c7820,
-	// Block 0x33e, offset 0xcf80
-	0xcf81: 0x6c108220, 0xcf83: 0x6c0c4020,
-	0xcf84: 0x6c080220,
-	0xcf88: 0x6c258e20,
-	0xcf92: 0x6c0e7820, 0xcf93: 0x6c0d1220,
-	0xcf95: 0x6c259220, 0xcf96: 0x6c259620, 0xcf97: 0x6c259020,
-	0xcf98: 0x6c259420,
-	0xcf9f: 0x6c052820,
-	0xcfa9: 0x6c259820, 0xcfaa: 0x6c053020,
-	0xcfae: 0x6c043a20, 0xcfaf: 0x6c15b020,
-	0xcfb0: 0x6c259c20,
-	0xcfb6: 0x6c259e20,
-	0xcfba: 0x6c00d820,
-	0xcfbf: 0x6c25a420,
-	// Block 0x33f, offset 0xcfc0
-	0xcfc3: 0x6c02e020,
-	0xcfc4: 0x6c25a220, 0xcfc5: 0x6c25a020, 0xcfc7: 0x6c25a820,
-	0xcfc8: 0x6c259a20, 0xcfca: 0x6c25aa20, 0xcfcb: 0x6c161a20,
-	0xcfcd: 0x6c25ac20, 0xcfcf: 0x6c25ae20,
-	0xcfd2: 0x6c1ac220, 0xcfd3: 0x6c25b220,
-	0xcfd5: 0x6c25b020,
-	0xcfd9: 0x6c25b420, 0xcfda: 0x6c25b620,
-	0xcfdc: 0x6c163220, 0xcfdd: 0x6c25b820, 0xcfdf: 0x6c2f4820,
-	0xcfe0: 0x6c0aa620, 0xcfe1: 0x6c25ba20, 0xcfe2: 0x6c25bc20, 0xcfe3: 0x6c09fa20,
-	0xcfe5: 0x6c105820, 0xcfe6: 0x6c25be20,
-	0xcfea: 0x6c0e0420,
-	0xcfed: 0x6c25c020, 0xcfef: 0x6c0e2c20,
-	0xcff0: 0x6c25c220,
-	0xcff6: 0x6c047220,
-	0xcff8: 0x6c182420, 0xcff9: 0x6c0e6e20, 0xcffa: 0x6c08f620,
-	0xcfff: 0x6c034020,
-	// Block 0x340, offset 0xd000
-	0xd002: 0x6c25c420,
-	0xd004: 0x6c25de20, 0xd006: 0x6c25ca20,
-	0xd008: 0x6c043c20, 0xd00a: 0x6c25c820, 0xd00b: 0x6c25e220,
-	0xd00f: 0x6c25c620,
-	0xd011: 0x6c0aa820,
-	0xd018: 0x6c25ce20, 0xd019: 0x6c25d020, 0xd01b: 0x6c0f8220,
-	0xd01e: 0x6c25d220,
-	0xd020: 0x6c02b020,
-	0xd025: 0x6c0b7820, 0xd026: 0x6c12e420,
-	0xd028: 0x6c25d620,
-	0xd02c: 0x6c0dc820,
-	0xd033: 0x6c25cc20,
-	0xd035: 0x6c25d420, 0xd036: 0x6c25d820,
-	0xd039: 0x6c080e20,
-	// Block 0x341, offset 0xd040
-	0xd045: 0x6c25e620, 0xd046: 0x6c127820,
-	0xd048: 0x6c11ac20, 0xd049: 0x6c101e20, 0xd04b: 0x6c04dc20,
-	0xd04c: 0x6c25e420, 0xd04d: 0x6c25e020, 0xd04f: 0x6c11ca20,
-	0xd050: 0x6c25da20, 0xd051: 0x6c0e7020, 0xd052: 0x6c102220,
-	0xd054: 0x6c102020, 0xd056: 0x6c080420,
-	0xd05d: 0x6c260a20,
-	0xd065: 0x6c25ea20, 0xd067: 0x6c25ee20,
-	0xd06c: 0x6c25f420, 0xd06e: 0x6c25f620,
-	0xd070: 0x6c25f020, 0xd071: 0x6c25f220,
-	0xd074: 0x6c25ec20, 0xd075: 0x6c25e820,
-	0xd07a: 0x6c25dc20,
-	// Block 0x342, offset 0xd080
-	0xd086: 0x6c137620, 0xd087: 0x6c01e220,
-	0xd08b: 0x6c260420,
-	0xd08d: 0x6c25fe20, 0xd08f: 0x6c260820,
-	0xd092: 0x6c260620,
-	0xd094: 0x6c118a20, 0xd095: 0x6c149e20, 0xd097: 0x6c084a20,
-	0xd098: 0x6c25fa20, 0xd099: 0x6c260c20, 0xd09a: 0x6c260220,
-	0xd09c: 0x6c260020, 0xd09d: 0x6c25f820, 0xd09f: 0x6c25fc20,
-	0xd0a1: 0x6c034220,
-	0xd0aa: 0x6c0e2e20,
-	0xd0ad: 0x6c0c7a20,
-	0xd0b1: 0x6c11a420,
-	0xd0b4: 0x6c261620,
-	0xd0b8: 0x6c11a820,
-	// Block 0x343, offset 0xd0c0
-	0xd0c0: 0x6c0c4220, 0xd0c1: 0x6c261020,
-	0xd0c4: 0x6c11fe20, 0xd0c6: 0x6c261820, 0xd0c7: 0x6c137e20,
-	0xd0c9: 0x6c0e6a20, 0xd0cb: 0x6c260e20,
-	0xd0cc: 0x6c261220, 0xd0cf: 0x6c261420,
-	0xd0dd: 0x6c261a20,
-	0xd0e0: 0x6c091820,
-	0xd0e4: 0x6c107420, 0xd0e5: 0x6c262420, 0xd0e6: 0x6c262220,
-	0xd0e9: 0x6c261c20,
-	0xd0ed: 0x6c16f020,
-	0xd0f3: 0x6c262e20,
-	0xd0f6: 0x6c263620, 0xd0f7: 0x6c263020,
-	// Block 0x344, offset 0xd100
-	0xd100: 0x6c262820,
-	0xd107: 0x6c262a20,
-	0xd10d: 0x6c263420,
-	0xd111: 0x6c261e20, 0xd112: 0x6c190c20, 0xd113: 0x6c262c20,
-	0xd114: 0x6c262020, 0xd117: 0x6c263220,
-	0xd11f: 0x6c263e20,
-	0xd121: 0x6c034420, 0xd123: 0x6c263820,
-	0xd127: 0x6c263a20,
-	0xd12a: 0x6c263c20, 0xd12b: 0x6c264220,
-	0xd137: 0x6c264020,
-	0xd138: 0x6c124c20,
-	0xd13d: 0x6c264420, 0xd13e: 0x6c16c020, 0xd13f: 0x6c13b220,
-	// Block 0x345, offset 0xd140
-	0xd140: 0x6c264e20, 0xd143: 0x6c264820,
-	0xd14c: 0x6c264620, 0xd14d: 0x6c0c2420, 0xd14f: 0x6c264c20,
-	0xd150: 0x6c265020,
-	0xd154: 0x6c264a20, 0xd156: 0x6c265820,
-	0xd158: 0x6c265220,
-	0xd15f: 0x6c265420,
-	0xd160: 0x6c262620,
-	0xd164: 0x6c265620, 0xd165: 0x6c265a20,
-	0xd16c: 0x6c265c20,
-	0xd173: 0x6c136420,
-	0xd175: 0x6c265e20,
-	0xd17e: 0x6c151420,
-	// Block 0x346, offset 0xd180
-	0xd181: 0x6c04c420, 0xd182: 0x6c053620, 0xd183: 0x6c266020,
-	0xd189: 0x6c134020, 0xd18b: 0x6c0b9420,
-	0xd18d: 0x6c14b020,
-	0xd190: 0x6c266220, 0xd192: 0x6c162e20,
-	0xd195: 0x6c118c20, 0xd197: 0x6c0cc820,
-	0xd198: 0x6c110c20, 0xd19b: 0x6c09e620,
-	0xd19f: 0x6c004020,
-	0xd1a1: 0x6c266c20, 0xd1a2: 0x6c266820,
-	0xd1a4: 0x6c266420, 0xd1a5: 0x6c02f220, 0xd1a7: 0x6c0aaa20,
-	0xd1a8: 0x6c266e20, 0xd1ab: 0x6c266a20,
-	0xd1ad: 0x6c266620, 0xd1ae: 0x6c267620,
-	0xd1b1: 0x6c267420, 0xd1b2: 0x6c267220, 0xd1b3: 0x6c267020,
-	0xd1b9: 0x6c267820,
-	0xd1bd: 0x6c267a20, 0xd1be: 0x6c0bf420,
-	// Block 0x347, offset 0xd1c0
-	0xd1c0: 0x6c267c20, 0xd1c2: 0x6c268020,
-	0xd1c5: 0x6c267e20,
-	0xd1ca: 0x6c064420,
-	0xd1ce: 0x6c0cac20,
-	0xd1d2: 0x6c268420,
-	0xd1d6: 0x6c102420,
-	0xd1d8: 0x6c268220,
-	0xd1dc: 0x6c268620, 0xd1de: 0x6c134220, 0xd1df: 0x6c0d1420,
-	0xd1e0: 0x6c06ea20, 0xd1e2: 0x6c268820,
-	0xd1e7: 0x6c165820,
-	0xd1ef: 0x6c268c20,
-	0xd1f2: 0x6c268e20,
-	0xd1f4: 0x6c269020, 0xd1f6: 0x6c269220,
-	0xd1f8: 0x6c089e20, 0xd1fa: 0x6c269420, 0xd1fb: 0x6c058220,
-	0xd1fe: 0x6c044020,
-	// Block 0x348, offset 0xd200
-	0xd200: 0x6c03c020, 0xd202: 0x6c269820,
-	0xd204: 0x6c153620, 0xd205: 0x6c06ec20, 0xd206: 0x6c269620,
-	0xd20a: 0x6c269e20, 0xd20b: 0x6c151c20,
-	0xd20d: 0x6c111c20,
-	0xd210: 0x6c128220,
-	0xd214: 0x6c0a1220, 0xd215: 0x6c269c20, 0xd217: 0x6c093620,
-	0xd218: 0x6c06ee20, 0xd219: 0x6c08a020, 0xd21a: 0x6c043e20, 0xd21b: 0x6c134420,
-	0xd21c: 0x6c269a20,
-	0xd220: 0x6c0cca20, 0xd221: 0x6c141820, 0xd222: 0x6c080620,
-	0xd22b: 0x6c08a220,
-	0xd22c: 0x6c0f2a20, 0xd22e: 0x6c26a420, 0xd22f: 0x6c168620,
-	0xd230: 0x6c07ca20, 0xd232: 0x6c26a620, 0xd233: 0x6c0b4820,
-	0xd235: 0x6c26aa20,
-	0xd239: 0x6c0aac20, 0xd23a: 0x6c077820,
-	0xd23f: 0x6c26a820,
-	// Block 0x349, offset 0xd240
-	0xd242: 0x6c09a020, 0xd243: 0x6c061c20,
-	0xd244: 0x6c0ccc20, 0xd245: 0x6c26a020, 0xd246: 0x6c26ac20,
-	0xd24b: 0x6c26a220,
-	0xd24c: 0x6c058420, 0xd24e: 0x6c26b220, 0xd24f: 0x6c26ba20,
-	0xd250: 0x6c05ba20,
-	0xd256: 0x6c26b020,
-	0xd25b: 0x6c26c220,
-	0xd25e: 0x6c06f020,
-	0xd261: 0x6c15e620, 0xd262: 0x6c003820, 0xd263: 0x6c26bc20,
-	0xd266: 0x6c044220,
-	0xd268: 0x6c26b620,
-	0xd26e: 0x6c26b820,
-	0xd271: 0x6c102620, 0xd272: 0x6c26b420, 0xd273: 0x6c26ae20,
-	0xd275: 0x6c024420, 0xd276: 0x6c0c4820,
-	0xd279: 0x6c05f020,
-	0xd27d: 0x6c26c620,
-	// Block 0x34a, offset 0xd280
-	0xd289: 0x6c26c020,
-	0xd28f: 0x6c26c420,
-	0xd293: 0x6c26be20,
-	0xd299: 0x6c058620, 0xd29a: 0x6c0d5e20, 0xd29b: 0x6c26c820,
-	0xd29c: 0x6c0d1820, 0xd29f: 0x6c26e220,
-	0xd2a2: 0x6c26da20, 0xd2a3: 0x6c26ce20,
-	0xd2ab: 0x6c26d620,
-	0xd2ac: 0x6c098420, 0xd2ad: 0x6c007a20, 0xd2ae: 0x6c26cc20, 0xd2af: 0x6c26dc20,
-	0xd2b0: 0x6c26e420, 0xd2b1: 0x6c06f220, 0xd2b2: 0x6c14fc20,
-	0xd2b4: 0x6c0f1c20, 0xd2b5: 0x6c26d020,
-	0xd2b8: 0x6c26e020, 0xd2ba: 0x6c26ca20, 0xd2bb: 0x6c0e3020,
-	0xd2bd: 0x6c26d420, 0xd2be: 0x6c003a20, 0xd2bf: 0x6c14e420,
-	// Block 0x34b, offset 0xd2c0
-	0xd2c7: 0x6c26d220,
-	0xd2ca: 0x6c04de20, 0xd2cb: 0x6c123820,
-	0xd2cf: 0x6c0d1620,
-	0xd2d1: 0x6c166820, 0xd2d2: 0x6c0a2a20,
-	0xd2d5: 0x6c273220,
-	0xd2d8: 0x6c26e620, 0xd2da: 0x6c0c7c20,
-	0xd2dc: 0x6c26de20, 0xd2dd: 0x6c26e820, 0xd2de: 0x6c26ec20,
-	0xd2e0: 0x6c0f6220, 0xd2e1: 0x6c26f220,
-	0xd2e4: 0x6c26ea20,
-	0xd2e8: 0x6c138020, 0xd2e9: 0x6c034620,
-	0xd2ec: 0x6c14e620, 0xd2ef: 0x6c007c20,
-	0xd2f2: 0x6c26f020,
-	0xd2f4: 0x6c16c220,
-	0xd2fb: 0x6c26ee20,
-	// Block 0x34c, offset 0xd300
-	0xd301: 0x6c015a20,
-	0xd304: 0x6c10c020, 0xd305: 0x6c26f420,
-	0xd309: 0x6c270220, 0xd30a: 0x6c26f620, 0xd30b: 0x6c270420,
-	0xd312: 0x6c26fc20,
-	0xd31b: 0x6c119a20,
-	0xd31e: 0x6c092420, 0xd31f: 0x6c270020,
-	0xd321: 0x6c26fa20, 0xd322: 0x6c270620, 0xd323: 0x6c26f820,
-	0xd326: 0x6c09d420,
-	0xd32b: 0x6c13de20,
-	0xd32e: 0x6c09e420,
-	0xd331: 0x6c26fe20, 0xd332: 0x6c271620,
-	0xd335: 0x6c270e20, 0xd337: 0x6c271420,
-	0xd339: 0x6c271020, 0xd33a: 0x6c271820, 0xd33b: 0x6c270c20,
-	0xd33d: 0x6c26d820, 0xd33e: 0x6c0c2620,
-	// Block 0x34d, offset 0xd340
-	0xd341: 0x6c11f620, 0xd343: 0x6c271220,
-	0xd346: 0x6c270820,
-	0xd34a: 0x6c0c7e20, 0xd34b: 0x6c058820,
-	0xd34d: 0x6c09a220,
-	0xd354: 0x6c0b0e20, 0xd355: 0x6c0ca820, 0xd356: 0x6c271e20,
-	0xd359: 0x6c272220, 0xd35a: 0x6c272420,
-	0xd35d: 0x6c271c20, 0xd35e: 0x6c272020,
-	0xd366: 0x6c270a20, 0xd367: 0x6c271a20,
-	0xd369: 0x6c272a20, 0xd36a: 0x6c272820,
-	0xd36d: 0x6c148820,
-	0xd370: 0x6c053a20,
-	0xd379: 0x6c272620, 0xd37b: 0x6c272e20,
-	0xd37c: 0x6c272c20, 0xd37d: 0x6c273420, 0xd37f: 0x6c273820,
-	// Block 0x34e, offset 0xd380
-	0xd382: 0x6c084c20, 0xd383: 0x6c273020,
-	0xd388: 0x6c273a20, 0xd389: 0x6c273c20,
-	0xd38c: 0x6c273e20, 0xd38e: 0x6c274a20, 0xd38f: 0x6c0fa220,
-	0xd390: 0x6c274220, 0xd392: 0x6c274020, 0xd393: 0x6c274420,
-	0xd394: 0x6c274620, 0xd396: 0x6c274820,
-	0xd39b: 0x6c274c20,
-	0xd39c: 0x6c274e20,
-	// Block 0x34f, offset 0xd3c0
-	0xd3f6: 0x6c034820,
-	0xd3f8: 0x6c275020, 0xd3fa: 0x6c275220,
-	// Block 0x350, offset 0xd400
-	0xd405: 0x6c275420,
-	0xd40c: 0x6c275620, 0xd40d: 0x6c275820, 0xd40e: 0x6c275a20,
-	0xd410: 0x6c275c20, 0xd411: 0x6c275e20,
-	0xd414: 0x6c276220, 0xd415: 0x6c276020,
-	0xd418: 0x6c276420,
-	0xd41f: 0x6c276620,
-	0xd420: 0x6c276820,
-	0xd427: 0x6c276e20,
-	0xd428: 0x6c276a20, 0xd429: 0x6c276c20, 0xd42a: 0x6c07da20, 0xd42b: 0x6c058a20,
-	0xd42e: 0x6c0e6020,
-	0xd430: 0x6c11c620, 0xd432: 0x6c0a2c20,
-	0xd435: 0x6c113e20, 0xd437: 0x6c123a20,
-	0xd438: 0x6c277020, 0xd439: 0x6c1da420,
-	// Block 0x351, offset 0xd440
-	0xd442: 0x6c277220, 0xd443: 0x6c277620,
-	0xd445: 0x6c15d620, 0xd446: 0x6c277420, 0xd447: 0x6c277a20,
-	0xd448: 0x6c277820, 0xd44a: 0x6c15b220,
-	0xd44c: 0x6c277c20, 0xd44e: 0x6c125c20,
-	0xd454: 0x6c277e20,
-	0xd45a: 0x6c278420,
-	0xd45d: 0x6c278220, 0xd45e: 0x6c278020,
-	0xd463: 0x6c278620,
-	0xd464: 0x6c054820,
-	0xd468: 0x6c0c8020, 0xd469: 0x6c03ee20,
-	0xd46e: 0x6c278e20, 0xd46f: 0x6c278820,
-	0xd472: 0x6c278a20,
-	0xd476: 0x6c279020,
-	0xd478: 0x6c279220, 0xd479: 0x6c278c20,
-	0xd47d: 0x6c00ce20,
-	// Block 0x352, offset 0xd480
-	0xd481: 0x6c018620,
-	0xd485: 0x6c279620, 0xd486: 0x6c279820,
-	0xd48a: 0x6c279a20,
-	0xd48c: 0x6c15d020,
-	0xd492: 0x6c09a420,
-	0xd494: 0x6c279e20, 0xd495: 0x6c279c20,
-	0xd4a0: 0x6c0b9620, 0xd4a1: 0x6c27a020,
-	0xd4a6: 0x6c27a220,
-	0xd4a9: 0x6c27a420, 0xd4ab: 0x6c037a20,
-	0xd4b0: 0x6c034a20, 0xd4b3: 0x6c27a620,
-	0xd4b9: 0x6c27a820, 0xd4bb: 0x6c144e20,
-	0xd4bc: 0x6c15d220,
-	// Block 0x353, offset 0xd4c0
-	0xd4c0: 0x6c15b420, 0xd4c1: 0x6c16f220, 0xd4c3: 0x6c06f620,
-	0xd4c4: 0x6c27ae20, 0xd4c5: 0x6c093820, 0xd4c6: 0x6c27ac20,
-	0xd4cb: 0x6c27b020,
-	0xd4cc: 0x6c08e220,
-	0xd4d0: 0x6c0d9a20, 0xd4d2: 0x6c27b220,
-	0xd4d5: 0x6c06f420, 0xd4d7: 0x6c14fe20,
-	0xd4d8: 0x6c27b420, 0xd4d9: 0x6c27b620,
-	0xd4dc: 0x6c27b820,
-	0xd4e1: 0x6c27ba20,
-	0xd4e8: 0x6c27bc20,
-	0xd4f3: 0x6c08e420,
-	0xd4f6: 0x6c152a20,
-	0xd4fb: 0x6c27c020,
-	0xd4fd: 0x6c0e3220, 0xd4ff: 0x6c27be20,
-	// Block 0x354, offset 0xd500
-	0xd506: 0x6c27c420,
-	0xd50a: 0x6c27c220,
-	0xd512: 0x6c27c620,
-	0xd516: 0x6c0bf620,
-	0xd518: 0x6c27c820, 0xd51a: 0x6c27ca20,
-	0xd51e: 0x6c134a20, 0xd51f: 0x6c27cc20,
-	0xd521: 0x6c0d1a20, 0xd522: 0x6c27ce20,
-	0xd528: 0x6c27d020,
-	0xd52f: 0x6c16c420,
-	0xd530: 0x6c27d620, 0xd532: 0x6c27d420, 0xd533: 0x6c27d220,
-	0xd534: 0x6c0ed020, 0xd536: 0x6c27d820, 0xd537: 0x6c0b1020,
-	0xd539: 0x6c27da20,
-	0xd53d: 0x6c27dc20, 0xd53e: 0x6c16f420, 0xd53f: 0x6c27de20,
-	// Block 0x355, offset 0xd540
-	0xd544: 0x6c27e020, 0xd545: 0x6c27e420, 0xd546: 0x6c27e220, 0xd547: 0x6c11aa20,
-	0xd549: 0x6c10da20, 0xd54b: 0x6c170020,
-	0xd54c: 0x6c11b220,
-	0xd553: 0x6c27e820,
-	0xd556: 0x6c0aae20,
-	0xd558: 0x6c127020, 0xd55a: 0x6c27ea20, 0xd55b: 0x6c27e620,
-	0xd55d: 0x6c034c20,
-	0xd561: 0x6c064820, 0xd562: 0x6c08a420,
-	0xd565: 0x6c123c20,
-	0xd569: 0x6c05f420, 0xd56a: 0x6c141a20,
-	0xd56c: 0x6c27f020, 0xd56d: 0x6c27ec20, 0xd56f: 0x6c06f820,
-	0xd571: 0x6c06fa20, 0xd572: 0x6c009220,
-	0xd574: 0x6c07e820,
-	0xd57a: 0x6c115620,
-	// Block 0x356, offset 0xd580
-	0xd583: 0x6c007e20,
-	0xd584: 0x6c27fa20, 0xd586: 0x6c0e3420,
-	0xd58c: 0x6c115420, 0xd58e: 0x6c0dae20,
-	0xd596: 0x6c27fe20,
-	0xd599: 0x6c27f620, 0xd59a: 0x6c27fc20, 0xd59b: 0x6c27f220,
-	0xd59d: 0x6c27f820, 0xd59e: 0x6c13e020,
-	0xd5a1: 0x6c064a20,
-	0xd5a4: 0x6c00ba20, 0xd5a5: 0x6c27f420,
-	0xd5af: 0x6c280220,
-	0xd5b1: 0x6c280420,
-	0xd5b4: 0x6c105a20,
-	0xd5b8: 0x6c049e20,
-	0xd5bc: 0x6c281a20, 0xd5bd: 0x6c111e20,
-	// Block 0x357, offset 0xd5c0
-	0xd5c2: 0x6c08a620,
-	0xd5c5: 0x6c04a020, 0xd5c6: 0x6c0c1020, 0xd5c7: 0x6c171020,
-	0xd5c8: 0x6c14ac20, 0xd5c9: 0x6c280020, 0xd5ca: 0x6c0c2820,
-	0xd5da: 0x6c041220, 0xd5db: 0x6c280620,
-	0xd5e3: 0x6c280a20,
-	0xd5e9: 0x6c280820,
-	0xd5ef: 0x6c280c20,
-	0xd5f1: 0x6c0e0020, 0xd5f3: 0x6c112020,
-	0xd5f9: 0x6c0ed220,
-	0xd5fe: 0x6c281420,
-	// Block 0x358, offset 0xd600
-	0xd606: 0x6c281220,
-	0xd60b: 0x6c280e20,
-	0xd60e: 0x6c0b6e20,
-	0xd610: 0x6c12e620, 0xd611: 0x6c281820, 0xd613: 0x6c281620,
-	0xd614: 0x6c06fc20, 0xd615: 0x6c172a20,
-	0xd61f: 0x6c283820,
-	0xd625: 0x6c282020, 0xd626: 0x6c282220,
-	0xd62b: 0x6c097020,
-	0xd62e: 0x6c281e20,
-	0xd630: 0x6c074c20, 0xd631: 0x6c281c20,
-	0xd634: 0x6c282420,
-	0xd638: 0x6c0ed420, 0xd639: 0x6c131c20, 0xd63a: 0x6c0c8220,
-	0xd63f: 0x6c0db020,
-	// Block 0x359, offset 0xd640
-	0xd640: 0x6c282c20, 0xd642: 0x6c282e20, 0xd643: 0x6c282620,
-	0xd648: 0x6c282820, 0xd64a: 0x6c282a20,
-	0xd64f: 0x6c06fe20,
-	0xd653: 0x6c283a20,
-	0xd655: 0x6c283220,
-	0xd65a: 0x6c12e820,
-	0xd65c: 0x6c146c20, 0xd65d: 0x6c126c20,
-	0xd660: 0x6c283020, 0xd663: 0x6c283620,
-	0xd664: 0x6c283420,
-	0xd668: 0x6c141c20, 0xd669: 0x6c283c20,
-	0xd670: 0x6c283e20, 0xd673: 0x6c0caa20,
-	0xd675: 0x6c284020,
-	0xd678: 0x6c284420, 0xd67a: 0x6c284c20,
-	0xd67d: 0x6c284620, 0xd67e: 0x6c284220, 0xd67f: 0x6c112220,
-	// Block 0x35a, offset 0xd680
-	0xd680: 0x6c284820, 0xd682: 0x6c284a20,
-	0xd686: 0x6c019c20,
-	0xd688: 0x6c285820, 0xd689: 0x6c284e20,
-	0xd68d: 0x6c285020,
-	0xd691: 0x6c285220, 0xd693: 0x6c0d3a20,
-	0xd698: 0x6c285620, 0xd699: 0x6c285420, 0xd69a: 0x6c285a20,
-	0xd69f: 0x6c285c20,
-	0xd6a0: 0x6c285e20, 0xd6a3: 0x6c0b4a20,
-	0xd6a5: 0x6c020a20, 0xd6a7: 0x6c286020,
-	0xd6a8: 0x6c167620, 0xd6aa: 0x6c08e620,
-	0xd6ad: 0x6c09a620,
-	0xd6b3: 0x6c08a820,
-	0xd6b4: 0x6c0e6220,
-	0xd6ba: 0x6c286220, 0xd6bb: 0x6c286420,
-	0xd6bc: 0x6c00de20, 0xd6be: 0x6c286620,
-	// Block 0x35b, offset 0xd6c0
-	0xd6c1: 0x6c286820, 0xd6c2: 0x6c286a20,
-	0xd6c5: 0x6c286c20, 0xd6c7: 0x6c286e20,
-	0xd6c8: 0x6c04a220, 0xd6c9: 0x6c1e9620, 0xd6ca: 0x6c287020,
-	0xd6cc: 0x6c0c4a20, 0xd6cd: 0x6c287220, 0xd6ce: 0x6c092620,
-	0xd6d0: 0x6c287420, 0xd6d2: 0x6c174a20,
-	0xd6d6: 0x6c287620, 0xd6d7: 0x6c139420,
-	0xd6d8: 0x6c036820, 0xd6db: 0x6c0c8420,
-	0xd6dc: 0x6c09fc20, 0xd6de: 0x6c12fe20, 0xd6df: 0x6c09a820,
-	0xd6e9: 0x6c287820, 0xd6ea: 0x6c070020, 0xd6eb: 0x6c287a20,
-	0xd6ec: 0x6c11f820, 0xd6ee: 0x6c289620,
-	0xd6f3: 0x6c287e20,
-	0xd6f5: 0x6c0d8a20, 0xd6f6: 0x6c118e20, 0xd6f7: 0x6c061e20,
-	0xd6f8: 0x6c287c20, 0xd6f9: 0x6c0c8620,
-	// Block 0x35c, offset 0xd700
-	0xd700: 0x6c288020,
-	0xd707: 0x6c0f6420,
-	0xd718: 0x6c288420, 0xd719: 0x6c288220, 0xd71a: 0x6c288820,
-	0xd71d: 0x6c288620, 0xd71f: 0x6c288a20,
-	0xd722: 0x6c288e20,
-	0xd724: 0x6c288c20, 0xd726: 0x6c034e20,
-	0xd728: 0x6c289020, 0xd72a: 0x6c289220, 0xd72b: 0x6c289420,
-	0xd72e: 0x6c077a20, 0xd72f: 0x6c165a20,
-	0xd731: 0x6c289820, 0xd732: 0x6c0b1220,
-	0xd736: 0x6c015c20, 0xd737: 0x6c289a20,
-	0xd738: 0x6c289c20,
-	0xd73e: 0x6c289e20,
-	// Block 0x35d, offset 0xd740
-	0xd74b: 0x6c00a420,
-	0xd74d: 0x6c28a020,
-	0xd752: 0x6c28a220,
-	0xd759: 0x6c12ea20,
-	0xd75d: 0x6c091e20, 0xd75f: 0x6c28a620,
-	0xd765: 0x6c024620, 0xd766: 0x6c002420,
-	0xd76b: 0x6c28a420,
-	0xd76c: 0x6c28aa20, 0xd76d: 0x6c114020, 0xd76f: 0x6c0b4c20,
-	0xd771: 0x6c01e420, 0xd773: 0x6c13e220,
-	0xd778: 0x6c059e20, 0xd779: 0x6c04e020, 0xd77b: 0x6c28a820,
-	0xd77d: 0x6c020c20,
-	// Block 0x35e, offset 0xd780
-	0xd785: 0x6c02f620,
-	0xd791: 0x6c015e20, 0xd792: 0x6c28b220, 0xd793: 0x6c169c20,
-	0xd794: 0x6c0db220, 0xd797: 0x6c12a420,
-	0xd799: 0x6c28ca20, 0xd79b: 0x6c01e620,
-	0xd79c: 0x6c28c620, 0xd79e: 0x6c28c220, 0xd79f: 0x6c28b020,
-	0xd7a1: 0x6c28ac20, 0xd7a3: 0x6c28ae20,
-	0xd7a5: 0x6c095620, 0xd7a6: 0x6c050020, 0xd7a7: 0x6c0ea220,
-	0xd7ab: 0x6c108a20,
-	0xd7b1: 0x6c011e20, 0xd7b3: 0x6c28b620,
-	0xd7b4: 0x6c28b420,
-	0xd7b9: 0x6c28c020, 0xd7ba: 0x6c28b820, 0xd7bb: 0x6c28be20,
-	// Block 0x35f, offset 0xd7c0
-	0xd7c2: 0x6c14f020, 0xd7c3: 0x6c28bc20,
-	0xd7c4: 0x6c01e820, 0xd7c5: 0x6c02ee20, 0xd7c6: 0x6c28c420,
-	0xd7c9: 0x6c28c820,
-	0xd7ce: 0x6c058c20,
-	0xd7d6: 0x6c28d020, 0xd7d7: 0x6c28e220,
-	0xd7d8: 0x6c28e420,
-	0xd7dc: 0x6c001620,
-	0xd7e3: 0x6c28f220,
-	0xd7e8: 0x6c00a220, 0xd7eb: 0x6c28e020,
-	0xd7ef: 0x6c28de20,
-	0xd7f1: 0x6c28d420, 0xd7f2: 0x6c28d220,
-	0xd7f4: 0x6c28ce20, 0xd7f5: 0x6c28cc20, 0xd7f6: 0x6c0e7a20,
-	0xd7f8: 0x6c0dee20, 0xd7f9: 0x6c28d820,
-	// Block 0x360, offset 0xd800
-	0xd800: 0x6c28d620,
-	0xd805: 0x6c28dc20,
-	0xd809: 0x6c0d1c20, 0xd80a: 0x6c058e20,
-	0xd80f: 0x6c00fe20,
-	0xd810: 0x6c28da20, 0xd812: 0x6c070220,
-	0xd818: 0x6c0d1e20,
-	0xd833: 0x6c28fe20,
-	0xd835: 0x6c290020, 0xd837: 0x6c01ea20,
-	0xd83b: 0x6c019420,
-	0xd83c: 0x6c28fa20,
-	// Block 0x361, offset 0xd840
-	0xd845: 0x6c28e620, 0xd847: 0x6c28f620,
-	0xd849: 0x6c290420, 0xd84a: 0x6c28f820,
-	0xd84e: 0x6c28f420,
-	0xd853: 0x6c28ba20,
-	0xd856: 0x6c28f020,
-	0xd85a: 0x6c28e820,
-	0xd85e: 0x6c035020, 0xd85f: 0x6c28ec20,
-	0xd860: 0x6c290220, 0xd862: 0x6c28ee20,
-	0xd868: 0x6c290620, 0xd86a: 0x6c28ea20, 0xd86b: 0x6c119c20,
-	0xd871: 0x6c15de20,
-	0xd875: 0x6c28fc20,
-	0xd87d: 0x6c292820,
-	// Block 0x362, offset 0xd880
-	0xd881: 0x6c291820,
-	0xd885: 0x6c0bba20,
-	0xd88a: 0x6c03f820,
-	0xd88c: 0x6c04e220, 0xd88e: 0x6c290e20,
-	0xd893: 0x6c01ee20,
-	0xd896: 0x6c0ab020,
-	0xd898: 0x6c291420,
-	0xd89c: 0x6c07cc20, 0xd89f: 0x6c0fce20,
-	0xd8a0: 0x6c291e20,
-	0xd8a9: 0x6c13b420, 0xd8ab: 0x6c290c20,
-	0xd8af: 0x6c01ec20,
-	0xd8b0: 0x6c064c20, 0xd8b1: 0x6c126e20, 0xd8b2: 0x6c292020,
-	0xd8b4: 0x6c290820, 0xd8b7: 0x6c291a20,
-	0xd8bb: 0x6c292e20,
-	0xd8bd: 0x6c291020,
-	// Block 0x363, offset 0xd8c0
-	0xd8c3: 0x6c291220,
-	0xd8c4: 0x6c105c20, 0xd8c7: 0x6c291c20,
-	0xd8cb: 0x6c291620,
-	0xd8cc: 0x6c13e420, 0xd8cd: 0x6c292220, 0xd8ce: 0x6c008020,
-	0xd8d3: 0x6c290a20,
-	0xd8e0: 0x6c292620, 0xd8e2: 0x6c292420,
-	0xd8e9: 0x6c117a20, 0xd8ea: 0x6c293220,
-	0xd8ec: 0x6c294820,
-	0xd8f1: 0x6c02f020,
-	0xd8f5: 0x6c294e20,
-	0xd8f8: 0x6c292a20,
-	0xd8fc: 0x6c293420, 0xd8fd: 0x6c15e820,
-	// Block 0x364, offset 0xd900
-	0xd906: 0x6c294620,
-	0xd909: 0x6c15b620,
-	0xd90e: 0x6c161c20,
-	0xd917: 0x6c0ea420,
-	0xd91b: 0x6c02ca20,
-	0xd921: 0x6c130020, 0xd922: 0x6c295220, 0xd923: 0x6c102a20,
-	0xd926: 0x6c002220,
-	0xd929: 0x6c294420, 0xd92b: 0x6c293c20,
-	0xd92c: 0x6c0d2020, 0xd92d: 0x6c293020, 0xd92e: 0x6c294020, 0xd92f: 0x6c294a20,
-	0xd931: 0x6c10fc20,
-	0xd935: 0x6c001420, 0xd937: 0x6c293a20,
-	0xd939: 0x6c294c20, 0xd93a: 0x6c130c20,
-	// Block 0x365, offset 0xd940
-	0xd942: 0x6c294220,
-	0xd944: 0x6c293820,
-	0xd94b: 0x6c0ab220,
-	0xd950: 0x6c09aa20,
-	0xd954: 0x6c08e820,
-	0xd959: 0x6c150020,
-	0xd95c: 0x6c12aa20, 0xd95f: 0x6c295820,
-	0xd961: 0x6c296a20,
-	0xd96d: 0x6c293e20,
-	0xd972: 0x6c02e220,
-	0xd978: 0x6c0af820, 0xd979: 0x6c295420, 0xd97b: 0x6c295e20,
-	0xd97c: 0x6c0d2220, 0xd97f: 0x6c295620,
-	// Block 0x366, offset 0xd980
-	0xd981: 0x6c296420,
-	0xd984: 0x6c0e7220, 0xd986: 0x6c296620,
-	0xd989: 0x6c15b820, 0xd98a: 0x6c295020, 0xd98b: 0x6c026420,
-	0xd98d: 0x6c295c20,
-	0xd990: 0x6c296220, 0xd991: 0x6c14a820,
-	0xd996: 0x6c296820,
-	0xd999: 0x6c295a20, 0xd99a: 0x6c296020,
-	0xd9ac: 0x6c13e620, 0xd9ae: 0x6c16c620,
-	0xd9b4: 0x6c297020,
-	0xd9bc: 0x6c297e20, 0xd9bf: 0x6c296e20,
-	// Block 0x367, offset 0xd9c0
-	0xd9c0: 0x6c091620,
-	0xd9c6: 0x6c292c20,
-	0xd9d1: 0x6c137420, 0xd9d3: 0x6c149420,
-	0xd9d4: 0x6c297c20, 0xd9d5: 0x6c297a20, 0xd9d7: 0x6c297220,
-	0xd9d8: 0x6c297420, 0xd9da: 0x6c00e820,
-	0xd9df: 0x6c297820,
-	0xd9e1: 0x6c296c20,
-	0xd9e6: 0x6c0f1a20,
-	0xd9ec: 0x6c297620, 0xd9ed: 0x6c00bc20,
-	0xd9f5: 0x6c0d3c20,
-	0xd9fd: 0x6c135e20,
-	// Block 0x368, offset 0xda00
-	0xda00: 0x6c298020, 0xda01: 0x6c298820, 0xda03: 0x6c121220,
-	0xda08: 0x6c298620, 0xda09: 0x6c0ab420, 0xda0a: 0x6c092220, 0xda0b: 0x6c298c20,
-	0xda0e: 0x6c04a420,
-	0xda15: 0x6c298e20, 0xda17: 0x6c130e20,
-	0xda18: 0x6c298420, 0xda1a: 0x6c293620,
-	0xda23: 0x6c298220,
-	0xda28: 0x6c172220, 0xda29: 0x6c102c20, 0xda2a: 0x6c130220,
-	0xda2d: 0x6c299c20,
-	0xda37: 0x6c29a820,
-	0xda3e: 0x6c29aa20,
-	// Block 0x369, offset 0xda40
-	0xda40: 0x6c299020,
-	0xda44: 0x6c119020, 0xda47: 0x6c29a420,
-	0xda48: 0x6c299420, 0xda4a: 0x6c299820,
-	0xda50: 0x6c29ac20, 0xda51: 0x6c299620,
-	0xda54: 0x6c299e20, 0xda57: 0x6c016020,
-	0xda59: 0x6c10b220, 0xda5b: 0x6c29a020,
-	0xda5c: 0x6c29a620,
-	0xda64: 0x6c299220, 0xda66: 0x6c0c8820,
-	0xda68: 0x6c299a20, 0xda69: 0x6c082220, 0xda6a: 0x6c0b4e20, 0xda6b: 0x6c054420,
-	0xda6c: 0x6c153820, 0xda6e: 0x6c154220, 0xda6f: 0x6c0a3020,
-	0xda79: 0x6c29b420, 0xda7a: 0x6c29b020,
-	// Block 0x36a, offset 0xda80
-	0xda81: 0x6c172020,
-	0xda89: 0x6c29ae20,
-	0xda8d: 0x6c15f620, 0xda8f: 0x6c29b220,
-	0xda90: 0x6c29b620,
-	0xda95: 0x6c29b820,
-	0xda9c: 0x6c29be20, 0xda9d: 0x6c29ba20,
-	0xdaa4: 0x6c102e20, 0xdaa5: 0x6c29bc20,
-	0xdaa9: 0x6c11fa20, 0xdaaa: 0x6c29a220,
-	0xdab7: 0x6c0a3220,
-	0xdab9: 0x6c29c020, 0xdaba: 0x6c29ca20, 0xdabb: 0x6c0d2420,
-	0xdabe: 0x6c29c820,
-	// Block 0x36b, offset 0xdac0
-	0xdac2: 0x6c298a20,
-	0xdac6: 0x6c29cc20, 0xdac7: 0x6c0cce20,
-	0xdaca: 0x6c29c220, 0xdacb: 0x6c29c620,
-	0xdad3: 0x6c29c420,
-	0xdad6: 0x6c20d820, 0xdad7: 0x6c20ba20,
-	0xdada: 0x6c29d020,
-	0xdae2: 0x6c29ce20,
-	0xdaed: 0x6c15f820, 0xdaef: 0x6c249a20,
-	0xdaf0: 0x6c29d220,
-	0xdaff: 0x6c29d420,
-	// Block 0x36c, offset 0xdb00
-	0xdb0d: 0x6c29d620, 0xdb0e: 0x6c064e20,
-	0xdb10: 0x6c041420,
-	0xdb14: 0x6c29da20, 0xdb15: 0x6c186020,
-	0xdb1a: 0x6c045620,
-	0xdb1c: 0x6c163c20, 0xdb1e: 0x6c050e20, 0xdb1f: 0x6c29dc20,
-	0xdb27: 0x6c29de20,
-	0xdb2b: 0x6c0e9020,
-	0xdb31: 0x6c29e020,
-	0xdb39: 0x6c10dc20, 0xdb3b: 0x6c003420,
-	// Block 0x36d, offset 0xdb40
-	0xdb4a: 0x6c01fe20, 0xdb4b: 0x6c29ea20,
-	0xdb4c: 0x6c29ec20,
-	0xdb53: 0x6c29e220,
-	0xdb55: 0x6c084e20,
-	0xdb63: 0x6c29e420,
-	0xdb64: 0x6c112820,
-	0xdb69: 0x6c29e620, 0xdb6a: 0x6c29e820, 0xdb6b: 0x6c29fc20,
-	0xdb6f: 0x6c29f020,
-	0xdb70: 0x6c29f620,
-	0xdb76: 0x6c29ee20,
-	// Block 0x36e, offset 0xdb80
-	0xdb84: 0x6c29f220, 0xdb86: 0x6c29f420, 0xdb87: 0x6c094020,
-	0xdb89: 0x6c29f820, 0xdb8b: 0x6c0e3620,
-	0xdb8d: 0x6c059020, 0xdb8e: 0x6c027820,
-	0xdb94: 0x6c29fe20,
-	0xdb99: 0x6c027220, 0xdb9b: 0x6c2a0820,
-	0xdb9e: 0x6c2a0020, 0xdb9f: 0x6c2a0620,
-	0xdba4: 0x6c11d420,
-	0xdba9: 0x6c2a0220,
-	0xdbac: 0x6c2a0420, 0xdbad: 0x6c12ac20, 0xdbae: 0x6c121420, 0xdbaf: 0x6c2a0a20,
-	0xdbb8: 0x6c0df220, 0xdbb9: 0x6c2a1e20, 0xdbbb: 0x6c2a1620,
-	0xdbbe: 0x6c020e20,
-	// Block 0x36f, offset 0xdbc0
-	0xdbc0: 0x6c2a1220, 0xdbc2: 0x6c13e820, 0xdbc3: 0x6c2a1420,
-	0xdbc6: 0x6c2a0e20,
-	0xdbc8: 0x6c2a1020, 0xdbc9: 0x6c2a1a20, 0xdbca: 0x6c2a2020,
-	0xdbcd: 0x6c2a1c20,
-	0xdbd1: 0x6c2a1820, 0xdbd2: 0x6c2a0c20,
-	0xdbd8: 0x6c0e6420, 0xdbda: 0x6c2a2e20,
-	0xdbdc: 0x6c14a420,
-	0xdbe5: 0x6c2a2a20,
-	0xdbe9: 0x6c2a2c20,
-	0xdbf4: 0x6c2a2220, 0xdbf7: 0x6c2a2620,
-	0xdbfb: 0x6c2a2820,
-	0xdbff: 0x6c2a2420,
-	// Block 0x370, offset 0xdc00
-	0xdc09: 0x6c0c4c20, 0xdc0b: 0x6c16f620,
-	0xdc0c: 0x6c2a3620, 0xdc0e: 0x6c2a3820,
-	0xdc13: 0x6c2a4420,
-	0xdc15: 0x6c0b1820, 0xdc17: 0x6c2a3c20,
-	0xdc19: 0x6c2a4220,
-	0xdc1f: 0x6c2a3220,
-	0xdc20: 0x6c2a3020, 0xdc23: 0x6c2a4620,
-	0xdc26: 0x6c01f020,
-	0xdc28: 0x6c2a3e20, 0xdc2a: 0x6c2a4820,
-	0xdc2e: 0x6c2a4020,
-	0xdc34: 0x6c2a3a20, 0xdc36: 0x6c0ed620,
-	0xdc38: 0x6c2a3420,
-	0xdc3f: 0x6c117420,
-	// Block 0x371, offset 0xdc40
-	0xdc42: 0x6c2a5020,
-	0xdc4d: 0x6c158220,
-	0xdc5f: 0x6c2a4e20,
-	0xdc62: 0x6c2a4c20,
-	0xdc6b: 0x6c2a5e20,
-	0xdc6f: 0x6c2a5220,
-	0xdc73: 0x6c2a6220,
-	0xdc7a: 0x6c15d820, 0xdc7b: 0x6c2a6820,
-	0xdc7d: 0x6c2a5620,
-	// Block 0x372, offset 0xdc80
-	0xdc80: 0x6c2a5820,
-	0xdc84: 0x6c2a6020, 0xdc86: 0x6c2a6620, 0xdc87: 0x6c2a6420,
-	0xdc8b: 0x6c2a5420,
-	0xdc90: 0x6c2a5a20, 0xdc92: 0x6c2a7c20,
-	0xdca0: 0x6c2a6e20,
-	0xdcaf: 0x6c2a6a20,
-	0xdcb2: 0x6c2a6c20,
-	0xdcb6: 0x6c2a7620, 0xdcb7: 0x6c2a7820,
-	0xdcb9: 0x6c024820, 0xdcbb: 0x6c03f020,
-	0xdcbe: 0x6c2a7420,
-	// Block 0x373, offset 0xdcc0
-	0xdcc5: 0x6c2a4a20,
-	0xdccd: 0x6c2a7220, 0xdcce: 0x6c2a7a20, 0xdccf: 0x6c2a7020,
-	0xdcd1: 0x6c2a7e20,
-	0xdcd5: 0x6c2a8220, 0xdcd6: 0x6c2a8020,
-	0xdce1: 0x6c2a8620, 0xdce2: 0x6c2a8420, 0xdce3: 0x6c29fa20,
-	0xdce7: 0x6c2a8e20,
-	0xdcf1: 0x6c2a8820,
-	0xdcf6: 0x6c2a8a20,
-	0xdcf9: 0x6c2a8c20, 0xdcfb: 0x6c2a9020,
-	// Block 0x374, offset 0xdd00
-	0xdd00: 0x6c05bc20, 0xdd02: 0x6c2a9420,
-	0xdd04: 0x6c2a9220, 0xdd06: 0x6c09ac20,
-	0xdd0c: 0x6c070420, 0xdd0d: 0x6c218020,
-	0xdd12: 0x6c2a9620, 0xdd13: 0x6c09ee20,
-	0xdd17: 0x6c026620,
-	0xdd19: 0x6c2a9820, 0xdd1b: 0x6c012020,
-	0xdd1d: 0x6c0ab620, 0xdd1e: 0x6c2a9a20,
-	0xdd21: 0x6c070620, 0xdd22: 0x6c2a9c20, 0xdd23: 0x6c008220,
-	0xdd28: 0x6c129620, 0xdd2b: 0x6c2a9e20,
-	0xdd30: 0x6c0b9820, 0xdd32: 0x6c2aac20,
-	0xdd35: 0x6c2aa620, 0xdd37: 0x6c0e9220,
-	0xdd3d: 0x6c2aa820, 0xdd3e: 0x6c2aa220, 0xdd3f: 0x6c04e420,
-	// Block 0x375, offset 0xdd40
-	0xdd41: 0x6c2aa020, 0xdd42: 0x6c2aae20,
-	0xdd48: 0x6c055020, 0xdd4b: 0x6c0db420,
-	0xdd4d: 0x6c2aba20,
-	0xdd52: 0x6c2ab220,
-	0xdd56: 0x6c0d6220, 0xdd57: 0x6c2ab020,
-	0xdd59: 0x6c2ab620,
-	0xdd5e: 0x6c2aa420,
-	0xdd62: 0x6c2ab820,
-	0xdd64: 0x6c2abc20,
-	0xdd6b: 0x6c123e20,
-	0xdd6e: 0x6c2ab420,
-	0xdd70: 0x6c2abe20, 0xdd71: 0x6c2ac220,
-	0xdd74: 0x6c064620, 0xdd75: 0x6c2aaa20, 0xdd77: 0x6c004220,
-	0xdd7f: 0x6c2ac020,
-	// Block 0x376, offset 0xdd80
-	0xdd81: 0x6c07ce20, 0xdd82: 0x6c16b420, 0xdd83: 0x6c2ac420,
-	0xdd84: 0x6c2ac620, 0xdd85: 0x6c0d2620,
-	0xdd8f: 0x6c160c20,
-	0xdd94: 0x6c2ac820, 0xdd95: 0x6c157620,
-	0xdd98: 0x6c2aca20, 0xdd99: 0x6c2acc20,
-	0xdd9c: 0x6c13a020, 0xdd9d: 0x6c2ace20, 0xdd9f: 0x6c079820,
-	0xdda1: 0x6c160e20,
-	0xdda8: 0x6c2ad820,
-	0xddb2: 0x6c2ada20, 0xddb3: 0x6c0ab820,
-	0xddb4: 0x6c2ad620,
-	0xddb8: 0x6c15da20, 0xddb9: 0x6c2ad020,
-	0xddbc: 0x6c2ad420, 0xddbd: 0x6c0bfa20, 0xddbe: 0x6c0bc020,
-	// Block 0x377, offset 0xddc0
-	0xddc2: 0x6c2ad220,
-	0xddc4: 0x6c2adc20, 0xddc7: 0x6c131e20,
-	0xddca: 0x6c2ae020,
-	0xddcc: 0x6c2ade20,
-	0xddd0: 0x6c02cc20, 0xddd2: 0x6c13ea20, 0xddd3: 0x6c2ae220,
-	0xdddd: 0x6c2afa20, 0xddde: 0x6c2ae620,
-	0xdde5: 0x6c2ae820,
-	0xddea: 0x6c2aea20, 0xddeb: 0x6c2aec20,
-	0xddf6: 0x6c2af420,
-	0xddf8: 0x6c2af620, 0xddfb: 0x6c2af220,
-	// Block 0x378, offset 0xde00
-	0xde01: 0x6c2aee20, 0xde03: 0x6c2ae420,
-	0xde04: 0x6c2af020,
-	0xde0c: 0x6c2af820, 0xde0d: 0x6c2ed820,
-	0xde16: 0x6c018820,
-	0xde1e: 0x6c2afe20, 0xde1f: 0x6c04e620,
-	0xde20: 0x6c2afc20,
-	0xde24: 0x6c2b0220, 0xde26: 0x6c2b0020,
-	0xde2a: 0x6c2b0620,
-	0xde2d: 0x6c2b0420, 0xde2f: 0x6c2b0820,
-	0xde32: 0x6c09ae20,
-	0xde34: 0x6c2b0a20, 0xde37: 0x6c2b0c20,
-	0xde3e: 0x6c2b0e20, 0xde3f: 0x6c0bfc20,
-	// Block 0x379, offset 0xde40
-	0xde41: 0x6c15ba20, 0xde43: 0x6c2b1020,
-	0xde46: 0x6c132020, 0xde47: 0x6c113020,
-	0xde48: 0x6c2b1220, 0xde4a: 0x6c2b1420, 0xde4b: 0x6c05f620,
-	0xde4f: 0x6c03c420,
-	0xde53: 0x6c2b1620,
-	0xde56: 0x6c08aa20, 0xde57: 0x6c112620,
-	0xde58: 0x6c2b1820, 0xde5a: 0x6c029420,
-	0xde61: 0x6c2b1a20,
-	0xde66: 0x6c2b1e20, 0xde67: 0x6c15fa20,
-	0xde69: 0x6c2b1c20, 0xde6a: 0x6c0b5020,
-	0xde6c: 0x6c2b2020, 0xde6f: 0x6c2b2220,
-	0xde72: 0x6c2b2420, 0xde73: 0x6c035220,
-	0xde7a: 0x6c2b2620,
-	0xde7d: 0x6c2b2820, 0xde7f: 0x6c2b2a20,
-	// Block 0x37a, offset 0xde80
-	0xde80: 0x6c2b2c20,
-	0xde92: 0x6c029620,
-	0xde9a: 0x6c2b2e20,
-	0xde9c: 0x6c2b3020, 0xde9d: 0x6c2b3220,
-	0xdea3: 0x6c021c20,
-	0xdea6: 0x6c0b1420, 0xdea7: 0x6c2b3420,
-	0xdeb4: 0x6c2b3620,
-	0xdeb8: 0x6c2b3820,
-	// Block 0x37b, offset 0xdec0
-	0xdec0: 0x6c062020, 0xdec2: 0x6c0f6620, 0xdec3: 0x6c2b3a20,
-	0xdec8: 0x6c059220, 0xdeca: 0x6c0b7020,
-	0xdecc: 0x6c2b4020, 0xdece: 0x6c103020,
-	0xded0: 0x6c2b3e20, 0xded3: 0x6c054620,
-	0xded6: 0x6c2b3c20, 0xded7: 0x6c0de620,
-	0xded8: 0x6c03c620, 0xdedb: 0x6c2b4220,
-	0xdedd: 0x6c2b4420, 0xdedf: 0x6c0aba20,
-	0xdee3: 0x6c05be20,
-	0xdee5: 0x6c2b4620,
-	0xdeea: 0x6c13ec20,
-	0xdeed: 0x6c0c3e20,
-	0xdef1: 0x6c045820, 0xdef3: 0x6c153a20,
-	0xdef4: 0x6c0cd020, 0xdef6: 0x6c2b4820,
-	0xdefa: 0x6c0b5220, 0xdefb: 0x6c0e9420,
-	0xdefc: 0x6c0abc20,
-	// Block 0x37c, offset 0xdf00
-	0xdf01: 0x6c2b4a20,
-	0xdf06: 0x6c2b5020,
-	0xdf08: 0x6c2b5220,
-	0xdf10: 0x6c079420, 0xdf11: 0x6c0d7c20, 0xdf12: 0x6c2b4e20,
-	0xdf14: 0x6c0abe20, 0xdf15: 0x6c129820,
-	0xdf1b: 0x6c2b4c20,
-	0xdf1e: 0x6c08ac20,
-	0xdf20: 0x6c012220, 0xdf22: 0x6c2b5a20, 0xdf23: 0x6c059420,
-	0xdf26: 0x6c08b020,
-	0xdf29: 0x6c08ae20, 0xdf2b: 0x6c171e20,
-	0xdf2c: 0x6c2b5820, 0xdf2d: 0x6c2b5620, 0xdf2e: 0x6c0c8a20,
-	0xdf30: 0x6c040620, 0xdf31: 0x6c170a20, 0xdf32: 0x6c026820, 0xdf33: 0x6c0ac020,
-	0xdf3c: 0x6c2b5420,
-	// Block 0x37d, offset 0xdf40
-	0xdf42: 0x6c2b5e20,
-	0xdf44: 0x6c2b6020, 0xdf45: 0x6c2b5c20, 0xdf47: 0x6c065020,
-	0xdf49: 0x6c158c20,
-	0xdf4c: 0x6c08b220, 0xdf4d: 0x6c10f220,
-	0xdf51: 0x6c2b6620, 0xdf53: 0x6c0c0020,
-	0xdf55: 0x6c0e3820,
-	0xdf58: 0x6c157820, 0xdf5a: 0x6c2b6c20,
-	0xdf5e: 0x6c067820,
-	0xdf60: 0x6c0bfe20, 0xdf61: 0x6c2b6420, 0xdf63: 0x6c2b6e20,
-	0xdf64: 0x6c067a20, 0xdf65: 0x6c2b6820, 0xdf66: 0x6c2b6a20,
-	0xdf68: 0x6c2b6220,
-	0xdf6c: 0x6c0c4420, 0xdf6d: 0x6c107a20,
-	0xdf70: 0x6c0e1220, 0xdf72: 0x6c01f220,
-	0xdf79: 0x6c124020,
-	0xdf7c: 0x6c03f220, 0xdf7f: 0x6c0ed820,
-	// Block 0x37e, offset 0xdf80
-	0xdf82: 0x6c2b7420,
-	0xdf84: 0x6c2b7020, 0xdf87: 0x6c0e4c20,
-	0xdf8b: 0x6c0c0220,
-	0xdf8c: 0x6c035420, 0xdf8d: 0x6c2b7220, 0xdf8f: 0x6c0b7a20,
-	0xdf92: 0x6c165c20,
-	0xdf96: 0x6c170420,
-	0xdf9a: 0x6c2b7620, 0xdf9b: 0x6c2b8c20,
-	0xdf9c: 0x6c0eda20, 0xdf9e: 0x6c2b8a20,
-	0xdfa0: 0x6c2b8420, 0xdfa1: 0x6c2b9420, 0xdfa2: 0x6c2b8620,
-	0xdfa4: 0x6c2b7e20, 0xdfa6: 0x6c0f6820, 0xdfa7: 0x6c2b7c20,
-	0xdfab: 0x6c2b7820,
-	0xdfad: 0x6c154e20, 0xdfae: 0x6c08b420,
-	0xdfb1: 0x6c2b8020, 0xdfb3: 0x6c2b7a20,
-	0xdfb7: 0x6c2b8820,
-	0xdfb8: 0x6c0a3420, 0xdfba: 0x6c062220,
-	0xdfbe: 0x6c0dec20,
-	// Block 0x37f, offset 0xdfc0
-	0xdfc0: 0x6c141e20, 0xdfc1: 0x6c013020, 0xdfc2: 0x6c008420,
-	0xdfc4: 0x6c103220, 0xdfc7: 0x6c2b9020,
-	0xdfcc: 0x6c2b8e20, 0xdfce: 0x6c10b420,
-	0xdfd0: 0x6c2b9820,
-	0xdfd4: 0x6c2b8220, 0xdfd6: 0x6c2b9620, 0xdfd7: 0x6c2b9a20,
-	0xdfd9: 0x6c05f820, 0xdfda: 0x6c2b9220, 0xdfdb: 0x6c070820,
-	0xdfdd: 0x6c093a20,
-	0xdfe0: 0x6c2b9c20, 0xdfe1: 0x6c15bc20,
-	0xdfe6: 0x6c2ba220,
-	0xdfe8: 0x6c2ba820, 0xdfeb: 0x6c2ba420,
-	0xdfec: 0x6c128620,
-	0xdff3: 0x6c2b9e20,
-	0xdff9: 0x6c04e820,
-	0xdffe: 0x6c2ba620,
-	// Block 0x380, offset 0xe000
-	0xe001: 0x6c2baa20,
-	0xe009: 0x6c2bb220,
-	0xe00c: 0x6c2bac20, 0xe00e: 0x6c2bb020, 0xe00f: 0x6c2bae20,
-	0xe016: 0x6c2bb420,
-	0xe018: 0x6c08f220, 0xe01a: 0x6c2bb820, 0xe01b: 0x6c2bb620,
-	0xe01c: 0x6c12ec20, 0xe01f: 0x6c2bbc20,
-	0xe026: 0x6c059620,
-	0xe02b: 0x6c2bba20,
-	0xe02c: 0x6c2bbe20, 0xe02f: 0x6c2bc020,
-	0xe030: 0x6c03f420, 0xe031: 0x6c279420, 0xe032: 0x6c0afa20,
-	0xe034: 0x6c2bc220, 0xe037: 0x6c067c20,
-	0xe03d: 0x6c2bc420,
-	// Block 0x381, offset 0xe040
-	0xe040: 0x6c2bc620, 0xe043: 0x6c085020,
-	0xe04a: 0x6c1ede20,
-	0xe04c: 0x6c2bc820, 0xe04e: 0x6c2bca20,
-	0xe050: 0x6c09b020, 0xe052: 0x6c2bcc20, 0xe053: 0x6c2bce20,
-	0xe056: 0x6c2bd020,
-	0xe059: 0x6c2bd220, 0xe05a: 0x6c2bd420,
-	// Block 0x382, offset 0xe080
-	0xe0b7: 0x6c0e0a20,
-	0xe0ba: 0x6c2bd620,
-	0xe0bf: 0x6c2bda20,
-	// Block 0x383, offset 0xe0c0
-	0xe0c1: 0x6c2bd820,
-	0xe0c6: 0x6c103420,
-	0xe0c8: 0x6c2bdc20, 0xe0ca: 0x6c13ee20,
-	0xe0cc: 0x6c2bde20, 0xe0ce: 0x6c2be020,
-	0xe0d0: 0x6c2be220,
-	0xe0d5: 0x6c2be420,
-	0xe0da: 0x6c109c20,
-	0xe0e1: 0x6c0ac220, 0xe0e2: 0x6c2be620,
-	0xe0ea: 0x6c073220, 0xe0eb: 0x6c174620,
-	0xe0ec: 0x6c2be820,
-	0xe0f8: 0x6c2bea20, 0xe0f9: 0x6c129a20, 0xe0fa: 0x6c2bec20,
-	0xe0fc: 0x6c2bfc20,
-	// Block 0x384, offset 0xe100
-	0xe102: 0x6c2bee20,
-	0xe105: 0x6c2bf220,
-	0xe109: 0x6c2bf020, 0xe10a: 0x6c2bf420,
-	0xe10c: 0x6c142020, 0xe10d: 0x6c2bf620, 0xe10e: 0x6c2bf820,
-	0xe114: 0x6c2bfa20,
-	0xe118: 0x6c2bfe20,
-	0xe11d: 0x6c024e20, 0xe11e: 0x6c0f3e20,
-	0xe120: 0x6c12ee20, 0xe121: 0x6c07dc20, 0xe122: 0x6c070a20,
-	0xe127: 0x6c12ba20,
-	0xe128: 0x6c01f620, 0xe129: 0x6c11fc20, 0xe12a: 0x6c2c0420, 0xe12b: 0x6c035620,
-	0xe12c: 0x6c0c2a20, 0xe12d: 0x6c2c0220, 0xe12e: 0x6c2c0c20, 0xe12f: 0x6c0ea620,
-	0xe130: 0x6c151620, 0xe132: 0x6c2c0820, 0xe133: 0x6c2c0a20,
-	0xe134: 0x6c03c820, 0xe136: 0x6c2c0e20, 0xe137: 0x6c116a20,
-	0xe138: 0x6c0db620, 0xe13b: 0x6c124220,
-	0xe13c: 0x6c0fa620, 0xe13d: 0x6c2c0620, 0xe13f: 0x6c142220,
-	// Block 0x385, offset 0xe140
-	0xe140: 0x6c021020, 0xe141: 0x6c2c1220, 0xe142: 0x6c16d420, 0xe143: 0x6c0ef420,
-	0xe144: 0x6c170e20, 0xe147: 0x6c08b620,
-	0xe148: 0x6c2c1020, 0xe14a: 0x6c0d5a20,
-	0xe14d: 0x6c2c3220, 0xe14e: 0x6c0c8c20,
-	0xe151: 0x6c10d820, 0xe153: 0x6c12bc20,
-	0xe15a: 0x6c2c1820, 0xe15b: 0x6c085220,
-	0xe15c: 0x6c08b820, 0xe15e: 0x6c0ac420,
-	0xe160: 0x6c116e20, 0xe162: 0x6c05fa20, 0xe163: 0x6c2c1620,
-	0xe164: 0x6c2c1420, 0xe166: 0x6c12f020,
-	0xe16a: 0x6c091220,
-	0xe16d: 0x6c0fd020,
-	0xe17a: 0x6c2c1c20, 0xe17b: 0x6c2c1e20,
-	0xe17c: 0x6c070c20, 0xe17d: 0x6c2c1a20,
-	// Block 0x386, offset 0xe180
-	0xe184: 0x6c2c2020, 0xe185: 0x6c2c2220, 0xe187: 0x6c2c2620,
-	0xe188: 0x6c0d3e20, 0xe18a: 0x6c2c2420, 0xe18b: 0x6c037c20,
-	0xe18d: 0x6c2c2a20, 0xe18f: 0x6c2c2820,
-	0xe190: 0x6c2c2c20, 0xe193: 0x6c2c3020,
-	0xe194: 0x6c2c3420, 0xe196: 0x6c2c3620,
-	// Block 0x387, offset 0xe1c0
-	0xe1e4: 0x6c0c2c20, 0xe1e6: 0x6c092e20, 0xe1e7: 0x6c2c3820,
-	0xe1eb: 0x6c029820,
-	0xe1ed: 0x6c2c3a20,
-	0xe1f0: 0x6c0d2820, 0xe1f1: 0x6c2c3c20, 0xe1f3: 0x6c2c3e20,
-	0xe1f4: 0x6c12f220, 0xe1f7: 0x6c03ca20,
-	// Block 0x388, offset 0xe200
-	0xe201: 0x6c2c4020,
-	0xe205: 0x6c0edc20,
-	0xe20a: 0x6c013220,
-	0xe219: 0x6c2c4220,
-	0xe223: 0x6c097220,
-	0xe228: 0x6c0bb020,
-	0xe233: 0x6c0d5220,
-	0xe23a: 0x6c2c4820,
-	0xe23e: 0x6c2c4620,
-	// Block 0x389, offset 0xe240
-	0xe242: 0x6c2c4420,
-	0xe24b: 0x6c2c5420,
-	0xe24c: 0x6c2c5020, 0xe24f: 0x6c2c4a20,
-	0xe256: 0x6c2c4e20,
-	0xe25a: 0x6c2c4c20, 0xe25b: 0x6c2c5220,
-	0xe25d: 0x6c045a20, 0xe25f: 0x6c2c5a20,
-	0xe261: 0x6c0c2e20, 0xe263: 0x6c2c5c20,
-	0xe268: 0x6c065220, 0xe26a: 0x6c2c5620, 0xe26b: 0x6c2c5820,
-	0xe26f: 0x6c16d620,
-	0xe273: 0x6c0ede20,
-	0xe275: 0x6c0c8e20,
-	0xe27c: 0x6c2c5e20, 0xe27f: 0x6c2c6420,
-	// Block 0x38a, offset 0xe280
-	0xe288: 0x6c2c6020, 0xe289: 0x6c2c6220, 0xe28a: 0x6c15be20,
-	0xe28f: 0x6c103620,
-	0xe290: 0x6c2c6a20,
-	0xe29d: 0x6c2c6620, 0xe29e: 0x6c2c6820, 0xe29f: 0x6c2c6c20,
-	0xe2aa: 0x6c2c8820,
-	0xe2b0: 0x6c2c7220,
-	0xe2b4: 0x6c2c7420, 0xe2b5: 0x6c2c7020,
-	// Block 0x38b, offset 0xe2c0
-	0xe2c2: 0x6c2c6e20,
-	0xe2c4: 0x6c0f6a20, 0xe2c7: 0x6c2c7820,
-	0xe2c8: 0x6c2c8020, 0xe2c9: 0x6c2c7a20, 0xe2ca: 0x6c2c7620,
-	0xe2cc: 0x6c2c7c20,
-	0xe2d0: 0x6c2c7e20,
-	0xe2d5: 0x6c2c8c20,
-	0xe2d9: 0x6c2c8220,
-	0xe2df: 0x6c0c3020,
-	0xe2e0: 0x6c2c8620, 0xe2e3: 0x6c2c8a20,
-	0xe2e4: 0x6c2c8420,
-	0xe2f2: 0x6c2c9020,
-	0xe2f4: 0x6c09b220, 0xe2f6: 0x6c2c8e20,
-	0xe2fc: 0x6c2c9220,
-	// Block 0x38c, offset 0xe300
-	0xe301: 0x6c2c9420,
-	0xe304: 0x6c2c9a20, 0xe305: 0x6c2c9820, 0xe307: 0x6c2c9620,
-	0xe30a: 0x6c2c9e20, 0xe30b: 0x6c2c9c20,
-	0xe30d: 0x6c153c20,
-	0xe311: 0x6c2ca220, 0xe313: 0x6c2ca020,
-	0xe314: 0x6c2ca420,
-	0xe319: 0x6c2ca620,
-	0xe321: 0x6c2caa20,
-	0xe32a: 0x6c2ca820, 0xe32b: 0x6c0b5420,
-	0xe32c: 0x6c2cac20, 0xe32f: 0x6c050220,
-	0xe330: 0x6c2cae20, 0xe331: 0x6c2cb220,
-	0xe33e: 0x6c2cb420,
-	// Block 0x38d, offset 0xe340
-	0xe345: 0x6c2cb620, 0xe346: 0x6c2cb020,
-	0xe348: 0x6c2cb820, 0xe34a: 0x6c093c20, 0xe34b: 0x6c2cba20,
-	0xe34c: 0x6c03cc20, 0xe34d: 0x6c054a20,
-	0xe352: 0x6c05fc20,
-	0xe35b: 0x6c2cbc20,
-	0xe35f: 0x6c10c820,
-	0xe362: 0x6c0fa820, 0xe363: 0x6c2cbe20,
-	0xe36b: 0x6c2cc420,
-	0xe378: 0x6c08f820, 0xe37b: 0x6c2cc220,
-	0xe37c: 0x6c2cc020, 0xe37d: 0x6c059820, 0xe37e: 0x6c2cc620,
-	// Block 0x38e, offset 0xe380
-	0xe383: 0x6c029a20,
-	0xe385: 0x6c2cca20,
-	0xe389: 0x6c07d020, 0xe38a: 0x6c2cc820,
-	0xe38c: 0x6c2cda20,
-	0xe392: 0x6c2cce20, 0xe393: 0x6c2cd220,
-	0xe394: 0x6c13a220, 0xe395: 0x6c2ccc20,
-	0xe399: 0x6c2cd020, 0xe39b: 0x6c2cd820,
-	0xe39c: 0x6c2cd420, 0xe39d: 0x6c03ce20, 0xe39f: 0x6c2cd620,
-	0xe3a6: 0x6c2cdc20,
-	0xe3a9: 0x6c115820, 0xe3aa: 0x6c167820,
-	0xe3af: 0x6c09b420,
-	0xe3b3: 0x6c2cde20,
-	0xe3b8: 0x6c155020, 0xe3b9: 0x6c2ce220, 0xe3bb: 0x6c2ce020,
-	0xe3be: 0x6c2ce820, 0xe3bf: 0x6c158e20,
-	// Block 0x38f, offset 0xe3c0
-	0xe3c2: 0x6c2ce620,
-	0xe3c4: 0x6c02ce20, 0xe3c5: 0x6c2ce420, 0xe3c6: 0x6c2cee20,
-	0xe3c9: 0x6c2cec20,
-	0xe3cc: 0x6c2cea20, 0xe3cd: 0x6c0f9020, 0xe3ce: 0x6c2cf020,
-	0xe3d7: 0x6c2cf220,
-	0xe3dc: 0x6c2cf420, 0xe3df: 0x6c073420,
-	0xe3e1: 0x6c052e20, 0xe3e2: 0x6c2cf620, 0xe3e3: 0x6c2cf820,
-	0xe3e4: 0x6c2cfa20,
-	// Block 0x390, offset 0xe400
-	0xe41b: 0x6c0b5620,
-	0xe41c: 0x6c2cfc20, 0xe41e: 0x6c08ea20, 0xe41f: 0x6c2cfe20,
-	0xe423: 0x6c2d0020,
-	0xe427: 0x6c18a420,
-	0xe428: 0x6c18a220,
-	0xe42d: 0x6c2d0220, 0xe42e: 0x6c273620, 0xe42f: 0x6c2d0420,
-	0xe430: 0x6c0dfc20, 0xe431: 0x6c0b1a20, 0xe432: 0x6c112420,
-	0xe437: 0x6c2d0620,
-	0xe43a: 0x6c138220, 0xe43b: 0x6c0f1820,
-	0xe43c: 0x6c075820, 0xe43f: 0x6c0e0620,
-	// Block 0x391, offset 0xe440
-	0xe442: 0x6c00d020,
-	0xe444: 0x6c148420, 0xe445: 0x6c0b7220,
-	0xe44e: 0x6c05a020,
-	0xe451: 0x6c04ea20,
-	0xe454: 0x6c138420,
-	0xe45a: 0x6c2d0820,
-	0xe462: 0x6c2d0c20,
-	0xe465: 0x6c2d0a20, 0xe466: 0x6c01f820,
-	0xe469: 0x6c10d420, 0xe46a: 0x6c2d0e20, 0xe46b: 0x6c119220,
-	0xe46d: 0x6c0f9220, 0xe46f: 0x6c2d1020,
-	0xe470: 0x6c09f020,
-	0xe474: 0x6c2d1420, 0xe477: 0x6c14d420,
-	0xe478: 0x6c2d3220, 0xe479: 0x6c2d1820, 0xe47a: 0x6c2d1a20,
-	0xe47d: 0x6c0f0220,
-	// Block 0x392, offset 0xe480
-	0xe480: 0x6c0db820, 0xe481: 0x6c0d2a20, 0xe483: 0x6c103820,
-	0xe485: 0x6c2d1620, 0xe486: 0x6c041620,
-	0xe48b: 0x6c2d2820,
-	0xe48d: 0x6c2d2220, 0xe48e: 0x6c2d3c20, 0xe48f: 0x6c103a20,
-	0xe490: 0x6c0e7420, 0xe491: 0x6c2d1c20, 0xe493: 0x6c0f6c20,
-	0xe494: 0x6c0fd220, 0xe495: 0x6c2d1e20, 0xe496: 0x6c2d2620, 0xe497: 0x6c0b8420,
-	0xe499: 0x6c117220, 0xe49a: 0x6c0f0820,
-	0xe49d: 0x6c0c0420, 0xe49e: 0x6c2d2420, 0xe49f: 0x6c0d5420,
-	0xe4a0: 0x6c0d4020, 0xe4a1: 0x6c2d2020, 0xe4a2: 0x6c001220, 0xe4a3: 0x6c16c820,
-	0xe4a7: 0x6c2d2a20,
-	0xe4ae: 0x6c0dba20,
-	0xe4b1: 0x6c09b620, 0xe4b2: 0x6c0b5820,
-	0xe4b5: 0x6c2d2e20, 0xe4b6: 0x6c2d2c20,
-	0xe4b8: 0x6c009e20, 0xe4b9: 0x6c2d3020,
-	0xe4bc: 0x6c127a20, 0xe4be: 0x6c2d4020,
-	// Block 0x393, offset 0xe4c0
-	0xe4c1: 0x6c109e20, 0xe4c2: 0x6c0b9a20,
-	0xe4c5: 0x6c0e6620, 0xe4c7: 0x6c051820,
-	0xe4c9: 0x6c2d3e20, 0xe4ca: 0x6c157a20, 0xe4cb: 0x6c00fa20,
-	0xe4cd: 0x6c138620, 0xe4ce: 0x6c01fa20, 0xe4cf: 0x6c2d3420,
-	0xe4d0: 0x6c2d3620, 0xe4d1: 0x6c2d3820, 0xe4d2: 0x6c2d3a20, 0xe4d3: 0x6c105e20,
-	0xe4d4: 0x6c0dfa20, 0xe4d5: 0x6c008620, 0xe4d6: 0x6c2d4220,
-	0xe4d8: 0x6c2d4420, 0xe4d9: 0x6c31a020,
-	0xe4dc: 0x6c0d7220, 0xe4de: 0x6c2d4620,
-	0xe4e0: 0x6c016220, 0xe4e1: 0x6c0cd420, 0xe4e3: 0x6c05fe20,
-	0xe4e5: 0x6c15c020,
-	0xe4e8: 0x6c2d4820, 0xe4e9: 0x6c0f8420,
-	0xe4ed: 0x6c0d2c20, 0xe4ee: 0x6c093e20, 0xe4ef: 0x6c2d4a20,
-	0xe4f2: 0x6c2d5020,
-	0xe4f5: 0x6c0a1620, 0xe4f6: 0x6c2d4c20, 0xe4f7: 0x6c0c9220,
-	0xe4f8: 0x6c0c9020, 0xe4fa: 0x6c008820,
-	0xe4fc: 0x6c165e20, 0xe4fd: 0x6c2d5420, 0xe4ff: 0x6c124420,
-	// Block 0x394, offset 0xe500
-	0xe500: 0x6c2d5820, 0xe501: 0x6c2d5620, 0xe502: 0x6c2d5220, 0xe503: 0x6c25a620,
-	0xe504: 0x6c035820, 0xe507: 0x6c2d1220,
-	0xe509: 0x6c2d5c20, 0xe50a: 0x6c2d5a20,
-	0xe50f: 0x6c2d5e20,
-	0xe511: 0x6c157c20,
-	0xe523: 0x6c10aa20,
-	0xe526: 0x6c13f020,
-	0xe528: 0x6c2d6020, 0xe52a: 0x6c094220,
-	0xe52f: 0x6c2d6220,
-	0xe531: 0x6c2d6420,
-	0xe535: 0x6c2d6620,
-	0xe538: 0x6c0f6e20,
-	// Block 0x395, offset 0xe540
-	0xe541: 0x6c009420,
-	0xe54a: 0x6c070e20,
-	0xe54e: 0x6c16f820,
-	0xe55b: 0x6c2d6e20,
-	0xe561: 0x6c054c20, 0xe562: 0x6c2d6820,
-	0xe564: 0x6c2d6a20,
-	0xe568: 0x6c130420,
-	0xe56d: 0x6c029c20,
-	0xe575: 0x6c157e20, 0xe577: 0x6c04a620,
-	0xe57d: 0x6c0fd420,
-	// Block 0x396, offset 0xe580
-	0xe582: 0x6c2d7020,
-	0xe592: 0x6c2d7220,
-	0xe599: 0x6c2d7420,
-	0xe5ad: 0x6c0f7020,
-	0xe5b0: 0x6c2d7820, 0xe5b2: 0x6c2d7620,
-	// Block 0x397, offset 0xe5c0
-	0xe5c9: 0x6c108e20, 0xe5ca: 0x6c2d7a20, 0xe5cb: 0x6c09b820,
-	0xe5cc: 0x6c095020, 0xe5cd: 0x6c115a20, 0xe5ce: 0x6c0e9620,
-	0xe5d2: 0x6c097420,
-	0xe5d4: 0x6c0b9c20, 0xe5d6: 0x6c2d7c20,
-	0xe5d8: 0x6c2d7e20,
-	0xe5e2: 0x6c0b7e20, 0xe5e3: 0x6c2d8020,
-	0xe5e5: 0x6c2d8220,
-	0xe5e9: 0x6c2d8420, 0xe5ea: 0x6c15ea20,
-	0xe5ec: 0x6c09ba20,
-	0xe5f2: 0x6c2d8820, 0xe5f3: 0x6c2d8620,
-	0xe5f5: 0x6c071020, 0xe5f7: 0x6c074220,
-	0xe5f8: 0x6c085420,
-	// Block 0x398, offset 0xe600
-	0xe602: 0x6c2d8e20,
-	0xe607: 0x6c0a1820,
-	0xe609: 0x6c2d8c20, 0xe60b: 0x6c2d8a20,
-	0xe60d: 0x6c0dca20,
-	0xe610: 0x6c067e20, 0xe612: 0x6c0c0620,
-	0xe617: 0x6c11c020,
-	0xe61c: 0x6c09be20,
-	0xe622: 0x6c2d9020,
-	0xe624: 0x6c0ac620,
-	0xe62a: 0x6c2d9620, 0xe62b: 0x6c2d9220,
-	0xe62f: 0x6c2d9420,
-	0xe634: 0x6c2d9a20, 0xe635: 0x6c2d9820,
-	0xe638: 0x6c0afc20, 0xe63a: 0x6c2d9c20,
-	// Block 0x399, offset 0xe640
-	0xe640: 0x6c2d9e20, 0xe641: 0x6c2da020,
-	0xe646: 0x6c120020, 0xe647: 0x6c07be20,
-	0xe648: 0x6c095220, 0xe649: 0x6c2da220, 0xe64b: 0x6c2da420,
-	0xe64c: 0x6c161020, 0xe64d: 0x6c09d620, 0xe64e: 0x6c152c20, 0xe64f: 0x6c166020,
-	0xe650: 0x6c2da620, 0xe651: 0x6c04ec20,
-	0xe656: 0x6c2da820,
-	0xe658: 0x6c0f7220, 0xe65b: 0x6c2dae20,
-	0xe65c: 0x6c02e420, 0xe65d: 0x6c0b5a20, 0xe65f: 0x6c2daa20,
-	0xe661: 0x6c2dac20, 0xe663: 0x6c0f3020,
-	0xe666: 0x6c143e20, 0xe667: 0x6c052020,
-	0xe675: 0x6c2db220, 0xe676: 0x6c2db420,
-	0xe67c: 0x6c2db020, 0xe67f: 0x6c2db820,
-	// Block 0x39a, offset 0xe680
-	0xe68d: 0x6c10a620, 0xe68e: 0x6c027a20,
-	0xe691: 0x6c2dc020,
-	0xe694: 0x6c2dba20, 0xe695: 0x6c2dbe20,
-	0xe69e: 0x6c2db620,
-	0xe6a9: 0x6c2e4c20,
-	0xe6ac: 0x6c2dbc20,
-	0xe6b4: 0x6c169e20, 0xe6b7: 0x6c065420,
-	0xe6bf: 0x6c2dd020,
-	// Block 0x39b, offset 0xe6c0
-	0xe6c4: 0x6c0f9420, 0xe6c5: 0x6c2dc620,
-	0xe6c8: 0x6c2dcc20, 0xe6c9: 0x6c2dc820, 0xe6cb: 0x6c2dd220,
-	0xe6d0: 0x6c2dd420,
-	0xe6d7: 0x6c2dc420,
-	0xe6da: 0x6c2dde20, 0xe6db: 0x6c016420,
-	0xe6de: 0x6c2dc220,
-	0xe6e2: 0x6c11ba20,
-	0xe6e4: 0x6c2dca20, 0xe6e6: 0x6c0ac820,
-	0xe6f1: 0x6c071220,
-	0xe6fe: 0x6c142420,
-	// Block 0x39c, offset 0xe700
-	0xe700: 0x6c04f020, 0xe703: 0x6c09d820,
-	0xe705: 0x6c106020,
-	0xe711: 0x6c0c9620, 0xe713: 0x6c2dda20,
-	0xe715: 0x6c2dce20, 0xe716: 0x6c2dd820,
-	0xe718: 0x6c14d620, 0xe71a: 0x6c0ee020, 0xe71b: 0x6c2ddc20,
-	0xe71c: 0x6c2dd620,
-	0xe72d: 0x6c0c9420,
-	0xe737: 0x6c2de420,
-	0xe739: 0x6c2de220,
-	// Block 0x39d, offset 0xe740
-	0xe74f: 0x6c2de020,
-	0xe752: 0x6c13f220,
-	0xe764: 0x6c0a4220,
-	0xe769: 0x6c2de620, 0xe76a: 0x6c139620,
-	0xe76d: 0x6c012420,
-	0xe772: 0x6c12a820, 0xe773: 0x6c0e9820,
-	0xe778: 0x6c045c20, 0xe77a: 0x6c2dea20,
-	0xe77c: 0x6c071620,
-	// Block 0x39e, offset 0xe780
-	0xe786: 0x6c082c20,
-	0xe78f: 0x6c2de820,
-	0xe790: 0x6c0b9e20,
-	0xe798: 0x6c0ba020, 0xe799: 0x6c2df020, 0xe79a: 0x6c2df420,
-	0xe7a0: 0x6c0afe20, 0xe7a2: 0x6c2df220, 0xe7a3: 0x6c2df620,
-	0xe7a6: 0x6c04ce20,
-	0xe7a8: 0x6c12a620, 0xe7ab: 0x6c095420,
-	0xe7ac: 0x6c16ca20, 0xe7ae: 0x6c2dee20, 0xe7af: 0x6c080820,
-	0xe7b2: 0x6c170220,
-	0xe7b5: 0x6c2dfa20,
-	0xe7ba: 0x6c2df820, 0xe7bb: 0x6c2dfc20,
-	// Block 0x39f, offset 0xe7c0
-	0xe7c4: 0x6c2dec20,
-	0xe7cb: 0x6c10ba20,
-	0xe7cd: 0x6c0fd620,
-	0xe7d4: 0x6c0f1e20, 0xe7d6: 0x6c2e0620,
-	0xe7db: 0x6c0e3a20,
-	0xe7dc: 0x6c2dfe20,
-	0xe7e0: 0x6c2e0020,
-	0xe7ec: 0x6c053e20, 0xe7ee: 0x6c2e0420,
-	0xe7f5: 0x6c060020,
-	0xe7fc: 0x6c2e0220, 0xe7fe: 0x6c0aca20,
-	// Block 0x3a0, offset 0xe800
-	0xe80c: 0x6c02e620,
-	0xe814: 0x6c2e0e20, 0xe816: 0x6c079620, 0xe817: 0x6c0d2e20,
-	0xe81a: 0x6c0f0420,
-	0xe827: 0x6c026a20,
-	0xe82c: 0x6c2e0a20, 0xe82d: 0x6c2e0c20, 0xe82e: 0x6c0ef620,
-	0xe830: 0x6c2e0820,
-	0xe839: 0x6c2e1020,
-	// Block 0x3a1, offset 0xe840
-	0xe843: 0x6c2e1c20,
-	0xe848: 0x6c2e2220,
-	0xe850: 0x6c2e2020, 0xe851: 0x6c0f8620,
-	0xe856: 0x6c2e1220, 0xe857: 0x6c2e1420,
-	0xe858: 0x6c2e1a20,
-	0xe85d: 0x6c2e1e20,
-	0xe861: 0x6c04a820,
-	0xe864: 0x6c2e2420, 0xe865: 0x6c2e1820,
-	0xe868: 0x6c2e1620,
-	// Block 0x3a2, offset 0xe880
-	0xe883: 0x6c2e2c20,
-	0xe887: 0x6c2e2e20,
-	0xe890: 0x6c2e3020, 0xe893: 0x6c2e2a20,
-	0xe894: 0x6c2e2820,
-	0xe898: 0x6c0acc20, 0xe899: 0x6c103c20, 0xe89a: 0x6c2e2620,
-	0xe8a1: 0x6c2e3820,
-	0xe8ab: 0x6c2e3420,
-	0xe8b5: 0x6c2e3620, 0xe8b6: 0x6c2e3220,
-	0xe8b8: 0x6c0de820, 0xe8ba: 0x6c2e3a20,
-	// Block 0x3a3, offset 0xe8c0
-	0xe8c1: 0x6c2e3c20,
-	0xe8c4: 0x6c2e4020,
-	0xe8d1: 0x6c035a20, 0xe8d2: 0x6c2e3e20, 0xe8d3: 0x6c154420,
-	0xe8da: 0x6c2e5620, 0xe8db: 0x6c2e4220,
-	0xe8de: 0x6c2e4820,
-	0xe8e0: 0x6c2e4420, 0xe8e2: 0x6c2e4620,
-	0xe8ea: 0x6c2e4a20,
-	0xe8f0: 0x6c2e4e20,
-	0xe8f5: 0x6c2e5020, 0xe8f7: 0x6c2e5220,
-	0xe8fc: 0x6c2e5820, 0xe8fd: 0x6c2e5420, 0xe8fe: 0x6c2e5a20, 0xe8ff: 0x6c2e5e20,
-	// Block 0x3a4, offset 0xe900
-	0xe901: 0x6c2e5c20,
-	// Block 0x3a5, offset 0xe940
-	0xe977: 0x6c0ee220,
-	// Block 0x3a6, offset 0xe980
-	0xe980: 0x6c151e20, 0xe982: 0x6c2e6020, 0xe983: 0x6c0c9820,
-	0xe987: 0x6c2e6220,
-	0xe989: 0x6c136020, 0xe98a: 0x6c2e6420, 0xe98b: 0x6c024a20,
-	0xe98f: 0x6c00f420,
-	0xe991: 0x6c035e20, 0xe993: 0x6c035c20,
-	0xe994: 0x6c2e6620, 0xe996: 0x6c2e6820,
-	0xe998: 0x6c2e6a20, 0xe999: 0x6c2e6c20,
-	0xe9a0: 0x6c2e6e20, 0xe9a2: 0x6c036020, 0xe9a3: 0x6c029e20,
-	0xe9a4: 0x6c071820, 0xe9a5: 0x6c11cc20, 0xe9a7: 0x6c2e7220,
-	0xe9a8: 0x6c2e7020,
-	0xe9ad: 0x6c2e7420,
-	0xe9b2: 0x6c013420,
-	0xe9b9: 0x6c2e7a20, 0xe9bb: 0x6c2e7820,
-	0xe9bc: 0x6c2e7620, 0xe9be: 0x6c2e7c20,
-	// Block 0x3a7, offset 0xe9c0
-	0xe9c3: 0x6c2e8220,
-	0xe9c7: 0x6c004e20,
-	0xe9ca: 0x6c2e7e20,
-	0xe9cc: 0x6c2e8620, 0xe9cd: 0x6c2e8420,
-	0xe9d4: 0x6c2e8a20, 0xe9d5: 0x6c2e8820, 0xe9d6: 0x6c2e8c20,
-	0xe9d8: 0x6c104420,
-	0xe9dc: 0x6c2e8e20,
-	0xe9e1: 0x6c2e9020, 0xe9e2: 0x6c2e9420,
-	0xe9e5: 0x6c2e9220,
-	// Block 0x3a8, offset 0xea00
-	0xea1c: 0x6c12f420,
-	0xea21: 0x6c2e9620,
-	0xea28: 0x6c2e9820, 0xea2a: 0x6c07e220,
-	0xea2e: 0x6c2e9a20, 0xea2f: 0x6c2e9c20,
-	0xea32: 0x6c142620,
-	0xea3b: 0x6c0cd220,
-	0xea3f: 0x6c000820,
-	// Block 0x3a9, offset 0xea40
-	0xea40: 0x6c0d8e20, 0xea42: 0x6c2e9e20,
-	0xea44: 0x6c12f620,
-	0xea4b: 0x6c2ea420,
-	0xea4c: 0x6c2ea020, 0xea4d: 0x6c071a20, 0xea4f: 0x6c2ea220,
-	0xea50: 0x6c062420,
-	0xea5b: 0x6c136220,
-	0xea5c: 0x6c2ea820, 0xea5d: 0x6c2eac20, 0xea5e: 0x6c2eaa20, 0xea5f: 0x6c2eae20,
-	0xea62: 0x6c00be20, 0xea63: 0x6c0b7420,
-	0xea64: 0x6c0a4420, 0xea65: 0x6c036220, 0xea66: 0x6c2eb020,
-	0xea6a: 0x6c117020,
-	0xea6c: 0x6c2eb420,
-	0xea70: 0x6c00c020, 0xea72: 0x6c2eb220, 0xea73: 0x6c0ef820,
-	0xea75: 0x6c166220, 0xea76: 0x6c103e20, 0xea77: 0x6c2ea620,
-	0xea78: 0x6c161420, 0xea7a: 0x6c060220,
-	0xea7d: 0x6c15c220,
-	// Block 0x3aa, offset 0xea80
-	0xea85: 0x6c051a20, 0xea86: 0x6c163020,
-	0xea88: 0x6c053420, 0xea8a: 0x6c0dbc20, 0xea8b: 0x6c281020,
-	0xea8d: 0x6c2eb620, 0xea8e: 0x6c024c20, 0xea8f: 0x6c0ba220,
-	0xea94: 0x6c02a020, 0xea95: 0x6c2eba20, 0xea97: 0x6c2ebc20,
-	0xea98: 0x6c2eb820, 0xea99: 0x6c05ac20, 0xea9b: 0x6c07d220,
-	0xea9c: 0x6c0ace20,
-	0xeaa0: 0x6c00c220, 0xeaa3: 0x6c167a20,
-	0xeaa7: 0x6c2ec020,
-	0xeaa8: 0x6c2d4e20, 0xeaaa: 0x6c2ebe20,
-	0xeab0: 0x6c2ec620, 0xeab1: 0x6c2ec220, 0xeab2: 0x6c2ec420,
-	0xeab4: 0x6c2ec820, 0xeab6: 0x6c2eca20, 0xeab7: 0x6c16a020,
-	0xeab8: 0x6c2ecc20, 0xeab9: 0x6c2ece20, 0xeabb: 0x6c0c1220,
-	0xeabc: 0x6c11d620,
-	// Block 0x3ab, offset 0xeac0
-	0xeac0: 0x6c0bbe20, 0xeac1: 0x6c037e20,
-	0xeac4: 0x6c158020, 0xeac5: 0x6c021220, 0xeac6: 0x6c09bc20, 0xeac7: 0x6c065620,
-	0xeac9: 0x6c2ed420, 0xeacb: 0x6c2ed220,
-	0xeacc: 0x6c08ba20, 0xeacd: 0x6c2ed620, 0xeace: 0x6c2ed020,
-	0xead1: 0x6c082420,
-	0xead5: 0x6c2ede20, 0xead6: 0x6c2a5c20,
-	0xead9: 0x6c190e20, 0xeadb: 0x6c0bb220,
-	0xeadc: 0x6c2eda20,
-	0xeae2: 0x6c161220, 0xeae3: 0x6c10ca20,
-	0xeae8: 0x6c00d220, 0xeaea: 0x6c0c4620, 0xeaeb: 0x6c08fc20,
-	0xeaf0: 0x6c134620, 0xeaf2: 0x6c00fc20,
-	0xeaf6: 0x6c16a220, 0xeaf7: 0x6c15e220,
-	0xeaf9: 0x6c2ee020, 0xeafb: 0x6c0fb620,
-	// Block 0x3ac, offset 0xeb00
-	0xeb00: 0x6c098620,
-	0xeb04: 0x6c2ee220, 0xeb06: 0x6c2ee420, 0xeb07: 0x6c0b5c20,
-	0xeb08: 0x6c2ee620, 0xeb0a: 0x6c16a420,
-	0xeb0d: 0x6c2edc20, 0xeb0e: 0x6c2eea20, 0xeb0f: 0x6c2eee20,
-	0xeb11: 0x6c2eec20, 0xeb13: 0x6c2ee820,
-	0xeb16: 0x6c2ef020,
-	0xeb19: 0x6c2ef220,
-	0xeb1c: 0x6c0d3020, 0xeb1e: 0x6c01fc20,
-	0xeb24: 0x6c2ef420, 0xeb27: 0x6c14c020,
-	0xeb2a: 0x6c2ef620,
-	0xeb30: 0x6c2ef820, 0xeb32: 0x6c16d820,
-	0xeb38: 0x6c1f6020, 0xeb39: 0x6c2efa20,
-	0xeb3d: 0x6c2efc20, 0xeb3e: 0x6c2efe20,
-	// Block 0x3ad, offset 0xeb40
-	0xeb42: 0x6c2f0620,
-	0xeb44: 0x6c2f0020, 0xeb46: 0x6c2f0220,
-	0xeb48: 0x6c2f0420, 0xeb49: 0x6c2f0820,
-	0xeb52: 0x6c0c0820,
-	0xeb56: 0x6c153e20,
-	0xeb59: 0x6c0c0a20,
-	0xeb5c: 0x6c2f0a20, 0xeb5e: 0x6c124620,
-	0xeb60: 0x6c2f0c20, 0xeb61: 0x6c314420, 0xeb62: 0x6c14e820,
-	0xeb64: 0x6c2f0e20, 0xeb66: 0x6c2f1020,
-	0xeb68: 0x6c2f1220, 0xeb69: 0x6c02a220, 0xeb6b: 0x6c2f1620,
-	0xeb6d: 0x6c0b7620,
-	0xeb71: 0x6c2f1820,
-	0xeb74: 0x6c052c20,
-	0xeb79: 0x6c2f1a20, 0xeb7a: 0x6c2f2220,
-	0xeb7c: 0x6c2f1e20,
-	// Block 0x3ae, offset 0xeb80
-	0xeb81: 0x6c2f2020,
-	0xeb84: 0x6c02da20, 0xeb85: 0x6c2f1c20, 0xeb86: 0x6c2f2420,
-	0xeb8b: 0x6c2f2620,
-	0xeb8d: 0x6c005020, 0xeb8f: 0x6c2f2820,
-	0xeb90: 0x6c2f2a20,
-	0xeb98: 0x6c0ad020,
-	0xeb9c: 0x6c2f2c20,
-	0xeba0: 0x6c03fa20, 0xeba3: 0x6c2f3220,
-	0xeba6: 0x6c2f3020,
-	0xeba8: 0x6c2f2e20, 0xebab: 0x6c2ba020,
-	0xebad: 0x6c139020,
-	0xebb3: 0x6c2f3420,
-	0xebb4: 0x6c2f3620,
-	// Block 0x3af, offset 0xebc0
-	0xebc3: 0x6c2f3820,
-	0xebc6: 0x6c2f3a20,
-	0xebc8: 0x6c2f3c20, 0xebcb: 0x6c2f3e20,
-	0xebd3: 0x6c036420,
-	0xebdc: 0x6c2f4020,
-	0xebed: 0x6c2f4220, 0xebee: 0x6c10ea20,
-	0xebf2: 0x6c2f4620, 0xebf3: 0x6c01ae20,
-	0xebf5: 0x6c2f4c20, 0xebf6: 0x6c2f4a20,
-	0xebfb: 0x6c00c420,
-	0xebff: 0x6c04aa20,
-	// Block 0x3b0, offset 0xec00
-	0xec01: 0x6c136620, 0xec02: 0x6c0ee420, 0xec03: 0x6c075c20,
-	0xec05: 0x6c071c20, 0xec06: 0x6c0a1a20,
-	0xec08: 0x6c0b7c20,
-	0xec0c: 0x6c2f5020, 0xec0f: 0x6c2f4e20,
-	0xec10: 0x6c159020, 0xec11: 0x6c038020, 0xec12: 0x6c120420, 0xec13: 0x6c10a020,
-	0xec17: 0x6c0bbc20,
-	0xec18: 0x6c166420, 0xec1a: 0x6c059a20,
-	0xec21: 0x6c2f5620,
-	0xec24: 0x6c2f5420,
-	0xec2c: 0x6c142a20, 0xec2d: 0x6c104020,
-	0xec34: 0x6c011c20, 0xec37: 0x6c2f5820,
-	0xec38: 0x6c2f5220, 0xec3b: 0x6c12be20,
-	0xec3c: 0x6c15e020, 0xec3d: 0x6c2f5a20,
-	// Block 0x3b1, offset 0xec40
-	0xec46: 0x6c2f5c20,
-	0xec4b: 0x6c2f6020,
-	0xec4c: 0x6c0dcc20, 0xec4d: 0x6c02aa20, 0xec4e: 0x6c02ac20, 0xec4f: 0x6c2f5e20,
-	0xec54: 0x6c038220, 0xec55: 0x6c060420,
-	0xec58: 0x6c038420, 0xec5b: 0x6c0faa20,
-	0xec5e: 0x6c168820,
-	0xec67: 0x6c065820,
-	0xec6b: 0x6c2f6220,
-	0xec6f: 0x6c2f6420,
-	0xec70: 0x6c2f6620, 0xec71: 0x6c2f6820, 0xec73: 0x6c2f6c20,
-	0xec74: 0x6c2f6a20,
-	// Block 0x3b2, offset 0xec80
-	0xeca8: 0x6c130a20, 0xecaa: 0x6c2f6e20,
-	0xecaf: 0x6c2f7020,
-	0xecb1: 0x6c2f7220,
-	0xecb6: 0x6c2f7420,
-	// Block 0x3b3, offset 0xecc0
-	0xecc3: 0x6c2f7820,
-	0xecc4: 0x6c2f7620, 0xecc6: 0x6c2f7a20,
-	0xecdb: 0x6c124820,
-	0xecdc: 0x6c27aa20, 0xecdf: 0x6c0b1620,
-	0xece2: 0x6c03d020,
-	0xece9: 0x6c2f7c20, 0xeceb: 0x6c2f7e20,
-	0xeced: 0x6c18ba20, 0xecee: 0x6c20ec20, 0xecef: 0x6c120620,
-	0xecf2: 0x6c00b620,
-	0xecf4: 0x6c003620,
-	0xecfc: 0x6c08bc20, 0xecfd: 0x6c13f420, 0xecfe: 0x6c0b0420,
-	// Block 0x3b4, offset 0xed00
-	0xed03: 0x6c2f8020,
-	0xed05: 0x6c150e20,
-	0xed09: 0x6c2f8220, 0xed0a: 0x6c15c420,
-	0xed0c: 0x6c010020,
-	0xed10: 0x6c085620, 0xed12: 0x6c2f8420, 0xed13: 0x6c021420,
-	0xed14: 0x6c2f8620,
-	0xed18: 0x6c2f8820,
-	0xed1d: 0x6c2f8c20, 0xed1e: 0x6c2f8e20,
-	0xed20: 0x6c2f9220, 0xed21: 0x6c2f8a20,
-	0xed24: 0x6c2f9020,
-	0xed28: 0x6c036620,
-	0xed2c: 0x6c2f9420, 0xed2e: 0x6c2f9620,
-	0xed3d: 0x6c2f9820, 0xed3e: 0x6c2f9a20,
-	// Block 0x3b5, offset 0xed40
-	0xed42: 0x6c2f9c20,
-	0xed45: 0x6c2fa020,
-	0xed49: 0x6c2f9e20, 0xed4b: 0x6c2fa420,
-	0xed4c: 0x6c2faa20,
-	0xed50: 0x6c2fa220, 0xed51: 0x6c2fa620, 0xed52: 0x6c2fa820,
-	0xed55: 0x6c2fac20, 0xed57: 0x6c04ac20,
-	// Block 0x3b6, offset 0xed80
-	0xed96: 0x6c097620, 0xed97: 0x6c2fae20,
-	0xed98: 0x6c2fb020, 0xed99: 0x6c071e20,
-	0xeda5: 0x6c2fb220,
-	0xeda8: 0x6c027020,
-	0xedac: 0x6c114220, 0xedad: 0x6c2fb420, 0xedae: 0x6c2fb620,
-	0xedb3: 0x6c0e6820,
-	0xedb4: 0x6c10be20,
-	0xedbc: 0x6c2fb820,
-	// Block 0x3b7, offset 0xedc0
-	0xedc1: 0x6c119e20,
-	0xedc4: 0x6c0d9020, 0xedc5: 0x6c012c20, 0xedc6: 0x6c050420,
-	0xedc8: 0x6c050620,
-	0xedd0: 0x6c0e9a20, 0xedd1: 0x6c2fc220, 0xedd2: 0x6c050820,
-	0xedd5: 0x6c021620,
-	0xedd8: 0x6c2fc020, 0xeddb: 0x6c2fbc20,
-	0xeddd: 0x6c2fbe20, 0xeddf: 0x6c2fba20,
-	0xede2: 0x6c2fd620,
-	0xeded: 0x6c2fc420, 0xedee: 0x6c2fc620,
-	0xedf1: 0x6c2fc820, 0xedf2: 0x6c2fca20,
-	0xedf8: 0x6c2fce20, 0xedfb: 0x6c2fcc20,
-	0xedff: 0x6c09fe20,
-	// Block 0x3b8, offset 0xee00
-	0xee01: 0x6c2fd020,
-	0xee05: 0x6c2fd420,
-	0xee0e: 0x6c03d220, 0xee0f: 0x6c2fd220,
-	0xee12: 0x6c0d3220, 0xee13: 0x6c060620,
-	0xee19: 0x6c2fd820,
-	0xee28: 0x6c0d9220, 0xee2b: 0x6c2fda20,
-	0xee30: 0x6c104220,
-	0xee37: 0x6c2fdc20,
-	0xee3e: 0x6c2fe620,
-	// Block 0x3b9, offset 0xee40
-	0xee40: 0x6c2fe220, 0xee42: 0x6c2fe020, 0xee43: 0x6c2fe420,
-	0xee45: 0x6c2fde20,
-	0xee4d: 0x6c2fea20,
-	0xee55: 0x6c2fe820, 0xee57: 0x6c2fee20,
-	0xee5a: 0x6c04ae20, 0xee5b: 0x6c2fec20,
-	0xee5f: 0x6c2ff020,
-	0xee62: 0x6c2ff220,
-	0xee64: 0x6c2ff620, 0xee65: 0x6c2ff420,
-	0xee69: 0x6c2ff820, 0xee6a: 0x6c2ffc20, 0xee6b: 0x6c2ffa20,
-	// Block 0x3ba, offset 0xee80
-	0xeea8: 0x6c075420,
-	0xeead: 0x6c2ffe20,
-	0xeeb0: 0x6c300020,
-	0xeeb8: 0x6c026c20,
-	0xeebc: 0x6c300220,
-	// Block 0x3bb, offset 0xeec0
-	0xeec0: 0x6c300420,
-	0xeec4: 0x6c0ba620,
-	0xeecf: 0x6c300620,
-	0xeed1: 0x6c300820, 0xeed3: 0x6c300a20,
-	0xeed4: 0x6c300c20,
-	0xeed8: 0x6c072020,
-	0xeede: 0x6c300e20, 0xeedf: 0x6c301020,
-	0xeee2: 0x6c301220, 0xeee3: 0x6c301420,
-	0xeee6: 0x6c301620,
-	0xeeea: 0x6c11c220, 0xeeeb: 0x6c301a20,
-	0xeeed: 0x6c126820, 0xeeee: 0x6c301c20, 0xeeef: 0x6c301820,
-	0xeef1: 0x6c302020,
-	0xeef4: 0x6c301e20, 0xeef7: 0x6c302220,
-	0xeefb: 0x6c302420,
-	// Block 0x3bc, offset 0xef00
-	0xef06: 0x6c302620,
-	0xef18: 0x6c302820, 0xef1a: 0x6c302a20,
-	0xef1f: 0x6c302c20,
-	0xef22: 0x6c302e20, 0xef23: 0x6c303020,
-	0xef25: 0x6c303220, 0xef27: 0x6c303420,
-	0xef28: 0x6c303620, 0xef29: 0x6c303820, 0xef2a: 0x6c303a20,
-	0xef2e: 0x6c303c20, 0xef2f: 0x6c303e20,
-	0xef31: 0x6c20e020, 0xef32: 0x6c304020,
-	0xef3b: 0x6c268a20,
-	0xef3c: 0x6c03d420,
-	// Block 0x3bd, offset 0xef40
-	0xef41: 0x6c023620, 0xef42: 0x6c077c20, 0xef43: 0x6c304420,
-	0xef44: 0x6c304220, 0xef45: 0x6c149a20,
-	0xef4d: 0x6c304820, 0xef4e: 0x6c304a20, 0xef4f: 0x6c304620,
-	0xef51: 0x6c304c20,
-	0xef54: 0x6c145820,
-	0xef58: 0x6c304e20, 0xef5a: 0x6c046220,
-	0xef6f: 0x6c16ce20,
-	0xef74: 0x6c305020,
-	// Block 0x3be, offset 0xef80
-	0xef83: 0x6c305420,
-	0xef8e: 0x6c003c20,
-	0xef91: 0x6c305620, 0xef92: 0x6c132e20, 0xef93: 0x6c305220,
-	0xef96: 0x6c305820, 0xef97: 0x6c305a20,
-	0xef9f: 0x6c305c20,
-	0xefa0: 0x6c305e20,
-	0xefa8: 0x6c306020, 0xefaa: 0x6c147020, 0xefab: 0x6c082e20,
-	0xefad: 0x6c080c20, 0xefae: 0x6c0c9a20,
-	0xefb4: 0x6c306220,
-	0xefb9: 0x6c306820,
-	// Block 0x3bf, offset 0xefc0
-	0xefc0: 0x6c306420,
-	0xefc6: 0x6c306a20,
-	0xefc9: 0x6c068220, 0xefca: 0x6c306620,
-	0xefcf: 0x6c306c20,
-	0xefd1: 0x6c306e20, 0xefd2: 0x6c307020,
-	0xefd4: 0x6c307820, 0xefd6: 0x6c082820,
-	0xefdb: 0x6c0dc020,
-	0xefe1: 0x6c307a20, 0xefe2: 0x6c307420, 0xefe3: 0x6c307220,
-	0xefe4: 0x6c307620,
-	0xefe8: 0x6c05a220,
-	0xeff0: 0x6c308220, 0xeff1: 0x6c308020, 0xeff2: 0x6c307e20,
-	0xeff5: 0x6c002620,
-	// Block 0x3c0, offset 0xf000
-	0xf004: 0x6c309620, 0xf006: 0x6c308e20,
-	0xf008: 0x6c309020, 0xf009: 0x6c308820, 0xf00a: 0x6c309420,
-	0xf00c: 0x6c308c20, 0xf00d: 0x6c02b820,
-	0xf010: 0x6c171c20, 0xf012: 0x6c309220, 0xf013: 0x6c308a20,
-	0xf014: 0x6c308620, 0xf015: 0x6c308420,
-	0xf01b: 0x6c309a20,
-	0xf021: 0x6c30a020,
-	0xf024: 0x6c309e20, 0xf025: 0x6c309c20,
-	0xf02d: 0x6c12ae20, 0xf02e: 0x6c309820, 0xf02f: 0x6c00a620,
-	0xf030: 0x6c30a220, 0xf032: 0x6c30a620,
-	0xf039: 0x6c02d220, 0xf03a: 0x6c307c20, 0xf03b: 0x6c00ea20,
-	0xf03e: 0x6c30aa20,
-	// Block 0x3c1, offset 0xf040
-	0xf046: 0x6c30a820, 0xf047: 0x6c30a420,
-	0xf048: 0x6c0e0e20,
-	0xf052: 0x6c147420,
-	0xf057: 0x6c167c20,
-	0xf05a: 0x6c30ac20,
-	0xf060: 0x6c30ae20,
-	0xf067: 0x6c30b020,
-	0xf076: 0x6c30b220,
-	0xf078: 0x6c30b420,
-	// Block 0x3c2, offset 0xf080
-	0xf0a5: 0x6c0ee620, 0xf0a7: 0x6c30b620,
-	0xf0a9: 0x6c11ce20, 0xf0ab: 0x6c30c020,
-	0xf0ac: 0x6c30b820,
-	0xf0b0: 0x6c30ba20, 0xf0b3: 0x6c13f620,
-	0xf0b4: 0x6c14d820, 0xf0b6: 0x6c108820,
-	// Block 0x3c3, offset 0xf0c0
-	0xf0c3: 0x6c30c220,
-	0xf0c6: 0x6c30c420, 0xf0c7: 0x6c106420,
-	0xf0c8: 0x6c30be20, 0xf0c9: 0x6c30bc20,
-	0xf0ce: 0x6c018c20,
-	0xf0d2: 0x6c30d420,
-	0xf0d5: 0x6c30d220,
-	0xf0db: 0x6c016620,
-	0xf0df: 0x6c30ce20,
-	0xf0e3: 0x6c30cc20,
-	0xf0e6: 0x6c30c820,
-	0xf0e8: 0x6c02ea20, 0xf0ea: 0x6c30c620, 0xf0eb: 0x6c08f420,
-	0xf0ec: 0x6c018a20,
-	0xf0fb: 0x6c072220,
-	0xf0fe: 0x6c30da20, 0xf0ff: 0x6c30d820,
-	// Block 0x3c4, offset 0xf100
-	0xf101: 0x6c30d620,
-	0xf104: 0x6c30d020, 0xf106: 0x6c30dc20,
-	0xf108: 0x6c30de20,
-	0xf110: 0x6c30e820, 0xf111: 0x6c30e620,
-	0xf119: 0x6c30ea20,
-	0xf11c: 0x6c00d620, 0xf11d: 0x6c30e020, 0xf11e: 0x6c30e220,
-	0xf120: 0x6c074420, 0xf121: 0x6c14c220,
-	0xf124: 0x6c30e420,
-	0xf12c: 0x6c13f820, 0xf12f: 0x6c30f420,
-	0xf132: 0x6c30ec20,
-	0xf13a: 0x6c30f620,
-	// Block 0x3c5, offset 0xf140
-	0xf147: 0x6c30f020,
-	0xf149: 0x6c30ee20,
-	0xf14f: 0x6c059c20,
-	0xf15a: 0x6c30f820,
-	0xf164: 0x6c30fa20,
-	0xf169: 0x6c30fc20, 0xf16b: 0x6c30f220,
-	0xf16f: 0x6c30ca20,
-	0xf172: 0x6c30fe20,
-	0xf174: 0x6c0f3220,
-	0xf178: 0x6c310620, 0xf17a: 0x6c310820, 0xf17b: 0x6c310420,
-	// Block 0x3c6, offset 0xf180
-	0xf181: 0x6c310220, 0xf182: 0x6c310e20,
-	0xf184: 0x6c310020, 0xf186: 0x6c310a20,
-	0xf18f: 0x6c310c20,
-	0xf193: 0x6c311220,
-	0xf199: 0x6c311020,
-	0xf1a6: 0x6c311620,
-	0xf1ad: 0x6c311820, 0xf1af: 0x6c311a20,
-	0xf1b2: 0x6c171620,
-	0xf1b8: 0x6c311420, 0xf1b9: 0x6c0dce20, 0xf1ba: 0x6c07f220,
-	0xf1bd: 0x6c311c20,
-	// Block 0x3c7, offset 0xf1c0
-	0xf1da: 0x6c311e20, 0xf1db: 0x6c312020,
-	0xf1de: 0x6c312220,
-	// Block 0x3c8, offset 0xf200
-	0xf235: 0x6c312420,
-	0xf238: 0x6c060820, 0xf239: 0x6c312620,
-	0xf23d: 0x6c312820, 0xf23f: 0x6c08ee20,
-	// Block 0x3c9, offset 0xf240
-	0xf241: 0x6c312a20,
-	0xf248: 0x6c312c20, 0xf24b: 0x6c312e20,
-	0xf24c: 0x6c313020,
-	0xf251: 0x6c313620, 0xf252: 0x6c313220, 0xf253: 0x6c16fc20,
-	0xf255: 0x6c313420, 0xf257: 0x6c16a620,
-	0xf25d: 0x6c313820, 0xf25f: 0x6c167e20,
-	0xf265: 0x6c313a20, 0xf266: 0x6c11a020,
-	0xf269: 0x6c313c20, 0xf26a: 0x6c314020,
-	0xf26d: 0x6c314220,
-	0xf278: 0x6c313e20, 0xf279: 0x6c073620, 0xf27a: 0x6c14ea20, 0xf27b: 0x6c145a20,
-	0xf27c: 0x6c1c4020, 0xf27e: 0x6c213620, 0xf27f: 0x6c148a20,
-	// Block 0x3ca, offset 0xf280
-	0xf284: 0x6c018e20,
-	0xf28c: 0x6c314620, 0xf28d: 0x6c040c20, 0xf28e: 0x6c314820, 0xf28f: 0x6c314a20,
-	0xf290: 0x6c314c20, 0xf292: 0x6c074620,
-	0xf294: 0x6c314e20,
-	0xf298: 0x6c235220, 0xf299: 0x6c150620, 0xf29b: 0x6c0dbe20,
-	0xf29c: 0x6c315020, 0xf29d: 0x6c315420, 0xf29e: 0x6c315220,
-	0xf2a0: 0x6c315620,
-	0xf2a5: 0x6c315820,
-	0xf2a8: 0x6c315a20,
-	0xf2af: 0x6c315c20,
-	0xf2b4: 0x6c315e20, 0xf2b6: 0x6c316020, 0xf2b7: 0x6c316220,
-	0xf2b9: 0x6c316420, 0xf2bb: 0x6c316620,
-	0xf2bc: 0x6c316820, 0xf2bd: 0x6c316a20,
-	// Block 0x3cb, offset 0xf2c0
-	0xf2c7: 0x6c316c20,
-	0xf2c8: 0x6c316e20,
-	0xf2ce: 0x6c0f7420,
-	0xf2d3: 0x6c065a20,
-	0xf2d5: 0x6c317220,
-	0xf2e0: 0x6c0cd620, 0xf2e1: 0x6c317420,
-	0xf2ec: 0x6c317620,
-	0xf2fb: 0x6c125e20,
-	0xf2fe: 0x6c317820,
-	// Block 0x3cc, offset 0xf300
-	0xf30a: 0x6c317a20, 0xf30b: 0x6c254c20,
-	0xf30e: 0x6c2c2e20, 0xf30f: 0x6c2f4420,
-	0xf312: 0x6c317c20,
-	0xf314: 0x6c317e20,
-	0xf31f: 0x6c318220,
-	0xf320: 0x6c318420, 0xf321: 0x6c318620, 0xf322: 0x6c16a820, 0xf323: 0x6c318020,
-	0xf326: 0x6c318820, 0xf327: 0x6c318a20,
-	0xf32a: 0x6c318e20,
-	0xf32c: 0x6c318c20,
-	0xf332: 0x6c319220,
-	0xf336: 0x6c319420, 0xf337: 0x6c319020,
-	// Block 0x3cd, offset 0xf340
-	0xf34d: 0x6c163420,
-	0xf355: 0x6c319620,
-	0xf35c: 0x6c319820, 0xf35d: 0x6c258620,
-	0xf360: 0x6c319a20,
-	// Block 0x3ce, offset 0xf380
-	0xf380: 0x6c2bdc20, 0xf381: 0x6c06ce20, 0xf382: 0x6c093c20, 0xf383: 0x6c2c1020,
-	0xf384: 0x6c02c820, 0xf385: 0x6c051c20, 0xf386: 0x6c04f620, 0xf387: 0x6c319820,
-	0xf388: 0x6c319820, 0xf389: 0x6c056420, 0xf38a: 0x6c04ec20, 0xf38b: 0x6c19b020,
-	0xf38c: 0x6c10a820, 0xf38d: 0x6c1dac20, 0xf38e: 0x6c245a20, 0xf38f: 0x6c15d620,
-	0xf390: 0x6c29d420, 0xf391: 0x6c15d820, 0xf392: 0x6c15da20, 0xf393: 0x6c2d5e20,
-	0xf394: 0x6c207020, 0xf395: 0x6c15e420, 0xf396: 0x6c22ae20, 0xf397: 0x6c237220,
-	0xf398: 0x6c15e820, 0xf399: 0x6c15ea20, 0xf39a: 0x6c2fc820, 0xf39b: 0x6c174220,
-	0xf39c: 0x6c15ee20, 0xf39d: 0x6c15f220, 0xf39e: 0x6c22f420, 0xf39f: 0x6c15f820,
-	0xf3a0: 0x6c312220, 0xf3a1: 0x6c15f020, 0xf3a2: 0x6c15f420, 0xf3a3: 0x6c15f620,
-	0xf3a4: 0x6c2b0220, 0xf3a5: 0x6c1e1420, 0xf3a6: 0x6c285620, 0xf3a7: 0x43103e20,
-	0xf3a8: 0x6c16de20, 0xf3a9: 0x6c16e220, 0xf3aa: 0x6c16e820, 0xf3ab: 0x6c16ee20,
-	0xf3ac: 0x6c16f820, 0xf3ad: 0x6c179220, 0xf3ae: 0x6c169020, 0xf3af: 0x6c18b420,
-	0xf3b0: 0x42c98820, 0xf3b1: 0x6c16d020, 0xf3b2: 0x6c22f220, 0xf3b3: 0x6c249620,
-	0xf3b4: 0x6c16f220, 0xf3b5: 0x6c29cc20, 0xf3b6: 0x6c163c20, 0xf3b7: 0x6c16d620,
-	0xf3b8: 0x6c16d820, 0xf3b9: 0x6c16ce20, 0xf3ba: 0x6c07f220, 0xf3bb: 0x6c250420,
-	0xf3bc: 0x6c254420, 0xf3bd: 0x42fb4020, 0xf3be: 0x43079220, 0xf3bf: 0x43260820,
-	// Block 0x3cf, offset 0xf3c0
-	0xf3c0: 0x6c08ee20, 0xf3c1: 0x6c170420, 0xf3c2: 0x6c1a9e20, 0xf3c3: 0x6c16e020,
-	0xf3c4: 0x6c262620, 0xf3c5: 0x6c16f420, 0xf3c6: 0x6c16ec20, 0xf3c7: 0x6c251c20,
-	0xf3c8: 0x6c16d420, 0xf3c9: 0x6c15e220, 0xf3ca: 0x6c1a9620, 0xf3cb: 0x42b8c420,
-	0xf3cc: 0x6c209220, 0xf3cd: 0x42dbb420, 0xf3ce: 0x6c16ea20, 0xf3cf: 0x6c168620,
-	0xf3d0: 0x6c271420, 0xf3d1: 0x6c2ea420, 0xf3d2: 0x6c2f1420, 0xf3d3: 0x6c170020,
-	0xf3d4: 0x6c31a420, 0xf3d5: 0x6c164620, 0xf3d6: 0x6c165620, 0xf3d7: 0x6c003a20,
-	0xf3d8: 0x6c126e20, 0xf3d9: 0x6c166220, 0xf3da: 0x6c2bc620, 0xf3db: 0x6c1dfe20,
-	0xf3dc: 0x6c207020, 0xf3dd: 0x6c0dec20, 0xf3de: 0x6c0e1420, 0xf3df: 0x6c10fa20,
-	0xf3e0: 0x6c0fe420, 0xf3e1: 0x6c161820, 0xf3e2: 0x6c007620, 0xf3e3: 0x6c142c20,
-	0xf3e4: 0x42f1f620, 0xf3e5: 0x6c138820, 0xf3e6: 0x6c131420, 0xf3e7: 0x6c12c420,
-	0xf3e8: 0x6c122e20, 0xf3e9: 0x6c1ed820, 0xf3ea: 0x6c080620, 0xf3eb: 0x6c190a20,
-	0xf3ec: 0x6c07aa20, 0xf3ed: 0x6c0a9c20, 0xf3ee: 0x6c15b620, 0xf3ef: 0x43155420,
-	0xf3f0: 0x6c082020, 0xf3f1: 0x6c0dfc20, 0xf3f2: 0x6c0ef020, 0xf3f3: 0x6c099820,
-	0xf3f4: 0x6c095620, 0xf3f5: 0x6c161e20, 0xf3f6: 0x6c162020, 0xf3f7: 0x6c164020,
-	0xf3f8: 0x6c182620, 0xf3f9: 0x6c185a20, 0xf3fa: 0x6c164c20, 0xf3fb: 0x6c165820,
-	0xf3fc: 0x6c165a20, 0xf3fd: 0x6c165c20, 0xf3fe: 0x6c166020, 0xf3ff: 0x6c18c020,
-	// Block 0x3d0, offset 0xf400
-	0xf400: 0x6c16cc20, 0xf401: 0x6c0a3a20, 0xf402: 0x6c1c6220, 0xf403: 0x6c163a20,
-	0xf404: 0x6c228020, 0xf405: 0x6c24f620, 0xf406: 0x6c2e7420, 0xf407: 0x6c2ffc20,
-	0xf408: 0x6c16a620, 0xf409: 0x6c314820, 0xf40a: 0x6c166620, 0xf40b: 0x42cd8c20,
-	0xf40c: 0x42d6ee20, 0xf40d: 0x6c2cf620, 0xf40e: 0x6c110220, 0xf40f: 0x6c16ba20,
-	0xf410: 0x6c1dba20, 0xf411: 0x6c110820, 0xf412: 0x6c16bc20, 0xf413: 0x6c16be20,
-	0xf414: 0x42e91220, 0xf415: 0x42f39420, 0xf416: 0x6c16c220, 0xf417: 0x6c16c420,
-	0xf418: 0x6c2cdc20, 0xf419: 0x6c16c620, 0xf41a: 0x6c16c820, 0xf41b: 0x43269420,
-	0xf41c: 0x6c16ae20, 0xf41d: 0x6c16b020, 0xf41e: 0x6c00ac20, 0xf41f: 0x6c16b220,
-	0xf420: 0x6c16b420, 0xf421: 0x43155420, 0xf422: 0x6c16b620, 0xf423: 0x6c110420,
-	0xf424: 0x6c110620, 0xf425: 0x42d75c20, 0xf426: 0x6c16c020, 0xf427: 0x6c235e20,
-	0xf428: 0x6c168a20, 0xf429: 0x6c1a1220, 0xf42a: 0x6c10fa20, 0xf42b: 0x6c169420,
-	0xf42c: 0x6c169620, 0xf42d: 0x6c169820, 0xf42e: 0x6c238e20, 0xf42f: 0x6c278420,
-	0xf430: 0x6c27c420, 0xf431: 0x6c169e20, 0xf432: 0x6c16a220, 0xf433: 0x6c2f0420,
-	0xf434: 0x6c166420, 0xf435: 0x6c168e20, 0xf436: 0x6c255020, 0xf437: 0x6c2d9a20,
-	0xf438: 0x6c2ecc20, 0xf439: 0x6c1d1a20, 0xf43a: 0x6c163e20, 0xf43b: 0x6c164220,
-	0xf43c: 0x6c164820, 0xf43d: 0x6c10e820, 0xf43e: 0x6c164a20, 0xf43f: 0x6c207020,
-	// Block 0x3d1, offset 0xf440
-	0xf440: 0x6c22e020, 0xf441: 0x6c165220, 0xf442: 0x6c297e20, 0xf443: 0x6c165e20,
-	0xf444: 0x6c163420, 0xf445: 0x6c1f2a20, 0xf446: 0x6c2e9a20, 0xf447: 0x6c162220,
-	0xf448: 0x42cef620, 0xf449: 0x6c154020, 0xf44a: 0x6c162420, 0xf44b: 0x6c162620,
-	0xf44c: 0x6c162820, 0xf44d: 0x6c162a20, 0xf44e: 0x6c162c20, 0xf44f: 0x6c128220,
-	0xf450: 0x6c168820, 0xf451: 0x6c16fa20, 0xf452: 0x6c1dce20, 0xf453: 0x6c161420,
-	0xf454: 0x6c166a20, 0xf455: 0x6c1bde20, 0xf456: 0x6c21cc20, 0xf457: 0x6c167820,
-	0xf458: 0x6c161620, 0xf459: 0x6c1d6020, 0xf45a: 0x6c053820, 0xf45b: 0x6c161820,
-	0xf45c: 0x6c163020, 0xf45d: 0x6c15fc20, 0xf45e: 0x6c15fe20, 0xf45f: 0x6c160020,
-	0xf460: 0x6c006e20, 0xf461: 0x6c160220, 0xf462: 0x6c160420, 0xf463: 0x6c0f7620,
-	0xf464: 0x6c160620, 0xf465: 0x6c160a20, 0xf466: 0x6c1da420, 0xf467: 0x6c160c20,
-	0xf468: 0x6c160e20, 0xf469: 0x6c161020, 0xf46a: 0x6c161220, 0xf46b: 0x6c106620,
-	0xf46c: 0x6c0f8820, 0xf46d: 0x6c193020, 0xf46e: 0x6c167220, 0xf46f: 0x42e93020,
-	0xf470: 0x6c29ca20, 0xf471: 0x6c167a20, 0xf472: 0x6c167c20, 0xf473: 0x6c167e20,
-	0xf474: 0x6c166e20, 0xf475: 0x6c167020, 0xf476: 0x6c167620, 0xf477: 0x6c161a20,
-	0xf478: 0x6c02b020, 0xf479: 0x6c162e20, 0xf47a: 0x42e58020, 0xf47b: 0x6c229820,
-	0xf47c: 0x6c08f220, 0xf47d: 0x6c09c020, 0xf47e: 0x6c0e7a20, 0xf47f: 0x6c086620,
-	// Block 0x3d2, offset 0xf480
-	0xf480: 0x6c0c3420, 0xf481: 0x6c0fde20, 0xf482: 0x6c0dde20, 0xf483: 0x6c102420,
-	0xf484: 0x6c0dd820, 0xf485: 0x6c105420, 0xf486: 0x6c140e20, 0xf487: 0x6c2ce020,
-	0xf488: 0x6c070420, 0xf489: 0x6c071a20, 0xf48a: 0x6c05f620, 0xf48b: 0x6c028220,
-	0xf48c: 0x6c181a20, 0xf48d: 0x42ab8020, 0xf48e: 0x43f41c20, 0xf48f: 0x43f41e20,
-	0xf490: 0x6c0f0a20, 0xf491: 0x43f42220, 0xf492: 0x6c0be420, 0xf493: 0x43f42620,
-	0xf494: 0x43f42820, 0xf495: 0x42a3bc20, 0xf496: 0x6c0ea020, 0xf497: 0x6c012a20,
-	0xf498: 0x6c169a20, 0xf499: 0x6c0b4420, 0xf49a: 0x6c0aa220, 0xf49b: 0x6c131a20,
-	0xf49c: 0x6c153e20, 0xf49d: 0x6c0bf420, 0xf49e: 0x6c00ce20, 0xf49f: 0x43f43e20,
-	0xf4a0: 0x430c2420, 0xf4a1: 0x43f44220, 0xf4a2: 0x6c0a3420, 0xf4a3: 0x43f44620,
-	0xf4a4: 0x43f44820, 0xf4a5: 0x6c009e20, 0xf4a6: 0x6c0fd420, 0xf4a7: 0x43f44e20,
-	0xf4a8: 0x43f45020, 0xf4a9: 0x43f45220, 0xf4aa: 0x6c120620, 0xf4ab: 0x6c08bc20,
-	0xf4ac: 0x6c036620, 0xf4ad: 0x6c0f3220, 0xf4ae: 0x4321bc20, 0xf4af: 0x6c16a020,
-	0xf4b0: 0x6c12f820, 0xf4b1: 0x6c0cd820, 0xf4b2: 0x6c14e020, 0xf4b3: 0x6c138a20,
-	0xf4b4: 0x6c04c820, 0xf4b5: 0x6c121820, 0xf4b6: 0x6c02be20, 0xf4b7: 0x6c0e1820,
-	0xf4b8: 0x6c038e20, 0xf4b9: 0x6c135220, 0xf4ba: 0x6c143220, 0xf4bb: 0x6c0cec20,
-	0xf4bc: 0x6c1b9c20, 0xf4bd: 0x6c022a20, 0xf4be: 0x6c025c20, 0xf4bf: 0x6c0d3820,
-	// Block 0x3d3, offset 0xf4c0
-	0xf4c0: 0x6c0ec020, 0xf4c1: 0x6c12c020, 0xf4c2: 0x6c03a620, 0xf4c3: 0x6c0a2220,
-	0xf4c4: 0x6c116220, 0xf4c5: 0x6c023c20, 0xf4c6: 0x6c0a2620, 0xf4c7: 0x6c033220,
-	0xf4c8: 0x6c093220, 0xf4c9: 0x42e45620, 0xf4ca: 0x6c0de420, 0xf4cb: 0x6c123420,
-	0xf4cc: 0x6c093420, 0xf4cd: 0x6c089a20, 0xf4ce: 0x6c03ba20, 0xf4cf: 0x6c157420,
-	0xf4d0: 0x6c0cc420, 0xf4d1: 0x6c09e220, 0xf4d2: 0x6c01dc20, 0xf4d3: 0x6c0f5e20,
-	0xf4d4: 0x6c074020, 0xf4d5: 0x6c108220, 0xf4d6: 0x6c0c4220, 0xf4d7: 0x6c16c220,
-	0xf4d8: 0x6c270220, 0xf4d9: 0x6c11f620, 0xf4da: 0x6c0a2c20, 0xf4db: 0x6c093820,
-	0xf4dc: 0x6c09a620, 0xf4dd: 0x4304f220, 0xf4de: 0x4304f220, 0xf4df: 0x6c0ea420,
-	0xf4e0: 0x6c02cc20, 0xf4e1: 0x6c08aa20, 0xf4e2: 0x6c013020, 0xf4e3: 0x6c04e820,
-	0xf4e4: 0x6c12bc20, 0xf4e5: 0x6c0d3e20, 0xf4e6: 0x431f6c20, 0xf4e7: 0x6c009e20,
-	0xf4e8: 0x6c10ca20, 0xf4e9: 0x6c04aa20, 0xf4ea: 0x6c12be20, 0xf4eb: 0x6c056a20,
-	0xf4ec: 0x4885dc20, 0xf4ed: 0x6c036820,
-	0xf4f0: 0x6c135c20, 0xf4f1: 0x6c185420, 0xf4f2: 0x6c0ca420, 0xf4f3: 0x429f0020,
-	0xf4f4: 0x6c09c420, 0xf4f5: 0x6c182c20, 0xf4f6: 0x6c155820, 0xf4f7: 0x6c094620,
-	0xf4f8: 0x6c02be20, 0xf4f9: 0x42aaaa20, 0xf4fa: 0x6c199620, 0xf4fb: 0x42abc420,
-	0xf4fc: 0x6c0f0a20, 0xf4fd: 0x6c133620, 0xf4fe: 0x6c014020, 0xf4ff: 0x6c144a20,
-	// Block 0x3d4, offset 0xf500
-	0xf500: 0x6c1b0820, 0xf501: 0x42b65020, 0xf502: 0x42bda420, 0xf503: 0x42bdb220,
-	0xf504: 0x6c07b020, 0xf505: 0x6c1cb620, 0xf506: 0x6c1d2c20, 0xf507: 0x6c0b2e20,
-	0xf508: 0x6c154820, 0xf509: 0x6c0d3820, 0xf50a: 0x42c2c020, 0xf50b: 0x6c0ec020,
-	0xf50c: 0x6c0da620, 0xf50d: 0x6c1e5820, 0xf50e: 0x6c1e2c20, 0xf50f: 0x42c8a420,
-	0xf510: 0x6c1eca20, 0xf511: 0x6c0be420, 0xf512: 0x6c16e220, 0xf513: 0x6c141020,
-	0xf514: 0x6c0aee20, 0xf515: 0x6c210220, 0xf516: 0x6c082020, 0xf517: 0x6c162420,
-	0xf518: 0x42ddb620, 0xf519: 0x6c08d420, 0xf51a: 0x6c033220, 0xf51b: 0x6c109020,
-	0xf51c: 0x6c093220, 0xf51d: 0x42ef4e20, 0xf51e: 0x6c094e20, 0xf51f: 0x6c11f020,
-	0xf520: 0x6c0ea020, 0xf521: 0x42e8e220, 0xf522: 0x42ea0c20, 0xf523: 0x6c020820,
-	0xf524: 0x42ec3a20, 0xf525: 0x6c243820, 0xf526: 0x6c012a20, 0xf527: 0x6c0bf220,
-	0xf528: 0x6c0eec20, 0xf529: 0x42ee9420, 0xf52a: 0x6c0e7e20, 0xf52b: 0x42f19820,
-	0xf52c: 0x42f56220, 0xf52d: 0x6c0c4220, 0xf52e: 0x42f8f620, 0xf52f: 0x6c26c220,
-	0xf530: 0x6c16c220, 0xf531: 0x42fe7c20, 0xf532: 0x6c093820, 0xf533: 0x6c070220,
-	0xf534: 0x6c01ec20, 0xf535: 0x430ef220, 0xf536: 0x6c2aee20, 0xf537: 0x6c132020,
-	0xf538: 0x6c08aa20, 0xf539: 0x6c0ed820, 0xf53a: 0x6c0a3420, 0xf53b: 0x6c0c0220,
-	0xf53c: 0x6c013020, 0xf53d: 0x6c0dec20, 0xf53e: 0x6c154e20, 0xf53f: 0x6c04e820,
-	// Block 0x3d5, offset 0xf540
-	0xf540: 0x6c1ede20, 0xf541: 0x6c0d3e20, 0xf542: 0x6c155020, 0xf543: 0x6c2d5020,
-	0xf544: 0x43233220, 0xf545: 0x4324ec20, 0xf546: 0x432cf820, 0xf547: 0x6c10ca20,
-	0xf548: 0x6c153e20, 0xf549: 0x432fb620, 0xf54a: 0x6c04aa20, 0xf54b: 0x43301620,
-	0xf54c: 0x6c12be20, 0xf54d: 0x43362420, 0xf54e: 0x6c319820, 0xf54f: 0x48509420,
-	0xf550: 0x48508820, 0xf551: 0x4867aa20, 0xf552: 0x44773a20, 0xf553: 0x44803020,
-	0xf554: 0x44807220, 0xf555: 0x48a49220, 0xf556: 0x48b9a020, 0xf557: 0x48fda620,
-	0xf558: 0x433e8620, 0xf559: 0x433f1c20,
-	// Block 0x3d6, offset 0xf580
-	0xf581: 0x4002ba20, 0xf582: 0xe00037ec, 0xf583: 0x4004ea20,
-	0xf584: 0x4027de20, 0xf585: 0x4004ec20, 0xf586: 0xe00037dc, 0xf587: 0x4003d220,
-	0xf588: 0x4003f420, 0xf589: 0x4003f620, 0xf58a: 0x4004d820, 0xf58b: 0x40093820,
-	0xf58c: 0x40024020, 0xf58d: 0x40021a20, 0xf58e: 0x4002e420, 0xf58f: 0x4004e220,
-	0xf590: 0x4029cc20, 0xf591: 0x4029ce20, 0xf592: 0x4029d020, 0xf593: 0x4029d220,
-	0xf594: 0x4029d420, 0xf595: 0x4029d620, 0xf596: 0x4029d820, 0xf597: 0x4029da20,
-	0xf598: 0x4029dc20, 0xf599: 0x4029de20, 0xf59a: 0x40026c20, 0xf59b: 0x40026220,
-	0xf59c: 0xe00037e7, 0xf59d: 0x40094220, 0xf59e: 0xe00037e2, 0xf59f: 0x4002c420,
-	0xf5a0: 0x4004d620, 0xf5a1: 0x002bde88, 0xf5a2: 0x002c0a88, 0xf5a3: 0x002c3a88,
-	0xf5a4: 0x002c6288, 0xf5a5: 0x002c9888, 0xf5a6: 0x002d0888, 0xf5a7: 0x002d2288,
-	0xf5a8: 0x002d6888, 0xf5a9: 0x002d9a88, 0xf5aa: 0x002dcc88, 0xf5ab: 0x002dfe88,
-	0xf5ac: 0x002e2288, 0xf5ad: 0x002e8288, 0xf5ae: 0x002e9e88, 0xf5af: 0x002ee288,
-	0xf5b0: 0x002f2c88, 0xf5b1: 0x002f5688, 0xf5b2: 0x002f7a88, 0xf5b3: 0x002fe688,
-	0xf5b4: 0x00302c88, 0xf5b5: 0x00306c88, 0xf5b6: 0x0030be88, 0xf5b7: 0x0030e288,
-	0xf5b8: 0x0030f688, 0xf5b9: 0x00310088, 0xf5ba: 0x00312a88, 0xf5bb: 0x4003f820,
-	0xf5bc: 0x4003d220, 0xf5bd: 0x4003fa20, 0xf5be: 0x40062420, 0xf5bf: 0x40021620,
-	// Block 0x3d7, offset 0xf5c0
-	0xf5c0: 0x40061e20, 0xf5c1: 0x402bde20, 0xf5c2: 0x402c0a20, 0xf5c3: 0x402c3a20,
-	0xf5c4: 0x402c6220, 0xf5c5: 0x402c9820, 0xf5c6: 0x402d0820, 0xf5c7: 0x402d2220,
-	0xf5c8: 0x402d6820, 0xf5c9: 0x402d9a20, 0xf5ca: 0x402dcc20, 0xf5cb: 0x402dfe20,
-	0xf5cc: 0x402e2220, 0xf5cd: 0x402e8220, 0xf5ce: 0x402e9e20, 0xf5cf: 0x402ee220,
-	0xf5d0: 0x402f2c20, 0xf5d1: 0x402f5620, 0xf5d2: 0x402f7a20, 0xf5d3: 0x402fe620,
-	0xf5d4: 0x40302c20, 0xf5d5: 0x40306c20, 0xf5d6: 0x4030be20, 0xf5d7: 0x4030e220,
-	0xf5d8: 0x4030f620, 0xf5d9: 0x40310020, 0xf5da: 0x40312a20, 0xf5db: 0x4003fc20,
-	0xf5dc: 0x40094820, 0xf5dd: 0x4003fe20, 0xf5de: 0x40094c20, 0xf5df: 0x00041883,
-	0xf5e0: 0x00041a83, 0xf5e1: 0x40030420, 0xf5e2: 0x4004a420, 0xf5e3: 0x4004a620,
-	0xf5e4: 0x40025c20, 0xf5e5: 0x00023e92, 0xf5e6: 0xca2835c1, 0xf5e7: 0xc6393241,
-	0xf5e8: 0xc7093241, 0xf5e9: 0xc7c935c1, 0xf5ea: 0xc8b03241, 0xf5eb: 0xc9653241,
-	0xf5ec: 0xc6d43241, 0xf5ed: 0xc89b3241, 0xf5ee: 0xca093241, 0xf5ef: 0xc83435c1,
-	0xf5f0: 0x0027d692, 0xf5f1: 0xc63f3241, 0xf5f2: 0xc70f3241, 0xf5f3: 0xc7de35c1,
-	0xf5f4: 0xc8b63241, 0xf5f5: 0xc96b3241, 0xf5f6: 0xc6523241, 0xf5f7: 0xc72235c1,
-	0xf5f8: 0xc80035c1, 0xf5f9: 0xc8c93241, 0xf5fa: 0xc97e35c1, 0xf5fb: 0xc66b35c1,
-	0xf5fc: 0xc74435c1, 0xf5fd: 0xc82235c1, 0xf5fe: 0xc8e235c1, 0xf5ff: 0xc99b35c1,
-	// Block 0x3d8, offset 0xf600
-	0xf600: 0xc68835c1, 0xf601: 0xc76135c1, 0xf602: 0xc84935c1, 0xf603: 0xc8ff35c1,
-	0xf604: 0xc9bd35c1, 0xf605: 0xc6983241, 0xf606: 0xc7713241, 0xf607: 0xc85c3241,
-	0xf608: 0xc90f3241, 0xf609: 0xc9cd3241, 0xf60a: 0xc6b635c1, 0xf60b: 0xc78f35c1,
-	0xf60c: 0xc87a35c1, 0xf60d: 0xc92d35c1, 0xf60e: 0xc9eb35c1, 0xf60f: 0xc6ce3241,
-	0xf610: 0xc7a73241, 0xf611: 0xc8953241, 0xf612: 0xc9453241, 0xf613: 0xca033241,
-	0xf614: 0xc6da3241, 0xf615: 0xc8a13241, 0xf616: 0xca0f3241, 0xf617: 0xc6e33241,
-	0xf618: 0xc7b03241, 0xf619: 0xc8aa3241, 0xf61a: 0xc94e3241, 0xf61b: 0xca183241,
-	0xf61c: 0xc6fd35c1, 0xf61d: 0xca313aa1, 0xf61e: 0xa0012812, 0xf61f: 0xa0012912,
-	0xf620: 0x4063a620, 0xf621: 0x4062ac20, 0xf622: 0x4062ae20, 0xf623: 0x40646820,
-	0xf624: 0x4062b020, 0xf625: 0x40646c20, 0xf626: 0x40646e20, 0xf627: 0x4062b220,
-	0xf628: 0x4062b420, 0xf629: 0x4062b620, 0xf62a: 0x40647420, 0xf62b: 0x40647620,
-	0xf62c: 0x40647820, 0xf62d: 0x40647a20, 0xf62e: 0x40647c20, 0xf62f: 0x40647e20,
-	0xf630: 0x4062e020, 0xf631: 0x4062b820, 0xf632: 0x4062ba20, 0xf633: 0x4062bc20,
-	0xf634: 0x4062ee20, 0xf635: 0x4062be20, 0xf636: 0x4062c020, 0xf637: 0x4062c220,
-	0xf638: 0x4062c420, 0xf639: 0x4062c620, 0xf63a: 0x4062c820, 0xf63b: 0x4062ca20,
-	0xf63c: 0x4062cc20, 0xf63d: 0x4062ce20, 0xf63e: 0x4062d020,
-	// Block 0x3d9, offset 0xf640
-	0xf642: 0x4063a820, 0xf643: 0x4063aa20,
-	0xf644: 0x4063ac20, 0xf645: 0x4063ae20, 0xf646: 0x4063b020, 0xf647: 0x4063b220,
-	0xf64a: 0x4063b420, 0xf64b: 0x4063b620,
-	0xf64c: 0x4063b820, 0xf64d: 0x4063ba20, 0xf64e: 0x4063bc20, 0xf64f: 0x4063be20,
-	0xf652: 0x4063c020, 0xf653: 0x4063c220,
-	0xf654: 0x4063c420, 0xf655: 0x4063c620, 0xf656: 0x4063c820, 0xf657: 0x4063ca20,
-	0xf65a: 0x4063cc20, 0xf65b: 0x4063ce20,
-	0xf65c: 0x4063d020,
-	0xf660: 0x4027dc20, 0xf661: 0x4027e020, 0xf662: 0x40094620, 0xf663: 0x40021220,
-	0xf664: 0x40094a20, 0xf665: 0x4027e220, 0xf666: 0x40280820,
-	0xf668: 0x400d3220, 0xf669: 0x40084420, 0xf66a: 0x40084820, 0xf66b: 0x40084620,
-	0xf66c: 0x40084a20, 0xf66d: 0x400e6e20, 0xf66e: 0x400ec420,
-	0xf679: 0xa0000000, 0xf67a: 0xa0000000, 0xf67b: 0xa0000000,
-	0xf67c: 0x4027ae20, 0xf67d: 0x4027b020, 0xf67e: 0x00000285, 0xf67f: 0x2bfffe85,
-	// Block 0x3da, offset 0xf680
-	0xf680: 0xe00037d0, 0xf681: 0xe00037b8, 0xf682: 0xe00037bc, 0xf683: 0xe00037c4,
-	0xf684: 0xe00037d4, 0xf685: 0xe00037c8, 0xf686: 0xe00037d8, 0xf687: 0xe00037c0,
-	0xf688: 0xe00037cc,
-	0xf690: 0x02bf2e86, 0xf691: 0x02a7de86,
-	// Block 0x3db, offset 0xf6c0
-	0xf6c0: 0x429c7a20, 0xf6c1: 0x6c036a20, 0xf6c2: 0x429c8220, 0xf6c3: 0x48024420,
-	0xf6c4: 0x429ec020, 0xf6c5: 0x6c12f820, 0xf6c6: 0x429f7620, 0xf6c7: 0x42a00420,
-	0xf6c8: 0x42a0f420, 0xf6c9: 0x6c124e20, 0xf6ca: 0x6c0cd820, 0xf6cb: 0x6c0d3420,
-	0xf6cc: 0x44693c20, 0xf6cd: 0x480c7420, 0xf6ce: 0x6c14e020, 0xf6cf: 0x6c182020,
-	0xf6d0: 0x42a2c820, 0xf6d1: 0x6c050a20, 0xf6d2: 0x480a3820, 0xf6d3: 0x44697220,
-	0xf6d4: 0x42a2ce20, 0xf6d5: 0x6c07a420, 0xf6d6: 0x480a9620, 0xf6d7: 0x6c0ada20,
-	0xf6d8: 0x6c184020, 0xf6d9: 0x429d9820, 0xf6da: 0x6c0fea20, 0xf6db: 0x6c185420,
-	0xf6dc: 0x4923be20, 0xf6dd: 0x6c186820, 0xf6de: 0x6c0b6220, 0xf6df: 0x4469be20,
-	0xf6e0: 0x6c073a20, 0xf6e1: 0x42a48c20, 0xf6e2: 0x6c02bc20, 0xf6e3: 0x42a4ee20,
-	0xf6e4: 0x446a2a20, 0xf6e5: 0x6c155820, 0xf6e6: 0x6c138a20, 0xf6e7: 0x6c04c820,
-	0xf6e8: 0x6c094620, 0xf6e9: 0x6c13ba20, 0xf6ea: 0x6c18c620, 0xf6eb: 0x6c142c20,
-	0xf6ec: 0x6c18e820, 0xf6ed: 0x6c121820, 0xf6ee: 0x6c118020, 0xf6ef: 0x6c0d4820,
-	0xf6f0: 0x42a6fa20, 0xf6f1: 0x6c047c20, 0xf6f2: 0x6c047c20, 0xf6f3: 0x6c047c20,
-	0xf6f4: 0x48145820, 0xf6f5: 0x6c023e20, 0xf6f6: 0x6c042020, 0xf6f7: 0x6c191020,
-	0xf6f8: 0x4816c620, 0xf6f9: 0x6c047e20, 0xf6fa: 0x6c090020, 0xf6fb: 0x42a80c20,
-	0xf6fc: 0x42a93c20, 0xf6fd: 0x6c042220, 0xf6fe: 0x6c0f4020, 0xf6ff: 0x6c098c20,
-	// Block 0x3dc, offset 0xf700
-	0xf700: 0x6c195220, 0xf701: 0x42a9ec20, 0xf702: 0x6c0ff020, 0xf703: 0x6c055c20,
-	0xf704: 0x6c198220, 0xf705: 0x6c0c9e20, 0xf706: 0x6c0c9e20, 0xf707: 0x6c199620,
-	0xf708: 0x6c040020, 0xf709: 0x42ab6620, 0xf70a: 0x42ab8420, 0xf70b: 0x6c1a2620,
-	0xf70c: 0x6c0e1820, 0xf70d: 0x42ae2e20, 0xf70e: 0x42aca220, 0xf70f: 0x6c133420,
-	0xf710: 0x6c0c3420, 0xf711: 0x6c0ce420, 0xf712: 0x6c0ade20, 0xf713: 0x6c0b0220,
-	0xf714: 0x42b01a20, 0xf715: 0x6c056220, 0xf716: 0x42b06420, 0xf717: 0x6c13be20,
-	0xf718: 0x42b15820, 0xf719: 0x4829c820, 0xf71a: 0x6c116c20, 0xf71b: 0x6c0f2620,
-	0xf71c: 0x42b20c20, 0xf71d: 0x6c0d7620, 0xf71e: 0x6c14b820, 0xf71f: 0x6c1ace20,
-	0xf720: 0x482d5020, 0xf721: 0x482dd420, 0xf722: 0x42b3d820, 0xf723: 0x42b43620,
-	0xf724: 0x42b44e20, 0xf725: 0x42b3b020, 0xf726: 0x6c12cc20, 0xf727: 0x446ddc20,
-	0xf728: 0x446df820, 0xf729: 0x42b61020, 0xf72a: 0x6c1b3420, 0xf72b: 0x6c1b3420,
-	0xf72c: 0x48339020, 0xf72d: 0x6c1b5c20, 0xf72e: 0x42b7b020, 0xf72f: 0x6c10fa20,
-	0xf730: 0x6c1b7620, 0xf731: 0x48363020, 0xf732: 0x6c097e20, 0xf733: 0x6c0a6220,
-	0xf734: 0x6c101820, 0xf735: 0x6c1b8420, 0xf736: 0x446f0220, 0xf737: 0x6c0fc220,
-	0xf738: 0x6c1b9c20, 0xf739: 0x42b98020, 0xf73a: 0x42b91a20, 0xf73b: 0x483bc820,
-	0xf73c: 0x42ba8620, 0xf73d: 0x483bcc20, 0xf73e: 0x42badc20, 0xf73f: 0x42bad620,
-	// Block 0x3dd, offset 0xf740
-	0xf740: 0x42baf820, 0xf741: 0x6c0a1420, 0xf742: 0x42bbc420, 0xf743: 0x44705e20,
-	0xf744: 0x6c0e0220, 0xf745: 0x42bc5020, 0xf746: 0x6c140620, 0xf747: 0x42bcd220,
-	0xf748: 0x4470c420, 0xf749: 0x48430620, 0xf74a: 0x4470f820, 0xf74b: 0x42bd6020,
-	0xf74c: 0x42bd6620, 0xf74d: 0x6c0a2820, 0xf74e: 0x6c16de20, 0xf74f: 0x49472420,
-	0xf750: 0x6c1c6e20, 0xf751: 0x48466220, 0xf752: 0x48466220, 0xf753: 0x6c286820,
-	0xf754: 0x42be4420, 0xf755: 0x42be4420, 0xf756: 0x44718e20, 0xf757: 0x48657020,
-	0xf758: 0x48c3b420, 0xf759: 0x6c056620, 0xf75a: 0x6c0ebc20, 0xf75b: 0x4471c620,
-	0xf75c: 0x42bf3420, 0xf75d: 0x6c10f020, 0xf75e: 0x6c088020, 0xf75f: 0x42bff220,
-	0xf760: 0x6c1d0220, 0xf761: 0x44727420, 0xf762: 0x44723820, 0xf763: 0x6c022a20,
-	0xf764: 0x484da820, 0xf765: 0x6c109620, 0xf766: 0x6c08cc20, 0xf767: 0x6c06c020,
-	0xf768: 0x6c0b2e20, 0xf769: 0x6c06c020, 0xf76a: 0x42c2f420, 0xf76b: 0x6c0d3820,
-	0xf76c: 0x6c05da20, 0xf76d: 0x6c133820, 0xf76e: 0x42c35e20, 0xf76f: 0x42c3bc20,
-	0xf770: 0x6c0ec020, 0xf771: 0x6c1dac20, 0xf772: 0x6c0bdc20, 0xf773: 0x6c1dc620,
-	0xf774: 0x42c4ba20, 0xf775: 0x6c13cc20, 0xf776: 0x6c1df220, 0xf777: 0x6c1e2620,
-	0xf778: 0x48561820, 0xf779: 0x6c120820, 0xf77a: 0x42c5f820, 0xf77b: 0x6c092c20,
-	0xf77c: 0x6c0cf620, 0xf77d: 0x42c7c820, 0xf77e: 0x4857e220, 0xf77f: 0x42c84420,
-	// Block 0x3de, offset 0xf780
-	0xf780: 0x42c78a20, 0xf781: 0x6c014820, 0xf782: 0x44745c20, 0xf783: 0x6c145420,
-	0xf784: 0x42c8fc20, 0xf785: 0x42c93a20, 0xf786: 0x42c8ee20, 0xf787: 0x4474d820,
-	0xf788: 0x6c12c020, 0xf789: 0x6c057620, 0xf78a: 0x48601420, 0xf78b: 0x42cbc620,
-	0xf78c: 0x6c0a2e20, 0xf78d: 0x6c1f1420, 0xf78e: 0x44763220, 0xf78f: 0x6c0a2220,
-	0xf790: 0x44761020, 0xf791: 0x4475c820, 0xf792: 0x6c141620, 0xf793: 0x6c183c20,
-	0xf794: 0x6c07a620, 0xf795: 0x42cd3820, 0xf796: 0x6c27ec20, 0xf797: 0x4487b220,
-	0xf798: 0x6c16e220, 0xf799: 0x6c141020, 0xf79a: 0x42ce4220, 0xf79b: 0x6c1f7020,
-	0xf79c: 0x6c094a20, 0xf79d: 0x48678620, 0xf79e: 0x44769220, 0xf79f: 0x42cff420,
-	0xf7a0: 0x6c1f8c20, 0xf7a1: 0x42d0a420, 0xf7a2: 0x6c116220, 0xf7a3: 0x4868da20,
-	0xf7a4: 0x42d11c20, 0xf7a5: 0x42d03e20, 0xf7a6: 0x42d22820, 0xf7a7: 0x44773a20,
-	0xf7a8: 0x42d28420, 0xf7a9: 0x42d34620, 0xf7aa: 0x42d3d420, 0xf7ab: 0x42d55020,
-	0xf7ac: 0x486d4620, 0xf7ad: 0x6c051e20, 0xf7ae: 0x44783020, 0xf7af: 0x6c08d220,
-	0xf7b0: 0x48714e20, 0xf7b1: 0x6c20f820, 0xf7b2: 0x44789c20, 0xf7b3: 0x42d6e420,
-	0xf7b4: 0x42d73e20, 0xf7b5: 0x6c082020, 0xf7b6: 0x6c028c20, 0xf7b7: 0x48751a20,
-	0xf7b8: 0x483a1620, 0xf7b9: 0x4875f420, 0xf7ba: 0x6c11ec20, 0xf7bb: 0x48797820,
-	0xf7bc: 0x6c014c20, 0xf7bd: 0x42d99a20, 0xf7be: 0x42d8ce20, 0xf7bf: 0x42da2c20,
-	// Block 0x3df, offset 0xf7c0
-	0xf7c0: 0x6c113620, 0xf7c1: 0x6c023c20, 0xf7c2: 0x6c162420, 0xf7c3: 0x6c06dc20,
-	0xf7c4: 0x6c0b3a20, 0xf7c5: 0x6c21a620, 0xf7c6: 0x487a3c20, 0xf7c7: 0x42da6820,
-	0xf7c8: 0x6c06de20, 0xf7c9: 0x6c21d220, 0xf7ca: 0x447a6620, 0xf7cb: 0x6c08d420,
-	0xf7cc: 0x42dd8e20, 0xf7cd: 0x487da220, 0xf7ce: 0x6c21a820, 0xf7cf: 0x6c0ec820,
-	0xf7d0: 0x487ebc20, 0xf7d1: 0x487f1c20, 0xf7d2: 0x6c226020, 0xf7d3: 0x42e07220,
-	0xf7d4: 0x6c109020, 0xf7d5: 0x6c228220, 0xf7d6: 0x447b2c20, 0xf7d7: 0x42e09420,
-	0xf7d8: 0x6c07bc20, 0xf7d9: 0x42e0ee20, 0xf7da: 0x6c0e2820, 0xf7db: 0x480a4a20,
-	0xf7dc: 0x42e28a20, 0xf7dd: 0x4884c620, 0xf7de: 0x42e33820, 0xf7df: 0x48875620,
-	0xf7e0: 0x6c22f620, 0xf7e1: 0x6c094e20, 0xf7e2: 0x42e4a020, 0xf7e3: 0x488c1020,
-	0xf7e4: 0x6c07c020, 0xf7e5: 0x42e52a20, 0xf7e6: 0x488e6a20, 0xf7e7: 0x48902820,
-	0xf7e8: 0x6c236220, 0xf7e9: 0x6c018420, 0xf7ea: 0x447d5820, 0xf7eb: 0x42e74a20,
-	0xf7ec: 0x447d7020, 0xf7ed: 0x447d7020, 0xf7ee: 0x42e88e20, 0xf7ef: 0x6c238c20,
-	0xf7f0: 0x42e8e220, 0xf7f1: 0x42e90a20, 0xf7f2: 0x6c23a020, 0xf7f3: 0x447e3620,
-	0xf7f4: 0x42ea4820, 0xf7f5: 0x48986c20, 0xf7f6: 0x42ea7c20, 0xf7f7: 0x48992420,
-	0xf7f8: 0x6c007620, 0xf7f9: 0x48433e20, 0xf7fa: 0x42ec2020, 0xf7fb: 0x489f4220,
-	0xf7fc: 0x489f7020, 0xf7fd: 0x48a08820, 0xf7fe: 0x447ff820, 0xf7ff: 0x44801020,
-	// Block 0x3e0, offset 0xf800
-	0xf800: 0x6c0eec20, 0xf801: 0x48a1e620, 0xf802: 0x48a1e420, 0xf803: 0x48a23220,
-	0xf804: 0x48a26620, 0xf805: 0x6c24a820, 0xf806: 0x6c0b4220, 0xf807: 0x6c0b4220,
-	0xf808: 0x42ee9420, 0xf809: 0x44807220, 0xf80a: 0x6c24c820, 0xf80b: 0x44808c20,
-	0xf80c: 0x44812c20, 0xf80d: 0x48a83a20, 0xf80e: 0x42f09c20, 0xf80f: 0x6c250420,
-	0xf810: 0x42f19820, 0xf811: 0x4481c620, 0xf812: 0x48ac4c20, 0xf813: 0x6c0cc420,
-	0xf814: 0x48ad3420, 0xf815: 0x48ad8a20, 0xf816: 0x6c131a20, 0xf817: 0x42f3d620,
-	0xf818: 0x44825e20, 0xf819: 0x6c074020, 0xf81a: 0x42f49420, 0xf81b: 0x6c01ac20,
-	0xf81c: 0x48b2f820, 0xf81d: 0x48b54e20, 0xf81e: 0x48b54e20, 0xf81f: 0x42f5dc20,
-	0xf820: 0x44840420, 0xf821: 0x48b75620, 0xf822: 0x6c261820, 0xf823: 0x6c0e6a20,
-	0xf824: 0x44844e20, 0xf825: 0x48b90020, 0xf826: 0x6c268420, 0xf827: 0x44854020,
-	0xf828: 0x42f9d020, 0xf829: 0x42f9c620, 0xf82a: 0x6c03c020, 0xf82b: 0x48bf0c20,
-	0xf82c: 0x6c26bc20, 0xf82d: 0x44860220, 0xf82e: 0x6c26d220, 0xf82f: 0x42fc0420,
-	0xf830: 0x42fc8a20, 0xf831: 0x44866820, 0xf832: 0x48c45020, 0xf833: 0x48c48e20,
-	0xf834: 0x4486b220, 0xf835: 0x48c5b220, 0xf836: 0x42fef420, 0xf837: 0x48c67c20,
-	0xf838: 0x42ff2a20, 0xf839: 0x42fff420, 0xf83a: 0x6c093820, 0xf83b: 0x48c9b420,
-	0xf83c: 0x48ca4620, 0xf83d: 0x4300c020, 0xf83e: 0x48cb5020, 0xf83f: 0x6c27d620,
-	// Block 0x3e1, offset 0xf840
-	0xf840: 0x4866be20, 0xf841: 0x4487aa20, 0xf842: 0x6c009220, 0xf843: 0x43020620,
-	0xf844: 0x44881620, 0xf845: 0x6c281420, 0xf846: 0x42b56a20, 0xf847: 0x48cf4e20,
-	0xf848: 0x48cf6a20, 0xf849: 0x48672620, 0xf84a: 0x48673820, 0xf84b: 0x6c286820,
-	0xf84c: 0x43040820, 0xf84d: 0x6c08ea20, 0xf84e: 0x4488d620, 0xf84f: 0x43052220,
-	0xf850: 0x6c00a420, 0xf851: 0x6c091e20, 0xf852: 0x42a56620, 0xf853: 0x6c01e420,
-	0xf854: 0x6c13e220, 0xf855: 0x6c020c20, 0xf856: 0x6c050020, 0xf857: 0x48d67820,
-	0xf858: 0x6c095620, 0xf859: 0x43063a20, 0xf85a: 0x4306c620, 0xf85b: 0x43075a20,
-	0xf85c: 0x6c28f220, 0xf85d: 0x6c292820, 0xf85e: 0x4307ce20, 0xf85f: 0x6c0ea420,
-	0xf860: 0x4306a620, 0xf861: 0x6c03f820, 0xf862: 0x6c04e220, 0xf863: 0x6c07cc20,
-	0xf864: 0x48d86c20, 0xf865: 0x48dad620, 0xf866: 0x48d9aa20, 0xf867: 0x448a5620,
-	0xf868: 0x4309e220, 0xf869: 0x4309e620, 0xf86a: 0x430a2c20, 0xf86b: 0x48e79420,
-	0xf86c: 0x430ac820, 0xf86d: 0x48de5820, 0xf86e: 0x448aba20, 0xf86f: 0x448ac220,
-	0xf870: 0x48df6220, 0xf871: 0x48e1a420, 0xf872: 0x448ad620, 0xf873: 0x6c041420,
-	0xf874: 0x6c163c20, 0xf875: 0x6c29de20, 0xf876: 0x430cd220, 0xf877: 0x6c29e620,
-	0xf878: 0x430d1020, 0xf879: 0x430e1c20, 0xf87a: 0x430dc420, 0xf87b: 0x430ef220,
-	0xf87c: 0x430e5020, 0xf87d: 0x430ed620, 0xf87e: 0x430f0c20, 0xf87f: 0x448bae20,
-	// Block 0x3e2, offset 0xf880
-	0xf880: 0x430fc220, 0xf881: 0x43100220, 0xf882: 0x448bf220, 0xf883: 0x4310c020,
-	0xf884: 0x6c008220, 0xf885: 0x48ecce20, 0xf886: 0x4311ae20, 0xf887: 0x4311bc20,
-	0xf888: 0x448c6a20, 0xf889: 0x4311f420, 0xf88a: 0x44697620, 0xf88b: 0x48f15c20,
-	0xf88c: 0x48f2cc20, 0xf88d: 0x448d7c20, 0xf88e: 0x448d8e20, 0xf88f: 0x6c0bfe20,
-	0xf890: 0x6c154e20, 0xf891: 0x6c1ede20, 0xf892: 0x6c2be420, 0xf893: 0x48f95020,
-	0xf894: 0x6c035620, 0xf895: 0x6c2c1220, 0xf896: 0x431a3620, 0xf897: 0x6c03ca20,
-	0xf898: 0x48fe5e20, 0xf899: 0x48100820, 0xf89a: 0x6c2c5420, 0xf89b: 0x431b7820,
-	0xf89c: 0x431be020, 0xf89d: 0x4811bc20, 0xf89e: 0x431da820, 0xf89f: 0x6c155020,
-	0xf8a0: 0x490ba420, 0xf8a1: 0x490bda20, 0xf8a2: 0x43212820, 0xf8a3: 0x4321e220,
-	0xf8a4: 0x43222220, 0xf8a5: 0x490e5c20, 0xf8a6: 0x43223620, 0xf8a7: 0x43247020,
-	0xf8a8: 0x4325ae20, 0xf8a9: 0x4325b020, 0xf8aa: 0x4324f820, 0xf8ab: 0x4327f220,
-	0xf8ac: 0x43282a20, 0xf8ad: 0x4917f420, 0xf8ae: 0x6c024a20, 0xf8af: 0x44932a20,
-	0xf8b0: 0x432b6e20, 0xf8b1: 0x491aee20, 0xf8b2: 0x4493cc20, 0xf8b3: 0x432d8620,
-	0xf8b4: 0x42bb6420, 0xf8b5: 0x432e4620, 0xf8b6: 0x49228a20, 0xf8b7: 0x49243420,
-	0xf8b8: 0x4494dc20, 0xf8b9: 0x4494ec20, 0xf8ba: 0x432fc020, 0xf8bb: 0x49281420,
-	0xf8bc: 0x44956420, 0xf8bd: 0x49292c20, 0xf8be: 0x43301620, 0xf8bf: 0x43301620,
-	// Block 0x3e3, offset 0xf8c0
-	0xf8c0: 0x43305220, 0xf8c1: 0x492b6c20, 0xf8c2: 0x6c03d020, 0xf8c3: 0x44966620,
-	0xf8c4: 0x43325220, 0xf8c5: 0x43334e20, 0xf8c6: 0x43338420, 0xf8c7: 0x4333fc20,
-	0xf8c8: 0x44979c20, 0xf8c9: 0x49366020, 0xf8ca: 0x43362420, 0xf8cb: 0x43388020,
-	0xf8cc: 0x4339fa20, 0xf8cd: 0x44999c20, 0xf8ce: 0x4499da20, 0xf8cf: 0x433ace20,
-	0xf8d0: 0x49419c20, 0xf8d1: 0x4499f020, 0xf8d2: 0x49420a20, 0xf8d3: 0x49441c20,
-	0xf8d4: 0x49452220, 0xf8d5: 0x6c145a20, 0xf8d6: 0x449aac20, 0xf8d7: 0x6c316420,
-	0xf8d8: 0x433dfc20, 0xf8d9: 0x433e0a20, 0xf8da: 0x433e1e20, 0xf8db: 0x433e2c20,
-	0xf8dc: 0x6c125e20, 0xf8dd: 0x494c0020,
-	// Block 0x3e4, offset 0xf900
-	0xf900: 0xe00014bd, 0xf901: 0x0033b483, 0xf902: 0x00339688, 0xf903: 0x0033a288,
-	0xf904: 0x0033c288, 0xf905: 0x0033fc88, 0xf906: 0xca350071, 0xf907: 0x00343688,
-	0xf908: 0x00344688, 0xf909: 0x00349a88, 0xf90a: 0x0034e488, 0xf90b: 0x00356288,
-	0xf90c: 0x00356a88, 0xf90d: 0xe00014cf, 0xf90e: 0x00357a88, 0xf90f: 0x00365488,
-	0xf910: 0xc0090041, 0xf911: 0x00335288, 0xf912: 0x00335a88, 0xf913: 0xc0130092,
-	0xf914: 0x00338a88, 0xf915: 0xc34c0041, 0xf916: 0xc01c0071, 0xf917: 0xc0200071,
-	0xf918: 0xc0250041, 0xf919: 0x00343e88, 0xf91a: 0xc0370092, 0xf91b: 0x00348488,
-	0xf91c: 0x0034a888, 0xf91d: 0x0034ba88, 0xf91e: 0xc02e0071, 0xf91f: 0x00350e88,
-	0xf920: 0x00352888, 0xf921: 0x00353a88, 0xf922: 0x00354c88, 0xf923: 0xc03e00f1,
-	0xf924: 0x0035ac88, 0xf925: 0x0035b488, 0xf926: 0x00360288, 0xf927: 0xc0440071,
-	0xf928: 0x00365c88, 0xf929: 0x00366688, 0xf92a: 0x00367488, 0xf92b: 0xc0480071,
-	0xf92c: 0x00368e88, 0xf92d: 0xc04c0071, 0xf92e: 0x0036b888, 0xf92f: 0x0036c488,
-	0xf930: 0xc0060041, 0xf931: 0x40335220, 0xf932: 0x40335a20, 0xf933: 0xc0100092,
-	0xf934: 0x40338a20, 0xf935: 0xc3490041, 0xf936: 0xc01a0071, 0xf937: 0xc01e0071,
-	0xf938: 0xc0220041, 0xf939: 0x40343e20, 0xf93a: 0xc0340092, 0xf93b: 0x40348420,
-	0xf93c: 0x4034a820, 0xf93d: 0x4034ba20, 0xf93e: 0xc02c0071, 0xf93f: 0x40350e20,
-	// Block 0x3e5, offset 0xf940
-	0xf940: 0x40352820, 0xf941: 0x40353a20, 0xf942: 0x40354c20, 0xf943: 0xc03a00f1,
-	0xf944: 0x4035ac20, 0xf945: 0x4035b420, 0xf946: 0x40360220, 0xf947: 0xc0420071,
-	0xf948: 0x40365c20, 0xf949: 0x40366620, 0xf94a: 0x40367420, 0xf94b: 0xc0460071,
-	0xf94c: 0x40368e20, 0xf94d: 0xc04a0071, 0xf94e: 0x4036b820, 0xf94f: 0x4036c420,
-	0xf950: 0xe00014ba, 0xf951: 0x4033b420, 0xf952: 0x40339620, 0xf953: 0x4033a220,
-	0xf954: 0x4033c220, 0xf955: 0x4033fc20, 0xf956: 0xca330071, 0xf957: 0x40343620,
-	0xf958: 0x40344620, 0xf959: 0x40349a20, 0xf95a: 0x4034e420, 0xf95b: 0x40356220,
-	0xf95c: 0x40356a20, 0xf95d: 0xe00014cc, 0xf95e: 0x40357a20, 0xf95f: 0x40365420,
-	0xf960: 0x0035e088, 0xf961: 0x4035e020, 0xf962: 0x00369e88, 0xf963: 0x40369e20,
-	0xf964: 0x0036ce88, 0xf965: 0x4036ce20, 0xf966: 0x0036d688, 0xf967: 0x4036d620,
-	0xf968: 0x0036ea88, 0xf969: 0x4036ea20, 0xf96a: 0x0036e088, 0xf96b: 0x4036e020,
-	0xf96c: 0x0036f488, 0xf96d: 0x4036f420, 0xf96e: 0x0036fc88, 0xf96f: 0x4036fc20,
-	0xf970: 0x00370488, 0xf971: 0x40370420, 0xf972: 0x00370c88, 0xf973: 0x40370c20,
-	0xf974: 0xc0500131, 0xf975: 0xc04e0131, 0xf976: 0x00371c88, 0xf977: 0x40371c20,
-	0xf978: 0x0035a488, 0xf979: 0x4035a420, 0xf97a: 0x0035fa88, 0xf97b: 0x4035fa20,
-	0xf97c: 0x0035f288, 0xf97d: 0x4035f220, 0xf97e: 0x0035e888, 0xf97f: 0x4035e820,
-	// Block 0x3e6, offset 0xf980
-	0xf980: 0x00352088, 0xf981: 0x40352020, 0xf982: 0x40070620, 0xf983: 0xae608302,
-	0xf984: 0xae605f02, 0xf985: 0xae602a02, 0xf986: 0xae602202, 0xf987: 0xae605f02,
-	0xf988: 0xa0000000, 0xf989: 0xa0000000, 0xf98a: 0x00341c88, 0xf98b: 0x40341c20,
-	0xf98c: 0x00369688, 0xf98d: 0x40369620, 0xf98e: 0x00353088, 0xf98f: 0x40353020,
-	0xf990: 0xe00014b7, 0xf991: 0xe00014b4, 0xf992: 0x00336a88, 0xf993: 0x40336a20,
-	0xf994: 0x00337a88, 0xf995: 0x40337a20, 0xf996: 0x0033dc88, 0xf997: 0x4033dc20,
-	0xf998: 0x0033aa88, 0xf999: 0x4033aa20, 0xf99a: 0x00345888, 0xf99b: 0x40345820,
-	0xf99c: 0x00347888, 0xf99d: 0x40347820, 0xf99e: 0x00347088, 0xf99f: 0x40347020,
-	0xf9a0: 0x00346888, 0xf9a1: 0x40346820, 0xf9a2: 0x0034ca88, 0xf9a3: 0x4034ca20,
-	0xf9a4: 0x0034dc88, 0xf9a5: 0x4034dc20, 0xf9a6: 0x00351888, 0xf9a7: 0x40351820,
-	0xf9a8: 0x00372688, 0xf9a9: 0x40372620, 0xf9aa: 0x00354488, 0xf9ab: 0x40354420,
-	0xf9ac: 0x00355888, 0xf9ad: 0x40355820, 0xf9ae: 0x00359c83, 0xf9af: 0x40359c20,
-	0xf9b0: 0x00359a88, 0xf9b1: 0x40359a20, 0xf9b2: 0x0035cc88, 0xf9b3: 0x4035cc20,
-	0xf9b4: 0x00360e88, 0xf9b5: 0x40360e20, 0xf9b6: 0x00362a88, 0xf9b7: 0x40362a20,
-	0xf9b8: 0x00363a88, 0xf9b9: 0x40363a20, 0xf9ba: 0x0035d488, 0xf9bb: 0x4035d420,
-	0xf9bc: 0x00364488, 0xf9bd: 0x40364420, 0xf9be: 0x00364c88, 0xf9bf: 0x40364c20,
-	// Block 0x3e7, offset 0xf9c0
-	0xf9c0: 0xa0000000, 0xf9c1: 0xa0000000, 0xf9c2: 0xa0000000, 0xf9c3: 0xa0000000,
-	0xf9c4: 0xa0000000, 0xf9c5: 0xa0000000, 0xf9c6: 0xa0000000, 0xf9c7: 0xa0000000,
-	0xf9c8: 0xa0000000, 0xf9c9: 0x40020020, 0xf9ca: 0x40020220, 0xf9cb: 0x40020420,
-	0xf9cc: 0x40020620, 0xf9cd: 0x40020820, 0xf9ce: 0xa0000000, 0xf9cf: 0xa0000000,
-	0xf9d0: 0xa0000000, 0xf9d1: 0xa0000000, 0xf9d2: 0xa0000000, 0xf9d3: 0xa0000000,
-	0xf9d4: 0xa0000000, 0xf9d5: 0xa0000000, 0xf9d6: 0xa0000000, 0xf9d7: 0xa0000000,
-	0xf9d8: 0xa0000000, 0xf9d9: 0xa0000000, 0xf9da: 0xa0000000, 0xf9db: 0xa0000000,
-	0xf9dc: 0xa0000000, 0xf9dd: 0xa0000000, 0xf9de: 0xa0000000, 0xf9df: 0xa0000000,
-	0xf9e0: 0x40021220, 0xf9e1: 0x4002ba20, 0xf9e2: 0x4003e020, 0xf9e3: 0x4004ea20,
-	0xf9e4: 0x4027de20, 0xf9e5: 0x4004ec20, 0xf9e6: 0x4004e620, 0xf9e7: 0x4003d220,
-	0xf9e8: 0x4003f420, 0xf9e9: 0x4003f620, 0xf9ea: 0x4004d820, 0xf9eb: 0x40093820,
-	0xf9ec: 0x40024020, 0xf9ed: 0x40021a20, 0xf9ee: 0x4002e420, 0xf9ef: 0x4004e220,
-	0xf9f0: 0x4029cc20, 0xf9f1: 0x4029ce20, 0xf9f2: 0x4029d020, 0xf9f3: 0x4029d220,
-	0xf9f4: 0x4029d420, 0xf9f5: 0x4029d620, 0xf9f6: 0x4029d820, 0xf9f7: 0x4029da20,
-	0xf9f8: 0x4029dc20, 0xf9f9: 0x4029de20, 0xf9fa: 0x40026c20, 0xf9fb: 0x40026220,
-	0xf9fc: 0x40094020, 0xf9fd: 0x40094220, 0xf9fe: 0x40094420, 0xf9ff: 0x4002c420,
-	// Block 0x3e8, offset 0xfa00
-	0xfa00: 0x4004d620, 0xfa01: 0xca3c27b1, 0xfa02: 0x002c0a88, 0xfa03: 0x002c3a88,
-	0xfa04: 0x002c6288, 0xfa05: 0xc39e0be1, 0xfa06: 0x002d0888, 0xfa07: 0x002d2288,
-	0xfa08: 0x002d6888, 0xfa09: 0x002d9a88, 0xfa0a: 0x002dcc88, 0xfa0b: 0xca373ad1,
-	0xfa0c: 0xc0030002, 0xfa0d: 0x002e8288, 0xfa0e: 0x002e9e88, 0xfa0f: 0xc3a30b21,
-	0xfa10: 0x002f2c88, 0xfa11: 0x002f5688, 0xfa12: 0x002f7a88, 0xfa13: 0x002fe688,
-	0xfa14: 0x00302c88, 0xfa15: 0xc3900b21, 0xfa16: 0x0030be88, 0xfa17: 0x0030e288,
-	0xfa18: 0x0030f688, 0xfa19: 0x00310088, 0xfa1a: 0x00312a88, 0xfa1b: 0x4003f820,
-	0xfa1c: 0x4004e420, 0xfa1d: 0x4003fa20, 0xfa1e: 0x40062420, 0xfa1f: 0x40021620,
-	0xfa20: 0x40061e20, 0xfa21: 0xca3927b1, 0xfa22: 0x402c0a20, 0xfa23: 0x402c3a20,
-	0xfa24: 0x402c6220, 0xfa25: 0xc39c0be1, 0xfa26: 0x402d0820, 0xfa27: 0x402d2220,
-	0xfa28: 0x402d6820, 0xfa29: 0x402d9a20, 0xfa2a: 0x402dcc20, 0xfa2b: 0x402dfe20,
-	0xfa2c: 0xc0000002, 0xfa2d: 0x402e8220, 0xfa2e: 0x402e9e20, 0xfa2f: 0xc3a00b21,
-	0xfa30: 0x402f2c20, 0xfa31: 0x402f5620, 0xfa32: 0x402f7a20, 0xfa33: 0x402fe620,
-	0xfa34: 0x40302c20, 0xfa35: 0xc38d0b21, 0xfa36: 0x4030be20, 0xfa37: 0x4030e220,
-	0xfa38: 0x4030f620, 0xfa39: 0x40310020, 0xfa3a: 0x40312a20, 0xfa3b: 0x4003fc20,
-	0xfa3c: 0x40094820, 0xfa3d: 0x4003fe20, 0xfa3e: 0x40094c20, 0xfa3f: 0xa0000000,
-	// Block 0x3e9, offset 0xfa40
-	0xfa40: 0xe0000983, 0xfa41: 0xe0000980, 0xfa42: 0xe00008fb, 0xfa43: 0xe00008f8,
-	0xfa44: 0xe000097d, 0xfa45: 0xe000097a, 0xfa46: 0xe0000a38, 0xfa47: 0xe0000a35,
-	0xfa48: 0xe0000a3e, 0xfa49: 0xe0000a3b, 0xfa4a: 0xe0000a4a, 0xfa4b: 0xe0000a47,
-	0xfa4c: 0xe0000a44, 0xfa4d: 0xe0000a41, 0xfa4e: 0xe0000a86, 0xfa4f: 0xe0000a83,
-	0xfa50: 0x002c62a3, 0xfa51: 0x402c6221, 0xfa52: 0xe0000b46, 0xfa53: 0xe0000b43,
-	0xfa54: 0xe0000aee, 0xfa55: 0xe0000aeb, 0xfa56: 0xe0000b2c, 0xfa57: 0xe0000b29,
-	0xfa58: 0x00320cc3, 0xfa59: 0x40320c22, 0xfa5a: 0xe0000b1a, 0xfa5b: 0xe0000b17,
-	0xfa5c: 0xe0000bb8, 0xfa5d: 0xe0000bb5, 0xfa5e: 0xe0000bb2, 0xfa5f: 0xe0000baf,
-	0xfa60: 0xe0000bc4, 0xfa61: 0xe0000bc1, 0xfa62: 0xe0000bca, 0xfa63: 0xe0000bc7,
-	0xfa64: 0xe0000bee, 0xfa65: 0xe0000beb, 0xfa66: 0xe0000c1b, 0xfa67: 0xe0000c18,
-	0xfa68: 0xe0000c51, 0xfa69: 0xe0000c4e, 0xfa6a: 0xe0000c60, 0xfa6b: 0xe0000c5d,
-	0xfa6c: 0xe0000c31, 0xfa6d: 0xe0000c2e, 0xfa6e: 0xe0000c5a, 0xfa6f: 0xe0000c57,
-	0xfa70: 0xe0000c54, 0xfa71: 0x402da220, 0xfa72: 0xf0000a0a, 0xfa73: 0xf0000404,
-	0xfa74: 0xe0000c8a, 0xfa75: 0xe0000c87, 0xfa76: 0xe0000c9f, 0xfa77: 0xe0000c9c,
-	0xfa78: 0x402f5621, 0xfa79: 0xe0000ccc, 0xfa7a: 0xe0000cc9, 0xfa7b: 0xe0000cd8,
-	0xfa7c: 0xe0000cd5, 0xfa7d: 0xe0000cd2, 0xfa7e: 0xe0000ccf, 0xfa7f: 0xe0000d04,
-	// Block 0x3ea, offset 0xfa80
-	0xfa80: 0xca3f3ae1, 0xfa81: 0xca413ae1, 0xfa82: 0xca433ae1, 0xfa83: 0xca453ae1,
-	0xfa84: 0xca473ae1, 0xfa85: 0xca493ae1, 0xfa86: 0xca4b3ae1, 0xfa87: 0xca4d3ae1,
-	0xfa88: 0xca4f3ae1, 0xfa89: 0xca513ae1, 0xfa8a: 0xca533ae1, 0xfa8b: 0xca553ae1,
-	0xfa8c: 0xca573ae1, 0xfa8d: 0xca593ae1, 0xfa8e: 0xca5b3ae1, 0xfa8f: 0xca5d3ae1,
-	0xfa90: 0xca5f3ae1, 0xfa91: 0xca613ae1, 0xfa92: 0xca633ae1, 0xfa93: 0xca653ae1,
-	0xfa94: 0xca673ae1, 0xfa95: 0xca693ae1, 0xfa96: 0xca6b3ae1, 0xfa97: 0xca6d3ae1,
-	0xfa98: 0xca6f3ae1, 0xfa99: 0xca713ae1, 0xfa9a: 0xca733ae1, 0xfa9b: 0xca773ae1,
-	0xfa9c: 0xca7d3ae1, 0xfa9d: 0xca813ae1, 0xfa9e: 0xca833ae1, 0xfa9f: 0xca853ae1,
-	0xfaa0: 0xca873ae1, 0xfaa1: 0xca893ae1, 0xfaa2: 0xca8b3ae1, 0xfaa3: 0xca8b3ae1,
-	0xfaa4: 0xe0003cf5, 0xfaa5: 0xe0003cf8, 0xfaa6: 0xe0003cfb, 0xfaa7: 0xe0003cfe,
-	0xfaa8: 0xe0003d01, 0xfaa9: 0xe0003d05, 0xfaaa: 0xe0003d08, 0xfaab: 0xca753ae1,
-	0xfaac: 0xca793ae1, 0xfaad: 0xca7b3ae1, 0xfaae: 0xca7f3ae1, 0xfaaf: 0xe0003d0c,
-	0xfab0: 0xe0003d0f, 0xfab1: 0xe0003d12, 0xfab2: 0xe0003d15, 0xfab3: 0xe0003d18,
-	0xfab4: 0xa0000000, 0xfab5: 0xa0000000, 0xfab6: 0xca903b41, 0xfab7: 0xca923b71,
-	0xfab8: 0x40501220, 0xfab9: 0x40501420, 0xfaba: 0x40501620, 0xfabb: 0xca8d3b11,
-	0xfabc: 0x40501a20, 0xfabd: 0x40501c20, 0xfabe: 0x40501e20, 0xfabf: 0x40502020,
-	// Block 0x3eb, offset 0xfac0
-	0xfac0: 0x40502220, 0xfac1: 0xca943b71, 0xfac2: 0x40502620, 0xfac3: 0x40502820,
-	0xfac4: 0xca963b71, 0xfac5: 0x40502c20, 0xfac6: 0x40503020, 0xfac7: 0x40503420,
-	0xfac8: 0xadc11802, 0xfac9: 0xadc11b02, 0xfaca: 0xadc11c02, 0xfacb: 0xadc11a02,
-	0xfacc: 0xa0005f02, 0xfacd: 0xadc11d02, 0xface: 0xadc11402, 0xfacf: 0xadc11502,
-	0xfad0: 0xadc11702, 0xfad1: 0xadc11602, 0xfad2: 0x82092817, 0xfad3: 0xa0000000,
-	0xfad4: 0x40032620, 0xfad5: 0x40032820, 0xfad6: 0x4002ac20, 0xfad7: 0x4027bc20,
-	0xfad8: 0xe0003c55, 0xfad9: 0x4005be20, 0xfada: 0x4005c020, 0xfadb: 0x4027f620,
-	0xfadc: 0x404fea20, 0xfadd: 0xadc11902,
-	0xfae0: 0xe00001b5, 0xfae1: 0xe0000249, 0xfae2: 0xe0000361, 0xfae3: 0xe000043b,
-	0xfae4: 0xe0000510, 0xfae5: 0xe00005da, 0xfae6: 0xe00006a5, 0xfae7: 0xe000074d,
-	0xfae8: 0xe00007f9, 0xfae9: 0xe000089e,
-	0xfaf0: 0xe00001b8, 0xfaf1: 0xe000024c, 0xfaf2: 0xe0000364, 0xfaf3: 0xe000043e,
-	0xfaf4: 0xe0000513, 0xfaf5: 0xe00005dd, 0xfaf6: 0xe00006a8, 0xfaf7: 0xe0000750,
-	0xfaf8: 0xe00007fc, 0xfaf9: 0xe00008a1,
-	// Block 0x3ec, offset 0xfb00
-	0xfb02: 0x40439020, 0xfb03: 0x40439220,
-	0xfb05: 0x40437020, 0xfb06: 0x40437220, 0xfb07: 0x40437420,
-	0xfb08: 0x40437620, 0xfb09: 0x40437820, 0xfb0a: 0x40437a20, 0xfb0b: 0x40437c20,
-	0xfb0c: 0x40438020, 0xfb0e: 0x40438420, 0xfb0f: 0x40438620,
-	0xfb10: 0x40438820, 0xfb12: 0x40438a20, 0xfb13: 0x40438c20,
-	0xfb14: 0x40438e20, 0xfb15: 0x40439020, 0xfb16: 0x40439220, 0xfb17: 0x40439420,
-	0xfb18: 0x40439620, 0xfb19: 0x40439820, 0xfb1a: 0x40439a20, 0xfb1b: 0x40439c20,
-	0xfb1c: 0x40439e20, 0xfb1d: 0x4043a020, 0xfb1e: 0x4043a220, 0xfb1f: 0x4043a420,
-	0xfb20: 0x4043a620, 0xfb21: 0x4043a820, 0xfb22: 0x4043aa20, 0xfb23: 0x4043ac20,
-	0xfb24: 0x4043ae20, 0xfb25: 0x4043b020, 0xfb26: 0x4043b220, 0xfb27: 0x4043b420,
-	0xfb28: 0x4043b620, 0xfb2a: 0x4043b820, 0xfb2b: 0x4043ba20,
-	0xfb2c: 0x4043bc20, 0xfb2d: 0x4043be20, 0xfb2e: 0x4043c020, 0xfb2f: 0x4043c220,
-	0xfb30: 0x4043c420, 0xfb31: 0x4043c620, 0xfb32: 0x4043c820, 0xfb33: 0x4043d420,
-	0xfb35: 0x4043ca20, 0xfb36: 0x4043cc20, 0xfb37: 0x4043ce20,
-	0xfb38: 0x4043d020, 0xfb39: 0x4043d220,
-	0xfb3c: 0xa070f102, 0xfb3d: 0x4043d820, 0xfb3e: 0x4043de20, 0xfb3f: 0xc06a0311,
-	// Block 0x3ed, offset 0xfb40
-	0xfb40: 0x4043e220, 0xfb41: 0x4043e420, 0xfb42: 0x4043e620, 0xfb43: 0x4043e820,
-	0xfb44: 0x4043ea20, 0xfb46: 0xc06c0341, 0xfb47: 0x4043f220,
-	0xfb48: 0x4043f420, 0xfb4a: 0xc0710311, 0xfb4b: 0x4043f820,
-	0xfb4c: 0x4043fa20, 0xfb4d: 0x820921fe,
-	0xfb55: 0x4043fe20, 0xfb56: 0x40440020,
-	0xfb5e: 0x4043d620,
-	0xfb60: 0x40437e20, 0xfb61: 0x40438220, 0xfb62: 0x4043ec20, 0xfb63: 0x4043ee20,
-	0xfb66: 0xe0000182, 0xfb67: 0xe0000213,
-	0xfb68: 0xe000032e, 0xfb69: 0xe0000408, 0xfb6a: 0xe00004dd, 0xfb6b: 0xe00005a7,
-	0xfb6c: 0xe0000672, 0xfb6d: 0xe000071a, 0xfb6e: 0xe00007c6, 0xfb6f: 0xe000086b,
-	0xfb71: 0x40439420, 0xfb72: 0x40439620,
-	// Block 0x3ee, offset 0xfb80
-	0xfb80: 0xf0000404, 0xfb81: 0xf0000404, 0xfb82: 0xf0000404, 0xfb83: 0xf0000404,
-	0xfb84: 0xf0000404, 0xfb85: 0xf0000404, 0xfb86: 0xf0000404, 0xfb87: 0xf0000404,
-	0xfb88: 0xf0000404, 0xfb89: 0xf0000404, 0xfb8a: 0xf0000404, 0xfb8b: 0xf0000404,
-	0xfb8c: 0xf0000404, 0xfb8d: 0xf0000404, 0xfb8e: 0xe000004c, 0xfb8f: 0xe0000051,
-	0xfb90: 0xe0000056, 0xfb91: 0xe000005b, 0xfb92: 0xe0000060, 0xfb93: 0xe0000065,
-	0xfb94: 0xe000006a, 0xfb95: 0xe000006f, 0xfb96: 0xe0000083, 0xfb97: 0xe000008d,
-	0xfb98: 0xe0000092, 0xfb99: 0xe0000097, 0xfb9a: 0xe000009c, 0xfb9b: 0xe00000a1,
-	0xfb9c: 0xe0000088, 0xfb9d: 0xe0000074, 0xfb9e: 0xe000007c,
-	0xfba0: 0xe00028cc, 0xfba1: 0xe00028dc, 0xfba2: 0xe00028d4, 0xfba3: 0xe000290c,
-	0xfba4: 0xe00028e0, 0xfba5: 0xe00028f4, 0xfba6: 0xe00028d0, 0xfba7: 0xe00028f0,
-	0xfba8: 0xe00028d8, 0xfba9: 0xe00028fc, 0xfbaa: 0xe000291c, 0xfbab: 0xe0002930,
-	0xfbac: 0xe000292c, 0xfbad: 0xe0002924, 0xfbae: 0xe0002958, 0xfbaf: 0xe0002910,
-	0xfbb0: 0xe0002918, 0xfbb1: 0xe0002928, 0xfbb2: 0xe0002920, 0xfbb3: 0xe000293c,
-	0xfbb4: 0xe0002904, 0xfbb5: 0xe0002934, 0xfbb6: 0xe0002950, 0xfbb7: 0xe0002940,
-	0xfbb8: 0xf0000404, 0xfbb9: 0xe00028e4, 0xfbba: 0xe0002908, 0xfbbb: 0xf0000404,
-	0xfbbc: 0xe0002938, 0xfbbd: 0xe00028e8, 0xfbbe: 0xe0002954, 0xfbbf: 0xe0002900,
-	// Block 0x3ef, offset 0xfbc0
-	0xfbc0: 0xe0008111, 0xfbc1: 0xe0008704, 0xfbc3: 0xe0009605,
-	0xfbc7: 0xe00059e2,
-	0xfbc8: 0xe00082d9, 0xfbc9: 0xe0006807, 0xfbca: 0xe000685b, 0xfbcb: 0xe0009ba8,
-	0xfbcd: 0xe0006344,
-	0xfbd1: 0xe0009471,
-	0xfbd4: 0xe0008e00, 0xfbd5: 0xe0006503, 0xfbd6: 0xe0006bd3,
-	0xfbd8: 0xe0004805, 0xfbd9: 0xe00061d3,
-	0xfbde: 0xe0006f79, 0xfbdf: 0xe0008ac2,
-	0xfbe6: 0xe0006217,
-	0xfbeb: 0xe0007199,
-	0xfbed: 0xe0008b9c,
-	0xfbf0: 0xe000632c, 0xfbf1: 0xe0004654, 0xfbf2: 0xe00045a1,
-	0xfbf8: 0xe000a16b, 0xfbf9: 0xe0004ee5, 0xfbfb: 0xe0008a4a,
-	// Block 0x3f0, offset 0xfc00
-	0xfc02: 0xe000779e, 0xfc03: 0xe0004dcf,
-	0xfc05: 0xe0004808,
-	0xfc0b: 0xe0008c10,
-	0xfc0d: 0xe000668e, 0xfc0e: 0xe0009fd3, 0xfc0f: 0xe0009b9c,
-	0xfc16: 0xe000472d,
-	0xfc18: 0xe0006f7d, 0xfc19: 0xe0007f61,
-	0xfc1d: 0xe000480b, 0xfc1e: 0xe000410f, 0xfc1f: 0xe00073bb,
-	0xfc27: 0xe00052c3,
-	0xfc2b: 0xe0003e6f,
-	0xfc2c: 0xe000411f, 0xfc2d: 0xe00051dc,
-	0xfc33: 0xe0007dca,
-	0xfc36: 0xe00062e8, 0xfc37: 0xe00067f3,
-	0xfc3c: 0xe0008b98, 0xfc3e: 0xe00040c7,
-	// Block 0x3f1, offset 0xfc40
-	0xfc42: 0xe0005366,
-	0xfc46: 0xe0005756,
-	0xfc48: 0xe000756c, 0xfc4b: 0xe0006691,
-	0xfc4c: 0xe0008014, 0xfc4e: 0xe0007b81, 0xfc4f: 0xe0007be1,
-	0xfc50: 0xe0007c95, 0xfc51: 0xe0007c45, 0xfc52: 0xe0009fd6,
-	0xfc54: 0xe0007813, 0xfc55: 0xe0008708,
-	0xfc58: 0xe0004bee, 0xfc59: 0xe0004bfe, 0xfc5b: 0xe0006694,
-	0xfc5e: 0xe0007163, 0xfc5f: 0xe0004afe,
-	0xfc61: 0xe0005a76, 0xfc62: 0xe0009cfa,
-	0xfc64: 0xe0004781, 0xfc65: 0xe0009d4a, 0xfc66: 0xe0007596,
-	0xfc68: 0xe0009f3c, 0xfc6b: 0xe0009dc9,
-	0xfc6c: 0xe0004250, 0xfc6d: 0xe000870c, 0xfc6e: 0xe000544c,
-	0xfc73: 0xe0005ec7,
-	0xfc74: 0xe0007be4, 0xfc76: 0xe0004ee9,
-	0xfc79: 0xe0005de1, 0xfc7a: 0xe00080a1,
-	// Block 0x3f2, offset 0xfc80
-	0xfc80: 0xe0007150, 0xfc81: 0xe00080a5,
-	0xfc84: 0xe0009547, 0xfc86: 0xe00063c2, 0xfc87: 0xe000480e,
-	0xfc8a: 0xe0004b72, 0xfc8b: 0xe0003ffb,
-	0xfc8d: 0xe0008179,
-	0xfc94: 0xe000818d, 0xfc95: 0xe0006697, 0xfc96: 0xe0009666, 0xfc97: 0xe00082dd,
-	0xfc98: 0xe0006347, 0xfc99: 0xe0006a0b,
-	0xfc9d: 0xe00051ec, 0xfc9e: 0xe00080e5, 0xfc9f: 0xe00090b7,
-	0xfca1: 0xe000a492, 0xfca3: 0xe0005079,
-	0xfca4: 0xe00055bf, 0xfca5: 0xe0008017,
-	0xfcae: 0xe0003d72,
-	0xfcb0: 0xe00072e2, 0xfcb2: 0xe0008ba0, 0xfcb3: 0xe0006581,
-	0xfcb5: 0xe000786a, 0xfcb6: 0xe00040cb, 0xfcb7: 0xe0003ffe,
-	0xfcbb: 0xe000813d,
-	0xfcbf: 0xe0006013,
-	// Block 0x3f3, offset 0xfcc0
-	0xfcc0: 0xe0008a04, 0xfcc1: 0xe0004c06,
-	0xfcc9: 0xe0009cfe, 0xfcca: 0xe000801a, 0xfccb: 0xe0004bba,
-	0xfccd: 0xe0007816, 0xfcce: 0xe0004c09, 0xfccf: 0xe000627c,
-	0xfcd0: 0xe00060eb, 0xfcd1: 0xe000a40c,
-	0xfcef: 0xe000608f,
-	0xfcf0: 0xe0004432,
-	0xfcf4: 0xe0005edf, 0xfcf6: 0xe00055c3,
-	0xfcf8: 0xe0007078, 0xfcfa: 0xe000669a,
-	0xfcfc: 0xe000669d, 0xfcfd: 0xe0003d1b,
-	// Block 0x3f4, offset 0xfd00
-	0xfd02: 0xe00087e0, 0xfd03: 0xe0008520,
-	0xfd06: 0xe0004eed, 0xfd07: 0xe000841a,
-	0xfd08: 0xe0009a1d, 0xfd09: 0xe00048a7, 0xfd0b: 0xe0006c66,
-	0xfd0d: 0xe0007d55, 0xfd0e: 0xe000841d, 0xfd0f: 0xe0008a4d,
-	0xfd10: 0xe0008a2c, 0xfd11: 0xe0007b84, 0xfd13: 0xe0006463,
-	0xfd14: 0xe00086b4, 0xfd15: 0xe0009bab, 0xfd16: 0xe0009b6c, 0xfd17: 0xe0009690,
-	0xfd19: 0xe000756f, 0xfd1a: 0xe0008115, 0xfd1b: 0xe00064af,
-	0xfd1c: 0xe0008229, 0xfd1d: 0xe00048aa, 0xfd1e: 0xe0004e1c, 0xfd1f: 0xe0009871,
-	0xfd29: 0xe000991b, 0xfd2a: 0xe000a2af,
-	0xfd2f: 0xe0007418,
-	0xfd30: 0xe0006093, 0xfd33: 0xe0003d1e,
-	0xfd36: 0xe0004d36,
-	0xfd38: 0xe00046a0, 0xfd39: 0xe0004a28, 0xfd3a: 0xe0008524, 0xfd3b: 0xe000892e,
-	0xfd3c: 0xe00047cc, 0xfd3d: 0xe0008e2a, 0xfd3e: 0xe0008119, 0xfd3f: 0xe00066a0,
-	// Block 0x3f5, offset 0xfd40
-	0xfd41: 0xe000707c, 0xfd43: 0xe0003de3,
-	0xfd44: 0xe0008d68, 0xfd46: 0xe000542a,
-	0xfd48: 0xe0009563, 0xfd49: 0xe00045c9, 0xfd4a: 0xe00046b8, 0xfd4b: 0xe0005637,
-	0xfd4d: 0xe0006fa9, 0xfd4f: 0xe0008a50,
-	0xfd51: 0xe0007dcd,
-	0xfd54: 0xe0005c36, 0xfd56: 0xe000582b, 0xfd57: 0xe0005230,
-	0xfd58: 0xe0008e03, 0xfd5a: 0xe0006ef8, 0xfd5b: 0xe0004531,
-	0xfd5c: 0xe0008ac5, 0xfd5d: 0xe0007fbd,
-	0xfd6e: 0xe0005bee, 0xfd6f: 0xe000a32d,
-	0xfd72: 0xe0008d44,
-	0xfd75: 0xe0009611, 0xfd76: 0xe0005498,
-	0xfd7b: 0xe0009757,
-	0xfd7f: 0xe000996f,
-	// Block 0x3f6, offset 0xfd80
-	0xfd81: 0xe0007be7, 0xfd82: 0xe0004354, 0xfd83: 0xe0009333,
-	0xfd84: 0xe0007166, 0xfd85: 0xe00048ad,
-	0xfd89: 0xe0007819, 0xfd8a: 0xe0008b0c,
-	0xfd8c: 0xe0006267, 0xfd8e: 0xe00088a4, 0xfd8f: 0xe0006c69,
-	0xfd90: 0xe00058ee, 0xfd91: 0xe0007afd, 0xfd93: 0xe0004254,
-	0xfd94: 0xe0009e54, 0xfd97: 0xe0006cab,
-	0xfd98: 0xe00063c5, 0xfd9a: 0xe00058a3, 0xfd9b: 0xe0005b87,
-	0xfd9d: 0xe0006237, 0xfd9f: 0xe00066a3,
-	0xfda0: 0xe0009ef0, 0xfda1: 0xe0007080, 0xfda3: 0xe000786d,
-	0xfdae: 0xe0006d4a, 0xfdaf: 0xe000634a,
-	0xfdb0: 0xe000a132, 0xfdb1: 0xe0004811, 0xfdb3: 0xe000604a,
-	0xfdb4: 0xe0009103, 0xfdb5: 0xe0009aa6, 0xfdb6: 0xe0006e70,
-	0xfdb8: 0xe00062ec, 0xfdba: 0xe0007522,
-	0xfdbe: 0xe0006584,
-	// Block 0x3f7, offset 0xfdc0
-	0xfdc0: 0xe0008fa2, 0xfdc2: 0xe00061d7,
-	0xfdc5: 0xe0006f40, 0xfdc6: 0xe0005450,
-	0xfdc9: 0xe0008f4a, 0xfdcb: 0xe0004001,
-	0xfdcd: 0xe0006047, 0xfdcf: 0xe0006e74,
-	0xfdd1: 0xe0005d50, 0xfdd2: 0xe00050c7,
-	0xfdd4: 0xe0004996, 0xfdd6: 0xe0009db1,
-	0xfdd8: 0xe0005035, 0xfdd9: 0xe000a330, 0xfdda: 0xe0007fc0,
-	0xfddc: 0xe000905b, 0xfdde: 0xe0004258, 0xfddf: 0xe0008e06,
-	0xfde1: 0xe0008f4e, 0xfde2: 0xe000920b, 0xfde3: 0xe0005fa3,
-	0xfde4: 0xe0009566, 0xfde5: 0xe0004571, 0xfde6: 0xe00049c2, 0xfde7: 0xe00089c0,
-	0xfde8: 0xe000406d, 0xfde9: 0xe0009107, 0xfdea: 0xe00077a1, 0xfdeb: 0xe000582f,
-	0xfdec: 0xe00096b7, 0xfded: 0xe0007a20, 0xfdee: 0xe0005327,
-	0xfdf0: 0xe000589b,
-	0xfdfb: 0xe00073be,
-	// Block 0x3f8, offset 0xfe00
-	0xfe03: 0xe00074e2,
-	0xfe04: 0xe0004d87, 0xfe07: 0xe0003d21,
-	0xfe08: 0xe0004163, 0xfe09: 0xe0007d58, 0xfe0a: 0xe0007bea,
-	0xfe0e: 0xe0007a3e, 0xfe0f: 0xe0009973,
-	0xfe13: 0xe00071f2,
-	0xfe15: 0xe0009d4d, 0xfe16: 0xe0008e2d,
-	0xfe18: 0xe0003e43, 0xfe1a: 0xe0008a53,
-	0xfe1c: 0xe0008710,
-	0xfe20: 0xe0007aad, 0xfe22: 0xe00092dc,
-	0xfe25: 0xe00040cf,
-	0xfe2a: 0xe0009ba4,
-	0xfe30: 0xe0006aff, 0xfe32: 0xe0006ffd,
-	0xfe34: 0xe0009543, 0xfe35: 0xe0008714, 0xfe36: 0xe0007b87,
-	0xfe38: 0xe0009856,
-	// Block 0x3f9, offset 0xfe40
-	0xfe40: 0xe0004730,
-	0xfe45: 0xe000634d,
-	0xfe4b: 0xe0003fb7,
-	0xfe4d: 0xe0005fa7,
-	0xfe51: 0xe0004113, 0xfe52: 0xe0009fbb,
-	0xfe54: 0xe000422c, 0xfe56: 0xe0008fa6,
-	0xfe58: 0xe0006793, 0xfe59: 0xe0006506, 0xfe5a: 0xe000a315, 0xfe5b: 0xe0007b59,
-	0xfe5d: 0xe0009783, 0xfe5e: 0xe0006742,
-	0xfe62: 0xe0003d75,
-	0xfe6c: 0xe00093b7, 0xfe6d: 0xe0007b01, 0xfe6e: 0xe0008931,
-	0xfe72: 0xe000781c, 0xfe73: 0xe0008528,
-	0xfe74: 0xe00048b0, 0xfe75: 0xe0008fee, 0xfe77: 0xe000685f,
-	0xfe7d: 0xe0008369, 0xfe7e: 0xe000425c, 0xfe7f: 0xe00074fa,
-	// Block 0x3fa, offset 0xfe80
-	0xfe82: 0xe00057cd,
-	0xfe84: 0xe0009ad0, 0xfe85: 0xe0004b0e,
-	0xfe89: 0xe000919b, 0xfe8a: 0xe0006a0f,
-	0xfe8f: 0xe0006863,
-	0xfe91: 0xe0004784,
-	0xfe95: 0xe0006280, 0xfe96: 0xe000a4da,
-	0xfe9a: 0xe0005759, 0xfe9b: 0xe0004cc6,
-	0xfe9e: 0xe0007d5b,
-	0xfea2: 0xe000910b,
-	0xfea5: 0xe0007a59, 0xfea6: 0xe000941d, 0xfea7: 0xe0006f81,
-	0xfea9: 0xe0009c4e,
-	0xfeac: 0xe00092df, 0xfead: 0xe0008ee2, 0xfeae: 0xe0005234,
-	0xfeb5: 0xe0003fbb,
-	0xfeb9: 0xe0003d24, 0xfebb: 0xe000613b,
-	0xfebe: 0xe0007333, 0xfebf: 0xe00066a6,
-	// Block 0x3fb, offset 0xfec0
-	0xfec0: 0xe0007fc3, 0xfec1: 0xe0008b10, 0xfec2: 0xe0004e5c, 0xfec3: 0xe000910f,
-	0xfec4: 0xe00074ca, 0xfec6: 0xe0004260, 0xfec7: 0xe0009ea4,
-	0xfec9: 0xe000412b, 0xfecb: 0xe0004fc5,
-	0xfed0: 0xe000663a, 0xfed2: 0xe0007dd0, 0xfed3: 0xe00050a9,
-	0xfed4: 0xe0008ac8, 0xfed5: 0xe0008871, 0xfed7: 0xe0007ff6,
-	0xfed8: 0xe0008d48, 0xfeda: 0xe0005b3b, 0xfedb: 0xe0005d35,
-	0xfedc: 0xe0004e20, 0xfedf: 0xe0006867,
-	0xfee1: 0xe000571d, 0xfee2: 0xe00054ce,
-	0xfee4: 0xe0009a6e, 0xfee5: 0xe0007ec1, 0xfee7: 0xe0008ea6,
-	0xfeea: 0xe0007b8a, 0xfeeb: 0xe000a04e,
-	0xfef1: 0xe0005701, 0xfef2: 0xe0008420, 0xfef3: 0xe0008f0a,
-	0xfef5: 0xe0006e78, 0xfef7: 0xe000549b,
-	0xfef9: 0xe0008eaa, 0xfefa: 0xe0004d56, 0xfefb: 0xe0005039,
-	0xfefc: 0xe0007526,
-	// Block 0x3fc, offset 0xff00
-	0xff00: 0xe000790d, 0xff01: 0xe0007ec5, 0xff03: 0xe0007ca1,
-	0xff04: 0xe0009f40, 0xff05: 0xe00094d1, 0xff06: 0xe00088a7, 0xff07: 0xe000a43a,
-	0xff08: 0xe0006a13, 0xff09: 0xe00046bc, 0xff0b: 0xe0004ae2,
-	0xff0c: 0xe00097af, 0xff0d: 0xe0005b5b, 0xff0e: 0xe0009805,
-	0xff12: 0xe0007169,
-	0xff15: 0xe0007000, 0xff17: 0xe000763e,
-	0xff1a: 0xe000503d,
-	0xff1c: 0xe0005270,
-	0xff22: 0xe0004bf2,
-	0xff25: 0xe000816d, 0xff27: 0xe0004dd2,
-	0xff28: 0xe000852c, 0xff29: 0xe0005454, 0xff2a: 0xe0007dd3, 0xff2b: 0xe0009907,
-	0xff2c: 0xe0004535, 0xff2d: 0xe000581b, 0xff2e: 0xe0009fa0,
-	0xff31: 0xe0004539,
-	0xff35: 0xe00061db, 0xff36: 0xe0004c0c, 0xff37: 0xe0004814,
-	0xff38: 0xe0008530,
-	0xff3c: 0xe0004214,
-	// Block 0x3fd, offset 0xff40
-	0xff40: 0xe0004c0f,
-	0xff46: 0xe0007568,
-	0xff49: 0xe00076b6, 0xff4a: 0xe0009018,
-	0xff4d: 0xe00083b5, 0xff4f: 0xe0004304,
-	0xff52: 0xe0005bf1, 0xff53: 0xe00048b3,
-	0xff55: 0xe0005b5f, 0xff57: 0xe0007b05,
-	0xff58: 0xe0007e54,
-	0xff60: 0xe0004614, 0xff63: 0xe000953a,
-	0xff64: 0xe0007d09, 0xff65: 0xe0005bab,
-	0xff6a: 0xe0005b4b,
-	0xff6c: 0xe00051f0,
-	0xff70: 0xe000667e, 0xff71: 0xe000a051, 0xff72: 0xe00094e9,
-	0xff76: 0xe00073c1, 0xff77: 0xe000543c,
-	0xff7d: 0xe000556f,
-	// Block 0x3fe, offset 0xff80
-	0xff84: 0xe0009040, 0xff85: 0xe0004435, 0xff86: 0xe0008b14,
-	0xff89: 0xe0005458, 0xff8a: 0xe000923f, 0xff8b: 0xe00088aa,
-	0xff8c: 0xe0005883, 0xff8d: 0xe00051f4,
-	0xff92: 0xe0007ff9,
-	0xff94: 0xe0008faa,
-	0xff9b: 0xe0005877,
-	0xff9c: 0xe0005873, 0xff9d: 0xe0007fad, 0xff9e: 0xe000a4dd,
-	0xffa0: 0xe0004a2b, 0xffa1: 0xe0006103,
-	0xffa9: 0xe0005c7f,
-	0xffad: 0xe0006682,
-	0xffb0: 0xe000a1f7, 0xffb1: 0xe0004004, 0xffb3: 0xe00052ef,
-	0xffb4: 0xe0006686, 0xffb6: 0xe000a43e,
-	0xffb8: 0xe000914b, 0xffb9: 0xe0007a5c, 0xffba: 0xe00094c1,
-	0xffbd: 0xe0009c7e,
-	// Block 0x3ff, offset 0xffc0
-	0xffc0: 0xe00050ca, 0xffc1: 0xe0008934, 0xffc3: 0xe00080a9,
-	0xffc6: 0xe0006417, 0xffc7: 0xe0008664,
-	0xffc8: 0xe00077a4, 0xffca: 0xe0003de7,
-	0xffce: 0xe0005d54,
-	0xffd1: 0xe0009f44, 0xffd3: 0xe00079dc,
-	0xffd6: 0xe0007d4d, 0xffd7: 0xe0005573,
-	0xffdd: 0xe000928b,
-	0xffe4: 0xe00098df, 0xffe5: 0xe00061bb, 0xffe6: 0xe000415b, 0xffe7: 0xe000415f,
-	0xffe9: 0xe00058a6, 0xffea: 0xe0006797,
-	0xffee: 0xe0004690,
-	0xfff0: 0xe00050cd, 0xfff1: 0xe0008fae, 0xfff2: 0xe0004a8b, 0xfff3: 0xe0004438,
-	0xfff6: 0xe000882c, 0xfff7: 0xe0006d2f,
-	0xfff8: 0xe00049c6, 0xfff9: 0xe0008ec6, 0xfffa: 0xe0008190, 0xfffb: 0xe0003d9f,
-	// Block 0x400, offset 0x10000
-	0x10003: 0xe000924f,
-	0x10004: 0xe0004308, 0x10007: 0xe00095e1,
-	0x10009: 0xe0008a3b, 0x1000a: 0xe000677b, 0x1000b: 0xe0004ae6,
-	0x1000c: 0xe00053a2, 0x1000d: 0xe0008534,
-	0x10014: 0xe000905f, 0x10015: 0xe0006587, 0x10016: 0xe0006350, 0x10017: 0xe0008291,
-	0x1001a: 0xe0006745, 0x1001b: 0xe0003f57,
-	0x1001d: 0xe0005e7b, 0x1001e: 0xe0004cc9, 0x1001f: 0xe0009173,
-	0x10021: 0xe0006b1f,
-	0x10029: 0xe000817d, 0x1002a: 0xe0008538,
-	0x1002f: 0xe0006353,
-	0x10032: 0xe0009c72,
-	0x10034: 0xe0004034, 0x10035: 0xe0008f52, 0x10037: 0xe00067c3,
-	0x1003a: 0xe00058f1,
-	0x1003d: 0xe0009aa9, 0x1003f: 0xe000928e,
-	// Block 0x401, offset 0x10040
-	0x10042: 0xe0004a2e, 0x10043: 0xe000a2ca,
-	0x10047: 0xe0004aea,
-	0x10048: 0xe000613f, 0x10049: 0xe00057e2,
-	0x1004d: 0xe000412f,
-	0x10051: 0xe000882f, 0x10052: 0xe0004133, 0x10053: 0xe0007ffc,
-	0x10057: 0xe0008eae,
-	0x10058: 0xe00059b0, 0x1005b: 0xe00054ef,
-	0x1005f: 0xe000453d,
-	0x10060: 0xe0003d27, 0x10063: 0xe0005577,
-	0x10064: 0xe0004b12,
-	0x10069: 0xe00088ad, 0x1006a: 0xe0004e2c, 0x1006b: 0xe000414f,
-	0x1006c: 0xe00048b6, 0x1006d: 0xe00092e2,
-	0x1007e: 0xe0009da1,
-	// Block 0x402, offset 0x10080
-	0x10081: 0xe0004264, 0x10083: 0xe0005f63,
-	0x10085: 0xe00095e5, 0x10087: 0xe0007b09,
-	0x10089: 0xe0005b63,
-	0x1008c: 0xe00049ea, 0x1008d: 0xe0004268,
-	0x10092: 0xe0005867,
-	0x10095: 0xe00051f8, 0x10096: 0xe0007c1d,
-	0x10098: 0xe0003eaf, 0x10099: 0xe0005cf3, 0x1009b: 0xe000a375,
-	0x1009d: 0xe0006f85, 0x1009e: 0xe000564c, 0x1009f: 0xe0005bf4,
-	0x100a0: 0xe0005827, 0x100a1: 0xe0009ad3, 0x100a2: 0xe0006bd6, 0x100a3: 0xe00084a4,
-	0x100a4: 0xe0004b16, 0x100a6: 0xe00092e5,
-	0x100b3: 0xe000a379,
-	0x100b5: 0xe000549e,
-	0x100b8: 0xe00049ca, 0x100ba: 0xe000822d, 0x100bb: 0xe0004abe,
-	0x100be: 0xe0004817, 0x100bf: 0xe0005d9c,
-	// Block 0x403, offset 0x100c0
-	0x100c1: 0xe0005d80, 0x100c2: 0xe0004dde, 0x100c3: 0xe0004037,
-	0x100c5: 0xe0009a20,
-	0x100c8: 0xe000a442, 0x100ca: 0xe0004952,
-	0x100cc: 0xe0009cde, 0x100cd: 0xe0009a23, 0x100cf: 0xe0009a26,
-	0x100d0: 0xe0006284,
-	0x100d5: 0xe0006509, 0x100d6: 0xe000a108, 0x100d7: 0xe0006413,
-	0x100d9: 0xe0006fac,
-	0x100e0: 0xe00082e1, 0x100e1: 0xe00046c0, 0x100e3: 0xe0003f3b,
-	0x100e7: 0xe0009f20,
-	0x100ea: 0xe000650c,
-	0x100ef: 0xe000a273,
-	0x100f1: 0xe0004a31,
-	0x100f6: 0xe00048b9,
-	0x100f9: 0xe0009b44,
-	0x100fd: 0xe00074fe, 0x100fe: 0xe0009997, 0x100ff: 0xe0004ecc,
-	// Block 0x404, offset 0x10100
-	0x10100: 0xe000481a, 0x10101: 0xe0007154, 0x10103: 0xe00090bb,
-	0x10104: 0xe0008171, 0x10105: 0xe000683f, 0x10107: 0xe0006f89,
-	0x10108: 0xe000781f, 0x10109: 0xe000a3d9, 0x1010a: 0xe0005ee3,
-	0x1010d: 0xe00059e6,
-	0x10111: 0xe000650f, 0x10112: 0xe00089b4, 0x10113: 0xe00096bb,
-	0x10114: 0xe0009ef4, 0x10117: 0xe0004d9f,
-	0x1011a: 0xe0005e7f,
-	0x1011c: 0xe0006288, 0x1011e: 0xe000617f,
-	0x10120: 0xe0008690, 0x10121: 0xe00082c5,
-	0x10126: 0xe0004718,
-	0x10128: 0xe0006acb,
-	0x1012c: 0xe00072fe, 0x1012e: 0xe00095ab, 0x1012f: 0xe0005cc3,
-	0x10130: 0xe00080ad, 0x10131: 0xe0007d5e, 0x10132: 0xe0006c6c, 0x10133: 0xe0008bb4,
-	0x10134: 0xe0003da3, 0x10135: 0xe000536a, 0x10137: 0xe00049ce,
-	0x10138: 0xe0006748, 0x10139: 0xe000a436, 0x1013a: 0xe0004b4a, 0x1013b: 0xe0003dcb,
-	0x1013d: 0xe0008bb0, 0x1013e: 0xe00071f6, 0x1013f: 0xe000426c,
-	// Block 0x405, offset 0x10140
-	0x10144: 0xe000736f,
-	0x10153: 0xe0007312,
-	0x10156: 0xe0006017,
-	0x10158: 0xe00058a9, 0x1015a: 0xe000a333,
-	0x1015d: 0xe0008937, 0x1015f: 0xe0007ca5,
-	0x10160: 0xe000954b,
-	0x10165: 0xe0004a02, 0x10166: 0xe0009bae,
-	0x1016a: 0xe0004b4e,
-	0x1016d: 0xe000768e, 0x1016e: 0xe0007003,
-	0x10172: 0xe00054d1,
-	0x10179: 0xe00048bc, 0x1017b: 0xe0004070,
-	// Block 0x406, offset 0x10180
-	0x10183: 0xe0008ee6,
-	0x10185: 0xe0008f0e,
-	0x10188: 0xe0007b8d, 0x10189: 0xe0008e09, 0x1018a: 0xe0004bbe, 0x1018b: 0xe0007b90,
-	0x1018d: 0xe0005ee7,
-	0x10194: 0xe0006e40, 0x10196: 0xe0009510, 0x10197: 0xe0006d4d,
-	0x1019b: 0xe0005eeb,
-	0x1019f: 0xe0006e01,
-	0x101a1: 0xe00077a7, 0x101a2: 0xe0009377, 0x101a3: 0xe000481d,
-	0x101a4: 0xe00043c0, 0x101a5: 0xe0004820, 0x101a6: 0xe0005603,
-	0x101a8: 0xe000513f, 0x101a9: 0xe00043c3, 0x101aa: 0xe0008c13, 0x101ab: 0xe0004a5e,
-	0x101ac: 0xe0006bf7, 0x101ad: 0xe000990b, 0x101ae: 0xe00087e4, 0x101af: 0xe0003d2a,
-	0x101b0: 0xe00097b2, 0x101b1: 0xe0008d6c, 0x101b2: 0xe00066a9, 0x101b3: 0xe0007b93,
-	0x101b4: 0xe00048bf, 0x101b5: 0xe00098b5, 0x101b6: 0xe0009f24,
-	0x101b8: 0xe00066ac,
-	// Block 0x407, offset 0x101c0
-	0x101c1: 0xe0007bed, 0x101c3: 0xe000a482,
-	0x101c4: 0xe0003da7,
-	0x101c8: 0xe0009cc2, 0x101c9: 0xe0004d3a, 0x101ca: 0xe00084a8, 0x101cb: 0xe0009373,
-	0x101cc: 0xe00051fc, 0x101cd: 0xe0005baf, 0x101ce: 0xe000a336, 0x101cf: 0xe00058ac,
-	0x101d0: 0xe0009808, 0x101d1: 0xe0009dcd,
-	0x101db: 0xe0004962,
-	0x101dd: 0xe0005918, 0x101df: 0xe0007f69,
-	0x101e0: 0xe00099f3,
-	0x101e6: 0xe0006356,
-	0x101e9: 0xe000641b, 0x101eb: 0xe0009c82,
-	0x101ec: 0xe0007f2d, 0x101ee: 0xe00085c4,
-	0x101f3: 0xe0007825,
-	0x101f6: 0xe0004e98,
-	0x101f8: 0xe000a4b6, 0x101f9: 0xe0009513, 0x101fb: 0xe0005d58,
-	0x101fc: 0xe000a339, 0x101fd: 0xe000a354, 0x101fe: 0xe0007822,
-	// Block 0x408, offset 0x10200
-	0x10200: 0xe0009bd2, 0x10202: 0xe00054a1,
-	0x10206: 0xe0005ae8,
-	0x10208: 0xe0008718, 0x1020a: 0xe00043c6,
-	0x1020e: 0xe0009093,
-	0x10211: 0xe0009713,
-	0x1021d: 0xe000738b,
-	0x10222: 0xe0004eba,
-	0x10224: 0xe0005607, 0x10226: 0xe0007e57,
-	0x10228: 0xe0008a5f, 0x1022a: 0xe0008a5c, 0x1022b: 0xe000920f,
-	0x10230: 0xe00081db, 0x10231: 0xe00043c9, 0x10233: 0xe0005da8,
-	0x10235: 0xe0003d2d, 0x10236: 0xe0004e3e,
-	0x1023b: 0xe0007084,
-	0x1023c: 0xe0009fd9, 0x1023d: 0xe0005bb3, 0x1023f: 0xe000409d,
-	// Block 0x409, offset 0x10240
-	0x10240: 0xe0008423,
-	0x10244: 0xe00051e4, 0x10246: 0xe0009a29, 0x10247: 0xe0009b70,
-	0x1024b: 0xe000674b,
-	0x1024c: 0xe000a10b, 0x1024d: 0xe0009d80, 0x1024e: 0xe0004823, 0x1024f: 0xe000776e,
-	0x10250: 0xe0006359,
-	0x10256: 0xe0003d78,
-	0x10260: 0xe0008ddc, 0x10262: 0xe00071fa,
-	0x10264: 0xe0009669, 0x10265: 0xe000a516,
-	0x10268: 0xe0008193, 0x1026b: 0xe0008c16,
-	0x1026c: 0xe0004787, 0x1026f: 0xe0003dcf,
-	0x10273: 0xe0009d50,
-	0x10278: 0xe0009c86, 0x1027b: 0xe000a41b,
-	0x1027c: 0xe0004721, 0x1027d: 0xe00080b1, 0x1027f: 0xe000805c,
-	// Block 0x40a, offset 0x10280
-	0x10280: 0xe0007315, 0x10281: 0xe0009af7, 0x10282: 0xe00070d4, 0x10283: 0xe0005238,
-	0x10284: 0xe000a0cc, 0x10286: 0xe00095ae, 0x10287: 0xe0007979,
-	0x10288: 0xe0009cc6, 0x10289: 0xe00083b8,
-	0x102a1: 0xe0007ca9,
-	0x102a5: 0xe0003d30, 0x102a6: 0xe000719c,
-	0x102a8: 0xe0009291, 0x102a9: 0xe00058f4,
-	0x102ad: 0xe0004489, 0x102ae: 0xe000a2ee,
-	0x102b1: 0xe0005f8f, 0x102b2: 0xe000914f,
-	0x102ba: 0xe0009a2c,
-	0x102bd: 0xe000430c, 0x102bf: 0xe0003d7b,
-	// Block 0x40b, offset 0x102c0
-	0x102c4: 0xe000991e, 0x102c6: 0xe00066af, 0x102c7: 0xe0008cb8,
-	0x102c9: 0xe0007336,
-	0x102ce: 0xe00058af, 0x102cf: 0xe000a519,
-	0x102d0: 0xe0005009,
-	0x102d4: 0xe0007870,
-	0x102dc: 0xe0005a52,
-	0x102eb: 0xe0004ba6,
-	0x102ee: 0xe0006e04, 0x102ef: 0xe0007dd6,
-	0x102f1: 0xe0008f56, 0x102f3: 0xe00054d4,
-	0x102f5: 0xe0007286,
-	0x102fc: 0xe0006843, 0x102fe: 0xe000966c,
-	// Block 0x40c, offset 0x10300
-	0x10300: 0xe0007339, 0x10302: 0xe0004e8a,
-	0x10304: 0xe00096bf, 0x10306: 0xe000686b,
-	0x1030f: 0xe0005d5c,
-	0x10313: 0xe0004357,
-	0x10316: 0xe0004f81, 0x10317: 0xe0004fc9,
-	0x1031c: 0xe0009177, 0x1031e: 0xe000716c,
-	0x10323: 0xe0009c8a,
-	0x1033b: 0xe0007006,
-	0x1033c: 0xe0008832, 0x1033d: 0xe00072a6, 0x1033e: 0xe0009420,
-	// Block 0x40d, offset 0x10340
-	0x10340: 0xe0004049, 0x10341: 0xe000793d, 0x10343: 0xe0004db3,
-	0x10344: 0xe0006a17, 0x10346: 0xe0009153, 0x10347: 0xe000530f,
-	0x10349: 0xe000a33c, 0x1034a: 0xe0009c8e, 0x1034b: 0xe0009213,
-	0x10351: 0xe0007f81, 0x10353: 0xe0007ab0,
-	0x10354: 0xe00071fe,
-	0x10358: 0xe00090bf, 0x10359: 0xe000a3dc, 0x1035a: 0xe000a16f,
-	0x1035c: 0xe000a4e0, 0x1035d: 0xe0003e73, 0x1035e: 0xe0008bb8, 0x1035f: 0xe0007da0,
-	0x10363: 0xe000a357,
-	0x10364: 0xe000a257, 0x10367: 0xe000a3bd,
-	0x10368: 0xe0005480, 0x10369: 0xe0007dd9, 0x1036a: 0xe000686f, 0x1036b: 0xe0004d52,
-	0x1036c: 0xe000478a, 0x1036e: 0xe0004ef1,
-	0x10370: 0xe000706c,
-	// Block 0x40e, offset 0x10380
-	0x10385: 0xe000a33f, 0x10387: 0xe0006907,
-	0x10389: 0xe0006c6f,
-	0x10391: 0xe0009ce2,
-	0x10394: 0xe0008cbc,
-	0x1039a: 0xe0007828, 0x1039b: 0xe0004230,
-	0x1039c: 0xe0004c12, 0x1039f: 0xe0008e0c,
-	0x103a0: 0xe000535e, 0x103a2: 0xe0007911, 0x103a3: 0xe00066b2,
-	0x103a4: 0xe0009569,
-	0x103b7: 0xe0007873,
-	0x103bd: 0xe0006d50, 0x103be: 0xe0008a62, 0x103bf: 0xe000976b,
-	// Block 0x40f, offset 0x103c0
-	0x103c4: 0xe00047cf, 0x103c6: 0xe0009717,
-	0x103c8: 0xe000893a, 0x103c9: 0xe0003d33,
-	0x103cc: 0xe0009ad6, 0x103cd: 0xe00057d0, 0x103ce: 0xe0007266,
-	0x103d0: 0xe00047d2, 0x103d2: 0xe0009fbe,
-	0x103d4: 0xe0004826, 0x103d6: 0xe0009028, 0x103d7: 0xe0006873,
-	0x103e9: 0xe000a135,
-	0x103ec: 0xe00093c0, 0x103ef: 0xe0006bfa,
-	0x103f2: 0xe00088b0,
-	0x103f4: 0xe0009516, 0x103f6: 0xe0006faf, 0x103f7: 0xe000a054,
-	0x103f8: 0xe0005d38, 0x103f9: 0xe000577a, 0x103fb: 0xe000a51c,
-	0x103ff: 0xe0005d4c,
-	// Block 0x410, offset 0x10400
-	0x10401: 0xe0007876, 0x10402: 0xe0008b58,
-	0x10409: 0xe0004fcd, 0x1040b: 0xe0009811,
-	0x1040d: 0xe00092e8, 0x1040e: 0xe000768a, 0x1040f: 0xe000a4c6,
-	0x10413: 0xe0009df1,
-	0x10424: 0xe0004baa, 0x10425: 0xe0004e60,
-	0x10428: 0xe0004c15, 0x10429: 0xe0007202, 0x1042a: 0xe000893d, 0x1042b: 0xe000a4e3,
-	0x1042c: 0xe0006995, 0x1042d: 0xe00047d5, 0x1042f: 0xe000733c,
-	0x10432: 0xe0009660,
-	0x10434: 0xe000641f, 0x10436: 0xe0003e97,
-	0x10438: 0xe0009815, 0x1043a: 0xe00070d8,
-	// Block 0x411, offset 0x10440
-	0x10440: 0xe0004e24,
-	0x10444: 0xe000a2d2, 0x10446: 0xe000a2f1, 0x10447: 0xe0009bd5,
-	0x1044f: 0xe000926a,
-	0x10459: 0xe00047d8, 0x1045a: 0xe0007f31,
-	0x10465: 0xe00075ca,
-	0x1046c: 0xe0006602, 0x1046e: 0xe0009dd1,
-	0x10473: 0xe00044a5,
-	0x10474: 0xe000752a, 0x10476: 0xe00073ab,
-	0x1047c: 0xe0008231,
-	// Block 0x412, offset 0x10480
-	0x10480: 0xe00085c8, 0x10481: 0xe0006b67, 0x10482: 0xe000a318, 0x10483: 0xe00082c9,
-	0x10488: 0xe00077da, 0x10489: 0xe000532a, 0x1048a: 0xe0004dc3,
-	0x1048d: 0xe000a4e6,
-	0x10491: 0xe0009337,
-	0x1049a: 0xe0006d53, 0x1049b: 0xe00066b5,
-	0x1049e: 0xe000a276, 0x1049f: 0xe00070dc,
-	0x104a0: 0xe00080b5,
-	0x104a6: 0xe0007642,
-	0x104ab: 0xe000a0c8,
-	0x104ae: 0xe000797c,
-	0x104b0: 0xe00044b9,
-	0x104b7: 0xe0004ad6,
-	0x104b9: 0xe00055c7, 0x104ba: 0xe00043cc,
-	0x104bf: 0xe0007e5a,
-	// Block 0x413, offset 0x104c0
-	0x104c1: 0xe0007f35, 0x104c2: 0xe000a0a8, 0x104c3: 0xe0009a2f,
-	0x104c4: 0xe00074a0,
-	0x104c8: 0xe00049d2, 0x104c9: 0xe00074be, 0x104ca: 0xe0009243, 0x104cb: 0xe000493a,
-	0x104cd: 0xe0007d61,
-	0x104d2: 0xe0007cb1, 0x104d3: 0xe0007cad,
-	0x104d6: 0xe00050d0,
-	0x104d8: 0xe0004ef5,
-	0x104dc: 0xe0007d0d, 0x104df: 0xe000980b,
-	0x104e5: 0xe00056c5,
-	0x104e8: 0xe00083bb,
-	0x104ec: 0xe0007879, 0x104ed: 0xe0004a61, 0x104ee: 0xe000658a,
-	0x104f0: 0xe0008c19,
-	0x104fb: 0xe0004c18,
-	0x104fe: 0xe0004bd6,
-	// Block 0x414, offset 0x10500
-	0x10500: 0xe0008c1c, 0x10502: 0xe00098e3,
-	0x10507: 0xe0004ac2,
-	0x1050a: 0xe0005fab,
-	0x1050c: 0xe0006467, 0x1050d: 0xe0004f85, 0x1050e: 0xe0003eb3, 0x1050f: 0xe0006080,
-	0x10510: 0xe0008a2f, 0x10511: 0xe0004051,
-	0x10521: 0xe0009885,
-	0x10524: 0xe00044bd, 0x10526: 0xe000971b, 0x10527: 0xe0009097,
-	0x10528: 0xe000805f, 0x10529: 0xe0003eff, 0x1052a: 0xe00099c7,
-	0x1052e: 0xe000507f, 0x1052f: 0xe0006083,
-	0x10530: 0xe0004270, 0x10531: 0xe0007302, 0x10533: 0xe0007ab3,
-	0x10535: 0xe0004829, 0x10537: 0xe0003d7e,
-	0x10538: 0xe00048c2, 0x1053b: 0xe0008c73,
-	0x1053c: 0xe00096c3,
-	// Block 0x415, offset 0x10540
-	0x10542: 0xe0006d56,
-	0x10548: 0xe000507c, 0x1054b: 0xe0009f48,
-	0x1054c: 0xe000523c,
-	0x10553: 0xe0009d53,
-	0x10555: 0xe000a35a,
-	0x1055e: 0xe0009693,
-	0x10560: 0xe0007f11, 0x10562: 0xe000482c, 0x10563: 0xe0007cb5,
-	0x10564: 0xe0008da4,
-	0x10578: 0xe00079e0,
-	0x1057d: 0xe0007f39,
-	// Block 0x416, offset 0x10580
-	0x10583: 0xe0007318,
-	0x10586: 0xe0003dd3, 0x10587: 0xe0007b0d,
-	0x10588: 0xe0008b18, 0x10589: 0xe0009f28, 0x1058b: 0xe0005abe,
-	0x1058e: 0xe0006b83, 0x1058f: 0xe0007646,
-	0x10591: 0xe000917b, 0x10592: 0xe00053aa,
-	0x1059c: 0xe00073d9, 0x1059f: 0xe000759a,
-	0x105a0: 0xe000635c,
-	0x105a4: 0xe000658d,
-	0x105ad: 0xe00097d9,
-	0x105b0: 0xe0008ff1, 0x105b3: 0xe0003f03,
-	0x105b4: 0xe0007030, 0x105b7: 0xe0008dc4,
-	0x105b9: 0xe000604d, 0x105ba: 0xe0004c1b, 0x105bb: 0xe0008b5c,
-	0x105bc: 0xe0004c1e, 0x105bd: 0xe0006c72,
-	// Block 0x417, offset 0x105c0
-	0x105c0: 0xe0004986, 0x105c2: 0xe000500d, 0x105c3: 0xe00044e1,
-	0x105c5: 0xe00041a0, 0x105c6: 0xe0009841,
-	0x105c8: 0xe0003f5b, 0x105c9: 0xe0007eb1, 0x105ca: 0xe00071ba, 0x105cb: 0xe00064f7,
-	0x105d7: 0xe00051e8,
-	0x105d9: 0xe00080e9,
-	0x105dd: 0xe00045cc, 0x105de: 0xe00091e3,
-	0x105e0: 0xe000a35d, 0x105e1: 0xe000623a, 0x105e3: 0xe0007bf0,
-	0x105e4: 0xe0008835, 0x105e6: 0xe000439c, 0x105e7: 0xe00075ce,
-	0x105ea: 0xe0003eb7,
-	0x105ef: 0xe0007a5f,
-	0x105f0: 0xe00074e6, 0x105f1: 0xe000623d,
-	0x105f4: 0xe00082e5, 0x105f5: 0xe00050d3,
-	0x105fa: 0xe000435a,
-	// Block 0x418, offset 0x10600
-	0x10600: 0xe000621b,
-	0x10609: 0xe000909b, 0x1060a: 0xe0004733, 0x1060b: 0xe0007702,
-	0x1060c: 0xe0009787, 0x1060d: 0xe0006fa1, 0x1060f: 0xe0004007,
-	0x10610: 0xe0006c75, 0x10611: 0xe0006bfd, 0x10612: 0xe0007009,
-	0x10614: 0xe0009777, 0x10617: 0xe00050d6,
-	0x10618: 0xe0005011, 0x10619: 0xe000443b, 0x1061a: 0xe000937b,
-	0x1061e: 0xe00068fb,
-	0x10621: 0xe000853c, 0x10622: 0xe000782b,
-	0x10624: 0xe000a37d,
-	0x10629: 0xe00076ba,
-	0x10635: 0xe0008cc0,
-	0x10639: 0xe0008eea,
-	0x1063c: 0xe0008540, 0x1063d: 0xe00068d7, 0x1063e: 0xe0006e44,
-	// Block 0x419, offset 0x10640
-	0x10640: 0xe0008c76, 0x10641: 0xe0005a2e, 0x10643: 0xe0004274,
-	0x10645: 0xe000693b,
-	0x10649: 0xe0007b11, 0x1064a: 0xe00086b8,
-	0x1064d: 0xe0004ccc,
-	0x10650: 0xe0004b52, 0x10653: 0xe0005cc6,
-	0x1065c: 0xe00093d8, 0x1065d: 0xe0007ab6, 0x1065e: 0xe0008bd8, 0x1065f: 0xe0009df4,
-	0x10661: 0xe0006a8b, 0x10663: 0xe00062c0,
-	0x10668: 0xe0005d44, 0x10669: 0xe00051a8, 0x1066b: 0xe0008b60,
-	0x1066e: 0xe000966f,
-	0x10670: 0xe0004fd1, 0x10671: 0xe00052f3, 0x10673: 0xe0006423,
-	0x1067a: 0xe000782e, 0x1067b: 0xe00082e9,
-	0x1067e: 0xe0003deb,
-	// Block 0x41a, offset 0x10680
-	0x10681: 0xe0006143, 0x10683: 0xe0003fbf,
-	0x10685: 0xe0007919, 0x10687: 0xe0004ef9,
-	0x1068e: 0xe000a381,
-	0x10691: 0xe0009bea, 0x10693: 0xe00072d2,
-	0x10694: 0xe0005142, 0x10695: 0xe0009fdc,
-	0x10698: 0xe00057a6, 0x10699: 0xe00046c4, 0x1069a: 0xe000567f,
-	0x1069c: 0xe0004fd5, 0x1069d: 0xe0007e5d, 0x1069e: 0xe0004736, 0x1069f: 0xe00056e5,
-	0x106a4: 0xe000741c,
-	0x106ab: 0xe00066b8,
-	0x106ac: 0xe0008141, 0x106af: 0xe00082ed,
-	0x106b9: 0xe000811d, 0x106ba: 0xe0009fdf, 0x106bb: 0xe000693e,
-	0x106bd: 0xe0006d59,
-	// Block 0x41b, offset 0x106c0
-	0x106c6: 0xe0006330,
-	0x106c8: 0xe00083e8,
-	0x106cf: 0xe0009bb1,
-	0x106d0: 0xe0009f8c,
-	0x106d4: 0xe0004c21, 0x106d5: 0xe00069b3, 0x106d6: 0xe0007a2f,
-	0x106d9: 0xe0006e48, 0x106da: 0xe0004edc,
-	0x106dc: 0xe00073c4,
-	0x106e2: 0xe0005c8f,
-	0x106e4: 0xe00080ed, 0x106e5: 0xe00045cf, 0x106e7: 0xe0005082,
-	0x106e9: 0xe00090c3, 0x106ea: 0xe00097b5, 0x106eb: 0xe000635f,
-	0x106ec: 0xe0009663, 0x106ed: 0xe0007a62, 0x106ee: 0xe00072e6, 0x106ef: 0xe0009d36,
-	0x106f1: 0xe00070fc,
-	0x106f7: 0xe000801d,
-	0x106f8: 0xe00045d2,
-	0x106fe: 0xe0009ef8,
-	// Block 0x41c, offset 0x10700
-	0x10704: 0xe000752e, 0x10707: 0xe0004c24,
-	0x10708: 0xe0004dd5, 0x10709: 0xe00062f0,
-	0x1070e: 0xe0004a64, 0x1070f: 0xe0008a65,
-	0x10710: 0xe000a173, 0x10711: 0xe000435d, 0x10713: 0xe0008e30,
-	0x10714: 0xe0006427, 0x10715: 0xe0009e34, 0x10717: 0xe0009859,
-	0x10718: 0xe000836d, 0x1071a: 0xe0009d56,
-	0x10720: 0xe0008544, 0x10722: 0xe00066bb,
-	0x10727: 0xe0007831,
-	0x10729: 0xe00055a7, 0x1072a: 0xe000974f, 0x1072b: 0xe0007ec9,
-	0x1072c: 0xe00082f1, 0x1072d: 0xe00069b7, 0x1072e: 0xe000642b,
-	0x10733: 0xe0004ded,
-	0x10734: 0xe0004e2f, 0x10736: 0xe0004de1,
-	0x10738: 0xe0003def,
-	0x1073d: 0xe0009fe2,
-	// Block 0x41d, offset 0x10740
-	0x10742: 0xe0007572, 0x10743: 0xe0006512,
-	0x10744: 0xe0005a7a,
-	0x1074a: 0xe0008145,
-	0x10751: 0xe00098b8, 0x10752: 0xe0009868, 0x10753: 0xe0004c27,
-	0x10756: 0xe0007a65, 0x10757: 0xe0004b76,
-	0x10759: 0xe0005cc9,
-	0x1075d: 0xe0008371,
-	0x10763: 0xe0006590,
-	0x10765: 0xe0009672, 0x10767: 0xe00079e4,
-	0x10768: 0xe0005faf,
-	0x1076c: 0xe000985c, 0x1076f: 0xe00094a1,
-	0x10772: 0xe0004f6d,
-	0x10779: 0xe0005ac1, 0x1077b: 0xe0009043,
-	0x1077e: 0xe00091e7,
-	// Block 0x41e, offset 0x10780
-	0x10783: 0xe000871c,
-	0x10786: 0xe0005bf7,
-	0x10788: 0xe000560b, 0x10789: 0xe0008196, 0x1078b: 0xe0006fb2,
-	0x1078d: 0xe00067c7,
-	0x10790: 0xe0008426, 0x10791: 0xe00043cf, 0x10792: 0xe000674e, 0x10793: 0xe0006b87,
-	0x10794: 0xe0007d64,
-	0x10799: 0xe0008149, 0x1079a: 0xe0007a68,
-	0x1079c: 0xe0003f5f, 0x1079d: 0xe0008a56, 0x1079e: 0xe0004d46,
-	0x107a3: 0xe00047db,
-	0x107a4: 0xe00048c5, 0x107a5: 0xe0005c39, 0x107a6: 0xe0003df3,
-	0x107a8: 0xe0008020, 0x107aa: 0xe0008d70,
-	0x107ac: 0xe000a4e9, 0x107ae: 0xe0009d02,
-	0x107b8: 0xe00075d2, 0x107ba: 0xe00070e0, 0x107bb: 0xe00080b9,
-	0x107bf: 0xe0008199,
-	// Block 0x41f, offset 0x107c0
-	0x107c1: 0xe0007d67, 0x107c3: 0xe0007a23,
-	0x107c9: 0xe000668a,
-	0x107d1: 0xe00066be, 0x107d3: 0xe0005de4,
-	0x107d8: 0xe0004dc7, 0x107d9: 0xe0009f90, 0x107db: 0xe0007834,
-	0x107dc: 0xe0004d59, 0x107df: 0xe00075d6,
-	0x107e0: 0xe0007088, 0x107e3: 0xe0008874,
-	0x107e5: 0xe000716f, 0x107e7: 0xe00097dc,
-	0x107e9: 0xe00059ea,
-	0x107ed: 0xe000733f,
-	0x107f5: 0xe0009423, 0x107f6: 0xe0009519,
-	0x107fc: 0xe0008f5a, 0x107ff: 0xe000719f,
-	// Block 0x420, offset 0x10800
-	0x10800: 0xe00071a2, 0x10801: 0xe00057a9,
-	0x10806: 0xe0009888,
-	0x10809: 0xe0007994,
-	0x1080c: 0xe0006e7c,
-	0x10810: 0xe000797f,
-	0x1081a: 0xe000a090,
-	0x10822: 0xe0006515, 0x10823: 0xe00080f1,
-	0x10826: 0xe0006362, 0x10827: 0xe00087e8,
-	0x1082a: 0xe00053da,
-	0x10832: 0xe000a138,
-	0x10837: 0xe00087ec,
-	0x1083f: 0xe0006998,
-	// Block 0x421, offset 0x10840
-	0x10844: 0xe0005de7,
-	0x1084d: 0xe00063c8,
-	0x10852: 0xe0005ac4, 0x10853: 0xe000a25b,
-	0x10855: 0xe00072aa,
-	0x1085a: 0xe0005dab, 0x1085b: 0xe0007cb9,
-	0x1085f: 0xe0006b03,
-	0x10862: 0xe0005c3c,
-	0x10864: 0xe0006fb5, 0x10867: 0xe0007a2c,
-	0x1086a: 0xe000787c,
-	0x10873: 0xe0007070,
-	0x10875: 0xe0008189,
-	0x1087a: 0xe0005dea, 0x1087b: 0xe0005f43,
-	0x1087c: 0xe00078e1, 0x1087d: 0xe00059b3, 0x1087e: 0xe00048c8, 0x1087f: 0xe0004748,
-	// Block 0x422, offset 0x10880
-	0x10881: 0xe0003d36, 0x10882: 0xe0006d5c,
-	0x10884: 0xe0007cbd,
-	0x10888: 0xe00073af, 0x10889: 0xe0008d74, 0x1088b: 0xe0004e78,
-	0x1088c: 0xe0009eec,
-	0x10896: 0xe0009ad9, 0x10897: 0xe00048cb,
-	0x10899: 0xe0006a8f, 0x1089a: 0xe0005a32, 0x1089b: 0xe00077dd,
-	0x108a0: 0xe00058f7, 0x108a1: 0xe00084ac, 0x108a2: 0xe0004a8e, 0x108a3: 0xe0007502,
-	0x108a5: 0xe00085cc, 0x108a6: 0xe0009d06,
-	0x108a9: 0xe0004e90, 0x108ab: 0xe0005c3f,
-	0x108ad: 0xe000a057, 0x108ae: 0xe000a05a, 0x108af: 0xe000787f,
-	0x108b6: 0xe00092eb,
-	0x108ba: 0xe0009c52, 0x108bb: 0xe0009c56,
-	0x108bd: 0xe000577d,
-	// Block 0x423, offset 0x108c0
-	0x108c0: 0xe0004a91,
-	0x108c5: 0xe000a10e,
-	0x108c8: 0xe0007ab9, 0x108c9: 0xe000a4ec, 0x108cb: 0xe0006a1b,
-	0x108cc: 0xe000478d,
-	0x108d6: 0xe00099f6,
-	0x108d9: 0xe0008375, 0x108db: 0xe0009ea8,
-	0x108e5: 0xe0008940,
-	0x108e8: 0xe00081de, 0x108ea: 0xe0006606,
-	0x108ed: 0xe0004de4,
-	0x108f0: 0xe0007776, 0x108f2: 0xe0004e7b,
-	0x108f4: 0xe0007772,
-	0x108fe: 0xe0005386, 0x108ff: 0xe000764a,
-	// Block 0x424, offset 0x10900
-	0x10900: 0xe0006877, 0x10903: 0xe0007420,
-	0x10905: 0xe0006b3f,
-	0x1090c: 0xe0005553,
-	0x10910: 0xe000819c, 0x10911: 0xe0009ed4,
-	0x10914: 0xe0004541, 0x10915: 0xe0008181, 0x10916: 0xe00081e1, 0x10917: 0xe000819f,
-	0x10918: 0xe00089a8, 0x1091a: 0xe0006365, 0x1091b: 0xe000993c,
-	0x1091c: 0xe00081a2, 0x1091d: 0xe000a2f4, 0x1091f: 0xe0005b23,
-	0x10921: 0xe00097df, 0x10923: 0xe0004360,
-	0x10924: 0xe00043d2, 0x10925: 0xe0004e41,
-	0x10929: 0xe0009d59, 0x1092b: 0xe0006cd7,
-	0x10930: 0xe0006e4c, 0x10931: 0xe000827d,
-	0x10935: 0xe0006368, 0x10936: 0xe00081e4,
-	0x10938: 0xe0009bee, 0x1093a: 0xe0007ddc,
-	0x1093c: 0xe0007516, 0x1093f: 0xe00067cb,
-	// Block 0x425, offset 0x10940
-	0x10941: 0xe000846e, 0x10942: 0xe0007b5d,
-	0x10945: 0xe00050bb, 0x10947: 0xe0007b96,
-	0x10948: 0xe0006d5f, 0x10949: 0xe000721e, 0x1094a: 0xe0003d81, 0x1094b: 0xe0006d03,
-	0x1094c: 0xe0007998, 0x1094f: 0xe0004761,
-	0x10953: 0xe000628c,
-	0x10955: 0xe000978f, 0x10956: 0xe000a2d6, 0x10957: 0xe00089c4,
-	0x10958: 0xe0004618, 0x10959: 0xe0008a68, 0x1095a: 0xe0008720, 0x1095b: 0xe000799c,
-	0x1095c: 0xe0007fc6,
-	0x10962: 0xe000404d, 0x10963: 0xe0006a1f,
-	0x10964: 0xe0007100, 0x10965: 0xe0007ddf, 0x10966: 0xe000a177,
-	0x1096c: 0xe0006b8b, 0x1096e: 0xe00049a6,
-	0x10970: 0xe00083be, 0x10973: 0xe0009d5c,
-	0x10974: 0xe00075da, 0x10975: 0xe0006c00, 0x10976: 0xe0003d39,
-	0x10978: 0xe000708c, 0x10979: 0xe0007b15,
-	0x1097f: 0xe0006e50,
-	// Block 0x426, offset 0x10980
-	0x10980: 0xe0008ff4, 0x10982: 0xe00084b0, 0x10983: 0xe0007cc1,
-	0x10984: 0xe0004c2a, 0x10985: 0xe00080bd, 0x10986: 0xe0005e67, 0x10987: 0xe000482f,
-	0x1098c: 0xe000636b,
-	0x10990: 0xe0005ac7, 0x10992: 0xe0009c16, 0x10993: 0xe0007b99,
-	0x10994: 0xe0007034, 0x10996: 0xe0009635, 0x10997: 0xe0004e18,
-	0x10998: 0xe00095b1,
-	0x1099e: 0xe00059c2, 0x1099f: 0xe0008eca,
-	0x109a1: 0xe00045a5, 0x109a2: 0xe0009615,
-	0x109a4: 0xe0007837, 0x109a5: 0xe0007a6b, 0x109a6: 0xe0007104, 0x109a7: 0xe0004e14,
-	0x109a8: 0xe0008ff7, 0x109a9: 0xe0007114, 0x109ab: 0xe00066c1,
-	0x109ac: 0xe000461c, 0x109ad: 0xe0009fc1, 0x109ae: 0xe000575c, 0x109af: 0xe0008b1c,
-	0x109b0: 0xe000a1af,
-	0x109b5: 0xe000937f, 0x109b6: 0xe0006240,
-	0x109b8: 0xe0009363, 0x109ba: 0xe00066c4,
-	// Block 0x427, offset 0x109c0
-	0x109c1: 0xe00062f4,
-	0x109c4: 0xe00066c7, 0x109c5: 0xe0004b02, 0x109c7: 0xe00082f5,
-	0x109c8: 0xe0008548, 0x109c9: 0xe0007d6a, 0x109ca: 0xe00089ac, 0x109cb: 0xe0007118,
-	0x109cc: 0xe0008acb, 0x109cd: 0xe0005085, 0x109ce: 0xe00050d9, 0x109cf: 0xe0006c03,
-	0x109d1: 0xe0006c06,
-	0x109d4: 0xe0008062, 0x109d6: 0xe000919f,
-	0x109d9: 0xe000687b,
-	0x109df: 0xe0006a93,
-	0x109e0: 0xe0006a97,
-	0x109e4: 0xe0007b9c,
-	0x109e8: 0xe0005fb3, 0x109eb: 0xe0007a14,
-	0x109f1: 0xe000951c,
-	0x109f8: 0xe0006fb8, 0x109f9: 0xe0007ecd, 0x109fa: 0xe0009063, 0x109fb: 0xe00043d5,
-	0x109fc: 0xe0004eb4, 0x109fe: 0xe0005dae, 0x109ff: 0xe0004e75,
-	// Block 0x428, offset 0x10a00
-	0x10a00: 0xe000493e, 0x10a01: 0xe0006593,
-	0x10a05: 0xe0004073, 0x10a06: 0xe0004363, 0x10a07: 0xe00085d0,
-	0x10a08: 0xe000498a, 0x10a0b: 0xe00078b5,
-	0x10a0d: 0xe0006fbe, 0x10a0e: 0xe0006fbb,
-	0x10a10: 0xe0004b06, 0x10a11: 0xe0006acf,
-	0x10a15: 0xe000854c,
-	0x10a1b: 0xe00061df,
-	0x10a20: 0xe00050dc, 0x10a22: 0xe00057ac,
-	0x10a24: 0xe000955f, 0x10a25: 0xe00058b2,
-	0x10a28: 0xe00048ce,
-	0x10a2c: 0xe0006caf, 0x10a2f: 0xe00052a3,
-	0x10a31: 0xe000679b, 0x10a33: 0xe0006a9b,
-	0x10a39: 0xe000a486, 0x10a3a: 0xe0004ccf,
-	// Block 0x429, offset 0x10a40
-	0x10a48: 0xe0009bd8, 0x10a4a: 0xe0008684,
-	0x10a4c: 0xe0004bda, 0x10a4f: 0xe00079e8,
-	0x10a50: 0xe0004c2d, 0x10a51: 0xe000829d, 0x10a52: 0xe0004234,
-	0x10a54: 0xe0008e33,
-	0x10a5d: 0xe000825d,
-	0x10a61: 0xe0003f63, 0x10a63: 0xe00048d1,
-	0x10a65: 0xe00098bb, 0x10a66: 0xe0005994, 0x10a67: 0xe00092ee,
-	0x10a68: 0xe0008471, 0x10a69: 0xe000728a, 0x10a6a: 0xe00064bf, 0x10a6b: 0xe0006d62,
-	0x10a6c: 0xe0003f3f, 0x10a6d: 0xe000560f,
-	0x10a71: 0xe0005088, 0x10a73: 0xe00071be,
-	0x10a75: 0xe0009fe5, 0x10a77: 0xe0005e0b,
-	0x10a78: 0xe0007222, 0x10a7a: 0xe00055cb,
-	0x10a7e: 0xe0008694,
-	// Block 0x42a, offset 0x10a80
-	0x10a80: 0xe0006d65,
-	0x10a92: 0xe0005240,
-	0x10a99: 0xe000956c,
-	0x10aa0: 0xe000687f,
-	0x10aa8: 0xe0007172, 0x10aa9: 0xe00071a5,
-	0x10aad: 0xe00092f1, 0x10aaf: 0xe00062f8,
-	0x10ab0: 0xe00062fc, 0x10ab1: 0xe0004e44,
-	0x10ab4: 0xe0009e58, 0x10ab6: 0xe00050df,
-	0x10abb: 0xe0008b20,
-	0x10abd: 0xe0009efc,
-	// Block 0x42b, offset 0x10ac0
-	0x10ac6: 0xe0004575, 0x10ac7: 0xe0006f30,
-	0x10acd: 0xe000542d, 0x10ace: 0xe0004c30,
-	0x10ad0: 0xe00044e5, 0x10ad1: 0xe00044c1,
-	0x10ad4: 0xe00093ba, 0x10ad5: 0xe0007342, 0x10ad6: 0xe000731b, 0x10ad7: 0xe0003f67,
-	0x10ad9: 0xe0005833, 0x10adb: 0xe000499a,
-	0x10adf: 0xe0007f85,
-	0x10ae2: 0xe000840a,
-	0x10ae4: 0xe000a31b, 0x10ae6: 0xe000753a, 0x10ae7: 0xe0006f34,
-	0x10ae9: 0xe00064df,
-	0x10af4: 0xe0007a41,
-	0x10afd: 0xe00083eb,
-	// Block 0x42c, offset 0x10b00
-	0x10b01: 0xe0003f07, 0x10b02: 0xe0005853,
-	0x10b0b: 0xe0005db1,
-	0x10b0c: 0xe0003ebb, 0x10b0e: 0xe0007bf3,
-	0x10b10: 0xe00053b2, 0x10b13: 0xe00072ae,
-	0x10b14: 0xe0007a44,
-	0x10b29: 0xe0006f38,
-	0x10b2c: 0xe0007a32, 0x10b2f: 0xe0008e0f,
-	0x10b31: 0xe0007b61,
-	// Block 0x42d, offset 0x10b40
-	0x10b41: 0xe00057d3, 0x10b42: 0xe0008379,
-	0x10b44: 0xe0008f12, 0x10b47: 0xe0004832,
-	0x10b4b: 0xe00050e2,
-	0x10b52: 0xe0008c04,
-	0x10b54: 0xe0004bae, 0x10b55: 0xe00092f4,
-	0x10b59: 0xe000593c,
-	0x10b5d: 0xe00052cb,
-	0x10b60: 0xe0004790, 0x10b62: 0xe0007a6e,
-	0x10b67: 0xe00075ba,
-	0x10b6a: 0xe0007552, 0x10b6b: 0xe000755a,
-	0x10b6e: 0xe0009e28,
-	0x10b70: 0xe0009d83,
-	0x10b77: 0xe0007fff,
-	0x10b78: 0xe0007706, 0x10b7a: 0xe00055cf,
-	0x10b7c: 0xe0006941, 0x10b7d: 0xe00071c2,
-	// Block 0x42e, offset 0x10b80
-	0x10b89: 0xe0008f16, 0x10b8b: 0xe0004a94,
-	0x10b8d: 0xe0007a35,
-	0x10b91: 0xe0008eb2, 0x10b92: 0xe00059ee, 0x10b93: 0xe00085d4,
-	0x10b96: 0xe000728e,
-	0x10b9a: 0xe0009e10,
-	0x10b9d: 0xe00090c7, 0x10b9e: 0xe0008a6b,
-	0x10ba1: 0xe0006e8c, 0x10ba2: 0xe0006c09,
-	0x10ba5: 0xe0004545, 0x10ba6: 0xe0008a32, 0x10ba7: 0xe0004793,
-	0x10ba8: 0xe0004076, 0x10bab: 0xe0005cf6,
-	0x10bae: 0xe0008e12,
-	0x10bb1: 0xe0004c33, 0x10bb2: 0xe0008023, 0x10bb3: 0xe00066ca,
-	0x10bb4: 0xe000988b, 0x10bb5: 0xe00095b4, 0x10bb7: 0xe0009d0a,
-	0x10bb9: 0xe0004b56,
-	0x10bbd: 0xe0006cdb, 0x10bbe: 0xe00040d3,
-	// Block 0x42f, offset 0x10bc0
-	0x10bc2: 0xe0006fc1, 0x10bc3: 0xe0009a32,
-	0x10bc6: 0xe0006107,
-	0x10bc9: 0xe000646b,
-	0x10bcc: 0xe000a4ef,
-	0x10bd1: 0xe0009793,
-	0x10bd5: 0xe0005a6e, 0x10bd6: 0xe00091eb,
-	0x10bd9: 0xe0008d78, 0x10bda: 0xe0009426, 0x10bdb: 0xe0006097,
-	0x10bdd: 0xe0008838,
-	0x10be5: 0xe0006d68,
-	0x10be8: 0xe0006beb, 0x10beb: 0xe00066cd,
-	0x10bed: 0xe00069bb,
-	0x10bf3: 0xe00082f9,
-	0x10bf6: 0xe000508b, 0x10bf7: 0xe0007e60,
-	0x10bf8: 0xe0006883,
-	0x10bfd: 0xe0005bfa, 0x10bff: 0xe000a342,
-	// Block 0x430, offset 0x10c00
-	0x10c00: 0xe0008724, 0x10c03: 0xe0007da3,
-	0x10c04: 0xe00071c6, 0x10c05: 0xe0009a92, 0x10c07: 0xe0005fb7,
-	0x10c0c: 0xe000a1fb, 0x10c0e: 0xe0005b53,
-	0x10c14: 0xe0005a36, 0x10c15: 0xe00059c6,
-	0x10c18: 0xe000902c,
-	0x10c1e: 0xe00062c4, 0x10c1f: 0xe000956f,
-	0x10c21: 0xe00060b3, 0x10c22: 0xe0005015, 0x10c23: 0xe00099f9,
-	0x10c28: 0xe00091c3, 0x10c2a: 0xe0005c9b, 0x10c2b: 0xe000601b,
-	0x10c2c: 0xe0008ace,
-	0x10c30: 0xe0009e14, 0x10c31: 0xe000538a, 0x10c32: 0xe0003df7, 0x10c33: 0xe00099cb,
-	0x10c34: 0xe0004df4, 0x10c37: 0xe00061e3,
-	0x10c38: 0xe0009db5, 0x10c39: 0xe0003dfb, 0x10c3a: 0xe0007abc, 0x10c3b: 0xe000a17b,
-	0x10c3c: 0xe0007de2, 0x10c3d: 0xe0007de5, 0x10c3e: 0xe0004c36, 0x10c3f: 0xe000753e,
-	// Block 0x431, offset 0x10c40
-	0x10c44: 0xe00082fd, 0x10c47: 0xe0006518,
-	0x10c4a: 0xe0006887, 0x10c4b: 0xe0004cd2,
-	0x10c4f: 0xe0006944,
-	0x10c55: 0xe0008429, 0x10c56: 0xe0009a71, 0x10c57: 0xe0008698,
-	0x10c5a: 0xe0004278,
-	0x10c5c: 0xe000636e,
-	0x10c60: 0xe000688b,
-	0x10c66: 0xe00050e5, 0x10c67: 0xe0008a35,
-	0x10c6b: 0xe00043d8,
-	0x10c6d: 0xe0008728,
-	0x10c73: 0xe0006596,
-	0x10c75: 0xe0007292, 0x10c76: 0xe0006947, 0x10c77: 0xe0003f6b,
-	0x10c78: 0xe0007b19,
-	0x10c7d: 0xe0007bf6, 0x10c7e: 0xe0007de8,
-	// Block 0x432, offset 0x10c80
-	0x10c81: 0xe0009557, 0x10c82: 0xe000688f,
-	0x10c88: 0xe0009bb4, 0x10c89: 0xe0005593, 0x10c8a: 0xe00053f2, 0x10c8b: 0xe0006e07,
-	0x10c90: 0xe0004835, 0x10c91: 0xe0004b5a, 0x10c93: 0xe00045f0,
-	0x10c95: 0xe0007f89, 0x10c96: 0xe000575f,
-	0x10c9a: 0xe0008a6e, 0x10c9b: 0xe0008550,
-	0x10c9d: 0xe000700c, 0x10c9e: 0xe000a4b2, 0x10c9f: 0xe0005ccc,
-	0x10ca0: 0xe0008f5e, 0x10ca1: 0xe0005d3b, 0x10ca2: 0xe00099fc, 0x10ca3: 0xe00046c8,
-	0x10ca5: 0xe000474b, 0x10ca7: 0xe000837d,
-	0x10ca8: 0xe0009d86, 0x10ca9: 0xe000587b,
-	0x10cac: 0xe00054a4,
-	0x10cb1: 0xe0007941, 0x10cb3: 0xe000921f,
-	0x10cb6: 0xe00075de, 0x10cb7: 0xe000872c,
-	0x10cba: 0xe00040d7, 0x10cbb: 0xe000a279,
-	0x10cbf: 0xe0008175,
-	// Block 0x433, offset 0x10cc0
-	0x10cc1: 0xe0006183, 0x10cc3: 0xe0004cd5,
-	0x10cc4: 0xe00056e9, 0x10cc7: 0xe0003f0b,
-	0x10cc8: 0xe0009e44, 0x10cca: 0xe00099ff, 0x10ccb: 0xe0008095,
-	0x10ccf: 0xe0007038,
-	0x10cd1: 0xe0006fc4, 0x10cd3: 0xe00049aa,
-	0x10cd4: 0xe00088b3, 0x10cd5: 0xe00080c1, 0x10cd7: 0xe00064b3,
-	0x10cd8: 0xe000a0d0, 0x10cdb: 0xe0008026,
-	0x10cdf: 0xe000883b,
-	0x10ce2: 0xe0005145,
-	0x10ce5: 0xe0005ded, 0x10ce6: 0xe0009e5c, 0x10ce7: 0xe0009fe8,
-	0x10ce9: 0xe0004e32,
-	0x10ced: 0xe0005df0,
-	0x10cf1: 0xe00073dc,
-	0x10cf4: 0xe00051d0, 0x10cf5: 0xe0008301,
-	0x10cfa: 0xe0003f6f,
-	0x10cfc: 0xe0009b48,
-	// Block 0x434, offset 0x10d00
-	0x10d00: 0xe00048d4,
-	0x10d06: 0xe00061cb,
-	0x10d08: 0xe000971f, 0x10d0a: 0xe0003f73,
-	0x10d0c: 0xe0005db4, 0x10d0e: 0xe00059f2,
-	0x10d14: 0xe00056c9, 0x10d16: 0xe0004efd, 0x10d17: 0xe0009fa3,
-	0x10d18: 0xe000926d, 0x10d19: 0xe000a3ee, 0x10d1b: 0xe0008029,
-	0x10d1d: 0xe0008065,
-	0x10d22: 0xe0009f4c,
-	0x10d24: 0xe0005244, 0x10d26: 0xe00074ea, 0x10d27: 0xe0007c21,
-	0x10d29: 0xe0008ffa, 0x10d2a: 0xe0009aac, 0x10d2b: 0xe00088b6,
-	0x10d2c: 0xe000660a, 0x10d2d: 0xe000994b,
-	0x10d30: 0xe0008f62, 0x10d31: 0xe000770a,
-	0x10d37: 0xe0005fbb,
-	0x10d39: 0xe000759e,
-	0x10d3c: 0xe0009b1f, 0x10d3f: 0xe00064b7,
-	// Block 0x435, offset 0x10d40
-	0x10d40: 0xe0007a00, 0x10d41: 0xe0008730, 0x10d42: 0xe0008943,
-	0x10d45: 0xe000508e, 0x10d47: 0xe0006e90,
-	0x10d48: 0xe000a46a, 0x10d49: 0xe0007474, 0x10d4a: 0xe000a27c, 0x10d4b: 0xe0005847,
-	0x10d4c: 0xe000a345,
-	0x10d50: 0xe000694a, 0x10d51: 0xe000427c, 0x10d52: 0xe00050e8,
-	0x10d57: 0xe00052c7,
-	0x10d58: 0xe0006050, 0x10d59: 0xe00066d0,
-	0x10d5c: 0xe00068db, 0x10d5e: 0xe00089c8,
-	0x10d60: 0xe0005430, 0x10d61: 0xe00074a3, 0x10d63: 0xe0008e36,
-	0x10d67: 0xe000999b,
-	0x10d68: 0xe000a1ff, 0x10d69: 0xe0006290, 0x10d6a: 0xe0006e94,
-	0x10d6c: 0xe000601f, 0x10d6d: 0xe0007abf, 0x10d6e: 0xe0005db7, 0x10d6f: 0xe0009fc4,
-	0x10d75: 0xe0008de4, 0x10d77: 0xe00050bf,
-	0x10d79: 0xe0009157,
-	0x10d7c: 0xe0007ac2, 0x10d7d: 0xe000a3f1,
-	// Block 0x436, offset 0x10d80
-	0x10d83: 0xe000711c,
-	0x10d85: 0xe0009b4c,
-	0x10d89: 0xe0005148,
-	0x10d8c: 0xe0004c39, 0x10d8d: 0xe00080c5,
-	0x10d90: 0xe000976f, 0x10d92: 0xe000987d,
-	0x10d96: 0xe0009367, 0x10d97: 0xe0008c1f,
-	0x10d98: 0xe0005a7e, 0x10d99: 0xe0005a82,
-	0x10d9d: 0xe00091c7, 0x10d9e: 0xe0005e3f, 0x10d9f: 0xe0005e43,
-	0x10da0: 0xe00094d5, 0x10da1: 0xe00094ed,
-	0x10da4: 0xe0007882,
-	0x10da8: 0xe00079ec, 0x10dab: 0xe000965d,
-	0x10dad: 0xe0006197, 0x10dae: 0xe0004cd8,
-	0x10db1: 0xe0009639,
-	0x10db5: 0xe0004e04,
-	0x10db8: 0xe0004ea6, 0x10dbb: 0xe000a46e,
-	0x10dbc: 0xe0003fc3, 0x10dbd: 0xe000a0bc, 0x10dbf: 0xe000642f,
-	// Block 0x437, offset 0x10dc0
-	0x10dca: 0xe00092f7,
-	0x10dcd: 0xe0008261, 0x10dcf: 0xe00072ea,
-	0x10dd2: 0xe0004e35,
-	0x10dd4: 0xe00087f0, 0x10dd5: 0xe00098be, 0x10dd6: 0xe0009a35, 0x10dd7: 0xe0009217,
-	0x10dd9: 0xe000a05d, 0x10ddb: 0xe0004f71,
-	0x10ddc: 0xe00055d3, 0x10ddd: 0xe00066d3,
-	0x10de0: 0xe00097b8, 0x10de1: 0xe000802c,
-	0x10de5: 0xe0004bc2, 0x10de6: 0xe00099db, 0x10de7: 0xe0006b8f,
-	0x10de8: 0xe0007cc5, 0x10de9: 0xe0004ebd, 0x10dea: 0xe0004739,
-	0x10def: 0xe0004153,
-	0x10df3: 0xe000a25f,
-	// Block 0x438, offset 0x10e00
-	0x10e01: 0xe000814d, 0x10e02: 0xe0006e98, 0x10e03: 0xe0006fc7,
-	0x10e06: 0xe0009d3a, 0x10e07: 0xe00046ec,
-	0x10e08: 0xe0005c42, 0x10e0a: 0xe0009f2c,
-	0x10e0d: 0xe000a203,
-	0x10e10: 0xe0004549, 0x10e12: 0xe0009d0e,
-	0x10e15: 0xe000694d,
-	0x10e19: 0xe0007424, 0x10e1a: 0xe0007562,
-	0x10e1d: 0xe0004694, 0x10e1f: 0xe000a44e,
-	0x10e20: 0xe000474e, 0x10e22: 0xe000a27f, 0x10e23: 0xe00081a5,
-	0x10e24: 0xe000a42a, 0x10e25: 0xe0009572,
-	0x10e28: 0xe0009c1a, 0x10e29: 0xe0007f15, 0x10e2a: 0xe0003dab, 0x10e2b: 0xe0009835,
-	0x10e2c: 0xe0004e08, 0x10e2d: 0xe000454d, 0x10e2f: 0xe000703c,
-	0x10e30: 0xe000a4ba,
-	// Block 0x439, offset 0x10e40
-	0x10e41: 0xe000764e, 0x10e43: 0xe00044e9,
-	0x10e44: 0xe00092fa, 0x10e45: 0xe000767a,
-	0x10e49: 0xe0007108, 0x10e4b: 0xe0005940,
-	0x10e4c: 0xe000883e, 0x10e4d: 0xe0009c1e, 0x10e4f: 0xe0009f30,
-	0x10e52: 0xe0007fa1,
-	0x10e54: 0xe000a282, 0x10e55: 0xe000a51f, 0x10e56: 0xe0009921, 0x10e57: 0xe0005d84,
-	0x10e5a: 0xe0006d07, 0x10e5b: 0xe0008554,
-	0x10e5f: 0xe000783a,
-	0x10e60: 0xe0007deb, 0x10e62: 0xe0005484, 0x10e63: 0xe000a17f,
-	0x10e64: 0xe0009383, 0x10e67: 0xe00058b5,
-	0x10e70: 0xe00089cc, 0x10e71: 0xe0006599, 0x10e72: 0xe000651b, 0x10e73: 0xe00050c3,
-	0x10e74: 0xe00094f5, 0x10e75: 0xe0008fb2, 0x10e76: 0xe0005e0f,
-	0x10e78: 0xe0004366, 0x10e7b: 0xe0009dc5,
-	0x10e7c: 0xe00050eb, 0x10e7d: 0xe0009046, 0x10e7e: 0xe0004579,
-	// Block 0x43a, offset 0x10e80
-	0x10e84: 0xe0004df0, 0x10e85: 0xe0008734, 0x10e86: 0xe0009429, 0x10e87: 0xe00051ac,
-	0x10e89: 0xe00091cb, 0x10e8b: 0xe00079f0,
-	0x10e8f: 0xe00053de,
-	0x10e91: 0xe000a084, 0x10e93: 0xe00049ee,
-	0x10e95: 0xe000909f,
-	0x10e98: 0xe0005aa6, 0x10e99: 0xe000917f, 0x10e9a: 0xe000a0c0, 0x10e9b: 0xe000a0ac,
-	0x10e9c: 0xe00069bf, 0x10e9d: 0xe0008fb6, 0x10e9f: 0xe0007dee,
-	0x10ea0: 0xe0009fa6, 0x10ea1: 0xe00071ca, 0x10ea2: 0xe0006d3b,
-	0x10eb0: 0xe0009675, 0x10eb1: 0xe0004e6c, 0x10eb2: 0xe0007c75, 0x10eb3: 0xe0006893,
-	0x10eb4: 0xe0009501, 0x10eb6: 0xe000a207, 0x10eb7: 0xe0008b64,
-	0x10eb8: 0xe0004310, 0x10eb9: 0xe00073c7, 0x10eba: 0xe0006b93, 0x10ebb: 0xe000954f,
-	0x10ebc: 0xe000999f,
-	// Block 0x43b, offset 0x10ec0
-	0x10ec0: 0xe00092fd, 0x10ec1: 0xe0006d6b, 0x10ec3: 0xe0006a9f,
-	0x10ec6: 0xe00040db,
-	0x10ec8: 0xe0007df1, 0x10ec9: 0xe0007df4,
-	0x10ecd: 0xe0005e13, 0x10ece: 0xe000996b, 0x10ecf: 0xe0007fc9,
-	0x10ed4: 0xe0007f8d, 0x10ed5: 0xe00071ce,
-	0x10eda: 0xe0007b9f, 0x10edb: 0xe000731e,
-	0x10edc: 0xe0009f34, 0x10edf: 0xe0003ebf,
-	0x10ee7: 0xe000473c,
-	0x10eec: 0xe0006c78, 0x10eed: 0xe0004cdb,
-	0x10ef0: 0xe000a20b,
-	0x10ef4: 0xe0008f66, 0x10ef7: 0xe000400a,
-	0x10efc: 0xe0007090, 0x10efe: 0xe000400d, 0x10eff: 0xe0007cc9,
-	// Block 0x43c, offset 0x10f00
-	0x10f02: 0xe0007b1d,
-	0x10f04: 0xe000584b, 0x10f06: 0xe000514b, 0x10f07: 0xe0007f19,
-	0x10f08: 0xe00081a8, 0x10f0a: 0xe0004218, 0x10f0b: 0xe00097bb,
-	0x10f0c: 0xe000a20f, 0x10f0d: 0xe00078e5,
-	0x10f12: 0xe0008a08, 0x10f13: 0xe0009aaf,
-	0x10f15: 0xe0005bfd,
-	0x10f18: 0xe0008eee, 0x10f19: 0xe0008ef2, 0x10f1a: 0xe0008f1a,
-	0x10f1d: 0xe0009875, 0x10f1f: 0xe000981d,
-	0x10f20: 0xe0007885, 0x10f22: 0xe00059f6, 0x10f23: 0xe0004620,
-	0x10f24: 0xe0003daf, 0x10f27: 0xe0009fa9,
-	0x10f28: 0xe0004010, 0x10f2b: 0xe00089d0,
-	0x10f2e: 0xe00054a7,
-	0x10f30: 0xe0007d6d, 0x10f31: 0xe0004f35, 0x10f33: 0xe0003e47,
-	0x10f34: 0xe0006f6d, 0x10f35: 0xe0007b65, 0x10f36: 0xe0004280, 0x10f37: 0xe0003f77,
-	0x10f3a: 0xe00057d6,
-	0x10f3d: 0xe0009067, 0x10f3e: 0xe0007add,
-	// Block 0x43d, offset 0x10f40
-	0x10f41: 0xe0009387, 0x10f42: 0xe0007ba2, 0x10f43: 0xe0007b69,
-	0x10f4a: 0xe000651e,
-	0x10f4d: 0xe00047de, 0x10f4e: 0xe0008bdc,
-	0x10f50: 0xe0005523, 0x10f51: 0xe000666e, 0x10f52: 0xe0004a34,
-	0x10f54: 0xe0009294, 0x10f56: 0xe0007f3d,
-	0x10f58: 0xe000a4f5, 0x10f59: 0xe000a4f2, 0x10f5a: 0xe0009723,
-	0x10f64: 0xe0006433, 0x10f67: 0xe0005200,
-	0x10f68: 0xe0003f0f, 0x10f69: 0xe0004166, 0x10f6b: 0xe0005e17,
-	0x10f6c: 0xe0004284, 0x10f6e: 0xe0005cf9, 0x10f6f: 0xe0008f1e,
-	0x10f72: 0xe0009e00,
-	0x10f76: 0xe00074ce,
-	0x10f78: 0xe0006b43, 0x10f7a: 0xe0004f89, 0x10f7b: 0xe000973b,
-	0x10f7c: 0xe0004314, 0x10f7e: 0xe0003ec3,
-	// Block 0x43e, offset 0x10f80
-	0x10f83: 0xe0004b1a,
-	0x10f86: 0xe0008946, 0x10f87: 0xe0003dff,
-	0x10f88: 0xe0009d5f, 0x10f89: 0xe0007fb1, 0x10f8a: 0xe000783d, 0x10f8b: 0xe0005cfc,
-	0x10f8c: 0xe00075be,
-	0x10f95: 0xe00076be, 0x10f97: 0xe0009bdb,
-	0x10f9e: 0xe0005c9f, 0x10f9f: 0xe00050ac,
-	0x10fa3: 0xe0005d88,
-	0x10fa6: 0xe0004d5c,
-	0x10fb2: 0xe0008de8,
-	0x10fb6: 0xe0005312, 0x10fb7: 0xe000a285,
-	0x10fb8: 0xe0009e60, 0x10fba: 0xe0008ef6,
-	0x10fbc: 0xe0004838, 0x10fbd: 0xe000a1b3, 0x10fbe: 0xe0006b6b, 0x10fbf: 0xe0007fcc,
-	// Block 0x43f, offset 0x10fc0
-	0x10fc0: 0xe0005527,
-	0x10fc7: 0xe0005019,
-	0x10fc8: 0xe00045a8, 0x10fca: 0xe0005cff,
-	0x10fcc: 0xe0006f1c, 0x10fcd: 0xe0006d6e, 0x10fce: 0xe0007efd,
-	0x10fd0: 0xe0006b97, 0x10fd1: 0xe0007175, 0x10fd2: 0xe0004369,
-	0x10fd4: 0xe0008295, 0x10fd5: 0xe0008381, 0x10fd6: 0xe000a088,
-	0x10fda: 0xe000906b,
-	0x10fde: 0xe000726a, 0x10fdf: 0xe0004aee,
-	0x10fe1: 0xe0003ec7, 0x10fe2: 0xe0008de0,
-	0x10fe7: 0xe0008fba,
-	0x10fe9: 0xe00085d8, 0x10fea: 0xe0008668,
-	0x10fee: 0xe000581f,
-	0x10ff0: 0xe0008558, 0x10ff1: 0xe000a4f8, 0x10ff2: 0xe000a522, 0x10ff3: 0xe0008e5e,
-	0x10ff4: 0xe0005091, 0x10ff5: 0xe00048d7, 0x10ff6: 0xe0009feb,
-	0x10ff9: 0xe000738f,
-	0x10ffe: 0xe00054aa, 0x10fff: 0xe0005fbf,
-	// Block 0x440, offset 0x11000
-	0x11000: 0xe0006c0c, 0x11001: 0xe0009977, 0x11003: 0xe0004318,
-	0x11007: 0xe0006a23,
-	0x11008: 0xe0009fee, 0x11009: 0xe0006521, 0x1100a: 0xe00076c2, 0x1100b: 0xe0006d71,
-	0x1100d: 0xe00083c1, 0x1100e: 0xe0008eda,
-	0x11011: 0xe00062c8, 0x11012: 0xe0006086, 0x11013: 0xe0009678,
-	0x11017: 0xe00083ee,
-	0x11018: 0xe00096c7, 0x1101b: 0xe0003fc7,
-	0x11023: 0xe00048da,
-	0x11028: 0xe00080f5,
-	0x1102e: 0xe0006437,
-	0x11031: 0xe0004bc6, 0x11033: 0xe0005f47,
-	0x11036: 0xe0006371,
-	0x11039: 0xe0006524, 0x1103a: 0xe0008c79,
-	0x1103c: 0xe0007373, 0x1103e: 0xe0008949, 0x1103f: 0xe0006f8d,
-	// Block 0x441, offset 0x11040
-	0x11040: 0xe0004c3c, 0x11043: 0xe000619b,
-	0x11044: 0xe0009297, 0x11046: 0xe0005d8c,
-	0x11049: 0xe00041f0, 0x1104a: 0xe000988e,
-	0x11051: 0xe00074d2, 0x11052: 0xe0006950,
-	0x11054: 0xe00063cb, 0x11055: 0xe000985f, 0x11056: 0xe000528e, 0x11057: 0xe0009d12,
-	0x11058: 0xe000866c, 0x1105b: 0xe0009a38,
-	0x11068: 0xe00099df, 0x1106b: 0xe0009b22,
-	0x1106c: 0xe00097e2,
-	0x11071: 0xe0009a3b,
-	0x11075: 0xe000842c,
-	0x11079: 0xe0005a56,
-	0x1107c: 0xe00072d6, 0x1107d: 0xe00093db,
-	// Block 0x442, offset 0x11080
-	0x11082: 0xe00064bb,
-	0x11084: 0xe0008ad1, 0x11085: 0xe0004f39, 0x11086: 0xe00096ef, 0x11087: 0xe0005d02,
-	0x11088: 0xe0004e0c, 0x11089: 0xe00053e2, 0x1108a: 0xe00063ce,
-	0x1108c: 0xe0005eef, 0x1108d: 0xe0005e83, 0x1108f: 0xe0004d5f,
-	0x11090: 0xe000473f, 0x11091: 0xe0004238, 0x11092: 0xe0004079, 0x11093: 0xe000906f,
-	0x11094: 0xe0005f67, 0x11095: 0xe0009696, 0x11096: 0xe000967b, 0x11097: 0xe0007a71,
-	0x11098: 0xe000483b, 0x11099: 0xe00089b8, 0x1109b: 0xe000929a,
-	0x1109c: 0xe0006053,
-	0x110ac: 0xe0004698, 0x110ad: 0xe0007040, 0x110ae: 0xe0004d3e, 0x110af: 0xe0008be4,
-	0x110b1: 0xe0004551, 0x110b3: 0xe00049d6,
-	0x110b5: 0xe00089b0, 0x110b6: 0xe0008ede, 0x110b7: 0xe00043db,
-	0x110bd: 0xe00077e0, 0x110be: 0xe0006f5d, 0x110bf: 0xe0004d62,
-	// Block 0x443, offset 0x110c0
-	0x110c1: 0xe0008c22, 0x110c2: 0xe0004724,
-	0x110c7: 0xe0008c25,
-	0x110c9: 0xe0007226,
-	0x110cc: 0xe0004188,
-	0x110d0: 0xe0004d68, 0x110d1: 0xe00050ee, 0x110d2: 0xe0005587,
-	0x110e8: 0xe0007345, 0x110ea: 0xe0004d6b, 0x110eb: 0xe0008a38,
-	0x110ef: 0xe0008cc4,
-	0x110f9: 0xe0007fa5, 0x110fa: 0xe0008738, 0x110fb: 0xe00075e6,
-	0x110fd: 0xe00059fa, 0x110fe: 0xe0009f00,
-	// Block 0x444, offset 0x11100
-	0x11102: 0xe0007888, 0x11103: 0xe000497a,
-	0x11104: 0xe00048dd, 0x11106: 0xe00044ed,
-	0x11109: 0xe0008e42,
-	0x1110c: 0xe000990f, 0x1110d: 0xe0009c5a, 0x1110e: 0xe0006c7b, 0x1110f: 0xe0004d97,
-	0x11110: 0xe00075e2,
-	0x11115: 0xe0009a3e, 0x11117: 0xe00090a3,
-	0x11127: 0xe0006300,
-	0x11128: 0xe00066d6, 0x11129: 0xe000558b, 0x1112b: 0xe0005d90,
-	0x1112e: 0xe000407c,
-	0x11131: 0xe0007348, 0x11132: 0xe00049da,
-	0x11136: 0xe000942c, 0x11137: 0xe00091ef,
-	0x1113a: 0xe0004d9b, 0x1113b: 0xe0004e10,
-	0x1113f: 0xe0006953,
-	// Block 0x445, offset 0x11140
-	0x11140: 0xe000a472, 0x11143: 0xe0006c0f,
-	0x11144: 0xe0005843, 0x11147: 0xe0009183,
-	0x11148: 0xe0006d74, 0x11149: 0xe00050f1, 0x1114a: 0xe00063d1,
-	0x1114c: 0xe0008305, 0x1114e: 0xe0004cde, 0x1114f: 0xe000514e,
-	0x11152: 0xe0006056,
-	0x11156: 0xe0007377,
-	0x11158: 0xe000498e, 0x1115b: 0xe000471b,
-	0x1115c: 0xe00077e3, 0x1115f: 0xe00087f4,
-	0x11160: 0xe0005440, 0x11161: 0xe0008ffd, 0x11162: 0xe000975b,
-	0x11165: 0xe00086e0, 0x11167: 0xe0004555,
-	0x11168: 0xe00093de, 0x11169: 0xe0007532, 0x1116a: 0xe00088b9,
-	0x1116c: 0xe0004956,
-	0x1117e: 0xe0007652,
-	// Block 0x446, offset 0x11180
-	0x11180: 0xe0003e03, 0x11183: 0xe00085dc,
-	0x11184: 0xe0007df7, 0x11186: 0xe0004a67,
-	0x11189: 0xe0007e63,
-	0x1118f: 0xe0005ccf,
-	0x11190: 0xe0008841,
-	0x11196: 0xe0007f95,
-	0x1119a: 0xe0007428, 0x1119b: 0xe000a183,
-	0x1119f: 0xe000699b,
-	0x111a0: 0xe000726e, 0x111a1: 0xe00071d2, 0x111a3: 0xe0009504,
-	0x111a9: 0xe000403a, 0x111ab: 0xe000942f,
-	0x111ad: 0xe0004169, 0x111ae: 0xe000a3f4,
-	0x111b2: 0xe0006b07,
-	0x111b4: 0xe0007ccd, 0x111b5: 0xe00040f7, 0x111b6: 0xe00073ca, 0x111b7: 0xe000682f,
-	// Block 0x447, offset 0x111c0
-	0x111c6: 0xe00048e0,
-	0x111c9: 0xe0003dd7,
-	0x111cd: 0xe0006cdf, 0x111cf: 0xe0005e87,
-	0x111d2: 0xe0006023,
-	0x111d4: 0xe0006c12, 0x111d6: 0xe0007a74, 0x111d7: 0xe00050f4,
-	0x111dc: 0xe0006d77,
-	0x111e2: 0xe0008cc8,
-	0x111e4: 0xe0007393, 0x111e5: 0xe0009432,
-	0x111e8: 0xe000978b, 0x111ea: 0xe0005041, 0x111eb: 0xe0005f4b,
-	0x111ec: 0xe0005ef3, 0x111ed: 0xe000977b, 0x111ef: 0xe0005151,
-	0x111f0: 0xe0004521,
-	0x111f6: 0xe0008fbe,
-	0x111fa: 0xe000a40f,
-	0x111fe: 0xe0008e46,
-	// Block 0x448, offset 0x11200
-	0x11218: 0xe00084b4,
-	0x11220: 0xe000938b,
-	0x11227: 0xe00093c3,
-	0x11229: 0xe0005998,
-	0x1122d: 0xe00090a7, 0x1122f: 0xe0008c28,
-	0x11233: 0xe00048e3,
-	0x11238: 0xe0005c00, 0x11239: 0xe0005c03, 0x1123a: 0xe00086e4, 0x1123b: 0xe0006b47,
-	0x1123d: 0xe0009adc,
-	// Block 0x449, offset 0x11240
-	0x11245: 0xe0004a37,
-	0x11248: 0xe000564f,
-	0x11250: 0xe00097fa, 0x11251: 0xe00097f6, 0x11252: 0xe00067f7, 0x11253: 0xe0007a77,
-	0x11255: 0xe000699e,
-	0x11259: 0xe0008b68, 0x1125a: 0xe0004df8,
-	0x1125d: 0xe000a406, 0x1125e: 0xe000501d, 0x1125f: 0xe00047e1,
-	0x11264: 0xe000915b, 0x11265: 0xe0005f6b,
-	0x11269: 0xe0005780, 0x1126b: 0xe0005d05,
-	0x1126d: 0xe0009891, 0x1126e: 0xe00093b3,
-	0x11270: 0xe0008e6a, 0x11272: 0xe0005e8b,
-	0x1127b: 0xe0004f59,
-	0x1127c: 0xe0003f13, 0x1127e: 0xe00045d5, 0x1127f: 0xe0004147,
-	// Block 0x44a, offset 0x11280
-	0x11281: 0xe000791d,
-	0x11284: 0xe0005652, 0x11285: 0xe00090cb, 0x11287: 0xe00097ee,
-	0x11289: 0xe0008e62, 0x1128a: 0xe000416c,
-	0x1128d: 0xe00088bc, 0x1128e: 0xe0004288,
-	0x11290: 0xe000a1b7, 0x11292: 0xe0004b7a,
-	0x11294: 0xe0004f8d, 0x11295: 0xe000a41e, 0x11297: 0xe0006167,
-	0x11298: 0xe0006147, 0x1129a: 0xe000407f,
-	0x112a0: 0xe0008877, 0x112a1: 0xe0005094, 0x112a2: 0xe00096cb, 0x112a3: 0xe0005154,
-	0x112a5: 0xe00053b6, 0x112a6: 0xe0008ece, 0x112a7: 0xe0004082,
-	0x112ac: 0xe0007fcf, 0x112ad: 0xe000a13b, 0x112af: 0xe000663e,
-	0x112b1: 0xe0003ddb, 0x112b2: 0xe0009073,
-	0x112b4: 0xe000a147,
-	0x112ba: 0xe0009894,
-	0x112be: 0xe0007a7a,
-	// Block 0x44b, offset 0x112c0
-	0x112c0: 0xe0005ef7, 0x112c2: 0xe0005735,
-	0x112c4: 0xe0009802, 0x112c7: 0xe0009e18,
-	0x112ca: 0xe000550b,
-	0x112cf: 0xe0005705,
-	0x112d4: 0xe000538e,
-	0x112d8: 0xe000742c, 0x112d9: 0xe0008f22,
-	0x112dd: 0xe0006b5b,
-	0x112e2: 0xe0008eb6, 0x112e3: 0xe000552b,
-	0x112e4: 0xe000973f,
-	0x112ea: 0xe0004796, 0x112eb: 0xe000a14b,
-	0x112ec: 0xe00053ba, 0x112ef: 0xe0008c2b,
-	0x112f2: 0xe0004ce1,
-	0x112f6: 0xe0006d7a, 0x112f7: 0xe00043de,
-	0x112f8: 0xe0007dfa, 0x112f9: 0xe0004013, 0x112fb: 0xe0004559,
-	0x112fd: 0xe0005f4f, 0x112fe: 0xe0005fc3, 0x112ff: 0xe000873c,
-	// Block 0x44c, offset 0x11300
-	0x11305: 0xe00043e1,
-	0x11308: 0xe000a2f7, 0x11309: 0xe0005df3,
-	0x1130d: 0xe0006956, 0x1130e: 0xe0004799, 0x1130f: 0xe0005e1b,
-	0x11311: 0xe000483e,
-	0x11314: 0xe00074c1, 0x11315: 0xe00095ed, 0x11316: 0xe0007840, 0x11317: 0xe0009924,
-	0x1131d: 0xe0009a11, 0x1131e: 0xe0008f6a,
-	0x11322: 0xe0003ecb, 0x11323: 0xe000679f,
-	0x11326: 0xe00051b0,
-	0x1132c: 0xe000428c, 0x1132d: 0xe0007430,
-	0x11332: 0xe00043e4,
-	0x11334: 0xe0008740, 0x11335: 0xe00084b8, 0x11337: 0xe0006374,
-	0x11338: 0xe0006d7d,
-	0x1133e: 0xe0006a27,
-	// Block 0x44d, offset 0x11340
-	0x11341: 0xe0005291, 0x11342: 0xe0005597, 0x11343: 0xe0009a02,
-	0x11345: 0xe000a2fa, 0x11347: 0xe0005d60,
-	0x1134c: 0xe000660e,
-	0x11350: 0xe0006527, 0x11351: 0xe0005efb,
-	0x11357: 0xe0005273,
-	0x11359: 0xe0005762, 0x1135b: 0xe000448d,
-	0x1135c: 0xe00066d9, 0x1135d: 0xe0003d84, 0x1135f: 0xe0008db8,
-	0x11361: 0xe0007256,
-	0x11364: 0xe0004b1e, 0x11365: 0xe0009077, 0x11367: 0xe0006377,
-	0x1136b: 0xe0008235,
-	0x1136c: 0xe0008efa, 0x1136f: 0xe00066dc,
-	0x11370: 0xe0007094, 0x11371: 0xe0008265, 0x11372: 0xe0008e66,
-	0x11377: 0xe0004f01,
-	0x11379: 0xe0005fc7,
-	0x1137c: 0xe00074a6, 0x1137d: 0xe0006fca, 0x1137f: 0xe0007e66,
-	// Block 0x44e, offset 0x11380
-	0x11381: 0xe0005fcb, 0x11382: 0xe0004ce4, 0x11383: 0xe00085e0,
-	0x11384: 0xe0005c45, 0x11385: 0xe00054ad, 0x11386: 0xe000993f,
-	0x1138a: 0xe0006027, 0x1138b: 0xe0006a2b,
-	0x1138c: 0xe0008744, 0x1138f: 0xe0008994,
-	0x11392: 0xe00057e5,
-	0x11397: 0xe0004c3f,
-	0x113a0: 0xe0005d08, 0x113a3: 0xe0004c42,
-	0x113a5: 0xe0008121, 0x113a6: 0xe0004f05,
-	0x113a8: 0xe0008c2e, 0x113a9: 0xe00088bf,
-	0x113ac: 0xe0006e9c, 0x113ad: 0xe0007c25,
-	0x113b1: 0xe0009c22, 0x113b2: 0xe00050af,
-	0x113b4: 0xe0007ba5,
-	0x113ba: 0xe0007a04, 0x113bb: 0xe0005e1f,
-	0x113bc: 0xe0005e23, 0x113bd: 0xe00051b4, 0x113bf: 0xe0007843,
-	// Block 0x44f, offset 0x113c0
-	0x113c0: 0xe0007ee9, 0x113c3: 0xe000955b,
-	0x113c6: 0xe00044c5, 0x113c7: 0xe0006f91,
-	0x113c9: 0xe0005fcf, 0x113ca: 0xe0009ff1,
-	0x113cc: 0xe0008f6e, 0x113ce: 0xe0005bb7, 0x113cf: 0xe000a094,
-	0x113d0: 0xe000643b, 0x113d1: 0xe0004b7e, 0x113d3: 0xe00075a2,
-	0x113d4: 0xe00069c3, 0x113d5: 0xe000a45a,
-	0x113db: 0xe00040a0,
-	0x113de: 0xe00061e7, 0x113df: 0xe0006b9b,
-	0x113e0: 0xe000770e, 0x113e1: 0xe0009eac,
-	0x113e4: 0xe0005613, 0x113e5: 0xe00094b5, 0x113e7: 0xe0005aca,
-	0x113e8: 0xe0008239, 0x113eb: 0xe00048e6,
-	0x113ed: 0xe0006c15, 0x113ef: 0xe0006fcd,
-	0x113f0: 0xe0009bb7, 0x113f1: 0xe0007c29,
-	0x113f4: 0xe0005cd2, 0x113f5: 0xe0004ed4, 0x113f6: 0xe0008f72, 0x113f7: 0xe00078e9,
-	0x113fa: 0xe00061eb, 0x113fb: 0xe00072ee,
-	// Block 0x450, offset 0x11400
-	0x11401: 0xe00088c2, 0x11402: 0xe0006fd0, 0x11403: 0xe000a213,
-	0x11404: 0xe000a217,
-	0x11408: 0xe00047e4, 0x11409: 0xe0008ccc, 0x1140b: 0xe0008cd0,
-	0x1140c: 0xe00068df, 0x1140e: 0xe000a0f4, 0x1140f: 0xe000722a,
-	0x11419: 0xe0008b24, 0x1141b: 0xe0009e64,
-	0x1141d: 0xe0008a71, 0x1141e: 0xe000a4fb, 0x1141f: 0xe0006b9f,
-	0x11421: 0xe0009a74, 0x11422: 0xe0008688,
-	0x11424: 0xe0007846, 0x11425: 0xe000a18b, 0x11426: 0xe000a288, 0x11427: 0xe0009ff4,
-	0x11428: 0xe0007098, 0x11429: 0xe00059fe, 0x1142b: 0xe00096cf,
-	0x1142c: 0xe0006e0a, 0x1142e: 0xe0006243, 0x1142f: 0xe0004290,
-	0x11430: 0xe00069ef, 0x11433: 0xe00069c7,
-	0x11434: 0xe0009223, 0x11436: 0xe0008748, 0x11437: 0xe0004a52,
-	0x11438: 0xe000874c, 0x1143a: 0xe0008c31, 0x1143b: 0xe00072b2,
-	// Block 0x451, offset 0x11440
-	0x11444: 0xe000a3c1, 0x11447: 0xe0003d3c,
-	0x11448: 0xe000a399, 0x11449: 0xe000a3f7, 0x1144b: 0xe0005e47,
-	0x1144c: 0xe0004a97, 0x1144e: 0xe0007712,
-	0x11450: 0xe0007d70, 0x11451: 0xe0006959,
-	0x11456: 0xe0004d7b, 0x11457: 0xe0007296,
-	0x11458: 0xe0007434,
-	0x1145d: 0xe0005bbb, 0x1145e: 0xe00047e7,
-	0x11460: 0xe00043e7, 0x11462: 0xe0008f76, 0x11463: 0xe0004ce7,
-	0x1146b: 0xe00082a1,
-	0x1146c: 0xe0006b0b, 0x1146e: 0xe0005c06,
-	0x11471: 0xe0004ed8, 0x11472: 0xe0008309, 0x11473: 0xe0009fac,
-	0x11474: 0xe0009a96, 0x11475: 0xe0009c5e,
-	0x11478: 0xe0005783, 0x11479: 0xe0006b23, 0x1147b: 0xe0004294,
-	0x1147e: 0xe00051b8, 0x1147f: 0xe000a525,
-	// Block 0x452, offset 0x11480
-	0x11480: 0xe0007565, 0x11481: 0xe0004cea,
-	0x11484: 0xe00076e6, 0x11485: 0xe00076f2, 0x11486: 0xe00054f3, 0x11487: 0xe0004f91,
-	0x11489: 0xe000a2fd,
-	0x11493: 0xe0009a77,
-	0x11496: 0xe0007321,
-	0x11499: 0xe000695c, 0x1149a: 0xe0005ca3, 0x1149b: 0xe000a39d,
-	0x1149c: 0xe0007a7d, 0x1149d: 0xe0009a9a,
-	0x114a0: 0xe00046cc, 0x114a3: 0xe0007656,
-	0x114a6: 0xe000a4fe,
-	0x114a8: 0xe0005709, 0x114a9: 0xe0004dcb, 0x114aa: 0xe000532d,
-	0x114ac: 0xe0006d3e, 0x114ae: 0xe0007542, 0x114af: 0xe000934b,
-	0x114b0: 0xe00079fc, 0x114b2: 0xe0004491, 0x114b3: 0xe00077aa,
-	0x114b4: 0xe0004298, 0x114b7: 0xe0003e77,
-	0x114b8: 0xe000695f, 0x114b9: 0xe00088c8, 0x114ba: 0xe00088c5,
-	0x114bc: 0xe0005a02, 0x114be: 0xe0008be0, 0x114bf: 0xe0009252,
-	// Block 0x453, offset 0x114c0
-	0x114c0: 0xe00093bd, 0x114c3: 0xe000a28b,
-	0x114c5: 0xe0004123,
-	0x114c8: 0xe0007d41, 0x114c9: 0xe0007dfd, 0x114cb: 0xe00064e3,
-	0x114cc: 0xe0005f53, 0x114cd: 0xe0006294,
-	0x114d4: 0xe000677f, 0x114d5: 0xe0008dbc, 0x114d7: 0xe00053f6,
-	0x114db: 0xe0005a86,
-	0x114dd: 0xe00088cb, 0x114de: 0xe0004c45, 0x114df: 0xe0004c48,
-	0x114e3: 0xe0005248,
-	0x114e6: 0xe0005c93, 0x114e7: 0xe00056ed,
-	0x114e8: 0xe0005c63, 0x114ea: 0xe0005dba, 0x114eb: 0xe0005a5a,
-	0x114ec: 0xe00062e4, 0x114ed: 0xe0008ed2, 0x114ee: 0xe00094c5,
-	0x114f1: 0xe0008a74, 0x114f3: 0xe0009913,
-	0x114f4: 0xe0005e8f, 0x114f6: 0xe000967e,
-	0x114fa: 0xe0004a16,
-	0x114fd: 0xe000a348,
-	// Block 0x454, offset 0x11500
-	0x11505: 0xe0007bf9, 0x11506: 0xe0003e07,
-	0x11509: 0xe000680b,
-	0x1150e: 0xe00058b8, 0x1150f: 0xe0009db9,
-	0x11510: 0xe00083c4, 0x11511: 0xe000936b, 0x11513: 0xe0009ab2,
-	0x11516: 0xe000830d,
-	0x1151c: 0xe0005276, 0x1151e: 0xe0004c4b, 0x1151f: 0xe0006cb3,
-	0x11520: 0xe0003fcb,
-	0x1152a: 0xe0009300,
-	0x1152c: 0xe0007d11, 0x1152d: 0xe0009d16, 0x1152f: 0xe0006059,
-	0x11530: 0xe0004117, 0x11531: 0xe0005204, 0x11532: 0xe000443e, 0x11533: 0xe0005cd5,
-	0x11535: 0xe000842f, 0x11537: 0xe0009897,
-	0x1153b: 0xe0004ea0,
-	0x1153c: 0xe0008474, 0x1153e: 0xe0006d0b, 0x1153f: 0xe00098e7,
-	// Block 0x455, offset 0x11540
-	0x11547: 0xe000652a,
-	0x11549: 0xe0007a08, 0x1154b: 0xe0005fd3,
-	0x1154c: 0xe000646f, 0x1154f: 0xe0004da3,
-	0x11550: 0xe00069cb, 0x11553: 0xe0005279,
-	0x11555: 0xe0009619, 0x11557: 0xe000596c,
-	0x11558: 0xe00077e6, 0x11559: 0xe0007982, 0x1155a: 0xe0005acd,
-	0x1155c: 0xe00045ab, 0x1155d: 0xe0008c34,
-	0x1156f: 0xe00043ea,
-	0x11570: 0xe00099cf, 0x11572: 0xe000700f, 0x11573: 0xe0008c37,
-	0x11576: 0xe0003d3f, 0x11577: 0xe0003d42,
-	0x11578: 0xe0004841,
-	0x1157e: 0xe0006fd3,
-	// Block 0x456, offset 0x11580
-	0x11581: 0xe0009699,
-	0x11584: 0xe00061ef, 0x11585: 0xe0004ec0,
-	0x1158a: 0xe0008a0c,
-	0x1158f: 0xe000609b,
-	0x11590: 0xe0005c09, 0x11591: 0xe0003ecf, 0x11592: 0xe0009609, 0x11593: 0xe0007692,
-	0x11594: 0xe0007e00, 0x11597: 0xe0006d23,
-	0x11598: 0xe00081e7, 0x11599: 0xe0009ce6, 0x1159a: 0xe0007e03,
-	0x1159d: 0xe00096d3, 0x1159e: 0xe0008269, 0x1159f: 0xe0004db7,
-	0x115a2: 0xe0008477,
-	0x115a9: 0xe0004844,
-	0x115ac: 0xe0003e0b, 0x115af: 0xe0003d45,
-	0x115b0: 0xe0004dd8, 0x115b1: 0xe0008a77, 0x115b3: 0xe00057e8,
-	0x115b4: 0xe0006fd6, 0x115b5: 0xe000901c, 0x115b6: 0xe00066df,
-	0x115b9: 0xe0007012, 0x115bb: 0xe00066e2,
-	0x115be: 0xe0008750,
-	// Block 0x457, offset 0x115c0
-	0x115c3: 0xe000a2b2,
-	0x115d2: 0xe0006ea0, 0x115d3: 0xe000855c,
-	0x115d6: 0xe0006962, 0x115d7: 0xe000584f,
-	0x115dd: 0xe00046a4, 0x115de: 0xe0003e4b,
-	0x115e1: 0xe000479c, 0x115e2: 0xe000609f,
-	0x115ea: 0xe0008a7a,
-	0x115ee: 0xe0008068, 0x115ef: 0xe0007c2d,
-	0x115f1: 0xe000457d, 0x115f2: 0xe0004441,
-	0x115f4: 0xe00085e4,
-	0x115f8: 0xe0009da5, 0x115f9: 0xe0004b22, 0x115fb: 0xe0007074,
-	0x115fc: 0xe0004170, 0x115fd: 0xe00083c7,
-	// Block 0x458, offset 0x11600
-	0x11600: 0xe000411b, 0x11601: 0xe0009d1a, 0x11602: 0xe000436c, 0x11603: 0xe00050f7,
-	0x11604: 0xe00046f0, 0x11606: 0xe00046f4,
-	0x11608: 0xe000722e, 0x11609: 0xe0007246,
-	0x1160e: 0xe0008d7c,
-	0x11610: 0xe0005208, 0x11611: 0xe0006897, 0x11613: 0xe000a18f,
-	0x11614: 0xe0004d42,
-	0x1162d: 0xe0008cd4, 0x1162f: 0xe00087f8,
-	0x11634: 0xe00063d4, 0x11636: 0xe0009821, 0x11637: 0xe0003ddf,
-	0x1163e: 0xe000497e, 0x1163f: 0xe0003e0f,
-	// Block 0x459, offset 0x11640
-	0x11641: 0xe000545c, 0x11643: 0xe00087fc,
-	0x11645: 0xe0005ad0, 0x11646: 0xe000602b,
-	0x1164f: 0xe0004495,
-	0x11653: 0xe00083ca,
-	0x11654: 0xe0009575, 0x11657: 0xe000429c,
-	0x1165b: 0xe0004d6e,
-	0x1165d: 0xe00088ce, 0x1165f: 0xe000a300,
-	0x11660: 0xe00054d7, 0x11661: 0xe00079a0, 0x11662: 0xe000929d, 0x11663: 0xe0007138,
-	0x11667: 0xe0007849,
-	0x11668: 0xe00058bb,
-	0x1166d: 0xe00066e5, 0x1166f: 0xe0008844,
-	0x11670: 0xe000436f, 0x11671: 0xe00044c9, 0x11673: 0xe0006c18,
-	0x11675: 0xe000610b, 0x11676: 0xe0005dbd,
-	// Block 0x45a, offset 0x11680
-	0x11684: 0xe0004c51, 0x11685: 0xe00061f3,
-	0x11689: 0xe0005b67, 0x1168a: 0xe0004ced, 0x1168b: 0xe0004c4e,
-	0x1168c: 0xe0009012, 0x1168d: 0xe00044cd,
-	0x11690: 0xe000659c, 0x11692: 0xe0006304,
-	0x11695: 0xe00089d4, 0x11696: 0xe0008800, 0x11697: 0xe00088d1,
-	0x11698: 0xe0004af2, 0x1169a: 0xe00064e7,
-	0x1169f: 0xe000520c,
-	0x116a0: 0xe0005021, 0x116a3: 0xe0009270,
-	0x116a7: 0xe0008281,
-	0x116a8: 0xe0004372,
-	0x116ac: 0xe00049f2, 0x116ae: 0xe000680f,
-	0x116b2: 0xe0006965,
-	0x116b9: 0xe00050fa, 0x116ba: 0xe0004624, 0x116bb: 0xe0006473,
-	0x116bc: 0xe0006477,
-	// Block 0x45b, offset 0x116c0
-	0x116c0: 0xe00079a4, 0x116c1: 0xe0004600,
-	0x116c4: 0xe00086ec, 0x116c5: 0xe0007fd2,
-	0x116cb: 0xe0005488,
-	0x116cd: 0xe0007044, 0x116ce: 0xe00093e1,
-	0x116d1: 0xe000659f, 0x116d2: 0xe00092a0,
-	0x116d9: 0xe0008fc2,
-	0x116e7: 0xe0005bbf,
-	0x116f0: 0xe00073cd,
-	0x116f4: 0xe0004f3d, 0x116f6: 0xe0008a10,
-	0x116f9: 0xe000963d,
-	0x116fd: 0xe00075ea, 0x116ff: 0xe00094b9,
-	// Block 0x45c, offset 0x11700
-	0x11702: 0xe0006751,
-	0x1170a: 0xe0007438,
-	0x1170f: 0xe0004a9a,
-	0x11713: 0xe0009b03,
-	0x11714: 0xe0006ad3, 0x11715: 0xe0009681, 0x11717: 0xe00040df,
-	0x11719: 0xe0005d0b, 0x1171a: 0xe00092a3,
-	0x1171d: 0xe0005557, 0x1171e: 0xe0005887,
-	0x11720: 0xe0004da7, 0x11721: 0xe0007e06, 0x11722: 0xe0007e09, 0x11723: 0xe0005dc0,
-	0x11725: 0xe0007d15,
-	0x11728: 0xe0008754, 0x1172a: 0xe00086f0, 0x1172b: 0xe0008bc4,
-	0x1172c: 0xe0003e9b, 0x1172d: 0xe0007556, 0x1172e: 0xe0008432, 0x1172f: 0xe0006ea4,
-	0x11733: 0xe0005aeb,
-	0x11735: 0xe0004af6, 0x11737: 0xe0009d62,
-	0x11738: 0xe00093e4, 0x11739: 0xe0007716,
-	// Block 0x45d, offset 0x11740
-	0x1174e: 0xe0003d87,
-	0x11751: 0xe00063d7,
-	0x11754: 0xe0005412, 0x11755: 0xe0007b21,
-	0x11758: 0xe00048e9, 0x1175b: 0xe0008cd8,
-	0x1175c: 0xe0005fd7, 0x1175f: 0xe00083f1,
-	0x11764: 0xe0004127, 0x11765: 0xe000a21b, 0x11766: 0xe0003e4f, 0x11767: 0xe000652d,
-	0x1176d: 0xe0006754, 0x1176e: 0xe000771a,
-	0x11770: 0xe0008c7c, 0x11771: 0xe00093c6,
-	0x11774: 0xe00057eb, 0x11777: 0xe00047ea,
-	0x1177b: 0xe000977f,
-	0x1177c: 0xe0009cea, 0x1177e: 0xe0004525,
-	// Block 0x45e, offset 0x11780
-	0x11780: 0xe0004444, 0x11781: 0xe00043ed, 0x11783: 0xe0005eff,
-	0x11787: 0xe00085e8,
-	0x1178a: 0xe0006783, 0x1178b: 0xe0004847,
-	0x1178c: 0xe0009844, 0x1178d: 0xe0008f7a, 0x1178e: 0xe0008e39,
-	0x11790: 0xe0004742, 0x11793: 0xe0004581,
-	0x117a5: 0xe0009fc7, 0x117a6: 0xe0007b6d, 0x117a7: 0xe0008f26,
-	0x117a8: 0xe00045f4, 0x117a9: 0xe000403d, 0x117aa: 0xe0004016,
-	0x117ad: 0xe0006917,
-	0x117b2: 0xe00044a9,
-	0x117b9: 0xe0004447, 0x117bb: 0xe0004a6a,
-	0x117bd: 0xe00088d4, 0x117bf: 0xe0004b26,
-	// Block 0x45f, offset 0x117c0
-	0x117c0: 0xe0008504, 0x117c2: 0xe00071d6,
-	0x117c5: 0xe0008a14,
-	0x117ca: 0xe00060b7, 0x117cb: 0xe0009839,
-	0x117d1: 0xe0005460, 0x117d2: 0xe0005e73, 0x117d3: 0xe00057af,
-	0x117d4: 0xe0006c7e, 0x117d7: 0xe0008435,
-	0x117d9: 0xe0009ab5, 0x117db: 0xe0004a9d,
-	0x117de: 0xe00093e7, 0x117df: 0xe0008311,
-	0x117e1: 0xe0005c0c, 0x117e3: 0xe000743c,
-	0x117eb: 0xe00041cc,
-	0x117f5: 0xe00092a6,
-	0x117f8: 0xe0005e93, 0x117f9: 0xe0006d80, 0x117fa: 0xe000a111, 0x117fb: 0xe0004a3a,
-	0x117fd: 0xe0008b28,
-	// Block 0x460, offset 0x11800
-	0x11803: 0xe00060fb,
-	0x11804: 0xe0003ed3, 0x11807: 0xe000953d,
-	0x11808: 0xe0007a80, 0x1180a: 0xe000580c, 0x1180b: 0xe000479f,
-	0x11810: 0xe00096f3, 0x11812: 0xe0007c49, 0x11813: 0xe0006ea8,
-	0x11818: 0xe0004ade, 0x11819: 0xe00052cf, 0x1181a: 0xe0006e80,
-	0x1181f: 0xe0004c54,
-	0x11821: 0xe000689b, 0x11822: 0xe000969c,
-	0x11826: 0xe000524c,
-	0x1182b: 0xe000a2da,
-	0x11835: 0xe00067cf,
-	0x1183f: 0xe0003fcf,
-	// Block 0x461, offset 0x11840
-	0x11840: 0xe0004f09,
-	0x11844: 0xe0004174,
-	0x11849: 0xe0008758,
-	0x1184d: 0xe00074d6, 0x1184e: 0xe0004b82,
-	0x11850: 0xe00091cf,
-	0x11854: 0xe0005045, 0x11857: 0xe000614b,
-	0x1185c: 0xe000a28e, 0x1185d: 0xe0008bd0, 0x1185f: 0xe0003d8a,
-	0x11860: 0xe000431c, 0x11862: 0xe0004137, 0x11863: 0xe0008315,
-	0x1186e: 0xe0005157,
-	0x11873: 0xe0006612,
-	0x11876: 0xe00076ca,
-	0x1187b: 0xe0009c92,
-	0x1187c: 0xe0007f41, 0x1187f: 0xe00076c6,
-	// Block 0x462, offset 0x11880
-	0x11882: 0xe00050fd, 0x11883: 0xe0004a19,
-	0x11893: 0xe0005655,
-	0x1189a: 0xe00054b0, 0x1189b: 0xe0008bbc,
-	0x1189c: 0xe000444a, 0x1189d: 0xe00051a0, 0x1189e: 0xe000765a, 0x1189f: 0xe000550f,
-	0x118aa: 0xe0005513,
-	0x118ac: 0xe00095f5,
-	0x118b6: 0xe0009e04,
-	0x118bb: 0xe000739b,
-	0x118bc: 0xe00091d3,
-	// Block 0x463, offset 0x118c0
-	0x118c2: 0xe0005ecb, 0x118c3: 0xe0008f2a,
-	0x118c4: 0xe000536e,
-	0x118ca: 0xe00049de,
-	0x118cc: 0xe0008319,
-	0x118d1: 0xe0008eba, 0x118d2: 0xe0005372,
-	0x118d6: 0xe00053be,
-	0x118de: 0xe0005617,
-	0x118e0: 0xe000a4a6, 0x118e1: 0xe0008e15, 0x118e3: 0xe000a45e,
-	0x118ec: 0xe0009d89,
-	0x118f2: 0xe0007ae1,
-	0x118f7: 0xe000a528,
-	0x118f8: 0xe000734b, 0x118f9: 0xe0008002, 0x118fa: 0xe0004c57, 0x118fb: 0xe000a3b5,
-	0x118fd: 0xe000a4aa, 0x118fe: 0xe0004628, 0x118ff: 0xe0003f17,
-	// Block 0x464, offset 0x11900
-	0x11903: 0xe0006847,
-	0x11906: 0xe000a4ae, 0x11907: 0xe0009e1c,
-	0x11909: 0xe000423c,
-	0x1190c: 0xe0003d48, 0x1190e: 0xe0009727,
-	0x11910: 0xe000484a,
-	0x11914: 0xe0009dfd,
-	0x11919: 0xe000a4ca, 0x1191a: 0xe0006aa3, 0x1191b: 0xe0003f1b,
-	0x1191f: 0xe0007575,
-	0x11920: 0xe0009187, 0x11921: 0xe000a187, 0x11922: 0xe0008c3a, 0x11923: 0xe000875c,
-	0x11924: 0xe0008e18, 0x11925: 0xe0006246, 0x11926: 0xe0005d0e, 0x11927: 0xe0004cf0,
-	0x1192a: 0xe0007a26,
-	0x11932: 0xe0006bd9,
-	0x11937: 0xe00054f7,
-	0x11938: 0xe0004a55, 0x1193b: 0xe00066e8,
-	0x1193f: 0xe0005c87,
-	// Block 0x465, offset 0x11940
-	0x11940: 0xe0007ac5, 0x11942: 0xe000894c, 0x11943: 0xe00072f2,
-	0x11944: 0xe0008cdc, 0x11946: 0xe00097be,
-	0x11949: 0xe0006eac, 0x1194a: 0xe0006d83,
-	0x1194d: 0xe0009adf,
-	0x11951: 0xe0004c02,
-	0x11956: 0xe0007048,
-	0x11958: 0xe0008285,
-	0x1195e: 0xe0007c4d,
-	0x11962: 0xe0009273,
-	0x11964: 0xe00068e3,
-	0x1196b: 0xe0009743,
-	0x1196d: 0xe0003fd3, 0x1196e: 0xe000559b, 0x1196f: 0xe0006616,
-	0x11972: 0xe0006b27, 0x11973: 0xe0006e0d,
-	0x11975: 0xe0004f0d, 0x11977: 0xe0007f1d,
-	0x1197a: 0xe00067fb,
-	0x1197c: 0xe0003db3, 0x1197d: 0xe000a31e, 0x1197f: 0xe0008560,
-	// Block 0x466, offset 0x11980
-	0x11981: 0xe000a3df,
-	0x11984: 0xe000418c, 0x11985: 0xe0007fd5, 0x11986: 0xe000484d,
-	0x1198b: 0xe0005d11,
-	0x1198d: 0xe0005c0f, 0x1198f: 0xe0005ad3,
-	0x11992: 0xe0005178, 0x11993: 0xe0007eb5,
-	0x11994: 0xe0006530, 0x11996: 0xe0006533, 0x11997: 0xe0006536,
-	0x11998: 0xe0006539, 0x1199a: 0xe0008f2e, 0x1199b: 0xe0005c12,
-	0x119ab: 0xe0009ff7,
-	0x119ac: 0xe0004850, 0x119af: 0xe0004fd9,
-	0x119b3: 0xe0009540,
-	0x119bf: 0xe00067ef,
-	// Block 0x467, offset 0x119c0
-	0x119c5: 0xe0008fc6,
-	0x119c8: 0xe0008564,
-	0x119cf: 0xe0007160,
-	0x119d0: 0xe000847a, 0x119d1: 0xe0005e27, 0x119d3: 0xe0005b27,
-	0x119db: 0xe000647b,
-	0x119e3: 0xe0004c5a,
-	0x119e4: 0xe00080f9,
-	0x119f3: 0xe00078ed,
-	0x119f4: 0xe0006d86, 0x119f7: 0xe0006672,
-	0x119f8: 0xe000771e,
-	0x119fe: 0xe000610f, 0x119ff: 0xe0004a3d,
-	// Block 0x468, offset 0x11a00
-	0x11a00: 0xe0008760, 0x11a01: 0xe0008bc8, 0x11a02: 0xe0004853, 0x11a03: 0xe0009917,
-	0x11a0b: 0xe000826d,
-	0x11a0e: 0xe0006113, 0x11a0f: 0xe00050b2,
-	0x11a10: 0xe00069cf, 0x11a12: 0xe0005aaa,
-	0x11a14: 0xe000a496, 0x11a15: 0xe00067a3, 0x11a17: 0xe0009c26,
-	0x11a19: 0xe000788b, 0x11a1a: 0xe000784c, 0x11a1b: 0xe00070e4,
-	0x11a1c: 0xe0006757, 0x11a1d: 0xe0007578, 0x11a1e: 0xe000a0d4, 0x11a1f: 0xe0003f7b,
-	0x11a20: 0xe0008c3d,
-	0x11a28: 0xe0004519, 0x11a2a: 0xe0007a0c,
-	0x11a2d: 0xe00077ad,
-	0x11a30: 0xe00097c1, 0x11a32: 0xe0004bca,
-	0x11a34: 0xe0009903, 0x11a36: 0xe0005d64,
-	0x11a3a: 0xe00041f4,
-	0x11a3d: 0xe0004c5d, 0x11a3e: 0xe000643f,
-	// Block 0x469, offset 0x11a40
-	0x11a41: 0xe0007120, 0x11a42: 0xe0004c60, 0x11a43: 0xe00078b9,
-	0x11a44: 0xe0007c79, 0x11a45: 0xe0007cd1, 0x11a46: 0xe0009d1e, 0x11a47: 0xe00075ee,
-	0x11a48: 0xe000961d, 0x11a49: 0xe0009641,
-	0x11a4c: 0xe00051bc, 0x11a4d: 0xe000a060,
-	0x11a50: 0xe0005c67, 0x11a52: 0xe0005c8b, 0x11a53: 0xe0004ff5,
-	0x11a54: 0xe0005b6b, 0x11a55: 0xe0005da0, 0x11a56: 0xe00094d9,
-	0x11a58: 0xe00065a2, 0x11a59: 0xe00066eb, 0x11a5a: 0xe0008c40, 0x11a5b: 0xe0009927,
-	0x11a6b: 0xe0005a5e,
-	0x11a6c: 0xe0005aee, 0x11a6e: 0xe0008438,
-	0x11a70: 0xe00096f7, 0x11a71: 0xe000969f, 0x11a73: 0xe0009bba,
-	0x11a78: 0xe000653c, 0x11a79: 0xe0007e0c, 0x11a7b: 0xe0009578,
-	0x11a7c: 0xe0006c1b, 0x11a7d: 0xe00043f0, 0x11a7e: 0xe00091a3, 0x11a7f: 0xe00075f2,
-	// Block 0x46a, offset 0x11a80
-	0x11a81: 0xe000a21f, 0x11a82: 0xe0009f50,
-	0x11a84: 0xe0006ad7, 0x11a85: 0xe0006e10, 0x11a86: 0xe0008135,
-	0x11a89: 0xe00090cf, 0x11a8a: 0xe0005e97,
-	0x11a8c: 0xe0009b50,
-	0x11a90: 0xe000586f, 0x11a91: 0xe0007e69, 0x11a93: 0xe000a0d8,
-	0x11a94: 0xe0003f1f, 0x11a95: 0xe0006133, 0x11a97: 0xe00066ee,
-	0x11a99: 0xe00099e3, 0x11a9a: 0xe00081ea, 0x11a9b: 0xe0006117,
-	0x11a9c: 0xe0008c7f, 0x11a9d: 0xe0006c81,
-	0x11aa0: 0xe000561b, 0x11aa1: 0xe0009a41, 0x11aa2: 0xe000989a, 0x11aa3: 0xe0007f99,
-	0x11aa5: 0xe0004eb7,
-	0x11aa8: 0xe0008a7d, 0x11aab: 0xe0009e68,
-	0x11aae: 0xe0005f03, 0x11aaf: 0xe0005e2b,
-	0x11ab0: 0xe00097c4, 0x11ab1: 0xe0007306, 0x11ab3: 0xe0007722,
-	// Block 0x46b, offset 0x11ac0
-	0x11ac4: 0xe000a2b5, 0x11ac7: 0xe00080fd,
-	0x11aca: 0xe0009113, 0x11acb: 0xe0007440,
-	0x11acc: 0xe000557b,
-	0x11ad1: 0xe0006249, 0x11ad2: 0xe0006bee,
-	0x11ad7: 0xe0006bdc,
-	0x11ad9: 0xe0006d89, 0x11adb: 0xe0005342,
-	0x11ade: 0xe0005210, 0x11adf: 0xe000806b,
-	0x11ae5: 0xe0008ce0, 0x11ae7: 0xe0007e0f,
-	0x11ae9: 0xe0006adb, 0x11aea: 0xe000a0dc, 0x11aeb: 0xe0009e48,
-	0x11aec: 0xe0006ccf, 0x11aee: 0xe000515a,
-	0x11af2: 0xe0008a80,
-	0x11af5: 0xe0006eb0, 0x11af6: 0xe000a446,
-	0x11af8: 0xe00046d0, 0x11af9: 0xe0007cd5, 0x11afa: 0xe0005be7, 0x11afb: 0xe000a1df,
-	0x11afc: 0xe0007985, 0x11afd: 0xe000a4be, 0x11afe: 0xe000989d,
-	// Block 0x46c, offset 0x11b00
-	0x11b01: 0xe00057ee,
-	0x11b19: 0xe0008670, 0x11b1a: 0xe0008b2c,
-	0x11b1c: 0xe000661a,
-	0x11b21: 0xe0005f93, 0x11b23: 0xe00079a8,
-	0x11b24: 0xe0004771, 0x11b25: 0xe0007fa9, 0x11b26: 0xe0009a44, 0x11b27: 0xe000777a,
-	0x11b29: 0xe0009ffa, 0x11b2a: 0xe00053fa,
-	0x11b2c: 0xe00058be, 0x11b2e: 0xe000637a,
-	0x11b34: 0xe0007ae5, 0x11b37: 0xe0009d65,
-	0x11b38: 0xe0009621, 0x11b39: 0xe0009f04,
-	0x11b3f: 0xe000992a,
-	// Block 0x46d, offset 0x11b40
-	0x11b42: 0xe000515d,
-	0x11b45: 0xe000767e, 0x11b47: 0xe00042a0,
-	0x11b48: 0xe0006c1e, 0x11b49: 0xe0006b5f,
-	0x11b4c: 0xe0007b25, 0x11b4d: 0xe000a303, 0x11b4e: 0xe00075f6,
-	0x11b51: 0xe0006cb7, 0x11b53: 0xe00075fa,
-	0x11b54: 0xe00082b5, 0x11b55: 0xe0009255, 0x11b56: 0xe00058fa,
-	0x11b6a: 0xe00063da, 0x11b6b: 0xe0004658,
-	0x11b6f: 0xe0007324,
-	0x11b72: 0xe000737b,
-	0x11b74: 0xe00079f4, 0x11b75: 0xe0009c96, 0x11b77: 0xe0005250,
-	0x11b78: 0xe000a360,
-	0x11b7c: 0xe000548c, 0x11b7f: 0xe00096fb,
-	// Block 0x46e, offset 0x11b80
-	0x11b80: 0xe0008764, 0x11b83: 0xe00049e2,
-	0x11b84: 0xe000957b, 0x11b85: 0xe00069d3, 0x11b86: 0xe000a306, 0x11b87: 0xe0004c63,
-	0x11b88: 0xe000499e, 0x11b8b: 0xe0005970,
-	0x11b8f: 0xe0009ffd,
-	0x11b91: 0xe0006e54, 0x11b92: 0xe000904c,
-	0x11b96: 0xe0004e7e,
-	0x11b98: 0xe0005100, 0x11b99: 0xe00089d8, 0x11b9a: 0xe00057b2,
-	0x11b9d: 0xe00065a5, 0x11b9e: 0xe0006d0f,
-	0x11ba0: 0xe00065a8, 0x11ba1: 0xe0004f95, 0x11ba2: 0xe00075c2,
-	0x11ba4: 0xe00074c4, 0x11ba5: 0xe00056cd, 0x11ba6: 0xe0003f23,
-	0x11ba8: 0xe0008768, 0x11baa: 0xe0005837, 0x11bab: 0xe0007f6d,
-	0x11bac: 0xe0006f43, 0x11bae: 0xe000a291,
-	0x11bb1: 0xe0007124, 0x11bb3: 0xe0006eb4,
-	0x11bb5: 0xe00075fe, 0x11bb6: 0xe0005436, 0x11bb7: 0xe000a098,
-	0x11bb8: 0xe0009227, 0x11bb9: 0xe0007536, 0x11bba: 0xe00090d3, 0x11bbb: 0xe00091a7,
-	0x11bbc: 0xe0005ce7,
-	// Block 0x46f, offset 0x11bc0
-	0x11bd7: 0xe0006813,
-	0x11bd9: 0xe000a193, 0x11bda: 0xe000843b, 0x11bdb: 0xe0003ed7,
-	0x11bdd: 0xe000986b, 0x11bdf: 0xe000876c,
-	0x11be0: 0xe0004085, 0x11be1: 0xe0005103, 0x11be3: 0xe00066f1,
-	0x11be4: 0xe0005f6f, 0x11be5: 0xe00071da, 0x11be6: 0xe0007961,
-	0x11be8: 0xe0007a47, 0x11beb: 0xe0006adf,
-	0x11bec: 0xe0009553, 0x11bed: 0xe0007d73, 0x11bef: 0xe0009d22,
-	0x11bf2: 0xe0006a2f,
-	0x11bf4: 0xe0003e7b, 0x11bf6: 0xe0007726, 0x11bf7: 0xe000765e,
-	0x11bf8: 0xe0007e12, 0x11bfa: 0xe0005cd8,
-	0x11bfc: 0xe0005dc3, 0x11bfd: 0xe00083cd, 0x11bfe: 0xe000a09c,
-	// Block 0x470, offset 0x11c00
-	0x11c03: 0xe000605c,
-	0x11c04: 0xe0005dc6, 0x11c05: 0xe000555b,
-	0x11c0a: 0xe0008a83,
-	0x11c0d: 0xe0004f11, 0x11c0e: 0xe0005b8b,
-	0x11c11: 0xe00069a1, 0x11c13: 0xe000647f,
-	0x11c14: 0xe00085ec, 0x11c16: 0xe000a000,
-	0x11c18: 0xe000689f, 0x11c1b: 0xe0004f99,
-	0x11c1c: 0xe000704c, 0x11c1e: 0xe0008770, 0x11c1f: 0xe000a223,
-	0x11c23: 0xe0005e4b,
-	0x11c27: 0xe0007b29,
-	0x11c2b: 0xe00093ea,
-	0x11c2e: 0xe00080c9, 0x11c2f: 0xe0009797,
-	0x11c32: 0xe0007cd9, 0x11c33: 0xe0004dab,
-	0x11c3a: 0xe000624c,
-	// Block 0x471, offset 0x11c40
-	0x11c4f: 0xe0005049,
-	0x11c50: 0xe0007cdd,
-	0x11c55: 0xe0005ca7, 0x11c56: 0xe0008b30,
-	0x11c58: 0xe0009cee,
-	0x11c5c: 0xe00057f1, 0x11c5d: 0xe0004856, 0x11c5f: 0xe0005bc3,
-	0x11c62: 0xe0008125,
-	0x11c65: 0xe000637d, 0x11c67: 0xe0005857,
-	0x11c6a: 0xe0004375, 0x11c6b: 0xe00078c9,
-	0x11c6f: 0xe0006c21,
-	0x11c71: 0xe0008ce4, 0x11c72: 0xe0006e13,
-	0x11c75: 0xe0007f45, 0x11c76: 0xe0007b2d, 0x11c77: 0xe000a0b0,
-	0x11c7a: 0xe0004ed0,
-	0x11c7d: 0xe0007af5,
-	// Block 0x472, offset 0x11c80
-	0x11c82: 0xe0005fdb, 0x11c83: 0xe0007945,
-	0x11c84: 0xe0008f7e, 0x11c85: 0xe0005b9b,
-	0x11c88: 0xe000a063, 0x11c89: 0xe000a227, 0x11c8b: 0xe00081ab,
-	0x11c8c: 0xe000907b, 0x11c8e: 0xe0009f54,
-	0x11c91: 0xe000a1e3, 0x11c93: 0xe00083d0,
-	0x11c94: 0xe0005106, 0x11c95: 0xe00052f7,
-	0x11c99: 0xe000a2b8,
-	0x11cac: 0xe000a066, 0x11cad: 0xe0009b74, 0x11caf: 0xe0009258,
-	0x11cb4: 0xe00084bc, 0x11cb5: 0xe0005e77, 0x11cb7: 0xe0005682,
-	0x11cb8: 0xe000a003,
-	0x11cbe: 0xe00044d1, 0x11cbf: 0xe0005a06,
-	// Block 0x473, offset 0x11cc0
-	0x11cc1: 0xe00074a9, 0x11cc2: 0xe0009ab8,
-	0x11cc4: 0xe000734e, 0x11cc6: 0xe000960d,
-	0x11cc9: 0xe00056d1,
-	0x11ccc: 0xe0004b5e, 0x11ccf: 0xe00057b5,
-	0x11cd1: 0xe0004019, 0x11cd3: 0xe00058fd,
-	0x11cd4: 0xe0007602, 0x11cd5: 0xe00088d7,
-	0x11cd9: 0xe0004f41, 0x11cda: 0xe00048ec,
-	0x11ce0: 0xe00059ca, 0x11ce2: 0xe0009c2a, 0x11ce3: 0xe000552f,
-	0x11cea: 0xe0008005, 0x11ceb: 0xe0005a0a,
-	0x11cec: 0xe0008c43, 0x11ced: 0xe0005aae,
-	0x11cf0: 0xe00064fb, 0x11cf1: 0xe0006d8c, 0x11cf2: 0xe0008f82, 0x11cf3: 0xe0008385,
-	0x11cf8: 0xe000869c,
-	0x11cfc: 0xe00093c9, 0x11cfe: 0xe0007478, 0x11cff: 0xe000831d,
-	// Block 0x474, offset 0x11d00
-	0x11d01: 0xe000772a,
-	0x11d0f: 0xe0007ef5,
-	0x11d11: 0xe0005f73,
-	0x11d14: 0xe00041f8, 0x11d17: 0xe0008dc8,
-	0x11d18: 0xe0005f07, 0x11d19: 0xe0004aa0, 0x11d1a: 0xe0006e58, 0x11d1b: 0xe00082a5,
-	0x11d1c: 0xe00082b9, 0x11d1d: 0xe000a4ce, 0x11d1e: 0xe0005658, 0x11d1f: 0xe00069d7,
-	0x11d21: 0xe00051d4, 0x11d22: 0xe000a22b,
-	0x11d24: 0xe0007ed1, 0x11d26: 0xe0005786,
-	0x11d2d: 0xe0004f9d, 0x11d2e: 0xe00088da, 0x11d2f: 0xe000713c,
-	0x11d30: 0xe0004a1c,
-	0x11d34: 0xe000847d,
-	0x11d38: 0xe00067d3, 0x11d3a: 0xe0008289,
-	0x11d3c: 0xe0005214, 0x11d3d: 0xe000624f, 0x11d3e: 0xe000591c,
-	// Block 0x475, offset 0x11d40
-	0x11d41: 0xe0006833, 0x11d42: 0xe0008df0,
-	0x11d44: 0xe0008dec, 0x11d46: 0xe0007ac8,
-	0x11d48: 0xe000915f, 0x11d49: 0xe0003f27, 0x11d4b: 0xe000a2e2,
-	0x11d4c: 0xe0007015, 0x11d4d: 0xe0008a86, 0x11d4e: 0xe000994f,
-	0x11d50: 0xe0007c51, 0x11d52: 0xe000a0f8,
-	0x11d54: 0xe000a006, 0x11d57: 0xe0003e13,
-	0x11d58: 0xe00067d7,
-	0x11d5f: 0xe000587f,
-	0x11d61: 0xe000894f, 0x11d63: 0xe0009c2e,
-	0x11d64: 0xe00097f2, 0x11d67: 0xe000563a,
-	0x11d68: 0xe00069a4,
-	0x11d6e: 0xe000a294, 0x11d6f: 0xe0008e6e,
-	0x11d71: 0xe0008568, 0x11d73: 0xe000784f,
-	0x11d76: 0xe00085f0,
-	0x11d79: 0xe0004fa1,
-	0x11d7e: 0xe0004f5d,
-	// Block 0x476, offset 0x11d80
-	0x11d80: 0xe0004178, 0x11d81: 0xe00096d7, 0x11d82: 0xe000559f, 0x11d83: 0xe0004e50,
-	0x11d86: 0xe0006483, 0x11d87: 0xe000691b,
-	0x11d89: 0xe0006e16, 0x11d8a: 0xe00077b0,
-	0x11d95: 0xe0006f59,
-	0x11d98: 0xe0004e28, 0x11d9a: 0xe000772e, 0x11d9b: 0xe0005cab,
-	0x11d9e: 0xe00065ab, 0x11d9f: 0xe0008847,
-	0x11da0: 0xe000a009, 0x11da1: 0xe0007e15,
-	0x11da4: 0xe0005109,
-	0x11da9: 0xe000a00c, 0x11dab: 0xe00053c2,
-	0x11dac: 0xe0008b34, 0x11dae: 0xe00062cc, 0x11daf: 0xe00096db,
-	0x11db1: 0xe000661e, 0x11db3: 0xe00082bd,
-	0x11db4: 0xe000777e,
-	0x11dba: 0xe0009117,
-	0x11dbe: 0xe00054b3,
-	// Block 0x477, offset 0x11dc0
-	0x11dc1: 0xe0007444,
-	0x11dc5: 0xe0009f58, 0x11dc6: 0xe000517c, 0x11dc7: 0xe0007a18,
-	0x11dc9: 0xe00066f4, 0x11dcb: 0xe0007128,
-	0x11dcf: 0xe00057f4,
-	0x11dd1: 0xe0009a9e, 0x11dd2: 0xe000691f, 0x11dd3: 0xe0008df4,
-	0x11dd5: 0xe0006622,
-	0x11dd8: 0xe000565b, 0x11dda: 0xe0009c32, 0x11ddb: 0xe0007732,
-	0x11ddc: 0xe0007f01, 0x11ddd: 0xe00054fb, 0x11dde: 0xe0008774, 0x11ddf: 0xe0006c24,
-	0x11de3: 0xe0009d68,
-	0x11de6: 0xe0008480, 0x11de7: 0xe00056f1,
-	0x11de8: 0xe0005720,
-	0x11def: 0xe0007736,
-	0x11df0: 0xe0005df6, 0x11df2: 0xe00055ab,
-	0x11df7: 0xe000807d,
-	0x11df8: 0xe00091d7,
-	0x11dfc: 0xe000747c, 0x11dfe: 0xe0005376,
-	// Block 0x478, offset 0x11e00
-	0x11e04: 0xe0006b6f,
-	0x11e0c: 0xe000462c, 0x11e0e: 0xe00076ce,
-	0x11e10: 0xe0009f5c, 0x11e11: 0xe0006d32, 0x11e13: 0xe0005392,
-	0x11e18: 0xe000972b,
-	0x11e1d: 0xe000a00f, 0x11e1e: 0xe00098c1,
-	0x11e23: 0xe0005a0e,
-	0x11e29: 0xe00076d2, 0x11e2b: 0xe000a114,
-	0x11e2f: 0xe0008804,
-	0x11e30: 0xe000a297,
-	0x11e38: 0xe0004859,
-	0x11e3c: 0xe000823d, 0x11e3d: 0xe00083d3, 0x11e3e: 0xe00083f4,
-	// Block 0x479, offset 0x11e40
-	0x11e41: 0xe0004cf3,
-	0x11e45: 0xe00042a4, 0x11e46: 0xe0005d94,
-	0x11e4a: 0xe000951f,
-	0x11e4e: 0xe0007696,
-	0x11e52: 0xe00092a9,
-	0x11e55: 0xe0009d3e,
-	0x11e58: 0xe000a462, 0x11e59: 0xe00081ae, 0x11e5a: 0xe00046d4,
-	0x11e61: 0xe0008778,
-	0x11e64: 0xe0006c27,
-	0x11e6b: 0xe0009e6c,
-	0x11e6c: 0xe0004088, 0x11e6d: 0xe000972f, 0x11e6e: 0xe0009a7a, 0x11e6f: 0xe0009f60,
-	0x11e70: 0xe0009a7d, 0x11e73: 0xe00061f7,
-	0x11e77: 0xe0008a89,
-	0x11e78: 0xe0008241, 0x11e79: 0xe00086a0,
-	// Block 0x47a, offset 0x11e80
-	0x11e88: 0xe000557f, 0x11e8a: 0xe0007480, 0x11e8b: 0xe000a412,
-	0x11e8f: 0xe0007852,
-	0x11e93: 0xe000439f,
-	0x11e98: 0xe000a0e0, 0x11e99: 0xe0005346,
-	0x11e9c: 0xe000a3cd, 0x11e9d: 0xe0008be8, 0x11e9f: 0xe0007606,
-	0x11eb1: 0xe00042a8,
-	0x11eb9: 0xe0009953,
-	0x11ebd: 0xe0006308,
-	// Block 0x47b, offset 0x11ec0
-	0x11ec4: 0xe000a385,
-	0x11ec9: 0xe00074ee,
-	0x11ecc: 0xe0008b38,
-	0x11ed9: 0xe000605f, 0x11eda: 0xe0006443,
-	0x11edc: 0xe000a0b4, 0x11ede: 0xe00051c0,
-	0x11ee0: 0xe0006f46, 0x11ee1: 0xe0005d14,
-	0x11ee6: 0xe00092ac,
-	0x11eed: 0xe0004324, 0x11eee: 0xe000a476, 0x11eef: 0xe0008271,
-	0x11ef0: 0xe000769a, 0x11ef1: 0xe0009e4c,
-	0x11ef6: 0xe000760a,
-	// Block 0x47c, offset 0x11f00
-	0x11f06: 0xe0009bde, 0x11f07: 0xe000a3fa,
-	0x11f09: 0xe0005533, 0x11f0a: 0xe000a3c5,
-	0x11f0c: 0xe000a22f, 0x11f0e: 0xe000856c,
-	0x11f10: 0xe000773a, 0x11f12: 0xe0007da6,
-	0x11f16: 0xe0004d7f, 0x11f17: 0xe0004d8b,
-	0x11f19: 0xe000760e,
-	0x11f1c: 0xe0007c31, 0x11f1e: 0xe00067ff,
-	0x11f22: 0xe0004320,
-	0x11f24: 0xe0005ad6, 0x11f25: 0xe000a197, 0x11f26: 0xe000a34b, 0x11f27: 0xe00088dd,
-	0x11f28: 0xe0007a4a, 0x11f29: 0xe00060bb,
-	0x11f2c: 0xe0007448, 0x11f2e: 0xe00081b1,
-	0x11f3d: 0xe0006a33,
-	// Block 0x47d, offset 0x11f40
-	0x11f40: 0xe00076f6,
-	0x11f44: 0xe0007050, 0x11f45: 0xe00078f1, 0x11f47: 0xe000a321,
-	0x11f49: 0xe0007c55, 0x11f4a: 0xe0007c99,
-	0x11f4f: 0xe000a389,
-	0x11f52: 0xe0009f64,
-	0x11f54: 0xe0007b31,
-	0x11f59: 0xe000a501, 0x11f5b: 0xe0009ae2,
-	0x11f5f: 0xe0006e5c,
-	0x11f60: 0xe0006f71, 0x11f62: 0xe000630c,
-	0x11f64: 0xe0008099,
-	0x11f68: 0xe0007da9,
-	0x11f6c: 0xe0007855, 0x11f6f: 0xe0006aa7,
-	0x11f71: 0xe0007682, 0x11f72: 0xe0004328,
-	0x11f79: 0xe000a504, 0x11f7a: 0xe000a507,
-	0x11f7e: 0xe000957e,
-	// Block 0x47e, offset 0x11f80
-	0x11f81: 0xe00076ea, 0x11f83: 0xe0007612,
-	0x11f88: 0xe00052d3, 0x11f89: 0xe00051c4, 0x11f8b: 0xe0009303,
-	0x11f8e: 0xe0005765,
-	0x11f90: 0xe0005920, 0x11f92: 0xe0006c2a,
-	0x11f94: 0xe00060bf, 0x11f95: 0xe0007616, 0x11f96: 0xe0007140,
-	0x11f99: 0xe000979f,
-	0x11f9f: 0xe000773e,
-	0x11fa0: 0xe0007c41,
-	0x11fa5: 0xe00088e0, 0x11fa6: 0xe0008e72, 0x11fa7: 0xe0006d8f,
-	0x11fac: 0xe000a3e2, 0x11fad: 0xe000933b, 0x11fae: 0xe0006b63,
-	0x11fb9: 0xe000a52b, 0x11fbb: 0xe000a38d,
-	0x11fbc: 0xe000709c, 0x11fbe: 0xe000510c, 0x11fbf: 0xe0007a83,
-	// Block 0x47f, offset 0x11fc0
-	0x11fc0: 0xe0009e38,
-	0x11fc6: 0xe0009aa2, 0x11fc7: 0xe0006b0f,
-	0x11fcb: 0xe000a3a1,
-	0x11fcc: 0xe00046f8, 0x11fcd: 0xe0006787,
-	0x11fd0: 0xe000565e,
-	0x11fd4: 0xe000a52e, 0x11fd7: 0xe00076fa,
-	0x11fda: 0xe00073f8, 0x11fdb: 0xe000537a,
-	0x11fdf: 0xe000465c,
-	0x11fe5: 0xe000934f,
-	0x11fe8: 0xe0008ebe, 0x11fea: 0xe00088e3,
-	0x11fec: 0xe00098a0, 0x11fed: 0xe00083fa,
-	0x11ff0: 0xe0007ce1, 0x11ff2: 0xe0007d76,
-	0x11ff5: 0xe0008245, 0x11ff6: 0xe0006380,
-	0x11ff8: 0xe00098c4, 0x11ff9: 0xe0004ee2, 0x11ffa: 0xe00073d0, 0x11ffb: 0xe000a309,
-	0x11ffd: 0xe00068a3, 0x11ffe: 0xe000802f,
-	// Block 0x480, offset 0x12000
-	0x12000: 0xe00068a7, 0x12002: 0xe0008389,
-	0x12006: 0xe0008321, 0x12007: 0xe000997b,
-	0x12008: 0xe00098eb, 0x1200b: 0xe00085f4,
-	0x1200c: 0xe000992d,
-	0x12012: 0xe00091f3, 0x12013: 0xe000602f,
-	0x12014: 0xe0005ecf, 0x12016: 0xe0007e6c,
-	0x12018: 0xe0005180, 0x12019: 0xe0007178, 0x1201a: 0xe00097fe, 0x1201b: 0xe0007ba8,
-	0x1201d: 0xe0006626, 0x1201f: 0xe0005c15,
-	0x12021: 0xe0005c18, 0x12022: 0xe0005723,
-	0x12027: 0xe0005c6b,
-	0x12029: 0xe0005da4,
-	0x1202f: 0xe000444d,
-	0x12032: 0xe0006923,
-	0x12034: 0xe0008483,
-	0x12038: 0xe00081ed, 0x12039: 0xe0009879,
-	0x1203d: 0xe00041a4,
-	// Block 0x481, offset 0x12040
-	0x12040: 0xe0006968, 0x12041: 0xe00058c1,
-	0x12047: 0xe0006487,
-	0x1204d: 0xe00040fb,
-	0x12052: 0xe000a069,
-	0x12056: 0xe0005362,
-	0x12062: 0xe0005184,
-	0x12067: 0xe000a50a,
-	0x1206c: 0xe00041a8, 0x1206f: 0xe000611b,
-	0x12073: 0xe0008275,
-	0x12074: 0xe000724a, 0x12075: 0xe000a53b,
-	// Block 0x482, offset 0x12080
-	0x12080: 0xe00068ab, 0x12082: 0xe00046d8,
-	0x12084: 0xe00084c0,
-	0x12089: 0xe00065ae,
-	0x1208e: 0xe00072da,
-	0x12090: 0xe000a012, 0x12092: 0xe00065b1,
-	0x12097: 0xe000485c,
-	0x12099: 0xe000843e,
-	0x120a1: 0xe00047a2, 0x120a2: 0xe0009bfe,
-	0x120a5: 0xe0006efc,
-	0x120a8: 0xe0007f0d, 0x120a9: 0xe0006d92,
-	0x120b4: 0xe0009a14, 0x120b7: 0xe00041d0,
-	0x120b8: 0xe00058c4, 0x120b9: 0xe0009f08, 0x120ba: 0xe0007f49, 0x120bb: 0xe00067db,
-	0x120bc: 0xe00053fe, 0x120bd: 0xe0009930,
-	// Block 0x483, offset 0x120c0
-	0x120c9: 0xe0004cf6, 0x120ca: 0xe00077b3,
-	0x120d3: 0xe00045d8,
-	0x120d6: 0xe0008f86, 0x120d7: 0xe0008008,
-	0x120d8: 0xe000887a, 0x120d9: 0xe000840e, 0x120db: 0xe0005b2b,
-	0x120dc: 0xe0006fd9, 0x120dd: 0xe00089bc,
-	0x120e2: 0xe000a06c,
-	0x120e5: 0xe0007a38, 0x120e7: 0xe0007988,
-	0x120e8: 0xe0007d19, 0x120e9: 0xe0006ba3, 0x120ea: 0xe0008441, 0x120eb: 0xe0005cdb,
-	0x120f1: 0xe0004e47,
-	0x120f4: 0xe000a363, 0x120f6: 0xe0007e18, 0x120f7: 0xe0007e1b,
-	0x120fe: 0xe000a1e7, 0x120ff: 0xe0007ce5,
-	// Block 0x484, offset 0x12100
-	0x12103: 0xe0007351,
-	0x12104: 0xe00078bd, 0x12105: 0xe00066f7,
-	0x12110: 0xe0008325, 0x12112: 0xe0007858,
-	0x12117: 0xe0004a06,
-	0x12118: 0xe0009a17,
-	0x1211c: 0xe0005944,
-	0x12120: 0xe0005789,
-	0x12128: 0xe0005188, 0x12129: 0xe00077e9, 0x1212a: 0xe000a29a, 0x1212b: 0xe0009e2c,
-	0x1212c: 0xe0009d8c, 0x1212f: 0xe000a3a5,
-	0x12130: 0xe0007742, 0x12132: 0xe000a2ce,
-	0x12135: 0xe00055b3, 0x12137: 0xe00046fc,
-	0x12138: 0xe0006d95, 0x1213a: 0xe0004f61, 0x1213b: 0xe0009e08,
-	0x1213c: 0xe0005df9,
-	// Block 0x485, offset 0x12140
-	0x12141: 0xe0009e30,
-	0x12144: 0xe0009e70, 0x12146: 0xe00081b4, 0x12147: 0xe0006cf7,
-	0x12148: 0xe0005685, 0x12149: 0xe00078c1, 0x1214b: 0xe0007a10,
-	0x1214e: 0xe000877c,
-	0x12154: 0xe00090d7, 0x12155: 0xe0003e53, 0x12156: 0xe000485f, 0x12157: 0xe0007bab,
-	0x12158: 0xe0004c66,
-	0x1215e: 0xe00063dd, 0x1215f: 0xe0005e2f,
-	0x12160: 0xe0004040,
-	0x12166: 0xe0004208, 0x12167: 0xe0007ed5,
-	0x12169: 0xe00079ac, 0x1216b: 0xe0005af1,
-	0x1216d: 0xe000662a,
-	0x12172: 0xe00055d7, 0x12173: 0xe0005097,
-	0x12177: 0xe00086bc,
-	0x12179: 0xe0009e74, 0x1217b: 0xe00098c7,
-	// Block 0x486, offset 0x12180
-	0x12180: 0xe0005e9b, 0x12182: 0xe0003d4b,
-	0x12186: 0xe000806e,
-	0x12188: 0xe0003d8d, 0x12189: 0xe0005e33, 0x1218a: 0xe00067a7,
-	0x1218c: 0xe0009b54, 0x1218d: 0xe0008ce8, 0x1218f: 0xe0003db7,
-	0x12192: 0xe0008d4c,
-	0x12196: 0xe00046dc,
-	0x12199: 0xe000455d,
-	0x1219d: 0xe000a34e, 0x1219e: 0xe000534a,
-	0x121a0: 0xe0008a8c, 0x121a2: 0xe0007f4d, 0x121a3: 0xe0006eb8,
-	0x121a4: 0xe0006252, 0x121a5: 0xe0008032, 0x121a6: 0xe0009dd5,
-	0x121a9: 0xe0009f68, 0x121aa: 0xe0004a6d, 0x121ab: 0xe00094f1,
-	0x121ad: 0xe0005f0b, 0x121ae: 0xe0009942,
-	0x121b5: 0xe0008808, 0x121b7: 0xe0005d17,
-	0x121b9: 0xe0006ba7,
-	0x121bd: 0xe0008780, 0x121be: 0xe0009e78,
-	// Block 0x487, offset 0x121c0
-	0x121c1: 0xe0006a37, 0x121c3: 0xe0004862,
-	0x121c4: 0xe0009eb0, 0x121c5: 0xe0005402, 0x121c6: 0xe00058c7, 0x121c7: 0xe0006d98,
-	0x121c9: 0xe00057f7,
-	0x121d3: 0xe00079b0,
-	0x121db: 0xe0009625,
-	0x121e0: 0xe0008570, 0x121e1: 0xe0006e60, 0x121e2: 0xe00096df,
-	0x121e4: 0xe0008412, 0x121e5: 0xe000a015, 0x121e6: 0xe0004c69,
-	0x121e8: 0xe00044d5, 0x121ea: 0xe0004c6c, 0x121eb: 0xe0006310,
-	0x121ec: 0xe00079b4, 0x121ee: 0xe00089dc, 0x121ef: 0xe0004630,
-	0x121f0: 0xe000769e, 0x121f1: 0xe0008952, 0x121f2: 0xe0006089, 0x121f3: 0xe0005974,
-	0x121f4: 0xe0004b86, 0x121f5: 0xe000653f, 0x121f6: 0xe00098a3,
-	0x121f8: 0xe00096e3, 0x121fa: 0xe0006137,
-	0x121ff: 0xe000a0a0,
-	// Block 0x488, offset 0x12200
-	0x12200: 0xe0007bae, 0x12201: 0xe0005c1b, 0x12203: 0xe00094bd,
-	0x12204: 0xe0006a3b, 0x12205: 0xe000887d, 0x12206: 0xe0006bcb,
-	0x1220b: 0xe0007d79,
-	0x1220e: 0xe0009d8f,
-	0x12215: 0xe0009bbd, 0x12217: 0xe0007ce9,
-	0x12219: 0xe0004e38, 0x1221a: 0xe000a018, 0x1221b: 0xe0007746,
-	0x1221c: 0xe0007e1e, 0x1221d: 0xe000a263, 0x1221e: 0xe000696b, 0x1221f: 0xe0006f49,
-	0x12220: 0xe00057fa, 0x12222: 0xe0007b35, 0x12223: 0xe0006d41,
-	0x12224: 0xe0007a86, 0x12225: 0xe00078cd,
-	0x12228: 0xe0008cec, 0x12229: 0xe0009f6c, 0x1222a: 0xe000599b,
-	0x1222d: 0xe000504d, 0x1222f: 0xe0005406,
-	0x12230: 0xe0004751, 0x12231: 0xe00085f8, 0x12232: 0xe0008fca, 0x12233: 0xe0008e3c,
-	0x1223d: 0xe0008a18, 0x1223e: 0xe0004b2a,
-	// Block 0x489, offset 0x12240
-	0x12240: 0xe00093cc, 0x12242: 0xe0004c6f, 0x12243: 0xe00058ca,
-	0x12246: 0xe00048ef, 0x12247: 0xe0006a3f,
-	0x12249: 0xe0005537, 0x1224a: 0xe0005d98, 0x1224b: 0xe0008329,
-	0x12258: 0xe0005924,
-	0x1225c: 0xe000a233, 0x1225d: 0xe0004754, 0x1225e: 0xe0005e9f, 0x1225f: 0xe00042ac,
-	0x12261: 0xe0008cf0, 0x12263: 0xe0004c72,
-	0x12265: 0xe00042b0, 0x12267: 0xe000614f,
-	0x12268: 0xe0008e76, 0x1226a: 0xe00088e6, 0x1226b: 0xe0005051,
-	0x12270: 0xe000a19b, 0x12272: 0xe0006d9b,
-	0x12275: 0xe000757b,
-	0x12279: 0xe0006e64,
-	0x1227d: 0xe00068fe, 0x1227f: 0xe0006a43,
-	// Block 0x48a, offset 0x12280
-	0x12286: 0xe0008d80,
-	0x1228a: 0xe00042b4,
-	0x1228f: 0xe00056f5,
-	0x12294: 0xe000774a,
-	0x12298: 0xe0004634, 0x1229a: 0xe0008e7a, 0x1229b: 0xe000a1bb,
-	0x1229c: 0xe00045ae,
-	0x122a0: 0xe000a01b, 0x122a2: 0xe0009abb, 0x122a3: 0xe00098ef,
-	0x122a6: 0xe0007964,
-	0x122a9: 0xe000911b,
-	0x122ae: 0xe0007921,
-	0x122b2: 0xe0009819,
-	0x122b7: 0xe00081b7,
-	// Block 0x48b, offset 0x122c0
-	0x122c1: 0xe00061fb, 0x122c3: 0xe0009435,
-	0x122c4: 0xe00041ac,
-	0x122cc: 0xe00048f2, 0x122cd: 0xe0005b3f, 0x122ce: 0xe00085fc,
-	0x122d1: 0xe0008bec, 0x122d3: 0xe000616b,
-	0x122d5: 0xe0007925,
-	0x122d8: 0xe0003edb, 0x122da: 0xe000712c, 0x122db: 0xe00091ab,
-	0x122de: 0xe00068e7, 0x122df: 0xe0006927,
-	0x122e3: 0xe00067ab,
-	0x122e5: 0xe000692b, 0x122e6: 0xe0006c2d,
-	0x122e8: 0xe0007b39, 0x122eb: 0xe0006255,
-	0x122ec: 0xe0007b3d,
-	0x122f0: 0xe0008574, 0x122f1: 0xe0007e21, 0x122f2: 0xe0003f43, 0x122f3: 0xe00070a0,
-	0x122f7: 0xe0004daf,
-	0x122f8: 0xe0008578, 0x122fa: 0xe0008784,
-	0x122ff: 0xe0005b43,
-	// Block 0x48c, offset 0x12300
-	0x12307: 0xe0004ac6,
-	0x1230a: 0xe000432c, 0x1230b: 0xe0008600,
-	0x1230c: 0xe0004378, 0x1230e: 0xe00041d4, 0x1230f: 0xe0007a3b,
-	0x12311: 0xe000857c, 0x12313: 0xe0004ff9,
-	0x12314: 0xe0005f0f,
-	0x12319: 0xe00057fd, 0x1231a: 0xe000648b, 0x1231b: 0xe0008cf4,
-	0x1231c: 0xe0009475, 0x1231d: 0xe0005d1a,
-	0x12320: 0xe0008604, 0x12322: 0xe0009b58,
-	0x12324: 0xe00095b7, 0x12325: 0xe0005444, 0x12326: 0xe000a415, 0x12327: 0xe0005448,
-	0x1232a: 0xe00060c3, 0x1232b: 0xe000a13e,
-	0x1232f: 0xe0008b3c,
-	0x12330: 0xe0008035,
-	0x12335: 0xe000a117, 0x12336: 0xe0005025,
-	0x12338: 0xe0004c75, 0x1233a: 0xe0003f7f,
-	0x1233f: 0xe0004c78,
-	// Block 0x48d, offset 0x12340
-	0x12346: 0xe0003f83, 0x12347: 0xe0008a8f,
-	0x12348: 0xe000616f, 0x1234a: 0xe00091f7, 0x1234b: 0xe0009b5c,
-	0x1234e: 0xe0006c33, 0x1234f: 0xe0006c30,
-	0x12351: 0xe0007fd8,
-	0x12354: 0xe000880c,
-	0x12359: 0xe000a49a, 0x1235a: 0xe00048f5,
-	0x1235d: 0xe00067af,
-	0x12363: 0xe0007bfc,
-	0x12365: 0xe000401c,
-	0x12369: 0xe0009507, 0x1236b: 0xe00075a6,
-	0x12371: 0xe0009a47, 0x12372: 0xe0009b25, 0x12373: 0xe0003edf,
-	0x12374: 0xe00071a8, 0x12375: 0xe00081ba,
-	0x12378: 0xe0004f65, 0x12379: 0xe0008cf8,
-	0x1237c: 0xe0005218, 0x1237d: 0xe0008444, 0x1237e: 0xe0008d84,
-	// Block 0x48e, offset 0x12380
-	0x12380: 0xe00048f8, 0x12382: 0xe0003d4e, 0x12383: 0xe0009eb4,
-	0x12385: 0xe00061ff, 0x12387: 0xe0008bf0,
-	0x1238a: 0xe0008608,
-	0x1238d: 0xe0008038, 0x1238e: 0xe0009d92,
-	0x12392: 0xe000744c, 0x12393: 0xe00095ba,
-	0x12394: 0xe0009581, 0x12395: 0xe000a466,
-	0x12398: 0xe000527c, 0x12399: 0xe00042b8, 0x1239b: 0xe0009825,
-	0x1239e: 0xe00065b4,
-	0x123a2: 0xe00058cd, 0x123a3: 0xe0008c82,
-	0x123a4: 0xe0008a3e, 0x123a7: 0xe000675a,
-	0x123b0: 0xe0004fa5, 0x123b2: 0xe000599e, 0x123b3: 0xe0005980,
-	0x123b4: 0xe0009584,
-	0x123b9: 0xe00065b7, 0x123ba: 0xe0006542,
-	0x123bc: 0xe00043f3, 0x123bf: 0xe0007dac,
-	// Block 0x48f, offset 0x123c0
-	0x123c0: 0xe00074ac, 0x123c1: 0xe000950a,
-	0x123c7: 0xe0008a1c,
-	0x123c8: 0xe00043a2, 0x123c9: 0xe0007e6f, 0x123cb: 0xe0009b17,
-	0x123cd: 0xe0007450,
-	0x123d0: 0xe0007e72,
-	0x123d5: 0xe0009be1,
-	0x123d9: 0xe0006c36,
-	0x123df: 0xe00078d1,
-	0x123e0: 0xe000907f, 0x123e1: 0xe0008f8a, 0x123e2: 0xe0005f13,
-	0x123e4: 0xe0005800, 0x123e6: 0xe0006d9e, 0x123e7: 0xe0009c02,
-	0x123ef: 0xe00089a4,
-	0x123f0: 0xe0005330, 0x123f3: 0xe0009438,
-	0x123f4: 0xe000838d,
-	0x123fb: 0xe00057b8,
-	// Block 0x490, offset 0x12400
-	0x12402: 0xe0005768, 0x12403: 0xe000585f,
-	0x12406: 0xe0005688,
-	0x12408: 0xe0009a1a, 0x12409: 0xe0004f45,
-	0x1240c: 0xe000729a, 0x1240e: 0xe0003e17,
-	0x12412: 0xe0007e24,
-	0x12415: 0xe0007949, 0x12416: 0xe0006153,
-	0x12418: 0xe00054da,
-	0x1241c: 0xe000860c,
-	0x12421: 0xe0009587, 0x12422: 0xe0007484,
-	0x12424: 0xe0008674, 0x12425: 0xe0008df8, 0x12427: 0xe0005517,
-	0x12428: 0xe0004604, 0x12429: 0xe0005315,
-	0x1242c: 0xe0006a47, 0x1242d: 0xe0007782, 0x1242e: 0xe0007f51, 0x1242f: 0xe00048fb,
-	0x12430: 0xe0007929, 0x12431: 0xe0009747, 0x12432: 0xe0008580,
-	0x12438: 0xe000437b, 0x1243b: 0xe00052d7,
-	0x1243c: 0xe0005f77, 0x1243d: 0xe00060a3, 0x1243e: 0xe00060a7,
-	// Block 0x491, offset 0x12440
-	0x12440: 0xe0004bde, 0x12441: 0xe0008955, 0x12443: 0xe0005c48,
-	0x12444: 0xe00084c4, 0x12446: 0xe000401f, 0x12447: 0xe000a237,
-	0x1244b: 0xe0004450,
-	0x1244e: 0xe00047a5,
-	0x12450: 0xe00043f6, 0x12453: 0xe000a01e,
-	0x12456: 0xe000a1bf,
-	0x1245a: 0xe0007354, 0x1245b: 0xe000a324,
-	0x1245c: 0xe000a06f, 0x1245e: 0xe000a072,
-	0x12464: 0xe00098ca,
-	0x1246c: 0xe0009c06, 0x1246e: 0xe0009b28,
-	0x12474: 0xe0008b6c, 0x12476: 0xe000675d,
-	0x12478: 0xe0004982, 0x1247a: 0xe00093ed,
-	0x1247f: 0xe0005bc7,
-	// Block 0x492, offset 0x12480
-	0x12482: 0xe0007bb1, 0x12483: 0xe0006062,
-	0x12486: 0xe0006447,
-	0x12488: 0xe000774e, 0x1248a: 0xe0008081,
-	0x1248c: 0xe00079f8, 0x1248d: 0xe0009cf2, 0x1248e: 0xe000730a,
-	0x12492: 0xe0009cca,
-	0x12494: 0xe000a2bb, 0x12496: 0xe0004022,
-	0x12499: 0xe000626a, 0x1249b: 0xe0006bab,
-	0x1249c: 0xe000510f, 0x1249e: 0xe000828d, 0x1249f: 0xe0005b33,
-	0x124a1: 0xe0008cfc, 0x124a3: 0xe0003ee3,
-	0x124a4: 0xe0005f17, 0x124a5: 0xe0004660, 0x124a7: 0xe0005661,
-	0x124aa: 0xe00097a3,
-	0x124ac: 0xe0004453, 0x124ae: 0xe0005c6f,
-	0x124b1: 0xe0007bff, 0x124b2: 0xe0005b2f,
-	0x124b4: 0xe0008ca0,
-	0x124b8: 0xe00068af, 0x124b9: 0xe0006f00, 0x124bb: 0xe0009fca,
-	0x124bc: 0xe0005f1b, 0x124be: 0xe0006ebc,
-	// Block 0x493, offset 0x124c0
-	0x124c1: 0xe0006baf,
-	0x124c4: 0xe0005b6f, 0x124c7: 0xe0005cea,
-	0x124c8: 0xe000975f, 0x124c9: 0xe0005dc9, 0x124ca: 0xe0005c4b, 0x124cb: 0xe0003e1b,
-	0x124cc: 0xe0009eb8,
-	0x124da: 0xe0006933, 0x124db: 0xe0005af4,
-	0x124de: 0xe0008d00,
-	0x124e0: 0xe0005b73,
-	0x124e5: 0xe00081f0, 0x124e6: 0xe00081f3,
-	0x124e8: 0xe00082cd, 0x124e9: 0xe0009e7c,
-	0x124f4: 0xe0006f04, 0x124f7: 0xe00049e6,
-	0x124f8: 0xe0005c1e, 0x124fa: 0xe00088e9, 0x124fb: 0xe0007488,
-	0x124fc: 0xe0007232, 0x124fe: 0xe0008bac,
-	// Block 0x494, offset 0x12500
-	0x12500: 0xe0008e4a,
-	0x12506: 0xe000a1c3, 0x12507: 0xe0008880,
-	0x1250d: 0xe0009e80,
-	0x12512: 0xe0006b4b,
-	0x1251a: 0xe0007357, 0x1251b: 0xe0008788,
-	0x1251f: 0xe0006e19,
-	0x12520: 0xe00049f6, 0x12521: 0xe0006da1, 0x12522: 0xe0006e1c, 0x12523: 0xe000518c,
-	0x12525: 0xe00065ba, 0x12526: 0xe0005c73,
-	0x12528: 0xe00077ec, 0x1252b: 0xe00091fb,
-	0x12537: 0xe00040ff,
-	0x12539: 0xe0005112,
-	0x1253d: 0xe0004aa3, 0x1253e: 0xe00043f9, 0x1253f: 0xe00077b6,
-	// Block 0x495, offset 0x12540
-	0x1254b: 0xe0008d04,
-	0x1254d: 0xe0006e1f, 0x1254e: 0xe0009c7a,
-	0x12551: 0xe0005bcb,
-	0x12556: 0xe00077ef,
-	0x12559: 0xe00059da,
-	0x1255e: 0xe0005a12,
-	0x12560: 0xe0005055, 0x12562: 0xe0005caf,
-	0x12565: 0xe00061bf,
-	0x1256a: 0xe0008dfc,
-	0x1256c: 0xe0006ec0, 0x1256d: 0xe000576b,
-	0x12570: 0xe0003ee7, 0x12573: 0xe000521c,
-	0x12579: 0xe000735a, 0x1257b: 0xe00091af,
-	0x1257c: 0xe000413b, 0x1257d: 0xe0004456, 0x1257f: 0xe0004865,
-	// Block 0x496, offset 0x12580
-	0x12587: 0xe0005cb3,
-	0x12589: 0xe0006642,
-	0x1258d: 0xe000a15b,
-	0x12597: 0xe000933f,
-	0x12599: 0xe0003f2b, 0x1259a: 0xe0009353, 0x1259b: 0xe0005c21,
-	0x1259c: 0xe0004bf6, 0x1259e: 0xe0007ef9,
-	0x125a1: 0xe000a15f, 0x125a2: 0xe0006fdc, 0x125a3: 0xe0007fdb,
-	0x125a5: 0xe0008c46, 0x125a7: 0xe00070e8,
-	0x125a9: 0xe0004868,
-	0x125ad: 0xe0004f15, 0x125ae: 0xe0007a29, 0x125af: 0xe00047a8,
-	0x125b0: 0xe0008c08, 0x125b3: 0xe00069db,
-	0x125ba: 0xe00096ff, 0x125bb: 0xe0004529,
-	0x125bc: 0xe0003fd7, 0x125bd: 0xe00069f3,
-	// Block 0x497, offset 0x125c0
-	0x125c2: 0xe00066fa,
-	0x125cc: 0xe0009276, 0x125cf: 0xe000648f,
-	0x125d1: 0xe00071ab, 0x125d2: 0xe0006545,
-	0x125e2: 0xe0005333,
-	0x125e5: 0xe0008c49, 0x125e6: 0xe0009000, 0x125e7: 0xe0009629,
-	0x125ec: 0xe0005984, 0x125ed: 0xe00099bf,
-	0x125f0: 0xe000995b, 0x125f2: 0xe0009a4a,
-	0x125f4: 0xe00098a6,
-	// Block 0x498, offset 0x12600
-	0x12603: 0xe0008ad4,
-	0x12605: 0xe0004a70,
-	0x1260f: 0xe000761a,
-	0x1261c: 0xe000405d, 0x1261d: 0xe00092af,
-	0x12620: 0xe0005416,
-	0x12627: 0xe0007b71,
-	0x12628: 0xe0008e3f, 0x1262b: 0xe0005803,
-	0x1262c: 0xe00042bc, 0x1262e: 0xe0009c0a, 0x1262f: 0xe000761e,
-	0x1263c: 0xe00064eb,
-	// Block 0x499, offset 0x12640
-	0x12641: 0xe0004c7b,
-	0x12647: 0xe000878c,
-	0x1264c: 0xe00056a9, 0x1264d: 0xe0007327, 0x1264e: 0xe0006d35, 0x1264f: 0xe0008279,
-	0x12651: 0xe0006548, 0x12653: 0xe00050b5,
-	0x12657: 0xe00079b8,
-	0x1265f: 0xe0006b13,
-	0x12663: 0xe0003e7f,
-	0x12664: 0xe0007786, 0x12667: 0xe0006157,
-	0x12668: 0xe0007a4d, 0x12669: 0xe00069df,
-	0x1266d: 0xe00097a7,
-	0x1267a: 0xe000a14f, 0x1267b: 0xe000a153,
-	0x1267c: 0xe00059a1, 0x1267e: 0xe0004e00,
-	// Block 0x49a, offset 0x12680
-	0x12681: 0xe00081bd,
-	0x12685: 0xe0005fdf,
-	0x12688: 0xe0007a50, 0x1268a: 0xe0005726, 0x1268b: 0xe0008e1b,
-	0x1268e: 0xe000437e, 0x1268f: 0xe00055af,
-	0x12690: 0xe0005f1f, 0x12691: 0xe000735d,
-	0x12694: 0xe0009030, 0x12695: 0xe0004043,
-	0x1269a: 0xe0008610,
-	0x126a0: 0xe0004e81,
-	0x126a7: 0xe0008508,
-	0x126a8: 0xe00059a4, 0x126aa: 0xe00093cf,
-	0x126ac: 0xe00042c0, 0x126af: 0xe0004c7e,
-	0x126b4: 0xe00052fb, 0x126b5: 0xe0003e1f, 0x126b7: 0xe0005948,
-	0x126ba: 0xe0004700, 0x126bb: 0xe0005f23,
-	0x126bc: 0xe00082d1, 0x126bd: 0xe00047ed,
-	// Block 0x49b, offset 0x126c0
-	0x126c1: 0xe00092b2,
-	0x126cc: 0xe0005738, 0x126ce: 0xe00092b5, 0x126cf: 0xe0004be2,
-	0x126d1: 0xe0005059, 0x126d2: 0xe000800b,
-	0x126d6: 0xe000757e,
-	0x126d9: 0xe0007360,
-	0x126e7: 0xe000573b,
-	0x126ea: 0xe00054b6, 0x126eb: 0xe00054ff,
-	0x126ec: 0xe0005f27, 0x126ed: 0xe000a163,
-	0x126f1: 0xe000570d,
-	0x126fa: 0xe0006fdf,
-	0x126fe: 0xe00066fd,
-	// Block 0x49c, offset 0x12700
-	0x12700: 0xe0006700, 0x12701: 0xe0004c81,
-	0x12705: 0xe0007acb, 0x12706: 0xe000911f, 0x12707: 0xe0004c84,
-	0x12708: 0xe0004c87, 0x12709: 0xe0008c4c, 0x1270a: 0xe000995f,
-	0x12710: 0xe0007bb4, 0x12713: 0xe00064c3,
-	0x12714: 0xe00063e0, 0x12715: 0xe00065bd, 0x12716: 0xe00088ec, 0x12717: 0xe0008c4f,
-	0x1271a: 0xe00088ef, 0x1271b: 0xe000408b,
-	0x1271c: 0xe000a021, 0x1271d: 0xe0009479, 0x1271e: 0xe00070a4, 0x1271f: 0xe0006e22,
-	0x12720: 0xe0006703, 0x12722: 0xe0004ec3,
-	0x12725: 0xe00068b3, 0x12727: 0xe0008958,
-	0x12728: 0xe0009abe,
-	0x1272d: 0xe000884a,
-	0x1273a: 0xe0004c8a,
-	0x1273c: 0xe0004664, 0x1273f: 0xe00056ad,
-	// Block 0x49d, offset 0x12740
-	0x12740: 0xe0009aff, 0x12741: 0xe0004b8a,
-	0x1274a: 0xe00043a5, 0x1274b: 0xe0008101,
-	0x1274d: 0xe000a11a, 0x1274e: 0xe0008790, 0x1274f: 0xe0006298,
-	0x12751: 0xe0007bb7,
-	0x12754: 0xe0008883,
-	0x1275d: 0xe0008cb4,
-	0x12766: 0xe00074af, 0x12767: 0xe000a50d,
-	0x12768: 0xe0004cf9, 0x1276a: 0xe0006a4b, 0x1276b: 0xe0004fdd,
-	0x1276e: 0xe000563d,
-	0x12770: 0xe0004ec6, 0x12771: 0xe0005115, 0x12773: 0xe0007454,
-	0x12774: 0xe00073fc,
-	0x12779: 0xe0007bba, 0x1277a: 0xe000794d, 0x1277b: 0xe0005900,
-	0x1277d: 0xe0004b8e, 0x1277e: 0xe000a11d, 0x1277f: 0xe0005190,
-	// Block 0x49e, offset 0x12780
-	0x12780: 0xe0006da4, 0x12781: 0xe0006706,
-	0x12786: 0xe0003e57,
-	0x12789: 0xe0006203, 0x1278a: 0xe0004dfc, 0x1278b: 0xe00093f0,
-	0x12791: 0xe00045b1, 0x12792: 0xe00092b8,
-	0x12795: 0xe000654b,
-	0x12798: 0xe000654e,
-	0x1279f: 0xe00088f2,
-	0x127a2: 0xe000561f, 0x127a3: 0xe0005a72,
-	0x127a4: 0xe0009655, 0x127a6: 0xe0008d08, 0x127a7: 0xe00072f6,
-	0x127a9: 0xe0008d88, 0x127aa: 0xe0008c85, 0x127ab: 0xe00094cd,
-	0x127ac: 0xe00040a3,
-	0x127b8: 0xe0003e9f, 0x127bb: 0xe000803b,
-	// Block 0x49f, offset 0x127c0
-	0x127c0: 0xe000a510, 0x127c1: 0xe0004459, 0x127c2: 0xe000541a,
-	0x127c5: 0xe0006bdf,
-	0x127c8: 0xe0003e23, 0x127ca: 0xe0008886, 0x127cb: 0xe0008794,
-	0x127cc: 0xe0005160, 0x127cd: 0xe00092bb,
-	0x127d4: 0xe0008151, 0x127d7: 0xe0009933,
-	0x127d9: 0xe0008ca4, 0x127da: 0xe000958a,
-	0x127dc: 0xe000588b, 0x127de: 0xe00045db, 0x127df: 0xe0009afb,
-	0x127e0: 0xe00088f5,
-	0x127e7: 0xe0006b17,
-	0x127ee: 0xe00089e0,
-	0x127f1: 0xe0009659,
-	0x127f6: 0xe0007c35, 0x127f7: 0xe0008ca8,
-	0x127f9: 0xe0008d50, 0x127fb: 0xe0005118,
-	0x127fc: 0xe0003d51, 0x127fd: 0xe0004381, 0x127ff: 0xe00043fc,
-	// Block 0x4a0, offset 0x12800
-	0x12800: 0xe0004499,
-	0x12805: 0xe0003fdb, 0x12806: 0xe0005c77,
-	0x12809: 0xe000958d,
-	0x1280d: 0xe00084c8, 0x1280e: 0xe0007752,
-	0x12817: 0xe0006da7,
-	0x12820: 0xe0004e64, 0x12821: 0xe000690b, 0x12822: 0xe00077b9,
-	0x12829: 0xe00078d5, 0x1282b: 0xe000a157,
-	0x12830: 0xe0007458,
-	0x12834: 0xe0009ed8, 0x12835: 0xe0007272, 0x12836: 0xe000486b,
-	0x12839: 0xe00049ae, 0x1283a: 0xe0004561,
-	0x1283d: 0xe0008798, 0x1283e: 0xe0007ace, 0x1283f: 0xe00090db,
-	// Block 0x4a1, offset 0x12840
-	0x12840: 0xe00052bb, 0x12841: 0xe00051e0, 0x12842: 0xe000568b, 0x12843: 0xe000868c,
-	0x12844: 0xe0008e4e, 0x12845: 0xe0007ad1, 0x12846: 0xe00099c3,
-	0x12848: 0xe0007a89, 0x1284a: 0xe000798b,
-	0x12852: 0xe0008d8c, 0x12853: 0xe0008f8e,
-	0x12855: 0xe00088f8, 0x12856: 0xe00047f0, 0x12857: 0xe0008fce,
-	0x12858: 0xe0004966, 0x1285b: 0xe00048fe,
-	0x1285f: 0xe0004992,
-	0x12860: 0xe00045de, 0x12863: 0xe0006cfb,
-	0x12869: 0xe0007967, 0x1286a: 0xe000796a,
-	0x1286c: 0xe0007e75, 0x1286e: 0xe00049b2, 0x1286f: 0xe0007a8c,
-	0x12873: 0xe0007e78,
-	0x12876: 0xe0004901,
-	0x12879: 0xe000788e, 0x1287a: 0xe0004a73, 0x1287b: 0xe0008fd2,
-	0x1287e: 0xe0004668, 0x1287f: 0xe0005863,
-	// Block 0x4a2, offset 0x12880
-	0x12884: 0xe0008e7e, 0x12885: 0xe0004a76, 0x12887: 0xe000527f,
-	0x12888: 0xe000895b, 0x1288a: 0xe0008678, 0x1288b: 0xe0005988,
-	0x12897: 0xe0005cde,
-	0x12899: 0xe0008efe,
-	0x1289d: 0xe0006207, 0x1289f: 0xe00042c4,
-	0x128a0: 0xe000832d, 0x128a2: 0xe0006760, 0x128a3: 0xe0008b40,
-	0x128a5: 0xe0005220, 0x128a6: 0xe0006d27,
-	0x128aa: 0xe0006daa,
-	0x128ad: 0xe0003e83, 0x128af: 0xe0004f19,
-	0x128b6: 0xe00042c8,
-	0x128b8: 0xe0004330, 0x128b9: 0xe0008b04, 0x128ba: 0xe000947d,
-	0x128bd: 0xe0007c02, 0x128bf: 0xe0003e27,
-	// Block 0x4a3, offset 0x128c0
-	0x128c6: 0xe00098cd,
-	0x128c8: 0xe0004be6, 0x128ca: 0xe000895e,
-	0x128cc: 0xe00071ae, 0x128cf: 0xe000a0c4,
-	0x128d1: 0xe0006c39, 0x128d2: 0xe0004bb2,
-	0x128d8: 0xe00086c0, 0x128d9: 0xe000692f, 0x128db: 0xe00084cc,
-	0x128de: 0xe00097c7,
-	0x128e0: 0xe000598c,
-	0x128e5: 0xe0006763, 0x128e6: 0xe0006383, 0x128e7: 0xe0009034,
-	0x128e8: 0xe0006493,
-	0x128ec: 0xe000884d, 0x128ed: 0xe00055db, 0x128ef: 0xe0004e4a,
-	0x128f3: 0xe0003d90,
-	0x128f5: 0xe0006127,
-	0x128f9: 0xe0006be2,
-	// Block 0x4a4, offset 0x12900
-	0x12905: 0xe0006aab, 0x12906: 0xe0009b60,
-	0x12908: 0xe00046a8, 0x12909: 0xe00052db, 0x1290b: 0xe0004b2e,
-	0x1290c: 0xe0008584, 0x1290d: 0xe0006ec4, 0x1290f: 0xe00060ef,
-	0x12910: 0xe00046e0, 0x12911: 0xe0009481, 0x12912: 0xe0009829, 0x12913: 0xe00043a8,
-	0x12914: 0xe0004ffd, 0x12916: 0xe0009020,
-	0x1291f: 0xe00063e3,
-	0x12920: 0xe0004aca,
-	0x12925: 0xe00040a6, 0x12926: 0xe000466c, 0x12927: 0xe00041d8,
-	0x12929: 0xe000983d,
-	0x1292c: 0xe0006bb3, 0x1292e: 0xe000696e,
-	0x12931: 0xe0006c84, 0x12933: 0xe0008810,
-	0x12935: 0xe0007622,
-	0x1293d: 0xe000785b,
-	// Block 0x4a5, offset 0x12940
-	0x12947: 0xe0004025,
-	0x1294b: 0xe0008588,
-	0x1294d: 0xe000445c, 0x1294e: 0xe000a075, 0x1294f: 0xe00083fe,
-	0x12952: 0xe000943e,
-	0x12954: 0xe0005ea3, 0x12955: 0xe0004c8d, 0x12957: 0xe00067b3,
-	0x12959: 0xe00062d0, 0x1295a: 0xe0008e1e,
-	0x1295c: 0xe0004585, 0x1295d: 0xe000421c,
-	0x12960: 0xe0009441, 0x12961: 0xe0004638,
-	0x1296d: 0xe000858c,
-	0x12971: 0xe00068b7,
-	0x12974: 0xe00082a9,
-	0x12978: 0xe0008447,
-	0x1297e: 0xe0006c87,
-	// Block 0x4a6, offset 0x12980
-	0x12980: 0xe000867c, 0x12981: 0xe000a23b,
-	0x12984: 0xe000611f, 0x12986: 0xe0008590, 0x12987: 0xe000997f,
-	0x12989: 0xe0009485, 0x1298a: 0xe000a0fc, 0x1298b: 0xe0009f38,
-	0x1298c: 0xe000a366,
-	0x12992: 0xe0007054,
-	0x12994: 0xe0007c7d,
-	0x12999: 0xe000445f, 0x1299b: 0xe0007400,
-	0x1299d: 0xe0004904,
-	0x129a0: 0xe0006c3c,
-	0x129a4: 0xe0005194, 0x129a6: 0xe00065c0,
-	0x129a9: 0xe0006709, 0x129aa: 0xe0008c88,
-	0x129b3: 0xe0009b78,
-	0x129b7: 0xe0006334,
-	0x129be: 0xe0005ba3,
-	// Block 0x4a7, offset 0x129c0
-	0x129c0: 0xe0009038,
-	0x129c7: 0xe0008998,
-	0x129c9: 0xe0009444, 0x129cb: 0xe0004a40,
-	0x129cf: 0xe00056d5,
-	0x129d2: 0xe0008e82,
-	0x129de: 0xe0004f1d, 0x129df: 0xe00086c4,
-	0x129e0: 0xe000626d, 0x129e1: 0xe0003e2b,
-	0x129e7: 0xe000a23f,
-	0x129ea: 0xe00082ad, 0x129eb: 0xe0006c3f,
-	0x129f7: 0xe00091db,
-	0x129f8: 0xe00098d0,
-	0x129fd: 0xe00091b3, 0x129fe: 0xe00055a3, 0x129ff: 0xe0006386,
-	// Block 0x4a8, offset 0x12a00
-	0x12a03: 0xe00053c6,
-	0x12a0c: 0xe0008a92, 0x12a0d: 0xe00084d0,
-	0x12a10: 0xe00052ff, 0x12a12: 0xe0008ad7,
-	0x12a14: 0xe0006e25,
-	0x12a1b: 0xe0008614,
-	0x12a1c: 0xe0009703, 0x12a1f: 0xe000573e,
-	0x12a20: 0xe00056f9,
-	0x12a24: 0xe00091b7, 0x12a25: 0xe0007404, 0x12a27: 0xe00040a9,
-	0x12a29: 0xe000619f,
-	0x12a2c: 0xe00058d0,
-	0x12a32: 0xe0007e7b, 0x12a33: 0xe0005dcc,
-	0x12a3e: 0xe0008105,
-	// Block 0x4a9, offset 0x12a40
-	0x12a41: 0xe0009123, 0x12a43: 0xe0006551,
-	0x12a49: 0xe000644b,
-	0x12a4d: 0xe0005c4e,
-	0x12a52: 0xe0005990,
-	0x12a55: 0xe0005ea7, 0x12a57: 0xe00088fb,
-	0x12a58: 0xe00086a4,
-	0x12a5f: 0xe0006cbb,
-	0x12a62: 0xe00081f6,
-	0x12a64: 0xe0007d51, 0x12a65: 0xe0008b08, 0x12a66: 0xe000594c, 0x12a67: 0xe0008331,
-	0x12a68: 0xe00060af,
-	0x12a6e: 0xe0005464,
-	0x12a71: 0xe0005468, 0x12a72: 0xe0008e8a, 0x12a73: 0xe0004055,
-	0x12a79: 0xe0006dad,
-	0x12a7c: 0xe0005950, 0x12a7d: 0xe0008a20, 0x12a7e: 0xe000879c,
-	// Block 0x4aa, offset 0x12a80
-	0x12a85: 0xe0007e7e, 0x12a86: 0xe0005b8f,
-	0x12a8a: 0xe000a024,
-	0x12a95: 0xe0004462, 0x12a96: 0xe0005029, 0x12a97: 0xe0004907,
-	0x12a99: 0xe0008961, 0x12a9a: 0xe0008391,
-	0x12a9c: 0xe0005dfc, 0x12a9d: 0xe0006823, 0x12a9e: 0xe000644f, 0x12a9f: 0xe00088fe,
-	0x12aa0: 0xe0003f87, 0x12aa2: 0xe0005c51,
-	0x12aa5: 0xe0004d71, 0x12aa7: 0xe000546c,
-	0x12aaf: 0xe0004d74,
-	0x12ab2: 0xe00054dd,
-	0x12ab4: 0xe000850c, 0x12ab6: 0xe0008964,
-	0x12ab8: 0xe0005b57, 0x12aba: 0xe0004aa6, 0x12abb: 0xe0004384,
-	0x12abe: 0xe0004a79,
-	// Block 0x4ab, offset 0x12ac0
-	0x12ac0: 0xe0004c90, 0x12ac2: 0xe0008a95, 0x12ac3: 0xe0006f08,
-	0x12ac4: 0xe00073e0, 0x12ac5: 0xe000a0e4, 0x12ac6: 0xe0007bbd, 0x12ac7: 0xe000a48a,
-	0x12ac8: 0xe000a19f, 0x12aca: 0xe0005d68, 0x12acb: 0xe0005d6c,
-	0x12acd: 0xe0004dbb,
-	0x12ad0: 0xe0004ea3, 0x12ad3: 0xe00069a7,
-	0x12ad4: 0xe0006ec8, 0x12ad5: 0xe00065c3, 0x12ad7: 0xe000670c,
-	0x12ad8: 0xe0004765, 0x12ad9: 0xe0008c52, 0x12ada: 0xe0004bce, 0x12adb: 0xe0006453,
-	0x12adc: 0xe0007c81,
-	0x12ae0: 0xe0006c42, 0x12ae1: 0xe0005fe3, 0x12ae2: 0xe000690f,
-	0x12aeb: 0xe00081c0,
-	0x12aec: 0xe0008a98, 0x12aee: 0xe0008ed6, 0x12aef: 0xe00057bb,
-	0x12af0: 0xe0006be5, 0x12af1: 0xe00064c7, 0x12af2: 0xe0006b1b, 0x12af3: 0xe00070a8,
-	0x12af5: 0xe000844a,
-	0x12af9: 0xe0006c45, 0x12afa: 0xe0003eeb,
-	// Block 0x4ac, offset 0x12b00
-	0x12b02: 0xe00089e4, 0x12b03: 0xe0009e84,
-	0x12b04: 0xe0008901, 0x12b05: 0xe00042cc, 0x12b06: 0xe0005f2b,
-	0x12b09: 0xe0006f2c,
-	0x12b0d: 0xe000815d,
-	0x12b10: 0xe00041fc,
-	0x12b16: 0xe0004704,
-	0x12b19: 0xe000a1c7, 0x12b1b: 0xe000896a,
-	0x12b1c: 0xe0009ee4, 0x12b1e: 0xe00047ab,
-	0x12b21: 0xe000534e, 0x12b22: 0xe0009e88, 0x12b23: 0xe000621f,
-	0x12b26: 0xe0004bd2,
-	0x12b28: 0xe0007f05, 0x12b29: 0xe0008967, 0x12b2a: 0xe00080cd,
-	0x12b2e: 0xe0006971,
-	0x12b30: 0xe0008da8, 0x12b31: 0xe000982d, 0x12b32: 0xe000670f, 0x12b33: 0xe0003f8b,
-	0x12b36: 0xe0008680,
-	0x12b39: 0xe00041b0, 0x12b3a: 0xe00095bd,
-	0x12b3f: 0xe000486e,
-	// Block 0x4ad, offset 0x12b40
-	0x12b43: 0xe0009306,
-	0x12b46: 0xe0004334,
-	0x12b4e: 0xe00087a0, 0x12b4f: 0xe0006db0,
-	0x12b53: 0xe00042d0,
-	0x12b58: 0xe0006338,
-	0x12b5c: 0xe00089e8,
-	0x12b60: 0xe00056b1, 0x12b62: 0xe0008a9b, 0x12b63: 0xe00049fa,
-	0x12b65: 0xe0004cfc, 0x12b66: 0xe0004cff, 0x12b67: 0xe0008b70,
-	0x12b69: 0xe0007d1d, 0x12b6b: 0xe0006aaf,
-	0x12b6c: 0xe0006db3, 0x12b6d: 0xe0007e27, 0x12b6e: 0xe00043ab,
-	0x12b70: 0xe0004670, 0x12b71: 0xe0003f8f, 0x12b72: 0xe0005a8a,
-	0x12b74: 0xe0009163, 0x12b75: 0xe0009003,
-	0x12b78: 0xe000583b, 0x12b7a: 0xe0004c93, 0x12b7b: 0xe0009733,
-	0x12b7d: 0xe0008249, 0x12b7e: 0xe000588f, 0x12b7f: 0xe0005b77,
-	// Block 0x4ae, offset 0x12b80
-	0x12b84: 0xe00044f1, 0x12b87: 0xe0009590,
-	0x12b8a: 0xe0004d32, 0x12b8b: 0xe0006554,
-	0x12b8c: 0xe0007e81, 0x12b8d: 0xe0005e4f,
-	0x12b96: 0xe0006974, 0x12b97: 0xe00068eb,
-	0x12b98: 0xe0009c9a, 0x12b9a: 0xe0006a4f,
-	0x12b9c: 0xe0005b93, 0x12b9d: 0xe0008dcc, 0x12b9e: 0xe0004f21,
-	0x12ba0: 0xe000925b, 0x12ba1: 0xe0005e37, 0x12ba3: 0xe0007626,
-	0x12ba6: 0xe0007018,
-	0x12ba8: 0xe0009983, 0x12ba9: 0xe00079bc,
-	0x12bac: 0xe0005b7b, 0x12baf: 0xe0007d7c,
-	0x12bb4: 0xe000553b, 0x12bb6: 0xe00099a3,
-	0x12bb9: 0xe0008889, 0x12bbb: 0xe0009593,
-	// Block 0x4af, offset 0x12bc0
-	0x12bc8: 0xe000778a, 0x12bc9: 0xe0008d0c, 0x12bca: 0xe000737f, 0x12bcb: 0xe0009447,
-	0x12bd0: 0xe000944a, 0x12bd1: 0xe0004240,
-	0x12bd5: 0xe00078d9, 0x12bd7: 0xe00093d2,
-	0x12bd8: 0xe00043ae, 0x12bdb: 0xe0005eab,
-	0x12bdd: 0xe0008d10, 0x12bde: 0xe000a027, 0x12bdf: 0xe0007ae9,
-	0x12be0: 0xe00044ad, 0x12be1: 0xe00083d6, 0x12be2: 0xe0005303, 0x12be3: 0xe0009e8c,
-	0x12beb: 0xe0006314,
-	0x12bee: 0xe0009489, 0x12bef: 0xe000762a,
-	0x12bf1: 0xe00089ec, 0x12bf2: 0xe000580f, 0x12bf3: 0xe00041dc,
-	0x12bf5: 0xe0005a3a, 0x12bf7: 0xe00057be,
-	0x12bf9: 0xe0009ae5, 0x12bfb: 0xe0005dff,
-	0x12bfd: 0xe000938f, 0x12bfe: 0xe00084d4,
-	// Block 0x4b0, offset 0x12c00
-	0x12c01: 0xe00060c7, 0x12c03: 0xe00064ef,
-	0x12c04: 0xe00077f2, 0x12c05: 0xe0006c8a, 0x12c06: 0xe0005d1d, 0x12c07: 0xe0007a8f,
-	0x12c08: 0xe0003fdf,
-	0x12c10: 0xe0006bf1, 0x12c12: 0xe0008bf4,
-	0x12c14: 0xe0008cac, 0x12c15: 0xe0006a53, 0x12c16: 0xe00067df, 0x12c17: 0xe0005954,
-	0x12c19: 0xe00060d7, 0x12c1a: 0xe000578c,
-	0x12c1e: 0xe0007a92,
-	0x12c21: 0xe0006db6, 0x12c22: 0xe0004a43,
-	0x12c29: 0xe0006f95, 0x12c2a: 0xe000a29d, 0x12c2b: 0xe0004387,
-	0x12c2d: 0xe00041b4, 0x12c2f: 0xe0009ebc,
-	0x12c30: 0xe0008904,
-	0x12c36: 0xe00074de,
-	0x12c39: 0xe00075aa,
-	0x12c3c: 0xe000438a, 0x12c3d: 0xe0006646, 0x12c3e: 0xe00041e0,
-	// Block 0x4b1, offset 0x12c40
-	0x12c41: 0xe000a3a9, 0x12c42: 0xe0008e86,
-	0x12c47: 0xe0005741,
-	0x12c48: 0xe000a53f, 0x12c4a: 0xe0004708,
-	0x12c4c: 0xe0006cbf, 0x12c4d: 0xe0005812, 0x12c4f: 0xe0008594,
-	0x12c53: 0xe0007756,
-	0x12c54: 0xe00083f7, 0x12c56: 0xe0006b2b,
-	0x12c58: 0xe0008e8e, 0x12c5b: 0xe0005198,
-	0x12c5c: 0xe00053ca,
-	// Block 0x4b2, offset 0x12c80
-	0x12cb6: 0xe0006389, 0x12cb7: 0xe0006766,
-	0x12cb8: 0xe0009d26, 0x12cba: 0xe0004200,
-	0x12cbe: 0xe0006223, 0x12cbf: 0xe0009d42,
-	// Block 0x4b3, offset 0x12cc0
-	0x12cc3: 0xe00073b3,
-	0x12cc4: 0xe000433c, 0x12cc5: 0xe0009be4, 0x12cc7: 0xe0008b74,
-	0x12ccb: 0xe0007951,
-	0x12ccc: 0xe000739f, 0x12ccd: 0xe0005744, 0x12cce: 0xe0004fe1,
-	0x12cd0: 0xe000463c,
-	0x12cd4: 0xe0005a8e, 0x12cd5: 0xe0009c36,
-	0x12cd8: 0xe00063e6,
-	0x12cdd: 0xe0008486, 0x12cdf: 0xe0004465,
-	0x12ce0: 0xe0005e53, 0x12ce1: 0xe0003fe3, 0x12ce3: 0xe0004727,
-	0x12ce6: 0xe00063e9,
-	0x12ce8: 0xe0007546, 0x12cea: 0xe0008a47, 0x12ceb: 0xe000471e,
-	0x12cee: 0xe0009596,
-	0x12cf0: 0xe00060f3, 0x12cf2: 0xe0006977,
-	0x12cf5: 0xe0005ad9, 0x12cf7: 0xe00098a9,
-	0x12cf8: 0xe00060ff, 0x12cf9: 0xe00058d3,
-	0x12cfc: 0xe0009b7c, 0x12cfd: 0xe00043b1, 0x12cfe: 0xe0008c0c,
-	// Block 0x4b4, offset 0x12d00
-	0x12d02: 0xe00041e4,
-	0x12d05: 0xe0005318, 0x12d06: 0xe00065c6, 0x12d07: 0xe0004d02,
-	0x12d08: 0xe0004c96, 0x12d0a: 0xe000745c,
-	0x12d0c: 0xe0003f93, 0x12d0e: 0xe0005dcf,
-	0x12d14: 0xe00043ff, 0x12d16: 0xe0004468, 0x12d17: 0xe0003fe7,
-	0x12d18: 0xe0008395, 0x12d1a: 0xe00055df,
-	0x12d1d: 0xe0008489, 0x12d1e: 0xe0006db9,
-	0x12d24: 0xe000496a,
-	0x12d28: 0xe0006a57, 0x12d29: 0xe0007fde, 0x12d2b: 0xe0003feb,
-	0x12d2f: 0xe0003ea3,
-	0x12d32: 0xe000a513,
-	0x12d36: 0xe0008618,
-	0x12d38: 0xe00058d6, 0x12d39: 0xe0004059,
-	0x12d3d: 0xe0007bc0,
-	// Block 0x4b5, offset 0x12d40
-	0x12d41: 0xe000792d,
-	0x12d45: 0xe0006fe2,
-	0x12d4a: 0xe0008085,
-	0x12d4c: 0xe0008089, 0x12d4e: 0xe00055e3,
-	0x12d52: 0xe0006f61,
-	0x12d54: 0xe00068bb, 0x12d55: 0xe000a4c2, 0x12d56: 0xe000a4d2,
-	0x12d5b: 0xe0006c8d,
-	0x12d5f: 0xe00084d8,
-	0x12d60: 0xe0009522, 0x12d61: 0xe0006557, 0x12d63: 0xe000684b,
-	0x12d64: 0xe000701b, 0x12d66: 0xe000861c,
-	0x12d69: 0xe0009987, 0x12d6b: 0xe00079c0,
-	0x12d6c: 0xe000a409, 0x12d6e: 0xe0009da9,
-	0x12d70: 0xe0009c3a, 0x12d73: 0xe00077f5,
-	0x12d79: 0xe00047ae, 0x12d7a: 0xe000446b, 0x12d7b: 0xe00060db,
-	0x12d7c: 0xe000808d, 0x12d7e: 0xe0009ec0,
-	// Block 0x4b6, offset 0x12d80
-	0x12d80: 0xe0007a95, 0x12d81: 0xe0005664, 0x12d83: 0xe0004402,
-	0x12d84: 0xe0005c54, 0x12d85: 0xe00081c3, 0x12d86: 0xe0004c99,
-	0x12d89: 0xe0004871,
-	0x12d8c: 0xe000803e,
-	0x12d90: 0xe0004ddb, 0x12d91: 0xe0004f49, 0x12d92: 0xe0005747,
-	0x12d94: 0xe00081f9, 0x12d95: 0xe00042d4, 0x12d96: 0xe0009309, 0x12d97: 0xe0005c24,
-	0x12d98: 0xe0007c59, 0x12d99: 0xe00098d3,
-	0x12d9e: 0xe0003d93,
-	0x12da1: 0xe00069aa,
-	0x12da6: 0xe0007c05,
-	0x12da8: 0xe0004e8d,
-	0x12dac: 0xe00057d9, 0x12dad: 0xe0004c9c,
-	0x12db0: 0xe0007c08, 0x12db3: 0xe0008041,
-	0x12db6: 0xe00073d3,
-	0x12dbd: 0xe0009763, 0x12dbf: 0xe00042d8,
-	// Block 0x4b7, offset 0x12dc0
-	0x12dc3: 0xe0004fa9,
-	0x12dc6: 0xe00055e7,
-	0x12dca: 0xe000576e,
-	0x12dd2: 0xe00046ac,
-	0x12dd5: 0xe000a078, 0x12dd6: 0xe0006bb7,
-	0x12dd8: 0xe0006676, 0x12dda: 0xe0009525,
-	0x12dde: 0xe0005d70,
-	0x12def: 0xe000553f,
-	0x12df0: 0xe0009393, 0x12df1: 0xe0007891, 0x12df2: 0xe0006bbb, 0x12df3: 0xe0007b41,
-	0x12df5: 0xe0007a53, 0x12df6: 0xe0006b73, 0x12df7: 0xe0008cb0,
-	0x12dfd: 0xe000922b, 0x12dfe: 0xe00056fd, 0x12dff: 0xe0007ef1,
-	// Block 0x4b8, offset 0x12e00
-	0x12e04: 0xe0008044, 0x12e05: 0xe0006e68, 0x12e06: 0xe0006712, 0x12e07: 0xe0008907,
-	0x12e09: 0xe0007eb9, 0x12e0b: 0xe000586b,
-	0x12e0c: 0xe0004c9f,
-	0x12e13: 0xe000a267,
-	0x12e16: 0xe00092be,
-	0x12e18: 0xe0008ada, 0x12e1a: 0xe0005294, 0x12e1b: 0xe0009d2a,
-	0x12e1d: 0xe0003e2f,
-	0x12e21: 0xe0004405, 0x12e22: 0xe0008c55,
-	0x12e25: 0xe000655a, 0x12e26: 0xe0006497,
-	0x12e29: 0xe00041b8, 0x12e2a: 0xe0005fe7, 0x12e2b: 0xe0006f0c,
-	0x12e2d: 0xe0004e9c, 0x12e2f: 0xe0004bfa,
-	0x12e31: 0xe0004769, 0x12e32: 0xe0007ebd,
-	0x12e34: 0xe000a30c, 0x12e35: 0xe0004d05,
-	0x12e3a: 0xe0009a05,
-	// Block 0x4b9, offset 0x12e40
-	0x12e43: 0xe0007d7f,
-	0x12e44: 0xe0008a59, 0x12e46: 0xe0004f4d,
-	0x12e4a: 0xe000490a,
-	0x12e4c: 0xe0006065, 0x12e4e: 0xe00097ca,
-	0x12e55: 0xe00063ec, 0x12e56: 0xe0005f57,
-	0x12e59: 0xe000896d, 0x12e5a: 0xe0006068, 0x12e5b: 0xe0003f47,
-	0x12e5e: 0xe0009a4d,
-	0x12e60: 0xe00040ac, 0x12e61: 0xe000a02a,
-	0x12e64: 0xe0007ed9, 0x12e65: 0xe000697a,
-	0x12e6f: 0xe000446e,
-	0x12e71: 0xe00046e4,
-	0x12e74: 0xe0005224, 0x12e77: 0xe000a452,
-	0x12e78: 0xe000a44a,
-	0x12e7d: 0xe0004eb0, 0x12e7e: 0xe00081fc,
-	// Block 0x4ba, offset 0x12e80
-	0x12e82: 0xe0008c58,
-	0x12e85: 0xe0009f0c, 0x12e86: 0xe0009528, 0x12e87: 0xe0009f10,
-	0x12e88: 0xe0005b03, 0x12e89: 0xe0005b17, 0x12e8a: 0xe0009083,
-	0x12e96: 0xe0005f97,
-	0x12e98: 0xe00079c4, 0x12e9a: 0xe0003dbb, 0x12e9b: 0xe00042dc,
-	0x12ea3: 0xe0006ecc,
-	0x12ea4: 0xe00070ec, 0x12ea7: 0xe00093d5,
-	0x12ea9: 0xe0006dbc, 0x12eab: 0xe0009753,
-	0x12eaf: 0xe0009a50,
-	0x12eb0: 0xe0005297,
-	0x12eb9: 0xe0008f92, 0x12eba: 0xe0006e28,
-	0x12ebe: 0xe000655d,
-	// Block 0x4bb, offset 0x12ec0
-	0x12ec1: 0xe00061a7,
-	0x12ec6: 0xe0008620,
-	0x12eca: 0xe00069f7, 0x12ecb: 0xe0007383,
-	0x12ece: 0xe00070ac,
-	0x12ed0: 0xe000638c, 0x12ed1: 0xe000638f, 0x12ed2: 0xe00040af, 0x12ed3: 0xe00065c9,
-	0x12ed4: 0xe0003f97, 0x12ed5: 0xe00079c8,
-	0x12ee0: 0xe0008add,
-	0x12ee4: 0xe00072b6, 0x12ee5: 0xe0006bbf, 0x12ee6: 0xe0004e6f,
-	0x12eeb: 0xe00089f0,
-	0x12eed: 0xe0007206,
-	0x12ef0: 0xe0007a98, 0x12ef1: 0xe00040e3,
-	0x12ef4: 0xe0007e84, 0x12ef6: 0xe0004f51, 0x12ef7: 0xe0009b40,
-	0x12ef8: 0xe0008335, 0x12ef9: 0xe000629c, 0x12efa: 0xe0006a5b,
-	0x12eff: 0xe0009847,
-	// Block 0x4bc, offset 0x12f00
-	0x12f00: 0xe0005feb, 0x12f02: 0xe00054e0, 0x12f03: 0xe0007915,
-	0x12f04: 0xe0006e2b, 0x12f06: 0xe0006c90,
-	0x12f08: 0xe000417c, 0x12f0a: 0xe0005eaf, 0x12f0b: 0xe000578f,
-	0x12f0f: 0xe0004408,
-	0x12f1a: 0xe0006392,
-	0x12f1c: 0xe00059ce, 0x12f1d: 0xe0006f4d, 0x12f1e: 0xe0008624,
-	0x12f20: 0xe00047b1, 0x12f23: 0xe0008d90,
-	0x12f28: 0xe0009957, 0x12f29: 0xe0004ec9,
-	0x12f30: 0xe00060df, 0x12f33: 0xe0006a5f,
-	0x12f34: 0xe0005d3e, 0x12f35: 0xe00094f8,
-	0x12f38: 0xe0006e2e, 0x12f39: 0xe000649b, 0x12f3a: 0xe0007fb5,
-	0x12f3d: 0xe0004fad, 0x12f3e: 0xe000a2a0, 0x12f3f: 0xe0004e54,
-	// Block 0x4bd, offset 0x12f40
-	0x12f40: 0xe00052a7, 0x12f42: 0xe0006560,
-	0x12f46: 0xe00074da,
-	0x12f4a: 0xe0008970,
-	0x12f4d: 0xe0008850, 0x12f4f: 0xe000664a,
-	0x12f51: 0xe0004e4d,
-	0x12f58: 0xe00053e6, 0x12f59: 0xe0007662, 0x12f5a: 0xe00054e3,
-	0x12f5d: 0xe0005336, 0x12f5f: 0xe0008339,
-	0x12f60: 0xe000555f, 0x12f63: 0xe00070b0,
-	0x12f65: 0xe000796d, 0x12f67: 0xe000833d,
-	0x12f68: 0xe0005978, 0x12f6a: 0xe00081c6,
-	0x12f6c: 0xe000751e, 0x12f6d: 0xe000952b,
-	0x12f73: 0xe0008c5b,
-	0x12f74: 0xe0009599, 0x12f76: 0xe0009127,
-	0x12f7a: 0xe000509a, 0x12f7b: 0xe0008d14,
-	0x12f7c: 0xe0004874, 0x12f7e: 0xe0007e2a,
-	// Block 0x4be, offset 0x12f80
-	0x12f81: 0xe0007593, 0x12f82: 0xe0007b75, 0x12f83: 0xe00069fb,
-	0x12f85: 0xe0004877, 0x12f87: 0xe0007581,
-	0x12f88: 0xe000a4d6, 0x12f8a: 0xe000487a,
-	0x12f8c: 0xe0006ae3, 0x12f8d: 0xe0006715,
-	0x12f90: 0xe0008c8b, 0x12f92: 0xe000697d,
-	0x12f96: 0xe0009a80,
-	0x12f9b: 0xe00090df,
-	0x12f9c: 0xe0006ed0, 0x12f9e: 0xe0005d20, 0x12f9f: 0xe0008a9e,
-	0x12fa1: 0xe0003f9b,
-	0x12faa: 0xe0009d2e, 0x12fab: 0xe0005fef,
-	0x12fac: 0xe0005f2f,
-	0x12fb3: 0xe00094a5,
-	0x12fb5: 0xe0009684, 0x12fb6: 0xe0005eb3, 0x12fb7: 0xe0009e90,
-	0x12fb8: 0xe0003d96, 0x12fb9: 0xe0006a63,
-	0x12fbd: 0xe0006033,
-	// Block 0x4bf, offset 0x12fc0
-	0x12fc0: 0xe0006395,
-	0x12fc5: 0xe0007584, 0x12fc7: 0xe00087a4,
-	0x12fd1: 0xe00099a7,
-	0x12fd8: 0xe0006c93, 0x12fd9: 0xe0008f96, 0x12fda: 0xe0008973,
-	0x12fdf: 0xe0005254,
-	0x12fe4: 0xe0007fe1, 0x12fe6: 0xe0009c9e,
-	0x12fe8: 0xe0005cb7, 0x12fea: 0xe000568e, 0x12feb: 0xe0005691,
-	0x12fee: 0xe0003e33, 0x12fef: 0xe0005470,
-	0x12ff1: 0xe0003e37, 0x12ff2: 0xe0006913,
-	0x12ff4: 0xe00064cb, 0x12ff6: 0xe00076a2,
-	0x12ff8: 0xe00092c1,
-	0x12ffe: 0xe000732a,
-	// Block 0x4c0, offset 0x13000
-	0x1300a: 0xe000912b, 0x1300b: 0xe0007bc3,
-	0x1300d: 0xe000824d, 0x1300e: 0xe00049b6,
-	0x13012: 0xe0005a92,
-	0x13014: 0xe000a3e5,
-	0x13018: 0xe00065cc, 0x13019: 0xe0006398, 0x1301a: 0xe00052ab,
-	0x1301d: 0xe0008c5e, 0x1301f: 0xe0006817,
-	0x13021: 0xe000414b, 0x13022: 0xe0008109, 0x13023: 0xe00063ef,
-	0x13025: 0xe0004028, 0x13026: 0xe000a02d, 0x13027: 0xe00069ad,
-	0x13028: 0xe0004bea, 0x13029: 0xe0004b92, 0x1302a: 0xe0004d08, 0x1302b: 0xe0007d21,
-	0x1302c: 0xe0006457, 0x1302d: 0xe00098ac, 0x1302e: 0xe00077bc, 0x1302f: 0xe0007130,
-	0x13030: 0xe0004d0b, 0x13031: 0xe000a120, 0x13033: 0xe0005ff3,
-	0x13037: 0xe0008c61,
-	0x13038: 0xe0007c5d, 0x13039: 0xe0004b32, 0x1303b: 0xe00093f3,
-	0x1303c: 0xe0005c27, 0x1303d: 0xe000717b, 0x1303e: 0xe00065cf, 0x1303f: 0xe0008185,
-	// Block 0x4c1, offset 0x13040
-	0x13045: 0xe00077f8,
-	0x13051: 0xe0007ced, 0x13052: 0xe00076a6, 0x13053: 0xe0005623,
-	0x13054: 0xe00097cd, 0x13055: 0xe00092c4, 0x13057: 0xe0005ce1,
-	0x1305b: 0xe0003d54,
-	0x1305c: 0xe0005c83, 0x1305e: 0xe0009a53, 0x1305f: 0xe000487d,
-	0x13060: 0xe0005e57, 0x13061: 0xe0008047, 0x13063: 0xe00040b2,
-	0x13065: 0xe00073e4, 0x13066: 0xe000440b, 0x13067: 0xe000844d,
-	0x1306b: 0xe00086c8,
-	0x13071: 0xe000775a, 0x13073: 0xe0005258,
-	0x13074: 0xe000848c,
-	0x13079: 0xe00099e7, 0x1307a: 0xe0005af7, 0x1307b: 0xe00063f2,
-	0x1307d: 0xe000440e, 0x1307e: 0xe0009b64, 0x1307f: 0xe0005e02,
-	// Block 0x4c2, offset 0x13080
-	0x13080: 0xe00064cf, 0x13081: 0xe0008b94, 0x13082: 0xe0005d23, 0x13083: 0xe0006123,
-	0x13084: 0xe0003d57, 0x13085: 0xe0005c2a,
-	0x13088: 0xe00081ff, 0x13089: 0xe0005a62,
-	0x13097: 0xe0005bcf,
-	0x1309b: 0xe0003e5b,
-	0x1309c: 0xe000912f, 0x1309d: 0xe0009015,
-	0x130a3: 0xe0007894,
-	0x130a8: 0xe00081c9, 0x130aa: 0xe000470c, 0x130ab: 0xe0005a96,
-	0x130af: 0xe00062a0,
-	0x130b1: 0xe0006dbf, 0x130b2: 0xe0008202, 0x130b3: 0xe0003fef,
-	0x130b4: 0xe000a2a3, 0x130b5: 0xe00080d1, 0x130b6: 0xe0004edf,
-	0x130b8: 0xe0007b45, 0x130b9: 0xe0007587,
-	0x130bc: 0xe000525c,
-	// Block 0x4c3, offset 0x130c0
-	0x130c0: 0xe0006ed4, 0x130c3: 0xe0008628,
-	0x130c7: 0xe0009dbd,
-	0x130c9: 0xe00092c7, 0x130ca: 0xe0009f70,
-	0x130cf: 0xe0008155,
-	0x130d0: 0xe0009133, 0x130d1: 0xe000804a, 0x130d2: 0xe000a243,
-	0x130f3: 0xe0005282,
-	0x130f7: 0xe0009bc0,
-	0x130fb: 0xe00084dc,
-	// Block 0x4c4, offset 0x13100
-	0x13105: 0xe0005903,
-	0x13109: 0xe00058d9, 0x1310a: 0xe0008341,
-	0x1310e: 0xe0006718,
-	0x13112: 0xe00040b5, 0x13113: 0xe0005afa,
-	0x13116: 0xe00042e0,
-	0x13118: 0xe00070b4, 0x1311a: 0xe0007666, 0x1311b: 0xe0008814,
-	0x1311d: 0xe0008a41, 0x1311e: 0xe00079cc, 0x1311f: 0xe0009cae,
-	0x13120: 0xe0007e87, 0x13122: 0xe0009f14,
-	0x13128: 0xe000541e, 0x13129: 0xe000639b, 0x1312a: 0xe000717e, 0x1312b: 0xe00059d2,
-	0x1313d: 0xe0005a9a, 0x1313e: 0xe0005ab2, 0x1313f: 0xe0008205,
-	// Block 0x4c5, offset 0x13140
-	0x13141: 0xe000922f, 0x13142: 0xe0008510,
-	0x13145: 0xe0004640,
-	0x13149: 0xe00056b5, 0x1314a: 0xe0004942,
-	0x1314c: 0xe0004ace,
-	0x13151: 0xe00095c0, 0x13153: 0xe00045b4,
-	0x13154: 0xe00062d4, 0x13156: 0xe0008f9a,
-	0x13158: 0xe0006f3c,
-	0x1315c: 0xe0009006, 0x1315f: 0xe0005163,
-	0x13160: 0xe00098d6, 0x13161: 0xe0009cb2,
-	0x13169: 0xe0006258, 0x1316b: 0xe0004b36,
-	0x1316f: 0xe000a123,
-	0x13170: 0xe0004411, 0x13171: 0xe0005893, 0x13172: 0xe0006563,
-	0x13174: 0xe000729e, 0x13176: 0xe000633c,
-	0x13179: 0xe0008450,
-	0x1317d: 0xe0006e6c,
-	// Block 0x4c6, offset 0x13180
-	0x13183: 0xe00094fb,
-	0x13184: 0xe000511b, 0x13186: 0xe00065d2, 0x13187: 0xe0008399,
-	0x1318a: 0xe0005433, 0x1318b: 0xe000904f,
-	0x1318c: 0xe0005b37, 0x1318d: 0xe00099d3, 0x1318e: 0xe0007d82,
-	0x131a9: 0xe00093f6,
-	0x131ac: 0xe0005a16,
-	0x131b1: 0xe000a3c9,
-	0x131b5: 0xe000798e,
-	0x131b8: 0xe0007e2d, 0x131b9: 0xe00099ab,
-	0x131bc: 0xe000720a, 0x131bd: 0xe0005352,
-	// Block 0x4c7, offset 0x131c0
-	0x131c6: 0xe0006270,
-	0x131c9: 0xe00076ee, 0x131ca: 0xe00072ba,
-	0x131d1: 0xe0009b1b,
-	0x131d7: 0xe0008453,
-	0x131da: 0xe0007144, 0x131db: 0xe0003e87,
-	0x131e1: 0xe0009a56, 0x131e3: 0xe0005228,
-	0x131e6: 0xe0007d85,
-	0x131e9: 0xe00098d9, 0x131ea: 0xe00043b4, 0x131eb: 0xe000a030,
-	0x131ec: 0xe0008345, 0x131ed: 0xe0003d99, 0x131ef: 0xe00073e8,
-	0x131f1: 0xe000939f, 0x131f3: 0xe0007daf,
-	0x131f5: 0xe0004a7c, 0x131f7: 0xe000a3ad,
-	0x131fa: 0xe0008bcc,
-	// Block 0x4c8, offset 0x13200
-	0x13202: 0xe0009279,
-	0x13210: 0xe0006dc2,
-	0x13214: 0xe0006fe5,
-	0x13219: 0xe0005c97,
-	0x1321c: 0xe00067b7, 0x1321f: 0xe000490d,
-	0x13221: 0xe0005ff7,
-	0x13228: 0xe0009137,
-	0x1322d: 0xe000944d, 0x1322f: 0xe0004757,
-	0x13232: 0xe0009a59,
-	0x13234: 0xe000678b,
-	0x13238: 0xe0008bf8, 0x13239: 0xe0004244, 0x1323a: 0xe0008dac, 0x1323b: 0xe00073ec,
-	0x1323c: 0xe0008f9e, 0x1323f: 0xe000a033,
-	// Block 0x4c9, offset 0x13240
-	0x13240: 0xe0006ce3, 0x13241: 0xe0008d54, 0x13242: 0xe0005bd3,
-	0x13244: 0xe000948d, 0x13246: 0xe00069e3,
-	0x13249: 0xe0007b49, 0x1324a: 0xe0007955, 0x1324b: 0xe000402b,
-	0x1324d: 0xe0006fe8,
-	0x13250: 0xe0007af9, 0x13251: 0xe000671b, 0x13253: 0xe000608c,
-	0x13256: 0xe00065d5,
-	0x1325a: 0xe0006dc5,
-	0x1326c: 0xe0006318, 0x1326d: 0xe00072be, 0x1326e: 0xe0005543, 0x1326f: 0xe00093a3,
-	0x13271: 0xe00099eb,
-	0x13274: 0xe0006ed8,
-	0x1327c: 0xe0005771, 0x1327d: 0xe0009b80,
-	// Block 0x4ca, offset 0x13280
-	0x13280: 0xe00063f5,
-	0x13286: 0xe000589f,
-	0x13291: 0xe0005b9f, 0x13293: 0xe0005a1a,
-	0x13294: 0xe00062a4, 0x13295: 0xe000927c, 0x13297: 0xe00081cc,
-	0x13298: 0xe000681b, 0x1329a: 0xe0007c8d,
-	0x1329e: 0xe00057c1, 0x1329f: 0xe0008ae0,
-	0x132a1: 0xe0009009, 0x132a3: 0xe0008349,
-	0x132a5: 0xe0009397, 0x132a6: 0xe0008976,
-	0x132aa: 0xe00086cc,
-	0x132ac: 0xe0006c48, 0x132ad: 0xe0007f71, 0x132af: 0xe0008d18,
-	0x132bd: 0xe0009a08, 0x132bf: 0xe0007d88,
-	// Block 0x4cb, offset 0x132c0
-	0x132c1: 0xe0004fb1, 0x132c3: 0xe00060cb,
-	0x132c6: 0xe000913b,
-	0x132c9: 0xe00092ca, 0x132ca: 0xe00077fb, 0x132cb: 0xe00077fe,
-	0x132ce: 0xe00047b4,
-	0x132d3: 0xe0007c61,
-	0x132d5: 0xe0007e8a, 0x132d6: 0xe00040b8,
-	0x132d8: 0xe0007ad4, 0x132d9: 0xe0009faf,
-	0x132de: 0xe000927f,
-	0x132e1: 0xe000649f, 0x132e3: 0xe0006edc,
-	0x132e4: 0xe0007e8d,
-	0x132e8: 0xe0004a0a, 0x132e9: 0xe000979b, 0x132ea: 0xe0005d26, 0x132eb: 0xe0005260,
-	0x132ed: 0xe0006c4b,
-	0x132fa: 0xe0008bd4,
-	0x132fe: 0xe000574a,
-	// Block 0x4cc, offset 0x13300
-	0x13300: 0xe00078f5,
-	0x13304: 0xe0005eb7, 0x13306: 0xe0007363, 0x13307: 0xe0005dd2,
-	0x13309: 0xe0007801, 0x1330a: 0xe00043b7,
-	0x1330c: 0xe0009ded, 0x1330f: 0xe0007fe4,
-	0x13311: 0xe0003f9f,
-	0x13314: 0xe000834d, 0x13317: 0xe0007d25,
-	0x13319: 0xe00095c3, 0x1331b: 0xe0006ae7,
-	0x1331d: 0xe0004fe5,
-	0x13324: 0xe0009d95, 0x13325: 0xe0009357, 0x13326: 0xe00090e3,
-	0x13328: 0xe000a3b9, 0x13329: 0xe0006803, 0x1332a: 0xe00070b8,
-	0x1332f: 0xe0006980,
-	0x13330: 0xe000a391,
-	0x1333a: 0xe0008853,
-	// Block 0x4cd, offset 0x13340
-	0x13341: 0xe0004414,
-	0x13349: 0xe00081cf,
-	0x1334d: 0xe00053ce, 0x1334e: 0xe00070bc, 0x1334f: 0xe0008351,
-	0x13350: 0xe0005ced,
-	0x13355: 0xe0007bc6,
-	0x1335c: 0xe00054b9, 0x1335d: 0xe00077bf,
-	0x13364: 0xe00052df, 0x13365: 0xe00073f0,
-	0x13369: 0xe00060cf, 0x1336a: 0xe0006dc8,
-	0x13377: 0xe0008456,
-	0x13379: 0xe0007366, 0x1337a: 0xe0005928, 0x1337b: 0xe000890a,
-	0x1337d: 0xe00095f9, 0x1337f: 0xe00045f8,
-	// Block 0x4ce, offset 0x13380
-	0x13380: 0xe0009707, 0x13382: 0xe00077c2,
-	0x13384: 0xe0004d0e, 0x13386: 0xe0005667, 0x13387: 0xe0006c4e,
-	0x1338a: 0xe00078dd, 0x1338b: 0xe000664e,
-	0x13396: 0xe000751a, 0x13397: 0xe000615b,
-	0x13398: 0xe000748c, 0x1339a: 0xe0006a67,
-	0x133a2: 0xe0005711,
-	0x133a7: 0xe00040bb,
-	0x133a9: 0xe00060e3,
-	0x133ad: 0xe000537e, 0x133af: 0xe00097ab,
-	0x133bc: 0xe0005e05, 0x133bf: 0xe000531b,
-	// Block 0x4cf, offset 0x133c0
-	0x133c1: 0xe0004d11,
-	0x133ce: 0xe000a036,
-	0x133d0: 0xe0009bf2, 0x133d3: 0xe000a327,
-	0x133d4: 0xe00040e7, 0x133d5: 0xe0009049,
-	0x133db: 0xe0009df7,
-	0x133dc: 0xe000566a, 0x133de: 0xe0007bc9, 0x133df: 0xe000a039,
-	0x133e7: 0xe000a418,
-	0x133eb: 0xe000a3e8,
-	0x133ec: 0xe0004aa9, 0x133ef: 0xe0004aac,
-	0x133f1: 0xe0006f55,
-	0x133f8: 0xe0008208, 0x133f9: 0xe000a0e8, 0x133fa: 0xe000a3eb, 0x133fb: 0xe0005b47,
-	// Block 0x4d0, offset 0x13400
-	0x1340a: 0xe0005d74, 0x1340b: 0xe0007804,
-	0x1340c: 0xe0005ffb, 0x1340d: 0xe00065d8,
-	0x13413: 0xe00080d5,
-	0x13415: 0xe000913f,
-	0x13423: 0xe0004565,
-	0x13424: 0xe000890d,
-	0x13428: 0xe00063f8, 0x13429: 0xe000959c, 0x1342a: 0xe000529a,
-	0x1342f: 0xe0004910,
-	0x13430: 0xe0007e90, 0x13431: 0xe000903c,
-	0x13434: 0xe0007e93,
-	// Block 0x4d1, offset 0x13440
-	0x13440: 0xe0008ae3,
-	0x13445: 0xe00086d0, 0x13446: 0xe000848f, 0x13447: 0xe000671e,
-	0x13449: 0xe0005627, 0x1344b: 0xe0004f25,
-	0x13454: 0xe000a2a6,
-	0x13459: 0xe0007970, 0x1345b: 0xe0008aa1,
-	0x1345e: 0xe000a1f3, 0x1345f: 0xe00047b7,
-	0x13463: 0xe0004d4a,
-	0x13464: 0xe0009cce,
-	0x13469: 0xe0004589,
-	0x1346c: 0xe000458d, 0x1346d: 0xe0008d94,
-	0x13478: 0xe0006c96, 0x13479: 0xe0007b79, 0x1347b: 0xe0006bf4,
-	0x1347e: 0xe0007181,
-	// Block 0x4d2, offset 0x13480
-	0x13480: 0xe0009343, 0x13482: 0xe000631c, 0x13483: 0xe00070c0,
-	0x13486: 0xe0009ec4,
-	0x13488: 0xe000785e, 0x13489: 0xe00063fb, 0x1348a: 0xe0005906, 0x1348b: 0xe0005422,
-	0x13491: 0xe0004f55,
-	0x13498: 0xe0008c64, 0x1349a: 0xe0006566,
-	0x1349c: 0xe0005e6b, 0x1349d: 0xe0004d14,
-	0x134a1: 0xe0006769,
-	0x134a5: 0xe00069ff,
-	0x134a8: 0xe00086f4, 0x134a9: 0xe0008979,
-	0x134b4: 0xe00090ab, 0x134b5: 0xe000766a, 0x134b7: 0xe00049fe,
-	0x134ba: 0xe0007807, 0x134bb: 0xe0009247,
-	0x134bf: 0xe0007d29,
-	// Block 0x4d3, offset 0x134c0
-	0x134c0: 0xe0005264,
-	0x134cc: 0xe00045e1, 0x134ce: 0xe0003e8f,
-	0x134d5: 0xe0007058, 0x134d7: 0xe000a247,
-	0x134d9: 0xe00099af,
-	0x134df: 0xe0007d8b,
-	0x134e0: 0xe00062d8,
-	0x134e4: 0xe0007e96, 0x134e5: 0xe0005c57, 0x134e6: 0xe0009bc3,
-	0x134e8: 0xe0006f51,
-	0x134ee: 0xe00062dc,
-	0x134f4: 0xe000a03c, 0x134f6: 0xe00086e8,
-	0x134f8: 0xe0007973,
-	// Block 0x4d4, offset 0x13500
-	0x13502: 0xe000540a, 0x13503: 0xe0006037,
-	0x1350c: 0xe0005f5b, 0x1350d: 0xe0007f09,
-	0x13518: 0xe000800e,
-	0x1351e: 0xe00059b6, 0x1351f: 0xe0005bd7,
-	0x13522: 0xe0009f74, 0x13523: 0xe0005307,
-	0x1352d: 0xe0005909,
-	0x13533: 0xe000502d,
-	0x13534: 0xe0008d58,
-	0x1353a: 0xe000531e, 0x1353b: 0xe00057dc,
-	0x1353d: 0xe0008a24,
-	// Block 0x4d5, offset 0x13540
-	0x13540: 0xe0006cff,
-	0x13544: 0xe0009651, 0x13547: 0xe00059b9,
-	0x1354a: 0xe0005c5a, 0x1354b: 0xe000710c,
-	0x13552: 0xe0005ab6,
-	0x1355a: 0xe0009963, 0x1355b: 0xe0009967,
-	0x13560: 0xe0005f33, 0x13563: 0xe0004d17,
-	0x1356c: 0xe0006a6b, 0x1356f: 0xe0007a9b,
-	0x13572: 0xe00094dd,
-	0x13577: 0xe000505d,
-	0x13579: 0xe0009d6b, 0x1357b: 0xe0007fe7,
-	0x1357e: 0xe0006b2f,
-	// Block 0x4d6, offset 0x13580
-	0x13585: 0xe0006f99,
-	0x1358d: 0xe0003ea7,
-	0x13591: 0xe000778e,
-	0x13595: 0xe000766e,
-	0x1359f: 0xe00053ea,
-	0x135a1: 0xe00054e6, 0x135a2: 0xe0008b44, 0x135a3: 0xe00054bc,
-	0x135b1: 0xe0004417, 0x135b2: 0xe00041e8,
-	0x135b6: 0xe00082b1,
-	0x135b9: 0xe000529d, 0x135bb: 0xe0005a1e,
-	// Block 0x4d7, offset 0x135c0
-	0x135c0: 0xe0009edc,
-	0x135c4: 0xe0004eac, 0x135c6: 0xe0008ba4,
-	0x135ca: 0xe0005ba7,
-	0x135cc: 0xe0009dc1, 0x135cd: 0xe000762e, 0x135ce: 0xe0003e5f,
-	0x135d2: 0xe0009e94, 0x135d3: 0xe0006f20,
-	0x135d7: 0xe0003d5a,
-	0x135d9: 0xe0007184, 0x135db: 0xe0007d8e,
-	0x135dd: 0xe00094e1, 0x135de: 0xe0007db2,
-	0x135e1: 0xe0009f78, 0x135e2: 0xe0004880, 0x135e3: 0xe0007fea,
-	0x135e8: 0xe0009ac1, 0x135eb: 0xe000681f,
-	0x135ee: 0xe00044f5,
-	0x135f0: 0xe0006d44, 0x135f2: 0xe0004dbf,
-	0x135f7: 0xe00094e5,
-	0x135fd: 0xe0008161, 0x135fe: 0xe0004b96, 0x135ff: 0xe0004b9a,
-	// Block 0x4d8, offset 0x13600
-	0x13601: 0xe0007cf1, 0x13602: 0xe0005beb,
-	0x13608: 0xe0003d5d, 0x1360b: 0xe000509d,
-	0x1360d: 0xe0009a5c,
-	0x13612: 0xe0004f29,
-	0x13616: 0xe0006dcb, 0x13617: 0xe0008d1c,
-	0x1361b: 0xe0008492,
-	0x1361d: 0xe00063fe, 0x1361e: 0xe00044d9,
-	0x13622: 0xe00060e7,
-	0x1362a: 0xe00040be, 0x1362b: 0xe0009b2b,
-	0x13634: 0xe000441a,
-	// Block 0x4d9, offset 0x13640
-	0x13640: 0xe000810d, 0x13641: 0xe00083d9, 0x13642: 0xe0005583,
-	0x13645: 0xe000839d,
-	0x1364a: 0xe0004e84,
-	0x1364d: 0xe00044f9, 0x1364f: 0xe00058dc,
-	0x13652: 0xe0006401,
-	0x13654: 0xe00077c5, 0x13655: 0xe0007e30,
-	0x13658: 0xe0004913, 0x13659: 0xe000496e,
-	0x1365c: 0xe000625b, 0x1365d: 0xe0008355, 0x1365f: 0xe0006721,
-	0x13661: 0xe00058df,
-	0x13668: 0xe0006569,
-	0x1366f: 0xe0008ae6,
-	0x13671: 0xe0009ae8, 0x13673: 0xe00068bf,
-	0x13674: 0xe000606b, 0x13675: 0xe000606e,
-	0x13678: 0xe0005321, 0x13679: 0xe00045e4,
-	0x1367d: 0xe0008856, 0x1367e: 0xe00040c1,
-	// Block 0x4da, offset 0x13680
-	0x13684: 0xe0009052, 0x13687: 0xe00062a8,
-	0x1368a: 0xe00099b3,
-	0x1368c: 0xe00044fd,
-	0x13690: 0xe0003e8b, 0x13692: 0xe0009a5f, 0x13693: 0xe000625e,
-	0x13695: 0xe0007e99,
-	0x13698: 0xe0007d91, 0x13699: 0xe0006071, 0x1369a: 0xe0008495,
-	0x136a5: 0xe0007aed, 0x136a7: 0xe0004340,
-	0x136aa: 0xe000984a, 0x136ab: 0xe00095c6,
-	0x136b0: 0xe0004103,
-	0x136b6: 0xe0006f65,
-	0x136b8: 0xe00057c4, 0x136ba: 0xe000921b, 0x136bb: 0xe0006aeb,
-	// Block 0x4db, offset 0x136c0
-	0x136c1: 0xe0003fa3,
-	0x136c4: 0xe0007460,
-	0x136cd: 0xe00082d5,
-	0x136d6: 0xe0007897,
-	0x136d8: 0xe000475a,
-	0x136dc: 0xe00091df, 0x136de: 0xe0006173, 0x136df: 0xe0004b9e,
-	0x136e0: 0xe0005061,
-	0x136e4: 0xe00053d2,
-	0x136ea: 0xe0005a66,
-	0x136ed: 0xe000a543, 0x136ef: 0xe00095fd,
-	0x136f2: 0xe0006f69,
-	0x136f4: 0xe0005396,
-	0x136ff: 0xe0006983,
-	// Block 0x4dc, offset 0x13700
-	0x13701: 0xe0007a9e, 0x13703: 0xe0004fb5,
-	0x13706: 0xe00062ac, 0x13707: 0xe0009936,
-	0x13708: 0xe0009dad, 0x13709: 0xe0004d1a, 0x1370b: 0xe00041bc,
-	0x1370f: 0xe0004a7f,
-	0x13713: 0xe0005b4f,
-	0x13716: 0xe0006feb, 0x13717: 0xe000676c,
-	0x13718: 0xe00086d4,
-	0x13721: 0xe0004180,
-	0x13728: 0xe000720e, 0x13729: 0xe000511e, 0x1372a: 0xe00095f1,
-	0x1372c: 0xe0004d1d, 0x1372f: 0xe0004916,
-	0x13732: 0xe0004b3a,
-	0x13737: 0xe0009055,
-	0x1373a: 0xe0003dbf,
-	0x1373d: 0xe00053d6, 0x1373f: 0xe0008514,
-	// Block 0x4dd, offset 0x13740
-	0x13740: 0xe0004644,
-	0x13752: 0xe0003dc3,
-	0x13754: 0xe0004b62, 0x13756: 0xe000420c,
-	0x1375a: 0xe0004471,
-	0x1375c: 0xe000820b, 0x1375d: 0xe0008498,
-	0x13763: 0xe0009d6e,
-	0x13765: 0xe0004775,
-	0x13771: 0xe0009b84, 0x13773: 0xe00044b1,
-	0x13774: 0xe00068c3,
-	0x13778: 0xe0009347,
-	// Block 0x4de, offset 0x13780
-	0x13780: 0xe00074f2, 0x13782: 0xe00087a8, 0x13783: 0xe000639e,
-	0x13787: 0xe0004779,
-	0x13788: 0xe000438d, 0x13789: 0xe000612b, 0x1378a: 0xe00070c4,
-	0x1378c: 0xe000a0ec, 0x1378e: 0xe000980e,
-	0x13790: 0xe0007276, 0x13791: 0xe0008071, 0x13793: 0xe000a395,
-	0x13794: 0xe0007f55, 0x13795: 0xe00067e3, 0x13796: 0xe000a48e, 0x13797: 0xe00096e7,
-	0x13798: 0xe0004ca2, 0x1379b: 0xe0007976,
-	0x1379d: 0xe0007187, 0x1379f: 0xe0006d13,
-	0x137a2: 0xe000a47a, 0x137a3: 0xe0004204,
-	0x137a5: 0xe0004e94,
-	0x137aa: 0xe0005fff,
-	0x137ad: 0xe0006aef,
-	0x137b1: 0xe0009dfa,
-	0x137b4: 0xe0006c51, 0x137b6: 0xe0003d60,
-	0x137ba: 0xe0008d20, 0x137bb: 0xe0008aa4,
-	0x137bc: 0xe0008818, 0x137be: 0xe000820e,
-	// Block 0x4df, offset 0x137c0
-	0x137c1: 0xe0004474,
-	0x137c6: 0xe000849b,
-	0x137cb: 0xe0008ae9,
-	0x137d0: 0xe0006724, 0x137d1: 0xe0008074,
-	0x137d4: 0xe0008910, 0x137d5: 0xe00099d7, 0x137d6: 0xe0009b34, 0x137d7: 0xe0009f94,
-	0x137d8: 0xe00049a2, 0x137db: 0xe0008459,
-	0x137de: 0xe0006727,
-	0x137e0: 0xe000775e, 0x137e1: 0xe000a369, 0x137e2: 0xe0006ee0, 0x137e3: 0xe00077c8,
-	0x137e6: 0xe0006fee,
-	0x137e9: 0xe0006ff1, 0x137eb: 0xe00096a2,
-	0x137ec: 0xe0004919, 0x137ed: 0xe0004a1f, 0x137ee: 0xe0008598,
-	0x137f0: 0xe000a537, 0x137f1: 0xe000a126, 0x137f2: 0xe0009d71, 0x137f3: 0xe00068c7,
-	0x137f5: 0xe0006a6f,
-	0x137f9: 0xe00091bb,
-	0x137fc: 0xe000a2be, 0x137ff: 0xe000472a,
-	// Block 0x4e0, offset 0x13800
-	0x13802: 0xe000897c,
-	0x13804: 0xe000574d, 0x13805: 0xe0008aa7, 0x13806: 0xe0004710, 0x13807: 0xe00045b7,
-	0x1380c: 0xe0008c67, 0x1380d: 0xe00080d9,
-	0x13811: 0xe0004714, 0x13813: 0xe0006986,
-	0x13815: 0xe0009737,
-	0x13818: 0xe0007e33, 0x1381a: 0xe000930c,
-	0x1381e: 0xe00074b2,
-	0x13820: 0xe0006bc3, 0x13821: 0xe0004390, 0x13822: 0xe0009ec8, 0x13823: 0xe0005d29,
-	0x13824: 0xe0007861, 0x13825: 0xe000441d, 0x13826: 0xe0006d17, 0x13827: 0xe0009a83,
-	0x13828: 0xe000a2a9, 0x1382a: 0xe0006af3,
-	0x13830: 0xe0006dce, 0x13832: 0xe00045ba,
-	0x13839: 0xe000656c,
-	0x1383c: 0xe0007fed, 0x1383e: 0xe0007f21, 0x1383f: 0xe0008913,
-	// Block 0x4e1, offset 0x13840
-	0x13842: 0xe00091bf,
-	0x13844: 0xe0006ee4, 0x13847: 0xe0004fb9,
-	0x13849: 0xe0007db5, 0x1384b: 0xe0009233,
-	0x1384d: 0xe0008402, 0x1384f: 0xe00093f9,
-	0x13852: 0xe0005474,
-	0x13856: 0xe00056e1,
-	0x1385b: 0xe0007e36,
-	0x1385c: 0xe00091ff, 0x1385e: 0xe00099b7, 0x1385f: 0xe000701e,
-	0x13860: 0xe000a3d1, 0x13861: 0xe0006ff4,
-	0x13864: 0xe0007212, 0x13866: 0xe000925e, 0x13867: 0xe0009d74,
-	0x1386a: 0xe00087ac, 0x1386b: 0xe0003e3b,
-	0x1386d: 0xe0007e39, 0x1386e: 0xe00081d2,
-	0x13870: 0xe0007021, 0x13871: 0xe000a3fd, 0x13873: 0xe00072c2,
-	0x13874: 0xe0009cb6, 0x13876: 0xe0007134, 0x13877: 0xe0009b07,
-	0x13878: 0xe0008859, 0x1387a: 0xe00074f6,
-	0x1387c: 0xe000a3d5, 0x1387e: 0xe0004d77,
-	// Block 0x4e2, offset 0x13880
-	0x13880: 0xe0005c2d, 0x13881: 0xe000725a, 0x13882: 0xe0007d94,
-	0x13884: 0xe00052e3, 0x13887: 0xe0004107,
-	0x1388c: 0xe0003d9c, 0x1388e: 0xe0005dd5,
-	0x13890: 0xe0005e6f, 0x13891: 0xe0009fcd,
-	0x13894: 0xe0009bf6, 0x13896: 0xe0006cc3, 0x13897: 0xe0006003,
-	0x13899: 0xe0004220, 0x1389a: 0xe0008091, 0x1389b: 0xe0003fa7,
-	0x1389c: 0xe0007d2d, 0x1389d: 0xe000672a,
-	0x138a0: 0xe0007aa1, 0x138a3: 0xe0007c0b,
-	0x138a6: 0xe0004344,
-	0x138a8: 0xe0005c30, 0x138ab: 0xe00084e0,
-	0x138ac: 0xe0005806,
-	0x138b3: 0xe0004883,
-	0x138b7: 0xe000789a,
-	0x138b9: 0xe0004b3e,
-	0x138be: 0xe0005a3e,
-	// Block 0x4e3, offset 0x138c0
-	0x138c1: 0xe000a129, 0x138c3: 0xe000a36c,
-	0x138c9: 0xe0008bfc,
-	0x138cc: 0xe0007991, 0x138ce: 0xe000a42e, 0x138cf: 0xe0004ca5,
-	0x138d4: 0xe0006ab3, 0x138d6: 0xe0008f32,
-	0x138d8: 0xe000705c, 0x138d9: 0xe000930f, 0x138da: 0xe0004fbd,
-	0x138dc: 0xe0006261, 0x138df: 0xe000897f,
-	0x138e6: 0xe00042e4,
-	0x138eb: 0xe0006b4f,
-	0x138ec: 0xe000656f, 0x138ef: 0xe00075ae,
-	0x138f0: 0xe0007ff0, 0x138f1: 0xe0006ab7,
-	0x138f4: 0xe00041c0, 0x138f7: 0xe000a03f,
-	0x138fd: 0xe00077cb, 0x138ff: 0xe0009fd0,
-	// Block 0x4e4, offset 0x13900
-	0x13900: 0xe000519c,
-	0x13909: 0xe0007e9c, 0x1390a: 0xe0006187,
-	0x1390c: 0xe0007672, 0x1390e: 0xe0006e31,
-	0x13910: 0xe0006dd1, 0x13912: 0xe0008f02, 0x13913: 0xe0007464,
-	0x13916: 0xe0008f06,
-	0x1391a: 0xe0008e92,
-	0x1391c: 0xe0005065, 0x1391e: 0xe0007506,
-	// Block 0x4e5, offset 0x13940
-	0x13977: 0xe000449d,
-	0x1397f: 0xe0004393,
-	// Block 0x4e6, offset 0x13980
-	0x13981: 0xe000a1eb,
-	0x13986: 0xe0005285, 0x13987: 0xe0003ff3,
-	0x13988: 0xe0004ca8, 0x13989: 0xe0007024, 0x1398a: 0xe0009b0b,
-	0x1398c: 0xe00079d0, 0x1398e: 0xe0006e34,
-	0x13995: 0xe0006ff7, 0x13996: 0xe00094a9,
-	0x1399a: 0xe00051c8,
-	0x139a1: 0xe00068cb, 0x139a2: 0xe000a1cb,
-	0x139a8: 0xe000a531, 0x139aa: 0xe000a042, 0x139ab: 0xe00077ce,
-	0x139ac: 0xe000849e,
-	0x139b3: 0xe0006652,
-	0x139b8: 0xe00095c9, 0x139b9: 0xe0009ac4, 0x139ba: 0xe0006ffa,
-	// Block 0x4e7, offset 0x139c0
-	0x139c2: 0xe00092cd, 0x139c3: 0xe0005b1b,
-	0x139ca: 0xe0005b07,
-	0x139cc: 0xe0005c33, 0x139cd: 0xe000590c,
-	0x139d3: 0xe0005cf0,
-	0x139d4: 0xe00065db,
-	0x139d8: 0xe0005b1f,
-	0x139dd: 0xe0009939, 0x139de: 0xe00087b0,
-	0x139e0: 0xe00063a1, 0x139e1: 0xe00083dc, 0x139e2: 0xe0004569,
-	0x139e7: 0xe000662e,
-	0x139e8: 0xe000a12c, 0x139e9: 0xe00098f3, 0x139ea: 0xe0009767, 0x139eb: 0xe0004648,
-	0x139ec: 0xe0009024, 0x139ef: 0xe000845c,
-	0x139f0: 0xe0006be8, 0x139f2: 0xe0008211, 0x139f3: 0xe0008050,
-	0x139f4: 0xe0004a58, 0x139f6: 0xe00099bb, 0x139f7: 0xe0005adc,
-	0x139f8: 0xe00050a0, 0x139fa: 0xe000a26b, 0x139fb: 0xe0006572,
-	0x139fc: 0xe0009203, 0x139fd: 0xe000804d, 0x139ff: 0xe0005d2c,
-	// Block 0x4e8, offset 0x13a00
-	0x13a00: 0xe0009bc6, 0x13a01: 0xe000645b, 0x13a02: 0xe0005729, 0x13a03: 0xe0008159,
-	0x13a04: 0xe000a2ac, 0x13a06: 0xe00061ab, 0x13a07: 0xe00081d5,
-	0x13a08: 0xe0003d63, 0x13a0a: 0xe00084e4,
-	0x13a11: 0xe0008d24, 0x13a13: 0xe0006632,
-	0x13a19: 0xe0008aec, 0x13a1a: 0xe000572c,
-	0x13a1c: 0xe000672d, 0x13a1e: 0xe00068cf,
-	0x13a20: 0xe0006074, 0x13a21: 0xe0004061, 0x13a22: 0xe0009e98, 0x13a23: 0xe0005adf,
-	0x13a24: 0xe00090e7, 0x13a26: 0xe00063a4,
-	0x13a2a: 0xe0008d98,
-	0x13a2c: 0xe00083a1, 0x13a2d: 0xe0005121,
-	0x13a34: 0xe000572f,
-	0x13a3b: 0xe00063a7,
-	0x13a3c: 0xe0004886, 0x13a3d: 0xe0006901,
-	// Block 0x4e9, offset 0x13a40
-	0x13a44: 0xe0008c6a, 0x13a45: 0xe00094fe, 0x13a47: 0xe0007edd,
-	0x13a48: 0xe0008c00, 0x13a4a: 0xe0008e96, 0x13a4b: 0xe000724e,
-	0x13a4d: 0xe0006b33, 0x13a4f: 0xe0007792,
-	0x13a50: 0xe00070f0, 0x13a53: 0xe0008359,
-	0x13a54: 0xe00065de, 0x13a56: 0xe0006cc7,
-	0x13a5b: 0xe0004591,
-	// Block 0x4ea, offset 0x13a80
-	0x13aa4: 0xe00084e8, 0x13aa6: 0xe0006730, 0x13aa7: 0xe0004d8f,
-	0x13aab: 0xe0009e3c,
-	0x13aad: 0xe0008214,
-	0x13ab0: 0xe0008aaa, 0x13ab3: 0xe0004a82,
-	0x13ab4: 0xe00063aa, 0x13ab6: 0xe0003e63, 0x13ab7: 0xe0004cab,
-	// Block 0x4eb, offset 0x13ac0
-	0x13ac1: 0xe0008d5c,
-	0x13ac5: 0xe00092d0,
-	0x13aca: 0xe0007d45,
-	0x13ace: 0xe0008aef,
-	0x13ad0: 0xe0009ee8,
-	0x13ad9: 0xe0008916,
-	0x13ae0: 0xe0009312, 0x13ae3: 0xe000952e,
-	0x13ae8: 0xe00093fc, 0x13aeb: 0xe00047f3,
-	0x13af2: 0xe0008ec2, 0x13af3: 0xe000899c,
-	0x13afa: 0xe00063ad,
-	0x13afe: 0xe0008c6d,
-	// Block 0x4ec, offset 0x13b00
-	0x13b02: 0xe0004d20,
-	0x13b06: 0xe00097d0,
-	0x13b0b: 0xe0005f7b,
-	0x13b0c: 0xe0008d9c, 0x13b0e: 0xe00096a5, 0x13b0f: 0xe0003d66,
-	0x13b15: 0xe00086f8, 0x13b16: 0xe00090af, 0x13b17: 0xe0006404,
-	0x13b1b: 0xe00098af,
-	0x13b1d: 0xe000408e, 0x13b1f: 0xe0004b66,
-	0x13b21: 0xe00084ec, 0x13b23: 0xe0006a73,
-	0x13b28: 0xe00045bd, 0x13b2a: 0xe0004a46, 0x13b2b: 0xe0004595,
-	0x13b2c: 0xe0004aaf, 0x13b2f: 0xe000566d,
-	0x13b31: 0xe00095cc, 0x13b33: 0xe0005124,
-	0x13b3c: 0xe000495a,
-	// Block 0x4ed, offset 0x13b40
-	0x13b46: 0xe0008b78,
-	0x13b48: 0xe0006c99, 0x13b49: 0xe0005490, 0x13b4a: 0xe0007b4d,
-	0x13b4f: 0xe0005001,
-	0x13b50: 0xe00090eb,
-	0x13b54: 0xe000970b,
-	0x13b5d: 0xe00045e7, 0x13b5e: 0xe0004091, 0x13b5f: 0xe0008c8e,
-	0x13b6a: 0xe00089f4,
-	0x13b70: 0xe0007e3c,
-	0x13b74: 0xe0007b7d, 0x13b75: 0xe00089f8, 0x13b76: 0xe000888c,
-	0x13b7d: 0xe0007c0e,
-	// Block 0x4ee, offset 0x13b80
-	0x13b80: 0xe00086fc, 0x13b82: 0xe0007e3f,
-	0x13b84: 0xe000885c, 0x13b87: 0xe00040eb,
-	0x13b88: 0xe0005127, 0x13b89: 0xe0008e21, 0x13b8a: 0xe0009fb2,
-	0x13b8c: 0xe0008fd6, 0x13b8f: 0xe000888f,
-	0x13b95: 0xe0009b88,
-	0x13b99: 0xe0009491,
-	0x13b9c: 0xe00094ad, 0x13b9f: 0xe00084f0,
-	0x13ba0: 0xe0009087, 0x13ba3: 0xe0005a42,
-	0x13ba4: 0xe0008a28,
-	0x13bb2: 0xe0008b7c,
-	0x13bb4: 0xe0009495, 0x13bb6: 0xe0004a0e,
-	0x13bbb: 0xe00047f6,
-	// Block 0x4ef, offset 0x13bc0
-	0x13bc1: 0xe0008919,
-	0x13bc5: 0xe000935b, 0x13bc7: 0xe000845f,
-	0x13bc9: 0xe00051d8, 0x13bca: 0xe0008aad, 0x13bcb: 0xe0008892,
-	0x13bcd: 0xe00073f4,
-	0x13bd0: 0xe00055b7, 0x13bd1: 0xe00090b3, 0x13bd3: 0xe0008c91,
-	0x13bd4: 0xe000862c,
-	0x13bd9: 0xe0005958,
-	0x13be1: 0xe0006b77,
-	0x13be9: 0xe0004608, 0x13bea: 0xe000592c, 0x13beb: 0xe00070c8,
-	0x13bec: 0xe00049ba,
-	0x13bf1: 0xe00096a8, 0x13bf3: 0xe00049be,
-	// Block 0x4f0, offset 0x13c00
-	0x13c00: 0xe0004889,
-	0x13c06: 0xe0009282,
-	0x13c0a: 0xe0008e24, 0x13c0b: 0xe000725e,
-	0x13c0c: 0xe0004a22, 0x13c0d: 0xe0004972,
-	0x13c12: 0xe0009e0c,
-	0x13c1f: 0xe0007632,
-	0x13c28: 0xe000562b, 0x13c2b: 0xe0008d28,
-	0x13c38: 0xe0009499, 0x13c39: 0xe0008c94, 0x13c3a: 0xe0009315, 0x13c3b: 0xe0003d69,
-	0x13c3c: 0xe0008139, 0x13c3e: 0xe0007060,
-	// Block 0x4f1, offset 0x13c40
-	0x13c43: 0xe00047ba,
-	0x13c45: 0xe0005670, 0x13c47: 0xe0008630,
-	0x13c48: 0xe0008af2, 0x13c49: 0xe00083df,
-	0x13c52: 0xe0009207, 0x13c53: 0xe0005a22,
-	0x13c54: 0xe0006264, 0x13c55: 0xe00042e8,
-	0x13c5b: 0xe0005478,
-	0x13c5c: 0xe000959f, 0x13c5d: 0xe000a400, 0x13c5e: 0xe0005a9e, 0x13c5f: 0xe0009167,
-	0x13c66: 0xe0005547, 0x13c67: 0xe000620b,
-	0x13c68: 0xe0004674, 0x13c69: 0xe0006077, 0x13c6a: 0xe000583f,
-	0x13c6f: 0xe0008dd0,
-	0x13c70: 0xe0007490, 0x13c73: 0xe0008ab0,
-	0x13c78: 0xe0006dd4, 0x13c79: 0xe00062b0, 0x13c7b: 0xe00062b4,
-	0x13c7e: 0xe000859c, 0x13c7f: 0xe000758a,
-	// Block 0x4f2, offset 0x13c80
-	0x13c80: 0xe00078f9, 0x13c82: 0xe00044b5,
-	0x13c84: 0xe0009c76, 0x13c85: 0xe0007cf5, 0x13c86: 0xe00056d9,
-	0x13c89: 0xe00085a0,
-	0x13c8d: 0xe000916b, 0x13c8e: 0xe00047bd,
-	0x13c92: 0xe00064a3,
-	0x13c94: 0xe000595c, 0x13c97: 0xe0003f2f,
-	0x13c98: 0xe000a1cf,
-	0x13c9d: 0xe000758d, 0x13c9e: 0xe0009cba, 0x13c9f: 0xe000476d,
-	0x13ca1: 0xe00065e1, 0x13ca2: 0xe0005503, 0x13ca3: 0xe000551b,
-	0x13ca4: 0xe0005694,
-	// Block 0x4f3, offset 0x13cc0
-	0x13cdb: 0xe00070cc,
-	0x13cdc: 0xe0004420, 0x13cdf: 0xe0009b37,
-	0x13ce2: 0xe00053ae, 0x13ce3: 0xe00053a6,
-	0x13ce6: 0xe00098f7,
-	0x13ce8: 0xe000618b,
-	0x13ced: 0xe0006733, 0x13cee: 0xe00061a3, 0x13cef: 0xe000618f,
-	0x13cf0: 0xe0008d2c, 0x13cf1: 0xe0007af1, 0x13cf2: 0xe0004e58,
-	0x13cfb: 0xe0007158,
-	0x13cff: 0xe0009143,
-	// Block 0x4f4, offset 0x13d00
-	0x13d00: 0xe0003e67, 0x13d02: 0xe0007bcc, 0x13d03: 0xe000789d,
-	0x13d04: 0xe000a49e, 0x13d05: 0xe00070d0,
-	0x13d0d: 0xe00052bf, 0x13d0e: 0xe0007762,
-	0x13d11: 0xe0004b42, 0x13d13: 0xe00071b1,
-	0x13d14: 0xe0005f37, 0x13d15: 0xe00078a0,
-	0x13d22: 0xe0009318,
-	0x13d24: 0xe0008077, 0x13d25: 0xe0009f98, 0x13d26: 0xe0003d6c,
-	0x13d28: 0xe00097e5, 0x13d2a: 0xe00084f4, 0x13d2b: 0xe0005ebb,
-	0x13d2c: 0xe0007a1c, 0x13d2d: 0xe0008da0,
-	0x13d30: 0xe0006f24, 0x13d32: 0xe0004157,
-	0x13d34: 0xe000a2c1, 0x13d37: 0xe0005dd8,
-	0x13d38: 0xe0006227, 0x13d39: 0xe00084f8, 0x13d3a: 0xe0004de7,
-	0x13d3d: 0xe00093ff,
-	// Block 0x4f5, offset 0x13d40
-	0x13d40: 0xe000984d, 0x13d41: 0xe0006d1b, 0x13d42: 0xe000469c, 0x13d43: 0xe000512a,
-	0x13d45: 0xe000a351, 0x13d46: 0xe00075b2,
-	0x13d48: 0xe0009f7c, 0x13d4b: 0xe0009a62,
-	0x13d4c: 0xe0007e9f, 0x13d4d: 0xe0006c54, 0x13d4f: 0xe0009862,
-	0x13d50: 0xe000949d, 0x13d51: 0xe000488c,
-	0x13d54: 0xe000512d, 0x13d55: 0xe00042ec, 0x13d56: 0xe0008518, 0x13d57: 0xe0005288,
-	0x13d59: 0xe0008462, 0x13d5a: 0xe0009831,
-	0x13d5d: 0xe0006989, 0x13d5e: 0xe00055eb, 0x13d5f: 0xe0006ccb,
-	0x13d60: 0xe000891c, 0x13d61: 0xe0008b48, 0x13d62: 0xe0006320, 0x13d63: 0xe000554b,
-	0x13d6e: 0xe0009261,
-	0x13d71: 0xe0008ab3, 0x13d72: 0xe0008d30,
-	0x13d74: 0xe000970f, 0x13d75: 0xe0004a85, 0x13d76: 0xe0007db8,
-	0x13d78: 0xe0008129,
-	0x13d7c: 0xe0009ba0, 0x13d7e: 0xe0007e45,
-	// Block 0x4f6, offset 0x13d80
-	0x13d81: 0xe00052af, 0x13d82: 0xe0006dd7,
-	0x13d87: 0xe0007bcf,
-	0x13d89: 0xe000881c, 0x13d8a: 0xe0007e42, 0x13d8b: 0xe0007c65,
-	0x13d8d: 0xe000998b, 0x13d8e: 0xe00045c0, 0x13d8f: 0xe000727a,
-	0x13d90: 0xe0009bc9, 0x13d91: 0xe000a24b, 0x13d92: 0xe0008af5, 0x13d93: 0xe0005130,
-	0x13d94: 0xe0004f69, 0x13d95: 0xe0007d97,
-	0x13d98: 0xe000491c, 0x13d99: 0xe0007aa4, 0x13d9b: 0xe0005815,
-	0x13d9c: 0xe0006ce7, 0x13d9d: 0xe0005005, 0x13d9e: 0xe0009264,
-	0x13da0: 0xe0007cf9, 0x13da1: 0xe0006c57, 0x13da3: 0xe00041c4,
-	0x13da8: 0xe00078a3, 0x13da9: 0xe00084fc,
-	0x13dac: 0xe0006cd3, 0x13dad: 0xe000891f, 0x13dae: 0xe0008e27, 0x13daf: 0xe00052b3,
-	0x13db2: 0xe0008c70,
-	0x13db5: 0xe0008b4c, 0x13db6: 0xe0007ad7, 0x13db7: 0xe00090ef,
-	0x13db8: 0xe0006a77, 0x13dba: 0xe0007e48,
-	0x13dbc: 0xe0005774, 0x13dbd: 0xe0004094, 0x13dbf: 0xe0009b2e,
-	// Block 0x4f7, offset 0x13dc0
-	0x13dc0: 0xe0007aa7, 0x13dc1: 0xe0005ae2, 0x13dc2: 0xe0009d77, 0x13dc3: 0xe0006dda,
-	0x13dc4: 0xe000a1a3, 0x13dc5: 0xe0008634, 0x13dc7: 0xe0008053,
-	0x13dc8: 0xe00059d6, 0x13dca: 0xe0006193,
-	0x13dcc: 0xe00054e9, 0x13dcf: 0xe0005324,
-	0x13dd0: 0xe000590f, 0x13dd1: 0xe0007f9d,
-	0x13dd5: 0xe0007931,
-	0x13dd9: 0xe0005aa2,
-	0x13de0: 0xe0006656, 0x13de2: 0xe0009f80, 0x13de3: 0xe0004d65,
-	0x13de6: 0xe0006007,
-	0x13de8: 0xe000936f, 0x13dea: 0xe0006736,
-	0x13def: 0xe0003eef,
-	0x13df0: 0xe00097d3, 0x13df1: 0xe000488f, 0x13df3: 0xe00065e4,
-	0x13df5: 0xe0006c5a,
-	0x13df8: 0xe0008465,
-	0x13dfd: 0xe0004ab2,
-	// Block 0x4f8, offset 0x13e00
-	0x13e01: 0xe0007c39, 0x13e03: 0xe0009cf6,
-	0x13e04: 0xe0004b0a, 0x13e05: 0xe0008db0,
-	0x13e0a: 0xe00047c0,
-	0x13e1c: 0xe0004477, 0x13e1d: 0xe0009c0e, 0x13e1e: 0xe000540e,
-	0x13e21: 0xe0004976, 0x13e22: 0xe0007796,
-	0x13e28: 0xe00063b0, 0x13e2a: 0xe0009058, 0x13e2b: 0xe00065e7,
-	0x13e2d: 0xe00045fc, 0x13e2f: 0xe0004fe9,
-	0x13e34: 0xe0009645, 0x13e35: 0xe0007bd2,
-	0x13e3d: 0xe0005133,
-	// Block 0x4f9, offset 0x13e40
-	0x13e42: 0xe00071de,
-	0x13e52: 0xe0009402,
-	0x13e55: 0xe0009dd9,
-	0x13e59: 0xe0006575,
-	0x13e5e: 0xe0007f59,
-	0x13e62: 0xe000750a, 0x13e63: 0xe00083a5,
-	0x13e67: 0xe00052e7,
-	0x13e6d: 0xe00087b4,
-	0x13e70: 0xe0005960, 0x13e71: 0xe00098dc, 0x13e72: 0xe0004f2d,
-	0x13e74: 0xe000755e,
-	0x13e7d: 0xe0008638,
-	// Block 0x4fa, offset 0x13e80
-	0x13e88: 0xe000551f, 0x13e89: 0xe0007e4b, 0x13e8a: 0xe00087b8, 0x13e8b: 0xe0009405,
-	0x13e8c: 0xe0008251, 0x13e8d: 0xe000607a, 0x13e8e: 0xe0008ab6,
-	0x13e92: 0xe0008ab9,
-	0x13e96: 0xe0009773, 0x13e97: 0xe000a36f,
-	0x13ea2: 0xe00092d3, 0x13ea3: 0xe0003f33,
-	0x13ea4: 0xe000447a, 0x13ea5: 0xe0006c9c,
-	0x13ea9: 0xe0005bdb, 0x13eaa: 0xe0005356,
-	0x13eac: 0xe0006ddd,
-	0x13eb2: 0xe0008820,
-	0x13eb4: 0xe0005166, 0x13eb5: 0xe000a30f, 0x13eb6: 0xe0005afd, 0x13eb7: 0xe000a08c,
-	0x13eb8: 0xe00067bb, 0x13eb9: 0xe0005750,
-	// Block 0x4fb, offset 0x13ec0
-	0x13ec3: 0xe000754a,
-	0x13ec7: 0xe0006ee8,
-	0x13ec9: 0xe0009531, 0x13ecb: 0xe00092d6,
-	0x13ecd: 0xe000885f,
-	0x13ed0: 0xe000a07b, 0x13ed2: 0xe0006bc7,
-	0x13edc: 0xe0009408, 0x13ede: 0xe00078fd,
-	0x13ee2: 0xe0009d98,
-	0x13eea: 0xe0005792, 0x13eeb: 0xe0007ff3,
-	0x13eec: 0xe000835d, 0x13eee: 0xe00092d9, 0x13eef: 0xe0009fb5,
-	0x13ef1: 0xe0005f7f, 0x13ef2: 0xe0004e68,
-	0x13ef4: 0xe0005640, 0x13ef5: 0xe0004069,
-	// Block 0x4fc, offset 0x13f00
-	0x13f00: 0xe0007468, 0x13f01: 0xe000a47e, 0x13f03: 0xe0007027,
-	0x13f05: 0xe00076d6, 0x13f07: 0xe000900c,
-	0x13f09: 0xe0007e4e, 0x13f0b: 0xe00069e7,
-	0x13f0c: 0xe00058e2, 0x13f0d: 0xe0008ba8, 0x13f0e: 0xe00073d6, 0x13f0f: 0xe000547c,
-	0x13f10: 0xe00058e5, 0x13f11: 0xe0004d4e,
-	0x13f17: 0xe0006d47,
-	0x13f18: 0xe00087bc,
-	0x13f1c: 0xe00063b3, 0x13f1d: 0xe000962d,
-	0x13f23: 0xe0008922,
-	0x13f24: 0xe0006827, 0x13f26: 0xe000491f, 0x13f27: 0xe00090f3,
-	0x13f2a: 0xe0007bd5,
-	0x13f2d: 0xe0004599,
-	0x13f35: 0xe000900f,
-	0x13f3f: 0xe0004b6a,
-	// Block 0x4fd, offset 0x13f40
-	0x13f47: 0xe0006407,
-	0x13f4d: 0xe00052b7,
-	0x13f50: 0xe000413f, 0x13f51: 0xe00098fb, 0x13f52: 0xe0006837,
-	0x13f54: 0xe000931b, 0x13f57: 0xe0007ee1,
-	0x13f5c: 0xe000a2e6, 0x13f5e: 0xe0004ad2, 0x13f5f: 0xe0008982,
-	0x13f74: 0xe00055ef, 0x13f75: 0xe000622b, 0x13f77: 0xe000447d,
-	0x13f78: 0xe0005f9b, 0x13f7a: 0xe00078c5,
-	0x13f7f: 0xe00085a4,
-	// Block 0x4fe, offset 0x13f80
-	0x13f80: 0xe0003f4b, 0x13f81: 0xe0008d60,
-	0x13f85: 0xe0004097,
-	0x13f89: 0xe0009e9c, 0x13f8b: 0xe0009a86,
-	0x13f8e: 0xe0006937, 0x13f8f: 0xe00069b0,
-	0x13f90: 0xe0006a03, 0x13f92: 0xe0008af8,
-	0x13f97: 0xe0004224,
-	0x13f9b: 0xe0007636,
-	0x13f9e: 0xe0007d49,
-	0x13fa2: 0xe0005f83,
-	0x13fa4: 0xe0004892, 0x13fa5: 0xe0006f28, 0x13fa6: 0xe00087c0,
-	0x13fb7: 0xe000a100,
-	0x13fb8: 0xe00047f9,
-	0x13fbc: 0xe0006233, 0x13fbe: 0xe0005c5d,
-	// Block 0x4ff, offset 0x13fc0
-	0x13fc0: 0xe0007f25, 0x13fc3: 0xe000939b,
-	0x13fc5: 0xe000522c,
-	0x13fcb: 0xe0008165,
-	0x13fd1: 0xe0006a7b, 0x13fd3: 0xe00085a8,
-	0x13fd5: 0xe000918b, 0x13fd6: 0xe0006de0,
-	0x13fd8: 0xe0005bdf, 0x13fd9: 0xe00045ea, 0x13fda: 0xe0008985, 0x13fdb: 0xe0006b53,
-	0x13fdc: 0xe0009ca2,
-	0x13ff3: 0xe00077d1,
-	0x13ff6: 0xe0004895, 0x13ff7: 0xe0006c5d,
-	0x13ff9: 0xe0006de3,
-	// Block 0x500, offset 0x14000
-	0x14006: 0xe0007eed,
-	0x1400c: 0xe00087c4, 0x1400f: 0xe0009f18,
-	0x14011: 0xe000863c, 0x14012: 0xe0006324,
-	0x14017: 0xe0009ecc,
-	0x1401f: 0xe0009649,
-	0x14024: 0xe000698c, 0x14025: 0xe0008824,
-	0x1402a: 0xe0009a65,
-	0x14032: 0xe000622f,
-	0x14038: 0xe000409a, 0x14039: 0xe0008fda, 0x1403a: 0xe0007d31,
-	0x1403c: 0xe0003fab, 0x1403d: 0xe0008988,
-	// Block 0x501, offset 0x14040
-	0x14044: 0xe00056b9, 0x14046: 0xe0008fde,
-	0x1404f: 0xe00071b4,
-	0x14050: 0xe000940b,
-	0x14055: 0xe0004501,
-	0x14058: 0xe000940e, 0x14059: 0xe00095cf, 0x1405a: 0xe0008406,
-	0x1405e: 0xe0006eec, 0x1405f: 0xe0004fc1,
-	0x14060: 0xe00087c8, 0x14061: 0xe0004cae, 0x14062: 0xe00085ac, 0x14063: 0xe000918f,
-	0x14064: 0xe0004cb1, 0x14066: 0xe0004ba2, 0x14067: 0xe0004678,
-	0x14068: 0xe0005ce4, 0x1406a: 0xe0008640, 0x1406b: 0xe00069eb,
-	0x1406c: 0xe0005268, 0x1406e: 0xe0004423, 0x1406f: 0xe0008e52,
-	// Block 0x502, offset 0x14080
-	0x14088: 0xe0007766, 0x14089: 0xe000702a, 0x1408a: 0xe000554f, 0x1408b: 0xe00045c3,
-	0x1408d: 0xe0005136,
-	0x14094: 0xe00071e2, 0x14097: 0xe0008895,
-	0x1409b: 0xe0004f31,
-	0x1409c: 0xe0009be7, 0x1409d: 0xe0007c11,
-	0x140a4: 0xe000684f,
-	0x140ab: 0xe000931e,
-	0x140ac: 0xe0009321, 0x140ae: 0xe0007e51,
-	0x140b0: 0xe000a1d3,
-	0x140b5: 0xe00040ef,
-	0x140bc: 0xe0009631, 0x140be: 0xe00089fc,
-	// Block 0x503, offset 0x140c0
-	0x140ca: 0xe000603b,
-	0x140cc: 0xe0004228,
-	0x140d4: 0xe0007b51, 0x140d6: 0xe0006d38, 0x140d7: 0xe0008416,
-	0x140da: 0xe0009411, 0x140db: 0xe0005ed3,
-	0x140df: 0xe00068ef,
-	0x140e1: 0xe0008217, 0x140e3: 0xe0009f84,
-	0x140e4: 0xe000a26f, 0x140e7: 0xe000402e,
-	0x140ec: 0xe000a045, 0x140ed: 0xe0008d34,
-	0x140f0: 0xe000812d,
-	// Block 0x504, offset 0x14100
-	0x14103: 0xe00089a0,
-	0x14107: 0xe0006abb,
-	0x14108: 0xe0005563, 0x1410a: 0xe00078a6, 0x1410b: 0xe0005a46,
-	0x1410c: 0xe00059de,
-	0x14111: 0xe0008500,
-	0x14116: 0xe00078a9, 0x14117: 0xe0004065,
-	0x14118: 0xe00083a9,
-	0x1411c: 0xe0005069, 0x1411d: 0xe0005a4a, 0x1411e: 0xe0007b55, 0x1411f: 0xe00067e7,
-	0x14121: 0xe00042f0, 0x14122: 0xe0009aeb,
-	0x14124: 0xe00057c7, 0x14126: 0xe00093a7,
-	0x14128: 0xe0008f36,
-	0x14136: 0xe0008dd4,
-	0x1413b: 0xe0005964,
-	// Block 0x505, offset 0x14140
-	0x14143: 0xe0004e87,
-	0x14144: 0xe000a2de,
-	0x1414f: 0xe0008b80,
-	0x14150: 0xe0005795, 0x14153: 0xe00050b8,
-	0x14154: 0xe0007148,
-	0x14158: 0xe0008a00, 0x14159: 0xe000530b,
-	0x14165: 0xe0006a7f,
-	0x1416a: 0xe0005697, 0x1416b: 0xe00085b0,
-	0x14175: 0xe000916f, 0x14176: 0xe000a1d7,
-	0x14178: 0xe00096eb, 0x1417a: 0xe000506d,
-	// Block 0x506, offset 0x14180
-	0x14182: 0xe000a3b1,
-	0x14184: 0xe0008abc,
-	0x1418a: 0xe000a167,
-	0x1418c: 0xe000665a,
-	0x14191: 0xe0003ef3, 0x14192: 0xe0003ef7,
-	0x14195: 0xe0008db4,
-	0x1419b: 0xe00046e8,
-	0x1419e: 0xe00053ee,
-	0x141a0: 0xe000678f, 0x141a2: 0xe00054ec, 0x141a3: 0xe0009aee,
-	0x141aa: 0xe000569a,
-	0x141b0: 0xe0007408, 0x141b1: 0xe0008f3a, 0x141b2: 0xe0007494,
-	0x141b5: 0xe000467c, 0x141b7: 0xe0006b7b,
-	0x141bc: 0xe0005339, 0x141bd: 0xe0008e9a, 0x141be: 0xe000539a, 0x141bf: 0xe0008e56,
-	// Block 0x507, offset 0x141c0
-	0x141f7: 0xe0008361,
-	// Block 0x508, offset 0x14200
-	0x14200: 0xe0005d78, 0x14203: 0xe0006b37,
-	0x14208: 0xe0009c62, 0x14209: 0xe0009a0b, 0x1420a: 0xe00067eb, 0x1420b: 0xe0004031,
-	0x1420e: 0xe000477d, 0x1420f: 0xe0007ee5,
-	0x14211: 0xe0009c3e, 0x14212: 0xe0009c42, 0x14213: 0xe0003e3f,
-	0x14214: 0xe0005e3b,
-	0x14218: 0xe0003f4f,
-	0x1421f: 0xe00065ea,
-	0x14223: 0xe0003dc7,
-	0x14224: 0xe0009cd2, 0x14225: 0xe00060f7,
-	0x14228: 0xe0004a88, 0x14229: 0xe0005e5b, 0x1422b: 0xe0004505,
-	0x1422c: 0xe0005426, 0x1422d: 0xe00054bf,
-	0x14231: 0xe0007686,
-	0x14236: 0xe0008fe2,
-	0x14239: 0xe000754e, 0x1423b: 0xe00076aa,
-	0x1423c: 0xe0007262, 0x1423d: 0xe000a0b8, 0x1423e: 0xe00075c6,
-	// Block 0x509, offset 0x14240
-	0x14243: 0xe0004190,
-	0x14247: 0xe00072a2,
-	0x14248: 0xe0007dbb, 0x1424a: 0xe000a1ef, 0x1424b: 0xe0004210,
-	0x1424c: 0xe000539e, 0x1424d: 0xe0005169,
-	0x14253: 0xe0004046,
-	0x14254: 0xe0009cd6, 0x14255: 0xe0004a12, 0x14256: 0xe0009881,
-	0x1425a: 0xe0004ab5,
-	0x1425c: 0xe000464c, 0x1425e: 0xe0009cbe,
-	0x14260: 0xe0004a49, 0x14261: 0xe00090f7, 0x14262: 0xe000615f,
-	0x14265: 0xe0004f75,
-	// Block 0x50a, offset 0x14280
-	0x1429c: 0xe00063b6,
-	0x142a1: 0xe00090fb,
-	0x142a4: 0xe00095d2,
-	0x142a8: 0xe0007397, 0x142aa: 0xe00098ff,
-	0x142ae: 0xe00079d4, 0x142af: 0xe0008c97,
-	0x142b2: 0xe000600b,
-	0x142bb: 0xe0008925,
-	0x142bf: 0xe000718a,
-	// Block 0x50b, offset 0x142c0
-	0x142c0: 0xe0009687, 0x142c2: 0xe0009b31,
-	0x142c4: 0xe00063b9,
-	0x142cb: 0xe00057ca,
-	0x142cc: 0xe0005b0b, 0x142cd: 0xe0003faf,
-	0x142d0: 0xe0009c46,
-	0x142d8: 0xe0009f9c, 0x142db: 0xe0009a0e,
-	0x142dc: 0xe0009cda, 0x142dd: 0xe0006b3b, 0x142de: 0xe0006f9d, 0x142df: 0xe000908b,
-	0x142e1: 0xe00052a0, 0x142e2: 0xe0007cfd, 0x142e3: 0xe0008d38,
-	0x142e4: 0xe0008862,
-	0x142ea: 0xe000607d,
-	0x142ec: 0xe0009450,
-	0x142f0: 0xe0007f75, 0x142f2: 0xe0006e37, 0x142f3: 0xe0008d3c,
-	0x142f4: 0xe00065ed, 0x142f5: 0xe0005897, 0x142f6: 0xe0005139, 0x142f7: 0xe0009ca6,
-	0x142f8: 0xe0005823,
-	0x142fc: 0xe00084a1, 0x142fd: 0xe000746c,
-	// Block 0x50c, offset 0x14300
-	0x14304: 0xe0008898, 0x14305: 0xe0007bd8, 0x14306: 0xe000585b,
-	0x1430a: 0xe00050a3, 0x1430b: 0xe0006de6,
-	0x1430d: 0xe000a24f, 0x1430e: 0xe0004396,
-	0x14311: 0xe0004d23,
-	0x14314: 0xe0004184, 0x14315: 0xe0007c69, 0x14317: 0xe0007a56,
-	0x14318: 0xe000732d, 0x14319: 0xe0004afa, 0x1431b: 0xe0008865,
-	0x1431c: 0xe0008365,
-	0x14323: 0xe0005930,
-	0x14324: 0xe0009853, 0x14327: 0xe0006de9,
-	0x14328: 0xe0006dec, 0x14329: 0xe00078ac, 0x1432a: 0xe0009e20,
-	0x14330: 0xe0006f75, 0x14331: 0xe0007f29, 0x14333: 0xe000a421,
-	0x14334: 0xe0005715, 0x14336: 0xe000807a, 0x14337: 0xe0005643,
-	0x14338: 0xe0005646, 0x14339: 0xe0009453, 0x1433b: 0xe000908f,
-	0x1433c: 0xe0008b84,
-	// Block 0x50d, offset 0x14340
-	0x14340: 0xe0008255, 0x14341: 0xe0007236,
-	0x14344: 0xe0007c9d, 0x14345: 0xe000718d, 0x14346: 0xe0008dd8, 0x14347: 0xe0004426,
-	0x14349: 0xe00095a2, 0x1434b: 0xe0008b50,
-	0x1434c: 0xe00081d8, 0x1434d: 0xe0007935, 0x1434e: 0xe0008468,
-	0x14355: 0xe0008928, 0x14356: 0xe0006def,
-	0x14359: 0xe000715c, 0x1435a: 0xe0004680, 0x1435b: 0xe0009414,
-	0x1435c: 0xe00082c1, 0x1435d: 0xe0007959, 0x1435e: 0xe00043ba,
-	0x14362: 0xe00058e8, 0x14363: 0xe0004d83,
-	0x14368: 0xe0007bdb, 0x14369: 0xe0007bde, 0x1436a: 0xe0006af7,
-	0x1436f: 0xe0005d7c,
-	0x14370: 0xe000645f, 0x14372: 0xe0007c6d,
-	0x14376: 0xe00055f3, 0x14377: 0xe0005732,
-	0x14379: 0xe0005ebf, 0x1437a: 0xe0005cbb, 0x1437b: 0xe00085b4,
-	// Block 0x50e, offset 0x14380
-	0x14380: 0xe0006df2,
-	0x14384: 0xe0006c9f, 0x14385: 0xe0006853, 0x14386: 0xe00087cc, 0x14387: 0xe0008d40,
-	0x14388: 0xe0009945, 0x14389: 0xe0005b00,
-	0x1438c: 0xe0008afb, 0x1438d: 0xe000460c, 0x1438e: 0xe0006857, 0x1438f: 0xe00065f0,
-	0x14391: 0xe00086a8, 0x14393: 0xe00077d4,
-	0x14394: 0xe0008afe, 0x14396: 0xe000597c,
-	0x14399: 0xe000776a,
-	0x1439c: 0xe00068d3, 0x1439e: 0xe0009bcc,
-	0x143a3: 0xe0007c85,
-	0x143a6: 0xe000665e, 0x143a7: 0xe0005d2f,
-	0x143aa: 0xe0007f91,
-	0x143b0: 0xe00067bf, 0x143b2: 0xe0005673,
-	0x143b8: 0xe0009948, 0x143b9: 0xe0006163,
-	0x143bd: 0xe0008868,
-	// Block 0x50f, offset 0x143c0
-	0x143c2: 0xe0005507,
-	0x143c4: 0xe0007330, 0x143c6: 0xe0009285,
-	0x143c8: 0xe00055f7, 0x143c9: 0xe0007369,
-	0x143cc: 0xe0006273,
-	0x143d1: 0xe0009237,
-	0x143d6: 0xe00087d0,
-	0x143da: 0xe0008828, 0x143db: 0xe0008644,
-	0x143dc: 0xe00087d4, 0x143dd: 0xe0009147, 0x143de: 0xe0006578,
-	0x143e0: 0xe0004480, 0x143e1: 0xe0005ddb, 0x143e2: 0xe0005b7f,
-	0x143e6: 0xe0008648,
-	0x143e8: 0xe00076fe, 0x143e9: 0xe0009e40,
-	0x143ed: 0xe00080dd,
-	0x143f3: 0xe0004b6e,
-	0x143f4: 0xe000a12f, 0x143f5: 0xe0004ea9, 0x143f7: 0xe00080e1,
-	0x143fa: 0xe0005a6a,
-	0x143fc: 0xe0004f79,
-	// Block 0x510, offset 0x14400
-	0x14400: 0xe000516c, 0x14401: 0xe0009b3a,
-	0x14404: 0xe0009a89, 0x14405: 0xe000730e,
-	0x1440b: 0xe0009fb8,
-	0x1440d: 0xe000723a, 0x1440f: 0xe000456d,
-	0x14418: 0xe0009324,
-	0x14420: 0xe0004946, 0x14423: 0xe0007ea2,
-	0x14426: 0xe0009456,
-	0x14428: 0xe0003e93, 0x1442b: 0xe000494a,
-	0x1442c: 0xe000410b, 0x1442d: 0xe000998f,
-	0x14431: 0xe000516f,
-	0x14434: 0xe00065f3,
-	0x14438: 0xe0009b8c, 0x14439: 0xe0004610,
-	// Block 0x511, offset 0x14440
-	0x14441: 0xe0003ff7, 0x14443: 0xe0004f7d,
-	0x14446: 0xe00090ff,
-	0x1444b: 0xe0007d9a,
-	0x1444d: 0xe00064d3,
-	0x14450: 0xe0003f53, 0x14453: 0xe0009c4a,
-	0x14459: 0xe0007dbe,
-	0x1445c: 0xe000513c, 0x1445d: 0xe0004922, 0x1445e: 0xe0007901,
-	0x14460: 0xe0009b90, 0x14461: 0xe0007dc1,
-	0x1446d: 0xe0004925, 0x1446e: 0xe0004928,
-	0x14471: 0xe0006b57, 0x14472: 0xe000889b, 0x14473: 0xe0007f79,
-	0x14475: 0xe0007c89, 0x14476: 0xe0006c60,
-	0x1447a: 0xe000779a, 0x1447b: 0xe0007c71,
-	0x1447f: 0xe0009ddd,
-	// Block 0x512, offset 0x14480
-	0x14480: 0xe000a048, 0x14481: 0xe0009ee0, 0x14482: 0xe00087d8, 0x14483: 0xe00042f4,
-	0x14485: 0xe0009d32, 0x14486: 0xe0006ef0,
-	0x14488: 0xe0006df5, 0x1448a: 0xe0007c3d,
-	0x1448c: 0xe0006d1f, 0x1448d: 0xe0004ab8, 0x1448e: 0xe0004d26, 0x1448f: 0xe0009d46,
-	0x14490: 0xe00077d7, 0x14491: 0xe00079d8, 0x14492: 0xe0005f3b, 0x14493: 0xe00051cc,
-	0x14496: 0xe0005f5f, 0x14497: 0xe00098b2,
-	0x14498: 0xe00055fb,
-	0x1449e: 0xe000727e,
-	0x144a1: 0xe000a547, 0x144a3: 0xe00070f4,
-	0x144a6: 0xe0009d9b,
-	0x144ab: 0xe000640a,
-	0x144ad: 0xe000528b, 0x144ae: 0xe000a2c4,
-	0x144b0: 0xe0009f1c,
-	0x144b7: 0xe00072c6,
-	0x144b8: 0xe00042f8, 0x144b9: 0xe0009850, 0x144bb: 0xe0006636,
-	0x144bf: 0xe000821a,
-	// Block 0x513, offset 0x144c0
-	0x144c2: 0xe0005753,
-	0x144c6: 0xe00045c6, 0x144c7: 0xe000950d,
-	0x144c8: 0xe0004338, 0x144cb: 0xe000702d,
-	0x144cc: 0xe000886b, 0x144cd: 0xe0007387, 0x144ce: 0xe00071e6,
-	0x144d2: 0xe000795d, 0x144d3: 0xe000864c,
-	0x144d4: 0xe000723e,
-	0x144d8: 0xe0007d01, 0x144d9: 0xe00068f3, 0x144da: 0xe00085b8,
-	0x144de: 0xe0005809,
-	0x144e5: 0xe000a04b, 0x144e6: 0xe0009327, 0x144e7: 0xe0004429,
-	0x144eb: 0xe00085bc,
-	0x144ef: 0xe0009ea0,
-	0x144f0: 0xe0006662, 0x144f1: 0xe000569d, 0x144f3: 0xe0006b7f,
-	0x144f4: 0xe0004684,
-	// Block 0x514, offset 0x14500
-	0x14528: 0xe0009b0f,
-	0x1452d: 0xe00086d8, 0x1452f: 0xe000683b,
-	0x14531: 0xe00097d6, 0x14532: 0xe000558f,
-	0x14536: 0xe000492b,
-	0x1453a: 0xe0007498,
-	0x1453c: 0xe0006e3a, 0x1453f: 0xe000612f,
-	// Block 0x515, offset 0x14540
-	0x14542: 0xe0005798,
-	0x14544: 0xe0009aca, 0x14547: 0xe0009ac7,
-	0x14549: 0xe000579b, 0x1454b: 0xe0007110,
-	0x1455b: 0xe000657b,
-	0x1455c: 0xe00060d3, 0x1455f: 0xe0007064,
-	0x14561: 0xe0006ceb, 0x14562: 0xe0004cb4,
-	0x14566: 0xe0008650, 0x14567: 0xe0006cef,
-	0x1456a: 0xe0008169, 0x1456b: 0xe00074c7,
-	0x1456d: 0xe00095e9, 0x1456e: 0xe0007f7d, 0x1456f: 0xe0005f3f,
-	0x14571: 0xe0006cf3,
-	0x14574: 0xe0008056,
-	0x1457b: 0xe0009193,
-	0x1457c: 0xe0006739, 0x1457d: 0xe0009a68, 0x1457e: 0xe0007068,
-	// Block 0x516, offset 0x14580
-	0x14583: 0xe00047c3,
-	0x14589: 0xe0009de1, 0x1458a: 0xe0007470,
-	0x1458c: 0xe0008059,
-	0x14590: 0xe0008e9e, 0x14592: 0xe0004e72, 0x14593: 0xe0007190,
-	0x14594: 0xe0009a8c, 0x14595: 0xe0008b88,
-	0x14598: 0xe0007590, 0x1459a: 0xe000a32a,
-	0x1459e: 0xe00085c0,
-	0x145a0: 0xe000620f,
-	0x145a6: 0xe00083ad, 0x145a7: 0xe0007dc4,
-	0x145a8: 0xe0004650, 0x145aa: 0xe0004d93,
-	0x145ac: 0xe000a07e, 0x145ae: 0xe0009197,
-	0x145b0: 0xe0008654, 0x145b1: 0xe000a372, 0x145b3: 0xe0005071,
-	0x145b9: 0xe0005075,
-	0x145bc: 0xe000a534, 0x145bd: 0xe0004a4c,
-	// Block 0x517, offset 0x145c0
-	0x145c2: 0xe0007905,
-	0x145c5: 0xe0005a26,
-	0x145c8: 0xe0006e3d, 0x145c9: 0xe0004b46, 0x145cb: 0xe0004a25,
-	0x145cc: 0xe0008ea2, 0x145cd: 0xe0006a83,
-	0x145d0: 0xe0008011, 0x145d1: 0xe0004cb7, 0x145d2: 0xe0007aaa,
-	0x145d4: 0xe0007939, 0x145d5: 0xe0005172, 0x145d7: 0xe0009de5,
-	0x145dc: 0xe00076da, 0x145de: 0xe0008f3e,
-	// Block 0x518, offset 0x14600
-	0x14616: 0xe0006df8, 0x14617: 0xe0004abb,
-	0x14618: 0xe000475d, 0x14619: 0xe0009de9,
-	0x1461d: 0xe0009b68,
-	0x14623: 0xe00072ca,
-	0x14625: 0xe00062b8,
-	0x14628: 0xe0009f88,
-	0x1462c: 0xe00059a7, 0x1462d: 0xe00074b5, 0x1462e: 0xe0009b13,
-	0x14630: 0xe000851c, 0x14631: 0xe000968a, 0x14633: 0xe00095a5,
-	0x14634: 0xe0006ef4,
-	0x14639: 0xe0008131,
-	// Block 0x519, offset 0x14640
-	0x14641: 0xe0005ec3,
-	0x14644: 0xe00097e8,
-	0x14648: 0xe000492e, 0x14649: 0xe0004348,
-	0x1464f: 0xe00040c4,
-	0x14650: 0xe0008abf, 0x14651: 0xe0004e3b, 0x14652: 0xe0004898,
-	0x14655: 0xe0003d6f,
-	0x14658: 0xe00097eb, 0x14659: 0xe00063bc, 0x1465b: 0xe000676f,
-	0x1465c: 0xe0009b94, 0x1465d: 0xe000968d, 0x1465e: 0xe00096ab, 0x1465f: 0xe000673c,
-	0x14662: 0xe00061af,
-	0x14668: 0xe0006f10, 0x1466a: 0xe00070f8,
-	0x1466d: 0xe0009d7a, 0x1466e: 0xe0005ed7,
-	0x14671: 0xe000535a,
-	0x14678: 0xe000964d, 0x1467b: 0xe0009c66,
-	0x1467d: 0xe0009ed0, 0x1467f: 0xe0008b54,
-	// Block 0x51a, offset 0x14680
-	0x14681: 0xe000667a, 0x14682: 0xe0006bcf, 0x14683: 0xe000736c,
-	0x14684: 0xe00056dd, 0x14685: 0xe0009459,
-	0x14688: 0xe0006213, 0x1468b: 0xe0005439,
-	0x1468d: 0xe00045ed, 0x1468e: 0xe0004cba, 0x1468f: 0xe0004cbd,
-	0x14691: 0xe00065f6,
-	0x14696: 0xe0005d41,
-	0x14698: 0xe00093ab, 0x14699: 0xe0009993, 0x1469b: 0xe00065f9,
-	0x146ab: 0xe00040f3,
-	0x146ad: 0xe0008bc0,
-	0x146b0: 0xe00052eb,
-	0x146b5: 0xe0007d35, 0x146b6: 0xe0009417, 0x146b7: 0xe0006c63,
-	0x146b8: 0xe0006abf,
-	0x146be: 0xe000533c,
-	// Block 0x51b, offset 0x146c0
-	0x146c0: 0xe0005b0f, 0x146c1: 0xe00078af, 0x146c2: 0xe0008f42, 0x146c3: 0xe0009acd,
-	0x146c4: 0xe00093af, 0x146c5: 0xe000489b,
-	0x146ca: 0xe000a141,
-	0x146cc: 0xe0006e84, 0x146cd: 0xe000a312, 0x146ce: 0xe0005968, 0x146cf: 0xe0008299,
-	0x146d2: 0xe000974b,
-	0x146d5: 0xe00047c6, 0x146d7: 0xe0009e24,
-	0x146d8: 0xe000533f, 0x146da: 0xe00042fc, 0x146db: 0xe00075b6,
-	0x146df: 0xe0009534,
-	0x146e2: 0xe00054c2,
-	0x146e4: 0xe000749c, 0x146e5: 0xe0004cc0,
-	0x146e9: 0xe000a1a7, 0x146ea: 0xe00054c5,
-	// Block 0x51c, offset 0x14700
-	0x14728: 0xe000451d, 0x1472a: 0xe0007dc7,
-	0x14730: 0xe000986e,
-	0x14738: 0xe0009d7d, 0x14739: 0xe00047fc,
-	0x1473c: 0xe0004194, 0x1473f: 0xe00061b3,
-	// Block 0x51d, offset 0x14740
-	0x14740: 0xe00065fc,
-	0x14746: 0xe0005edb,
-	0x1474f: 0xe00057df,
-	0x14751: 0xe000935f, 0x14753: 0xe0006dfb,
-	0x14754: 0xe0009267, 0x14756: 0xe0004688, 0x14757: 0xe00056a0,
-	0x14758: 0xe000442c,
-	0x1475f: 0xe0009af1,
-	0x14761: 0xe0004509, 0x14763: 0xe000603f,
-	0x14765: 0xe00076ae, 0x14766: 0xe0005c60,
-	0x1476b: 0xe000932a,
-	0x1476d: 0xe000821d, 0x1476e: 0xe0005f87,
-	0x14770: 0xe0009288, 0x14772: 0xe0009b3d,
-	0x14774: 0xe00064d7,
-	0x14779: 0xe000a424, 0x1477a: 0xe00046b0, 0x1477b: 0xe00043bd,
-	0x1477d: 0xe0008a44,
-	// Block 0x51e, offset 0x14780
-	0x14782: 0xe0006666,
-	0x14785: 0xe00064ff, 0x14786: 0xe0006d2b,
-	0x1478a: 0xe0006f14, 0x1478b: 0xe0008658,
-	0x1478d: 0xe000a081,
-	0x14790: 0xe0004d29, 0x14792: 0xe0008d64,
-	0x14796: 0xe000682b,
-	0x14798: 0xe0005a4e, 0x14799: 0xe0006fa5, 0x1479a: 0xe0006dfe,
-	0x1479f: 0xe000a1db,
-	0x147a2: 0xe000666a, 0x147a3: 0xe00055bb,
-	0x147a7: 0xe0005777,
-	0x147a8: 0xe000a104, 0x147a9: 0xe0009e50, 0x147aa: 0xe0009865,
-	0x147ae: 0xe0004931, 0x147af: 0xe0008fe6,
-	0x147b1: 0xe0007c91, 0x147b2: 0xe0004198,
-	0x147ba: 0xe00068f7,
-	0x147bc: 0xe0004a5b,
-	// Block 0x51f, offset 0x147c0
-	0x147c1: 0xe0004745, 0x147c2: 0xe000a0a4, 0x147c3: 0xe0005f8b,
-	0x147c4: 0xe00060ab, 0x147c5: 0xe0005ae5,
-	0x147c8: 0xe0006ca2, 0x147cb: 0xe000945c,
-	0x147cd: 0xe0005aba, 0x147ce: 0xe0005494, 0x147cf: 0xe0007d9d,
-	0x147d1: 0xe0005912,
-	0x147d4: 0xe00059aa,
-	0x147d8: 0xe00076de, 0x147da: 0xe00074b8,
-	0x147e6: 0xe0006772,
-	0x147ef: 0xe0005676,
-	0x147f4: 0xe0006043,
-	// Block 0x520, offset 0x14800
-	0x14800: 0xe00096ae, 0x14803: 0xe00099ef,
-	0x1480e: 0xe00086ac,
-	0x14811: 0xe0009a6b, 0x14812: 0xe000640d, 0x14813: 0xe0008220,
-	0x14817: 0xe000526c,
-	0x1481f: 0xe0007242,
-	0x14827: 0xe000889e,
-	0x14828: 0xe0008c9a, 0x1482a: 0xe0007ea5, 0x1482b: 0xe00047c9,
-	0x1482d: 0xe0009d9e, 0x1482e: 0xe0006a87,
-	0x14839: 0xe0006ca5,
-	// Block 0x521, offset 0x14840
-	0x14841: 0xe000434c,
-	0x14846: 0xe0009a8f,
-	0x14849: 0xe00058eb, 0x1484a: 0xe0006775,
-	0x14854: 0xe00095d5, 0x14856: 0xe000923b,
-	0x1485b: 0xe000898b,
-	0x14862: 0xe000780a,
-	0x14864: 0xe00044dd,
-	0x14868: 0xe0004300,
-	0x14877: 0xe00088a1,
-	// Block 0x522, offset 0x14880
-	0x14888: 0xe0008700, 0x1488a: 0xe0005567,
-	0x1488c: 0xe000945f, 0x1488d: 0xe000941a,
-	0x14890: 0xe00071ea, 0x14892: 0xe00062bc, 0x14893: 0xe0006904,
-	0x14895: 0xe0009bcf,
-	0x148a4: 0xe0006778, 0x148a5: 0xe000a1ab,
-	0x148ad: 0xe0004d2c, 0x148ae: 0xe0007909, 0x148af: 0xe000740c,
-	0x148b1: 0xe000556b, 0x148b2: 0xe0007864,
-	0x148b5: 0xe0005e5f,
-	0x148b9: 0xe00041ec, 0x148ba: 0xe0006ca8, 0x148bb: 0xe0005a2a,
-	0x148be: 0xe0009af4,
-	// Block 0x523, offset 0x148c0
-	0x148c7: 0xe0003fb3,
-	0x148c9: 0xe00061c3,
-	0x148cf: 0xe000714c,
-	0x148d2: 0xe0008b8c, 0x148d3: 0xe0006ac3,
-	0x148d7: 0xe0005934,
-	0x148e0: 0xe000a2c7, 0x148e3: 0xe000865c,
-	0x148e7: 0xe0005649,
-	0x148f8: 0xe00056a3, 0x148fb: 0xe0006ac7,
-	// Block 0x524, offset 0x14900
-	0x14925: 0xe000892b, 0x14926: 0xe0007f65, 0x14927: 0xe00063bf,
-	0x14929: 0xe000489e,
-	0x14933: 0xe0006328,
-	0x14934: 0xe0005be3, 0x14936: 0xe000763a,
-	// Block 0x525, offset 0x14940
-	0x14943: 0xe000419c,
-	0x14946: 0xe0008dc0, 0x14947: 0xe0006276,
-	0x14948: 0xe0007252, 0x14949: 0xe0007193,
-	0x1494c: 0xe0006340,
-	0x14952: 0xe000562f,
-	0x14955: 0xe00096b1,
-	0x14958: 0xe00061b7, 0x14959: 0xe00095d8, 0x1495b: 0xe0007d05,
-	0x1495f: 0xe00095db,
-	0x14963: 0xe0004483,
-	0x14966: 0xe00072fa,
-	0x14968: 0xe00072de,
-	0x14970: 0xe00046b4,
-	0x14976: 0xe0007282,
-	0x1497b: 0xe000a0f0,
-	// Block 0x526, offset 0x14980
-	0x14981: 0xe00047ff, 0x14982: 0xe000a427,
-	0x14984: 0xe00095de,
-	0x14991: 0xe00041c8, 0x14993: 0xe0005f9f,
-	0x14994: 0xe0008b90,
-	0x1499d: 0xe0007196, 0x1499e: 0xe00071b7,
-	0x149a0: 0xe00044a1, 0x149a1: 0xe0005d32,
-	0x149a9: 0xe00062e0,
-	0x149ac: 0xe00064f3, 0x149af: 0xe0009b98,
-	0x149b0: 0xe000898e, 0x149b2: 0xe0008259,
-	0x149b7: 0xe0007d39,
-	0x149bb: 0xe0009462,
-	0x149be: 0xe000450d,
-	// Block 0x527, offset 0x149c0
-	0x149c4: 0xe000924b,
-	0x149c9: 0xe0006f18,
-	0x149d6: 0xe0009465,
-	0x149da: 0xe0007216,
-	0x149e1: 0xe0003eab,
-	0x149e4: 0xe0004511,
-	0x149e9: 0xe0005c7b,
-	0x149ec: 0xe0008fea, 0x149ef: 0xe00073a3,
-	0x149f4: 0xe0009bfa, 0x149f5: 0xe0009468,
-	0x149f8: 0xe0007410, 0x149f9: 0xe0005818, 0x149fb: 0xe000452d,
-	0x149ff: 0xe0008223,
-	// Block 0x528, offset 0x14a00
-	0x14a01: 0xe000809d, 0x14a02: 0xe0007ada,
-	0x14a04: 0xe0004399, 0x14a07: 0xe0004934,
-	0x14a13: 0xe0008226,
-	0x14a16: 0xe000780d, 0x14a17: 0xe00048a1,
-	0x14a19: 0xe0008c9d,
-	0x14a26: 0xe000932d,
-	0x14a29: 0xe00061cf, 0x14a2a: 0xe00073b7, 0x14a2b: 0xe0006e88,
-	0x14a30: 0xe0007676, 0x14a31: 0xe0004486, 0x14a32: 0xe0009537, 0x14a33: 0xe0009c6a,
-	0x14a38: 0xe000a432, 0x14a39: 0xe0007fb9, 0x14a3a: 0xe0005679,
-	0x14a3d: 0xe0009c12, 0x14a3f: 0xe0006177,
-	// Block 0x529, offset 0x14a40
-	0x14a47: 0xe0008660,
-	0x14a4f: 0xe0005cbf,
-	0x14a55: 0xe00056a6,
-	0x14a5a: 0xe00073a7, 0x14a5b: 0xe000468c,
-	0x14a5c: 0xe0004937, 0x14a5e: 0xe0005382,
-	// Block 0x52a, offset 0x14a80
-	0x14ab5: 0xe000567c, 0x14ab7: 0xe0005633,
-	0x14ab9: 0xe0009caa, 0x14abb: 0xe0003f37,
-	0x14abd: 0xe00076b2, 0x14abf: 0xe00056bd,
-	// Block 0x52b, offset 0x14ac0
-	0x14ac0: 0xe0007c14, 0x14ac2: 0xe0004a4f,
-	0x14ac4: 0xe000946b,
-	0x14acb: 0xe0005e08,
-	0x14acc: 0xe0007c17, 0x14acf: 0xe0004ada,
-	0x14ad1: 0xe0007810, 0x14ad2: 0xe0004cc3, 0x14ad3: 0xe00056c1,
-	0x14ad7: 0xe00054c8,
-	0x14add: 0xe000673f, 0x14ade: 0xe00083b1, 0x14adf: 0xe0005938,
-	0x14ae4: 0xe000946e, 0x14ae5: 0xe0005b13,
-	0x14ae9: 0xe0006410, 0x14aea: 0xe0005b97,
-	0x14aef: 0xe000495e,
-	0x14af4: 0xe000494e, 0x14af5: 0xe0005b83,
-	0x14afb: 0xe00059ad,
-	0x14afd: 0xe00059bc, 0x14afe: 0xe000a403, 0x14aff: 0xe00059bf,
-	// Block 0x52c, offset 0x14b00
-	0x14b03: 0xe000a253,
-	0x14b05: 0xe0004bb6,
-	0x14b0c: 0xe000a2ea, 0x14b0d: 0xe000698f, 0x14b0e: 0xe00054cb, 0x14b0f: 0xe00086dc,
-	0x14b10: 0xe0005915, 0x14b11: 0xe000a456,
-	0x14b14: 0xe0004143, 0x14b16: 0xe0004d2f,
-	0x14b18: 0xe0005d48, 0x14b1a: 0xe0004248, 0x14b1b: 0xe00050a6,
-	0x14b1c: 0xe00094c9, 0x14b1d: 0xe0007ea8, 0x14b1e: 0xe00086b0,
-	0x14b20: 0xe000a54b,
-	0x14b25: 0xe0004350,
-	0x14b28: 0xe0005031,
-	0x14b2e: 0xe0004fed, 0x14b2f: 0xe00072ce,
-	0x14b32: 0xe0008f46,
-	0x14b34: 0xe0005dde, 0x14b35: 0xe0004ff1, 0x14b36: 0xe00076e2, 0x14b37: 0xe00051a4,
-	0x14b3a: 0xe00064a7, 0x14b3b: 0xe00064db,
-	0x14b3c: 0xe0006279, 0x14b3d: 0xe0005e63, 0x14b3f: 0xe0007d3d,
-	// Block 0x52d, offset 0x14b40
-	0x14b40: 0xe00094b1, 0x14b42: 0xe0008991,
-	0x14b44: 0xe0008b01, 0x14b47: 0xe0007867,
-	0x14b48: 0xe00061c7, 0x14b49: 0xe00096b4, 0x14b4a: 0xe000617b,
-	0x14b4e: 0xe00087dc,
-	0x14b50: 0xe0004dea, 0x14b53: 0xe000442f,
-	0x14b57: 0xe0005175,
-	0x14b59: 0xe00065ff,
-	0x14b60: 0xe0006992, 0x14b62: 0xe00064ab,
-	0x14b6b: 0xe0006a07,
-	0x14b6c: 0xe0007eab, 0x14b6f: 0xe00078b2,
-	0x14b74: 0xe000750e,
-	0x14b78: 0xe000424c, 0x14b79: 0xe0007512, 0x14b7b: 0xe000657e,
-	0x14b7e: 0xe0009c6e,
-	// Block 0x52e, offset 0x14b80
-	0x14b8a: 0xe000886e, 0x14b8b: 0xe00083e2,
-	0x14b8e: 0xe00083e5,
-	0x14b92: 0xe00095a8,
-	0x14b94: 0xe0009601, 0x14b95: 0xe000a4a2, 0x14b97: 0xe0007f5d,
-	0x14b9f: 0xe000846b,
-	0x14ba0: 0xe0009330, 0x14ba1: 0xe00055ff,
-	0x14ba6: 0xe0003e6b, 0x14ba7: 0xe0006afb,
-	0x14ba9: 0xe0004802, 0x14baa: 0xe0008e5a, 0x14bab: 0xe0004515,
-	0x14bac: 0xe00074bb,
-	0x14bb2: 0xe0007c1a,
-	0x14bb6: 0xe000721a, 0x14bb7: 0xe00071ee,
-	// Block 0x52f, offset 0x14bc0
-	0x14bcd: 0xe000579e, 0x14bce: 0xe0005719,
-	0x14bd0: 0xe000600f, 0x14bd2: 0xe00057a2,
-	0x14bd4: 0xe000459d, 0x14bd5: 0xe0003efb,
-	0x14bdc: 0xe00048a4, 0x14bdd: 0xe000943b,
-	0x14be0: 0xe0007414, 0x14be2: 0xe000a144,
-	0x14be5: 0xe0007eae,
-	// Block 0x530, offset 0x14c00
-	0x14c00: 0xe0004ca8, 0x14c01: 0xe0004298, 0x14c02: 0xe0008e24, 0x14c03: 0xe0003d63,
-	0x14c04: 0xe000a1e3, 0x14c05: 0xe00045a1, 0x14c06: 0xe0004820, 0x14c07: 0xe00048a4,
-	0x14c08: 0xe00048a4, 0x14c09: 0xe000435d, 0x14c0a: 0xe0004d4e, 0x14c0b: 0xe000530f,
-	0x14c0c: 0xe0004dd5, 0x14c0d: 0xe0005312, 0x14c0e: 0xe0005315, 0x14c0f: 0xe0005318,
-	0x14c10: 0xe000531b, 0x14c11: 0xe000531e, 0x14c12: 0xe0005321, 0x14c13: 0xe0005324,
-	0x14c14: 0xe00071d6, 0x14c15: 0xe0005342, 0x14c16: 0xe0005346, 0x14c17: 0xe000534a,
-	0x14c18: 0xe0005352, 0x14c19: 0xe0005356, 0x14c1a: 0xe000535a, 0x14c1b: 0xe0005366,
-	0x14c1c: 0xe000536a, 0x14c1d: 0xe000536e, 0x14c1e: 0xe000537a, 0x14c1f: 0xe000537e,
-	0x14c20: 0xe0005382, 0x14c21: 0xe00053b2, 0x14c22: 0xe00053c2, 0x14c23: 0xe00053ce,
-	0x14c24: 0xe00053d2, 0x14c25: 0xe00053e2, 0x14c26: 0xe00053e6, 0x14c27: 0xe00053ea,
-	0x14c28: 0xe00053f2, 0x14c29: 0xe00053f6, 0x14c2a: 0xe00053fa, 0x14c2b: 0xe00053fe,
-	0x14c2c: 0x43219c20, 0x14c2d: 0xe000542a, 0x14c2e: 0xe000543c, 0x14c2f: 0xe000564c,
-	0x14c30: 0xe0005652, 0x14c31: 0xe0005655, 0x14c32: 0xe000565e, 0x14c33: 0xe0005661,
-	0x14c34: 0xe0005664, 0x14c35: 0xe0005667, 0x14c36: 0xe000566a, 0x14c37: 0xe000566d,
-	0x14c38: 0xe0005673, 0x14c39: 0xe0005676, 0x14c3a: 0xe0005679, 0x14c3b: 0xe00056a9,
-	0x14c3c: 0xe00056ad, 0x14c3d: 0xe00056b1, 0x14c3e: 0xe00056b5, 0x14c3f: 0xe00056b9,
-	// Block 0x531, offset 0x14c40
-	0x14c40: 0xe00056bd, 0x14c41: 0xe00056e1, 0x14c42: 0xe00056e5, 0x14c43: 0xe00056e9,
-	0x14c44: 0xe00056f9, 0x14c45: 0xe00056fd, 0x14c46: 0xe0005723, 0x14c47: 0xe0005726,
-	0x14c48: 0xe0005729, 0x14c49: 0xe0005732, 0x14c4a: 0xe00057a6, 0x14c4b: 0xe00057ac,
-	0x14c4c: 0xe00057af, 0x14c4d: 0xe00057b2, 0x14c4e: 0xe00057b5, 0x14c4f: 0xe00057bb,
-	0x14c50: 0xe00057be, 0x14c51: 0xe00057ca, 0x14c52: 0xe0005867, 0x14c53: 0xe000586b,
-	0x14c54: 0xe0005873, 0x14c55: 0xe0005883, 0x14c56: 0xe000588b, 0x14c57: 0xe000588f,
-	0x14c58: 0xe0005893, 0x14c59: 0xe0005897, 0x14c5a: 0xe000519c, 0x14c5b: 0xe0004d5f,
-	0x14c5c: 0xe00071d6, 0x14c5d: 0xe0004d77, 0x14c5e: 0xe0004ee5, 0x14c5f: 0xe0004e14,
-	0x14c60: 0xe0004e35, 0x14c61: 0xe0006cf7, 0x14c62: 0xe0008035, 0x14c63: 0xe0006413,
-	0x14c64: 0xe0005f23, 0x14c65: 0xe000996f, 0x14c66: 0xe0006290, 0x14c67: 0xe0006344,
-	0x14c68: 0xe0009b50, 0x14c69: 0xe0006d7d, 0x14c6a: 0xe000690f, 0x14c6b: 0xe0008ee6,
-	0x14c6c: 0xe00068fb, 0x14c6d: 0xe0006baf, 0x14c6e: 0xe00076ee, 0x14c6f: 0xe0006af3,
-	0x14c70: 0xe00067fb, 0x14c71: 0xe0008d2c, 0x14c72: 0xe000961d, 0x14c73: 0xe0006f5d,
-	0x14c74: 0xe00073e4, 0x14c75: 0xe0005440, 0x14c76: 0xe0005444, 0x14c77: 0xe000544c,
-	0x14c78: 0xe0005454, 0x14c79: 0xe0005458, 0x14c7a: 0xe000545c, 0x14c7b: 0xe000546c,
-	0x14c7c: 0xe0005470, 0x14c7d: 0xe0005474, 0x14c7e: 0xe000547c, 0x14c7f: 0xe000549e,
-	// Block 0x532, offset 0x14c80
-	0x14c80: 0xe00054a1, 0x14c81: 0xe0004ded, 0x14c82: 0xe00054a4, 0x14c83: 0xe00054ad,
-	0x14c84: 0xe00054b3, 0x14c85: 0xe00054b6, 0x14c86: 0xe00054bf, 0x14c87: 0xe00054c5,
-	0x14c88: 0xe00054c8, 0x14c89: 0xe00054cb, 0x14c8a: 0xe00054ef, 0x14c8b: 0xe00054f3,
-	0x14c8c: 0xe00054f7, 0x14c8d: 0xe0005503, 0x14c8e: 0xe0004df4, 0x14c8f: 0xe0005523,
-	0x14c90: 0xe0005527, 0x14c91: 0xe0004df8, 0x14c92: 0xe000552f, 0x14c93: 0xe0005533,
-	0x14c94: 0xe0005537, 0x14c95: 0xe0004dfc, 0x14c96: 0xe000553b, 0x14c97: 0xe000553f,
-	0x14c98: 0xe0005547, 0x14c99: 0xe0005543, 0x14c9a: 0xe000554b, 0x14c9b: 0xe000554f,
-	0x14c9c: 0xe0005573, 0x14c9d: 0xe0005577, 0x14c9e: 0xe00080b1, 0x14c9f: 0xe000557f,
-	0x14ca0: 0xe0005583, 0x14ca1: 0xe0006af3, 0x14ca2: 0xe0005593, 0x14ca3: 0xe0004e04,
-	0x14ca4: 0xe0004e10, 0x14ca5: 0xe000559b, 0x14ca6: 0xe00055a3, 0x14ca7: 0xe00055b3,
-	0x14ca8: 0xe00055bf, 0x14ca9: 0xe00055c7, 0x14caa: 0xe0004e14, 0x14cab: 0xe00055cf,
-	0x14cac: 0xe00055d3, 0x14cad: 0xe00055d7, 0x14cae: 0xe0009f6c, 0x14caf: 0xe00055df,
-	0x14cb0: 0xe00055e7, 0x14cb1: 0xe00055ef, 0x14cb2: 0xe00055f3, 0x14cb3: 0xe00055f7,
-	0x14cb4: 0xe00055fb, 0x14cb5: 0xe0005637, 0x14cb6: 0xe000563d, 0x14cb7: 0xe0005640,
-	0x14cb8: 0xe0005646, 0x14cb9: 0xe00071ca, 0x14cba: 0xe0005756, 0x14cbb: 0xe0005759,
-	0x14cbc: 0xe000575c, 0x14cbd: 0xe0004e75, 0x14cbe: 0xe0005762, 0x14cbf: 0xe00071d6,
-	// Block 0x533, offset 0x14cc0
-	0x14cc0: 0xe0005765, 0x14cc1: 0xe0005768, 0x14cc2: 0xe0005771, 0x14cc3: 0xe0005774,
-	0x14cc4: 0xe000579e, 0x14cc5: 0xe000a399, 0x14cc6: 0xe00079d4, 0x14cc7: 0xe00057e2,
-	0x14cc8: 0xe0004ea0, 0x14cc9: 0xe00057e8, 0x14cca: 0xe00057ee, 0x14ccb: 0xe00057f1,
-	0x14ccc: 0xe00057f7, 0x14ccd: 0xe00057fd, 0x14cce: 0xe0005803, 0x14ccf: 0xe0004ea3,
-	0x14cd0: 0xe0005809, 0x14cd1: 0xe000581b, 0x14cd2: 0xe000581f, 0x14cd3: 0xe0005823,
-	0x14cd4: 0xe000582f, 0x14cd5: 0xe0005833, 0x14cd6: 0xe0005837, 0x14cd7: 0xe000583f,
-	0x14cd8: 0xe0005847, 0x14cd9: 0xe000584b, 0x14cda: 0xe000584f, 0x14cdb: 0xe0006cf7,
-	0x14cdc: 0xe000585b, 0x14cdd: 0xe00058a6, 0x14cde: 0xe00058ac, 0x14cdf: 0xe00058b2,
-	0x14ce0: 0xe00075a2, 0x14ce1: 0xe00058b8, 0x14ce2: 0xe00058bb, 0x14ce3: 0xe0004eb7,
-	0x14ce4: 0xe00058c7, 0x14ce5: 0xe00058cd, 0x14ce6: 0xe00058d3, 0x14ce7: 0xe00058dc,
-	0x14ce8: 0xe00058df, 0x14ce9: 0xe00058e2, 0x14cea: 0xe00058e8, 0x14ceb: 0xe0004ecc,
-	0x14cec: 0xe0004ed0, 0x14ced: 0xe0005918, 0x14cee: 0xe0005920, 0x14cef: 0xe0005924,
-	0x14cf0: 0xe0005928, 0x14cf1: 0xe0005930, 0x14cf2: 0xe0005934, 0x14cf3: 0xe0005938,
-	0x14cf4: 0xe000596c, 0x14cf5: 0xe0005970, 0x14cf6: 0xe0005978, 0x14cf7: 0xe0005988,
-	0x14cf8: 0xe000598c, 0x14cf9: 0xe0005990, 0x14cfa: 0xe00068ab, 0x14cfb: 0xe00081ae,
-	0x14cfc: 0xe000705c, 0x14cfd: 0xe0007150, 0x14cfe: 0xe0004edf, 0x14cff: 0xe0008190,
-	// Block 0x534, offset 0x14d00
-	0x14d00: 0xe0008664, 0x14d01: 0xe00050e5, 0x14d02: 0xe000906f, 0x14d03: 0xe0005029,
-	0x14d04: 0xe00050bb, 0x14d05: 0xe0005210, 0x14d06: 0xe0009a96, 0x14d07: 0xe00062b4,
-	0x14d08: 0xe0009dc1, 0x14d09: 0xe0003faf, 0x14d0a: 0xe00041bc, 0x14d0b: 0xe00045f0,
-	0x14d0c: 0xe000790d, 0x14d0d: 0x42ab8020, 0x14d0e: 0x43f41c20, 0x14d0f: 0x43f41e20,
-	0x14d10: 0xe000937b, 0x14d11: 0x43f42220, 0x14d12: 0xe0009223, 0x14d13: 0x43f42620,
-	0x14d14: 0x43f42820, 0x14d15: 0xe000a4dd, 0x14d16: 0xe0008441, 0x14d17: 0xe0008081,
-	0x14d18: 0x42f27820, 0x14d19: 0xe00070a4, 0x14d1a: 0xe00068b3, 0x14d1b: 0xe0006298,
-	0x14d1c: 0xe00087d0, 0x14d1d: 0xe000879c, 0x14d1e: 0xe0007bc0, 0x14d1f: 0x43f43e20,
-	0x14d20: 0x430c2420, 0x14d21: 0x43f44220, 0x14d22: 0xe0008859, 0x14d23: 0x43f44620,
-	0x14d24: 0x43f44820, 0x14d25: 0xe0008129, 0x14d26: 0xe0005133, 0x14d27: 0x43f44e20,
-	0x14d28: 0x43f45020, 0x14d29: 0x43f45220, 0x14d2a: 0xe0005f3f, 0x14d2b: 0xe0006739,
-	0x14d2c: 0xe0004650, 0x14d2d: 0xe0009bfa, 0x14d2e: 0xe000540e, 0x14d2f: 0xe0005643,
-	0x14d30: 0xe0005bee, 0x14d31: 0xe0006f81, 0x14d32: 0xe0005b5b, 0x14d33: 0xe0005b63,
-	0x14d34: 0xe0004b16, 0x14d35: 0xe000650f, 0x14d36: 0xe0003e73, 0x14d37: 0xe0009717,
-	0x14d38: 0xe0004c15, 0x14d39: 0xe000621b, 0x14d3a: 0xe0005d44, 0x14d3b: 0xe000955f,
-	0x14d3c: 0x42b8dc20, 0x14d3d: 0xe000a282, 0x14d3e: 0xe0004010, 0x14d3f: 0xe0008bdc,
-	// Block 0x535, offset 0x14d40
-	0x14d40: 0xe0008de8, 0x14d41: 0xe0005e1b, 0x14d42: 0x42cbc420, 0x14d43: 0xe0006959,
-	0x14d44: 0xe0005ad0, 0x14d45: 0xe0009d65, 0x14d46: 0xe000843b, 0x14d47: 0xe0009c2a,
-	0x14d48: 0xe00081b1, 0x14d49: 0x42e45620, 0x14d4a: 0xe00096df, 0x14d4b: 0xe0006548,
-	0x14d4c: 0xe00066fd, 0x14d4d: 0xe0008c4c, 0x14d4e: 0xe0004c87, 0x14d4f: 0xe0007bb4,
-	0x14d50: 0xe00088ec, 0x14d51: 0xe0009479, 0x14d52: 0xe000a11a, 0x14d53: 0xe0008790,
-	0x14d54: 0xe0004499, 0x14d55: 0xe00051e0, 0x14d56: 0xe000867c, 0x14d57: 0xe000553b,
-	0x14d58: 0xe0008d0c, 0x14d59: 0xe00060c7, 0x14d5a: 0xe0006977, 0x14d5b: 0xe00081c3,
-	0x14d5c: 0xe000952b, 0x14d5d: 0x4304f220, 0x14d5e: 0x4304f220, 0x14d5f: 0xe0008453,
-	0x14d60: 0xe0003e8b, 0x14d61: 0xe0006feb, 0x14d62: 0xe000725a, 0x14d63: 0xe0004b3e,
-	0x14d64: 0xe0006632, 0x14d65: 0xe0008c00, 0x14d66: 0x431f6c20, 0x14d67: 0xe0008129,
-	0x14d68: 0xe0004d83, 0x14d69: 0xe0009ddd, 0x14d6a: 0xe0006636, 0x14d6b: 0x42c0ea20,
-	0x14d6c: 0x4885dc20, 0x14d6d: 0x43043020,
-	0x14d70: 0xe0006217, 0x14d71: 0x42a36a20, 0x14d72: 0xe000852c, 0x14d73: 0x429f0020,
-	0x14d74: 0xe00094d1, 0x14d75: 0xe0004c0f, 0x14d76: 0xe0007b09, 0x14d77: 0xe000822d,
-	0x14d78: 0xe0003e73, 0x14d79: 0x42aaaa20, 0x14d7a: 0xe000a3dc, 0x14d7b: 0xe0007911,
-	0x14d7c: 0xe000937b, 0x14d7d: 0xe0006423, 0x14d7e: 0xe000752e, 0x14d7f: 0xe0006427,
-	// Block 0x536, offset 0x14d80
-	0x14d80: 0xe0006515, 0x14d81: 0xe00081de, 0x14d82: 0x42bda420, 0x14d83: 0x42bdb220,
-	0x14d84: 0xe0008ffa, 0x14d85: 0xe0007abf, 0x14d86: 0xe0005aa6, 0x14d87: 0x42c29c20,
-	0x14d88: 0xe0007df1, 0x14d89: 0xe0008bdc, 0x14d8a: 0xe0007885, 0x14d8b: 0xe0008de8,
-	0x14d8c: 0xe0005091, 0x14d8d: 0xe0007df7, 0x14d8e: 0xe0006d77, 0x14d8f: 0x42c8a420,
-	0x14d90: 0xe0007840, 0x14d91: 0xe0009223, 0x14d92: 0xe00053f6, 0x14d93: 0xe0005a86,
-	0x14d94: 0xe000830d, 0x14d95: 0x42d6f220, 0x14d96: 0xe00067fb, 0x14d97: 0xe00057ee,
-	0x14d98: 0x42ddb620, 0x14d99: 0xe00081ab, 0x14d9a: 0xe0009c2a, 0x14d9b: 0xe0008774,
-	0x14d9c: 0xe00081b1, 0x14d9d: 0x42ef4e20, 0x14d9e: 0xe0008245, 0x14d9f: 0xe000611b,
-	0x14da0: 0xe0008441, 0x14da1: 0xe00085f8, 0x14da2: 0x42ea0c20, 0x14da3: 0x42ea7620,
-	0x14da4: 0x42ec3a20, 0x14da5: 0xe00078d1, 0x14da6: 0xe0008081, 0x14da7: 0xe0006bab,
-	0x14da8: 0xe0008ca0, 0x14da9: 0x42ee9420, 0x14daa: 0xe0008e4a, 0x14dab: 0x42f19820,
-	0x14dac: 0x42f56220, 0x14dad: 0xe000867c, 0x14dae: 0x42f8f620, 0x14daf: 0xe000896a,
-	0x14db0: 0xe000553b, 0x14db1: 0xe0006223, 0x14db2: 0xe00081c3, 0x14db3: 0xe000a243,
-	0x14db4: 0xe000a123, 0x14db5: 0x430ef220, 0x14db6: 0xe0003fa3, 0x14db7: 0xe00062ac,
-	0x14db8: 0xe0006feb, 0x14db9: 0xe0008913, 0x14dba: 0xe0008859, 0x14dbb: 0xe0009233,
-	0x14dbc: 0xe000725a, 0x14dbd: 0xe0004d77, 0x14dbe: 0xe0007e39, 0x14dbf: 0xe0004b3e,
-	// Block 0x537, offset 0x14dc0
-	0x14dc0: 0xe0006187, 0x14dc1: 0xe0008c00, 0x14dc2: 0xe0006dd4, 0x14dc3: 0xe0008c70,
-	0x14dc4: 0x43233220, 0x14dc5: 0x4324ec20, 0x14dc6: 0xe00084a1, 0x14dc7: 0xe0004d83,
-	0x14dc8: 0xe00087d0, 0x14dc9: 0x432fb620, 0x14dca: 0xe0009ddd, 0x14dcb: 0x43301620,
-	0x14dcc: 0xe0006636, 0x14dcd: 0xe0008d64, 0x14dce: 0xe00048a4, 0x14dcf: 0x48509420,
-	0x14dd0: 0x48508820, 0x14dd1: 0x4867aa20, 0x14dd2: 0x44773a20, 0x14dd3: 0x44803020,
-	0x14dd4: 0x44807220, 0x14dd5: 0x48a49220, 0x14dd6: 0x48b9a020, 0x14dd7: 0x48fda620,
-	0x14dd8: 0x433e8620, 0x14dd9: 0xe0005719,
-	// Block 0x538, offset 0x14e00
-	0x14e00: 0xe00037d0, 0x14e01: 0xe00037b8, 0x14e02: 0xe00037bc, 0x14e03: 0xe00037c4,
-	0x14e04: 0xe00037d4, 0x14e05: 0xe00037c8, 0x14e06: 0xf0000404, 0x14e07: 0xe00037c0,
-	0x14e08: 0xe00037cc,
-	0x14e10: 0x02bf2e86, 0x14e11: 0x02a7de86,
-	// Block 0x539, offset 0x14e40
-	0x14e40: 0x429c7a20, 0x14e41: 0xe000a16b, 0x14e42: 0x429c8220, 0x14e43: 0x48024420,
-	0x14e44: 0x429ec020, 0x14e45: 0xe0005bee, 0x14e46: 0xe0009757, 0x14e47: 0xe00061d7,
-	0x14e48: 0x42a0f420, 0x14e49: 0xe0006506, 0x14e4a: 0xe0006f81, 0x14e4b: 0xe0006863,
-	0x14e4c: 0x44693c20, 0x14e4d: 0x480c7420, 0x14e4e: 0xe0005b5b, 0x14e4f: 0x42a2a820,
-	0x14e50: 0x42a2c820, 0x14e51: 0xe0004814, 0x14e52: 0x480a3820, 0x14e53: 0x44697220,
-	0x14e54: 0xe0004dd2, 0x14e55: 0xe00083b5, 0x14e56: 0x480a9620, 0x14e57: 0xe0007b05,
-	0x14e58: 0xe0007d09, 0x14e59: 0x429d9820, 0x14e5a: 0xe00051f0, 0x14e5b: 0x42a36a20,
-	0x14e5c: 0x4923be20, 0x14e5d: 0x42a3ea20, 0x14e5e: 0xe00080a9, 0x14e5f: 0x4469be20,
-	0x14e60: 0xe0003d9f, 0x14e61: 0x42a48c20, 0x14e62: 0xe0009c72, 0x14e63: 0xe00067c3,
-	0x14e64: 0x446a2a20, 0x14e65: 0xe0007b09, 0x14e66: 0xe0005b63, 0x14e67: 0xe0004b16,
-	0x14e68: 0xe000822d, 0x14e69: 0xe0009a20, 0x14e6a: 0x42a60c20, 0x14e6b: 0xe0006413,
-	0x14e6c: 0xe000a3d9, 0x14e6d: 0xe000650f, 0x14e6e: 0xe0005e7f, 0x14e6f: 0xe0008bb4,
-	0x14e70: 0xe0008bb0, 0x14e71: 0xe000426c, 0x14e72: 0xe000426c, 0x14e73: 0xe000426c,
-	0x14e74: 0x48145820, 0x14e75: 0xe000a297, 0x14e76: 0xe0004bbe, 0x14e77: 0xe0006e01,
-	0x14e78: 0x4816c620, 0x14e79: 0xe0004a5e, 0x14e7a: 0xe0008d6c, 0x14e7b: 0x42a80c20,
-	0x14e7c: 0x42a93c20, 0x14e7d: 0xe000a4b6, 0x14e7e: 0xe0008718, 0x14e7f: 0xe0008a5f,
-	// Block 0x53a, offset 0x14e80
-	0x14e80: 0xe00071fa, 0x14e81: 0x42a9ec20, 0x14e82: 0xe0005009, 0x14e83: 0xe0004357,
-	0x14e84: 0xe0009c8a, 0x14e85: 0xe0006a17, 0x14e86: 0xe0006a17, 0x14e87: 0xe000a3dc,
-	0x14e88: 0xe0004d52, 0x14e89: 0x42ab6620, 0x14e8a: 0x42ab8420, 0x14e8b: 0xe00050d0,
-	0x14e8c: 0xe0009717, 0x14e8d: 0x42ae2e20, 0x14e8e: 0x42aca220, 0x14e8f: 0xe000641f,
-	0x14e90: 0xe0008664, 0x14e91: 0x42b1dc20, 0x14e92: 0xe0006b83, 0x14e93: 0xe0007030,
-	0x14e94: 0x42b01a20, 0x14e95: 0xe0009f48, 0x14e96: 0x42b06420, 0x14e97: 0xe000623d,
-	0x14e98: 0x42b15820, 0x14e99: 0x4829c820, 0x14e9a: 0x42b1e420, 0x14e9b: 0x42b1ee20,
-	0x14e9c: 0xe0006330, 0x14e9d: 0xe0004edc, 0x14e9e: 0xe0005c8f, 0x14e9f: 0xe00066bb,
-	0x14ea0: 0x482d5020, 0x14ea1: 0x482dd420, 0x14ea2: 0xe000a4e9, 0x14ea3: 0xe0007834,
-	0x14ea4: 0xe00097dc, 0x14ea5: 0x42b3b020, 0x14ea6: 0xe0006362, 0x14ea7: 0x446ddc20,
-	0x14ea8: 0x446df820, 0x14ea9: 0xe0007ab9, 0x14eaa: 0xe0005386, 0x14eab: 0xe0005386,
-	0x14eac: 0x48339020, 0x14ead: 0xe0007cc1, 0x14eae: 0xe00095b1, 0x14eaf: 0xe0004e14,
-	0x14eb0: 0x42b7e620, 0x14eb1: 0x48363020, 0x14eb2: 0x42b7fe20, 0x14eb3: 0x42b80c20,
-	0x14eb4: 0x42bea620, 0x14eb5: 0x42b84420, 0x14eb6: 0x446f0220, 0x14eb7: 0xe00050dc,
-	0x14eb8: 0x42b8dc20, 0x14eb9: 0xe0006d65, 0x14eba: 0x42b91a20, 0x14ebb: 0x483bc820,
-	0x14ebc: 0x42ba8620, 0x14ebd: 0x483bcc20, 0x14ebe: 0x42badc20, 0x14ebf: 0x42bad620,
-	// Block 0x53b, offset 0x14ec0
-	0x14ec0: 0x42baf820, 0x14ec1: 0xe0006e8c, 0x14ec2: 0xe0006c09, 0x14ec3: 0x44705e20,
-	0x14ec4: 0xe0006cdb, 0x14ec5: 0xe0006beb, 0x14ec6: 0xe0005bfa, 0x14ec7: 0x42bcd220,
-	0x14ec8: 0x4470c420, 0x14ec9: 0x48430620, 0x14eca: 0x4470f820, 0x14ecb: 0x42bd6020,
-	0x14ecc: 0xe0006596, 0x14ecd: 0xe0006947, 0x14ece: 0xe00053f2, 0x14ecf: 0x49472420,
-	0x14ed0: 0x42bdfc20, 0x14ed1: 0x48466220, 0x14ed2: 0x48466220, 0x14ed3: 0xe0007593,
-	0x14ed4: 0xe0005145, 0x14ed5: 0xe0005145, 0x14ed6: 0x44718e20, 0x14ed7: 0x48657020,
-	0x14ed8: 0x48c3b420, 0x14ed9: 0xe0009f4c, 0x14eda: 0xe00088b6, 0x14edb: 0x4471c620,
-	0x14edc: 0x42bf3420, 0x14edd: 0xe00080c5, 0x14ede: 0xe0008c1f, 0x14edf: 0x42bff220,
-	0x14ee0: 0xe000764e, 0x14ee1: 0x44727420, 0x14ee2: 0x44723820, 0x14ee3: 0xe000a282,
-	0x14ee4: 0x484da820, 0x14ee5: 0xe00051ac, 0x14ee6: 0xe00081a8, 0x14ee7: 0xe000a20f,
-	0x14ee8: 0x42c29c20, 0x14ee9: 0xe000a20f, 0x14eea: 0xe00057d6, 0x14eeb: 0xe0008bdc,
-	0x14eec: 0xe0009e00, 0x14eed: 0xe0006433, 0x14eee: 0xe0008f1e, 0x14eef: 0xe0005c9f,
-	0x14ef0: 0xe0008de8, 0x14ef1: 0xe0005312, 0x14ef2: 0xe0006b97, 0x14ef3: 0x42c43620,
-	0x14ef4: 0x42c4ba20, 0x14ef5: 0xe0009a3b, 0x14ef6: 0xe0005f67, 0x14ef7: 0xe00075e2,
-	0x14ef8: 0x48561820, 0x14ef9: 0xe00059fa, 0x14efa: 0x42c5f820, 0x14efb: 0xe00066d6,
-	0x14efc: 0xe0006c0f, 0x14efd: 0x42c7c820, 0x14efe: 0x4857e220, 0x14eff: 0xe0008cc8,
-	// Block 0x53c, offset 0x14f00
-	0x14f00: 0x42c78a20, 0x14f01: 0xe0007532, 0x14f02: 0x44745c20, 0x14f03: 0xe0005998,
-	0x14f04: 0x42c8fc20, 0x14f05: 0xe000a406, 0x14f06: 0x42c8ee20, 0x14f07: 0x4474d820,
-	0x14f08: 0xe0005e1b, 0x14f09: 0xe000428c, 0x14f0a: 0x48601420, 0x14f0b: 0xe0004c42,
-	0x14f0c: 0xe000695f, 0x14f0d: 0xe0008ccc, 0x14f0e: 0x44763220, 0x14f0f: 0xe0006959,
-	0x14f10: 0x44761020, 0x14f11: 0x4475c820, 0x14f12: 0xe0005bf1, 0x14f13: 0xe0005b5f,
-	0x14f14: 0xe00093bd, 0x14f15: 0x42cd3820, 0x14f16: 0xe0004e9c, 0x14f17: 0x4487b220,
-	0x14f18: 0xe00053f6, 0x14f19: 0xe0005a86, 0x14f1a: 0x42ce4220, 0x14f1b: 0xe0004c4b,
-	0x14f1c: 0xe0009ab2, 0x14f1d: 0x48678620, 0x14f1e: 0x44769220, 0x14f1f: 0x42cff420,
-	0x14f20: 0x42cf0a20, 0x14f21: 0x42d0a420, 0x14f22: 0xe0005ad0, 0x14f23: 0x4868da20,
-	0x14f24: 0x42d11c20, 0x14f25: 0x42d03e20, 0x14f26: 0x42d22820, 0x14f27: 0x44773a20,
-	0x14f28: 0xe0006751, 0x14f29: 0x42d34620, 0x14f2a: 0xe0004016, 0x14f2b: 0x42d55020,
-	0x14f2c: 0x486d4620, 0x14f2d: 0xe0008bbc, 0x14f2e: 0x44783020, 0x14f2f: 0xe0008e15,
-	0x14f30: 0x48714e20, 0x14f31: 0xe0009dfd, 0x14f32: 0x44789c20, 0x14f33: 0xe0006bd9,
-	0x14f34: 0x42d73e20, 0x14f35: 0xe00067fb, 0x14f36: 0x42d77620, 0x14f37: 0x48751a20,
-	0x14f38: 0x483a1620, 0x14f39: 0x4875f420, 0x14f3a: 0xe0006113, 0x14f3b: 0x48797820,
-	0x14f3c: 0xe00075f2, 0x14f3d: 0x42d99a20, 0x14f3e: 0x42d8ce20, 0x14f3f: 0x42da2c20,
-	// Block 0x53d, offset 0x14f40
-	0x14f40: 0xe000989d, 0x14f41: 0xe0009d65, 0x14f42: 0xe00057ee, 0x14f43: 0xe0009ffa,
-	0x14f44: 0xe0009621, 0x14f45: 0xe000767e, 0x14f46: 0x487a3c20, 0x14f47: 0x42da6820,
-	0x14f48: 0xe0009d22, 0x14f49: 0xe00080c9, 0x14f4a: 0x447a6620, 0x14f4b: 0xe00081ab,
-	0x14f4c: 0x42dd8e20, 0x14f4d: 0x487da220, 0x14f4e: 0xe0007536, 0x14f4f: 0xe00088da,
-	0x14f50: 0x487ebc20, 0x14f51: 0x487f1c20, 0x14f52: 0xe0006483, 0x14f53: 0x42e07220,
-	0x14f54: 0xe0008774, 0x14f55: 0xe0007732, 0x14f56: 0x447b2c20, 0x14f57: 0x42e09420,
-	0x14f58: 0xe00083d3, 0x14f59: 0x42e0ee20, 0x14f5a: 0xe000972f, 0x14f5b: 0x480a4a20,
-	0x14f5c: 0x42e28a20, 0x14f5d: 0x4884c620, 0x14f5e: 0x42e33820, 0x14f5f: 0x48875620,
-	0x14f60: 0xe0008ebe, 0x14f61: 0xe0008245, 0x14f62: 0x42e4a020, 0x14f63: 0x488c1020,
-	0x14f64: 0xe0006968, 0x14f65: 0x42e52a20, 0x14f66: 0x488e6a20, 0x14f67: 0x48902820,
-	0x14f68: 0xe0004f61, 0x14f69: 0xe0007a10, 0x14f6a: 0x447d5820, 0x14f6b: 0x42e74a20,
-	0x14f6c: 0x447d7020, 0x14f6d: 0x447d7020, 0x14f6e: 0x42e88e20, 0x14f6f: 0xe0007e1e,
-	0x14f70: 0xe00085f8, 0x14f71: 0x42e90a20, 0x14f72: 0xe00042b4, 0x14f73: 0x447e3620,
-	0x14f74: 0x42ea4820, 0x14f75: 0x48986c20, 0x14f76: 0x42ea7c20, 0x14f77: 0x48992420,
-	0x14f78: 0xe0008035, 0x14f79: 0x48433e20, 0x14f7a: 0xe0007e72, 0x14f7b: 0x489f4220,
-	0x14f7c: 0x489f7020, 0x14f7d: 0x48a08820, 0x14f7e: 0x447ff820, 0x14f7f: 0x44801020,
-	// Block 0x53e, offset 0x14f80
-	0x14f80: 0xe0008ca0, 0x14f81: 0x48a1e620, 0x14f82: 0x48a1e420, 0x14f83: 0x48a23220,
-	0x14f84: 0x48a26620, 0x14f85: 0xe0008d00, 0x14f86: 0x42ee3e20, 0x14f87: 0x42ee3e20,
-	0x14f88: 0x42ee9420, 0x14f89: 0x44807220, 0x14f8a: 0xe0008d04, 0x14f8b: 0x44808c20,
-	0x14f8c: 0x44812c20, 0x14f8d: 0x48a83a20, 0x14f8e: 0x42f09c20, 0x14f8f: 0xe00056a9,
-	0x14f90: 0x42f19820, 0x14f91: 0x4481c620, 0x14f92: 0x48ac4c20, 0x14f93: 0xe00088ec,
-	0x14f94: 0x48ad3420, 0x14f95: 0x48ad8a20, 0x14f96: 0xe0006298, 0x14f97: 0xe00094cd,
-	0x14f98: 0x44825e20, 0x14f99: 0xe0004499, 0x14f9a: 0x42f49420, 0x14f9b: 0x42f49e20,
-	0x14f9c: 0x48b2f820, 0x14f9d: 0x48b54e20, 0x14f9e: 0x48b54e20, 0x14f9f: 0x42f5dc20,
-	0x14fa0: 0x44840420, 0x14fa1: 0x48b75620, 0x14fa2: 0xe0008590, 0x14fa3: 0xe0009485,
-	0x14fa4: 0x44844e20, 0x14fa5: 0x48b90020, 0x14fa6: 0x42f9a420, 0x14fa7: 0x44854020,
-	0x14fa8: 0x42f9d020, 0x14fa9: 0x42f9c620, 0x14faa: 0xe0004c90, 0x14fab: 0x48bf0c20,
-	0x14fac: 0xe000621f, 0x14fad: 0x44860220, 0x14fae: 0xe0009590, 0x14faf: 0x42fc0420,
-	0x14fb0: 0xe0006c8a, 0x14fb1: 0x44866820, 0x14fb2: 0x48c45020, 0x14fb3: 0x48c48e20,
-	0x14fb4: 0x4486b220, 0x14fb5: 0x48c5b220, 0x14fb6: 0x42fef420, 0x14fb7: 0x48c67c20,
-	0x14fb8: 0x42ff2a20, 0x14fb9: 0xe000446b, 0x14fba: 0xe00081c3, 0x14fbb: 0x48c9b420,
-	0x14fbc: 0x48ca4620, 0x14fbd: 0x4300c020, 0x14fbe: 0x48cb5020, 0x14fbf: 0xe0009393,
-	// Block 0x53f, offset 0x14fc0
-	0x14fc0: 0x4866be20, 0x14fc1: 0x4487aa20, 0x14fc2: 0xe0007ebd, 0x14fc3: 0x43020620,
-	0x14fc4: 0x44881620, 0x14fc5: 0xe000655d, 0x14fc6: 0xe0008189, 0x14fc7: 0x48cf4e20,
-	0x14fc8: 0x48cf6a20, 0x14fc9: 0x48672620, 0x14fca: 0x48673820, 0x14fcb: 0xe0007593,
-	0x14fcc: 0x43040820, 0x14fcd: 0x431f3c20, 0x14fce: 0x4488d620, 0x14fcf: 0x43052220,
-	0x14fd0: 0xe0007bc3, 0x14fd1: 0xe0008c5e, 0x14fd2: 0x42a56620, 0x14fd3: 0xe000a120,
-	0x14fd4: 0xe0005ff3, 0x14fd5: 0xe000717b, 0x14fd6: 0xe000440b, 0x14fd7: 0x48d67820,
-	0x14fd8: 0xe00073e4, 0x14fd9: 0xe0009015, 0x14fda: 0x4306c620, 0x14fdb: 0x43075a20,
-	0x14fdc: 0xe0007894, 0x14fdd: 0xe0005a9a, 0x14fde: 0x4307ce20, 0x14fdf: 0xe0008453,
-	0x14fe0: 0x4306a620, 0x14fe1: 0xe0004942, 0x14fe2: 0xe0004ace, 0x14fe3: 0xe0009006,
-	0x14fe4: 0x48d86c20, 0x14fe5: 0x48dad620, 0x14fe6: 0x48d9aa20, 0x14fe7: 0x448a5620,
-	0x14fe8: 0xe00099eb, 0x14fe9: 0x4309e620, 0x14fea: 0x430a2c20, 0x14feb: 0x48e79420,
-	0x14fec: 0xe0007e8d, 0x14fed: 0x48de5820, 0x14fee: 0x448aba20, 0x14fef: 0x448ac220,
-	0x14ff0: 0x48df6220, 0x14ff1: 0x48e1a420, 0x14ff2: 0x448ad620, 0x14ff3: 0xe0009bf2,
-	0x14ff4: 0xe000566a, 0x14ff5: 0xe000a418, 0x14ff6: 0x430cd220, 0x14ff7: 0xe000959c,
-	0x14ff8: 0x430d1020, 0x14ff9: 0x430e1c20, 0x14ffa: 0x430dc420, 0x14ffb: 0x430ef220,
-	0x14ffc: 0xe00086f4, 0x14ffd: 0x430ed620, 0x14ffe: 0x430f0c20, 0x14fff: 0x448bae20,
-	// Block 0x540, offset 0x15000
-	0x15000: 0x430fc220, 0x15001: 0x43100220, 0x15002: 0x448bf220, 0x15003: 0x4310c020,
-	0x15004: 0xe0007fea, 0x15005: 0x48ecce20, 0x15006: 0x4311ae20, 0x15007: 0x4311bc20,
-	0x15008: 0x448c6a20, 0x15009: 0x4311f420, 0x1500a: 0x44697620, 0x1500b: 0x48f15c20,
-	0x1500c: 0x48f2cc20, 0x1500d: 0x448d7c20, 0x1500e: 0x448d8e20, 0x1500f: 0xe0006bc3,
-	0x15010: 0xe0007e39, 0x15011: 0xe0006187, 0x15012: 0xe0006ff7, 0x15013: 0x48f95020,
-	0x15014: 0xe0004648, 0x15015: 0xe000645b, 0x15016: 0xe0004591, 0x15017: 0xe0004cab,
-	0x15018: 0x48fe5e20, 0x15019: 0x48100820, 0x1501a: 0xe0005f7b, 0x1501b: 0x431b7820,
-	0x1501c: 0x431be020, 0x1501d: 0x4811bc20, 0x1501e: 0x431da820, 0x1501f: 0xe0006dd4,
-	0x15020: 0x490ba420, 0x15021: 0x490bda20, 0x15022: 0x43212820, 0x15023: 0x4321e220,
-	0x15024: 0x43222220, 0x15025: 0x490e5c20, 0x15026: 0x43223620, 0x15027: 0xe0005f9b,
-	0x15028: 0xe0009ecc, 0x15029: 0x4325b020, 0x1502a: 0xe0006233, 0x1502b: 0x4327f220,
-	0x1502c: 0x43282a20, 0x1502d: 0x4917f420, 0x1502e: 0xe0004031, 0x1502f: 0x44932a20,
-	0x15030: 0x432b6e20, 0x15031: 0x491aee20, 0x15032: 0x4493cc20, 0x15033: 0x432d8620,
-	0x15034: 0x42bb6420, 0x15035: 0xe0007c85, 0x15036: 0x49228a20, 0x15037: 0x49243420,
-	0x15038: 0x4494dc20, 0x15039: 0x4494ec20, 0x1503a: 0xe0009b90, 0x1503b: 0x49281420,
-	0x1503c: 0x44956420, 0x1503d: 0x49292c20, 0x1503e: 0x43301620, 0x1503f: 0x43301620,
-	// Block 0x541, offset 0x15040
-	0x15040: 0x43305220, 0x15041: 0x492b6c20, 0x15042: 0xe0004cb4, 0x15043: 0x44966620,
-	0x15044: 0x43325220, 0x15045: 0x43334e20, 0x15046: 0x43338420, 0x15047: 0x4333fc20,
-	0x15048: 0x44979c20, 0x15049: 0x49366020, 0x1504a: 0xe0008d64, 0x1504b: 0x43388020,
-	0x1504c: 0x4339fa20, 0x1504d: 0x44999c20, 0x1504e: 0x4499da20, 0x1504f: 0x433ace20,
-	0x15050: 0x49419c20, 0x15051: 0x4499f020, 0x15052: 0x49420a20, 0x15053: 0x49441c20,
-	0x15054: 0x49452220, 0x15055: 0xe00059ad, 0x15056: 0x449aac20, 0x15057: 0x433df220,
-	0x15058: 0x433dfc20, 0x15059: 0x433e0a20, 0x1505a: 0x433e1e20, 0x1505b: 0x433e2c20,
-	0x1505c: 0xe000657e, 0x1505d: 0x494c0020,
-	// Block 0x542, offset 0x15080
-	0x15080: 0xa000f202, 0x15081: 0x403fba21, 0x15082: 0x403fba20, 0x15083: 0x403fbc20,
-	0x15084: 0x403fbc20, 0x15085: 0x403fbe20, 0x15086: 0x403fc020, 0x15087: 0x403fcc20,
-	0x15088: 0x403fce20, 0x15089: 0x403fd020, 0x1508a: 0x403fd220, 0x1508b: 0x403fd420,
-	0x1508c: 0x403fd820, 0x1508d: 0x403fdc20, 0x1508e: 0x403fde20, 0x1508f: 0x403fe020,
-	0x15090: 0x403fe220, 0x15091: 0x403fe420, 0x15092: 0x403fe620, 0x15093: 0x403fe820,
-	0x15094: 0x403fea20, 0x15095: 0xca983ba1, 0x15096: 0x403fee20, 0x15097: 0x403ff020,
-	0x15098: 0x403ff420, 0x15099: 0x403ff620, 0x1509a: 0x403ff820, 0x1509b: 0x403ffa20,
-	0x1509c: 0x403ffc20, 0x1509d: 0x40400220, 0x1509e: 0x40400420, 0x1509f: 0x40400620,
-	0x150a0: 0x40400820, 0x150a1: 0x40400a20, 0x150a2: 0x40400e20, 0x150a3: 0x40401020,
-	0x150a4: 0x40401220, 0x150a5: 0x40401420, 0x150a6: 0x40401620, 0x150a7: 0x40401820,
-	0x150a8: 0x40401a20, 0x150a9: 0xe0001830, 0x150aa: 0x40401c20, 0x150ab: 0x40401e20,
-	0x150ac: 0x40402020, 0x150ad: 0x40402420, 0x150ae: 0x40402620, 0x150af: 0x40402820,
-	0x150b0: 0x40402c20, 0x150b1: 0xe0001839, 0x150b2: 0x40402e20, 0x150b3: 0x40403c20,
-	0x150b4: 0xe000a54f, 0x150b5: 0x40403220, 0x150b6: 0x40403420, 0x150b7: 0x40403620,
-	0x150b8: 0x40403820, 0x150b9: 0x40403a20, 0x150ba: 0x40404c20, 0x150bb: 0x40404e20,
-	0x150bc: 0xa070f102, 0x150bd: 0x40403c20, 0x150be: 0x40404a20, 0x150bf: 0x40405620,
-	// Block 0x543, offset 0x150c0
-	0x150c0: 0x402c1a20, 0x150c1: 0x002c2a88, 0x150c2: 0x002c3288, 0x150c3: 0x402c3220,
-	0x150c4: 0x0031c488, 0x150c5: 0x4031c420, 0x150c6: 0x002ee2a3, 0x150c7: 0x002c4e88,
-	0x150c8: 0x402c4e20, 0x150c9: 0x002c7288, 0x150ca: 0x002c7a88, 0x150cb: 0x002c8488,
-	0x150cc: 0x402c8420, 0x150cd: 0xe000115c, 0x150ce: 0x002cae88, 0x150cf: 0x002cb888,
-	0x150d0: 0x002c9a83, 0x150d1: 0x002d1688, 0x150d2: 0x402d1620, 0x150d3: 0x002d4488,
-	0x150d4: 0x002d5888, 0x150d5: 0x402d7820, 0x150d6: 0x002dc288, 0x150d7: 0x002db688,
-	0x150d8: 0x002e0a88, 0x150d9: 0x402e0a20, 0x150da: 0x402e3820, 0x150db: 0x402e7220,
-	0x150dc: 0x0030a088, 0x150dd: 0x002eb488, 0x150de: 0x402ebc20, 0x150df: 0x002f1088,
-	0x150e0: 0xe0000e56, 0x150e1: 0xe0000e53, 0x150e2: 0x002d6088, 0x150e3: 0x402d6020,
-	0x150e4: 0x002f3e88, 0x150e5: 0x402f3e20, 0x150e6: 0x002f8288, 0x150e7: 0x0031b488,
-	0x150e8: 0x4031b420, 0x150e9: 0x00300888, 0x150ea: 0x40301220, 0x150eb: 0x40304220,
-	0x150ec: 0x00304a88, 0x150ed: 0x40304a20, 0x150ee: 0x00305288, 0x150ef: 0xe000105f,
-	0x150f0: 0xe000105c, 0x150f1: 0x0030b488, 0x150f2: 0x0030cc88, 0x150f3: 0x00311888,
-	0x150f4: 0x40311820, 0x150f5: 0x00313488, 0x150f6: 0x40313420, 0x150f7: 0x00316488,
-	0x150f8: 0x00316e88, 0x150f9: 0x40316e20, 0x150fa: 0x40317820, 0x150fb: 0x4031a620,
-	0x150fc: 0x0031bc88, 0x150fd: 0x4031bc20, 0x150fe: 0xe0000fc9, 0x150ff: 0x40319420,
-	// Block 0x544, offset 0x15100
-	0x15100: 0x40315820, 0x15101: 0x0031d488, 0x15102: 0x4031d420, 0x15103: 0x002c1a88,
-	0x15104: 0x00307c88, 0x15105: 0x0030da88, 0x15106: 0x002ca288, 0x15107: 0x402ca220,
-	0x15108: 0x002dde88, 0x15109: 0x402dde20, 0x1510a: 0x002f6a88, 0x1510b: 0x402f6a20,
-	0x1510c: 0x002f8e88, 0x1510d: 0x402f8e20, 0x1510e: 0x00311088, 0x1510f: 0x40311020,
-	0x15110: 0x402bf020, 0x15111: 0x402bf820, 0x15112: 0x402c0220, 0x15113: 0x402c2a20,
-	0x15114: 0x402ee221, 0x15115: 0x402c5620, 0x15116: 0x402c7220, 0x15117: 0x402c7a20,
-	0x15118: 0x402ccc20, 0x15119: 0x402cb820, 0x1511a: 0x402cd420, 0x1511b: 0x402c9a20,
-	0x1511c: 0x402cdc20, 0x1511d: 0x402ce820, 0x1511e: 0x402cf020, 0x1511f: 0x402dee20,
-	0x15120: 0x402d4420, 0x15121: 0x402d2a20, 0x15122: 0x402d3220, 0x15123: 0x402d5820,
-	0x15124: 0x402d0020, 0x15125: 0x40308820, 0x15126: 0x402d8020, 0x15127: 0x402d8e20,
-	0x15128: 0x402db620, 0x15129: 0x402dc220, 0x1512a: 0x402daa20, 0x1512b: 0x402e4220,
-	0x1512c: 0x402e4a20, 0x1512d: 0x402e5420, 0x1512e: 0x402e6820, 0x1512f: 0x4030a020,
-	0x15130: 0x4030ac20, 0x15131: 0x402e9020, 0x15132: 0x402eb420, 0x15133: 0x402ec820,
-	0x15134: 0x402ea620, 0x15135: 0x402f1020, 0x15136: 0x402eee20, 0x15137: 0x402f1a20,
-	0x15138: 0x402f4c20, 0x15139: 0x402f9820, 0x1513a: 0x402fa220, 0x1513b: 0x402fac20,
-	0x1513c: 0x402fb620, 0x1513d: 0x402fbe20, 0x1513e: 0x402fc620, 0x1513f: 0x402fd020,
-	// Block 0x545, offset 0x15140
-	0x15140: 0xa0000000, 0x15141: 0xa0000000, 0x15142: 0xa0000000, 0x15143: 0xa0000000,
-	0x15144: 0xa0000000, 0x15145: 0xa0000000, 0x15146: 0xa0000000, 0x15147: 0xa0000000,
-	0x15148: 0xa0000000, 0x15149: 0x40020020, 0x1514a: 0x40020220, 0x1514b: 0x40020420,
-	0x1514c: 0x40020620, 0x1514d: 0x40020820, 0x1514e: 0xa0000000, 0x1514f: 0xa0000000,
-	0x15150: 0xa0000000, 0x15151: 0xa0000000, 0x15152: 0xa0000000, 0x15153: 0xa0000000,
-	0x15154: 0xa0000000, 0x15155: 0xa0000000, 0x15156: 0xa0000000, 0x15157: 0xa0000000,
-	0x15158: 0xa0000000, 0x15159: 0xa0000000, 0x1515a: 0xa0000000, 0x1515b: 0xa0000000,
-	0x1515c: 0xa0000000, 0x1515d: 0xa0000000, 0x1515e: 0xa0000000, 0x1515f: 0xa0000000,
-	0x15160: 0x40021220, 0x15161: 0x4002ba20, 0x15162: 0x4003e020, 0x15163: 0x4004ea20,
-	0x15164: 0x4027de20, 0x15165: 0x4004ec20, 0x15166: 0x4004e620, 0x15167: 0x4003d220,
-	0x15168: 0x4003f420, 0x15169: 0x4003f620, 0x1516a: 0x4004d820, 0x1516b: 0x40093820,
-	0x1516c: 0x40024020, 0x1516d: 0x40021a20, 0x1516e: 0x4002e420, 0x1516f: 0x4004e220,
-	0x15170: 0x4029cc20, 0x15171: 0x4029ce20, 0x15172: 0x4029d020, 0x15173: 0x4029d220,
-	0x15174: 0x4029d420, 0x15175: 0x4029d620, 0x15176: 0x4029d820, 0x15177: 0x4029da20,
-	0x15178: 0x4029dc20, 0x15179: 0x4029de20, 0x1517a: 0x40026c20, 0x1517b: 0x40026220,
-	0x1517c: 0x40094020, 0x1517d: 0x40094220, 0x1517e: 0x40094420, 0x1517f: 0x4002c420,
-	// Block 0x546, offset 0x15180
-	0x15180: 0x4004d620, 0x15181: 0xcaa00be1, 0x15182: 0x002c0a88, 0x15183: 0xc3350991,
-	0x15184: 0x002c6288, 0x15185: 0xcaa53c31, 0x15186: 0x002d0888, 0x15187: 0x002d2288,
-	0x15188: 0x002d6888, 0x15189: 0xcaaa0be1, 0x1518a: 0x002dcc88, 0x1518b: 0x002dfe88,
-	0x1518c: 0xc0030002, 0x1518d: 0x002e8288, 0x1518e: 0x002e9e88, 0x1518f: 0x002ee288,
-	0x15190: 0x002f2c88, 0x15191: 0x002f5688, 0x15192: 0x002f7a88, 0x15193: 0xc3430991,
-	0x15194: 0x00302c88, 0x15195: 0xcaaf3c61, 0x15196: 0x0030be88, 0x15197: 0x0030e288,
-	0x15198: 0x0030f688, 0x15199: 0x002d9ac3, 0x1519a: 0xc3630991, 0x1519b: 0x4003f820,
-	0x1519c: 0x4004e420, 0x1519d: 0x4003fa20, 0x1519e: 0x40062420, 0x1519f: 0x40021620,
-	0x151a0: 0x40061e20, 0x151a1: 0xca9e0be1, 0x151a2: 0x402c0a20, 0x151a3: 0xc3330991,
-	0x151a4: 0x402c6220, 0x151a5: 0xcaa23c31, 0x151a6: 0x402d0820, 0x151a7: 0x402d2220,
-	0x151a8: 0x402d6820, 0x151a9: 0xcaa80be1, 0x151aa: 0x402dcc20, 0x151ab: 0x402dfe20,
-	0x151ac: 0xc0000002, 0x151ad: 0x402e8220, 0x151ae: 0x402e9e20, 0x151af: 0x402ee220,
-	0x151b0: 0x402f2c20, 0x151b1: 0x402f5620, 0x151b2: 0x402f7a20, 0x151b3: 0xc3410991,
-	0x151b4: 0x40302c20, 0x151b5: 0xcaac3c61, 0x151b6: 0x4030be20, 0x151b7: 0x4030e220,
-	0x151b8: 0x4030f620, 0x151b9: 0x402d9a22, 0x151ba: 0xc3610991, 0x151bb: 0x4003fc20,
-	0x151bc: 0x40094820, 0x151bd: 0x4003fe20, 0x151be: 0x40094c20, 0x151bf: 0xa0000000,
-	// Block 0x547, offset 0x151c0
-	0x151c0: 0xe00008f5, 0x151c1: 0xe00008ef, 0x151c2: 0xe0000921, 0x151c3: 0xe0000969,
-	0x151c4: 0xe000095b, 0x151c5: 0xe000094d, 0x151c6: 0xe00009dd, 0x151c7: 0xe0000a53,
-	0x151c8: 0xe0000ae8, 0x151c9: 0xe0000ae2, 0x151ca: 0xe0000af4, 0x151cb: 0xe0000b20,
-	0x151cc: 0xe0000c2b, 0x151cd: 0xe0000c25, 0x151ce: 0xe0000c37, 0x151cf: 0xe0000c43,
-	0x151d0: 0xe0000ab3, 0x151d1: 0xe0000d63, 0x151d2: 0xe0000d9a, 0x151d3: 0xe0000d94,
-	0x151d4: 0xe0000da6, 0x151d5: 0xe0000de6, 0x151d6: 0xe0000dd2, 0x151d7: 0x40093e20,
-	0x151d8: 0xe0000e12, 0x151d9: 0xe0000fe1, 0x151da: 0xe0000fdb, 0x151db: 0xe0000fed,
-	0x151dc: 0xe0000fff, 0x151dd: 0xe000a555, 0x151de: 0x00318888, 0x151df: 0xe0000f7b,
-	0x151e0: 0xe00008f2, 0x151e1: 0xe00008ec, 0x151e2: 0xe000091e, 0x151e3: 0xe0000966,
-	0x151e4: 0xe0000958, 0x151e5: 0xe000094a, 0x151e6: 0xe00009d5, 0x151e7: 0xe0000a4d,
-	0x151e8: 0xe0000ae5, 0x151e9: 0xe0000adf, 0x151ea: 0xe0000af1, 0x151eb: 0xe0000b1d,
-	0x151ec: 0xe0000c28, 0x151ed: 0xe0000c22, 0x151ee: 0xe0000c34, 0x151ef: 0xe0000c40,
-	0x151f0: 0xe0000aad, 0x151f1: 0xe0000d60, 0x151f2: 0xe0000d97, 0x151f3: 0xe0000d91,
-	0x151f4: 0xe0000da3, 0x151f5: 0xe0000de3, 0x151f6: 0xe0000dcf, 0x151f7: 0x40093c20,
-	0x151f8: 0xe0000e0f, 0x151f9: 0xe0000fde, 0x151fa: 0xe0000fd8, 0x151fb: 0xe0000fea,
-	0x151fc: 0xe0000ffc, 0x151fd: 0xe000a552, 0x151fe: 0x40318820, 0x151ff: 0xe000a567,
-	// Block 0x548, offset 0x15200
-	0x15200: 0xe0000983, 0x15201: 0xe0000980, 0x15202: 0xe00008fb, 0x15203: 0xe00008f8,
-	0x15204: 0x002bdea3, 0x15205: 0x402bde21, 0x15206: 0xe0000a38, 0x15207: 0xe0000a35,
-	0x15208: 0xe0000a3e, 0x15209: 0xe0000a3b, 0x1520a: 0xe0000a4a, 0x1520b: 0xe0000a47,
-	0x1520c: 0x002c3c83, 0x1520d: 0x402c3c20, 0x1520e: 0xe0000a86, 0x1520f: 0xe0000a83,
-	0x15210: 0xe0000aaa, 0x15211: 0xe0000aa7, 0x15212: 0xe0000b46, 0x15213: 0xe0000b43,
-	0x15214: 0xe0000aee, 0x15215: 0xe0000aeb, 0x15216: 0x002c98c3, 0x15217: 0x402c9822,
-	0x15218: 0x002c98a3, 0x15219: 0x402c9821, 0x1521a: 0xe0000b1a, 0x1521b: 0xe0000b17,
-	0x1521c: 0xe0000bb8, 0x1521d: 0xe0000bb5, 0x1521e: 0xe0000bb2, 0x1521f: 0xe0000baf,
-	0x15220: 0xe0000bc4, 0x15221: 0xe0000bc1, 0x15222: 0xe0000bca, 0x15223: 0xe0000bc7,
-	0x15224: 0xe0000bee, 0x15225: 0xe0000beb, 0x15226: 0xe0000c1b, 0x15227: 0xe0000c18,
-	0x15228: 0xe0000c51, 0x15229: 0xe0000c4e, 0x1522a: 0xe0000c60, 0x1522b: 0xe0000c5d,
-	0x1522c: 0xe0000c31, 0x1522d: 0xe0000c2e, 0x1522e: 0x002d9aa3, 0x1522f: 0x402d9a21,
-	0x15230: 0xe0000c54, 0x15231: 0x402da220, 0x15232: 0xf0000a0a, 0x15233: 0xf0000404,
-	0x15234: 0xe0000c8a, 0x15235: 0xe0000c87, 0x15236: 0xe0000c9f, 0x15237: 0xe0000c9c,
-	0x15238: 0x402f7220, 0x15239: 0xe0000ccc, 0x1523a: 0xe0000cc9, 0x1523b: 0xe0000cd8,
-	0x1523c: 0xe0000cd5, 0x1523d: 0xe0000cd2, 0x1523e: 0xe0000ccf, 0x1523f: 0xe0000d04,
-	// Block 0x549, offset 0x15240
-	0x15240: 0xe0000cfe, 0x15241: 0xe0000cf8, 0x15242: 0xe0000cf5, 0x15243: 0xe0000d51,
-	0x15244: 0xe0000d4e, 0x15245: 0xe0000d6f, 0x15246: 0xe0000d6c, 0x15247: 0xe0000d5d,
-	0x15248: 0xe0000d5a, 0x15249: 0xf0000404, 0x1524a: 0x002eda88, 0x1524b: 0x402eda20,
-	0x1524c: 0xe0000e2e, 0x1524d: 0xe0000e2b, 0x1524e: 0xe0000da0, 0x1524f: 0xe0000d9d,
-	0x15250: 0xe0000de0, 0x15251: 0xe0000ddd, 0x15252: 0xe0000e93, 0x15253: 0xe0000e8f,
-	0x15254: 0xe0000eca, 0x15255: 0xe0000ec7, 0x15256: 0xe0000edc, 0x15257: 0xe0000ed9,
-	0x15258: 0xe0000ed0, 0x15259: 0xe0000ecd, 0x1525a: 0xe0000f1f, 0x1525b: 0xe0000f1c,
-	0x1525c: 0xe0000f2d, 0x1525d: 0xe0000f2a, 0x1525e: 0xe0000f47, 0x1525f: 0xe0000f44,
-	0x15260: 0x002fe883, 0x15261: 0x402fe820, 0x15262: 0xe0000f99, 0x15263: 0xe0000f96,
-	0x15264: 0xe0000f8a, 0x15265: 0xe0000f87, 0x15266: 0x00303688, 0x15267: 0x40303620,
-	0x15268: 0xe000102b, 0x15269: 0xe0001028, 0x1526a: 0x00306cc3, 0x1526b: 0x40306c22,
-	0x1526c: 0xe0000fe7, 0x1526d: 0xe0000fe4, 0x1526e: 0xe0000ff9, 0x1526f: 0xe0000ff6,
-	0x15270: 0xe0001025, 0x15271: 0xe0001022, 0x15272: 0x00306ca3, 0x15273: 0x40306c21,
-	0x15274: 0xe00010d8, 0x15275: 0xe00010d5, 0x15276: 0xe000a561, 0x15277: 0xe000a55e,
-	0x15278: 0xe000a56a, 0x15279: 0xe000113b, 0x1527a: 0xe0001138, 0x1527b: 0xe000114d,
-	0x1527c: 0xe000114a, 0x1527d: 0x00312c83, 0x1527e: 0x40312c20, 0x1527f: 0xe0000f64,
-	// Block 0x54a, offset 0x15280
-	0x15280: 0x40321220, 0x15281: 0x40321a20, 0x15282: 0x40322220, 0x15283: 0x40322a20,
-	0x15284: 0xe0000ad5, 0x15285: 0xe0000ad1, 0x15286: 0xe0000acd, 0x15287: 0xf0000a0a,
-	0x15288: 0xf000040a, 0x15289: 0xf0000404, 0x1528a: 0xf0000a0a, 0x1528b: 0xf000040a,
-	0x1528c: 0xf0000404, 0x1528d: 0xe0000947, 0x1528e: 0xe0000944, 0x1528f: 0xe0000c3d,
-	0x15290: 0xe0000c3a, 0x15291: 0xe0000dcc, 0x15292: 0xe0000dc9, 0x15293: 0xe0000ff3,
-	0x15294: 0xe0000ff0, 0x15295: 0xe000a58e, 0x15296: 0xe000a58b, 0x15297: 0xe0001006,
-	0x15298: 0xe0001002, 0x15299: 0xe0001016, 0x1529a: 0xe0001012, 0x1529b: 0xe000100e,
-	0x1529c: 0xe000100a, 0x1529d: 0x402cae20, 0x1529e: 0xe0000962, 0x1529f: 0xe000095e,
-	0x152a0: 0xe0000976, 0x152a1: 0xe0000972, 0x152a2: 0xe00009f4, 0x152a3: 0xe00009ef,
-	0x152a4: 0x002d3a88, 0x152a5: 0x402d3a20, 0x152a6: 0xe0000bbe, 0x152a7: 0xe0000bbb,
-	0x152a8: 0xe0000c99, 0x152a9: 0xe0000c96, 0x152aa: 0xe0000e20, 0x152ab: 0xe0000e1d,
-	0x152ac: 0xe0000e27, 0x152ad: 0xe0000e23, 0x152ae: 0xe0001162, 0x152af: 0xe000115f,
-	0x152b0: 0xe0000c8d, 0x152b1: 0xf0000a0a, 0x152b2: 0xf000040a, 0x152b3: 0xf0000404,
-	0x152b4: 0xe0000bac, 0x152b5: 0xe0000ba9, 0x152b6: 0x002d7888, 0x152b7: 0x00319488,
-	0x152b8: 0xe0000d57, 0x152b9: 0xe0000d54, 0x152ba: 0xe0000954, 0x152bb: 0xe0000950,
-	0x152bc: 0xe00009ea, 0x152bd: 0xe00009e5, 0x152be: 0xe0000e19, 0x152bf: 0xe0000e15,
-	// Block 0x54b, offset 0x152c0
-	0x152c0: 0xe000098f, 0x152c1: 0xe000098c, 0x152c2: 0xe0000995, 0x152c3: 0xe0000992,
-	0x152c4: 0xe0000b62, 0x152c5: 0xe0000b5f, 0x152c6: 0xe0000b68, 0x152c7: 0xe0000b65,
-	0x152c8: 0xe0000c6c, 0x152c9: 0xe0000c69, 0x152ca: 0xe0000c72, 0x152cb: 0xe0000c6f,
-	0x152cc: 0xe0000e4a, 0x152cd: 0xe0000e47, 0x152ce: 0xe0000e50, 0x152cf: 0xe0000e4d,
-	0x152d0: 0xe0000ee8, 0x152d1: 0xe0000ee5, 0x152d2: 0xe0000eee, 0x152d3: 0xe0000eeb,
-	0x152d4: 0xe0001053, 0x152d5: 0xe0001050, 0x152d6: 0xe0001059, 0x152d7: 0xe0001056,
-	0x152d8: 0xe0000f61, 0x152d9: 0xe0000f5e, 0x152da: 0xe0000fa5, 0x152db: 0xe0000fa2,
-	0x152dc: 0x00312288, 0x152dd: 0x40312220, 0x152de: 0xe0000bf4, 0x152df: 0xe0000bf1,
-	0x152e0: 0x002ebc88, 0x152e1: 0x402c8c20, 0x152e2: 0x002f2288, 0x152e3: 0x402f2220,
-	0x152e4: 0x00314088, 0x152e5: 0x40314020, 0x152e6: 0xe000096f, 0x152e7: 0xe000096c,
-	0x152e8: 0xe0000b32, 0x152e9: 0xe0000b2f, 0x152ea: 0xe0000dd9, 0x152eb: 0xe0000dd5,
-	0x152ec: 0xe0000dfd, 0x152ed: 0xe0000df9, 0x152ee: 0xe0000e04, 0x152ef: 0xe0000e01,
-	0x152f0: 0xe0000e0b, 0x152f1: 0xe0000e07, 0x152f2: 0xe000a57c, 0x152f3: 0xe000a579,
-	0x152f4: 0x402e5e20, 0x152f5: 0x402ed020, 0x152f6: 0x40305a20, 0x152f7: 0x402dd420,
-	0x152f8: 0xe0000abf, 0x152f9: 0xe0000ec4, 0x152fa: 0x002be888, 0x152fb: 0x002c4488,
-	0x152fc: 0x402c4420, 0x152fd: 0x002e3888, 0x152fe: 0x00303e88, 0x152ff: 0x402ffc20,
-	// Block 0x54c, offset 0x15300
-	0x15300: 0xae603502, 0x15301: 0xae603202, 0x15302: 0xae603c02, 0x15303: 0xae604e02,
-	0x15304: 0xae605b02, 0x15305: 0xae606302, 0x15306: 0xae603702, 0x15307: 0xca9a3c01,
-	0x15308: 0xae604702, 0x15309: 0xae606402, 0x1530a: 0xae604302, 0x1530b: 0xae604d02,
-	0x1530c: 0xae604102, 0x1530d: 0xae605f02, 0x1530e: 0xae605f02, 0x1530f: 0xae606502,
-	0x15310: 0xae606602, 0x15311: 0xae606702, 0x15312: 0xae605f02, 0x15313: 0xae602202,
-	0x15314: 0xae602a02, 0x15315: 0xae805f02, 0x15316: 0xadc06002, 0x15317: 0xadc06002,
-	0x15318: 0xadc06002, 0x15319: 0xadc06002, 0x1531a: 0xae805f02, 0x1531b: 0xad806802,
-	0x1531c: 0xadc06002, 0x1531d: 0xadc06002, 0x1531e: 0xadc06002, 0x1531f: 0xadc06002,
-	0x15320: 0xadc06002, 0x15321: 0xaca06e02, 0x15322: 0xaca06f02, 0x15323: 0xadc07002,
-	0x15324: 0xadc07502, 0x15325: 0xadc07602, 0x15326: 0xadc07702, 0x15327: 0xaca05602,
-	0x15328: 0xaca05902, 0x15329: 0xadc06002, 0x1532a: 0xadc06002, 0x1532b: 0xadc06002,
-	0x1532c: 0xadc06002, 0x1532d: 0xadc07802, 0x1532e: 0xadc07902, 0x1532f: 0xadc06002,
-	0x15330: 0xadc07a02, 0x15331: 0xadc07b02, 0x15332: 0xadc02102, 0x15333: 0xadc06002,
-	0x15334: 0xa0107c02, 0x15335: 0xa0107d02, 0x15336: 0xa0106102, 0x15337: 0xa0106102,
-	0x15338: 0xa0105402, 0x15339: 0xadc07e02, 0x1533a: 0xadc06002, 0x1533b: 0xadc06002,
-	0x1533c: 0xadc06002, 0x1533d: 0xae605f02, 0x1533e: 0xae605f02, 0x1533f: 0xae605f02,
-	// Block 0x54d, offset 0x15340
-	0x15340: 0xe0000d24, 0x15341: 0xe0000d21, 0x15342: 0xe0000d2a, 0x15343: 0xe0000d27,
-	0x15344: 0xe0000d69, 0x15345: 0xe0000d66, 0x15346: 0xe0000d7b, 0x15347: 0xe0000d78,
-	0x15348: 0xe0000d87, 0x15349: 0xe0000d84, 0x1534a: 0xe0000d81, 0x1534b: 0xe0000d7e,
-	0x1534c: 0xe0000ded, 0x1534d: 0xe0000de9, 0x1534e: 0xe0000df5, 0x1534f: 0xe0000df1,
-	0x15350: 0xe0000e3d, 0x15351: 0xe0000e39, 0x15352: 0xe0000e35, 0x15353: 0xe0000e31,
-	0x15354: 0xe0000ea7, 0x15355: 0xe0000ea4, 0x15356: 0xe0000ead, 0x15357: 0xe0000eaa,
-	0x15358: 0xe0000ed6, 0x15359: 0xe0000ed3, 0x1535a: 0xe0000ef4, 0x1535b: 0xe0000ef1,
-	0x1535c: 0xe0000efb, 0x1535d: 0xe0000ef7, 0x1535e: 0xe0000f02, 0x1535f: 0xe0000eff,
-	0x15360: 0xe0000f41, 0x15361: 0xe0000f3e, 0x15362: 0xe0000f53, 0x15363: 0xe0000f50,
-	0x15364: 0xe0000f26, 0x15365: 0xe0000f22, 0x15366: 0xe00025c3, 0x15367: 0xe00025c0,
-	0x15368: 0xe0000f5a, 0x15369: 0xe0000f56, 0x1536a: 0xe0000f93, 0x1536b: 0xe0000f90,
-	0x1536c: 0xe0000f9f, 0x1536d: 0xe0000f9c, 0x1536e: 0xe0000fb1, 0x1536f: 0xe0000fae,
-	0x15370: 0xe0000fab, 0x15371: 0xe0000fa8, 0x15372: 0xe0001093, 0x15373: 0xe0001090,
-	0x15374: 0xe000109f, 0x15375: 0xe000109c, 0x15376: 0xe0001099, 0x15377: 0xe0001096,
-	0x15378: 0xe0001032, 0x15379: 0xe000102e, 0x1537a: 0xe000a58e, 0x1537b: 0xe000a58b,
-	0x1537c: 0xe00010a9, 0x1537d: 0xe00010a6, 0x1537e: 0xe00010af, 0x1537f: 0xe00010ac,
-	// Block 0x54e, offset 0x15380
-	0x15380: 0xe00010d2, 0x15381: 0xe00010cf, 0x15382: 0xe00010cc, 0x15383: 0xe00010c9,
-	0x15384: 0xe00010e1, 0x15385: 0xe00010de, 0x15386: 0xe00010e7, 0x15387: 0xe00010e4,
-	0x15388: 0xe00010ed, 0x15389: 0xe00010ea, 0x1538a: 0xe00010fc, 0x1538b: 0xe00010f9,
-	0x1538c: 0xe00010f6, 0x1538d: 0xe00010f3, 0x1538e: 0xe000a576, 0x1538f: 0xe000a573,
-	0x15390: 0xe0001141, 0x15391: 0xe000113e, 0x15392: 0xe0001153, 0x15393: 0xe0001150,
-	0x15394: 0xe0001159, 0x15395: 0xe0001156, 0x15396: 0xe0000c15, 0x15397: 0xe0000f8d,
-	0x15398: 0xe00010db, 0x15399: 0xe000a564, 0x1539a: 0xf0000404, 0x1539b: 0xe0000f70,
-	0x1539c: 0x40300420, 0x1539d: 0x40300620, 0x1539e: 0xe0000f7f, 0x1539f: 0x402c9620,
-	0x153a0: 0xe000099b, 0x153a1: 0xe0000998, 0x153a2: 0xe0000989, 0x153a3: 0xe0000986,
-	0x153a4: 0xe0000928, 0x153a5: 0xe0000924, 0x153a6: 0xe0000930, 0x153a7: 0xe000092c,
-	0x153a8: 0xe0000940, 0x153a9: 0xe000093c, 0x153aa: 0xe0000938, 0x153ab: 0xe0000934,
-	0x153ac: 0xe00009aa, 0x153ad: 0xe00009a6, 0x153ae: 0xe0000902, 0x153af: 0xe00008fe,
-	0x153b0: 0xe000090a, 0x153b1: 0xe0000906, 0x153b2: 0xe000091a, 0x153b3: 0xe0000916,
-	0x153b4: 0xe0000912, 0x153b5: 0xe000090e, 0x153b6: 0xe00009a2, 0x153b7: 0xe000099e,
-	0x153b8: 0xe0000b6e, 0x153b9: 0xe0000b6b, 0x153ba: 0xe0000b5c, 0x153bb: 0xe0000b59,
-	0x153bc: 0xe0000b26, 0x153bd: 0xe0000b23, 0x153be: 0xe0000afb, 0x153bf: 0xe0000af7,
-	// Block 0x54f, offset 0x153c0
-	0x153c0: 0xe0000b03, 0x153c1: 0xe0000aff, 0x153c2: 0xe0000b13, 0x153c3: 0xe0000b0f,
-	0x153c4: 0xe0000b0b, 0x153c5: 0xe0000b07, 0x153c6: 0xe0000b75, 0x153c7: 0xe0000b71,
-	0x153c8: 0xe0000c66, 0x153c9: 0xe0000c63, 0x153ca: 0xe0000c78, 0x153cb: 0xe0000c75,
-	0x153cc: 0xe0000e84, 0x153cd: 0xe0000e81, 0x153ce: 0xe0000e44, 0x153cf: 0xe0000e41,
-	0x153d0: 0xe0000dad, 0x153d1: 0xe0000da9, 0x153d2: 0xe0000db5, 0x153d3: 0xe0000db1,
-	0x153d4: 0xe0000dc5, 0x153d5: 0xe0000dc1, 0x153d6: 0xe0000dbd, 0x153d7: 0xe0000db9,
-	0x153d8: 0xe0000e8b, 0x153d9: 0xe0000e87, 0x153da: 0xe0000e5d, 0x153db: 0xe0000e59,
-	0x153dc: 0xe0000e65, 0x153dd: 0xe0000e61, 0x153de: 0xe0000e75, 0x153df: 0xe0000e71,
-	0x153e0: 0xe0000e6d, 0x153e1: 0xe0000e69, 0x153e2: 0xe0000e7d, 0x153e3: 0xe0000e79,
-	0x153e4: 0xe000108d, 0x153e5: 0xe000108a, 0x153e6: 0xe000104d, 0x153e7: 0xe000104a,
-	0x153e8: 0xe0001066, 0x153e9: 0xe0001062, 0x153ea: 0xe000106e, 0x153eb: 0xe000106a,
-	0x153ec: 0xe000107e, 0x153ed: 0xe000107a, 0x153ee: 0xe0001076, 0x153ef: 0xe0001072,
-	0x153f0: 0xe0001086, 0x153f1: 0xe0001082, 0x153f2: 0xe000a55b, 0x153f3: 0xe000a558,
-	0x153f4: 0xe000a588, 0x153f5: 0xe000a585, 0x153f6: 0xe000a582, 0x153f7: 0xe000a57f,
-	0x153f8: 0xe000a570, 0x153f9: 0xe000a56d, 0x153fa: 0xe0000d0a, 0x153fb: 0xe0000d07,
-	0x153fc: 0x0030d888, 0x153fd: 0x4030d820, 0x153fe: 0x00312088, 0x153ff: 0x40312020,
-	// Block 0x550, offset 0x15400
-	0x15400: 0xe0000024, 0x15401: 0xe0000029, 0x15402: 0xe000002e, 0x15403: 0xe0000033,
-	0x15404: 0xe0000038, 0x15405: 0xe000003d, 0x15406: 0xe0000042, 0x15407: 0xe0000047,
-	0x15408: 0xf0001f04, 0x15409: 0xf0001f04, 0x1540a: 0xf0001f04, 0x1540b: 0xf0001f04,
-	0x1540c: 0xf0001f04, 0x1540d: 0xf0001f04, 0x1540e: 0xf0001f04, 0x1540f: 0xf0001f04,
-	0x15410: 0xf0001f04, 0x15411: 0xf0000404, 0x15412: 0xf0000404, 0x15413: 0xf0000404,
-	0x15414: 0xf0000404, 0x15415: 0xf0000404, 0x15416: 0xf0000404, 0x15417: 0xf0000404,
-	0x15418: 0xf0000404, 0x15419: 0xf0000404, 0x1541a: 0xf0000404, 0x1541b: 0xf0000404,
-	0x1541c: 0xf0000404, 0x1541d: 0xf0000404, 0x1541e: 0xf0000404, 0x1541f: 0xf0000404,
-	0x15420: 0xf0000404, 0x15421: 0xf0000404, 0x15422: 0xf0000404, 0x15423: 0xf0000404,
-	0x15424: 0xf0000404, 0x15425: 0xf0000404, 0x15426: 0xf0000404, 0x15427: 0xf0000404,
-	0x15428: 0xf0000404, 0x15429: 0xf0000404, 0x1542a: 0xf0000404, 0x1542b: 0xf0000404,
-	0x1542c: 0xf0000404, 0x1542d: 0xf0000404, 0x1542e: 0xf0000404, 0x1542f: 0xf0000404,
-	0x15430: 0xf0000404, 0x15431: 0xf0000404, 0x15432: 0xf0000404, 0x15433: 0xf0000404,
-	0x15434: 0xe0002884, 0x15435: 0xf0000404, 0x15436: 0x002bde8c, 0x15437: 0x002c0a8c,
-	0x15438: 0x002c3a8c, 0x15439: 0x002c628c, 0x1543a: 0x002c988c, 0x1543b: 0x002d088c,
-	0x1543c: 0x002d228c, 0x1543d: 0x002d688c, 0x1543e: 0x002d9a8c, 0x1543f: 0x002dcc8c,
-	// Block 0x551, offset 0x15440
-	0x15440: 0xf0001d1c, 0x15441: 0xf0001d1d, 0x15442: 0xe00009b7, 0x15443: 0xf0001c1d,
-	0x15444: 0xf0001c1c, 0x15445: 0xf0001c1c, 0x15446: 0xe0000a66, 0x15447: 0xe0000a7a,
-	0x15448: 0xf0001d1c, 0x15449: 0xe0002ff7, 0x1544a: 0xf0001c1c, 0x1544b: 0xf0001d1d,
-	0x1544c: 0xf0001c1c, 0x1544d: 0xf0001d1d, 0x1544e: 0xf0001d1d, 0x1544f: 0xf0001c1c,
-	0x15450: 0xf0001c1c, 0x15451: 0xf0001c1c, 0x15452: 0xe0000d0d, 0x15453: 0xf0001c1c,
-	0x15454: 0xf0001c1c, 0x15455: 0xe0000d3a, 0x15456: 0xe0000d46, 0x15457: 0xf0001d1d,
-	0x15458: 0xe0000eb0, 0x15459: 0xe0000eb8, 0x1545a: 0xf0001d1d, 0x1545b: 0xf0001c1c,
-	0x1545c: 0xf0001c1d, 0x1545d: 0xf0001c1d, 0x1545e: 0xe00010b2, 0x1545f: 0xe00009c8,
-	0x15460: 0xf0001f04, 0x15461: 0xf0001f04, 0x15462: 0xf0001f04, 0x15463: 0xf0001f04,
-	0x15464: 0xf0001f04, 0x15465: 0xf0001f04, 0x15466: 0xf0001f04, 0x15467: 0xf0001f04,
-	0x15468: 0xf0001f04, 0x15469: 0xf0000404, 0x1546a: 0xf0000404, 0x1546b: 0xf0000404,
-	0x1546c: 0xf0000404, 0x1546d: 0xf0000404, 0x1546e: 0xf0000404, 0x1546f: 0xf0000404,
-	0x15470: 0xf0000404, 0x15471: 0xf0000404, 0x15472: 0xf0000404, 0x15473: 0xf0000404,
-	0x15474: 0xf0000404, 0x15475: 0xf0000404, 0x15476: 0xf0000404, 0x15477: 0xf0000404,
-	0x15478: 0xf0000404, 0x15479: 0xf0000404, 0x1547a: 0xf0000404, 0x1547b: 0xf0000404,
-	0x1547c: 0xf0000404, 0x1547d: 0xf0000404, 0x1547e: 0xf0000404, 0x1547f: 0xe0000bdf,
-	// Block 0x552, offset 0x15480
-	0x15480: 0xf0001f04, 0x15481: 0xf0001f04, 0x15482: 0xf0001f04, 0x15483: 0xf0001f04,
-	0x15484: 0xf0001f04, 0x15485: 0xf0001f04, 0x15486: 0xf0001f04, 0x15487: 0xf0001f04,
-	0x15488: 0xf0001f04, 0x15489: 0xf0001f04, 0x1548a: 0xf0001f04,
-	0x15490: 0xf0000a04, 0x15491: 0xf0000a04, 0x15492: 0xf0000a04, 0x15493: 0xf0000a04,
-	0x15494: 0xf0000a04, 0x15495: 0xf0000a04, 0x15496: 0xf0000a04, 0x15497: 0xf0000a04,
-	0x15498: 0xf0000a04, 0x15499: 0xf0000a04, 0x1549a: 0xf0000a04, 0x1549b: 0xf0000a04,
-	0x1549c: 0xf0000a04, 0x1549d: 0xf0000a04, 0x1549e: 0xf0000a04, 0x1549f: 0xf0000a04,
-	0x154a0: 0xf0000a04, 0x154a1: 0xf0000a04, 0x154a2: 0xf0000a04, 0x154a3: 0xf0000a04,
-	0x154a4: 0xf0000a04, 0x154a5: 0xf0000a04, 0x154a6: 0xf0000a04, 0x154a7: 0xf0000a04,
-	0x154a8: 0xe0002888, 0x154a9: 0xf0000a04, 0x154aa: 0xf0000a04, 0x154ab: 0x002c3a8c,
-	0x154ac: 0x002f7a8c, 0x154ad: 0xf0000c0c, 0x154ae: 0xf0000c0c,
-	0x154b0: 0x002bde9d, 0x154b1: 0x002c0a9d, 0x154b2: 0x002c3a9d, 0x154b3: 0x002c629d,
-	0x154b4: 0x002c989d, 0x154b5: 0x002d089d, 0x154b6: 0x002d229d, 0x154b7: 0x002d689d,
-	0x154b8: 0x002d9a9d, 0x154b9: 0x002dcc9d, 0x154ba: 0x002dfe9d, 0x154bb: 0x002e229d,
-	0x154bc: 0x002e829d, 0x154bd: 0x002e9e9d, 0x154be: 0x002ee29d, 0x154bf: 0x002f2c9d,
-	// Block 0x553, offset 0x154c0
-	0x154c0: 0xa0000000, 0x154c1: 0xa0000000, 0x154c2: 0xa0000000, 0x154c3: 0xa0000000,
-	0x154c4: 0xa0000000, 0x154c5: 0xa0000000, 0x154c6: 0xa0000000, 0x154c7: 0xa0000000,
-	0x154c8: 0xa0000000, 0x154c9: 0x40020020, 0x154ca: 0x40020220, 0x154cb: 0x40020420,
-	0x154cc: 0x40020620, 0x154cd: 0x40020820, 0x154ce: 0xa0000000, 0x154cf: 0xa0000000,
-	0x154d0: 0xa0000000, 0x154d1: 0xa0000000, 0x154d2: 0xa0000000, 0x154d3: 0xa0000000,
-	0x154d4: 0xa0000000, 0x154d5: 0xa0000000, 0x154d6: 0xa0000000, 0x154d7: 0xa0000000,
-	0x154d8: 0xa0000000, 0x154d9: 0xa0000000, 0x154da: 0xa0000000, 0x154db: 0xa0000000,
-	0x154dc: 0xa0000000, 0x154dd: 0xa0000000, 0x154de: 0xa0000000, 0x154df: 0xa0000000,
-	0x154e0: 0x40021220, 0x154e1: 0x4002ba20, 0x154e2: 0x4003e020, 0x154e3: 0x4004ea20,
-	0x154e4: 0x4027de20, 0x154e5: 0x4004ec20, 0x154e6: 0x4004e620, 0x154e7: 0x4003d220,
-	0x154e8: 0x4003f420, 0x154e9: 0x4003f620, 0x154ea: 0x4004d820, 0x154eb: 0x40093820,
-	0x154ec: 0x40024020, 0x154ed: 0x40021a20, 0x154ee: 0x4002e420, 0x154ef: 0x4004e220,
-	0x154f0: 0x4029cc20, 0x154f1: 0x4029ce20, 0x154f2: 0x4029d020, 0x154f3: 0x4029d220,
-	0x154f4: 0x4029d420, 0x154f5: 0x4029d620, 0x154f6: 0x4029d820, 0x154f7: 0x4029da20,
-	0x154f8: 0x4029dc20, 0x154f9: 0x4029de20, 0x154fa: 0x40026c20, 0x154fb: 0x40026220,
-	0x154fc: 0x40094020, 0x154fd: 0x40094220, 0x154fe: 0x40094420, 0x154ff: 0x4002c420,
-	// Block 0x554, offset 0x15500
-	0x15500: 0x4004d620, 0x15501: 0x002bde88, 0x15502: 0x002c0a88, 0x15503: 0xcab40991,
-	0x15504: 0x002c6288, 0x15505: 0x002c9888, 0x15506: 0x002d0888, 0x15507: 0xcab80911,
-	0x15508: 0x002d6888, 0x15509: 0x002d9a88, 0x1550a: 0x002dcc88, 0x1550b: 0xcabc0911,
-	0x1550c: 0xcac23c93, 0x1550d: 0x002e8288, 0x1550e: 0xcac80911, 0x1550f: 0x002ee288,
-	0x15510: 0x002f2c88, 0x15511: 0x002f5688, 0x15512: 0xcacc0911, 0x15513: 0xcad00991,
-	0x15514: 0x00302c88, 0x15515: 0x00306c88, 0x15516: 0x0030be88, 0x15517: 0x0030e288,
-	0x15518: 0x0030f688, 0x15519: 0x00310088, 0x1551a: 0xcad40991, 0x1551b: 0x4003f820,
-	0x1551c: 0x4004e420, 0x1551d: 0x4003fa20, 0x1551e: 0x40062420, 0x1551f: 0x40021620,
-	0x15520: 0x40061e20, 0x15521: 0x402bde20, 0x15522: 0x402c0a20, 0x15523: 0xcab20991,
-	0x15524: 0x402c6220, 0x15525: 0x402c9820, 0x15526: 0x402d0820, 0x15527: 0xcab60911,
-	0x15528: 0x402d6820, 0x15529: 0x402d9a20, 0x1552a: 0x402dcc20, 0x1552b: 0xcaba0911,
-	0x1552c: 0xcabe3c93, 0x1552d: 0x402e8220, 0x1552e: 0xcac60911, 0x1552f: 0x402ee220,
-	0x15530: 0x402f2c20, 0x15531: 0x402f5620, 0x15532: 0xcaca0911, 0x15533: 0xcace0991,
-	0x15534: 0x40302c20, 0x15535: 0x40306c20, 0x15536: 0x4030be20, 0x15537: 0x4030e220,
-	0x15538: 0x4030f620, 0x15539: 0x40310020, 0x1553a: 0xcad20991, 0x1553b: 0x4003fc20,
-	0x1553c: 0x40094820, 0x1553d: 0x4003fe20, 0x1553e: 0x40094c20, 0x1553f: 0xa0000000,
-	// Block 0x555, offset 0x15540
-	0x15540: 0xe0000983, 0x15541: 0xe0000980, 0x15542: 0xe00008fb, 0x15543: 0xe00008f8,
-	0x15544: 0xe000097d, 0x15545: 0xe000097a, 0x15546: 0xe0000a38, 0x15547: 0xe0000a35,
-	0x15548: 0xe0000a3e, 0x15549: 0xe0000a3b, 0x1554a: 0xe0000a4a, 0x1554b: 0xe0000a47,
-	0x1554c: 0x002c6083, 0x1554d: 0x402c6020, 0x1554e: 0xe0000a86, 0x1554f: 0xe0000a83,
-	0x15550: 0xe0000aaa, 0x15551: 0xe0000aa7, 0x15552: 0xe0000b46, 0x15553: 0xe0000b43,
-	0x15554: 0xe0000aee, 0x15555: 0xe0000aeb, 0x15556: 0xe0000b2c, 0x15557: 0xe0000b29,
-	0x15558: 0xe0000b40, 0x15559: 0xe0000b3d, 0x1555a: 0xe0000b1a, 0x1555b: 0xe0000b17,
-	0x1555c: 0xe0000bb8, 0x1555d: 0xe0000bb5, 0x1555e: 0xe0000bb2, 0x1555f: 0xe0000baf,
-	0x15560: 0xe0000bc4, 0x15561: 0xe0000bc1, 0x15562: 0x002d6683, 0x15563: 0x402d6620,
-	0x15564: 0xe0000bee, 0x15565: 0xe0000beb, 0x15566: 0xe0000c1b, 0x15567: 0xe0000c18,
-	0x15568: 0xe0000c51, 0x15569: 0xe0000c4e, 0x1556a: 0xe0000c60, 0x1556b: 0xe0000c5d,
-	0x1556c: 0xe0000c31, 0x1556d: 0xe0000c2e, 0x1556e: 0xe0000c5a, 0x1556f: 0xe0000c57,
-	0x15570: 0xe0000c54, 0x15571: 0x402da220, 0x15572: 0xf0000a0a, 0x15573: 0xf0000404,
-	0x15574: 0xe0000c8a, 0x15575: 0xe0000c87, 0x15576: 0x002e2083, 0x15577: 0x402e2020,
-	0x15578: 0x402f7220, 0x15579: 0xe0000ccc, 0x1557a: 0xe0000cc9, 0x1557b: 0x002e8083,
-	0x1557c: 0x402e8020, 0x1557d: 0xe0000cd2, 0x1557e: 0xe0000ccf, 0x1557f: 0xe0000d04,
-	// Block 0x556, offset 0x15580
-	0x15580: 0xe0000cfe, 0x15581: 0xe0000cf8, 0x15582: 0xe0000cf5, 0x15583: 0xe0000d51,
-	0x15584: 0xe0000d4e, 0x15585: 0x002ee083, 0x15586: 0x402ee020, 0x15587: 0xe0000d5d,
-	0x15588: 0xe0000d5a, 0x15589: 0xf0000404, 0x1558a: 0x002eda88, 0x1558b: 0x402eda20,
-	0x1558c: 0xe0000e2e, 0x1558d: 0xe0000e2b, 0x1558e: 0xe0000da0, 0x1558f: 0xe0000d9d,
-	0x15590: 0xe0000de0, 0x15591: 0xe0000ddd, 0x15592: 0xe0000e93, 0x15593: 0xe0000e8f,
-	0x15594: 0xe0000eca, 0x15595: 0xe0000ec7, 0x15596: 0x002fe483, 0x15597: 0x402fe420,
-	0x15598: 0xe0000ed0, 0x15599: 0xe0000ecd, 0x1559a: 0xe0000f1f, 0x1559b: 0xe0000f1c,
-	0x1559c: 0xe0000f2d, 0x1559d: 0xe0000f2a, 0x1559e: 0xe0000f47, 0x1559f: 0xe0000f44,
-	0x155a0: 0x00302a83, 0x155a1: 0x40302a20, 0x155a2: 0xe0000f99, 0x155a3: 0xe0000f96,
-	0x155a4: 0xe0000f8a, 0x155a5: 0xe0000f87, 0x155a6: 0x00303688, 0x155a7: 0x40303620,
-	0x155a8: 0xe000102b, 0x155a9: 0xe0001028, 0x155aa: 0xe000103f, 0x155ab: 0xe000103c,
-	0x155ac: 0xe0000fe7, 0x155ad: 0xe0000fe4, 0x155ae: 0xe0000ff9, 0x155af: 0xe0000ff6,
-	0x155b0: 0xe0001025, 0x155b1: 0xe0001022, 0x155b2: 0xe0001039, 0x155b3: 0xe0001036,
-	0x155b4: 0xe00010d8, 0x155b5: 0xe00010d5, 0x155b6: 0xe000110e, 0x155b7: 0xe000110b,
-	0x155b8: 0xe0001117, 0x155b9: 0xe000113b, 0x155ba: 0xe0001138, 0x155bb: 0xe000114d,
-	0x155bc: 0xe000114a, 0x155bd: 0x00316283, 0x155be: 0x40316220, 0x155bf: 0xe0000f64,
-	// Block 0x557, offset 0x155c0
-	0x155c0: 0xe0000d24, 0x155c1: 0xe0000d21, 0x155c2: 0xe0000d2a, 0x155c3: 0xe0000d27,
-	0x155c4: 0xe0000d69, 0x155c5: 0xe0000d66, 0x155c6: 0xe0000d7b, 0x155c7: 0xe0000d78,
-	0x155c8: 0xe0000d87, 0x155c9: 0xe0000d84, 0x155ca: 0xe0000d81, 0x155cb: 0xe0000d7e,
-	0x155cc: 0xe0000ded, 0x155cd: 0xe0000de9, 0x155ce: 0xe0000df5, 0x155cf: 0xe0000df1,
-	0x155d0: 0xe0000e3d, 0x155d1: 0xe0000e39, 0x155d2: 0xe0000e35, 0x155d3: 0xe0000e31,
-	0x155d4: 0xe0000ea7, 0x155d5: 0xe0000ea4, 0x155d6: 0xe0000ead, 0x155d7: 0xe0000eaa,
-	0x155d8: 0xe0000ed6, 0x155d9: 0xe0000ed3, 0x155da: 0xe0000ef4, 0x155db: 0xe0000ef1,
-	0x155dc: 0xe0000efb, 0x155dd: 0xe0000ef7, 0x155de: 0xe0000f02, 0x155df: 0xe0000eff,
-	0x155e0: 0xe0000f41, 0x155e1: 0xe0000f3e, 0x155e2: 0xe0000f53, 0x155e3: 0xe0000f50,
-	0x155e4: 0xe0000f26, 0x155e5: 0xe0000f22, 0x155e6: 0xe000a594, 0x155e7: 0xe000a591,
-	0x155e8: 0xe0000f5a, 0x155e9: 0xe0000f56, 0x155ea: 0xe0000f93, 0x155eb: 0xe0000f90,
-	0x155ec: 0xe0000f9f, 0x155ed: 0xe0000f9c, 0x155ee: 0xe0000fb1, 0x155ef: 0xe0000fae,
-	0x155f0: 0xe0000fab, 0x155f1: 0xe0000fa8, 0x155f2: 0xe0001093, 0x155f3: 0xe0001090,
-	0x155f4: 0xe000109f, 0x155f5: 0xe000109c, 0x155f6: 0xe0001099, 0x155f7: 0xe0001096,
-	0x155f8: 0xe0001032, 0x155f9: 0xe000102e, 0x155fa: 0xe0001046, 0x155fb: 0xe0001042,
-	0x155fc: 0xe00010a9, 0x155fd: 0xe00010a6, 0x155fe: 0xe00010af, 0x155ff: 0xe00010ac,
-	// Block 0x558, offset 0x15600
-	0x15602: 0xe000a5ac, 0x15603: 0xa000f402,
-	0x15605: 0x40440220, 0x15606: 0x40440420, 0x15607: 0x40440620,
-	0x15608: 0x40440820, 0x15609: 0x40440a20, 0x1560a: 0x40440c20, 0x1560b: 0x40440e20,
-	0x1560c: 0x40441220, 0x1560e: 0x40441620, 0x1560f: 0x40441820,
-	0x15610: 0x40441a20, 0x15612: 0x40441c20, 0x15613: 0x40441e20,
-	0x15614: 0x40442020, 0x15615: 0xcad63cf1, 0x15616: 0x40442420, 0x15617: 0x40442620,
-	0x15618: 0x40442820, 0x15619: 0x40442a20, 0x1561a: 0x40442c20, 0x1561b: 0x40442e20,
-	0x1561c: 0x40443020, 0x1561d: 0x40443220, 0x1561e: 0x40443420, 0x1561f: 0x40443620,
-	0x15620: 0x40443820, 0x15621: 0x40443a20, 0x15622: 0x40443c20, 0x15623: 0xcad83d51,
-	0x15624: 0x40444020, 0x15625: 0x40444220, 0x15626: 0x40444420, 0x15627: 0x40444620,
-	0x15628: 0xcadc3cf1, 0x15629: 0x40444a20, 0x1562a: 0x40444c20, 0x1562b: 0x40444e20,
-	0x1562c: 0x40445020, 0x1562d: 0x40445220, 0x1562e: 0x40445420, 0x1562f: 0x40445620,
-	0x15630: 0xcade3cf1, 0x15631: 0x40446a20, 0x15632: 0xcae03cf1, 0x15633: 0xcae23cf1,
-	0x15634: 0x40446820, 0x15635: 0x40445c20, 0x15636: 0x40445e20, 0x15637: 0x40446020,
-	0x15638: 0x40446220, 0x15639: 0x40446420, 0x1563a: 0x40446c20,
-	0x1563d: 0xa000f502, 0x1563e: 0x40447020, 0x1563f: 0x40447220,
-	// Block 0x559, offset 0x15640
-	0x15640: 0x40447420, 0x15641: 0x40447620, 0x15642: 0x40447820, 0x15643: 0x40447a20,
-	0x15644: 0x40447c20, 0x15646: 0xcae403b1, 0x15647: 0xc0760401,
-	0x15648: 0x40448620, 0x1564a: 0x40448820, 0x1564b: 0x40448a20,
-	0x1564c: 0x00448c83, 0x1564d: 0x82092248, 0x1564e: 0xe000186c,
-	0x15657: 0x40448c20,
-	0x15660: 0x40441020, 0x15661: 0x40441420, 0x15662: 0x40447e20, 0x15663: 0x40448020,
-	0x15666: 0xe0000185, 0x15667: 0xe0000216,
-	0x15668: 0xe0000331, 0x15669: 0xe000040b, 0x1566a: 0xe00004e0, 0x1566b: 0xe00005aa,
-	0x1566c: 0xe0000675, 0x1566d: 0xe000071d, 0x1566e: 0xe00007c9, 0x1566f: 0xe000086e,
-	0x15670: 0x40285a20, 0x15671: 0x40285c20, 0x15672: 0x40285e20, 0x15673: 0x40286020,
-	0x15674: 0x40286220, 0x15675: 0x40286420,
-	0x15679: 0x40074e20, 0x1567a: 0xe000a5a0, 0x1567b: 0xcada3dc1,
-	0x1567c: 0xe000a5b2, 0x1567d: 0xe000a5b8, 0x1567e: 0xe000a5be, 0x1567f: 0xe000a59a,
-	// Block 0x55a, offset 0x15680
-	0x15680: 0xa000f202, 0x15681: 0x403fba21, 0x15682: 0x403fba20, 0x15683: 0x403fbc20,
-	0x15684: 0x403fbc20, 0x15685: 0x403fbe20, 0x15686: 0x403fc020, 0x15687: 0x403fcc20,
-	0x15688: 0x403fce20, 0x15689: 0x403fd020, 0x1568a: 0x403fd220, 0x1568b: 0x403fd420,
-	0x1568c: 0x403fd820, 0x1568d: 0x403fdc20, 0x1568e: 0x403fde20, 0x1568f: 0x403fe020,
-	0x15690: 0x403fe220, 0x15691: 0x403fe420, 0x15692: 0x403fe620, 0x15693: 0x403fe820,
-	0x15694: 0x403fea20, 0x15695: 0xca983ba1, 0x15696: 0x403fee20, 0x15697: 0x403ff020,
-	0x15698: 0x403ff420, 0x15699: 0x403ff620, 0x1569a: 0x403ff820, 0x1569b: 0x403ffa20,
-	0x1569c: 0xcae73df1, 0x1569d: 0x40400220, 0x1569e: 0x40400420, 0x1569f: 0x40400620,
-	0x156a0: 0x40400820, 0x156a1: 0x40400a20, 0x156a2: 0x40400e20, 0x156a3: 0x40401020,
-	0x156a4: 0x40401220, 0x156a5: 0x40401420, 0x156a6: 0x40401620, 0x156a7: 0x40401820,
-	0x156a8: 0x40401a20, 0x156a9: 0xe0001830, 0x156aa: 0x40401c20, 0x156ab: 0x40401e20,
-	0x156ac: 0x40402020, 0x156ad: 0x40402420, 0x156ae: 0x40402620, 0x156af: 0x40402820,
-	0x156b0: 0x40402c20, 0x156b1: 0xe0001839, 0x156b2: 0x40402e20, 0x156b3: 0x40403c20,
-	0x156b4: 0xe000a54f, 0x156b5: 0x40403220, 0x156b6: 0x40403420, 0x156b7: 0x40403620,
-	0x156b8: 0x40403820, 0x156b9: 0x40403a20, 0x156ba: 0x40404c20, 0x156bb: 0x40404e20,
-	0x156bc: 0xa070f102, 0x156bd: 0x40403c20, 0x156be: 0x40404a20, 0x156bf: 0x40405620,
-	// Block 0x55b, offset 0x156c0
-	0x156c0: 0xa0000000, 0x156c1: 0xa0000000, 0x156c2: 0xa0000000, 0x156c3: 0xa0000000,
-	0x156c4: 0xa0000000, 0x156c5: 0xa0000000, 0x156c6: 0xa0000000, 0x156c7: 0xa0000000,
-	0x156c8: 0xa0000000, 0x156c9: 0x40020020, 0x156ca: 0x40020220, 0x156cb: 0x40020420,
-	0x156cc: 0x40020620, 0x156cd: 0x40020820, 0x156ce: 0xa0000000, 0x156cf: 0xa0000000,
-	0x156d0: 0xa0000000, 0x156d1: 0xa0000000, 0x156d2: 0xa0000000, 0x156d3: 0xa0000000,
-	0x156d4: 0xa0000000, 0x156d5: 0xa0000000, 0x156d6: 0xa0000000, 0x156d7: 0xa0000000,
-	0x156d8: 0xa0000000, 0x156d9: 0xa0000000, 0x156da: 0xa0000000, 0x156db: 0xa0000000,
-	0x156dc: 0xa0000000, 0x156dd: 0xa0000000, 0x156de: 0xa0000000, 0x156df: 0xa0000000,
-	0x156e0: 0x40021220, 0x156e1: 0x4002ba20, 0x156e2: 0x4003e020, 0x156e3: 0x4004ea20,
-	0x156e4: 0x4027de20, 0x156e5: 0x4004ec20, 0x156e6: 0x4004e620, 0x156e7: 0x4003d220,
-	0x156e8: 0x4003f420, 0x156e9: 0x4003f620, 0x156ea: 0x4004d820, 0x156eb: 0x40093820,
-	0x156ec: 0x40024020, 0x156ed: 0x40021a20, 0x156ee: 0x4002e420, 0x156ef: 0x4004e220,
-	0x156f0: 0x4029cc20, 0x156f1: 0x4029ce20, 0x156f2: 0x4029d020, 0x156f3: 0x4029d220,
-	0x156f4: 0x4029d420, 0x156f5: 0x4029d620, 0x156f6: 0x4029d820, 0x156f7: 0x4029da20,
-	0x156f8: 0x4029dc20, 0x156f9: 0x4029de20, 0x156fa: 0x40026c20, 0x156fb: 0x40026220,
-	0x156fc: 0x40094020, 0x156fd: 0x40094220, 0x156fe: 0x40094420, 0x156ff: 0x4002c420,
-	// Block 0x55c, offset 0x15700
-	0x15700: 0x4004d620, 0x15701: 0x002bde88, 0x15702: 0x002c0a88, 0x15703: 0xcae90931,
-	0x15704: 0x002c6288, 0x15705: 0x002c9888, 0x15706: 0x002d0888, 0x15707: 0xcaed3e52,
-	0x15708: 0x002d6888, 0x15709: 0x002d9a88, 0x1570a: 0x002dcc88, 0x1570b: 0x002dfe88,
-	0x1570c: 0xc0030002, 0x1570d: 0x002e8288, 0x1570e: 0x002e9e88, 0x1570f: 0x002ee288,
-	0x15710: 0x002f2c88, 0x15711: 0x002f5688, 0x15712: 0x002f7a88, 0x15713: 0x002fe688,
-	0x15714: 0x00302c88, 0x15715: 0x00306c88, 0x15716: 0x0030be88, 0x15717: 0x0030e288,
-	0x15718: 0x0030f688, 0x15719: 0x00310088, 0x1571a: 0xcaf50931, 0x1571b: 0x4003f820,
-	0x1571c: 0x4004e420, 0x1571d: 0x4003fa20, 0x1571e: 0x40062420, 0x1571f: 0x40021620,
-	0x15720: 0x40061e20, 0x15721: 0x402bde20, 0x15722: 0x402c0a20, 0x15723: 0xcaeb0931,
-	0x15724: 0x402c6220, 0x15725: 0x402c9820, 0x15726: 0x402d0820, 0x15727: 0xcaf13e52,
-	0x15728: 0x402d6820, 0x15729: 0x402d9a20, 0x1572a: 0x402dcc20, 0x1572b: 0x402dfe20,
-	0x1572c: 0xc0000002, 0x1572d: 0x402e8220, 0x1572e: 0x402e9e20, 0x1572f: 0x402ee220,
-	0x15730: 0x402f2c20, 0x15731: 0x402f5620, 0x15732: 0x402f7a20, 0x15733: 0x402fe620,
-	0x15734: 0x40302c20, 0x15735: 0x40306c20, 0x15736: 0x4030be20, 0x15737: 0x4030e220,
-	0x15738: 0x4030f620, 0x15739: 0x40310020, 0x1573a: 0xcaf70931, 0x1573b: 0x4003fc20,
-	0x1573c: 0x40094820, 0x1573d: 0x4003fe20, 0x1573e: 0x40094c20, 0x1573f: 0xa0000000,
-	// Block 0x55d, offset 0x15740
-	0x15740: 0xe0000983, 0x15741: 0xe0000980, 0x15742: 0xe00008fb, 0x15743: 0xe00008f8,
-	0x15744: 0xe000097d, 0x15745: 0xe000097a, 0x15746: 0xe0000a38, 0x15747: 0xe0000a35,
-	0x15748: 0xe0000a3e, 0x15749: 0xe0000a3b, 0x1574a: 0x402c3820, 0x1574b: 0x002c3883,
-	0x1574c: 0xe0000a44, 0x1574d: 0xe0000a41, 0x1574e: 0xe0000a86, 0x1574f: 0xe0000a83,
-	0x15750: 0xe0000aaa, 0x15751: 0xe0000aa7, 0x15752: 0xe0000b46, 0x15753: 0xe0000b43,
-	0x15754: 0xe0000aee, 0x15755: 0xe0000aeb, 0x15756: 0xe0000b2c, 0x15757: 0xe0000b29,
-	0x15758: 0xe0000b40, 0x15759: 0xe0000b3d, 0x1575a: 0xe0000b1a, 0x1575b: 0xe0000b17,
-	0x1575c: 0xe0000bb8, 0x1575d: 0xe0000bb5, 0x1575e: 0xe0000bb2, 0x1575f: 0xe0000baf,
-	0x15760: 0x402d2020, 0x15761: 0x002d2083, 0x15762: 0xe0000bca, 0x15763: 0xe0000bc7,
-	0x15764: 0xe0000bee, 0x15765: 0xe0000beb, 0x15766: 0x402d9820, 0x15767: 0x002d9883,
-	0x15768: 0xe0000c51, 0x15769: 0xe0000c4e, 0x1576a: 0xe0000c60, 0x1576b: 0xe0000c5d,
-	0x1576c: 0xe0000c31, 0x1576d: 0xe0000c2e, 0x1576e: 0xe0000c5a, 0x1576f: 0xe0000c57,
-	0x15770: 0xe0000c54, 0x15771: 0x402da220, 0x15772: 0xf0000a0a, 0x15773: 0xf0000404,
-	0x15774: 0xe0000c8a, 0x15775: 0xe0000c87, 0x15776: 0xe0000c9f, 0x15777: 0xe0000c9c,
-	0x15778: 0x402f7220, 0x15779: 0xe0000ccc, 0x1577a: 0xe0000cc9, 0x1577b: 0xe0000cd8,
-	0x1577c: 0xe0000cd5, 0x1577d: 0xe0000cd2, 0x1577e: 0xe0000ccf, 0x1577f: 0xe0000d04,
-	// Block 0x55e, offset 0x15780
-	0x15780: 0xe0000cfe, 0x15781: 0xe0000cf8, 0x15782: 0xe0000cf5, 0x15783: 0xe0000d51,
-	0x15784: 0xe0000d4e, 0x15785: 0xe0000d6f, 0x15786: 0xe0000d6c, 0x15787: 0xe0000d5d,
-	0x15788: 0xe0000d5a, 0x15789: 0xf0000404, 0x1578a: 0x002eda88, 0x1578b: 0x402eda20,
-	0x1578c: 0xe0000e2e, 0x1578d: 0xe0000e2b, 0x1578e: 0xe0000da0, 0x1578f: 0xe0000d9d,
-	0x15790: 0xe0000de0, 0x15791: 0xe0000ddd, 0x15792: 0xe0000e93, 0x15793: 0xe0000e8f,
-	0x15794: 0xe0000eca, 0x15795: 0xe0000ec7, 0x15796: 0xe0000edc, 0x15797: 0xe0000ed9,
-	0x15798: 0xe0000ed0, 0x15799: 0xe0000ecd, 0x1579a: 0xe0000f1f, 0x1579b: 0xe0000f1c,
-	0x1579c: 0xe0000f2d, 0x1579d: 0xe0000f2a, 0x1579e: 0xe0000f47, 0x1579f: 0xe0000f44,
-	0x157a0: 0xe0000f33, 0x157a1: 0xe0000f30, 0x157a2: 0xe0000f99, 0x157a3: 0xe0000f96,
-	0x157a4: 0xe0000f8a, 0x157a5: 0xe0000f87, 0x157a6: 0x00303688, 0x157a7: 0x40303620,
-	0x157a8: 0xe000102b, 0x157a9: 0xe0001028, 0x157aa: 0xe000103f, 0x157ab: 0xe000103c,
-	0x157ac: 0xe0000fe7, 0x157ad: 0xe0000fe4, 0x157ae: 0xe0000ff9, 0x157af: 0xe0000ff6,
-	0x157b0: 0xe0001025, 0x157b1: 0xe0001022, 0x157b2: 0xe0001039, 0x157b3: 0xe0001036,
-	0x157b4: 0xe00010d8, 0x157b5: 0xe00010d5, 0x157b6: 0xe000110e, 0x157b7: 0xe000110b,
-	0x157b8: 0xe0001117, 0x157b9: 0xe000113b, 0x157ba: 0xe0001138, 0x157bb: 0x40312820,
-	0x157bc: 0x00312883, 0x157bd: 0xe0001147, 0x157be: 0xe0001144, 0x157bf: 0xe0000f64,
-	// Block 0x55f, offset 0x157c0
-	0x157c0: 0xe00009bc, 0x157c1: 0xe00009c0, 0x157c2: 0x002c3a8b, 0x157c3: 0xf0000a04,
-	0x157c4: 0x40081c20, 0x157c5: 0xe0000a5e, 0x157c6: 0xe0000a62, 0x157c7: 0x002cc28a,
-	0x157c8: 0x40081e20, 0x157c9: 0xf0000a04, 0x157ca: 0x002d2285, 0x157cb: 0x002d688b,
-	0x157cc: 0x002d688b, 0x157cd: 0x002d688b, 0x157ce: 0x002d6885, 0x157cf: 0xe000a5c1,
-	0x157d0: 0x002d9a8b, 0x157d1: 0x002d9a8b, 0x157d2: 0x002e228b, 0x157d3: 0x002e2285,
-	0x157d4: 0x40082020, 0x157d5: 0x002e9e8b, 0x157d6: 0xf000040a, 0x157d7: 0x40082220,
-	0x157d8: 0x40082420, 0x157d9: 0x002f2c8b, 0x157da: 0x002f568b, 0x157db: 0x002f7a8b,
-	0x157dc: 0x002f7a8b, 0x157dd: 0x002f7a8b, 0x157de: 0x40082620, 0x157df: 0x40082820,
-	0x157e0: 0xf0001414, 0x157e1: 0xe0000fbd, 0x157e2: 0xf0001414, 0x157e3: 0x40082a20,
-	0x157e4: 0x00312a8b, 0x157e5: 0x40082c20, 0x157e6: 0x0032a288, 0x157e7: 0x40082e20,
-	0x157e8: 0x00312a8b, 0x157e9: 0x40083020, 0x157ea: 0x002dfe88, 0x157eb: 0xe000094d,
-	0x157ec: 0x002c0a8b, 0x157ed: 0x002c3a8b, 0x157ee: 0x40083220, 0x157ef: 0x002c9885,
-	0x157f0: 0x002c988b, 0x157f1: 0x002d088b, 0x157f2: 0x002d1e88, 0x157f3: 0x002e828b,
-	0x157f4: 0x002ee285, 0x157f5: 0x00389084, 0x157f6: 0x00389284, 0x157f7: 0x00389484,
-	0x157f8: 0x00389684, 0x157f9: 0x002d9a85, 0x157fa: 0x40083420, 0x157fb: 0xe0000b95,
-	0x157fc: 0x00327e85, 0x157fd: 0x00325685, 0x157fe: 0x0032568b, 0x157ff: 0x00327e8b,
-	// Block 0x560, offset 0x15800
-	0x15838: 0xe000a5c4, 0x15839: 0xe0000e97, 0x1583a: 0x4030a820, 0x1583b: 0x402d2020,
-	0x1583c: 0x402f4a20, 0x1583d: 0x402e9820, 0x1583e: 0x402db220, 0x1583f: 0x402e9a20,
-	// Block 0x561, offset 0x15840
-	0x15840: 0xccd58051, 0x15841: 0xcda08051, 0x15842: 0xcda38051, 0x15843: 0xcda88051,
-	0x15844: 0xcdab9311, 0x15845: 0xcdae8051, 0x15846: 0xcdb18051, 0x15847: 0xcdb48051,
-	0x15848: 0xcdb79371, 0x15849: 0xcdb98051, 0x1584a: 0xcdbc8051, 0x1584b: 0xcdbf8051,
-	0x1584c: 0xcdc28051, 0x1584d: 0xcdc58051, 0x1584e: 0xcdc88051, 0x1584f: 0xcdcb8051,
-	0x15850: 0xcdce8051, 0x15851: 0xcaf93e91, 0x15852: 0xcdd18051, 0x15853: 0xcdd48051,
-	0x15854: 0xcafd3f91, 0x15855: 0xcdd78051, 0x15856: 0xcdda8051, 0x15857: 0xcddd8051,
-	0x15858: 0xcde08051, 0x15859: 0xcde38051, 0x1585a: 0xcde68051, 0x1585b: 0xcde98051,
-	0x1585c: 0xcb014061, 0x1585d: 0xcdec9371, 0x1585e: 0xcb084261, 0x1585f: 0xcdee8051,
-	0x15860: 0xcdf19371, 0x15861: 0xcdf39371, 0x15862: 0x404ec420, 0x15863: 0xe000a600,
-	0x15864: 0xe000a606, 0x15865: 0xcb0c4301, 0x15866: 0xe000a610, 0x15867: 0xe000a613,
-	0x15868: 0xe000a616, 0x15869: 0xcb0f4371, 0x1586a: 0xe000a8ed, 0x1586b: 0xcd198081,
-	0x1586c: 0xccd88081, 0x1586d: 0xcc4e6de1, 0x1586e: 0x404eea20, 0x1586f: 0xcd5a8951,
-	0x15870: 0x404ef420, 0x15871: 0xcb8852f1, 0x15872: 0x404f0620, 0x15873: 0x404eec20,
-	0x15874: 0x404f0a20, 0x15875: 0x404f0220, 0x15876: 0x404f0c20, 0x15877: 0xcda692e1,
-	0x15878: 0x404f3020, 0x15879: 0x8209278a, 0x1587a: 0x8209278b, 0x1587b: 0xcdf593a1,
-	0x1587c: 0xcdf993a1, 0x1587d: 0xcdfd9411, 0x1587e: 0x40510e20, 0x1587f: 0xe000a5fc,
-	// Block 0x562, offset 0x15880
-	0x15880: 0xe00001ac, 0x15881: 0xe0000240, 0x15882: 0xe0000358, 0x15883: 0xe0000432,
-	0x15884: 0xe0000507, 0x15885: 0xe00005d1, 0x15886: 0xe000069c, 0x15887: 0xe0000744,
-	0x15888: 0xe00007f0, 0x15889: 0xe0000895, 0x1588a: 0x40032220, 0x1588b: 0x40032420,
-	0x1588c: 0xe000a5d4, 0x1588d: 0xe000a5db, 0x1588e: 0xcb0641d1, 0x1588f: 0xe000a603,
-	0x15890: 0x404ea020, 0x15891: 0x404ea220, 0x15892: 0x404ece20, 0x15893: 0x404ed020,
-	0x15894: 0x404ed220, 0x15895: 0x404ed420, 0x15896: 0x404ef620, 0x15897: 0x404ef820,
-	0x15898: 0x404efa20, 0x15899: 0x404efc20, 0x1589a: 0x404e2620, 0x1589b: 0x404e3c20,
-	0x1589c: 0x404eb820, 0x1589d: 0x404eba20, 0x1589e: 0x40510020, 0x1589f: 0x40510220,
-	0x158a0: 0x40510820, 0x158a1: 0x404e4020, 0x158a2: 0x404f0c20, 0x158a3: 0x404f1820,
-	0x158a4: 0x404f1a20, 0x158a5: 0x404ea420, 0x158a6: 0x404ec020, 0x158a7: 0x404f0e20,
-	0x158a8: 0x404f1020, 0x158a9: 0x404f1c20, 0x158aa: 0x404f1e20, 0x158ab: 0x404f2020,
-	0x158ac: 0x404f2220, 0x158ad: 0x404f2420, 0x158ae: 0x404e5c20, 0x158af: 0x404ebc20,
-	0x158b0: 0x404ebe20, 0x158b1: 0x404ee820, 0x158b2: 0x404ee220, 0x158b3: 0x404ef020,
-	0x158b4: 0x404ef220, 0x158b5: 0x404e1620, 0x158b6: 0x404e1a20, 0x158b7: 0x404e1e20,
-	0x158b8: 0x404e2a20, 0x158b9: 0x404e3620, 0x158ba: 0x404e4420, 0x158bb: 0x404e6420,
-	0x158bc: 0x404e6c20, 0x158bd: 0x404e7620, 0x158be: 0x404e7820, 0x158bf: 0x404e8020,
-	// Block 0x563, offset 0x158c0
-	0x158c0: 0x404e9e20, 0x158c1: 0x404eac20, 0x158c2: 0x40510c20, 0x158c3: 0x404ee020,
-	0x158c4: 0x404f0020, 0x158c5: 0x404f0420, 0x158c6: 0x404f1220, 0x158c7: 0x404f2620,
-	0x158c8: 0x404f2a20, 0x158c9: 0x404f2e20, 0x158ca: 0x404f3020, 0x158cb: 0x404f2820,
-	0x158cc: 0x404f2c20, 0x158cd: 0xadc11302, 0x158ce: 0x404e7c20, 0x158cf: 0x404f3220,
-	0x158d0: 0xe00001af, 0x158d1: 0xe0000243, 0x158d2: 0xe000035b, 0x158d3: 0xe0000435,
-	0x158d4: 0xe000050a, 0x158d5: 0xe00005d4, 0x158d6: 0xe000069f, 0x158d7: 0xe0000747,
-	0x158d8: 0xe00007f3, 0x158d9: 0xe0000898, 0x158da: 0x404f3420, 0x158db: 0x404f3620,
-	0x158dc: 0x404ee420, 0x158dd: 0x404f0820, 0x158de: 0x4007a820, 0x158df: 0x4007aa20,
-	0x158e0: 0x00379888, 0x158e1: 0x00379c88, 0x158e2: 0x0037a088, 0x158e3: 0x0037a488,
-	0x158e4: 0x0037a888, 0x158e5: 0x0037ac88, 0x158e6: 0x0037b088, 0x158e7: 0x0037b888,
-	0x158e8: 0x0037bc88, 0x158e9: 0x0037c088, 0x158ea: 0x0037c488, 0x158eb: 0x0037c888,
-	0x158ec: 0x0037cc88, 0x158ed: 0x0037d488, 0x158ee: 0x0037d888, 0x158ef: 0x0037dc88,
-	0x158f0: 0x0037e088, 0x158f1: 0x0037e488, 0x158f2: 0x0037e888, 0x158f3: 0x0037f088,
-	0x158f4: 0x0037f488, 0x158f5: 0x0037f888, 0x158f6: 0x0037fc88, 0x158f7: 0x00380088,
-	0x158f8: 0x00380488, 0x158f9: 0x00380888, 0x158fa: 0x00380c88, 0x158fb: 0x00381088,
-	0x158fc: 0x00381488, 0x158fd: 0x00381888, 0x158fe: 0x00381c88, 0x158ff: 0x00382488,
-	// Block 0x564, offset 0x15900
-	0x15900: 0xa0000000, 0x15901: 0xa0000000, 0x15902: 0xa0000000, 0x15903: 0xa0000000,
-	0x15904: 0xa0000000, 0x15905: 0xa0000000, 0x15906: 0xa0000000, 0x15907: 0xa0000000,
-	0x15908: 0xa0000000, 0x15909: 0x40020020, 0x1590a: 0x40020220, 0x1590b: 0x40020420,
-	0x1590c: 0x40020620, 0x1590d: 0x40020820, 0x1590e: 0xa0000000, 0x1590f: 0xa0000000,
-	0x15910: 0xa0000000, 0x15911: 0xa0000000, 0x15912: 0xa0000000, 0x15913: 0xa0000000,
-	0x15914: 0xa0000000, 0x15915: 0xa0000000, 0x15916: 0xa0000000, 0x15917: 0xa0000000,
-	0x15918: 0xa0000000, 0x15919: 0xa0000000, 0x1591a: 0xa0000000, 0x1591b: 0xa0000000,
-	0x1591c: 0xa0000000, 0x1591d: 0xa0000000, 0x1591e: 0xa0000000, 0x1591f: 0xa0000000,
-	0x15920: 0x40021220, 0x15921: 0x4002ba20, 0x15922: 0x4003e020, 0x15923: 0x4004ea20,
-	0x15924: 0x4027de20, 0x15925: 0x4004ec20, 0x15926: 0x4004e620, 0x15927: 0x4003d220,
-	0x15928: 0x4003f420, 0x15929: 0x4003f620, 0x1592a: 0x4004d820, 0x1592b: 0x40093820,
-	0x1592c: 0x40024020, 0x1592d: 0x40021a20, 0x1592e: 0x4002e420, 0x1592f: 0x4004e220,
-	0x15930: 0x4029cc20, 0x15931: 0x4029ce20, 0x15932: 0x4029d020, 0x15933: 0x4029d220,
-	0x15934: 0x4029d420, 0x15935: 0x4029d620, 0x15936: 0x4029d820, 0x15937: 0x4029da20,
-	0x15938: 0x4029dc20, 0x15939: 0x4029de20, 0x1593a: 0x40026c20, 0x1593b: 0x40026220,
-	0x1593c: 0x40094020, 0x1593d: 0x40094220, 0x1593e: 0x40094420, 0x1593f: 0x4002c420,
-	// Block 0x565, offset 0x15940
-	0x15940: 0x4004d620, 0x15941: 0xce030b93, 0x15942: 0x002c0a88, 0x15943: 0x002c3a88,
-	0x15944: 0x002c6288, 0x15945: 0xc39e0be1, 0x15946: 0x002d0888, 0x15947: 0x002d2288,
-	0x15948: 0x002d6888, 0x15949: 0x002d9a88, 0x1594a: 0x002dcc88, 0x1594b: 0x002dfe88,
-	0x1594c: 0xc0030002, 0x1594d: 0x002e8288, 0x1594e: 0x002e9e88, 0x1594f: 0xc3a30b21,
-	0x15950: 0x002f2c88, 0x15951: 0x002f5688, 0x15952: 0x002f7a88, 0x15953: 0x002fe688,
-	0x15954: 0x00302c88, 0x15955: 0xc3900b21, 0x15956: 0x0030be88, 0x15957: 0x0030e288,
-	0x15958: 0x0030f688, 0x15959: 0x00310088, 0x1595a: 0x00312a88, 0x1595b: 0x4003f820,
-	0x1595c: 0x4004e420, 0x1595d: 0x4003fa20, 0x1595e: 0x40062420, 0x1595f: 0x40021620,
-	0x15960: 0x40061e20, 0x15961: 0xcdff0b52, 0x15962: 0x402c0a20, 0x15963: 0x402c3a20,
-	0x15964: 0x402c6220, 0x15965: 0xc39c0be1, 0x15966: 0x402d0820, 0x15967: 0x402d2220,
-	0x15968: 0x402d6820, 0x15969: 0x402d9a20, 0x1596a: 0x402dcc20, 0x1596b: 0x402dfe20,
-	0x1596c: 0xc0000002, 0x1596d: 0x402e8220, 0x1596e: 0x402e9e20, 0x1596f: 0xc3a00b21,
-	0x15970: 0x402f2c20, 0x15971: 0x402f5620, 0x15972: 0x402f7a20, 0x15973: 0x402fe620,
-	0x15974: 0x40302c20, 0x15975: 0xc38d0b21, 0x15976: 0x4030be20, 0x15977: 0x4030e220,
-	0x15978: 0x4030f620, 0x15979: 0x40310020, 0x1597a: 0x40312a20, 0x1597b: 0x4003fc20,
-	0x1597c: 0x40094820, 0x1597d: 0x4003fe20, 0x1597e: 0x40094c20, 0x1597f: 0xa0000000,
-	// Block 0x566, offset 0x15980
-	0x15980: 0xa0000000, 0x15981: 0xa0000000, 0x15982: 0xa0000000, 0x15983: 0xa0000000,
-	0x15984: 0xa0000000, 0x15985: 0xa0000000, 0x15986: 0xa0000000, 0x15987: 0xa0000000,
-	0x15988: 0xa0000000, 0x15989: 0x40020020, 0x1598a: 0x40020220, 0x1598b: 0x40020420,
-	0x1598c: 0x40020620, 0x1598d: 0x40020820, 0x1598e: 0xa0000000, 0x1598f: 0xa0000000,
-	0x15990: 0xa0000000, 0x15991: 0xa0000000, 0x15992: 0xa0000000, 0x15993: 0xa0000000,
-	0x15994: 0xa0000000, 0x15995: 0xa0000000, 0x15996: 0xa0000000, 0x15997: 0xa0000000,
-	0x15998: 0xa0000000, 0x15999: 0xa0000000, 0x1599a: 0xa0000000, 0x1599b: 0xa0000000,
-	0x1599c: 0xa0000000, 0x1599d: 0xa0000000, 0x1599e: 0xa0000000, 0x1599f: 0xa0000000,
-	0x159a0: 0x40021220, 0x159a1: 0x4002ba20, 0x159a2: 0x4003e020, 0x159a3: 0x4004ea20,
-	0x159a4: 0x4027de20, 0x159a5: 0x4004ec20, 0x159a6: 0x4004e620, 0x159a7: 0x4003d220,
-	0x159a8: 0x4003f420, 0x159a9: 0x4003f620, 0x159aa: 0x4004d820, 0x159ab: 0x40093820,
-	0x159ac: 0x40024020, 0x159ad: 0x40021a20, 0x159ae: 0x4002e420, 0x159af: 0x4004e220,
-	0x159b0: 0x4029cc20, 0x159b1: 0x4029ce20, 0x159b2: 0x4029d020, 0x159b3: 0x4029d220,
-	0x159b4: 0x4029d420, 0x159b5: 0x4029d620, 0x159b6: 0x4029d820, 0x159b7: 0x4029da20,
-	0x159b8: 0x4029dc20, 0x159b9: 0x4029de20, 0x159ba: 0x40026c20, 0x159bb: 0x40026220,
-	0x159bc: 0x40094020, 0x159bd: 0x40094220, 0x159be: 0x40094420, 0x159bf: 0x4002c420,
-	// Block 0x567, offset 0x159c0
-	0x159c0: 0x4004d620, 0x159c1: 0x002bde88, 0x159c2: 0x002c0a88, 0x159c3: 0x002c3a88,
-	0x159c4: 0x002c6288, 0x159c5: 0xce0a2741, 0x159c6: 0x002d0888, 0x159c7: 0x002d2288,
-	0x159c8: 0x002d6888, 0x159c9: 0x002d9a88, 0x159ca: 0x002dcc88, 0x159cb: 0x002dfe88,
-	0x159cc: 0xc0030002, 0x159cd: 0x002e8288, 0x159ce: 0x002e9e88, 0x159cf: 0xc33f2741,
-	0x159d0: 0x002f2c88, 0x159d1: 0x002f5688, 0x159d2: 0x002f7a88, 0x159d3: 0xc3430991,
-	0x159d4: 0x00302c88, 0x159d5: 0x00306c88, 0x159d6: 0x0030be88, 0x159d7: 0x0030e288,
-	0x159d8: 0x0030f688, 0x159d9: 0x00310088, 0x159da: 0x00312a88, 0x159db: 0x4003f820,
-	0x159dc: 0x4004e420, 0x159dd: 0x4003fa20, 0x159de: 0x40062420, 0x159df: 0x40021620,
-	0x159e0: 0x40061e20, 0x159e1: 0x402bde20, 0x159e2: 0x402c0a20, 0x159e3: 0x402c3a20,
-	0x159e4: 0x402c6220, 0x159e5: 0xce082741, 0x159e6: 0x402d0820, 0x159e7: 0x402d2220,
-	0x159e8: 0x402d6820, 0x159e9: 0x402d9a20, 0x159ea: 0x402dcc20, 0x159eb: 0x402dfe20,
-	0x159ec: 0xc0000002, 0x159ed: 0x402e8220, 0x159ee: 0x402e9e20, 0x159ef: 0xc33d2741,
-	0x159f0: 0x402f2c20, 0x159f1: 0x402f5620, 0x159f2: 0x402f7a20, 0x159f3: 0xc3410991,
-	0x159f4: 0x40302c20, 0x159f5: 0x40306c20, 0x159f6: 0x4030be20, 0x159f7: 0x4030e220,
-	0x159f8: 0x4030f620, 0x159f9: 0x40310020, 0x159fa: 0x40312a20, 0x159fb: 0x4003fc20,
-	0x159fc: 0x40094820, 0x159fd: 0x4003fe20, 0x159fe: 0x40094c20, 0x159ff: 0xa0000000,
-	// Block 0x568, offset 0x15a00
-	0x15a00: 0xe00008f5, 0x15a01: 0xe00008ef, 0x15a02: 0xe0000921, 0x15a03: 0xe0000969,
-	0x15a04: 0xe000095b, 0x15a05: 0xe000094d, 0x15a06: 0xe00009dd, 0x15a07: 0xe0000a53,
-	0x15a08: 0xe0000ae8, 0x15a09: 0xe0000ae2, 0x15a0a: 0x002c9a83, 0x15a0b: 0xe0000b20,
-	0x15a0c: 0xe0000c2b, 0x15a0d: 0xe0000c25, 0x15a0e: 0xe0000c37, 0x15a0f: 0xe0000c43,
-	0x15a10: 0xe0000ab3, 0x15a11: 0xe0000d63, 0x15a12: 0xe0000d9a, 0x15a13: 0xe0000d94,
-	0x15a14: 0x002ee483, 0x15a15: 0xe0000de6, 0x15a16: 0xe0000dd2, 0x15a17: 0x40093e20,
-	0x15a18: 0xe0000e12, 0x15a19: 0xe0000fe1, 0x15a1a: 0xe0000fdb, 0x15a1b: 0xe0000fed,
-	0x15a1c: 0xe0000fff, 0x15a1d: 0xe0001102, 0x15a1e: 0x00318888, 0x15a1f: 0xe0000f7b,
-	0x15a20: 0xe00008f2, 0x15a21: 0xe00008ec, 0x15a22: 0xe000091e, 0x15a23: 0xe0000966,
-	0x15a24: 0xe0000958, 0x15a25: 0xe000094a, 0x15a26: 0xe00009d5, 0x15a27: 0xe0000a4d,
-	0x15a28: 0xe0000ae5, 0x15a29: 0xe0000adf, 0x15a2a: 0x402c9a20, 0x15a2b: 0xe0000b1d,
-	0x15a2c: 0xe0000c28, 0x15a2d: 0xe0000c22, 0x15a2e: 0xe0000c34, 0x15a2f: 0xe0000c40,
-	0x15a30: 0xe0000aad, 0x15a31: 0xe0000d60, 0x15a32: 0xe0000d97, 0x15a33: 0xe0000d91,
-	0x15a34: 0x402ee420, 0x15a35: 0xe0000de3, 0x15a36: 0xe0000dcf, 0x15a37: 0x40093c20,
-	0x15a38: 0xe0000e0f, 0x15a39: 0xe0000fde, 0x15a3a: 0xe0000fd8, 0x15a3b: 0xe0000fea,
-	0x15a3c: 0xe0000ffc, 0x15a3d: 0xe00010ff, 0x15a3e: 0x40318820, 0x15a3f: 0xe0001114,
-	// Block 0x569, offset 0x15a40
-	0x15a40: 0xe0000cfe, 0x15a41: 0xe0000cf8, 0x15a42: 0xe0000cf5, 0x15a43: 0xe0000d51,
-	0x15a44: 0xe0000d4e, 0x15a45: 0xe0000d6f, 0x15a46: 0xe0000d6c, 0x15a47: 0xe0000d5d,
-	0x15a48: 0xe0000d5a, 0x15a49: 0xf0000404, 0x15a4a: 0x002eda88, 0x15a4b: 0x402eda20,
-	0x15a4c: 0xe0000e2e, 0x15a4d: 0xe0000e2b, 0x15a4e: 0xe0000da0, 0x15a4f: 0xe0000d9d,
-	0x15a50: 0xe0000de0, 0x15a51: 0xe0000ddd, 0x15a52: 0xe0000e93, 0x15a53: 0xe0000e8f,
-	0x15a54: 0xe0000eca, 0x15a55: 0xe0000ec7, 0x15a56: 0xe0000edc, 0x15a57: 0xe0000ed9,
-	0x15a58: 0xe0000ed0, 0x15a59: 0xe0000ecd, 0x15a5a: 0xe0000f1f, 0x15a5b: 0xe0000f1c,
-	0x15a5c: 0xe0000f2d, 0x15a5d: 0xe0000f2a, 0x15a5e: 0xe0000f47, 0x15a5f: 0xe0000f44,
-	0x15a60: 0x002fe883, 0x15a61: 0x402fe820, 0x15a62: 0xe0000f99, 0x15a63: 0xe0000f96,
-	0x15a64: 0xe0000f8a, 0x15a65: 0xe0000f87, 0x15a66: 0x00303688, 0x15a67: 0x40303620,
-	0x15a68: 0xe000102b, 0x15a69: 0xe0001028, 0x15a6a: 0xe000103f, 0x15a6b: 0xe000103c,
-	0x15a6c: 0xe0000fe7, 0x15a6d: 0xe0000fe4, 0x15a6e: 0xe0000ff9, 0x15a6f: 0xe0000ff6,
-	0x15a70: 0xe0001025, 0x15a71: 0xe0001022, 0x15a72: 0xe0001039, 0x15a73: 0xe0001036,
-	0x15a74: 0xe00010d8, 0x15a75: 0xe00010d5, 0x15a76: 0xe000110e, 0x15a77: 0xe000110b,
-	0x15a78: 0xe0001117, 0x15a79: 0xe000113b, 0x15a7a: 0xe0001138, 0x15a7b: 0xe000114d,
-	0x15a7c: 0xe000114a, 0x15a7d: 0xe0001147, 0x15a7e: 0xe0001144, 0x15a7f: 0xe0000f64,
-	// Block 0x56a, offset 0x15a80
-	0x15a80: 0xe00010d2, 0x15a81: 0xe00010cf, 0x15a82: 0xe00010cc, 0x15a83: 0xe00010c9,
-	0x15a84: 0xe00010e1, 0x15a85: 0xe00010de, 0x15a86: 0xe00010e7, 0x15a87: 0xe00010e4,
-	0x15a88: 0xe00010ed, 0x15a89: 0xe00010ea, 0x15a8a: 0xe00010fc, 0x15a8b: 0xe00010f9,
-	0x15a8c: 0xe00010f6, 0x15a8d: 0xe00010f3, 0x15a8e: 0xe0001123, 0x15a8f: 0xe0001120,
-	0x15a90: 0xe0001141, 0x15a91: 0xe000113e, 0x15a92: 0xe0001153, 0x15a93: 0xe0001150,
-	0x15a94: 0xe0001159, 0x15a95: 0xe0001156, 0x15a96: 0xe0000c15, 0x15a97: 0xe0000f8d,
-	0x15a98: 0xe00010db, 0x15a99: 0xe0001111, 0x15a9a: 0xf0000404, 0x15a9b: 0xe0000f70,
-	0x15a9c: 0x40300420, 0x15a9d: 0x40300620, 0x15a9e: 0xe0000f7f, 0x15a9f: 0x402c9620,
-	0x15aa0: 0xe000099b, 0x15aa1: 0xe0000998, 0x15aa2: 0xe0000989, 0x15aa3: 0xe0000986,
-	0x15aa4: 0xe0000928, 0x15aa5: 0xe0000924, 0x15aa6: 0xe0000930, 0x15aa7: 0xe000092c,
-	0x15aa8: 0xe0000940, 0x15aa9: 0xe000093c, 0x15aaa: 0xe0000938, 0x15aab: 0xe0000934,
-	0x15aac: 0xe00009aa, 0x15aad: 0xe00009a6, 0x15aae: 0xe0000902, 0x15aaf: 0xe00008fe,
-	0x15ab0: 0xe000090a, 0x15ab1: 0xe0000906, 0x15ab2: 0xe000091a, 0x15ab3: 0xe0000916,
-	0x15ab4: 0xe0000912, 0x15ab5: 0xe000090e, 0x15ab6: 0xe00009a2, 0x15ab7: 0xe000099e,
-	0x15ab8: 0xe0000b6e, 0x15ab9: 0xe0000b6b, 0x15aba: 0xe0000b5c, 0x15abb: 0xe0000b59,
-	0x15abc: 0xe0000b26, 0x15abd: 0xe0000b23, 0x15abe: 0xe000a8fc, 0x15abf: 0xe000a8f9,
-	// Block 0x56b, offset 0x15ac0
-	0x15ac0: 0xe000a902, 0x15ac1: 0xe000a8ff, 0x15ac2: 0xe000a90e, 0x15ac3: 0xe000a90b,
-	0x15ac4: 0xe000a908, 0x15ac5: 0xe000a905, 0x15ac6: 0xe000a914, 0x15ac7: 0xe000a911,
-	0x15ac8: 0xe0000c66, 0x15ac9: 0xe0000c63, 0x15aca: 0xe0000c78, 0x15acb: 0xe0000c75,
-	0x15acc: 0xe0000e84, 0x15acd: 0xe0000e81, 0x15ace: 0xe0000e44, 0x15acf: 0xe0000e41,
-	0x15ad0: 0xe000a91a, 0x15ad1: 0xe000a917, 0x15ad2: 0xe000a920, 0x15ad3: 0xe000a91d,
-	0x15ad4: 0xe000a926, 0x15ad5: 0xe000a923, 0x15ad6: 0xe000258a, 0x15ad7: 0xe0002587,
-	0x15ad8: 0xe000a92c, 0x15ad9: 0xe000a929, 0x15ada: 0xe0000e5d, 0x15adb: 0xe0000e59,
-	0x15adc: 0xe0000e65, 0x15add: 0xe0000e61, 0x15ade: 0xe0000e75, 0x15adf: 0xe0000e71,
-	0x15ae0: 0xe0000e6d, 0x15ae1: 0xe0000e69, 0x15ae2: 0xe0000e7d, 0x15ae3: 0xe0000e79,
-	0x15ae4: 0xe000108d, 0x15ae5: 0xe000108a, 0x15ae6: 0xe000104d, 0x15ae7: 0xe000104a,
-	0x15ae8: 0xe0001066, 0x15ae9: 0xe0001062, 0x15aea: 0xe000106e, 0x15aeb: 0xe000106a,
-	0x15aec: 0xe000107e, 0x15aed: 0xe000107a, 0x15aee: 0xe0001076, 0x15aef: 0xe0001072,
-	0x15af0: 0xe0001086, 0x15af1: 0xe0001082, 0x15af2: 0xe0001108, 0x15af3: 0xe0001105,
-	0x15af4: 0xe0001135, 0x15af5: 0xe0001132, 0x15af6: 0xe000112f, 0x15af7: 0xe000112c,
-	0x15af8: 0xe000111d, 0x15af9: 0xe000111a, 0x15afa: 0xe0000d0a, 0x15afb: 0xe0000d07,
-	0x15afc: 0x0030d888, 0x15afd: 0x4030d820, 0x15afe: 0x00312088, 0x15aff: 0x40312020,
-	// Block 0x56c, offset 0x15b00
-	0x15b00: 0xa0000000, 0x15b01: 0xa0000000, 0x15b02: 0xa0000000, 0x15b03: 0xa0000000,
-	0x15b04: 0xa0000000, 0x15b05: 0xa0000000, 0x15b06: 0xa0000000, 0x15b07: 0xa0000000,
-	0x15b08: 0xa0000000, 0x15b09: 0x40020020, 0x15b0a: 0x40020220, 0x15b0b: 0x40020420,
-	0x15b0c: 0x40020620, 0x15b0d: 0x40020820, 0x15b0e: 0xa0000000, 0x15b0f: 0xa0000000,
-	0x15b10: 0xa0000000, 0x15b11: 0xa0000000, 0x15b12: 0xa0000000, 0x15b13: 0xa0000000,
-	0x15b14: 0xa0000000, 0x15b15: 0xa0000000, 0x15b16: 0xa0000000, 0x15b17: 0xa0000000,
-	0x15b18: 0xa0000000, 0x15b19: 0xa0000000, 0x15b1a: 0xa0000000, 0x15b1b: 0xa0000000,
-	0x15b1c: 0xa0000000, 0x15b1d: 0xa0000000, 0x15b1e: 0xa0000000, 0x15b1f: 0xa0000000,
-	0x15b20: 0x40021220, 0x15b21: 0x4002ba20, 0x15b22: 0x4003e020, 0x15b23: 0x4004ea20,
-	0x15b24: 0x4027de20, 0x15b25: 0x4004ec20, 0x15b26: 0x4004e620, 0x15b27: 0x4003d220,
-	0x15b28: 0x4003f420, 0x15b29: 0x4003f620, 0x15b2a: 0x4004d820, 0x15b2b: 0x40093820,
-	0x15b2c: 0x40024020, 0x15b2d: 0x40021a20, 0x15b2e: 0x4002e420, 0x15b2f: 0x4004e220,
-	0x15b30: 0x4029cc20, 0x15b31: 0x4029ce20, 0x15b32: 0x4029d020, 0x15b33: 0x4029d220,
-	0x15b34: 0x4029d420, 0x15b35: 0x4029d620, 0x15b36: 0x4029d820, 0x15b37: 0x4029da20,
-	0x15b38: 0x4029dc20, 0x15b39: 0x4029de20, 0x15b3a: 0x40026c20, 0x15b3b: 0x40026220,
-	0x15b3c: 0x40094020, 0x15b3d: 0x40094220, 0x15b3e: 0x40094420, 0x15b3f: 0x4002c420,
-	// Block 0x56d, offset 0x15b40
-	0x15b40: 0x4004d620, 0x15b41: 0x002bde88, 0x15b42: 0x002c0a88, 0x15b43: 0xce0e09c2,
-	0x15b44: 0xce1309c2, 0x15b45: 0x002c9888, 0x15b46: 0x002d0888, 0x15b47: 0x002d2288,
-	0x15b48: 0x002d6888, 0x15b49: 0x002d9a88, 0x15b4a: 0x002dcc88, 0x15b4b: 0xce1809c2,
-	0x15b4c: 0xc0030002, 0x15b4d: 0x002e8288, 0x15b4e: 0xce1d26f2, 0x15b4f: 0x002ee288,
-	0x15b50: 0xce2209c2, 0x15b51: 0x002f5688, 0x15b52: 0x002f7a88, 0x15b53: 0xce2709b1,
-	0x15b54: 0x00302c88, 0x15b55: 0x00306c88, 0x15b56: 0x0030be88, 0x15b57: 0x0030e288,
-	0x15b58: 0x0030f688, 0x15b59: 0x00310088, 0x15b5a: 0x00312a88, 0x15b5b: 0x4003f820,
-	0x15b5c: 0x4004e420, 0x15b5d: 0x4003fa20, 0x15b5e: 0x40062420, 0x15b5f: 0x40021620,
-	0x15b60: 0x40061e20, 0x15b61: 0x402bde20, 0x15b62: 0x402c0a20, 0x15b63: 0xce0c09b1,
-	0x15b64: 0xce1109b1, 0x15b65: 0x402c9820, 0x15b66: 0x402d0820, 0x15b67: 0x402d2220,
-	0x15b68: 0x402d6820, 0x15b69: 0x402d9a20, 0x15b6a: 0x402dcc20, 0x15b6b: 0xce1609b1,
-	0x15b6c: 0xc0000002, 0x15b6d: 0x402e8220, 0x15b6e: 0xce1b26e1, 0x15b6f: 0x402ee220,
-	0x15b70: 0xce2009b1, 0x15b71: 0x402f5620, 0x15b72: 0x402f7a20, 0x15b73: 0xce2509b1,
-	0x15b74: 0x40302c20, 0x15b75: 0x40306c20, 0x15b76: 0x4030be20, 0x15b77: 0x4030e220,
-	0x15b78: 0x4030f620, 0x15b79: 0x40310020, 0x15b7a: 0x40312a20, 0x15b7b: 0x4003fc20,
-	0x15b7c: 0x40094820, 0x15b7d: 0x4003fe20, 0x15b7e: 0x40094c20, 0x15b7f: 0xa0000000,
-	// Block 0x56e, offset 0x15b80
-	0x15b81: 0x40421220, 0x15b82: 0x40421420, 0x15b83: 0x40421620,
-	0x15b85: 0x4041f620, 0x15b86: 0x4041f820, 0x15b87: 0x4041fa20,
-	0x15b88: 0x4041fc20, 0x15b89: 0x4041fe20, 0x15b8a: 0x40420020, 0x15b8b: 0x40420220,
-	0x15b8c: 0x40420620, 0x15b8f: 0x40420a20,
-	0x15b90: 0x40420c20, 0x15b93: 0x40420e20,
-	0x15b94: 0x40421020, 0x15b95: 0xce299441, 0x15b96: 0x40421420, 0x15b97: 0x40421620,
-	0x15b98: 0x40421820, 0x15b99: 0x40421a20, 0x15b9a: 0x40421c20, 0x15b9b: 0x40421e20,
-	0x15b9c: 0x40422020, 0x15b9d: 0x40422220, 0x15b9e: 0x40422420, 0x15b9f: 0x40422620,
-	0x15ba0: 0x40422820, 0x15ba1: 0x40422a20, 0x15ba2: 0x40422c20, 0x15ba3: 0x40422e20,
-	0x15ba4: 0x40423020, 0x15ba5: 0x40423220, 0x15ba6: 0x40423420, 0x15ba7: 0x40423620,
-	0x15ba8: 0x40423820, 0x15baa: 0x40423a20, 0x15bab: 0x40423c20,
-	0x15bac: 0x40423e20, 0x15bad: 0x40424020, 0x15bae: 0x40424220, 0x15baf: 0x40424420,
-	0x15bb0: 0x40424820, 0x15bb2: 0x40424a20, 0x15bb3: 0x40424c20,
-	0x15bb5: 0x40424e20, 0x15bb6: 0x40425220, 0x15bb7: 0x40425420,
-	0x15bb8: 0x40425620, 0x15bb9: 0x40425820,
-	0x15bbc: 0xa070f102, 0x15bbd: 0x40425a20, 0x15bbe: 0x40425c20, 0x15bbf: 0x40425e20,
-	// Block 0x56f, offset 0x15bc0
-	0x15bc0: 0x40426020, 0x15bc1: 0x40426220, 0x15bc2: 0x40426420, 0x15bc3: 0x40426620,
-	0x15bc4: 0x40426820, 0x15bc7: 0xc05d01e1,
-	0x15bc8: 0x40427020, 0x15bcb: 0x40427220,
-	0x15bcc: 0x40427420, 0x15bcd: 0x8209213b,
-	0x15bd6: 0x40427820, 0x15bd7: 0x40427a20,
-	0x15bdc: 0xe000185d, 0x15bdd: 0xe0001860, 0x15bdf: 0x40424421,
-	0x15be0: 0x40420420, 0x15be1: 0x40420820, 0x15be2: 0x40426a20, 0x15be3: 0x40426c20,
-	0x15be6: 0xe0000176, 0x15be7: 0xe0000204,
-	0x15be8: 0xe000031f, 0x15be9: 0xe00003f9, 0x15bea: 0xe00004d4, 0x15beb: 0xe000059e,
-	0x15bec: 0xe0000669, 0x15bed: 0xe0000711, 0x15bee: 0xe00007bd, 0x15bef: 0xe0000862,
-	0x15bf0: 0x40073c20, 0x15bf1: 0x40425020, 0x15bf2: 0x40283c20, 0x15bf3: 0x40283e20,
-	0x15bf4: 0x40284020, 0x15bf5: 0x40284220, 0x15bf6: 0x40284420, 0x15bf7: 0x40284620,
-	// Block 0x570, offset 0x15c00
-	0x15c01: 0xa000f902, 0x15c02: 0xa000f802, 0x15c03: 0xa000f402,
-	0x15c05: 0x40410620, 0x15c06: 0x40410820, 0x15c07: 0x40411020,
-	0x15c08: 0x40411220, 0x15c09: 0x40410020, 0x15c0a: 0x40410220,
-	0x15c0f: 0x40411420,
-	0x15c10: 0x40410a20, 0x15c13: 0x40410420,
-	0x15c14: 0x40410c20, 0x15c15: 0x40411c20, 0x15c16: 0x40411e20, 0x15c17: 0x40412020,
-	0x15c18: 0x40412220, 0x15c19: 0x40412420, 0x15c1a: 0x40412620, 0x15c1b: 0x40412820,
-	0x15c1c: 0x40412a20, 0x15c1d: 0x40412c20, 0x15c1e: 0x40412e20, 0x15c1f: 0x40413020,
-	0x15c20: 0x40413220, 0x15c21: 0x40413420, 0x15c22: 0x40413620, 0x15c23: 0x40413820,
-	0x15c24: 0x40413a20, 0x15c25: 0x40413c20, 0x15c26: 0x40413e20, 0x15c27: 0x40414020,
-	0x15c28: 0x40414220, 0x15c2a: 0x40414420, 0x15c2b: 0x40414620,
-	0x15c2c: 0x40414820, 0x15c2d: 0x40414a20, 0x15c2e: 0x40414c20, 0x15c2f: 0x40414e20,
-	0x15c30: 0x40415220, 0x15c32: 0x40415420, 0x15c33: 0xe000a93e,
-	0x15c35: 0x40415620, 0x15c36: 0xe000a92f,
-	0x15c38: 0x40411620, 0x15c39: 0x40411820,
-	0x15c3c: 0xa000fa02, 0x15c3e: 0x40415a20, 0x15c3f: 0x40415c20,
-	// Block 0x571, offset 0x15c40
-	0x15c40: 0x40415e20, 0x15c41: 0x40416020, 0x15c42: 0x40416220,
-	0x15c47: 0x40416420,
-	0x15c48: 0x40416620, 0x15c4b: 0x40416820,
-	0x15c4c: 0x40416a20, 0x15c4d: 0x40415a20,
-	0x15c51: 0x40411a20,
-	0x15c59: 0xe000a932, 0x15c5a: 0xe000a935, 0x15c5b: 0xe000a938,
-	0x15c5c: 0x40415820, 0x15c5e: 0xe000a93b,
-	0x15c66: 0xe0000170, 0x15c67: 0xe00001fe,
-	0x15c68: 0xe0000319, 0x15c69: 0xe00003f3, 0x15c6a: 0xe00004ce, 0x15c6b: 0xe0000598,
-	0x15c6c: 0xe0000663, 0x15c6d: 0xe000070b, 0x15c6e: 0xe00007b7, 0x15c6f: 0xe000085c,
-	0x15c70: 0xa000f702, 0x15c71: 0xa000f602, 0x15c72: 0x40410e20, 0x15c73: 0x4040fe20,
-	0x15c74: 0x4040fc20, 0x15c75: 0x40415020,
-	// Block 0x572, offset 0x15c80
-	0x15c80: 0xa0000000, 0x15c81: 0xa0000000, 0x15c82: 0xa0000000, 0x15c83: 0xa0000000,
-	0x15c84: 0xa0000000, 0x15c85: 0xa0000000, 0x15c86: 0xa0000000, 0x15c87: 0xa0000000,
-	0x15c88: 0xa0000000, 0x15c89: 0x40020020, 0x15c8a: 0x40020220, 0x15c8b: 0x40020420,
-	0x15c8c: 0x40020620, 0x15c8d: 0x40020820, 0x15c8e: 0xa0000000, 0x15c8f: 0xa0000000,
-	0x15c90: 0xa0000000, 0x15c91: 0xa0000000, 0x15c92: 0xa0000000, 0x15c93: 0xa0000000,
-	0x15c94: 0xa0000000, 0x15c95: 0xa0000000, 0x15c96: 0xa0000000, 0x15c97: 0xa0000000,
-	0x15c98: 0xa0000000, 0x15c99: 0xa0000000, 0x15c9a: 0xa0000000, 0x15c9b: 0xa0000000,
-	0x15c9c: 0xa0000000, 0x15c9d: 0xa0000000, 0x15c9e: 0xa0000000, 0x15c9f: 0xa0000000,
-	0x15ca0: 0x40021220, 0x15ca1: 0x4002ba20, 0x15ca2: 0x4003e020, 0x15ca3: 0x4004ea20,
-	0x15ca4: 0x4027de20, 0x15ca5: 0x4004ec20, 0x15ca6: 0x4004e620, 0x15ca7: 0x4003d220,
-	0x15ca8: 0x4003f420, 0x15ca9: 0x4003f620, 0x15caa: 0x4004d820, 0x15cab: 0x40093820,
-	0x15cac: 0x40024020, 0x15cad: 0x40021a20, 0x15cae: 0x4002e420, 0x15caf: 0x4004e220,
-	0x15cb0: 0x4029cc20, 0x15cb1: 0x4029ce20, 0x15cb2: 0x4029d020, 0x15cb3: 0x4029d220,
-	0x15cb4: 0x4029d420, 0x15cb5: 0x4029d620, 0x15cb6: 0x4029d820, 0x15cb7: 0x4029da20,
-	0x15cb8: 0x4029dc20, 0x15cb9: 0x4029de20, 0x15cba: 0x40026c20, 0x15cbb: 0x40026220,
-	0x15cbc: 0x40094020, 0x15cbd: 0x40094220, 0x15cbe: 0x40094420, 0x15cbf: 0x4002c420,
-	// Block 0x573, offset 0x15cc0
-	0x15cc0: 0x4004d620, 0x15cc1: 0xce2d0be1, 0x15cc2: 0x002c0a88, 0x15cc3: 0xc33531a1,
-	0x15cc4: 0x002c6288, 0x15cc5: 0xce0a0be1, 0x15cc6: 0x002d0888, 0x15cc7: 0x002d2288,
-	0x15cc8: 0x002d6888, 0x15cc9: 0x002d9a88, 0x15cca: 0x002dcc88, 0x15ccb: 0x002dfe88,
-	0x15ccc: 0xc0030002, 0x15ccd: 0x002e8288, 0x15cce: 0xc53a31a1, 0x15ccf: 0xc33f31a1,
-	0x15cd0: 0x002f2c88, 0x15cd1: 0x002f5688, 0x15cd2: 0x002f7a88, 0x15cd3: 0xc34331a1,
-	0x15cd4: 0x00302c88, 0x15cd5: 0x00306c88, 0x15cd6: 0x0030be88, 0x15cd7: 0x0030e288,
-	0x15cd8: 0x0030f688, 0x15cd9: 0x00310088, 0x15cda: 0xce3294a1, 0x15cdb: 0x4003f820,
-	0x15cdc: 0x4004e420, 0x15cdd: 0x4003fa20, 0x15cde: 0x40062420, 0x15cdf: 0x40021620,
-	0x15ce0: 0x40061e20, 0x15ce1: 0xce2b0be1, 0x15ce2: 0x402c0a20, 0x15ce3: 0xc33331a1,
-	0x15ce4: 0x402c6220, 0x15ce5: 0xce080be1, 0x15ce6: 0x402d0820, 0x15ce7: 0x402d2220,
-	0x15ce8: 0x402d6820, 0x15ce9: 0x402d9a20, 0x15cea: 0x402dcc20, 0x15ceb: 0x402dfe20,
-	0x15cec: 0xc0000002, 0x15ced: 0x402e8220, 0x15cee: 0xc52731a1, 0x15cef: 0xc33d31a1,
-	0x15cf0: 0x402f2c20, 0x15cf1: 0x402f5620, 0x15cf2: 0x402f7a20, 0x15cf3: 0xc34131a1,
-	0x15cf4: 0x40302c20, 0x15cf5: 0x40306c20, 0x15cf6: 0x4030be20, 0x15cf7: 0x4030e220,
-	0x15cf8: 0x4030f620, 0x15cf9: 0x40310020, 0x15cfa: 0xce2f94a1, 0x15cfb: 0x4003fc20,
-	0x15cfc: 0x40094820, 0x15cfd: 0x4003fe20, 0x15cfe: 0x40094c20, 0x15cff: 0xa0000000,
-	// Block 0x574, offset 0x15d00
-	0x15d00: 0xe00008f5, 0x15d01: 0xe00008ef, 0x15d02: 0xe0000921, 0x15d03: 0xe0000969,
-	0x15d04: 0xe000095b, 0x15d05: 0xe000094d, 0x15d06: 0xe00009dd, 0x15d07: 0xe0000a53,
-	0x15d08: 0xe0000ae8, 0x15d09: 0xe0000ae2, 0x15d0a: 0xe0000af4, 0x15d0b: 0xe0000b20,
-	0x15d0c: 0xe0000c2b, 0x15d0d: 0xe0000c25, 0x15d0e: 0xe0000c37, 0x15d0f: 0xe0000c43,
-	0x15d10: 0xe0000ab3, 0x15d11: 0xe0000d63, 0x15d12: 0xe0000d9a, 0x15d13: 0x002ee483,
-	0x15d14: 0xe0000da6, 0x15d15: 0xe0000de6, 0x15d16: 0xe0000dd2, 0x15d17: 0x40093e20,
-	0x15d18: 0xe0000e12, 0x15d19: 0xe0000fe1, 0x15d1a: 0xe0000fdb, 0x15d1b: 0xe0000fed,
-	0x15d1c: 0xe0000fff, 0x15d1d: 0xe0001102, 0x15d1e: 0x00318888, 0x15d1f: 0xe0000f7b,
-	0x15d20: 0xe00008f2, 0x15d21: 0xe00008ec, 0x15d22: 0xe000091e, 0x15d23: 0xe0000966,
-	0x15d24: 0xe0000958, 0x15d25: 0xe000094a, 0x15d26: 0xe00009d5, 0x15d27: 0xe0000a4d,
-	0x15d28: 0xe0000ae5, 0x15d29: 0xe0000adf, 0x15d2a: 0xe0000af1, 0x15d2b: 0xe0000b1d,
-	0x15d2c: 0xe0000c28, 0x15d2d: 0xe0000c22, 0x15d2e: 0xe0000c34, 0x15d2f: 0xe0000c40,
-	0x15d30: 0xe0000aad, 0x15d31: 0xe0000d60, 0x15d32: 0xe0000d97, 0x15d33: 0x402ee420,
-	0x15d34: 0xe0000da3, 0x15d35: 0xe0000de3, 0x15d36: 0xe0000dcf, 0x15d37: 0x40093c20,
-	0x15d38: 0xe0000e0f, 0x15d39: 0xe0000fde, 0x15d3a: 0xe0000fd8, 0x15d3b: 0xe0000fea,
-	0x15d3c: 0xe0000ffc, 0x15d3d: 0xe00010ff, 0x15d3e: 0x40318820, 0x15d3f: 0xe0001114,
-	// Block 0x575, offset 0x15d40
-	0x15d40: 0xe0000983, 0x15d41: 0xe0000980, 0x15d42: 0xe00008fb, 0x15d43: 0xe00008f8,
-	0x15d44: 0x002be083, 0x15d45: 0x402be020, 0x15d46: 0x002c3c83, 0x15d47: 0x402c3c20,
-	0x15d48: 0xe0000a3e, 0x15d49: 0xe0000a3b, 0x15d4a: 0xe0000a4a, 0x15d4b: 0xe0000a47,
-	0x15d4c: 0xe0000a44, 0x15d4d: 0xe0000a41, 0x15d4e: 0xe0000a86, 0x15d4f: 0xe0000a83,
-	0x15d50: 0xe0000aaa, 0x15d51: 0xe0000aa7, 0x15d52: 0xe0000b46, 0x15d53: 0xe0000b43,
-	0x15d54: 0xe0000aee, 0x15d55: 0xe0000aeb, 0x15d56: 0xe0000b2c, 0x15d57: 0xe0000b29,
-	0x15d58: 0x002c9a83, 0x15d59: 0x402c9a20, 0x15d5a: 0xe0000b1a, 0x15d5b: 0xe0000b17,
-	0x15d5c: 0xe0000bb8, 0x15d5d: 0xe0000bb5, 0x15d5e: 0xe0000bb2, 0x15d5f: 0xe0000baf,
-	0x15d60: 0xe0000bc4, 0x15d61: 0xe0000bc1, 0x15d62: 0xe0000bca, 0x15d63: 0xe0000bc7,
-	0x15d64: 0xe0000bee, 0x15d65: 0xe0000beb, 0x15d66: 0xe0000c1b, 0x15d67: 0xe0000c18,
-	0x15d68: 0xe0000c51, 0x15d69: 0xe0000c4e, 0x15d6a: 0xe0000c60, 0x15d6b: 0xe0000c5d,
-	0x15d6c: 0xe0000c31, 0x15d6d: 0xe0000c2e, 0x15d6e: 0xe0000c5a, 0x15d6f: 0xe0000c57,
-	0x15d70: 0xe0000c54, 0x15d71: 0x402da220, 0x15d72: 0xf0000a0a, 0x15d73: 0xf0000404,
-	0x15d74: 0xe0000c8a, 0x15d75: 0xe0000c87, 0x15d76: 0xe0000c9f, 0x15d77: 0xe0000c9c,
-	0x15d78: 0x402f7220, 0x15d79: 0xe0000ccc, 0x15d7a: 0xe0000cc9, 0x15d7b: 0xe0000cd8,
-	0x15d7c: 0xe0000cd5, 0x15d7d: 0xe0000cd2, 0x15d7e: 0xe0000ccf, 0x15d7f: 0xe0000d04,
-	// Block 0x576, offset 0x15d80
-	0x15d80: 0xe0000cfe, 0x15d81: 0x002e2483, 0x15d82: 0x402e2420, 0x15d83: 0x002ea083,
-	0x15d84: 0x402ea020, 0x15d85: 0xe0000d6f, 0x15d86: 0xe0000d6c, 0x15d87: 0xe0000d5d,
-	0x15d88: 0xe0000d5a, 0x15d89: 0xf0000404, 0x15d8a: 0x002eda88, 0x15d8b: 0x402eda20,
-	0x15d8c: 0xe0000e2e, 0x15d8d: 0xe0000e2b, 0x15d8e: 0xe0000da0, 0x15d8f: 0xe0000d9d,
-	0x15d90: 0xe0000de0, 0x15d91: 0xe0000ddd, 0x15d92: 0xe0000e93, 0x15d93: 0xe0000e8f,
-	0x15d94: 0xe0000eca, 0x15d95: 0xe0000ec7, 0x15d96: 0xe0000edc, 0x15d97: 0xe0000ed9,
-	0x15d98: 0xe0000ed0, 0x15d99: 0xe0000ecd, 0x15d9a: 0x002fe883, 0x15d9b: 0x402fe820,
-	0x15d9c: 0xe0000f2d, 0x15d9d: 0xe0000f2a, 0x15d9e: 0xe0000f47, 0x15d9f: 0xe0000f44,
-	0x15da0: 0xe0000f33, 0x15da1: 0xe0000f30, 0x15da2: 0xe0000f99, 0x15da3: 0xe0000f96,
-	0x15da4: 0xe0000f8a, 0x15da5: 0xe0000f87, 0x15da6: 0x00303688, 0x15da7: 0x40303620,
-	0x15da8: 0xe000102b, 0x15da9: 0xe0001028, 0x15daa: 0xe000103f, 0x15dab: 0xe000103c,
-	0x15dac: 0xe0000fe7, 0x15dad: 0xe0000fe4, 0x15dae: 0xe0000ff9, 0x15daf: 0xe0000ff6,
-	0x15db0: 0xe0001025, 0x15db1: 0xe0001022, 0x15db2: 0xe0001039, 0x15db3: 0xe0001036,
-	0x15db4: 0xe00010d8, 0x15db5: 0xe00010d5, 0x15db6: 0xe000110e, 0x15db7: 0xe000110b,
-	0x15db8: 0xe0001117, 0x15db9: 0x00312c83, 0x15dba: 0x40312c20, 0x15dbb: 0x00312e83,
-	0x15dbc: 0x40312e20, 0x15dbd: 0xe0001147, 0x15dbe: 0xe0001144, 0x15dbf: 0xe0000f64,
-	// Block 0x577, offset 0x15dc0
-	0x15dc0: 0xe00009b1, 0x15dc1: 0xe00009ae, 0x15dc2: 0xe0000a22, 0x15dc3: 0xe0000a1f,
-	0x15dc4: 0xe0000a28, 0x15dc5: 0xe0000a25, 0x15dc6: 0xe0000a2e, 0x15dc7: 0xe0000a2b,
-	0x15dc8: 0xe000a944, 0x15dc9: 0xe000a941, 0x15dca: 0xe0000a8c, 0x15dcb: 0xe0000a89,
-	0x15dcc: 0xe0000a98, 0x15dcd: 0xe0000a95, 0x15dce: 0xe0000aa4, 0x15dcf: 0xe0000aa1,
-	0x15dd0: 0xe0000a92, 0x15dd1: 0xe0000a8f, 0x15dd2: 0xe0000a9e, 0x15dd3: 0xe0000a9b,
-	0x15dd4: 0xe0000b55, 0x15dd5: 0xe0000b51, 0x15dd6: 0xe0000b4d, 0x15dd7: 0xe0000b49,
-	0x15dd8: 0xe0000b7c, 0x15dd9: 0xe0000b79, 0x15dda: 0xe0000b82, 0x15ddb: 0xe0000b7f,
-	0x15ddc: 0xe0000b39, 0x15ddd: 0xe0000b35, 0x15dde: 0xe0000b8c, 0x15ddf: 0xe0000b89,
-	0x15de0: 0xe0000bd0, 0x15de1: 0xe0000bcd, 0x15de2: 0xe0000c00, 0x15de3: 0xe0000bfd,
-	0x15de4: 0xe0000c0c, 0x15de5: 0xe0000c09, 0x15de6: 0xe0000bfa, 0x15de7: 0xe0000bf7,
-	0x15de8: 0xe0000c06, 0x15de9: 0xe0000c03, 0x15dea: 0xe0000c12, 0x15deb: 0xe0000c0f,
-	0x15dec: 0xe0000c7e, 0x15ded: 0xe0000c7b, 0x15dee: 0xe0000c4a, 0x15def: 0xe0000c46,
-	0x15df0: 0xe0000c93, 0x15df1: 0xe0000c90, 0x15df2: 0xe0000cab, 0x15df3: 0xe0000ca8,
-	0x15df4: 0xe0000cb1, 0x15df5: 0xe0000cae, 0x15df6: 0xe0000cde, 0x15df7: 0xe0000cdb,
-	0x15df8: 0xe0000ce5, 0x15df9: 0xe0000ce1, 0x15dfa: 0xe0000cf2, 0x15dfb: 0xe0000cef,
-	0x15dfc: 0xe0000cec, 0x15dfd: 0xe0000ce9, 0x15dfe: 0xe0000d1e, 0x15dff: 0xe0000d1b,
-	// Block 0x578, offset 0x15e00
-	0x15e00: 0xe0000d24, 0x15e01: 0xe0000d21, 0x15e02: 0xe0000d2a, 0x15e03: 0xe0000d27,
-	0x15e04: 0xe0000d69, 0x15e05: 0xe0000d66, 0x15e06: 0xe0000d7b, 0x15e07: 0xe0000d78,
-	0x15e08: 0xe0000d87, 0x15e09: 0xe0000d84, 0x15e0a: 0xe0000d81, 0x15e0b: 0xe0000d7e,
-	0x15e0c: 0xe000258a, 0x15e0d: 0xe0002587, 0x15e0e: 0xe0000df5, 0x15e0f: 0xe0000df1,
-	0x15e10: 0xe0000e3d, 0x15e11: 0xe0000e39, 0x15e12: 0xe0002590, 0x15e13: 0xe000258d,
-	0x15e14: 0xe0000ea7, 0x15e15: 0xe0000ea4, 0x15e16: 0xe0000ead, 0x15e17: 0xe0000eaa,
-	0x15e18: 0xe0000ed6, 0x15e19: 0xe0000ed3, 0x15e1a: 0xe0000ef4, 0x15e1b: 0xe0000ef1,
-	0x15e1c: 0xe0000efb, 0x15e1d: 0xe0000ef7, 0x15e1e: 0xe0000f02, 0x15e1f: 0xe0000eff,
-	0x15e20: 0xe0000f41, 0x15e21: 0xe0000f3e, 0x15e22: 0xe0000f53, 0x15e23: 0xe0000f50,
-	0x15e24: 0xe00025c3, 0x15e25: 0xe00025c0, 0x15e26: 0xe0000f3a, 0x15e27: 0xe0000f36,
-	0x15e28: 0xe0000f5a, 0x15e29: 0xe0000f56, 0x15e2a: 0xe0000f93, 0x15e2b: 0xe0000f90,
-	0x15e2c: 0xe0000f9f, 0x15e2d: 0xe0000f9c, 0x15e2e: 0xe0000fb1, 0x15e2f: 0xe0000fae,
-	0x15e30: 0xe0000fab, 0x15e31: 0xe0000fa8, 0x15e32: 0xe0001093, 0x15e33: 0xe0001090,
-	0x15e34: 0xe000109f, 0x15e35: 0xe000109c, 0x15e36: 0xe0001099, 0x15e37: 0xe0001096,
-	0x15e38: 0xe0001032, 0x15e39: 0xe000102e, 0x15e3a: 0xe0001046, 0x15e3b: 0xe0001042,
-	0x15e3c: 0xe00010a9, 0x15e3d: 0xe00010a6, 0x15e3e: 0xe00010af, 0x15e3f: 0xe00010ac,
-	// Block 0x579, offset 0x15e40
-	0x15e40: 0xe0000b03, 0x15e41: 0xe0000aff, 0x15e42: 0xe0000b13, 0x15e43: 0xe0000b0f,
-	0x15e44: 0xe0000b0b, 0x15e45: 0xe0000b07, 0x15e46: 0xe0000b75, 0x15e47: 0xe0000b71,
-	0x15e48: 0xe0000c66, 0x15e49: 0xe0000c63, 0x15e4a: 0xe0000c78, 0x15e4b: 0xe0000c75,
-	0x15e4c: 0xe0000e84, 0x15e4d: 0xe0000e81, 0x15e4e: 0xe0000e44, 0x15e4f: 0xe0000e41,
-	0x15e50: 0xe000375b, 0x15e51: 0xe0003758, 0x15e52: 0xe0000db5, 0x15e53: 0xe0000db1,
-	0x15e54: 0xe0000dc5, 0x15e55: 0xe0000dc1, 0x15e56: 0xe0000dbd, 0x15e57: 0xe0000db9,
-	0x15e58: 0xe0000e8b, 0x15e59: 0xe0000e87, 0x15e5a: 0xe0003761, 0x15e5b: 0xe000375e,
-	0x15e5c: 0xe0000e65, 0x15e5d: 0xe0000e61, 0x15e5e: 0xe0000e75, 0x15e5f: 0xe0000e71,
-	0x15e60: 0xe0000e6d, 0x15e61: 0xe0000e69, 0x15e62: 0xe0000e7d, 0x15e63: 0xe0000e79,
-	0x15e64: 0xe000108d, 0x15e65: 0xe000108a, 0x15e66: 0xe000104d, 0x15e67: 0xe000104a,
-	0x15e68: 0xe0001066, 0x15e69: 0xe0001062, 0x15e6a: 0xe000106e, 0x15e6b: 0xe000106a,
-	0x15e6c: 0xe000107e, 0x15e6d: 0xe000107a, 0x15e6e: 0xe0001076, 0x15e6f: 0xe0001072,
-	0x15e70: 0xe0001086, 0x15e71: 0xe0001082, 0x15e72: 0xe0001108, 0x15e73: 0xe0001105,
-	0x15e74: 0xe0001135, 0x15e75: 0xe0001132, 0x15e76: 0xe000112f, 0x15e77: 0xe000112c,
-	0x15e78: 0xe000111d, 0x15e79: 0xe000111a, 0x15e7a: 0xe0000d0a, 0x15e7b: 0xe0000d07,
-	0x15e7c: 0x0030d888, 0x15e7d: 0x4030d820, 0x15e7e: 0x00312088, 0x15e7f: 0x40312020,
-	// Block 0x57a, offset 0x15e80
-	0x15e80: 0xa0000000, 0x15e81: 0xa0000000, 0x15e82: 0xa0000000, 0x15e83: 0xa0000000,
-	0x15e84: 0xa0000000, 0x15e86: 0x40096620, 0x15e87: 0x40096a20,
-	0x15e88: 0x40070820, 0x15e89: 0x4004f220, 0x15e8a: 0x4004f620, 0x15e8b: 0x4027e620,
-	0x15e8c: 0x40024820, 0x15e8d: 0x40024a20, 0x15e8e: 0x40070e20, 0x15e8f: 0x40071020,
-	0x15e90: 0xae600000, 0x15e91: 0xae600000, 0x15e92: 0xae600000, 0x15e93: 0xae600000,
-	0x15e94: 0xae600000, 0x15e95: 0xae600000, 0x15e96: 0xae600000, 0x15e97: 0xae600000,
-	0x15e98: 0xa1e00000, 0x15e99: 0xa1f00000, 0x15e9a: 0xa2000000, 0x15e9b: 0x40026420,
-	0x15e9e: 0x40027020, 0x15e9f: 0x4002cc20,
-	0x15ea0: 0x403aa220, 0x15ea1: 0x40393a20, 0x15ea2: 0x40393620, 0x15ea3: 0x40393821,
-	0x15ea4: 0x403a7421, 0x15ea5: 0x40393824, 0x15ea6: 0x003a9344, 0x15ea7: 0xce350151,
-	0x15ea8: 0x40393c20, 0x15ea9: 0x403a6824, 0x15eaa: 0x40395620, 0x15eab: 0x40395820,
-	0x15eac: 0x40396420, 0x15ead: 0xce390171, 0x15eae: 0x40397420, 0x15eaf: 0x40398820,
-	0x15eb0: 0x40398a20, 0x15eb1: 0x4039a420, 0x15eb2: 0x4039a620, 0x15eb3: 0x4039c620,
-	0x15eb4: 0x4039c820, 0x15eb5: 0x4039dc20, 0x15eb6: 0x4039de20, 0x15eb7: 0x4039e620,
-	0x15eb8: 0x4039e820, 0x15eb9: 0x4039ee20, 0x15eba: 0x4039f020, 0x15ebb: 0x403a3820,
-	0x15ebc: 0x403a3a20, 0x15ebd: 0x403a9c20, 0x15ebe: 0x403a9e20, 0x15ebf: 0x403aa020,
-	// Block 0x57b, offset 0x15ec0
-	0x15ec0: 0xa0000000, 0x15ec1: 0x4039fc20, 0x15ec2: 0x403a1220, 0x15ec3: 0x403a1c22,
-	0x15ec4: 0x403a4020, 0x15ec5: 0x403a4e20, 0x15ec6: 0x403a5620, 0x15ec7: 0xce3d0171,
-	0x15ec8: 0xce3f0171, 0x15ec9: 0xce430171, 0x15eca: 0xce450171, 0x15ecb: 0xa000b002,
-	0x15ecc: 0xa000b202, 0x15ecd: 0xa000b102, 0x15ece: 0xa1e0ad02, 0x15ecf: 0xa000af02,
-	0x15ed0: 0xa000ae02, 0x15ed1: 0xa210ba02, 0x15ed2: 0xa220bc02, 0x15ed3: 0xae60bd02,
-	0x15ed4: 0xae60be02, 0x15ed5: 0xadc0bf02, 0x15ed6: 0xadc0c102, 0x15ed7: 0xae60c202,
-	0x15ed8: 0xae60c302, 0x15ed9: 0xae60c402, 0x15eda: 0xae60c502, 0x15edb: 0xae60c602,
-	0x15edc: 0xadc0c702, 0x15edd: 0xae60c802, 0x15ede: 0xae60c902, 0x15edf: 0xadc0c002,
-	0x15ee0: 0xe000015e, 0x15ee1: 0xe00001e6, 0x15ee2: 0xe0000301, 0x15ee3: 0xe00003db,
-	0x15ee4: 0xe00004b6, 0x15ee5: 0xe0000580, 0x15ee6: 0xe000064b, 0x15ee7: 0xe00006f3,
-	0x15ee8: 0xe000079f, 0x15ee9: 0xe0000844, 0x15eea: 0x4004ee20, 0x15eeb: 0x40024c20,
-	0x15eec: 0x40024e20, 0x15eed: 0x4004de20, 0x15eee: 0x40393a20, 0x15eef: 0x403a1020,
-	0x15ef0: 0xa230d102, 0x15ef1: 0x40393823, 0x15ef2: 0x40393822, 0x15ef3: 0x40393825,
-	0x15ef4: 0x00391c84, 0x15ef5: 0xf0000404, 0x15ef6: 0xf0000404, 0x15ef7: 0xe000a94a,
-	0x15ef8: 0xe0003275, 0x15ef9: 0x40395821, 0x15efa: 0x40395c20, 0x15efb: 0x40393e20,
-	0x15efc: 0x40395820, 0x15efd: 0x40396020, 0x15efe: 0x40394020, 0x15eff: 0x40396220,
-	// Block 0x57c, offset 0x15f00
-	0x15f00: 0x40394220, 0x15f01: 0x40396620, 0x15f02: 0x40397820, 0x15f03: 0x40396620,
-	0x15f04: 0x40396820, 0x15f05: 0x40396c20, 0x15f06: 0x40396a20, 0x15f07: 0x40396e20,
-	0x15f08: 0x40398a21, 0x15f09: 0x40398a20, 0x15f0a: 0x40399020, 0x15f0b: 0x40399220,
-	0x15f0c: 0x40399420, 0x15f0d: 0x40399620, 0x15f0e: 0x40399820, 0x15f0f: 0x40399a20,
-	0x15f10: 0x40399c20, 0x15f11: 0x4039a621, 0x15f12: 0x4039aa20, 0x15f13: 0x4039a620,
-	0x15f14: 0x4039ae20, 0x15f15: 0x4039b020, 0x15f16: 0x4039b820, 0x15f17: 0x4039b420,
-	0x15f18: 0x4039b620, 0x15f19: 0x4039b820, 0x15f1a: 0x4039ca20, 0x15f1b: 0x4039cc20,
-	0x15f1c: 0x4039ce20, 0x15f1d: 0x4039e020, 0x15f1e: 0x4039e220, 0x15f1f: 0x4039ea20,
-	0x15f20: 0x4039f220, 0x15f21: 0x4039fe20, 0x15f22: 0x403a0020, 0x15f23: 0x403a0220,
-	0x15f24: 0x403a0420, 0x15f25: 0x403a0820, 0x15f26: 0x403a0a20, 0x15f27: 0x403a1420,
-	0x15f28: 0x403a1620, 0x15f29: 0x403a1c20, 0x15f2a: 0x403a1c21, 0x15f2b: 0x403a2020,
-	0x15f2c: 0x403a2220, 0x15f2d: 0x403a2620, 0x15f2e: 0x403a2820, 0x15f2f: 0x403a2021,
-	0x15f30: 0x403a2c20, 0x15f31: 0x403a2e20, 0x15f32: 0x403a3020, 0x15f33: 0x403a3220,
-	0x15f34: 0x403a3420, 0x15f35: 0x403a4220, 0x15f36: 0x403a4420, 0x15f37: 0x403a4620,
-	0x15f38: 0x403a4820, 0x15f39: 0x403a6020, 0x15f3a: 0x403a5820, 0x15f3b: 0x403a5c21,
-	0x15f3c: 0x403a5c20, 0x15f3d: 0x403a5e20, 0x15f3e: 0x403a6823, 0x15f3f: 0x40396c20,
-	// Block 0x57d, offset 0x15f40
-	0x15f40: 0x003a6883, 0x15f41: 0x403a6822, 0x15f42: 0xe000a947, 0x15f43: 0x403a6825,
-	0x15f44: 0x403a7620, 0x15f45: 0x403a7820, 0x15f46: 0x403a7a20, 0x15f47: 0x403a7422,
-	0x15f48: 0x403a7e20, 0x15f49: 0x403a7423, 0x15f4a: 0x403a8220, 0x15f4b: 0x403a8420,
-	0x15f4c: 0xce410171, 0x15f4d: 0x403a9225, 0x15f4e: 0x403a9620, 0x15f4f: 0x403a8620,
-	0x15f50: 0x403a9224, 0x15f51: 0x403a9a20, 0x15f52: 0x403a9222, 0x15f53: 0xe00032ab,
-	0x15f54: 0x4002e820, 0x15f55: 0xce3b0171, 0x15f56: 0xae600000, 0x15f57: 0xae600000,
-	0x15f58: 0xae600000, 0x15f59: 0xae600000, 0x15f5a: 0xae600000, 0x15f5b: 0xae600000,
-	0x15f5c: 0xae600000, 0x15f5d: 0xa0000000, 0x15f5e: 0x40071220, 0x15f5f: 0xae600000,
-	0x15f60: 0xae600000, 0x15f61: 0xae600000, 0x15f62: 0xae600000, 0x15f63: 0xadc00000,
-	0x15f64: 0xae600000, 0x15f65: 0x003a7484, 0x15f66: 0x003a9084, 0x15f67: 0xae600000,
-	0x15f68: 0xae600000, 0x15f69: 0x40071420, 0x15f6a: 0xadc00000, 0x15f6b: 0xae600000,
-	0x15f6c: 0xae600000, 0x15f6d: 0xadc00000, 0x15f6e: 0x40399e20, 0x15f6f: 0x4039ba20,
-	0x15f70: 0xe0000161, 0x15f71: 0xe00001e9, 0x15f72: 0xe0000304, 0x15f73: 0xe00003de,
-	0x15f74: 0xe00004b9, 0x15f75: 0xe0000583, 0x15f76: 0xe000064e, 0x15f77: 0xe00006f6,
-	0x15f78: 0xe00007a2, 0x15f79: 0xe0000847, 0x15f7a: 0x4039d020, 0x15f7b: 0x4039e420,
-	0x15f7c: 0x4039f420, 0x15f7d: 0xe0001553, 0x15f7e: 0xe0001779, 0x15f7f: 0x403a7020,
-	// Block 0x57e, offset 0x15f80
-	0x15f80: 0x00021284, 0x15f81: 0x00021284, 0x15f82: 0x00021284, 0x15f83: 0x00021284,
-	0x15f84: 0x00021284, 0x15f85: 0x00021284, 0x15f86: 0x00021284, 0x15f87: 0x0002129b,
-	0x15f88: 0x00021284, 0x15f89: 0x00021284, 0x15f8a: 0x00021284, 0x15f8b: 0xa0000000,
-	0x15f8c: 0x40021221, 0x15f8d: 0x40021222, 0x15f8e: 0xa0000000, 0x15f8f: 0xa0000000,
-	0x15f90: 0x40022620, 0x15f91: 0x0002269b, 0x15f92: 0x40022820, 0x15f93: 0x40022a20,
-	0x15f94: 0x40022c20, 0x15f95: 0x40022e20, 0x15f96: 0x4004c420, 0x15f97: 0x40021820,
-	0x15f98: 0x4003d420, 0x15f99: 0x4003d620, 0x15f9a: 0x4003d820, 0x15f9b: 0x4003da20,
-	0x15f9c: 0x4003e220, 0x15f9d: 0x4003e420, 0x15f9e: 0x4003e620, 0x15f9f: 0x4003e820,
-	0x15fa0: 0x4004f820, 0x15fa1: 0x4004fa20, 0x15fa2: 0x40050220, 0x15fa3: 0x40050420,
-	0x15fa4: 0x0002e484, 0x15fa5: 0xf0001f04, 0x15fa6: 0xf0000404, 0x15fa7: 0x40050620,
-	0x15fa8: 0x40020e20, 0x15fa9: 0x40021020, 0x15faa: 0xa0000000, 0x15fab: 0xa0000000,
-	0x15fac: 0xa0000000, 0x15fad: 0xa0000000, 0x15fae: 0xa0000000, 0x15faf: 0x0002129b,
-	0x15fb0: 0x4004f020, 0x15fb1: 0x4004f420, 0x15fb2: 0x40050e20, 0x15fb3: 0xf0001f04,
-	0x15fb4: 0xf0000404, 0x15fb5: 0x40051020, 0x15fb6: 0xf0001f04, 0x15fb7: 0xf0000404,
-	0x15fb8: 0x40051620, 0x15fb9: 0x4003dc20, 0x15fba: 0x4003de20, 0x15fbb: 0x40051820,
-	0x15fbc: 0xf0001f04, 0x15fbd: 0x4002e020, 0x15fbe: 0x40021420, 0x15fbf: 0x40051a20,
-	// Block 0x57f, offset 0x15fc0
-	0x15fc0: 0x40073420, 0x15fc1: 0x40073620,
-	0x15fd3: 0x003a269a,
-	0x15fd4: 0x003a2699, 0x15fd5: 0x003a2697, 0x15fd6: 0x003a2698, 0x15fd7: 0x003a7c9a,
-	0x15fd8: 0x003a7c99, 0x15fd9: 0x003a7a9a, 0x15fda: 0x003a7a99, 0x15fdb: 0x003a7e9a,
-	0x15fdc: 0x003a7e99, 0x15fdd: 0xe000a94d, 0x15fde: 0x003a849a, 0x15fdf: 0x003a8499,
-	0x15fe0: 0x003a789a, 0x15fe1: 0x003a7899, 0x15fe2: 0x003a809a, 0x15fe3: 0x003a8099,
-	0x15fe4: 0x003a989a, 0x15fe5: 0x003a9899, 0x15fe6: 0x003a9897, 0x15fe7: 0x003a9898,
-	0x15fe8: 0x003a8e97, 0x15fe9: 0x003a8e98, 0x15fea: 0xe0001559, 0x15feb: 0xe0001556,
-	0x15fec: 0xe0001589, 0x15fed: 0xe0001586, 0x15fee: 0xe000158f, 0x15fef: 0xe000158c,
-	0x15ff0: 0xe000159b, 0x15ff1: 0xe0001598, 0x15ff2: 0xe0001595, 0x15ff3: 0xe0001592,
-	0x15ff4: 0xe00015a1, 0x15ff5: 0xe000159e, 0x15ff6: 0xe00015bf, 0x15ff7: 0xe00015bc,
-	0x15ff8: 0xe00015b9, 0x15ff9: 0xe00015ad, 0x15ffa: 0xe00015a7, 0x15ffb: 0xe00015a4,
-	0x15ffc: 0x003a929a, 0x15ffd: 0x003a9299, 0x15ffe: 0x003a9297, 0x15fff: 0x003a9298,
-	// Block 0x580, offset 0x16000
-	0x16000: 0xf0001a1a, 0x16001: 0xf0001a1a, 0x16002: 0xf0001a1a, 0x16003: 0xe0002502,
-	0x16004: 0xe0003242, 0x16005: 0xf0001a1a, 0x16006: 0xf0001a1a, 0x16007: 0xf0001a1a,
-	0x16008: 0xf0001a1a, 0x16009: 0xe0002505, 0x1600a: 0xe0003245, 0x1600b: 0xf0001a1a,
-	0x1600c: 0xf0001a1a, 0x1600d: 0xf0001a1a, 0x1600e: 0xf0001a1a, 0x1600f: 0xe000250b,
-	0x16010: 0xe0003251, 0x16011: 0xf0001a1a, 0x16012: 0xf0001a1a, 0x16013: 0xe000250e,
-	0x16014: 0xe0003263, 0x16015: 0xe000327b, 0x16016: 0xe0003281, 0x16017: 0xe0003287,
-	0x16018: 0xe0003299, 0x16019: 0xe0002514, 0x1601a: 0xe00032a8, 0x1601b: 0xf0001a1a,
-	0x1601c: 0xf0001a1a, 0x1601d: 0xe0003272, 0x1601e: 0xe0000003, 0x1601f: 0xe0000006,
-	0x16020: 0xe0000009, 0x16021: 0xe000000c, 0x16022: 0xe000000f, 0x16023: 0xe0000012,
-	0x16024: 0xe000156b, 0x16025: 0xe000156e, 0x16026: 0xe0001577, 0x16027: 0xe000157d,
-	0x16028: 0xe00015aa, 0x16029: 0xe00015b3, 0x1602a: 0xf0001919, 0x1602b: 0xf0001919,
-	0x1602c: 0xf0001919, 0x1602d: 0xf0001919, 0x1602e: 0xe000249f, 0x1602f: 0xe0003197,
-	0x16030: 0xf0001919, 0x16031: 0xf0001919, 0x16032: 0xf0001919, 0x16033: 0xf0001919,
-	0x16034: 0xe00024a5, 0x16035: 0xe00031a3, 0x16036: 0xf0001919, 0x16037: 0xf0001919,
-	0x16038: 0xf0001919, 0x16039: 0xf0001919, 0x1603a: 0xe00024ab, 0x1603b: 0xe00031ac,
-	0x1603c: 0xe00024ed, 0x1603d: 0xe00031fa, 0x1603e: 0xe00024f3, 0x1603f: 0xe0003200,
-	// Block 0x581, offset 0x16040
-	0x16040: 0xe0003206, 0x16041: 0xe0003224, 0x16042: 0xe0003230, 0x16043: 0xe00024f9,
-	0x16044: 0xe0003236, 0x16045: 0xf0001919, 0x16046: 0xe00024ff, 0x16047: 0xe000323f,
-	0x16048: 0xf0001919, 0x16049: 0xf0001919, 0x1604a: 0xf0001919, 0x1604b: 0xf0001919,
-	0x1604c: 0xf0001919, 0x1604d: 0xf0001919, 0x1604e: 0xe0002508, 0x1604f: 0xe000324e,
-	0x16050: 0xe000326f, 0x16051: 0xe000328a, 0x16052: 0xe000328d, 0x16053: 0xe0003296,
-	0x16054: 0xe000329c, 0x16055: 0xe0002511, 0x16056: 0xe00032a5, 0x16057: 0xe000155c,
-	0x16058: 0xe0001562, 0x16059: 0xe0001568, 0x1605a: 0xe0001571, 0x1605b: 0xe0001580,
-	0x1605c: 0xf0001717, 0x1605d: 0xf0001717, 0x1605e: 0xf0001717, 0x1605f: 0xf0001717,
-	0x16060: 0xf0001717, 0x16061: 0xf0001717, 0x16062: 0xf0001717, 0x16063: 0xf0001717,
-	0x16064: 0xf0001717, 0x16065: 0xf0001717, 0x16066: 0xf0001717, 0x16067: 0xf0001717,
-	0x16068: 0xf0001717, 0x16069: 0xf0001717, 0x1606a: 0xf0001717, 0x1606b: 0xf0001717,
-	0x1606c: 0xf0001717, 0x1606d: 0xf0001717, 0x1606e: 0xf0001717, 0x1606f: 0xf0001717,
-	0x16070: 0xf0001717, 0x16071: 0xf0001717, 0x16072: 0xf0001717, 0x16073: 0xf0001717,
-	0x16074: 0xf0001717, 0x16075: 0xf0001717, 0x16076: 0xf0001717, 0x16077: 0xf0001717,
-	0x16078: 0xf0001717, 0x16079: 0xf0001717, 0x1607a: 0xf0001717, 0x1607b: 0xf0001717,
-	0x1607c: 0xf0001717, 0x1607d: 0xf0001717, 0x1607e: 0xf0001717, 0x1607f: 0xf0001717,
-	// Block 0x582, offset 0x16080
-	0x16080: 0xf0001717, 0x16081: 0xf0001717, 0x16082: 0xf0001717, 0x16083: 0xf0001717,
-	0x16084: 0xe000320c, 0x16085: 0xe0003212, 0x16086: 0xe0003218, 0x16087: 0xe000321e,
-	0x16088: 0xe000322a, 0x16089: 0xf0001717, 0x1608a: 0xf0001717, 0x1608b: 0xf0001717,
-	0x1608c: 0xf0001717, 0x1608d: 0xf0001717, 0x1608e: 0xf0001717, 0x1608f: 0xf0001717,
-	0x16090: 0xf0001717, 0x16091: 0xf0001717, 0x16092: 0xf0001717, 0x16093: 0xf0001717,
-	0x16094: 0xf0001717, 0x16095: 0xf0001717, 0x16096: 0xf0001717, 0x16097: 0xf0001717,
-	0x16098: 0xf0001717, 0x16099: 0xf0001717, 0x1609a: 0xe0003278, 0x1609b: 0xe000327e,
-	0x1609c: 0xe0003284, 0x1609d: 0xe0003290, 0x1609e: 0xe000329f, 0x1609f: 0xe0001574,
-	0x160a0: 0xe0001583, 0x160a1: 0xf0001818, 0x160a2: 0xf0001818, 0x160a3: 0xf0001818,
-	0x160a4: 0xf0001818, 0x160a5: 0xf0001818, 0x160a6: 0xf0001818, 0x160a7: 0xf0001818,
-	0x160a8: 0xf0001818, 0x160a9: 0xf0001818, 0x160aa: 0xf0001818, 0x160ab: 0xe0003221,
-	0x160ac: 0xe000322d, 0x160ad: 0xf0001818, 0x160ae: 0xf0001818, 0x160af: 0xf0001818,
-	0x160b0: 0xe0003293, 0x160b1: 0xe00032a2, 0x160b2: 0xf0001818, 0x160b3: 0xe0003185,
-	0x160b4: 0xe0003188, 0x160b5: 0xe00024de, 0x160b6: 0xe00031eb, 0x160b7: 0xe00024e4,
-	0x160b8: 0xe00031f1, 0x160b9: 0xe00024ea, 0x160ba: 0xe00031f7, 0x160bb: 0xe00024c6,
-	0x160bc: 0xe00031cd, 0x160bd: 0xe00024cc, 0x160be: 0xe00031d9, 0x160bf: 0xe00024ba,
-	// Block 0x583, offset 0x160c0
-	0x160c0: 0xe00031bb, 0x160c1: 0xe00024b4, 0x160c2: 0xe00031b5, 0x160c3: 0xe00024c0,
-	0x160c4: 0xe00031c1, 0x160c5: 0xe00024d2, 0x160c6: 0xe00031df, 0x160c7: 0xe00024d8,
-	0x160c8: 0xe00031e5, 0x160c9: 0xf0001a1a, 0x160ca: 0xf0001a1a, 0x160cb: 0xf0001a1a,
-	0x160cc: 0xf0001a1a, 0x160cd: 0xf0001a1a, 0x160ce: 0xf0001a1a, 0x160cf: 0xf0001a1a,
-	0x160d0: 0xf0001a1a, 0x160d1: 0xe00024db, 0x160d2: 0xe00031e8, 0x160d3: 0xe00024e1,
-	0x160d4: 0xe00031ee, 0x160d5: 0xe00024e7, 0x160d6: 0xe00031f4, 0x160d7: 0xe00024c3,
-	0x160d8: 0xe00031ca, 0x160d9: 0xe00024c9, 0x160da: 0xe00031d6, 0x160db: 0xe00024b7,
-	0x160dc: 0xe00031b8, 0x160dd: 0xe00024b1, 0x160de: 0xe00031b2, 0x160df: 0xe00024bd,
-	0x160e0: 0xe00031be, 0x160e1: 0xe00024cf, 0x160e2: 0xe00031dc, 0x160e3: 0xe00024d5,
-	0x160e4: 0xe00031e2, 0x160e5: 0xf0001919, 0x160e6: 0xf0001919, 0x160e7: 0xf0001919,
-	0x160e8: 0xf0001919, 0x160e9: 0xf0001919, 0x160ea: 0xf0001919, 0x160eb: 0xf0001919,
-	0x160ec: 0xf0001919, 0x160ed: 0xf0001717, 0x160ee: 0xf0001717, 0x160ef: 0xf0001717,
-	0x160f0: 0xf0001717, 0x160f1: 0xf0001717, 0x160f2: 0xf0001717, 0x160f3: 0xf0001717,
-	0x160f4: 0xf0001818, 0x160f5: 0xf0001818, 0x160f6: 0xf0001818, 0x160f7: 0xf0001818,
-	0x160f8: 0xf0001818, 0x160f9: 0xf0001818, 0x160fa: 0xf0001818, 0x160fb: 0xf0001818,
-	0x160fc: 0xe000318b, 0x160fd: 0xe000318e, 0x160fe: 0x4004c020, 0x160ff: 0x4004c220,
-	// Block 0x584, offset 0x16100
-	0x16100: 0xa0000000, 0x16101: 0xa0000000, 0x16102: 0xa0000000, 0x16103: 0xa0000000,
-	0x16104: 0xa0000000, 0x16105: 0xa0000000, 0x16106: 0xa0000000, 0x16107: 0xa0000000,
-	0x16108: 0xa0000000, 0x16109: 0x40020020, 0x1610a: 0x40020220, 0x1610b: 0x40020420,
-	0x1610c: 0x40020620, 0x1610d: 0x40020820, 0x1610e: 0xa0000000, 0x1610f: 0xa0000000,
-	0x16110: 0xa0000000, 0x16111: 0xa0000000, 0x16112: 0xa0000000, 0x16113: 0xa0000000,
-	0x16114: 0xa0000000, 0x16115: 0xa0000000, 0x16116: 0xa0000000, 0x16117: 0xa0000000,
-	0x16118: 0xa0000000, 0x16119: 0xa0000000, 0x1611a: 0xa0000000, 0x1611b: 0xa0000000,
-	0x1611c: 0xa0000000, 0x1611d: 0xa0000000, 0x1611e: 0xa0000000, 0x1611f: 0xa0000000,
-	0x16120: 0x40021220, 0x16121: 0x4002ba20, 0x16122: 0x4003e020, 0x16123: 0x4004ea20,
-	0x16124: 0x4027de20, 0x16125: 0x4004ec20, 0x16126: 0x4004e620, 0x16127: 0x4003d220,
-	0x16128: 0x4003f420, 0x16129: 0x4003f620, 0x1612a: 0x4004d820, 0x1612b: 0x40093820,
-	0x1612c: 0x40024020, 0x1612d: 0x40021a20, 0x1612e: 0x4002e420, 0x1612f: 0x4004e220,
-	0x16130: 0x4029cc20, 0x16131: 0x4029ce20, 0x16132: 0x4029d020, 0x16133: 0x4029d220,
-	0x16134: 0x4029d420, 0x16135: 0x4029d620, 0x16136: 0x4029d820, 0x16137: 0x4029da20,
-	0x16138: 0x4029dc20, 0x16139: 0x4029de20, 0x1613a: 0x40026c20, 0x1613b: 0x40026220,
-	0x1613c: 0x40094020, 0x1613d: 0x40094220, 0x1613e: 0x40094420, 0x1613f: 0x4002c420,
-	// Block 0x585, offset 0x16140
-	0x16140: 0x4004d620, 0x16141: 0xce4a94d1, 0x16142: 0x002c0a88, 0x16143: 0x002c3a88,
-	0x16144: 0x002c6288, 0x16145: 0x002c9888, 0x16146: 0x002d0888, 0x16147: 0x002d2288,
-	0x16148: 0x002d6888, 0x16149: 0xc6042741, 0x1614a: 0x002dcc88, 0x1614b: 0x002dfe88,
-	0x1614c: 0xc0030002, 0x1614d: 0x002e8288, 0x1614e: 0x002e9e88, 0x1614f: 0x002ee288,
-	0x16150: 0x002f2c88, 0x16151: 0x002f5688, 0x16152: 0x002f7a88, 0x16153: 0xce509501,
-	0x16154: 0xce569501, 0x16155: 0x00306c88, 0x16156: 0x0030be88, 0x16157: 0x0030e288,
-	0x16158: 0x0030f688, 0x16159: 0x00310088, 0x1615a: 0x00312a88, 0x1615b: 0x4003f820,
-	0x1615c: 0x4004e420, 0x1615d: 0x4003fa20, 0x1615e: 0x40062420, 0x1615f: 0x40021620,
-	0x16160: 0x40061e20, 0x16161: 0xce4794d1, 0x16162: 0x402c0a20, 0x16163: 0x402c3a20,
-	0x16164: 0x402c6220, 0x16165: 0x402c9820, 0x16166: 0x402d0820, 0x16167: 0x402d2220,
-	0x16168: 0x402d6820, 0x16169: 0xc6022741, 0x1616a: 0x402dcc20, 0x1616b: 0x402dfe20,
-	0x1616c: 0xc0000002, 0x1616d: 0x402e8220, 0x1616e: 0x402e9e20, 0x1616f: 0x402ee220,
-	0x16170: 0x402f2c20, 0x16171: 0x402f5620, 0x16172: 0x402f7a20, 0x16173: 0xce4d9501,
-	0x16174: 0xce539501, 0x16175: 0x40306c20, 0x16176: 0x4030be20, 0x16177: 0x4030e220,
-	0x16178: 0x4030f620, 0x16179: 0x40310020, 0x1617a: 0x40312a20, 0x1617b: 0x4003fc20,
-	0x1617c: 0x40094820, 0x1617d: 0x4003fe20, 0x1617e: 0x40094c20, 0x1617f: 0xa0000000,
-	// Block 0x586, offset 0x16180
-	0x16180: 0xe00008f5, 0x16181: 0xe00008ef, 0x16182: 0x002be283, 0x16183: 0xe0000969,
-	0x16184: 0xe000095b, 0x16185: 0xe000094d, 0x16186: 0xe00009dd, 0x16187: 0xe0000a53,
-	0x16188: 0xe0000ae8, 0x16189: 0xe0000ae2, 0x1618a: 0xe0000af4, 0x1618b: 0xe0000b20,
-	0x1618c: 0xe0000c2b, 0x1618d: 0xe0000c25, 0x1618e: 0x002d9c83, 0x1618f: 0xe0000c43,
-	0x16190: 0xe0000ab3, 0x16191: 0xe0000d63, 0x16192: 0xe0000d9a, 0x16193: 0xe0000d94,
-	0x16194: 0xe0000da6, 0x16195: 0xe0000de6, 0x16196: 0xe0000dd2, 0x16197: 0x40093e20,
-	0x16198: 0xe0000e12, 0x16199: 0xe0000fe1, 0x1619a: 0xe0000fdb, 0x1619b: 0xe0000fed,
-	0x1619c: 0xe0000fff, 0x1619d: 0xe0001102, 0x1619e: 0x00318888, 0x1619f: 0xe0000f7b,
-	0x161a0: 0xe00008f2, 0x161a1: 0xe00008ec, 0x161a2: 0x402be220, 0x161a3: 0xe0000966,
-	0x161a4: 0xe0000958, 0x161a5: 0xe000094a, 0x161a6: 0xe00009d5, 0x161a7: 0xe0000a4d,
-	0x161a8: 0xe0000ae5, 0x161a9: 0xe0000adf, 0x161aa: 0xe0000af1, 0x161ab: 0xe0000b1d,
-	0x161ac: 0xe0000c28, 0x161ad: 0xe0000c22, 0x161ae: 0x402d9c20, 0x161af: 0xe0000c40,
-	0x161b0: 0xe0000aad, 0x161b1: 0xe0000d60, 0x161b2: 0xe0000d97, 0x161b3: 0xe0000d91,
-	0x161b4: 0xe0000da3, 0x161b5: 0xe0000de3, 0x161b6: 0xe0000dcf, 0x161b7: 0x40093c20,
-	0x161b8: 0xe0000e0f, 0x161b9: 0xe0000fde, 0x161ba: 0xe0000fd8, 0x161bb: 0xe0000fea,
-	0x161bc: 0xe0000ffc, 0x161bd: 0xe00010ff, 0x161be: 0x40318820, 0x161bf: 0xe0001114,
-	// Block 0x587, offset 0x161c0
-	0x161c0: 0xe0000983, 0x161c1: 0xe0000980, 0x161c2: 0x002be083, 0x161c3: 0x402be020,
-	0x161c4: 0xe000097d, 0x161c5: 0xe000097a, 0x161c6: 0xe0000a38, 0x161c7: 0xe0000a35,
-	0x161c8: 0xe0000a3e, 0x161c9: 0xe0000a3b, 0x161ca: 0xe0000a4a, 0x161cb: 0xe0000a47,
-	0x161cc: 0xe0000a44, 0x161cd: 0xe0000a41, 0x161ce: 0xe0000a86, 0x161cf: 0xe0000a83,
-	0x161d0: 0xe0000aaa, 0x161d1: 0xe0000aa7, 0x161d2: 0xe0000b46, 0x161d3: 0xe0000b43,
-	0x161d4: 0xe0000aee, 0x161d5: 0xe0000aeb, 0x161d6: 0xe0000b2c, 0x161d7: 0xe0000b29,
-	0x161d8: 0xe0000b40, 0x161d9: 0xe0000b3d, 0x161da: 0xe0000b1a, 0x161db: 0xe0000b17,
-	0x161dc: 0xe0000bb8, 0x161dd: 0xe0000bb5, 0x161de: 0xe0000bb2, 0x161df: 0xe0000baf,
-	0x161e0: 0xe0000bc4, 0x161e1: 0xe0000bc1, 0x161e2: 0xe0000bca, 0x161e3: 0xe0000bc7,
-	0x161e4: 0xe0000bee, 0x161e5: 0xe0000beb, 0x161e6: 0xe0000c1b, 0x161e7: 0xe0000c18,
-	0x161e8: 0xe0000c51, 0x161e9: 0xe0000c4e, 0x161ea: 0xe0000c60, 0x161eb: 0xe0000c5d,
-	0x161ec: 0xe0000c31, 0x161ed: 0xe0000c2e, 0x161ee: 0xe0000c5a, 0x161ef: 0xe0000c57,
-	0x161f0: 0xe0000c54, 0x161f1: 0x402da220, 0x161f2: 0xf0000a0a, 0x161f3: 0xf0000404,
-	0x161f4: 0xe0000c8a, 0x161f5: 0xe0000c87, 0x161f6: 0xe0000c9f, 0x161f7: 0xe0000c9c,
-	0x161f8: 0x402f7220, 0x161f9: 0xe0000ccc, 0x161fa: 0xe0000cc9, 0x161fb: 0xe0000cd8,
-	0x161fc: 0xe0000cd5, 0x161fd: 0xe0000cd2, 0x161fe: 0xe0000ccf, 0x161ff: 0xe0000d04,
-	// Block 0x588, offset 0x16200
-	0x16200: 0xe0000cfe, 0x16201: 0xe0000cf8, 0x16202: 0xe0000cf5, 0x16203: 0xe0000d51,
-	0x16204: 0xe0000d4e, 0x16205: 0xe0000d6f, 0x16206: 0xe0000d6c, 0x16207: 0xe0000d5d,
-	0x16208: 0xe0000d5a, 0x16209: 0xf0000404, 0x1620a: 0x002eda88, 0x1620b: 0x402eda20,
-	0x1620c: 0xe0000e2e, 0x1620d: 0xe0000e2b, 0x1620e: 0xe0000da0, 0x1620f: 0xe0000d9d,
-	0x16210: 0xe0000de0, 0x16211: 0xe0000ddd, 0x16212: 0xe0000e93, 0x16213: 0xe0000e8f,
-	0x16214: 0xe0000eca, 0x16215: 0xe0000ec7, 0x16216: 0xe0000edc, 0x16217: 0xe0000ed9,
-	0x16218: 0xe0000ed0, 0x16219: 0xe0000ecd, 0x1621a: 0xe0000f1f, 0x1621b: 0xe0000f1c,
-	0x1621c: 0xe0000f2d, 0x1621d: 0xe0000f2a, 0x1621e: 0x002fe883, 0x1621f: 0x402fe820,
-	0x16220: 0xe0000f33, 0x16221: 0xe0000f30, 0x16222: 0x00302e83, 0x16223: 0x40302e20,
-	0x16224: 0xe0000f8a, 0x16225: 0xe0000f87, 0x16226: 0x00303688, 0x16227: 0x40303620,
-	0x16228: 0xe000102b, 0x16229: 0xe0001028, 0x1622a: 0xe000103f, 0x1622b: 0xe000103c,
-	0x1622c: 0xe0000fe7, 0x1622d: 0xe0000fe4, 0x1622e: 0xe0000ff9, 0x1622f: 0xe0000ff6,
-	0x16230: 0xe0001025, 0x16231: 0xe0001022, 0x16232: 0xe0001039, 0x16233: 0xe0001036,
-	0x16234: 0xe00010d8, 0x16235: 0xe00010d5, 0x16236: 0xe000110e, 0x16237: 0xe000110b,
-	0x16238: 0xe0001117, 0x16239: 0xe000113b, 0x1623a: 0xe0001138, 0x1623b: 0xe000114d,
-	0x1623c: 0xe000114a, 0x1623d: 0xe0001147, 0x1623e: 0xe0001144, 0x1623f: 0xe0000f64,
-	// Block 0x589, offset 0x16240
-	0x16240: 0xe000098f, 0x16241: 0xe000098c, 0x16242: 0xe0000995, 0x16243: 0xe0000992,
-	0x16244: 0xe0000b62, 0x16245: 0xe0000b5f, 0x16246: 0xe0000b68, 0x16247: 0xe0000b65,
-	0x16248: 0xe0000c6c, 0x16249: 0xe0000c69, 0x1624a: 0xe0000c72, 0x1624b: 0xe0000c6f,
-	0x1624c: 0xe0000e4a, 0x1624d: 0xe0000e47, 0x1624e: 0xe0000e50, 0x1624f: 0xe0000e4d,
-	0x16250: 0xe0000ee8, 0x16251: 0xe0000ee5, 0x16252: 0xe0000eee, 0x16253: 0xe0000eeb,
-	0x16254: 0xe0001053, 0x16255: 0xe0001050, 0x16256: 0xe0001059, 0x16257: 0xe0001056,
-	0x16258: 0x002fe883, 0x16259: 0x402fe820, 0x1625a: 0x00302e83, 0x1625b: 0x40302e20,
-	0x1625c: 0x00312288, 0x1625d: 0x40312220, 0x1625e: 0xe0000bf4, 0x1625f: 0xe0000bf1,
-	0x16260: 0x002ebc88, 0x16261: 0x402c8c20, 0x16262: 0x002f2288, 0x16263: 0x402f2220,
-	0x16264: 0x00314088, 0x16265: 0x40314020, 0x16266: 0xe000096f, 0x16267: 0xe000096c,
-	0x16268: 0xe0000b32, 0x16269: 0xe0000b2f, 0x1626a: 0xe0000dd9, 0x1626b: 0xe0000dd5,
-	0x1626c: 0xe0000dfd, 0x1626d: 0xe0000df9, 0x1626e: 0xe0000e04, 0x1626f: 0xe0000e01,
-	0x16270: 0xe0000e0b, 0x16271: 0xe0000e07, 0x16272: 0xe0001129, 0x16273: 0xe0001126,
-	0x16274: 0x402e5e20, 0x16275: 0x402ed020, 0x16276: 0x40305a20, 0x16277: 0x402dd420,
-	0x16278: 0xe0000abf, 0x16279: 0xe0000ec4, 0x1627a: 0x002be888, 0x1627b: 0x002c4488,
-	0x1627c: 0x402c4420, 0x1627d: 0x002e3888, 0x1627e: 0x00303e88, 0x1627f: 0x402ffc20,
-	// Block 0x58a, offset 0x16280
-	0x16280: 0xe00010d2, 0x16281: 0xe00010cf, 0x16282: 0xe00010cc, 0x16283: 0xe00010c9,
-	0x16284: 0xe00010e1, 0x16285: 0xe00010de, 0x16286: 0xe00010e7, 0x16287: 0xe00010e4,
-	0x16288: 0xe00010ed, 0x16289: 0xe00010ea, 0x1628a: 0xe00010fc, 0x1628b: 0xe00010f9,
-	0x1628c: 0xe00010f6, 0x1628d: 0xe00010f3, 0x1628e: 0xe0001123, 0x1628f: 0xe0001120,
-	0x16290: 0xe0001141, 0x16291: 0xe000113e, 0x16292: 0xe0001153, 0x16293: 0xe0001150,
-	0x16294: 0xe0001159, 0x16295: 0xe0001156, 0x16296: 0xe0000c15, 0x16297: 0xe0000f8d,
-	0x16298: 0xe00010db, 0x16299: 0xe0001111, 0x1629a: 0xf0000404, 0x1629b: 0xe0000f70,
-	0x1629c: 0x40300420, 0x1629d: 0x40300620, 0x1629e: 0xe0000f7f, 0x1629f: 0x402c9620,
-	0x162a0: 0xe000099b, 0x162a1: 0xe0000998, 0x162a2: 0xe0000989, 0x162a3: 0xe0000986,
-	0x162a4: 0xe0003405, 0x162a5: 0xe0003402, 0x162a6: 0xe000340b, 0x162a7: 0xe0003408,
-	0x162a8: 0xe0003446, 0x162a9: 0xe0003443, 0x162aa: 0xe0003431, 0x162ab: 0xe000342e,
-	0x162ac: 0xe0003458, 0x162ad: 0xe0003455, 0x162ae: 0xe000335f, 0x162af: 0xe000335c,
-	0x162b0: 0xe0003365, 0x162b1: 0xe0003362, 0x162b2: 0xe00033d9, 0x162b3: 0xe00033d6,
-	0x162b4: 0xe00033a3, 0x162b5: 0xe00033a0, 0x162b6: 0xe00033eb, 0x162b7: 0xe00033e8,
-	0x162b8: 0xe0000b6e, 0x162b9: 0xe0000b6b, 0x162ba: 0xe0000b5c, 0x162bb: 0xe0000b59,
-	0x162bc: 0xe0000b26, 0x162bd: 0xe0000b23, 0x162be: 0xe0000afb, 0x162bf: 0xe0000af7,
-	// Block 0x58b, offset 0x162c0
-	0x162c0: 0xa0000000, 0x162c1: 0xa0000000, 0x162c2: 0xa0000000, 0x162c3: 0xa0000000,
-	0x162c4: 0xa0000000, 0x162c5: 0xa0000000, 0x162c6: 0xa0000000, 0x162c7: 0xa0000000,
-	0x162c8: 0xa0000000, 0x162c9: 0x40020020, 0x162ca: 0x40020220, 0x162cb: 0x40020420,
-	0x162cc: 0x40020620, 0x162cd: 0x40020820, 0x162ce: 0xa0000000, 0x162cf: 0xa0000000,
-	0x162d0: 0xa0000000, 0x162d1: 0xa0000000, 0x162d2: 0xa0000000, 0x162d3: 0xa0000000,
-	0x162d4: 0xa0000000, 0x162d5: 0xa0000000, 0x162d6: 0xa0000000, 0x162d7: 0xa0000000,
-	0x162d8: 0xa0000000, 0x162d9: 0xa0000000, 0x162da: 0xa0000000, 0x162db: 0xa0000000,
-	0x162dc: 0xa0000000, 0x162dd: 0xa0000000, 0x162de: 0xa0000000, 0x162df: 0xa0000000,
-	0x162e0: 0x40021220, 0x162e1: 0x4002ba20, 0x162e2: 0x4003e020, 0x162e3: 0x4004ea20,
-	0x162e4: 0x4027de20, 0x162e5: 0x4004ec20, 0x162e6: 0x4004e620, 0x162e7: 0x4003d220,
-	0x162e8: 0x4003f420, 0x162e9: 0x4003f620, 0x162ea: 0x4004d820, 0x162eb: 0x40093820,
-	0x162ec: 0x40024020, 0x162ed: 0x40021a20, 0x162ee: 0x4002e420, 0x162ef: 0x4004e220,
-	0x162f0: 0x4029cc20, 0x162f1: 0x4029ce20, 0x162f2: 0x4029d020, 0x162f3: 0x4029d220,
-	0x162f4: 0x4029d420, 0x162f5: 0x4029d620, 0x162f6: 0x4029d820, 0x162f7: 0x4029da20,
-	0x162f8: 0x4029dc20, 0x162f9: 0x4029de20, 0x162fa: 0x40026c20, 0x162fb: 0x40026220,
-	0x162fc: 0x40094020, 0x162fd: 0x40094220, 0x162fe: 0x40094420, 0x162ff: 0x4002c420,
-	// Block 0x58c, offset 0x16300
-	0x16300: 0x4004d620, 0x16301: 0xce5f9521, 0x16302: 0x002c0a88, 0x16303: 0xce670991,
-	0x16304: 0x002c6288, 0x16305: 0x002c9888, 0x16306: 0x002d0888, 0x16307: 0xce6f0991,
-	0x16308: 0x002d6888, 0x16309: 0x002d9a88, 0x1630a: 0x002dcc88, 0x1630b: 0xcabc0991,
-	0x1630c: 0xc0030002, 0x1630d: 0x002e8288, 0x1630e: 0xce749571, 0x1630f: 0xce8195a1,
-	0x16310: 0x002f2c88, 0x16311: 0x002f5688, 0x16312: 0x002f7a88, 0x16313: 0xcad00991,
-	0x16314: 0x00302c88, 0x16315: 0xc3900b21, 0x16316: 0x0030be88, 0x16317: 0x0030e288,
-	0x16318: 0x0030f688, 0x16319: 0x00310088, 0x1631a: 0xce790991, 0x1631b: 0x4003f820,
-	0x1631c: 0x4004e420, 0x1631d: 0x4003fa20, 0x1631e: 0x40062420, 0x1631f: 0x40021620,
-	0x16320: 0x40061e20, 0x16321: 0xce599521, 0x16322: 0x402c0a20, 0x16323: 0xce650991,
-	0x16324: 0x402c6220, 0x16325: 0x402c9820, 0x16326: 0x402d0820, 0x16327: 0xce6d0991,
-	0x16328: 0x402d6820, 0x16329: 0x402d9a20, 0x1632a: 0x402dcc20, 0x1632b: 0xcaba0991,
-	0x1632c: 0xc0000002, 0x1632d: 0x402e8220, 0x1632e: 0xce719571, 0x1632f: 0xce7b95a1,
-	0x16330: 0x402f2c20, 0x16331: 0x402f5620, 0x16332: 0x402f7a20, 0x16333: 0xcace0991,
-	0x16334: 0x40302c20, 0x16335: 0xc38d0b21, 0x16336: 0x4030be20, 0x16337: 0x4030e220,
-	0x16338: 0x4030f620, 0x16339: 0x40310020, 0x1633a: 0xce770991, 0x1633b: 0x4003fc20,
-	0x1633c: 0x40094820, 0x1633d: 0x4003fe20, 0x1633e: 0x40094c20, 0x1633f: 0xa0000000,
-	// Block 0x58d, offset 0x16340
-	0x16340: 0xe00008f5, 0x16341: 0x002c0883, 0x16342: 0xe0000921, 0x16343: 0x00320ea3,
-	0x16344: 0x00320e83, 0x16345: 0x00320c83, 0x16346: 0x00320a83, 0x16347: 0xe0000a53,
-	0x16348: 0xe0000ae8, 0x16349: 0xe0000ae2, 0x1634a: 0xe0000af4, 0x1634b: 0xe0000b20,
-	0x1634c: 0xe0000c2b, 0x1634d: 0xe0000c25, 0x1634e: 0xe0000c37, 0x1634f: 0xe0000c43,
-	0x16350: 0x002c96a3, 0x16351: 0x002ee0c3, 0x16352: 0xe0000d9a, 0x16353: 0xe0000d94,
-	0x16354: 0x003210e3, 0x16355: 0x003210c3, 0x16356: 0x00321083, 0x16357: 0x40093e20,
-	0x16358: 0x00320883, 0x16359: 0xe0000fe1, 0x1635a: 0xe0000fdb, 0x1635b: 0xe0000fed,
-	0x1635c: 0x003100a3, 0x1635d: 0xe0001102, 0x1635e: 0x00306aa3, 0x1635f: 0xe0000f7b,
-	0x16360: 0xe00008f2, 0x16361: 0x402c0820, 0x16362: 0xe000091e, 0x16363: 0x40320e21,
-	0x16364: 0x40320e20, 0x16365: 0x40320c20, 0x16366: 0x40320a20, 0x16367: 0xe0000a4d,
-	0x16368: 0xe0000ae5, 0x16369: 0xe0000adf, 0x1636a: 0xe0000af1, 0x1636b: 0xe0000b1d,
-	0x1636c: 0xe0000c28, 0x1636d: 0xe0000c22, 0x1636e: 0xe0000c34, 0x1636f: 0xe0000c40,
-	0x16370: 0x402c9621, 0x16371: 0x402ee022, 0x16372: 0xe0000d97, 0x16373: 0xe0000d91,
-	0x16374: 0x40321023, 0x16375: 0x40321022, 0x16376: 0x40321020, 0x16377: 0x40093c20,
-	0x16378: 0x40320820, 0x16379: 0xe0000fde, 0x1637a: 0xe0000fd8, 0x1637b: 0xe0000fea,
-	0x1637c: 0x40310021, 0x1637d: 0xe00010ff, 0x1637e: 0x40306a21, 0x1637f: 0xe0001114,
-	// Block 0x58e, offset 0x16380
-	0x16380: 0xe0000983, 0x16381: 0xe0000980, 0x16382: 0xe00008fb, 0x16383: 0xe00008f8,
-	0x16384: 0xe000097d, 0x16385: 0xe000097a, 0x16386: 0xe0000a38, 0x16387: 0xe0000a35,
-	0x16388: 0xe0000a3e, 0x16389: 0xe0000a3b, 0x1638a: 0xe0000a4a, 0x1638b: 0xe0000a47,
-	0x1638c: 0x002c5c83, 0x1638d: 0x402c5c20, 0x1638e: 0xe0000a86, 0x1638f: 0xe0000a83,
-	0x16390: 0x002c9683, 0x16391: 0x402c9620, 0x16392: 0xe0000b46, 0x16393: 0xe0000b43,
-	0x16394: 0xe0000aee, 0x16395: 0xe0000aeb, 0x16396: 0xe0000b2c, 0x16397: 0xe0000b29,
-	0x16398: 0xe0000b40, 0x16399: 0xe0000b3d, 0x1639a: 0xe0000b1a, 0x1639b: 0xe0000b17,
-	0x1639c: 0xe0000bb8, 0x1639d: 0xe0000bb5, 0x1639e: 0xe0000bb2, 0x1639f: 0xe0000baf,
-	0x163a0: 0xe0000bc4, 0x163a1: 0xe0000bc1, 0x163a2: 0xe0000bca, 0x163a3: 0xe0000bc7,
-	0x163a4: 0xe0000bee, 0x163a5: 0xe0000beb, 0x163a6: 0xe0000c1b, 0x163a7: 0xe0000c18,
-	0x163a8: 0xe0000c51, 0x163a9: 0xe0000c4e, 0x163aa: 0xe0000c60, 0x163ab: 0xe0000c5d,
-	0x163ac: 0xe0000c31, 0x163ad: 0xe0000c2e, 0x163ae: 0xe0000c5a, 0x163af: 0xe0000c57,
-	0x163b0: 0xe0000c54, 0x163b1: 0x402da220, 0x163b2: 0xf0000a0a, 0x163b3: 0xf0000404,
-	0x163b4: 0xe0000c8a, 0x163b5: 0xe0000c87, 0x163b6: 0xe0000c9f, 0x163b7: 0xe0000c9c,
-	0x163b8: 0x402f7220, 0x163b9: 0xe0000ccc, 0x163ba: 0xe0000cc9, 0x163bb: 0xe0000cd8,
-	0x163bc: 0xe0000cd5, 0x163bd: 0xe0000cd2, 0x163be: 0xe0000ccf, 0x163bf: 0xe0000d04,
-	// Block 0x58f, offset 0x163c0
-	0x163c0: 0xe0000cfe, 0x163c1: 0xe0000cf8, 0x163c2: 0xe0000cf5, 0x163c3: 0x002ee0a3,
-	0x163c4: 0x402ee021, 0x163c5: 0xe0000d6f, 0x163c6: 0xe0000d6c, 0x163c7: 0xe0000d5d,
-	0x163c8: 0xe0000d5a, 0x163c9: 0xf0000404, 0x163ca: 0x002ee083, 0x163cb: 0x402ee020,
-	0x163cc: 0xe0000e2e, 0x163cd: 0xe0000e2b, 0x163ce: 0xe0000da0, 0x163cf: 0xe0000d9d,
-	0x163d0: 0x003210a3, 0x163d1: 0x40321021, 0x163d2: 0x003208a3, 0x163d3: 0x40320821,
-	0x163d4: 0xe0000eca, 0x163d5: 0xe0000ec7, 0x163d6: 0xe0000edc, 0x163d7: 0xe0000ed9,
-	0x163d8: 0xe0000ed0, 0x163d9: 0xe0000ecd, 0x163da: 0xe0000f1f, 0x163db: 0xe0000f1c,
-	0x163dc: 0xe0000f2d, 0x163dd: 0xe0000f2a, 0x163de: 0xe0000f47, 0x163df: 0xe0000f44,
-	0x163e0: 0x00302a83, 0x163e1: 0x40302a20, 0x163e2: 0xe0000f99, 0x163e3: 0xe0000f96,
-	0x163e4: 0xe0000f8a, 0x163e5: 0xe0000f87, 0x163e6: 0x00306a83, 0x163e7: 0x40306a20,
-	0x163e8: 0xe000102b, 0x163e9: 0xe0001028, 0x163ea: 0xe000103f, 0x163eb: 0xe000103c,
-	0x163ec: 0xe0000fe7, 0x163ed: 0xe0000fe4, 0x163ee: 0xe0000ff9, 0x163ef: 0xe0000ff6,
-	0x163f0: 0x003100c3, 0x163f1: 0x40310022, 0x163f2: 0xe0001039, 0x163f3: 0xe0001036,
-	0x163f4: 0xe00010d8, 0x163f5: 0xe00010d5, 0x163f6: 0xe000110e, 0x163f7: 0xe000110b,
-	0x163f8: 0xe0001117, 0x163f9: 0xe000113b, 0x163fa: 0xe0001138, 0x163fb: 0xe000114d,
-	0x163fc: 0xe000114a, 0x163fd: 0x00320683, 0x163fe: 0x40320620, 0x163ff: 0xe0000f64,
-	// Block 0x590, offset 0x16400
-	0x16400: 0x402c1a20, 0x16401: 0x002c2a88, 0x16402: 0x002c3288, 0x16403: 0x402c3220,
-	0x16404: 0x0031c488, 0x16405: 0x4031c420, 0x16406: 0x002efa88, 0x16407: 0x002c4e88,
-	0x16408: 0x402c4e20, 0x16409: 0x002c7288, 0x1640a: 0x002c7a88, 0x1640b: 0x002c8488,
-	0x1640c: 0x402c8420, 0x1640d: 0xe000115c, 0x1640e: 0x002cae88, 0x1640f: 0x002cb888,
-	0x16410: 0x002cc288, 0x16411: 0x002d1688, 0x16412: 0x402d1620, 0x16413: 0x002d4488,
-	0x16414: 0x002d5888, 0x16415: 0x402d7820, 0x16416: 0x002dc288, 0x16417: 0x002db688,
-	0x16418: 0x002e0a88, 0x16419: 0x402e0a20, 0x1641a: 0x402e3820, 0x1641b: 0x402e7220,
-	0x1641c: 0x0030a088, 0x1641d: 0x002eb488, 0x1641e: 0x402ebc20, 0x1641f: 0x002f1088,
-	0x16420: 0xe0000e56, 0x16421: 0xe0000e53, 0x16422: 0x002d6088, 0x16423: 0x402d6020,
-	0x16424: 0x002f3e88, 0x16425: 0x402f3e20, 0x16426: 0x002f8288, 0x16427: 0x0031b488,
-	0x16428: 0x4031b420, 0x16429: 0x00300888, 0x1642a: 0x40301220, 0x1642b: 0x40304220,
-	0x1642c: 0x00304a88, 0x1642d: 0x40304a20, 0x1642e: 0x00305288, 0x1642f: 0xe000105f,
-	0x16430: 0xe000105c, 0x16431: 0x0030b488, 0x16432: 0x0030cc88, 0x16433: 0x00311888,
-	0x16434: 0x40311820, 0x16435: 0x00313488, 0x16436: 0x40313420, 0x16437: 0xce6b0991,
-	0x16438: 0x00316e88, 0x16439: 0x40316e20, 0x1643a: 0x40317820, 0x1643b: 0x4031a620,
-	0x1643c: 0x0031bc88, 0x1643d: 0x4031bc20, 0x1643e: 0xe0000fc9, 0x1643f: 0x40319420,
-	// Block 0x591, offset 0x16440
-	0x16440: 0x40321220, 0x16441: 0x40321a20, 0x16442: 0x40322220, 0x16443: 0x40322a20,
-	0x16444: 0xe0000ad5, 0x16445: 0xe0000ad1, 0x16446: 0xe0000acd, 0x16447: 0xf0000a0a,
-	0x16448: 0xf000040a, 0x16449: 0xf0000404, 0x1644a: 0xf0000a0a, 0x1644b: 0xf000040a,
-	0x1644c: 0xf0000404, 0x1644d: 0xe0000947, 0x1644e: 0xe0000944, 0x1644f: 0xe0000c3d,
-	0x16450: 0xe0000c3a, 0x16451: 0xe0000dcc, 0x16452: 0xe0000dc9, 0x16453: 0xe0000ff3,
-	0x16454: 0xe0000ff0, 0x16455: 0xe00025e4, 0x16456: 0xe00025e1, 0x16457: 0xe00025d2,
-	0x16458: 0xe00025cf, 0x16459: 0xe00025de, 0x1645a: 0xe00025db, 0x1645b: 0xe00025d8,
-	0x1645c: 0xe00025d5, 0x1645d: 0x402cae20, 0x1645e: 0xe00032dd, 0x1645f: 0xe00032da,
-	0x16460: 0xe00025f6, 0x16461: 0xe00025f3, 0x16462: 0xe000a95f, 0x16463: 0xe000a95c,
-	0x16464: 0x002d6683, 0x16465: 0x402d6620, 0x16466: 0x002d6483, 0x16467: 0x402d6420,
-	0x16468: 0x002e2083, 0x16469: 0x402e2020, 0x1646a: 0x00321103, 0x1646b: 0x40321024,
-	0x1646c: 0xe000a9a7, 0x1646d: 0xe000a9a4, 0x1646e: 0x002c6083, 0x1646f: 0x402c6020,
-	0x16470: 0xe0000c8d, 0x16471: 0xf0000a0a, 0x16472: 0xf000040a, 0x16473: 0xf0000404,
-	0x16474: 0xe0000bac, 0x16475: 0xe0000ba9, 0x16476: 0x002d7888, 0x16477: 0x00319488,
-	0x16478: 0xe0000d57, 0x16479: 0xe0000d54, 0x1647a: 0xe00025ea, 0x1647b: 0xe00025e7,
-	0x1647c: 0xe000a959, 0x1647d: 0xe000a956, 0x1647e: 0xe000a953, 0x1647f: 0xe000a950,
-	// Block 0x592, offset 0x16480
-	0x16480: 0xe000098f, 0x16481: 0xe000098c, 0x16482: 0xe0000995, 0x16483: 0xe0000992,
-	0x16484: 0xe0000b62, 0x16485: 0xe0000b5f, 0x16486: 0xe0000b68, 0x16487: 0xe0000b65,
-	0x16488: 0xe0000c6c, 0x16489: 0xe0000c69, 0x1648a: 0xe0000c72, 0x1648b: 0xe0000c6f,
-	0x1648c: 0xe0000e4a, 0x1648d: 0xe0000e47, 0x1648e: 0xe0000e50, 0x1648f: 0xe0000e4d,
-	0x16490: 0xe0000ee8, 0x16491: 0xe0000ee5, 0x16492: 0xe0000eee, 0x16493: 0xe0000eeb,
-	0x16494: 0xe0001053, 0x16495: 0xe0001050, 0x16496: 0xe0001059, 0x16497: 0xe0001056,
-	0x16498: 0xe0000f61, 0x16499: 0xe0000f5e, 0x1649a: 0xe0000fa5, 0x1649b: 0xe0000fa2,
-	0x1649c: 0x00312288, 0x1649d: 0x40312220, 0x1649e: 0xe0000bf4, 0x1649f: 0xe0000bf1,
-	0x164a0: 0x002ebc88, 0x164a1: 0x402c8c20, 0x164a2: 0x002f2288, 0x164a3: 0x402f2220,
-	0x164a4: 0x00314088, 0x164a5: 0x40314020, 0x164a6: 0x00320ca3, 0x164a7: 0x40320c21,
-	0x164a8: 0xe0000b32, 0x164a9: 0xe0000b2f, 0x164aa: 0xe00032ef, 0x164ab: 0xe00032ec,
-	0x164ac: 0xe000a97d, 0x164ad: 0xe000a97a, 0x164ae: 0xe0000e04, 0x164af: 0xe0000e01,
-	0x164b0: 0xe0000e0b, 0x164b1: 0xe0000e07, 0x164b2: 0xe0001129, 0x164b3: 0xe0001126,
-	0x164b4: 0x402e5e20, 0x164b5: 0x402ed020, 0x164b6: 0x40305a20, 0x164b7: 0x402dd420,
-	0x164b8: 0xe0000abf, 0x164b9: 0xe0000ec4, 0x164ba: 0x002be888, 0x164bb: 0x002c4488,
-	0x164bc: 0x402c4420, 0x164bd: 0x002e3888, 0x164be: 0x00303e88, 0x164bf: 0x402ffc20,
-	// Block 0x593, offset 0x164c0
-	0x164c0: 0x402f8220, 0x164c1: 0x402fd820, 0x164c2: 0x402ff420, 0x164c3: 0x40300820,
-	0x164c4: 0x402df620, 0x164c5: 0x40301a20, 0x164c6: 0x40302420, 0x164c7: 0x40306420,
-	0x164c8: 0x40305220, 0x164c9: 0x40307c20, 0x164ca: 0x4030b420, 0x164cb: 0x4030cc20,
-	0x164cc: 0x4030da20, 0x164cd: 0x4030ee20, 0x164ce: 0x402e7a20, 0x164cf: 0x40310820,
-	0x164d0: 0x40314820, 0x164d1: 0x40315020, 0x164d2: 0xce690991, 0x164d3: 0x40318020,
-	0x164d4: 0x4031cc20, 0x164d5: 0x4031e820, 0x164d6: 0x40320a20, 0x164d7: 0x40323220,
-	0x164d8: 0x40323a20, 0x164d9: 0x402c1220, 0x164da: 0x402cf820, 0x164db: 0x402d4c20,
-	0x164dc: 0x402d7020, 0x164dd: 0x402de620, 0x164de: 0x402e1a20, 0x164df: 0x402e2a20,
-	0x164e0: 0x402f6220, 0x164e1: 0x4031fa20, 0x164e2: 0x40320220, 0x164e3: 0xe0000aca,
-	0x164e4: 0xe0000adc, 0x164e5: 0xe0000ad9, 0x164e6: 0xe0000fcc, 0x164e7: 0xe0000fcf,
-	0x164e8: 0xe0000fba, 0x164e9: 0xe0000ba1, 0x164ea: 0xe0000d11, 0x164eb: 0xe0000d18,
-	0x164ec: 0x40324220, 0x164ed: 0x40324a20, 0x164ee: 0x40309020, 0x164ef: 0x40309820,
-	0x164f0: 0x002d6894, 0x164f1: 0x002d8094, 0x164f2: 0x002dcc94, 0x164f3: 0x002f7a94,
-	0x164f4: 0x002f9894, 0x164f5: 0x002fac94, 0x164f6: 0x002fd894, 0x164f7: 0x0030e294,
-	0x164f8: 0x00310094, 0x164f9: 0x40064020, 0x164fa: 0x40064420, 0x164fb: 0x402d9620,
-	0x164fc: 0x4031de20, 0x164fd: 0x402d9820, 0x164fe: 0x4031e220, 0x164ff: 0x4031f020,
-	// Block 0x594, offset 0x16500
-	0x16500: 0xe0000d24, 0x16501: 0xe0000d21, 0x16502: 0xe0000d2a, 0x16503: 0xe0000d27,
-	0x16504: 0xe0000d69, 0x16505: 0xe0000d66, 0x16506: 0xe0000d7b, 0x16507: 0xe0000d78,
-	0x16508: 0xe0000d87, 0x16509: 0xe0000d84, 0x1650a: 0xe0000d81, 0x1650b: 0xe0000d7e,
-	0x1650c: 0xe000a971, 0x1650d: 0xe000a96e, 0x1650e: 0xe000a977, 0x1650f: 0xe000a974,
-	0x16510: 0xe0000e3d, 0x16511: 0xe0000e39, 0x16512: 0xe0000e35, 0x16513: 0xe0000e31,
-	0x16514: 0xe0000ea7, 0x16515: 0xe0000ea4, 0x16516: 0xe0000ead, 0x16517: 0xe0000eaa,
-	0x16518: 0xe0000ed6, 0x16519: 0xe0000ed3, 0x1651a: 0xe0000ef4, 0x1651b: 0xe0000ef1,
-	0x1651c: 0xe0000efb, 0x1651d: 0xe0000ef7, 0x1651e: 0xe0000f02, 0x1651f: 0xe0000eff,
-	0x16520: 0xe0000f41, 0x16521: 0xe0000f3e, 0x16522: 0xe0000f53, 0x16523: 0xe0000f50,
-	0x16524: 0xe0000f26, 0x16525: 0xe0000f22, 0x16526: 0xe000a594, 0x16527: 0xe000a591,
-	0x16528: 0xe0000f5a, 0x16529: 0xe0000f56, 0x1652a: 0xe0000f93, 0x1652b: 0xe0000f90,
-	0x1652c: 0xe0000f9f, 0x1652d: 0xe0000f9c, 0x1652e: 0xe0000fb1, 0x1652f: 0xe0000fae,
-	0x16530: 0xe0000fab, 0x16531: 0xe0000fa8, 0x16532: 0xe0001093, 0x16533: 0xe0001090,
-	0x16534: 0xe000109f, 0x16535: 0xe000109c, 0x16536: 0xe0001099, 0x16537: 0xe0001096,
-	0x16538: 0xe0001032, 0x16539: 0xe000102e, 0x1653a: 0xe00025e4, 0x1653b: 0xe00025e1,
-	0x1653c: 0xe00010a9, 0x1653d: 0xe00010a6, 0x1653e: 0xe00010af, 0x1653f: 0xe00010ac,
-	// Block 0x595, offset 0x16540
-	0x16540: 0xe00010d2, 0x16541: 0xe00010cf, 0x16542: 0xe00010cc, 0x16543: 0xe00010c9,
-	0x16544: 0xe00010e1, 0x16545: 0xe00010de, 0x16546: 0xe00010e7, 0x16547: 0xe00010e4,
-	0x16548: 0xe00010ed, 0x16549: 0xe00010ea, 0x1654a: 0xe00010fc, 0x1654b: 0xe00010f9,
-	0x1654c: 0xe00010f6, 0x1654d: 0xe00010f3, 0x1654e: 0xe0001123, 0x1654f: 0xe0001120,
-	0x16550: 0xe0001141, 0x16551: 0xe000113e, 0x16552: 0xe0001153, 0x16553: 0xe0001150,
-	0x16554: 0xe0001159, 0x16555: 0xe0001156, 0x16556: 0xe0000c15, 0x16557: 0xe0000f8d,
-	0x16558: 0xe00010db, 0x16559: 0xe0001111, 0x1655a: 0xf0000404, 0x1655b: 0xe0000f70,
-	0x1655c: 0x40300420, 0x1655d: 0x40300620, 0x1655e: 0xe0000f7f, 0x1655f: 0x402c9620,
-	0x16560: 0xe000099b, 0x16561: 0xe0000998, 0x16562: 0xe0000989, 0x16563: 0xe0000986,
-	0x16564: 0xe0003773, 0x16565: 0xe0003770, 0x16566: 0xe0000930, 0x16567: 0xe000092c,
-	0x16568: 0xe0000940, 0x16569: 0xe000093c, 0x1656a: 0xe000a96b, 0x1656b: 0xe000a968,
-	0x1656c: 0xe00009aa, 0x1656d: 0xe00009a6, 0x1656e: 0xe000376d, 0x1656f: 0xe000376a,
-	0x16570: 0xe000090a, 0x16571: 0xe0000906, 0x16572: 0xe000091a, 0x16573: 0xe0000916,
-	0x16574: 0xe000a965, 0x16575: 0xe000a962, 0x16576: 0xe00009a2, 0x16577: 0xe000099e,
-	0x16578: 0xe0000b6e, 0x16579: 0xe0000b6b, 0x1657a: 0xe0000b5c, 0x1657b: 0xe0000b59,
-	0x1657c: 0xe0000b26, 0x1657d: 0xe0000b23, 0x1657e: 0xe0000afb, 0x1657f: 0xe0000af7,
-	// Block 0x596, offset 0x16580
-	0x16580: 0xe0000b03, 0x16581: 0xe0000aff, 0x16582: 0xe0000b13, 0x16583: 0xe0000b0f,
-	0x16584: 0xe0000b0b, 0x16585: 0xe0000b07, 0x16586: 0xe0000b75, 0x16587: 0xe0000b71,
-	0x16588: 0xe0000c66, 0x16589: 0xe0000c63, 0x1658a: 0xe0000c78, 0x1658b: 0xe0000c75,
-	0x1658c: 0xe0000e84, 0x1658d: 0xe0000e81, 0x1658e: 0xe0000e44, 0x1658f: 0xe0000e41,
-	0x16590: 0xe000a989, 0x16591: 0xe000a986, 0x16592: 0xe000a98f, 0x16593: 0xe000a98c,
-	0x16594: 0xe000a99b, 0x16595: 0xe000a998, 0x16596: 0xe000a995, 0x16597: 0xe000a992,
-	0x16598: 0xe000a9a1, 0x16599: 0xe000a99e, 0x1659a: 0xe0000e5d, 0x1659b: 0xe0000e59,
-	0x1659c: 0xe0000e65, 0x1659d: 0xe0000e61, 0x1659e: 0xe0000e75, 0x1659f: 0xe0000e71,
-	0x165a0: 0xe000a983, 0x165a1: 0xe000a980, 0x165a2: 0xe0000e7d, 0x165a3: 0xe0000e79,
-	0x165a4: 0xe000108d, 0x165a5: 0xe000108a, 0x165a6: 0xe000104d, 0x165a7: 0xe000104a,
-	0x165a8: 0xe0001066, 0x165a9: 0xe0001062, 0x165aa: 0xe000106e, 0x165ab: 0xe000106a,
-	0x165ac: 0xe000107e, 0x165ad: 0xe000107a, 0x165ae: 0xe0001076, 0x165af: 0xe0001072,
-	0x165b0: 0xe0001086, 0x165b1: 0xe0001082, 0x165b2: 0xe0001108, 0x165b3: 0xe0001105,
-	0x165b4: 0xe0001135, 0x165b5: 0xe0001132, 0x165b6: 0xe000112f, 0x165b7: 0xe000112c,
-	0x165b8: 0xe000111d, 0x165b9: 0xe000111a, 0x165ba: 0xe0000d0a, 0x165bb: 0xe0000d07,
-	0x165bc: 0x0030d888, 0x165bd: 0x4030d820, 0x165be: 0x00312088, 0x165bf: 0x40312020,
-	// Block 0x597, offset 0x165c0
-	0x165c2: 0x4044b620, 0x165c3: 0x4044b820,
-	0x165c5: 0x40449220, 0x165c6: 0x40449420, 0x165c7: 0x40449620,
-	0x165c8: 0x40449820, 0x165c9: 0x40449a20, 0x165ca: 0x40449c20, 0x165cb: 0x40449e20,
-	0x165cc: 0x4044a020, 0x165cd: 0x4044a220, 0x165ce: 0x4044a420, 0x165cf: 0x4044a620,
-	0x165d0: 0x4044a820, 0x165d1: 0x4044aa20, 0x165d2: 0x4044ac20, 0x165d3: 0x4044ae20,
-	0x165d4: 0x4044b020, 0x165d5: 0x4044b220, 0x165d6: 0x4044b420,
-	0x165da: 0x4044b620, 0x165db: 0x4044b820,
-	0x165dc: 0x4044ba20, 0x165dd: 0x4044bc20, 0x165de: 0x4044be20, 0x165df: 0x4044c020,
-	0x165e0: 0x4044c220, 0x165e1: 0x4044c420, 0x165e2: 0x4044c620, 0x165e3: 0x4044c820,
-	0x165e4: 0x4044ce20, 0x165e5: 0x4044cc20, 0x165e6: 0x4044ce20, 0x165e7: 0x4044d020,
-	0x165e8: 0x4044d220, 0x165e9: 0x4044d420, 0x165ea: 0x4044d620, 0x165eb: 0x4044d820,
-	0x165ec: 0x4044da20, 0x165ed: 0x4044dc20, 0x165ee: 0x4044de20, 0x165ef: 0x4044e020,
-	0x165f0: 0x4044e220, 0x165f1: 0x4044e420, 0x165f3: 0x4044e620,
-	0x165f4: 0x4044e820, 0x165f5: 0x4044ea20, 0x165f6: 0x4044ec20, 0x165f7: 0x4044ee20,
-	0x165f8: 0x4044f020, 0x165f9: 0x4044f220, 0x165fa: 0x4044f420, 0x165fb: 0x4044f620,
-	0x165fd: 0x4044f820,
-	// Block 0x598, offset 0x16600
-	0x16600: 0xa0000000, 0x16601: 0xa0000000, 0x16602: 0xa0000000, 0x16603: 0xa0000000,
-	0x16604: 0xa0000000, 0x16605: 0xa0000000, 0x16606: 0xa0000000, 0x16607: 0xa0000000,
-	0x16608: 0xa0000000, 0x16609: 0x40020020, 0x1660a: 0x40020220, 0x1660b: 0x40020420,
-	0x1660c: 0x40020620, 0x1660d: 0x40020820, 0x1660e: 0xa0000000, 0x1660f: 0xa0000000,
-	0x16610: 0xa0000000, 0x16611: 0xa0000000, 0x16612: 0xa0000000, 0x16613: 0xa0000000,
-	0x16614: 0xa0000000, 0x16615: 0xa0000000, 0x16616: 0xa0000000, 0x16617: 0xa0000000,
-	0x16618: 0xa0000000, 0x16619: 0xa0000000, 0x1661a: 0xa0000000, 0x1661b: 0xa0000000,
-	0x1661c: 0xa0000000, 0x1661d: 0xa0000000, 0x1661e: 0xa0000000, 0x1661f: 0xa0000000,
-	0x16620: 0x40021220, 0x16621: 0x4002ba20, 0x16622: 0x4003e020, 0x16623: 0x4004ea20,
-	0x16624: 0x4027de20, 0x16625: 0x4004ec20, 0x16626: 0x4004e620, 0x16627: 0x4003d220,
-	0x16628: 0x4003f420, 0x16629: 0x4003f620, 0x1662a: 0x4004d820, 0x1662b: 0x40093820,
-	0x1662c: 0x40024020, 0x1662d: 0x40021a20, 0x1662e: 0x4002e420, 0x1662f: 0x4004e220,
-	0x16630: 0x4029cc20, 0x16631: 0x4029ce20, 0x16632: 0x4029d020, 0x16633: 0x4029d220,
-	0x16634: 0x4029d420, 0x16635: 0x4029d620, 0x16636: 0x4029d820, 0x16637: 0x4029da20,
-	0x16638: 0x4029dc20, 0x16639: 0x4029de20, 0x1663a: 0x40026c20, 0x1663b: 0x40026220,
-	0x1663c: 0x40094020, 0x1663d: 0x40094220, 0x1663e: 0x40094420, 0x1663f: 0x4002c420,
-	// Block 0x599, offset 0x16640
-	0x16640: 0x4004d620, 0x16641: 0xce2d0071, 0x16642: 0x002c0a88, 0x16643: 0xc3590953,
-	0x16644: 0x002c6288, 0x16645: 0x002c9888, 0x16646: 0x002d0888, 0x16647: 0x002d2288,
-	0x16648: 0x002d6888, 0x16649: 0x002d9a88, 0x1664a: 0x002dcc88, 0x1664b: 0x002dfe88,
-	0x1664c: 0xc0030002, 0x1664d: 0x002e8288, 0x1664e: 0x002e9e88, 0x1664f: 0xc33f2741,
-	0x16650: 0x002f2c88, 0x16651: 0x002f5688, 0x16652: 0xc35f0991, 0x16653: 0xc3430991,
-	0x16654: 0x00302c88, 0x16655: 0x00306c88, 0x16656: 0x0030be88, 0x16657: 0x0030e288,
-	0x16658: 0x0030f688, 0x16659: 0x00310088, 0x1665a: 0xc3630991, 0x1665b: 0x4003f820,
-	0x1665c: 0x4004e420, 0x1665d: 0x4003fa20, 0x1665e: 0x40062420, 0x1665f: 0x40021620,
-	0x16660: 0x40061e20, 0x16661: 0xce2b0071, 0x16662: 0x402c0a20, 0x16663: 0xc3550953,
-	0x16664: 0x402c6220, 0x16665: 0x402c9820, 0x16666: 0x402d0820, 0x16667: 0x402d2220,
-	0x16668: 0x402d6820, 0x16669: 0x402d9a20, 0x1666a: 0x402dcc20, 0x1666b: 0x402dfe20,
-	0x1666c: 0xc0000002, 0x1666d: 0x402e8220, 0x1666e: 0x402e9e20, 0x1666f: 0xc33d2741,
-	0x16670: 0x402f2c20, 0x16671: 0x402f5620, 0x16672: 0xc35d0991, 0x16673: 0xc3410991,
-	0x16674: 0x40302c20, 0x16675: 0x40306c20, 0x16676: 0x4030be20, 0x16677: 0x4030e220,
-	0x16678: 0x4030f620, 0x16679: 0x40310020, 0x1667a: 0xc3610991, 0x1667b: 0x4003fc20,
-	0x1667c: 0x40094820, 0x1667d: 0x4003fe20, 0x1667e: 0x40094c20, 0x1667f: 0xa0000000,
-	// Block 0x59a, offset 0x16680
-	0x16680: 0xe00008f5, 0x16681: 0xe00008ef, 0x16682: 0xe0000921, 0x16683: 0xe0000969,
-	0x16684: 0x002be083, 0x16685: 0xe000094d, 0x16686: 0xe00009dd, 0x16687: 0xe0000a53,
-	0x16688: 0xe0000ae8, 0x16689: 0xe0000ae2, 0x1668a: 0xe0000af4, 0x1668b: 0xe0000b20,
-	0x1668c: 0xe0000c2b, 0x1668d: 0xe0000c25, 0x1668e: 0xe0000c37, 0x1668f: 0xe0000c43,
-	0x16690: 0xe0000ab3, 0x16691: 0xe0000d63, 0x16692: 0xe0000d9a, 0x16693: 0xe0000d94,
-	0x16694: 0x002ee483, 0x16695: 0xe0000de6, 0x16696: 0xe0000dd2, 0x16697: 0x40093e20,
-	0x16698: 0xe0000e12, 0x16699: 0xe0000fe1, 0x1669a: 0xe0000fdb, 0x1669b: 0xe0000fed,
-	0x1669c: 0xe0000fff, 0x1669d: 0xe0001102, 0x1669e: 0x00318888, 0x1669f: 0xe0000f7b,
-	0x166a0: 0xe00008f2, 0x166a1: 0xe00008ec, 0x166a2: 0xe000091e, 0x166a3: 0xe0000966,
-	0x166a4: 0x402be020, 0x166a5: 0xe000094a, 0x166a6: 0xe00009d5, 0x166a7: 0xe0000a4d,
-	0x166a8: 0xe0000ae5, 0x166a9: 0xe0000adf, 0x166aa: 0xe0000af1, 0x166ab: 0xe0000b1d,
-	0x166ac: 0xe0000c28, 0x166ad: 0xe0000c22, 0x166ae: 0xe0000c34, 0x166af: 0xe0000c40,
-	0x166b0: 0xe0000aad, 0x166b1: 0xe0000d60, 0x166b2: 0xe0000d97, 0x166b3: 0xe0000d91,
-	0x166b4: 0x402ee420, 0x166b5: 0xe0000de3, 0x166b6: 0xe0000dcf, 0x166b7: 0x40093c20,
-	0x166b8: 0xe0000e0f, 0x166b9: 0xe0000fde, 0x166ba: 0xe0000fd8, 0x166bb: 0xe0000fea,
-	0x166bc: 0xe0000ffc, 0x166bd: 0xe00010ff, 0x166be: 0x40318820, 0x166bf: 0xe0001114,
-	// Block 0x59b, offset 0x166c0
-	0x166c0: 0x40321220, 0x166c1: 0x40321a20, 0x166c2: 0x40322220, 0x166c3: 0x40322a20,
-	0x166c4: 0xe0000ad5, 0x166c5: 0xe0000ad1, 0x166c6: 0xe0000acd, 0x166c7: 0xf0000a0a,
-	0x166c8: 0xf000040a, 0x166c9: 0xf0000404, 0x166ca: 0xf0000a0a, 0x166cb: 0xf000040a,
-	0x166cc: 0xf0000404, 0x166cd: 0xe0000947, 0x166ce: 0xe0000944, 0x166cf: 0xe0000c3d,
-	0x166d0: 0xe0000c3a, 0x166d1: 0xe0000dcc, 0x166d2: 0xe0000dc9, 0x166d3: 0xe0000ff3,
-	0x166d4: 0xe0000ff0, 0x166d5: 0xe000101e, 0x166d6: 0xe000101a, 0x166d7: 0xe0001006,
-	0x166d8: 0xe0001002, 0x166d9: 0xe0001016, 0x166da: 0xe0001012, 0x166db: 0xe000100e,
-	0x166dc: 0xe000100a, 0x166dd: 0x402cae20, 0x166de: 0xe00033c3, 0x166df: 0xe00033c0,
-	0x166e0: 0xe0000976, 0x166e1: 0xe0000972, 0x166e2: 0xe00009f4, 0x166e3: 0xe00009ef,
-	0x166e4: 0x002d3a88, 0x166e5: 0x402d3a20, 0x166e6: 0xe0000bbe, 0x166e7: 0xe0000bbb,
-	0x166e8: 0xe0000c99, 0x166e9: 0xe0000c96, 0x166ea: 0xe0000e20, 0x166eb: 0xe0000e1d,
-	0x166ec: 0xe0000e27, 0x166ed: 0xe0000e23, 0x166ee: 0xe0001162, 0x166ef: 0xe000115f,
-	0x166f0: 0xe0000c8d, 0x166f1: 0xf0000a0a, 0x166f2: 0xf000040a, 0x166f3: 0xf0000404,
-	0x166f4: 0xe0000bac, 0x166f5: 0xe0000ba9, 0x166f6: 0x002d7888, 0x166f7: 0x00319488,
-	0x166f8: 0xe0000d57, 0x166f9: 0xe0000d54, 0x166fa: 0xe0000954, 0x166fb: 0xe0000950,
-	0x166fc: 0xe00009ea, 0x166fd: 0xe00009e5, 0x166fe: 0xe0000e19, 0x166ff: 0xe0000e15,
-	// Block 0x59c, offset 0x16700
-	0x16700: 0xe0000b03, 0x16701: 0xe0000aff, 0x16702: 0xe0000b13, 0x16703: 0xe0000b0f,
-	0x16704: 0xe0000b0b, 0x16705: 0xe0000b07, 0x16706: 0xe0000b75, 0x16707: 0xe0000b71,
-	0x16708: 0xe0000c66, 0x16709: 0xe0000c63, 0x1670a: 0xe0000c78, 0x1670b: 0xe0000c75,
-	0x1670c: 0xe0000e84, 0x1670d: 0xe0000e81, 0x1670e: 0xe0000e44, 0x1670f: 0xe0000e41,
-	0x16710: 0xe000a91a, 0x16711: 0xe000a917, 0x16712: 0xe000a920, 0x16713: 0xe000a91d,
-	0x16714: 0xe000a926, 0x16715: 0xe000a923, 0x16716: 0xe000258a, 0x16717: 0xe0002587,
-	0x16718: 0xe000a92c, 0x16719: 0xe000a929, 0x1671a: 0xe0000e5d, 0x1671b: 0xe0000e59,
-	0x1671c: 0xe0000e65, 0x1671d: 0xe0000e61, 0x1671e: 0xe0000e75, 0x1671f: 0xe0000e71,
-	0x16720: 0xe0000e6d, 0x16721: 0xe0000e69, 0x16722: 0xe0000e7d, 0x16723: 0xe0000e79,
-	0x16724: 0xe000108d, 0x16725: 0xe000108a, 0x16726: 0xe000104d, 0x16727: 0xe000104a,
-	0x16728: 0xe0001066, 0x16729: 0xe0001062, 0x1672a: 0xe000106e, 0x1672b: 0xe000106a,
-	0x1672c: 0xe000107e, 0x1672d: 0xe000107a, 0x1672e: 0xe0001076, 0x1672f: 0xe0001072,
-	0x16730: 0xe0001086, 0x16731: 0xe0001082, 0x16732: 0xe0001108, 0x16733: 0xe0001105,
-	0x16734: 0xe0001135, 0x16735: 0xe0001132, 0x16736: 0xe000112f, 0x16737: 0xe000112c,
-	0x16738: 0xe000111d, 0x16739: 0xe000111a, 0x1673a: 0xe0000d0a, 0x1673b: 0xe0000d07,
-	0x1673c: 0x0030d888, 0x1673d: 0x4030d820, 0x1673e: 0x00312088, 0x1673f: 0x40312020,
-	// Block 0x59d, offset 0x16740
-	0x16740: 0xa0000000, 0x16741: 0xa0000000, 0x16742: 0xa0000000, 0x16743: 0xa0000000,
-	0x16744: 0xa0000000, 0x16745: 0xa0000000, 0x16746: 0xa0000000, 0x16747: 0xa0000000,
-	0x16748: 0xa0000000, 0x16749: 0x40020020, 0x1674a: 0x40020220, 0x1674b: 0x40020420,
-	0x1674c: 0x40020620, 0x1674d: 0x40020820, 0x1674e: 0xa0000000, 0x1674f: 0xa0000000,
-	0x16750: 0xa0000000, 0x16751: 0xa0000000, 0x16752: 0xa0000000, 0x16753: 0xa0000000,
-	0x16754: 0xa0000000, 0x16755: 0xa0000000, 0x16756: 0xa0000000, 0x16757: 0xa0000000,
-	0x16758: 0xa0000000, 0x16759: 0xa0000000, 0x1675a: 0xa0000000, 0x1675b: 0xa0000000,
-	0x1675c: 0xa0000000, 0x1675d: 0xa0000000, 0x1675e: 0xa0000000, 0x1675f: 0xa0000000,
-	0x16760: 0x40021220, 0x16761: 0x4002ba20, 0x16762: 0x4003e020, 0x16763: 0x4004ea20,
-	0x16764: 0x4027de20, 0x16765: 0x4004ec20, 0x16766: 0x4004e620, 0x16767: 0x4003d220,
-	0x16768: 0x4003f420, 0x16769: 0x4003f620, 0x1676a: 0x4004d820, 0x1676b: 0x40093820,
-	0x1676c: 0x40024020, 0x1676d: 0x40021a20, 0x1676e: 0x4002e420, 0x1676f: 0x4004e220,
-	0x16770: 0x4029cc20, 0x16771: 0x4029ce20, 0x16772: 0x4029d020, 0x16773: 0x4029d220,
-	0x16774: 0x4029d420, 0x16775: 0x4029d620, 0x16776: 0x4029d820, 0x16777: 0x4029da20,
-	0x16778: 0x4029dc20, 0x16779: 0x4029de20, 0x1677a: 0x40026c20, 0x1677b: 0x40026220,
-	0x1677c: 0x40094020, 0x1677d: 0x40094220, 0x1677e: 0x40094420, 0x1677f: 0x4002c420,
-	// Block 0x59e, offset 0x16780
-	0x16780: 0x4004d620, 0x16781: 0x002bde88, 0x16782: 0x002c0a88, 0x16783: 0xc5872851,
-	0x16784: 0x002c6288, 0x16785: 0x002c9888, 0x16786: 0x002d0888, 0x16787: 0x002d2288,
-	0x16788: 0x002d6888, 0x16789: 0x002d9a88, 0x1678a: 0x002dcc88, 0x1678b: 0x002dfe88,
-	0x1678c: 0xc0030002, 0x1678d: 0x002e8288, 0x1678e: 0x002e9e88, 0x1678f: 0x002ee288,
-	0x16790: 0x002f2c88, 0x16791: 0x002f5688, 0x16792: 0x002f7a88, 0x16793: 0xc3430991,
-	0x16794: 0x00302c88, 0x16795: 0x00306c88, 0x16796: 0x0030be88, 0x16797: 0x0030e288,
-	0x16798: 0x0030f688, 0x16799: 0x00310088, 0x1679a: 0xc3630991, 0x1679b: 0x4003f820,
-	0x1679c: 0x4004e420, 0x1679d: 0x4003fa20, 0x1679e: 0x40062420, 0x1679f: 0x40021620,
-	0x167a0: 0x40061e20, 0x167a1: 0x402bde20, 0x167a2: 0x402c0a20, 0x167a3: 0xc5842851,
-	0x167a4: 0x402c6220, 0x167a5: 0x402c9820, 0x167a6: 0x402d0820, 0x167a7: 0x402d2220,
-	0x167a8: 0x402d6820, 0x167a9: 0x402d9a20, 0x167aa: 0x402dcc20, 0x167ab: 0x402dfe20,
-	0x167ac: 0xc0000002, 0x167ad: 0x402e8220, 0x167ae: 0x402e9e20, 0x167af: 0x402ee220,
-	0x167b0: 0x402f2c20, 0x167b1: 0x402f5620, 0x167b2: 0x402f7a20, 0x167b3: 0xc3410991,
-	0x167b4: 0x40302c20, 0x167b5: 0x40306c20, 0x167b6: 0x4030be20, 0x167b7: 0x4030e220,
-	0x167b8: 0x4030f620, 0x167b9: 0x40310020, 0x167ba: 0xc3610991, 0x167bb: 0x4003fc20,
-	0x167bc: 0x40094820, 0x167bd: 0x4003fe20, 0x167be: 0x40094c20, 0x167bf: 0xa0000000,
-	// Block 0x59f, offset 0x167c0
-	0x167c0: 0xe0000983, 0x167c1: 0xe0000980, 0x167c2: 0xe00008fb, 0x167c3: 0xe00008f8,
-	0x167c4: 0xe000097d, 0x167c5: 0xe000097a, 0x167c6: 0x002c3e83, 0x167c7: 0x402c3e20,
-	0x167c8: 0xe0000a3e, 0x167c9: 0xe0000a3b, 0x167ca: 0xe0000a4a, 0x167cb: 0xe0000a47,
-	0x167cc: 0x002c3c83, 0x167cd: 0x402c3c20, 0x167ce: 0xe0000a86, 0x167cf: 0xe0000a83,
-	0x167d0: 0x002c6483, 0x167d1: 0x402c6420, 0x167d2: 0xe0000b46, 0x167d3: 0xe0000b43,
-	0x167d4: 0xe0000aee, 0x167d5: 0xe0000aeb, 0x167d6: 0xe0000b2c, 0x167d7: 0xe0000b29,
-	0x167d8: 0xe0000b40, 0x167d9: 0xe0000b3d, 0x167da: 0xe0000b1a, 0x167db: 0xe0000b17,
-	0x167dc: 0xe0000bb8, 0x167dd: 0xe0000bb5, 0x167de: 0xe0000bb2, 0x167df: 0xe0000baf,
-	0x167e0: 0xe0000bc4, 0x167e1: 0xe0000bc1, 0x167e2: 0xe0000bca, 0x167e3: 0xe0000bc7,
-	0x167e4: 0xe0000bee, 0x167e5: 0xe0000beb, 0x167e6: 0xe0000c1b, 0x167e7: 0xe0000c18,
-	0x167e8: 0xe0000c51, 0x167e9: 0xe0000c4e, 0x167ea: 0xe0000c60, 0x167eb: 0xe0000c5d,
-	0x167ec: 0xe0000c31, 0x167ed: 0xe0000c2e, 0x167ee: 0xe0000c5a, 0x167ef: 0xe0000c57,
-	0x167f0: 0xe0000c54, 0x167f1: 0x402da220, 0x167f2: 0xf0000a0a, 0x167f3: 0xf0000404,
-	0x167f4: 0xe0000c8a, 0x167f5: 0xe0000c87, 0x167f6: 0xe0000c9f, 0x167f7: 0xe0000c9c,
-	0x167f8: 0x402f7220, 0x167f9: 0xe0000ccc, 0x167fa: 0xe0000cc9, 0x167fb: 0xe0000cd8,
-	0x167fc: 0xe0000cd5, 0x167fd: 0xe0000cd2, 0x167fe: 0xe0000ccf, 0x167ff: 0xe0000d04,
-	// Block 0x5a0, offset 0x16800
-	0x16800: 0xa0000000, 0x16801: 0xa0000000, 0x16802: 0xa0000000, 0x16803: 0xa0000000,
-	0x16804: 0xa0000000, 0x16805: 0xa0000000, 0x16806: 0xa0000000, 0x16807: 0xa0000000,
-	0x16808: 0xa0000000, 0x16809: 0x40020020, 0x1680a: 0x40020220, 0x1680b: 0x40020420,
-	0x1680c: 0x40020620, 0x1680d: 0x40020820, 0x1680e: 0xa0000000, 0x1680f: 0xa0000000,
-	0x16810: 0xa0000000, 0x16811: 0xa0000000, 0x16812: 0xa0000000, 0x16813: 0xa0000000,
-	0x16814: 0xa0000000, 0x16815: 0xa0000000, 0x16816: 0xa0000000, 0x16817: 0xa0000000,
-	0x16818: 0xa0000000, 0x16819: 0xa0000000, 0x1681a: 0xa0000000, 0x1681b: 0xa0000000,
-	0x1681c: 0xa0000000, 0x1681d: 0xa0000000, 0x1681e: 0xa0000000, 0x1681f: 0xa0000000,
-	0x16820: 0x40021220, 0x16821: 0x4002ba20, 0x16822: 0x4003e020, 0x16823: 0x4004ea20,
-	0x16824: 0x4027de20, 0x16825: 0x4004ec20, 0x16826: 0x4004e620, 0x16827: 0x4003d220,
-	0x16828: 0x4003f420, 0x16829: 0x4003f620, 0x1682a: 0x4004d820, 0x1682b: 0x40093820,
-	0x1682c: 0x40024020, 0x1682d: 0x40021a20, 0x1682e: 0x4002e420, 0x1682f: 0x4004e220,
-	0x16830: 0x4029cc20, 0x16831: 0x4029ce20, 0x16832: 0x4029d020, 0x16833: 0x4029d220,
-	0x16834: 0x4029d420, 0x16835: 0x4029d620, 0x16836: 0x4029d820, 0x16837: 0x4029da20,
-	0x16838: 0x4029dc20, 0x16839: 0x4029de20, 0x1683a: 0x40026c20, 0x1683b: 0x40026220,
-	0x1683c: 0x40094020, 0x1683d: 0x40094220, 0x1683e: 0x40094420, 0x1683f: 0x4002c420,
-	// Block 0x5a1, offset 0x16840
-	0x16840: 0x4004d620, 0x16841: 0x002bde88, 0x16842: 0x002c0a88, 0x16843: 0xcab40911,
-	0x16844: 0xce8909c2, 0x16845: 0xc6220071, 0x16846: 0x002d0888, 0x16847: 0xce8c2a12,
-	0x16848: 0x002d6888, 0x16849: 0x002d9a88, 0x1684a: 0x002dcc88, 0x1684b: 0x002dfe88,
-	0x1684c: 0xce930ac4, 0x1684d: 0x002e8288, 0x1684e: 0xce982a12, 0x1684f: 0x002ee288,
-	0x16850: 0x002f2c88, 0x16851: 0x002f5688, 0x16852: 0xce9b9602, 0x16853: 0xce9e09c2,
-	0x16854: 0xcea309c2, 0x16855: 0x00306c88, 0x16856: 0x0030be88, 0x16857: 0x0030e288,
-	0x16858: 0xcea809c2, 0x16859: 0x00310088, 0x1685a: 0xceab09c2, 0x1685b: 0x4003f820,
-	0x1685c: 0x4004e420, 0x1685d: 0x4003fa20, 0x1685e: 0x40062420, 0x1685f: 0x40021620,
-	0x16860: 0x40061e20, 0x16861: 0x402bde20, 0x16862: 0x402c0a20, 0x16863: 0xcab20911,
-	0x16864: 0xce8709b1, 0x16865: 0xc6200071, 0x16866: 0x402d0820, 0x16867: 0xcab62a01,
-	0x16868: 0x402d6820, 0x16869: 0x402d9a20, 0x1686a: 0x402dcc20, 0x1686b: 0x402dfe20,
-	0x1686c: 0xce8f0a73, 0x1686d: 0x402e8220, 0x1686e: 0xcac62a01, 0x1686f: 0x402ee220,
-	0x16870: 0x402f2c20, 0x16871: 0x402f5620, 0x16872: 0xcaca95f1, 0x16873: 0xcace09b1,
-	0x16874: 0xcea109b1, 0x16875: 0x40306c20, 0x16876: 0x4030be20, 0x16877: 0x4030e220,
-	0x16878: 0xcea609b1, 0x16879: 0x40310020, 0x1687a: 0xcad209b1, 0x1687b: 0x4003fc20,
-	0x1687c: 0x40094820, 0x1687d: 0x4003fe20, 0x1687e: 0x40094c20, 0x1687f: 0xa0000000,
-	// Block 0x5a2, offset 0x16880
-	0x16880: 0xe00008f5, 0x16881: 0xe00008ef, 0x16882: 0xe0000921, 0x16883: 0xe0000969,
-	0x16884: 0xe000095b, 0x16885: 0xe000094d, 0x16886: 0xe00009dd, 0x16887: 0x002c6083,
-	0x16888: 0xe0000ae8, 0x16889: 0xe0000ae2, 0x1688a: 0xe0000af4, 0x1688b: 0x002d0683,
-	0x1688c: 0xe0000c2b, 0x1688d: 0xe0000c25, 0x1688e: 0xe0000c37, 0x1688f: 0xe0000c43,
-	0x16890: 0xe0000ab3, 0x16891: 0xe0000d63, 0x16892: 0xe0000d9a, 0x16893: 0xe0000d94,
-	0x16894: 0xe0000da6, 0x16895: 0xe0000de6, 0x16896: 0xe0000dd2, 0x16897: 0x40093e20,
-	0x16898: 0xe0000e12, 0x16899: 0xe0000fe1, 0x1689a: 0xe0000fdb, 0x1689b: 0xe0000fed,
-	0x1689c: 0xe0000fff, 0x1689d: 0xe0001102, 0x1689e: 0x00318888, 0x1689f: 0xe0000f7b,
-	0x168a0: 0xe00008f2, 0x168a1: 0xe00008ec, 0x168a2: 0xe000091e, 0x168a3: 0xe0000966,
-	0x168a4: 0xe0000958, 0x168a5: 0xe000094a, 0x168a6: 0xe00009d5, 0x168a7: 0x402c6020,
-	0x168a8: 0xe0000ae5, 0x168a9: 0xe0000adf, 0x168aa: 0xe0000af1, 0x168ab: 0x402d0620,
-	0x168ac: 0xe0000c28, 0x168ad: 0xe0000c22, 0x168ae: 0xe0000c34, 0x168af: 0xe0000c40,
-	0x168b0: 0xe0000aad, 0x168b1: 0xe0000d60, 0x168b2: 0xe0000d97, 0x168b3: 0xe0000d91,
-	0x168b4: 0xe0000da3, 0x168b5: 0xe0000de3, 0x168b6: 0xe0000dcf, 0x168b7: 0x40093c20,
-	0x168b8: 0xe0000e0f, 0x168b9: 0xe0000fde, 0x168ba: 0xe0000fd8, 0x168bb: 0xe0000fea,
-	0x168bc: 0xe0000ffc, 0x168bd: 0xe00010ff, 0x168be: 0x40318820, 0x168bf: 0xe0001114,
-	// Block 0x5a3, offset 0x168c0
-	0x168c0: 0xe00009b1, 0x168c1: 0xe00009ae, 0x168c2: 0xe0000a22, 0x168c3: 0xe0000a1f,
-	0x168c4: 0xe0000a28, 0x168c5: 0xe0000a25, 0x168c6: 0xe0000a2e, 0x168c7: 0xe0000a2b,
-	0x168c8: 0xe000a9ad, 0x168c9: 0xe000a9aa, 0x168ca: 0xe0000a8c, 0x168cb: 0xe0000a89,
-	0x168cc: 0xe0000a98, 0x168cd: 0xe0000a95, 0x168ce: 0xe0000aa4, 0x168cf: 0xe0000aa1,
-	0x168d0: 0xe0000a92, 0x168d1: 0xe0000a8f, 0x168d2: 0xe0000a9e, 0x168d3: 0xe0000a9b,
-	0x168d4: 0xe0000b55, 0x168d5: 0xe0000b51, 0x168d6: 0xe0000b4d, 0x168d7: 0xe0000b49,
-	0x168d8: 0xe0000b7c, 0x168d9: 0xe0000b79, 0x168da: 0xe0000b82, 0x168db: 0xe0000b7f,
-	0x168dc: 0xe0000b39, 0x168dd: 0xe0000b35, 0x168de: 0xe0000b8c, 0x168df: 0xe0000b89,
-	0x168e0: 0xe0000bd0, 0x168e1: 0xe0000bcd, 0x168e2: 0xe0000c00, 0x168e3: 0xe0000bfd,
-	0x168e4: 0xe0000c0c, 0x168e5: 0xe0000c09, 0x168e6: 0xe0000bfa, 0x168e7: 0xe0000bf7,
-	0x168e8: 0xe0000c06, 0x168e9: 0xe0000c03, 0x168ea: 0xe0000c12, 0x168eb: 0xe0000c0f,
-	0x168ec: 0xe0000c7e, 0x168ed: 0xe0000c7b, 0x168ee: 0xe0000c4a, 0x168ef: 0xe0000c46,
-	0x168f0: 0xe0000c93, 0x168f1: 0xe0000c90, 0x168f2: 0xe0000cab, 0x168f3: 0xe0000ca8,
-	0x168f4: 0xe0000cb1, 0x168f5: 0xe0000cae, 0x168f6: 0xe0000cde, 0x168f7: 0xe0000cdb,
-	0x168f8: 0xe0000ce5, 0x168f9: 0xe0000ce1, 0x168fa: 0xe0000cf2, 0x168fb: 0xe0000cef,
-	0x168fc: 0xe0000cec, 0x168fd: 0xe0000ce9, 0x168fe: 0xe0000d1e, 0x168ff: 0xe0000d1b,
-	// Block 0x5a4, offset 0x16900
-	0x16900: 0xa0000000, 0x16901: 0xa0000000, 0x16902: 0xa0000000, 0x16903: 0xa0000000,
-	0x16904: 0xa0000000, 0x16905: 0xa0000000, 0x16906: 0xa0000000, 0x16907: 0xa0000000,
-	0x16908: 0xa0000000, 0x16909: 0x40020020, 0x1690a: 0x40020220, 0x1690b: 0x40020420,
-	0x1690c: 0x40020620, 0x1690d: 0x40020820, 0x1690e: 0xa0000000, 0x1690f: 0xa0000000,
-	0x16910: 0xa0000000, 0x16911: 0xa0000000, 0x16912: 0xa0000000, 0x16913: 0xa0000000,
-	0x16914: 0xa0000000, 0x16915: 0xa0000000, 0x16916: 0xa0000000, 0x16917: 0xa0000000,
-	0x16918: 0xa0000000, 0x16919: 0xa0000000, 0x1691a: 0xa0000000, 0x1691b: 0xa0000000,
-	0x1691c: 0xa0000000, 0x1691d: 0xa0000000, 0x1691e: 0xa0000000, 0x1691f: 0xa0000000,
-	0x16920: 0x40021220, 0x16921: 0x4002ba20, 0x16922: 0x4003e020, 0x16923: 0x4004ea20,
-	0x16924: 0x4027de20, 0x16925: 0x4004ec20, 0x16926: 0x4004e620, 0x16927: 0x4003d220,
-	0x16928: 0x4003f420, 0x16929: 0x4003f620, 0x1692a: 0x4004d820, 0x1692b: 0x40093820,
-	0x1692c: 0x40024020, 0x1692d: 0x40021a20, 0x1692e: 0x4002e420, 0x1692f: 0x4004e220,
-	0x16930: 0x4029cc20, 0x16931: 0x4029ce20, 0x16932: 0x4029d020, 0x16933: 0x4029d220,
-	0x16934: 0x4029d420, 0x16935: 0x4029d620, 0x16936: 0x4029d820, 0x16937: 0x4029da20,
-	0x16938: 0x4029dc20, 0x16939: 0x4029de20, 0x1693a: 0x40026c20, 0x1693b: 0x40026220,
-	0x1693c: 0x40094020, 0x1693d: 0x40094220, 0x1693e: 0x40094420, 0x1693f: 0x4002c420,
-	// Block 0x5a5, offset 0x16940
-	0x16940: 0x4004d620, 0x16941: 0xc56727b1, 0x16942: 0x002c0a88, 0x16943: 0x002c3a88,
-	0x16944: 0x002c6288, 0x16945: 0xceb00be1, 0x16946: 0x002d0888, 0x16947: 0x002d2288,
-	0x16948: 0x002d6888, 0x16949: 0x002d9a88, 0x1694a: 0x002dcc88, 0x1694b: 0x002dfe88,
-	0x1694c: 0xc0030002, 0x1694d: 0x002e8288, 0x1694e: 0x002e9e88, 0x1694f: 0xceb69621,
-	0x16950: 0x002f2c88, 0x16951: 0x002f5688, 0x16952: 0x002f7a88, 0x16953: 0x002fe688,
-	0x16954: 0x00302c88, 0x16955: 0xc3900b21, 0x16956: 0x0030be88, 0x16957: 0x0030e288,
-	0x16958: 0x0030f688, 0x16959: 0x00310088, 0x1695a: 0x00312a88, 0x1695b: 0x4003f820,
-	0x1695c: 0x4004e420, 0x1695d: 0x4003fa20, 0x1695e: 0x40062420, 0x1695f: 0x40021620,
-	0x16960: 0x40061e20, 0x16961: 0xc56427b1, 0x16962: 0x402c0a20, 0x16963: 0x402c3a20,
-	0x16964: 0x402c6220, 0x16965: 0xceae0be1, 0x16966: 0x402d0820, 0x16967: 0x402d2220,
-	0x16968: 0x402d6820, 0x16969: 0x402d9a20, 0x1696a: 0x402dcc20, 0x1696b: 0x402dfe20,
-	0x1696c: 0xc0000002, 0x1696d: 0x402e8220, 0x1696e: 0x402e9e20, 0x1696f: 0xceb29621,
-	0x16970: 0x402f2c20, 0x16971: 0x402f5620, 0x16972: 0x402f7a20, 0x16973: 0x402fe620,
-	0x16974: 0x40302c20, 0x16975: 0xc38d0b21, 0x16976: 0x4030be20, 0x16977: 0x4030e220,
-	0x16978: 0x4030f620, 0x16979: 0x40310020, 0x1697a: 0x40312a20, 0x1697b: 0x4003fc20,
-	0x1697c: 0x40094820, 0x1697d: 0x4003fe20, 0x1697e: 0x40094c20, 0x1697f: 0xa0000000,
-	// Block 0x5a6, offset 0x16980
-	0x16980: 0xe00008f5, 0x16981: 0xe00008ef, 0x16982: 0xe0000921, 0x16983: 0xe0000969,
-	0x16984: 0x00320e83, 0x16985: 0x00320c83, 0x16986: 0x00320ea3, 0x16987: 0xe0000a53,
-	0x16988: 0xe0000ae8, 0x16989: 0xe0000ae2, 0x1698a: 0xe0000af4, 0x1698b: 0xe0000b20,
-	0x1698c: 0xe0000c2b, 0x1698d: 0xe0000c25, 0x1698e: 0xe0000c37, 0x1698f: 0xe0000c43,
-	0x16990: 0x002c62c3, 0x16991: 0xe0000d63, 0x16992: 0xe0000d9a, 0x16993: 0xe0000d94,
-	0x16994: 0x00321103, 0x16995: 0xe0000de6, 0x16996: 0x00321083, 0x16997: 0x40093e20,
-	0x16998: 0x003210a3, 0x16999: 0xe0000fe1, 0x1699a: 0xe0000fdb, 0x1699b: 0xe0000fed,
-	0x1699c: 0x003100a3, 0x1699d: 0xe0001102, 0x1699e: 0xe00025cc, 0x1699f: 0xe0000f7b,
-	0x169a0: 0xe00008f2, 0x169a1: 0xe00008ec, 0x169a2: 0xe000091e, 0x169a3: 0xe0000966,
-	0x169a4: 0x40320e20, 0x169a5: 0x40320c20, 0x169a6: 0x40320e21, 0x169a7: 0xe0000a4d,
-	0x169a8: 0xe0000ae5, 0x169a9: 0xe0000adf, 0x169aa: 0xe0000af1, 0x169ab: 0xe0000b1d,
-	0x169ac: 0xe0000c28, 0x169ad: 0xe0000c22, 0x169ae: 0xe0000c34, 0x169af: 0xe0000c40,
-	0x169b0: 0x402c6222, 0x169b1: 0xe0000d60, 0x169b2: 0xe0000d97, 0x169b3: 0xe0000d91,
-	0x169b4: 0x40321024, 0x169b5: 0xe0000de3, 0x169b6: 0x40321020, 0x169b7: 0x40093c20,
-	0x169b8: 0x40321021, 0x169b9: 0xe0000fde, 0x169ba: 0xe0000fd8, 0x169bb: 0xe0000fea,
-	0x169bc: 0x40310021, 0x169bd: 0xe00010ff, 0x169be: 0xe00025c9, 0x169bf: 0xe0001114,
-	// Block 0x5a7, offset 0x169c0
-	0x169c0: 0xe0000983, 0x169c1: 0xe0000980, 0x169c2: 0xe00008fb, 0x169c3: 0xe00008f8,
-	0x169c4: 0xe000097d, 0x169c5: 0xe000097a, 0x169c6: 0xe0000a38, 0x169c7: 0xe0000a35,
-	0x169c8: 0xe0000a3e, 0x169c9: 0xe0000a3b, 0x169ca: 0xe0000a4a, 0x169cb: 0xe0000a47,
-	0x169cc: 0xe0000a44, 0x169cd: 0xe0000a41, 0x169ce: 0xe0000a86, 0x169cf: 0xe0000a83,
-	0x169d0: 0x002c62a3, 0x169d1: 0x402c6221, 0x169d2: 0xe0000b46, 0x169d3: 0xe0000b43,
-	0x169d4: 0xe0000aee, 0x169d5: 0xe0000aeb, 0x169d6: 0xe0000b2c, 0x169d7: 0xe0000b29,
-	0x169d8: 0x00320ec3, 0x169d9: 0x40320e22, 0x169da: 0xe0000b1a, 0x169db: 0xe0000b17,
-	0x169dc: 0xe0000bb8, 0x169dd: 0xe0000bb5, 0x169de: 0xe0000bb2, 0x169df: 0xe0000baf,
-	0x169e0: 0xe0000bc4, 0x169e1: 0xe0000bc1, 0x169e2: 0xe0000bca, 0x169e3: 0xe0000bc7,
-	0x169e4: 0xe0000bee, 0x169e5: 0xe0000beb, 0x169e6: 0xe0000c1b, 0x169e7: 0xe0000c18,
-	0x169e8: 0xe0000c51, 0x169e9: 0xe0000c4e, 0x169ea: 0xe0000c60, 0x169eb: 0xe0000c5d,
-	0x169ec: 0xe0000c31, 0x169ed: 0xe0000c2e, 0x169ee: 0xe0000c5a, 0x169ef: 0xe0000c57,
-	0x169f0: 0xe0000c54, 0x169f1: 0x402da220, 0x169f2: 0xf0000a0a, 0x169f3: 0xf0000404,
-	0x169f4: 0xe0000c8a, 0x169f5: 0xe0000c87, 0x169f6: 0xe0000c9f, 0x169f7: 0xe0000c9c,
-	0x169f8: 0x402f7220, 0x169f9: 0xe0000ccc, 0x169fa: 0xe0000cc9, 0x169fb: 0xe0000cd8,
-	0x169fc: 0xe0000cd5, 0x169fd: 0xe0000cd2, 0x169fe: 0xe0000ccf, 0x169ff: 0xe0000d04,
-	// Block 0x5a8, offset 0x16a00
-	0x16a00: 0xe0000cfe, 0x16a01: 0xe0000cf8, 0x16a02: 0xe0000cf5, 0x16a03: 0xe0000d51,
-	0x16a04: 0xe0000d4e, 0x16a05: 0xe0000d6f, 0x16a06: 0xe0000d6c, 0x16a07: 0xe0000d5d,
-	0x16a08: 0xe0000d5a, 0x16a09: 0xf0000404, 0x16a0a: 0x002eda88, 0x16a0b: 0x402eda20,
-	0x16a0c: 0xe0000e2e, 0x16a0d: 0xe0000e2b, 0x16a0e: 0xe0000da0, 0x16a0f: 0xe0000d9d,
-	0x16a10: 0x003210c3, 0x16a11: 0x40321022, 0x16a12: 0x003210e3, 0x16a13: 0x40321023,
-	0x16a14: 0xe0000eca, 0x16a15: 0xe0000ec7, 0x16a16: 0xe0000edc, 0x16a17: 0xe0000ed9,
-	0x16a18: 0xe0000ed0, 0x16a19: 0xe0000ecd, 0x16a1a: 0xe0000f1f, 0x16a1b: 0xe0000f1c,
-	0x16a1c: 0xe0000f2d, 0x16a1d: 0xe0000f2a, 0x16a1e: 0xe0000f47, 0x16a1f: 0xe0000f44,
-	0x16a20: 0xe0000f33, 0x16a21: 0xe0000f30, 0x16a22: 0xe0000f99, 0x16a23: 0xe0000f96,
-	0x16a24: 0xe0000f8a, 0x16a25: 0xe0000f87, 0x16a26: 0x00303688, 0x16a27: 0x40303620,
-	0x16a28: 0xe000102b, 0x16a29: 0xe0001028, 0x16a2a: 0xe000103f, 0x16a2b: 0xe000103c,
-	0x16a2c: 0xe0000fe7, 0x16a2d: 0xe0000fe4, 0x16a2e: 0xe0000ff9, 0x16a2f: 0xe0000ff6,
-	0x16a30: 0x003100c3, 0x16a31: 0x40310022, 0x16a32: 0xe0001039, 0x16a33: 0xe0001036,
-	0x16a34: 0xe00010d8, 0x16a35: 0xe00010d5, 0x16a36: 0xe000110e, 0x16a37: 0xe000110b,
-	0x16a38: 0xe0001117, 0x16a39: 0xe000113b, 0x16a3a: 0xe0001138, 0x16a3b: 0xe000114d,
-	0x16a3c: 0xe000114a, 0x16a3d: 0xe0001147, 0x16a3e: 0xe0001144, 0x16a3f: 0xe0000f64,
-	// Block 0x5a9, offset 0x16a40
-	0x16a40: 0x40321220, 0x16a41: 0x40321a20, 0x16a42: 0x40322220, 0x16a43: 0x40322a20,
-	0x16a44: 0xe0000ad5, 0x16a45: 0xe0000ad1, 0x16a46: 0xe0000acd, 0x16a47: 0xf0000a0a,
-	0x16a48: 0xf000040a, 0x16a49: 0xf0000404, 0x16a4a: 0xf0000a0a, 0x16a4b: 0xf000040a,
-	0x16a4c: 0xf0000404, 0x16a4d: 0xe0000947, 0x16a4e: 0xe0000944, 0x16a4f: 0xe0000c3d,
-	0x16a50: 0xe0000c3a, 0x16a51: 0xe0000dcc, 0x16a52: 0xe0000dc9, 0x16a53: 0xe0000ff3,
-	0x16a54: 0xe0000ff0, 0x16a55: 0xe00025e4, 0x16a56: 0xe00025e1, 0x16a57: 0xe00025d2,
-	0x16a58: 0xe00025cf, 0x16a59: 0xe00025de, 0x16a5a: 0xe00025db, 0x16a5b: 0xe00025d8,
-	0x16a5c: 0xe00025d5, 0x16a5d: 0x402cae20, 0x16a5e: 0xe00032dd, 0x16a5f: 0xe00032da,
-	0x16a60: 0xe0000976, 0x16a61: 0xe0000972, 0x16a62: 0xe0002608, 0x16a63: 0xe0002605,
-	0x16a64: 0x002d3a88, 0x16a65: 0x402d3a20, 0x16a66: 0xe0000bbe, 0x16a67: 0xe0000bbb,
-	0x16a68: 0xe0000c99, 0x16a69: 0xe0000c96, 0x16a6a: 0xe0000e20, 0x16a6b: 0xe0000e1d,
-	0x16a6c: 0xe0000e27, 0x16a6d: 0xe0000e23, 0x16a6e: 0xe0001162, 0x16a6f: 0xe000115f,
-	0x16a70: 0xe0000c8d, 0x16a71: 0xf0000a0a, 0x16a72: 0xf000040a, 0x16a73: 0xf0000404,
-	0x16a74: 0xe0000bac, 0x16a75: 0xe0000ba9, 0x16a76: 0x002d7888, 0x16a77: 0x00319488,
-	0x16a78: 0xe0000d57, 0x16a79: 0xe0000d54, 0x16a7a: 0xe00025ea, 0x16a7b: 0xe00025e7,
-	0x16a7c: 0xe00032e3, 0x16a7d: 0xe00032e0, 0x16a7e: 0xe00032f5, 0x16a7f: 0xe00032f2,
-	// Block 0x5aa, offset 0x16a80
-	0x16a80: 0xe0000b03, 0x16a81: 0xe0000aff, 0x16a82: 0xe0000b13, 0x16a83: 0xe0000b0f,
-	0x16a84: 0xe0000b0b, 0x16a85: 0xe0000b07, 0x16a86: 0xe0000b75, 0x16a87: 0xe0000b71,
-	0x16a88: 0xe0000c66, 0x16a89: 0xe0000c63, 0x16a8a: 0xe0000c78, 0x16a8b: 0xe0000c75,
-	0x16a8c: 0xe0000e84, 0x16a8d: 0xe0000e81, 0x16a8e: 0xe0000e44, 0x16a8f: 0xe0000e41,
-	0x16a90: 0xe000a9b3, 0x16a91: 0xe000a9b0, 0x16a92: 0xe000a9b9, 0x16a93: 0xe000a9b6,
-	0x16a94: 0xe000a9c5, 0x16a95: 0xe000a9c2, 0x16a96: 0xe000a9bf, 0x16a97: 0xe000a9bc,
-	0x16a98: 0xe000a9cb, 0x16a99: 0xe000a9c8, 0x16a9a: 0xe0000e5d, 0x16a9b: 0xe0000e59,
-	0x16a9c: 0xe0000e65, 0x16a9d: 0xe0000e61, 0x16a9e: 0xe0000e75, 0x16a9f: 0xe0000e71,
-	0x16aa0: 0xe0000e6d, 0x16aa1: 0xe0000e69, 0x16aa2: 0xe0000e7d, 0x16aa3: 0xe0000e79,
-	0x16aa4: 0xe000108d, 0x16aa5: 0xe000108a, 0x16aa6: 0xe000104d, 0x16aa7: 0xe000104a,
-	0x16aa8: 0xe0001066, 0x16aa9: 0xe0001062, 0x16aaa: 0xe000106e, 0x16aab: 0xe000106a,
-	0x16aac: 0xe000107e, 0x16aad: 0xe000107a, 0x16aae: 0xe0001076, 0x16aaf: 0xe0001072,
-	0x16ab0: 0xe0001086, 0x16ab1: 0xe0001082, 0x16ab2: 0xe0001108, 0x16ab3: 0xe0001105,
-	0x16ab4: 0xe0001135, 0x16ab5: 0xe0001132, 0x16ab6: 0xe000112f, 0x16ab7: 0xe000112c,
-	0x16ab8: 0xe000111d, 0x16ab9: 0xe000111a, 0x16aba: 0xe0000d0a, 0x16abb: 0xe0000d07,
-	0x16abc: 0x0030d888, 0x16abd: 0x4030d820, 0x16abe: 0x00312088, 0x16abf: 0x40312020,
-	// Block 0x5ab, offset 0x16ac0
-	0x16ac2: 0x40429620, 0x16ac3: 0x40429820,
-	0x16ac5: 0x40427e20, 0x16ac6: 0x40428020, 0x16ac7: 0x40428220,
-	0x16ac8: 0x40428420, 0x16ac9: 0x40428620, 0x16aca: 0x40428820,
-	0x16ace: 0x40428a20, 0x16acf: 0x40428c20,
-	0x16ad0: 0x40428e20, 0x16ad2: 0xc0610231, 0x16ad3: 0x40429220,
-	0x16ad4: 0x40429420, 0x16ad5: 0xceba9661,
-	0x16ad9: 0xcebe96f1, 0x16ada: 0xcec096f1,
-	0x16adc: 0xcee096f1, 0x16ade: 0xcec296f1, 0x16adf: 0xcec496f1,
-	0x16ae3: 0xcec696f1,
-	0x16ae4: 0xcec896f1,
-	0x16ae8: 0xceca96f1, 0x16ae9: 0xcede96f1, 0x16aea: 0xcecc96f1,
-	0x16aee: 0xcece96f1, 0x16aef: 0xced096f1,
-	0x16af0: 0xced296f1, 0x16af1: 0xcedc96f1, 0x16af2: 0xced496f1, 0x16af3: 0xceda96f1,
-	0x16af4: 0xced896f1, 0x16af5: 0xced696f1, 0x16af6: 0xcee296f1, 0x16af7: 0xcee496f1,
-	0x16af8: 0xcee696f1, 0x16af9: 0xcee896f1,
-	0x16afe: 0x4042c620, 0x16aff: 0x4042c820,
-	// Block 0x5ac, offset 0x16b00
-	0x16b01: 0x40430020, 0x16b02: 0x40430220, 0x16b03: 0x40430420,
-	0x16b05: 0x4042e020, 0x16b06: 0x4042e220, 0x16b07: 0x4042e420,
-	0x16b08: 0x4042e620, 0x16b09: 0x4042e820, 0x16b0a: 0x4042ea20, 0x16b0b: 0x4042ec20,
-	0x16b0c: 0x4042f020, 0x16b0e: 0x4042f420, 0x16b0f: 0x4042f620,
-	0x16b10: 0x4042f820, 0x16b12: 0x4042fa20, 0x16b13: 0x4042fc20,
-	0x16b14: 0x4042fe20, 0x16b15: 0x40430020, 0x16b16: 0x40430220, 0x16b17: 0x40430420,
-	0x16b18: 0x40430620, 0x16b19: 0x40430820, 0x16b1a: 0x40430a20, 0x16b1b: 0x40430e20,
-	0x16b1c: 0x40431020, 0x16b1d: 0x40431420, 0x16b1e: 0x40431620, 0x16b1f: 0x40431820,
-	0x16b20: 0x40431a20, 0x16b21: 0x40431c20, 0x16b22: 0x40431e20, 0x16b23: 0x40432020,
-	0x16b24: 0x40432220, 0x16b25: 0x40432420, 0x16b26: 0x40432620, 0x16b27: 0x40432820,
-	0x16b28: 0x40432a20, 0x16b2a: 0x40432c20, 0x16b2b: 0x40432e20,
-	0x16b2c: 0x40433020, 0x16b2d: 0x40433220, 0x16b2e: 0x40433420, 0x16b2f: 0x40433620,
-	0x16b30: 0x40433820, 0x16b31: 0x40433a20, 0x16b32: 0x40433c20, 0x16b33: 0x40434820,
-	0x16b35: 0x40433e20, 0x16b36: 0x40434020, 0x16b37: 0x40434220,
-	0x16b38: 0x40434420, 0x16b39: 0x40434620,
-	0x16b3d: 0x40434a20, 0x16b3e: 0x40434c20, 0x16b3f: 0x40434e20,
-	// Block 0x5ad, offset 0x16b40
-	0x16b41: 0x40491020, 0x16b42: 0x40491220, 0x16b43: 0x40491420,
-	0x16b44: 0x40491620, 0x16b45: 0x40491820, 0x16b46: 0x40491a20, 0x16b47: 0x40491c20,
-	0x16b48: 0x40491e20, 0x16b49: 0x40492020, 0x16b4a: 0x40492220, 0x16b4b: 0x40492420,
-	0x16b4c: 0x40492620, 0x16b4d: 0x40492820, 0x16b4e: 0x40492a20, 0x16b4f: 0x40492c20,
-	0x16b50: 0x40492e20, 0x16b51: 0x40493020, 0x16b52: 0x40493220, 0x16b53: 0x40493420,
-	0x16b54: 0x40493620, 0x16b55: 0x40493820, 0x16b56: 0x40493a20, 0x16b57: 0x40493c20,
-	0x16b58: 0x40493e20, 0x16b59: 0x40494020, 0x16b5a: 0x40494220, 0x16b5b: 0x40494420,
-	0x16b5c: 0x40494620, 0x16b5d: 0x40494820, 0x16b5e: 0x40494a20, 0x16b5f: 0x40494c20,
-	0x16b60: 0x40494e20, 0x16b61: 0x40495020, 0x16b62: 0x40495220, 0x16b63: 0x40495420,
-	0x16b64: 0x40495620, 0x16b65: 0x40495820, 0x16b66: 0x40495a20, 0x16b67: 0x40495c20,
-	0x16b68: 0x40495e20, 0x16b69: 0x40496020, 0x16b6a: 0x40496220, 0x16b6b: 0x40496420,
-	0x16b6c: 0x40496620, 0x16b6d: 0x40496820, 0x16b6e: 0x40496a20, 0x16b6f: 0x40057820,
-	0x16b70: 0x40496e20, 0x16b71: 0x40497020, 0x16b72: 0x40497220, 0x16b73: 0xe000a9d1,
-	0x16b74: 0x40497620, 0x16b75: 0x40497820, 0x16b76: 0x40497a20, 0x16b77: 0x40497c20,
-	0x16b78: 0x826724bf, 0x16b79: 0x826724c0, 0x16b7a: 0x40498e20,
-	0x16b7f: 0x4027f420,
-	// Block 0x5ae, offset 0x16b80
-	0x16b80: 0xc07f04e1, 0x16b81: 0xc0ae04e1, 0x16b82: 0xc0dd04e1, 0x16b83: 0xc10c04e1,
-	0x16b84: 0xc13b04e1, 0x16b85: 0x00497283, 0x16b86: 0x40057e20, 0x16b87: 0xa000ff02,
-	0x16b88: 0xa6b10002, 0x16b89: 0xa6b10102, 0x16b8a: 0xa6b10202, 0x16b8b: 0xa6b10302,
-	0x16b8c: 0xa000ff02, 0x16b8d: 0xceea9721, 0x16b8e: 0xa000fe02, 0x16b8f: 0x40057820,
-	0x16b90: 0xe000019a, 0x16b91: 0xe000022e, 0x16b92: 0xe0000346, 0x16b93: 0xe0000420,
-	0x16b94: 0xe00004f5, 0x16b95: 0xe00005bf, 0x16b96: 0xe000068a, 0x16b97: 0xe0000732,
-	0x16b98: 0xe00007de, 0x16b99: 0xe0000883, 0x16b9a: 0x40057a20, 0x16b9b: 0x40057c20,
-	// Block 0x5af, offset 0x16bc0
-	0x16bc0: 0xa0000000, 0x16bc1: 0xa0000000, 0x16bc2: 0xa0000000, 0x16bc3: 0xa0000000,
-	0x16bc4: 0xa0000000, 0x16bc5: 0xa0000000, 0x16bc6: 0xa0000000, 0x16bc7: 0xa0000000,
-	0x16bc8: 0xa0000000, 0x16bc9: 0x40020020, 0x16bca: 0x40020220, 0x16bcb: 0x40020420,
-	0x16bcc: 0x40020620, 0x16bcd: 0x40020820, 0x16bce: 0xa0000000, 0x16bcf: 0xa0000000,
-	0x16bd0: 0xa0000000, 0x16bd1: 0xa0000000, 0x16bd2: 0xa0000000, 0x16bd3: 0xa0000000,
-	0x16bd4: 0xa0000000, 0x16bd5: 0xa0000000, 0x16bd6: 0xa0000000, 0x16bd7: 0xa0000000,
-	0x16bd8: 0xa0000000, 0x16bd9: 0xa0000000, 0x16bda: 0xa0000000, 0x16bdb: 0xa0000000,
-	0x16bdc: 0xa0000000, 0x16bdd: 0xa0000000, 0x16bde: 0xa0000000, 0x16bdf: 0xa0000000,
-	0x16be0: 0x40021220, 0x16be1: 0x4002ba20, 0x16be2: 0x4003e020, 0x16be3: 0x4004ea20,
-	0x16be4: 0x4027de20, 0x16be5: 0x4004ec20, 0x16be6: 0x4004e620, 0x16be7: 0x4003d220,
-	0x16be8: 0x4003f420, 0x16be9: 0x4003f620, 0x16bea: 0x4004d820, 0x16beb: 0x40093820,
-	0x16bec: 0x40024020, 0x16bed: 0x40021a20, 0x16bee: 0x4002e420, 0x16bef: 0x4004e220,
-	0x16bf0: 0x4029cc20, 0x16bf1: 0x4029ce20, 0x16bf2: 0x4029d020, 0x16bf3: 0x4029d220,
-	0x16bf4: 0x4029d420, 0x16bf5: 0x4029d620, 0x16bf6: 0x4029d820, 0x16bf7: 0x4029da20,
-	0x16bf8: 0x4029dc20, 0x16bf9: 0x4029de20, 0x16bfa: 0x40026c20, 0x16bfb: 0x40026220,
-	0x16bfc: 0x40094020, 0x16bfd: 0x40094220, 0x16bfe: 0x40094420, 0x16bff: 0x4002c420,
-	// Block 0x5b0, offset 0x16c00
-	0x16c00: 0x4004d620, 0x16c01: 0xcef09771, 0x16c02: 0x002c0a88, 0x16c03: 0x002c3a88,
-	0x16c04: 0x002c6288, 0x16c05: 0xcef69771, 0x16c06: 0x002d0888, 0x16c07: 0x002d2288,
-	0x16c08: 0x002d6888, 0x16c09: 0xcefc9771, 0x16c0a: 0x002dcc88, 0x16c0b: 0x002dfe88,
-	0x16c0c: 0xc0030002, 0x16c0d: 0x002e8288, 0x16c0e: 0xc5290a52, 0x16c0f: 0xcf029771,
-	0x16c10: 0x002f2c88, 0x16c11: 0x002f5688, 0x16c12: 0x002f7a88, 0x16c13: 0x002fe688,
-	0x16c14: 0x00302c88, 0x16c15: 0xcf089771, 0x16c16: 0x0030be88, 0x16c17: 0x0030e288,
-	0x16c18: 0x0030f688, 0x16c19: 0x00310088, 0x16c1a: 0x00312a88, 0x16c1b: 0x4003f820,
-	0x16c1c: 0x4004e420, 0x16c1d: 0x4003fa20, 0x16c1e: 0x40062420, 0x16c1f: 0x40021620,
-	0x16c20: 0x40061e20, 0x16c21: 0xceed9771, 0x16c22: 0x402c0a20, 0x16c23: 0x402c3a20,
-	0x16c24: 0x402c6220, 0x16c25: 0xcef39771, 0x16c26: 0x402d0820, 0x16c27: 0x402d2220,
-	0x16c28: 0x402d6820, 0x16c29: 0xcef99771, 0x16c2a: 0x402dcc20, 0x16c2b: 0x402dfe20,
-	0x16c2c: 0xc0000002, 0x16c2d: 0x402e8220, 0x16c2e: 0xc5270a41, 0x16c2f: 0xceff9771,
-	0x16c30: 0x402f2c20, 0x16c31: 0x402f5620, 0x16c32: 0x402f7a20, 0x16c33: 0x402fe620,
-	0x16c34: 0x40302c20, 0x16c35: 0xcf059771, 0x16c36: 0x4030be20, 0x16c37: 0x4030e220,
-	0x16c38: 0x4030f620, 0x16c39: 0x40310020, 0x16c3a: 0x40312a20, 0x16c3b: 0x4003fc20,
-	0x16c3c: 0x40094820, 0x16c3d: 0x4003fe20, 0x16c3e: 0x40094c20, 0x16c3f: 0xa0000000,
-	// Block 0x5b1, offset 0x16c40
-	0x16c40: 0xe00008f5, 0x16c41: 0x002bdea3, 0x16c42: 0xe0000921, 0x16c43: 0xe0000969,
-	0x16c44: 0xe000095b, 0x16c45: 0xe000094d, 0x16c46: 0xe00009dd, 0x16c47: 0xe0000a53,
-	0x16c48: 0xe0000ae8, 0x16c49: 0x002c98a3, 0x16c4a: 0xe0000af4, 0x16c4b: 0xe0000b20,
-	0x16c4c: 0xe0000c2b, 0x16c4d: 0x002d9aa3, 0x16c4e: 0xe0000c37, 0x16c4f: 0xe0000c43,
-	0x16c50: 0xe0000ab3, 0x16c51: 0xe0000d63, 0x16c52: 0xe0000d9a, 0x16c53: 0x002ee2a3,
-	0x16c54: 0xe0000da6, 0x16c55: 0xe0000de6, 0x16c56: 0xe0000dd2, 0x16c57: 0x40093e20,
-	0x16c58: 0xe0000e12, 0x16c59: 0xe0000fe1, 0x16c5a: 0x00306ca3, 0x16c5b: 0xe0000fed,
-	0x16c5c: 0xe0000fff, 0x16c5d: 0xe0001102, 0x16c5e: 0x00318888, 0x16c5f: 0xe0000f7b,
-	0x16c60: 0xe00008f2, 0x16c61: 0x402bde21, 0x16c62: 0xe000091e, 0x16c63: 0xe0000966,
-	0x16c64: 0xe0000958, 0x16c65: 0xe000094a, 0x16c66: 0xe00009d5, 0x16c67: 0xe0000a4d,
-	0x16c68: 0xe0000ae5, 0x16c69: 0x402c9821, 0x16c6a: 0xe0000af1, 0x16c6b: 0xe0000b1d,
-	0x16c6c: 0xe0000c28, 0x16c6d: 0x402d9a21, 0x16c6e: 0xe0000c34, 0x16c6f: 0xe0000c40,
-	0x16c70: 0xe0000aad, 0x16c71: 0xe0000d60, 0x16c72: 0xe0000d97, 0x16c73: 0x402ee221,
-	0x16c74: 0xe0000da3, 0x16c75: 0xe0000de3, 0x16c76: 0xe0000dcf, 0x16c77: 0x40093c20,
-	0x16c78: 0xe0000e0f, 0x16c79: 0xe0000fde, 0x16c7a: 0x40306c21, 0x16c7b: 0xe0000fea,
-	0x16c7c: 0xe0000ffc, 0x16c7d: 0xe00010ff, 0x16c7e: 0x40318820, 0x16c7f: 0xe0001114,
-	// Block 0x5b2, offset 0x16c80
-	0x16c80: 0x002bdec3, 0x16c81: 0x402bde22, 0x16c82: 0xe00008fb, 0x16c83: 0xe00008f8,
-	0x16c84: 0xe000097d, 0x16c85: 0xe000097a, 0x16c86: 0xe0000a38, 0x16c87: 0xe0000a35,
-	0x16c88: 0xe0000a3e, 0x16c89: 0xe0000a3b, 0x16c8a: 0xe0000a4a, 0x16c8b: 0xe0000a47,
-	0x16c8c: 0xe0000a44, 0x16c8d: 0xe0000a41, 0x16c8e: 0xe0000a86, 0x16c8f: 0xe0000a83,
-	0x16c90: 0xe0000aaa, 0x16c91: 0xe0000aa7, 0x16c92: 0x002c98c3, 0x16c93: 0x402c9822,
-	0x16c94: 0xe0000aee, 0x16c95: 0xe0000aeb, 0x16c96: 0xe0000b2c, 0x16c97: 0xe0000b29,
-	0x16c98: 0xe0000b40, 0x16c99: 0xe0000b3d, 0x16c9a: 0xe0000b1a, 0x16c9b: 0xe0000b17,
-	0x16c9c: 0xe0000bb8, 0x16c9d: 0xe0000bb5, 0x16c9e: 0xe0000bb2, 0x16c9f: 0xe0000baf,
-	0x16ca0: 0xe0000bc4, 0x16ca1: 0xe0000bc1, 0x16ca2: 0xe0000bca, 0x16ca3: 0xe0000bc7,
-	0x16ca4: 0xe0000bee, 0x16ca5: 0xe0000beb, 0x16ca6: 0xe0000c1b, 0x16ca7: 0xe0000c18,
-	0x16ca8: 0xe0000c51, 0x16ca9: 0xe0000c4e, 0x16caa: 0x002d9ac3, 0x16cab: 0x402d9a22,
-	0x16cac: 0xe0000c31, 0x16cad: 0xe0000c2e, 0x16cae: 0xe0000c5a, 0x16caf: 0xe0000c57,
-	0x16cb0: 0xe0000c54, 0x16cb1: 0x402da220, 0x16cb2: 0xf0000a0a, 0x16cb3: 0xf0000404,
-	0x16cb4: 0xe0000c8a, 0x16cb5: 0xe0000c87, 0x16cb6: 0xe0000c9f, 0x16cb7: 0xe0000c9c,
-	0x16cb8: 0x402f7220, 0x16cb9: 0xe0000ccc, 0x16cba: 0xe0000cc9, 0x16cbb: 0xe0000cd8,
-	0x16cbc: 0xe0000cd5, 0x16cbd: 0xe0000cd2, 0x16cbe: 0xe0000ccf, 0x16cbf: 0xe0000d04,
-	// Block 0x5b3, offset 0x16cc0
-	0x16cc0: 0xe0000cfe, 0x16cc1: 0xe0000cf8, 0x16cc2: 0xe0000cf5, 0x16cc3: 0xe0000d51,
-	0x16cc4: 0xe0000d4e, 0x16cc5: 0xe0000d6f, 0x16cc6: 0xe0000d6c, 0x16cc7: 0xe0000d5d,
-	0x16cc8: 0xe0000d5a, 0x16cc9: 0xf0000404, 0x16cca: 0x002ea086, 0x16ccb: 0x002ea085,
-	0x16ccc: 0x002ee2c3, 0x16ccd: 0x402ee222, 0x16cce: 0xe0000da0, 0x16ccf: 0xe0000d9d,
-	0x16cd0: 0xe0000de0, 0x16cd1: 0xe0000ddd, 0x16cd2: 0xe0000e93, 0x16cd3: 0xe0000e8f,
-	0x16cd4: 0xe0000eca, 0x16cd5: 0xe0000ec7, 0x16cd6: 0xe0000edc, 0x16cd7: 0xe0000ed9,
-	0x16cd8: 0xe0000ed0, 0x16cd9: 0xe0000ecd, 0x16cda: 0xe0000f1f, 0x16cdb: 0xe0000f1c,
-	0x16cdc: 0xe0000f2d, 0x16cdd: 0xe0000f2a, 0x16cde: 0xe0000f47, 0x16cdf: 0xe0000f44,
-	0x16ce0: 0xe0000f33, 0x16ce1: 0xe0000f30, 0x16ce2: 0xe0000f99, 0x16ce3: 0xe0000f96,
-	0x16ce4: 0xe0000f8a, 0x16ce5: 0xe0000f87, 0x16ce6: 0x00303688, 0x16ce7: 0x40303620,
-	0x16ce8: 0xe000102b, 0x16ce9: 0xe0001028, 0x16cea: 0x00306cc3, 0x16ceb: 0x40306c22,
-	0x16cec: 0xe0000fe7, 0x16ced: 0xe0000fe4, 0x16cee: 0xe0000ff9, 0x16cef: 0xe0000ff6,
-	0x16cf0: 0xe0001025, 0x16cf1: 0xe0001022, 0x16cf2: 0xe0001039, 0x16cf3: 0xe0001036,
-	0x16cf4: 0xe00010d8, 0x16cf5: 0xe00010d5, 0x16cf6: 0xe000110e, 0x16cf7: 0xe000110b,
-	0x16cf8: 0xe0001117, 0x16cf9: 0xe000113b, 0x16cfa: 0xe0001138, 0x16cfb: 0xe000114d,
-	0x16cfc: 0xe000114a, 0x16cfd: 0xe0001147, 0x16cfe: 0xe0001144, 0x16cff: 0xe0000f64,
-	// Block 0x5b4, offset 0x16d00
-	0x16d00: 0x40321220, 0x16d01: 0x40321a20, 0x16d02: 0x40322220, 0x16d03: 0x40322a20,
-	0x16d04: 0xe0000ad5, 0x16d05: 0xe0000ad1, 0x16d06: 0xe0000acd, 0x16d07: 0xf0000a0a,
-	0x16d08: 0xf000040a, 0x16d09: 0xf0000404, 0x16d0a: 0xf0000a0a, 0x16d0b: 0xf000040a,
-	0x16d0c: 0xf0000404, 0x16d0d: 0xe0000947, 0x16d0e: 0xe0000944, 0x16d0f: 0xe0000c3d,
-	0x16d10: 0xe0000c3a, 0x16d11: 0xe0000dcc, 0x16d12: 0xe0000dc9, 0x16d13: 0xe0000ff3,
-	0x16d14: 0xe0000ff0, 0x16d15: 0xe000a58e, 0x16d16: 0xe000a58b, 0x16d17: 0xe000aa43,
-	0x16d18: 0xe000aa40, 0x16d19: 0xe0001016, 0x16d1a: 0xe0001012, 0x16d1b: 0xe000100e,
-	0x16d1c: 0xe000100a, 0x16d1d: 0x402cae20, 0x16d1e: 0xe000a9e9, 0x16d1f: 0xe000a9e6,
-	0x16d20: 0xe000a9ef, 0x16d21: 0xe000a9ec, 0x16d22: 0xe00009f4, 0x16d23: 0xe00009ef,
-	0x16d24: 0x002d3a88, 0x16d25: 0x402d3a20, 0x16d26: 0xe0000bbe, 0x16d27: 0xe0000bbb,
-	0x16d28: 0xe0000c99, 0x16d29: 0xe0000c96, 0x16d2a: 0xe0000e20, 0x16d2b: 0xe0000e1d,
-	0x16d2c: 0xe000aa3d, 0x16d2d: 0xe000aa3a, 0x16d2e: 0xe0001162, 0x16d2f: 0xe000115f,
-	0x16d30: 0xe0000c8d, 0x16d31: 0xf0000a0a, 0x16d32: 0xf000040a, 0x16d33: 0xf0000404,
-	0x16d34: 0xe0000bac, 0x16d35: 0xe0000ba9, 0x16d36: 0x002d7888, 0x16d37: 0x00319488,
-	0x16d38: 0xe0000d57, 0x16d39: 0xe0000d54, 0x16d3a: 0xe000a9e3, 0x16d3b: 0xe000a9e0,
-	0x16d3c: 0xe00009ea, 0x16d3d: 0xe00009e5, 0x16d3e: 0xe0000e19, 0x16d3f: 0xe0000e15,
-	// Block 0x5b5, offset 0x16d40
-	0x16d40: 0xe000098f, 0x16d41: 0xe000098c, 0x16d42: 0xe0000995, 0x16d43: 0xe0000992,
-	0x16d44: 0xe0000b62, 0x16d45: 0xe0000b5f, 0x16d46: 0xe0000b68, 0x16d47: 0xe0000b65,
-	0x16d48: 0xe0000c6c, 0x16d49: 0xe0000c69, 0x16d4a: 0xe0000c72, 0x16d4b: 0xe0000c6f,
-	0x16d4c: 0xe0000e4a, 0x16d4d: 0xe0000e47, 0x16d4e: 0xe0000e50, 0x16d4f: 0xe0000e4d,
-	0x16d50: 0xe0000ee8, 0x16d51: 0xe0000ee5, 0x16d52: 0xe0000eee, 0x16d53: 0xe0000eeb,
-	0x16d54: 0xe0001053, 0x16d55: 0xe0001050, 0x16d56: 0xe0001059, 0x16d57: 0xe0001056,
-	0x16d58: 0xe0000f61, 0x16d59: 0xe0000f5e, 0x16d5a: 0xe0000fa5, 0x16d5b: 0xe0000fa2,
-	0x16d5c: 0x00312288, 0x16d5d: 0x40312220, 0x16d5e: 0xe0000bf4, 0x16d5f: 0xe0000bf1,
-	0x16d60: 0x002ebc88, 0x16d61: 0x402c8c20, 0x16d62: 0x002f2288, 0x16d63: 0x402f2220,
-	0x16d64: 0x00314088, 0x16d65: 0x40314020, 0x16d66: 0xe000096f, 0x16d67: 0xe000096c,
-	0x16d68: 0xe0000b32, 0x16d69: 0xe0000b2f, 0x16d6a: 0xe000aa2b, 0x16d6b: 0xe000aa28,
-	0x16d6c: 0xe000aa31, 0x16d6d: 0xe000aa2e, 0x16d6e: 0xe0000e04, 0x16d6f: 0xe0000e01,
-	0x16d70: 0xe000aa37, 0x16d71: 0xe000aa34, 0x16d72: 0xe0001129, 0x16d73: 0xe0001126,
-	0x16d74: 0x402e5e20, 0x16d75: 0x402ed020, 0x16d76: 0x40305a20, 0x16d77: 0x402dd420,
-	0x16d78: 0xe0000abf, 0x16d79: 0xe0000ec4, 0x16d7a: 0x002be888, 0x16d7b: 0x002c4488,
-	0x16d7c: 0x402c4420, 0x16d7d: 0x002e3888, 0x16d7e: 0x00303e88, 0x16d7f: 0x402ffc20,
-	// Block 0x5b6, offset 0x16d80
-	0x16d80: 0x402f8220, 0x16d81: 0x402fd820, 0x16d82: 0x402ff420, 0x16d83: 0x40300820,
-	0x16d84: 0x402df620, 0x16d85: 0x40301a20, 0x16d86: 0x40302420, 0x16d87: 0x40306420,
-	0x16d88: 0x40305220, 0x16d89: 0x40307c20, 0x16d8a: 0x4030b420, 0x16d8b: 0x4030cc20,
-	0x16d8c: 0x4030da20, 0x16d8d: 0x4030ee20, 0x16d8e: 0x402e7a20, 0x16d8f: 0x40310820,
-	0x16d90: 0x40314820, 0x16d91: 0x40315020, 0x16d92: 0x40316420, 0x16d93: 0x40318020,
-	0x16d94: 0x4031cc20, 0x16d95: 0x4031e820, 0x16d96: 0x40320a20, 0x16d97: 0x40323220,
-	0x16d98: 0x40323a20, 0x16d99: 0x402c1220, 0x16d9a: 0x402cf820, 0x16d9b: 0x402d4c20,
-	0x16d9c: 0x402d7020, 0x16d9d: 0x402de620, 0x16d9e: 0x402e1a20, 0x16d9f: 0x402e2a20,
-	0x16da0: 0x402f6220, 0x16da1: 0x4031fa20, 0x16da2: 0x40320220, 0x16da3: 0xe0000aca,
-	0x16da4: 0xe0000adc, 0x16da5: 0xe0000ad9, 0x16da6: 0xe0000fcc, 0x16da7: 0xe0000fcf,
-	0x16da8: 0xe0000fba, 0x16da9: 0xe0000ba1, 0x16daa: 0xe0000d11, 0x16dab: 0xe0000d18,
-	0x16dac: 0x40324220, 0x16dad: 0x40324a20, 0x16dae: 0x40309020, 0x16daf: 0x40309820,
-	0x16db0: 0x002d6894, 0x16db1: 0x002d8094, 0x16db2: 0x002dcc94, 0x16db3: 0x002f7a94,
-	0x16db4: 0x002f9894, 0x16db5: 0x002fac94, 0x16db6: 0x002fd894, 0x16db7: 0x0030e294,
-	0x16db8: 0x00310094, 0x16db9: 0x40064020, 0x16dba: 0x40064420, 0x16dbb: 0x40312c20,
-	0x16dbc: 0x4031de20, 0x16dbd: 0x00312c83, 0x16dbe: 0x4031e220, 0x16dbf: 0x4031f020,
-	// Block 0x5b7, offset 0x16dc0
-	0x16dc0: 0xe00009b1, 0x16dc1: 0xe00009ae, 0x16dc2: 0xe0000a22, 0x16dc3: 0xe0000a1f,
-	0x16dc4: 0xe0000a28, 0x16dc5: 0xe0000a25, 0x16dc6: 0xe0000a2e, 0x16dc7: 0xe0000a2b,
-	0x16dc8: 0xe0000a5a, 0x16dc9: 0xe0000a56, 0x16dca: 0xe0000a8c, 0x16dcb: 0xe0000a89,
-	0x16dcc: 0xe0000a98, 0x16dcd: 0xe0000a95, 0x16dce: 0xe0000aa4, 0x16dcf: 0xe0000aa1,
-	0x16dd0: 0xe0000a92, 0x16dd1: 0xe0000a8f, 0x16dd2: 0xe0000a9e, 0x16dd3: 0xe0000a9b,
-	0x16dd4: 0xe000aa01, 0x16dd5: 0xe000a9fe, 0x16dd6: 0xe000a9fb, 0x16dd7: 0xe000a9f8,
-	0x16dd8: 0xe0000b7c, 0x16dd9: 0xe0000b79, 0x16dda: 0xe0000b82, 0x16ddb: 0xe0000b7f,
-	0x16ddc: 0xe0000b39, 0x16ddd: 0xe0000b35, 0x16dde: 0xe0000b8c, 0x16ddf: 0xe0000b89,
-	0x16de0: 0xe0000bd0, 0x16de1: 0xe0000bcd, 0x16de2: 0xe0000c00, 0x16de3: 0xe0000bfd,
-	0x16de4: 0xe0000c0c, 0x16de5: 0xe0000c09, 0x16de6: 0xe0000bfa, 0x16de7: 0xe0000bf7,
-	0x16de8: 0xe0000c06, 0x16de9: 0xe0000c03, 0x16dea: 0xe0000c12, 0x16deb: 0xe0000c0f,
-	0x16dec: 0xe0000c7e, 0x16ded: 0xe0000c7b, 0x16dee: 0xe000aa07, 0x16def: 0xe000aa04,
-	0x16df0: 0xe0000c93, 0x16df1: 0xe0000c90, 0x16df2: 0xe0000cab, 0x16df3: 0xe0000ca8,
-	0x16df4: 0xe0000cb1, 0x16df5: 0xe0000cae, 0x16df6: 0xe0000cde, 0x16df7: 0xe0000cdb,
-	0x16df8: 0xe0000ce5, 0x16df9: 0xe0000ce1, 0x16dfa: 0xe0000cf2, 0x16dfb: 0xe0000cef,
-	0x16dfc: 0xe0000cec, 0x16dfd: 0xe0000ce9, 0x16dfe: 0xe0000d1e, 0x16dff: 0xe0000d1b,
-	// Block 0x5b8, offset 0x16e00
-	0x16e00: 0xe0000d24, 0x16e01: 0xe0000d21, 0x16e02: 0xe0000d2a, 0x16e03: 0xe0000d27,
-	0x16e04: 0xe0000d69, 0x16e05: 0xe0000d66, 0x16e06: 0xe0000d7b, 0x16e07: 0xe0000d78,
-	0x16e08: 0xe0000d87, 0x16e09: 0xe0000d84, 0x16e0a: 0xe0000d81, 0x16e0b: 0xe0000d7e,
-	0x16e0c: 0xe000aa13, 0x16e0d: 0xe000aa10, 0x16e0e: 0xe0000df5, 0x16e0f: 0xe0000df1,
-	0x16e10: 0xe000aa25, 0x16e11: 0xe000aa22, 0x16e12: 0xe000aa1f, 0x16e13: 0xe000aa1c,
-	0x16e14: 0xe0000ea7, 0x16e15: 0xe0000ea4, 0x16e16: 0xe0000ead, 0x16e17: 0xe0000eaa,
-	0x16e18: 0xe0000ed6, 0x16e19: 0xe0000ed3, 0x16e1a: 0xe0000ef4, 0x16e1b: 0xe0000ef1,
-	0x16e1c: 0xe0000efb, 0x16e1d: 0xe0000ef7, 0x16e1e: 0xe0000f02, 0x16e1f: 0xe0000eff,
-	0x16e20: 0xe0000f41, 0x16e21: 0xe0000f3e, 0x16e22: 0xe0000f53, 0x16e23: 0xe0000f50,
-	0x16e24: 0xe0000f26, 0x16e25: 0xe0000f22, 0x16e26: 0xe0000f3a, 0x16e27: 0xe0000f36,
-	0x16e28: 0xe0000f5a, 0x16e29: 0xe0000f56, 0x16e2a: 0xe0000f93, 0x16e2b: 0xe0000f90,
-	0x16e2c: 0xe0000f9f, 0x16e2d: 0xe0000f9c, 0x16e2e: 0xe0000fb1, 0x16e2f: 0xe0000fae,
-	0x16e30: 0xe0000fab, 0x16e31: 0xe0000fa8, 0x16e32: 0xe0001093, 0x16e33: 0xe0001090,
-	0x16e34: 0xe000109f, 0x16e35: 0xe000109c, 0x16e36: 0xe0001099, 0x16e37: 0xe0001096,
-	0x16e38: 0xe000aa49, 0x16e39: 0xe000aa46, 0x16e3a: 0xe000a58e, 0x16e3b: 0xe000a58b,
-	0x16e3c: 0xe00010a9, 0x16e3d: 0xe00010a6, 0x16e3e: 0xe00010af, 0x16e3f: 0xe00010ac,
-	// Block 0x5b9, offset 0x16e40
-	0x16e40: 0xe00010d2, 0x16e41: 0xe00010cf, 0x16e42: 0xe00010cc, 0x16e43: 0xe00010c9,
-	0x16e44: 0xe00010e1, 0x16e45: 0xe00010de, 0x16e46: 0xe00010e7, 0x16e47: 0xe00010e4,
-	0x16e48: 0xe00010ed, 0x16e49: 0xe00010ea, 0x16e4a: 0xe00010fc, 0x16e4b: 0xe00010f9,
-	0x16e4c: 0xe00010f6, 0x16e4d: 0xe00010f3, 0x16e4e: 0xe0001123, 0x16e4f: 0xe0001120,
-	0x16e50: 0xe0001141, 0x16e51: 0xe000113e, 0x16e52: 0xe0001153, 0x16e53: 0xe0001150,
-	0x16e54: 0xe0001159, 0x16e55: 0xe0001156, 0x16e56: 0xe0000c15, 0x16e57: 0xe0000f8d,
-	0x16e58: 0xe00010db, 0x16e59: 0xe0001111, 0x16e5a: 0xf0000404, 0x16e5b: 0xe0000f70,
-	0x16e5c: 0x40300420, 0x16e5d: 0x40300620, 0x16e5e: 0xe0000f7f, 0x16e5f: 0x402c9620,
-	0x16e60: 0xe000099b, 0x16e61: 0xe0000998, 0x16e62: 0xe0000989, 0x16e63: 0xe0000986,
-	0x16e64: 0xe000a9dd, 0x16e65: 0xe000a9da, 0x16e66: 0xe0000930, 0x16e67: 0xe000092c,
-	0x16e68: 0xe0000940, 0x16e69: 0xe000093c, 0x16e6a: 0xe0000938, 0x16e6b: 0xe0000934,
-	0x16e6c: 0xe00009aa, 0x16e6d: 0xe00009a6, 0x16e6e: 0xe000a9d7, 0x16e6f: 0xe000a9d4,
-	0x16e70: 0xe000090a, 0x16e71: 0xe0000906, 0x16e72: 0xe000091a, 0x16e73: 0xe0000916,
-	0x16e74: 0xe0000912, 0x16e75: 0xe000090e, 0x16e76: 0xe00009a2, 0x16e77: 0xe000099e,
-	0x16e78: 0xe0000b6e, 0x16e79: 0xe0000b6b, 0x16e7a: 0xe0000b5c, 0x16e7b: 0xe0000b59,
-	0x16e7c: 0xe0000b26, 0x16e7d: 0xe0000b23, 0x16e7e: 0xe000a9f5, 0x16e7f: 0xe000a9f2,
-	// Block 0x5ba, offset 0x16e80
-	0x16e80: 0xe0000b03, 0x16e81: 0xe0000aff, 0x16e82: 0xe0000b13, 0x16e83: 0xe0000b0f,
-	0x16e84: 0xe0000b0b, 0x16e85: 0xe0000b07, 0x16e86: 0xe0000b75, 0x16e87: 0xe0000b71,
-	0x16e88: 0xe0000c66, 0x16e89: 0xe0000c63, 0x16e8a: 0xe0000c78, 0x16e8b: 0xe0000c75,
-	0x16e8c: 0xe0000e84, 0x16e8d: 0xe0000e81, 0x16e8e: 0xe0000e44, 0x16e8f: 0xe0000e41,
-	0x16e90: 0xe000aa0d, 0x16e91: 0xe000aa0a, 0x16e92: 0xe0000db5, 0x16e93: 0xe0000db1,
-	0x16e94: 0xe0000dc5, 0x16e95: 0xe0000dc1, 0x16e96: 0xe0000dbd, 0x16e97: 0xe0000db9,
-	0x16e98: 0xe0000e8b, 0x16e99: 0xe0000e87, 0x16e9a: 0xe000aa19, 0x16e9b: 0xe000aa16,
-	0x16e9c: 0xe0000e65, 0x16e9d: 0xe0000e61, 0x16e9e: 0xe0000e75, 0x16e9f: 0xe0000e71,
-	0x16ea0: 0xe0000e6d, 0x16ea1: 0xe0000e69, 0x16ea2: 0xe0000e7d, 0x16ea3: 0xe0000e79,
-	0x16ea4: 0xe000108d, 0x16ea5: 0xe000108a, 0x16ea6: 0xe000104d, 0x16ea7: 0xe000104a,
-	0x16ea8: 0xe000aa4f, 0x16ea9: 0xe000aa4c, 0x16eaa: 0xe000106e, 0x16eab: 0xe000106a,
-	0x16eac: 0xe000107e, 0x16ead: 0xe000107a, 0x16eae: 0xe0001076, 0x16eaf: 0xe0001072,
-	0x16eb0: 0xe0001086, 0x16eb1: 0xe0001082, 0x16eb2: 0xe0001108, 0x16eb3: 0xe0001105,
-	0x16eb4: 0xe0001135, 0x16eb5: 0xe0001132, 0x16eb6: 0xe000112f, 0x16eb7: 0xe000112c,
-	0x16eb8: 0xe000111d, 0x16eb9: 0xe000111a, 0x16eba: 0xe0000d0a, 0x16ebb: 0xe0000d07,
-	0x16ebc: 0x0030d888, 0x16ebd: 0x4030d820, 0x16ebe: 0x00312088, 0x16ebf: 0x40312020,
-	// Block 0x5bb, offset 0x16ec0
-	0x16ec0: 0xa0000000, 0x16ec1: 0xa0000000, 0x16ec2: 0xa0000000, 0x16ec3: 0xa0000000,
-	0x16ec4: 0xa0000000, 0x16ec5: 0xa0000000, 0x16ec6: 0xa0000000, 0x16ec7: 0xa0000000,
-	0x16ec8: 0xa0000000, 0x16ec9: 0x40020020, 0x16eca: 0x40020220, 0x16ecb: 0x40020420,
-	0x16ecc: 0x40020620, 0x16ecd: 0x40020820, 0x16ece: 0xa0000000, 0x16ecf: 0xa0000000,
-	0x16ed0: 0xa0000000, 0x16ed1: 0xa0000000, 0x16ed2: 0xa0000000, 0x16ed3: 0xa0000000,
-	0x16ed4: 0xa0000000, 0x16ed5: 0xa0000000, 0x16ed6: 0xa0000000, 0x16ed7: 0xa0000000,
-	0x16ed8: 0xa0000000, 0x16ed9: 0xa0000000, 0x16eda: 0xa0000000, 0x16edb: 0xa0000000,
-	0x16edc: 0xa0000000, 0x16edd: 0xa0000000, 0x16ede: 0xa0000000, 0x16edf: 0xa0000000,
-	0x16ee0: 0x40021220, 0x16ee1: 0x4002ba20, 0x16ee2: 0x4003e020, 0x16ee3: 0x4004ea20,
-	0x16ee4: 0x4027de20, 0x16ee5: 0x4004ec20, 0x16ee6: 0x4004e620, 0x16ee7: 0x4003d220,
-	0x16ee8: 0x4003f420, 0x16ee9: 0x4003f620, 0x16eea: 0x4004d820, 0x16eeb: 0x40093820,
-	0x16eec: 0x40024020, 0x16eed: 0x40021a20, 0x16eee: 0x4002e420, 0x16eef: 0x4004e220,
-	0x16ef0: 0x4029cc20, 0x16ef1: 0x4029ce20, 0x16ef2: 0x4029d020, 0x16ef3: 0x4029d220,
-	0x16ef4: 0x4029d420, 0x16ef5: 0x4029d620, 0x16ef6: 0x4029d820, 0x16ef7: 0x4029da20,
-	0x16ef8: 0x4029dc20, 0x16ef9: 0x4029de20, 0x16efa: 0x40026c20, 0x16efb: 0x40026220,
-	0x16efc: 0x40094020, 0x16efd: 0x40094220, 0x16efe: 0x40094420, 0x16eff: 0x4002c420,
-	// Block 0x5bc, offset 0x16f00
-	0x16f00: 0x4004d620, 0x16f01: 0x002bde88, 0x16f02: 0x002c0a88, 0x16f03: 0xc3350911,
-	0x16f04: 0x002c6288, 0x16f05: 0x002c9888, 0x16f06: 0x002d0888, 0x16f07: 0xc33900d1,
-	0x16f08: 0x002d6888, 0x16f09: 0xc33b0931, 0x16f0a: 0x002dcc88, 0x16f0b: 0x002dfe88,
-	0x16f0c: 0xc0030002, 0x16f0d: 0x002e8288, 0x16f0e: 0x002e9e88, 0x16f0f: 0xc33f0071,
-	0x16f10: 0x002f2c88, 0x16f11: 0x002f5688, 0x16f12: 0x002f7a88, 0x16f13: 0xc3430911,
-	0x16f14: 0x00302c88, 0x16f15: 0xc3470071, 0x16f16: 0x0030be88, 0x16f17: 0x0030e288,
-	0x16f18: 0x0030f688, 0x16f19: 0x00310088, 0x16f1a: 0x00312a88, 0x16f1b: 0x4003f820,
-	0x16f1c: 0x4004e420, 0x16f1d: 0x4003fa20, 0x16f1e: 0x40062420, 0x16f1f: 0x40021620,
-	0x16f20: 0x40061e20, 0x16f21: 0x402bde20, 0x16f22: 0x402c0a20, 0x16f23: 0xc3330911,
-	0x16f24: 0x402c6220, 0x16f25: 0x402c9820, 0x16f26: 0x402d0820, 0x16f27: 0xc33700d1,
-	0x16f28: 0x402d6820, 0x16f29: 0x402d9a20, 0x16f2a: 0x402dcc20, 0x16f2b: 0x402dfe20,
-	0x16f2c: 0xc0000002, 0x16f2d: 0x402e8220, 0x16f2e: 0x402e9e20, 0x16f2f: 0xc33d0071,
-	0x16f30: 0x402f2c20, 0x16f31: 0x402f5620, 0x16f32: 0x402f7a20, 0x16f33: 0xc3410911,
-	0x16f34: 0x40302c20, 0x16f35: 0xc3450071, 0x16f36: 0x4030be20, 0x16f37: 0x4030e220,
-	0x16f38: 0x4030f620, 0x16f39: 0x40310020, 0x16f3a: 0x40312a20, 0x16f3b: 0x4003fc20,
-	0x16f3c: 0x40094820, 0x16f3d: 0x4003fe20, 0x16f3e: 0x40094c20, 0x16f3f: 0xa0000000,
-	// Block 0x5bd, offset 0x16f40
-	0x16f40: 0x00093685, 0x16f41: 0x40083620, 0x16f42: 0x40083820, 0x16f43: 0x40083a20,
-	0x16f44: 0x40083c20, 0x16f45: 0x002c628b, 0x16f46: 0x002c6285, 0x16f47: 0x002c9885,
-	0x16f48: 0x002d9a85, 0x16f49: 0x002dcc85, 0x16f4a: 0x40083e20, 0x16f4b: 0x400a6e20,
-	0x16f4c: 0x40084020, 0x16f4d: 0xe00009c4, 0x16f4e: 0x402d1e20, 0x16f4f: 0x40084220,
-	0x16f50: 0xe00002cb, 0x16f51: 0xe00002d3, 0x16f52: 0xe00002b2, 0x16f53: 0xe00002bb,
-	0x16f54: 0xe00003cd, 0x16f55: 0xe00002c3, 0x16f56: 0xe00003d1, 0x16f57: 0xe00004ab,
-	0x16f58: 0xe0000579, 0x16f59: 0xe00002c7, 0x16f5a: 0xe0000640, 0x16f5b: 0xe00002cf,
-	0x16f5c: 0xe00004af, 0x16f5d: 0xe0000644, 0x16f5e: 0xe0000798, 0x16f5f: 0xf0001e1e,
-	0x16f60: 0x002d9a8a, 0x16f61: 0xe000256e, 0x16f62: 0xe0002571, 0x16f63: 0xe000257b,
-	0x16f64: 0x0030be8a, 0x16f65: 0xe00025ab, 0x16f66: 0xe00025ae, 0x16f67: 0xe00010bb,
-	0x16f68: 0xe0002581, 0x16f69: 0x0030f68a, 0x16f6a: 0xe00025b5, 0x16f6b: 0xe00025bc,
-	0x16f6c: 0x002e228a, 0x16f6d: 0x002c3a8a, 0x16f6e: 0x002c628a, 0x16f6f: 0x002e828a,
-	0x16f70: 0x002d9a84, 0x16f71: 0xf0001f04, 0x16f72: 0xf0000404, 0x16f73: 0xf0001f04,
-	0x16f74: 0x0030be84, 0x16f75: 0xf0001f04, 0x16f76: 0xf0000404, 0x16f77: 0xe00010b6,
-	0x16f78: 0xf0001f04, 0x16f79: 0x0030f684, 0x16f7a: 0xf0001f04, 0x16f7b: 0xf0000404,
-	0x16f7c: 0x002e2284, 0x16f7d: 0x002c3a84, 0x16f7e: 0x002c6284, 0x16f7f: 0x002e8284,
-	// Block 0x5be, offset 0x16f80
-	0x16f80: 0xf0001f04, 0x16f81: 0xf0001f04, 0x16f82: 0xf0001f04, 0x16f83: 0xf0001f04,
-	0x16f84: 0xf0001f04, 0x16f85: 0xf0001f04, 0x16f86: 0xf0001f04, 0x16f87: 0xf0001f04,
-	0x16f88: 0xf0001f04, 0x16f89: 0xf0001f04, 0x16f8a: 0xf0001f04,
-	0x16f90: 0xf0000a04, 0x16f91: 0xf0000a04, 0x16f92: 0xf0000a04, 0x16f93: 0xf0000a04,
-	0x16f94: 0xf0000a04, 0x16f95: 0xf0000a04, 0x16f96: 0xf0000a04, 0x16f97: 0xf0000a04,
-	0x16f98: 0xe0002517, 0x16f99: 0xf0000a04, 0x16f9a: 0xf0000a04, 0x16f9b: 0xf0000a04,
-	0x16f9c: 0xf0000a04, 0x16f9d: 0xf0000a04, 0x16f9e: 0xf0000a04, 0x16f9f: 0xf0000a04,
-	0x16fa0: 0xf0000a04, 0x16fa1: 0xf0000a04, 0x16fa2: 0xf0000a04, 0x16fa3: 0xf0000a04,
-	0x16fa4: 0xf0000a04, 0x16fa5: 0xf0000a04, 0x16fa6: 0xf0000a04, 0x16fa7: 0xf0000a04,
-	0x16fa8: 0xf0000a04, 0x16fa9: 0xf0000a04, 0x16faa: 0xf0000a04, 0x16fab: 0x002c3a8c,
-	0x16fac: 0x002f7a8c, 0x16fad: 0xf0000c0c, 0x16fae: 0xf0000c0c,
-	0x16fb0: 0x002bde9d, 0x16fb1: 0x002c0a9d, 0x16fb2: 0x002c3a9d, 0x16fb3: 0x002c629d,
-	0x16fb4: 0x002c989d, 0x16fb5: 0x002d089d, 0x16fb6: 0x002d229d, 0x16fb7: 0x002d689d,
-	0x16fb8: 0x002d9a9d, 0x16fb9: 0x002dcc9d, 0x16fba: 0x002dfe9d, 0x16fbb: 0x002e229d,
-	0x16fbc: 0x002e829d, 0x16fbd: 0x002e9e9d, 0x16fbe: 0x002ee29d, 0x16fbf: 0x002f2c9d,
-	// Block 0x5bf, offset 0x16fc0
-	0x16fc0: 0x00352088, 0x16fc1: 0x40352020, 0x16fc2: 0x40070620, 0x16fc3: 0xae608302,
-	0x16fc4: 0xae605f02, 0x16fc5: 0xae602a02, 0x16fc6: 0xae602202, 0x16fc7: 0xae605f02,
-	0x16fc8: 0xa0000000, 0x16fc9: 0xa0000000, 0x16fca: 0x00341c88, 0x16fcb: 0x40341c20,
-	0x16fcc: 0x00369688, 0x16fcd: 0x40369620, 0x16fce: 0x00353088, 0x16fcf: 0x40353020,
-	0x16fd0: 0x00336483, 0x16fd1: 0x40336420, 0x16fd2: 0x00336a88, 0x16fd3: 0x40336a20,
-	0x16fd4: 0x00337a88, 0x16fd5: 0x40337a20, 0x16fd6: 0x0033dc88, 0x16fd7: 0x4033dc20,
-	0x16fd8: 0x0033aa88, 0x16fd9: 0x4033aa20, 0x16fda: 0x00345888, 0x16fdb: 0x40345820,
-	0x16fdc: 0x00347888, 0x16fdd: 0x40347820, 0x16fde: 0x00347088, 0x16fdf: 0x40347020,
-	0x16fe0: 0x00346888, 0x16fe1: 0x40346820, 0x16fe2: 0x0034ca88, 0x16fe3: 0x4034ca20,
-	0x16fe4: 0x0034dc88, 0x16fe5: 0x4034dc20, 0x16fe6: 0x00351888, 0x16fe7: 0x40351820,
-	0x16fe8: 0x00372688, 0x16fe9: 0x40372620, 0x16fea: 0x00354488, 0x16feb: 0x40354420,
-	0x16fec: 0x00355888, 0x16fed: 0x40355820, 0x16fee: 0x00359288, 0x16fef: 0x40359220,
-	0x16ff0: 0x00359a88, 0x16ff1: 0x40359a20, 0x16ff2: 0x0035cc88, 0x16ff3: 0x4035cc20,
-	0x16ff4: 0x00360e88, 0x16ff5: 0x40360e20, 0x16ff6: 0x00362a88, 0x16ff7: 0x40362a20,
-	0x16ff8: 0x00363a88, 0x16ff9: 0x40363a20, 0x16ffa: 0x0035d488, 0x16ffb: 0x4035d420,
-	0x16ffc: 0x00364488, 0x16ffd: 0x40364420, 0x16ffe: 0x00364c88, 0x16fff: 0x40364c20,
-	// Block 0x5c0, offset 0x17000
-	0x17000: 0xa0000000, 0x17001: 0xa0000000, 0x17002: 0xa0000000, 0x17003: 0xa0000000,
-	0x17004: 0xa0000000, 0x17006: 0x40096620, 0x17007: 0x40096a20,
-	0x17008: 0x40070820, 0x17009: 0x4004f220, 0x1700a: 0x4004f620, 0x1700b: 0x4027e620,
-	0x1700c: 0x40024820, 0x1700d: 0x40024a20, 0x1700e: 0x40070e20, 0x1700f: 0x40071020,
-	0x17010: 0xa0000001, 0x17011: 0xa0000002, 0x17012: 0xa0000004, 0x17013: 0xa0000003,
-	0x17014: 0xa0000005, 0x17015: 0xae600000, 0x17016: 0xae600000, 0x17017: 0xae600000,
-	0x17018: 0xa1e00000, 0x17019: 0xa1f00000, 0x1701a: 0xa2000000, 0x1701b: 0x40026420,
-	0x1701e: 0x40027020, 0x1701f: 0x4002cc20,
-	0x17020: 0x403aa220, 0x17021: 0x4039a620, 0x17022: 0x40393a20, 0x17023: 0x40393821,
-	0x17024: 0x40399c21, 0x17025: 0x40392820, 0x17026: 0x4039a821, 0x17027: 0xcf0b0151,
-	0x17028: 0xcf0f97a1, 0x17029: 0x40395420, 0x1702a: 0xcf1397a1, 0x1702b: 0x40394c20,
-	0x1702c: 0xcf1797a1, 0x1702d: 0x40395620, 0x1702e: 0x40395820, 0x1702f: 0xcf1b97a1,
-	0x17030: 0x40396220, 0x17031: 0xcf1f97a1, 0x17032: 0x40396c20, 0x17033: 0x40397020,
-	0x17034: 0x40397220, 0x17035: 0x40397420, 0x17036: 0x40397620, 0x17037: 0x40397820,
-	0x17038: 0x40397a20, 0x17039: 0x40397c20, 0x1703a: 0x40397e20, 0x1703b: 0x403a3820,
-	0x1703c: 0x403a3a20, 0x1703d: 0x403a9c20, 0x1703e: 0x403a9e20, 0x1703f: 0x403aa020,
-	// Block 0x5c1, offset 0x17040
-	0x17040: 0xa0000000, 0x17041: 0x40398020, 0x17042: 0x40398220, 0x17043: 0x403a1a20,
-	0x17044: 0xcf2797a1, 0x17045: 0xcf2997a1, 0x17046: 0xcf2b97a1, 0x17047: 0x403a6820,
-	0x17048: 0xcf2f97c2, 0x17049: 0x403a8e20, 0x1704a: 0xcf340171, 0x1704b: 0xa000c302,
-	0x1704c: 0xa000c502, 0x1704d: 0xa000c402, 0x1704e: 0xa000bd02, 0x1704f: 0xa000bf02,
-	0x17050: 0xa000be02, 0x17051: 0xa000c702, 0x17052: 0xa220bc02, 0x17053: 0xa000c902,
-	0x17054: 0xa000c602, 0x17055: 0xadc0bf02, 0x17056: 0xa000c102, 0x17057: 0xa000c202,
-	0x17058: 0xa000c802, 0x17059: 0xae60c402, 0x1705a: 0xae60c502, 0x1705b: 0xae60c602,
-	0x1705c: 0xadc0c702, 0x1705d: 0xae60c802, 0x1705e: 0xae60c902, 0x1705f: 0xadc0c002,
-	0x17060: 0xe000015e, 0x17061: 0xe00001e6, 0x17062: 0xe0000301, 0x17063: 0xe00003db,
-	0x17064: 0xe00004b6, 0x17065: 0xe0000580, 0x17066: 0xe000064b, 0x17067: 0xe00006f3,
-	0x17068: 0xe000079f, 0x17069: 0xe0000844, 0x1706a: 0x4004ee20, 0x1706b: 0x40024c20,
-	0x1706c: 0x40024e20, 0x1706d: 0x4004de20, 0x1706e: 0x40393a20, 0x1706f: 0x403a1020,
-	0x17070: 0xa000c002, 0x17071: 0x40392420, 0x17072: 0x40392220, 0x17073: 0x40392a20,
-	0x17074: 0x00391c84, 0x17075: 0xf0000404, 0x17076: 0xe000ac3b, 0x17077: 0xf0000404,
-	0x17078: 0xf0000404, 0x17079: 0xcf1597a1, 0x1707a: 0x40395c20, 0x1707b: 0x40393e20,
-	0x1707c: 0x40395e20, 0x1707d: 0x40396020, 0x1707e: 0xcf1197a1, 0x1707f: 0x40396220,
-	// Block 0x5c2, offset 0x17080
-	0x17080: 0x40394220, 0x17081: 0x40397620, 0x17082: 0x40397820, 0x17083: 0x40396620,
-	0x17084: 0x40396820, 0x17085: 0x40397a20, 0x17086: 0xcf1997a1, 0x17087: 0x40396e20,
-	0x17088: 0xcf1d97a1, 0x17089: 0x40398e20, 0x1708a: 0x40399020, 0x1708b: 0x40399220,
-	0x1708c: 0x40399420, 0x1708d: 0x40399620, 0x1708e: 0x40399820, 0x1708f: 0x40399a20,
-	0x17090: 0x40399c20, 0x17091: 0xcf2197a1, 0x17092: 0x4039aa20, 0x17093: 0x4039ac20,
-	0x17094: 0x4039ae20, 0x17095: 0x4039b020, 0x17096: 0x4039b220, 0x17097: 0x4039b420,
-	0x17098: 0x40396e20, 0x17099: 0x4039b820, 0x1709a: 0x4039ca20, 0x1709b: 0x4039cc20,
-	0x1709c: 0x4039ce20, 0x1709d: 0x4039e020, 0x1709e: 0x4039e220, 0x1709f: 0x4039ea20,
-	0x170a0: 0x4039f220, 0x170a1: 0x4039fe20, 0x170a2: 0x403a0020, 0x170a3: 0x403a0220,
-	0x170a4: 0x403a0420, 0x170a5: 0x403a0820, 0x170a6: 0x403a0a20, 0x170a7: 0x403a1420,
-	0x170a8: 0x403a1620, 0x170a9: 0xcf2397a1, 0x170aa: 0x403a1e20, 0x170ab: 0x403a2020,
-	0x170ac: 0x403a2220, 0x170ad: 0x403a2620, 0x170ae: 0x403a2820, 0x170af: 0xcf2597a1,
-	0x170b0: 0x403a2c20, 0x170b1: 0x403a2e20, 0x170b2: 0x403a3020, 0x170b3: 0x403a3220,
-	0x170b4: 0x403a3420, 0x170b5: 0x403a4220, 0x170b6: 0x403a4420, 0x170b7: 0x403a4620,
-	0x170b8: 0x403a4820, 0x170b9: 0x403a6020, 0x170ba: 0xcf2d97a1, 0x170bb: 0x403a5a20,
-	0x170bc: 0x403a5c20, 0x170bd: 0x403a5e20, 0x170be: 0x4039a220, 0x170bf: 0x40396c20,
-	// Block 0x5c3, offset 0x170c0
-	0x170c0: 0xe000ac38, 0x170c1: 0xcf320171, 0x170c2: 0x4039a021, 0x170c3: 0x4039a420,
-	0x170c4: 0x403a7620, 0x170c5: 0x403a7820, 0x170c6: 0x403a7a20, 0x170c7: 0x403a7c20,
-	0x170c8: 0x403a7e20, 0x170c9: 0x403a8020, 0x170ca: 0x403a8220, 0x170cb: 0x403a8420,
-	0x170cc: 0xcf3697a1, 0x170cd: 0x403a9420, 0x170ce: 0x403a9620, 0x170cf: 0x403a8620,
-	0x170d0: 0x403a9820, 0x170d1: 0x403a9a20, 0x170d2: 0xcf380171, 0x170d3: 0x4039ac21,
-	0x170d4: 0x4002e820, 0x170d5: 0x403a7220, 0x170d6: 0xae600000, 0x170d7: 0xae600000,
-	0x170d8: 0xae600000, 0x170d9: 0xae600000, 0x170da: 0xae600000, 0x170db: 0xae600000,
-	0x170dc: 0xae600000, 0x170dd: 0xa0000000, 0x170de: 0x40071220, 0x170df: 0xae600000,
-	0x170e0: 0xae600000, 0x170e1: 0xae600000, 0x170e2: 0xae600000, 0x170e3: 0xadc00000,
-	0x170e4: 0xae600000, 0x170e5: 0x003a7484, 0x170e6: 0x003a9084, 0x170e7: 0xae600000,
-	0x170e8: 0xae600000, 0x170e9: 0x40071420, 0x170ea: 0xadc00000, 0x170eb: 0xae600000,
-	0x170ec: 0xae600000, 0x170ed: 0xadc00000, 0x170ee: 0x40399e20, 0x170ef: 0x4039ba20,
-	0x170f0: 0xe0000161, 0x170f1: 0xe00001e9, 0x170f2: 0xe0000304, 0x170f3: 0xe00003de,
-	0x170f4: 0xe00004b9, 0x170f5: 0xe0000583, 0x170f6: 0xe000064e, 0x170f7: 0xe00006f6,
-	0x170f8: 0xe00007a2, 0x170f9: 0xe0000847, 0x170fa: 0x4039d020, 0x170fb: 0x4039e420,
-	0x170fc: 0x4039f420, 0x170fd: 0xe0001553, 0x170fe: 0xe0001779, 0x170ff: 0x403a7020,
-	// Block 0x5c4, offset 0x17100
-	0x17100: 0xe000155f, 0x17101: 0xe0001565, 0x17102: 0xe000157a, 0x17103: 0xe00015b0,
-	0x17104: 0xe00015b6, 0x17105: 0xe000aa58, 0x17106: 0xe000aa5e, 0x17107: 0xe000aa64,
-	0x17108: 0xe000aa76, 0x17109: 0xf0001a1a, 0x1710a: 0xf0001a1a, 0x1710b: 0xe000aa7f,
-	0x1710c: 0xe000aa85, 0x1710d: 0xe000aa8b, 0x1710e: 0xe000aa9d, 0x1710f: 0xe00024a8,
-	0x17110: 0xe00031a6, 0x17111: 0xe000aaa3, 0x17112: 0xe000aab5, 0x17113: 0xe00024ae,
-	0x17114: 0xe00031af, 0x17115: 0xe000aabe, 0x17116: 0xe000aac4, 0x17117: 0xe000aaca,
-	0x17118: 0xe000aad0, 0x17119: 0xe000aad6, 0x1711a: 0xe000aad9, 0x1711b: 0xe000aadf,
-	0x1711c: 0xe000aaee, 0x1711d: 0xe000aaf7, 0x1711e: 0xe000ab00, 0x1711f: 0xe000ab0f,
-	0x17120: 0xe000ab4b, 0x17121: 0xe000ab5a, 0x17122: 0xe000ab60, 0x17123: 0xe000ab66,
-	0x17124: 0xe000ab6c, 0x17125: 0xe000ab78, 0x17126: 0xe000ab7e, 0x17127: 0xe000ab87,
-	0x17128: 0xe000ab90, 0x17129: 0xe000ab96, 0x1712a: 0xe000ab9c, 0x1712b: 0xe000aba2,
-	0x1712c: 0xe000aba8, 0x1712d: 0xe000abae, 0x1712e: 0xe000abb4, 0x1712f: 0xe000abba,
-	0x17130: 0xe000abc0, 0x17131: 0xe00024f0, 0x17132: 0xe00031fd, 0x17133: 0xe000abc6,
-	0x17134: 0xe000abcc, 0x17135: 0xe00024f6, 0x17136: 0xe0003203, 0x17137: 0xf0001a1a,
-	0x17138: 0xe000320f, 0x17139: 0xe0003215, 0x1713a: 0xe000321b, 0x1713b: 0xe0003227,
-	0x1713c: 0xe0003233, 0x1713d: 0xf0001a1a, 0x1713e: 0xf0001a1a, 0x1713f: 0xe000abd8,
-	// Block 0x5c5, offset 0x17140
-	0x17140: 0xe000abde, 0x17141: 0xe000abe4, 0x17142: 0xe000abf0, 0x17143: 0xe0002502,
-	0x17144: 0xe0003242, 0x17145: 0xe000abf9, 0x17146: 0xe000abff, 0x17147: 0xe000ac05,
-	0x17148: 0xe000ac0e, 0x17149: 0xe0002505, 0x1714a: 0xe0003245, 0x1714b: 0xe000ac14,
-	0x1714c: 0xe000ac1a, 0x1714d: 0xe000ac20, 0x1714e: 0xe000ac32, 0x1714f: 0xe000250b,
-	0x17150: 0xe0003251, 0x17151: 0xe000325a, 0x17152: 0xe0003260, 0x17153: 0xf0001a1a,
-	0x17154: 0xf0001a1a, 0x17155: 0xe000327b, 0x17156: 0xe0003281, 0x17157: 0xe0003287,
-	0x17158: 0xe0003299, 0x17159: 0xf0001a1a, 0x1715a: 0xf0001a1a, 0x1715b: 0xe000aae2,
-	0x1715c: 0xe000aae5, 0x1715d: 0xe0003272, 0x1715e: 0xe0000003, 0x1715f: 0xe0000006,
-	0x17160: 0xe0000009, 0x17161: 0xe000000c, 0x17162: 0xe000000f, 0x17163: 0xe0000012,
-	0x17164: 0xe000156b, 0x17165: 0xe000156e, 0x17166: 0xe0001577, 0x17167: 0xe000157d,
-	0x17168: 0xe00015aa, 0x17169: 0xe00015b3, 0x1716a: 0xe000aa67, 0x1716b: 0xe000aa6a,
-	0x1716c: 0xe000aa73, 0x1716d: 0xe000aa79, 0x1716e: 0xf0001919, 0x1716f: 0xf0001919,
-	0x17170: 0xe000aa8e, 0x17171: 0xe000aa91, 0x17172: 0xe000aa9a, 0x17173: 0xe000aaa0,
-	0x17174: 0xe00024a5, 0x17175: 0xe00031a3, 0x17176: 0xe000aaa6, 0x17177: 0xe000aaa9,
-	0x17178: 0xe000aab2, 0x17179: 0xe000aab8, 0x1717a: 0xe00024ab, 0x1717b: 0xe00031ac,
-	0x1717c: 0xe00024ed, 0x1717d: 0xe00031fa, 0x1717e: 0xe00024f3, 0x1717f: 0xe0003200,
-	// Block 0x5c6, offset 0x17180
-	0x17180: 0xf0001919, 0x17181: 0xe0003224, 0x17182: 0xe0003230, 0x17183: 0xf0001919,
-	0x17184: 0xf0001919, 0x17185: 0xe000abed, 0x17186: 0xe00024ff, 0x17187: 0xe000323f,
-	0x17188: 0xe000abf3, 0x17189: 0xe000ac0b, 0x1718a: 0xe000ac23, 0x1718b: 0xe000ac26,
-	0x1718c: 0xe000ac2f, 0x1718d: 0xe000ac35, 0x1718e: 0xe0002508, 0x1718f: 0xe000324e,
-	0x17190: 0xe000326f, 0x17191: 0xe000328a, 0x17192: 0xe000328d, 0x17193: 0xe0003296,
-	0x17194: 0xe000329c, 0x17195: 0xf0001919, 0x17196: 0xf0001919, 0x17197: 0xe000155c,
-	0x17198: 0xe0001562, 0x17199: 0xe0001568, 0x1719a: 0xe0001571, 0x1719b: 0xe0001580,
-	0x1719c: 0xe000aa55, 0x1719d: 0xe000aa5b, 0x1719e: 0xe000aa61, 0x1719f: 0xe000aa6d,
-	0x171a0: 0xf0001717, 0x171a1: 0xe000aa7c, 0x171a2: 0xe000aa82, 0x171a3: 0xe000aa88,
-	0x171a4: 0xe000aa94, 0x171a5: 0xe000319d, 0x171a6: 0xe000aaac, 0x171a7: 0xe000aabb,
-	0x171a8: 0xe000aac1, 0x171a9: 0xe000aac7, 0x171aa: 0xe000aacd, 0x171ab: 0xe000aad3,
-	0x171ac: 0xe000aadc, 0x171ad: 0xe000aae8, 0x171ae: 0xe000aaf1, 0x171af: 0xe000aafa,
-	0x171b0: 0xe000ab09, 0x171b1: 0xe000ab48, 0x171b2: 0xe000ab4e, 0x171b3: 0xe000ab57,
-	0x171b4: 0xe000ab5d, 0x171b5: 0xe000ab63, 0x171b6: 0xe000ab69, 0x171b7: 0xe000ab75,
-	0x171b8: 0xe000ab7b, 0x171b9: 0xe000ab8a, 0x171ba: 0xe000ab93, 0x171bb: 0xe000ab99,
-	0x171bc: 0xe000ab9f, 0x171bd: 0xe000aba5, 0x171be: 0xe000abab, 0x171bf: 0xe000abb1,
-	// Block 0x5c7, offset 0x171c0
-	0x171c0: 0xe000abb7, 0x171c1: 0xe000abbd, 0x171c2: 0xe000abc3, 0x171c3: 0xe000abc9,
-	0x171c4: 0xe000320c, 0x171c5: 0xe0003212, 0x171c6: 0xe0003218, 0x171c7: 0xe000321e,
-	0x171c8: 0xe000322a, 0x171c9: 0xe000abd5, 0x171ca: 0xe000abdb, 0x171cb: 0xe000abe1,
-	0x171cc: 0xe000abe7, 0x171cd: 0xe000323c, 0x171ce: 0xe000abf6, 0x171cf: 0xe000abfc,
-	0x171d0: 0xe000ac02, 0x171d1: 0xe000ac08, 0x171d2: 0xe000ac11, 0x171d3: 0xe000ac17,
-	0x171d4: 0xe000ac1d, 0x171d5: 0xe000ac29, 0x171d6: 0xe0003248, 0x171d7: 0xe0003257,
-	0x171d8: 0xe000325d, 0x171d9: 0xe0003254, 0x171da: 0xe0003278, 0x171db: 0xe000327e,
-	0x171dc: 0xe0003284, 0x171dd: 0xe0003290, 0x171de: 0xf0001717, 0x171df: 0xe0001574,
-	0x171e0: 0xe0001583, 0x171e1: 0xe000aa70, 0x171e2: 0xf0001818, 0x171e3: 0xe000aa97,
-	0x171e4: 0xe00031a0, 0x171e5: 0xe000aaaf, 0x171e6: 0xe00031a9, 0x171e7: 0xe000ab0c,
-	0x171e8: 0xe00031c7, 0x171e9: 0xe000ab3f, 0x171ea: 0xe00031d3, 0x171eb: 0xe0003221,
-	0x171ec: 0xe000322d, 0x171ed: 0xe000abea, 0x171ee: 0xe000ac2c, 0x171ef: 0xe000324b,
-	0x171f0: 0xe0003293, 0x171f1: 0xf0001818, 0x171f2: 0xe000aa52, 0x171f3: 0xe0003185,
-	0x171f4: 0xe0003188, 0x171f5: 0xe00024de, 0x171f6: 0xe00031eb, 0x171f7: 0xe00024e4,
-	0x171f8: 0xe00031f1, 0x171f9: 0xe00024ea, 0x171fa: 0xe00031f7, 0x171fb: 0xe00024c6,
-	0x171fc: 0xe00031cd, 0x171fd: 0xe00024cc, 0x171fe: 0xe00031d9, 0x171ff: 0xe00024ba,
-	// Block 0x5c8, offset 0x17200
-	0x17200: 0xe00031bb, 0x17201: 0xe00024b4, 0x17202: 0xe00031b5, 0x17203: 0xe00024c0,
-	0x17204: 0xe00031c1, 0x17205: 0xe00024d2, 0x17206: 0xe00031df, 0x17207: 0xe00024d8,
-	0x17208: 0xe00031e5, 0x17209: 0xe000ab1b, 0x1720a: 0xe000ab27, 0x1720b: 0xe000ab33,
-	0x1720c: 0xe000ab45, 0x1720d: 0xe000ab39, 0x1720e: 0xe000ab06, 0x1720f: 0xe000ab54,
-	0x17210: 0xe000ab72, 0x17211: 0xe00024db, 0x17212: 0xe00031e8, 0x17213: 0xe00024e1,
-	0x17214: 0xe00031ee, 0x17215: 0xe00024e7, 0x17216: 0xe00031f4, 0x17217: 0xe00024c3,
-	0x17218: 0xe00031ca, 0x17219: 0xe00024c9, 0x1721a: 0xe00031d6, 0x1721b: 0xe00024b7,
-	0x1721c: 0xe00031b8, 0x1721d: 0xe00024b1, 0x1721e: 0xe00031b2, 0x1721f: 0xe00024bd,
-	0x17220: 0xe00031be, 0x17221: 0xe00024cf, 0x17222: 0xe00031dc, 0x17223: 0xe00024d5,
-	0x17224: 0xe00031e2, 0x17225: 0xe000ab18, 0x17226: 0xe000ab24, 0x17227: 0xe000ab30,
-	0x17228: 0xe000ab42, 0x17229: 0xe000ab36, 0x1722a: 0xe000ab03, 0x1722b: 0xe000ab51,
-	0x1722c: 0xe000ab6f, 0x1722d: 0xe000ab12, 0x1722e: 0xe000ab1e, 0x1722f: 0xe000ab2a,
-	0x17230: 0xe000ab3c, 0x17231: 0xe00031c4, 0x17232: 0xe00031d0, 0x17233: 0xe000ab81,
-	0x17234: 0xe000aaeb, 0x17235: 0xe000aaf4, 0x17236: 0xe000aafd, 0x17237: 0xe000ab15,
-	0x17238: 0xe000ab21, 0x17239: 0xe000ab2d, 0x1723a: 0xe000ab84, 0x1723b: 0xe000ab8d,
-	0x1723c: 0xe000318b, 0x1723d: 0xe000318e, 0x1723e: 0x4004c020, 0x1723f: 0x4004c220,
-	// Block 0x5c9, offset 0x17240
-	0x17240: 0x0039de98, 0x17241: 0x0039e69a, 0x17242: 0x0039e699, 0x17243: 0x0039e697,
-	0x17244: 0x0039e698, 0x17245: 0x0039e89a, 0x17246: 0x0039e899, 0x17247: 0x0039e897,
-	0x17248: 0x0039e898, 0x17249: 0x0039ee9a, 0x1724a: 0x0039ee99, 0x1724b: 0x0039ee97,
-	0x1724c: 0x0039ee98, 0x1724d: 0x0039f09a, 0x1724e: 0x0039f099, 0x1724f: 0x0039f097,
-	0x17250: 0x0039f098, 0x17251: 0x0039fc9a, 0x17252: 0x0039fc99, 0x17253: 0x0039fc97,
-	0x17254: 0x0039fc98, 0x17255: 0x003a129a, 0x17256: 0x003a1299, 0x17257: 0x003a1297,
-	0x17258: 0x003a1298, 0x17259: 0x003a1a9a, 0x1725a: 0x003a1a99, 0x1725b: 0x003a1a97,
-	0x1725c: 0x003a1a98, 0x1725d: 0x003a409a, 0x1725e: 0x003a4099, 0x1725f: 0x003a4097,
-	0x17260: 0x003a4098, 0x17261: 0x003a4e9a, 0x17262: 0x003a4e99, 0x17263: 0x003a4e97,
-	0x17264: 0x003a4e98, 0x17265: 0x003a569a, 0x17266: 0x003a5699, 0x17267: 0x003a5697,
-	0x17268: 0x003a5698, 0x17269: 0x003a689a, 0x1726a: 0x003a6899, 0x1726b: 0x003a6897,
-	0x1726c: 0x003a6898, 0x1726d: 0x003a749a, 0x1726e: 0x003a7499, 0x1726f: 0x003a8e9a,
-	0x17270: 0x003a8e99, 0x17271: 0x003a909a, 0x17272: 0x003a9099, 0x17273: 0x003a9097,
-	0x17274: 0x003a9098, 0x17275: 0xe0001732, 0x17276: 0xe000172f, 0x17277: 0xe0001738,
-	0x17278: 0xe0001735, 0x17279: 0xe000173e, 0x1727a: 0xe000173b, 0x1727b: 0xe000abd2,
-	0x1727c: 0xe000abcf, 0x1727f: 0xa0000000,
-	// Block 0x5ca, offset 0x17280
-	0x17280: 0xa0000000, 0x17281: 0xa0000000, 0x17282: 0xa0000000, 0x17283: 0xa0000000,
-	0x17284: 0xa0000000, 0x17285: 0xa0000000, 0x17286: 0xa0000000, 0x17287: 0xa0000000,
-	0x17288: 0xa0000000, 0x17289: 0x40020020, 0x1728a: 0x40020220, 0x1728b: 0x40020420,
-	0x1728c: 0x40020620, 0x1728d: 0x40020820, 0x1728e: 0xa0000000, 0x1728f: 0xa0000000,
-	0x17290: 0xa0000000, 0x17291: 0xa0000000, 0x17292: 0xa0000000, 0x17293: 0xa0000000,
-	0x17294: 0xa0000000, 0x17295: 0xa0000000, 0x17296: 0xa0000000, 0x17297: 0xa0000000,
-	0x17298: 0xa0000000, 0x17299: 0xa0000000, 0x1729a: 0xa0000000, 0x1729b: 0xa0000000,
-	0x1729c: 0xa0000000, 0x1729d: 0xa0000000, 0x1729e: 0xa0000000, 0x1729f: 0xa0000000,
-	0x172a0: 0x40021220, 0x172a1: 0x4002ba20, 0x172a2: 0x4003e020, 0x172a3: 0x4004ea20,
-	0x172a4: 0x4027de20, 0x172a5: 0x4004ec20, 0x172a6: 0x4004e620, 0x172a7: 0x4003d220,
-	0x172a8: 0x4003f420, 0x172a9: 0x4003f620, 0x172aa: 0x4004d820, 0x172ab: 0x40093820,
-	0x172ac: 0x40024020, 0x172ad: 0x40021a20, 0x172ae: 0x4002e420, 0x172af: 0x4004e220,
-	0x172b0: 0x4029cc20, 0x172b1: 0x4029ce20, 0x172b2: 0x4029d020, 0x172b3: 0x4029d220,
-	0x172b4: 0x4029d420, 0x172b5: 0x4029d620, 0x172b6: 0x4029d820, 0x172b7: 0x4029da20,
-	0x172b8: 0x4029dc20, 0x172b9: 0x4029de20, 0x172ba: 0x40026c20, 0x172bb: 0x40026220,
-	0x172bc: 0x40094020, 0x172bd: 0x40094220, 0x172be: 0x40094420, 0x172bf: 0x4002c420,
-	// Block 0x5cb, offset 0x172c0
-	0x172c0: 0x4004d620, 0x172c1: 0xce4a94d1, 0x172c2: 0x002c0a88, 0x172c3: 0x002c3a88,
-	0x172c4: 0x002c6288, 0x172c5: 0xce0a2741, 0x172c6: 0x002d0888, 0x172c7: 0x002d2288,
-	0x172c8: 0x002d6888, 0x172c9: 0x002d9a88, 0x172ca: 0x002dcc88, 0x172cb: 0x002dfe88,
-	0x172cc: 0xc0030002, 0x172cd: 0x002e8288, 0x172ce: 0x002e9e88, 0x172cf: 0xcf3d9801,
-	0x172d0: 0x002f2c88, 0x172d1: 0x002f5688, 0x172d2: 0x002f7a88, 0x172d3: 0x002fe688,
-	0x172d4: 0x00302c88, 0x172d5: 0xc3479831, 0x172d6: 0x0030be88, 0x172d7: 0x0030e288,
-	0x172d8: 0x0030f688, 0x172d9: 0x00310088, 0x172da: 0x00312a88, 0x172db: 0x4003f820,
-	0x172dc: 0x4004e420, 0x172dd: 0x4003fa20, 0x172de: 0x40062420, 0x172df: 0x40021620,
-	0x172e0: 0x40061e20, 0x172e1: 0xce4794d1, 0x172e2: 0x402c0a20, 0x172e3: 0x402c3a20,
-	0x172e4: 0x402c6220, 0x172e5: 0xce082741, 0x172e6: 0x402d0820, 0x172e7: 0x402d2220,
-	0x172e8: 0x402d6820, 0x172e9: 0x402d9a20, 0x172ea: 0x402dcc20, 0x172eb: 0x402dfe20,
-	0x172ec: 0xc0000002, 0x172ed: 0x402e8220, 0x172ee: 0x402e9e20, 0x172ef: 0xcf3a9801,
-	0x172f0: 0x402f2c20, 0x172f1: 0x402f5620, 0x172f2: 0x402f7a20, 0x172f3: 0x402fe620,
-	0x172f4: 0x40302c20, 0x172f5: 0xc3459831, 0x172f6: 0x4030be20, 0x172f7: 0x4030e220,
-	0x172f8: 0x4030f620, 0x172f9: 0x40310020, 0x172fa: 0x40312a20, 0x172fb: 0x4003fc20,
-	0x172fc: 0x40094820, 0x172fd: 0x4003fe20, 0x172fe: 0x40094c20, 0x172ff: 0xa0000000,
-	// Block 0x5cc, offset 0x17300
-	0x17300: 0xe00008f5, 0x17301: 0xe000ac59, 0x17302: 0x002be283, 0x17303: 0xe000ac53,
-	0x17304: 0xe000095b, 0x17305: 0xe000094d, 0x17306: 0xe00009dd, 0x17307: 0xe0000a53,
-	0x17308: 0xe0000ae8, 0x17309: 0xe000accd, 0x1730a: 0x002c9a83, 0x1730b: 0xe0000b20,
-	0x1730c: 0xe0000c2b, 0x1730d: 0xe000ad11, 0x1730e: 0xe0000c37, 0x1730f: 0xe0000c43,
-	0x17310: 0xe0000ab3, 0x17311: 0xe000ad51, 0x17312: 0xe0000d9a, 0x17313: 0xe000ad87,
-	0x17314: 0x002ee483, 0x17315: 0xe000ad69, 0x17316: 0xe0000dd2, 0x17317: 0x40093e20,
-	0x17318: 0xe0000e12, 0x17319: 0xe0000fe1, 0x1731a: 0xe000ae29, 0x1731b: 0xe0000fed,
-	0x1731c: 0xe0000fff, 0x1731d: 0xe000ae79, 0x1731e: 0x00318888, 0x1731f: 0xe0000f7b,
-	0x17320: 0xe00008f2, 0x17321: 0xe000ac56, 0x17322: 0x402be220, 0x17323: 0xe000ac50,
-	0x17324: 0xe0000958, 0x17325: 0xe000094a, 0x17326: 0xe00009d5, 0x17327: 0xe0000a4d,
-	0x17328: 0xe0000ae5, 0x17329: 0xe000acca, 0x1732a: 0x402c9a20, 0x1732b: 0xe0000b1d,
-	0x1732c: 0xe0000c28, 0x1732d: 0xe000ad0e, 0x1732e: 0xe0000c34, 0x1732f: 0xe0000c40,
-	0x17330: 0xe0000aad, 0x17331: 0xe000ad4e, 0x17332: 0xe0000d97, 0x17333: 0xe000ad84,
-	0x17334: 0x402ee420, 0x17335: 0xe000ad66, 0x17336: 0xe0000dcf, 0x17337: 0x40093c20,
-	0x17338: 0xe0000e0f, 0x17339: 0xe0000fde, 0x1733a: 0xe000ae26, 0x1733b: 0xe0000fea,
-	0x1733c: 0xe0000ffc, 0x1733d: 0xe000ae76, 0x1733e: 0x40318820, 0x1733f: 0xe0001114,
-	// Block 0x5cd, offset 0x17340
-	0x17340: 0xe0000983, 0x17341: 0xe0000980, 0x17342: 0x002be083, 0x17343: 0x402be020,
-	0x17344: 0xe000097d, 0x17345: 0xe000097a, 0x17346: 0xe000acad, 0x17347: 0xe000acaa,
-	0x17348: 0xe0000a3e, 0x17349: 0xe0000a3b, 0x1734a: 0xe0000a4a, 0x1734b: 0xe0000a47,
-	0x1734c: 0xe0000a44, 0x1734d: 0xe0000a41, 0x1734e: 0xe0000a86, 0x1734f: 0xe0000a83,
-	0x17350: 0x002c6483, 0x17351: 0x402c6420, 0x17352: 0xe0000b46, 0x17353: 0xe0000b43,
-	0x17354: 0xe0000aee, 0x17355: 0xe0000aeb, 0x17356: 0xe0000b2c, 0x17357: 0xe0000b29,
-	0x17358: 0xe0000b40, 0x17359: 0xe0000b3d, 0x1735a: 0xe0000b1a, 0x1735b: 0xe0000b17,
-	0x1735c: 0xe0000bb8, 0x1735d: 0xe0000bb5, 0x1735e: 0xe0000bb2, 0x1735f: 0xe0000baf,
-	0x17360: 0xe0000bc4, 0x17361: 0xe0000bc1, 0x17362: 0xe0000bca, 0x17363: 0xe0000bc7,
-	0x17364: 0xe0000bee, 0x17365: 0xe0000beb, 0x17366: 0xe0000c1b, 0x17367: 0xe0000c18,
-	0x17368: 0xe000ad0b, 0x17369: 0xe000ad08, 0x1736a: 0xe0000c60, 0x1736b: 0xe0000c5d,
-	0x1736c: 0xe0000c31, 0x1736d: 0xe0000c2e, 0x1736e: 0xe0000c5a, 0x1736f: 0xe0000c57,
-	0x17370: 0xe0000c54, 0x17371: 0x402da220, 0x17372: 0xf0000a0a, 0x17373: 0xf0000404,
-	0x17374: 0xe0000c8a, 0x17375: 0xe0000c87, 0x17376: 0xe0000c9f, 0x17377: 0xe0000c9c,
-	0x17378: 0x402f7220, 0x17379: 0xe000ad31, 0x1737a: 0xe000ad2e, 0x1737b: 0xe0000cd8,
-	0x1737c: 0xe0000cd5, 0x1737d: 0xe0000cd2, 0x1737e: 0xe0000ccf, 0x1737f: 0xe0000d04,
-	// Block 0x5ce, offset 0x17380
-	0x17380: 0xe0000cfe, 0x17381: 0xe0000cf8, 0x17382: 0xe0000cf5, 0x17383: 0xe000ad57,
-	0x17384: 0xe000ad54, 0x17385: 0xe0000d6f, 0x17386: 0xe0000d6c, 0x17387: 0xe0000d5d,
-	0x17388: 0xe0000d5a, 0x17389: 0xf0000404, 0x1738a: 0x002eda88, 0x1738b: 0x402eda20,
-	0x1738c: 0xe0000e2e, 0x1738d: 0xe0000e2b, 0x1738e: 0xe0000da0, 0x1738f: 0xe0000d9d,
-	0x17390: 0xe0000de0, 0x17391: 0xe0000ddd, 0x17392: 0xe0000e93, 0x17393: 0xe0000e8f,
-	0x17394: 0xe000addf, 0x17395: 0xe000addc, 0x17396: 0xe0000edc, 0x17397: 0xe0000ed9,
-	0x17398: 0xe0000ed0, 0x17399: 0xe0000ecd, 0x1739a: 0xe000adf3, 0x1739b: 0xe000adf0,
-	0x1739c: 0xe0000f2d, 0x1739d: 0xe0000f2a, 0x1739e: 0xe0000f47, 0x1739f: 0xe0000f44,
-	0x173a0: 0xe0000f33, 0x173a1: 0xe0000f30, 0x173a2: 0xe0000f99, 0x173a3: 0xe0000f96,
-	0x173a4: 0xe0000f8a, 0x173a5: 0xe0000f87, 0x173a6: 0x00303688, 0x173a7: 0x40303620,
-	0x173a8: 0xe000ae1b, 0x173a9: 0xe000ae18, 0x173aa: 0xe000103f, 0x173ab: 0xe000103c,
-	0x173ac: 0xe0000fe7, 0x173ad: 0xe0000fe4, 0x173ae: 0xe0000ff9, 0x173af: 0xe0000ff6,
-	0x173b0: 0xe0001025, 0x173b1: 0xe0001022, 0x173b2: 0xe0001039, 0x173b3: 0xe0001036,
-	0x173b4: 0xe00010d8, 0x173b5: 0xe00010d5, 0x173b6: 0xe000110e, 0x173b7: 0xe000110b,
-	0x173b8: 0xe0001117, 0x173b9: 0xe000ae85, 0x173ba: 0xe000ae82, 0x173bb: 0xe000114d,
-	0x173bc: 0xe000114a, 0x173bd: 0xe0001147, 0x173be: 0xe0001144, 0x173bf: 0xe0000f64,
-	// Block 0x5cf, offset 0x173c0
-	0x173c0: 0x402c1a20, 0x173c1: 0x002c2a88, 0x173c2: 0x002c3288, 0x173c3: 0x402c3220,
-	0x173c4: 0x0031c488, 0x173c5: 0x4031c420, 0x173c6: 0x002efa88, 0x173c7: 0x002c4e88,
-	0x173c8: 0x402c4e20, 0x173c9: 0x002c7288, 0x173ca: 0x002c7a88, 0x173cb: 0x002c8488,
-	0x173cc: 0x402c8420, 0x173cd: 0xe000115c, 0x173ce: 0x002cae88, 0x173cf: 0x002cb888,
-	0x173d0: 0x002cc288, 0x173d1: 0x002d1688, 0x173d2: 0x402d1620, 0x173d3: 0x002d4488,
-	0x173d4: 0x002d5888, 0x173d5: 0x402d7820, 0x173d6: 0x002dc288, 0x173d7: 0x002db688,
-	0x173d8: 0x002e0a88, 0x173d9: 0x402e0a20, 0x173da: 0x402e3820, 0x173db: 0x402e7220,
-	0x173dc: 0x0030a088, 0x173dd: 0x002eb488, 0x173de: 0x402ebc20, 0x173df: 0x002f1088,
-	0x173e0: 0x002ee683, 0x173e1: 0x402ee620, 0x173e2: 0x002d6088, 0x173e3: 0x402d6020,
-	0x173e4: 0x002f3e88, 0x173e5: 0x402f3e20, 0x173e6: 0x002f8288, 0x173e7: 0x0031b488,
-	0x173e8: 0x4031b420, 0x173e9: 0x00300888, 0x173ea: 0x40301220, 0x173eb: 0x40304220,
-	0x173ec: 0x00304a88, 0x173ed: 0x40304a20, 0x173ee: 0x00305288, 0x173ef: 0x00306e83,
-	0x173f0: 0x40306e20, 0x173f1: 0x0030b488, 0x173f2: 0x0030cc88, 0x173f3: 0x00311888,
-	0x173f4: 0x40311820, 0x173f5: 0x00313488, 0x173f6: 0x40313420, 0x173f7: 0x00316488,
-	0x173f8: 0x00316e88, 0x173f9: 0x40316e20, 0x173fa: 0x40317820, 0x173fb: 0x4031a620,
-	0x173fc: 0x0031bc88, 0x173fd: 0x4031bc20, 0x173fe: 0xe0000fc9, 0x173ff: 0x40319420,
-	// Block 0x5d0, offset 0x17400
-	0x17400: 0x40321220, 0x17401: 0x40321a20, 0x17402: 0x40322220, 0x17403: 0x40322a20,
-	0x17404: 0xe0000ad5, 0x17405: 0xe0000ad1, 0x17406: 0xe0000acd, 0x17407: 0xf0000a0a,
-	0x17408: 0xf000040a, 0x17409: 0xf0000404, 0x1740a: 0xf0000a0a, 0x1740b: 0xf000040a,
-	0x1740c: 0xf0000404, 0x1740d: 0xe0000947, 0x1740e: 0xe0000944, 0x1740f: 0xe0000c3d,
-	0x17410: 0xe0000c3a, 0x17411: 0xe0000dcc, 0x17412: 0xe0000dc9, 0x17413: 0xe0000ff3,
-	0x17414: 0xe0000ff0, 0x17415: 0xe000101e, 0x17416: 0xe000101a, 0x17417: 0xe000ae36,
-	0x17418: 0xe000ae32, 0x17419: 0xe0001016, 0x1741a: 0xe0001012, 0x1741b: 0xe000100e,
-	0x1741c: 0xe000100a, 0x1741d: 0x402cae20, 0x1741e: 0xe0000962, 0x1741f: 0xe000095e,
-	0x17420: 0xe0000976, 0x17421: 0xe0000972, 0x17422: 0xe00009f4, 0x17423: 0xe00009ef,
-	0x17424: 0x002d3a88, 0x17425: 0x402d3a20, 0x17426: 0xe0000bbe, 0x17427: 0xe0000bbb,
-	0x17428: 0xe0000c99, 0x17429: 0xe0000c96, 0x1742a: 0xe0000e20, 0x1742b: 0xe0000e1d,
-	0x1742c: 0xe0000e27, 0x1742d: 0xe0000e23, 0x1742e: 0xe0001162, 0x1742f: 0xe000115f,
-	0x17430: 0xe0000c8d, 0x17431: 0xf0000a0a, 0x17432: 0xf000040a, 0x17433: 0xf0000404,
-	0x17434: 0xe000acf9, 0x17435: 0xe000acf6, 0x17436: 0x002d7888, 0x17437: 0x00319488,
-	0x17438: 0xe0000d57, 0x17439: 0xe0000d54, 0x1743a: 0xe000ac66, 0x1743b: 0xe000ac62,
-	0x1743c: 0xe000ac6f, 0x1743d: 0xe000ac6a, 0x1743e: 0xe000ad94, 0x1743f: 0xe000ad90,
-	// Block 0x5d1, offset 0x17440
-	0x17440: 0xe000098f, 0x17441: 0xe000098c, 0x17442: 0xe0000995, 0x17443: 0xe0000992,
-	0x17444: 0xe0000b62, 0x17445: 0xe0000b5f, 0x17446: 0xe0000b68, 0x17447: 0xe0000b65,
-	0x17448: 0xe0000c6c, 0x17449: 0xe0000c69, 0x1744a: 0xe0000c72, 0x1744b: 0xe0000c6f,
-	0x1744c: 0xe0000e4a, 0x1744d: 0xe0000e47, 0x1744e: 0xe0000e50, 0x1744f: 0xe0000e4d,
-	0x17450: 0xe0000ee8, 0x17451: 0xe0000ee5, 0x17452: 0xe0000eee, 0x17453: 0xe0000eeb,
-	0x17454: 0xe0001053, 0x17455: 0xe0001050, 0x17456: 0xe0001059, 0x17457: 0xe0001056,
-	0x17458: 0xe0000f61, 0x17459: 0xe0000f5e, 0x1745a: 0xe0000fa5, 0x1745b: 0xe0000fa2,
-	0x1745c: 0x00312288, 0x1745d: 0x40312220, 0x1745e: 0xe0000bf4, 0x1745f: 0xe0000bf1,
-	0x17460: 0x002ebc88, 0x17461: 0x402c8c20, 0x17462: 0x002f2288, 0x17463: 0x402f2220,
-	0x17464: 0x00314088, 0x17465: 0x40314020, 0x17466: 0xe000096f, 0x17467: 0xe000096c,
-	0x17468: 0xe0000b32, 0x17469: 0xe0000b2f, 0x1746a: 0xe0000dd9, 0x1746b: 0xe0000dd5,
-	0x1746c: 0xe000ad80, 0x1746d: 0xe000ad7c, 0x1746e: 0xe0000e04, 0x1746f: 0xe0000e01,
-	0x17470: 0xe0000e0b, 0x17471: 0xe0000e07, 0x17472: 0xe0001129, 0x17473: 0xe0001126,
-	0x17474: 0x402e5e20, 0x17475: 0x402ed020, 0x17476: 0x40305a20, 0x17477: 0x402dd420,
-	0x17478: 0xe0000abf, 0x17479: 0xe0000ec4, 0x1747a: 0x002be888, 0x1747b: 0x002c4488,
-	0x1747c: 0x402c4420, 0x1747d: 0x002e3888, 0x1747e: 0x00303e88, 0x1747f: 0x402ffc20,
-	// Block 0x5d2, offset 0x17480
-	0x17480: 0xae603502, 0x17481: 0xae603802, 0x17482: 0xae603c02, 0x17483: 0xae603702,
-	0x17484: 0xae605b02, 0x17485: 0xae606302, 0x17486: 0xae603702, 0x17487: 0xae605202,
-	0x17488: 0xae604702, 0x17489: 0xae603602, 0x1748a: 0xae604302, 0x1748b: 0xae604d02,
-	0x1748c: 0xae604102, 0x1748d: 0xae605f02, 0x1748e: 0xae605f02, 0x1748f: 0xae606502,
-	0x17490: 0xae606602, 0x17491: 0xae606702, 0x17492: 0xae605f02, 0x17493: 0xae602202,
-	0x17494: 0xae602a02, 0x17495: 0xae805f02, 0x17496: 0xadc06002, 0x17497: 0xadc06002,
-	0x17498: 0xadc06002, 0x17499: 0xadc06002, 0x1749a: 0xae805f02, 0x1749b: 0xad806802,
-	0x1749c: 0xadc06002, 0x1749d: 0xadc06002, 0x1749e: 0xadc06002, 0x1749f: 0xadc06002,
-	0x174a0: 0xadc06002, 0x174a1: 0xaca06e02, 0x174a2: 0xaca06f02, 0x174a3: 0xae603902,
-	0x174a4: 0xadc07502, 0x174a5: 0xadc07602, 0x174a6: 0xadc07702, 0x174a7: 0xaca05602,
-	0x174a8: 0xaca05902, 0x174a9: 0xadc06002, 0x174aa: 0xadc06002, 0x174ab: 0xadc06002,
-	0x174ac: 0xadc06002, 0x174ad: 0xadc07802, 0x174ae: 0xadc07902, 0x174af: 0xadc06002,
-	0x174b0: 0xadc07a02, 0x174b1: 0xadc07b02, 0x174b2: 0xadc02102, 0x174b3: 0xadc06002,
-	0x174b4: 0xa0107c02, 0x174b5: 0xa0107d02, 0x174b6: 0xa0106102, 0x174b7: 0xa0106102,
-	0x174b8: 0xa0105402, 0x174b9: 0xadc07e02, 0x174ba: 0xadc06002, 0x174bb: 0xadc06002,
-	0x174bc: 0xadc06002, 0x174bd: 0xae605f02, 0x174be: 0xae605f02, 0x174bf: 0xae605f02,
-	// Block 0x5d3, offset 0x174c0
-	0x174c0: 0xae603502, 0x174c1: 0xae603802, 0x174c2: 0xae604502, 0x174c3: 0xae602202,
-	0x174c4: 0xe000ac3e, 0x174c5: 0xaf007f02, 0x174c6: 0xae605f02, 0x174c7: 0xadc06002,
-	0x174c8: 0xadc06002, 0x174c9: 0xadc06002, 0x174ca: 0xae605f02, 0x174cb: 0xae605f02,
-	0x174cc: 0xae605f02, 0x174cd: 0xadc06002, 0x174ce: 0xadc06002, 0x174cf: 0xa0000000,
-	0x174d0: 0xae605f02, 0x174d1: 0xae605f02, 0x174d2: 0xae605f02, 0x174d3: 0xadc06002,
-	0x174d4: 0xadc06002, 0x174d5: 0xadc06002, 0x174d6: 0xadc06002, 0x174d7: 0xae605f02,
-	0x174d8: 0xae808002, 0x174d9: 0xadc06002, 0x174da: 0xadc06002, 0x174db: 0xae605f02,
-	0x174dc: 0xae906002, 0x174dd: 0xaea05f02, 0x174de: 0xaea05f02, 0x174df: 0xae906002,
-	0x174e0: 0xaea08102, 0x174e1: 0xaea08202, 0x174e2: 0xae906002, 0x174e3: 0x84e615ef,
-	0x174e4: 0x84e6164c, 0x174e5: 0x84e616cd, 0x174e6: 0x84e61771, 0x174e7: 0x84e61836,
-	0x174e8: 0x84e6161d, 0x174e9: 0x84e61631, 0x174ea: 0x84e616b4, 0x174eb: 0x84e61741,
-	0x174ec: 0x84e617bd, 0x174ed: 0x84e61816, 0x174ee: 0x84e6185f, 0x174ef: 0x84e6187b,
-	0x174f0: 0x00326688, 0x174f1: 0x40326620, 0x174f2: 0x0032a688, 0x174f3: 0x4032a620,
-	0x174f4: 0x40064020, 0x174f5: 0x40064220, 0x174f6: 0x00326088, 0x174f7: 0x40326020,
-	0x174fa: 0x00326c84, 0x174fb: 0x40329220,
-	0x174fc: 0x40329020, 0x174fd: 0x40329420, 0x174fe: 0x40026220,
-	// Block 0x5d4, offset 0x17500
-	0x17504: 0x40062020, 0x17505: 0xe000ac41, 0x17506: 0xe000aeb5, 0x17507: 0x40030620,
-	0x17508: 0xe000aecf, 0x17509: 0xe000aef9, 0x1750a: 0xe000af13,
-	0x1750c: 0xe000af2d, 0x1750e: 0xe000af3f, 0x1750f: 0xe000af6d,
-	0x17510: 0xe000af16, 0x17511: 0x00325288, 0x17512: 0x00325488, 0x17513: 0x00325688,
-	0x17514: 0x00325a88, 0x17515: 0x00325c88, 0x17516: 0x00326488, 0x17517: 0x00326888,
-	0x17518: 0x00326a88, 0x17519: 0x00326c88, 0x1751a: 0x00327088, 0x1751b: 0x00327288,
-	0x1751c: 0x00327688, 0x1751d: 0x00327888, 0x1751e: 0x00327a88, 0x1751f: 0x00327c88,
-	0x17520: 0x00327e88, 0x17521: 0x00328888, 0x17523: 0x00328e88,
-	0x17524: 0x00329688, 0x17525: 0x00329888, 0x17526: 0x00329a88, 0x17527: 0x00329c88,
-	0x17528: 0x00329e88, 0x17529: 0x0032a288, 0x1752a: 0xe000134f, 0x1752b: 0xe00013f2,
-	0x1752c: 0xe000aeb2, 0x1752d: 0xe000aecc, 0x1752e: 0xe000aef6, 0x1752f: 0xe000af10,
-	0x17530: 0xe000af42, 0x17531: 0x40325220, 0x17532: 0x40325420, 0x17533: 0x40325620,
-	0x17534: 0x40325a20, 0x17535: 0x40325c20, 0x17536: 0x40326420, 0x17537: 0x40326820,
-	0x17538: 0x40326a20, 0x17539: 0x40326c20, 0x1753a: 0x40327020, 0x1753b: 0x40327220,
-	0x1753c: 0x40327620, 0x1753d: 0x40327820, 0x1753e: 0x40327a20, 0x1753f: 0x40327c20,
-	// Block 0x5d5, offset 0x17540
-	0x17540: 0x40327e20, 0x17541: 0x40328820, 0x17542: 0x00328e99, 0x17543: 0x40328e20,
-	0x17544: 0x40329620, 0x17545: 0x40329820, 0x17546: 0x40329a20, 0x17547: 0x40329c20,
-	0x17548: 0x40329e20, 0x17549: 0x4032a220, 0x1754a: 0xe000134c, 0x1754b: 0xe00013ef,
-	0x1754c: 0xe000af2a, 0x1754d: 0xe000af3c, 0x1754e: 0xe000af6a, 0x1754f: 0xe0001368,
-	0x17550: 0x00325484, 0x17551: 0x00326a84, 0x17552: 0x0032988a, 0x17553: 0xf000020a,
-	0x17554: 0xf000020a, 0x17555: 0x00329a84, 0x17556: 0x00327e84, 0x17557: 0xe0001364,
-	0x17558: 0x00328688, 0x17559: 0x40328620, 0x1755a: 0x00326288, 0x1755b: 0x40326220,
-	0x1755c: 0x00325e88, 0x1755d: 0x40325e20, 0x1755e: 0x00328488, 0x1755f: 0x40328420,
-	0x17560: 0x0032a488, 0x17561: 0x4032a420, 0x17562: 0x0032e888, 0x17563: 0x4032e820,
-	0x17564: 0x0032f288, 0x17565: 0x4032f220, 0x17566: 0x0032f488, 0x17567: 0x4032f420,
-	0x17568: 0x0032fa88, 0x17569: 0x4032fa20, 0x1756a: 0x00330888, 0x1756b: 0x40330820,
-	0x1756c: 0x00330e88, 0x1756d: 0x40330e20, 0x1756e: 0x00331688, 0x1756f: 0x40331620,
-	0x17570: 0x00327084, 0x17571: 0x00328884, 0x17572: 0x00328e84, 0x17573: 0x40326e20,
-	0x17574: 0x00326a8a, 0x17575: 0x00325c84, 0x17576: 0x40092e20, 0x17577: 0x0032a888,
-	0x17578: 0x4032a820, 0x17579: 0x00328e8a, 0x1757a: 0x00328288, 0x1757b: 0x40328220,
-	0x1757c: 0x40328c20, 0x1757d: 0x00329288, 0x1757e: 0x00329088, 0x1757f: 0x00329488,
-	// Block 0x5d6, offset 0x17580
-	0x17580: 0xe00009b1, 0x17581: 0xe00009ae, 0x17582: 0xe0000a22, 0x17583: 0xe0000a1f,
-	0x17584: 0xe000aca7, 0x17585: 0xe000aca4, 0x17586: 0xe0000a2e, 0x17587: 0xe0000a2b,
-	0x17588: 0xe000acb4, 0x17589: 0xe000acb0, 0x1758a: 0xe0000a8c, 0x1758b: 0xe0000a89,
-	0x1758c: 0xe000acbb, 0x1758d: 0xe000acb8, 0x1758e: 0xe0000aa4, 0x1758f: 0xe0000aa1,
-	0x17590: 0xe0000a92, 0x17591: 0xe0000a8f, 0x17592: 0xe0000a9e, 0x17593: 0xe0000a9b,
-	0x17594: 0xe0000b55, 0x17595: 0xe0000b51, 0x17596: 0xe000acda, 0x17597: 0xe000acd6,
-	0x17598: 0xe0000b7c, 0x17599: 0xe0000b79, 0x1759a: 0xe0000b82, 0x1759b: 0xe0000b7f,
-	0x1759c: 0xe0000b39, 0x1759d: 0xe0000b35, 0x1759e: 0xe0000b8c, 0x1759f: 0xe0000b89,
-	0x175a0: 0xe0000bd0, 0x175a1: 0xe0000bcd, 0x175a2: 0xe0000c00, 0x175a3: 0xe0000bfd,
-	0x175a4: 0xe000acff, 0x175a5: 0xe000acfc, 0x175a6: 0xe0000bfa, 0x175a7: 0xe0000bf7,
-	0x175a8: 0xe0000c06, 0x175a9: 0xe0000c03, 0x175aa: 0xe0000c12, 0x175ab: 0xe0000c0f,
-	0x175ac: 0xe0000c7e, 0x175ad: 0xe0000c7b, 0x175ae: 0xe000ad1e, 0x175af: 0xe000ad1a,
-	0x175b0: 0xe000ad25, 0x175b1: 0xe000ad22, 0x175b2: 0xe000ad2b, 0x175b3: 0xe000ad28,
-	0x175b4: 0xe0000cb1, 0x175b5: 0xe0000cae, 0x175b6: 0xe000ad37, 0x175b7: 0xe000ad34,
-	0x175b8: 0xe000ad3e, 0x175b9: 0xe000ad3a, 0x175ba: 0xe0000cf2, 0x175bb: 0xe0000cef,
-	0x175bc: 0xe0000cec, 0x175bd: 0xe0000ce9, 0x175be: 0xe000ad45, 0x175bf: 0xe000ad42,
-	// Block 0x5d7, offset 0x175c0
-	0x175c0: 0xe0000d24, 0x175c1: 0xe0000d21, 0x175c2: 0xe000ad4b, 0x175c3: 0xe000ad48,
-	0x175c4: 0xe0000d69, 0x175c5: 0xe0000d66, 0x175c6: 0xe000ad5d, 0x175c7: 0xe000ad5a,
-	0x175c8: 0xe0000d87, 0x175c9: 0xe0000d84, 0x175ca: 0xe0000d81, 0x175cb: 0xe0000d7e,
-	0x175cc: 0xe000ad70, 0x175cd: 0xe000ad6c, 0x175ce: 0xe000ad78, 0x175cf: 0xe000ad74,
-	0x175d0: 0xe0000e3d, 0x175d1: 0xe0000e39, 0x175d2: 0xe000ad9c, 0x175d3: 0xe000ad98,
-	0x175d4: 0xe000add9, 0x175d5: 0xe000add6, 0x175d6: 0xe0000ead, 0x175d7: 0xe0000eaa,
-	0x175d8: 0xe0000ed6, 0x175d9: 0xe0000ed3, 0x175da: 0xe000ade5, 0x175db: 0xe000ade2,
-	0x175dc: 0xe000adec, 0x175dd: 0xe000ade8, 0x175de: 0xe0000f02, 0x175df: 0xe0000eff,
-	0x175e0: 0xe0000f41, 0x175e1: 0xe0000f3e, 0x175e2: 0xe000ae01, 0x175e3: 0xe000adfe,
-	0x175e4: 0xe000adfa, 0x175e5: 0xe000adf6, 0x175e6: 0xe0000f3a, 0x175e7: 0xe0000f36,
-	0x175e8: 0xe000ae08, 0x175e9: 0xe000ae04, 0x175ea: 0xe0000f93, 0x175eb: 0xe0000f90,
-	0x175ec: 0xe000ae0f, 0x175ed: 0xe000ae0c, 0x175ee: 0xe0000fb1, 0x175ef: 0xe0000fae,
-	0x175f0: 0xe0000fab, 0x175f1: 0xe0000fa8, 0x175f2: 0xe0001093, 0x175f3: 0xe0001090,
-	0x175f4: 0xe000109f, 0x175f5: 0xe000109c, 0x175f6: 0xe0001099, 0x175f7: 0xe0001096,
-	0x175f8: 0xe000ae22, 0x175f9: 0xe000ae1e, 0x175fa: 0xe0001046, 0x175fb: 0xe0001042,
-	0x175fc: 0xe000ae55, 0x175fd: 0xe000ae52, 0x175fe: 0xe000ae5b, 0x175ff: 0xe000ae58,
-	// Block 0x5d8, offset 0x17600
-	0x17600: 0xe00010d2, 0x17601: 0xe00010cf, 0x17602: 0xe000ae61, 0x17603: 0xe000ae5e,
-	0x17604: 0xe00010e1, 0x17605: 0xe00010de, 0x17606: 0xe00010e7, 0x17607: 0xe00010e4,
-	0x17608: 0xe000ae67, 0x17609: 0xe000ae64, 0x1760a: 0xe00010fc, 0x1760b: 0xe00010f9,
-	0x1760c: 0xe00010f6, 0x1760d: 0xe00010f3, 0x1760e: 0xe0001123, 0x1760f: 0xe0001120,
-	0x17610: 0xe0001141, 0x17611: 0xe000113e, 0x17612: 0xe000ae8b, 0x17613: 0xe000ae88,
-	0x17614: 0xe0001159, 0x17615: 0xe0001156, 0x17616: 0xe0000c15, 0x17617: 0xe0000f8d,
-	0x17618: 0xe00010db, 0x17619: 0xe0001111, 0x1761a: 0xf0000404, 0x1761b: 0xe0000f70,
-	0x1761c: 0x40300420, 0x1761d: 0x40300620, 0x1761e: 0xe0000f7f, 0x1761f: 0x402c9620,
-	0x17620: 0xe000ac5f, 0x17621: 0xe000ac5c, 0x17622: 0xe000ac4d, 0x17623: 0xe000ac4a,
-	0x17624: 0xe000ac9b, 0x17625: 0xe000ac98, 0x17626: 0xe000340b, 0x17627: 0xe0003408,
-	0x17628: 0xe000ac8f, 0x17629: 0xe000ac8c, 0x1762a: 0xe000ac95, 0x1762b: 0xe000ac92,
-	0x1762c: 0xe000aca1, 0x1762d: 0xe000ac9e, 0x1762e: 0xe000ac83, 0x1762f: 0xe000ac80,
-	0x17630: 0xe0003365, 0x17631: 0xe0003362, 0x17632: 0xe000ac77, 0x17633: 0xe000ac74,
-	0x17634: 0xe000ac7d, 0x17635: 0xe000ac7a, 0x17636: 0xe000ac89, 0x17637: 0xe000ac86,
-	0x17638: 0xe000acd3, 0x17639: 0xe000acd0, 0x1763a: 0xe000acc1, 0x1763b: 0xe000acbe,
-	0x1763c: 0xe000acc7, 0x1763d: 0xe000acc4, 0x1763e: 0xe000aced, 0x1763f: 0xe000acea,
-	// Block 0x5d9, offset 0x17640
-	0x17640: 0xe000a902, 0x17641: 0xe000a8ff, 0x17642: 0xe000ace1, 0x17643: 0xe000acde,
-	0x17644: 0xe000ace7, 0x17645: 0xe000ace4, 0x17646: 0xe000acf3, 0x17647: 0xe000acf0,
-	0x17648: 0xe000ad05, 0x17649: 0xe000ad02, 0x1764a: 0xe000ad17, 0x1764b: 0xe000ad14,
-	0x1764c: 0xe000ad8d, 0x1764d: 0xe000ad8a, 0x1764e: 0xe000ad63, 0x1764f: 0xe000ad60,
-	0x17650: 0xe000adaf, 0x17651: 0xe000adac, 0x17652: 0xe000a920, 0x17653: 0xe000a91d,
-	0x17654: 0xe000ada3, 0x17655: 0xe000ada0, 0x17656: 0xe000ada9, 0x17657: 0xe000ada6,
-	0x17658: 0xe000adb5, 0x17659: 0xe000adb2, 0x1765a: 0xe000adcd, 0x1765b: 0xe000adca,
-	0x1765c: 0xe000adbb, 0x1765d: 0xe000adb8, 0x1765e: 0xe000adc1, 0x1765f: 0xe000adbe,
-	0x17660: 0xe000adc7, 0x17661: 0xe000adc4, 0x17662: 0xe000add3, 0x17663: 0xe000add0,
-	0x17664: 0xe000ae2f, 0x17665: 0xe000ae2c, 0x17666: 0xe000ae15, 0x17667: 0xe000ae12,
-	0x17668: 0xe000ae49, 0x17669: 0xe000ae46, 0x1766a: 0xe000259c, 0x1766b: 0xe0002599,
-	0x1766c: 0xe000ae3d, 0x1766d: 0xe000ae3a, 0x1766e: 0xe000ae43, 0x1766f: 0xe000ae40,
-	0x17670: 0xe000ae4f, 0x17671: 0xe000ae4c, 0x17672: 0xe0001108, 0x17673: 0xe0001105,
-	0x17674: 0xe000ae7f, 0x17675: 0xe000ae7c, 0x17676: 0xe000ae6d, 0x17677: 0xe000ae6a,
-	0x17678: 0xe000ae73, 0x17679: 0xe000ae70, 0x1767a: 0xe0000d0a, 0x1767b: 0xe0000d07,
-	0x1767c: 0x0030d888, 0x1767d: 0x4030d820, 0x1767e: 0x00312088, 0x1767f: 0x40312020,
-	// Block 0x5da, offset 0x17680
-	0x17680: 0xe0001165, 0x17681: 0xe00011a9, 0x17682: 0xe000117d, 0x17683: 0xe00011c1,
-	0x17684: 0xe000ae8e, 0x17685: 0xe000aea0, 0x17686: 0xe000118f, 0x17687: 0xe00011d3,
-	0x17688: 0xe0001168, 0x17689: 0xe00011ac, 0x1768a: 0xe0001181, 0x1768b: 0xe00011c5,
-	0x1768c: 0xe000ae92, 0x1768d: 0xe000aea4, 0x1768e: 0xe0001193, 0x1768f: 0xe00011d7,
-	0x17690: 0xe000121a, 0x17691: 0xe0001230, 0x17692: 0xe0001228, 0x17693: 0xe000123e,
-	0x17694: 0xe000aebc, 0x17695: 0xe000aec4,
-	0x17698: 0xe000121d, 0x17699: 0xe0001233, 0x1769a: 0xe000122c, 0x1769b: 0xe0001242,
-	0x1769c: 0xe000aec0, 0x1769d: 0xe000aec8,
-	0x176a0: 0xe0001252, 0x176a1: 0xe0001296, 0x176a2: 0xe000126a, 0x176a3: 0xe00012ae,
-	0x176a4: 0xe000aed2, 0x176a5: 0xe000aee4, 0x176a6: 0xe000127c, 0x176a7: 0xe00012c0,
-	0x176a8: 0xe0001255, 0x176a9: 0xe0001299, 0x176aa: 0xe000126e, 0x176ab: 0xe00012b2,
-	0x176ac: 0xe000aed6, 0x176ad: 0xe000aee8, 0x176ae: 0xe0001280, 0x176af: 0xe00012c4,
-	0x176b0: 0xe00012fb, 0x176b1: 0xe0001319, 0x176b2: 0xe0001309, 0x176b3: 0xe0001327,
-	0x176b4: 0xe000af00, 0x176b5: 0xe000af08, 0x176b6: 0xe0001311, 0x176b7: 0xe000132f,
-	0x176b8: 0xe00012fe, 0x176b9: 0xe000131c, 0x176ba: 0xe000130d, 0x176bb: 0xe000132b,
-	0x176bc: 0xe000af04, 0x176bd: 0xe000af0c, 0x176be: 0xe0001315, 0x176bf: 0xe0001333,
-	// Block 0x5db, offset 0x176c0
-	0x176c0: 0xe000136c, 0x176c1: 0xe0001382, 0x176c2: 0xe000137a, 0x176c3: 0xe0001390,
-	0x176c4: 0xe000af1a, 0x176c5: 0xe000af22,
-	0x176c8: 0xe000136f, 0x176c9: 0xe0001385, 0x176ca: 0xe000137e, 0x176cb: 0xe0001394,
-	0x176cc: 0xe000af1e, 0x176cd: 0xe000af26,
-	0x176d0: 0xe00013ad, 0x176d1: 0xe00013bc, 0x176d2: 0xe00013b4, 0x176d3: 0xe00013ca,
-	0x176d4: 0xe000af30, 0x176d5: 0xe000af34, 0x176d6: 0xe00013b8, 0x176d7: 0xe00013d2,
-	0x176d9: 0xe00013bf, 0x176db: 0xe00013ce,
-	0x176dd: 0xe000af38, 0x176df: 0xe00013d6,
-	0x176e0: 0xe0001407, 0x176e1: 0xe000144b, 0x176e2: 0xe000141f, 0x176e3: 0xe0001463,
-	0x176e4: 0xe000af46, 0x176e5: 0xe000af58, 0x176e6: 0xe0001431, 0x176e7: 0xe0001475,
-	0x176e8: 0xe000140a, 0x176e9: 0xe000144e, 0x176ea: 0xe0001423, 0x176eb: 0xe0001467,
-	0x176ec: 0xe000af4a, 0x176ed: 0xe000af5c, 0x176ee: 0xe0001435, 0x176ef: 0xe0001479,
-	0x176f0: 0xe00011f7, 0x176f1: 0xe000aeb2, 0x176f2: 0xe000124c, 0x176f3: 0xe000aecc,
-	0x176f4: 0xe00012e4, 0x176f5: 0xe000aef6, 0x176f6: 0xe000133d, 0x176f7: 0xe000af10,
-	0x176f8: 0xe000139e, 0x176f9: 0xe000af2a, 0x176fa: 0xe00013e0, 0x176fb: 0xe000af3c,
-	0x176fc: 0xe0001499, 0x176fd: 0xe000af6a,
-	// Block 0x5dc, offset 0x17700
-	0x17700: 0xe00011a1, 0x17701: 0xe00011e5, 0x17702: 0xe0001185, 0x17703: 0xe00011c9,
-	0x17704: 0xe000ae96, 0x17705: 0xe000aea8, 0x17706: 0xe0001197, 0x17707: 0xe00011db,
-	0x17708: 0xe00011a5, 0x17709: 0xe00011e9, 0x1770a: 0xe000118a, 0x1770b: 0xe00011ce,
-	0x1770c: 0xe000ae9b, 0x1770d: 0xe000aead, 0x1770e: 0xe000119c, 0x1770f: 0xe00011e0,
-	0x17710: 0xe000128e, 0x17711: 0xe00012d2, 0x17712: 0xe0001272, 0x17713: 0xe00012b6,
-	0x17714: 0xe000aeda, 0x17715: 0xe000aeec, 0x17716: 0xe0001284, 0x17717: 0xe00012c8,
-	0x17718: 0xe0001292, 0x17719: 0xe00012d6, 0x1771a: 0xe0001277, 0x1771b: 0xe00012bb,
-	0x1771c: 0xe000aedf, 0x1771d: 0xe000aef1, 0x1771e: 0xe0001289, 0x1771f: 0xe00012cd,
-	0x17720: 0xe0001443, 0x17721: 0xe0001487, 0x17722: 0xe0001427, 0x17723: 0xe000146b,
-	0x17724: 0xe000af4e, 0x17725: 0xe000af60, 0x17726: 0xe0001439, 0x17727: 0xe000147d,
-	0x17728: 0xe0001447, 0x17729: 0xe000148b, 0x1772a: 0xe000142c, 0x1772b: 0xe0001470,
-	0x1772c: 0xe000af53, 0x1772d: 0xe000af65, 0x1772e: 0xe000143e, 0x1772f: 0xe0001482,
-	0x17730: 0xe0001201, 0x17731: 0xe000120e, 0x17732: 0xe00011fd, 0x17733: 0xe0001214,
-	0x17734: 0xe000aeb8, 0x17736: 0xe0001207, 0x17737: 0xe000120a,
-	0x17738: 0xe0001204, 0x17739: 0xe0001211, 0x1773a: 0xe00011fa, 0x1773b: 0xe000aeb5,
-	0x1773c: 0xe0001217, 0x1773d: 0x40063620, 0x1773e: 0x40326c20, 0x1773f: 0x40063620,
-	// Block 0x5dd, offset 0x17740
-	0x17740: 0x40063a20, 0x17741: 0xe00000b1, 0x17742: 0xe00012ea, 0x17743: 0xe00012f5,
-	0x17744: 0xe000aefc, 0x17746: 0xe00012ee, 0x17747: 0xe00012f1,
-	0x17748: 0xe000124f, 0x17749: 0xe000aecf, 0x1774a: 0xe00012e7, 0x1774b: 0xe000aef9,
-	0x1774c: 0xe00012f8, 0x1774d: 0xe00000b7, 0x1774e: 0xe000ac44, 0x1774f: 0xe00000ba,
-	0x17750: 0xe0001343, 0x17751: 0xe000135e, 0x17752: 0xe0001356, 0x17753: 0xe000af16,
-	0x17756: 0xe0001349, 0x17757: 0xe000135a,
-	0x17758: 0xe0001346, 0x17759: 0xe0001361, 0x1775a: 0xe0001340, 0x1775b: 0xe000af13,
-	0x1775d: 0xe00000c0, 0x1775e: 0xe000ac47, 0x1775f: 0xe00000c3,
-	0x17760: 0xe00013e6, 0x17761: 0xe0001401, 0x17762: 0xe00013f9, 0x17763: 0xe000af42,
-	0x17764: 0xe00013a4, 0x17765: 0xe00013a7, 0x17766: 0xe00013ec, 0x17767: 0xe00013fd,
-	0x17768: 0xe00013e9, 0x17769: 0xe0001404, 0x1776a: 0xe00013e3, 0x1776b: 0xe000af3f,
-	0x1776c: 0xe00013aa, 0x1776d: 0xe00000ae, 0x1776e: 0xe000ac41, 0x1776f: 0x40061e20,
-	0x17772: 0xe000149f, 0x17773: 0xe00014aa,
-	0x17774: 0xe000af70, 0x17776: 0xe00014a3, 0x17777: 0xe00014a6,
-	0x17778: 0xe00013a1, 0x17779: 0xe000af2d, 0x1777a: 0xe000149c, 0x1777b: 0xe000af6d,
-	0x1777c: 0xe00014ad, 0x1777d: 0x40062020, 0x1777e: 0x40063820,
-	// Block 0x5de, offset 0x17780
-	0x17780: 0xa0000000, 0x17781: 0xa0000000, 0x17782: 0xa0000000, 0x17783: 0xa0000000,
-	0x17784: 0xa0000000, 0x17785: 0xa0000000, 0x17786: 0xa0000000, 0x17787: 0xa0000000,
-	0x17788: 0xa0000000, 0x17789: 0x40020020, 0x1778a: 0x40020220, 0x1778b: 0x40020420,
-	0x1778c: 0x40020620, 0x1778d: 0x40020820, 0x1778e: 0xa0000000, 0x1778f: 0xa0000000,
-	0x17790: 0xa0000000, 0x17791: 0xa0000000, 0x17792: 0xa0000000, 0x17793: 0xa0000000,
-	0x17794: 0xa0000000, 0x17795: 0xa0000000, 0x17796: 0xa0000000, 0x17797: 0xa0000000,
-	0x17798: 0xa0000000, 0x17799: 0xa0000000, 0x1779a: 0xa0000000, 0x1779b: 0xa0000000,
-	0x1779c: 0xa0000000, 0x1779d: 0xa0000000, 0x1779e: 0xa0000000, 0x1779f: 0xa0000000,
-	0x177a0: 0x40021220, 0x177a1: 0x4002ba20, 0x177a2: 0x4003e020, 0x177a3: 0x4004ea20,
-	0x177a4: 0x4027de20, 0x177a5: 0x4004ec20, 0x177a6: 0x4004e620, 0x177a7: 0x4003d220,
-	0x177a8: 0x4003f420, 0x177a9: 0x4003f620, 0x177aa: 0x4004d820, 0x177ab: 0x40093820,
-	0x177ac: 0x40024020, 0x177ad: 0x40021a20, 0x177ae: 0x4002e420, 0x177af: 0x4004e220,
-	0x177b0: 0x4029cc20, 0x177b1: 0x4029ce20, 0x177b2: 0x4029d020, 0x177b3: 0x4029d220,
-	0x177b4: 0x4029d420, 0x177b5: 0x4029d620, 0x177b6: 0x4029d820, 0x177b7: 0x4029da20,
-	0x177b8: 0x4029dc20, 0x177b9: 0x4029de20, 0x177ba: 0x40026c20, 0x177bb: 0x40026220,
-	0x177bc: 0x40094020, 0x177bd: 0x40094220, 0x177be: 0x40094420, 0x177bf: 0x4002c420,
-	// Block 0x5df, offset 0x177c0
-	0x177c0: 0x4004d620, 0x177c1: 0x002bde88, 0x177c2: 0x002c0a88, 0x177c3: 0x002c3a88,
-	0x177c4: 0x002c6288, 0x177c5: 0x002c9888, 0x177c6: 0x002d0888, 0x177c7: 0x002d2288,
-	0x177c8: 0x002d6888, 0x177c9: 0x002d9a88, 0x177ca: 0x002dcc88, 0x177cb: 0x002dfe88,
-	0x177cc: 0xc0030002, 0x177cd: 0x002e8288, 0x177ce: 0x002e9e88, 0x177cf: 0x002ee288,
-	0x177d0: 0x002f2c88, 0x177d1: 0x002f5688, 0x177d2: 0x002f7a88, 0x177d3: 0x002fe688,
-	0x177d4: 0x00302c88, 0x177d5: 0x00306c88, 0x177d6: 0x0030be88, 0x177d7: 0x0030e288,
-	0x177d8: 0x0030f688, 0x177d9: 0x00310088, 0x177da: 0x00312a88, 0x177db: 0x4003f820,
-	0x177dc: 0x4004e420, 0x177dd: 0x4003fa20, 0x177de: 0x40062420, 0x177df: 0x40021620,
-	0x177e0: 0x40061e20, 0x177e1: 0xcf409852, 0x177e2: 0x402c0a20, 0x177e3: 0xcf4509b1,
-	0x177e4: 0x402c6220, 0x177e5: 0xcf4798d1, 0x177e6: 0x402d0820, 0x177e7: 0x402d2220,
-	0x177e8: 0x402d6820, 0x177e9: 0xcf4998e1, 0x177ea: 0x402dcc20, 0x177eb: 0x402dfe20,
-	0x177ec: 0xc0000002, 0x177ed: 0x402e8220, 0x177ee: 0x402e9e20, 0x177ef: 0xcf4b98f2,
-	0x177f0: 0x402f2c20, 0x177f1: 0x402f5620, 0x177f2: 0x402f7a20, 0x177f3: 0xcf509971,
-	0x177f4: 0x40302c20, 0x177f5: 0xcf529992, 0x177f6: 0x4030be20, 0x177f7: 0x4030e220,
-	0x177f8: 0x4030f620, 0x177f9: 0x40310020, 0x177fa: 0x40312a20, 0x177fb: 0x4003fc20,
-	0x177fc: 0x40094820, 0x177fd: 0x4003fe20, 0x177fe: 0x40094c20, 0x177ff: 0xa0000000,
-	// Block 0x5e0, offset 0x17800
-	0x17800: 0xe00008f5, 0x17801: 0xe00008ef, 0x17802: 0xe0000921, 0x17803: 0xe0000969,
-	0x17804: 0xe000095b, 0x17805: 0xe000094d, 0x17806: 0xe00009dd, 0x17807: 0xe0000a53,
-	0x17808: 0xe0000ae8, 0x17809: 0xe0000ae2, 0x1780a: 0xe0000af4, 0x1780b: 0xe0000b20,
-	0x1780c: 0xe0000c2b, 0x1780d: 0xe0000c25, 0x1780e: 0xe0000c37, 0x1780f: 0xe0000c43,
-	0x17810: 0xe0000ab3, 0x17811: 0xe0000d63, 0x17812: 0xe0000d9a, 0x17813: 0xe0000d94,
-	0x17814: 0xe0000da6, 0x17815: 0xe0000de6, 0x17816: 0xe0000dd2, 0x17817: 0x40093e20,
-	0x17818: 0xe0000e12, 0x17819: 0xe0000fe1, 0x1781a: 0xe0000fdb, 0x1781b: 0xe0000fed,
-	0x1781c: 0xe0000fff, 0x1781d: 0xe0001102, 0x1781e: 0x00318888, 0x1781f: 0xe0000f7b,
-	0x17820: 0xe00008f2, 0x17821: 0xe00008ec, 0x17822: 0xe000091e, 0x17823: 0xe0000966,
-	0x17824: 0xcf4398b1, 0x17825: 0xe000094a, 0x17826: 0xe00009d5, 0x17827: 0xe0000a4d,
-	0x17828: 0xe0000ae5, 0x17829: 0xe0000adf, 0x1782a: 0xe0000af1, 0x1782b: 0xe0000b1d,
-	0x1782c: 0xe0000c28, 0x1782d: 0xe0000c22, 0x1782e: 0xe0000c34, 0x1782f: 0xe0000c40,
-	0x17830: 0xe0000aad, 0x17831: 0xe0000d60, 0x17832: 0xe0000d97, 0x17833: 0xe0000d91,
-	0x17834: 0xe0000da3, 0x17835: 0xe0000de3, 0x17836: 0xcf4e9951, 0x17837: 0x40093c20,
-	0x17838: 0xe0000e0f, 0x17839: 0xe0000fde, 0x1783a: 0xe0000fd8, 0x1783b: 0xe0000fea,
-	0x1783c: 0xcf5599f1, 0x1783d: 0xe00010ff, 0x1783e: 0x40318820, 0x1783f: 0xe0001114,
-	// Block 0x5e1, offset 0x17840
-	0x17840: 0xa0000000, 0x17841: 0xa0000000, 0x17842: 0xa0000000, 0x17843: 0xa0000000,
-	0x17844: 0xa0000000, 0x17845: 0xa0000000, 0x17846: 0xa0000000, 0x17847: 0xa0000000,
-	0x17848: 0xa0000000, 0x17849: 0x40020020, 0x1784a: 0x40020220, 0x1784b: 0x40020420,
-	0x1784c: 0x40020620, 0x1784d: 0x40020820, 0x1784e: 0xa0000000, 0x1784f: 0xa0000000,
-	0x17850: 0xa0000000, 0x17851: 0xa0000000, 0x17852: 0xa0000000, 0x17853: 0xa0000000,
-	0x17854: 0xa0000000, 0x17855: 0xa0000000, 0x17856: 0xa0000000, 0x17857: 0xa0000000,
-	0x17858: 0xa0000000, 0x17859: 0xa0000000, 0x1785a: 0xa0000000, 0x1785b: 0xa0000000,
-	0x1785c: 0xa0000000, 0x1785d: 0xa0000000, 0x1785e: 0xa0000000, 0x1785f: 0xa0000000,
-	0x17860: 0x40021220, 0x17861: 0x4002ba20, 0x17862: 0x4003e020, 0x17863: 0x4004ea20,
-	0x17864: 0x4027de20, 0x17865: 0x4004ec20, 0x17866: 0x4004e620, 0x17867: 0x4003d220,
-	0x17868: 0x4003f420, 0x17869: 0x4003f620, 0x1786a: 0x4004d820, 0x1786b: 0x40093820,
-	0x1786c: 0x40024020, 0x1786d: 0x40021a20, 0x1786e: 0x4002e420, 0x1786f: 0x4004e220,
-	0x17870: 0x4029cc20, 0x17871: 0x4029ce20, 0x17872: 0x4029d020, 0x17873: 0x4029d220,
-	0x17874: 0x4029d420, 0x17875: 0x4029d620, 0x17876: 0x4029d820, 0x17877: 0x4029da20,
-	0x17878: 0x4029dc20, 0x17879: 0x4029de20, 0x1787a: 0x40026c20, 0x1787b: 0x40026220,
-	0x1787c: 0x40094020, 0x1787d: 0x40094220, 0x1787e: 0x40094420, 0x1787f: 0x4002c420,
-	// Block 0x5e2, offset 0x17880
-	0x17880: 0x4004d620, 0x17881: 0x002bde88, 0x17882: 0x002c0a88, 0x17883: 0x002c3a88,
-	0x17884: 0x002c6288, 0x17885: 0xce0a3041, 0x17886: 0x002d0888, 0x17887: 0xc51f2692,
-	0x17888: 0x002d6888, 0x17889: 0x002d9a88, 0x1788a: 0x002dcc88, 0x1788b: 0x002dfe88,
-	0x1788c: 0xc0030002, 0x1788d: 0x002e8288, 0x1788e: 0x002e9e88, 0x1788f: 0xc33f3041,
-	0x17890: 0x002f2c88, 0x17891: 0x002f5688, 0x17892: 0x002f7a88, 0x17893: 0xc3433041,
-	0x17894: 0x00302c88, 0x17895: 0x00306c88, 0x17896: 0x0030be88, 0x17897: 0x0030e288,
-	0x17898: 0x0030f688, 0x17899: 0x00310088, 0x1789a: 0x00312a88, 0x1789b: 0x4003f820,
-	0x1789c: 0x4004e420, 0x1789d: 0x4003fa20, 0x1789e: 0x40062420, 0x1789f: 0x40021620,
-	0x178a0: 0x40061e20, 0x178a1: 0x402bde20, 0x178a2: 0x402c0a20, 0x178a3: 0x402c3a20,
-	0x178a4: 0x402c6220, 0x178a5: 0xce083041, 0x178a6: 0x402d0820, 0x178a7: 0xc3372681,
-	0x178a8: 0x402d6820, 0x178a9: 0x402d9a20, 0x178aa: 0x402dcc20, 0x178ab: 0x402dfe20,
-	0x178ac: 0xc0000002, 0x178ad: 0x402e8220, 0x178ae: 0x402e9e20, 0x178af: 0xc33d3041,
-	0x178b0: 0x402f2c20, 0x178b1: 0x402f5620, 0x178b2: 0x402f7a20, 0x178b3: 0xc3413041,
-	0x178b4: 0x40302c20, 0x178b5: 0x40306c20, 0x178b6: 0x4030be20, 0x178b7: 0x4030e220,
-	0x178b8: 0x4030f620, 0x178b9: 0x40310020, 0x178ba: 0x40312a20, 0x178bb: 0x4003fc20,
-	0x178bc: 0x40094820, 0x178bd: 0x4003fe20, 0x178be: 0x40094c20, 0x178bf: 0xa0000000,
-	// Block 0x5e3, offset 0x178c0
-	0x178c0: 0xe0000d24, 0x178c1: 0xe0000d21, 0x178c2: 0xe0000d2a, 0x178c3: 0xe0000d27,
-	0x178c4: 0xe0000d69, 0x178c5: 0xe0000d66, 0x178c6: 0xe0000d7b, 0x178c7: 0xe0000d78,
-	0x178c8: 0xe0000d87, 0x178c9: 0xe0000d84, 0x178ca: 0xe0000d81, 0x178cb: 0xe0000d7e,
-	0x178cc: 0xe0000ded, 0x178cd: 0xe0000de9, 0x178ce: 0xe0000df5, 0x178cf: 0xe0000df1,
-	0x178d0: 0xe0000e3d, 0x178d1: 0xe0000e39, 0x178d2: 0xe0000e35, 0x178d3: 0xe0000e31,
-	0x178d4: 0xe0000ea7, 0x178d5: 0xe0000ea4, 0x178d6: 0xe0000ead, 0x178d7: 0xe0000eaa,
-	0x178d8: 0xe0000ed6, 0x178d9: 0xe0000ed3, 0x178da: 0xe0000ef4, 0x178db: 0xe0000ef1,
-	0x178dc: 0xe0000efb, 0x178dd: 0xe0000ef7, 0x178de: 0xe0000f02, 0x178df: 0xe0000eff,
-	0x178e0: 0xe0000f41, 0x178e1: 0xe0000f3e, 0x178e2: 0x002fe883, 0x178e3: 0x402fe820,
-	0x178e4: 0xe0000f26, 0x178e5: 0xe0000f22, 0x178e6: 0xe0000f3a, 0x178e7: 0xe0000f36,
-	0x178e8: 0xe00025c3, 0x178e9: 0xe00025c0, 0x178ea: 0xe0000f93, 0x178eb: 0xe0000f90,
-	0x178ec: 0xe0000f9f, 0x178ed: 0xe0000f9c, 0x178ee: 0xe0000fb1, 0x178ef: 0xe0000fae,
-	0x178f0: 0xe0000fab, 0x178f1: 0xe0000fa8, 0x178f2: 0xe0001093, 0x178f3: 0xe0001090,
-	0x178f4: 0xe000109f, 0x178f5: 0xe000109c, 0x178f6: 0xe0001099, 0x178f7: 0xe0001096,
-	0x178f8: 0xe0001032, 0x178f9: 0xe000102e, 0x178fa: 0xe0001046, 0x178fb: 0xe0001042,
-	0x178fc: 0xe00010a9, 0x178fd: 0xe00010a6, 0x178fe: 0xe00010af, 0x178ff: 0xe00010ac,
-	// Block 0x5e4, offset 0x17900
-	0x17900: 0xe00010d2, 0x17901: 0xe00010cf, 0x17902: 0xe00010cc, 0x17903: 0xe00010c9,
-	0x17904: 0xe00010e1, 0x17905: 0xe00010de, 0x17906: 0xe00010e7, 0x17907: 0xe00010e4,
-	0x17908: 0xe00010ed, 0x17909: 0xe00010ea, 0x1790a: 0xe00010fc, 0x1790b: 0xe00010f9,
-	0x1790c: 0xe00010f6, 0x1790d: 0xe00010f3, 0x1790e: 0xe0001123, 0x1790f: 0xe0001120,
-	0x17910: 0xe0001141, 0x17911: 0xe000113e, 0x17912: 0xe0001153, 0x17913: 0xe0001150,
-	0x17914: 0xe0001159, 0x17915: 0xe0001156, 0x17916: 0xe0000c15, 0x17917: 0xe0000f8d,
-	0x17918: 0xe00010db, 0x17919: 0xe0001111, 0x1791a: 0xf0000404, 0x1791b: 0xe0000f70,
-	0x1791c: 0x40300420, 0x1791d: 0x40300620, 0x1791e: 0xe0000f7f, 0x1791f: 0x402c9620,
-	0x17920: 0xe000099b, 0x17921: 0xe0000998, 0x17922: 0xe0000989, 0x17923: 0xe0000986,
-	0x17924: 0xe0000928, 0x17925: 0xe0000924, 0x17926: 0xe0000930, 0x17927: 0xe000092c,
-	0x17928: 0xe0000940, 0x17929: 0xe000093c, 0x1792a: 0xe0000938, 0x1792b: 0xe0000934,
-	0x1792c: 0xe00009aa, 0x1792d: 0xe00009a6, 0x1792e: 0xe0000902, 0x1792f: 0xe00008fe,
-	0x17930: 0xe000090a, 0x17931: 0xe0000906, 0x17932: 0xe000091a, 0x17933: 0xe0000916,
-	0x17934: 0xe0000912, 0x17935: 0xe000090e, 0x17936: 0xe00009a2, 0x17937: 0xe000099e,
-	0x17938: 0x002c9a83, 0x17939: 0x402c9a20, 0x1793a: 0xe0000b5c, 0x1793b: 0xe0000b59,
-	0x1793c: 0xe0000b26, 0x1793d: 0xe0000b23, 0x1793e: 0xe0000afb, 0x1793f: 0xe0000af7,
-	// Block 0x5e5, offset 0x17940
-	0x17940: 0xe0000b03, 0x17941: 0xe0000aff, 0x17942: 0xe0000b13, 0x17943: 0xe0000b0f,
-	0x17944: 0xe0000b0b, 0x17945: 0xe0000b07, 0x17946: 0xe000af86, 0x17947: 0xe000af83,
-	0x17948: 0xe0000c66, 0x17949: 0xe0000c63, 0x1794a: 0xe0000c78, 0x1794b: 0xe0000c75,
-	0x1794c: 0x002ee483, 0x1794d: 0x402ee420, 0x1794e: 0xe0000e44, 0x1794f: 0xe0000e41,
-	0x17950: 0xe0000dad, 0x17951: 0xe0000da9, 0x17952: 0xe0000db5, 0x17953: 0xe0000db1,
-	0x17954: 0xe0000dc5, 0x17955: 0xe0000dc1, 0x17956: 0xe0000dbd, 0x17957: 0xe0000db9,
-	0x17958: 0xe000375b, 0x17959: 0xe0003758, 0x1795a: 0xe0000e5d, 0x1795b: 0xe0000e59,
-	0x1795c: 0xe0000e65, 0x1795d: 0xe0000e61, 0x1795e: 0xe0000e75, 0x1795f: 0xe0000e71,
-	0x17960: 0xe0000e6d, 0x17961: 0xe0000e69, 0x17962: 0xe0003761, 0x17963: 0xe000375e,
-	0x17964: 0xe000108d, 0x17965: 0xe000108a, 0x17966: 0xe000104d, 0x17967: 0xe000104a,
-	0x17968: 0xe0001066, 0x17969: 0xe0001062, 0x1796a: 0xe000106e, 0x1796b: 0xe000106a,
-	0x1796c: 0xe000107e, 0x1796d: 0xe000107a, 0x1796e: 0xe0001076, 0x1796f: 0xe0001072,
-	0x17970: 0xe0001086, 0x17971: 0xe0001082, 0x17972: 0xe0001108, 0x17973: 0xe0001105,
-	0x17974: 0xe0001135, 0x17975: 0xe0001132, 0x17976: 0xe000112f, 0x17977: 0xe000112c,
-	0x17978: 0xe000111d, 0x17979: 0xe000111a, 0x1797a: 0xe0000d0a, 0x1797b: 0xe0000d07,
-	0x1797c: 0x0030d888, 0x1797d: 0x4030d820, 0x1797e: 0x00312088, 0x1797f: 0x40312020,
-	// Block 0x5e6, offset 0x17980
-	0x17980: 0xa0000000, 0x17981: 0xa0000000, 0x17982: 0xa0000000, 0x17983: 0xa0000000,
-	0x17984: 0xa0000000, 0x17985: 0xa0000000, 0x17986: 0xa0000000, 0x17987: 0xa0000000,
-	0x17988: 0xa0000000, 0x17989: 0x40020020, 0x1798a: 0x40020220, 0x1798b: 0x40020420,
-	0x1798c: 0x40020620, 0x1798d: 0x40020820, 0x1798e: 0xa0000000, 0x1798f: 0xa0000000,
-	0x17990: 0xa0000000, 0x17991: 0xa0000000, 0x17992: 0xa0000000, 0x17993: 0xa0000000,
-	0x17994: 0xa0000000, 0x17995: 0xa0000000, 0x17996: 0xa0000000, 0x17997: 0xa0000000,
-	0x17998: 0xa0000000, 0x17999: 0xa0000000, 0x1799a: 0xa0000000, 0x1799b: 0xa0000000,
-	0x1799c: 0xa0000000, 0x1799d: 0xa0000000, 0x1799e: 0xa0000000, 0x1799f: 0xa0000000,
-	0x179a0: 0x40021220, 0x179a1: 0x4002ba20, 0x179a2: 0x4003e020, 0x179a3: 0x4004ea20,
-	0x179a4: 0x4027de20, 0x179a5: 0x4004ec20, 0x179a6: 0x4004e620, 0x179a7: 0x4003d220,
-	0x179a8: 0x4003f420, 0x179a9: 0x4003f620, 0x179aa: 0x4004d820, 0x179ab: 0x40093820,
-	0x179ac: 0x40024020, 0x179ad: 0x40021a20, 0x179ae: 0x4002e420, 0x179af: 0x4004e220,
-	0x179b0: 0x4029cc20, 0x179b1: 0x4029ce20, 0x179b2: 0x4029d020, 0x179b3: 0x4029d220,
-	0x179b4: 0x4029d420, 0x179b5: 0x4029d620, 0x179b6: 0x4029d820, 0x179b7: 0x4029da20,
-	0x179b8: 0x4029dc20, 0x179b9: 0x4029de20, 0x179ba: 0x40026c20, 0x179bb: 0x40026220,
-	0x179bc: 0x40094020, 0x179bd: 0x40094220, 0x179be: 0x40094420, 0x179bf: 0x4002c420,
-	// Block 0x5e7, offset 0x179c0
-	0x179c0: 0x4004d620, 0x179c1: 0xcf5c9a11, 0x179c2: 0x002c0a88, 0x179c3: 0x002c3a88,
-	0x179c4: 0x002c6288, 0x179c5: 0xcf6a9a51, 0x179c6: 0x002d0888, 0x179c7: 0x002d2288,
-	0x179c8: 0x002d6888, 0x179c9: 0xcf7e9a11, 0x179ca: 0x002dcc88, 0x179cb: 0x002dfe88,
-	0x179cc: 0xc0030002, 0x179cd: 0xcf889a11, 0x179ce: 0xcf929a11, 0x179cf: 0xcf9c9a11,
-	0x179d0: 0x002f2c88, 0x179d1: 0x002f5688, 0x179d2: 0x002f7a88, 0x179d3: 0x002fe688,
-	0x179d4: 0x00302c88, 0x179d5: 0xcfab9b11, 0x179d6: 0x0030be88, 0x179d7: 0x0030e288,
-	0x179d8: 0x0030f688, 0x179d9: 0x00310088, 0x179da: 0x00312a88, 0x179db: 0x4003f820,
-	0x179dc: 0x4004e420, 0x179dd: 0x4003fa20, 0x179de: 0x40062420, 0x179df: 0x40021620,
-	0x179e0: 0x40061e20, 0x179e1: 0xcf579a11, 0x179e2: 0x402c0a20, 0x179e3: 0x402c3a20,
-	0x179e4: 0x402c6220, 0x179e5: 0xcf619a51, 0x179e6: 0x402d0820, 0x179e7: 0x402d2220,
-	0x179e8: 0x402d6820, 0x179e9: 0xcf799a11, 0x179ea: 0x402dcc20, 0x179eb: 0x402dfe20,
-	0x179ec: 0xc0000002, 0x179ed: 0xcf839a11, 0x179ee: 0xcf8d9a11, 0x179ef: 0xcf979a11,
-	0x179f0: 0x402f2c20, 0x179f1: 0x402f5620, 0x179f2: 0x402f7a20, 0x179f3: 0x402fe620,
-	0x179f4: 0x40302c20, 0x179f5: 0xcfa19b11, 0x179f6: 0x4030be20, 0x179f7: 0x4030e220,
-	0x179f8: 0x4030f620, 0x179f9: 0x40310020, 0x179fa: 0x40312a20, 0x179fb: 0x4003fc20,
-	0x179fc: 0x40094820, 0x179fd: 0x4003fe20, 0x179fe: 0x40094c20, 0x179ff: 0xa0000000,
-	// Block 0x5e8, offset 0x17a00
-	0x17a00: 0x002bde63, 0x17a01: 0x002bde23, 0x17a02: 0xe0000921, 0x17a03: 0xe0000969,
-	0x17a04: 0xe000095b, 0x17a05: 0xe000094d, 0x17a06: 0xe00009dd, 0x17a07: 0xe0000a53,
-	0x17a08: 0x002c9863, 0x17a09: 0x002c9823, 0x17a0a: 0xcf769ae1, 0x17a0b: 0xe0000b20,
-	0x17a0c: 0x002d9a63, 0x17a0d: 0x002d9a23, 0x17a0e: 0xe0000c37, 0x17a0f: 0xe0000c43,
-	0x17a10: 0xe0000ab3, 0x17a11: 0xe0000d63, 0x17a12: 0x002ee263, 0x17a13: 0x002ee223,
-	0x17a14: 0xe0000da6, 0x17a15: 0xe0000de6, 0x17a16: 0xe0000dd2, 0x17a17: 0x40093e20,
-	0x17a18: 0xe0000e12, 0x17a19: 0x00306c63, 0x17a1a: 0x00306c23, 0x17a1b: 0xe0000fed,
-	0x17a1c: 0x00306d23, 0x17a1d: 0xe0001102, 0x17a1e: 0x00318888, 0x17a1f: 0xe0000f7b,
-	0x17a20: 0x402bde1f, 0x17a21: 0x402bde1d, 0x17a22: 0xe000091e, 0x17a23: 0xe0000966,
-	0x17a24: 0xe0000958, 0x17a25: 0xe000094a, 0x17a26: 0xe00009d5, 0x17a27: 0xe0000a4d,
-	0x17a28: 0x402c981f, 0x17a29: 0x402c981d, 0x17a2a: 0xcf739ae1, 0x17a2b: 0xe0000b1d,
-	0x17a2c: 0x402d9a1f, 0x17a2d: 0x402d9a1d, 0x17a2e: 0xe0000c34, 0x17a2f: 0xe0000c40,
-	0x17a30: 0xe0000aad, 0x17a31: 0xe0000d60, 0x17a32: 0x402ee21f, 0x17a33: 0x402ee21d,
-	0x17a34: 0xe0000da3, 0x17a35: 0xe0000de3, 0x17a36: 0xe0000dcf, 0x17a37: 0x40093c20,
-	0x17a38: 0xe0000e0f, 0x17a39: 0x40306c1f, 0x17a3a: 0x40306c1d, 0x17a3b: 0xe0000fea,
-	0x17a3c: 0x40306c25, 0x17a3d: 0xe00010ff, 0x17a3e: 0x40318820, 0x17a3f: 0xe0001114,
-	// Block 0x5e9, offset 0x17a40
-	0x17a40: 0x002bde03, 0x17a41: 0x402bde1c, 0x17a42: 0xe00008fb, 0x17a43: 0xe00008f8,
-	0x17a44: 0xe000097d, 0x17a45: 0xe000097a, 0x17a46: 0xe0000a38, 0x17a47: 0xe0000a35,
-	0x17a48: 0xe0000a3e, 0x17a49: 0xe0000a3b, 0x17a4a: 0xe0000a4a, 0x17a4b: 0xe0000a47,
-	0x17a4c: 0xe0000a44, 0x17a4d: 0xe0000a41, 0x17a4e: 0xe0000a86, 0x17a4f: 0xe0000a83,
-	0x17a50: 0xe0000aaa, 0x17a51: 0xe0000aa7, 0x17a52: 0x002c9803, 0x17a53: 0x402c981c,
-	0x17a54: 0xe0000aee, 0x17a55: 0xe0000aeb, 0x17a56: 0xe0000b2c, 0x17a57: 0xe0000b29,
-	0x17a58: 0xe0000b40, 0x17a59: 0xe0000b3d, 0x17a5a: 0x002c9843, 0x17a5b: 0x402c981e,
-	0x17a5c: 0xe0000bb8, 0x17a5d: 0xe0000bb5, 0x17a5e: 0xe0000bb2, 0x17a5f: 0xe0000baf,
-	0x17a60: 0xe0000bc4, 0x17a61: 0xe0000bc1, 0x17a62: 0xe0000bca, 0x17a63: 0xe0000bc7,
-	0x17a64: 0xe0000bee, 0x17a65: 0xe0000beb, 0x17a66: 0xe0000c1b, 0x17a67: 0xe0000c18,
-	0x17a68: 0xe0000c51, 0x17a69: 0xe0000c4e, 0x17a6a: 0x002d9a03, 0x17a6b: 0x402d9a1c,
-	0x17a6c: 0xe0000c31, 0x17a6d: 0xe0000c2e, 0x17a6e: 0xe0000c5a, 0x17a6f: 0xe0000c57,
-	0x17a70: 0xe0000c54, 0x17a71: 0x402da220, 0x17a72: 0xf0000a0a, 0x17a73: 0xf0000404,
-	0x17a74: 0xe0000c8a, 0x17a75: 0xe0000c87, 0x17a76: 0xe0000c9f, 0x17a77: 0xe0000c9c,
-	0x17a78: 0x402f7220, 0x17a79: 0xe0000ccc, 0x17a7a: 0xe0000cc9, 0x17a7b: 0xe0000cd8,
-	0x17a7c: 0xe0000cd5, 0x17a7d: 0xe0000cd2, 0x17a7e: 0xe0000ccf, 0x17a7f: 0xe0000d04,
-	// Block 0x5ea, offset 0x17a80
-	0x17a80: 0xe0000cfe, 0x17a81: 0xe0000cf8, 0x17a82: 0xe0000cf5, 0x17a83: 0x002e9e23,
-	0x17a84: 0x402e9e1d, 0x17a85: 0xe0000d6f, 0x17a86: 0xe0000d6c, 0x17a87: 0x002e9e43,
-	0x17a88: 0x402e9e1e, 0x17a89: 0xf0000404, 0x17a8a: 0x002eda88, 0x17a8b: 0x402eda20,
-	0x17a8c: 0x002ee203, 0x17a8d: 0x402ee21c, 0x17a8e: 0xe0000da0, 0x17a8f: 0xe0000d9d,
-	0x17a90: 0xe0000de0, 0x17a91: 0xe0000ddd, 0x17a92: 0xe0000e93, 0x17a93: 0xe0000e8f,
-	0x17a94: 0xe0000eca, 0x17a95: 0xe0000ec7, 0x17a96: 0xe0000edc, 0x17a97: 0xe0000ed9,
-	0x17a98: 0xe0000ed0, 0x17a99: 0xe0000ecd, 0x17a9a: 0xe0000f1f, 0x17a9b: 0xe0000f1c,
-	0x17a9c: 0xe0000f2d, 0x17a9d: 0xe0000f2a, 0x17a9e: 0xe0000f47, 0x17a9f: 0xe0000f44,
-	0x17aa0: 0xe0000f33, 0x17aa1: 0xe0000f30, 0x17aa2: 0xe0000f99, 0x17aa3: 0xe0000f96,
-	0x17aa4: 0xe0000f8a, 0x17aa5: 0xe0000f87, 0x17aa6: 0x00303688, 0x17aa7: 0x40303620,
-	0x17aa8: 0xe000102b, 0x17aa9: 0xe0001028, 0x17aaa: 0x00306c03, 0x17aab: 0x40306c1c,
-	0x17aac: 0xe0000fe7, 0x17aad: 0xe0000fe4, 0x17aae: 0xe0000ff9, 0x17aaf: 0xe0000ff6,
-	0x17ab0: 0xe0001025, 0x17ab1: 0xe0001022, 0x17ab2: 0xe0001039, 0x17ab3: 0xe0001036,
-	0x17ab4: 0xe00010d8, 0x17ab5: 0xe00010d5, 0x17ab6: 0xe000110e, 0x17ab7: 0xe000110b,
-	0x17ab8: 0xe0001117, 0x17ab9: 0xe000113b, 0x17aba: 0xe0001138, 0x17abb: 0xe000114d,
-	0x17abc: 0xe000114a, 0x17abd: 0xe0001147, 0x17abe: 0xe0001144, 0x17abf: 0xe0000f64,
-	// Block 0x5eb, offset 0x17ac0
-	0x17ac0: 0x40321220, 0x17ac1: 0x40321a20, 0x17ac2: 0x40322220, 0x17ac3: 0x40322a20,
-	0x17ac4: 0xe0000ad5, 0x17ac5: 0xe0000ad1, 0x17ac6: 0xe0000acd, 0x17ac7: 0xf0000a0a,
-	0x17ac8: 0xf000040a, 0x17ac9: 0xf0000404, 0x17aca: 0xf0000a0a, 0x17acb: 0xf000040a,
-	0x17acc: 0xf0000404, 0x17acd: 0x002bde43, 0x17ace: 0x402bde1e, 0x17acf: 0x002d9a43,
-	0x17ad0: 0x402d9a1e, 0x17ad1: 0x002ee243, 0x17ad2: 0x402ee21e, 0x17ad3: 0x00306c43,
-	0x17ad4: 0x40306c1e, 0x17ad5: 0x00306ca3, 0x17ad6: 0x40306c21, 0x17ad7: 0x00306cc3,
-	0x17ad8: 0x40306c22, 0x17ad9: 0x00306ce3, 0x17ada: 0x40306c23, 0x17adb: 0x00306d03,
-	0x17adc: 0x40306c24, 0x17add: 0x402cae20, 0x17ade: 0xe000b0e0, 0x17adf: 0xe000b0dd,
-	0x17ae0: 0xe000b0e6, 0x17ae1: 0xe000b0e3, 0x17ae2: 0xe00009f4, 0x17ae3: 0xe00009ef,
-	0x17ae4: 0x002d3a88, 0x17ae5: 0x402d3a20, 0x17ae6: 0xe0000bbe, 0x17ae7: 0xe0000bbb,
-	0x17ae8: 0xe0000c99, 0x17ae9: 0xe0000c96, 0x17aea: 0xe0000e20, 0x17aeb: 0xe0000e1d,
-	0x17aec: 0xe000b13a, 0x17aed: 0xe000b137, 0x17aee: 0xe0001162, 0x17aef: 0xe000115f,
-	0x17af0: 0xe0000c8d, 0x17af1: 0xf0000a0a, 0x17af2: 0xf000040a, 0x17af3: 0xf0000404,
-	0x17af4: 0xe0000bac, 0x17af5: 0xe0000ba9, 0x17af6: 0x002d7888, 0x17af7: 0x00319488,
-	0x17af8: 0x002e9e63, 0x17af9: 0x402e9e1f, 0x17afa: 0xe000b0f8, 0x17afb: 0xe000b0f5,
-	0x17afc: 0xe00009ea, 0x17afd: 0xe00009e5, 0x17afe: 0xe0000e19, 0x17aff: 0xe0000e15,
-	// Block 0x5ec, offset 0x17b00
-	0x17b00: 0xe000098f, 0x17b01: 0xe000098c, 0x17b02: 0xe0000995, 0x17b03: 0xe0000992,
-	0x17b04: 0xe0000b62, 0x17b05: 0xe0000b5f, 0x17b06: 0xe0000b68, 0x17b07: 0xe0000b65,
-	0x17b08: 0xe0000c6c, 0x17b09: 0xe0000c69, 0x17b0a: 0xe0000c72, 0x17b0b: 0xe0000c6f,
-	0x17b0c: 0xe0000e4a, 0x17b0d: 0xe0000e47, 0x17b0e: 0xe0000e50, 0x17b0f: 0xe0000e4d,
-	0x17b10: 0xe0000ee8, 0x17b11: 0xe0000ee5, 0x17b12: 0xe0000eee, 0x17b13: 0xe0000eeb,
-	0x17b14: 0xe0001053, 0x17b15: 0xe0001050, 0x17b16: 0xe0001059, 0x17b17: 0xe0001056,
-	0x17b18: 0xe0000f61, 0x17b19: 0xe0000f5e, 0x17b1a: 0xe0000fa5, 0x17b1b: 0xe0000fa2,
-	0x17b1c: 0x00312288, 0x17b1d: 0x40312220, 0x17b1e: 0xe0000bf4, 0x17b1f: 0xe0000bf1,
-	0x17b20: 0x002ebc88, 0x17b21: 0x402c8c20, 0x17b22: 0x002f2288, 0x17b23: 0x402f2220,
-	0x17b24: 0x00314088, 0x17b25: 0x40314020, 0x17b26: 0xe000096f, 0x17b27: 0xe000096c,
-	0x17b28: 0xe0000b32, 0x17b29: 0xe0000b2f, 0x17b2a: 0xe000b128, 0x17b2b: 0xe000b125,
-	0x17b2c: 0xe000b12e, 0x17b2d: 0xe000b12b, 0x17b2e: 0xe0000e04, 0x17b2f: 0xe0000e01,
-	0x17b30: 0xe000b134, 0x17b31: 0xe000b131, 0x17b32: 0xe0001129, 0x17b33: 0xe0001126,
-	0x17b34: 0x402e5e20, 0x17b35: 0x402ed020, 0x17b36: 0x40305a20, 0x17b37: 0x402dd420,
-	0x17b38: 0xe0000abf, 0x17b39: 0xe0000ec4, 0x17b3a: 0x002be888, 0x17b3b: 0x002c4488,
-	0x17b3c: 0x402c4420, 0x17b3d: 0x002e3888, 0x17b3e: 0x00303e88, 0x17b3f: 0x402ffc20,
-	// Block 0x5ed, offset 0x17b40
-	0x17b40: 0xe00009b1, 0x17b41: 0xe00009ae, 0x17b42: 0xe0000a22, 0x17b43: 0xe0000a1f,
-	0x17b44: 0xe0000a28, 0x17b45: 0xe0000a25, 0x17b46: 0xe0000a2e, 0x17b47: 0xe0000a2b,
-	0x17b48: 0xe0000a5a, 0x17b49: 0xe0000a56, 0x17b4a: 0xe0000a8c, 0x17b4b: 0xe0000a89,
-	0x17b4c: 0xe0000a98, 0x17b4d: 0xe0000a95, 0x17b4e: 0xe0000aa4, 0x17b4f: 0xe0000aa1,
-	0x17b50: 0xe0000a92, 0x17b51: 0xe0000a8f, 0x17b52: 0xe0000a9e, 0x17b53: 0xe0000a9b,
-	0x17b54: 0xe000b110, 0x17b55: 0xe000b10d, 0x17b56: 0xe000b10a, 0x17b57: 0xe000b107,
-	0x17b58: 0xe0000b7c, 0x17b59: 0xe0000b79, 0x17b5a: 0xe0000b82, 0x17b5b: 0xe0000b7f,
-	0x17b5c: 0xe0000b39, 0x17b5d: 0xe0000b35, 0x17b5e: 0xe0000b8c, 0x17b5f: 0xe0000b89,
-	0x17b60: 0xe0000bd0, 0x17b61: 0xe0000bcd, 0x17b62: 0xe0000c00, 0x17b63: 0xe0000bfd,
-	0x17b64: 0xe0000c0c, 0x17b65: 0xe0000c09, 0x17b66: 0xe0000bfa, 0x17b67: 0xe0000bf7,
-	0x17b68: 0xe0000c06, 0x17b69: 0xe0000c03, 0x17b6a: 0xe0000c12, 0x17b6b: 0xe0000c0f,
-	0x17b6c: 0xe0000c7e, 0x17b6d: 0xe0000c7b, 0x17b6e: 0xe000b116, 0x17b6f: 0xe000b113,
-	0x17b70: 0xe0000c93, 0x17b71: 0xe0000c90, 0x17b72: 0xe0000cab, 0x17b73: 0xe0000ca8,
-	0x17b74: 0xe0000cb1, 0x17b75: 0xe0000cae, 0x17b76: 0xe0000cde, 0x17b77: 0xe0000cdb,
-	0x17b78: 0xe0000ce5, 0x17b79: 0xe0000ce1, 0x17b7a: 0xe0000cf2, 0x17b7b: 0xe0000cef,
-	0x17b7c: 0xe0000cec, 0x17b7d: 0xe0000ce9, 0x17b7e: 0x002e8223, 0x17b7f: 0x402e821d,
-	// Block 0x5ee, offset 0x17b80
-	0x17b80: 0xe0000d24, 0x17b81: 0xe0000d21, 0x17b82: 0xe0000d2a, 0x17b83: 0xe0000d27,
-	0x17b84: 0xe0000d69, 0x17b85: 0xe0000d66, 0x17b86: 0xe0000d7b, 0x17b87: 0xe0000d78,
-	0x17b88: 0xe0000d87, 0x17b89: 0xe0000d84, 0x17b8a: 0xe0000d81, 0x17b8b: 0xe0000d7e,
-	0x17b8c: 0xe000b146, 0x17b8d: 0xe000b143, 0x17b8e: 0xe0000df5, 0x17b8f: 0xe0000df1,
-	0x17b90: 0xe000b122, 0x17b91: 0xe000b11f, 0x17b92: 0xe000b11c, 0x17b93: 0xe000b119,
-	0x17b94: 0xe0000ea7, 0x17b95: 0xe0000ea4, 0x17b96: 0xe0000ead, 0x17b97: 0xe0000eaa,
-	0x17b98: 0xe0000ed6, 0x17b99: 0xe0000ed3, 0x17b9a: 0xe0000ef4, 0x17b9b: 0xe0000ef1,
-	0x17b9c: 0xe0000efb, 0x17b9d: 0xe0000ef7, 0x17b9e: 0xe0000f02, 0x17b9f: 0xe0000eff,
-	0x17ba0: 0xe0000f41, 0x17ba1: 0xe0000f3e, 0x17ba2: 0xe0000f53, 0x17ba3: 0xe0000f50,
-	0x17ba4: 0xe0000f26, 0x17ba5: 0xe0000f22, 0x17ba6: 0xe0000f3a, 0x17ba7: 0xe0000f36,
-	0x17ba8: 0xe0000f5a, 0x17ba9: 0xe0000f56, 0x17baa: 0xe0000f93, 0x17bab: 0xe0000f90,
-	0x17bac: 0xe0000f9f, 0x17bad: 0xe0000f9c, 0x17bae: 0xe0000fb1, 0x17baf: 0xe0000fae,
-	0x17bb0: 0xe0000fab, 0x17bb1: 0xe0000fa8, 0x17bb2: 0xe0001093, 0x17bb3: 0xe0001090,
-	0x17bb4: 0xe000109f, 0x17bb5: 0xe000109c, 0x17bb6: 0xe0001099, 0x17bb7: 0xe0001096,
-	0x17bb8: 0xe000b164, 0x17bb9: 0xe000b161, 0x17bba: 0xe000b15e, 0x17bbb: 0xe000b15b,
-	0x17bbc: 0xe00010a9, 0x17bbd: 0xe00010a6, 0x17bbe: 0xe00010af, 0x17bbf: 0xe00010ac,
-	// Block 0x5ef, offset 0x17bc0
-	0x17bc0: 0xe00010d2, 0x17bc1: 0xe00010cf, 0x17bc2: 0xe00010cc, 0x17bc3: 0xe00010c9,
-	0x17bc4: 0xe00010e1, 0x17bc5: 0xe00010de, 0x17bc6: 0xe00010e7, 0x17bc7: 0xe00010e4,
-	0x17bc8: 0xe00010ed, 0x17bc9: 0xe00010ea, 0x17bca: 0xe00010fc, 0x17bcb: 0xe00010f9,
-	0x17bcc: 0xe00010f6, 0x17bcd: 0xe00010f3, 0x17bce: 0xe0001123, 0x17bcf: 0xe0001120,
-	0x17bd0: 0xe0001141, 0x17bd1: 0xe000113e, 0x17bd2: 0xe0001153, 0x17bd3: 0xe0001150,
-	0x17bd4: 0xe0001159, 0x17bd5: 0xe0001156, 0x17bd6: 0xe0000c15, 0x17bd7: 0xe0000f8d,
-	0x17bd8: 0xe00010db, 0x17bd9: 0xe0001111, 0x17bda: 0xf0000404, 0x17bdb: 0xe0000f70,
-	0x17bdc: 0x40300420, 0x17bdd: 0x40300620, 0x17bde: 0xe0000f7f, 0x17bdf: 0x402c9620,
-	0x17be0: 0xe000099b, 0x17be1: 0xe0000998, 0x17be2: 0xe0000989, 0x17be3: 0xe0000986,
-	0x17be4: 0xe000b0f2, 0x17be5: 0xe000b0ef, 0x17be6: 0xe000b104, 0x17be7: 0xe000b101,
-	0x17be8: 0xe0000940, 0x17be9: 0xe000093c, 0x17bea: 0xe0000938, 0x17beb: 0xe0000934,
-	0x17bec: 0xe00009aa, 0x17bed: 0xe00009a6, 0x17bee: 0xe000b0ec, 0x17bef: 0xe000b0e9,
-	0x17bf0: 0xe000b0fe, 0x17bf1: 0xe000b0fb, 0x17bf2: 0xe000091a, 0x17bf3: 0xe0000916,
-	0x17bf4: 0xe0000912, 0x17bf5: 0xe000090e, 0x17bf6: 0xe00009a2, 0x17bf7: 0xe000099e,
-	0x17bf8: 0xe0000b6e, 0x17bf9: 0xe0000b6b, 0x17bfa: 0xe0000b5c, 0x17bfb: 0xe0000b59,
-	0x17bfc: 0xe0000b26, 0x17bfd: 0xe0000b23, 0x17bfe: 0x002c98c3, 0x17bff: 0x402c9822,
-	// Block 0x5f0, offset 0x17c00
-	0x17c00: 0x002c9903, 0x17c01: 0x402c9824, 0x17c02: 0xe0000b13, 0x17c03: 0xe0000b0f,
-	0x17c04: 0xe0000b0b, 0x17c05: 0xe0000b07, 0x17c06: 0xe0000b75, 0x17c07: 0xe0000b71,
-	0x17c08: 0xe0000c66, 0x17c09: 0xe0000c63, 0x17c0a: 0xe0000c78, 0x17c0b: 0xe0000c75,
-	0x17c0c: 0xe0000e84, 0x17c0d: 0xe0000e81, 0x17c0e: 0xe0000e44, 0x17c0f: 0xe0000e41,
-	0x17c10: 0xe000b140, 0x17c11: 0xe000b13d, 0x17c12: 0xe000b152, 0x17c13: 0xe000b14f,
-	0x17c14: 0xe0000dc5, 0x17c15: 0xe0000dc1, 0x17c16: 0xe0000dbd, 0x17c17: 0xe0000db9,
-	0x17c18: 0xe0000e8b, 0x17c19: 0xe0000e87, 0x17c1a: 0xe000b14c, 0x17c1b: 0xe000b149,
-	0x17c1c: 0xe000b158, 0x17c1d: 0xe000b155, 0x17c1e: 0xe0000e75, 0x17c1f: 0xe0000e71,
-	0x17c20: 0xe0000e6d, 0x17c21: 0xe0000e69, 0x17c22: 0xe0000e7d, 0x17c23: 0xe0000e79,
-	0x17c24: 0xe000108d, 0x17c25: 0xe000108a, 0x17c26: 0xe000104d, 0x17c27: 0xe000104a,
-	0x17c28: 0xe000b16a, 0x17c29: 0xe000b167, 0x17c2a: 0xe000b170, 0x17c2b: 0xe000b16d,
-	0x17c2c: 0xe000107e, 0x17c2d: 0xe000107a, 0x17c2e: 0xe0001076, 0x17c2f: 0xe0001072,
-	0x17c30: 0xe0001086, 0x17c31: 0xe0001082, 0x17c32: 0xe0001108, 0x17c33: 0xe0001105,
-	0x17c34: 0xe0001135, 0x17c35: 0xe0001132, 0x17c36: 0xe000112f, 0x17c37: 0xe000112c,
-	0x17c38: 0xe000111d, 0x17c39: 0xe000111a, 0x17c3a: 0xe0000d0a, 0x17c3b: 0xe0000d07,
-	0x17c3c: 0x0030d888, 0x17c3d: 0x4030d820, 0x17c3e: 0x00312088, 0x17c3f: 0x40312020,
-	// Block 0x5f1, offset 0x17c40
-	0x17c40: 0x6d200220, 0x17c41: 0x6c16fe20, 0x17c42: 0x6d0bdc20, 0x17c43: 0x6d1b3420,
-	0x17c44: 0x6d0bd620, 0x17c45: 0x6cc58020, 0x17c46: 0x6c6ece20, 0x17c47: 0xe000240a,
-	0x17c48: 0x6c29ae20, 0x17c49: 0x6c29ca20, 0x17c4a: 0x6c100220, 0x17c4b: 0x6c6b9220,
-	0x17c4c: 0x6cff9e20, 0x17c4d: 0x6cffa020, 0x17c4e: 0x6cf39620, 0x17c4f: 0x6cedd020,
-	0x17c50: 0x6cedd220, 0x17c51: 0x6cf39820, 0x17c52: 0x6cd8fa20, 0x17c53: 0x6d10c420,
-	0x17c54: 0x6c630820, 0x17c55: 0x6c616620, 0x17c56: 0x6d036620, 0x17c57: 0x6d036820,
-	0x17c58: 0x6cd49220, 0x17c59: 0x6cdbee20, 0x17c5b: 0x6cc64c20,
-	0x17c5c: 0x6cc63420, 0x17c5d: 0x6d266620, 0x17c5e: 0x6c271e20, 0x17c5f: 0x2ca22083,
-	0x17c60: 0x6c9f8820, 0x17c61: 0x6cd74220, 0x17c62: 0x6cd74420, 0x17c63: 0x6c0c6c20,
-	0x17c64: 0x6d2ff820, 0x17c65: 0x6d2ff220, 0x17c66: 0x6cbb3620, 0x17c67: 0x6ca96420,
-	0x17c68: 0x6cc38820, 0x17c69: 0xe000243f, 0x17c6a: 0xe0002442, 0x17c6b: 0x6ca2c020,
-	0x17c6c: 0x6cd2f220, 0x17c6d: 0x6cd40820, 0x17c6e: 0x6cd30220, 0x17c6f: 0x6cd86820,
-	0x17c70: 0x6cd86a20, 0x17c71: 0x6c429620, 0x17c72: 0x6cee4220, 0x17c73: 0xe0002451,
-	0x17c74: 0x6cee4020, 0x17c75: 0xe000244e, 0x17c76: 0x6cc5ba20, 0x17c77: 0x6cc60a20,
-	0x17c78: 0x02ff1684, 0x17c79: 0x03000484, 0x17c7a: 0x6d24ba20, 0x17c7b: 0x6d24bc20,
-	0x17c7c: 0x6cc78020, 0x17c7d: 0x6c719e20, 0x17c7e: 0x6c12be20, 0x17c7f: 0x6c12c220,
-	// Block 0x5f2, offset 0x17c80
-	0x17c80: 0x6c12c420, 0x17c81: 0x6c562e20, 0x17c82: 0x6d199a20, 0x17c83: 0x6cf76620,
-	0x17c84: 0x6cf94e20, 0x17c85: 0x6c673620, 0x17c86: 0x0313a484, 0x17c87: 0xe000246c,
-	0x17c88: 0x6d0d2e20, 0x17c89: 0x6c077420, 0x17c8a: 0xe000246f, 0x17c8b: 0x6c17e220,
-	0x17c8c: 0x6c21a220, 0x17c8d: 0x6c21a620, 0x17c8e: 0x6c21f020, 0x17c8f: 0x6c3f9a20,
-	0x17c90: 0x6c6c7c20, 0x17c91: 0x6c16dc20, 0x17c92: 0x6c16de20, 0x17c93: 0x6d2f1620,
-	0x17c94: 0x6c9ae820, 0x17c95: 0xe000247b, 0x17c96: 0x6c3f9c20, 0x17c97: 0x6d222020,
-	0x17c98: 0x6cbe6a20, 0x17c99: 0x6cef7e20, 0x17c9a: 0x6d13ae20, 0x17c9b: 0x6c3c9820,
-	0x17c9c: 0x6c3a3020, 0x17c9d: 0x6cd29c20, 0x17c9e: 0xe0002481, 0x17c9f: 0x6cd29e20,
-	0x17ca0: 0x6cd2a020, 0x17ca1: 0xe0002484, 0x17ca2: 0x6c96ae20, 0x17ca3: 0x6c476c20,
-	0x17ca4: 0x6c4b2420, 0x17ca5: 0x6d220e20, 0x17ca6: 0x6ca7ce20, 0x17ca7: 0x6c920a20,
-	0x17ca8: 0x6c975620, 0x17ca9: 0x6c5a4020, 0x17caa: 0x6c9e4820, 0x17cab: 0x6cb6bc20,
-	0x17cac: 0x6cb6be20, 0x17cad: 0x6c1bd020, 0x17cae: 0x6c1bd220, 0x17caf: 0x6c902820,
-	0x17cb0: 0x6c902a20, 0x17cb1: 0x6c4ab620, 0x17cb2: 0x6c4ab420, 0x17cb3: 0x2c4a3883,
-	// Block 0x5f3, offset 0x17cc0
-	0x17cc0: 0x2d13b686, 0x17cc1: 0x2c4bb683, 0x17cc2: 0x2d3a5283, 0x17cc3: 0x2cb1dc83,
-	0x17cc4: 0x2d15aa84, 0x17cc5: 0x2c73be83, 0x17cc6: 0x2c37b486, 0x17cc7: 0x2ce7e283,
-	0x17cc8: 0x2cc55a84, 0x17cc9: 0x2c372e83, 0x17cca: 0x2cc80e83, 0x17ccb: 0x2c030a84,
-	0x17ccc: 0x2c6ed083, 0x17ccd: 0x2c9d1683, 0x17cce: 0x2c0d9e83, 0x17ccf: 0x2c610c83,
-	0x17cd0: 0x2cb9ec83, 0x17cd1: 0x2c29b083, 0x17cd2: 0x2c855c83, 0x17cd3: 0x2c059c83,
-	0x17cd4: 0x2c08aa83, 0x17cd5: 0x2c397e83, 0x17cd6: 0x2cf83483, 0x17cd7: 0x2cd22485,
-	0x17cd8: 0x2c100483, 0x17cd9: 0x2c6a4e83, 0x17cda: 0x2c16e083, 0x17cdb: 0x2cd7b483,
-	0x17cdc: 0x2d200483, 0x17cdd: 0x2c79c883, 0x17cde: 0x2ceed683, 0x17cdf: 0x2ce91084,
-	0x17ce0: 0x2cd2e283, 0x17ce1: 0x2d34ca83, 0x17ce2: 0x2cdba683, 0x17ce3: 0x2cf55a83,
-	0x17ce4: 0x2c26e483, 0x17ce5: 0x2caa6e84, 0x17ce6: 0x2d3f6883, 0x17ce7: 0x2c9db683,
-	0x17ce8: 0x2c25b083, 0x17ce9: 0x2cffa283, 0x17cea: 0x2d1edc83, 0x17ceb: 0x2cd18a83,
-	0x17cec: 0x2c17fa83, 0x17ced: 0x2cccb083, 0x17cee: 0x2c1fd683, 0x17cef: 0x2c454a83,
-	0x17cf0: 0x2c610e83, 0x17cf1: 0x2c6c1a83, 0x17cf2: 0x2c420a83, 0x17cf3: 0x2d107e83,
-	0x17cf4: 0x2c4a0283, 0x17cf5: 0x2d1ac083, 0x17cf6: 0x2c45cc83, 0x17cf7: 0x2d163c83,
-	0x17cf8: 0x2c454c83, 0x17cf9: 0x2c616883, 0x17cfa: 0x2cccb283, 0x17cfb: 0x2c1bd483,
-	0x17cfc: 0x2d02a283, 0x17cfd: 0x2c436083, 0x17cfe: 0x2c563883, 0x17cff: 0x2cd43684,
-	// Block 0x5f4, offset 0x17d00
-	0x17d00: 0x2d337e83, 0x17d01: 0x2cb3fc83, 0x17d02: 0x2cf17a84, 0x17d03: 0x2c30f883,
-	0x17d04: 0x2c6c1e83, 0x17d05: 0x2c398083, 0x17d06: 0x2cf39a83, 0x17d07: 0x2cc63684,
-	0x17d08: 0x2d264283, 0x17d09: 0x2d266885, 0x17d0a: 0x2ca25c84, 0x17d0b: 0x2cba3883,
-	0x17d0c: 0x2d34cc83, 0x17d0d: 0x2c271283, 0x17d0e: 0x2cd49883, 0x17d0f: 0x2cf39c83,
-	0x17d10: 0x2c08ac83, 0x17d11: 0x2c98c083, 0x17d12: 0x2cd2e483, 0x17d13: 0x2cb72683,
-	0x17d14: 0x2cd70284, 0x17d15: 0x2c5d8484, 0x17d16: 0x2d2f8083, 0x17d17: 0x2c3fa083,
-	0x17d18: 0x2d10c683, 0x17d19: 0x2cac5083, 0x17d1a: 0x2cb14483, 0x17d1b: 0x2d0b0883,
-	0x17d1c: 0x2ca96683, 0x17d1d: 0x2cc34c83, 0x17d1e: 0x2d07fa83, 0x17d1f: 0x2d22b883,
-	0x17d20: 0x2c483e83, 0x17d21: 0x2cec0c83, 0x17d22: 0x2c415c83, 0x17d23: 0x2cd0d284,
-	0x17d24: 0x2d1e6c83, 0x17d25: 0x2ce47e83, 0x17d26: 0x2cb04483, 0x17d27: 0x2ca54083,
-	0x17d28: 0x2c0e4683, 0x17d29: 0x2c040883, 0x17d2a: 0x2cafa883, 0x17d2b: 0x2c9f8a83,
-	0x17d2c: 0x2ca26483, 0x17d2d: 0x2c98c283, 0x17d2e: 0x2cd2a883, 0x17d2f: 0x2cd22c83,
-	0x17d30: 0x2cd2f483, 0x17d31: 0x2cc74083, 0x17d32: 0x2c50b283, 0x17d33: 0x2d08f283,
-	0x17d34: 0x2c856c83, 0x17d35: 0x2d39f083, 0x17d36: 0x2c9cd683, 0x17d37: 0x2c9d1a83,
-	0x17d38: 0x2c3d1a83, 0x17d39: 0x2cedf483, 0x17d3a: 0x2d0f7683, 0x17d3b: 0x2d221c83,
-	0x17d3c: 0x2c819a83, 0x17d3d: 0x2c373083, 0x17d3e: 0x2c82b283, 0x17d3f: 0x2c378483,
-	// Block 0x5f5, offset 0x17d40
-	0x17d40: 0x2d22c683, 0x17d41: 0x2cc78283, 0x17d42: 0x2c189483, 0x17d43: 0x2d3f2a83,
-	0x17d44: 0x2d357083, 0x17d45: 0x2c6fd083, 0x17d46: 0x2ccf0683, 0x17d47: 0x2c201683,
-	0x17d48: 0x2d385283, 0x17d49: 0x2c449e83, 0x17d4a: 0x2ccb1483, 0x17d4b: 0x2c12aa83,
-	0x17d4c: 0x2c549483, 0x17d4d: 0x2c1d0883, 0x17d4e: 0x2d093883, 0x17d4f: 0x2d03ba83,
-	0x17d50: 0x2d13be83, 0x17d51: 0x2d0b7083, 0x17d52: 0x2c665283, 0x17d53: 0x2c68c683,
-	0x17d54: 0x2d0c5c83, 0x17d55: 0x2c475c83, 0x17d56: 0x2c30fa83, 0x17d57: 0x2cd2b083,
-	0x17d58: 0x2d357c83, 0x17d59: 0x2c06dc83, 0x17d5a: 0x2c1be883, 0x17d5b: 0x2d407e84,
-	0x17d5c: 0x2d40a683, 0x17d5d: 0x2ccfa483, 0x17d5e: 0x2c17ce83, 0x17d5f: 0x2d02ae83,
-	0x17d60: 0x2c18a083, 0x17d61: 0x2c21a883, 0x17d62: 0x2d169e83, 0x17d63: 0x2d1fa483,
-	0x17d64: 0x2c0b7883, 0x17d65: 0x2c84fc83, 0x17d66: 0x2c6c2e84, 0x17d67: 0x2d2f0083,
-	0x17d68: 0x2c9ac683, 0x17d69: 0x2c3fba83, 0x17d6a: 0x2c859883, 0x17d6b: 0x2d3c5683,
-	0x17d6c: 0x2d222283, 0x17d6d: 0x2cbe3083, 0x17d6e: 0x2c39f283, 0x17d6f: 0x2c9e5683,
-	0x17d70: 0x2c43d083, 0x17d71: 0x2ceeee83, 0x17d72: 0x2c6fb483, 0x17d73: 0x2d19ba83,
-	0x17d74: 0x2d12dc83, 0x17d75: 0x2c3c2c83, 0x17d76: 0x2c39f483, 0x17d77: 0x2cd25883,
-	0x17d78: 0x2cd44283, 0x17d79: 0x2cfd6683, 0x17d7a: 0x2c969883, 0x17d7b: 0x2c476e83,
-	0x17d7c: 0x2c42bc83, 0x17d7d: 0x2c0bf483, 0x17d7e: 0x2c310e83, 0x17d7f: 0x2c170e83,
-	// Block 0x5f6, offset 0x17d80
-	0x17d80: 0x2c43e083, 0x17d81: 0x2c4ae283, 0x17d82: 0x2d211283, 0x17d83: 0x2ca79a83,
-	0x17d84: 0x2c91bc83, 0x17d85: 0x2c924c83, 0x17d86: 0x2c973283, 0x17d87: 0x2c966883,
-	0x17d88: 0x2c59ce83, 0x17d89: 0x2cd56083, 0x17d8a: 0x2c521c83, 0x17d8b: 0x2d353483,
-	0x17d8c: 0x2c9e3283, 0x17d8d: 0x2c2f7483, 0x17d8e: 0x2c47a683, 0x17d8f: 0x2cd56683,
-	0x17d90: 0x2c08a283, 0x17d91: 0x2cb63483, 0x17d92: 0x2c1bc283, 0x17d93: 0x2c8fb083,
-	0x17d94: 0x2c4a9683, 0x17d95: 0x2d26f683,
-	0x17db0: 0x40273a20, 0x17db1: 0x40273c20, 0x17db2: 0x40273e20, 0x17db3: 0x40274020,
-	0x17db4: 0x40274220, 0x17db5: 0x40274420, 0x17db6: 0x40274620, 0x17db7: 0x40274820,
-	0x17db8: 0x40274a20, 0x17db9: 0x40274c20, 0x17dba: 0x40274e20, 0x17dbb: 0x40275020,
-	// Block 0x5f7, offset 0x17dc0
-	0x17dc0: 0x00021283, 0x17dc1: 0x40025c20, 0x17dc2: 0x40030420, 0x17dc3: 0x40051220,
-	0x17dc4: 0x40279a20, 0x17dc5: 0x4027ca20, 0x17dc6: 0xe0002206, 0x17dc7: 0x6c8c9620,
-	0x17dc8: 0x40049c20, 0x17dc9: 0x40049e20, 0x17dca: 0x4004a020, 0x17dcb: 0x4004a220,
-	0x17dcc: 0x4004a420, 0x17dcd: 0x4004a620, 0x17dce: 0x4004a820, 0x17dcf: 0x4004aa20,
-	0x17dd0: 0x4004ac20, 0x17dd1: 0x4004ae20, 0x17dd2: 0x40279c20, 0x17dd3: 0x40279e20,
-	0x17dd4: 0x4004b020, 0x17dd5: 0x4004b220, 0x17dd6: 0x4004b420, 0x17dd7: 0x4004b620,
-	0x17dd8: 0x4004b820, 0x17dd9: 0x4004ba20, 0x17dda: 0x4004bc20, 0x17ddb: 0x4004be20,
-	0x17ddc: 0x40023820, 0x17ddd: 0x4003ea20, 0x17dde: 0x4003ec20, 0x17ddf: 0x4003ee20,
-	0x17de0: 0x4027a020, 0x17de1: 0xe0000267, 0x17de2: 0xe000037f, 0x17de3: 0xe0000459,
-	0x17de4: 0xe000052e, 0x17de5: 0xe00005f8, 0x17de6: 0xe00006c3, 0x17de7: 0xe000076b,
-	0x17de8: 0xe0000817, 0x17de9: 0xe00008bc, 0x17dea: 0xada12202, 0x17deb: 0xae412302,
-	0x17dec: 0xae812402, 0x17ded: 0xade12502, 0x17dee: 0xae012602, 0x17def: 0xae012702,
-	0x17df0: 0x40023a20, 0x17df1: 0x4027ce20, 0x17df2: 0xe0000152, 0x17df3: 0x4027d020,
-	0x17df4: 0xe0000155, 0x17df5: 0x4027d220, 0x17df6: 0x00279c84, 0x17df7: 0x4027a220,
-	0x17df8: 0x2cd22484, 0x17df9: 0x2ca75483, 0x17dfa: 0x2cc96283, 0x17dfb: 0x4027cc20,
-	0x17dfc: 0xe000231a, 0x17dfd: 0x40051420, 0x17dfe: 0x4027a420, 0x17dff: 0x4027a620,
-	// Block 0x5f8, offset 0x17e00
-	0x17e00: 0x00633a84, 0x17e01: 0x00634484, 0x17e02: 0x0064f684, 0x17e03: 0x0064f884,
-	0x17e04: 0x00635a84, 0x17e05: 0x00635c84, 0x17e06: 0x00635e84, 0x17e07: 0x0063ee84,
-	0x17e08: 0x0063f084, 0x17e09: 0x0063f684, 0x17e0a: 0x00640884, 0x17e0b: 0x00640a84,
-	0x17e0c: 0x00640e84, 0x17e0d: 0x00642284, 0x17e0e: 0x00642884,
-	0x17e10: 0x4027a820, 0x17e11: 0x4027aa20, 0x17e12: 0x2d13b685, 0x17e13: 0x2c37b485,
-	0x17e14: 0x2cc9f285, 0x17e15: 0x2cd87484, 0x17e16: 0x2cce4884, 0x17e17: 0x2d378285,
-	0x17e18: 0x2cfa2684, 0x17e19: 0x2c63fc83, 0x17e1a: 0x2d15aa83, 0x17e1b: 0x2c0dba83,
-	0x17e1c: 0x2c2f4083, 0x17e1d: 0x2ce45484, 0x17e1e: 0x2c2a8a83, 0x17e1f: 0x2cc55a83,
-	0x17e20: 0xe000237a, 0x17e21: 0xe0002383, 0x17e22: 0xe0002380, 0x17e23: 0xe000237d,
-	0x17e24: 0x40661c20, 0x17e25: 0xe000238c, 0x17e26: 0x40661620, 0x17e27: 0xe0002389,
-	0x17e28: 0xe000239e, 0x17e29: 0xe0002386, 0x17e2a: 0xe0002395, 0x17e2b: 0xe000239b,
-	0x17e2c: 0x40663420, 0x17e2d: 0x4065f220, 0x17e2e: 0xe000238f, 0x17e2f: 0xe0002392,
-	0x17e30: 0x40663020, 0x17e31: 0x40663220, 0x17e32: 0x40662c20, 0x17e33: 0xe0002398,
-	0x17e34: 0x0065dc99, 0x17e35: 0x0065e699, 0x17e36: 0x0065ee99, 0x17e37: 0x0065f499,
-	0x17e38: 0x40660c20, 0x17e39: 0x40660e20, 0x17e3a: 0x40661020,
-	// Block 0x5f9, offset 0x17e40
-	0x17e40: 0xf0000404, 0x17e41: 0xf0000404, 0x17e42: 0xf0000404, 0x17e43: 0xf0000404,
-	0x17e44: 0xf0000404, 0x17e45: 0xf0000404, 0x17e46: 0xf0000404, 0x17e47: 0xf0000404,
-	0x17e48: 0xf0000404, 0x17e49: 0xf0000404, 0x17e4a: 0xf0000404, 0x17e4b: 0xf0000404,
-	0x17e4c: 0xf0000404, 0x17e4d: 0xf0000404, 0x17e4e: 0xe000004c, 0x17e4f: 0xe0000051,
-	0x17e50: 0xe0000056, 0x17e51: 0xe000005b, 0x17e52: 0xe0000060, 0x17e53: 0xe0000065,
-	0x17e54: 0xe000006a, 0x17e55: 0xe000006f, 0x17e56: 0xe0000083, 0x17e57: 0xe000008d,
-	0x17e58: 0xe0000092, 0x17e59: 0xe0000097, 0x17e5a: 0xe000009c, 0x17e5b: 0xe00000a1,
-	0x17e5c: 0xe0000088, 0x17e5d: 0xe0000074, 0x17e5e: 0xe000007c,
-	0x17e60: 0xe000aff9, 0x17e61: 0xe000af95, 0x17e62: 0xe000afcd, 0x17e63: 0xe000afdd,
-	0x17e64: 0xe000afe9, 0x17e65: 0xe000afb5, 0x17e66: 0xe000afc1, 0x17e67: 0xe000af89,
-	0x17e68: 0xe000afad, 0x17e69: 0xe000afd5, 0x17e6a: 0xe000b001, 0x17e6b: 0xe000af9d,
-	0x17e6c: 0xe000afd9, 0x17e6d: 0xe000afbd, 0x17e6e: 0xe000afa9, 0x17e6f: 0xe000afe5,
-	0x17e70: 0xe000afc9, 0x17e71: 0xe000b009, 0x17e72: 0xe000affd, 0x17e73: 0xe000afd1,
-	0x17e74: 0xe000afb9, 0x17e75: 0xe000afe1, 0x17e76: 0xe000af8d, 0x17e77: 0xe000b00d,
-	0x17e78: 0xe000afb1, 0x17e79: 0xe000af91, 0x17e7a: 0xe000af99, 0x17e7b: 0xe000aff5,
-	0x17e7c: 0xe000afa5, 0x17e7d: 0xe000afc5, 0x17e7e: 0xe000b011, 0x17e7f: 0xe000afed,
-	// Block 0x5fa, offset 0x17e80
-	0x17e80: 0xe000afa1, 0x17e81: 0xe000aff1, 0x17e82: 0xe000b015, 0x17e83: 0xe000b005,
-	0x17e84: 0x2cf20683, 0x17e85: 0x2d200c83, 0x17e86: 0x2cf17a83, 0x17e87: 0x2d32e283,
-	0x17e88: 0xe00002e3, 0x17e89: 0xe00003d8, 0x17e8a: 0xe00004b3, 0x17e8b: 0xe000057d,
-	0x17e8c: 0xe0000648, 0x17e8d: 0xe00006f0, 0x17e8e: 0xe000079c, 0x17e8f: 0xe0000841,
-	0x17e90: 0xe0000ec0, 0x17e91: 0xf0000606, 0x17e92: 0xf0000606, 0x17e93: 0xf0000606,
-	0x17e94: 0xf0000606, 0x17e95: 0xf0000606, 0x17e96: 0xf0000606, 0x17e97: 0xf0000606,
-	0x17e98: 0xf0000606, 0x17e99: 0xf0000606, 0x17e9a: 0xf0000606, 0x17e9b: 0xf0000606,
-	0x17e9c: 0xf0000606, 0x17e9d: 0xf0000606, 0x17e9e: 0xf0000606, 0x17e9f: 0xf0000606,
-	0x17ea0: 0x0062ac86, 0x17ea1: 0x0062b086, 0x17ea2: 0x0062b286, 0x17ea3: 0x0062b686,
-	0x17ea4: 0x0062b886, 0x17ea5: 0x0062ba86, 0x17ea6: 0x0062be86, 0x17ea7: 0x0062c286,
-	0x17ea8: 0x0062c486, 0x17ea9: 0x0062c886, 0x17eaa: 0x0062ca86, 0x17eab: 0x0062cc86,
-	0x17eac: 0x0062ce86, 0x17ead: 0x0062d086, 0x17eae: 0xf0000606, 0x17eaf: 0xf0000606,
-	0x17eb0: 0xf0000606, 0x17eb1: 0xf0000606, 0x17eb2: 0xf0000606, 0x17eb3: 0xf0000606,
-	0x17eb4: 0xf0000606, 0x17eb5: 0xf0000606, 0x17eb6: 0xf0000606, 0x17eb7: 0xf0000606,
-	0x17eb8: 0xf0000606, 0x17eb9: 0xf0000606, 0x17eba: 0xf0000606, 0x17ebb: 0xf0000606,
-	0x17ebc: 0xe0002127, 0x17ebd: 0xe0002122, 0x17ebe: 0xf0000606, 0x17ebf: 0x4027ac20,
-	// Block 0x5fb, offset 0x17ec0
-	0x17ec0: 0x2d13b684, 0x17ec1: 0x2c37b484, 0x17ec2: 0x2cc9f284, 0x17ec3: 0x2cd87483,
-	0x17ec4: 0x2cf41483, 0x17ec5: 0x2c8f2483, 0x17ec6: 0x2cb4c683, 0x17ec7: 0x2c030a83,
-	0x17ec8: 0x2c6f9a83, 0x17ec9: 0x2cd22483, 0x17eca: 0x2d266884, 0x17ecb: 0x2c5d8483,
-	0x17ecc: 0x2cd70283, 0x17ecd: 0x2ca25c83, 0x17ece: 0x2c6c2e83, 0x17ecf: 0x2ce91083,
-	0x17ed0: 0x2cc63683, 0x17ed1: 0x2d399283, 0x17ed2: 0x2d1f9884, 0x17ed3: 0x2ccf3683,
-	0x17ed4: 0x2c9fe683, 0x17ed5: 0x2ce27083, 0x17ed6: 0x2c110e83, 0x17ed7: 0x2d3ac683,
-	0x17ed8: 0x2c814083, 0x17ed9: 0x2c9d3483, 0x17eda: 0x2ca3e283, 0x17edb: 0x2caa6e83,
-	0x17edc: 0x2cd3bc83, 0x17edd: 0x2d1eb483, 0x17ede: 0x2d1b3683, 0x17edf: 0x2d3ab083,
-	0x17ee0: 0x2cfe3a83, 0x17ee1: 0x2d04b283, 0x17ee2: 0x2d013e83, 0x17ee3: 0x2d333683,
-	0x17ee4: 0x2cce4883, 0x17ee5: 0x2d378284, 0x17ee6: 0x2cfa2683, 0x17ee7: 0x2d426084,
-	0x17ee8: 0x2d200884, 0x17ee9: 0x2d13c083, 0x17eea: 0x2d3f7083, 0x17eeb: 0x2d08f883,
-	0x17eec: 0x2c64ca83, 0x17eed: 0x2cb6c883, 0x17eee: 0x2d3e6083, 0x17eef: 0x2d007083,
-	0x17ef0: 0x2d12ca83, 0x17ef1: 0xf0000606, 0x17ef2: 0xf0000606, 0x17ef3: 0xf0000606,
-	0x17ef4: 0xf0000606, 0x17ef5: 0xf0000606, 0x17ef6: 0xf0000606, 0x17ef7: 0xf0000606,
-	0x17ef8: 0xf0000606, 0x17ef9: 0xf0000606, 0x17efa: 0xf0000606, 0x17efb: 0xf0000606,
-	0x17efc: 0xf0000606, 0x17efd: 0xf0000606, 0x17efe: 0xf0000606, 0x17eff: 0xf0000606,
-	// Block 0x5fc, offset 0x17f00
-	0x17f00: 0xf0000203, 0x17f01: 0xf0000203, 0x17f02: 0xf0000203, 0x17f03: 0xf0000203,
-	0x17f04: 0xf0000203, 0x17f05: 0xf0000203, 0x17f06: 0xf0000203, 0x17f07: 0xf0000203,
-	0x17f08: 0xf0000203, 0x17f09: 0xe000b045, 0x17f0a: 0xe000b051, 0x17f0b: 0xe000b05d,
-	0x17f0c: 0xf0001c1d, 0x17f0d: 0xe0000b85, 0x17f0e: 0xf0001d1c, 0x17f0f: 0xe0000d14,
-	0x17f10: 0x00657693, 0x17f11: 0x00657893, 0x17f12: 0x00657a93, 0x17f13: 0x00657e93,
-	0x17f14: 0x00658093, 0x17f15: 0x00658293, 0x17f16: 0x00658493, 0x17f17: 0x00658693,
-	0x17f18: 0x00658893, 0x17f19: 0x00658a93, 0x17f1a: 0x00658c93, 0x17f1b: 0x00658e93,
-	0x17f1c: 0x00659093, 0x17f1d: 0x00659293, 0x17f1e: 0x00659493, 0x17f1f: 0x00659693,
-	0x17f20: 0x00659893, 0x17f21: 0x00659a93, 0x17f22: 0x00659c93, 0x17f23: 0x00659e93,
-	0x17f24: 0x0065a093, 0x17f25: 0x0065a293, 0x17f26: 0x0065a493, 0x17f27: 0x0065a693,
-	0x17f28: 0x0065a893, 0x17f29: 0x0065aa93, 0x17f2a: 0x0065ac93, 0x17f2b: 0x0065ae93,
-	0x17f2c: 0x0065b093, 0x17f2d: 0x0065b293, 0x17f2e: 0x0065b493, 0x17f2f: 0x0065b693,
-	0x17f30: 0x0065b893, 0x17f31: 0x0065ba93, 0x17f32: 0x0065bc93, 0x17f33: 0x0065be93,
-	0x17f34: 0x0065c093, 0x17f35: 0x0065c493, 0x17f36: 0x0065c693, 0x17f37: 0x0065c893,
-	0x17f38: 0x0065ca93, 0x17f39: 0x0065cc93, 0x17f3a: 0x0065ce93, 0x17f3b: 0x0065d093,
-	0x17f3c: 0x0065d293, 0x17f3d: 0x0065d493, 0x17f3e: 0x0065d693,
-	// Block 0x5fd, offset 0x17f40
-	0x17f40: 0xe000230b, 0x17f41: 0xe00022f8, 0x17f42: 0xe00022fc, 0x17f43: 0xe0002311,
-	0x17f44: 0xe0002316, 0x17f45: 0xe000231d, 0x17f46: 0xe0002321, 0x17f47: 0xe0002325,
-	0x17f48: 0xe000232b, 0x17f49: 0xf0001c1c, 0x17f4a: 0xe0002330, 0x17f4b: 0xe000233c,
-	0x17f4c: 0xe0002340, 0x17f4d: 0xe0002337, 0x17f4e: 0xe0002346, 0x17f4f: 0xe000234b,
-	0x17f50: 0xe000234f, 0x17f51: 0xe0002353, 0x17f52: 0xf0001c1c, 0x17f53: 0xe000235e,
-	0x17f54: 0xe0002358, 0x17f55: 0xf0001c1c, 0x17f56: 0xe0002363, 0x17f57: 0xe000236d,
-	0x17f58: 0xf0000203, 0x17f59: 0xf0000203, 0x17f5a: 0xf0000203, 0x17f5b: 0xf0000203,
-	0x17f5c: 0xf0000203, 0x17f5d: 0xf0000203, 0x17f5e: 0xf0000203, 0x17f5f: 0xf0000203,
-	0x17f60: 0xf0000203, 0x17f61: 0xf0000203, 0x17f62: 0xe000b03d, 0x17f63: 0xe000b049,
-	0x17f64: 0xe000b055, 0x17f65: 0xe000b061, 0x17f66: 0xe000b069, 0x17f67: 0xe000b071,
-	0x17f68: 0xe000b079, 0x17f69: 0xe000b081, 0x17f6a: 0xe000b089, 0x17f6b: 0xe000b091,
-	0x17f6c: 0xe000b099, 0x17f6d: 0xe000b0a1, 0x17f6e: 0xe000b0a9, 0x17f6f: 0xe000b0b1,
-	0x17f70: 0xe000b0b9, 0x17f71: 0xe0000c1e, 0x17f72: 0xf0001c1c, 0x17f73: 0xf0001d1d,
-	0x17f74: 0xe0000a31, 0x17f75: 0xf0001d1c, 0x17f76: 0xf0001c1c, 0x17f77: 0xf0001c1c,
-	0x17f78: 0xe0000ac2, 0x17f79: 0xe0000ac6, 0x17f7a: 0xf0001d1d, 0x17f7b: 0xf0000203,
-	0x17f7c: 0xf0000203, 0x17f7d: 0xf0000203, 0x17f7e: 0xf0000203, 0x17f7f: 0xe000b173,
-	// Block 0x5fe, offset 0x17f80
-	0x17f80: 0xf0001d1c, 0x17f81: 0xf0001d1d, 0x17f82: 0xe00009b7, 0x17f83: 0xf0001c1d,
-	0x17f84: 0xf0001c1c, 0x17f85: 0xf0001c1c, 0x17f86: 0xe0000a66, 0x17f87: 0xe0000a7a,
-	0x17f88: 0xf0001d1c, 0x17f89: 0xf0001c1d, 0x17f8a: 0xf0001c1c, 0x17f8b: 0xf0001d1d,
-	0x17f8c: 0xf0001c1c, 0x17f8d: 0xf0001d1d, 0x17f8e: 0xf0001d1d, 0x17f8f: 0xf0001c1c,
-	0x17f90: 0xf0001c1c, 0x17f91: 0xf0001c1c, 0x17f92: 0xe0000d0d, 0x17f93: 0xf0001c1c,
-	0x17f94: 0xf0001c1c, 0x17f95: 0xe0000d3a, 0x17f96: 0xe0000d46, 0x17f97: 0xf0001d1d,
-	0x17f98: 0xe0000eb0, 0x17f99: 0xe0000eb8, 0x17f9a: 0xf0001d1d, 0x17f9b: 0xf0001c1c,
-	0x17f9c: 0xf0001c1d, 0x17f9d: 0xf0001c1d, 0x17f9e: 0xe00010b2, 0x17f9f: 0xe00009c8,
-	0x17fa0: 0xf0000203, 0x17fa1: 0xf0000203, 0x17fa2: 0xf0000203, 0x17fa3: 0xf0000203,
-	0x17fa4: 0xf0000203, 0x17fa5: 0xf0000203, 0x17fa6: 0xf0000203, 0x17fa7: 0xf0000203,
-	0x17fa8: 0xf0000203, 0x17fa9: 0xe000b041, 0x17faa: 0xe000b04d, 0x17fab: 0xe000b059,
-	0x17fac: 0xe000b065, 0x17fad: 0xe000b06d, 0x17fae: 0xe000b075, 0x17faf: 0xe000b07d,
-	0x17fb0: 0xe000b085, 0x17fb1: 0xe000b08d, 0x17fb2: 0xe000b095, 0x17fb3: 0xe000b09d,
-	0x17fb4: 0xe000b0a5, 0x17fb5: 0xe000b0ad, 0x17fb6: 0xe000b0b5, 0x17fb7: 0xe000b0bd,
-	0x17fb8: 0xe000b0c1, 0x17fb9: 0xe000b0c5, 0x17fba: 0xe000b0c9, 0x17fbb: 0xe000b0cd,
-	0x17fbc: 0xe000b0d1, 0x17fbd: 0xe000b0d5, 0x17fbe: 0xe000b0d9, 0x17fbf: 0xe0000bdf,
-	// Block 0x5ff, offset 0x17fc0
-	0x17fc0: 0x6cbf9220, 0x17fc1: 0x6ce52c20,
-	0x17fc4: 0x6c7ae020, 0x17fc5: 0x6cf41220, 0x17fc6: 0x6d1ac620,
-	0x17fcc: 0x6d144820,
-	0x17fd6: 0x6d006c20,
-	0x17fdc: 0x6c1d9020,
-	0x17fe1: 0x6caae820,
-	0x17fe4: 0x6c27da20,
-	0x17fe8: 0x6d067820, 0x17fe9: 0x6d03c420, 0x17feb: 0x6d044c20,
-	0x17fec: 0x6c8e4020, 0x17fed: 0x6c8c1820, 0x17fee: 0x6cfd7e20, 0x17fef: 0x6d1dbe20,
-	0x17ff0: 0x6d030e20, 0x17ff1: 0x6d31ac20, 0x17ff2: 0x6c272020, 0x17ff3: 0x6cf49420,
-	0x17ff4: 0x6cac3820, 0x17ff7: 0x6c968e20,
-	0x17ff8: 0x6cba3c20, 0x17ff9: 0x6d165420, 0x17ffa: 0x6d1a2020, 0x17ffb: 0x6ca58220,
-	0x17ffc: 0x6c1a7e20, 0x17ffd: 0x6c3c1020,
-	// Block 0x600, offset 0x18000
-	0x18001: 0x6d3cec20, 0x18002: 0x6c39ba20, 0x18003: 0x6c029620,
-	0x18004: 0x6cf41c20, 0x18005: 0x6d427220, 0x18007: 0x6d38f620,
-	0x18008: 0x6c304e20, 0x18009: 0x6cda7e20, 0x1800a: 0x6d16a020, 0x1800b: 0x6cbefc20,
-	0x1800c: 0x6c7b8220, 0x1800d: 0x6c831e20, 0x1800e: 0x6ca4da20, 0x1800f: 0x6d3aa820,
-	0x18010: 0x6cd4a220,
-	0x18014: 0x6d062820, 0x18017: 0x6ccfb620,
-	0x18018: 0x6c6bc820, 0x18019: 0x6c2e6620, 0x1801a: 0x6caab620, 0x1801b: 0x6cda8420,
-	0x1801c: 0x6d16d820, 0x1801d: 0x6c905020, 0x1801e: 0x6d1d3220, 0x1801f: 0x6c081020,
-	0x18023: 0x6c7f9220,
-	0x18024: 0x6c9e7220, 0x18025: 0x6d171820, 0x18026: 0x6c85be20, 0x18027: 0x6c61c020,
-	0x18028: 0x6d223420, 0x18029: 0x6c953c20, 0x1802a: 0x6c147420,
-	0x1802e: 0x6c5ce420, 0x1802f: 0x6d063820,
-	0x18030: 0x6c5bb220, 0x18031: 0x6cc53820, 0x18033: 0x6d392620,
-	0x18035: 0x6c4ebe20, 0x18036: 0x6cf88220, 0x18037: 0x6cdf7420,
-	0x18038: 0x6d10f020, 0x18039: 0x6c5bba20, 0x1803a: 0x6c75b820, 0x1803b: 0x6c96c020,
-	0x1803c: 0x6c94ac20, 0x1803d: 0x6ce0fa20, 0x1803e: 0x6d110220, 0x1803f: 0x6d2fba20,
-	// Block 0x601, offset 0x18040
-	0x18040: 0x6d2cf420, 0x18041: 0x6d226420, 0x18042: 0x6d3d7620, 0x18043: 0x6c37d620,
-	0x18044: 0x6cc4cc20, 0x18045: 0x6cb70820, 0x18046: 0x6c1c3e20, 0x18047: 0x6cf45620,
-	0x18048: 0x6c4eda20, 0x18049: 0x6ce17820, 0x1804a: 0x6ccb3220,
-	0x1804c: 0x6cbf4820, 0x1804d: 0x6c824020, 0x1804e: 0x6cc97c20,
-	0x18051: 0x6c7cda20, 0x18052: 0x6cb44620, 0x18053: 0x6cde8a20,
-	0x18054: 0x6cd53020, 0x18055: 0x6d0f6820, 0x18056: 0x6cab8a20, 0x18057: 0x6cdf3620,
-	0x18059: 0x6c9dd220, 0x1805a: 0x6d1b7820, 0x1805b: 0x6c2e3a20,
-	0x1805c: 0x6d228820, 0x1805d: 0x6c9eec20, 0x1805e: 0x6c75ee20, 0x1805f: 0x6ca7b820,
-	0x18060: 0x6d023a20, 0x18061: 0x6d1f8820,
-	0x18064: 0x6c185420, 0x18065: 0x6c3c7620, 0x18066: 0x6c82f820, 0x18067: 0x6c874020,
-	0x18069: 0x6c95d420, 0x1806b: 0x6c617420,
-	0x18070: 0x6cc2b020, 0x18072: 0x6c110220, 0x18073: 0x6c898420,
-	0x18074: 0x6c475620, 0x18075: 0x6c994020, 0x18077: 0x6c489020,
-	0x18078: 0x6cdc2820, 0x1807b: 0x6c996a20,
-	0x1807c: 0x6c976220, 0x1807d: 0x6cc29820, 0x1807e: 0x6cd39420, 0x1807f: 0x6c84b620,
-	// Block 0x602, offset 0x18080
-	0x18081: 0x6cedee20, 0x18082: 0x6c79d820, 0x18083: 0x6c325420,
-	0x18084: 0x6d325a20, 0x18085: 0x6ce62020,
-	0x18088: 0x6c0e0620, 0x18089: 0x6c5d9e20, 0x1808a: 0x6c305420, 0x1808b: 0x6c460e20,
-	0x1808c: 0x6c195220, 0x1808e: 0x6cbd2020, 0x1808f: 0x6c6f0020,
-	0x18090: 0x6c922620, 0x18091: 0x6d042020, 0x18093: 0x6ca3f820,
-	0x18094: 0x6d01a220, 0x18096: 0x6c09be20, 0x18097: 0x6c6b0420,
-	0x18098: 0x6cda9c20, 0x1809a: 0x6c455220,
-	0x1809c: 0x6d200620, 0x1809d: 0x6d03b620, 0x1809e: 0x6cb83c20, 0x1809f: 0x6cafae20,
-	0x180a0: 0x6c2d3620, 0x180a1: 0x6c3f3c20, 0x180a2: 0x6c95de20, 0x180a3: 0x6cb84220,
-	0x180a4: 0x6cb84420, 0x180a5: 0x6ce0ba20, 0x180a6: 0x6c03fa20, 0x180a7: 0x6c418420,
-	0x180a8: 0x6c222420, 0x180a9: 0x6d077e20, 0x180aa: 0x6c80f620,
-	0x180ad: 0x6ccf0c20, 0x180af: 0x6c83a820,
-	0x180b0: 0x6c578820, 0x180b1: 0x6ce7ea20, 0x180b2: 0x6cb0f020, 0x180b3: 0x6c2b2420,
-	0x180b4: 0x6cc85e20, 0x180b5: 0x6c360820, 0x180b6: 0x6cbcb020, 0x180b7: 0x6d178c20,
-	0x180b8: 0x6d3d0020, 0x180b9: 0x6cc8cc20, 0x180ba: 0x6c649420,
-	0x180bc: 0x6c1c2e20, 0x180bd: 0x6c1d1820, 0x180be: 0x6cf66220,
-	// Block 0x603, offset 0x180c0
-	0x180c0: 0x6c94b420, 0x180c1: 0x6c2aa020, 0x180c2: 0x6c8bbe20, 0x180c3: 0x6c747020,
-	0x180c4: 0x6cdae020, 0x180c5: 0x6cfffa20, 0x180c6: 0x6d299020,
-	0x180c9: 0x6d3a7620, 0x180ca: 0x6d2e0e20, 0x180cb: 0x6c64f020,
-	0x180cc: 0x6d408c20, 0x180cd: 0x6c1fa020, 0x180ce: 0x6d022a20, 0x180cf: 0x6c869820,
-	0x180d1: 0x6c1c8e20, 0x180d2: 0x6cf7b820, 0x180d3: 0x6c656020,
-	0x180d5: 0x6c5fc020, 0x180d7: 0x6c3a7c20,
-	0x180d8: 0x6c1f0620, 0x180d9: 0x6c07d420, 0x180da: 0x6c6a7820,
-	0x180dc: 0x6c036c20, 0x180dd: 0x6c898a20, 0x180de: 0x6c7b1e20,
-	0x180e0: 0x6cf95e20, 0x180e1: 0x6c0ca420, 0x180e2: 0x6c747420, 0x180e3: 0x6c825c20,
-	0x180e4: 0x6d035020, 0x180e5: 0x6c045820, 0x180e6: 0x6d103220, 0x180e7: 0x6c940a20,
-	0x180e8: 0x6c070a20, 0x180e9: 0x6c362420, 0x180ea: 0x6c91c220,
-	0x180ed: 0x6c181220, 0x180ee: 0x6caad020, 0x180ef: 0x6d07fe20,
-	0x180f0: 0x6c525220, 0x180f1: 0x6d224420, 0x180f3: 0x6c4b0620,
-	0x180f4: 0x6d17dc20, 0x180f5: 0x6d085020, 0x180f6: 0x6c462c20, 0x180f7: 0x6c910020,
-	0x180f8: 0x6ce2f020, 0x180f9: 0x6c820420, 0x180fa: 0x6cd2f820,
-	0x180fc: 0x6cdcee20, 0x180fd: 0x6d11ec20, 0x180fe: 0x6cfa6820, 0x180ff: 0x6d408420,
-	// Block 0x604, offset 0x18100
-	0x18101: 0x6cc3a220, 0x18102: 0x6d1a2220, 0x18103: 0x6cf56420,
-	0x18104: 0x6d34d420, 0x18105: 0x6c639620, 0x18106: 0x6c564e20, 0x18107: 0x6c7e3620,
-	0x18108: 0x6d15c620, 0x18109: 0x6c788020, 0x1810a: 0x6c3d4620, 0x1810b: 0x6cbd6020,
-	0x1810c: 0x6c009220, 0x1810e: 0x6c78ac20, 0x1810f: 0x6c1e8820,
-	0x18110: 0x6d014620, 0x18111: 0x6c1e9a20, 0x18112: 0x6ceeac20,
-	0x18115: 0x6c58ea20, 0x18116: 0x6cda8a20, 0x18117: 0x6d203a20,
-	0x18119: 0x6c75e020, 0x1811a: 0x6d2f7e20, 0x1811b: 0x6d066620,
-	0x1811c: 0x6cd2ac20, 0x1811e: 0x6cd64220, 0x1811f: 0x6c7cea20,
-	0x18120: 0x6cd6a220, 0x18121: 0x6c515420, 0x18122: 0x6c414e20, 0x18123: 0x6d0d3020,
-	0x18124: 0x6cbfec20, 0x18125: 0x6ccf9820, 0x18126: 0x6c577a20, 0x18127: 0x6cf56820,
-	0x18128: 0x6c391820, 0x18129: 0x6cad2420, 0x1812a: 0x6c281e20, 0x1812b: 0x6c39bc20,
-	0x1812c: 0x6c455c20, 0x1812d: 0x6c022620, 0x1812e: 0x6c3f3020, 0x1812f: 0x6ca54420,
-	0x18130: 0x6d093a20, 0x18131: 0x6d1ee420, 0x18132: 0x6c572620,
-	0x18134: 0x6c189620, 0x18135: 0x6c4c5420, 0x18136: 0x6ca2c820, 0x18137: 0x6c577e20,
-	0x18138: 0x6c858820, 0x18139: 0x6c37fa20, 0x1813a: 0x6cfe8020, 0x1813b: 0x6cb3ea20,
-	0x1813d: 0x6cd88820,
-	// Block 0x605, offset 0x18140
-	0x18140: 0x6c821c20, 0x18141: 0x6c8c4820, 0x18142: 0x6d16dc20, 0x18143: 0x6c544c20,
-	0x18145: 0x6d068c20, 0x18146: 0x6cc17620, 0x18147: 0x6c373a20,
-	0x1814a: 0x6d09e220,
-	0x1814f: 0x6ca80020,
-	0x18150: 0x6cef9a20, 0x18151: 0x6d017820, 0x18152: 0x6ce31420, 0x18153: 0x6c532620,
-	0x18154: 0x6cea7820, 0x18155: 0x6ca80220, 0x18156: 0x6ca80420, 0x18157: 0x6d1a4020,
-	0x18158: 0x6d313420,
-	0x1815e: 0x6cec5020, 0x1815f: 0x6cd45a20,
-	0x18160: 0x6caaea20, 0x18161: 0x6d12e420, 0x18162: 0x6cb5b620, 0x18163: 0x6ce82620,
-	0x18164: 0x6c4df820, 0x18165: 0x6c75ac20, 0x18166: 0x6c302c20, 0x18167: 0x6c5cba20,
-	0x18168: 0x6c923220, 0x18169: 0x6c707a20, 0x1816a: 0x6c5db820, 0x1816b: 0x6c8cdc20,
-	0x1816d: 0x6ce4e420, 0x1816e: 0x6c94e820,
-	0x18175: 0x6c43e220, 0x18176: 0x6d0c0620, 0x18177: 0x6cd26420,
-	0x18178: 0x6d090c20, 0x18179: 0x6cae3020, 0x1817a: 0x6c217820, 0x1817b: 0x6ca96c20,
-	0x1817c: 0x6c348a20, 0x1817d: 0x6d2aca20, 0x1817e: 0x6c362820, 0x1817f: 0x6d00a820,
-	// Block 0x606, offset 0x18180
-	0x18180: 0x6d1ea020, 0x18181: 0x6c362a20, 0x18182: 0x6cd13420, 0x18183: 0x6cf1dc20,
-	0x18184: 0x6c7a3e20, 0x18185: 0x6c555020, 0x18186: 0x6c43e620, 0x18187: 0x6cf9c020,
-	0x18188: 0x6c97dc20, 0x18189: 0x6c94a820, 0x1818a: 0x6c602a20, 0x1818b: 0x6c53f620,
-	0x1818c: 0x6d361620, 0x1818f: 0x6cec5420,
-	0x18191: 0x6c046820, 0x18192: 0x6c00a020, 0x18193: 0x6d3c6220,
-	0x18194: 0x6cb8ec20, 0x18195: 0x6c46ac20, 0x18196: 0x6c289220, 0x18197: 0x6c06a820,
-	0x18198: 0x6c0f0e20, 0x18199: 0x6c1e6020, 0x1819a: 0x6c862820, 0x1819b: 0x6cfff620,
-	0x1819c: 0x6d054020,
-	0x181a2: 0x6c537020, 0x181a3: 0x6ce40620,
-	0x181a4: 0x6c244220, 0x181a5: 0x6c7e0a20, 0x181a6: 0x6c816020, 0x181a7: 0x6d367820,
-	0x181a8: 0x6d004e20, 0x181a9: 0x6cf66620, 0x181ab: 0x6cbcce20,
-	0x181ac: 0x6d2be820, 0x181ad: 0x6cf66820,
-	0x181b0: 0x6c23a220, 0x181b1: 0x6c607a20, 0x181b2: 0x6c5dec20, 0x181b3: 0x6cde1220,
-	0x181b4: 0x6d0cbe20, 0x181b5: 0x6d072420, 0x181b6: 0x6cb31c20, 0x181b7: 0x6cc9dc20,
-	0x181bb: 0x6c4c3a20,
-	0x181bc: 0x6d133620, 0x181bd: 0x6cfdfe20, 0x181be: 0x6d08e620, 0x181bf: 0x6c516c20,
-	// Block 0x607, offset 0x181c0
-	0x181c0: 0x6d42aa20, 0x181c1: 0x6d188020, 0x181c2: 0x6c226620,
-	0x181c4: 0x6c837020, 0x181c5: 0x6cfba620, 0x181c6: 0x6cdf5620, 0x181c7: 0x6cc6bc20,
-	0x181c8: 0x6d18be20, 0x181c9: 0x6d372220, 0x181ca: 0x6cf6fe20, 0x181cb: 0x6cfbb420,
-	0x181cc: 0x6c72aa20, 0x181cd: 0x6c60d620, 0x181ce: 0x6c4e6820,
-	0x181d0: 0x6cad9e20, 0x181d1: 0x6c86e620, 0x181d3: 0x6c7fe020,
-	0x181d4: 0x6cc9e020, 0x181d5: 0x6c4e7020, 0x181d6: 0x6d0cfe20, 0x181d7: 0x6cc16020,
-	0x181d9: 0x6d0d1620, 0x181da: 0x6c4e7420, 0x181db: 0x6c76ba20,
-	0x181dc: 0x6c1bce20, 0x181dd: 0x6ca7e820, 0x181de: 0x6c5d9620,
-	0x181e0: 0x6c092820, 0x181e1: 0x6cf98a20, 0x181e2: 0x6cf24820, 0x181e3: 0x6d080420,
-	0x181e4: 0x6cec9420, 0x181e5: 0x6d1f8a20, 0x181e6: 0x6cbd4c20, 0x181e7: 0x6d066c20,
-	0x181e8: 0x6ca7f020, 0x181e9: 0x6c091620, 0x181ea: 0x6c501020, 0x181eb: 0x6c6e0820,
-	0x181ec: 0x6c02bc20, 0x181ed: 0x6c02be20,
-	0x181f0: 0x6d311e20, 0x181f1: 0x6cdf8a20, 0x181f2: 0x6c70f220,
-	0x181f4: 0x6d427a20, 0x181f5: 0x6c106220, 0x181f6: 0x6c6a8a20, 0x181f7: 0x6c009020,
-	0x181f8: 0x6d29fc20, 0x181f9: 0x6c222620, 0x181fa: 0x6c37fc20,
-	0x181ff: 0x6ca80620,
-	// Block 0x608, offset 0x18200
-	0x18200: 0x6c8f2a20, 0x18201: 0x6c99e220, 0x18202: 0x6c334420, 0x18203: 0x6c052020,
-	0x18204: 0x6c095a20, 0x18205: 0x6c05ee20, 0x18207: 0x6c1f2c20,
-	0x18208: 0x6cfa3620, 0x18209: 0x6ce4e820, 0x1820a: 0x6c16a220,
-	0x1820d: 0x6c342420, 0x1820e: 0x6cee7e20, 0x1820f: 0x6c3fea20,
-	0x18210: 0x6c348c20, 0x18211: 0x6d225420, 0x18212: 0x6d12ac20, 0x18213: 0x6c7c7620,
-	0x18214: 0x6cefb620, 0x18215: 0x6c7b2220, 0x18217: 0x6cee8020,
-	0x18218: 0x6d10a420, 0x18219: 0x6c903420, 0x1821a: 0x6d037a20, 0x1821b: 0x6d3b7c20,
-	0x1821c: 0x6c1b3020, 0x1821d: 0x6d00b420, 0x1821e: 0x6ca83a20, 0x1821f: 0x6c810020,
-	0x18220: 0x6d13fe20, 0x18221: 0x6d3f9e20, 0x18222: 0x6c976a20, 0x18223: 0x6d2f3820,
-	0x18224: 0x6cfa4220, 0x18225: 0x6c4bfe20, 0x18226: 0x6d00c820,
-	0x18228: 0x6c625c20, 0x18229: 0x6c8a0220, 0x1822a: 0x6d184820, 0x1822b: 0x6c607c20,
-	0x1822c: 0x6d1a8e20, 0x1822e: 0x6c266020, 0x1822f: 0x6d184a20,
-	0x18230: 0x6d020a20, 0x18231: 0x6c506220, 0x18232: 0x6d1e5c20, 0x18233: 0x6c76ea20,
-	0x18234: 0x6c163220, 0x18235: 0x6cdf3e20, 0x18236: 0x6ce13020, 0x18237: 0x6d34a220,
-	0x18238: 0x6c066e20, 0x18239: 0x6c9b5220, 0x1823a: 0x6c7ca220, 0x1823b: 0x6c153620,
-	0x1823c: 0x6c82e020, 0x1823e: 0x6cf91220,
-	// Block 0x609, offset 0x18240
-	0x18240: 0x6cf72820, 0x18241: 0x6cbc7220, 0x18242: 0x6ca47e20, 0x18243: 0x6d274e20,
-	0x18245: 0x6c8f7220, 0x18246: 0x6c3fbe20, 0x18247: 0x6d3f7220,
-	0x18249: 0x6c475e20, 0x1824a: 0x6c762820, 0x1824b: 0x6c2dd420,
-	0x1824c: 0x6c57aa20, 0x1824d: 0x6c7ce020, 0x1824f: 0x6c42fc20,
-	0x18250: 0x6ce26020, 0x18252: 0x6ccd2a20, 0x18253: 0x6c7f3a20,
-	0x18254: 0x6ca7f420, 0x18255: 0x6c3de220, 0x18256: 0x6c42fe20, 0x18257: 0x6cbc8420,
-	0x18258: 0x6c04e420, 0x18259: 0x6c632620, 0x1825a: 0x6c796a20, 0x1825b: 0x6cf85620,
-	0x1825c: 0x6d230820, 0x1825d: 0x6d3c5a20, 0x1825e: 0x6cd05820, 0x1825f: 0x6c21ba20,
-	0x18260: 0x6cfed420, 0x18261: 0x6c615220, 0x18262: 0x6caa3820, 0x18263: 0x6cff6a20,
-	0x18264: 0x6d165a20, 0x18265: 0x6d20a820, 0x18266: 0x6d145420, 0x18267: 0x6d0d3620,
-	0x18268: 0x6cd04020, 0x18269: 0x6cc4aa20, 0x1826a: 0x6c501220, 0x1826b: 0x6cc96620,
-	0x1826c: 0x6c755820, 0x1826d: 0x6d1ee820, 0x1826f: 0x6d02fc20,
-	0x18270: 0x6cadae20, 0x18271: 0x6cbfa020, 0x18272: 0x6c14b820,
-	0x18274: 0x6c106420, 0x18275: 0x6c2fdc20, 0x18276: 0x6cd88a20, 0x18277: 0x6c378620,
-	0x18279: 0x6c992820, 0x1827a: 0x6d281820, 0x1827b: 0x6c5e8a20,
-	0x1827d: 0x6cbc1e20, 0x1827e: 0x6d045820, 0x1827f: 0x6cad4a20,
-	// Block 0x60a, offset 0x18280
-	0x18280: 0x6c1e7420, 0x18281: 0x6cae5220, 0x18282: 0x6caad620, 0x18283: 0x6c6a8c20,
-	0x18284: 0x6d13d420, 0x18285: 0x6c37c220, 0x18286: 0x6c34d420,
-	0x1828a: 0x6c347c20,
-	0x1828d: 0x6cbca420, 0x1828e: 0x6c938220, 0x1828f: 0x6cc02620,
-	0x18290: 0x6cda1020, 0x18291: 0x6c11f020, 0x18292: 0x6c310020, 0x18293: 0x6cf5b820,
-	0x18294: 0x6c3c2e20, 0x18295: 0x6d172220, 0x18296: 0x6cdd0e20, 0x18297: 0x6cbc7a20,
-	0x18298: 0x6cb37620, 0x18299: 0x6d02c020, 0x1829a: 0x6ce7b020, 0x1829b: 0x6d032820,
-	0x1829c: 0x6d1f1220, 0x1829d: 0x6c06fe20, 0x1829e: 0x6c905820,
-	0x182a3: 0x6d279820,
-	0x182a4: 0x6c83ac20, 0x182a5: 0x6cde4420, 0x182a6: 0x6c802620, 0x182a7: 0x6c97b820,
-	0x182a8: 0x6cbb3a20, 0x182a9: 0x6d38d220, 0x182aa: 0x6d0e5c20, 0x182ab: 0x6cf5de20,
-	0x182ac: 0x6c923620, 0x182ad: 0x6cf5e020, 0x182ae: 0x6ccae220, 0x182af: 0x6c395220,
-	0x182b1: 0x6cefb820, 0x182b2: 0x6c383a20, 0x182b3: 0x6d179020,
-	0x182b4: 0x6ca4f420, 0x182b5: 0x6c196c20, 0x182b6: 0x6ce09820, 0x182b7: 0x6c5ec620,
-	0x182b8: 0x6cd5d020, 0x182b9: 0x6cb10e20, 0x182ba: 0x6c012e20, 0x182bb: 0x6c7ac420,
-	0x182bc: 0x6c139820, 0x182be: 0x6cfb5a20, 0x182bf: 0x6d361c20,
-	// Block 0x60b, offset 0x182c0
-	0x182c2: 0x6c3c4820, 0x182c3: 0x6c88f420,
-	0x182c4: 0x6d0a0a20, 0x182c5: 0x6d06ee20, 0x182c6: 0x6c9d5020, 0x182c7: 0x6c5bd620,
-	0x182c8: 0x6ca29220, 0x182c9: 0x6d1d8c20, 0x182ca: 0x6d2df420, 0x182cb: 0x6d17de20,
-	0x182cc: 0x6caa1e20, 0x182cd: 0x6ce10020, 0x182ce: 0x6cf63e20, 0x182cf: 0x6d27ac20,
-	0x182d0: 0x6cd5e220, 0x182d1: 0x6c3e9420, 0x182d2: 0x6d17e020, 0x182d3: 0x6c26b020,
-	0x182d5: 0x6c881e20, 0x182d6: 0x6c127a20, 0x182d7: 0x6c116e20,
-	0x182d8: 0x6c725e20, 0x182d9: 0x6c927a20, 0x182da: 0x6cdae220, 0x182db: 0x6ca59a20,
-	0x182dc: 0x6c02dc20, 0x182dd: 0x6c018c20, 0x182de: 0x6cba6420,
-	0x182e0: 0x6c24d420, 0x182e1: 0x6c232420, 0x182e3: 0x6cc48220,
-	0x182e4: 0x6ca73220, 0x182e5: 0x6c96fe20, 0x182e6: 0x6d030220, 0x182e7: 0x6d26e020,
-	0x182e8: 0x6ca38220, 0x182e9: 0x6c02ee20, 0x182ea: 0x6cd01620, 0x182eb: 0x6c96dc20,
-	0x182ee: 0x6c807a20, 0x182ef: 0x6cf6e620,
-	0x182f0: 0x6d26f820, 0x182f1: 0x6d372620, 0x182f2: 0x6cf26420, 0x182f3: 0x6c57f620,
-	0x182f4: 0x6c9c1820, 0x182f5: 0x6ca7bc20, 0x182f6: 0x6ced6620, 0x182f7: 0x6c9c9c20,
-	0x182f8: 0x6ca89e20, 0x182f9: 0x6cc1f820, 0x182fa: 0x6d29b820, 0x182fb: 0x6c893e20,
-	0x182fc: 0x6d34c620, 0x182fd: 0x6d3eda20, 0x182fe: 0x6c4d1a20, 0x182ff: 0x6d066e20,
-	// Block 0x60c, offset 0x18300
-	0x18300: 0x6c501820, 0x18301: 0x6d078020, 0x18302: 0x6d35b020, 0x18303: 0x6c9e1220,
-	0x18304: 0x6c214820, 0x18305: 0x6c46b020, 0x18307: 0x6c216020,
-	0x18308: 0x6c946a20, 0x18309: 0x6d3a9820, 0x1830a: 0x6cd43820, 0x1830b: 0x6c8a5e20,
-	0x1830c: 0x6c6fcc20, 0x1830d: 0x6d014020, 0x1830e: 0x6c2f9220, 0x1830f: 0x6c6bae20,
-	0x18310: 0x6cc65220, 0x18311: 0x6c982e20, 0x18313: 0x6c788a20,
-	0x18314: 0x6d119620, 0x18315: 0x6ca8fc20, 0x18316: 0x6d148e20, 0x18317: 0x6c80a620,
-	0x18318: 0x6d1df020, 0x18319: 0x6d1a4420, 0x1831a: 0x6d0c7e20, 0x1831b: 0x6cda9e20,
-	0x1831d: 0x6c8baa20, 0x1831e: 0x6d0aec20, 0x1831f: 0x6c98d820,
-	0x18320: 0x6c9ff420, 0x18321: 0x6d41aa20, 0x18322: 0x6d225620, 0x18323: 0x6d179220,
-	0x18324: 0x6c46b220, 0x18325: 0x6c9cfa20, 0x18326: 0x6c75c820, 0x18327: 0x6cf1e420,
-	0x18329: 0x6c773a20, 0x1832a: 0x6c2d7020, 0x1832b: 0x6c8f9820,
-	0x1832d: 0x6d040620, 0x1832e: 0x6c255420, 0x1832f: 0x6cbbec20,
-	0x18330: 0x6c9dde20, 0x18331: 0x6c9c1c20, 0x18332: 0x6cbdf420,
-	0x18334: 0x6cecc220, 0x18335: 0x6c2a5e20, 0x18336: 0x6c009420,
-	0x18338: 0x6c0b8c20, 0x18339: 0x6ca9fe20, 0x1833a: 0x6c882020, 0x1833b: 0x6c6caa20,
-	0x1833c: 0x6d207020, 0x1833d: 0x6c20bc20, 0x1833e: 0x6d426420, 0x1833f: 0x6c0fe020,
-	// Block 0x60d, offset 0x18340
-	0x18340: 0x6c5a9020, 0x18341: 0x6d11f020, 0x18342: 0x6ce9e020, 0x18343: 0x6c61e220,
-	0x18344: 0x6c012420, 0x18345: 0x6c95fa20, 0x18346: 0x6c613220, 0x18347: 0x6cefba20,
-	0x18348: 0x6c0e7420, 0x18349: 0x6d289020, 0x1834a: 0x6d06f020, 0x1834b: 0x6ca71220,
-	0x1834c: 0x6d281420, 0x1834e: 0x6c039820, 0x1834f: 0x6d301a20,
-	0x18350: 0x6c705420, 0x18351: 0x6cef9020, 0x18352: 0x6d016e20, 0x18353: 0x6cb75420,
-	0x18354: 0x6d149020, 0x18355: 0x6d017020, 0x18356: 0x6c222a20, 0x18357: 0x6cc02820,
-	0x18358: 0x6c316a20, 0x18359: 0x6ca7d420, 0x1835a: 0x6cb78a20, 0x1835b: 0x6c613c20,
-	0x1835c: 0x6ce99420, 0x1835e: 0x6cd94c20, 0x1835f: 0x6c2d7420,
-	0x18360: 0x6c816820, 0x18361: 0x6d2e2c20,
-	0x18364: 0x6d1a1c20, 0x18365: 0x6c132620, 0x18366: 0x6c611220, 0x18367: 0x6c5b8620,
-	0x18368: 0x6d3ede20, 0x18369: 0x6c7f8820, 0x1836a: 0x6ca49020, 0x1836b: 0x6c71f020,
-	0x1836c: 0x6cbdfc20, 0x1836d: 0x6c272620, 0x1836f: 0x6c6a6020,
-	0x18370: 0x6d062620, 0x18371: 0x6c22fa20, 0x18372: 0x6d1e6e20, 0x18373: 0x6c30d820,
-	0x18374: 0x6c1afe20, 0x18376: 0x6c9f9020, 0x18377: 0x6c59a820,
-	0x18378: 0x6cdc2020, 0x18379: 0x6c785620, 0x1837a: 0x6d40aa20, 0x1837b: 0x6c501a20,
-	0x1837c: 0x6c19ba20, 0x1837d: 0x6d094220, 0x1837e: 0x6ca5bc20, 0x1837f: 0x6c1bec20,
-	// Block 0x60e, offset 0x18380
-	0x18380: 0x6c87f020, 0x18381: 0x6c01a020, 0x18382: 0x6ca22a20, 0x18383: 0x6cd7ca20,
-	0x18384: 0x6cfdb220, 0x18385: 0x6d0f9020, 0x18386: 0x6c572c20, 0x18387: 0x6c261620,
-	0x18388: 0x6cc02a20, 0x18389: 0x6c814c20, 0x1838a: 0x6c3e2e20, 0x1838b: 0x6c334620,
-	0x1838c: 0x6c984c20, 0x1838d: 0x6c80a820, 0x1838e: 0x6ceb7220, 0x1838f: 0x6c4df220,
-	0x18390: 0x6c988820, 0x18391: 0x6c0ed220, 0x18392: 0x6cc43220, 0x18393: 0x6cb59e20,
-	0x18394: 0x6c4df420, 0x18396: 0x6c905c20,
-	0x18398: 0x6ce57e20, 0x18399: 0x6d2aba20, 0x1839a: 0x6cb5ba20, 0x1839b: 0x6d298a20,
-	0x1839c: 0x6c9c4620, 0x1839d: 0x6cadd220, 0x1839e: 0x6d2e5620, 0x1839f: 0x6cfe2c20,
-	0x183a0: 0x6c429c20, 0x183a2: 0x6cb5bc20,
-	0x183a4: 0x6c923820, 0x183a6: 0x6d283020, 0x183a7: 0x6c362e20,
-	0x183a8: 0x6c329a20, 0x183a9: 0x6c9f5020, 0x183aa: 0x6cee8420, 0x183ab: 0x6cc2ec20,
-	0x183ac: 0x6cda1c20, 0x183ad: 0x6c9f5220, 0x183ae: 0x6ce85e20,
-	0x183b0: 0x6ca03620, 0x183b1: 0x6d11b420, 0x183b2: 0x6c746220, 0x183b3: 0x6c862c20,
-	0x183b4: 0x6c7b2620, 0x183b5: 0x6c42a420, 0x183b6: 0x6d257e20, 0x183b7: 0x6c26fa20,
-	0x183b9: 0x6c816220, 0x183ba: 0x6c909c20, 0x183bb: 0x6cba6620,
-	0x183bc: 0x6c025c20, 0x183bd: 0x6c0c7620, 0x183be: 0x6d1d9a20, 0x183bf: 0x6c989820,
-	// Block 0x60f, offset 0x183c0
-	0x183c0: 0x6c29e020, 0x183c2: 0x6c025e20,
-	0x183c4: 0x6cf78e20, 0x183c5: 0x6c3ed420, 0x183c6: 0x6c27f820, 0x183c7: 0x6c701420,
-	0x183c8: 0x6cc90220, 0x183c9: 0x6ce77a20, 0x183ca: 0x6cc13220, 0x183cb: 0x6c368220,
-	0x183cc: 0x6cb51a20, 0x183cd: 0x6c607e20, 0x183ce: 0x6c608020, 0x183cf: 0x6c574c20,
-	0x183d0: 0x6c69b820, 0x183d1: 0x6d41cc20, 0x183d2: 0x6c0c7a20, 0x183d3: 0x6c9b4620,
-	0x183d4: 0x6c045620, 0x183d5: 0x6cf01420, 0x183d6: 0x6d160e20, 0x183d7: 0x6c02f020,
-	0x183d8: 0x6d229e20, 0x183d9: 0x6c4ff020, 0x183da: 0x6c336620, 0x183db: 0x6cf31a20,
-	0x183dc: 0x6ca6d620, 0x183dd: 0x6c249e20, 0x183df: 0x6c846e20,
-	0x183e0: 0x6c916c20, 0x183e1: 0x6ca7be20, 0x183e2: 0x6c57f820, 0x183e3: 0x6c86f020,
-	0x183e5: 0x6c941c20, 0x183e6: 0x6c3c7e20, 0x183e7: 0x6c9d0c20,
-	0x183e8: 0x6d249e20, 0x183ea: 0x6c71e620,
-	0x183ed: 0x6d2dec20, 0x183ee: 0x6cae8220, 0x183ef: 0x6d15b220,
-	0x183f1: 0x6c61e420, 0x183f2: 0x6c08ae20,
-	0x183f4: 0x6cc5b420, 0x183f5: 0x6c597220, 0x183f6: 0x6c388020, 0x183f7: 0x6c43c220,
-	0x183f8: 0x6c7a8020, 0x183f9: 0x6c6bb420, 0x183fa: 0x6ccbc220,
-	0x183fc: 0x6cd7c220, 0x183fd: 0x6ce71620, 0x183fe: 0x6d24c820, 0x183ff: 0x6d3e0420,
-	// Block 0x610, offset 0x18400
-	0x18400: 0x6c092c20, 0x18401: 0x6c7ad820, 0x18402: 0x6c859e20, 0x18403: 0x6c598220,
-	0x18404: 0x6d09e620, 0x18405: 0x6caad820, 0x18407: 0x6d303820,
-	0x18408: 0x6cf20220, 0x18409: 0x6cfb4420, 0x1840a: 0x6cb85a20, 0x1840b: 0x6d127a20,
-	0x1840c: 0x6c996c20, 0x1840f: 0x6cd5d420,
-	0x18411: 0x6cbb7a20, 0x18412: 0x6d3cd220, 0x18413: 0x6c7d6020,
-	0x18414: 0x6cf4ea20, 0x18415: 0x6d1bb820, 0x18416: 0x6c207220, 0x18417: 0x6ce33e20,
-	0x18418: 0x6c880e20, 0x18419: 0x6c087820, 0x1841a: 0x6c464e20, 0x1841b: 0x6c986820,
-	0x1841c: 0x6d01d020, 0x1841d: 0x6c3cec20, 0x1841e: 0x6c909e20, 0x1841f: 0x6d2a1820,
-	0x18420: 0x6d335e20, 0x18421: 0x6c1ea220, 0x18422: 0x6c980020, 0x18423: 0x6c8faa20,
-	0x18425: 0x6d1b8620, 0x18426: 0x6cb1f020, 0x18427: 0x6d337020,
-	0x18428: 0x6c653020, 0x18429: 0x6c945420, 0x1842a: 0x6ca7e420, 0x1842b: 0x6d179a20,
-	0x1842d: 0x6c623420, 0x1842e: 0x6c60a420, 0x1842f: 0x6d2d1a20,
-	0x18430: 0x6d221a20, 0x18431: 0x6c6fa620, 0x18432: 0x6c585620, 0x18433: 0x6d34e220,
-	0x18434: 0x6c7e3c20, 0x18435: 0x6c8ca820, 0x18436: 0x6d34f020, 0x18437: 0x6c079420,
-	0x18438: 0x6d2cae20, 0x18439: 0x6c705820, 0x1843a: 0x6c286620, 0x1843b: 0x6c8a9020,
-	0x1843c: 0x6d16e820, 0x1843d: 0x6d2fa020, 0x1843e: 0x6cfc8e20, 0x1843f: 0x6c1bf820,
-	// Block 0x611, offset 0x18440
-	0x18440: 0x6c22ba20, 0x18441: 0x6c1b8420, 0x18442: 0x6d0d5420, 0x18443: 0x6c80aa20,
-	0x18444: 0x6c310220, 0x18445: 0x6c905e20, 0x18446: 0x6c14ec20,
-	0x18448: 0x6ce9a020, 0x18449: 0x6c13da20, 0x1844a: 0x6c006620, 0x1844b: 0x6c1b9c20,
-	0x1844d: 0x6d1cec20, 0x1844e: 0x6d305a20, 0x1844f: 0x6ce7ee20,
-	0x18451: 0x6ce9a620, 0x18452: 0x6c13f420, 0x18453: 0x6d11be20,
-	0x18454: 0x6d3ffe20, 0x18456: 0x6cac4020, 0x18457: 0x6cbc5620,
-	0x18458: 0x6c883220, 0x18459: 0x6cbd9c20, 0x1845a: 0x6c91d820, 0x1845b: 0x6d0eb820,
-	0x1845c: 0x6c778e20, 0x1845d: 0x6cda5e20, 0x1845e: 0x6d192820, 0x1845f: 0x6c14b420,
-	0x18460: 0x6c6ef620, 0x18461: 0x6c67b020, 0x18463: 0x6c6ea820,
-	0x18465: 0x6c305c20, 0x18467: 0x6c733620,
-	0x18468: 0x6c4e8420, 0x18469: 0x6c2c1020,
-	0x1846c: 0x6c52f620, 0x1846e: 0x6c1b0820, 0x1846f: 0x6c2dae20,
-	0x18470: 0x6c093020, 0x18472: 0x6d0a6e20, 0x18473: 0x6c913e20,
-	0x18475: 0x6d007e20, 0x18476: 0x6c094420,
-	0x18478: 0x6c095c20, 0x1847a: 0x6cfb4620, 0x1847b: 0x6cc8c820,
-	0x1847c: 0x6c0d1420, 0x1847d: 0x6c379620, 0x1847e: 0x6c736220,
-	// Block 0x612, offset 0x18480
-	0x18480: 0x6d324820, 0x18481: 0x6c072e20, 0x18482: 0x6c365620, 0x18483: 0x6d227a20,
-	0x18484: 0x6cc1b220, 0x18485: 0x6d299420, 0x18486: 0x6c9ca820, 0x18487: 0x6d16b220,
-	0x18488: 0x6cd8e620,
-	0x1848c: 0x6ccd6e20, 0x1848d: 0x6cdf1620, 0x1848e: 0x6ca28220, 0x1848f: 0x6c6e8220,
-	0x18490: 0x6c0b9620, 0x18491: 0x6cc68e20, 0x18492: 0x6c136e20, 0x18493: 0x6c120220,
-	0x18494: 0x6c2f4820,
-	0x18499: 0x6c2b5620, 0x1849a: 0x6ce7ac20, 0x1849b: 0x6cde3220,
-	0x1849c: 0x6d03ce20, 0x1849d: 0x6cd90a20, 0x1849e: 0x6c343e20, 0x1849f: 0x6cf85e20,
-	0x184a0: 0x6ce1b220, 0x184a2: 0x6ce31620, 0x184a3: 0x6ccd7820,
-	0x184a4: 0x6c667620, 0x184a5: 0x6d35da20, 0x184a6: 0x6cee7220, 0x184a7: 0x6d1b4620,
-	0x184aa: 0x6c58d620, 0x184ab: 0x6d37f220,
-	0x184ac: 0x6cb78c20, 0x184ad: 0x6d3f8820, 0x184af: 0x6d01c220,
-	0x184b0: 0x6d01d220, 0x184b1: 0x6d2ade20, 0x184b2: 0x6cef1e20,
-	0x184b5: 0x6cde9820, 0x184b6: 0x6d2d9820, 0x184b7: 0x6ca95820,
-	0x184bb: 0x6d166620,
-	0x184bc: 0x6cc58420, 0x184bd: 0x6cd59620, 0x184be: 0x6c142a20, 0x184bf: 0x6d3d1e20,
-	// Block 0x613, offset 0x184c0
-	0x184c1: 0x6c9e0620, 0x184c2: 0x6c5fdc20, 0x184c3: 0x6c39a420,
-	0x184c4: 0x6cadfe20, 0x184c5: 0x6c008e20, 0x184c6: 0x6c392020, 0x184c7: 0x6c029a20,
-	0x184c8: 0x6cbe0220, 0x184c9: 0x6cb82220, 0x184ca: 0x6cffd020, 0x184cb: 0x6c3b1020,
-	0x184cc: 0x6c417420, 0x184cd: 0x6cbb6620, 0x184ce: 0x6c437a20, 0x184cf: 0x6ce71c20,
-	0x184d0: 0x6c14ba20, 0x184d1: 0x6d201620, 0x184d2: 0x6c42b420, 0x184d3: 0x6c07a820,
-	0x184d4: 0x6c3fb420, 0x184d5: 0x6c1f0c20, 0x184d6: 0x6d3aac20,
-	0x184d8: 0x6d390020, 0x184da: 0x6c4f6220, 0x184db: 0x6ca8e420,
-	0x184dc: 0x6c73f820, 0x184dd: 0x6c1cb020, 0x184de: 0x6c143820, 0x184df: 0x6c799c20,
-	0x184e0: 0x6c8ae820, 0x184e1: 0x6c85a020, 0x184e2: 0x6d22e020,
-	0x184e4: 0x6d20d620, 0x184e5: 0x6c4d5820, 0x184e6: 0x6c85a220, 0x184e7: 0x6c53ee20,
-	0x184e8: 0x6c45d820, 0x184e9: 0x6c789820, 0x184ea: 0x6d260c20, 0x184eb: 0x6c2a6220,
-	0x184ec: 0x6c5b9a20, 0x184ee: 0x6c4a2220, 0x184ef: 0x6c6f0620,
-	0x184f0: 0x6d429a20, 0x184f1: 0x6c3fce20, 0x184f2: 0x6cbcb220, 0x184f3: 0x6c06c820,
-	0x184f4: 0x6c180a20, 0x184f5: 0x6c223e20, 0x184f6: 0x6c985020, 0x184f7: 0x6c4d9820,
-	0x184f8: 0x6cf86a20, 0x184f9: 0x6cc02e20, 0x184fa: 0x6c5a4620,
-	0x184fd: 0x6c1d9620, 0x184fe: 0x6cca4c20, 0x184ff: 0x6d0bf420,
-	// Block 0x614, offset 0x18500
-	0x18500: 0x6d345620, 0x18501: 0x6c2a6c20, 0x18502: 0x6ce27420, 0x18503: 0x6c9aec20,
-	0x18504: 0x6c8ce220, 0x18505: 0x6cd45e20, 0x18506: 0x6ce9fa20, 0x18507: 0x6c119220,
-	0x18508: 0x6c2ea020, 0x18509: 0x6c181420, 0x1850a: 0x6cae9c20, 0x1850b: 0x6d13f020,
-	0x1850c: 0x6c711220, 0x1850d: 0x6c61e820, 0x1850e: 0x6c7f0620, 0x1850f: 0x6ce4ea20,
-	0x18510: 0x6d261a20, 0x18512: 0x6c112820, 0x18513: 0x6cb4e420,
-	0x18514: 0x6d230e20, 0x18515: 0x6c880220, 0x18516: 0x6c231420,
-	0x1851a: 0x6d212020, 0x1851b: 0x6c603220,
-	0x1851c: 0x6cf09420, 0x1851d: 0x6c9cf020, 0x1851e: 0x6cdc3e20, 0x1851f: 0x6d00aa20,
-	0x18520: 0x6d059620, 0x18521: 0x6c1c1c20, 0x18522: 0x6cc06020, 0x18523: 0x6c5bde20,
-	0x18525: 0x6d212220, 0x18526: 0x6cbcc620, 0x18527: 0x6cd74e20,
-	0x18528: 0x6cd72620, 0x18529: 0x6c349020, 0x1852a: 0x6c908820,
-	0x1852c: 0x6cad0620, 0x1852d: 0x6cdf7820, 0x1852e: 0x6d393020, 0x1852f: 0x6d1af420,
-	0x18530: 0x6ccab420, 0x18531: 0x6c3a5a20, 0x18532: 0x6c187620, 0x18533: 0x6d258020,
-	0x18534: 0x6d151620, 0x18535: 0x6c5d2a20, 0x18536: 0x6ccb3420, 0x18537: 0x6d131020,
-	0x18538: 0x6c9fbc20, 0x18539: 0x6c3bbe20, 0x1853a: 0x6c513620,
-	0x1853c: 0x6d1b6420, 0x1853d: 0x6c130220, 0x1853e: 0x6ca6b620, 0x1853f: 0x6c02e820,
-	// Block 0x615, offset 0x18540
-	0x18540: 0x6c3cb420, 0x18541: 0x6c883420, 0x18542: 0x6c16be20, 0x18543: 0x6c15c820,
-	0x18544: 0x6c967020, 0x18545: 0x6c2e5a20, 0x18546: 0x6c54e620, 0x18547: 0x6c928020,
-	0x18549: 0x6d184c20, 0x1854a: 0x6c574e20, 0x1854b: 0x6d2bf220,
-	0x1854c: 0x6c550020, 0x1854d: 0x6c368420, 0x1854e: 0x6c5dee20, 0x1854f: 0x6cdcf820,
-	0x18550: 0x6ca6bc20, 0x18551: 0x6cfcf620, 0x18552: 0x6c842620, 0x18553: 0x6cfcf820,
-	0x18554: 0x6d0eba20, 0x18555: 0x6c8fa420, 0x18556: 0x6c9af620, 0x18557: 0x6c6c5c20,
-	0x18558: 0x6c5f5020, 0x1855a: 0x6c0b5a20, 0x1855b: 0x6d22a420,
-	0x1855c: 0x6c5e0620, 0x1855d: 0x6c9ea420, 0x1855e: 0x6c1df220, 0x1855f: 0x6c970620,
-	0x18561: 0x6c822c20, 0x18562: 0x6c6b5620, 0x18563: 0x6cf10a20,
-	0x18564: 0x6d192a20, 0x18565: 0x6d07e020, 0x18566: 0x6cf91420, 0x18567: 0x6c11e220,
-	0x18568: 0x6c7fe420, 0x18569: 0x6d1b2220, 0x1856a: 0x6d027220, 0x1856b: 0x6d28a620,
-	0x1856c: 0x6c95d220, 0x1856d: 0x6c8dd220, 0x1856e: 0x6cb97020, 0x1856f: 0x6c5d9a20,
-	0x18570: 0x6c646a20, 0x18571: 0x6cf2a820,
-	0x18574: 0x6c43d420, 0x18575: 0x6d399020, 0x18576: 0x6c2e8220, 0x18577: 0x6d1e2c20,
-	0x18578: 0x6c614220, 0x18579: 0x6d0fc020, 0x1857a: 0x6cc82220, 0x1857b: 0x6cf79a20,
-	0x1857c: 0x6cd6f020, 0x1857d: 0x6d240820, 0x1857e: 0x6d146020, 0x1857f: 0x6cb9f220,
-	// Block 0x616, offset 0x18580
-	0x18580: 0x6c5fde20, 0x18581: 0x6cc26420, 0x18582: 0x6ce48a20, 0x18583: 0x6cd42820,
-	0x18584: 0x6cb9ee20, 0x18585: 0x6ca26020, 0x18586: 0x6c6c2620, 0x18587: 0x6c992420,
-	0x18588: 0x6d1ac820, 0x18589: 0x6c412a20, 0x1858a: 0x6cb2ee20, 0x1858b: 0x6d084020,
-	0x1858c: 0x6c994220, 0x1858d: 0x6c39c020, 0x1858e: 0x6d0b1020, 0x1858f: 0x6c425420,
-	0x18590: 0x6cd95020, 0x18591: 0x6c5a8a20, 0x18592: 0x6d22d620, 0x18593: 0x6c484820,
-	0x18594: 0x6c48e820, 0x18595: 0x6c8ef820, 0x18596: 0x6c35de20, 0x18597: 0x6d3eec20,
-	0x18598: 0x6d3f3220, 0x18599: 0x6c093820, 0x1859a: 0x6cec1620,
-	0x1859c: 0x6c8acc20, 0x1859f: 0x6c7af620,
-	0x185a1: 0x6c4d5a20, 0x185a2: 0x6d19b020, 0x185a3: 0x6d398820,
-	0x185a4: 0x6c1d4820, 0x185a5: 0x6cfbea20, 0x185a6: 0x6d087420,
-	0x185a8: 0x6cc01420, 0x185a9: 0x6cae0c20, 0x185aa: 0x6c4ad620, 0x185ab: 0x6c373e20,
-	0x185ac: 0x6c45dc20, 0x185ad: 0x6cbf0820, 0x185ae: 0x6c54ac20, 0x185af: 0x6c81a620,
-	0x185b0: 0x6c85a420, 0x185b1: 0x6c192220, 0x185b2: 0x6cca1620, 0x185b3: 0x6d3df420,
-	0x185b4: 0x6cf2ae20, 0x185b5: 0x6cb3d420, 0x185b6: 0x6c793020, 0x185b7: 0x6cea8820,
-	0x185b8: 0x6cae5c20, 0x185b9: 0x6ce27620, 0x185ba: 0x6cde4a20, 0x185bb: 0x6d3d4c20,
-	0x185bc: 0x6c0c8e20, 0x185bd: 0x6c480e20, 0x185be: 0x6c54be20,
-	// Block 0x617, offset 0x185c0
-	0x185c0: 0x6c0de020, 0x185c1: 0x6d35de20, 0x185c2: 0x6c302e20, 0x185c3: 0x6c332220,
-	0x185c4: 0x6d387220, 0x185c5: 0x6ca58a20, 0x185c6: 0x6c8c1c20, 0x185c7: 0x6cb32a20,
-	0x185c8: 0x6c613420, 0x185c9: 0x6c9f5420, 0x185ca: 0x6cefc220, 0x185cb: 0x6c17ea20,
-	0x185cc: 0x6c46b620, 0x185cd: 0x6c053220, 0x185ce: 0x6cc7aa20, 0x185cf: 0x6cdfa820,
-	0x185d0: 0x6c103a20, 0x185d1: 0x6d3f8c20, 0x185d2: 0x6c7c3c20, 0x185d3: 0x6c815820,
-	0x185d4: 0x6c4ec220, 0x185d5: 0x6d1c7020, 0x185d6: 0x6d362620, 0x185d7: 0x6c6ac620,
-	0x185d8: 0x6d040220, 0x185d9: 0x6d00b820, 0x185da: 0x6d0a1620, 0x185db: 0x6ccd4620,
-	0x185dc: 0x6cb9a620, 0x185dd: 0x6d004620, 0x185de: 0x6cdacc20, 0x185df: 0x6c4d1820,
-	0x185e0: 0x6c9d5820, 0x185e1: 0x6c5cee20, 0x185e2: 0x6caf7220,
-	0x185e4: 0x6c5be020, 0x185e5: 0x6ca34c20, 0x185e6: 0x6cd96220, 0x185e7: 0x6c07bc20,
-	0x185e8: 0x6c1d7220, 0x185e9: 0x6c6ae220, 0x185ea: 0x6c5a6e20, 0x185eb: 0x6c802c20,
-	0x185ed: 0x6c56b420, 0x185ee: 0x6c30b620, 0x185ef: 0x6c5de420,
-	0x185f0: 0x6c4bd420, 0x185f1: 0x6d111c20, 0x185f2: 0x6c130420, 0x185f3: 0x6c4b1220,
-	0x185f4: 0x6c66a620, 0x185f5: 0x6c65c020, 0x185f6: 0x6c29e620, 0x185f7: 0x6c6d2420,
-	0x185f8: 0x6c96cc20, 0x185f9: 0x6c5bf820, 0x185fa: 0x6c9e3420, 0x185fb: 0x6c11a820,
-	0x185fc: 0x6c94ba20, 0x185fd: 0x6cb0aa20, 0x185fe: 0x6d105a20, 0x185ff: 0x6c726420,
-	// Block 0x618, offset 0x18600
-	0x18600: 0x6c726620, 0x18601: 0x6cc3dc20, 0x18603: 0x6cb91220,
-	0x18604: 0x6ccc8e20, 0x18606: 0x6c701820, 0x18607: 0x6c5df020,
-	0x18608: 0x6d27fa20, 0x18609: 0x6c26b820, 0x1860a: 0x6d07ba20, 0x1860b: 0x6cff0420,
-	0x1860c: 0x6c3ac620, 0x1860d: 0x6c131020, 0x1860e: 0x6d132420,
-	0x18610: 0x6c2a9820, 0x18612: 0x6cbda020, 0x18613: 0x6c5b6a20,
-	0x18614: 0x6cea6c20, 0x18616: 0x6cbb2420, 0x18617: 0x6cf7a020,
-	0x18618: 0x6ca64a20, 0x18619: 0x6cc9ce20, 0x1861a: 0x6c9b5620, 0x1861b: 0x6ce95e20,
-	0x1861c: 0x6c804220, 0x1861d: 0x6c4ff220, 0x1861e: 0x6c22e620, 0x1861f: 0x6d2d4e20,
-	0x18620: 0x6c023220, 0x18621: 0x6c95c420, 0x18622: 0x6c9efa20,
-	0x18624: 0x6c3daa20, 0x18626: 0x6d010c20, 0x18627: 0x6c0f8c20,
-	0x18628: 0x6c5c6820, 0x18629: 0x6cbeb820, 0x1862a: 0x6d010e20,
-	0x1862d: 0x6c0fa220, 0x1862e: 0x6cb9dc20, 0x1862f: 0x6cb34020,
-	0x18630: 0x6c696820, 0x18631: 0x6c750a20, 0x18632: 0x6c7dc620, 0x18633: 0x6cd97a20,
-	0x18634: 0x6c718e20, 0x18635: 0x6c36f020, 0x18636: 0x6ca8c020, 0x18637: 0x6cb95a20,
-	0x18638: 0x6c2f1a20, 0x18639: 0x6c2f1c20, 0x1863b: 0x6cb4da20,
-	0x1863c: 0x6d33c220, 0x1863d: 0x6cb5c620, 0x1863e: 0x6d3c8620, 0x1863f: 0x6c7a1c20,
-	// Block 0x619, offset 0x18640
-	0x18640: 0x6d20b420, 0x18641: 0x6cbd5820, 0x18642: 0x6c7a2620, 0x18643: 0x6c50d420,
-	0x18644: 0x6c3e0a20, 0x18646: 0x6c2be220, 0x18647: 0x6cfca620,
-	0x18648: 0x6c4b3c20, 0x18649: 0x6c50ee20, 0x1864a: 0x6cc44620, 0x1864b: 0x6c4eaa20,
-	0x1864c: 0x6ce7b420, 0x1864d: 0x6c0ee620, 0x1864e: 0x6ccd3e20, 0x1864f: 0x6c08de20,
-	0x18650: 0x6c924e20, 0x18651: 0x6d12f020, 0x18652: 0x6ca5e220, 0x18653: 0x6c1fba20,
-	0x18654: 0x6cca5020, 0x18655: 0x6c2e2820, 0x18656: 0x6c925020, 0x18657: 0x6ce81220,
-	0x18658: 0x6c88bc20, 0x18659: 0x6c786620, 0x1865a: 0x6cca5220, 0x1865b: 0x6d31e420,
-	0x1865c: 0x6c1fc020, 0x1865d: 0x6c890220, 0x1865e: 0x6c998c20,
-	0x18660: 0x6cb90620, 0x18661: 0x6c769220, 0x18662: 0x6cceb620, 0x18663: 0x6cfeea20,
-	0x18664: 0x6c0a2020, 0x18665: 0x6d2bf420, 0x18666: 0x6d1b7220, 0x18667: 0x6cf6bc20,
-	0x18668: 0x6ccdaa20, 0x18669: 0x6cdb1220, 0x1866a: 0x6cc98e20, 0x1866b: 0x6cc8e820,
-	0x1866c: 0x6c219c20, 0x1866d: 0x6c917c20, 0x1866e: 0x6c8d9820, 0x1866f: 0x6c13c620,
-	0x18671: 0x6c593020,
-	0x18674: 0x6c63a220, 0x18675: 0x6c04ee20, 0x18676: 0x6c553220, 0x18677: 0x6c30ec20,
-	0x18679: 0x6c90f020, 0x1867a: 0x6c70d220, 0x1867b: 0x6c73a620,
-	0x1867c: 0x6c785c20, 0x1867d: 0x6cdd5220, 0x1867e: 0x6c95f020, 0x1867f: 0x6d303c20,
-	// Block 0x61a, offset 0x18680
-	0x18680: 0x6c2f7220, 0x18681: 0x6c32d220, 0x18682: 0x6d3b1c20, 0x18683: 0x6d0d3a20,
-	0x18684: 0x6cacf420, 0x18685: 0x6c13d820,
-	0x1868a: 0x6d15e620,
-	0x1868d: 0x6d1f3420, 0x1868e: 0x6c5ae620, 0x1868f: 0x6d11c820,
-	0x18690: 0x6d118020, 0x18691: 0x6d34d620, 0x18692: 0x6c45d220, 0x18693: 0x6cb6d420,
-	0x18694: 0x6c44ac20, 0x18697: 0x6c545c20,
-	0x18698: 0x6c9d2420, 0x18699: 0x6c3df020, 0x1869a: 0x6c54a020, 0x1869b: 0x6c4a1a20,
-	0x1869c: 0x6ce05620, 0x1869d: 0x6c2b1a20, 0x1869f: 0x6d0c7220,
-	0x186a2: 0x6cc26620,
-	0x186a4: 0x6c16e420, 0x186a5: 0x6ca02e20, 0x186a6: 0x6ce1bc20, 0x186a7: 0x6c063c20,
-	0x186a8: 0x6c011e20, 0x186ab: 0x6cfbf620,
-	0x186af: 0x6c996e20,
-	0x186b0: 0x6c811c20, 0x186b1: 0x6ca42220, 0x186b2: 0x6c070c20, 0x186b3: 0x6c18be20,
-	0x186b5: 0x6c3a0420, 0x186b6: 0x6d38e620, 0x186b7: 0x6c5ece20,
-	0x186b8: 0x6c6a1420, 0x186b9: 0x6cd5d620, 0x186bb: 0x6c7dd220,
-	0x186bc: 0x6c2ea620, 0x186bd: 0x6c925220,
-	// Block 0x61b, offset 0x186c0
-	0x186c2: 0x6d215020, 0x186c3: 0x6cdf2620,
-	0x186c4: 0x6c162e20, 0x186c5: 0x6c97de20, 0x186c6: 0x6c9fb820, 0x186c7: 0x6c593220,
-	0x186c8: 0x6cf15420, 0x186c9: 0x6caa9220, 0x186ca: 0x6c593420, 0x186cb: 0x6c540a20,
-	0x186cc: 0x6c6e8e20, 0x186cd: 0x6c0f2620, 0x186ce: 0x6cfc2020, 0x186cf: 0x6c864820,
-	0x186d0: 0x6c6d2620, 0x186d2: 0x6c989c20, 0x186d3: 0x6cb1ba20,
-	0x186d4: 0x6c4fde20, 0x186d5: 0x6d0fd620, 0x186d7: 0x6cfd0a20,
-	0x186d8: 0x6cdb1420, 0x186d9: 0x6cf01620, 0x186da: 0x6c183c20, 0x186db: 0x6cf6be20,
-	0x186dc: 0x6c6d4c20, 0x186dd: 0x6c135a20, 0x186de: 0x6c51e420, 0x186df: 0x6c3b4020,
-	0x186e0: 0x6ccca620, 0x186e1: 0x6c8d6a20, 0x186e3: 0x6c337220,
-	0x186e4: 0x6cb54220, 0x186e5: 0x6cb4b820, 0x186e6: 0x6d26fa20, 0x186e7: 0x6c0f8e20,
-	0x186e9: 0x6c5c7820, 0x186ea: 0x6c2f0220, 0x186eb: 0x6d0ef620,
-	0x186ec: 0x6c72d020, 0x186ed: 0x6c69e020, 0x186ee: 0x6ca44c20, 0x186ef: 0x6c8b8620,
-	0x186f0: 0x6d20aa20, 0x186f1: 0x6ce41c20, 0x186f2: 0x6ce47620, 0x186f3: 0x6cf42a20,
-	0x186f4: 0x6c53a220, 0x186f5: 0x6cff7220, 0x186f6: 0x6c503620,
-	0x186f8: 0x6ce55c20, 0x186f9: 0x6d32ca20, 0x186fb: 0x6c59a020,
-	0x186fc: 0x6c403420, 0x186ff: 0x6cea2c20,
-	// Block 0x61c, offset 0x18700
-	0x18701: 0x6cc61a20, 0x18702: 0x6c68ba20,
-	0x18704: 0x6d031c20, 0x18707: 0x6d260020,
-	0x18708: 0x6c73ee20, 0x18709: 0x6c572820, 0x1870b: 0x6c056020,
-	0x1870c: 0x6ca1c420, 0x1870e: 0x6c425e20, 0x1870f: 0x6cef9220,
-	0x18711: 0x6c9a8020, 0x18712: 0x6cd89c20, 0x18713: 0x6c0b8820,
-	0x18714: 0x6c914220, 0x18715: 0x6cc0e620,
-	0x18718: 0x6c43da20, 0x18719: 0x6d303e20, 0x1871a: 0x6c938c20, 0x1871b: 0x6cac2020,
-	0x1871c: 0x6cc66220, 0x1871d: 0x6cc03020, 0x1871e: 0x6c8aea20, 0x1871f: 0x6c45e020,
-	0x18720: 0x6cfbf820, 0x18721: 0x6cf86e20, 0x18722: 0x6d02c620,
-	0x18724: 0x6ca79620,
-	0x18728: 0x6d00a220, 0x18729: 0x6c8afe20, 0x1872a: 0x6c3d6420, 0x1872b: 0x6c25d620,
-	0x1872c: 0x6d3d4e20, 0x1872d: 0x6c034820, 0x1872e: 0x6d429c20, 0x1872f: 0x6d305020,
-	0x18730: 0x6d416e20, 0x18731: 0x6c510620, 0x18732: 0x6c601a20,
-	0x18734: 0x6c648620,
-	0x18738: 0x6ce8b020, 0x18739: 0x6cfb5c20, 0x1873a: 0x6d0d8620, 0x1873b: 0x6ce0f420,
-	0x1873c: 0x6cde5620, 0x1873d: 0x6c2bf620, 0x1873e: 0x6c744c20, 0x1873f: 0x6c01fc20,
-	// Block 0x61d, offset 0x18740
-	0x18740: 0x6c4e1020, 0x18741: 0x6cff8820, 0x18742: 0x6c712020, 0x18743: 0x6cee8c20,
-	0x18744: 0x6c054c20, 0x18745: 0x6d3c5e20, 0x18746: 0x6ca82e20, 0x18747: 0x6ce53820,
-	0x18748: 0x6ca3c020, 0x1874b: 0x6d1fd420,
-	0x1874c: 0x6c9dc620, 0x1874f: 0x6ca3c820,
-	0x18750: 0x6cd13c20, 0x18751: 0x6c13a220, 0x18752: 0x6d0c1020, 0x18753: 0x6c44b620,
-	0x18754: 0x6c1d5420, 0x18755: 0x6cc86420, 0x18756: 0x6c63ca20, 0x18757: 0x6cbd8220,
-	0x18758: 0x6c98e620, 0x18759: 0x6c365c20, 0x1875a: 0x6c863220, 0x1875b: 0x6c1b3420,
-	0x1875c: 0x6d29da20, 0x1875d: 0x6c513820, 0x1875e: 0x6c6ae420, 0x1875f: 0x6ca72c20,
-	0x18761: 0x6c499020, 0x18762: 0x6c540c20, 0x18763: 0x6c414220,
-	0x18765: 0x6c07be20, 0x18766: 0x6cdd8020, 0x18767: 0x6cf37220,
-	0x18768: 0x6c623820, 0x18769: 0x6cf66a20, 0x1876a: 0x6cbf4a20, 0x1876b: 0x6c515820,
-	0x1876c: 0x6cf23020, 0x1876d: 0x6cfb7220, 0x1876e: 0x6c6b0820, 0x1876f: 0x6c5cf820,
-	0x18770: 0x6cb00420, 0x18771: 0x6cd00620, 0x18772: 0x6c1d7620, 0x18773: 0x6d324e20,
-	0x18775: 0x6d2d8a20, 0x18776: 0x6cd78a20, 0x18777: 0x6c5f0420,
-	0x18778: 0x6cd99420, 0x18779: 0x6d354220, 0x1877a: 0x6c07a220,
-	0x1877e: 0x6c810e20, 0x1877f: 0x6c0a2220,
-	// Block 0x61e, offset 0x18780
-	0x18780: 0x6d08ae20, 0x18781: 0x6cade820, 0x18782: 0x6c278a20,
-	0x18784: 0x6d340e20, 0x18785: 0x6cb00e20, 0x18786: 0x6c15d420, 0x18787: 0x6c0a2420,
-	0x18788: 0x6cdafa20, 0x18789: 0x6c5df220, 0x1878a: 0x6c523420, 0x1878b: 0x6c6f2a20,
-	0x1878c: 0x6c200620, 0x1878d: 0x6c67b420, 0x1878e: 0x6ca5a020, 0x1878f: 0x6c47be20,
-	0x18790: 0x6c39de20, 0x18793: 0x6cde9a20,
-	0x18794: 0x6c256020, 0x18795: 0x6cf6c220, 0x18796: 0x6c2a8420, 0x18797: 0x6cfb9020,
-	0x18798: 0x6c7b7220, 0x18799: 0x6d308a20, 0x1879a: 0x6cddfc20, 0x1879b: 0x6c55ae20,
-	0x1879c: 0x6c256220, 0x1879d: 0x6c92c820, 0x1879e: 0x6c738c20, 0x1879f: 0x6c92ca20,
-	0x187a0: 0x6cba7220, 0x187a1: 0x6cad9620, 0x187a2: 0x6d326c20,
-	0x187a4: 0x6c867a20, 0x187a5: 0x6c128e20, 0x187a6: 0x6cb64a20,
-	0x187a9: 0x6ce41e20, 0x187aa: 0x6c8d6c20, 0x187ab: 0x6cc1d420,
-	0x187ac: 0x6c88cc20, 0x187ad: 0x6c91e020, 0x187ae: 0x6cd54020, 0x187af: 0x6c462620,
-	0x187b0: 0x6d309a20, 0x187b1: 0x6cad3c20, 0x187b2: 0x6c6d5a20, 0x187b3: 0x6cbe9020,
-	0x187b6: 0x6d3fc420, 0x187b7: 0x6cb46620,
-	0x187b8: 0x6c6cbc20, 0x187b9: 0x6c0c8620, 0x187ba: 0x6c66ee20, 0x187bb: 0x6c4bf220,
-	0x187be: 0x6d2a3020, 0x187bf: 0x6c8b5a20,
-	// Block 0x61f, offset 0x187c0
-	0x187c0: 0x6c848a20, 0x187c1: 0x6c95c620, 0x187c2: 0x6cd08620, 0x187c3: 0x6c9de220,
-	0x187c4: 0x6c66fc20, 0x187c5: 0x6c2bb020, 0x187c6: 0x6c076a20,
-	0x187c8: 0x6c88d420, 0x187ca: 0x6cfbc620, 0x187cb: 0x6cb22220,
-	0x187cc: 0x6cc41620, 0x187cd: 0x6c8fda20, 0x187ce: 0x6d41e020,
-	0x187d0: 0x6c74fe20, 0x187d1: 0x6ccd2020, 0x187d2: 0x6d092620,
-	0x187d4: 0x6d027820, 0x187d6: 0x6c804e20, 0x187d7: 0x6cb6aa20,
-	0x187d8: 0x6d159820, 0x187d9: 0x6caad420, 0x187da: 0x6c84ca20, 0x187db: 0x6d271e20,
-	0x187dd: 0x6d15be20, 0x187de: 0x6c1a9220, 0x187df: 0x6c619620,
-	0x187e0: 0x6c4f4a20, 0x187e1: 0x6d015e20, 0x187e2: 0x6c792a20, 0x187e3: 0x6d3e1020,
-	0x187e4: 0x6c509220, 0x187e5: 0x6cf86220, 0x187e6: 0x6cc26820, 0x187e7: 0x6c4d1020,
-	0x187e8: 0x6cf95220, 0x187e9: 0x6c4d1220, 0x187ea: 0x6c4a4820, 0x187eb: 0x6c14c220,
-	0x187ec: 0x6d09fa20, 0x187ed: 0x6d058220, 0x187ee: 0x6cd09c20, 0x187ef: 0x6c79e820,
-	0x187f0: 0x6cf96020, 0x187f1: 0x6ccc4a20, 0x187f2: 0x6d208a20, 0x187f3: 0x6d0bae20,
-	0x187f4: 0x6cb3f220, 0x187f5: 0x6d40bc20, 0x187f6: 0x6d1fc820, 0x187f7: 0x6d3f3e20,
-	0x187f8: 0x6c88be20, 0x187f9: 0x6cfaaa20, 0x187fa: 0x6cfa3e20, 0x187fb: 0x6d15f620,
-	0x187fc: 0x6ccc5820, 0x187fd: 0x6d0e8420, 0x187fe: 0x6c69a220, 0x187ff: 0x6cf66e20,
-	// Block 0x620, offset 0x18800
-	0x18800: 0x6c1bb620, 0x18801: 0x6cd3b220, 0x18802: 0x6c774620, 0x18803: 0x6d1afc20,
-	0x18804: 0x6c522420, 0x18805: 0x6d189620, 0x18806: 0x6cf6e820, 0x18807: 0x6ccb6a20,
-	0x18808: 0x6c6d5c20, 0x18809: 0x6d135e20, 0x1880a: 0x6d1ec420, 0x1880b: 0x6cc41820,
-	0x1880c: 0x6d129a20, 0x1880d: 0x6c945e20, 0x1880e: 0x6c7d9c20, 0x1880f: 0x6d333820,
-	0x18814: 0x6d003a20, 0x18816: 0x6c253a20, 0x18817: 0x6d04e420,
-	0x18818: 0x6c01d820, 0x18819: 0x6d051e20, 0x1881a: 0x6c118820, 0x1881b: 0x6c201820,
-	0x1881c: 0x6d2c1e20, 0x1881e: 0x6d16f420, 0x1881f: 0x6caf4420,
-	0x18820: 0x6c7a3020, 0x18821: 0x6cd0fa20, 0x18822: 0x6c80bc20, 0x18823: 0x6ce9e420,
-	0x18824: 0x6cf61020, 0x18825: 0x6c8d0620, 0x18826: 0x6cb4f820, 0x18827: 0x6cf2f020,
-	0x18828: 0x6c88fa20, 0x18829: 0x6c319e20, 0x1882a: 0x6c9af420, 0x1882b: 0x6c807220,
-	0x1882c: 0x6cefdc20, 0x1882d: 0x6c32ca20, 0x1882e: 0x6c7b2a20, 0x1882f: 0x6c004c20,
-	0x18830: 0x6d291a20, 0x18831: 0x6c5bfa20, 0x18832: 0x6d182620, 0x18833: 0x6ca14c20,
-	0x18834: 0x6d3f5e20, 0x18835: 0x6c3be820, 0x18836: 0x6caec420,
-	0x18838: 0x6c0a6c20, 0x18839: 0x6c871e20, 0x1883a: 0x6c918220, 0x1883b: 0x6c964620,
-	0x1883c: 0x6c4d0a20, 0x1883d: 0x6d31bc20, 0x1883e: 0x6c40ee20, 0x1883f: 0x6cc3ac20,
-	// Block 0x621, offset 0x18840
-	0x18840: 0x6d315220, 0x18841: 0x6c797a20, 0x18842: 0x6c1a0420, 0x18843: 0x6c6ffe20,
-	0x18844: 0x6c746420, 0x18845: 0x6c623a20, 0x18846: 0x6c8d5620,
-	0x18848: 0x6cceaa20, 0x18849: 0x6cc40020, 0x1884a: 0x6cc8ea20, 0x1884b: 0x6c21ac20,
-	0x1884c: 0x6ca5b220, 0x1884d: 0x6d339820, 0x1884e: 0x6c907a20, 0x1884f: 0x6cad3620,
-	0x18852: 0x6c063820, 0x18853: 0x6cc66420,
-	0x18854: 0x6cfa9a20, 0x18855: 0x6c832c20, 0x18856: 0x6cfeb420, 0x18857: 0x6c3d6620,
-	0x18858: 0x6cc18620, 0x1885a: 0x6ccbe820, 0x1885b: 0x6d352c20,
-	0x1885c: 0x6cdfe020, 0x1885d: 0x6cc70e20, 0x1885e: 0x6cda4a20, 0x1885f: 0x6d1cf620,
-	0x18860: 0x6c98e820, 0x18861: 0x6ca3ca20, 0x18862: 0x6c0baa20,
-	0x18864: 0x6cd65820, 0x18865: 0x6ce11020, 0x18866: 0x6c4ee220, 0x18867: 0x6ccaf620,
-	0x18868: 0x6cc69420, 0x1886a: 0x6c2aa820, 0x1886b: 0x6cb44e20,
-	0x1886c: 0x6c687820, 0x1886d: 0x6ce07620, 0x1886f: 0x6cc48e20,
-	0x18870: 0x6ca92c20, 0x18871: 0x6c8b5c20, 0x18872: 0x6c2f2020, 0x18873: 0x6c2e8620,
-	0x18874: 0x6d381620, 0x18876: 0x6c93f420, 0x18877: 0x6c28b020,
-	0x18878: 0x6cf56020, 0x18879: 0x6c4aba20, 0x1887a: 0x6c5fbe20, 0x1887b: 0x6ca67620,
-	0x1887c: 0x6d164a20, 0x1887d: 0x6ca75820, 0x1887e: 0x6d221e20, 0x1887f: 0x6cedf220,
-	// Block 0x622, offset 0x18880
-	0x18880: 0x6c4ce620, 0x18881: 0x6d2b3c20, 0x18882: 0x6d0c5820, 0x18883: 0x6c251a20,
-	0x18884: 0x6cfb2620, 0x18885: 0x6c68be20, 0x18886: 0x6ce80620, 0x18887: 0x6c3fac20,
-	0x18888: 0x6cae0020, 0x1888a: 0x6d1e9220, 0x1888b: 0x6cbfa220,
-	0x1888c: 0x6d0ad620, 0x1888d: 0x6c107220, 0x1888e: 0x6c0b7c20, 0x1888f: 0x6cd31c20,
-	0x18890: 0x6d2c2220, 0x18891: 0x6d16c020, 0x18892: 0x6c0b7e20,
-	0x18894: 0x6c333820, 0x18895: 0x6c7f8e20, 0x18896: 0x6d13d820, 0x18897: 0x6c149220,
-	0x18898: 0x6c1cb220, 0x18899: 0x6d087820, 0x1889a: 0x6d069220, 0x1889b: 0x6d20d820,
-	0x1889c: 0x6d04c020,
-	0x188a0: 0x6cde3620, 0x188a1: 0x6c4c1620,
-	0x188a5: 0x6c906420, 0x188a6: 0x6d018220, 0x188a7: 0x6c180c20,
-	0x188a8: 0x6c657e20, 0x188a9: 0x6cdf9820, 0x188aa: 0x6cb08c20, 0x188ab: 0x6d296820,
-	0x188ac: 0x6d080620, 0x188ad: 0x6cfb3c20, 0x188ae: 0x6ca7d220,
-	0x188b4: 0x6c9d3820, 0x188b5: 0x6c61f020, 0x188b6: 0x6caa1c20, 0x188b7: 0x6c54c020,
-	0x188b8: 0x6c571020, 0x188b9: 0x6cee1020, 0x188ba: 0x6d1f2a20, 0x188bb: 0x6d2ac020,
-	0x188bc: 0x6c09a020, 0x188bd: 0x6c9cee20, 0x188be: 0x6cbab020, 0x188bf: 0x6d019220,
-	// Block 0x623, offset 0x188c0
-	0x188c0: 0x6c394420, 0x188c1: 0x6d176020, 0x188c2: 0x6cdfa020, 0x188c3: 0x6c832e20,
-	0x188c4: 0x6d1e2e20, 0x188c6: 0x6c6d0220, 0x188c7: 0x6ccf4a20,
-	0x188c8: 0x6d1b4820, 0x188c9: 0x6c613820, 0x188cb: 0x6cdaa620,
-	0x188cf: 0x6cee1c20,
-	0x188d0: 0x6c9e5820, 0x188d1: 0x6cdab420, 0x188d2: 0x6d17a620, 0x188d3: 0x6ccc8820,
-	0x188d4: 0x6cf61420, 0x188d5: 0x6c603e20, 0x188d6: 0x6c960020, 0x188d7: 0x6d1ea620,
-	0x188d8: 0x6c998220, 0x188d9: 0x6d2c7c20, 0x188da: 0x6cdc4020, 0x188db: 0x6d362a20,
-	0x188dc: 0x6c0b9c20, 0x188dd: 0x6c83d820,
-	0x188e5: 0x6cbc4820, 0x188e6: 0x6c498e20, 0x188e7: 0x6cf64a20,
-	0x188e8: 0x6d324a20, 0x188e9: 0x6d1d9020, 0x188ea: 0x6ca84020, 0x188eb: 0x6c75ca20,
-	0x188ec: 0x6d01c620, 0x188ed: 0x6d11b620, 0x188ee: 0x6d01c820, 0x188ef: 0x6d33f020,
-	0x188f0: 0x6ca5a820, 0x188f2: 0x6cd7f420, 0x188f3: 0x6c903620,
-	0x188f4: 0x6c18d220, 0x188f5: 0x6c9d5c20, 0x188f6: 0x6cc3cc20, 0x188f7: 0x6c27e420,
-	0x188f8: 0x6ccd4820,
-	0x188fc: 0x6cdae820, 0x188fd: 0x6d01da20, 0x188fe: 0x6c0f2820, 0x188ff: 0x6c2f7a20,
-	// Block 0x624, offset 0x18900
-	0x18900: 0x6d40ca20, 0x18902: 0x6cd5f220, 0x18903: 0x6ccf2220,
-	0x18904: 0x6c4ee420, 0x18905: 0x6cdfb220, 0x18906: 0x6c431420,
-	0x1890a: 0x6ca36420, 0x1890b: 0x6c9d7a20,
-	0x1890c: 0x6d0a3020, 0x1890d: 0x6c9afa20, 0x1890e: 0x6c66b420, 0x1890f: 0x6c24fe20,
-	0x18910: 0x6c749220, 0x18911: 0x6c51de20, 0x18912: 0x6c3ac820, 0x18913: 0x6cd28220,
-	0x18914: 0x6c17f220, 0x18915: 0x6cd0c220, 0x18916: 0x6caa8a20, 0x18917: 0x6cb2c420,
-	0x18918: 0x6c980220,
-	0x1891d: 0x6d189a20, 0x1891e: 0x6c1dda20,
-	0x18920: 0x6c7a6220, 0x18921: 0x6c05d420, 0x18922: 0x6c825a20, 0x18923: 0x6c787020,
-	0x18924: 0x6ccc7820, 0x18925: 0x6c0a4e20, 0x18926: 0x6cdbfc20, 0x18927: 0x6c443420,
-	0x18928: 0x6cb0c020, 0x18929: 0x6d189c20, 0x1892a: 0x6cfb9220, 0x1892b: 0x6ca6c820,
-	0x1892c: 0x6d1c9820, 0x1892d: 0x6d3a8020, 0x1892e: 0x6c216220, 0x1892f: 0x6c3cbc20,
-	0x18930: 0x6d074620, 0x18931: 0x6cb19c20, 0x18932: 0x6cf48020, 0x18933: 0x6c8a2420,
-	0x18934: 0x6c124c20, 0x18935: 0x6d409020, 0x18936: 0x6d422a20, 0x18937: 0x6c0bc620,
-	0x18938: 0x6d122a20, 0x18939: 0x6c58a420, 0x1893a: 0x6cac3220, 0x1893b: 0x6d04fa20,
-	0x1893d: 0x6c82ea20, 0x1893e: 0x6cbee420, 0x1893f: 0x6d001220,
-	// Block 0x625, offset 0x18940
-	0x18940: 0x6c689620, 0x18941: 0x6c4c9420,
-	0x18944: 0x6d0cf020, 0x18945: 0x6d092420, 0x18946: 0x6d39e220, 0x18947: 0x6c527e20,
-	0x18948: 0x6d1cb820, 0x18949: 0x6cf71620,
-	0x1894c: 0x6c889220, 0x1894d: 0x6cfc4820, 0x1894e: 0x6c58bc20, 0x1894f: 0x6d1a1620,
-	0x18951: 0x6c892a20, 0x18952: 0x6ccd6020, 0x18953: 0x6c125220,
-	0x18954: 0x6c077020, 0x18955: 0x6c662220, 0x18956: 0x6cd63020, 0x18957: 0x6c397a20,
-	0x18958: 0x6c2d9820, 0x1895a: 0x6c03d820, 0x1895b: 0x6d21fe20,
-	0x1895e: 0x6ca47420, 0x1895f: 0x6c831420,
-	0x18960: 0x6d198220, 0x18961: 0x6c272820, 0x18963: 0x6c14ea20,
-	0x18964: 0x6c178e20, 0x18965: 0x6c416a20, 0x18966: 0x6c6cdc20, 0x18967: 0x6ca59220,
-	0x1896b: 0x6c8a6a20,
-	0x1896c: 0x6ca0e620, 0x1896d: 0x6d1fb220, 0x1896f: 0x6c8f2820,
-	0x18970: 0x6c4de620, 0x18972: 0x6d1e7420, 0x18973: 0x6c6cf020,
-	0x18974: 0x6c1b8c20, 0x18975: 0x6cc5dc20, 0x18976: 0x6ca9b620,
-	0x18979: 0x6c53ba20, 0x1897a: 0x6ce53620,
-	0x1897c: 0x6c002420, 0x1897d: 0x6c485620, 0x1897e: 0x6c0bf820, 0x1897f: 0x6c0eea20,
-	// Block 0x626, offset 0x18980
-	0x18980: 0x6cbf1420, 0x18982: 0x6cd5d820, 0x18983: 0x6c20ee20,
-	0x18984: 0x6c5b5420, 0x18985: 0x6c179a20, 0x18986: 0x6c3ff220, 0x18987: 0x6c5ab620,
-	0x18988: 0x6c363a20, 0x18989: 0x6cf09a20, 0x1898a: 0x6c3b7820, 0x1898b: 0x6cdfe220,
-	0x1898d: 0x6c94fa20, 0x1898e: 0x6c51cc20, 0x1898f: 0x6d1e4a20,
-	0x18990: 0x6c5b5a20, 0x18992: 0x6d215820, 0x18993: 0x6d3ff820,
-	0x18994: 0x6d0e8a20, 0x18995: 0x6cc07420, 0x18996: 0x6d2fbc20, 0x18997: 0x6c6f1a20,
-	0x18998: 0x6cdf2820,
-	0x1899f: 0x6cea0820,
-	0x189a0: 0x6c8bc220, 0x189a1: 0x6c6f2620, 0x189a2: 0x6d2c8220, 0x189a3: 0x6d038620,
-	0x189a4: 0x6c56ba20, 0x189a6: 0x6d071020,
-	0x189aa: 0x6c254c20, 0x189ab: 0x6cbeb020,
-	0x189ac: 0x6ca14e20, 0x189ae: 0x6d2a2220, 0x189af: 0x6c084c20,
-	0x189b0: 0x6c1ace20, 0x189b3: 0x6d0ebc20,
-	0x189b4: 0x6c443620, 0x189b5: 0x6ca16220, 0x189b6: 0x6c075c20, 0x189b7: 0x6c732820,
-	0x189b8: 0x6c2ee620, 0x189b9: 0x6d2fe020, 0x189bb: 0x6cf3ea20,
-	0x189bc: 0x6d0ebe20, 0x189be: 0x6c74c620, 0x189bf: 0x6cfade20,
-	// Block 0x627, offset 0x189c0
-	0x189c0: 0x6cdf4a20, 0x189c1: 0x6c4e6620, 0x189c3: 0x6c2d2c20,
-	0x189c4: 0x6c62ac20, 0x189c5: 0x6c6b6020, 0x189c7: 0x6d414c20,
-	0x189c9: 0x6d025820, 0x189ca: 0x6c7f7620, 0x189cb: 0x6c38e220,
-	0x189cc: 0x6c5e4020, 0x189cd: 0x6cf92820, 0x189ce: 0x6ca8b620, 0x189cf: 0x6c9cb820,
-	0x189d0: 0x6cc49c20, 0x189d1: 0x6c24c220, 0x189d2: 0x6d1a3220, 0x189d3: 0x6c9d2820,
-	0x189d5: 0x6c747e20, 0x189d6: 0x6cc0ea20, 0x189d7: 0x6ce73820,
-	0x189d8: 0x6ced7a20, 0x189d9: 0x6d2ffc20, 0x189da: 0x6c84fe20, 0x189db: 0x6cce9c20,
-	0x189dc: 0x6c79a620, 0x189dd: 0x6cfa7e20, 0x189de: 0x6d301e20, 0x189df: 0x6d33c420,
-	0x189e0: 0x6ce5be20, 0x189e1: 0x6cd4bc20, 0x189e2: 0x6c073e20, 0x189e3: 0x6d136220,
-	0x189e4: 0x6cb14c20, 0x189e5: 0x6c164420, 0x189e6: 0x6c563e20, 0x189e7: 0x6c791620,
-	0x189e8: 0x6c6f4a20, 0x189e9: 0x6c011620, 0x189ea: 0x6c213020, 0x189eb: 0x6cb97620,
-	0x189ec: 0x6c06ea20, 0x189ed: 0x6c032620, 0x189ee: 0x6c3b6020, 0x189ef: 0x6c77d620,
-	0x189f0: 0x6ceafc20, 0x189f1: 0x6ceafe20, 0x189f2: 0x6d423020, 0x189f3: 0x6c8cbc20,
-	0x189f5: 0x6c4aea20, 0x189f6: 0x6d0be620, 0x189f7: 0x6cd35420,
-	0x189f8: 0x6c545220, 0x189f9: 0x6c8b0020, 0x189fa: 0x6ccbee20, 0x189fb: 0x6cd8b220,
-	0x189fd: 0x6c071020, 0x189fe: 0x6cc5e820, 0x189ff: 0x6c319820,
-	// Block 0x628, offset 0x18a00
-	0x18a00: 0x6c0eec20, 0x18a01: 0x6c895620, 0x18a02: 0x6cba0c20, 0x18a03: 0x6c3aac20,
-	0x18a04: 0x6c624220, 0x18a05: 0x6d3ffa20, 0x18a06: 0x6c5ac820, 0x18a07: 0x6c514020,
-	0x18a08: 0x6c83e420, 0x18a09: 0x6d259620, 0x18a0a: 0x6d26ce20, 0x18a0b: 0x6d04e620,
-	0x18a0c: 0x6c15d620, 0x18a0d: 0x6c2b8c20, 0x18a0e: 0x6c825020, 0x18a0f: 0x6c6cae20,
-	0x18a10: 0x6c1d1c20, 0x18a11: 0x6cd8ec20, 0x18a12: 0x6cb49a20, 0x18a13: 0x6d11d420,
-	0x18a14: 0x6c678620, 0x18a15: 0x6c583620, 0x18a16: 0x6c595620, 0x18a17: 0x6ce1f620,
-	0x18a18: 0x6cc82c20, 0x18a19: 0x6cf26620, 0x18a1a: 0x6d1ccc20, 0x18a1b: 0x6cc53420,
-	0x18a1c: 0x6d1a3420, 0x18a1d: 0x6cd30e20, 0x18a1e: 0x6d1a2620, 0x18a1f: 0x6c73e220,
-	0x18a20: 0x6cea4020, 0x18a21: 0x6d080020, 0x18a22: 0x6c632e20, 0x18a23: 0x6d379e20,
-	0x18a24: 0x6cbc9820, 0x18a25: 0x6d3ab220, 0x18a26: 0x6c2db020,
-	0x18a28: 0x6d201820, 0x18a2b: 0x6d14a420,
-	0x18a2c: 0x6cd2c220, 0x18a2d: 0x6d16fa20, 0x18a2e: 0x6ca0e820,
-	0x18a31: 0x6cc3ae20, 0x18a32: 0x6cfea420, 0x18a33: 0x6cf3ba20,
-	0x18a34: 0x6c44c020, 0x18a35: 0x6d1ce620, 0x18a36: 0x6ce66820, 0x18a37: 0x6cd2c620,
-	0x18a38: 0x6ca5cc20, 0x18a39: 0x6c44c620, 0x18a3a: 0x6cde5020, 0x18a3b: 0x6cf28a20,
-	0x18a3c: 0x6c711820, 0x18a3d: 0x6c15a820, 0x18a3e: 0x6cb19620, 0x18a3f: 0x6d3d5420,
-	// Block 0x629, offset 0x18a40
-	0x18a40: 0x6c54c420, 0x18a41: 0x6ca4fa20, 0x18a42: 0x6d0c9820, 0x18a43: 0x6c468620,
-	0x18a44: 0x6d225c20, 0x18a45: 0x6c540420, 0x18a47: 0x6cd7f620,
-	0x18a48: 0x6c1aba20, 0x18a49: 0x6c56a420, 0x18a4a: 0x6d105220, 0x18a4b: 0x6cf22e20,
-	0x18a4c: 0x6cfcd020, 0x18a4d: 0x6cb21020, 0x18a4e: 0x6cc69c20, 0x18a4f: 0x6c90a820,
-	0x18a50: 0x6c81b420, 0x18a51: 0x6cccfe20, 0x18a52: 0x6cfef020, 0x18a53: 0x6d2ae220,
-	0x18a54: 0x6c4d7820, 0x18a55: 0x6c38b420, 0x18a56: 0x6c4e6220, 0x18a57: 0x6c14d420,
-	0x18a58: 0x6d2e7620, 0x18a5a: 0x6cde1620, 0x18a5b: 0x6d3b2a20,
-	0x18a5c: 0x6ca9c820, 0x18a5d: 0x6c4f1820, 0x18a5e: 0x6d21b620, 0x18a5f: 0x6d3db420,
-	0x18a60: 0x6d205c20, 0x18a61: 0x6c86fc20, 0x18a62: 0x6c5e2a20, 0x18a63: 0x6cf73e20,
-	0x18a64: 0x6cfb0020, 0x18a65: 0x6c155820, 0x18a66: 0x6c889420,
-	0x18a68: 0x6cd7be20, 0x18a69: 0x6c6fce20, 0x18a6a: 0x6cb42820, 0x18a6b: 0x6cbffc20,
-	0x18a6c: 0x6c45d620, 0x18a6d: 0x6d3ee820, 0x18a6e: 0x6d20bc20,
-	0x18a71: 0x6cc62820, 0x18a72: 0x6ca98420, 0x18a73: 0x6c99d820,
-	0x18a74: 0x6c032820, 0x18a75: 0x6c6f9820, 0x18a77: 0x6d069620,
-	0x18a78: 0x6cb29020, 0x18a79: 0x6c0b8a20, 0x18a7a: 0x6c995420,
-	0x18a7f: 0x6d14ce20,
-	// Block 0x62a, offset 0x18a80
-	0x18a80: 0x6d20f620, 0x18a82: 0x6cb29220, 0x18a83: 0x6cc0f220,
-	0x18a84: 0x6c05f420, 0x18a85: 0x6c5bae20,
-	0x18a89: 0x6c109420, 0x18a8a: 0x6c985820, 0x18a8b: 0x6c7e7020,
-	0x18a8c: 0x6ce8a820, 0x18a8d: 0x6cf3c220, 0x18a8e: 0x6c85ec20, 0x18a8f: 0x6c8cea20,
-	0x18a91: 0x6c620220, 0x18a92: 0x6c75bc20, 0x18a93: 0x6d405620,
-	0x18a94: 0x6c349220, 0x18a95: 0x6c745020, 0x18a96: 0x6c277020, 0x18a97: 0x6c073220,
-	0x18a9d: 0x6c7e8020, 0x18a9e: 0x6c0d3e20, 0x18a9f: 0x6cdbf820,
-	0x18aa0: 0x6ce8c220, 0x18aa1: 0x6d08e220,
-	0x18aa7: 0x6c350c20,
-	0x18aaa: 0x6cdc5420, 0x18aab: 0x6c0a2e20,
-	0x18aac: 0x6ce87420, 0x18aad: 0x6ccb4a20, 0x18aae: 0x6c120020, 0x18aaf: 0x6ce8e420,
-	0x18ab0: 0x6c9e3620, 0x18ab1: 0x6c6c5220, 0x18ab2: 0x6c93b020,
-	0x18ab5: 0x6d2e8020, 0x18ab6: 0x6c08f620, 0x18ab7: 0x6c60ac20,
-	0x18ab8: 0x6d2b7420, 0x18ab9: 0x6d07d620, 0x18aba: 0x6c86a020,
-	0x18abd: 0x6cdc8220, 0x18abe: 0x6d1dc220, 0x18abf: 0x6cd57620,
-	// Block 0x62b, offset 0x18ac0
-	0x18ac2: 0x6c358620,
-	0x18ac7: 0x6cbf8620,
-	0x18ac8: 0x6c958020, 0x18ac9: 0x6d322220, 0x18aca: 0x6cea4620, 0x18acb: 0x6c46fe20,
-	0x18acc: 0x6d223c20, 0x18acd: 0x6c82be20, 0x18ace: 0x6c0eee20, 0x18acf: 0x6ca56e20,
-	0x18ad0: 0x6cb12020, 0x18ad1: 0x6c890e20, 0x18ad2: 0x6ce17a20, 0x18ad3: 0x6c883820,
-	0x18ad4: 0x6cf16220, 0x18ad5: 0x6c291020, 0x18ad6: 0x6c87be20, 0x18ad7: 0x6ce65e20,
-	0x18ad8: 0x6cec1820, 0x18ad9: 0x6d390220, 0x18ada: 0x6c426620, 0x18adb: 0x6d03d220,
-	0x18adc: 0x6c021420, 0x18add: 0x6c393820, 0x18ade: 0x6caf0e20, 0x18adf: 0x6c0eda20,
-	0x18ae0: 0x6ceb0620, 0x18ae1: 0x6cd4d020, 0x18ae2: 0x6d14e420, 0x18ae3: 0x6c0ef020,
-	0x18ae4: 0x6cbcb820, 0x18ae5: 0x6ce80e20, 0x18ae6: 0x6c45e820, 0x18ae7: 0x6ce74820,
-	0x18ae8: 0x6c4e1220, 0x18ae9: 0x6c1a0820, 0x18aea: 0x6c6ace20, 0x18aeb: 0x6c593a20,
-	0x18aec: 0x6d042c20, 0x18aed: 0x6c2d6220, 0x18aee: 0x6c146a20, 0x18aef: 0x6c308020,
-	0x18af0: 0x6caffc20, 0x18af1: 0x6cc86a20, 0x18af2: 0x6c8b2220, 0x18af3: 0x6cd14020,
-	0x18af4: 0x6cab8420, 0x18af5: 0x6c2c8020, 0x18af6: 0x6d217020, 0x18af7: 0x6c200220,
-	0x18af8: 0x6cc6a220, 0x18af9: 0x6c774820, 0x18afa: 0x6ce12420, 0x18afb: 0x6c23b620,
-	0x18afc: 0x6cb18220, 0x18afd: 0x6c209820, 0x18afe: 0x6c92ce20, 0x18aff: 0x6ce79020,
-	// Block 0x62c, offset 0x18b00
-	0x18b00: 0x6d336620, 0x18b01: 0x6c86a420, 0x18b02: 0x6cc9a020, 0x18b03: 0x6cac4420,
-	0x18b04: 0x6cd82e20, 0x18b06: 0x6c291220, 0x18b07: 0x6c55de20,
-	0x18b08: 0x6d190c20, 0x18b09: 0x6cfd3220, 0x18b0a: 0x6d028020, 0x18b0b: 0x6c958820,
-	0x18b0c: 0x6c8f5e20, 0x18b0e: 0x6cdfea20, 0x18b0f: 0x6c422e20,
-	0x18b11: 0x6ce01c20,
-	0x18b15: 0x6d1ef020, 0x18b16: 0x6ca3e020,
-	0x18b18: 0x6c429a20, 0x18b19: 0x6c759820, 0x18b1a: 0x6c1bfe20, 0x18b1b: 0x6c464020,
-	0x18b1c: 0x6cecfa20, 0x18b1d: 0x6c85ee20, 0x18b1e: 0x6c8e5420, 0x18b1f: 0x6c8b0a20,
-	0x18b20: 0x6cf9c420, 0x18b21: 0x6c06ac20, 0x18b22: 0x6c018a20, 0x18b23: 0x6d237220,
-	0x18b24: 0x6c713220, 0x18b25: 0x6cc75820, 0x18b26: 0x6d0a3420, 0x18b27: 0x6d3e7a20,
-	0x18b28: 0x6c25ee20, 0x18b29: 0x6c120620, 0x18b2a: 0x6d2baa20, 0x18b2b: 0x6d1dc420,
-	0x18b2c: 0x6c407420, 0x18b2d: 0x6cc88a20, 0x18b2f: 0x6cf7cc20,
-	0x18b30: 0x6cd5e620, 0x18b31: 0x6c68c020, 0x18b32: 0x6c68c220, 0x18b33: 0x6d057020,
-	0x18b34: 0x6d2f2620, 0x18b37: 0x6cd71220,
-	0x18b38: 0x6c18a820, 0x18b39: 0x6c390820, 0x18b3a: 0x6c5ff820, 0x18b3b: 0x6d33a820,
-	0x18b3d: 0x6c480420, 0x18b3e: 0x6cf4d620,
-	// Block 0x62d, offset 0x18b40
-	0x18b40: 0x6cbcae20, 0x18b41: 0x6cd5bc20, 0x18b42: 0x6c4d1420, 0x18b43: 0x6ceb0820,
-	0x18b44: 0x6c319020, 0x18b45: 0x6d3f0220, 0x18b46: 0x6cc46e20, 0x18b47: 0x6ca27820,
-	0x18b48: 0x6c3fd020, 0x18b49: 0x6c8cca20, 0x18b4a: 0x6c601e20, 0x18b4b: 0x6d04ce20,
-	0x18b4c: 0x6d084c20, 0x18b4d: 0x6ca37820, 0x18b4e: 0x6d0aee20, 0x18b4f: 0x6c6be020,
-	0x18b50: 0x6c85f020, 0x18b51: 0x6c269c20, 0x18b52: 0x6cc7a020, 0x18b53: 0x6d24ee20,
-	0x18b54: 0x6c939c20, 0x18b55: 0x6cd06220, 0x18b56: 0x6c851820, 0x18b57: 0x6c89bc20,
-	0x18b58: 0x6c450e20, 0x18b59: 0x6d033820, 0x18b5a: 0x6d004420, 0x18b5b: 0x6cbdd820,
-	0x18b5c: 0x6cbcc220, 0x18b5d: 0x6c182020, 0x18b5e: 0x6d1f3c20, 0x18b5f: 0x6c109a20,
-	0x18b60: 0x6c7bc220, 0x18b61: 0x6cc3be20, 0x18b62: 0x6c00aa20, 0x18b63: 0x6cbd3420,
-	0x18b64: 0x6cbac020, 0x18b65: 0x6c1f5220, 0x18b66: 0x6cae1e20, 0x18b67: 0x6c7e0620,
-	0x18b68: 0x6d13fa20, 0x18b69: 0x6c48ce20, 0x18b6a: 0x6cd14220, 0x18b6b: 0x6cb0fa20,
-	0x18b6d: 0x6d393820, 0x18b6e: 0x6c59de20, 0x18b6f: 0x6c5ad620,
-	0x18b70: 0x6c557e20, 0x18b71: 0x6c074220,
-	0x18b74: 0x6d2bec20, 0x18b75: 0x6c624620, 0x18b76: 0x6c47c220, 0x18b77: 0x6cf6a420,
-	0x18b78: 0x6c431620, 0x18b79: 0x6c148620, 0x18b7a: 0x6c96d620, 0x18b7b: 0x6d3b2020,
-	0x18b7c: 0x6ce9ea20, 0x18b7d: 0x6d3ca020, 0x18b7e: 0x6cface20, 0x18b7f: 0x6c80de20,
-	// Block 0x62e, offset 0x18b80
-	0x18b83: 0x6d36e820,
-	0x18b84: 0x6c00cc20, 0x18b85: 0x6cfc2e20, 0x18b86: 0x6c4c3c20, 0x18b87: 0x6cf7a220,
-	0x18b89: 0x6ce9f020, 0x18b8a: 0x6c11de20, 0x18b8b: 0x6ccb0420,
-	0x18b8c: 0x6cfaea20, 0x18b8d: 0x6c6c0e20, 0x18b8e: 0x6c3bfa20, 0x18b8f: 0x6cc45a20,
-	0x18b91: 0x6d123a20, 0x18b92: 0x6c29fa20, 0x18b93: 0x6c63f420,
-	0x18b94: 0x6c82fc20, 0x18b95: 0x6d0d0220, 0x18b96: 0x6c918e20, 0x18b97: 0x6ce9d620,
-	0x18b98: 0x6d1cd220, 0x18b99: 0x6cb0de20, 0x18b9a: 0x6c964a20, 0x18b9b: 0x6c87a420,
-	0x18b9c: 0x6c0d1220, 0x18b9e: 0x6c995620, 0x18b9f: 0x6c040e20,
-	0x18ba0: 0x6c5a6a20, 0x18ba2: 0x6d121220, 0x18ba3: 0x6c50a420,
-	0x18ba4: 0x6c218420, 0x18ba5: 0x6c516420, 0x18ba6: 0x6ca95620, 0x18ba7: 0x6c1e0220,
-	0x18ba8: 0x6c874620, 0x18ba9: 0x6ce19420, 0x18baa: 0x6c585a20, 0x18bab: 0x6c095420,
-	0x18bac: 0x6c033420, 0x18bad: 0x6c181020, 0x18bae: 0x6d104620, 0x18baf: 0x6c269e20,
-	0x18bb0: 0x6c024420, 0x18bb1: 0x6d091020, 0x18bb3: 0x6d3e5220,
-	0x18bb4: 0x6c265a20, 0x18bb5: 0x6cc4ce20, 0x18bb6: 0x6c053820, 0x18bb7: 0x6c25f020,
-	0x18bb8: 0x6ced4e20, 0x18bb9: 0x6cdebe20, 0x18bba: 0x6c05dc20, 0x18bbb: 0x6c417a20,
-	0x18bbc: 0x6d0c7620, 0x18bbd: 0x6cf5a620, 0x18bbe: 0x6d3ad420, 0x18bbf: 0x6d0b4e20,
-	// Block 0x62f, offset 0x18bc0
-	0x18bc0: 0x6c393a20, 0x18bc1: 0x6d203c20, 0x18bc2: 0x6c012820, 0x18bc3: 0x6ce9a420,
-	0x18bc4: 0x6c9b2020, 0x18bc5: 0x6ccf5c20, 0x18bc6: 0x6c6d2e20, 0x18bc7: 0x6c47ce20,
-	0x18bc8: 0x6c627820, 0x18bc9: 0x6cbc0020, 0x18bca: 0x6c695820, 0x18bcb: 0x6d0d0420,
-	0x18bcc: 0x6cf92e20, 0x18bcd: 0x6c772020, 0x18bce: 0x6c9e0220, 0x18bcf: 0x6d086a20,
-	0x18bd0: 0x6cccc420, 0x18bd1: 0x6cf2d820, 0x18bd2: 0x6cb8b420, 0x18bd3: 0x6c58f620,
-	0x18bd4: 0x6cc5d020, 0x18bd5: 0x6d322420, 0x18bd6: 0x6ce45c20, 0x18bd7: 0x6c740020,
-	0x18bd8: 0x6d008620, 0x18bd9: 0x6cb75820, 0x18bda: 0x6c01f820, 0x18bdb: 0x6c9a8220,
-	0x18bdc: 0x6c476820, 0x18bde: 0x6ce1b820, 0x18bdf: 0x6c389220,
-	0x18be0: 0x6c722c20, 0x18be1: 0x6c162820, 0x18be2: 0x6cd74c20, 0x18be3: 0x6c096820,
-	0x18be4: 0x6c996220, 0x18be5: 0x6cd77820, 0x18be6: 0x6c477220, 0x18be7: 0x6c53a420,
-	0x18be8: 0x6c579620, 0x18be9: 0x6c95fe20, 0x18bea: 0x6c4f7420, 0x18beb: 0x6c63b820,
-	0x18bec: 0x6cc2e220, 0x18bed: 0x6c40f420, 0x18bee: 0x6c599020, 0x18bef: 0x6c103c20,
-	0x18bf0: 0x6c478e20, 0x18bf1: 0x6c3c4e20, 0x18bf2: 0x6ca28820, 0x18bf3: 0x6c009c20,
-	0x18bf4: 0x6d1cee20, 0x18bf5: 0x6cd75020, 0x18bf6: 0x6c89be20, 0x18bf7: 0x6c6ad020,
-	0x18bf8: 0x6c1c2220, 0x18bf9: 0x6c6ad220, 0x18bfa: 0x6c1d7020, 0x18bfb: 0x6cb2e820,
-	0x18bfc: 0x6c186a20, 0x18bfd: 0x6d0c9a20, 0x18bfe: 0x6c321c20, 0x18bff: 0x6c2c5a20,
-	// Block 0x630, offset 0x18c00
-	0x18c01: 0x6c89c220, 0x18c02: 0x6cfcd220, 0x18c03: 0x6c0c0420,
-	0x18c04: 0x6d042e20, 0x18c05: 0x6c9bda20, 0x18c06: 0x6d130220, 0x18c07: 0x6c9d5e20,
-	0x18c08: 0x6cb7a020, 0x18c09: 0x6cb7a220, 0x18c0a: 0x6cf30620, 0x18c0b: 0x6d01dc20,
-	0x18c0c: 0x6d239820, 0x18c0d: 0x6cb87020, 0x18c0e: 0x6c1a2820, 0x18c0f: 0x6d11c220,
-	0x18c10: 0x6d1bd420, 0x18c11: 0x6d0fd420, 0x18c12: 0x6c606820, 0x18c13: 0x6d3fa220,
-	0x18c14: 0x6d07b220, 0x18c15: 0x6c9f6e20, 0x18c16: 0x6c907620, 0x18c17: 0x6c766e20,
-	0x18c18: 0x6d11ca20, 0x18c19: 0x6d0dcc20, 0x18c1a: 0x6cdcfa20, 0x18c1b: 0x6c4b6c20,
-	0x18c1c: 0x6c5a7a20, 0x18c1d: 0x6d1c8e20, 0x18c1e: 0x6cd14420, 0x18c1f: 0x6c140220,
-	0x18c20: 0x6c883c20, 0x18c22: 0x6d082420, 0x18c23: 0x6c200e20,
-	0x18c24: 0x6c184220, 0x18c25: 0x6ca6ca20, 0x18c26: 0x6cc27820, 0x18c27: 0x6c9e7e20,
-	0x18c28: 0x6c5dfe20, 0x18c29: 0x6d21a420, 0x18c2a: 0x6d2e1620, 0x18c2b: 0x6c55c820,
-	0x18c2c: 0x6c136020, 0x18c2d: 0x6c0c2c20, 0x18c2e: 0x6cb9d020, 0x18c2f: 0x6cf6ee20,
-	0x18c30: 0x6c67c220, 0x18c31: 0x6c79c620, 0x18c32: 0x6c970220, 0x18c33: 0x6c98a220,
-	0x18c34: 0x6d2e2220, 0x18c35: 0x6c0b5c20, 0x18c36: 0x6c5f6c20, 0x18c37: 0x6c74d820,
-	0x18c38: 0x6ca45820, 0x18c39: 0x6c0a9020, 0x18c3a: 0x6cd3f420, 0x18c3b: 0x6cd7ac20,
-	0x18c3c: 0x6ca18820, 0x18c3d: 0x6c8b6420, 0x18c3e: 0x6c9f0820, 0x18c3f: 0x6ca19420,
-	// Block 0x631, offset 0x18c40
-	0x18c40: 0x6cf74820, 0x18c41: 0x6c156820, 0x18c42: 0x6cc21620, 0x18c43: 0x6c69e620,
-	0x18c44: 0x6c5e5a20, 0x18c45: 0x6cfb1a20, 0x18c46: 0x6d068820, 0x18c47: 0x6ca98820,
-	0x18c48: 0x6ce74020, 0x18c49: 0x6c542220, 0x18c4a: 0x6d240e20,
-	0x18c4c: 0x6c1ce220, 0x18c4d: 0x6c0fbc20, 0x18c4e: 0x6d415820, 0x18c4f: 0x6c2dba20,
-	0x18c50: 0x6d3cfa20, 0x18c51: 0x6c5ea620, 0x18c52: 0x6cb86220,
-	0x18c54: 0x6d043020, 0x18c55: 0x6c5c0020, 0x18c56: 0x6cd23420, 0x18c57: 0x6c7a1e20,
-	0x18c59: 0x6c32f220, 0x18c5a: 0x6d10da20, 0x18c5b: 0x6d20da20,
-	0x18c5c: 0x6c056420, 0x18c5d: 0x6c6a9220, 0x18c5e: 0x6d30e820, 0x18c5f: 0x6c634620,
-	0x18c60: 0x6cd2c820, 0x18c61: 0x6c2bea20, 0x18c62: 0x6c302a20, 0x18c63: 0x6c223a20,
-	0x18c64: 0x6c3fd220, 0x18c65: 0x6c9f4020, 0x18c66: 0x6d314020, 0x18c67: 0x6d31d020,
-	0x18c69: 0x6d0e6420, 0x18c6a: 0x6cbc2020, 0x18c6b: 0x6c4f4e20,
-	0x18c6c: 0x6c45ea20, 0x18c6d: 0x6cbb6e20, 0x18c6e: 0x6c94a220, 0x18c6f: 0x6c48f620,
-	0x18c70: 0x6c7e7620, 0x18c71: 0x6cc8ce20, 0x18c72: 0x6c383420, 0x18c73: 0x6c260a20,
-	0x18c74: 0x6d0c9c20, 0x18c75: 0x6c458a20, 0x18c76: 0x6c6ad420, 0x18c77: 0x6c48d020,
-	0x18c78: 0x6c4c7020, 0x18c79: 0x6cdd7c20, 0x18c7a: 0x6cf2ba20, 0x18c7b: 0x6d335220,
-	0x18c7c: 0x6ca84220, 0x18c7d: 0x6c2e2c20, 0x18c7e: 0x6c7f3c20, 0x18c7f: 0x6cde6420,
-	// Block 0x632, offset 0x18c80
-	0x18c80: 0x6c254620, 0x18c81: 0x6d0af420, 0x18c82: 0x6c4bd020,
-	0x18c85: 0x6c2b3420, 0x18c87: 0x6c9dc820,
-	0x18c88: 0x6c6a2a20, 0x18c89: 0x6c9f7020, 0x18c8a: 0x6c71ca20, 0x18c8b: 0x6d217420,
-	0x18c8c: 0x6d318020, 0x18c8d: 0x6d2fc820, 0x18c8e: 0x6d2cd220, 0x18c8f: 0x6d038820,
-	0x18c91: 0x6c049420, 0x18c92: 0x6c516620, 0x18c93: 0x6c46d220,
-	0x18c94: 0x6c538220, 0x18c95: 0x6c816e20, 0x18c96: 0x6cf51620, 0x18c97: 0x6c0e8c20,
-	0x18c98: 0x6c795420, 0x18c99: 0x6c92d420, 0x18c9a: 0x6c246420, 0x18c9b: 0x6c885020,
-	0x18c9c: 0x6d141820, 0x18c9d: 0x6cbc6020, 0x18c9e: 0x6cd53820,
-	0x18ca0: 0x6d08b220, 0x18ca1: 0x6c6c6220, 0x18ca2: 0x6cbd4220, 0x18ca3: 0x6c5b7020,
-	0x18ca4: 0x6cdb3620, 0x18ca5: 0x6c207c20, 0x18ca6: 0x6c33b420, 0x18ca7: 0x6c8fb220,
-	0x18ca9: 0x6ca4c820, 0x18caa: 0x6ce02220, 0x18cab: 0x6c285220,
-	0x18cac: 0x6cf03e20, 0x18cad: 0x6c41f220, 0x18cae: 0x6c26c620, 0x18caf: 0x6c86d420,
-	0x18cb0: 0x6c10de20, 0x18cb1: 0x6cfd3e20, 0x18cb2: 0x6cac8c20, 0x18cb3: 0x6c7eb620,
-	0x18cb4: 0x6d39ec20, 0x18cb5: 0x6ca7c420, 0x18cb6: 0x6c580220, 0x18cb7: 0x6d1cce20,
-	0x18cb8: 0x6cfd4620, 0x18cb9: 0x6c809020, 0x18cba: 0x6ca0a020, 0x18cbb: 0x6c03e220,
-	0x18cbd: 0x6c4adc20, 0x18cbe: 0x6c08c620, 0x18cbf: 0x6c3d5020,
-	// Block 0x633, offset 0x18cc0
-	0x18cc0: 0x6c5da820, 0x18cc1: 0x6d173c20, 0x18cc2: 0x6c8f2c20,
-	0x18cc4: 0x6d19cc20, 0x18cc5: 0x6c735c20, 0x18cc6: 0x6c5d7420, 0x18cc7: 0x6c1a0a20,
-	0x18cc8: 0x6c311c20, 0x18cc9: 0x6c356a20, 0x18ccb: 0x6d0da620,
-	0x18ccc: 0x6d3c9420, 0x18ccd: 0x6d2cce20, 0x18cce: 0x6cb70420, 0x18ccf: 0x6d216220,
-	0x18cd0: 0x6cc37620, 0x18cd1: 0x6c5d7a20, 0x18cd2: 0x6ca84420, 0x18cd3: 0x6c59e220,
-	0x18cd4: 0x6c71cc20, 0x18cd5: 0x6ccf6820,
-	0x18cd8: 0x6caebe20, 0x18cd9: 0x6ca01820, 0x18cda: 0x6c129220, 0x18cdb: 0x6c90ba20,
-	0x18cdc: 0x6c843e20, 0x18cdd: 0x6c205e20, 0x18cdf: 0x6c24f020,
-	0x18ce0: 0x6ccdc820, 0x18ce1: 0x6c280a20, 0x18ce2: 0x6cb68220,
-	0x18ce4: 0x6c7f7a20, 0x18ce5: 0x6c8de620, 0x18ce6: 0x6c8a6220, 0x18ce7: 0x6cc62220,
-	0x18ce8: 0x6d20c820, 0x18ce9: 0x6d16ca20, 0x18cea: 0x6c2df820, 0x18ceb: 0x6cb6dc20,
-	0x18cec: 0x6d147820, 0x18ced: 0x6ca6f420, 0x18cee: 0x6c3d5220, 0x18cef: 0x6c657420,
-	0x18cf0: 0x6d0b1c20, 0x18cf1: 0x6c398c20, 0x18cf2: 0x6cc8c420, 0x18cf3: 0x6cfa8c20,
-	0x18cf6: 0x6c096a20, 0x18cf7: 0x6cd25e20,
-	0x18cf8: 0x6cb38020, 0x18cf9: 0x6ca6fc20, 0x18cfa: 0x6d35f620, 0x18cfb: 0x6ce22020,
-	0x18cfc: 0x6ce4f020, 0x18cfd: 0x6ce4f220, 0x18cfe: 0x6cc81620, 0x18cff: 0x6d176a20,
-	// Block 0x634, offset 0x18d00
-	0x18d00: 0x6c8b0420, 0x18d01: 0x6c01bc20, 0x18d02: 0x6c511020, 0x18d03: 0x6cbf1620,
-	0x18d04: 0x6c85f420, 0x18d05: 0x6c4a5c20, 0x18d06: 0x6d3f4a20, 0x18d07: 0x6cdaaa20,
-	0x18d08: 0x6d261020, 0x18d09: 0x6d0ba220, 0x18d0a: 0x6c13dc20, 0x18d0b: 0x6ced2420,
-	0x18d0c: 0x6c72f420, 0x18d0d: 0x6ce6cc20, 0x18d0e: 0x6d1fd020, 0x18d0f: 0x6c5bc620,
-	0x18d10: 0x6c659c20, 0x18d11: 0x6cc89e20, 0x18d12: 0x6c986420, 0x18d13: 0x6c71b820,
-	0x18d14: 0x6d3e5620, 0x18d15: 0x6c70a820, 0x18d16: 0x6c013a20, 0x18d17: 0x6cdc5020,
-	0x18d18: 0x6c7f1620, 0x18d19: 0x6c5d3020, 0x18d1a: 0x6cc35e20, 0x18d1b: 0x6c167220,
-	0x18d1c: 0x6c34fa20, 0x18d1d: 0x6c798020, 0x18d1e: 0x6ca55020, 0x18d1f: 0x6c11d220,
-	0x18d20: 0x6ce35620, 0x18d21: 0x6d064c20, 0x18d22: 0x6c701020, 0x18d23: 0x6c59e420,
-	0x18d24: 0x6cb7b820, 0x18d25: 0x6c6b0e20, 0x18d26: 0x6c98f220, 0x18d27: 0x6d0c2020,
-	0x18d29: 0x6d354820, 0x18d2a: 0x6ce9b020,
-	0x18d2c: 0x6c00c220, 0x18d2d: 0x6cad0a20, 0x18d2e: 0x6c125a20, 0x18d2f: 0x6ce12820,
-	0x18d30: 0x6c372220, 0x18d31: 0x6c5d3c20, 0x18d32: 0x6cb63e20, 0x18d33: 0x6c1ea620,
-	0x18d34: 0x6cdd9020, 0x18d35: 0x6d3d8820, 0x18d36: 0x6caa2620, 0x18d37: 0x6ce8f220,
-	0x18d38: 0x6cd01a20, 0x18d39: 0x6c90f820, 0x18d3a: 0x6c0c2020, 0x18d3b: 0x6c844020,
-	0x18d3c: 0x6c977c20, 0x18d3d: 0x6d02f020, 0x18d3e: 0x6c133c20, 0x18d3f: 0x6c5a0a20,
-	// Block 0x635, offset 0x18d40
-	0x18d40: 0x6c9a6c20, 0x18d41: 0x6c42e620, 0x18d42: 0x6c887620, 0x18d43: 0x6c2a3e20,
-	0x18d44: 0x6d2e2420, 0x18d45: 0x6d3eaa20,
-	0x18d48: 0x6d375620, 0x18d49: 0x6c03d020, 0x18d4a: 0x6c258a20, 0x18d4b: 0x6cbfe420,
-	0x18d4d: 0x6c8fea20, 0x18d4e: 0x6cfb0a20, 0x18d4f: 0x6c3afa20,
-	0x18d50: 0x6c4cac20, 0x18d51: 0x6c19b820, 0x18d52: 0x6c6fda20, 0x18d53: 0x6c35f620,
-	0x18d54: 0x6c1cb420, 0x18d55: 0x6d269220, 0x18d56: 0x6c531620, 0x18d57: 0x6d119e20,
-	0x18d58: 0x6d0ae220, 0x18d59: 0x6d10e620, 0x18d5a: 0x6ce74420, 0x18d5b: 0x6d2cc020,
-	0x18d5c: 0x6d204020, 0x18d5d: 0x6d095620, 0x18d5e: 0x6d11aa20, 0x18d5f: 0x6c78a820,
-	0x18d60: 0x6c591620, 0x18d61: 0x6c80cc20, 0x18d62: 0x6d26ba20, 0x18d63: 0x6c18ca20,
-	0x18d66: 0x6cd0b220,
-	0x18d68: 0x6ca90e20, 0x18d69: 0x6ca00a20, 0x18d6a: 0x6c52ba20, 0x18d6b: 0x6c205820,
-	0x18d6c: 0x6d27fe20, 0x18d6d: 0x6d07be20, 0x18d6e: 0x6c6d4420, 0x18d6f: 0x6d3d9c20,
-	0x18d70: 0x6d209c20, 0x18d71: 0x6cdfbc20, 0x18d72: 0x6c775420, 0x18d73: 0x6cbf6420,
-	0x18d75: 0x6c1a4c20, 0x18d76: 0x6c6f8820, 0x18d77: 0x6d097620,
-	0x18d78: 0x6d32fa20, 0x18d79: 0x6c1ce420, 0x18d7a: 0x6cac4a20, 0x18d7b: 0x6cbc6620,
-	0x18d7d: 0x6cc1e620, 0x18d7e: 0x6c7fd620, 0x18d7f: 0x6d190e20,
-	// Block 0x636, offset 0x18d80
-	0x18d80: 0x6cc6de20, 0x18d81: 0x6cd84e20, 0x18d82: 0x6cb89c20, 0x18d83: 0x6cd89220,
-	0x18d85: 0x6c380420, 0x18d87: 0x6c9b1020,
-	0x18d88: 0x6c578e20, 0x18d8b: 0x6c4d6620,
-	0x18d8c: 0x6cbc4420, 0x18d8d: 0x6c1f4620, 0x18d8e: 0x6cc3d420, 0x18d8f: 0x6c334e20,
-	0x18d90: 0x6c863820, 0x18d91: 0x6c03b820, 0x18d92: 0x6c6c0420, 0x18d93: 0x6d05ee20,
-	0x18d94: 0x6c963620, 0x18d96: 0x6d27de20, 0x18d97: 0x6d37ae20,
-	0x18d98: 0x6c568220, 0x18d99: 0x6d1ad220, 0x18d9b: 0x6d351020,
-	0x18d9c: 0x6cb9fa20, 0x18d9e: 0x6c419420, 0x18d9f: 0x6c667c20,
-	0x18da0: 0x6d3ae220, 0x18da1: 0x6d3ae420, 0x18da2: 0x6c7a7820, 0x18da3: 0x6ca81a20,
-	0x18da4: 0x6cc8ca20, 0x18da5: 0x6d2ac220, 0x18da6: 0x6c020820, 0x18da7: 0x6d363820,
-	0x18da8: 0x6c461a20, 0x18da9: 0x6d17b220, 0x18daa: 0x6c1ab020, 0x18dab: 0x6c5ed620,
-	0x18dac: 0x6d39a620, 0x18dad: 0x6c81b220, 0x18dae: 0x6cc5ee20, 0x18daf: 0x6cc67620,
-	0x18db0: 0x6d32c620, 0x18db1: 0x6ca34220, 0x18db2: 0x6c12ec20,
-	0x18db5: 0x6d151e20, 0x18db6: 0x6c746820, 0x18db7: 0x6c0cee20,
-	0x18db8: 0x6c1a1e20, 0x18db9: 0x6c75ce20, 0x18dba: 0x6c312620, 0x18dbb: 0x6cefe420,
-	0x18dbc: 0x6d17fa20, 0x18dbd: 0x6d306020, 0x18dbe: 0x6d0cae20,
-	// Block 0x637, offset 0x18dc0
-	0x18dc0: 0x6cca0220, 0x18dc1: 0x6c950220, 0x18dc2: 0x6cb2be20, 0x18dc3: 0x6d2f9020,
-	0x18dc4: 0x6c4e2020, 0x18dc5: 0x6d239a20, 0x18dc6: 0x6c278220, 0x18dc7: 0x6d2fca20,
-	0x18dc8: 0x6c3a3e20, 0x18dc9: 0x6ccc6620, 0x18dca: 0x6c8d3820, 0x18dcb: 0x6cde7a20,
-	0x18dcc: 0x6cc12220, 0x18dcd: 0x6c986e20, 0x18dce: 0x6d132c20, 0x18dcf: 0x6c05d220,
-	0x18dd0: 0x6c4b6e20, 0x18dd1: 0x6c489e20, 0x18dd2: 0x6ca43620, 0x18dd3: 0x6c442420,
-	0x18dd5: 0x6cd28420, 0x18dd6: 0x6c782820, 0x18dd7: 0x6cdd9220,
-	0x18dd8: 0x6c225c20, 0x18dd9: 0x6d394620, 0x18dda: 0x6cdf3820, 0x18ddb: 0x6c7b3420,
-	0x18ddc: 0x6cbe2420, 0x18ddd: 0x6d05d820, 0x18dde: 0x6c322820, 0x18ddf: 0x6c131220,
-	0x18de0: 0x6c58da20, 0x18de1: 0x6c234420, 0x18de2: 0x6cc9de20, 0x18de3: 0x6d336020,
-	0x18de4: 0x6cb9be20, 0x18de5: 0x6c6c5420, 0x18de6: 0x6d3fb420, 0x18de7: 0x6cf00020,
-	0x18dea: 0x6cf8de20, 0x18deb: 0x6ca36c20,
-	0x18dec: 0x6cb45420, 0x18ded: 0x6cd9e020, 0x18dee: 0x6c729420, 0x18def: 0x6d319620,
-	0x18df0: 0x6cce8620, 0x18df1: 0x6ce1e820, 0x18df2: 0x6c049c20, 0x18df3: 0x6cdea020,
-	0x18df4: 0x6cba7c20, 0x18df5: 0x6cf23a20, 0x18df6: 0x6cc6ae20, 0x18df7: 0x6c962820,
-	0x18df8: 0x6c55ca20, 0x18df9: 0x6cda2e20, 0x18dfa: 0x6d37cc20, 0x18dfb: 0x6cb46020,
-	0x18dfc: 0x6c9ef620, 0x18dfd: 0x6c6c6420, 0x18dfe: 0x6cce8a20, 0x18dff: 0x6c9d8e20,
-	// Block 0x638, offset 0x18e00
-	0x18e00: 0x6cd61c20, 0x18e01: 0x6c8d7020, 0x18e02: 0x6c82de20, 0x18e03: 0x6c67c420,
-	0x18e04: 0x6c838a20, 0x18e05: 0x6d370e20, 0x18e06: 0x6c2e0020,
-	0x18e08: 0x6cca2e20, 0x18e09: 0x6c473e20, 0x18e0a: 0x6c397220, 0x18e0b: 0x6c9ab220,
-	0x18e0c: 0x6cdc9e20, 0x18e0d: 0x6c65f620, 0x18e0e: 0x6ce15020, 0x18e0f: 0x6d025e20,
-	0x18e10: 0x6c7a6a20, 0x18e11: 0x6cf3fe20, 0x18e12: 0x6c38d220, 0x18e13: 0x6c963820,
-	0x18e14: 0x6c117820, 0x18e15: 0x6c136620, 0x18e16: 0x6c8d7a20, 0x18e17: 0x6d142620,
-	0x18e18: 0x6c23be20, 0x18e19: 0x6d27ce20, 0x18e1a: 0x6c9b7420, 0x18e1b: 0x6d245020,
-	0x18e1c: 0x6d374220, 0x18e1d: 0x6d162020, 0x18e1e: 0x6c285620, 0x18e1f: 0x6c5e2c20,
-	0x18e20: 0x6cef5a20, 0x18e21: 0x6ce03220, 0x18e22: 0x6ccb7e20, 0x18e23: 0x6d024420,
-	0x18e24: 0x6cda3620, 0x18e25: 0x6cd97620, 0x18e26: 0x6cb94c20, 0x18e27: 0x6c8eda20,
-	0x18e28: 0x6d194620, 0x18e2a: 0x6c835a20, 0x18e2b: 0x6c84aa20,
-	0x18e2c: 0x6c3af420, 0x18e2d: 0x6c8b6a20, 0x18e2e: 0x6c8c8820, 0x18e2f: 0x6cfd4820,
-	0x18e30: 0x6d002c20, 0x18e31: 0x6cab6420, 0x18e32: 0x6c9cbc20, 0x18e33: 0x6cfb1220,
-	0x18e34: 0x6cc4f820, 0x18e35: 0x6d3c0220, 0x18e36: 0x6cd6be20, 0x18e37: 0x6d0d1e20,
-	0x18e38: 0x6c0be020, 0x18e39: 0x6c8df020, 0x18e3a: 0x6c531a20, 0x18e3b: 0x6cb5a620,
-	0x18e3c: 0x6c8a9620, 0x18e3d: 0x6c04ca20, 0x18e3e: 0x6c097e20, 0x18e3f: 0x6c554820,
-	// Block 0x639, offset 0x18e40
-	0x18e40: 0x6c554a20, 0x18e42: 0x6c12f220, 0x18e43: 0x6cae1c20,
-	0x18e44: 0x6cbf2c20, 0x18e45: 0x6c9ffe20, 0x18e46: 0x6c700220, 0x18e47: 0x6c10a220,
-	0x18e48: 0x6c9a1420, 0x18e49: 0x6cca1e20, 0x18e4a: 0x6cf0a820,
-	0x18e4d: 0x6c841e20, 0x18e4e: 0x6cc36220,
-	0x18e50: 0x6c5cfa20, 0x18e51: 0x6cfdf220, 0x18e53: 0x6cd3c620,
-	0x18e54: 0x6d1c9020, 0x18e56: 0x6ca43820, 0x18e57: 0x6c59f220,
-	0x18e58: 0x6c701a20, 0x18e59: 0x6d0c2620, 0x18e5b: 0x6cc99020,
-	0x18e5c: 0x6ce96220, 0x18e5d: 0x6d022e20, 0x18e5e: 0x6d309c20, 0x18e5f: 0x6c9ada20,
-	0x18e60: 0x6cf8f420, 0x18e61: 0x6c978a20, 0x18e63: 0x6c5a1820,
-	0x18e64: 0x6ce02420, 0x18e65: 0x6d001420, 0x18e66: 0x6d137220, 0x18e67: 0x6c0a9420,
-	0x18e68: 0x6c955a20, 0x18e69: 0x6c38d420, 0x18e6a: 0x6c870620, 0x18e6b: 0x6c251220,
-	0x18e6c: 0x6c1fa620, 0x18e6d: 0x6c2a4620, 0x18e6e: 0x6c2bb620, 0x18e6f: 0x6c7c1c20,
-	0x18e70: 0x6c1ecc20, 0x18e71: 0x6cfb1420, 0x18e72: 0x6c165220, 0x18e73: 0x6c9cce20,
-	0x18e74: 0x6cba8e20, 0x18e75: 0x6cc00820, 0x18e76: 0x6d322620,
-	0x18e7a: 0x6c568620, 0x18e7b: 0x6c418c20,
-	0x18e7c: 0x6c1b9220, 0x18e7d: 0x6c48f220, 0x18e7e: 0x6ca27a20, 0x18e7f: 0x6c0ede20,
-	// Block 0x63a, offset 0x18e80
-	0x18e80: 0x6c579020, 0x18e81: 0x6c44fc20, 0x18e82: 0x6d10e820, 0x18e83: 0x6c996420,
-	0x18e84: 0x6cee0820,
-	0x18e88: 0x6cc7a420, 0x18e89: 0x6d090820, 0x18e8a: 0x6d32b820, 0x18e8b: 0x6c9f4a20,
-	0x18e8c: 0x6c67a420, 0x18e8e: 0x6d2e5a20, 0x18e8f: 0x6d423820,
-	0x18e90: 0x6d26a620, 0x18e91: 0x6c8b0620, 0x18e93: 0x6d392420,
-	0x18e94: 0x6c098020, 0x18e95: 0x6cc5f020, 0x18e96: 0x6d234e20,
-	0x18e98: 0x6c21c020, 0x18e99: 0x6c379820, 0x18e9a: 0x6d17b420, 0x18e9b: 0x6c9cf620,
-	0x18e9c: 0x6cbeca20, 0x18e9e: 0x6cee1e20, 0x18e9f: 0x6c621e20,
-	0x18ea0: 0x6c104020, 0x18ea2: 0x6c0cae20, 0x18ea3: 0x6c38a820,
-	0x18ea4: 0x6d26c820, 0x18ea5: 0x6c83ee20, 0x18ea6: 0x6c38aa20, 0x18ea7: 0x6cc1a820,
-	0x18ea8: 0x6c3f7620, 0x18ea9: 0x6c376220, 0x18eaa: 0x6c354420, 0x18eab: 0x6d32e420,
-	0x18eac: 0x6ce47020, 0x18ead: 0x6d239c20, 0x18eae: 0x6c6d3020, 0x18eaf: 0x6cb70c20,
-	0x18eb0: 0x6c714220, 0x18eb1: 0x6c7f1e20, 0x18eb2: 0x6c17f020, 0x18eb3: 0x6c06d020,
-	0x18eb4: 0x6ca9a820, 0x18eb5: 0x6d186020, 0x18eb6: 0x6d065420, 0x18eb7: 0x6ca1e020,
-	0x18eb8: 0x6d0a3620, 0x18eb9: 0x6c3eda20, 0x18ebb: 0x6ca8ec20,
-	0x18ebc: 0x6ce64820, 0x18ebd: 0x6c082c20, 0x18ebe: 0x6d2c8a20, 0x18ebf: 0x6ceeae20,
-	// Block 0x63b, offset 0x18ec0
-	0x18ec0: 0x6c782a20, 0x18ec1: 0x6d10b020, 0x18ec2: 0x6caba420, 0x18ec3: 0x6cff0820,
-	0x18ec4: 0x6c451a20, 0x18ec5: 0x6ce13820, 0x18ec6: 0x6c4b7620, 0x18ec7: 0x6c5c3a20,
-	0x18ec8: 0x6cddfe20, 0x18eca: 0x6d114620, 0x18ecb: 0x6c266820,
-	0x18ecc: 0x6cb7ea20, 0x18ecd: 0x6c6cba20, 0x18ece: 0x6c94c220, 0x18ecf: 0x6c9d9020,
-	0x18ed0: 0x6c9d9220, 0x18ed1: 0x6c64fe20, 0x18ed2: 0x6c92ec20, 0x18ed3: 0x6c38c820,
-	0x18ed4: 0x6cab5620, 0x18ed5: 0x6c9c7e20, 0x18ed6: 0x6c6b6420, 0x18ed7: 0x6c3f9220,
-	0x18ed8: 0x6c0d1a20, 0x18ed9: 0x6c5a7c20, 0x18eda: 0x6cda5c20, 0x18edb: 0x6d115e20,
-	0x18edc: 0x6ca89620, 0x18edd: 0x6c6c6c20, 0x18ede: 0x6c88d620, 0x18edf: 0x6c0faa20,
-	0x18ee0: 0x6c652420, 0x18ee1: 0x6ce3ca20, 0x18ee2: 0x6c8d8220, 0x18ee3: 0x6d415220,
-	0x18ee4: 0x6cd20e20, 0x18ee5: 0x6d1b2620, 0x18ee6: 0x6c2a4820, 0x18ee7: 0x6c1e0620,
-	0x18ee8: 0x6c10e220, 0x18ee9: 0x6c9f1220, 0x18eea: 0x6d0e1620, 0x18eeb: 0x6c805620,
-	0x18eec: 0x6c1d3420, 0x18eed: 0x6c68b020, 0x18eee: 0x6cd6bc20, 0x18eef: 0x6cc2ac20,
-	0x18ef0: 0x6ca8c820, 0x18ef1: 0x6c964c20, 0x18ef3: 0x6cd21e20,
-	0x18ef4: 0x6c965020, 0x18ef5: 0x6d3a4c20, 0x18ef7: 0x6c1d6e20,
-	0x18ef8: 0x6c734e20, 0x18ef9: 0x6c6f0c20, 0x18efa: 0x6c379a20, 0x18efb: 0x6d17b820,
-	0x18efc: 0x6cc8d620, 0x18efd: 0x6c113c20, 0x18efe: 0x6cc57a20, 0x18eff: 0x6c3edc20,
-	// Block 0x63c, offset 0x18f00
-	0x18f00: 0x6c7fb820, 0x18f01: 0x6cdcaa20, 0x18f02: 0x6d20e220, 0x18f03: 0x6d1f1c20,
-	0x18f04: 0x6c2d1820, 0x18f05: 0x6c8cf420, 0x18f06: 0x6d3aec20, 0x18f07: 0x6cde5220,
-	0x18f08: 0x6cb29e20, 0x18f09: 0x6d2d2a20, 0x18f0a: 0x6c684c20, 0x18f0b: 0x6c20de20,
-	0x18f0c: 0x6c10ac20, 0x18f0d: 0x6c7a0620, 0x18f0e: 0x6c25b620,
-	0x18f10: 0x6c4e5220, 0x18f11: 0x6c4e5420, 0x18f12: 0x6ca20020, 0x18f13: 0x6c567420,
-	0x18f14: 0x6c457220, 0x18f15: 0x6c2b2020, 0x18f16: 0x6c3e3c20, 0x18f17: 0x6d088020,
-	0x18f18: 0x6c9c4c20, 0x18f19: 0x6c9a0420, 0x18f1a: 0x6c811e20, 0x18f1b: 0x6c481e20,
-	0x18f1c: 0x6d2fc020, 0x18f1d: 0x6cde6620, 0x18f1e: 0x6d23a220, 0x18f1f: 0x6d402820,
-	0x18f20: 0x6c844820, 0x18f21: 0x6c92d820, 0x18f22: 0x6cf3f620, 0x18f23: 0x6c826c20,
-	0x18f24: 0x6c615e20, 0x18f25: 0x6c875220, 0x18f26: 0x6c84d820,
-	0x18f28: 0x6cb30420, 0x18f29: 0x6d101020, 0x18f2a: 0x6cec2e20, 0x18f2b: 0x6ceb1a20,
-	0x18f2c: 0x6cae6e20, 0x18f2e: 0x6d2fb420, 0x18f2f: 0x6c4b0220,
-	0x18f31: 0x6d061e20, 0x18f32: 0x6ca38020, 0x18f33: 0x6cc3e420,
-	0x18f34: 0x6ceff620, 0x18f35: 0x6d32e620, 0x18f36: 0x6c300e20, 0x18f37: 0x6cf00820,
-	0x18f38: 0x6c0f6020, 0x18f3a: 0x6c595820, 0x18f3b: 0x6d08c020,
-	0x18f3c: 0x6d295620, 0x18f3d: 0x6c877220, 0x18f3e: 0x6d0d6020, 0x18f3f: 0x6c59ae20,
-	// Block 0x63d, offset 0x18f40
-	0x18f40: 0x6d095820, 0x18f41: 0x6c554c20, 0x18f42: 0x6c05f820, 0x18f43: 0x6cc4c220,
-	0x18f44: 0x6cfeba20, 0x18f45: 0x6cb38620, 0x18f46: 0x6c8a9820, 0x18f47: 0x6d388a20,
-	0x18f48: 0x6d17ba20, 0x18f49: 0x6d06e220, 0x18f4a: 0x6c960820, 0x18f4b: 0x6c77be20,
-	0x18f4c: 0x6c1f5620, 0x18f4e: 0x6ca35620, 0x18f4f: 0x6c4e2220,
-	0x18f50: 0x6c17a220, 0x18f51: 0x6c929220, 0x18f52: 0x6d2e0620, 0x18f53: 0x6cde7c20,
-	0x18f54: 0x6c3da220, 0x18f55: 0x6c52c820, 0x18f56: 0x6d2ba020, 0x18f57: 0x6cbc0620,
-	0x18f58: 0x6cdb5020, 0x18f59: 0x6cb1fa20, 0x18f5a: 0x6c49ba20,
-	0x18f5c: 0x6c5cd020, 0x18f5d: 0x6c1e8020, 0x18f5f: 0x6c374420,
-	0x18f60: 0x6c374620, 0x18f61: 0x6cc85a20, 0x18f62: 0x6cb6e220, 0x18f63: 0x6cd8ba20,
-	0x18f64: 0x6c713620, 0x18f66: 0x6d0dbe20, 0x18f67: 0x6c058220,
-	0x18f68: 0x6d131e20, 0x18f69: 0x6d3e6c20, 0x18f6a: 0x6ca55220, 0x18f6b: 0x6c20b220,
-	0x18f6c: 0x6c03c220, 0x18f6d: 0x6c126c20, 0x18f6e: 0x6ce42c20, 0x18f6f: 0x6c4f1c20,
-	0x18f70: 0x6d425220, 0x18f71: 0x6c03d420, 0x18f72: 0x6d301420, 0x18f73: 0x6cec2820,
-	0x18f74: 0x6c44c420, 0x18f75: 0x6c098220, 0x18f76: 0x6c37ca20, 0x18f77: 0x6d3af820,
-	0x18f78: 0x6cf50220, 0x18f79: 0x6cf19a20, 0x18f7a: 0x6d369820, 0x18f7b: 0x6d393c20,
-	0x18f7c: 0x6c929420, 0x18f7d: 0x6cf1a020, 0x18f7e: 0x6c4bdc20, 0x18f7f: 0x6cc08e20,
-	// Block 0x63e, offset 0x18f80
-	0x18f80: 0x6c7e9420, 0x18f81: 0x6d292020, 0x18f82: 0x6cda2820, 0x18f83: 0x6c9dd420,
-	0x18f84: 0x6c2c0620, 0x18f85: 0x6cb7ec20, 0x18f86: 0x6c129a20, 0x18f87: 0x6cb1bc20,
-	0x18f88: 0x6c887820, 0x18f89: 0x6cd21020, 0x18f8a: 0x6c8ff620, 0x18f8b: 0x6cdad620,
-	0x18f8c: 0x6cb73220, 0x18f8d: 0x6d25fa20, 0x18f8e: 0x6c3c9e20, 0x18f8f: 0x6d056820,
-	0x18f90: 0x6c73f620, 0x18f91: 0x6c2c3020, 0x18f92: 0x6cb14820, 0x18f93: 0x6c494a20,
-	0x18f94: 0x6ca98620, 0x18f95: 0x6cc5d220, 0x18f96: 0x6d321c20, 0x18f97: 0x6c412e20,
-	0x18f98: 0x6cb08a20, 0x18f99: 0x6ce05420, 0x18f9a: 0x6c179220, 0x18f9b: 0x6c217220,
-	0x18f9c: 0x6c508e20, 0x18f9d: 0x6d3b7220, 0x18f9e: 0x6ca0ec20, 0x18f9f: 0x6c0ce020,
-	0x18fa0: 0x6cb75e20, 0x18fa1: 0x6cd34620, 0x18fa2: 0x6c08ca20, 0x18fa3: 0x6c740620,
-	0x18fa4: 0x6cd8a420, 0x18fa6: 0x6c485220, 0x18fa7: 0x6ca32a20,
-	0x18fa8: 0x6c5b4e20, 0x18fa9: 0x6cf5ca20, 0x18faa: 0x6c37c820, 0x18fab: 0x6d04ca20,
-	0x18fac: 0x6ca1ca20, 0x18fae: 0x6cf77220, 0x18faf: 0x6d360220,
-	0x18fb0: 0x6cc8fc20, 0x18fb1: 0x6c711a20, 0x18fb2: 0x6c2e9420, 0x18fb3: 0x6d30f420,
-	0x18fb4: 0x6cced820, 0x18fb5: 0x6c9bd220, 0x18fb6: 0x6c098420, 0x18fb7: 0x6c4eb420,
-	0x18fb8: 0x6d210420, 0x18fb9: 0x6cfcb820, 0x18fba: 0x6cacd420, 0x18fbb: 0x6ca5a620,
-	0x18fbc: 0x6c119820, 0x18fbd: 0x6c109c20, 0x18fbf: 0x6cb70020,
-	// Block 0x63f, offset 0x18fc0
-	0x18fc0: 0x6c620820, 0x18fc1: 0x6d3d6420, 0x18fc2: 0x6c925e20, 0x18fc3: 0x6c75c220,
-	0x18fc4: 0x6cfccc20, 0x18fc5: 0x6cf62620, 0x18fc6: 0x6c113220, 0x18fc7: 0x6cf1e220,
-	0x18fc8: 0x6d346a20, 0x18fc9: 0x6d3f5820, 0x18fca: 0x6c7d6820, 0x18fcb: 0x6c231a20,
-	0x18fcc: 0x6ce4f820, 0x18fcd: 0x6c1f5820, 0x18fce: 0x6c2b3620, 0x18fcf: 0x6c218220,
-	0x18fd0: 0x6cbfb620, 0x18fd1: 0x6d306220, 0x18fd2: 0x6d2be220, 0x18fd3: 0x6cc75420,
-	0x18fd4: 0x6c0d7c20, 0x18fd5: 0x6c605c20, 0x18fd6: 0x6cf65420, 0x18fd7: 0x6d39b220,
-	0x18fd8: 0x6c746a20, 0x18fd9: 0x6c440a20, 0x18fda: 0x6c5eee20, 0x18fdb: 0x6c265620,
-	0x18fdc: 0x6c187c20, 0x18fdd: 0x6cddce20, 0x18fde: 0x6cc92820, 0x18fdf: 0x6cfdf420,
-	0x18fe0: 0x6c5a5c20, 0x18fe1: 0x6cb65020, 0x18fe2: 0x6d3b1820, 0x18fe3: 0x6cdcf620,
-	0x18fe4: 0x6c146c20, 0x18fe5: 0x6cf25a20, 0x18fe6: 0x6c781a20, 0x18fe7: 0x6c77c420,
-	0x18fe8: 0x6c47b820, 0x18fe9: 0x6c410220, 0x18fea: 0x6c396620, 0x18feb: 0x6c234c20,
-	0x18fec: 0x6c128c20, 0x18fed: 0x6d36bc20, 0x18fee: 0x6c15d820, 0x18fef: 0x6c825420,
-	0x18ff0: 0x6d04ee20, 0x18ff1: 0x6d2d4820, 0x18ff2: 0x6d308220, 0x18ff3: 0x6d218a20,
-	0x18ff4: 0x6c4b7020, 0x18ff5: 0x6c45ae20, 0x18ff6: 0x6d295020, 0x18ff7: 0x6c27fe20,
-	0x18ff8: 0x6c5e0020, 0x18ff9: 0x6cd9e220, 0x18ffa: 0x6ce0ac20, 0x18ffb: 0x6c473020,
-	0x18ffc: 0x6cf8e620, 0x18ffd: 0x6c978020, 0x18ffe: 0x6c346620, 0x18fff: 0x6c02f420,
-	// Block 0x640, offset 0x19000
-	0x19000: 0x6cb0c420, 0x19001: 0x6cf52a20, 0x19002: 0x6c007c20, 0x19003: 0x6c9b7620,
-	0x19004: 0x6cb0d220, 0x19005: 0x6c9b7820, 0x19006: 0x6d103a20, 0x19007: 0x6d374420,
-	0x19008: 0x6c0fac20, 0x19009: 0x6d1cc820, 0x1900a: 0x6cef6020, 0x1900b: 0x6cc50e20,
-	0x1900c: 0x6c7ffa20, 0x1900d: 0x6d0c4620, 0x1900e: 0x6c161220, 0x1900f: 0x6cc33620,
-	0x19010: 0x6d31d820, 0x19011: 0x6cb46a20, 0x19013: 0x6cdf2a20,
-	0x19014: 0x6c3a9e20, 0x19015: 0x6cd55620, 0x19017: 0x6c298820,
-	0x19018: 0x6c25f220, 0x19019: 0x6cdf9c20, 0x1901a: 0x6ce49820, 0x1901b: 0x6c1ba020,
-	0x1901c: 0x6cde9020, 0x1901d: 0x6c642a20, 0x1901e: 0x6cd75e20, 0x1901f: 0x6c5a3220,
-	0x19020: 0x6c8a6820, 0x19023: 0x6c185e20,
-	0x19024: 0x6c6cf820, 0x19025: 0x6c360020, 0x19026: 0x6c464620, 0x19027: 0x6c3e6420,
-	0x19028: 0x6c34f020, 0x1902a: 0x6c363e20, 0x1902b: 0x6c07f020,
-	0x1902c: 0x6ce1ca20, 0x1902d: 0x6c2c6020, 0x1902f: 0x6c2c7020,
-	0x19030: 0x6c10a620, 0x19031: 0x6ced3820, 0x19032: 0x6d2fd020, 0x19033: 0x6c950620,
-	0x19034: 0x6cb62620, 0x19035: 0x6ca2a420, 0x19036: 0x6cba6c20,
-	0x19038: 0x6d3fae20, 0x19039: 0x6cd9d620, 0x1903b: 0x6d1f6220,
-	0x1903c: 0x6d38ac20, 0x1903d: 0x6cdea620, 0x1903f: 0x6cdb3c20,
-	// Block 0x641, offset 0x19040
-	0x19040: 0x6c10c220, 0x19041: 0x6cf7aa20, 0x19042: 0x6c67c620, 0x19043: 0x6c12ba20,
-	0x19044: 0x6c406620, 0x19045: 0x6ce2b820, 0x19046: 0x6c185220, 0x19047: 0x6c407820,
-	0x19048: 0x6c3ae020, 0x19049: 0x6cf48c20, 0x1904a: 0x6cf5ac20, 0x1904b: 0x6d101620,
-	0x1904c: 0x6ca04820, 0x1904d: 0x6cad2020, 0x1904e: 0x6c98a620, 0x1904f: 0x6ccbba20,
-	0x19050: 0x6c9bb420, 0x19051: 0x6c12a820, 0x19052: 0x6ce57220, 0x19053: 0x6c764820,
-	0x19054: 0x6c043620, 0x19055: 0x6cffa620, 0x19056: 0x6d032620, 0x19057: 0x6cb76220,
-	0x1905a: 0x6cceb020, 0x1905b: 0x6c590a20,
-	0x1905c: 0x6ca96a20, 0x1905d: 0x6cff7820, 0x1905e: 0x6c18b220, 0x1905f: 0x6c27ce20,
-	0x19060: 0x6c3c3820, 0x19061: 0x6d1ad420, 0x19062: 0x6c01fa20, 0x19063: 0x6cc4be20,
-	0x19064: 0x6cc64420, 0x19065: 0x6c976020, 0x19066: 0x6c394c20, 0x19067: 0x6cc10220,
-	0x19068: 0x6cd2ce20, 0x19069: 0x6c511820, 0x1906a: 0x6c0b9220, 0x1906b: 0x6c276220,
-	0x1906c: 0x6ca11420, 0x1906d: 0x6c2aca20,
-	0x19070: 0x6c7ba020, 0x19072: 0x6c144220, 0x19073: 0x6c349620,
-	0x19074: 0x6d1fd220, 0x19075: 0x6c504020, 0x19077: 0x6c486020,
-	0x19078: 0x6d095c20, 0x19079: 0x6c833620, 0x1907a: 0x6c6c9220, 0x1907b: 0x6cb70220,
-	0x1907c: 0x6cc11020, 0x1907d: 0x6cee2220, 0x1907e: 0x6d13f620, 0x1907f: 0x6c89e620,
-	// Block 0x642, offset 0x19080
-	0x19082: 0x6d0cb020, 0x19083: 0x6d180220,
-	0x19084: 0x6d1a7620, 0x19085: 0x6cb60020, 0x19086: 0x6d306420, 0x19087: 0x6cf8a620,
-	0x19088: 0x6d180420, 0x19089: 0x6d128620, 0x1908a: 0x6cf3d820, 0x1908b: 0x6d33fa20,
-	0x1908c: 0x6d366a20, 0x1908d: 0x6c4e5a20, 0x1908e: 0x6c21c820, 0x1908f: 0x6c3d8420,
-	0x19090: 0x6c215220, 0x19091: 0x6cb2b620, 0x19092: 0x6c7afa20, 0x19093: 0x6c1dc220,
-	0x19095: 0x6ceb8a20, 0x19096: 0x6cbf4220, 0x19097: 0x6c233020,
-	0x19098: 0x6c42d220, 0x19099: 0x6c7acc20, 0x1909a: 0x6cc12620, 0x1909b: 0x6cc12820,
-	0x1909c: 0x6d340020, 0x1909d: 0x6c9c0a20, 0x1909e: 0x6c865220, 0x1909f: 0x6d389c20,
-	0x190a0: 0x6cde8420, 0x190a1: 0x6d340220, 0x190a2: 0x6c482420, 0x190a3: 0x6c899c20,
-	0x190a4: 0x6c54ee20, 0x190a5: 0x6c7e8820, 0x190a6: 0x6c2d2620, 0x190a7: 0x6c22d820,
-	0x190a8: 0x6d1bde20, 0x190ab: 0x6cb62a20,
-	0x190ad: 0x6c144620, 0x190ae: 0x6c99b020, 0x190af: 0x6c31b020,
-	0x190b0: 0x6d19fe20, 0x190b1: 0x6c148820, 0x190b2: 0x6cc8dc20, 0x190b3: 0x6c524020,
-	0x190b4: 0x6cc87820, 0x190b5: 0x6c3d9420, 0x190b6: 0x6c7f4e20, 0x190b7: 0x6d043420,
-	0x190b8: 0x6c64e020, 0x190b9: 0x6d186220, 0x190ba: 0x6c9a6820,
-	0x190bc: 0x6c987620, 0x190bd: 0x6c627e20, 0x190be: 0x6cdd3a20, 0x190bf: 0x6c4f0c20,
-	// Block 0x643, offset 0x190c0
-	0x190c1: 0x6c868420, 0x190c2: 0x6d3f2220, 0x190c3: 0x6d412820,
-	0x190c4: 0x6d114820, 0x190c5: 0x6c43a820, 0x190c6: 0x6c844c20, 0x190c7: 0x6cb71c20,
-	0x190c8: 0x6c462420, 0x190c9: 0x6c868620, 0x190ca: 0x6c0db220, 0x190cb: 0x6cdd3c20,
-	0x190ce: 0x6cdb3e20, 0x190cf: 0x6c1e4c20,
-	0x190d0: 0x6c650220, 0x190d1: 0x6d010020, 0x190d2: 0x6c076420, 0x190d3: 0x6d066020,
-	0x190d4: 0x6c6eb620, 0x190d5: 0x6cb46220, 0x190d6: 0x6c8d7220, 0x190d7: 0x6cfdd620,
-	0x190d8: 0x6d42ac20, 0x190d9: 0x6c2e4420, 0x190da: 0x6c216a20, 0x190db: 0x6cbeb620,
-	0x190dc: 0x6ca41020, 0x190dd: 0x6d2cfe20, 0x190de: 0x6c940820, 0x190df: 0x6d157420,
-	0x190e0: 0x6cceba20, 0x190e1: 0x6d21ba20, 0x190e2: 0x6c575c20, 0x190e3: 0x6c845e20,
-	0x190e4: 0x6cabce20, 0x190e7: 0x6c846020,
-	0x190ea: 0x6cd6e620,
-	0x190ec: 0x6d18d620, 0x190ed: 0x6ca95c20, 0x190ee: 0x6cd83820, 0x190ef: 0x6c7ab020,
-	0x190f0: 0x6c407a20, 0x190f1: 0x6d142820, 0x190f2: 0x6c2ab820, 0x190f3: 0x6cc49620,
-	0x190f4: 0x6c131e20, 0x190f6: 0x6ce39820, 0x190f7: 0x6cbdb420,
-	0x190f8: 0x6c0c8820, 0x190f9: 0x6cdca420, 0x190fa: 0x6cef4c20, 0x190fb: 0x6c33bc20,
-	0x190fc: 0x6ccb7a20, 0x190fd: 0x6c00f620, 0x190fe: 0x6cb7f420, 0x190ff: 0x6d420e20,
-	// Block 0x644, offset 0x19100
-	0x19100: 0x6c7b7620, 0x19101: 0x6c3a7420, 0x19103: 0x6d1b9620,
-	0x19105: 0x6ccaea20, 0x19106: 0x6c314820, 0x19107: 0x6c5c8220,
-	0x19108: 0x6d026220, 0x19109: 0x6d2b1c20, 0x1910a: 0x6ce03420, 0x1910b: 0x6ce15a20,
-	0x1910c: 0x6d374620, 0x1910d: 0x6d191620, 0x1910e: 0x6c3f1c20, 0x1910f: 0x6c359420,
-	0x19111: 0x6c75fc20, 0x19112: 0x6c638e20, 0x19113: 0x6c141220,
-	0x19114: 0x6cfbca20, 0x19115: 0x6c981420, 0x19117: 0x6c0aba20,
-	0x19118: 0x6c8d9220, 0x19119: 0x6c6b7620, 0x1911a: 0x6c7d3620, 0x1911b: 0x6c63f620,
-	0x1911d: 0x6c19a420, 0x1911e: 0x6c813420, 0x1911f: 0x6d03b420,
-	0x19120: 0x6c3af620, 0x19121: 0x6c936e20, 0x19122: 0x6d2c9e20, 0x19123: 0x6c51a420,
-	0x19124: 0x6c5f9420, 0x19125: 0x6ca66220, 0x19126: 0x6d1cd620, 0x19127: 0x6d002e20,
-	0x19128: 0x6ce2d820, 0x19129: 0x6c81c820, 0x1912a: 0x6d2b2820, 0x1912b: 0x6c7cba20,
-	0x1912d: 0x6cb9e620, 0x1912e: 0x6c719020, 0x1912f: 0x6cb18c20,
-	0x19130: 0x6c38f220, 0x19131: 0x6ce80020, 0x19132: 0x6c8c4020, 0x19133: 0x6c9cc020,
-	0x19134: 0x6d3de820, 0x19135: 0x6d013020, 0x19136: 0x6c56ee20, 0x19137: 0x6c9cc220,
-	0x19138: 0x6c6a4820, 0x19139: 0x6d28e220, 0x1913a: 0x6c23d620, 0x1913b: 0x6c87b220,
-	0x1913c: 0x6cc4a020, 0x1913d: 0x6d3a4a20, 0x1913e: 0x6d1ab820, 0x1913f: 0x6c4f4020,
-	// Block 0x645, offset 0x19140
-	0x19141: 0x6d198620, 0x19142: 0x6c948020, 0x19143: 0x6d274420,
-	0x19144: 0x6cc4a420, 0x19145: 0x6c8df620, 0x19146: 0x6ca78620, 0x19147: 0x6d24b620,
-	0x19148: 0x6caaa020, 0x1914a: 0x6d174020, 0x1914b: 0x6caaa420,
-	0x1914c: 0x6d174220, 0x1914d: 0x6cb98020, 0x1914e: 0x6cf9b620, 0x1914f: 0x6c1edc20,
-	0x19150: 0x6d1a6820, 0x19151: 0x6c9d4820, 0x19152: 0x6cf65820, 0x19153: 0x6ca35a20,
-	0x19154: 0x6c76de20, 0x19155: 0x6d412020, 0x19156: 0x6cf9da20, 0x19157: 0x6d0cc620,
-	0x19158: 0x6ce8f420, 0x19159: 0x6ce30020, 0x1915a: 0x6cf38820, 0x1915b: 0x6cdda820,
-	0x1915c: 0x6d1aaa20, 0x1915d: 0x6c1d0a20, 0x1915e: 0x6d38de20, 0x1915f: 0x6c988620,
-	0x19160: 0x6d254820, 0x19161: 0x6caa8020, 0x19162: 0x6c9e7020, 0x19163: 0x6d2a4820,
-	0x19164: 0x6ced1420, 0x19165: 0x6c83ca20, 0x19166: 0x6cc10420, 0x19167: 0x6ca33a20,
-	0x19168: 0x6cd26220, 0x19169: 0x6c098c20, 0x1916a: 0x6d3e2a20, 0x1916b: 0x6c056c20,
-	0x1916d: 0x6c736c20, 0x1916e: 0x6cfde620, 0x1916f: 0x6c7c7c20,
-	0x19170: 0x6cac2c20, 0x19171: 0x6c7ba220, 0x19172: 0x6d0a1220, 0x19173: 0x6d2cc620,
-	0x19174: 0x6d10fc20, 0x19175: 0x6c7d6a20, 0x19176: 0x6c5acc20, 0x19177: 0x6cf65a20,
-	0x19178: 0x6c357420, 0x19179: 0x6d0fcc20, 0x1917a: 0x6ce59020, 0x1917b: 0x6d1f4e20,
-	0x1917c: 0x6c746c20, 0x1917d: 0x6c83f620, 0x1917f: 0x6c842020,
-	// Block 0x646, offset 0x19180
-	0x19180: 0x6c198020, 0x19181: 0x6c624e20, 0x19182: 0x6c562a20, 0x19183: 0x6d2e7020,
-	0x19184: 0x6c3f7a20, 0x19185: 0x6c16ba20, 0x19186: 0x6c495c20, 0x19187: 0x6c714420,
-	0x19188: 0x6c9b3220, 0x19189: 0x6c167820, 0x1918a: 0x6ce0a620, 0x1918b: 0x6ca1e220,
-	0x1918c: 0x6d039e20, 0x1918d: 0x6c852620, 0x1918e: 0x6d0c2a20, 0x1918f: 0x6cd9da20,
-	0x19190: 0x6cd1ee20, 0x19191: 0x6d186420, 0x19192: 0x6c0e2a20, 0x19193: 0x6c234e20,
-	0x19194: 0x6c542c20, 0x19195: 0x6ced3a20, 0x19196: 0x6c2c9620, 0x19197: 0x6c5f4420,
-	0x19198: 0x6c443820, 0x19199: 0x6c4e3420, 0x1919a: 0x6c0f6220, 0x1919b: 0x6d04f420,
-	0x1919c: 0x6c8ea220, 0x1919d: 0x6c11ae20, 0x1919e: 0x6c11b020, 0x1919f: 0x6d18d820,
-	0x191a0: 0x6d082c20, 0x191a1: 0x6d0ce020, 0x191a2: 0x6d2a5c20, 0x191a3: 0x6c4f1e20,
-	0x191a4: 0x6d1e0020, 0x191a5: 0x6d3fc820, 0x191a7: 0x6c775820,
-	0x191a8: 0x6d21bc20, 0x191a9: 0x6cb53820, 0x191aa: 0x6d310620, 0x191ab: 0x6c967e20,
-	0x191ae: 0x6cd6e820, 0x191af: 0x6c6d6a20,
-	0x191b0: 0x6c49b020, 0x191b1: 0x6cb46c20, 0x191b2: 0x6c8c7220,
-	0x191b4: 0x6ce69c20, 0x191b5: 0x6c679420, 0x191b6: 0x6c7eac20, 0x191b7: 0x6d191820,
-	0x191b8: 0x6d1dce20, 0x191b9: 0x6c22ec20, 0x191ba: 0x6d0dfe20, 0x191bb: 0x6c6b7020,
-	0x191bc: 0x6d09c820, 0x191bd: 0x6cf11020, 0x191be: 0x6cfc4c20, 0x191bf: 0x6ca93620,
-	// Block 0x647, offset 0x191c0
-	0x191c0: 0x6c408c20, 0x191c1: 0x6c445c20, 0x191c3: 0x6ca19c20,
-	0x191c4: 0x6d3b4620, 0x191c5: 0x6ca38a20, 0x191c6: 0x6cfc5620, 0x191c7: 0x6cf1c420,
-	0x191c8: 0x6c877820, 0x191c9: 0x6c11c220, 0x191ca: 0x6c9f1c20, 0x191cb: 0x6c655220,
-	0x191cc: 0x6ca6e220, 0x191cd: 0x6c14b020, 0x191ce: 0x6cecb020, 0x191cf: 0x6d069c20,
-	0x191d0: 0x6caa8220, 0x191d1: 0x6c973020, 0x191d2: 0x6d417020, 0x191d3: 0x6c770c20,
-	0x191d4: 0x6c761620, 0x191d5: 0x6c4f7020,
-	0x191d8: 0x6d23f420, 0x191d9: 0x6cf11220, 0x191da: 0x6d39fa20,
-	0x191dd: 0x6d170a20, 0x191df: 0x6c2dbc20,
-	0x191e0: 0x6c3e4420, 0x191e1: 0x6c08d620, 0x191e2: 0x6d3a6820, 0x191e3: 0x6d3f0c20,
-	0x191e4: 0x6cd5cc20, 0x191e5: 0x6cf9ba20, 0x191e6: 0x6ca5e020,
-	0x191e8: 0x6c68fe20, 0x191e9: 0x6d0a1420, 0x191ea: 0x6c1cc620, 0x191eb: 0x6caa2220,
-	0x191ec: 0x6cc67e20, 0x191ed: 0x6d364220, 0x191ee: 0x6cca6e20,
-	0x191f0: 0x6cccf020, 0x191f1: 0x6d237e20, 0x191f3: 0x6c6c4e20,
-	0x191f5: 0x6c929c20, 0x191f6: 0x6c4db020, 0x191f7: 0x6c0cb220,
-	0x191f8: 0x6d183a20, 0x191f9: 0x6d41c020, 0x191fa: 0x6d2e7220, 0x191fb: 0x6d23ac20,
-	0x191fc: 0x6ced3c20, 0x191fd: 0x6ca5fe20, 0x191fe: 0x6c495e20, 0x191ff: 0x6c748420,
-	// Block 0x648, offset 0x19200
-	0x19200: 0x6c082820, 0x19201: 0x6c11a220, 0x19203: 0x6c351220,
-	0x19204: 0x6cb7c620, 0x19205: 0x6d10b420, 0x19206: 0x6c7d1820, 0x19207: 0x6cc84820,
-	0x19208: 0x6c542e20, 0x19209: 0x6d0a3820, 0x1920a: 0x6d020020,
-	0x1920c: 0x6c7d1a20, 0x1920e: 0x6d00f020, 0x1920f: 0x6c0f6420,
-	0x19210: 0x6c78d820, 0x19211: 0x6c24ec20, 0x19212: 0x6d074020, 0x19213: 0x6c042820,
-	0x19214: 0x6cab5820, 0x19215: 0x6d400c20, 0x19217: 0x6ce42e20,
-	0x19218: 0x6c1ef220, 0x19219: 0x6c1b5820, 0x1921a: 0x6ca7b420, 0x1921b: 0x6c49ac20,
-	0x1921c: 0x6c3cbe20, 0x1921d: 0x6d023020, 0x1921e: 0x6c2aba20, 0x1921f: 0x6cef4e20,
-	0x19220: 0x6c74e220, 0x19221: 0x6c7d2e20, 0x19222: 0x6d2bb420, 0x19223: 0x6cc9ac20,
-	0x19224: 0x6c34bc20, 0x19225: 0x6c8d8420, 0x19226: 0x6c9b9a20,
-	0x19228: 0x6c4cde20, 0x19229: 0x6c9b9c20, 0x1922a: 0x6c8fec20,
-	0x1922c: 0x6d1d5e20, 0x1922e: 0x6c49c620, 0x1922f: 0x6c248820,
-	0x19230: 0x6c84e620, 0x19231: 0x6c320c20, 0x19233: 0x6c0bf220,
-	0x19235: 0x6cf62c20, 0x19237: 0x6c2a6620,
-	0x19238: 0x6c2a6820, 0x19239: 0x6cfcba20, 0x1923a: 0x6c880020,
-	0x1923c: 0x6ccedc20, 0x1923d: 0x6d00b020, 0x1923e: 0x6cd1c420, 0x1923f: 0x6cf09e20,
-	// Block 0x649, offset 0x19240
-	0x19242: 0x6c51d820, 0x19243: 0x6d1f5a20,
-	0x19244: 0x6c92b220, 0x19245: 0x6c7f5020, 0x19246: 0x6d1d0e20, 0x19247: 0x6cd14c20,
-	0x19248: 0x6c739220, 0x19249: 0x6cb7e420, 0x1924a: 0x6c65ea20, 0x1924b: 0x6d285c20,
-	0x1924d: 0x6cb7f620, 0x1924f: 0x6c8c7c20,
-	0x19250: 0x6c60ea20, 0x19251: 0x6c970a20, 0x19252: 0x6c208220, 0x19253: 0x6ca74620,
-	0x19254: 0x6c0d6e20, 0x19255: 0x6c87c020, 0x19256: 0x6c8dfa20, 0x19257: 0x6c427a20,
-	0x19258: 0x6c1a2020, 0x19259: 0x6d07b020, 0x1925a: 0x6cfc1a20, 0x1925b: 0x6c558620,
-	0x1925c: 0x6c088620, 0x1925d: 0x6d40d020, 0x1925e: 0x6c271a20, 0x1925f: 0x6c271c20,
-	0x19260: 0x6c5d3e20, 0x19261: 0x6cc9d020, 0x19262: 0x6c184420, 0x19263: 0x6ce37c20,
-	0x19265: 0x6cab1a20, 0x19266: 0x6d371420, 0x19267: 0x6c8ebe20,
-	0x19268: 0x6c3aea20, 0x19269: 0x6c695e20, 0x1926a: 0x6c493620, 0x1926b: 0x6cf7ba20,
-	0x1926c: 0x6c8bf820, 0x1926d: 0x6d07f820, 0x1926e: 0x6cc62a20, 0x1926f: 0x6ce25a20,
-	0x19270: 0x6cb05820, 0x19271: 0x6d032a20, 0x19272: 0x6ccd7c20, 0x19273: 0x6d360e20,
-	0x19274: 0x6cec3220, 0x19275: 0x6ce81020, 0x19276: 0x6ce46620, 0x19277: 0x6d13e820,
-	0x19278: 0x6d019c20, 0x19279: 0x6cb05c20, 0x1927a: 0x6d10ec20, 0x1927b: 0x6d10ee20,
-	0x1927c: 0x6caa8620, 0x1927d: 0x6c503a20, 0x1927e: 0x6ca8e820, 0x1927f: 0x6d1b4a20,
-	// Block 0x64a, offset 0x19280
-	0x19280: 0x6c390a20, 0x19281: 0x6ca3fa20, 0x19282: 0x6d109c20, 0x19283: 0x6ced7e20,
-	0x19284: 0x6d25e820, 0x19285: 0x6cf9c820, 0x19286: 0x6d392c20, 0x19287: 0x6d25ea20,
-	0x19288: 0x6cd38a20, 0x19289: 0x6c9e5a20, 0x1928a: 0x6cf62e20, 0x1928b: 0x6c621220,
-	0x1928c: 0x6ce22a20, 0x1928d: 0x6c3ab020, 0x1928e: 0x6d096020, 0x1928f: 0x6ca5e820,
-	0x19290: 0x6c224620, 0x19291: 0x6c9d4a20, 0x19292: 0x6c0ba220,
-	0x19294: 0x6ca2e620, 0x19295: 0x6d238020, 0x19296: 0x6c366220, 0x19297: 0x6d353a20,
-	0x19298: 0x6cc57420, 0x19299: 0x6d070020, 0x1929a: 0x6c94b020, 0x1929b: 0x6c5be820,
-	0x1929c: 0x6d0a9620, 0x1929d: 0x6ca4b820, 0x1929e: 0x6c4eee20, 0x1929f: 0x6c63d620,
-	0x192a0: 0x6c312e20, 0x192a1: 0x6c57b420, 0x192a2: 0x6ce86c20, 0x192a3: 0x6cb26220,
-	0x192a4: 0x6c244c20, 0x192a5: 0x6cf68220, 0x192a6: 0x6cd99820, 0x192a7: 0x6c9c6c20,
-	0x192a8: 0x6d034420, 0x192a9: 0x6cf51a20, 0x192aa: 0x6cbf5420, 0x192ab: 0x6d2edc20,
-	0x192ac: 0x6ce23620, 0x192ad: 0x6d043620, 0x192ae: 0x6c701e20, 0x192af: 0x6c728220,
-	0x192b0: 0x6c5d4020, 0x192b1: 0x6ce36e20, 0x192b2: 0x6c977420, 0x192b3: 0x6d0ea420,
-	0x192b4: 0x6c5f2020, 0x192b5: 0x6cd47a20, 0x192b6: 0x6c82d620, 0x192b7: 0x6ced4420,
-	0x192b8: 0x6c183820, 0x192b9: 0x6c120a20, 0x192ba: 0x6c6c0620, 0x192bb: 0x6d205820,
-	0x192bc: 0x6c5b6620, 0x192bd: 0x6d2c9420, 0x192be: 0x6cdb4820, 0x192bf: 0x6c444220,
-	// Block 0x64b, offset 0x192c0
-	0x192c0: 0x6ca51a20, 0x192c1: 0x6cf8f820, 0x192c3: 0x6c331a20,
-	0x192c4: 0x6c1b6420, 0x192c5: 0x6cef5020, 0x192c6: 0x6d30ae20, 0x192c7: 0x6c4bf420,
-	0x192c8: 0x6c175620, 0x192c9: 0x6c1ae020, 0x192ca: 0x6d2a2820, 0x192cb: 0x6c5c8420,
-	0x192cc: 0x6c944820, 0x192cd: 0x6c8a4620, 0x192ce: 0x6c818a20, 0x192cf: 0x6cead820,
-	0x192d0: 0x6c5b0420, 0x192d1: 0x6cf54620, 0x192d2: 0x6c02fa20, 0x192d3: 0x6ccf8620,
-	0x192d4: 0x6cdc0220, 0x192d5: 0x6c974c20, 0x192d6: 0x6ce0b620, 0x192d7: 0x6d035a20,
-	0x192d8: 0x6c6e4020, 0x192d9: 0x6c017620, 0x192da: 0x6cdee220, 0x192db: 0x6c156420,
-	0x192dc: 0x6cf11a20, 0x192dd: 0x6ce98420, 0x192de: 0x6c62dc20, 0x192df: 0x6c18fa20,
-	0x192e0: 0x6c185820, 0x192e1: 0x6d247c20, 0x192e2: 0x6cfc6020, 0x192e3: 0x6d02d020,
-	0x192e7: 0x6ca51c20,
-	0x192e9: 0x6d0f1020, 0x192ea: 0x6cc01e20, 0x192eb: 0x6c675820,
-	0x192ec: 0x6cd95c20, 0x192ed: 0x6c75c420, 0x192ee: 0x6c89fc20, 0x192ef: 0x6c714e20,
-	0x192f1: 0x6c97d220, 0x192f2: 0x6c8b7220,
-	0x192f4: 0x6c1f3820, 0x192f5: 0x6c1bae20, 0x192f6: 0x6cfdcc20, 0x192f7: 0x6cbd3a20,
-	0x192f8: 0x6c9a6220, 0x192f9: 0x6cd5fa20, 0x192fa: 0x6c149020, 0x192fb: 0x6c1bc420,
-	0x192fc: 0x6c474620, 0x192fd: 0x6d21a820, 0x192fe: 0x6d1a0420,
-	// Block 0x64c, offset 0x19300
-	0x19300: 0x6c8eac20, 0x19301: 0x6c818020, 0x19302: 0x6cd61e20, 0x19303: 0x6d30be20,
-	0x19304: 0x6cd6c420, 0x19305: 0x6c5aac20,
-	0x19308: 0x6c364620, 0x1930a: 0x6ccc7020, 0x1930b: 0x6d402e20,
-	0x1930c: 0x6c74a620, 0x1930d: 0x6c75ec20, 0x1930e: 0x6ce93820, 0x1930f: 0x6c90ca20,
-	0x19310: 0x6cef5c20, 0x19311: 0x6c1cf420, 0x19312: 0x6d3b4820, 0x19313: 0x6c8b7420,
-	0x19315: 0x6d30cc20, 0x19316: 0x6d2f8c20,
-	0x19318: 0x6d178020, 0x19319: 0x6c1e5c20, 0x1931a: 0x6ca5ea20, 0x1931b: 0x6c0e7820,
-	0x1931c: 0x6cdb8620, 0x1931d: 0x6d160620, 0x1931e: 0x6c506020, 0x1931f: 0x6d0bc820,
-	0x19320: 0x6c58ac20, 0x19321: 0x6c980a20, 0x19322: 0x6c980c20, 0x19323: 0x6cc1f220,
-	0x19324: 0x6c81c420, 0x19325: 0x6c4ffe20, 0x19326: 0x6d37d620, 0x19327: 0x6c9f4e20,
-	0x19328: 0x6cfb5620, 0x19329: 0x6d324420, 0x1932a: 0x6cd55e20, 0x1932b: 0x6d423e20,
-	0x1932c: 0x6d3afc20, 0x1932d: 0x6c46aa20, 0x1932e: 0x6d089820, 0x1932f: 0x6d17c620,
-	0x19330: 0x6d366e20, 0x19331: 0x6d00c620, 0x19332: 0x6c6d1e20, 0x19333: 0x6c11a420,
-	0x19335: 0x6c10ae20, 0x19336: 0x6c896a20, 0x19337: 0x6d341020,
-	0x19338: 0x6c626c20, 0x19339: 0x6ced4620, 0x1933a: 0x6c49a420, 0x1933b: 0x6c70bc20,
-	0x1933c: 0x6c6ea220, 0x1933d: 0x6c00c420, 0x1933e: 0x6c404220, 0x1933f: 0x6c4b7220,
-	// Block 0x64d, offset 0x19340
-	0x19340: 0x6c548020, 0x19341: 0x6d0ec620, 0x19342: 0x6cc87e20, 0x19343: 0x6d36ee20,
-	0x19344: 0x6c0c9420, 0x19345: 0x6d157620, 0x19346: 0x6cdd9e20, 0x19347: 0x6c2efa20,
-	0x19348: 0x6c4b9620, 0x19349: 0x6cd18020, 0x1934a: 0x6d0ab820, 0x1934b: 0x6c194620,
-	0x1934c: 0x6ccf2020, 0x1934d: 0x6cbe8a20,
-	0x19350: 0x6c218a20, 0x19351: 0x6c533820, 0x19352: 0x6c308220, 0x19353: 0x6c198220,
-	0x19354: 0x6ceff820, 0x19355: 0x6cc7ea20, 0x19356: 0x6cd55420, 0x19357: 0x6c10f220,
-	0x19358: 0x6c600e20, 0x19359: 0x6d28b620, 0x1935a: 0x6cb5d420, 0x1935b: 0x6d0c0220,
-	0x1935c: 0x6c3fe820, 0x1935d: 0x6d235820, 0x1935e: 0x6c3e9020, 0x1935f: 0x6cb39220,
-	0x19360: 0x6d33e620, 0x19361: 0x6ce06220, 0x19362: 0x6d424020, 0x19363: 0x6c17ec20,
-	0x19364: 0x6cc19a20, 0x19365: 0x6d204e20, 0x19366: 0x6c514a20, 0x19367: 0x6c547420,
-	0x19368: 0x6c4b0e20, 0x19369: 0x6c366620, 0x1936a: 0x6c67ea20, 0x1936b: 0x6d27f620,
-	0x1936c: 0x6ce83020, 0x1936d: 0x6c259820, 0x1936e: 0x6ce87020, 0x1936f: 0x6c402a20,
-	0x19370: 0x6d424c20, 0x19371: 0x6c558820, 0x19373: 0x6c0f4a20,
-	0x19374: 0x6d2f6e20, 0x19375: 0x6c754a20, 0x19376: 0x6ce0d020, 0x19377: 0x6c74aa20,
-	0x19378: 0x6c404620, 0x19379: 0x6c5a0220, 0x1937a: 0x6c211820, 0x1937b: 0x6d1e5e20,
-	0x1937c: 0x6c20f020, 0x1937d: 0x6cdda020, 0x1937e: 0x6c1b5c20, 0x1937f: 0x6cb92a20,
-	// Block 0x64e, offset 0x19380
-	0x19380: 0x6c10fc20, 0x19381: 0x6cff9c20, 0x19382: 0x6c979220, 0x19383: 0x6c117c20,
-	0x19384: 0x6cb7f820, 0x19385: 0x6c66f620, 0x19386: 0x6c0a9a20, 0x19387: 0x6c5f8420,
-	0x19388: 0x6d34b820, 0x19389: 0x6d3a3620, 0x1938a: 0x6cc1f420, 0x1938b: 0x6d2e3420,
-	0x1938c: 0x6c60fa20, 0x1938d: 0x6c0b2420, 0x1938f: 0x6c878020,
-	0x19390: 0x6c879420, 0x19391: 0x6d272a20, 0x19392: 0x6cc34020, 0x19393: 0x6c195a20,
-	0x19394: 0x6c3fcc20, 0x19395: 0x6c144020, 0x19396: 0x6ce19c20, 0x19397: 0x6cd37420,
-	0x19398: 0x6c4f9620, 0x19399: 0x6cbcbe20, 0x1939a: 0x6cb5d620, 0x1939b: 0x6c0efc20,
-	0x1939c: 0x6ca33e20, 0x1939d: 0x6ce82a20, 0x1939e: 0x6c1e7a20, 0x1939f: 0x6c243c20,
-	0x193a0: 0x6d26c020, 0x193a1: 0x6d33e820, 0x193a2: 0x6c18cc20, 0x193a3: 0x6c1f4a20,
-	0x193a4: 0x6c09b420, 0x193a5: 0x6c9b1c20, 0x193a6: 0x6c038020, 0x193a7: 0x6ce4a220,
-	0x193a8: 0x6c9f5a20, 0x193a9: 0x6c8aba20, 0x193aa: 0x6c3ccc20, 0x193ab: 0x6c197420,
-	0x193ac: 0x6cc0b820, 0x193ad: 0x6ce58820, 0x193ae: 0x6c3eac20, 0x193af: 0x6c7e0820,
-	0x193b0: 0x6c65b820,
-	0x193b4: 0x6d325620, 0x193b5: 0x6cc08a20, 0x193b6: 0x6d42a820, 0x193b7: 0x6c1c4c20,
-	0x193b8: 0x6c7c9420, 0x193b9: 0x6c8b2420, 0x193ba: 0x6c074a20, 0x193bb: 0x6c326e20,
-	0x193bc: 0x6cf46c20, 0x193be: 0x6d3d9220, 0x193bf: 0x6c92ba20,
-	// Block 0x64f, offset 0x193c0
-	0x193c0: 0x6ce0d220, 0x193c2: 0x6c1eaa20, 0x193c3: 0x6c89a020,
-	0x193c4: 0x6ce51820, 0x193c5: 0x6c7dbe20, 0x193c6: 0x6c16c420, 0x193c7: 0x6c74ac20,
-	0x193c8: 0x6ce8ec20, 0x193c9: 0x6c594e20, 0x193ca: 0x6c3aca20, 0x193cb: 0x6c0a3c20,
-	0x193cd: 0x6cf97c20, 0x193ce: 0x6cf31820, 0x193cf: 0x6c628a20,
-	0x193d0: 0x6cc27a20, 0x193d1: 0x6c7cdc20, 0x193d2: 0x6c55c220, 0x193d3: 0x6cbfca20,
-	0x193d4: 0x6cdc7c20, 0x193d5: 0x6c10fa20, 0x193d7: 0x6cc0bc20,
-	0x193d8: 0x6cb0c820, 0x193d9: 0x6cad1020, 0x193da: 0x6cec4020, 0x193db: 0x6d115620,
-	0x193dc: 0x6cc6c220, 0x193dd: 0x6d09b620, 0x193de: 0x6c246c20, 0x193df: 0x6c2efc20,
-	0x193e0: 0x6c1c8a20, 0x193e1: 0x6c25f620, 0x193e2: 0x6c9c1220, 0x193e3: 0x6d086420,
-	0x193e4: 0x6c34be20, 0x193e5: 0x6c0d0420, 0x193e6: 0x6d310a20, 0x193e7: 0x6c1ec620,
-	0x193e8: 0x6c164220, 0x193e9: 0x6c4b9e20, 0x193ea: 0x6c32e620, 0x193eb: 0x6d409420,
-	0x193ec: 0x6c2afe20, 0x193ed: 0x6c7f3820, 0x193ee: 0x6ce2da20, 0x193ef: 0x6d272c20,
-	0x193f0: 0x6cc34220, 0x193f1: 0x6d3a5020, 0x193f2: 0x6c8d1020, 0x193f3: 0x6c186c20,
-	0x193f4: 0x6d31e020, 0x193f5: 0x6c400220, 0x193f6: 0x6ccf4e20, 0x193f7: 0x6ce5c620,
-	0x193f8: 0x6c7ac820, 0x193f9: 0x6c004420, 0x193fb: 0x6cbf5620,
-	0x193fc: 0x6cd61220, 0x193fd: 0x6c4d3420, 0x193fe: 0x6ccd5e20, 0x193ff: 0x6cec7620,
-	// Block 0x650, offset 0x19400
-	0x19400: 0x6d2e3620, 0x19401: 0x6c904a20, 0x19402: 0x6c6f6220, 0x19403: 0x6c85b820,
-	0x19405: 0x6c210220, 0x19406: 0x6cc66c20, 0x19407: 0x6d26ac20,
-	0x19408: 0x6c743a20, 0x19409: 0x6c776c20, 0x1940a: 0x6c390c20, 0x1940b: 0x6cb5da20,
-	0x1940c: 0x6c534220, 0x1940d: 0x6c3e7220, 0x1940e: 0x6c915220, 0x1940f: 0x6c535820,
-	0x19410: 0x6ceb2a20, 0x19411: 0x6c9f5c20, 0x19412: 0x6ce4a420, 0x19413: 0x6c737c20,
-	0x19414: 0x6cb70620, 0x19415: 0x6d332620, 0x19416: 0x6cbece20, 0x19417: 0x6c45f220,
-	0x19418: 0x6ce4b620, 0x19419: 0x6c80dc20, 0x1941a: 0x6c99a620, 0x1941b: 0x6d1b6a20,
-	0x1941c: 0x6c92c020, 0x1941d: 0x6d250e20, 0x1941e: 0x6c715420, 0x1941f: 0x6cb0b820,
-	0x19421: 0x6d00f420, 0x19422: 0x6c0bbe20, 0x19423: 0x6c5cd820,
-	0x19424: 0x6d39cc20, 0x19425: 0x6cc6c820, 0x19426: 0x6cca8e20, 0x19427: 0x6cf38420,
-	0x19428: 0x6c144e20, 0x19429: 0x6c795820, 0x1942a: 0x6ccdc420, 0x1942b: 0x6caede20,
-	0x1942c: 0x6c980e20, 0x1942d: 0x6d050620, 0x1942f: 0x6c237020,
-	0x19430: 0x6c796020, 0x19431: 0x6d3bb220, 0x19432: 0x6c154620, 0x19433: 0x6cd84220,
-	0x19434: 0x6c1cf620, 0x19435: 0x6cdcae20, 0x19436: 0x6c076e20, 0x19437: 0x6c769e20,
-	0x19439: 0x6d376020, 0x1943a: 0x6cf12620, 0x1943b: 0x6c9f8420,
-	0x1943c: 0x6c8db220, 0x1943d: 0x6d414220, 0x1943e: 0x6ca8d420, 0x1943f: 0x6c8dfc20,
-	// Block 0x651, offset 0x19440
-	0x19440: 0x6cb77420, 0x19441: 0x6d26b020, 0x19443: 0x6d186820,
-	0x19444: 0x6cf82220, 0x19445: 0x6c18d820, 0x19447: 0x6cc71e20,
-	0x19448: 0x6c18f820, 0x19449: 0x6ca9da20, 0x1944a: 0x6d1ef220, 0x1944b: 0x6c618c20,
-	0x1944c: 0x6c0ebe20, 0x1944d: 0x6c39ca20,
-	0x19450: 0x6c242220, 0x19451: 0x6c2be820, 0x19452: 0x6c684020, 0x19453: 0x6d20fc20,
-	0x19454: 0x6c50fe20, 0x19455: 0x6d06b220, 0x19456: 0x6d22f820, 0x19457: 0x6cc0f620,
-	0x19459: 0x6c044420, 0x1945a: 0x6c44cc20, 0x1945b: 0x6c6f0e20,
-	0x1945d: 0x6d0bb820, 0x1945e: 0x6cd5de20, 0x1945f: 0x6d1f3e20,
-	0x19460: 0x6cd98e20, 0x19461: 0x6d130820, 0x19462: 0x6c125820, 0x19463: 0x6d112a20,
-	0x19464: 0x6cd5fc20, 0x19465: 0x6d0cba20, 0x19466: 0x6cd67220, 0x19467: 0x6c8aa220,
-	0x19468: 0x6c235020, 0x19469: 0x6d23d420, 0x1946a: 0x6c0f6620, 0x1946b: 0x6cdbfe20,
-	0x1946d: 0x6d0eca20, 0x1946e: 0x6c834820, 0x1946f: 0x6c8bf420,
-	0x19470: 0x6ce30220, 0x19471: 0x6c31de20, 0x19472: 0x6d272e20, 0x19473: 0x6c611620,
-	0x19475: 0x6d278620,
-	0x19478: 0x6c706220, 0x19479: 0x6c71a820, 0x1947a: 0x6c1e5820, 0x1947b: 0x6c18ac20,
-	0x1947c: 0x6c457820, 0x1947d: 0x6cfe4220, 0x1947e: 0x6cfbee20, 0x1947f: 0x6c011c20,
-	// Block 0x652, offset 0x19480
-	0x19480: 0x6c4ae020, 0x19481: 0x6d223220, 0x19482: 0x6c82bc20,
-	0x19484: 0x6ce89c20, 0x19485: 0x6c18b820, 0x19486: 0x6d03e020, 0x19487: 0x6cc03e20,
-	0x19488: 0x6c4f9a20, 0x1948a: 0x6c292c20, 0x1948b: 0x6c112e20,
-	0x1948c: 0x6c2bf420, 0x1948d: 0x6d0d7020, 0x1948e: 0x6d3e3020,
-	0x19490: 0x6d1bc020, 0x19491: 0x6c14fa20, 0x19493: 0x6c840020,
-	0x19494: 0x6cdd7e20, 0x19495: 0x6c969c20, 0x19496: 0x6c96a620,
-	0x19498: 0x6ce11e20, 0x19499: 0x6cade620, 0x1949a: 0x6c90ae20, 0x1949b: 0x6cb51820,
-	0x1949c: 0x6c25ec20, 0x1949d: 0x6ce8ee20, 0x1949e: 0x6c369a20, 0x1949f: 0x6c11aa20,
-	0x194a0: 0x6c6b2c20, 0x194a1: 0x6d156420, 0x194a2: 0x6c60d020, 0x194a3: 0x6c294220,
-	0x194a4: 0x6c752220, 0x194a5: 0x6c08cc20, 0x194a6: 0x6c832620, 0x194a7: 0x6d174a20,
-	0x194a8: 0x6c214020, 0x194a9: 0x6c214620, 0x194aa: 0x6cb38820, 0x194ab: 0x6c83cc20,
-	0x194ac: 0x6d291420, 0x194ad: 0x6cdf7020, 0x194ae: 0x6cb39420, 0x194af: 0x6c242620,
-	0x194b0: 0x6c725020, 0x194b1: 0x6d070620, 0x194b2: 0x6c395820,
-	0x194b4: 0x6d070820, 0x194b5: 0x6c37d420, 0x194b6: 0x6c5d7e20, 0x194b7: 0x6d39b820,
-	0x194b8: 0x6cc4c820, 0x194b9: 0x6c381c20, 0x194ba: 0x6c72fc20, 0x194bb: 0x6c4db620,
-	0x194bc: 0x6c896e20, 0x194bd: 0x6d341220, 0x194be: 0x6c9d8220, 0x194bf: 0x6d209a20,
-	// Block 0x653, offset 0x194c0
-	0x194c1: 0x6c133a20, 0x194c2: 0x6c9a2c20, 0x194c3: 0x6d1a0620,
-	0x194c4: 0x6c9e4220, 0x194c5: 0x6ce8f620, 0x194c6: 0x6c7c9e20,
-	0x194c9: 0x6c9d9a20, 0x194ca: 0x6cc6ca20, 0x194cb: 0x6d241c20,
-	0x194cc: 0x6cbae620, 0x194cd: 0x6c9c8c20, 0x194ce: 0x6c718020, 0x194cf: 0x6cb07e20,
-	0x194d0: 0x6c6cc620, 0x194d1: 0x6cee5e20, 0x194d2: 0x6c62c020, 0x194d3: 0x6c9baa20,
-	0x194d4: 0x6c672020, 0x194d5: 0x6d098020, 0x194d6: 0x6c068220, 0x194d7: 0x6c420220,
-	0x194d8: 0x6c161e20, 0x194d9: 0x6c87cc20, 0x194da: 0x6c851620, 0x194db: 0x6cc04020,
-	0x194dc: 0x6c33ee20, 0x194dd: 0x6d1d3e20, 0x194de: 0x6d27ea20, 0x194df: 0x6c18ce20,
-	0x194e0: 0x6d353220, 0x194e1: 0x6cc4ca20, 0x194e3: 0x6c94b220,
-	0x194e4: 0x6c763a20, 0x194e5: 0x6c4b1420, 0x194e6: 0x6d26d620, 0x194e7: 0x6c5c0820,
-	0x194e8: 0x6cb0b220, 0x194e9: 0x6c13f820, 0x194ea: 0x6c34a820, 0x194eb: 0x6c152220,
-	0x194ec: 0x6ccc1020, 0x194ed: 0x6cd3c820, 0x194ee: 0x6ccf7620, 0x194ef: 0x6d03fa20,
-	0x194f0: 0x6d1c9420, 0x194f1: 0x6cd3ca20, 0x194f2: 0x6c1c6420, 0x194f3: 0x6d134820,
-	0x194f4: 0x6c4e3620, 0x194f5: 0x6c3ad420, 0x194f6: 0x6d134a20, 0x194f7: 0x6d0de220,
-	0x194f8: 0x6d416220, 0x194f9: 0x6cd9ee20, 0x194fa: 0x6c6c6620, 0x194fb: 0x6c351a20,
-	0x194fc: 0x6cfd2220, 0x194fd: 0x6c492e20, 0x194fe: 0x6ce1f820, 0x194ff: 0x6cbcfa20,
-	// Block 0x654, offset 0x19500
-	0x19500: 0x6c15f420, 0x19501: 0x6c4e4420, 0x19502: 0x6c9c1420, 0x19503: 0x6d26fc20,
-	0x19504: 0x6c247020, 0x19505: 0x6cba8420, 0x19506: 0x6c6cc420, 0x19507: 0x6ccdd020,
-	0x19508: 0x6ca25820, 0x19509: 0x6d251e20, 0x1950b: 0x6cae8a20,
-	0x1950c: 0x6d336e20, 0x1950d: 0x6d374a20, 0x1950e: 0x6c216c20, 0x1950f: 0x6d22aa20,
-	0x19510: 0x6ca1f820, 0x19511: 0x6cedae20, 0x19512: 0x6c681020, 0x19513: 0x6cb54c20,
-	0x19514: 0x6cdb5e20, 0x19515: 0x6cb1e220, 0x19516: 0x6ce4d020, 0x19517: 0x6c7b7820,
-	0x19518: 0x6c247a20, 0x19519: 0x6cdcb820, 0x1951b: 0x6c6a4220,
-	0x1951c: 0x6c671420, 0x1951d: 0x6c028820, 0x1951e: 0x6c696e20, 0x1951f: 0x6d138e20,
-	0x19521: 0x6d139020, 0x19522: 0x6c8ff020, 0x19523: 0x6d2a3620,
-	0x19524: 0x6c05de20, 0x19525: 0x6c889a20, 0x19527: 0x6c58c620,
-	0x19528: 0x6c942620, 0x19529: 0x6cef7820, 0x1952a: 0x6cfc5820, 0x1952b: 0x6ce60a20,
-	0x1952c: 0x6c0fc820, 0x1952d: 0x6d337620, 0x1952e: 0x6d3a3e20, 0x1952f: 0x6c06c420,
-	0x19530: 0x6c9bba20, 0x19531: 0x6d015220, 0x19532: 0x6cab6820, 0x19533: 0x6d1ed820,
-	0x19535: 0x6cffc820, 0x19536: 0x6c87aa20, 0x19537: 0x6d2c6e20,
-	0x19538: 0x6c9cd020, 0x1953a: 0x6d128420,
-	0x1953d: 0x6cb31620, 0x1953e: 0x6d014220,
-	// Block 0x655, offset 0x19540
-	0x19542: 0x6ccdd220, 0x19543: 0x6d3d1420,
-	0x19545: 0x6ccddc20, 0x19546: 0x6c754020, 0x19547: 0x6c61fc20,
-	0x19548: 0x6c6a2620, 0x1954a: 0x6ca7a420, 0x1954b: 0x6c028420,
-	0x1954c: 0x6c1f3a20, 0x1954d: 0x6cf4e420, 0x1954e: 0x6c495420, 0x1954f: 0x6d01b820,
-	0x19550: 0x6ce6d020, 0x19551: 0x6d096220, 0x19552: 0x6c297220, 0x19553: 0x6d2d8620,
-	0x19554: 0x6ce06620, 0x19555: 0x6cae7c20, 0x19556: 0x6d00d420, 0x19557: 0x6d072020,
-	0x19558: 0x6cfcf220, 0x19559: 0x6cd8d820, 0x1955a: 0x6c7aee20, 0x1955b: 0x6d335a20,
-	0x1955c: 0x6cf3e620, 0x1955d: 0x6c5d5c20, 0x1955e: 0x6cc90620, 0x1955f: 0x6cf1ee20,
-	0x19560: 0x6c317a20, 0x19561: 0x6c58a020, 0x19562: 0x6c7e1420, 0x19563: 0x6c405a20,
-	0x19564: 0x6c1fd020, 0x19565: 0x6cfba420, 0x19566: 0x6cbdae20, 0x19567: 0x6cbc8820,
-	0x19568: 0x6c7fba20, 0x1956a: 0x6d0bca20, 0x1956b: 0x6d1c0220,
-	0x1956c: 0x6cc40820, 0x1956d: 0x6c4f5620, 0x1956e: 0x6c218c20, 0x1956f: 0x6d371e20,
-	0x19571: 0x6cf05620, 0x19572: 0x6d0d0620, 0x19573: 0x6cfe6a20,
-	0x19574: 0x6d194c20, 0x19575: 0x6ca66a20, 0x19576: 0x6d335c20, 0x19577: 0x6c1fca20,
-	0x19579: 0x6cd23020, 0x1957a: 0x6c2f4a20, 0x1957b: 0x6d3ee020,
-	0x1957c: 0x6c73e820, 0x1957d: 0x6d067620, 0x1957e: 0x6d255a20,
-	// Block 0x656, offset 0x19580
-	0x19581: 0x6d063020, 0x19582: 0x6c2a0220, 0x19583: 0x6ce48620,
-	0x19584: 0x6c448020, 0x19585: 0x6d14b420, 0x19586: 0x6c532420, 0x19587: 0x6d13dc20,
-	0x19589: 0x6c851220, 0x1958a: 0x6c7a3820, 0x1958b: 0x6cfc0820,
-	0x1958c: 0x6cdbbe20, 0x1958d: 0x6cf87620, 0x1958e: 0x6d088620,
-	0x19591: 0x6c2b2a20, 0x19592: 0x6c7f0420, 0x19593: 0x6d387e20,
-	0x19594: 0x6ca76420, 0x19595: 0x6c19f820, 0x19596: 0x6c668620, 0x19597: 0x6c09ba20,
-	0x19598: 0x6d3bc820, 0x19599: 0x6c8d1620, 0x1959a: 0x6c504e20, 0x1959b: 0x6c058020,
-	0x1959c: 0x6ce10a20, 0x1959d: 0x6c1ac220, 0x1959e: 0x6c96c820, 0x1959f: 0x6cfce420,
-	0x195a0: 0x6cd69420, 0x195a1: 0x6d1da020, 0x195a2: 0x6cc12c20,
-	0x195a4: 0x6cb44c20, 0x195a5: 0x6c5c2020, 0x195a6: 0x6cef3620, 0x195a7: 0x6d161620,
-	0x195a8: 0x6d134c20, 0x195aa: 0x6c184820, 0x195ab: 0x6c4ff820,
-	0x195ac: 0x6c0d5a20, 0x195ae: 0x6cfd3620, 0x195af: 0x6c155e20,
-	0x195b0: 0x6c5d4e20, 0x195b2: 0x6c4ebc20, 0x195b3: 0x6c224220,
-	0x195b4: 0x6d33ec20, 0x195b5: 0x6cb5f220, 0x195b6: 0x6c7c7e20, 0x195b7: 0x6cc75620,
-	0x195b9: 0x6d1bca20, 0x195ba: 0x6d047e20,
-	0x195bc: 0x6c55a020, 0x195bd: 0x6c250620, 0x195bf: 0x6cc3fc20,
-	// Block 0x657, offset 0x195c0
-	0x195c0: 0x6c2b9220, 0x195c1: 0x6cf53020, 0x195c2: 0x6cbfd020,
-	0x195c4: 0x6d0eee20, 0x195c5: 0x6c8a5020, 0x195c6: 0x6c08a620,
-	0x195c8: 0x6c0d7220, 0x195ca: 0x6d252c20, 0x195cb: 0x6caaa620,
-	0x195cc: 0x6c05c620, 0x195cd: 0x6d1cf220, 0x195ce: 0x6c536c20, 0x195cf: 0x6c225820,
-	0x195d0: 0x6cb87220, 0x195d1: 0x6ce35a20, 0x195d2: 0x6d23b220, 0x195d3: 0x6c824c20,
-	0x195d4: 0x6c05d020, 0x195d6: 0x6c625620, 0x195d7: 0x6c3ee820,
-	0x195d8: 0x6cfd0420, 0x195d9: 0x6c133820, 0x195da: 0x6c550620, 0x195db: 0x6ccb6620,
-	0x195dc: 0x6c080a20, 0x195dd: 0x6cbe5620, 0x195de: 0x6d22a020, 0x195df: 0x6cebf620,
-	0x195e0: 0x6c007a20, 0x195e1: 0x6c4e3c20, 0x195e2: 0x6c28d020, 0x195e3: 0x6c444620,
-	0x195e4: 0x6c2b9c20, 0x195e5: 0x6c5e2020, 0x195e6: 0x6cace420,
-	0x195e8: 0x6d3c6a20, 0x195e9: 0x6c8d7c20, 0x195ea: 0x6c970820, 0x195eb: 0x6c974820,
-	0x195ec: 0x6c888c20, 0x195ed: 0x6cff4220, 0x195ee: 0x6d093220, 0x195ef: 0x6d327820,
-	0x195f0: 0x6cb3b820, 0x195f1: 0x6c408e20, 0x195f2: 0x6caa0e20, 0x195f3: 0x6cf93220,
-	0x195f4: 0x6c338e20, 0x195f5: 0x6c28f020, 0x195f6: 0x6d280c20, 0x195f7: 0x6cfd5220,
-	0x195f8: 0x6d1b3020, 0x195f9: 0x6cd52220, 0x195fa: 0x6c339420, 0x195fb: 0x6c086820,
-	0x195fc: 0x6c56e620, 0x195fd: 0x6c3a5420, 0x195fe: 0x6c3aa820, 0x195ff: 0x6d28be20,
-	// Block 0x658, offset 0x19600
-	0x19600: 0x6c075620, 0x19601: 0x6c3a2820, 0x19602: 0x6cfab820, 0x19603: 0x6cd3ae20,
-	0x19604: 0x6c9e3020, 0x19605: 0x6d2e0820, 0x19606: 0x6d2e0a20, 0x19607: 0x6d2d8c20,
-	0x19608: 0x6c5c4820, 0x19609: 0x6c3f8820, 0x1960a: 0x6ced5a20, 0x1960b: 0x6ca0b420,
-	0x1960c: 0x6cbc1020, 0x1960d: 0x6c8a8a20, 0x1960f: 0x6c9f1e20,
-	0x19610: 0x6c54d820, 0x19611: 0x6c535e20, 0x19612: 0x6d213c20, 0x19613: 0x6cb60820,
-	0x19614: 0x6c350420, 0x19615: 0x6c020020, 0x19617: 0x6c03ba20,
-	0x19618: 0x6c2c7820, 0x19619: 0x6d08aa20, 0x1961a: 0x6c2c8a20, 0x1961b: 0x6c0a0e20,
-	0x1961c: 0x6d393e20, 0x1961d: 0x6cad6020, 0x1961e: 0x6ce5f620, 0x1961f: 0x6d155020,
-	0x19621: 0x6c63ea20, 0x19622: 0x6d36f220, 0x19623: 0x6ce8f820,
-	0x19624: 0x6d00f820, 0x19625: 0x6c28ba20, 0x19626: 0x6ce5a620, 0x19627: 0x6d022620,
-	0x19628: 0x6c172620, 0x19629: 0x6d25f220, 0x1962a: 0x6c496a20, 0x1962b: 0x6c89a420,
-	0x1962c: 0x6c083220, 0x1962e: 0x6c930020, 0x1962f: 0x6c60e420,
-	0x19630: 0x6d08c220, 0x19631: 0x6cd62420, 0x19632: 0x6c318220, 0x19633: 0x6cd9f420,
-	0x19634: 0x6c55e220, 0x19635: 0x6d286420, 0x19636: 0x6c160820, 0x19637: 0x6c054620,
-	0x19638: 0x6cc6da20, 0x19639: 0x6c359c20, 0x1963a: 0x6cf24020, 0x1963b: 0x6c03ca20,
-	0x1963c: 0x6c3cc220, 0x1963d: 0x6d209e20, 0x1963e: 0x6d310c20, 0x1963f: 0x6c3bae20,
-	// Block 0x659, offset 0x19640
-	0x19640: 0x6c496c20, 0x19641: 0x6c104c20, 0x19642: 0x6c446220, 0x19643: 0x6c33c420,
-	0x19644: 0x6c5a3420, 0x19645: 0x6c31f820, 0x19646: 0x6ce3ce20, 0x19647: 0x6c0fcc20,
-	0x19648: 0x6cba8a20, 0x19649: 0x6c8b8220, 0x1964a: 0x6c901620, 0x1964b: 0x6cf13420,
-	0x1964c: 0x6d2eac20, 0x1964d: 0x6c801820, 0x1964e: 0x6cdbea20, 0x1964f: 0x6ca36020,
-	0x19650: 0x6c0a1020, 0x19651: 0x6ceb3e20, 0x19652: 0x6d3b1a20, 0x19653: 0x6c2e5c20,
-	0x19654: 0x6c104620, 0x19655: 0x6c716820, 0x19656: 0x6cb3b020, 0x19657: 0x6cfa0c20,
-	0x19658: 0x6cf04420, 0x19659: 0x6cb3b420, 0x1965a: 0x6c267420, 0x1965b: 0x6c387220,
-	0x1965c: 0x6c14e420, 0x1965d: 0x6c56f020, 0x1965e: 0x6d28c020,
-	0x19664: 0x6c38f020, 0x19665: 0x6d028a20, 0x19666: 0x6c536020, 0x19667: 0x6c1b2e20,
-	0x19668: 0x6c05c820, 0x19669: 0x6d1a7a20, 0x1966b: 0x6c6dd220,
-	0x1966c: 0x6c0f6820, 0x1966d: 0x6cc88820, 0x1966e: 0x6c1e3a20, 0x1966f: 0x6d1c1220,
-	0x19670: 0x6d143a20, 0x19671: 0x6c411820, 0x19672: 0x6c7d6c20, 0x19673: 0x6d27f020,
-	0x19674: 0x6d31ec20, 0x19675: 0x6d0b5a20, 0x19676: 0x6c70b820, 0x19677: 0x6c547a20,
-	0x19678: 0x6c9f7620, 0x19679: 0x6c040220, 0x1967a: 0x6c441c20, 0x1967b: 0x6c0bb220,
-	0x1967c: 0x6d3d0820, 0x1967d: 0x6c505420, 0x1967e: 0x6d31ee20, 0x1967f: 0x6cd14a20,
-	// Block 0x65a, offset 0x19680
-	0x19680: 0x6c44a020, 0x19681: 0x6c0a3e20, 0x19682: 0x6c34b220, 0x19683: 0x6c216820,
-	0x19684: 0x6c1fb220, 0x19685: 0x6cca5a20, 0x19686: 0x6c1a4620, 0x19687: 0x6cc48a20,
-	0x19688: 0x6c191220, 0x19689: 0x6c99b820, 0x1968a: 0x6cadf220, 0x1968b: 0x6ceec220,
-	0x1968c: 0x6cb07420, 0x1968d: 0x6c3f8c20, 0x1968e: 0x6d3d0e20, 0x1968f: 0x6cb53c20,
-	0x19690: 0x6c8bec20, 0x19691: 0x6d142020, 0x19692: 0x6c9adc20, 0x19693: 0x6cf3f820,
-	0x19694: 0x6cb7fa20, 0x19695: 0x6c2f0020, 0x19696: 0x6c191a20, 0x19697: 0x6cfa0e20,
-	0x19698: 0x6c518e20, 0x19699: 0x6cca9220, 0x1969a: 0x6c487e20, 0x1969b: 0x6c543e20,
-	0x1969c: 0x6c023420, 0x1969d: 0x6c3f9420, 0x1969e: 0x6cbbc620, 0x1969f: 0x6c5d4c20,
-	0x196a0: 0x6cafa220, 0x196a1: 0x6d0cf820, 0x196a2: 0x6cd84420, 0x196a3: 0x6cf7b420,
-	0x196a4: 0x6ca02420, 0x196a5: 0x6c7ce420, 0x196a6: 0x6c445620,
-	0x196a8: 0x6c02fc20, 0x196a9: 0x6cca4220, 0x196aa: 0x6cd6ee20, 0x196ab: 0x6c90d820,
-	0x196ac: 0x6d320620, 0x196ad: 0x6c5c9a20, 0x196ae: 0x6c156620,
-	0x196b0: 0x6c8c8420, 0x196b1: 0x6ca2ee20, 0x196b2: 0x6c4f3c20, 0x196b3: 0x6c31fc20,
-	0x196b4: 0x6c6d7820, 0x196b5: 0x6c9df420, 0x196b6: 0x6c38fa20, 0x196b7: 0x6c370020,
-	0x196b8: 0x6c174220, 0x196b9: 0x6c536220, 0x196ba: 0x6c536e20, 0x196bb: 0x6d238820,
-	0x196bc: 0x6d096a20, 0x196bd: 0x6cad3a20, 0x196be: 0x6c088220, 0x196bf: 0x6c175220,
-	// Block 0x65b, offset 0x196c0
-	0x196c0: 0x6d1fe220, 0x196c1: 0x6d153a20, 0x196c2: 0x6d096e20, 0x196c3: 0x6cc97e20,
-	0x196c4: 0x6d073420, 0x196c5: 0x6c866820, 0x196c6: 0x6c868a20, 0x196c7: 0x6d263220,
-	0x196c8: 0x6c336220, 0x196c9: 0x6c5e0420, 0x196ca: 0x6ccc7e20, 0x196cb: 0x6c838c20,
-	0x196cc: 0x6cb3ce20, 0x196cd: 0x6c550e20, 0x196ce: 0x6c4c8e20, 0x196cf: 0x6c10c420,
-	0x196d0: 0x6cc8a620, 0x196d1: 0x6cf0fa20, 0x196d2: 0x6cd9f620, 0x196d3: 0x6c01dc20,
-	0x196d4: 0x6d21cc20, 0x196d5: 0x6cfd8e20, 0x196d6: 0x6c527c20, 0x196d7: 0x6d0fea20,
-	0x196d8: 0x6cff4420, 0x196d9: 0x6d116820, 0x196db: 0x6c0ac020,
-	0x196dd: 0x6c528420, 0x196de: 0x6ce25620, 0x196df: 0x6c8eee20,
-	0x196e1: 0x6d3b3420, 0x196e3: 0x6cf89a20,
-	0x196e4: 0x6d298e20, 0x196e5: 0x6d17d420, 0x196e6: 0x6c312a20, 0x196e7: 0x6d259020,
-	0x196e8: 0x6c700820, 0x196ea: 0x6c0f2020, 0x196eb: 0x6ce35c20,
-	0x196ec: 0x6d1d0220, 0x196ee: 0x6d154020, 0x196ef: 0x6ca70420,
-	0x196f0: 0x6ccee220, 0x196f1: 0x6c07c020, 0x196f2: 0x6c465620, 0x196f3: 0x6c04d420,
-	0x196f4: 0x6ca14820, 0x196f5: 0x6c410420, 0x196f6: 0x6c372620, 0x196f7: 0x6ccf2e20,
-	0x196f9: 0x6d36d620, 0x196fa: 0x6d106c20, 0x196fb: 0x6c66ca20,
-	0x196fc: 0x6d263420, 0x196fd: 0x6cd73020, 0x196fe: 0x6ce38420, 0x196ff: 0x6cf02020,
-	// Block 0x65c, offset 0x19700
-	0x19700: 0x6d0aaa20, 0x19701: 0x6d36f620, 0x19702: 0x6d18bc20, 0x19703: 0x6cc59c20,
-	0x19704: 0x6cd3ee20, 0x19705: 0x6c55d420, 0x19706: 0x6ca55620, 0x19707: 0x6d126a20,
-	0x19708: 0x6c66f820, 0x19709: 0x6cdc1220, 0x1970a: 0x6d1d1e20, 0x1970b: 0x6c061a20,
-	0x1970c: 0x6c55e420, 0x1970d: 0x6c55e620, 0x1970e: 0x6d137a20,
-	0x19710: 0x6d107420, 0x19711: 0x6c888e20, 0x19712: 0x6cf72620, 0x19713: 0x6c372820,
-	0x19714: 0x6c331c20, 0x19715: 0x6d297e20, 0x19716: 0x6d3b4420, 0x19717: 0x6d1d2820,
-	0x19718: 0x6d1d2c20, 0x19719: 0x6c6cca20, 0x1971a: 0x6c208820, 0x1971b: 0x6c28ec20,
-	0x1971d: 0x6c7b4a20, 0x1971e: 0x6d196020, 0x1971f: 0x6d139a20,
-	0x19720: 0x6c662e20, 0x19721: 0x6c372a20, 0x19722: 0x6ca93e20, 0x19723: 0x6c228820,
-	0x19724: 0x6cba3420, 0x19725: 0x6d098220, 0x19726: 0x6c0ea420, 0x19727: 0x6c9d1420,
-	0x19728: 0x6cd73a20, 0x19729: 0x6ca0a620, 0x1972a: 0x6c897c20, 0x1972b: 0x6cb71820,
-	0x1972c: 0x6cb71a20, 0x1972d: 0x6cd44c20, 0x1972e: 0x6c3f2020, 0x1972f: 0x6c0f3a20,
-	0x19730: 0x6c085820, 0x19731: 0x6c0d0020, 0x19732: 0x6d161c20, 0x19733: 0x6cf13a20,
-	0x19734: 0x6c587e20, 0x19735: 0x6c38ac20, 0x19736: 0x6cb60e20, 0x19737: 0x6c98f620,
-	0x19738: 0x6c060820, 0x19739: 0x6c020420, 0x1973a: 0x6c020a20, 0x1973b: 0x6c403020,
-	0x1973c: 0x6cb63020, 0x1973d: 0x6cc45020, 0x1973e: 0x6ceb4020, 0x1973f: 0x6d187420,
-	// Block 0x65d, offset 0x19740
-	0x19740: 0x6c0f5420, 0x19741: 0x6cb12820, 0x19742: 0x6c039220,
-	0x19744: 0x6d082220, 0x19747: 0x6d23fe20,
-	0x19748: 0x6c1b5620, 0x19749: 0x6c915e20, 0x1974a: 0x6d156820, 0x1974b: 0x6c868c20,
-	0x1974d: 0x6ca7b020, 0x1974e: 0x6cf90220, 0x1974f: 0x6cf3fa20,
-	0x19751: 0x6c834a20, 0x19752: 0x6cb41a20, 0x19753: 0x6d3d1220,
-	0x19754: 0x6d417e20, 0x19755: 0x6d3dc620, 0x19756: 0x6c168220, 0x19757: 0x6c01de20,
-	0x19758: 0x6c377220, 0x19759: 0x6d244620, 0x1975a: 0x6c839c20, 0x1975b: 0x6c408220,
-	0x1975c: 0x6d2c6420, 0x1975d: 0x6c5d0a20, 0x1975e: 0x6c218e20, 0x1975f: 0x6cd9fe20,
-	0x19760: 0x6c089a20, 0x19761: 0x6c0ab420, 0x19762: 0x6d2c6620,
-	0x19764: 0x6c519e20, 0x19765: 0x6c873a20, 0x19767: 0x6c4f3220,
-	0x19768: 0x6d292220, 0x19769: 0x6c474a20, 0x1976a: 0x6c1a5e20, 0x1976b: 0x6c90dc20,
-	0x1976c: 0x6ca19e20, 0x1976d: 0x6c9daa20, 0x1976e: 0x6c975020, 0x1976f: 0x6c030420,
-	0x19770: 0x6d30c020, 0x19771: 0x6d3a3a20, 0x19772: 0x6c5a3820, 0x19773: 0x6c38f620,
-	0x19774: 0x6c2b0220, 0x19775: 0x6ce7a420, 0x19777: 0x6c320220,
-	0x19778: 0x6cf33620, 0x19779: 0x6cf13020, 0x1977a: 0x6c62f620, 0x1977b: 0x6c1ca020,
-	0x1977c: 0x6c8c1220, 0x1977d: 0x6c0c6420, 0x1977e: 0x6c901e20, 0x1977f: 0x6c664a20,
-	// Block 0x65e, offset 0x19780
-	0x19780: 0x6ca8da20, 0x19781: 0x6c959e20, 0x19782: 0x6cd03420,
-	0x19784: 0x6c487a20, 0x19785: 0x6ca8a820, 0x19786: 0x6d178a20, 0x19787: 0x6c7a4820,
-	0x19788: 0x6cece220, 0x19789: 0x6cebee20, 0x1978a: 0x6cb87620, 0x1978b: 0x6c0f5620,
-	0x1978c: 0x6c779220, 0x1978d: 0x6c8d5020, 0x1978e: 0x6c423020, 0x1978f: 0x6c487820,
-	0x19790: 0x6c4d2c20, 0x19791: 0x6c7bb020, 0x19792: 0x6c527420, 0x19793: 0x6c7c4620,
-	0x19794: 0x6d2b0a20, 0x19795: 0x6ce64e20, 0x19796: 0x6c80ee20, 0x19797: 0x6c0a8020,
-	0x19798: 0x6c595a20, 0x19799: 0x6cb3aa20, 0x1979a: 0x6d11de20, 0x1979b: 0x6cedaa20,
-	0x1979c: 0x6ce43c20, 0x1979d: 0x6cdc1620, 0x1979e: 0x6c7ad020, 0x1979f: 0x6c337e20,
-	0x197a0: 0x6c02b620, 0x197a1: 0x6c671620, 0x197a2: 0x6ca09c20, 0x197a3: 0x6c7d4220,
-	0x197a4: 0x6c7b4c20, 0x197a5: 0x6c01e620, 0x197a6: 0x6c96ea20, 0x197a7: 0x6cbeaa20,
-	0x197a8: 0x6cbb8820, 0x197aa: 0x6c77b820, 0x197ab: 0x6c508220,
-	0x197ac: 0x6c34c820, 0x197ad: 0x6cfaa820, 0x197ae: 0x6ca37c20, 0x197af: 0x6cdd3420,
-	0x197b0: 0x6c6bf820, 0x197b1: 0x6caf8220, 0x197b2: 0x6cabcc20, 0x197b3: 0x6cd93020,
-	0x197b4: 0x6c16bc20, 0x197b5: 0x6ca86c20, 0x197b6: 0x6c977620, 0x197b7: 0x6cd93e20,
-	0x197b8: 0x6c22e420, 0x197b9: 0x6cfae420, 0x197ba: 0x6c7e2420,
-	0x197bc: 0x6c2b9e20, 0x197bd: 0x6cb3e420, 0x197be: 0x6ce5ac20, 0x197bf: 0x6d40f420,
-	// Block 0x65f, offset 0x197c0
-	0x197c0: 0x6cf2c820, 0x197c1: 0x6c3ae420, 0x197c2: 0x6c115020, 0x197c3: 0x6caee220,
-	0x197c4: 0x6cc9d620, 0x197c6: 0x6cc76e20, 0x197c7: 0x6cb68620,
-	0x197c8: 0x6c25fc20, 0x197c9: 0x6cac8e20, 0x197ca: 0x6c0fc020, 0x197cb: 0x6c979c20,
-	0x197cc: 0x6d401420, 0x197cd: 0x6c22f220, 0x197ce: 0x6c7d4420, 0x197cf: 0x6c62f820,
-	0x197d0: 0x6c801420, 0x197d2: 0x6c9bc220, 0x197d3: 0x6c9df820,
-	0x197d4: 0x6cac9620, 0x197d5: 0x6c91aa20, 0x197d6: 0x6d416020,
-	0x197d8: 0x6c8ee220, 0x197d9: 0x6d160020, 0x197da: 0x6cf1a820, 0x197db: 0x6c866c20,
-	0x197dc: 0x6c868e20, 0x197dd: 0x6d2bb820, 0x197de: 0x6d3a9220, 0x197df: 0x6c5cfc20,
-	0x197e0: 0x6cd03c20, 0x197e1: 0x6c1c6620, 0x197e2: 0x6d043c20, 0x197e3: 0x6cee3a20,
-	0x197e4: 0x6c302020, 0x197e5: 0x6c5e2220, 0x197e6: 0x6cb07a20, 0x197e7: 0x6c551420,
-	0x197e8: 0x6c9ab420, 0x197e9: 0x6c17f420, 0x197ea: 0x6c9ab820, 0x197eb: 0x6c175820,
-	0x197ec: 0x6c719620, 0x197ed: 0x6caa3420, 0x197ef: 0x6d197620,
-	0x197f0: 0x6cc7f020, 0x197f1: 0x6c8e0420, 0x197f2: 0x6d0bba20,
-	0x197f4: 0x6cb7bc20, 0x197f5: 0x6d3e7620, 0x197f7: 0x6c058c20,
-	0x197f8: 0x6c45aa20, 0x197f9: 0x6d2af620, 0x197fa: 0x6c6bfe20, 0x197fb: 0x6d219a20,
-	0x197fc: 0x6cbd9820, 0x197fd: 0x6c075820, 0x197fe: 0x6c035820, 0x197ff: 0x6ceb5020,
-	// Block 0x660, offset 0x19800
-	0x19800: 0x6d0f6c20, 0x19801: 0x6cbbfc20, 0x19802: 0x6d1ff220, 0x19803: 0x6d36fa20,
-	0x19804: 0x6c6c0a20, 0x19805: 0x6ca16a20, 0x19806: 0x6cd12420, 0x19807: 0x6ccdb820,
-	0x19808: 0x6cb65620, 0x19809: 0x6ccdba20, 0x1980a: 0x6c9d0420, 0x1980b: 0x6c460220,
-	0x1980c: 0x6d157c20, 0x1980d: 0x6c453e20, 0x1980e: 0x6c454020, 0x1980f: 0x6ce82020,
-	0x19810: 0x6c3dac20, 0x19811: 0x6d092220, 0x19812: 0x6d137e20, 0x19813: 0x6ce69a20,
-	0x19814: 0x6ce5ae20, 0x19815: 0x6ca1f620, 0x19816: 0x6c8ec620, 0x19817: 0x6c117e20,
-	0x19818: 0x6c848020, 0x19819: 0x6cd51820, 0x1981a: 0x6c932420, 0x1981b: 0x6c5e3a20,
-	0x1981c: 0x6c263c20, 0x1981d: 0x6cac1220, 0x1981e: 0x6c8ed420, 0x1981f: 0x6c72b820,
-	0x19820: 0x6d2e9220, 0x19821: 0x6c718220, 0x19822: 0x6d330a20, 0x19823: 0x6d40f820,
-	0x19824: 0x6cfd3820, 0x19825: 0x6d375020,
-	0x19828: 0x6c7eb020, 0x1982b: 0x6c7ebe20,
-	0x1982c: 0x6d060a20, 0x1982d: 0x6c454220, 0x1982e: 0x6c35a220, 0x1982f: 0x6ca21e20,
-	0x19830: 0x6d384a20, 0x19831: 0x6ce3aa20, 0x19832: 0x6d25ce20, 0x19833: 0x6d2dc020,
-	0x19834: 0x6c454420, 0x19835: 0x6cf24420, 0x19836: 0x6c80f420, 0x19837: 0x6d21f620,
-	0x19838: 0x6cda0820, 0x19839: 0x6d2ca020, 0x1983a: 0x6c4d3620, 0x1983b: 0x6c576e20,
-	0x1983c: 0x6d2e3e20, 0x1983e: 0x6c90de20, 0x1983f: 0x6c165020,
-	// Block 0x661, offset 0x19840
-	0x19840: 0x6d376c20, 0x19841: 0x6cf12820, 0x19842: 0x6d083c20, 0x19843: 0x6d2a6420,
-	0x19844: 0x6c9f8620, 0x19845: 0x6c4aac20, 0x19846: 0x6cda7020,
-	0x19849: 0x6cd85420, 0x1984a: 0x6c352820, 0x1984b: 0x6c134220,
-	0x1984c: 0x6c7b7a20, 0x1984d: 0x6ce2dc20, 0x1984e: 0x6ca57c20, 0x1984f: 0x6c819620,
-	0x19850: 0x6c920820, 0x19851: 0x6d159e20, 0x19852: 0x6d029220, 0x19853: 0x6d0e2a20,
-	0x19854: 0x6cbe9820, 0x19855: 0x6cb42420, 0x19856: 0x6c1e1220, 0x19857: 0x6cfbe020,
-	0x19858: 0x6c497020, 0x19859: 0x6c6b8a20, 0x1985a: 0x6c7f8220, 0x1985b: 0x6c9bca20,
-	0x1985c: 0x6d13ac20, 0x1985e: 0x6c869420, 0x1985f: 0x6d1b8420,
-	0x19860: 0x6c212620, 0x19861: 0x6cbfde20, 0x19862: 0x6ce2d220, 0x19863: 0x6d21f820,
-	0x19866: 0x6c278420, 0x19867: 0x6c327420,
-	0x19868: 0x6c537e20, 0x1986a: 0x6cf8c220,
-	0x1986c: 0x6cb64820, 0x1986e: 0x6d25a620, 0x1986f: 0x6c609e20,
-	0x19870: 0x6d285020, 0x19871: 0x6c39dc20, 0x19872: 0x6c45ac20, 0x19873: 0x6c4f8820,
-	0x19874: 0x6d326620, 0x19875: 0x6cc3f620,
-	0x19878: 0x6c6c0220, 0x19879: 0x6cb02020, 0x1987a: 0x6c423220, 0x1987b: 0x6d082820,
-	0x1987c: 0x6cd11420, 0x1987d: 0x6cd28c20, 0x1987e: 0x6cbc2a20, 0x1987f: 0x6c227020,
-	// Block 0x662, offset 0x19880
-	0x19880: 0x6c2eee20, 0x19881: 0x6c0f7220, 0x19882: 0x6c2de620, 0x19883: 0x6ced5020,
-	0x19884: 0x6c227220, 0x19885: 0x6d355420, 0x19886: 0x6c041220, 0x19887: 0x6cf47e20,
-	0x19888: 0x6c061820, 0x19889: 0x6c28be20, 0x1988a: 0x6c039420, 0x1988b: 0x6ce79620,
-	0x1988d: 0x6c45bc20, 0x1988e: 0x6c702e20, 0x1988f: 0x6c4b8620,
-	0x19890: 0x6c22e820, 0x19891: 0x6d1ff420, 0x19892: 0x6d25ba20, 0x19893: 0x6c81be20,
-	0x19894: 0x6c716e20, 0x19895: 0x6c3f1820, 0x19896: 0x6ca88e20, 0x19897: 0x6c358c20,
-	0x19898: 0x6c358e20, 0x19899: 0x6d040e20, 0x1989a: 0x6c771620, 0x1989b: 0x6d0ee220,
-	0x1989c: 0x6ce90220, 0x1989d: 0x6cb3f820, 0x1989e: 0x6c083820, 0x1989f: 0x6ca02620,
-	0x198a0: 0x6cd73620, 0x198a1: 0x6d0ef220, 0x198a2: 0x6cb68c20, 0x198a3: 0x6d25ca20,
-	0x198a4: 0x6c0cca20, 0x198a6: 0x6d07f220, 0x198a7: 0x6c544220,
-	0x198a8: 0x6c5a3020, 0x198a9: 0x6d10c220, 0x198aa: 0x6c73a220, 0x198ab: 0x6c7cb220,
-	0x198ac: 0x6c36de20, 0x198ad: 0x6c60f620, 0x198ae: 0x6ca19220, 0x198af: 0x6c1d2e20,
-	0x198b0: 0x6c062220, 0x198b1: 0x6cf54e20, 0x198b2: 0x6d327a20, 0x198b3: 0x6d076620,
-	0x198b4: 0x6cdee820, 0x198b5: 0x6c1c9620, 0x198b6: 0x6cf74a20, 0x198b7: 0x6c23d220,
-	0x198b8: 0x6c968620, 0x198b9: 0x6c7a1020, 0x198ba: 0x6d0f0820, 0x198bb: 0x6c11c420,
-	0x198bd: 0x6c520e20, 0x198be: 0x6c2ac620, 0x198bf: 0x6cc49e20,
-	// Block 0x663, offset 0x198c0
-	0x198c0: 0x6ce7a820, 0x198c1: 0x6d248c20, 0x198c2: 0x6cfe7020, 0x198c3: 0x6ca4d820,
-	0x198c4: 0x6cd76420, 0x198c5: 0x6c3bb220, 0x198c6: 0x6cb47820, 0x198c7: 0x6c8dba20,
-	0x198c8: 0x6c02ba20, 0x198c9: 0x6c58d020, 0x198ca: 0x6d15a020, 0x198cb: 0x6c58d220,
-	0x198cc: 0x6c9bc620, 0x198cd: 0x6d1c4e20, 0x198ce: 0x6c831820, 0x198cf: 0x6d0f2e20,
-	0x198d0: 0x6c062820, 0x198d1: 0x6c2f2c20, 0x198d2: 0x6c8e0620, 0x198d3: 0x6cd1f820,
-	0x198d4: 0x6c689020, 0x198d5: 0x6c8b4420, 0x198d6: 0x6c6dee20, 0x198d7: 0x6c718c20,
-	0x198d8: 0x6ce30a20, 0x198d9: 0x6cb0e620, 0x198da: 0x6c42a620, 0x198db: 0x6cff3420,
-	0x198dc: 0x6cec5e20, 0x198dd: 0x6c1fd420, 0x198de: 0x6c2bc420, 0x198df: 0x6c588e20,
-	0x198e0: 0x6d11d220, 0x198e1: 0x6c866e20, 0x198e2: 0x6c9c7020, 0x198e3: 0x6c550a20,
-	0x198e4: 0x6cd11620, 0x198e5: 0x6c638a20, 0x198e6: 0x6d1aa620, 0x198e7: 0x6ceec620,
-	0x198e9: 0x6cb18e20, 0x198ea: 0x6c934420, 0x198eb: 0x6c8dbc20,
-	0x198ec: 0x6d184420, 0x198ed: 0x6c111620, 0x198ee: 0x6ccd9820, 0x198ef: 0x6c54fe20,
-	0x198f0: 0x6cd53620, 0x198f1: 0x6cead420, 0x198f2: 0x6ca16e20, 0x198f3: 0x6c575820,
-	0x198f4: 0x6ce61a20, 0x198f5: 0x6c0dfe20, 0x198f6: 0x6caee620, 0x198f7: 0x6c5d0820,
-	0x198f8: 0x6c3dae20, 0x198f9: 0x6c4cdc20, 0x198fa: 0x6c10d020, 0x198fb: 0x6c849820,
-	0x198fc: 0x6c163e20, 0x198fd: 0x6cb03420, 0x198fe: 0x6c260020, 0x198ff: 0x6c9bb220,
-	// Block 0x664, offset 0x19900
-	0x19900: 0x6cddc020, 0x19901: 0x6cbb6020, 0x19902: 0x6d34c420, 0x19903: 0x6c7c2420,
-	0x19904: 0x6c08a820, 0x19905: 0x6c029220, 0x19906: 0x6c9bc820, 0x19907: 0x6cfd0620,
-	0x19908: 0x6c7ab420, 0x19909: 0x6ce7fc20, 0x1990a: 0x6ce93c20, 0x1990b: 0x6cf04a20,
-	0x1990c: 0x6cfaf820, 0x1990e: 0x6ce94220, 0x1990f: 0x6c81cc20,
-	0x19910: 0x6c162220, 0x19911: 0x6ca6c420, 0x19912: 0x6ca6d020, 0x19913: 0x6c845220,
-	0x19914: 0x6c304620, 0x19915: 0x6c72c620, 0x19916: 0x6cba8620, 0x19917: 0x6c0fc620,
-	0x19918: 0x6cccac20, 0x19919: 0x6d2c0e20, 0x1991a: 0x6ce25e20, 0x1991b: 0x6cba8c20,
-	0x1991c: 0x6ca9ee20, 0x1991d: 0x6d181620, 0x1991e: 0x6c6e9e20, 0x1991f: 0x6c41e820,
-	0x19920: 0x6c2ba020, 0x19921: 0x6c65de20, 0x19922: 0x6c9ab020, 0x19923: 0x6c26c420,
-	0x19924: 0x6c660620, 0x19925: 0x6d244a20, 0x19926: 0x6d024c20, 0x19927: 0x6d294820,
-	0x19928: 0x6c988020, 0x19929: 0x6c849a20, 0x1992a: 0x6c4c0a20, 0x1992b: 0x6d09ca20,
-	0x1992c: 0x6cdedc20, 0x1992d: 0x6d310e20, 0x1992e: 0x6d107620, 0x1992f: 0x6ce98620,
-	0x19930: 0x6cce2e20, 0x19931: 0x6cf93e20, 0x19932: 0x6cbbcc20, 0x19933: 0x6cf13620,
-	0x19934: 0x6d1d6220, 0x19935: 0x6c1fa820, 0x19936: 0x6cc1ec20, 0x19937: 0x6cebfa20,
-	0x19939: 0x6d343220, 0x1993a: 0x6ce6e420, 0x1993b: 0x6c47f820,
-	0x1993c: 0x6cce3020, 0x1993d: 0x6c10ec20, 0x1993e: 0x6c3f1a20, 0x1993f: 0x6ce61e20,
-	// Block 0x665, offset 0x19940
-	0x19940: 0x6cded220, 0x19941: 0x6cdeea20, 0x19942: 0x6d3da620, 0x19943: 0x6c4e4020,
-	0x19944: 0x6cb2da20, 0x19945: 0x6c519a20, 0x19946: 0x6d3c7420, 0x19947: 0x6d396e20,
-	0x19948: 0x6c0fd220, 0x19949: 0x6c8eec20, 0x1994a: 0x6caa8c20, 0x1994b: 0x6cf71220,
-	0x1994c: 0x6cada220, 0x1994d: 0x6c2cb420, 0x1994e: 0x6c50ac20, 0x1994f: 0x6ce44620,
-	0x19950: 0x6cec8020, 0x19951: 0x6ce44a20, 0x19952: 0x6cb66a20, 0x19953: 0x6c62a820,
-	0x19954: 0x6c1b6620, 0x19955: 0x6c03cc20, 0x19956: 0x6c6d7020, 0x19957: 0x6c78e820,
-	0x19958: 0x6c873e20, 0x19959: 0x6c72c820, 0x1995a: 0x6cc25620, 0x1995b: 0x6c7ec820,
-	0x1995c: 0x6c47f020, 0x1995d: 0x6cb88620, 0x1995e: 0x6cb6b420, 0x1995f: 0x6cfd5020,
-	0x19960: 0x6c664220, 0x19961: 0x6cd29a20, 0x19962: 0x6c655420, 0x19963: 0x6c005e20,
-	0x19964: 0x6c577220, 0x19965: 0x6d2c1420, 0x19966: 0x6d2b2e20, 0x19967: 0x6d11e820,
-	0x19968: 0x6d2dd820, 0x19969: 0x6c630420, 0x1996a: 0x6c145c20, 0x1996b: 0x6d0f3420,
-	0x1996c: 0x6c654c20, 0x1996e: 0x6d0e1020,
-	0x19970: 0x6c68a820, 0x19971: 0x6ce7a220, 0x19972: 0x6ca41820, 0x19973: 0x6d271a20,
-	0x19975: 0x6c1b6e20,
-	// Block 0x666, offset 0x19980
-	0x19980: 0x6d13b620, 0x19981: 0x6c2f4020, 0x19982: 0x6c779820, 0x19983: 0x6cb4c620,
-	0x19984: 0x6cce4620, 0x19985: 0x6cfa2420, 0x19986: 0x6c4e4c20, 0x19987: 0x6ced6820,
-	0x19988: 0x6d2f1820, 0x19989: 0x6cc9f220, 0x1998a: 0x6cce4820, 0x1998b: 0x6cfa2620,
-	0x1998c: 0x6c5e6220, 0x1998d: 0x6c105620, 0x1998e: 0x6d221020, 0x1998f: 0x6c9dfa20,
-	0x19990: 0x6c411e20, 0x19991: 0x6c1e1820, 0x19992: 0x6c1e1a20, 0x19993: 0x6d3b6c20,
-	0x19994: 0x6cbc8e20, 0x19995: 0x6caf2220, 0x19996: 0x6cd2ea20, 0x19997: 0x6cd2e820,
-	0x19998: 0x6cbf9420, 0x19999: 0x6c0dba20, 0x1999a: 0x6d12b820, 0x1999b: 0x6c237e20,
-	0x1999c: 0x6c2fd620, 0x1999d: 0x6cd7b820, 0x1999e: 0x6c19b020, 0x1999f: 0x6c2fca20,
-	0x199a0: 0x6cbf9620, 0x199a1: 0x6c898020, 0x199a2: 0x6c2fcc20, 0x199a3: 0x6d1f9a20,
-	0x199a4: 0x6c898220, 0x199a5: 0x6d0c5420, 0x199a6: 0x6c0e0820, 0x199a7: 0x6cca9c20,
-	0x199a8: 0x6c4bb620, 0x199a9: 0x6c6f3620, 0x199aa: 0x6c447a20, 0x199ab: 0x6d0ac420,
-	0x199ac: 0x6cbb0220, 0x199ad: 0x6d378220, 0x199ae: 0x6c611020, 0x199af: 0x6c6ba220,
-	0x199b0: 0x6c3c0c20, 0x199b1: 0x6c497420, 0x199b2: 0x6c202c20, 0x199b3: 0x6c159620,
-	0x199b4: 0x6c8ba220, 0x199b5: 0x6d3d3620, 0x199b6: 0x6d3a5220, 0x199b7: 0x6c4d0420,
-	0x199b8: 0x6cecb420, 0x199b9: 0x6c27b220, 0x199ba: 0x6cf06a20, 0x199bb: 0x6d3a5420,
-	0x199bc: 0x6c6e0020, 0x199bd: 0x6c857420, 0x199be: 0x6c71aa20, 0x199bf: 0x6cb1dc20,
-	// Block 0x667, offset 0x199c0
-	0x199c0: 0x6c3dc220, 0x199c1: 0x6d144620, 0x199c2: 0x6d163420, 0x199c3: 0x6ca38c20,
-	0x199c4: 0x6cf55020, 0x199c5: 0x6c6f9c20, 0x199c6: 0x6c6f9e20, 0x199c7: 0x6cea9020,
-	0x199c8: 0x6c99c220, 0x199c9: 0x6d163820, 0x199ca: 0x6d13b820, 0x199cb: 0x6d337c20,
-	0x199cc: 0x6cf33c20, 0x199cd: 0x6d2ca620, 0x199ce: 0x6c56f820, 0x199cf: 0x6c37f420,
-	0x199d0: 0x6c820820, 0x199d1: 0x6d1a1e20, 0x199d2: 0x6cb24620, 0x199d3: 0x6caccc20,
-	0x199d4: 0x6cbbce20, 0x199d5: 0x6c560e20, 0x199d6: 0x6c48c220, 0x199d7: 0x6c19c420,
-	0x199d8: 0x6c19d420, 0x199d9: 0x6d15aa20, 0x199da: 0x6d1abc20, 0x199db: 0x6d0bd820,
-	0x199dc: 0x6c9ebc20, 0x199dd: 0x6c6f9a20, 0x199de: 0x6cb6c020, 0x199df: 0x6d129c20,
-	0x199e0: 0x6cf76820, 0x199e1: 0x6cfd5e20, 0x199e2: 0x6c412020, 0x199e3: 0x6c6fa020,
-	0x199e4: 0x6cfa2820, 0x199e5: 0x6c563020, 0x199e6: 0x6cd49620, 0x199e7: 0x6c315a20,
-	0x199e8: 0x6cd2aa20, 0x199e9: 0x6c5e7020, 0x199ea: 0x6ca45420, 0x199eb: 0x6c631a20,
-	0x199ec: 0x6c71ec20, 0x199ed: 0x6cd23220, 0x199ee: 0x6c992220, 0x199ef: 0x6c549020,
-	0x199f0: 0x6c971020, 0x199f1: 0x6c949020, 0x199f2: 0x6d3dfe20, 0x199f3: 0x6cc7f820,
-	0x199f4: 0x6d08f620, 0x199f5: 0x6d0d4220, 0x199f6: 0x6c3f3a20, 0x199f7: 0x6ccbcc20,
-	0x199f8: 0x6ca2f020, 0x199f9: 0x6c418220, 0x199fa: 0x6cdd5020, 0x199fb: 0x6d20d020,
-	0x199fc: 0x6c258c20, 0x199fd: 0x6d30d420, 0x199fe: 0x6c419020, 0x199ff: 0x6d35d220,
-	// Block 0x668, offset 0x19a00
-	0x19a00: 0x6c4a5020, 0x19a01: 0x6c419820, 0x19a02: 0x6c949a20, 0x19a03: 0x6c8c2220,
-	0x19a04: 0x6d17d820, 0x19a05: 0x6c73be20, 0x19a06: 0x6c823620, 0x19a07: 0x6c96ec20,
-	0x19a08: 0x6d221220, 0x19a09: 0x6d328020, 0x19a0a: 0x6cd30620, 0x19a0b: 0x6cd31020,
-	0x19a0c: 0x6c37b420, 0x19a0d: 0x6c1f0020, 0x19a0e: 0x6d20a220, 0x19a0f: 0x6c7c3020,
-	0x19a10: 0x6d20a020, 0x19a11: 0x6d277420, 0x19a12: 0x6c563220, 0x19a13: 0x6cb56020,
-	0x19a14: 0x6cf41420, 0x19a15: 0x6c6dfe20, 0x19a16: 0x6cd87220, 0x19a17: 0x6cdc1c20,
-	0x19a18: 0x6c44a620, 0x19a19: 0x6c44a820, 0x19a1a: 0x6d0b6c20, 0x19a1b: 0x6d003620,
-	0x19a1c: 0x6d0b7420, 0x19a1d: 0x6cb57820, 0x19a1e: 0x6d0b7c20, 0x19a1f: 0x6c5fd820,
-	0x19a20: 0x6ce7e220, 0x19a21: 0x6cedd420, 0x19a22: 0x6c777420, 0x19a23: 0x6cde2a20,
-	0x19a24: 0x6c682220, 0x19a25: 0x6c4d4e20, 0x19a26: 0x6d165220, 0x19a27: 0x6c158c20,
-	0x19a28: 0x6c524420, 0x19a29: 0x6ca22220, 0x19a2a: 0x6d13b220, 0x19a2b: 0x6cfdd820,
-	0x19a2c: 0x6c6d8e20, 0x19a2d: 0x6ce66220, 0x19a2e: 0x6c89aa20, 0x19a2f: 0x6cfdda20,
-	0x19a30: 0x6c6d9620, 0x19a31: 0x6d12d420, 0x19a32: 0x6cbd1c20, 0x19a33: 0x6c0ece20,
-	0x19a34: 0x6d204420, 0x19a35: 0x6d01a020, 0x19a36: 0x6c283820, 0x19a37: 0x6c880820,
-	0x19a38: 0x6c34b420, 0x19a39: 0x6c9ae020, 0x19a3a: 0x6cc55a20, 0x19a3b: 0x6cc55c20,
-	0x19a3c: 0x6c5fb620, 0x19a3d: 0x6c630a20, 0x19a3e: 0x6cedd620, 0x19a3f: 0x6d163a20,
-	// Block 0x669, offset 0x19a40
-	0x19a40: 0x6cd03620, 0x19a41: 0x6cc55e20, 0x19a42: 0x6c820220, 0x19a43: 0x6c2f4220,
-	0x19a44: 0x6d2b3220, 0x19a45: 0x6c6c7e20, 0x19a46: 0x6cb3fa20, 0x19a47: 0x6c1d8c20,
-	0x19a48: 0x6c030c20, 0x19a49: 0x6d2ef620, 0x19a4a: 0x6c6c1c20, 0x19a4b: 0x6c6ba420,
-	0x19a4c: 0x6c0da020, 0x19a4d: 0x6cc61220, 0x19a4e: 0x6c237c20, 0x19a4f: 0x6c3d0820,
-	0x19a50: 0x6cca1220, 0x19a51: 0x6c94d420, 0x19a52: 0x6c0da220, 0x19a53: 0x6c121c20,
-	0x19a54: 0x6d3ed620, 0x19a55: 0x6cd2ee20, 0x19a56: 0x6cddda20, 0x19a57: 0x6d2f1a20,
-	0x19a58: 0x6c3fa420, 0x19a59: 0x6cfd5620, 0x19a5a: 0x6cfa6a20, 0x19a5b: 0x6cea9220,
-	0x19a5c: 0x6c52e820, 0x19a5d: 0x6ce70a20, 0x19a5e: 0x6cc5a620, 0x19a5f: 0x6cb88e20,
-	0x19a60: 0x6c41c220, 0x19a61: 0x6c436220, 0x19a62: 0x6c0ea620, 0x19a63: 0x6c272220,
-	0x19a64: 0x6c8e1820, 0x19a65: 0x6d15ae20, 0x19a66: 0x6c17b020, 0x19a67: 0x6c169020,
-	0x19a68: 0x6cc93e20, 0x19a69: 0x6cce5a20, 0x19a6a: 0x6d144a20, 0x19a6b: 0x6ca25e20,
-	0x19a6c: 0x6c9b0220, 0x19a6d: 0x6cc5a820, 0x19a6e: 0x6c63fe20, 0x19a6f: 0x6c17b220,
-	0x19a70: 0x6d0ffc20, 0x19a71: 0x6cb96820, 0x19a72: 0x6d380e20, 0x19a73: 0x6cb04620,
-	0x19a74: 0x6cf2cc20, 0x19a75: 0x6cf41820, 0x19a76: 0x6c665020, 0x19a77: 0x6c643620,
-	0x19a78: 0x6d117e20, 0x19a79: 0x6c3c1220, 0x19a7a: 0x6c121e20, 0x19a7b: 0x6cc5ac20,
-	0x19a7c: 0x6ceddc20, 0x19a7d: 0x6c3bc420, 0x19a7e: 0x6c2b0c20, 0x19a7f: 0x6c39b620,
-	// Block 0x66a, offset 0x19a80
-	0x19a80: 0x6d378420, 0x19a81: 0x6cb6c820, 0x19a82: 0x6cadf820, 0x19a83: 0x6d20a620,
-	0x19a84: 0x6c2e0620, 0x19a85: 0x6c33d220, 0x19a86: 0x6cf49c20, 0x19a87: 0x6d165620,
-	0x19a88: 0x6d030a20, 0x19a89: 0x6c777620, 0x19a8a: 0x6d13bc20, 0x19a8b: 0x6c5fbc20,
-	0x19a8c: 0x6c008620, 0x19a8d: 0x6cf55420, 0x19a8e: 0x6c617220, 0x19a8f: 0x6c3dca20,
-	0x19a90: 0x6c37f620, 0x19a91: 0x6d04b220, 0x19a92: 0x6c6ccc20, 0x19a93: 0x6caf2420,
-	0x19a94: 0x6c281820, 0x19a95: 0x6c3d3420, 0x19a96: 0x6ce16c20, 0x19a97: 0x6d381020,
-	0x19a98: 0x6d1e8820, 0x19a99: 0x6c5d8620, 0x19a9a: 0x6c5b8a20, 0x19a9b: 0x6d221420,
-	0x19a9c: 0x6c251620, 0x19a9d: 0x6c1fee20, 0x19a9e: 0x6cca1420, 0x19a9f: 0x6cef8220,
-	0x19aa0: 0x6c1ff020, 0x19aa1: 0x6c17cc20, 0x19aa2: 0x6d0b0a20, 0x19aa3: 0x6cfc7020,
-	0x19aa4: 0x6ccdfe20, 0x19aa5: 0x6c165e20, 0x19aa6: 0x6c94d620, 0x19aa7: 0x6c122020,
-	0x19aa8: 0x6d0a6420, 0x19aa9: 0x6d031220, 0x19aaa: 0x6cef8420, 0x19aab: 0x6d3a9a20,
-	0x19aac: 0x6d2b5820, 0x19aad: 0x6cfb2220, 0x19aae: 0x6caa4820, 0x19aaf: 0x6c0eaa20,
-	0x19ab0: 0x6c46e620, 0x19ab1: 0x6ca62020, 0x19ab2: 0x6ca67a20, 0x19ab3: 0x6d015420,
-	0x19ab4: 0x6c04de20, 0x19ab5: 0x6d066a20, 0x19ab6: 0x6c8e2c20, 0x19ab7: 0x6d38f820,
-	0x19ab8: 0x6ccfa020, 0x19ab9: 0x6cc0ca20, 0x19aba: 0x6c22ac20, 0x19abb: 0x6c07ce20,
-	0x19abc: 0x6cd2f620, 0x19abd: 0x6c631e20, 0x19abe: 0x6caf2620, 0x19abf: 0x6d167220,
-	// Block 0x66b, offset 0x19ac0
-	0x19ac0: 0x6cd87c20, 0x19ac1: 0x6d15b620, 0x19ac2: 0x6d328220, 0x19ac3: 0x6c2d3420,
-	0x19ac4: 0x6c4d9020, 0x19ac5: 0x6c972220, 0x19ac6: 0x6c286220, 0x19ac7: 0x6d3a9c20,
-	0x19ac8: 0x6c105a20, 0x19ac9: 0x6cc0cc20, 0x19aca: 0x6c08b420, 0x19acb: 0x6d2f5020,
-	0x19acc: 0x6c228c20, 0x19acd: 0x6cf06e20, 0x19ace: 0x6c2b0e20, 0x19acf: 0x6d3a9e20,
-	0x19ad0: 0x6d426220, 0x19ad1: 0x6d200e20, 0x19ad2: 0x6d0ffe20, 0x19ad3: 0x6ce3ba20,
-	0x19ad4: 0x6d2e4820, 0x19ad5: 0x6c50b820, 0x19ad6: 0x6c091020, 0x19ad7: 0x6ceae420,
-	0x19ad8: 0x6ccf0820, 0x19ad9: 0x6d20ac20, 0x19ada: 0x6d167420, 0x19adb: 0x6c3dd020,
-	0x19adc: 0x6d427420, 0x19add: 0x6c463420, 0x19ade: 0x6ca95020, 0x19adf: 0x6ce70e20,
-	0x19ae0: 0x6ca62220, 0x19ae1: 0x6cfa7620, 0x19ae2: 0x6cc17220, 0x19ae3: 0x6d1d7c20,
-	0x19ae4: 0x6cec0e20, 0x19ae5: 0x6cb8a220, 0x19ae6: 0x6cd40a20, 0x19ae7: 0x6c761a20,
-	0x19ae8: 0x6c068820, 0x19ae9: 0x6cae0420, 0x19aea: 0x6c5b1a20, 0x19aeb: 0x6c51b620,
-	0x19aec: 0x6c819c20, 0x19aed: 0x6cfdac20, 0x19aee: 0x6c43c420, 0x19aef: 0x6d0f8420,
-	0x19af0: 0x6c041820, 0x19af1: 0x6c382c20, 0x19af2: 0x6ca02a20, 0x19af3: 0x6c632420,
-	0x19af4: 0x6c37bc20, 0x19af5: 0x6c0e0a20, 0x19af6: 0x6c5fda20, 0x19af7: 0x6c523820,
-	0x19af8: 0x6c5d6c20, 0x19af9: 0x6c4ac420, 0x19afa: 0x6cc2b620, 0x19afb: 0x6ce54820,
-	0x19afc: 0x6c68c820, 0x19afd: 0x6c22b020, 0x19afe: 0x6d16a220, 0x19aff: 0x6cd2b220,
-	// Block 0x66c, offset 0x19b00
-	0x19b00: 0x6d03c620, 0x19b01: 0x6ccfa620, 0x19b02: 0x6ceaa620, 0x19b03: 0x6c76c020,
-	0x19b04: 0x6d343a20, 0x19b05: 0x6c40dc20, 0x19b06: 0x6c7ee220, 0x19b07: 0x6d146c20,
-	0x19b08: 0x6c1b7a20, 0x19b09: 0x6c7ad220, 0x19b0a: 0x6c49d420, 0x19b0b: 0x6c858620,
-	0x19b0c: 0x6d19a820, 0x19b0d: 0x6cd31220, 0x19b0e: 0x6c9cda20, 0x19b0f: 0x6d398220,
-	0x19b10: 0x6d067a20, 0x19b11: 0x6d201420, 0x19b12: 0x6c011820, 0x19b13: 0x6c921620,
-	0x19b14: 0x6ca1c020, 0x19b15: 0x6c373420, 0x19b16: 0x6c94de20, 0x19b17: 0x6c305220,
-	0x19b18: 0x6c143020, 0x19b19: 0x6c1a9420, 0x19b1a: 0x6d0a6a20, 0x19b1b: 0x6c456220,
-	0x19b1c: 0x6d385620, 0x19b1d: 0x6d13ca20, 0x19b1e: 0x6cc78c20, 0x19b1f: 0x6c25a220,
-	0x19b20: 0x6cf98820, 0x19b21: 0x6cd88620, 0x19b22: 0x6d292c20, 0x19b23: 0x6c937820,
-	0x19b24: 0x6cdefc20, 0x19b25: 0x6c68ca20, 0x19b26: 0x6d312220, 0x19b27: 0x6c12ca20,
-	0x19b28: 0x6cbbd020, 0x19b29: 0x6c7b1220, 0x19b2a: 0x6c147020, 0x19b2b: 0x6ca95220,
-	0x19b2c: 0x6ca9b020, 0x19b2d: 0x6c6c8420, 0x19b2e: 0x6cf43220, 0x19b2f: 0x6c53ec20,
-	0x19b30: 0x6c6efe20, 0x19b31: 0x6c1a6420, 0x19b32: 0x6d321e20, 0x19b33: 0x6d428220,
-	0x19b34: 0x6c1e2620, 0x19b35: 0x6cbd1e20, 0x19b36: 0x6c937a20, 0x19b37: 0x6c70f820,
-	0x19b38: 0x6cd5a420, 0x19b39: 0x6ce6b420, 0x19b3a: 0x6cd09220, 0x19b3b: 0x6ce9f420,
-	0x19b3c: 0x6c0ec020, 0x19b3d: 0x6ca3e820, 0x19b3e: 0x6cfe8820, 0x19b3f: 0x6c0b8220,
-	// Block 0x66d, offset 0x19b40
-	0x19b40: 0x6ce9de20, 0x19b41: 0x6d222420, 0x19b42: 0x6cf85220, 0x19b43: 0x6c242e20,
-	0x19b44: 0x6c354e20, 0x19b45: 0x6cc01020, 0x19b46: 0x6d061620, 0x19b47: 0x6c4a1820,
-	0x19b48: 0x6c7a8420, 0x19b49: 0x6cf43420, 0x19b4a: 0x6c759620, 0x19b4b: 0x6d16da20,
-	0x19b4c: 0x6c3f4620, 0x19b4d: 0x6c894820, 0x19b4e: 0x6d410e20, 0x19b4f: 0x6cbc3020,
-	0x19b50: 0x6c859a20, 0x19b51: 0x6d1e1620, 0x19b52: 0x6c5d1c20, 0x19b53: 0x6c6e5220,
-	0x19b54: 0x6cba4220, 0x19b55: 0x6cca4820, 0x19b56: 0x6cadf420, 0x19b57: 0x6cda7220,
-	0x19b58: 0x6c3e0620, 0x19b59: 0x6cf59820, 0x19b5a: 0x6c850020, 0x19b5b: 0x6c3f4820,
-	0x19b5c: 0x6cb24a20, 0x19b5d: 0x6c05ea20, 0x19b5e: 0x6d20d220, 0x19b5f: 0x6cb59020,
-	0x19b60: 0x6cf99020, 0x19b61: 0x6d032220, 0x19b62: 0x6d04b620, 0x19b63: 0x6d222620,
-	0x19b64: 0x6c2c2420, 0x19b65: 0x6c17d020, 0x19b66: 0x6c1d9220, 0x19b67: 0x6d377c20,
-	0x19b68: 0x6d0d4e20, 0x19b69: 0x6c87e820, 0x19b6a: 0x6c859c20, 0x19b6b: 0x6c7ee420,
-	0x19b6c: 0x6cd8fc20, 0x19b6d: 0x6c656a20, 0x19b6e: 0x6d04b820, 0x19b6f: 0x6c3f5220,
-	0x19b70: 0x6c5daa20, 0x19b71: 0x6c721e20, 0x19b72: 0x6cffd820, 0x19b73: 0x6cabf620,
-	0x19b74: 0x6c666420, 0x19b75: 0x6c0c8c20, 0x19b76: 0x6c1f2020, 0x19b77: 0x6c3a9420,
-	0x19b78: 0x6c3cde20, 0x19b79: 0x6d0b8a20, 0x19b7a: 0x6c017a20, 0x19b7b: 0x6c06f820,
-	0x19b7c: 0x6d22ea20, 0x19b7d: 0x6d02bc20, 0x19b7e: 0x6c08ce20, 0x19b7f: 0x6c561620,
-	// Block 0x66e, offset 0x19b80
-	0x19b80: 0x6c166220, 0x19b81: 0x6d33be20, 0x19b82: 0x6c0e1020, 0x19b83: 0x6c6fe420,
-	0x19b84: 0x6d10de20, 0x19b85: 0x6c252020, 0x19b86: 0x6c87ea20, 0x19b87: 0x6cecf420,
-	0x19b88: 0x6c7ee620, 0x19b89: 0x6c122820, 0x19b8a: 0x6d401c20, 0x19b8b: 0x6c448220,
-	0x19b8c: 0x6c490a20, 0x19b8d: 0x6c06fa20, 0x19b8e: 0x6ce4dc20, 0x19b8f: 0x6cd4b420,
-	0x19b90: 0x6cd4b620, 0x19b91: 0x6c9b0420, 0x19b92: 0x6c2a0620, 0x19b93: 0x6cdfd420,
-	0x19b94: 0x6c740e20, 0x19b95: 0x6c20c220, 0x19b96: 0x6d041e20, 0x19b97: 0x6cae9420,
-	0x19b98: 0x6ce17020, 0x19b99: 0x6c548e20, 0x19b9a: 0x6d15da20, 0x19b9b: 0x6cb4d620,
-	0x19b9c: 0x6ce3de20, 0x19b9d: 0x6c421420, 0x19b9e: 0x6c6e5e20, 0x19b9f: 0x6c6bd620,
-	0x19ba0: 0x6cdbb220, 0x19ba1: 0x6c170a20, 0x19ba2: 0x6c6a9e20, 0x19ba3: 0x6c39ce20,
-	0x19ba4: 0x6d344420, 0x19ba5: 0x6c796c20, 0x19ba6: 0x6c734220, 0x19ba7: 0x6d3f7420,
-	0x19ba8: 0x6c722020, 0x19ba9: 0x6cba4620, 0x19baa: 0x6ca5c820, 0x19bab: 0x6c94e420,
-	0x19bac: 0x6d3cf420, 0x19bad: 0x6cf27e20, 0x19bae: 0x6c95a820, 0x19baf: 0x6cd91020,
-	0x19bb0: 0x6c839220, 0x19bb1: 0x6c5d1e20, 0x19bb2: 0x6c2fea20, 0x19bb3: 0x6d3f3620,
-	0x19bb4: 0x6c07aa20, 0x19bb5: 0x6cf43820, 0x19bb6: 0x6c722220, 0x19bb7: 0x6ca39e20,
-	0x19bb8: 0x6c112020, 0x19bb9: 0x6c657820, 0x19bba: 0x6d2d3820, 0x19bbb: 0x6d125a20,
-	0x19bbc: 0x6d344620, 0x19bbd: 0x6ccc4020, 0x19bbe: 0x6cbe3820, 0x19bbf: 0x6cbd1220,
-	// Block 0x66f, offset 0x19bc0
-	0x19bc0: 0x6d1ba420, 0x19bc1: 0x6c196620, 0x19bc2: 0x6c648020, 0x19bc3: 0x6d0d6220,
-	0x19bc4: 0x6cc85c20, 0x19bc5: 0x6d382420, 0x19bc6: 0x6c217620, 0x19bc7: 0x6c641220,
-	0x19bc8: 0x6c61da20, 0x19bc9: 0x6cefa820, 0x19bca: 0x6d224220, 0x19bcb: 0x6c0e1820,
-	0x19bcc: 0x6cc91620, 0x19bcd: 0x6ce31a20, 0x19bce: 0x6cee7020, 0x19bcf: 0x6cb0ee20,
-	0x19bd0: 0x6d0e5a20, 0x19bd1: 0x6c3c3a20, 0x19bd2: 0x6ce17220, 0x19bd3: 0x6cf2e020,
-	0x19bd4: 0x6c360620, 0x19bd5: 0x6d009a20, 0x19bd6: 0x6c17e820, 0x19bd7: 0x6cd13020,
-	0x19bd8: 0x6c76ca20, 0x19bd9: 0x6c2c3820, 0x19bda: 0x6d429620, 0x19bdb: 0x6c138e20,
-	0x19bdc: 0x6ce66c20, 0x19bdd: 0x6c070620, 0x19bde: 0x6d018820, 0x19bdf: 0x6c59b020,
-	0x19be0: 0x6d11a820, 0x19be1: 0x6d2e5420, 0x19be2: 0x6c1e2a20, 0x19be3: 0x6d0bec20,
-	0x19be4: 0x6d1f2820, 0x19be5: 0x6c666820, 0x19be6: 0x6d063a20, 0x19be7: 0x6d2bd220,
-	0x19be8: 0x6c220220, 0x19be9: 0x6c3fdc20, 0x19bea: 0x6c087020, 0x19beb: 0x6d35d420,
-	0x19bec: 0x6d3fea20, 0x19bed: 0x6c9e1620, 0x19bee: 0x6c601020, 0x19bef: 0x6d15e420,
-	0x19bf0: 0x6d018a20, 0x19bf1: 0x6d0a0420, 0x19bf2: 0x6c10f420, 0x19bf3: 0x6c329420,
-	0x19bf4: 0x6c12da20, 0x19bf5: 0x6d314c20, 0x19bf6: 0x6cab7c20, 0x19bf7: 0x6ce7d420,
-	0x19bf8: 0x6ce7d620, 0x19bf9: 0x6c070820, 0x19bfa: 0x6d28b220, 0x19bfb: 0x6c908420,
-	0x19bfc: 0x6c6aac20, 0x19bfd: 0x6cefaa20, 0x19bfe: 0x6c3bd620, 0x19bff: 0x6c16a020,
-	// Block 0x670, offset 0x19c00
-	0x19c00: 0x6c4a5220, 0x19c01: 0x6cda1420, 0x19c02: 0x6d361420, 0x19c03: 0x6cdab020,
-	0x19c04: 0x6cf96620, 0x19c05: 0x6c40b020, 0x19c06: 0x6d261420, 0x19c07: 0x6cc70420,
-	0x19c08: 0x6c860420, 0x19c09: 0x6caa6420, 0x19c0a: 0x6d282c20, 0x19c0b: 0x6c67a620,
-	0x19c0c: 0x6c96bc20, 0x19c0d: 0x6c056e20, 0x19c0e: 0x6c2cc820, 0x19c0f: 0x6ce0ee20,
-	0x19c10: 0x6c503c20, 0x19c11: 0x6c6ac220, 0x19c12: 0x6cf60820, 0x19c13: 0x6ccd8820,
-	0x19c14: 0x6cba5020, 0x19c15: 0x6c744020, 0x19c16: 0x6c122c20, 0x19c17: 0x6c1f3c20,
-	0x19c18: 0x6cca1820, 0x19c19: 0x6c071c20, 0x19c1a: 0x6cffe820, 0x19c1b: 0x6d1e3420,
-	0x19c1c: 0x6d10f220, 0x19c1d: 0x6ce09620, 0x19c1e: 0x6cdd1420, 0x19c1f: 0x6d101c20,
-	0x19c20: 0x6c37ea20, 0x19c21: 0x6c0e1c20, 0x19c22: 0x6c635a20, 0x19c23: 0x6c271820,
-	0x19c24: 0x6d293620, 0x19c25: 0x6ce17620, 0x19c26: 0x6c483820, 0x19c27: 0x6c0d3420,
-	0x19c28: 0x6c1ede20, 0x19c29: 0x6caabc20, 0x19c2a: 0x6c116c20, 0x19c2b: 0x6c82c820,
-	0x19c2c: 0x6c24ca20, 0x19c2d: 0x6d1d8820, 0x19c2e: 0x6d2a1420, 0x19c2f: 0x6d3ff620,
-	0x19c30: 0x6c07f420, 0x19c31: 0x6cd95e20, 0x19c32: 0x6c02ce20, 0x19c33: 0x6c1ffe20,
-	0x19c34: 0x6d226620, 0x19c35: 0x6d2d4220, 0x19c36: 0x6d40c220, 0x19c37: 0x6cce0620,
-	0x19c38: 0x6c208e20, 0x19c39: 0x6c6e8c20, 0x19c3a: 0x6c1c2c20, 0x19c3b: 0x6ccc3220,
-	0x19c3c: 0x6c4ecc20, 0x19c3d: 0x6d2eb820, 0x19c3e: 0x6cbe4c20, 0x19c3f: 0x6d0e8020,
-	// Block 0x671, offset 0x19c40
-	0x19c40: 0x6c2c6620, 0x19c41: 0x6d01bc20, 0x19c42: 0x6c909220, 0x19c43: 0x6c072020,
-	0x19c44: 0x6cb1b020, 0x19c45: 0x6c6c9420, 0x19c46: 0x6c88f020, 0x19c47: 0x6c926020,
-	0x19c48: 0x6c976620, 0x19c49: 0x6cb8ea20, 0x19c4a: 0x6cfaba20, 0x19c4b: 0x6ce09c20,
-	0x19c4c: 0x6d1c7a20, 0x19c4d: 0x6c307e20, 0x19c4e: 0x6d3bd220, 0x19c4f: 0x6cfe3c20,
-	0x19c50: 0x6ccd9220, 0x19c51: 0x6cbbe220, 0x19c52: 0x6c6f2220, 0x19c53: 0x6ce9e820,
-	0x19c54: 0x6d420620, 0x19c55: 0x6cb44220, 0x19c56: 0x6cf66020, 0x19c57: 0x6c815e20,
-	0x19c58: 0x6c16f020, 0x19c59: 0x6c49ec20, 0x19c5a: 0x6c89ec20, 0x19c5b: 0x6cb50420,
-	0x19c5c: 0x6c197820, 0x19c5d: 0x6c150820, 0x19c5e: 0x6cefee20, 0x19c5f: 0x6c5efe20,
-	0x19c60: 0x6c0e8220, 0x19c61: 0x6c5bf020, 0x19c62: 0x6c202420, 0x19c63: 0x6ce5fc20,
-	0x19c64: 0x6c289a20, 0x19c65: 0x6c691220, 0x19c66: 0x6c700a20, 0x19c67: 0x6ccbb820,
-	0x19c68: 0x6c3be020, 0x19c69: 0x6cfce620, 0x19c6a: 0x6c713c20, 0x19c6b: 0x6c366c20,
-	0x19c6c: 0x6c685820, 0x19c6d: 0x6c66a420, 0x19c6e: 0x6ce76420, 0x19c6f: 0x6c8c5620,
-	0x19c70: 0x6c0f2420, 0x19c71: 0x6c482220, 0x19c72: 0x6cfd5820, 0x19c73: 0x6cdade20,
-	0x19c74: 0x6cfce820, 0x19c75: 0x6c676e20, 0x19c76: 0x6c9fc020, 0x19c77: 0x6d130e20,
-	0x19c78: 0x6c6d3220, 0x19c79: 0x6c644e20, 0x19c7a: 0x6cbc5220, 0x19c7b: 0x6cb0b420,
-	0x19c7c: 0x6c3c6020, 0x19c7d: 0x6d394220, 0x19c7e: 0x6c00c020, 0x19c7f: 0x6cc9e820,
-	// Block 0x672, offset 0x19c80
-	0x19c80: 0x6d154220, 0x19c81: 0x6c75d220, 0x19c82: 0x6ca9be20, 0x19c83: 0x6c151620,
-	0x19c84: 0x6d184620, 0x19c85: 0x6c297c20, 0x19c86: 0x6c6e2420, 0x19c87: 0x6d07b620,
-	0x19c88: 0x6c7b3020, 0x19c89: 0x6c65c820, 0x19c8a: 0x6c1f6820, 0x19c8b: 0x6c27f420,
-	0x19c8c: 0x6c692020, 0x19c8d: 0x6ccc3420, 0x19c8e: 0x6d294020, 0x19c8f: 0x6c121820,
-	0x19c90: 0x6c0d5020, 0x19c91: 0x6c017220, 0x19c92: 0x6cc7c420, 0x19c93: 0x6cdf3c20,
-	0x19c94: 0x6c1dd820, 0x19c95: 0x6c148a20, 0x19c96: 0x6c7fb220, 0x19c97: 0x6ca64620,
-	0x19c98: 0x6c6cb420, 0x19c99: 0x6cba7020, 0x19c9a: 0x6c9b3420, 0x19c9b: 0x6cf47620,
-	0x19c9c: 0x6ca91820, 0x19c9d: 0x6cbf5a20, 0x19c9e: 0x6ca64820, 0x19c9f: 0x6c16c820,
-	0x19ca0: 0x6c8b2e20, 0x19ca1: 0x6c82dc20, 0x19ca2: 0x6c93b820, 0x19ca3: 0x6c7bd020,
-	0x19ca4: 0x6c066c20, 0x19ca5: 0x6d240420, 0x19ca6: 0x6c0c2a20, 0x19ca7: 0x6d297820,
-	0x19ca8: 0x6d349e20, 0x19ca9: 0x6cd8f220, 0x19caa: 0x6d1eb420, 0x19cab: 0x6c4fe820,
-	0x19cac: 0x6c193220, 0x19cad: 0x6c193620, 0x19cae: 0x6c86bc20, 0x19caf: 0x6ce2be20,
-	0x19cb0: 0x6cf02420, 0x19cb1: 0x6c903a20, 0x19cb2: 0x6c1eee20, 0x19cb3: 0x6c154020,
-	0x19cb4: 0x6cc4e020, 0x19cb5: 0x6cd51220, 0x19cb6: 0x6c5c8820, 0x19cb7: 0x6c874220,
-	0x19cb8: 0x6c956820, 0x19cb9: 0x6d298020, 0x19cba: 0x6caace20, 0x19cbb: 0x6ce18820,
-	0x19cbc: 0x6d0e1220, 0x19cbd: 0x6c829420, 0x19cbe: 0x6ca47c20, 0x19cbf: 0x6c372e20,
-	// Block 0x673, offset 0x19cc0
-	0x19cc0: 0x6cf49020, 0x19cc1: 0x6d27d220, 0x19cc2: 0x6d294a20, 0x19cc3: 0x6d252e20,
-	0x19cc4: 0x6d044a20, 0x19cc5: 0x6c1ca820, 0x19cc6: 0x6d2f9620, 0x19cc7: 0x6d044e20,
-	0x19cc8: 0x6cfa6e20, 0x19cc9: 0x6c49d020, 0x19cca: 0x6c332e20, 0x19ccb: 0x6c787820,
-	0x19ccc: 0x6c333020, 0x19ccd: 0x6c9dfe20, 0x19cce: 0x6ce91c20, 0x19ccf: 0x6c169420,
-	0x19cd0: 0x6c373220, 0x19cd1: 0x6c333220, 0x19cd2: 0x6c373620, 0x19cd3: 0x6c6c2c20,
-	0x19cd4: 0x6ce92020, 0x19cd5: 0x6cd87e20, 0x19cd6: 0x6d0d4420, 0x19cd7: 0x6d0d5020,
-	0x19cd8: 0x6cd2bc20, 0x19cda: 0x6c292a20, 0x19cdb: 0x6cb8c220,
-	0x19cdc: 0x6c30a820, 0x19cdd: 0x6c3b2820, 0x19cde: 0x6c98d620, 0x19cdf: 0x6ccfe220,
-	0x19ce0: 0x6c30aa20, 0x19ce2: 0x6c6dc620, 0x19ce3: 0x6c852e20,
-	0x19ce4: 0x6c5a2a20, 0x19ce5: 0x6cc80e20, 0x19ce6: 0x6cedd820, 0x19ce7: 0x6ca57e20,
-	0x19ce8: 0x6cc2b220, 0x19ce9: 0x6c898820, 0x19cea: 0x6d20d420, 0x19ceb: 0x6c030a20,
-	0x19cec: 0x6c454e20, 0x19ced: 0x6c8f2420, 0x19cee: 0x6cf55c20, 0x19cef: 0x6c4f4220,
-	0x19cf0: 0x6c7f8620, 0x19cf1: 0x6c460a20, 0x19cf2: 0x6ce45620, 0x19cf3: 0x6c490020,
-	0x19cf4: 0x6d041020, 0x19cf5: 0x6c0daa20, 0x19cf6: 0x6cb57a20, 0x19cf7: 0x6c720620,
-	0x19cf8: 0x6c2d0620, 0x19cf9: 0x6d3e0820, 0x19cfa: 0x6c3b2020, 0x19cfb: 0x6d100620,
-	0x19cfc: 0x6c647a20, 0x19cfd: 0x6cd45820, 0x19cfe: 0x6c621420, 0x19cff: 0x6d17da20,
-	// Block 0x674, offset 0x19d00
-	0x19d00: 0x6c627020, 0x19d01: 0x6c15ec20, 0x19d02: 0x6c6ed020, 0x19d03: 0x6c993e20,
-	0x19d04: 0x6cc4a620, 0x19d05: 0x6ca58020, 0x19d06: 0x6d253020, 0x19d07: 0x6c991c20,
-	0x19d08: 0x6c424c20, 0x19d09: 0x6cc4a820, 0x19d0a: 0x6c12c620, 0x19d0b: 0x6c6ed220,
-	0x19d0c: 0x6c12c820, 0x19d0d: 0x6d292620, 0x19d0e: 0x6c488820, 0x19d0f: 0x6c6ef020,
-	0x19d10: 0x6c994820, 0x19d11: 0x6d390820, 0x19d12: 0x6c994e20, 0x19d13: 0x6c46a020,
-	0x19d14: 0x6d063220, 0x19d15: 0x6c9e1820, 0x19d16: 0x6c9d1620, 0x19d17: 0x6cc6ec20,
-	0x19d18: 0x6d1a1a20, 0x19d19: 0x6d013e20, 0x19d1a: 0x6c76bc20, 0x19d1b: 0x6c755020,
-	0x19d1c: 0x6ca9ae20, 0x19d1d: 0x6d145a20, 0x19d1e: 0x6c9c3420, 0x19d1f: 0x6cd32820,
-	0x19d20: 0x6c490620, 0x19d21: 0x6c9b0e20, 0x19d22: 0x6d37ec20, 0x19d23: 0x6c722620,
-	0x19d24: 0x6d24d020, 0x19d25: 0x6c9ff220, 0x19d26: 0x6c79de20, 0x19d27: 0x6c8ba420,
-	0x19d28: 0x6c3fe020, 0x19d29: 0x6d014420, 0x19d2a: 0x6c9d7620, 0x19d2b: 0x6c0d9e20,
-	0x19d2c: 0x6c2fd820, 0x19d2d: 0x6cdf0c20, 0x19d2e: 0x6c425020, 0x19d2f: 0x6c3c9a20,
-	0x19d30: 0x6c0da620, 0x19d31: 0x6c564620, 0x19d32: 0x6c1caa20, 0x19d33: 0x6c73cc20,
-	0x19d34: 0x6c564820, 0x19d35: 0x6c7bdc20, 0x19d36: 0x6d12a220, 0x19d37: 0x6c839020,
-	0x19d38: 0x6cac9a20, 0x19d39: 0x6c3dd220, 0x19d3a: 0x6c9f8c20, 0x19d3b: 0x6c305020,
-	0x19d3c: 0x6cfbe620, 0x19d3d: 0x6c8ac620, 0x19d3e: 0x6cb84020, 0x19d3f: 0x6c646820,
-	// Block 0x675, offset 0x19d40
-	0x19d40: 0x6c6e4a20, 0x19d41: 0x6cd5a620, 0x19d42: 0x6c9a4c20, 0x19d43: 0x6ce88a20,
-	0x19d44: 0x6cb4d820, 0x19d45: 0x6c480220, 0x19d46: 0x6d3cda20, 0x19d47: 0x6cd91220,
-	0x19d48: 0x6c6e6020, 0x19d49: 0x6c894a20, 0x19d4a: 0x6cbec420, 0x19d4b: 0x6c2db820,
-	0x19d4c: 0x6c8cc420, 0x19d4d: 0x6c306c20, 0x19d4e: 0x6c421620, 0x19d4f: 0x6c658220,
-	0x19d50: 0x6d19c620, 0x19d51: 0x6c23ea20, 0x19d52: 0x6d14f220, 0x19d53: 0x6c860620,
-	0x19d54: 0x6c20a820, 0x19d55: 0x6ca03420, 0x19d56: 0x6d3ce820, 0x19d57: 0x6c24cc20,
-	0x19d58: 0x6cd7fe20, 0x19d59: 0x6c345c20, 0x19d5a: 0x6c6d3420, 0x19d5b: 0x6c8c2620,
-	0x19d5c: 0x6c8c2820, 0x19d5d: 0x6ca91a20, 0x19d5e: 0x6cf6b620, 0x19d5f: 0x6c31be20,
-	0x19d60: 0x6c610c20, 0x19d61: 0x6c387820, 0x19d62: 0x6c387a20, 0x19d63: 0x6c387c20,
-	0x19d64: 0x6c3cd620, 0x19d65: 0x6c704a20, 0x19d66: 0x6c1ed220, 0x19d67: 0x6d337a20,
-	0x19d68: 0x6c3c1420, 0x19d69: 0x6ca2c220, 0x19d6a: 0x6d377a20, 0x19d6b: 0x6c3dcc20,
-	0x19d6c: 0x6c3c1620, 0x19d6d: 0x6cb27220, 0x19d6e: 0x6c3c2020, 0x19d6f: 0x6c764420,
-	0x19d70: 0x6c59b220, 0x19d71: 0x6c765220, 0x19d72: 0x6c419a20, 0x19d73: 0x6c2ad820,
-	0x19d74: 0x6cb2bc20, 0x19d75: 0x6cb9ec20, 0x19d76: 0x6d044820, 0x19d77: 0x6c7b0a20,
-	0x19d78: 0x6ce83620, 0x19d79: 0x6c022420, 0x19d7a: 0x6c1e5020, 0x19d7b: 0x6c5e6820,
-	0x19d7c: 0x6c295020, 0x19d7d: 0x6c4dd220, 0x19d7e: 0x6c4dda20, 0x19d7f: 0x6d2a3420,
-	// Block 0x676, offset 0x19d80
-	0x19d80: 0x6c29b020, 0x19d81: 0x6c2da220, 0x19d82: 0x6c29b220, 0x19d83: 0x6cc5a020,
-	0x19d84: 0x6cc5a220, 0x19d85: 0x6c204a20, 0x19d86: 0x6c3b0820, 0x19d87: 0x6cbc9020,
-	0x19d88: 0x6d163e20, 0x19d89: 0x6c5e6a20, 0x19d8a: 0x6c76a020, 0x19d8b: 0x6cba3a20,
-	0x19d8c: 0x6c25ac20, 0x19d8d: 0x6c1e7220, 0x19d8e: 0x6cf1c620, 0x19d8f: 0x6c5e7220,
-	0x19d90: 0x6c281c20, 0x19d91: 0x6d03b820, 0x19d92: 0x6c577820, 0x19d93: 0x6cecb620,
-	0x19d94: 0x6c73ce20, 0x19d95: 0x6c839e20, 0x19d96: 0x6d267020, 0x19d97: 0x6c8abc20,
-	0x19d98: 0x6c8e3e20, 0x19d99: 0x6d2aa220, 0x19d9a: 0x6c425220, 0x19d9b: 0x6c209e20,
-	0x19d9c: 0x6c3dd420, 0x19d9d: 0x6c1e5420, 0x19d9e: 0x6cc26020, 0x19d9f: 0x6c704c20,
-	0x19da0: 0x6cccb820, 0x19da1: 0x6c9f8e20, 0x19da2: 0x6c8c9a20, 0x19da3: 0x6d378a20,
-	0x19da4: 0x6cac9c20, 0x19da5: 0x6c0cd820, 0x19da6: 0x6c6a6420, 0x19da7: 0x6c6a6620,
-	0x19da8: 0x6cad4420, 0x19da9: 0x6c857620, 0x19daa: 0x6cccba20, 0x19dab: 0x6c0cda20,
-	0x19dac: 0x6c158e20, 0x19dad: 0x6c6e0620, 0x19dae: 0x6c484420, 0x19daf: 0x6c44b820,
-	0x19db0: 0x6c2a0020, 0x19db1: 0x6c20a220, 0x19db2: 0x6c7c3220, 0x19db3: 0x6c7a2020,
-	0x19db4: 0x6c34ca20, 0x19db5: 0x6c37be20, 0x19db6: 0x6d358020, 0x19db7: 0x6cd64020,
-	0x19db8: 0x6cc36e20, 0x19db9: 0x6ccbce20, 0x19dba: 0x6c22b220, 0x19dbb: 0x6c787a20,
-	0x19dbc: 0x6c6a7620, 0x19dbd: 0x6c4b2a20, 0x19dbe: 0x6c22b420, 0x19dbf: 0x6c4b2c20,
-	// Block 0x677, offset 0x19dc0
-	0x19dc0: 0x6c764620, 0x19dc1: 0x6c34cc20, 0x19dc2: 0x6c619020, 0x19dc3: 0x6ce3d820,
-	0x19dc4: 0x6c6e1420, 0x19dc5: 0x6c907c20, 0x19dc6: 0x6c95a620, 0x19dc7: 0x6d2ab220,
-	0x19dc8: 0x6d24cc20, 0x19dc9: 0x6c260c20, 0x19dca: 0x6d08da20, 0x19dcb: 0x6c788220,
-	0x19dcc: 0x6c7e5a20, 0x19dcd: 0x6cb97820, 0x19dce: 0x6ccbd020, 0x19dcf: 0x6c20a420,
-	0x19dd0: 0x6c489420, 0x19dd1: 0x6c665820, 0x19dd2: 0x6c261020, 0x19dd3: 0x6c83aa20,
-	0x19dd4: 0x6ce2e820, 0x19dd5: 0x6c3a9620, 0x19dd6: 0x6cb3c620, 0x19dd7: 0x6c15a020,
-	0x19dd8: 0x6cb59c20, 0x19dd9: 0x6c20a620, 0x19dda: 0x6d3f3820, 0x19ddb: 0x6c426c20,
-	0x19ddc: 0x6cec8420, 0x19ddd: 0x6c0e5a20, 0x19dde: 0x6c5e9e20, 0x19ddf: 0x6c342220,
-	0x19de0: 0x6cbe7220, 0x19de1: 0x6ccd7420, 0x19de2: 0x6c316620, 0x19de3: 0x6c666a20,
-	0x19de4: 0x6c61c220, 0x19de5: 0x6c0e5c20, 0x19de6: 0x6d0be220, 0x19de7: 0x6c722820,
-	0x19de8: 0x6c5d5420, 0x19de9: 0x6cd16220, 0x19dea: 0x6c658420, 0x19deb: 0x6c344420,
-	0x19dec: 0x6c329620, 0x19ded: 0x6cf36220, 0x19dee: 0x6c489820, 0x19def: 0x6c3fe220,
-	0x19df0: 0x6cd15a20, 0x19df1: 0x6c667420, 0x19df2: 0x6c438c20, 0x19df3: 0x6c269420,
-	0x19df4: 0x6c765420, 0x19df5: 0x6c20aa20, 0x19df6: 0x6c1fe220, 0x19df7: 0x6c15bc20,
-	0x19df8: 0x6ce94e20, 0x19df9: 0x6c926220, 0x19dfa: 0x6c83de20, 0x19dfb: 0x6caf0a20,
-	0x19dfc: 0x6ccce820, 0x19dfd: 0x6cb15620, 0x19dfe: 0x6c79bc20, 0x19dff: 0x6c690220,
-	// Block 0x678, offset 0x19e00
-	0x19e00: 0x6c486620, 0x19e01: 0x6cbb8a20, 0x19e02: 0x6c747220, 0x19e03: 0x6c57a820,
-	0x19e04: 0x6d2be620, 0x19e05: 0x6d3df620, 0x19e06: 0x6c882a20, 0x19e07: 0x6c727420,
-	0x19e08: 0x6caf8420, 0x19e09: 0x6c8e8020, 0x19e0a: 0x6c4b5e20, 0x19e0b: 0x6c692220,
-	0x19e0c: 0x6c4b6020, 0x19e0d: 0x6c66b020, 0x19e0e: 0x6c66b220, 0x19e0f: 0x6ce0c820,
-	0x19e10: 0x6c5d5a20, 0x19e11: 0x6c627220, 0x19e12: 0x6c66cc20, 0x19e13: 0x6d187e20,
-	0x19e14: 0x6c66ce20, 0x19e15: 0x6d370020, 0x19e16: 0x6c154220, 0x19e17: 0x6c662020,
-	0x19e18: 0x6ca09820, 0x19e19: 0x6c84c820, 0x19e1a: 0x6d3a8c20, 0x19e1b: 0x6c855c20,
-	0x19e1c: 0x6d0b6220, 0x19e1d: 0x6cc36c20, 0x19e1e: 0x6c04da20, 0x19e1f: 0x6c455420,
-	0x19e20: 0x6c631620, 0x19e21: 0x6cf55220, 0x19e22: 0x6c971e20, 0x19e23: 0x6c8abe20,
-	0x19e24: 0x6c6cce20, 0x19e25: 0x6c792020, 0x19e26: 0x6d006420, 0x19e27: 0x6d34d220,
-	0x19e28: 0x6c304c20, 0x19e29: 0x6d3aa020, 0x19e2a: 0x6caa4a20, 0x19e2b: 0x6c6a6820,
-	0x19e2c: 0x6cc17420, 0x19e2d: 0x6ccec020, 0x19e2e: 0x6d167620, 0x19e2f: 0x6d398020,
-	0x19e30: 0x6ca0c020, 0x19e31: 0x6c857a20, 0x19e32: 0x6c6cd020, 0x19e33: 0x6c813e20,
-	0x19e34: 0x6c814020, 0x19e35: 0x6c733e20, 0x19e36: 0x6c79ce20, 0x19e37: 0x6d0f8620,
-	0x19e38: 0x6cebc620, 0x19e39: 0x6cffd420, 0x19e3a: 0x6ca1c220, 0x19e3b: 0x6c7b8420,
-	0x19e3c: 0x6c6a7a20, 0x19e3d: 0x6c8aca20, 0x19e3e: 0x6c50ba20, 0x19e3f: 0x6cd31420,
-	// Block 0x679, offset 0x19e40
-	0x19e40: 0x6c788420, 0x19e41: 0x6c6ce020, 0x19e42: 0x6c433620, 0x19e43: 0x6c0ec220,
-	0x19e44: 0x6c9f9820, 0x19e45: 0x6c1bf420, 0x19e46: 0x6c80a020, 0x19e47: 0x6d1e1820,
-	0x19e48: 0x6d1e1a20, 0x19e49: 0x6c9e0c20, 0x19e4a: 0x6c788620, 0x19e4b: 0x6d099220,
-	0x19e4c: 0x6c734420, 0x19e4d: 0x6cbe7420, 0x19e4e: 0x6c922820, 0x19e4f: 0x6c107c20,
-	0x19e50: 0x6c9bcc20, 0x19e51: 0x6c1c0420, 0x19e52: 0x6c823c20, 0x19e53: 0x6c768620,
-	0x19e54: 0x6c9e1a20, 0x19e55: 0x6c307220, 0x19e56: 0x6d06b420, 0x19e57: 0x6d06ba20,
-	0x19e58: 0x6c76a620, 0x19e59: 0x6cf55620, 0x19e5a: 0x6d175020, 0x19e5b: 0x6d099820,
-	0x19e5c: 0x6cf24a20, 0x19e5d: 0x6cd16420, 0x19e5e: 0x6c815620, 0x19e5f: 0x6ca28420,
-	0x19e60: 0x6c926420, 0x19e61: 0x6cb1b220, 0x19e62: 0x6cd39620, 0x19e63: 0x6c5ee220,
-	0x19e64: 0x6cbd7c20, 0x19e65: 0x6c67ee20, 0x19e66: 0x6c174c20, 0x19e67: 0x6cc37420,
-	0x19e68: 0x6cfe3e20, 0x19e69: 0x6d181c20, 0x19e6a: 0x6c747620, 0x19e6b: 0x6c385220,
-	0x19e6c: 0x6c72fa20, 0x19e6d: 0x6ce76620, 0x19e6e: 0x6c727620, 0x19e6f: 0x6c27f620,
-	0x19e70: 0x6d00d620, 0x19e71: 0x6c973820, 0x19e72: 0x6d09a420, 0x19e73: 0x6d09a820,
-	0x19e74: 0x6c940220, 0x19e75: 0x6c867020, 0x19e76: 0x6c184e20, 0x19e77: 0x6cc4e220,
-	0x19e78: 0x6cc37c20, 0x19e79: 0x6c059c20, 0x19e7a: 0x6cce9420, 0x19e7b: 0x6d277620,
-	0x19e7c: 0x6c6f4220, 0x19e7d: 0x6c062c20, 0x19e7e: 0x6c463220, 0x19e7f: 0x6cf49220,
-	// Block 0x67a, offset 0x19e80
-	0x19e80: 0x6d277820, 0x19e81: 0x6cf17820, 0x19e82: 0x6c0ade20, 0x19e83: 0x6c412220,
-	0x19e84: 0x6c412420, 0x19e85: 0x6c059e20, 0x19e86: 0x6c22f420, 0x19e87: 0x6d198a20,
-	0x19e88: 0x6d045020, 0x19e89: 0x6cae5020, 0x19e8a: 0x6c705020, 0x19e8b: 0x6ce20420,
-	0x19e8c: 0x6c43c620, 0x19e8d: 0x6cb42c20, 0x19e8e: 0x6c35f820, 0x19e8f: 0x6cad5a20,
-	0x19e90: 0x6c3e4820, 0x19e91: 0x6c458820, 0x19e92: 0x6c269620, 0x19e93: 0x6c6fee20,
-	0x19e94: 0x6cbef220, 0x19e95: 0x6c08aa20, 0x19e96: 0x6c577620, 0x19e97: 0x6c06c620,
-	0x19e98: 0x6ca4ea20, 0x19e99: 0x6cd41420, 0x19e9a: 0x6c397e20, 0x19e9b: 0x6c6fc620,
-	0x19e9c: 0x6d144c20, 0x19e9d: 0x6d288020, 0x19e9e: 0x6c67d020, 0x19e9f: 0x6c777820,
-	0x19ea0: 0x6c681820, 0x19ea1: 0x6c7b8020, 0x19ea2: 0x6c549220, 0x19ea3: 0x6cf98420,
-	0x19ea4: 0x6cc0ce20, 0x19ea5: 0x6c0b6820, 0x19ea6: 0x6c4ac620, 0x19ea7: 0x6cbc9c20,
-	0x19ea8: 0x6d29d020, 0x19ea9: 0x6c7b8a20, 0x19eaa: 0x6c3a4c20, 0x19eab: 0x6c54b420,
-	0x19eac: 0x6d224620, 0x19ead: 0x6c4aee20, 0x19eae: 0x6c7cf020, 0x19eaf: 0x6c5bd220,
-	0x19eb0: 0x6c27ea20, 0x19eb1: 0x6c4b5c20, 0x19eb2: 0x6c881a20, 0x19eb3: 0x6c882c20,
-	0x19eb4: 0x6cdb9420, 0x19eb5: 0x6c31c220, 0x19eb6: 0x6c703420, 0x19eb7: 0x6c74fa20,
-	0x19eb8: 0x6cf83420, 0x19eb9: 0x6cb04020, 0x19eba: 0x6cc0c420, 0x19ebb: 0x6d13c020,
-	0x19ebc: 0x6c77d420, 0x19ebd: 0x6d0d5220, 0x19ebe: 0x6c0b3220, 0x19ebf: 0x6ca68c20,
-	// Block 0x67b, offset 0x19ec0
-	0x19ec0: 0x6cc0f820, 0x19ec1: 0x6cd22420, 0x19ec2: 0x6d0a6020, 0x19ec3: 0x6cb88c20,
-	0x19ec4: 0x6ca75420, 0x19ec5: 0x6cc96220, 0x19ec6: 0x6d40a220, 0x19ec7: 0x6cd0d020,
-	0x19ec8: 0x6cf41620, 0x19ec9: 0x6c5b8420, 0x19eca: 0x6c04dc20, 0x19ecb: 0x6cd2fa20,
-	0x19ecc: 0x6cf83620, 0x19ecd: 0x6ced6a20, 0x19ece: 0x6c572420, 0x19ecf: 0x6d006620,
-	0x19ed0: 0x6ced6c20, 0x19ed1: 0x6c068e20, 0x19ed2: 0x6d40a820, 0x19ed3: 0x6d3cee20,
-	0x19ed4: 0x6d007020, 0x19ed5: 0x6c27ba20, 0x19ed6: 0x6c972820, 0x19ed7: 0x6ca3ea20,
-	0x19ed8: 0x6c27c020, 0x19ed9: 0x6c601220, 0x19eda: 0x6c0efe20, 0x19edb: 0x6cd67c20,
-	0x19edc: 0x6c100420, 0x19edd: 0x6c7bd420, 0x19ede: 0x6c0b6420, 0x19edf: 0x6c102a20,
-	0x19ee0: 0x6d2e4620, 0x19ee1: 0x6c761820, 0x19ee2: 0x6c913020, 0x19ee3: 0x6d1f9c20,
-	0x19ee4: 0x6c91b420, 0x19ee5: 0x6cf58420, 0x19ee6: 0x6c48a620, 0x19ee7: 0x6cf2d420,
-	0x19ee8: 0x6d017620, 0x19ee9: 0x6c6a4e20, 0x19eea: 0x6c6a5020, 0x19eeb: 0x6cf06820,
-	0x19eec: 0x6c01f020, 0x19eed: 0x6cbef420, 0x19eee: 0x6d338020, 0x19eef: 0x6c991e20,
-	0x19ef0: 0x6d1b3620, 0x19ef1: 0x6cee6620, 0x19ef2: 0x6ccec420, 0x19ef3: 0x6c5fd220,
-	0x19ef4: 0x6cc3a020, 0x19ef5: 0x6c948c20, 0x19ef6: 0x6c1b7c20, 0x19ef7: 0x6c731020,
-	0x19ef8: 0x6d016a20, 0x19ef9: 0x6d067e20, 0x19efa: 0x6c6c8620, 0x19efb: 0x6cc3a620,
-	0x19efc: 0x6cf4be20, 0x19efd: 0x6c5fec20, 0x19efe: 0x6c360a20, 0x19eff: 0x6cbe3a20,
-	// Block 0x67c, offset 0x19f00
-	0x19f00: 0x6cf63820, 0x19f01: 0x6cca6620, 0x19f02: 0x6c16e020, 0x19f03: 0x6cef8020,
-	0x19f04: 0x6c35c020, 0x19f05: 0x6ce62220, 0x19f06: 0x6c856020, 0x19f07: 0x6d300c20,
-	0x19f08: 0x6c4e4e20, 0x19f09: 0x6c856420, 0x19f0a: 0x6d0b4620, 0x19f0b: 0x6d0ac820,
-	0x19f0c: 0x6d0e3620, 0x19f0d: 0x6ccf3020, 0x19f0e: 0x6c2bca20, 0x19f0f: 0x6d2c7020,
-	0x19f10: 0x6cacf020, 0x19f11: 0x6d0b0c20, 0x19f12: 0x6c50bc20, 0x19f13: 0x6d0b1620,
-	0x19f14: 0x6d358220, 0x19f15: 0x6c12cc20, 0x19f16: 0x6cacf620, 0x19f17: 0x6ce31020,
-	0x19f18: 0x6c83a420, 0x19f19: 0x6ccf3820, 0x19f1a: 0x6c546020, 0x19f1b: 0x6ce63420,
-	0x19f1c: 0x6d416820, 0x19f1d: 0x6c261220, 0x19f1e: 0x6c3a9820, 0x19f1f: 0x6d254c20,
-	0x19f20: 0x6c12dc20, 0x19f21: 0x6d255e20, 0x19f22: 0x6cfd6a20, 0x19f23: 0x6d0d6420,
-	0x19f24: 0x6c860c20, 0x19f25: 0x6c744220, 0x19f26: 0x6ccc5020, 0x19f27: 0x6c2cca20,
-	0x19f28: 0x6c1e7c20, 0x19f29: 0x6c6ff020, 0x19f2a: 0x6c6c9620, 0x19f2b: 0x6c024620,
-	0x19f2c: 0x6c4b1020, 0x19f2d: 0x6d0e9020, 0x19f2e: 0x6cd80020, 0x19f2f: 0x6c862620,
-	0x19f30: 0x6c16f220, 0x19f31: 0x6c7faa20, 0x19f32: 0x6c864620, 0x19f33: 0x6d0cd020,
-	0x19f34: 0x6d0df620, 0x19f35: 0x6d25dc20, 0x19f36: 0x6cd7b420, 0x19f37: 0x6c455020,
-	0x19f38: 0x6c8b9c20, 0x19f39: 0x6cc73e20, 0x19f3a: 0x6cc25a20, 0x19f3b: 0x6cc25c20,
-	0x19f3c: 0x6c377c20, 0x19f3d: 0x6c82b020, 0x19f3e: 0x6c315e20, 0x19f3f: 0x6cfc7420,
-	// Block 0x67d, offset 0x19f40
-	0x19f40: 0x6d3b6e20, 0x19f41: 0x6cc9fa20, 0x19f42: 0x6c115a20, 0x19f43: 0x6c115e20,
-	0x19f44: 0x6c116020, 0x19f45: 0x6c116620, 0x19f46: 0x6c00b420, 0x19f47: 0x6c278620,
-	0x19f48: 0x6d200420, 0x19f49: 0x6c137220, 0x19f4a: 0x6c5fb820, 0x19f4b: 0x6d206820,
-	0x19f4c: 0x6cd6a020, 0x19f4d: 0x6c390020, 0x19f4e: 0x6cd42620, 0x19f4f: 0x6c48e420,
-	0x19f50: 0x6c035c20, 0x19f51: 0x6c37e220, 0x19f52: 0x6cc91020, 0x19f53: 0x6cd30820,
-	0x19f54: 0x6cd4a620, 0x19f55: 0x6d3d2a20, 0x19f56: 0x6cc23c20, 0x19f57: 0x6cd45220,
-	0x19f58: 0x6c0b7a20, 0x19f59: 0x6d068a20, 0x19f5a: 0x6c640420, 0x19f5b: 0x6cacaa20,
-	0x19f5c: 0x6cda0c20, 0x19f5d: 0x6c433820, 0x19f5e: 0x6cf08020, 0x19f5f: 0x6cda0e20,
-	0x19f60: 0x6c2ebc20, 0x19f61: 0x6cc8e220, 0x19f62: 0x6c23bc20, 0x19f63: 0x6c79c820,
-	0x19f64: 0x6c475020, 0x19f65: 0x6c71ea20, 0x19f66: 0x6c8e1a20, 0x19f67: 0x6c488a20,
-	0x19f68: 0x6c29b420, 0x19f69: 0x6c79d420, 0x19f6a: 0x6d34ce20, 0x19f6b: 0x6c697a20,
-	0x19f6c: 0x6d2f9420, 0x19f6d: 0x6c03e820, 0x19f6e: 0x6c2f4420, 0x19f6f: 0x6c785220,
-	0x19f70: 0x6cdf0e20, 0x19f71: 0x6c1bd620, 0x19f72: 0x6cd2a420, 0x19f73: 0x6d200820,
-	0x19f74: 0x6cbfee20, 0x19f75: 0x6cb34620, 0x19f76: 0x6d12ba20, 0x19f77: 0x6c500e20,
-	0x19f78: 0x6cd7bc20, 0x19f79: 0x6ce08a20, 0x19f7a: 0x6c1b7220, 0x19f7b: 0x6c820a20,
-	0x19f7c: 0x6c2daa20, 0x19f7d: 0x6c5e6c20, 0x19f7e: 0x6c8a5c20, 0x19f7f: 0x6c529020,
-	// Block 0x67e, offset 0x19f80
-	0x19f80: 0x6c9ebe20, 0x19f81: 0x6d056020, 0x19f82: 0x6c982420, 0x19f83: 0x6c1a9020,
-	0x19f84: 0x6c447c20, 0x19f85: 0x6d077820, 0x19f86: 0x6d108620, 0x19f87: 0x6d3ed820,
-	0x19f88: 0x6c50b620, 0x19f89: 0x6c5fc220, 0x19f8a: 0x6c2e0820, 0x19f8b: 0x6c25b220,
-	0x19f8c: 0x6ce70c20, 0x19f8d: 0x6c9fe620, 0x19f8e: 0x6c545a20, 0x19f8f: 0x6c856e20,
-	0x19f90: 0x6ce91620, 0x19f91: 0x6cfe1620, 0x19f92: 0x6d2bc220, 0x19f93: 0x6cfa2a20,
-	0x19f94: 0x6d12a020, 0x19f95: 0x6c937420, 0x19f96: 0x6d0aca20, 0x19f97: 0x6c96ee20,
-	0x19f98: 0x6cab7420, 0x19f99: 0x6c5d5220, 0x19f9a: 0x6d13c220, 0x19f9b: 0x6c755420,
-	0x19f9c: 0x6c1e1c20, 0x19f9d: 0x6c8c4420, 0x19f9e: 0x6cea1620, 0x19f9f: 0x6d1a2420,
-	0x19fa0: 0x6c3a7e20, 0x19fa1: 0x6c08b820, 0x19fa2: 0x6cbdfe20, 0x19fa3: 0x6cbe0020,
-	0x19fa4: 0x6c6ba820, 0x19fa5: 0x6c105c20, 0x19fa6: 0x6c3d1c20, 0x19fa7: 0x6c03ea20,
-	0x19fa8: 0x6c339620, 0x19fa9: 0x6c3b0c20, 0x19faa: 0x6c354820, 0x19fab: 0x6c4dce20,
-	0x19fac: 0x6ce62c20, 0x19fad: 0x6c792420, 0x19fae: 0x6cd74620, 0x19faf: 0x6cb6d020,
-	0x19fb0: 0x6c52f020, 0x19fb1: 0x6d338620, 0x19fb2: 0x6d1aca20, 0x19fb3: 0x6cf3a020,
-	0x19fb4: 0x6cf3a220, 0x19fb5: 0x6c178c20, 0x19fb6: 0x6ca55820, 0x19fb7: 0x6d093c20,
-	0x19fb8: 0x6cf56a20, 0x19fb9: 0x6c20b420, 0x19fba: 0x6c309e20, 0x19fbb: 0x6cf1c820,
-	0x19fbc: 0x6c544820, 0x19fbd: 0x6c529220, 0x19fbe: 0x6cf3a420, 0x19fbf: 0x6c433220,
-	// Block 0x67f, offset 0x19fc0
-	0x19fc0: 0x6d0bda20, 0x19fc1: 0x6c759420, 0x19fc2: 0x6c937620, 0x19fc3: 0x6c35d020,
-	0x19fc4: 0x6c43c020, 0x19fc5: 0x6c99ce20, 0x19fc6: 0x6c270420, 0x19fc7: 0x6cb6d220,
-	0x19fc8: 0x6c19b620, 0x19fc9: 0x6cf3a620, 0x19fca: 0x6c433420, 0x19fcb: 0x6c3d3820,
-	0x19fcc: 0x6c698020, 0x19fcd: 0x6c529420, 0x19fce: 0x6c1b7820, 0x19fcf: 0x6cd0da20,
-	0x19fd0: 0x6ca55a20, 0x19fd1: 0x6cea1820, 0x19fd2: 0x6c3f3220, 0x19fd3: 0x6d167820,
-	0x19fd4: 0x6c270620, 0x19fd5: 0x6cab7620, 0x19fd6: 0x6c857c20, 0x19fd7: 0x6c077620,
-	0x19fd8: 0x6d253820, 0x19fd9: 0x6c4c0e20, 0x19fda: 0x6cf21a20, 0x19fdb: 0x6cba9c20,
-	0x19fdc: 0x6cf35020, 0x19fdd: 0x6c35da20, 0x19fde: 0x6cd19820, 0x19fdf: 0x6c731220,
-	0x19fe0: 0x6cae4620, 0x19fe1: 0x6cf1ce20, 0x19fe2: 0x6ca55c20, 0x19fe3: 0x6c965a20,
-	0x19fe4: 0x6c8e1c20, 0x19fe5: 0x6cc46020, 0x19fe6: 0x6d1e9420, 0x19fe7: 0x6c2bd420,
-	0x19fe8: 0x6d385a20, 0x19fe9: 0x6cd31620, 0x19fea: 0x6d38fa20, 0x19feb: 0x6ce60e20,
-	0x19fec: 0x6cf84420, 0x19fed: 0x6d16a820, 0x19fee: 0x6cb74220, 0x19fef: 0x6cb27420,
-	0x19ff0: 0x6d3ef420, 0x19ff1: 0x6c46ea20, 0x19ff2: 0x6c21f420, 0x19ff3: 0x6cf07220,
-	0x19ff4: 0x6d062a20, 0x19ff5: 0x6c000420, 0x19ff6: 0x6ca49220, 0x19ff7: 0x6c40be20,
-	0x19ff8: 0x6cadac20, 0x19ff9: 0x6d16aa20, 0x19ffa: 0x6cfe8220, 0x19ffb: 0x6ccfa820,
-	0x19ffc: 0x6c549820, 0x19ffd: 0x6ca04020, 0x19ffe: 0x6c267a20, 0x19fff: 0x6cc26220,
-	// Block 0x680, offset 0x1a000
-	0x1a000: 0x6c71a220, 0x1a001: 0x6c4dd420, 0x1a002: 0x6d288820, 0x1a003: 0x6ceaa820,
-	0x1a004: 0x6c341a20, 0x1a005: 0x6cb3ec20, 0x1a006: 0x6cad4620, 0x1a007: 0x6c0cdc20,
-	0x1a008: 0x6c3de020, 0x1a009: 0x6d0f4420, 0x1a00a: 0x6c50be20, 0x1a00b: 0x6d28e820,
-	0x1a00c: 0x6c50c020, 0x1a00d: 0x6c4d0c20, 0x1a00e: 0x6c6fd420, 0x1a00f: 0x6d1e1220,
-	0x1a010: 0x6c40aa20, 0x1a011: 0x6c264020, 0x1a012: 0x6d38fc20, 0x1a013: 0x6cec1220,
-	0x1a014: 0x6c760c20, 0x1a015: 0x6c483220, 0x1a016: 0x6c760e20, 0x1a017: 0x6d42b820,
-	0x1a018: 0x6c106020, 0x1a019: 0x6c8f6a20, 0x1a01a: 0x6c2fda20, 0x1a01b: 0x6ca8f420,
-	0x1a01c: 0x6cdefe20, 0x1a01d: 0x6cd7c820, 0x1a01e: 0x6cfc7820, 0x1a01f: 0x6c5da420,
-	0x1a020: 0x6cb75020, 0x1a021: 0x6c37c020, 0x1a022: 0x6c35e420, 0x1a023: 0x6c49da20,
-	0x1a024: 0x6d2cb220, 0x1a025: 0x6cf85420, 0x1a026: 0x6d148a20, 0x1a027: 0x6c8b9220,
-	0x1a028: 0x6d3e0a20, 0x1a029: 0x6c9ec020, 0x1a02a: 0x6c9c2e20, 0x1a02b: 0x6d34fa20,
-	0x1a02c: 0x6d119420, 0x1a02d: 0x6c5e9220, 0x1a02e: 0x6d390a20, 0x1a02f: 0x6c437820,
-	0x1a030: 0x6cd5a820, 0x1a031: 0x6d295e20, 0x1a032: 0x6cffd620, 0x1a033: 0x6c4d0e20,
-	0x1a034: 0x6c5a8e20, 0x1a035: 0x6c7ad420, 0x1a036: 0x6c580c20, 0x1a037: 0x6ce20820,
-	0x1a038: 0x6cfb3020, 0x1a039: 0x6c35e620, 0x1a03a: 0x6d084220, 0x1a03b: 0x6d04ba20,
-	0x1a03c: 0x6c4c1020, 0x1a03d: 0x6d0e4220, 0x1a03e: 0x6c81a020, 0x1a03f: 0x6d13ce20,
-	// Block 0x681, offset 0x1a040
-	0x1a040: 0x6c001620, 0x1a041: 0x6cb23820, 0x1a042: 0x6cd04a20, 0x1a043: 0x6ce72020,
-	0x1a044: 0x6c529a20, 0x1a045: 0x6d045c20, 0x1a046: 0x6c341c20, 0x1a047: 0x6cec4c20,
-	0x1a048: 0x6c4cf820, 0x1a049: 0x6d28f820, 0x1a04a: 0x6d201e20, 0x1a04b: 0x6c2f3020,
-	0x1a04c: 0x6cac1c20, 0x1a04d: 0x6cfddc20, 0x1a04e: 0x6c001420, 0x1a04f: 0x6c449c20,
-	0x1a050: 0x6c7b8c20, 0x1a051: 0x6d0b4a20, 0x1a052: 0x6c264220, 0x1a053: 0x6cfe8a20,
-	0x1a054: 0x6c094220, 0x1a055: 0x6c5b9620, 0x1a056: 0x6ca77420, 0x1a057: 0x6c570a20,
-	0x1a058: 0x6d044220, 0x1a059: 0x6c7b1820, 0x1a05a: 0x6c347620, 0x1a05b: 0x6c3b1c20,
-	0x1a05c: 0x6c619c20, 0x1a05d: 0x6ca9b220, 0x1a05e: 0x6ca1ba20, 0x1a05f: 0x6d1d7620,
-	0x1a060: 0x6c502420, 0x1a061: 0x6d254e20, 0x1a062: 0x6c905620, 0x1a063: 0x6cb3ee20,
-	0x1a064: 0x6c984820, 0x1a065: 0x6c438020, 0x1a066: 0x6cab2820, 0x1a067: 0x6c1a9a20,
-	0x1a068: 0x6ccece20, 0x1a069: 0x6c87dc20, 0x1a06a: 0x6ca2f420, 0x1a06b: 0x6d40ae20,
-	0x1a06c: 0x6c50ea20, 0x1a06d: 0x6c7a3420, 0x1a06e: 0x6cfe9220, 0x1a06f: 0x6cfc9a20,
-	0x1a070: 0x6c814820, 0x1a071: 0x6c0e5e20, 0x1a072: 0x6d302c20, 0x1a073: 0x6d2bd020,
-	0x1a074: 0x6c89ac20, 0x1a075: 0x6c033620, 0x1a076: 0x6c9ec220, 0x1a077: 0x6c8ae220,
-	0x1a078: 0x6cdbb420, 0x1a079: 0x6c3e2a20, 0x1a07a: 0x6c103420, 0x1a07b: 0x6c4e9020,
-	0x1a07c: 0x6c524620, 0x1a07d: 0x6c44f220, 0x1a07e: 0x6cd76820, 0x1a07f: 0x6c447420,
-	// Block 0x682, offset 0x1a080
-	0x1a080: 0x6d203620, 0x1a081: 0x6d0e4c20, 0x1a082: 0x6c46fc20, 0x1a083: 0x6c477020,
-	0x1a084: 0x6c077820, 0x1a085: 0x6c4dec20, 0x1a086: 0x6cdd0c20, 0x1a087: 0x6c213820,
-	0x1a088: 0x6d171c20, 0x1a089: 0x6c001820, 0x1a08a: 0x6c63ae20, 0x1a08b: 0x6ce84620,
-	0x1a08c: 0x6cfb3220, 0x1a08d: 0x6cecf620, 0x1a08e: 0x6c85c420, 0x1a08f: 0x6cf5b220,
-	0x1a090: 0x6ce0e820, 0x1a091: 0x6d428a20, 0x1a092: 0x6cc02420, 0x1a093: 0x6c17d420,
-	0x1a094: 0x6cf3ac20, 0x1a095: 0x6d2a6e20, 0x1a096: 0x6d0b4c20, 0x1a097: 0x6c30a420,
-	0x1a098: 0x6cb6e420, 0x1a099: 0x6c2b6020, 0x1a09a: 0x6cbe0c20, 0x1a09b: 0x6c96ba20,
-	0x1a09c: 0x6ca0ee20, 0x1a09d: 0x6c461220, 0x1a09e: 0x6c30e620, 0x1a09f: 0x6cc26c20,
-	0x1a0a0: 0x6c814a20, 0x1a0a1: 0x6c898c20, 0x1a0a2: 0x6cdd5420, 0x1a0a3: 0x6d2a7020,
-	0x1a0a4: 0x6c58fe20, 0x1a0a5: 0x6c813620, 0x1a0a6: 0x6ccbd620, 0x1a0a7: 0x6c5ea020,
-	0x1a0a8: 0x6d426820, 0x1a0a9: 0x6cf28420, 0x1a0aa: 0x6c3cca20, 0x1a0ab: 0x6c6cfc20,
-	0x1a0ac: 0x6c56fc20, 0x1a0ad: 0x6cb77620, 0x1a0ae: 0x6cd45c20, 0x1a0af: 0x6ceefa20,
-	0x1a0b0: 0x6cd64420, 0x1a0b1: 0x6c171020, 0x1a0b2: 0x6c374e20, 0x1a0b3: 0x6c85e620,
-	0x1a0b4: 0x6cbb5620, 0x1a0b5: 0x6c017e20, 0x1a0b6: 0x6d2ab620, 0x1a0b7: 0x6d1d7820,
-	0x1a0b8: 0x6ca75e20, 0x1a0b9: 0x6d208420, 0x1a0ba: 0x6ce4e620, 0x1a0bb: 0x6c7f4420,
-	0x1a0bc: 0x6ccc4220, 0x1a0bd: 0x6cf5d820, 0x1a0be: 0x6ceba020, 0x1a0bf: 0x6c54b820,
-	// Block 0x683, offset 0x1a0c0
-	0x1a0c0: 0x6c003c20, 0x1a0c1: 0x6d2f6420, 0x1a0c2: 0x6caa1420, 0x1a0c3: 0x6c790220,
-	0x1a0c4: 0x6d3d4420, 0x1a0c5: 0x6d3d4620, 0x1a0c6: 0x6cce0220, 0x1a0c7: 0x6c2c3a20,
-	0x1a0c8: 0x6c524a20, 0x1a0c9: 0x6c8ba820, 0x1a0ca: 0x6c001020, 0x1a0cb: 0x6c112220,
-	0x1a0cc: 0x6cfd6c20, 0x1a0cd: 0x6cea1e20, 0x1a0ce: 0x6cf43e20, 0x1a0cf: 0x6cf20620,
-	0x1a0d0: 0x6c253020, 0x1a0d1: 0x6ccc4420, 0x1a0d2: 0x6c477a20, 0x1a0d3: 0x6cb6ec20,
-	0x1a0d4: 0x6cb6ee20, 0x1a0d5: 0x6ce21620, 0x1a0d6: 0x6c287420, 0x1a0d7: 0x6c287620,
-	0x1a0d8: 0x6d12e620, 0x1a0d9: 0x6d3f1020, 0x1a0da: 0x6c08d820, 0x1a0db: 0x6c253220,
-	0x1a0dc: 0x6c1fc220, 0x1a0dd: 0x6c510220, 0x1a0de: 0x6d0b5020, 0x1a0df: 0x6cb6f420,
-	0x1a0e0: 0x6d304820, 0x1a0e1: 0x6c39f620, 0x1a0e2: 0x6c898e20, 0x1a0e3: 0x6cfb5820,
-	0x1a0e4: 0x6cafd820, 0x1a0e5: 0x6ccc4620, 0x1a0e6: 0x6c7ed420, 0x1a0e7: 0x6d2ab820,
-	0x1a0e8: 0x6d1baa20, 0x1a0e9: 0x6c48ae20, 0x1a0ea: 0x6cabc220, 0x1a0eb: 0x6d30d620,
-	0x1a0ec: 0x6ccb2020, 0x1a0ed: 0x6d3bc220, 0x1a0ee: 0x6ca81020, 0x1a0ef: 0x6c4cf620,
-	0x1a0f0: 0x6c953020, 0x1a0f1: 0x6d0bf020, 0x1a0f2: 0x6c2c3c20, 0x1a0f3: 0x6cc2d220,
-	0x1a0f4: 0x6c15a420, 0x1a0f5: 0x6c100620, 0x1a0f6: 0x6c2fa020, 0x1a0f7: 0x6c809e20,
-	0x1a0f8: 0x6cffe420, 0x1a0f9: 0x6c710c20, 0x1a0fa: 0x6ce0f220, 0x1a0fb: 0x6c1c1a20,
-	0x1a0fc: 0x6ce31e20, 0x1a0fd: 0x6c016c20, 0x1a0fe: 0x6c6f7020, 0x1a0ff: 0x6c288620,
-	// Block 0x684, offset 0x1a100
-	0x1a100: 0x6c761020, 0x1a101: 0x6d1df420, 0x1a102: 0x6cf08a20, 0x1a103: 0x6ca3fc20,
-	0x1a104: 0x6ccd8a20, 0x1a105: 0x6d232a20, 0x1a106: 0x6d305820, 0x1a107: 0x6c7e6220,
-	0x1a108: 0x6c6a0820, 0x1a109: 0x6c53f820, 0x1a10a: 0x6c4e5820, 0x1a10b: 0x6c2e9820,
-	0x1a10c: 0x6d388220, 0x1a10d: 0x6c147e20, 0x1a10e: 0x6cec5220, 0x1a10f: 0x6caaec20,
-	0x1a110: 0x6d230020, 0x1a111: 0x6d19d820, 0x1a112: 0x6d28b820, 0x1a113: 0x6d10a220,
-	0x1a114: 0x6cab2420, 0x1a115: 0x6c9e2020, 0x1a116: 0x6c555220, 0x1a117: 0x6d27e820,
-	0x1a118: 0x6c201e20, 0x1a119: 0x6c5bbc20, 0x1a11a: 0x6c591a20, 0x1a11b: 0x6c591c20,
-	0x1a11c: 0x6cf7e620, 0x1a11d: 0x6c509c20, 0x1a11e: 0x6c5ec220, 0x1a11f: 0x6c7cf420,
-	0x1a120: 0x6d37ee20, 0x1a121: 0x6cef0620, 0x1a122: 0x6ccc5220, 0x1a123: 0x6d06cc20,
-	0x1a124: 0x6c59ba20, 0x1a125: 0x6c344a20, 0x1a126: 0x6ca82620, 0x1a127: 0x6d079020,
-	0x1a128: 0x6c89b420, 0x1a129: 0x6d232c20, 0x1a12a: 0x6cca9e20, 0x1a12b: 0x6c1aae20,
-	0x1a12c: 0x6cbbe020, 0x1a12d: 0x6d0e6a20, 0x1a12e: 0x6c27dc20, 0x1a12f: 0x6cae4a20,
-	0x1a130: 0x6c116820, 0x1a131: 0x6c83d020, 0x1a132: 0x6d1d7a20, 0x1a133: 0x6d2bd620,
-	0x1a134: 0x6cee7c20, 0x1a135: 0x6c9e6c20, 0x1a136: 0x6d1c6220, 0x1a137: 0x6cae3220,
-	0x1a138: 0x6c103820, 0x1a139: 0x6c7c7420, 0x1a13a: 0x6cf88420, 0x1a13b: 0x6d232e20,
-	0x1a13c: 0x6c6ac420, 0x1a13d: 0x6c912820, 0x1a13e: 0x6c7a9620, 0x1a13f: 0x6d2a8220,
-	// Block 0x685, offset 0x1a140
-	0x1a140: 0x6c56a220, 0x1a141: 0x6ce33c20, 0x1a142: 0x6d110420, 0x1a143: 0x6c51ca20,
-	0x1a144: 0x6c000e20, 0x1a145: 0x6d054220, 0x1a146: 0x6cbabe20, 0x1a147: 0x6ccb2e20,
-	0x1a148: 0x6d1d8a20, 0x1a149: 0x6cdabe20, 0x1a14a: 0x6c53a620, 0x1a14b: 0x6d00b220,
-	0x1a14c: 0x6c00a220, 0x1a14d: 0x6cdd2420, 0x1a14e: 0x6c96f020, 0x1a14f: 0x6c139620,
-	0x1a150: 0x6c4d6c20, 0x1a151: 0x6c780420, 0x1a152: 0x6c264c20, 0x1a153: 0x6cca7e20,
-	0x1a154: 0x6c187220, 0x1a155: 0x6cc81820, 0x1a156: 0x6cd9aa20, 0x1a157: 0x6cebdc20,
-	0x1a158: 0x6c5ee420, 0x1a159: 0x6cad1c20, 0x1a15a: 0x6cf36e20, 0x1a15b: 0x6cba1020,
-	0x1a15c: 0x6cd39820, 0x1a15d: 0x6c440020, 0x1a15e: 0x6d3e3220, 0x1a15f: 0x6c6a0a20,
-	0x1a160: 0x6c960c20, 0x1a161: 0x6cf22820, 0x1a162: 0x6cec3420, 0x1a163: 0x6cd8c820,
-	0x1a164: 0x6c1ab420, 0x1a165: 0x6c4fca20, 0x1a166: 0x6cddd820,
-	0x1a168: 0x6c4d1620, 0x1a169: 0x6cdd7020, 0x1a16a: 0x6cbd7e20, 0x1a16b: 0x6ca83820,
-	0x1a16c: 0x6c50a020, 0x1a16d: 0x6d347020, 0x1a16e: 0x6cc9e220, 0x1a16f: 0x6ca2c620,
-	0x1a170: 0x6c448a20, 0x1a171: 0x6ca2e420, 0x1a172: 0x6c2cb820, 0x1a173: 0x6c002c20,
-	0x1a174: 0x6cbb6220, 0x1a175: 0x6ce6f620, 0x1a176: 0x6c09c220, 0x1a177: 0x6c024a20,
-	0x1a178: 0x6c024c20, 0x1a179: 0x6c880c20, 0x1a17a: 0x6d417420, 0x1a17b: 0x6d300020,
-	0x1a17c: 0x6ca12420, 0x1a17d: 0x6cda4620, 0x1a17e: 0x6cda2020, 0x1a17f: 0x6ce06820,
-	// Block 0x686, offset 0x1a180
-	0x1a180: 0x6c2b7820, 0x1a181: 0x6cb50820, 0x1a182: 0x6c69aa20, 0x1a183: 0x6c1cd020,
-	0x1a184: 0x6c685a20, 0x1a185: 0x6c765620, 0x1a186: 0x6ce0a020, 0x1a187: 0x6cccf820,
-	0x1a188: 0x6c127820, 0x1a189: 0x6c637620, 0x1a18a: 0x6c004620, 0x1a18b: 0x6cfee620,
-	0x1a18c: 0x6cb1b420, 0x1a18d: 0x6c912a20, 0x1a18e: 0x6c40c020, 0x1a18f: 0x6c47aa20,
-	0x1a190: 0x6cfee820, 0x1a191: 0x6c54e220, 0x1a192: 0x6c5bf220, 0x1a193: 0x6c4c2c20,
-	0x1a194: 0x6cab8220, 0x1a195: 0x6cfabc20, 0x1a196: 0x6d2ad820, 0x1a197: 0x6c16b420,
-	0x1a198: 0x6d05b820, 0x1a199: 0x6cb32e20, 0x1a19a: 0x6c2a5c20, 0x1a19b: 0x6c96f420,
-	0x1a19c: 0x6c96ca20, 0x1a19d: 0x6c557820, 0x1a19e: 0x6c836c20, 0x1a19f: 0x6c317220,
-	0x1a1a0: 0x6c40c220, 0x1a1a1: 0x6ce0c420, 0x1a1a2: 0x6d12ae20, 0x1a1a3: 0x6c07fe20,
-	0x1a1a4: 0x6d1bcc20, 0x1a1a5: 0x6cc9f020, 0x1a1a6: 0x6c69ac20, 0x1a1a7: 0x6c9d6420,
-	0x1a1a8: 0x6cfffc20, 0x1a1a9: 0x6c571220, 0x1a1aa: 0x6c971620, 0x1a1ab: 0x6cc48020,
-	0x1a1ac: 0x6c1fc420, 0x1a1ad: 0x6cae7e20, 0x1a1ae: 0x6c816420, 0x1a1af: 0x6d000420,
-	0x1a1b0: 0x6c5f1020, 0x1a1b1: 0x6d3a7c20, 0x1a1b2: 0x6c177020, 0x1a1b3: 0x6c7d0820,
-	0x1a1b4: 0x6d419820, 0x1a1b5: 0x6cfefe20, 0x1a1b6: 0x6cd80c20, 0x1a1b7: 0x6c4fdc20,
-	0x1a1b8: 0x6c3f7e20, 0x1a1b9: 0x6c8a0020, 0x1a1ba: 0x6cbbe820, 0x1a1bb: 0x6cf68e20,
-	0x1a1bc: 0x6c1f6a20, 0x1a1bd: 0x6c15d020, 0x1a1be: 0x6c28a420, 0x1a1bf: 0x6c521e20,
-	// Block 0x687, offset 0x1a1c0
-	0x1a1c0: 0x6d0aa020, 0x1a1c1: 0x6c35b620, 0x1a1c2: 0x6d420a20, 0x1a1c3: 0x6c385420,
-	0x1a1c4: 0x6c1acc20, 0x1a1c5: 0x6c5ae220, 0x1a1c6: 0x6d297220, 0x1a1c7: 0x6c207420,
-	0x1a1c8: 0x6c245220, 0x1a1c9: 0x6c289c20, 0x1a1ca: 0x6d23ba20, 0x1a1cb: 0x6cea2420,
-	0x1a1cc: 0x6c134a20, 0x1a1cd: 0x6c69b620, 0x1a1ce: 0x6d126220, 0x1a1cf: 0x6cf69020,
-	0x1a1d0: 0x6cb7be20, 0x1a1d1: 0x6c4fd020, 0x1a1d2: 0x6c882e20, 0x1a1d3: 0x6d05ca20,
-	0x1a1d4: 0x6c2aa420, 0x1a1d5: 0x6c5ae820, 0x1a1d6: 0x6d1a8c20, 0x1a1d7: 0x6cb40c20,
-	0x1a1d8: 0x6c73b220, 0x1a1d9: 0x6cbd9220, 0x1a1da: 0x6d0a2e20, 0x1a1db: 0x6ca85a20,
-	0x1a1dc: 0x6c912c20, 0x1a1dd: 0x6cd80e20, 0x1a1de: 0x6d0dd420, 0x1a1df: 0x6d1d4820,
-	0x1a1e0: 0x6c265e20, 0x1a1e1: 0x6d2d9420, 0x1a1e2: 0x6cab2620, 0x1a1e3: 0x6d394e20,
-	0x1a1e4: 0x6c6d4820, 0x1a1e5: 0x6ca9c420, 0x1a1e6: 0x6c5c2620, 0x1a1e7: 0x6d01f420,
-	0x1a1e8: 0x6cb7ce20, 0x1a1e9: 0x6c36a620, 0x1a1ea: 0x6d2a8e20, 0x1a1eb: 0x6d140e20,
-	0x1a1ec: 0x6cd3d620, 0x1a1ed: 0x6c69c220, 0x1a1ee: 0x6d263020, 0x1a1ef: 0x6c003420,
-	0x1a1f0: 0x6d1dac20, 0x1a1f1: 0x6c74b420, 0x1a1f2: 0x6c7b3820, 0x1a1f3: 0x6d228a20,
-	0x1a1f4: 0x6cae3420, 0x1a1f5: 0x6c2a2820, 0x1a1f6: 0x6c40c820, 0x1a1f7: 0x6c528e20,
-	0x1a1f8: 0x6c33aa20, 0x1a1f9: 0x6c290220, 0x1a1fa: 0x6d036420, 0x1a1fb: 0x6cc9cc20,
-	0x1a1fc: 0x6caf8e20, 0x1a1fd: 0x6cb07220, 0x1a1fe: 0x6d1a0e20, 0x1a1ff: 0x6d41a020,
-	// Block 0x688, offset 0x1a200
-	0x1a200: 0x6ca92020, 0x1a201: 0x6c2b9620, 0x1a202: 0x6c807820, 0x1a203: 0x6cddfa20,
-	0x1a204: 0x6c5d5e20, 0x1a205: 0x6cc7cc20, 0x1a206: 0x6c4fac20, 0x1a207: 0x6cfa4820,
-	0x1a208: 0x6d135220, 0x1a209: 0x6c343820, 0x1a20a: 0x6cb0be20, 0x1a20b: 0x6c1de020,
-	0x1a20c: 0x6c629020, 0x1a20d: 0x6c6d5620, 0x1a20e: 0x6c4fec20, 0x1a20f: 0x6ce42820,
-	0x1a210: 0x6c16ca20, 0x1a211: 0x6d0ac220, 0x1a212: 0x6c99c620, 0x1a213: 0x6c10d820,
-	0x1a214: 0x6ce43820, 0x1a215: 0x6c91e420, 0x1a216: 0x6c5c6420, 0x1a217: 0x6c0f8820,
-	0x1a218: 0x6d1eba20, 0x1a219: 0x6ca88620, 0x1a21a: 0x6d1a9e20, 0x1a21b: 0x6c56d620,
-	0x1a21c: 0x6c99ca20, 0x1a21d: 0x6c52d220, 0x1a21e: 0x6d30a820, 0x1a21f: 0x6c846c20,
-	0x1a220: 0x6c8eb220, 0x1a221: 0x6c4d8e20, 0x1a222: 0x6ca45620, 0x1a223: 0x6cff2e20,
-	0x1a224: 0x6ca08220, 0x1a225: 0x6d0ee620, 0x1a226: 0x6c86e820, 0x1a227: 0x6c916820,
-	0x1a228: 0x6c8fba20, 0x1a229: 0x6ca08c20, 0x1a22a: 0x6c28dc20, 0x1a22b: 0x6c193a20,
-	0x1a22c: 0x6cb21e20, 0x1a22d: 0x6cb07c20, 0x1a22e: 0x6cfe5c20, 0x1a22f: 0x6c5e2420,
-	0x1a230: 0x6ca08e20, 0x1a231: 0x6cf91e20, 0x1a232: 0x6c34c220, 0x1a233: 0x6c7ab220,
-	0x1a234: 0x6d0ce820, 0x1a235: 0x6c154e20, 0x1a236: 0x6d1c1820, 0x1a237: 0x6cc50420,
-	0x1a238: 0x6c2d3020, 0x1a239: 0x6c7ede20, 0x1a23a: 0x6cded620, 0x1a23b: 0x6cff4c20,
-	0x1a23c: 0x6c74fc20, 0x1a23d: 0x6c21e420, 0x1a23e: 0x6c583c20, 0x1a23f: 0x6c5e3c20,
-	// Block 0x689, offset 0x1a240
-	0x1a240: 0x6d3bfe20, 0x1a241: 0x6ca8aa20, 0x1a242: 0x6cff4e20, 0x1a243: 0x6c10ee20,
-	0x1a244: 0x6c84a420, 0x1a245: 0x6c161620, 0x1a246: 0x6c14a820, 0x1a247: 0x6c876020,
-	0x1a248: 0x6d194020, 0x1a249: 0x6c953620, 0x1a24a: 0x6ca45e20, 0x1a24b: 0x6d28dc20,
-	0x1a24c: 0x6cda6e20, 0x1a24d: 0x6cf82420, 0x1a24e: 0x6d2b7e20, 0x1a24f: 0x6c654e20,
-	0x1a250: 0x6d28de20, 0x1a251: 0x6d3a8e20, 0x1a252: 0x6c800620, 0x1a253: 0x6ca8c220,
-	0x1a254: 0x6ca45220, 0x1a255: 0x6c806220, 0x1a256: 0x6c8f6420, 0x1a257: 0x6ceed620,
-	0x1a258: 0x6c5b1220, 0x1a259: 0x6d199c20, 0x1a25a: 0x6cbff020, 0x1a25b: 0x6cd87420,
-	0x1a25c: 0x6ca8e220, 0x1a25d: 0x6c656220, 0x1a25e: 0x6c5b1420, 0x1a25f: 0x6d031420,
-	0x1a260: 0x6d199e20, 0x1a261: 0x6ca3dc20, 0x1a262: 0x6ce94420, 0x1a263: 0x6ce94620,
-	0x1a264: 0x6c33d620, 0x1a265: 0x6c777c20, 0x1a266: 0x6d24c620, 0x1a267: 0x6c6ef420,
-	0x1a268: 0x6cb0ec20, 0x1a269: 0x6d277c20, 0x1a26a: 0x6c22f620, 0x1a26b: 0x6c551c20,
-	0x1a26c: 0x6c5b1820, 0x1a26d: 0x6d253a20, 0x1a26e: 0x6c354a20, 0x1a26f: 0x6c4c5620,
-	0x1a270: 0x6c7dca20, 0x1a271: 0x6c22f820, 0x1a272: 0x6ce6ee20, 0x1a273: 0x6ce88420,
-	0x1a274: 0x6ceedc20, 0x1a275: 0x6c94d820, 0x1a276: 0x6c4c5a20, 0x1a277: 0x6cc43020,
-	0x1a278: 0x6cc64020, 0x1a279: 0x6c8c9e20, 0x1a27a: 0x6c47fe20, 0x1a27b: 0x6c4c5c20,
-	0x1a27c: 0x6cdf0020, 0x1a27d: 0x6c4c5e20, 0x1a27e: 0x6ce88820, 0x1a27f: 0x6d202020,
-	// Block 0x68a, offset 0x1a280
-	0x1a280: 0x6c4c6220, 0x1a281: 0x6d1a4220, 0x1a282: 0x6c5d2020, 0x1a283: 0x6cb48620,
-	0x1a284: 0x6d223820, 0x1a285: 0x6c4dee20, 0x1a286: 0x6d255020, 0x1a287: 0x6c94ea20,
-	0x1a288: 0x6cc29620, 0x1a289: 0x6d224820, 0x1a28a: 0x6cbe3e20, 0x1a28b: 0x6c4c6620,
-	0x1a28c: 0x6c1ffa20, 0x1a28d: 0x6cef0820, 0x1a28e: 0x6d256020, 0x1a28f: 0x6cc29a20,
-	0x1a290: 0x6c7a4020, 0x1a291: 0x6c400a20, 0x1a292: 0x6d257420, 0x1a293: 0x6d257620,
-	0x1a294: 0x6d0bbc20, 0x1a295: 0x6ce8b620, 0x1a296: 0x6ce8d420, 0x1a297: 0x6ce8d620,
-	0x1a298: 0x6ce95020, 0x1a299: 0x6c94b820, 0x1a29a: 0x6c5c0c20, 0x1a29b: 0x6d188220,
-	0x1a29c: 0x6c589220, 0x1a29d: 0x6c944a20, 0x1a29e: 0x6c946e20, 0x1a29f: 0x6ce91020,
-	0x1a2a0: 0x6d0b6620, 0x1a2a1: 0x6ce91220, 0x1a2a2: 0x6ce6aa20, 0x1a2a3: 0x6cd15220,
-	0x1a2a4: 0x6cb48020, 0x1a2a5: 0x6c920c20, 0x1a2a6: 0x6c7b5020, 0x1a2a7: 0x6d0ac620,
-	0x1a2a8: 0x6d292820, 0x1a2a9: 0x6ceeda20, 0x1a2aa: 0x6c436620, 0x1a2ab: 0x6d22be20,
-	0x1a2ac: 0x6cf34020, 0x1a2ad: 0x6c4a3420, 0x1a2ae: 0x6cb04820, 0x1a2af: 0x6d145020,
-	0x1a2b0: 0x6c2a8a20, 0x1a2b1: 0x6cb89220, 0x1a2b2: 0x6cb89420, 0x1a2b3: 0x6d320e20,
-	0x1a2b4: 0x6d3d1a20, 0x1a2b5: 0x6c295220, 0x1a2b6: 0x6cb83e20, 0x1a2b7: 0x6cfa6220,
-	0x1a2b8: 0x6ccdf620, 0x1a2b9: 0x6c7bd820, 0x1a2ba: 0x6c16e220, 0x1a2bb: 0x6cb56e20,
-	0x1a2bc: 0x6ca7f220, 0x1a2bd: 0x6ca0c220, 0x1a2be: 0x6c5e7620, 0x1a2bf: 0x6c639820,
-	// Block 0x68b, offset 0x1a2c0
-	0x1a2c0: 0x6d34dc20, 0x1a2c1: 0x6d34de20, 0x1a2c2: 0x6c04b420, 0x1a2c3: 0x6d098e20,
-	0x1a2c4: 0x6d167a20, 0x1a2c5: 0x6cbdc620, 0x1a2c6: 0x6c99d020, 0x1a2c7: 0x6c755620,
-	0x1a2c8: 0x6cc6f220, 0x1a2c9: 0x6cea3c20, 0x1a2ca: 0x6c39e820, 0x1a2cb: 0x6c07a420,
-	0x1a2cc: 0x6c07a620, 0x1a2cd: 0x6cdf8820, 0x1a2ce: 0x6c76be20, 0x1a2cf: 0x6c580a20,
-	0x1a2d0: 0x6d427620, 0x1a2d1: 0x6c792620, 0x1a2d2: 0x6c091820, 0x1a2d3: 0x6c6e0a20,
-	0x1a2d4: 0x6c2c1220, 0x1a2d5: 0x6c6d8620, 0x1a2d6: 0x6c617c20, 0x1a2d7: 0x6c7b0c20,
-	0x1a2d8: 0x6c2bcc20, 0x1a2d9: 0x6c6d8820, 0x1a2da: 0x6c646220, 0x1a2db: 0x6cdfca20,
-	0x1a2dc: 0x6c857e20, 0x1a2dd: 0x6c03a620, 0x1a2de: 0x6cf4a420, 0x1a2df: 0x6c3b5020,
-	0x1a2e0: 0x6d3c7a20, 0x1a2e1: 0x6cb2f620, 0x1a2e2: 0x6c04e220, 0x1a2e3: 0x6ce0bc20,
-	0x1a2e4: 0x6c7d4a20, 0x1a2e5: 0x6cc0da20, 0x1a2e6: 0x6ce05220, 0x1a2e7: 0x6d339420,
-	0x1a2e8: 0x6ceaea20, 0x1a2e9: 0x6c417020, 0x1a2ea: 0x6cb27620, 0x1a2eb: 0x6c2d3a20,
-	0x1a2ec: 0x6c48a820, 0x1a2ed: 0x6ca5ba20, 0x1a2ee: 0x6cdf1420, 0x1a2ef: 0x6caf3020,
-	0x1a2f0: 0x6c6ed620, 0x1a2f1: 0x6d100020, 0x1a2f2: 0x6c3d0a20, 0x1a2f3: 0x6c02c420,
-	0x1a2f4: 0x6c921820, 0x1a2f5: 0x6cbf9c20, 0x1a2f6: 0x6ca22620, 0x1a2f7: 0x6c785420,
-	0x1a2f8: 0x6c469220, 0x1a2f9: 0x6d094020, 0x1a2fa: 0x6c036220, 0x1a2fb: 0x6c1b0420,
-	0x1a2fc: 0x6c180020, 0x1a2fd: 0x6c8ca020, 0x1a2fe: 0x6d3aaa20, 0x1a2ff: 0x6c3fb020,
-	// Block 0x68c, offset 0x1a300
-	0x1a300: 0x6c549a20, 0x1a301: 0x6d358420, 0x1a302: 0x6c20be20, 0x1a303: 0x6c7e3a20,
-	0x1a304: 0x6c902e20, 0x1a305: 0x6c903020, 0x1a306: 0x6c913820, 0x1a307: 0x6c02c620,
-	0x1a308: 0x6c272e20, 0x1a309: 0x6cad4820, 0x1a30a: 0x6c9fe220, 0x1a30b: 0x6d03ca20,
-	0x1a30c: 0x6c305620, 0x1a30d: 0x6c619e20, 0x1a30e: 0x6c51ba20, 0x1a30f: 0x6c93ce20,
-	0x1a310: 0x6c222820, 0x1a311: 0x6c1b8220, 0x1a312: 0x6c82ba20, 0x1a313: 0x6c40e420,
-	0x1a314: 0x6d19aa20, 0x1a315: 0x6c546220, 0x1a316: 0x6c32f420, 0x1a317: 0x6d2f9c20,
-	0x1a318: 0x6c3e0820, 0x1a319: 0x6c49dc20, 0x1a31a: 0x6d10d420, 0x1a31b: 0x6c347820,
-	0x1a31c: 0x6c347a20, 0x1a31d: 0x6c4ad020, 0x1a31e: 0x6c13ca20, 0x1a31f: 0x6d0f8e20,
-	0x1a320: 0x6d1a3820, 0x1a321: 0x6c37fe20, 0x1a322: 0x6c469a20, 0x1a323: 0x6d254420,
-	0x1a324: 0x6c2e6a20, 0x1a325: 0x6d007620, 0x1a326: 0x6c78fa20, 0x1a327: 0x6cce3220,
-	0x1a328: 0x6cd43e20, 0x1a329: 0x6c35ec20, 0x1a32a: 0x6c0e4020, 0x1a32b: 0x6c2d4020,
-	0x1a32c: 0x6c530c20, 0x1a32d: 0x6d0ad820, 0x1a32e: 0x6c7ad620, 0x1a32f: 0x6c26f820,
-	0x1a330: 0x6c762020, 0x1a331: 0x6c295a20, 0x1a332: 0x6c764a20, 0x1a333: 0x6c4f9e20,
-	0x1a334: 0x6ca4dc20, 0x1a335: 0x6c017820, 0x1a336: 0x6d036c20, 0x1a337: 0x6cfc9c20,
-	0x1a338: 0x6d260820, 0x1a339: 0x6c051a20, 0x1a33a: 0x6c3d5a20, 0x1a33b: 0x6c03ae20,
-	0x1a33c: 0x6d172020, 0x1a33d: 0x6d1b4220, 0x1a33e: 0x6c4e9220, 0x1a33f: 0x6d06a020,
-	// Block 0x68d, offset 0x1a340
-	0x1a340: 0x6c20c420, 0x1a341: 0x6cbd6220, 0x1a342: 0x6c44f420, 0x1a343: 0x6c001c20,
-	0x1a344: 0x6c081620, 0x1a345: 0x6c39aa20, 0x1a346: 0x6cc3a820, 0x1a347: 0x6d1e2020,
-	0x1a348: 0x6c75a020, 0x1a349: 0x6c633e20, 0x1a34a: 0x6c2c2a20, 0x1a34b: 0x6c96fa20,
-	0x1a34c: 0x6c811420, 0x1a34d: 0x6c731820, 0x1a34e: 0x6c19c620, 0x1a34f: 0x6ccccc20,
-	0x1a350: 0x6c6c3c20, 0x1a351: 0x6d303020, 0x1a352: 0x6c8ae420, 0x1a353: 0x6c8ae620,
-	0x1a354: 0x6c107e20, 0x1a355: 0x6c19d820, 0x1a356: 0x6c57d820, 0x1a357: 0x6c108020,
-	0x1a358: 0x6cd25a20, 0x1a359: 0x6d099420, 0x1a35a: 0x6c4c1820, 0x1a35b: 0x6c6eda20,
-	0x1a35c: 0x6d12a820, 0x1a35d: 0x6ca76020, 0x1a35e: 0x6c2bee20, 0x1a35f: 0x6d230420,
-	0x1a360: 0x6c109220, 0x1a361: 0x6d0ae820, 0x1a362: 0x6cc2d420, 0x1a363: 0x6cdc3420,
-	0x1a364: 0x6cafdc20, 0x1a365: 0x6cbe4020, 0x1a366: 0x6cecfe20, 0x1a367: 0x6c723820,
-	0x1a368: 0x6c951420, 0x1a369: 0x6d329220, 0x1a36a: 0x6c796e20, 0x1a36b: 0x6c1d3820,
-	0x1a36c: 0x6c2fee20, 0x1a36d: 0x6c275a20, 0x1a36e: 0x6ce09220, 0x1a36f: 0x6c018020,
-	0x1a370: 0x6c114220, 0x1a371: 0x6c1f2e20, 0x1a372: 0x6c081820, 0x1a373: 0x6c76ce20,
-	0x1a374: 0x6d344c20, 0x1a375: 0x6c348420, 0x1a376: 0x6d175220, 0x1a377: 0x6d344e20,
-	0x1a378: 0x6d175420, 0x1a379: 0x6cadd020, 0x1a37a: 0x6c5eb420, 0x1a37b: 0x6d3cdc20,
-	0x1a37c: 0x6cb5b820, 0x1a37d: 0x6ccaee20, 0x1a37e: 0x6c723a20, 0x1a37f: 0x6ca5d420,
-	// Block 0x68e, offset 0x1a380
-	0x1a380: 0x6c7a3a20, 0x1a381: 0x6c78a020, 0x1a382: 0x6ce0ec20, 0x1a383: 0x6c7d5020,
-	0x1a384: 0x6ca69620, 0x1a385: 0x6c648220, 0x1a386: 0x6c32fa20, 0x1a387: 0x6c6c8e20,
-	0x1a388: 0x6c427620, 0x1a389: 0x6d230620, 0x1a38a: 0x6c360c20, 0x1a38b: 0x6cae9820,
-	0x1a38c: 0x6c480820, 0x1a38d: 0x6ce92220, 0x1a38e: 0x6c839420, 0x1a38f: 0x6c39ea20,
-	0x1a390: 0x6d0b2420, 0x1a391: 0x6cba4c20, 0x1a392: 0x6c7ddc20, 0x1a393: 0x6c01b620,
-	0x1a394: 0x6cd0ca20, 0x1a395: 0x6c34e620, 0x1a396: 0x6ca4f220, 0x1a397: 0x6ce85c20,
-	0x1a398: 0x6c19fa20, 0x1a399: 0x6d19da20, 0x1a39a: 0x6c5cea20, 0x1a39b: 0x6c099420,
-	0x1a39c: 0x6c88f220, 0x1a39d: 0x6c4c1c20, 0x1a39e: 0x6c2e9a20, 0x1a39f: 0x6d3bc420,
-	0x1a3a0: 0x6c547020, 0x1a3a1: 0x6c05fa20, 0x1a3a2: 0x6c05fc20, 0x1a3a3: 0x6d211420,
-	0x1a3a4: 0x6c2b2e20, 0x1a3a5: 0x6c98e220, 0x1a3a6: 0x6c6a0c20, 0x1a3a7: 0x6cc83c20,
-	0x1a3a8: 0x6d12ec20, 0x1a3a9: 0x6c452e20, 0x1a3aa: 0x6c76aa20, 0x1a3ab: 0x6d3f8020,
-	0x1a3ac: 0x6d211620, 0x1a3ad: 0x6c59bc20, 0x1a3ae: 0x6c362c20, 0x1a3af: 0x6d10f620,
-	0x1a3b0: 0x6d0e6c20, 0x1a3b1: 0x6c064c20, 0x1a3b2: 0x6c223620, 0x1a3b3: 0x6c99f620,
-	0x1a3b4: 0x6c16ec20, 0x1a3b5: 0x6c321420, 0x1a3b6: 0x6ceb1c20, 0x1a3b7: 0x6d1b5020,
-	0x1a3b8: 0x6c3ca620, 0x1a3b9: 0x6d382820, 0x1a3ba: 0x6c6be820, 0x1a3bb: 0x6c6c4420,
-	0x1a3bc: 0x6c528820, 0x1a3bd: 0x6c428620, 0x1a3be: 0x6c210620, 0x1a3bf: 0x6c658e20,
-	// Block 0x68f, offset 0x1a3c0
-	0x1a3c0: 0x6cb2ec20, 0x1a3c1: 0x6c836a20, 0x1a3c2: 0x6cfe3220, 0x1a3c3: 0x6c599220,
-	0x1a3c4: 0x6c837620, 0x1a3c5: 0x6c32c020, 0x1a3c6: 0x6cec8e20, 0x1a3c7: 0x6d079220,
-	0x1a3c8: 0x6c61fe20, 0x1a3c9: 0x6c604a20, 0x1a3ca: 0x6c7b2420, 0x1a3cb: 0x6d1c7c20,
-	0x1a3cc: 0x6cddee20, 0x1a3cd: 0x6c1a1620, 0x1a3ce: 0x6d1e4220, 0x1a3cf: 0x6c765c20,
-	0x1a3d0: 0x6cdac020, 0x1a3d1: 0x6cdac220, 0x1a3d2: 0x6cd26e20, 0x1a3d3: 0x6c9d4e20,
-	0x1a3d4: 0x6cde0820, 0x1a3d5: 0x6cf24e20, 0x1a3d6: 0x6c1a1820, 0x1a3d7: 0x6ce8b820,
-	0x1a3d8: 0x6ce0fe20, 0x1a3d9: 0x6cc3c820, 0x1a3da: 0x6d37f420, 0x1a3db: 0x6c862a20,
-	0x1a3dc: 0x6d37f620, 0x1a3dd: 0x6c057620, 0x1a3de: 0x6cc9c620, 0x1a3df: 0x6d2a0620,
-	0x1a3e0: 0x6c330020, 0x1a3e1: 0x6ce4a820, 0x1a3e2: 0x6cf4f820, 0x1a3e3: 0x6d335020,
-	0x1a3e4: 0x6d099c20, 0x1a3e5: 0x6c440420, 0x1a3e6: 0x6d324020, 0x1a3e7: 0x6c00a420,
-	0x1a3e8: 0x6c459020, 0x1a3e9: 0x6d0ca620, 0x1a3ea: 0x6c76da20, 0x1a3eb: 0x6ce4aa20,
-	0x1a3ec: 0x6d257820, 0x1a3ed: 0x6cf14e20, 0x1a3ee: 0x6d01be20, 0x1a3ef: 0x6c8f3220,
-	0x1a3f0: 0x6c4d8c20, 0x1a3f1: 0x6c810220, 0x1a3f2: 0x6c16b620, 0x1a3f3: 0x6caea820,
-	0x1a3f4: 0x6c084820, 0x1a3f5: 0x6c18da20, 0x1a3f6: 0x6c927820, 0x1a3f7: 0x6c91c620,
-	0x1a3f8: 0x6cab3c20, 0x1a3f9: 0x6cba6220, 0x1a3fa: 0x6c9a1620, 0x1a3fb: 0x6ca12620,
-	0x1a3fc: 0x6d3b8220, 0x1a3fd: 0x6cd6d420, 0x1a3fe: 0x6cd52e20, 0x1a3ff: 0x6c90e820,
-	// Block 0x690, offset 0x1a400
-	0x1a400: 0x6c1b4620, 0x1a401: 0x6c97e220, 0x1a402: 0x6c0c0620, 0x1a403: 0x6c6e9420,
-	0x1a404: 0x6c130020, 0x1a405: 0x6cd5ee20, 0x1a406: 0x6d367a20, 0x1a407: 0x6d2ec020,
-	0x1a408: 0x6c770a20, 0x1a409: 0x6d1d9620, 0x1a40a: 0x6c2d6e20, 0x1a40b: 0x6c190820,
-	0x1a40c: 0x6d347c20, 0x1a40d: 0x6cf8ac20, 0x1a40e: 0x6c4c2420, 0x1a40f: 0x6cbb4620,
-	0x1a410: 0x6c6d2220, 0x1a411: 0x6c2c7a20, 0x1a412: 0x6cce0a20, 0x1a413: 0x6ca29020,
-	0x1a414: 0x6c24d220, 0x1a415: 0x6d0e9220, 0x1a416: 0x6cde1020, 0x1a417: 0x6d2b8220,
-	0x1a418: 0x6cb9ac20, 0x1a419: 0x6cbb1020, 0x1a41a: 0x6c895e20, 0x1a41b: 0x6cf14220,
-	0x1a41c: 0x6d3c9a20, 0x1a41d: 0x6cbb9820, 0x1a41e: 0x6d2b8620, 0x1a41f: 0x6d05ba20,
-	0x1a420: 0x6ccd9a20, 0x1a421: 0x6ccd9c20, 0x1a422: 0x6c038e20, 0x1a423: 0x6cb44820,
-	0x1a424: 0x6c7b3220, 0x1a425: 0x6c303220, 0x1a426: 0x6c38b020, 0x1a427: 0x6cc3e820,
-	0x1a428: 0x6ca16020, 0x1a429: 0x6c33a020, 0x1a42a: 0x6c33a220, 0x1a42b: 0x6d41ea20,
-	0x1a42c: 0x6c2c7c20, 0x1a42d: 0x6cd17220, 0x1a42e: 0x6c350820, 0x1a42f: 0x6c350e20,
-	0x1a430: 0x6cdffc20, 0x1a431: 0x6c2ae020, 0x1a432: 0x6ca21820, 0x1a433: 0x6c3b8420,
-	0x1a434: 0x6c59d820, 0x1a435: 0x6cdffe20, 0x1a436: 0x6c26fe20, 0x1a437: 0x6d12fa20,
-	0x1a438: 0x6d3b5220, 0x1a439: 0x6c673a20, 0x1a43a: 0x6c02e420, 0x1a43b: 0x6cbb1e20,
-	0x1a43c: 0x6c5f2c20, 0x1a43d: 0x6cbba220, 0x1a43e: 0x6c790a20, 0x1a43f: 0x6d188420,
-	// Block 0x691, offset 0x1a440
-	0x1a440: 0x6cb01a20, 0x1a441: 0x6c0a4420, 0x1a442: 0x6c2d7c20, 0x1a443: 0x6c677820,
-	0x1a444: 0x6d12b420, 0x1a445: 0x6d1dae20, 0x1a446: 0x6d091620, 0x1a447: 0x6ce00c20,
-	0x1a448: 0x6c803820, 0x1a449: 0x6c728820, 0x1a44a: 0x6c581420, 0x1a44b: 0x6c298e20,
-	0x1a44c: 0x6cc50220, 0x1a44d: 0x6cba8020, 0x1a44e: 0x6d09ae20, 0x1a44f: 0x6cfd1820,
-	0x1a450: 0x6cf81620, 0x1a451: 0x6c51ee20, 0x1a452: 0x6c00c620, 0x1a453: 0x6d0b0020,
-	0x1a454: 0x6c29ee20, 0x1a455: 0x6c4fee20, 0x1a456: 0x6cc84a20, 0x1a457: 0x6c6d8220,
-	0x1a458: 0x6c82e220, 0x1a459: 0x6c7c0620, 0x1a45a: 0x6c916a20, 0x1a45b: 0x6d0cea20,
-	0x1a45c: 0x6ce03020, 0x1a45d: 0x6cf03820, 0x1a45e: 0x6c581820, 0x1a45f: 0x6c903e20,
-	0x1a460: 0x6c904020, 0x1a461: 0x6cc8ec20, 0x1a462: 0x6c86ea20, 0x1a463: 0x6c8bfe20,
-	0x1a464: 0x6cc50620, 0x1a465: 0x6c165c20, 0x1a466: 0x6d09c420, 0x1a467: 0x6d0d0c20,
-	0x1a468: 0x6c829620, 0x1a469: 0x6c03da20, 0x1a46a: 0x6ceca620, 0x1a46b: 0x6cd2e220,
-	0x1a46c: 0x6cc56020, 0x1a46d: 0x6cca6220, 0x1a46e: 0x6d3c2c20, 0x1a46f: 0x6d3c2e20,
-	0x1a470: 0x6cd0dc20, 0x1a471: 0x6d13c620, 0x1a472: 0x6c972420, 0x1a473: 0x6c784a20,
-	0x1a474: 0x6d3aba20, 0x1a475: 0x6d3c3620, 0x1a476: 0x6c553020, 0x1a477: 0x6c554020,
-	0x1a478: 0x6c7da620, 0x1a479: 0x6d13ee20, 0x1a47a: 0x6c555420, 0x1a47b: 0x6d06d020,
-	0x1a47c: 0x6c7db220, 0x1a47d: 0x6cd46e20, 0x1a47e: 0x6c989420, 0x1a47f: 0x6d41ec20,
-	// Block 0x692, offset 0x1a480
-	0x1a480: 0x6cd47020, 0x1a481: 0x6d141220, 0x1a482: 0x6d34ca20, 0x1a483: 0x6c474e20,
-	0x1a484: 0x6c1f0220, 0x1a485: 0x6c67d220, 0x1a486: 0x6c3c9c20, 0x1a487: 0x6c06e020,
-	0x1a488: 0x6d2d5820, 0x1a489: 0x6c0b8420, 0x1a48a: 0x6cdba620, 0x1a48b: 0x6cc42e20,
-	0x1a48c: 0x6c8ca220, 0x1a48d: 0x6c3fc020, 0x1a48e: 0x6c261420, 0x1a48f: 0x6cfa3220,
-	0x1a490: 0x6d049a20, 0x1a491: 0x6d02a020, 0x1a492: 0x6ca4cc20, 0x1a493: 0x6cfa5a20,
-	0x1a494: 0x6c7cb420, 0x1a495: 0x6cf55a20, 0x1a496: 0x6cec6820, 0x1a497: 0x6d25f820,
-	0x1a498: 0x6c992020, 0x1a499: 0x6cda7c20, 0x1a49a: 0x6c341620, 0x1a49b: 0x6c341820,
-	0x1a49c: 0x6d12ca20, 0x1a49d: 0x6cbe6c20, 0x1a49e: 0x6cec6e20, 0x1a49f: 0x6c46a220,
-	0x1a4a0: 0x6c46a420, 0x1a4a1: 0x6cb78820, 0x1a4a2: 0x6c9c0420, 0x1a4a3: 0x6c9c0820,
-	0x1a4a4: 0x6d1a8020, 0x1a4a5: 0x6c5d9420, 0x1a4a6: 0x6c190c20, 0x1a4a7: 0x6c26e420,
-	0x1a4a8: 0x6d2b3020, 0x1a4a9: 0x6ce45420, 0x1a4aa: 0x6cdf5a20, 0x1a4ab: 0x6c40a620,
-	0x1a4ac: 0x6c48e220, 0x1a4ad: 0x6d108020, 0x1a4ae: 0x6d0f4020, 0x1a4af: 0x6c4f4620,
-	0x1a4b0: 0x6c42fa20, 0x1a4b1: 0x6cd18e20, 0x1a4b2: 0x6ce1aa20, 0x1a4b3: 0x6cdf5c20,
-	0x1a4b4: 0x6ce7e420, 0x1a4b5: 0x6d0d3420, 0x1a4b6: 0x6c08b020, 0x1a4b7: 0x6d145220,
-	0x1a4b8: 0x6c7ab820, 0x1a4b9: 0x6c631c20, 0x1a4ba: 0x6c343a20, 0x1a4bb: 0x6c577c20,
-	0x1a4bc: 0x6c7bce20, 0x1a4bd: 0x6d27d620, 0x1a4be: 0x6c632020, 0x1a4bf: 0x6c031820,
-	// Block 0x693, offset 0x1a4c0
-	0x1a4c0: 0x6c370e20, 0x1a4c1: 0x6c87ec20, 0x1a4c2: 0x6c58ee20, 0x1a4c3: 0x6c2b1220,
-	0x1a4c4: 0x6d0d4620, 0x1a4c5: 0x6cad7e20, 0x1a4c6: 0x6c733c20, 0x1a4c7: 0x6cb57c20,
-	0x1a4c8: 0x6ca3ac20, 0x1a4c9: 0x6c3cd820, 0x1a4ca: 0x6d007820, 0x1a4cb: 0x6c3bcc20,
-	0x1a4cc: 0x6c2d0820, 0x1a4cd: 0x6d107820, 0x1a4ce: 0x6c7c5e20, 0x1a4cf: 0x6d408620,
-	0x1a4d0: 0x6c58f820, 0x1a4d1: 0x6cb75220, 0x1a4d2: 0x6c762620, 0x1a4d3: 0x6d2bc820,
-	0x1a4d4: 0x6c077c20, 0x1a4d5: 0x6d16e020, 0x1a4d6: 0x6c679e20, 0x1a4d7: 0x6ce26220,
-	0x1a4d8: 0x6d29fe20, 0x1a4d9: 0x6c079820, 0x1a4da: 0x6cf5b420, 0x1a4db: 0x6c5a5020,
-	0x1a4dc: 0x6c3a5020, 0x1a4dd: 0x6c2dc020, 0x1a4de: 0x6d0a8620, 0x1a4df: 0x6c07e020,
-	0x1a4e0: 0x6c2d5620, 0x1a4e1: 0x6c02d020, 0x1a4e2: 0x6cceea20, 0x1a4e3: 0x6cf24c20,
-	0x1a4e4: 0x6c4d0220, 0x1a4e5: 0x6c02d220, 0x1a4e6: 0x6cf4fa20, 0x1a4e7: 0x6c02d420,
-	0x1a4e8: 0x6c67ac20, 0x1a4e9: 0x6c881c20, 0x1a4ea: 0x6c345a20, 0x1a4eb: 0x6d275e20,
-	0x1a4ec: 0x6c67ae20, 0x1a4ed: 0x6cd3c420, 0x1a4ee: 0x6c3be620, 0x1a4ef: 0x6c5df620,
-	0x1a4f0: 0x6c0a8620, 0x1a4f1: 0x6c944c20, 0x1a4f2: 0x6c34c620, 0x1a4f3: 0x6caa6e20,
-	0x1a4f4: 0x6caa3a20, 0x1a4f5: 0x6c2f6820, 0x1a4f6: 0x6ca38e20, 0x1a4f7: 0x6cb89620,
-	0x1a4f8: 0x6c645c20, 0x1a4f9: 0x6cddde20, 0x1a4fa: 0x6c6fa220, 0x1a4fb: 0x6caa8e20,
-	0x1a4fc: 0x6c142820, 0x1a4fd: 0x6c500620, 0x1a4fe: 0x6cfa7020, 0x1a4ff: 0x6c391a20,
-	// Block 0x694, offset 0x1a500
-	0x1a500: 0x6c611a20, 0x1a501: 0x6cd76e20, 0x1a502: 0x6cc78a20, 0x1a503: 0x6c39f020,
-	0x1a504: 0x6cee4420, 0x1a505: 0x6c52ec20, 0x1a506: 0x6d3c0620, 0x1a507: 0x6c3fa620,
-	0x1a508: 0x6c965c20, 0x1a509: 0x6c27b420, 0x1a50a: 0x6cc5be20, 0x1a50b: 0x6c3d3a20,
-	0x1a50c: 0x6c6e4820, 0x1a50d: 0x6d0c5620, 0x1a50e: 0x6c4d5420, 0x1a50f: 0x6cf1fc20,
-	0x1a510: 0x6d378e20, 0x1a511: 0x6cabb020, 0x1a512: 0x6c323220, 0x1a513: 0x6c617e20,
-	0x1a514: 0x6c792820, 0x1a515: 0x6d381220, 0x1a516: 0x6d108a20, 0x1a517: 0x6c6cd420,
-	0x1a518: 0x6d277e20, 0x1a519: 0x6c9eaa20, 0x1a51a: 0x6c3d1e20, 0x1a51b: 0x6c1ca420,
-	0x1a51c: 0x6d267a20, 0x1a51d: 0x6d3c0a20, 0x1a51e: 0x6ca96220, 0x1a51f: 0x6d0e3a20,
-	0x1a520: 0x6ca30620, 0x1a521: 0x6d02a820, 0x1a522: 0x6c3b5220, 0x1a523: 0x6c08ba20,
-	0x1a524: 0x6d20ae20, 0x1a525: 0x6ceb6e20, 0x1a526: 0x6c3c1820, 0x1a527: 0x6ced7220,
-	0x1a528: 0x6c39a220, 0x1a529: 0x6cf41e20, 0x1a52a: 0x6d22cc20, 0x1a52b: 0x6c4a3620,
-	0x1a52c: 0x6c323a20, 0x1a52d: 0x6c036420, 0x1a52e: 0x6ca5b420, 0x1a52f: 0x6d38cc20,
-	0x1a530: 0x6d3d2c20, 0x1a531: 0x6d2f5620, 0x1a532: 0x6c267c20, 0x1a533: 0x6ca39820,
-	0x1a534: 0x6d25fe20, 0x1a535: 0x6ce80820, 0x1a536: 0x6cfb2a20, 0x1a537: 0x6d343c20,
-	0x1a538: 0x6c353020, 0x1a539: 0x6c9a7420, 0x1a53a: 0x6ca0c620, 0x1a53b: 0x6cb4d020,
-	0x1a53c: 0x6c092a20, 0x1a53d: 0x6ccfaa20, 0x1a53e: 0x6cbc9420, 0x1a53f: 0x6c353220,
-	// Block 0x695, offset 0x1a540
-	0x1a540: 0x6c50c420, 0x1a541: 0x6d062c20, 0x1a542: 0x6c37f820, 0x1a543: 0x6d328420,
-	0x1a544: 0x6c9f2820, 0x1a545: 0x6c04e620, 0x1a546: 0x6ca22820, 0x1a547: 0x6c3d3e20,
-	0x1a548: 0x6c8ca420, 0x1a549: 0x6d3ee220, 0x1a54a: 0x6d3ee420, 0x1a54b: 0x6cd2b420,
-	0x1a54c: 0x6cc4ac20, 0x1a54d: 0x6cccc020, 0x1a54e: 0x6d0f4620, 0x1a54f: 0x6c975c20,
-	0x1a550: 0x6c6c1620, 0x1a551: 0x6c46ee20, 0x1a552: 0x6cd88020, 0x1a553: 0x6d041420,
-	0x1a554: 0x6cef8e20, 0x1a555: 0x6d3e0c20, 0x1a556: 0x6c71f620, 0x1a557: 0x6cccc220,
-	0x1a558: 0x6cb1e820, 0x1a559: 0x6cc5d420, 0x1a55a: 0x6d10d620, 0x1a55b: 0x6c305820,
-	0x1a55c: 0x6c674c20, 0x1a55d: 0x6cd4b020, 0x1a55e: 0x6c5ff020, 0x1a55f: 0x6c40e620,
-	0x1a560: 0x6cfe1c20, 0x1a561: 0x6c572a20, 0x1a562: 0x6c72da20, 0x1a563: 0x6c682c20,
-	0x1a564: 0x6c469c20, 0x1a565: 0x6c81a220, 0x1a566: 0x6c647420, 0x1a567: 0x6c647620,
-	0x1a568: 0x6d148c20, 0x1a569: 0x6ca75c20, 0x1a56a: 0x6d344220, 0x1a56b: 0x6c5e9820,
-	0x1a56c: 0x6c5ea220, 0x1a56d: 0x6cfc8a20, 0x1a56e: 0x6c525620, 0x1a56f: 0x6c49de20,
-	0x1a570: 0x6c756020, 0x1a571: 0x6c7ac020, 0x1a572: 0x6d0e4420, 0x1a573: 0x6ca02c20,
-	0x1a574: 0x6c8ad020, 0x1a575: 0x6cae0a20, 0x1a576: 0x6c35ee20, 0x1a577: 0x6d202220,
-	0x1a578: 0x6d0c6e20, 0x1a579: 0x6c143420, 0x1a57a: 0x6ccfb820, 0x1a57b: 0x6d19ae20,
-	0x1a57c: 0x6cd24e20, 0x1a57d: 0x6c4ad220, 0x1a57e: 0x6cc2be20, 0x1a57f: 0x6d3e0e20,
-	// Block 0x696, offset 0x1a580
-	0x1a580: 0x6cd90820, 0x1a581: 0x6cee6820, 0x1a582: 0x6c530e20, 0x1a583: 0x6cec0420,
-	0x1a584: 0x6c907e20, 0x1a585: 0x6d0b8420, 0x1a586: 0x6cc52020, 0x1a587: 0x6c682e20,
-	0x1a588: 0x6c942e20, 0x1a589: 0x6cb24e20, 0x1a58a: 0x6cfc9e20, 0x1a58b: 0x6cced020,
-	0x1a58c: 0x6c850820, 0x1a58d: 0x6c19c820, 0x1a58e: 0x6d017a20, 0x1a58f: 0x6c984a20,
-	0x1a590: 0x6c3d5c20, 0x1a591: 0x6cdd1020, 0x1a592: 0x6c99e420, 0x1a593: 0x6cef9c20,
-	0x1a594: 0x6c789420, 0x1a595: 0x6c21ae20, 0x1a596: 0x6c21b020, 0x1a597: 0x6ce6b820,
-	0x1a598: 0x6ca78820, 0x1a599: 0x6d03da20, 0x1a59a: 0x6ca3ee20, 0x1a59b: 0x6d20ec20,
-	0x1a59c: 0x6ca31a20, 0x1a59d: 0x6cb3c820, 0x1a59e: 0x6ca56820, 0x1a59f: 0x6c72e220,
-	0x1a5a0: 0x6ccfc620, 0x1a5a1: 0x6d35ae20, 0x1a5a2: 0x6c4df020, 0x1a5a3: 0x6c2c2c20,
-	0x1a5a4: 0x6d3c1020, 0x1a5a5: 0x6c355220, 0x1a5a6: 0x6cb20820, 0x1a5a7: 0x6ce9f820,
-	0x1a5a8: 0x6cfca020, 0x1a5a9: 0x6c9e1020, 0x1a5aa: 0x6cf3ae20, 0x1a5ab: 0x6d0c7020,
-	0x1a5ac: 0x6cf44220, 0x1a5ad: 0x6c001e20, 0x1a5ae: 0x6d0c7c20, 0x1a5af: 0x6d20ee20,
-	0x1a5b0: 0x6cd89a20, 0x1a5b1: 0x6d20f020, 0x1a5b2: 0x6cebd020, 0x1a5b3: 0x6c87de20,
-	0x1a5b4: 0x6cfb3a20, 0x1a5b5: 0x6c707c20, 0x1a5b6: 0x6cc24220, 0x1a5b7: 0x6d3c8020,
-	0x1a5b8: 0x6cb4e220, 0x1a5b9: 0x6cfb4020, 0x1a5ba: 0x6d3d4820, 0x1a5bb: 0x6c2ff020,
-	0x1a5bc: 0x6c166420, 0x1a5bd: 0x6c923420, 0x1a5be: 0x6c006420, 0x1a5bf: 0x6c353620,
-	// Block 0x697, offset 0x1a5c0
-	0x1a5c0: 0x6c353820, 0x1a5c1: 0x6c908620, 0x1a5c2: 0x6c9dbe20, 0x1a5c3: 0x6c239020,
-	0x1a5c4: 0x6cb3f020, 0x1a5c5: 0x6c710e20, 0x1a5c6: 0x6cb32820, 0x1a5c7: 0x6c10f620,
-	0x1a5c8: 0x6c8cde20, 0x1a5c9: 0x6ced0020, 0x1a5ca: 0x6c0c7220, 0x1a5cb: 0x6cfeb020,
-	0x1a5cc: 0x6cd52620, 0x1a5cd: 0x6cb6f020, 0x1a5ce: 0x6c5ab020, 0x1a5cf: 0x6c394020,
-	0x1a5d0: 0x6cf2b220, 0x1a5d1: 0x6cc89820, 0x1a5d2: 0x6cdfda20, 0x1a5d3: 0x6c39f820,
-	0x1a5d4: 0x6c3b0420, 0x1a5d5: 0x6c6aae20, 0x1a5d6: 0x6ce46020, 0x1a5d7: 0x6ca5d620,
-	0x1a5d8: 0x6cc2d820, 0x1a5d9: 0x6c6e5820, 0x1a5da: 0x6c5cbc20, 0x1a5db: 0x6c6da420,
-	0x1a5dc: 0x6cb8d220, 0x1a5dd: 0x6c2d4c20, 0x1a5de: 0x6d042620, 0x1a5df: 0x6c568a20,
-	0x1a5e0: 0x6cec8820, 0x1a5e1: 0x6c7ef220, 0x1a5e2: 0x6c097420, 0x1a5e3: 0x6d19dc20,
-	0x1a5e4: 0x6c1d6820, 0x1a5e5: 0x6ca52e20, 0x1a5e6: 0x6c3fe420, 0x1a5e7: 0x6c6e6e20,
-	0x1a5e8: 0x6c94ec20, 0x1a5e9: 0x6c01b820, 0x1a5ea: 0x6c7f9420, 0x1a5eb: 0x6c7d5220,
-	0x1a5ec: 0x6d1a5220, 0x1a5ed: 0x6d0b9220, 0x1a5ee: 0x6c707e20, 0x1a5ef: 0x6c85e820,
-	0x1a5f0: 0x6c2d1220, 0x1a5f1: 0x6cfb4220, 0x1a5f2: 0x6c57da20, 0x1a5f3: 0x6c579220,
-	0x1a5f4: 0x6d1bac20, 0x1a5f5: 0x6c14ee20, 0x1a5f6: 0x6cd05a20, 0x1a5f7: 0x6ce66e20,
-	0x1a5f8: 0x6c296420, 0x1a5f9: 0x6d11ac20, 0x1a5fa: 0x6cf4e620, 0x1a5fb: 0x6ca44820,
-	0x1a5fc: 0x6c21b220, 0x1a5fd: 0x6c641420, 0x1a5fe: 0x6ce7d820, 0x1a5ff: 0x6d06d220,
-	// Block 0x698, offset 0x1a600
-	0x1a600: 0x6d233020, 0x1a601: 0x6cef0a20, 0x1a602: 0x6c2c5420, 0x1a603: 0x6cc74820,
-	0x1a604: 0x6c9a5620, 0x1a605: 0x6c27de20, 0x1a606: 0x6cc86220, 0x1a607: 0x6cbd2c20,
-	0x1a608: 0x6c5ab220, 0x1a609: 0x6cf2ea20, 0x1a60a: 0x6cb99420, 0x1a60b: 0x6c210820,
-	0x1a60c: 0x6c9e7420, 0x1a60d: 0x6c3fec20, 0x1a60e: 0x6c6b9620, 0x1a60f: 0x6c329820,
-	0x1a610: 0x6d151420, 0x1a611: 0x6d382a20, 0x1a612: 0x6c99f820, 0x1a613: 0x6c59be20,
-	0x1a614: 0x6c9dc220, 0x1a615: 0x6c013020, 0x1a616: 0x6d1bae20, 0x1a617: 0x6d079420,
-	0x1a618: 0x6c6a0e20, 0x1a619: 0x6cee8220, 0x1a61a: 0x6c9a8e20, 0x1a61b: 0x6d261620,
-	0x1a61c: 0x6d32c220, 0x1a61d: 0x6cbfae20, 0x1a61e: 0x6cd37a20, 0x1a61f: 0x6d01a820,
-	0x1a620: 0x6ceb7c20, 0x1a621: 0x6c88f620, 0x1a622: 0x6c997820, 0x1a623: 0x6cc4c420,
-	0x1a624: 0x6cd7e620, 0x1a625: 0x6cb0f220, 0x1a626: 0x6cf08e20, 0x1a627: 0x6cebd820,
-	0x1a628: 0x6c6ff420, 0x1a629: 0x6c555620, 0x1a62a: 0x6c02a620, 0x1a62b: 0x6cbd1420,
-	0x1a62c: 0x6c05fe20, 0x1a62d: 0x6d059220, 0x1a62e: 0x6ce7da20, 0x1a62f: 0x6c4a6420,
-	0x1a630: 0x6c1e8a20, 0x1a631: 0x6d110620, 0x1a632: 0x6cb09e20, 0x1a633: 0x6cf78420,
-	0x1a634: 0x6d257a20, 0x1a635: 0x6d1d4020, 0x1a636: 0x6cc67020, 0x1a637: 0x6cc81a20,
-	0x1a638: 0x6c1ab620, 0x1a639: 0x6c8e6620, 0x1a63a: 0x6c9a5e20, 0x1a63b: 0x6cac5c20,
-	0x1a63c: 0x6c02a820, 0x1a63d: 0x6c966020, 0x1a63e: 0x6c46ae20, 0x1a63f: 0x6c7cf620,
-	// Block 0x699, offset 0x1a640
-	0x1a640: 0x6cbd8020, 0x1a641: 0x6c644820, 0x1a642: 0x6ccae420, 0x1a643: 0x6d315e20,
-	0x1a644: 0x6d257c20, 0x1a645: 0x6c6a1020, 0x1a646: 0x6cc68020, 0x1a647: 0x6ca00420,
-	0x1a648: 0x6d1bc220, 0x1a649: 0x6c604c20, 0x1a64a: 0x6cdac820, 0x1a64b: 0x6ca79c20,
-	0x1a64c: 0x6cfb6c20, 0x1a64d: 0x6ce1ce20, 0x1a64e: 0x6cad0020, 0x1a64f: 0x6c80b220,
-	0x1a650: 0x6ca4fc20, 0x1a651: 0x6c05ca20, 0x1a652: 0x6c00a620, 0x1a653: 0x6cb0a020,
-	0x1a654: 0x6cb20e20, 0x1a655: 0x6d182020, 0x1a656: 0x6cb17e20, 0x1a657: 0x6d238a20,
-	0x1a658: 0x6c824220, 0x1a659: 0x6d081820, 0x1a65a: 0x6c975820, 0x1a65b: 0x6d140020,
-	0x1a65c: 0x6d2ec220, 0x1a65d: 0x6c773820, 0x1a65e: 0x6d1d9820, 0x1a65f: 0x6ca6a820,
-	0x1a660: 0x6c840e20, 0x1a661: 0x6c2b7a20, 0x1a662: 0x6c4a7820, 0x1a663: 0x6d0c1a20,
-	0x1a664: 0x6c6c9c20, 0x1a665: 0x6d3b8420, 0x1a666: 0x6c16b820, 0x1a667: 0x6d2ada20,
-	0x1a668: 0x6c4dac20, 0x1a669: 0x6ca59c20, 0x1a66a: 0x6c81d820, 0x1a66b: 0x6ca05c20,
-	0x1a66c: 0x6d300220, 0x1a66d: 0x6c56ae20, 0x1a66e: 0x6c56b020, 0x1a66f: 0x6c02d620,
-	0x1a670: 0x6ca59e20, 0x1a671: 0x6cbb1220, 0x1a672: 0x6c96f620, 0x1a673: 0x6cb1e420,
-	0x1a674: 0x6c472a20, 0x1a675: 0x6cf46020, 0x1a676: 0x6cbbea20, 0x1a677: 0x6ceb8820,
-	0x1a678: 0x6d2e1020, 0x1a679: 0x6c98f020, 0x1a67a: 0x6cfb7820, 0x1a67b: 0x6cfb7a20,
-	0x1a67c: 0x6ca14a20, 0x1a67d: 0x6c8a0420, 0x1a67e: 0x6c883020, 0x1a67f: 0x6c57b820,
-	// Block 0x69a, offset 0x1a680
-	0x1a680: 0x6c4a8420, 0x1a681: 0x6c2aa620, 0x1a682: 0x6d348c20, 0x1a683: 0x6d05ce20,
-	0x1a684: 0x6d140a20, 0x1a685: 0x6c579c20, 0x1a686: 0x6cf69220, 0x1a687: 0x6c7d0a20,
-	0x1a688: 0x6cc52820, 0x1a689: 0x6cf69420, 0x1a68a: 0x6d0ea020, 0x1a68b: 0x6c151820,
-	0x1a68c: 0x6c686420, 0x1a68d: 0x6c9a6620, 0x1a68e: 0x6c396820, 0x1a68f: 0x6c385620,
-	0x1a690: 0x6cfad420, 0x1a691: 0x6d188620, 0x1a692: 0x6c5c2a20, 0x1a693: 0x6c69c420,
-	0x1a694: 0x6c405220, 0x1a695: 0x6cd3d820, 0x1a696: 0x6c0a4620, 0x1a697: 0x6ccda420,
-	0x1a698: 0x6cdc5a20, 0x1a699: 0x6cbb2020, 0x1a69a: 0x6c88c820, 0x1a69b: 0x6c589420,
-	0x1a69c: 0x6d02ec20, 0x1a69d: 0x6ca7aa20, 0x1a69e: 0x6c303420, 0x1a69f: 0x6d188820,
-	0x1a6a0: 0x6c117020, 0x1a6a1: 0x6c00c820, 0x1a6a2: 0x6ca77820, 0x1a6a3: 0x6ca92220,
-	0x1a6a4: 0x6c966420, 0x1a6a5: 0x6ce5ce20, 0x1a6a6: 0x6c1de220, 0x1a6a7: 0x6c6d5820,
-	0x1a6a8: 0x6c226820, 0x1a6a9: 0x6d219e20, 0x1a6aa: 0x6cb21620, 0x1a6ab: 0x6cc6be20,
-	0x1a6ac: 0x6cc7ce20, 0x1a6ad: 0x6ca3a820, 0x1a6ae: 0x6d0c3220, 0x1a6af: 0x6cdf4620,
-	0x1a6b0: 0x6d1bfc20, 0x1a6b1: 0x6c11b620, 0x1a6b2: 0x6ca7b220, 0x1a6b3: 0x6d26ea20,
-	0x1a6b4: 0x6d1c9620, 0x1a6b5: 0x6c9dd620, 0x1a6b6: 0x6c0ae620, 0x1a6b7: 0x6c966620,
-	0x1a6b8: 0x6cd08020, 0x1a6b9: 0x6d043e20, 0x1a6ba: 0x6ca6d420, 0x1a6bb: 0x6c31c820,
-	0x1a6bc: 0x6c8f2020, 0x1a6bd: 0x6d251c20, 0x1a6be: 0x6c804820, 0x1a6bf: 0x6d0ee820,
-	// Block 0x69b, offset 0x1a6c0
-	0x1a6c0: 0x6cd6a820, 0x1a6c1: 0x6c8d8c20, 0x1a6c2: 0x6c696620, 0x1a6c3: 0x6ca77a20,
-	0x1a6c4: 0x6c804c20, 0x1a6c5: 0x6cb94420, 0x1a6c6: 0x6d1c1a20, 0x1a6c7: 0x6cd6ae20,
-	0x1a6c8: 0x6c5c9020, 0x1a6c9: 0x6cc32620, 0x1a6ca: 0x6c9d0a20, 0x1a6cb: 0x6c84b820,
-	0x1a6cc: 0x6c944e20, 0x1a6cd: 0x6d0d0e20, 0x1a6ce: 0x6d3a4020, 0x1a6cf: 0x6c805820,
-	0x1a6d0: 0x6d3f6820, 0x1a6d1: 0x6c6a5220, 0x1a6d2: 0x6c73c420, 0x1a6d3: 0x6c73c620,
-	0x1a6d4: 0x6c799220, 0x1a6d5: 0x6d281220, 0x1a6d6: 0x6c965e20, 0x1a6d7: 0x6d3f2820,
-	0x1a6d8: 0x6c25a020, 0x1a6d9: 0x6cdcca20, 0x1a6da: 0x6c3dd620, 0x1a6db: 0x6c06d620,
-	0x1a6dc: 0x6d3e0020, 0x1a6dd: 0x6cffcc20, 0x1a6de: 0x6d031a20, 0x1a6df: 0x6c9bfe20,
-	0x1a6e0: 0x6cd88c20, 0x1a6e1: 0x6cdf0220, 0x1a6e2: 0x6c05a420, 0x1a6e3: 0x6c619220,
-	0x1a6e4: 0x6c46f020, 0x1a6e5: 0x6caa3c20, 0x1a6e6: 0x6d08f820, 0x1a6e7: 0x6d206a20,
-	0x1a6e8: 0x6d3ba220, 0x1a6e9: 0x6c4d1e20, 0x1a6ea: 0x6c943020, 0x1a6eb: 0x6cdcd020,
-	0x1a6ec: 0x6ca48e20, 0x1a6ed: 0x6c9ec420, 0x1a6ee: 0x6c239220, 0x1a6ef: 0x6cb8d420,
-	0x1a6f0: 0x6cd52820, 0x1a6f1: 0x6c11f620, 0x1a6f2: 0x6d0aea20, 0x1a6f3: 0x6d3e3420,
-	0x1a6f4: 0x6ca63e20, 0x1a6f5: 0x6c3d8820, 0x1a6f6: 0x6d3e4e20, 0x1a6f7: 0x6c841020,
-	0x1a6f8: 0x6d091820, 0x1a6f9: 0x6c0ff620, 0x1a6fa: 0x6cc7d020, 0x1a6fb: 0x6ca38820,
-	0x1a6fc: 0x6ca89020, 0x1a6fd: 0x6ca89220, 0x1a6fe: 0x6d1c1c20, 0x1a6ff: 0x6c945020,
-	// Block 0x69c, offset 0x1a700
-	0x1a700: 0x6c9db620, 0x1a701: 0x6ca8f220, 0x1a702: 0x6cc6ee20, 0x1a703: 0x6cdddc20,
-	0x1a704: 0x6c4ab820, 0x1a705: 0x6d2d1820, 0x1a706: 0x6cbef820, 0x1a707: 0x6d221620,
-	0x1a708: 0x6cd43a20, 0x1a709: 0x6c011220, 0x1a70a: 0x6ce83820, 0x1a70b: 0x6cd97e20,
-	0x1a70c: 0x6cecc020, 0x1a70d: 0x6cc78420, 0x1a70e: 0x6d118220, 0x1a70f: 0x6c52f220,
-	0x1a710: 0x6d145e20, 0x1a711: 0x6c6e0c20, 0x1a712: 0x6d3cc820, 0x1a713: 0x6c9d2220,
-	0x1a714: 0x6d3a5820, 0x1a715: 0x6c295620, 0x1a716: 0x6c530020, 0x1a717: 0x6d3f7020,
-	0x1a718: 0x6c490420, 0x1a719: 0x6d38fe20, 0x1a71a: 0x6c2f9620, 0x1a71b: 0x6cecee20,
-	0x1a71c: 0x6d198e20, 0x1a71d: 0x6c05e220, 0x1a71e: 0x6cd24220, 0x1a71f: 0x6cd24420,
-	0x1a720: 0x6c1d3620, 0x1a721: 0x6cd04620, 0x1a722: 0x6c788c20, 0x1a723: 0x6d078220,
-	0x1a724: 0x6cd32c20, 0x1a725: 0x6d202420, 0x1a726: 0x6c58fa20, 0x1a727: 0x6d14b820,
-	0x1a728: 0x6ce5b820, 0x1a729: 0x6cd2be20, 0x1a72a: 0x6cfc8c20, 0x1a72b: 0x6c456e20,
-	0x1a72c: 0x6c19ca20, 0x1a72d: 0x6cc44220, 0x1a72e: 0x6c457a20, 0x1a72f: 0x6cfe9420,
-	0x1a730: 0x6d291220, 0x1a731: 0x6d2cba20, 0x1a732: 0x6c05f020, 0x1a733: 0x6c4d5e20,
-	0x1a734: 0x6d0e4e20, 0x1a735: 0x6cfe9620, 0x1a736: 0x6c634020, 0x1a737: 0x6cd05020,
-	0x1a738: 0x6c18ae20, 0x1a739: 0x6cc66020, 0x1a73a: 0x6c5a4c20, 0x1a73b: 0x6c9d3020,
-	0x1a73c: 0x6c79e020, 0x1a73d: 0x6c7b5220, 0x1a73e: 0x6c0d2e20, 0x1a73f: 0x6cdaa020,
-	// Block 0x69d, offset 0x1a740
-	0x1a740: 0x6c112420, 0x1a741: 0x6d296620, 0x1a742: 0x6c61de20, 0x1a743: 0x6d24da20,
-	0x1a744: 0x6c61e020, 0x1a745: 0x6d1a5420, 0x1a746: 0x6c9d3620, 0x1a747: 0x6c79e620,
-	0x1a748: 0x6cbe4220, 0x1a749: 0x6cc3b420, 0x1a74a: 0x6d315620, 0x1a74b: 0x6c668820,
-	0x1a74c: 0x6c3fee20, 0x1a74d: 0x6ca90420, 0x1a74e: 0x6c0e1e20, 0x1a74f: 0x6c587420,
-	0x1a750: 0x6c9a9020, 0x1a751: 0x6cbdd620, 0x1a752: 0x6c4e0c20, 0x1a753: 0x6d233220,
-	0x1a754: 0x6cd26620, 0x1a755: 0x6ca90620, 0x1a756: 0x6c6d1020, 0x1a757: 0x6ca90a20,
-	0x1a758: 0x6d365020, 0x1a759: 0x6d226820, 0x1a75a: 0x6c060220, 0x1a75b: 0x6c7b5620,
-	0x1a75c: 0x6ca90c20, 0x1a75d: 0x6cbddc20, 0x1a75e: 0x6ca12820, 0x1a75f: 0x6c13f220,
-	0x1a760: 0x6c726020, 0x1a761: 0x6c489c20, 0x1a762: 0x6cbde220, 0x1a763: 0x6c54e420,
-	0x1a764: 0x6cf50a20, 0x1a765: 0x6c89f020, 0x1a766: 0x6cd27a20, 0x1a767: 0x6ca91020,
-	0x1a768: 0x6d2d4620, 0x1a769: 0x6cd06820, 0x1a76a: 0x6ceffc20, 0x1a76b: 0x6d014820,
-	0x1a76c: 0x6c7b5820, 0x1a76d: 0x6c5c0e20, 0x1a76e: 0x6c8a0620, 0x1a76f: 0x6c75e220,
-	0x1a770: 0x6c589620, 0x1a771: 0x6d18c020, 0x1a772: 0x6d156a20, 0x1a773: 0x6c061c20,
-	0x1a774: 0x6cbd4a20, 0x1a775: 0x6c1d4620, 0x1a776: 0x6c062020, 0x1a777: 0x6c3c7c20,
-	0x1a778: 0x6c25b020, 0x1a779: 0x6c332c20, 0x1a77a: 0x6cd87820, 0x1a77b: 0x6d09d420,
-	0x1a77c: 0x6c29ce20, 0x1a77d: 0x6c93ca20, 0x1a77e: 0x6c333620, 0x1a77f: 0x6cd45020,
-	// Block 0x69e, offset 0x1a780
-	0x1a780: 0x6cb34a20, 0x1a781: 0x6c3c2420, 0x1a782: 0x6d3b7420, 0x1a783: 0x6c3d5e20,
-	0x1a784: 0x6ccf3a20, 0x1a785: 0x6c789620, 0x1a786: 0x6c674e20, 0x1a787: 0x6c675c20,
-	0x1a788: 0x6d3b7a20, 0x1a789: 0x6cf08420, 0x1a78a: 0x6d41e820, 0x1a78b: 0x6d0a0c20,
-	0x1a78c: 0x6cd5d220, 0x1a78d: 0x6c335420, 0x1a78e: 0x6c29e820, 0x1a78f: 0x6cffa220,
-	0x1a790: 0x6c6a5420, 0x1a791: 0x6cceac20, 0x1a792: 0x6c377e20, 0x1a793: 0x6c378020,
-	0x1a794: 0x6c378220, 0x1a795: 0x6c40d020, 0x1a796: 0x6c645e20, 0x1a797: 0x6cd49a20,
-	0x1a798: 0x6c189220, 0x1a799: 0x6cce4a20, 0x1a79a: 0x6cce4c20, 0x1a79b: 0x6ca1b420,
-	0x1a79c: 0x6c40c620, 0x1a79d: 0x6c169e20, 0x1a79e: 0x6c8a9a20, 0x1a79f: 0x6cfc1020,
-	0x1a7a0: 0x6cfc1220, 0x1a7a1: 0x6c7dde20, 0x1a7a2: 0x6d1edc20, 0x1a7a3: 0x6cedbc20,
-	0x1a7a4: 0x6d1ede20, 0x1a7a5: 0x6c8a8c20, 0x1a7a6: 0x6c8a8e20, 0x1a7a7: 0x6d10ca20,
-	0x1a7a8: 0x6c983020, 0x1a7a9: 0x6cedc620, 0x1a7aa: 0x6cedc020, 0x1a7ab: 0x6cedc220,
-	0x1a7ac: 0x6c40d420, 0x1a7ad: 0x6d10cc20, 0x1a7ae: 0x6c34d620, 0x1a7af: 0x6c7cec20,
-	0x1a7b0: 0x6d37f020, 0x1a7b1: 0x6c6ff620, 0x1a7b2: 0x6c419c20, 0x1a7b3: 0x6c478820,
-	0x1a7b4: 0x6c419e20, 0x1a7b5: 0x6ce9b420, 0x1a7b6: 0x6c41b620, 0x1a7b7: 0x6c41b820,
-	0x1a7b8: 0x6cd18a20, 0x1a7b9: 0x6d1ac220, 0x1a7ba: 0x6c1b7020, 0x1a7bb: 0x6c779020,
-	0x1a7bc: 0x6ca5b620, 0x1a7bd: 0x6c6c8020, 0x1a7be: 0x6cef8620, 0x1a7bf: 0x6ca7d020,
-	// Block 0x69f, offset 0x1a7c0
-	0x1a7c0: 0x6c70f020, 0x1a7c1: 0x6cb08620, 0x1a7c2: 0x6c134e20, 0x1a7c3: 0x6cf83c20,
-	0x1a7c4: 0x6c086c20, 0x1a7c5: 0x6c705620, 0x1a7c6: 0x6c6bbe20, 0x1a7c7: 0x6ce48020,
-	0x1a7c8: 0x6cc0dc20, 0x1a7c9: 0x6ce44c20, 0x1a7ca: 0x6c6bc020, 0x1a7cb: 0x6cf35620,
-	0x1a7cc: 0x6c2dfa20, 0x1a7cd: 0x6cd1a220, 0x1a7ce: 0x6cd2c020, 0x1a7cf: 0x6cb28020,
-	0x1a7d0: 0x6c5ea420, 0x1a7d1: 0x6d017c20, 0x1a7d2: 0x6d31c620, 0x1a7d3: 0x6d017e20,
-	0x1a7d4: 0x6ca5ca20, 0x1a7d5: 0x6d2de020, 0x1a7d6: 0x6cf5ba20, 0x1a7d7: 0x6cef9e20,
-	0x1a7d8: 0x6c97b420, 0x1a7d9: 0x6c353a20, 0x1a7da: 0x6c910620, 0x1a7db: 0x6cb29820,
-	0x1a7dc: 0x6ce44e20, 0x1a7dd: 0x6c3aa420, 0x1a7de: 0x6cd55820, 0x1a7df: 0x6d01aa20,
-	0x1a7e0: 0x6ce8a020, 0x1a7e1: 0x6c939a20, 0x1a7e2: 0x6c93a620, 0x1a7e3: 0x6cf7f820,
-	0x1a7e4: 0x6c135420, 0x1a7e5: 0x6c93ae20, 0x1a7e6: 0x6c727820, 0x1a7e7: 0x6d01f620,
-	0x1a7e8: 0x6c72a420, 0x1a7e9: 0x6c73ba20, 0x1a7ea: 0x6c8a3020, 0x1a7eb: 0x6c74e620,
-	0x1a7ec: 0x6cd58820, 0x1a7ed: 0x6cf93a20, 0x1a7ee: 0x6c17fa20, 0x1a7ef: 0x6cea3620,
-	0x1a7f0: 0x6ca67420, 0x1a7f1: 0x6cccb020, 0x1a7f2: 0x6cec4820, 0x1a7f3: 0x6cfa6c20,
-	0x1a7f4: 0x6c856820, 0x1a7f5: 0x6c35c620, 0x1a7f6: 0x6c2a5420, 0x1a7f7: 0x6c5ca820,
-	0x1a7f8: 0x6c8f6820, 0x1a7f9: 0x6d165c20, 0x1a7fa: 0x6cb6ca20, 0x1a7fb: 0x6cc5b020,
-	0x1a7fc: 0x6cf49e20, 0x1a7fd: 0x6c4e8020, 0x1a7fe: 0x6ccf9c20, 0x1a7ff: 0x6d221820,
-	// Block 0x6a0, offset 0x1a800
-	0x1a800: 0x6c1e5220, 0x1a801: 0x6cdc1e20, 0x1a802: 0x6cb6cc20, 0x1a803: 0x6cc5b220,
-	0x1a804: 0x6d267c20, 0x1a805: 0x6c04b820, 0x1a806: 0x6d118420, 0x1a807: 0x6c01f220,
-	0x1a808: 0x6d0b0e20, 0x1a809: 0x6cf4a620, 0x1a80a: 0x6c6a6e20, 0x1a80b: 0x6c35cc20,
-	0x1a80c: 0x6c5fc620, 0x1a80d: 0x6cb8a420, 0x1a80e: 0x6c3b5420, 0x1a80f: 0x6cecc420,
-	0x1a810: 0x6cb57020, 0x1a811: 0x6c132820, 0x1a812: 0x6cb96a20, 0x1a813: 0x6cb57220,
-	0x1a814: 0x6c142e20, 0x1a815: 0x6c6bb020, 0x1a816: 0x6cc0d020, 0x1a817: 0x6c429820,
-	0x1a818: 0x6cfc7a20, 0x1a819: 0x6c02c020, 0x1a81a: 0x6c7f8a20, 0x1a81b: 0x6c29d020,
-	0x1a81c: 0x6c031a20, 0x1a81d: 0x6d427c20, 0x1a81e: 0x6d427e20, 0x1a81f: 0x6d100220,
-	0x1a820: 0x6c71f820, 0x1a821: 0x6c425c20, 0x1a822: 0x6c785820, 0x1a823: 0x6c466e20,
-	0x1a824: 0x6d08fa20, 0x1a825: 0x6cb2fa20, 0x1a826: 0x6c858a20, 0x1a827: 0x6ce56e20,
-	0x1a828: 0x6cc0e020, 0x1a829: 0x6d0c6220, 0x1a82a: 0x6c3de420, 0x1a82b: 0x6d052e20,
-	0x1a82c: 0x6c640020, 0x1a82d: 0x6c8e0a20, 0x1a82e: 0x6ceaec20, 0x1a82f: 0x6cafb220,
-	0x1a830: 0x6c02c820, 0x1a831: 0x6c273020, 0x1a832: 0x6c7be020, 0x1a833: 0x6d268620,
-	0x1a834: 0x6cc0e220, 0x1a835: 0x6c566220, 0x1a836: 0x6cb36620, 0x1a837: 0x6c9f2a20,
-	0x1a838: 0x6c01a220, 0x1a839: 0x6ce57020, 0x1a83a: 0x6c8ca620, 0x1a83b: 0x6c1b0620,
-	0x1a83c: 0x6cb2ea20, 0x1a83d: 0x6c2fde20, 0x1a83e: 0x6c4e8c20, 0x1a83f: 0x6c7c3420,
-	// Block 0x6a1, offset 0x1a840
-	0x1a840: 0x6d053020, 0x1a841: 0x6c992a20, 0x1a842: 0x6ce71420, 0x1a843: 0x6d08fc20,
-	0x1a844: 0x6d16ae20, 0x1a845: 0x6c0be220, 0x1a846: 0x6c50d220, 0x1a847: 0x6c032c20,
-	0x1a848: 0x6c95e620, 0x1a849: 0x6c35f020, 0x1a84a: 0x6c3fc220, 0x1a84b: 0x6d09e420,
-	0x1a84c: 0x6c2e6c20, 0x1a84d: 0x6c921e20, 0x1a84e: 0x6c371e20, 0x1a84f: 0x6c373c20,
-	0x1a850: 0x6c40e820, 0x1a851: 0x6cc28c20, 0x1a852: 0x6c305a20, 0x1a853: 0x6d149420,
-	0x1a854: 0x6ca22e20, 0x1a855: 0x6cd25020, 0x1a856: 0x6c011a20, 0x1a857: 0x6ceee820,
-	0x1a858: 0x6c586220, 0x1a859: 0x6d359620, 0x1a85a: 0x6c9d2c20, 0x1a85b: 0x6c850220,
-	0x1a85c: 0x6c61a420, 0x1a85d: 0x6ce72220, 0x1a85e: 0x6ceeea20, 0x1a85f: 0x6d202620,
-	0x1a860: 0x6c483420, 0x1a861: 0x6cf99420, 0x1a862: 0x6c850420, 0x1a863: 0x6d10d820,
-	0x1a864: 0x6c698620, 0x1a865: 0x6d329420, 0x1a866: 0x6c943220, 0x1a867: 0x6c683020,
-	0x1a868: 0x6c355420, 0x1a869: 0x6c355620, 0x1a86a: 0x6d22ee20, 0x1a86b: 0x6d007a20,
-	0x1a86c: 0x6c100e20, 0x1a86d: 0x6cbc3620, 0x1a86e: 0x6cc43420, 0x1a86f: 0x6c3c3220,
-	0x1a870: 0x6c3c3420, 0x1a871: 0x6ca4a220, 0x1a872: 0x6c850a20, 0x1a873: 0x6d1f1420,
-	0x1a874: 0x6cfca220, 0x1a875: 0x6c532820, 0x1a876: 0x6c29d220, 0x1a877: 0x6ccfc820,
-	0x1a878: 0x6c19cc20, 0x1a879: 0x6ce88e20, 0x1a87a: 0x6c44f620, 0x1a87b: 0x6c75a220,
-	0x1a87c: 0x6c502620, 0x1a87d: 0x6cf9a020, 0x1a87e: 0x6d1a4620, 0x1a87f: 0x6d223a20,
-	// Block 0x6a2, offset 0x1a880
-	0x1a880: 0x6c811620, 0x1a881: 0x6c770820, 0x1a882: 0x6c814e20, 0x1a883: 0x6c7ee820,
-	0x1a884: 0x6cfbf220, 0x1a885: 0x6cc3aa20, 0x1a886: 0x6c797020, 0x1a887: 0x6c1d1020,
-	0x1a888: 0x6c1d1220, 0x1a889: 0x6cde4620, 0x1a88a: 0x6c8bac20, 0x1a88b: 0x6c578a20,
-	0x1a88c: 0x6c708420, 0x1a88d: 0x6c7ef420, 0x1a88e: 0x6cb5be20, 0x1a88f: 0x6c9f4420,
-	0x1a890: 0x6c7d5420, 0x1a891: 0x6c7d5620, 0x1a892: 0x6d40b420, 0x1a893: 0x6c480a20,
-	0x1a894: 0x6c24c820, 0x1a895: 0x6d0b2620, 0x1a896: 0x6d0b2820, 0x1a897: 0x6c429e20,
-	0x1a898: 0x6c94ee20, 0x1a899: 0x6c94f020, 0x1a89a: 0x6c837420, 0x1a89b: 0x6c742020,
-	0x1a89c: 0x6c342820, 0x1a89d: 0x6d32ac20, 0x1a89e: 0x6c4c1e20, 0x1a89f: 0x6d1a5620,
-	0x1a8a0: 0x6c2ff220, 0x1a8a1: 0x6c4dfa20, 0x1a8a2: 0x6d32ae20, 0x1a8a3: 0x6cefac20,
-	0x1a8a4: 0x6cff7e20, 0x1a8a5: 0x6cafde20, 0x1a8a6: 0x6d0bf220, 0x1a8a7: 0x6cd91420,
-	0x1a8a8: 0x6c6ab220, 0x1a8a9: 0x6c07e220, 0x1a8aa: 0x6d40b620, 0x1a8ab: 0x6c7a3c20,
-	0x1a8ac: 0x6c2ff420, 0x1a8ad: 0x6d2de420, 0x1a8ae: 0x6c480c20, 0x1a8af: 0x6d1a5820,
-	0x1a8b0: 0x6d3f6a20, 0x1a8b1: 0x6d2b4e20, 0x1a8b2: 0x6c59c020, 0x1a8b3: 0x6d211820,
-	0x1a8b4: 0x6cec6220, 0x1a8b5: 0x6d0fb220, 0x1a8b6: 0x6c3c4a20, 0x1a8b7: 0x6cc05c20,
-	0x1a8b8: 0x6d0fb420, 0x1a8b9: 0x6ce32020, 0x1a8ba: 0x6d15ec20, 0x1a8bb: 0x6d361e20,
-	0x1a8bc: 0x6cd37c20, 0x1a8bd: 0x6d291620, 0x1a8be: 0x6d11ae20, 0x1a8bf: 0x6c363020,
-	// Block 0x6a3, offset 0x1a8c0
-	0x1a8c0: 0x6d3af220, 0x1a8c1: 0x6c76ac20, 0x1a8c2: 0x6c93dc20, 0x1a8c3: 0x6d0d7a20,
-	0x1a8c4: 0x6c9a5820, 0x1a8c5: 0x6c4e0e20, 0x1a8c6: 0x6c5ec820, 0x1a8c7: 0x6c5eca20,
-	0x1a8c8: 0x6c591e20, 0x1a8c9: 0x6ce67020, 0x1a8ca: 0x6cd16a20, 0x1a8cb: 0x6c99fa20,
-	0x1a8cc: 0x6cba5220, 0x1a8cd: 0x6cf4e820, 0x1a8ce: 0x6d211a20, 0x1a8cf: 0x6d3f8420,
-	0x1a8d0: 0x6c7f9a20, 0x1a8d1: 0x6c786420, 0x1a8d2: 0x6d0c9220, 0x1a8d3: 0x6d0c9420,
-	0x1a8d4: 0x6cefbc20, 0x1a8d5: 0x6d3f8620, 0x1a8d6: 0x6c13e020, 0x1a8d7: 0x6cdc3c20,
-	0x1a8d8: 0x6cc67220, 0x1a8d9: 0x6c78ee20, 0x1a8da: 0x6cbd2e20, 0x1a8db: 0x6d211c20,
-	0x1a8dc: 0x6ce45220, 0x1a8dd: 0x6c90e220, 0x1a8de: 0x6ce8ba20, 0x1a8df: 0x6c330420,
-	0x1a8e0: 0x6cf64220, 0x1a8e1: 0x6cf25220, 0x1a8e2: 0x6c123020, 0x1a8e3: 0x6c296c20,
-	0x1a8e4: 0x6cc68220, 0x1a8e5: 0x6c6ae020, 0x1a8e6: 0x6c765e20, 0x1a8e7: 0x6c8e6820,
-	0x1a8e8: 0x6cf4fc20, 0x1a8e9: 0x6cd92420, 0x1a8ea: 0x6cbb7c20, 0x1a8eb: 0x6d3e3620,
-	0x1a8ec: 0x6cef0c20, 0x1a8ed: 0x6c07f620, 0x1a8ee: 0x6c2ccc20, 0x1a8ef: 0x6c25da20,
-	0x1a8f0: 0x6cba1220, 0x1a8f1: 0x6d1e4420, 0x1a8f2: 0x6ca83e20, 0x1a8f3: 0x6c25dc20,
-	0x1a8f4: 0x6c614820, 0x1a8f5: 0x6cd41620, 0x1a8f6: 0x6cc93c20, 0x1a8f7: 0x6cd96820,
-	0x1a8f8: 0x6d3fa020, 0x1a8f9: 0x6c67f420, 0x1a8fa: 0x6c89f220, 0x1a8fb: 0x6c773c20,
-	0x1a8fc: 0x6c15c620, 0x1a8fd: 0x6c2ec820, 0x1a8fe: 0x6c132420, 0x1a8ff: 0x6c2f7820,
-	// Block 0x6a4, offset 0x1a900
-	0x1a900: 0x6ce86820, 0x1a901: 0x6c90ec20, 0x1a902: 0x6d2f3a20, 0x1a903: 0x6d2dfe20,
-	0x1a904: 0x6d2e0020, 0x1a905: 0x6c024e20, 0x1a906: 0x6c127c20, 0x1a907: 0x6cc11e20,
-	0x1a908: 0x6cbac820, 0x1a909: 0x6c24d620, 0x1a90a: 0x6d418e20, 0x1a90b: 0x6c29e220,
-	0x1a90c: 0x6c29e420, 0x1a90d: 0x6cf79020, 0x1a90e: 0x6d238c20, 0x1a90f: 0x6cae2620,
-	0x1a910: 0x6c8f9a20, 0x1a911: 0x6cfe4420, 0x1a912: 0x6c135620, 0x1a913: 0x6c0e8620,
-	0x1a914: 0x6cbd3c20, 0x1a915: 0x6c686620, 0x1a916: 0x6d0dc620, 0x1a917: 0x6c816a20,
-	0x1a918: 0x6d2e7420, 0x1a919: 0x6c8bcc20, 0x1a91a: 0x6c8a0820, 0x1a91b: 0x6c8a0a20,
-	0x1a91c: 0x6c6c5020, 0x1a91d: 0x6c2ae220, 0x1a91e: 0x6c350a20, 0x1a91f: 0x6d41ee20,
-	0x1a920: 0x6c69ba20, 0x1a921: 0x6c4b6220, 0x1a922: 0x6d113420, 0x1a923: 0x6c686820,
-	0x1a924: 0x6d113620, 0x1a925: 0x6c748e20, 0x1a926: 0x6d2d9620, 0x1a927: 0x6d188a20,
-	0x1a928: 0x6d091a20, 0x1a929: 0x6ca4be20, 0x1a92a: 0x6d133820, 0x1a92b: 0x6d133a20,
-	0x1a92c: 0x6d155a20, 0x1a92d: 0x6ca87020, 0x1a92e: 0x6cfc2a20, 0x1a92f: 0x6c608220,
-	0x1a930: 0x6d020c20, 0x1a931: 0x6c786e20, 0x1a932: 0x6cf69820, 0x1a933: 0x6c2c9a20,
-	0x1a934: 0x6c02e620, 0x1a935: 0x6d419c20, 0x1a936: 0x6cf14820, 0x1a937: 0x6d156c20,
-	0x1a938: 0x6cc6c020, 0x1a939: 0x6c29f020, 0x1a93a: 0x6c8e1420, 0x1a93b: 0x6d28cc20,
-	0x1a93c: 0x6d228c20, 0x1a93d: 0x6d26f220, 0x1a93e: 0x6d1b0c20, 0x1a93f: 0x6cc83820,
-	// Block 0x6a5, offset 0x1a940
-	0x1a940: 0x6c6b5420, 0x1a941: 0x6c869c20, 0x1a942: 0x6c4a9820, 0x1a943: 0x6c8fbe20,
-	0x1a944: 0x6c8fc020, 0x1a945: 0x6c2ce420, 0x1a946: 0x6cc6d620, 0x1a947: 0x6cf72a20,
-	0x1a948: 0x6c718620, 0x1a949: 0x6c155020, 0x1a94a: 0x6d1d2220, 0x1a94b: 0x6c7c5420,
-	0x1a94c: 0x6d0cee20, 0x1a94d: 0x6ceec820, 0x1a94e: 0x6ca4d420, 0x1a94f: 0x6cc32820,
-	0x1a950: 0x6c17ac20, 0x1a951: 0x6c24a420, 0x1a952: 0x6c945220, 0x1a953: 0x6c2cf420,
-	0x1a954: 0x6c2cf620, 0x1a955: 0x6ca8e020, 0x1a956: 0x6d0d1220, 0x1a957: 0x6d0d1020,
-	0x1a958: 0x6d0e2020, 0x1a959: 0x6c7cbc20, 0x1a95a: 0x6d0e2220, 0x1a95b: 0x6c1fd620,
-	0x1a95c: 0x6c7b0820, 0x1a95d: 0x6c1fd820, 0x1a95e: 0x6d385020, 0x1a95f: 0x6c597020,
-	0x1a960: 0x6c6d8a20, 0x1a961: 0x6d09d820, 0x1a962: 0x6c175e20, 0x1a963: 0x6c176020,
-	0x1a964: 0x6c8b2620, 0x1a965: 0x6c454a20, 0x1a966: 0x6d426020, 0x1a967: 0x6cbc1a20,
-	0x1a968: 0x6c71e820, 0x1a969: 0x6c45ce20, 0x1a96a: 0x6c71f220, 0x1a96b: 0x6cf35220,
-	0x1a96c: 0x6cb4be20, 0x1a96d: 0x6cb4c020, 0x1a96e: 0x6c143620, 0x1a96f: 0x6cc05e20,
-	0x1a970: 0x6cc08220, 0x1a971: 0x6c610e20, 0x1a972: 0x6d15ac20, 0x1a973: 0x6cd87020,
-	0x1a974: 0x6c03e620, 0x1a975: 0x6d338a20, 0x1a976: 0x6d2f5820, 0x1a977: 0x6cfe1e20,
-	0x1a978: 0x6d14bc20, 0x1a979: 0x6c6c8820, 0x1a97a: 0x6d0a6c20, 0x1a97b: 0x6c734020,
-	0x1a97c: 0x6c033820, 0x1a97d: 0x6d0a8c20, 0x1a97e: 0x6c6c1a20, 0x1a97f: 0x6c3dc620,
-	// Block 0x6a6, offset 0x1a980
-	0x1a980: 0x6d287e20, 0x1a981: 0x6c090220, 0x1a982: 0x6cd2f020, 0x1a983: 0x6c105820,
-	0x1a984: 0x6c2f4620, 0x1a985: 0x6cd66220, 0x1a986: 0x6c384a20, 0x1a987: 0x6ca7ec20,
-	0x1a988: 0x6cd19020, 0x1a989: 0x6c3b0e20, 0x1a98a: 0x6cabe420, 0x1a98b: 0x6d34e020,
-	0x1a98c: 0x6cf57a20, 0x1a98d: 0x6c565420, 0x1a98e: 0x6c286420, 0x1a98f: 0x6ceede20,
-	0x1a990: 0x6d2f2020, 0x1a991: 0x6ce16e20, 0x1a992: 0x6c273220, 0x1a993: 0x6ca0c820,
-	0x1a994: 0x6cae0620, 0x1a995: 0x6cabe620, 0x1a996: 0x6ce5e820, 0x1a997: 0x6c0e4c20,
-	0x1a998: 0x6c87f220, 0x1a999: 0x6d358620, 0x1a99a: 0x6d397620, 0x1a99b: 0x6c0eb420,
-	0x1a99c: 0x6d358820, 0x1a99d: 0x6c2c2620, 0x1a99e: 0x6ca0de20, 0x1a99f: 0x6d16e220,
-	0x1a9a0: 0x6d16e420, 0x1a9a1: 0x6cb28220, 0x1a9a2: 0x6cb84820, 0x1a9a3: 0x6c731420,
-	0x1a9a4: 0x6cc79220, 0x1a9a5: 0x6cd66420, 0x1a9a6: 0x6c274020, 0x1a9a7: 0x6d334020,
-	0x1a9a8: 0x6cd71420, 0x1a9a9: 0x6cbc3820, 0x1a9aa: 0x6d313620, 0x1a9ab: 0x6cd1b020,
-	0x1a9ac: 0x6cc44420, 0x1a9ad: 0x6cf77020, 0x1a9ae: 0x6c051c20, 0x1a9af: 0x6c275020,
-	0x1a9b0: 0x6c4a4420, 0x1a9b1: 0x6c1d9420, 0x1a9b2: 0x6cb29a20, 0x1a9b3: 0x6d2f2c20,
-	0x1a9b4: 0x6cca4a20, 0x1a9b5: 0x6cec8a20, 0x1a9b6: 0x6c275c20, 0x1a9b7: 0x6ceefc20,
-	0x1a9b8: 0x6c16a420, 0x1a9b9: 0x6ccc4820, 0x1a9ba: 0x6cb5c220, 0x1a9bb: 0x6d2abe20,
-	0x1a9bc: 0x6c4c6820, 0x1a9bd: 0x6c997a20, 0x1a9be: 0x6c321620, 0x1a9bf: 0x6c540020,
-	// Block 0x6a7, offset 0x1a9c0
-	0x1a9c0: 0x6d334c20, 0x1a9c1: 0x6d059420, 0x1a9c2: 0x6c9d4420, 0x1a9c3: 0x6cef0e20,
-	0x1a9c4: 0x6cf2ec20, 0x1a9c5: 0x6c3e7620, 0x1a9c6: 0x6d179620, 0x1a9c7: 0x6c052e20,
-	0x1a9c8: 0x6cb2a420, 0x1a9c9: 0x6c2f3a20, 0x1a9ca: 0x6c459220, 0x1a9cb: 0x6cac5e20,
-	0x1a9cc: 0x6c5a5420, 0x1a9cd: 0x6ce1d220, 0x1a9ce: 0x6c9d5420, 0x1a9cf: 0x6c644a20,
-	0x1a9d0: 0x6ce2a020, 0x1a9d1: 0x6c5ad020, 0x1a9d2: 0x6d37c020, 0x1a9d3: 0x6cccfa20,
-	0x1a9d4: 0x6c97e620, 0x1a9d5: 0x6ca29420, 0x1a9d6: 0x6c0c0820, 0x1a9d7: 0x6c4c7220,
-	0x1a9d8: 0x6d2adc20, 0x1a9d9: 0x6ca29620, 0x1a9da: 0x6c053420, 0x1a9db: 0x6d2f3c20,
-	0x1a9dc: 0x6c6e2820, 0x1a9dd: 0x6c15d220, 0x1a9de: 0x6c3ed620, 0x1a9df: 0x6d36a620,
-	0x1a9e0: 0x6c54f420, 0x1a9e1: 0x6c385820, 0x1a9e2: 0x6c207620, 0x1a9e3: 0x6c09f220,
-	0x1a9e4: 0x6c0ae220, 0x1a9e5: 0x6d2f4820, 0x1a9e6: 0x6c9d8420, 0x1a9e7: 0x6cbba420,
-	0x1a9e8: 0x6c14d820, 0x1a9e9: 0x6c3b8620, 0x1a9ea: 0x6c9b4820, 0x1a9eb: 0x6c053e20,
-	0x1a9ec: 0x6c1de420, 0x1a9ed: 0x6c9eee20, 0x1a9ee: 0x6c1eb820, 0x1a9ef: 0x6c6b3220,
-	0x1a9f0: 0x6cfc3e20, 0x1a9f1: 0x6c7fe220, 0x1a9f2: 0x6c420a20, 0x1a9f3: 0x6cb26e20,
-	0x1a9f4: 0x6ca6f220, 0x1a9f5: 0x6c646020, 0x1a9f6: 0x6c0e0420, 0x1a9f7: 0x6c0e0c20,
-	0x1a9f8: 0x6d041620, 0x1a9f9: 0x6c422620, 0x1a9fa: 0x6d107e20, 0x1a9fb: 0x6c58ec20,
-	0x1a9fc: 0x6d200c20, 0x1a9fd: 0x6d1e9a20, 0x1a9fe: 0x6c613e20, 0x1a9ff: 0x6c4a0220,
-	// Block 0x6a8, offset 0x1aa00
-	0x1aa00: 0x6cb04220, 0x1aa01: 0x6ce62420, 0x1aa02: 0x6d2b3420, 0x1aa03: 0x6c4a0420,
-	0x1aa04: 0x6d3c0820, 0x1aa05: 0x6ca1b020, 0x1aa06: 0x6cbec220, 0x1aa07: 0x6c091c20,
-	0x1aa08: 0x6cbd5220, 0x1aa09: 0x6c33d820, 0x1aa0a: 0x6c206c20, 0x1aa0b: 0x6c4ac220,
-	0x1aa0c: 0x6d0b4820, 0x1aa0d: 0x6c043020, 0x1aa0e: 0x6c6bb620, 0x1aa0f: 0x6d067020,
-	0x1aa10: 0x6c913420, 0x1aa11: 0x6cf42020, 0x1aa12: 0x6d3c5420, 0x1aa13: 0x6c7a8220,
-	0x1aa14: 0x6d1b9e20, 0x1aa15: 0x6c2bd620, 0x1aa16: 0x6cad4c20, 0x1aa17: 0x6c2d3c20,
-	0x1aa18: 0x6d0ad020, 0x1aa19: 0x6c9eac20, 0x1aa1a: 0x6c44ba20, 0x1aa1b: 0x6c22b820,
-	0x1aa1c: 0x6c3f3e20, 0x1aa1d: 0x6ce71820, 0x1aa1e: 0x6cacf220, 0x1aa1f: 0x6c3a8220,
-	0x1aa20: 0x6cfdb420, 0x1aa21: 0x6d15ce20, 0x1aa22: 0x6d359820, 0x1aa23: 0x6ce54e20,
-	0x1aa24: 0x6d359a20, 0x1aa25: 0x6d04be20, 0x1aa26: 0x6c324420, 0x1aa27: 0x6d428e20,
-	0x1aa28: 0x6cfe9c20, 0x1aa29: 0x6ce89020, 0x1aa2a: 0x6c4ae620, 0x1aa2b: 0x6c7a8820,
-	0x1aa2c: 0x6c984e20, 0x1aa2d: 0x6ce66420, 0x1aa2e: 0x6d1fb620, 0x1aa2f: 0x6c101020,
-	0x1aa30: 0x6c0e0e20, 0x1aa31: 0x6c1a6e20, 0x1aa32: 0x6c7ef620, 0x1aa33: 0x6c097620,
-	0x1aa34: 0x6c601620, 0x1aa35: 0x6c012620, 0x1aa36: 0x6cd5c220, 0x1aa37: 0x6c772c20,
-	0x1aa38: 0x6d1d8420, 0x1aa39: 0x6ceb7820, 0x1aa3a: 0x6cd91620, 0x1aa3b: 0x6cd5c420,
-	0x1aa3c: 0x6cbea620, 0x1aa3d: 0x6d233620, 0x1aa3e: 0x6d224a20, 0x1aa3f: 0x6c9eb420,
-	// Block 0x6a9, offset 0x1aa40
-	0x1aa40: 0x6cd9ac20, 0x1aa41: 0x6c12e620, 0x1aa42: 0x6cfd7220, 0x1aa43: 0x6c3aaa20,
-	0x1aa44: 0x6c6ff820, 0x1aa45: 0x6c365420, 0x1aa46: 0x6c4a6620, 0x1aa47: 0x6c8f3420,
-	0x1aa48: 0x6ccc5620, 0x1aa49: 0x6c881020, 0x1aa4a: 0x6c80b420, 0x1aa4b: 0x6cd9ae20,
-	0x1aa4c: 0x6d365220, 0x1aa4d: 0x6cb3f620, 0x1aa4e: 0x6cbeac20, 0x1aa4f: 0x6c700e20,
-	0x1aa50: 0x6c6ffa20, 0x1aa51: 0x6c6c9e20, 0x1aa52: 0x6c025020, 0x1aa53: 0x6c7e0420,
-	0x1aa54: 0x6c90a020, 0x1aa55: 0x6d1b5e20, 0x1aa56: 0x6c8a9e20, 0x1aa57: 0x6c277e20,
-	0x1aa58: 0x6c927c20, 0x1aa59: 0x6d182220, 0x1aa5a: 0x6c1ea420, 0x1aa5b: 0x6c151a20,
-	0x1aa5c: 0x6ce8d820, 0x1aa5d: 0x6cd81220, 0x1aa5e: 0x6d02e420, 0x1aa5f: 0x6c9eb820,
-	0x1aa60: 0x6c16f420, 0x1aa61: 0x6cf46220, 0x1aa62: 0x6c3ac420, 0x1aa63: 0x6c4a0820,
-	0x1aa64: 0x6c7aa620, 0x1aa65: 0x6c7b3c20, 0x1aa66: 0x6c0a4820, 0x1aa67: 0x6cbb2220,
-	0x1aa68: 0x6d021020, 0x1aa69: 0x6c8c2c20, 0x1aa6a: 0x6c8c2e20, 0x1aa6b: 0x6c8a3220,
-	0x1aa6c: 0x6c916e20, 0x1aa6d: 0x6c631220, 0x1aa6e: 0x6d1d2420, 0x1aa6f: 0x6cfafa20,
-	0x1aa70: 0x6ce65420, 0x1aa71: 0x6d1dd820, 0x1aa72: 0x6c84bc20, 0x1aa73: 0x6ce65820,
-	0x1aa74: 0x6d1ac020, 0x1aa75: 0x6d09d220, 0x1aa76: 0x6d0c5220, 0x1aa77: 0x6ce65c20,
-	0x1aa78: 0x6c2b5220, 0x1aa79: 0x6cac1420, 0x1aa7a: 0x6c665420, 0x1aa7b: 0x6c5b1c20,
-	0x1aa7c: 0x6ca39a20, 0x1aa7d: 0x6c5b2220, 0x1aa7e: 0x6c45cc20, 0x1aa7f: 0x6ca75620,
-	// Block 0x6aa, offset 0x1aa80
-	0x1aa80: 0x6c762420, 0x1aa81: 0x6c0b6620, 0x1aa82: 0x6d166220, 0x1aa83: 0x6cb73620,
-	0x1aa84: 0x6ca9f020, 0x1aa85: 0x6c3bc620, 0x1aa86: 0x6c71a420, 0x1aa87: 0x6d0d5620,
-	0x1aa88: 0x6d16ea20, 0x1aa89: 0x6d2a0020, 0x1aa8a: 0x6c09f420, 0x1aa8b: 0x6d163c20,
-	0x1aa8c: 0x6d13ba20, 0x1aa8d: 0x6c37b820, 0x1aa8e: 0x6cc9f820, 0x1aa8f: 0x6cd2fc20,
-	0x1aa90: 0x6c37ba20, 0x1aa91: 0x6cd38020, 0x1aa92: 0x6cd39a20, 0x1aa93: 0x6c454c20,
-	0x1aa94: 0x6c2e0420, 0x1aa95: 0x6d1ac420, 0x1aa96: 0x6c563620, 0x1aa97: 0x6c3dc820,
-	0x1aa98: 0x6c52ea20, 0x1aa99: 0x6cf34420, 0x1aa9a: 0x6ce99c20, 0x1aa9b: 0x6c1af420,
-	0x1aa9c: 0x6c67d420, 0x1aa9d: 0x6c03a820, 0x1aa9e: 0x6cd04420, 0x1aa9f: 0x6c2c1420,
-	0x1aaa0: 0x6d2eb020, 0x1aaa1: 0x6c73dc20, 0x1aaa2: 0x6ce1b020, 0x1aaa3: 0x6c3f4020,
-	0x1aaa4: 0x6c2bd820, 0x1aaa5: 0x6c9c3820, 0x1aaa6: 0x6cfb2c20, 0x1aaa7: 0x6c552220,
-	0x1aaa8: 0x6c173820, 0x1aaa9: 0x6caa4e20, 0x1aaaa: 0x6c6e4c20, 0x1aaab: 0x6d31be20,
-	0x1aaac: 0x6d14be20, 0x1aaad: 0x6c9ce020, 0x1aaae: 0x6cc28e20, 0x1aaaf: 0x6cec8220,
-	0x1aab0: 0x6cce5e20, 0x1aab1: 0x6cc91820, 0x1aab2: 0x6d078620, 0x1aab3: 0x6c6e6420,
-	0x1aab4: 0x6c2dc220, 0x1aab5: 0x6d2eb420, 0x1aab6: 0x6c67de20, 0x1aab7: 0x6cbb0820,
-	0x1aab8: 0x6cae9a20, 0x1aab9: 0x6c287820, 0x1aaba: 0x6cbb0e20, 0x1aabb: 0x6c099620,
-	0x1aabc: 0x6c099820, 0x1aabd: 0x6ccf4820, 0x1aabe: 0x6c288820, 0x1aabf: 0x6c65aa20,
-	// Block 0x6ab, offset 0x1aac0
-	0x1aac0: 0x6c46b420, 0x1aac1: 0x6c448e20, 0x1aac2: 0x6c37f020, 0x1aac3: 0x6c09c420,
-	0x1aac4: 0x6c79c020, 0x1aac5: 0x6c673820, 0x1aac6: 0x6c0d1820, 0x1aac7: 0x6cff1420,
-	0x1aac8: 0x6c28a620, 0x1aac9: 0x6c4c2e20, 0x1aaca: 0x6c67f820, 0x1aacb: 0x6c538620,
-	0x1aacc: 0x6c9c7820, 0x1aacd: 0x6c4c4420, 0x1aace: 0x6ceca420, 0x1aacf: 0x6c751620,
-	0x1aad0: 0x6c616820, 0x1aad1: 0x6c616a20, 0x1aad2: 0x6c4a3220, 0x1aad3: 0x6c28f820,
-	0x1aad4: 0x6c921a20, 0x1aad5: 0x6c921c20, 0x1aad6: 0x6ce98820, 0x1aad7: 0x6c5bb420,
-	0x1aad8: 0x6d362220, 0x1aad9: 0x6c5bda20, 0x1aada: 0x6c5bdc20, 0x1aadb: 0x6d155c20,
-	0x1aadc: 0x6d155e20, 0x1aadd: 0x6d158020, 0x1aade: 0x6d158220, 0x1aadf: 0x6d265e20,
-	0x1aae0: 0x6d266220, 0x1aae1: 0x6cccb220, 0x1aae2: 0x6d03c020, 0x1aae3: 0x6cf17c20,
-	0x1aae4: 0x6ce71020, 0x1aae5: 0x6d0e4620, 0x1aae6: 0x6d0e4820, 0x1aae7: 0x6d22f020,
-	0x1aae8: 0x6c1a9c20, 0x1aae9: 0x6c112620, 0x1aaea: 0x6c0bfa20, 0x1aaeb: 0x6c2dc420,
-	0x1aaec: 0x6c0d3020, 0x1aaed: 0x6cae9e20, 0x1aaee: 0x6d1e4620, 0x1aaef: 0x6cb19820,
-	0x1aaf0: 0x6d2ec420, 0x1aaf1: 0x6d1d0420, 0x1aaf2: 0x6c1af020, 0x1aaf3: 0x6c1bd420,
-	0x1aaf4: 0x6d3d1c20, 0x1aaf5: 0x6ceb6c20, 0x1aaf6: 0x6c5fc820, 0x1aaf7: 0x6c39be20,
-	0x1aaf8: 0x6d379220, 0x1aaf9: 0x6d168420, 0x1aafa: 0x6cedde20, 0x1aafb: 0x6c17fe20,
-	0x1aafc: 0x6c08c020, 0x1aafd: 0x6c2b1620, 0x1aafe: 0x6c8caa20, 0x1aaff: 0x6c3dea20,
-	// Block 0x6ac, offset 0x1ab00
-	0x1ab00: 0x6cedfa20, 0x1ab01: 0x6d328820, 0x1ab02: 0x6c241e20, 0x1ab03: 0x6cedfc20,
-	0x1ab04: 0x6c6e4e20, 0x1ab05: 0x6c274220, 0x1ab06: 0x6cf59e20, 0x1ab07: 0x6d0a7020,
-	0x1ab08: 0x6c523a20, 0x1ab09: 0x6d0f9420, 0x1ab0a: 0x6c57e820, 0x1ab0b: 0x6c93d020,
-	0x1ab0c: 0x6c546420, 0x1ab0d: 0x6cee0220, 0x1ab0e: 0x6c1a6620, 0x1ab0f: 0x6d35b220,
-	0x1ab10: 0x6d061820, 0x1ab11: 0x6c6e6620, 0x1ab12: 0x6ce89220, 0x1ab13: 0x6c238e20,
-	0x1ab14: 0x6d377e20, 0x1ab15: 0x6c7eea20, 0x1ab16: 0x6c239620, 0x1ab17: 0x6c2a9020,
-	0x1ab18: 0x6cabf820, 0x1ab19: 0x6cf7dc20, 0x1ab1a: 0x6c300020, 0x1ab1b: 0x6c61e620,
-	0x1ab1c: 0x6c16a620, 0x1ab1d: 0x6d35dc20, 0x1ab1e: 0x6c239820, 0x1ab1f: 0x6d387020,
-	0x1ab20: 0x6c7ef820, 0x1ab21: 0x6d233820, 0x1ab22: 0x6d018e20, 0x1ab23: 0x6c6bdc20,
-	0x1ab24: 0x6c667820, 0x1ab25: 0x6cd38220, 0x1ab26: 0x6c641620, 0x1ab27: 0x6c0b9820,
-	0x1ab28: 0x6c59c220, 0x1ab29: 0x6c3ff020, 0x1ab2a: 0x6d0a0e20, 0x1ab2b: 0x6cefbe20,
-	0x1ab2c: 0x6cad0420, 0x1ab2d: 0x6d110c20, 0x1ab2e: 0x6cee9820, 0x1ab2f: 0x6cf64820,
-	0x1ab30: 0x6d32d020, 0x1ab31: 0x6cb1b620, 0x1ab32: 0x6ce36220, 0x1ab33: 0x6c2a7c20,
-	0x1ab34: 0x6d32de20, 0x1ab35: 0x6d32f020, 0x1ab36: 0x6c0cf420, 0x1ab37: 0x6c2a7e20,
-	0x1ab38: 0x6c1cd420, 0x1ab39: 0x6c183020, 0x1ab3a: 0x6c692620, 0x1ab3b: 0x6c5c2c20,
-	0x1ab3c: 0x6c693c20, 0x1ab3d: 0x6c5af220, 0x1ab3e: 0x6c9a2e20, 0x1ab3f: 0x6c906c20,
-	// Block 0x6ad, offset 0x1ab40
-	0x1ab40: 0x6cfd9220, 0x1ab41: 0x6c067a20, 0x1ab42: 0x6cc1fe20, 0x1ab43: 0x6d02a220,
-	0x1ab44: 0x6d036220, 0x1ab45: 0x6c090420, 0x1ab46: 0x6d164020, 0x1ab47: 0x6c820c20,
-	0x1ab48: 0x6cc56420, 0x1ab49: 0x6c29b620, 0x1ab4a: 0x6c2f8e20, 0x1ab4b: 0x6c410820,
-	0x1ab4c: 0x6c618020, 0x1ab4d: 0x6cc58620, 0x1ab4e: 0x6cc56a20, 0x1ab4f: 0x6c162620,
-	0x1ab50: 0x6ce05020, 0x1ab51: 0x6ce26820, 0x1ab52: 0x6ce26a20, 0x1ab53: 0x6c416020,
-	0x1ab54: 0x6cb72a20, 0x1ab55: 0x6cd2fe20, 0x1ab56: 0x6c25ae20, 0x1ab57: 0x6d357420,
-	0x1ab58: 0x6cee4620, 0x1ab59: 0x6c982820, 0x1ab5a: 0x6cf56e20, 0x1ab5b: 0x6c388220,
-	0x1ab5c: 0x6d1ba020, 0x1ab5d: 0x6ce4d820, 0x1ab5e: 0x6c9f2c20, 0x1ab5f: 0x6cf1ca20,
-	0x1ab60: 0x6d379620, 0x1ab61: 0x6c1cac20, 0x1ab62: 0x6cf4b620, 0x1ab63: 0x6c5fca20,
-	0x1ab64: 0x6cf42220, 0x1ab65: 0x6cf84620, 0x1ab66: 0x6c639a20, 0x1ab67: 0x6d1e8e20,
-	0x1ab68: 0x6ced7420, 0x1ab69: 0x6c230220, 0x1ab6a: 0x6cd90220, 0x1ab6b: 0x6c7b0e20,
-	0x1ab6c: 0x6d22d020, 0x1ab6d: 0x6c0b6c20, 0x1ab6e: 0x6d357620, 0x1ab6f: 0x6cb57420,
-	0x1ab70: 0x6c251820, 0x1ab71: 0x6c189a20, 0x1ab72: 0x6cdf5e20, 0x1ab73: 0x6cea3e20,
-	0x1ab74: 0x6cb96e20, 0x1ab75: 0x6ca75a20, 0x1ab76: 0x6c5cde20, 0x1ab77: 0x6d045420,
-	0x1ab78: 0x6ca97620, 0x1ab79: 0x6c7bb620, 0x1ab7a: 0x6cfa7820, 0x1ab7b: 0x6d02aa20,
-	0x1ab7c: 0x6c772420, 0x1ab7d: 0x6c549e20, 0x1ab7e: 0x6c767c20, 0x1ab7f: 0x6c3bce20,
-	// Block 0x6ae, offset 0x1ab80
-	0x1ab80: 0x6c57e620, 0x1ab81: 0x6cdf6220, 0x1ab82: 0x6cd95220, 0x1ab83: 0x6cf42420,
-	0x1ab84: 0x6cab9a20, 0x1ab85: 0x6c170220, 0x1ab86: 0x6c20a020, 0x1ab87: 0x6c71fa20,
-	0x1ab88: 0x6d16b420, 0x1ab89: 0x6c05e620, 0x1ab8a: 0x6c173a20, 0x1ab8b: 0x6c9f2e20,
-	0x1ab8c: 0x6cadb020, 0x1ab8d: 0x6d428020, 0x1ab8e: 0x6d2b7620, 0x1ab8f: 0x6d104020,
-	0x1ab90: 0x6c720a20, 0x1ab91: 0x6c04e820, 0x1ab92: 0x6caa5e20, 0x1ab93: 0x6ca49420,
-	0x1ab94: 0x6d328a20, 0x1ab95: 0x6cabe820, 0x1ab96: 0x6c106a20, 0x1ab97: 0x6ce5ea20,
-	0x1ab98: 0x6c567020, 0x1ab99: 0x6c566420, 0x1ab9a: 0x6c720c20, 0x1ab9b: 0x6c267e20,
-	0x1ab9c: 0x6c87f420, 0x1ab9d: 0x6cd7d420, 0x1ab9e: 0x6c1d8e20, 0x1ab9f: 0x6c2c2020,
-	0x1aba0: 0x6c274420, 0x1aba1: 0x6d147020, 0x1aba2: 0x6ce84020, 0x1aba3: 0x6d1f0620,
-	0x1aba4: 0x6c3d4820, 0x1aba5: 0x6c5ff420, 0x1aba6: 0x6cae5420, 0x1aba7: 0x6d041820,
-	0x1aba8: 0x6d260420, 0x1aba9: 0x6ca5be20, 0x1abaa: 0x6c48e620, 0x1abab: 0x6c3dec20,
-	0x1abac: 0x6cf84820, 0x1abad: 0x6c093220, 0x1abae: 0x6d1e9620, 0x1abaf: 0x6cbc9620,
-	0x1abb0: 0x6d086e20, 0x1abb1: 0x6c230820, 0x1abb2: 0x6c0dc220, 0x1abb3: 0x6c5a4220,
-	0x1abb4: 0x6d068020, 0x1abb5: 0x6c1f0e20, 0x1abb6: 0x6c093420, 0x1abb7: 0x6cd5ac20,
-	0x1abb8: 0x6cf5a020, 0x1abb9: 0x6cdf9620, 0x1abba: 0x6d1e8220, 0x1abbb: 0x6d3fe820,
-	0x1abbc: 0x6c334220, 0x1abbd: 0x6ca1b220, 0x1abbe: 0x6d34f220, 0x1abbf: 0x6d16b620,
-	// Block 0x6af, offset 0x1abc0
-	0x1abc0: 0x6cd33220, 0x1abc1: 0x6ca59420, 0x1abc2: 0x6d09e820, 0x1abc3: 0x6cd33420,
-	0x1abc4: 0x6cf86020, 0x1abc5: 0x6c81a420, 0x1abc6: 0x6c525820, 0x1abc7: 0x6c7b8e20,
-	0x1abc8: 0x6ca1c620, 0x1abc9: 0x6d34fe20, 0x1abca: 0x6d008020, 0x1abcb: 0x6c88e820,
-	0x1abcc: 0x6ce55220, 0x1abcd: 0x6c5a4820, 0x1abce: 0x6c2e7020, 0x1abcf: 0x6c502820,
-	0x1abd0: 0x6c799e20, 0x1abd1: 0x6c4ad420, 0x1abd2: 0x6c525a20, 0x1abd3: 0x6cf5a220,
-	0x1abd4: 0x6c68ce20, 0x1abd5: 0x6cd5b820, 0x1abd6: 0x6cd8fe20, 0x1abd7: 0x6c54aa20,
-	0x1abd8: 0x6cbfa420, 0x1abd9: 0x6d104220, 0x1abda: 0x6c5ba820, 0x1abdb: 0x6c5b2420,
-	0x1abdc: 0x6c1bfa20, 0x1abdd: 0x6c63b020, 0x1abde: 0x6d149a20, 0x1abdf: 0x6d045e20,
-	0x1abe0: 0x6c48ec20, 0x1abe1: 0x6c8c4c20, 0x1abe2: 0x6c5a9220, 0x1abe3: 0x6d3f3a20,
-	0x1abe4: 0x6d068e20, 0x1abe5: 0x6c1b8a20, 0x1abe6: 0x6cce4e20, 0x1abe7: 0x6caa7c20,
-	0x1abe8: 0x6c524220, 0x1abe9: 0x6c371020, 0x1abea: 0x6c788e20, 0x1abeb: 0x6c305e20,
-	0x1abec: 0x6ce48820, 0x1abed: 0x6c457c20, 0x1abee: 0x6cc29020, 0x1abef: 0x6cf94220,
-	0x1abf0: 0x6cb84a20, 0x1abf1: 0x6d268c20, 0x1abf2: 0x6cae5820, 0x1abf3: 0x6c790020,
-	0x1abf4: 0x6c2a6420, 0x1abf5: 0x6c5baa20, 0x1abf6: 0x6c35fa20, 0x1abf7: 0x6d003220,
-	0x1abf8: 0x6ce7c620, 0x1abf9: 0x6d0be020, 0x1abfa: 0x6c764c20, 0x1abfb: 0x6c12ce20,
-	0x1abfc: 0x6ca4e020, 0x1abfd: 0x6d282020, 0x1abfe: 0x6c984020, 0x1abff: 0x6d1e2a20,
-	// Block 0x6b0, offset 0x1ac00
-	0x1ac00: 0x6d1e2220, 0x1ac01: 0x6d24d420, 0x1ac02: 0x6caf5220, 0x1ac03: 0x6c7da020,
-	0x1ac04: 0x6cbb6a20, 0x1ac05: 0x6d269420, 0x1ac06: 0x6d230c20, 0x1ac07: 0x6ce89420,
-	0x1ac08: 0x6c6bd820, 0x1ac09: 0x6cf5e220, 0x1ac0a: 0x6d304a20, 0x1ac0b: 0x6c8c4e20,
-	0x1ac0c: 0x6ce3e020, 0x1ac0d: 0x6c4e9620, 0x1ac0e: 0x6c502a20, 0x1ac0f: 0x6cbca820,
-	0x1ac10: 0x6ce3ea20, 0x1ac11: 0x6c108220, 0x1ac12: 0x6d172620, 0x1ac13: 0x6cba4a20,
-	0x1ac14: 0x6c5b4c20, 0x1ac15: 0x6cf5bc20, 0x1ac16: 0x6c070020, 0x1ac17: 0x6c975e20,
-	0x1ac18: 0x6d13e420, 0x1ac19: 0x6c524820, 0x1ac1a: 0x6cd95620, 0x1ac1b: 0x6cc29420,
-	0x1ac1c: 0x6c1a6820, 0x1ac1d: 0x6c7c3820, 0x1ac1e: 0x6cf4d020, 0x1ac1f: 0x6cf4d220,
-	0x1ac20: 0x6d1e9e20, 0x1ac21: 0x6c83b620, 0x1ac22: 0x6c89ae20, 0x1ac23: 0x6c590e20,
-	0x1ac24: 0x6c230c20, 0x1ac25: 0x6d175a20, 0x1ac26: 0x6d269620, 0x1ac27: 0x6c85c820,
-	0x1ac28: 0x6ca8e620, 0x1ac29: 0x6ca4e620, 0x1ac2a: 0x6c360e20, 0x1ac2b: 0x6cc3b620,
-	0x1ac2c: 0x6d080e20, 0x1ac2d: 0x6cb8c420, 0x1ac2e: 0x6cf4d420, 0x1ac2f: 0x6c9fa420,
-	0x1ac30: 0x6c239a20, 0x1ac31: 0x6c3a5220, 0x1ac32: 0x6c069c20, 0x1ac33: 0x6c344c20,
-	0x1ac34: 0x6c253420, 0x1ac35: 0x6c171220, 0x1ac36: 0x6c9af220, 0x1ac37: 0x6cca4e20,
-	0x1ac38: 0x6c61ea20, 0x1ac39: 0x6c498820, 0x1ac3a: 0x6c497e20, 0x1ac3b: 0x6d042820,
-	0x1ac3c: 0x6c2a0e20, 0x1ac3d: 0x6cb4e620, 0x1ac3e: 0x6c797420, 0x1ac3f: 0x6ce4ec20,
-	// Block 0x6b1, offset 0x1ac40
-	0x1ac40: 0x6c94f220, 0x1ac41: 0x6cf60a20, 0x1ac42: 0x6c76d220, 0x1ac43: 0x6c4bc020,
-	0x1ac44: 0x6ca6a020, 0x1ac45: 0x6cbe7620, 0x1ac46: 0x6c1da020, 0x1ac47: 0x6c339820,
-	0x1ac48: 0x6c4cb620, 0x1ac49: 0x6d2d7420, 0x1ac4a: 0x6c6da820, 0x1ac4b: 0x6ced0420,
-	0x1ac4c: 0x6d24ea20, 0x1ac4d: 0x6c6c4220, 0x1ac4e: 0x6c620020, 0x1ac4f: 0x6c7f9620,
-	0x1ac50: 0x6d231020, 0x1ac51: 0x6c5dca20, 0x1ac52: 0x6c512620, 0x1ac53: 0x6cc2da20,
-	0x1ac54: 0x6cdfdc20, 0x1ac55: 0x6ce3ec20, 0x1ac56: 0x6ce3f420, 0x1ac57: 0x6ca81620,
-	0x1ac58: 0x6cee0e20, 0x1ac59: 0x6c21b420, 0x1ac5a: 0x6c54bc20, 0x1ac5b: 0x6c5cc020,
-	0x1ac5c: 0x6cf5e420, 0x1ac5d: 0x6c16ea20, 0x1ac5e: 0x6d02ca20, 0x1ac5f: 0x6ceefe20,
-	0x1ac60: 0x6c5bc020, 0x1ac61: 0x6c363420, 0x1ac62: 0x6cdd6620, 0x1ac63: 0x6d3fee20,
-	0x1ac64: 0x6c648420, 0x1ac65: 0x6d1e3620, 0x1ac66: 0x6c2d4e20, 0x1ac67: 0x6c723c20,
-	0x1ac68: 0x6c11ce20, 0x1ac69: 0x6c19fc20, 0x1ac6a: 0x6c2a6e20, 0x1ac6b: 0x6c072220,
-	0x1ac6c: 0x6cbcb420, 0x1ac6d: 0x6c119420, 0x1ac6e: 0x6c287a20, 0x1ac6f: 0x6c498020,
-	0x1ac70: 0x6c34f420, 0x1ac71: 0x6ca4f820, 0x1ac72: 0x6d283220, 0x1ac73: 0x6cfdea20,
-	0x1ac74: 0x6d3c8420, 0x1ac75: 0x6c2ea220, 0x1ac76: 0x6c59c420, 0x1ac77: 0x6c217e20,
-	0x1ac78: 0x6cbf2220, 0x1ac79: 0x6cc54c20, 0x1ac7a: 0x6d037220, 0x1ac7b: 0x6c12e820,
-	0x1ac7c: 0x6c0b3e20, 0x1ac7d: 0x6c9fac20, 0x1ac7e: 0x6d3f8a20, 0x1ac7f: 0x6ce32220,
-	// Block 0x6b2, offset 0x1ac80
-	0x1ac80: 0x6cbc2620, 0x1ac81: 0x6c1db820, 0x1ac82: 0x6c073020, 0x1ac83: 0x6d079820,
-	0x1ac84: 0x6cee8620, 0x1ac85: 0x6c43ea20, 0x1ac86: 0x6cb8ee20, 0x1ac87: 0x6cefc020,
-	0x1ac88: 0x6d236a20, 0x1ac89: 0x6d212420, 0x1ac8a: 0x6c099a20, 0x1ac8b: 0x6d079a20,
-	0x1ac8c: 0x6c592020, 0x1ac8d: 0x6c9fb620, 0x1ac8e: 0x6c099c20, 0x1ac8f: 0x6d17e220,
-	0x1ac90: 0x6c9e2420, 0x1ac91: 0x6d1e3820, 0x1ac92: 0x6c768820, 0x1ac93: 0x6c296620,
-	0x1ac94: 0x6d19e020, 0x1ac95: 0x6c363620, 0x1ac96: 0x6c18c620, 0x1ac97: 0x6c998a20,
-	0x1ac98: 0x6cb86820, 0x1ac99: 0x6c78b820, 0x1ac9a: 0x6d214820, 0x1ac9b: 0x6c00a820,
-	0x1ac9c: 0x6cbcc020, 0x1ac9d: 0x6d0d7e20, 0x1ac9e: 0x6caaf620, 0x1ac9f: 0x6c41dc20,
-	0x1aca0: 0x6d283420, 0x1aca1: 0x6d3ff020, 0x1aca2: 0x6cc9c220, 0x1aca3: 0x6c839620,
-	0x1aca4: 0x6c3bd820, 0x1aca5: 0x6d1d6620, 0x1aca6: 0x6c7cf820, 0x1aca7: 0x6c7cfa20,
-	0x1aca8: 0x6cc3d820, 0x1aca9: 0x6c459420, 0x1acaa: 0x6d27ae20, 0x1acab: 0x6cdaca20,
-	0x1acac: 0x6cdae420, 0x1acad: 0x6cb5f820, 0x1acae: 0x6d110e20, 0x1acaf: 0x6cd96020,
-	0x1acb0: 0x6c5a6c20, 0x1acb1: 0x6c604e20, 0x1acb2: 0x6c478c20, 0x1acb3: 0x6c726220,
-	0x1acb4: 0x6c20ae20, 0x1acb5: 0x6ca6aa20, 0x1acb6: 0x6d00b620, 0x1acb7: 0x6c766020,
-	0x1acb8: 0x6d332a20, 0x1acb9: 0x6d1e4820, 0x1acba: 0x6c12ae20, 0x1acbb: 0x6d0a9a20,
-	0x1acbc: 0x6cd0aa20, 0x1acbd: 0x6c0f1020, 0x1acbe: 0x6c768e20, 0x1acbf: 0x6d262820,
-	// Block 0x6b3, offset 0x1acc0
-	0x1acc0: 0x6cf89e20, 0x1acc1: 0x6c5d3420, 0x1acc2: 0x6d1e5020, 0x1acc3: 0x6d102420,
-	0x1acc4: 0x6c862e20, 0x1acc5: 0x6ccaaa20, 0x1acc6: 0x6ce1d420, 0x1acc7: 0x6d19f220,
-	0x1acc8: 0x6c224e20, 0x1acc9: 0x6d06f220, 0x1acca: 0x6cba5820, 0x1accb: 0x6cdf7c20,
-	0x1accc: 0x6c599420, 0x1accd: 0x6d283a20, 0x1acce: 0x6cd0ac20, 0x1accf: 0x6ca03820,
-	0x1acd0: 0x6c463020, 0x1acd1: 0x6ccf5020, 0x1acd2: 0x6c23a420, 0x1acd3: 0x6cb15820,
-	0x1acd4: 0x6ca29820, 0x1acd5: 0x6ca2a020, 0x1acd6: 0x6c4c7620, 0x1acd7: 0x6c1c5620,
-	0x1acd8: 0x6c11d420, 0x1acd9: 0x6c11a620, 0x1acda: 0x6c119c20, 0x1acdb: 0x6c24da20,
-	0x1acdc: 0x6c9fc220, 0x1acdd: 0x6ce27e20, 0x1acde: 0x6d2ec820, 0x1acdf: 0x6ce7ce20,
-	0x1ace0: 0x6c02d820, 0x1ace1: 0x6cd6d620, 0x1ace2: 0x6c97e820, 0x1ace3: 0x6c499620,
-	0x1ace4: 0x6cc3ea20, 0x1ace5: 0x6d2a8420, 0x1ace6: 0x6c701620, 0x1ace7: 0x6c5c1020,
-	0x1ace8: 0x6c765820, 0x1ace9: 0x6c881220, 0x1acea: 0x6cab9e20, 0x1aceb: 0x6cd96c20,
-	0x1acec: 0x6cbd8e20, 0x1aced: 0x6d1b7020, 0x1acee: 0x6c93f220, 0x1acef: 0x6cce0c20,
-	0x1acf0: 0x6cf0b820, 0x1acf1: 0x6ce95220, 0x1acf2: 0x6c976c20, 0x1acf3: 0x6cb8fe20,
-	0x1acf4: 0x6ccf6220, 0x1acf5: 0x6d1d9c20, 0x1acf6: 0x6cbed620, 0x1acf7: 0x6c773e20,
-	0x1acf8: 0x6c2c8e20, 0x1acf9: 0x6d348e20, 0x1acfa: 0x6c90a220, 0x1acfb: 0x6c738220,
-	0x1acfc: 0x6cb51c20, 0x1acfd: 0x6cb50c20, 0x1acfe: 0x6d23c020, 0x1acff: 0x6cb2c220,
-	// Block 0x6b4, offset 0x1ad00
-	0x1ad00: 0x6c89f620, 0x1ad01: 0x6c23da20, 0x1ad02: 0x6d1eae20, 0x1ad03: 0x6c1cd620,
-	0x1ad04: 0x6d36aa20, 0x1ad05: 0x6ce7d020, 0x1ad06: 0x6c197a20, 0x1ad07: 0x6cb7c020,
-	0x1ad08: 0x6cc12020, 0x1ad09: 0x6caebc20, 0x1ad0a: 0x6c075a20, 0x1ad0b: 0x6c0cb820,
-	0x1ad0c: 0x6cbf5c20, 0x1ad0d: 0x6c686a20, 0x1ad0e: 0x6d2b8a20, 0x1ad0f: 0x6c1c4220,
-	0x1ad10: 0x6c883620, 0x1ad11: 0x6cb2cc20, 0x1ad12: 0x6c7d0c20, 0x1ad13: 0x6c5c1220,
-	0x1ad14: 0x6cbbf020, 0x1ad15: 0x6c1a3620, 0x1ad16: 0x6d1b7a20, 0x1ad17: 0x6d1b7c20,
-	0x1ad18: 0x6cf80620, 0x1ad19: 0x6cf6ba20, 0x1ad1a: 0x6c28a820, 0x1ad1b: 0x6ce00220,
-	0x1ad1c: 0x6c34a220, 0x1ad1d: 0x6c335e20, 0x1ad1e: 0x6c335a20, 0x1ad1f: 0x6cdaf820,
-	0x1ad20: 0x6c74b620, 0x1ad21: 0x6c130e20, 0x1ad22: 0x6cff0220, 0x1ad23: 0x6c385a20,
-	0x1ad24: 0x6c3be420, 0x1ad25: 0x6c817220, 0x1ad26: 0x6c81da20, 0x1ad27: 0x6c1cd820,
-	0x1ad28: 0x6c4db820, 0x1ad29: 0x6cb7d220, 0x1ad2a: 0x6cfb7c20, 0x1ad2b: 0x6c9fc420,
-	0x1ad2c: 0x6c6e2a20, 0x1ad2d: 0x6c8a7420, 0x1ad2e: 0x6cf46420, 0x1ad2f: 0x6c11da20,
-	0x1ad30: 0x6c749020, 0x1ad31: 0x6c245420, 0x1ad32: 0x6cfd0820, 0x1ad33: 0x6ce06e20,
-	0x1ad34: 0x6cd12220, 0x1ad35: 0x6caf9820, 0x1ad36: 0x6d188e20, 0x1ad37: 0x6c1f7420,
-	0x1ad38: 0x6cfad620, 0x1ad39: 0x6ca4c020, 0x1ad3a: 0x6c28ac20, 0x1ad3b: 0x6ce07420,
-	0x1ad3c: 0x6c6e2c20, 0x1ad3d: 0x6cd93220, 0x1ad3e: 0x6c4f0220, 0x1ad3f: 0x6c693e20,
-	// Block 0x6b5, offset 0x1ad40
-	0x1ad40: 0x6cf0cc20, 0x1ad41: 0x6d07cc20, 0x1ad42: 0x6c303620, 0x1ad43: 0x6cbdb020,
-	0x1ad44: 0x6cbd9e20, 0x1ad45: 0x6c728a20, 0x1ad46: 0x6c12b220, 0x1ad47: 0x6c791020,
-	0x1ad48: 0x6d021420, 0x1ad49: 0x6d1bfe20, 0x1ad4a: 0x6c02ea20, 0x1ad4b: 0x6c99ba20,
-	0x1ad4c: 0x6d189020, 0x1ad4d: 0x6c8c3020, 0x1ad4e: 0x6ccb5420, 0x1ad4f: 0x6c75e420,
-	0x1ad50: 0x6c57f220, 0x1ad51: 0x6c9afe20, 0x1ad52: 0x6c803c20, 0x1ad53: 0x6c00ca20,
-	0x1ad54: 0x6c8c3220, 0x1ad55: 0x6d0c3c20, 0x1ad56: 0x6c7e2620, 0x1ad57: 0x6cfa4a20,
-	0x1ad58: 0x6c1c8420, 0x1ad59: 0x6d228e20, 0x1ad5a: 0x6d1b8820, 0x1ad5b: 0x6c270e20,
-	0x1ad5c: 0x6c9be420, 0x1ad5d: 0x6c00d820, 0x1ad5e: 0x6c9b4a20, 0x1ad5f: 0x6c337020,
-	0x1ad60: 0x6cb65c20, 0x1ad61: 0x6ca0ac20, 0x1ad62: 0x6c7fbe20, 0x1ad63: 0x6c9b0020,
-	0x1ad64: 0x6c1de620, 0x1ad65: 0x6d370220, 0x1ad66: 0x6cab1620, 0x1ad67: 0x6cab1820,
-	0x1ad68: 0x6d0c3420, 0x1ad69: 0x6d103420, 0x1ad6a: 0x6c0f8a20, 0x1ad6b: 0x6d372820,
-	0x1ad6c: 0x6c7c0c20, 0x1ad6d: 0x6c7bd220, 0x1ad6e: 0x6d1ff820, 0x1ad6f: 0x6c3db220,
-	0x1ad70: 0x6c8eb420, 0x1ad71: 0x6c9ef020, 0x1ad72: 0x6c1a5420, 0x1ad73: 0x6c5cb020,
-	0x1ad74: 0x6c163820, 0x1ad75: 0x6c9bea20, 0x1ad76: 0x6c804a20, 0x1ad77: 0x6c57fa20,
-	0x1ad78: 0x6d083620, 0x1ad79: 0x6cc51a20, 0x1ad7a: 0x6c164020, 0x1ad7b: 0x6c62b820,
-	0x1ad7c: 0x6c72ca20, 0x1ad7d: 0x6c583e20, 0x1ad7e: 0x6ccf8820, 0x1ad7f: 0x6d195a20,
-	// Block 0x6b6, offset 0x1ad80
-	0x1ad80: 0x6c893820, 0x1ad81: 0x6ca44020, 0x1ad82: 0x6c9cb020, 0x1ad83: 0x6ce18c20,
-	0x1ad84: 0x6c751a20, 0x1ad85: 0x6c42b020, 0x1ad86: 0x6c42b220, 0x1ad87: 0x6d3c5220,
-	0x1ad88: 0x6c436020, 0x1ad89: 0x6d266e20, 0x1ad8a: 0x6cf49820, 0x1ad8b: 0x6c645a20,
-	0x1ad8c: 0x6d056420, 0x1ad8d: 0x6cd59420, 0x1ad8e: 0x6cc65020, 0x1ad8f: 0x6cf83820,
-	0x1ad90: 0x6c19b220, 0x1ad91: 0x6cf2a620, 0x1ad92: 0x6c6bb820, 0x1ad93: 0x6c436e20,
-	0x1ad94: 0x6c646c20, 0x1ad95: 0x6cbaa020, 0x1ad96: 0x6c5da020, 0x1ad97: 0x6cbaa220,
-	0x1ad98: 0x6d2e4a20, 0x1ad99: 0x6c306e20, 0x1ad9a: 0x6cb81220, 0x1ad9b: 0x6c63b620,
-	0x1ad9c: 0x6c2e9220, 0x1ad9d: 0x6d2b5e20, 0x1ad9e: 0x6c63be20, 0x1ad9f: 0x6c614420,
-	0x1ada0: 0x6d33de20, 0x1ada1: 0x6c76b020, 0x1ada2: 0x6c603420, 0x1ada3: 0x6c7c8620,
-	0x1ada4: 0x6c414020, 0x1ada5: 0x6c2ace20, 0x1ada6: 0x6d2e6820, 0x1ada7: 0x6cbaca20,
-	0x1ada8: 0x6c439e20, 0x1ada9: 0x6c65bc20, 0x1adaa: 0x6c6b0620, 0x1adab: 0x6d238e20,
-	0x1adac: 0x6c65be20, 0x1adad: 0x6d0dc820, 0x1adae: 0x6c92a020, 0x1adaf: 0x6c54f620,
-	0x1adb0: 0x6d2e7e20, 0x1adb1: 0x6cf8da20, 0x1adb2: 0x6cf8ec20, 0x1adb3: 0x6c219a20,
-	0x1adb4: 0x6c279420, 0x1adb5: 0x6cc20420, 0x1adb6: 0x6c563820, 0x1adb7: 0x6c563a20,
-	0x1adb8: 0x6c563c20, 0x1adb9: 0x6c35c820, 0x1adba: 0x6cd30c20, 0x1adbb: 0x6ce3d220,
-	0x1adbc: 0x6c992620, 0x1adbd: 0x6c566620, 0x1adbe: 0x6c858c20, 0x1adbf: 0x6c39a620,
-	// Block 0x6b7, offset 0x1adc0
-	0x1adc0: 0x6cdd4e20, 0x1adc1: 0x6c0b2e20, 0x1adc2: 0x6c2d4220, 0x1adc3: 0x6c6ed820,
-	0x1adc4: 0x6cce3420, 0x1adc5: 0x6d14c020, 0x1adc6: 0x6d15dc20, 0x1adc7: 0x6ccd7a20,
-	0x1adc8: 0x6c568c20, 0x1adc9: 0x6c3a0220, 0x1adca: 0x6d0d8020, 0x1adcb: 0x6cd43620,
-	0x1adcc: 0x6cd48e20, 0x1adcd: 0x6c10fe20, 0x1adce: 0x6d2bc020, 0x1adcf: 0x6cbff220,
-	0x1add0: 0x6c820e20, 0x1add1: 0x6cb3fe20, 0x1add2: 0x6c031020, 0x1add3: 0x6c26e020,
-	0x1add4: 0x6cc61020, 0x1add5: 0x6c390220, 0x1add6: 0x6cc83020, 0x1add7: 0x6d292a20,
-	0x1add8: 0x6cea9620, 0x1add9: 0x6d2f1e20, 0x1adda: 0x6c2df620, 0x1addb: 0x6c776620,
-	0x1addc: 0x6d207220, 0x1addd: 0x6c7a1820, 0x1adde: 0x6c41c420, 0x1addf: 0x6ccf9e20,
-	0x1ade0: 0x6c137820, 0x1ade1: 0x6cea9820, 0x1ade2: 0x6c475420, 0x1ade3: 0x6c79d620,
-	0x1ade4: 0x6cf4a220, 0x1ade5: 0x6c2a9420, 0x1ade6: 0x6cb89820, 0x1ade7: 0x6d343620,
-	0x1ade8: 0x6cc5b620, 0x1ade9: 0x6c7de620, 0x1adea: 0x6c9ac020, 0x1adeb: 0x6ccade20,
-	0x1adec: 0x6d0f7420, 0x1aded: 0x6ca97820, 0x1adee: 0x6c051220, 0x1adef: 0x6c17e620,
-	0x1adf0: 0x6cc53620, 0x1adf1: 0x6cf57020, 0x1adf2: 0x6cb97220, 0x1adf3: 0x6c047020,
-	0x1adf4: 0x6c639c20, 0x1adf5: 0x6d20b220, 0x1adf6: 0x6c3dda20, 0x1adf7: 0x6c02c220,
-	0x1adf8: 0x6cf57e20, 0x1adf9: 0x6caf2a20, 0x1adfa: 0x6d34e620, 0x1adfb: 0x6d357820,
-	0x1adfc: 0x6c35d220, 0x1adfd: 0x6c2a9620, 0x1adfe: 0x6d2f8420, 0x1adff: 0x6c19bc20,
-	// Block 0x6b8, offset 0x1ae00
-	0x1ae00: 0x6c618420, 0x1ae01: 0x6d0d3c20, 0x1ae02: 0x6c7bb820, 0x1ae03: 0x6c0b6e20,
-	0x1ae04: 0x6c173220, 0x1ae05: 0x6c704e20, 0x1ae06: 0x6cf1cc20, 0x1ae07: 0x6c551e20,
-	0x1ae08: 0x6d267e20, 0x1ae09: 0x6c73de20, 0x1ae0a: 0x6c039a20, 0x1ae0b: 0x6cbe0420,
-	0x1ae0c: 0x6c282020, 0x1ae0d: 0x6d331820, 0x1ae0e: 0x6d27d820, 0x1ae0f: 0x6cecc820,
-	0x1ae10: 0x6ca54820, 0x1ae11: 0x6d168820, 0x1ae12: 0x6cd49e20, 0x1ae13: 0x6d3b5420,
-	0x1ae14: 0x6cb3d020, 0x1ae15: 0x6ce7e620, 0x1ae16: 0x6c30da20, 0x1ae17: 0x6c777e20,
-	0x1ae18: 0x6d301220, 0x1ae19: 0x6cb3d220, 0x1ae1a: 0x6c3f3620, 0x1ae1b: 0x6cad3220,
-	0x1ae1c: 0x6c036020, 0x1ae1d: 0x6c029c20, 0x1ae1e: 0x6d2aa420, 0x1ae1f: 0x6ce94820,
-	0x1ae20: 0x6c79b220, 0x1ae21: 0x6c94d020, 0x1ae22: 0x6cbb3820, 0x1ae23: 0x6d287a20,
-	0x1ae24: 0x6c565620, 0x1ae25: 0x6c063020, 0x1ae26: 0x6c0dc420, 0x1ae27: 0x6d34f420,
-	0x1ae28: 0x6cae5620, 0x1ae29: 0x6cdf8c20, 0x1ae2a: 0x6c106c20, 0x1ae2b: 0x6caf3620,
-	0x1ae2c: 0x6cdf1820, 0x1ae2d: 0x6d118c20, 0x1ae2e: 0x6d31b820, 0x1ae2f: 0x6d2bc620,
-	0x1ae30: 0x6d0f4820, 0x1ae31: 0x6c063220, 0x1ae32: 0x6c508c20, 0x1ae33: 0x6ca62820,
-	0x1ae34: 0x6d12ce20, 0x1ae35: 0x6c2bda20, 0x1ae36: 0x6c1bee20, 0x1ae37: 0x6caf3820,
-	0x1ae38: 0x6c632220, 0x1ae39: 0x6ca0a820, 0x1ae3a: 0x6c9a7620, 0x1ae3b: 0x6c185a20,
-	0x1ae3c: 0x6d0ad220, 0x1ae3d: 0x6c1d6420, 0x1ae3e: 0x6cc0e420, 0x1ae3f: 0x6c9f9420,
-	// Block 0x6b9, offset 0x1ae40
-	0x1ae40: 0x6c1f1020, 0x1ae41: 0x6c632a20, 0x1ae42: 0x6c3dee20, 0x1ae43: 0x6d2c7220,
-	0x1ae44: 0x6d3a5c20, 0x1ae45: 0x6c27bc20, 0x1ae46: 0x6c146020, 0x1ae47: 0x6ca2c420,
-	0x1ae48: 0x6ca6ec20, 0x1ae49: 0x6c7e3e20, 0x1ae4a: 0x6c3f4220, 0x1ae4b: 0x6cad3420,
-	0x1ae4c: 0x6c04ea20, 0x1ae4d: 0x6cabee20, 0x1ae4e: 0x6c8b9a20, 0x1ae4f: 0x6ca2d020,
-	0x1ae50: 0x6c48d820, 0x1ae51: 0x6cb97420, 0x1ae52: 0x6c71fc20, 0x1ae53: 0x6cde2e20,
-	0x1ae54: 0x6c036820, 0x1ae55: 0x6ceaac20, 0x1ae56: 0x6ceaae20, 0x1ae57: 0x6c02a020,
-	0x1ae58: 0x6c705a20, 0x1ae59: 0x6d3cf020, 0x1ae5a: 0x6caca020, 0x1ae5b: 0x6d2f5a20,
-	0x1ae5c: 0x6c043c20, 0x1ae5d: 0x6c043220, 0x1ae5e: 0x6c2bdc20, 0x1ae5f: 0x6ca62420,
-	0x1ae60: 0x6c720e20, 0x1ae61: 0x6c7de820, 0x1ae62: 0x6c903220, 0x1ae63: 0x6c656420,
-	0x1ae64: 0x6cb83420, 0x1ae65: 0x6d1d7e20, 0x1ae66: 0x6c7f8c20, 0x1ae67: 0x6ca8f620,
-	0x1ae68: 0x6c0e5020, 0x1ae69: 0x6d2aa820, 0x1ae6a: 0x6cb8bc20, 0x1ae6b: 0x6c522e20,
-	0x1ae6c: 0x6c7dea20, 0x1ae6d: 0x6cd33620, 0x1ae6e: 0x6c6a8e20, 0x1ae6f: 0x6d331e20,
-	0x1ae70: 0x6ca8ee20, 0x1ae71: 0x6c45da20, 0x1ae72: 0x6c45de20, 0x1ae73: 0x6cc2ca20,
-	0x1ae74: 0x6cd68020, 0x1ae75: 0x6c25a620, 0x1ae76: 0x6d288a20, 0x1ae77: 0x6c77a020,
-	0x1ae78: 0x6d149c20, 0x1ae79: 0x6d008220, 0x1ae7a: 0x6c12d020, 0x1ae7b: 0x6c5a9420,
-	0x1ae7c: 0x6cb1ea20, 0x1ae7d: 0x6d3b6620, 0x1ae7e: 0x6cd41020, 0x1ae7f: 0x6ca2d620,
-	// Block 0x6ba, offset 0x1ae80
-	0x1ae80: 0x6c03fc20, 0x1ae81: 0x6c1b0c20, 0x1ae82: 0x6c48ac20, 0x1ae83: 0x6d359c20,
-	0x1ae84: 0x6c7dec20, 0x1ae85: 0x6c348020, 0x1ae86: 0x6c348220, 0x1ae87: 0x6d350020,
-	0x1ae88: 0x6cbcaa20, 0x1ae89: 0x6c01a420, 0x1ae8a: 0x6ca9f220, 0x1ae8b: 0x6d322020,
-	0x1ae8c: 0x6c43ca20, 0x1ae8d: 0x6c698820, 0x1ae8e: 0x6c7ae620, 0x1ae8f: 0x6c306020,
-	0x1ae90: 0x6ca2d820, 0x1ae91: 0x6ce55420, 0x1ae92: 0x6c8ad220, 0x1ae93: 0x6d2bca20,
-	0x1ae94: 0x6c937c20, 0x1ae95: 0x6c2e7220, 0x1ae96: 0x6cebca20, 0x1ae97: 0x6c73fa20,
-	0x1ae98: 0x6c8b9420, 0x1ae99: 0x6c71b020, 0x1ae9a: 0x6d35b820, 0x1ae9b: 0x6c943420,
-	0x1ae9c: 0x6d0b8620, 0x1ae9d: 0x6cf27c20, 0x1ae9e: 0x6cde3420, 0x1ae9f: 0x6d008420,
-	0x1aea0: 0x6ca49c20, 0x1aea1: 0x6c292820, 0x1aea2: 0x6c68d020, 0x1aea3: 0x6d329820,
-	0x1aea4: 0x6c612a20, 0x1aea5: 0x6c5a9620, 0x1aea6: 0x6cfb3420, 0x1aea7: 0x6d24be20,
-	0x1aea8: 0x6c002020, 0x1aea9: 0x6ceab420, 0x1aeaa: 0x6caab820, 0x1aeab: 0x6c261c20,
-	0x1aeac: 0x6c0ed420, 0x1aead: 0x6c44fa20, 0x1aeae: 0x6ce3be20, 0x1aeaf: 0x6d322c20,
-	0x1aeb0: 0x6c19dc20, 0x1aeb1: 0x6cc94220, 0x1aeb2: 0x6cc94420, 0x1aeb3: 0x6c793220,
-	0x1aeb4: 0x6c9a5020, 0x1aeb5: 0x6c906220, 0x1aeb6: 0x6c706820, 0x1aeb7: 0x6cae9020,
-	0x1aeb8: 0x6c657a20, 0x1aeb9: 0x6d172820, 0x1aeba: 0x6ce6ba20, 0x1aebb: 0x6cccce20,
-	0x1aebc: 0x6cc83a20, 0x1aebd: 0x6cecf820, 0x1aebe: 0x6d008a20, 0x1aebf: 0x6c138820,
-	// Block 0x6bb, offset 0x1aec0
-	0x1aec0: 0x6c3ca020, 0x1aec1: 0x6c68da20, 0x1aec2: 0x6cf43c20, 0x1aec3: 0x6c75a420,
-	0x1aec4: 0x6c6fe820, 0x1aec5: 0x6ce7b220, 0x1aec6: 0x6c7da220, 0x1aec7: 0x6c5dac20,
-	0x1aec8: 0x6ce89620, 0x1aec9: 0x6d3cf620, 0x1aeca: 0x6cb3d620, 0x1aecb: 0x6c938820,
-	0x1aecc: 0x6c033a20, 0x1aecd: 0x6c4e9820, 0x1aece: 0x6cce6020, 0x1aecf: 0x6ca7da20,
-	0x1aed0: 0x6c72e420, 0x1aed1: 0x6d2b4620, 0x1aed2: 0x6cd5ba20, 0x1aed3: 0x6d127620,
-	0x1aed4: 0x6c741220, 0x1aed5: 0x6c103620, 0x1aed6: 0x6cecd020, 0x1aed7: 0x6c108420,
-	0x1aed8: 0x6d421620, 0x1aed9: 0x6d172a20, 0x1aeda: 0x6d2ce820, 0x1aedb: 0x6c937e20,
-	0x1aedc: 0x6cd9a420, 0x1aedd: 0x6ceab620, 0x1aede: 0x6c813a20, 0x1aedf: 0x6cdce620,
-	0x1aee0: 0x6c052220, 0x1aee1: 0x6c657c20, 0x1aee2: 0x6c590220, 0x1aee3: 0x6c29d420,
-	0x1aee4: 0x6cf13c20, 0x1aee5: 0x6ced7820, 0x1aee6: 0x6cbd6e20, 0x1aee7: 0x6caf0220,
-	0x1aee8: 0x6ccf2c20, 0x1aee9: 0x6c8af820, 0x1aeea: 0x6c9f4620, 0x1aeeb: 0x6c9aca20,
-	0x1aeec: 0x6c3f5a20, 0x1aeed: 0x6c041e20, 0x1aeee: 0x6c723e20, 0x1aeef: 0x6c29cc20,
-	0x1aef0: 0x6cf2b420, 0x1aef1: 0x6c003e20, 0x1aef2: 0x6c731c20, 0x1aef3: 0x6d26a420,
-	0x1aef4: 0x6d3fec20, 0x1aef5: 0x6c186420, 0x1aef6: 0x6c20c820, 0x1aef7: 0x6c6ab620,
-	0x1aef8: 0x6ce85420, 0x1aef9: 0x6c07ae20, 0x1aefa: 0x6ca33220, 0x1aefb: 0x6ca72020,
-	0x1aefc: 0x6cc90e20, 0x1aefd: 0x6d423620, 0x1aefe: 0x6cf2e220, 0x1aeff: 0x6cf5e820,
-	// Block 0x6bc, offset 0x1af00
-	0x1af00: 0x6cfa9820, 0x1af01: 0x6c19e620, 0x1af02: 0x6c2cc420, 0x1af03: 0x6ccae020,
-	0x1af04: 0x6c94d220, 0x1af05: 0x6cbec620, 0x1af06: 0x6c427820, 0x1af07: 0x6c342a20,
-	0x1af08: 0x6cd46020, 0x1af09: 0x6c2e1820, 0x1af0a: 0x6cb3d820, 0x1af0b: 0x6c2bf020,
-	0x1af0c: 0x6d2f0420, 0x1af0d: 0x6c5d2420, 0x1af0e: 0x6c613620, 0x1af0f: 0x6ce1c220,
-	0x1af10: 0x6cb82820, 0x1af11: 0x6cb5c420, 0x1af12: 0x6cabfa20, 0x1af13: 0x6cd4c820,
-	0x1af14: 0x6cb8e220, 0x1af15: 0x6c8ce420, 0x1af16: 0x6d125c20, 0x1af17: 0x6d0b9c20,
-	0x1af18: 0x6c742420, 0x1af19: 0x6d32b020, 0x1af1a: 0x6c899020, 0x1af1b: 0x6c48b020,
-	0x1af1c: 0x6d175c20, 0x1af1d: 0x6c5dc220, 0x1af1e: 0x6ccd8220, 0x1af1f: 0x6d332020,
-	0x1af20: 0x6c361020, 0x1af21: 0x6c112a20, 0x1af22: 0x6ce09420, 0x1af23: 0x6c181e20,
-	0x1af24: 0x6c0db020, 0x1af25: 0x6c69fa20, 0x1af26: 0x6ce3ee20, 0x1af27: 0x6c79a420,
-	0x1af28: 0x6ce99020, 0x1af29: 0x6d0d6620, 0x1af2a: 0x6c262220, 0x1af2b: 0x6d387420,
-	0x1af2c: 0x6c708a20, 0x1af2d: 0x6ce53420, 0x1af2e: 0x6cb98820, 0x1af2f: 0x6c791820,
-	0x1af30: 0x6c040020, 0x1af31: 0x6cabd420, 0x1af32: 0x6c69fc20, 0x1af33: 0x6c91ba20,
-	0x1af34: 0x6c48cc20, 0x1af35: 0x6ca04e20, 0x1af36: 0x6c454620, 0x1af37: 0x6d35e020,
-	0x1af38: 0x6c283420, 0x1af39: 0x6c9c2a20, 0x1af3a: 0x6c11f220, 0x1af3b: 0x6ccaa620,
-	0x1af3c: 0x6c498220, 0x1af3d: 0x6caf1020, 0x1af3e: 0x6d261c20, 0x1af3f: 0x6caaee20,
-	// Block 0x6bd, offset 0x1af40
-	0x1af40: 0x6c659020, 0x1af41: 0x6d32c420, 0x1af42: 0x6c6f7220, 0x1af43: 0x6c659220,
-	0x1af44: 0x6d212620, 0x1af45: 0x6d0ca820, 0x1af46: 0x6c7c7820, 0x1af47: 0x6ca42620,
-	0x1af48: 0x6c52a420, 0x1af49: 0x6cc74a20, 0x1af4a: 0x6cb09620, 0x1af4b: 0x6cee8820,
-	0x1af4c: 0x6cc9c420, 0x1af4d: 0x6d408820, 0x1af4e: 0x6d079c20, 0x1af4f: 0x6c9e7620,
-	0x1af50: 0x6ce32420, 0x1af51: 0x6ca7dc20, 0x1af52: 0x6c139c20, 0x1af53: 0x6cd38620,
-	0x1af54: 0x6d3ff220, 0x1af55: 0x6d324220, 0x1af56: 0x6d13f220, 0x1af57: 0x6d0a1020,
-	0x1af58: 0x6d1df620, 0x1af59: 0x6c0af220, 0x1af5a: 0x6d0fb620, 0x1af5b: 0x6c592220,
-	0x1af5c: 0x6d0d8220, 0x1af5d: 0x6d296a20, 0x1af5e: 0x6c018620, 0x1af5f: 0x6d059a20,
-	0x1af60: 0x6d0bac20, 0x1af61: 0x6cf2ee20, 0x1af62: 0x6c784c20, 0x1af63: 0x6c1fb420,
-	0x1af64: 0x6c600020, 0x1af65: 0x6ce3fa20, 0x1af66: 0x6c7e5e20, 0x1af67: 0x6c7e7a20,
-	0x1af68: 0x6c18c820, 0x1af69: 0x6c762e20, 0x1af6a: 0x6c6f7420, 0x1af6b: 0x6c6f7c20,
-	0x1af6c: 0x6ce8ae20, 0x1af6d: 0x6c6a1220, 0x1af6e: 0x6c5ab420, 0x1af6f: 0x6c44b420,
-	0x1af70: 0x6c1d5020, 0x1af71: 0x6cfed620, 0x1af72: 0x6c2ea420, 0x1af73: 0x6d004020,
-	0x1af74: 0x6d256220, 0x1af75: 0x6cb98a20, 0x1af76: 0x6d127c20, 0x1af77: 0x6c139e20,
-	0x1af78: 0x6d2bda20, 0x1af79: 0x6c069e20, 0x1af7a: 0x6d10f820, 0x1af7b: 0x6cee8a20,
-	0x1af7c: 0x6c086a20, 0x1af7d: 0x6c802820, 0x1af7e: 0x6cf20c20, 0x1af7f: 0x6cbe1420,
-	// Block 0x6be, offset 0x1af80
-	0x1af80: 0x6c14ca20, 0x1af81: 0x6c439220, 0x1af82: 0x6c90e420, 0x1af83: 0x6d3ff420,
-	0x1af84: 0x6c44ce20, 0x1af85: 0x6c68f220, 0x1af86: 0x6c46b820, 0x1af87: 0x6cbe1a20,
-	0x1af88: 0x6cc68420, 0x1af89: 0x6cc3ca20, 0x1af8a: 0x6c1d7420, 0x1af8b: 0x6c1fb620,
-	0x1af8c: 0x6d2df620, 0x1af8d: 0x6cdcf020, 0x1af8e: 0x6cdcd420, 0x1af8f: 0x6c0f1220,
-	0x1af90: 0x6c1f4e20, 0x1af91: 0x6cc67420, 0x1af92: 0x6c057a20, 0x1af93: 0x6c25ba20,
-	0x1af94: 0x6ccaac20, 0x1af95: 0x6c780620, 0x1af96: 0x6d111020, 0x1af97: 0x6c29dc20,
-	0x1af98: 0x6d33ee20, 0x1af99: 0x6caa6620, 0x1af9a: 0x6c7e4820, 0x1af9b: 0x6c64b020,
-	0x1af9c: 0x6cd9b020, 0x1af9d: 0x6cc0ae20, 0x1af9e: 0x6c430820, 0x1af9f: 0x6cfc1420,
-	0x1afa0: 0x6cd78620, 0x1afa1: 0x6cca8020, 0x1afa2: 0x6c6d1420, 0x1afa3: 0x6c9edc20,
-	0x1afa4: 0x6c365820, 0x1afa5: 0x6c20ce20, 0x1afa6: 0x6caafc20, 0x1afa7: 0x6cccea20,
-	0x1afa8: 0x6cde5c20, 0x1afa9: 0x6d2c7e20, 0x1afaa: 0x6ce10220, 0x1afab: 0x6cac6420,
-	0x1afac: 0x6c048620, 0x1afad: 0x6c265020, 0x1afae: 0x6c863020, 0x1afaf: 0x6ce1d620,
-	0x1afb0: 0x6c555c20, 0x1afb1: 0x6d365620, 0x1afb2: 0x6cebe220, 0x1afb3: 0x6c574220,
-	0x1afb4: 0x6cb90220, 0x1afb5: 0x6cf20e20, 0x1afb6: 0x6cbb3e20, 0x1afb7: 0x6ce4ac20,
-	0x1afb8: 0x6d316220, 0x1afb9: 0x6c365a20, 0x1afba: 0x6d00ba20, 0x1afbb: 0x6cab0220,
-	0x1afbc: 0x6cc2fc20, 0x1afbd: 0x6c13e220, 0x1afbe: 0x6d2ccc20, 0x1afbf: 0x6c441020,
-	// Block 0x6bf, offset 0x1afc0
-	0x1afc0: 0x6cf44e20, 0x1afc1: 0x6c372420, 0x1afc2: 0x6ccf5220, 0x1afc3: 0x6c776820,
-	0x1afc4: 0x6ccf5420, 0x1afc5: 0x6cd4e820, 0x1afc6: 0x6c042620, 0x1afc7: 0x6d111220,
-	0x1afc8: 0x6c0d8020, 0x1afc9: 0x6cd9be20, 0x1afca: 0x6cdfae20, 0x1afcb: 0x6cc97820,
-	0x1afcc: 0x6c15ca20, 0x1afcd: 0x6cdd2a20, 0x1afce: 0x6c6f8020, 0x1afcf: 0x6c1cd220,
-	0x1afd0: 0x6c205620, 0x1afd1: 0x6c48d220, 0x1afd2: 0x6c0de620, 0x1afd3: 0x6c3cac20,
-	0x1afd4: 0x6cd65620, 0x1afd5: 0x6c2c7e20, 0x1afd6: 0x6cb7ae20, 0x1afd7: 0x6cd9cc20,
-	0x1afd8: 0x6d2cf820, 0x1afd9: 0x6c88c220, 0x1afda: 0x6c197c20, 0x1afdb: 0x6c1ab820,
-	0x1afdc: 0x6c499820, 0x1afdd: 0x6c928220, 0x1afde: 0x6c961420, 0x1afdf: 0x6c90ee20,
-	0x1afe0: 0x6d400020, 0x1afe1: 0x6c413420, 0x1afe2: 0x6c56b620, 0x1afe3: 0x6d2bea20,
-	0x1afe4: 0x6c209420, 0x1afe5: 0x6ce19e20, 0x1afe6: 0x6c57ac20, 0x1afe7: 0x6c24dc20,
-	0x1afe8: 0x6ca38420, 0x1afe9: 0x6ca07220, 0x1afea: 0x6c676820, 0x1afeb: 0x6c4a7a20,
-	0x1afec: 0x6d1cfc20, 0x1afed: 0x6d348020, 0x1afee: 0x6c026020, 0x1afef: 0x6d36ae20,
-	0x1aff0: 0x6ca85c20, 0x1aff1: 0x6c97ea20, 0x1aff2: 0x6c163020, 0x1aff3: 0x6c79c220,
-	0x1aff4: 0x6c1e6220, 0x1aff5: 0x6ccf6420, 0x1aff6: 0x6ce95420, 0x1aff7: 0x6c691420,
-	0x1aff8: 0x6ca05620, 0x1aff9: 0x6ca06820, 0x1affa: 0x6d306c20, 0x1affb: 0x6c11fc20,
-	0x1affc: 0x6c794820, 0x1affd: 0x6c0c0a20, 0x1affe: 0x6c67f620, 0x1afff: 0x6d19f420,
-	// Block 0x6c0, offset 0x1b000
-	0x1b000: 0x6c46ce20, 0x1b001: 0x6cb90420, 0x1b002: 0x6c8aa020, 0x1b003: 0x6c608420,
-	0x1b004: 0x6d1bce20, 0x1b005: 0x6c73b420, 0x1b006: 0x6cb1d020, 0x1b007: 0x6cb1ca20,
-	0x1b008: 0x6c813c20, 0x1b009: 0x6c33ac20, 0x1b00a: 0x6cfcfa20, 0x1b00b: 0x6cc84420,
-	0x1b00c: 0x6c4b6620, 0x1b00d: 0x6d297420, 0x1b00e: 0x6d185020, 0x1b00f: 0x6cfb7e20,
-	0x1b010: 0x6c198820, 0x1b011: 0x6c198a20, 0x1b012: 0x6cc94620, 0x1b013: 0x6ca4ba20,
-	0x1b014: 0x6c53ca20, 0x1b015: 0x6cd81620, 0x1b016: 0x6c4ee020, 0x1b017: 0x6c4a2620,
-	0x1b018: 0x6c266420, 0x1b019: 0x6d420c20, 0x1b01a: 0x6ca73420, 0x1b01b: 0x6c8c2a20,
-	0x1b01c: 0x6d332c20, 0x1b01d: 0x6c5ae420, 0x1b01e: 0x6d3c4820, 0x1b01f: 0x6c692820,
-	0x1b020: 0x6c615020, 0x1b021: 0x6c126620, 0x1b022: 0x6c283c20, 0x1b023: 0x6c283e20,
-	0x1b024: 0x6c183220, 0x1b025: 0x6c0e8820, 0x1b026: 0x6c17ee20, 0x1b027: 0x6c73b620,
-	0x1b028: 0x6c3f8020, 0x1b029: 0x6c89d220, 0x1b02a: 0x6c07c220, 0x1b02b: 0x6c3f8220,
-	0x1b02c: 0x6cbc5820, 0x1b02d: 0x6c0e8a20, 0x1b02e: 0x6c25c620, 0x1b02f: 0x6d3d7a20,
-	0x1b030: 0x6d3bda20, 0x1b031: 0x6ceff020, 0x1b032: 0x6cb40e20, 0x1b033: 0x6cbe2220,
-	0x1b034: 0x6c33a620, 0x1b035: 0x6ca73620, 0x1b036: 0x6c574420, 0x1b037: 0x6d00d820,
-	0x1b038: 0x6c912e20, 0x1b039: 0x6c692a20, 0x1b03a: 0x6c249020, 0x1b03b: 0x6cde8c20,
-	0x1b03c: 0x6c4f0420, 0x1b03d: 0x6cbc5c20, 0x1b03e: 0x6cf29a20, 0x1b03f: 0x6c65d620,
-	// Block 0x6c1, offset 0x1b040
-	0x1b040: 0x6c41ea20, 0x1b041: 0x6d1db220, 0x1b042: 0x6c825620, 0x1b043: 0x6ca46e20,
-	0x1b044: 0x6c91da20, 0x1b045: 0x6ccda820, 0x1b046: 0x6d3d7c20, 0x1b047: 0x6d2afa20,
-	0x1b048: 0x6cb41420, 0x1b049: 0x6c21d620, 0x1b04a: 0x6c5f5220, 0x1b04b: 0x6c293420,
-	0x1b04c: 0x6ccb5620, 0x1b04d: 0x6c126820, 0x1b04e: 0x6cbe8c20, 0x1b04f: 0x6cbe8420,
-	0x1b050: 0x6c595220, 0x1b051: 0x6c6a3020, 0x1b052: 0x6cbd9420, 0x1b053: 0x6c7b0220,
-	0x1b054: 0x6c27fa20, 0x1b055: 0x6d00dc20, 0x1b056: 0x6c761420, 0x1b057: 0x6cb06e20,
-	0x1b058: 0x6c040620, 0x1b059: 0x6c02f220, 0x1b05a: 0x6c728c20, 0x1b05b: 0x6d132620,
-	0x1b05c: 0x6c370620, 0x1b05d: 0x6c9c2c20, 0x1b05e: 0x6cda2620, 0x1b05f: 0x6c9c7a20,
-	0x1b060: 0x6c615420, 0x1b061: 0x6cdf4820, 0x1b062: 0x6d3da820, 0x1b063: 0x6c29f220,
-	0x1b064: 0x6d040a20, 0x1b065: 0x6c804420, 0x1b066: 0x6c10da20, 0x1b067: 0x6c71d820,
-	0x1b068: 0x6d129220, 0x1b069: 0x6cc80620, 0x1b06a: 0x6d136820, 0x1b06b: 0x6d135a20,
-	0x1b06c: 0x6ca65220, 0x1b06d: 0x6cf31420, 0x1b06e: 0x6c60bc20, 0x1b06f: 0x6c0d8820,
-	0x1b070: 0x6ca92420, 0x1b071: 0x6c43b420, 0x1b072: 0x6d370420, 0x1b073: 0x6d36de20,
-	0x1b074: 0x6c7e1a20, 0x1b075: 0x6ca08620, 0x1b076: 0x6c66ec20, 0x1b077: 0x6d011020,
-	0x1b078: 0x6c8b4c20, 0x1b079: 0x6cdfc020, 0x1b07a: 0x6c042a20, 0x1b07b: 0x6cda3020,
-	0x1b07c: 0x6c91e820, 0x1b07d: 0x6c94ca20, 0x1b07e: 0x6cc54220, 0x1b07f: 0x6ce2fe20,
-	// Block 0x6c2, offset 0x1b080
-	0x1b080: 0x6cac4c20, 0x1b081: 0x6d103620, 0x1b082: 0x6c834c20, 0x1b083: 0x6c10dc20,
-	0x1b084: 0x6cd51420, 0x1b085: 0x6d297a20, 0x1b086: 0x6ca74220, 0x1b087: 0x6cfc4020,
-	0x1b088: 0x6c75fa20, 0x1b089: 0x6c5d6620, 0x1b08a: 0x6c86f420, 0x1b08b: 0x6c7ea420,
-	0x1b08c: 0x6c58e420, 0x1b08d: 0x6d1cb620, 0x1b08e: 0x6c917020, 0x1b08f: 0x6c904420,
-	0x1b090: 0x6cb93a20, 0x1b091: 0x6cb93c20, 0x1b092: 0x6d297c20, 0x1b093: 0x6cb94620,
-	0x1b094: 0x6c7fe620, 0x1b095: 0x6cfafc20, 0x1b096: 0x6d1c1e20, 0x1b097: 0x6c9a3a20,
-	0x1b098: 0x6cc50820, 0x1b099: 0x6c14e020, 0x1b09a: 0x6d1d6c20, 0x1b09b: 0x6c249820,
-	0x1b09c: 0x6d012420, 0x1b09d: 0x6ccf8a20, 0x1b09e: 0x6c957420, 0x1b09f: 0x6c760820,
-	0x1b0a0: 0x6c9cb220, 0x1b0a1: 0x6c84a620, 0x1b0a2: 0x6d298220, 0x1b0a3: 0x6c945820,
-	0x1b0a4: 0x6cdfc420, 0x1b0a5: 0x6d416420, 0x1b0a6: 0x6c876620, 0x1b0a7: 0x6c2cf820,
-	0x1b0a8: 0x6cec0020, 0x1b0a9: 0x6c293c20, 0x1b0aa: 0x6c697420, 0x1b0ab: 0x6c751c20,
-	0x1b0ac: 0x6c805c20, 0x1b0ad: 0x6c879e20, 0x1b0ae: 0x6ca47620, 0x1b0af: 0x6d337e20,
-	0x1b0b0: 0x6c4b2820, 0x1b0b1: 0x6c4ad820, 0x1b0b2: 0x6cb4f020, 0x1b0b3: 0x6d0a3a20,
-	0x1b0b4: 0x6cb3fc20, 0x1b0b5: 0x6cdba820, 0x1b0b6: 0x6cd42a20, 0x1b0b7: 0x6c779a20,
-	0x1b0b8: 0x6d1e9020, 0x1b0b9: 0x6c410c20, 0x1b0ba: 0x6d15bc20, 0x1b0bb: 0x6c455e20,
-	0x1b0bc: 0x6c416620, 0x1b0bd: 0x6c047220, 0x1b0be: 0x6c39e220, 0x1b0bf: 0x6d334220,
-	// Block 0x6c3, offset 0x1b0c0
-	0x1b0c0: 0x6cb36c20, 0x1b0c1: 0x6c2cc020, 0x1b0c2: 0x6c79da20, 0x1b0c3: 0x6c9f9a20,
-	0x1b0c4: 0x6cf4c420, 0x1b0c5: 0x6c480020, 0x1b0c6: 0x6c50f020, 0x1b0c7: 0x6c12d620,
-	0x1b0c8: 0x6cffdc20, 0x1b0c9: 0x6c9ce620, 0x1b0ca: 0x6c1f2420, 0x1b0cb: 0x6c43d620,
-	0x1b0cc: 0x6c2b6220, 0x1b0cd: 0x6d06b620, 0x1b0ce: 0x6c699a20, 0x1b0cf: 0x6c9fa820,
-	0x1b0d0: 0x6c18bc20, 0x1b0d1: 0x6c6ff220, 0x1b0d2: 0x6ccfda20, 0x1b0d3: 0x6c344620,
-	0x1b0d4: 0x6d224e20, 0x1b0d5: 0x6c1c0e20, 0x1b0d6: 0x6c024020, 0x1b0d7: 0x6c044020,
-	0x1b0d8: 0x6d06b820, 0x1b0d9: 0x6c699c20, 0x1b0da: 0x6c344820, 0x1b0db: 0x6c88b420,
-	0x1b0dc: 0x6ca82c20, 0x1b0dd: 0x6c097820, 0x1b0de: 0x6c172c20, 0x1b0df: 0x6c2d1a20,
-	0x1b0e0: 0x6c342e20, 0x1b0e1: 0x6d179c20, 0x1b0e2: 0x6c41d420, 0x1b0e3: 0x6cca5420,
-	0x1b0e4: 0x6c786820, 0x1b0e5: 0x6d0e7020, 0x1b0e6: 0x6c339a20, 0x1b0e7: 0x6c5ecc20,
-	0x1b0e8: 0x6ce81420, 0x1b0e9: 0x6cffea20, 0x1b0ea: 0x6c345020, 0x1b0eb: 0x6c690620,
-	0x1b0ec: 0x6c6e8420, 0x1b0ed: 0x6d0fc220, 0x1b0ee: 0x6cf9ce20, 0x1b0ef: 0x6c9f5e20,
-	0x1b0f0: 0x6cd5e420, 0x1b0f1: 0x6c004820, 0x1b0f2: 0x6cbb8c20, 0x1b0f3: 0x6c004a20,
-	0x1b0f4: 0x6d333220, 0x1b0f5: 0x6c2b8820, 0x1b0f6: 0x6d324c20, 0x1b0f7: 0x6c3d8e20,
-	0x1b0f8: 0x6cd60020, 0x1b0f9: 0x6c8a1020, 0x1b0fa: 0x6cc13620, 0x1b0fb: 0x6d049e20,
-	0x1b0fc: 0x6d161020, 0x1b0fd: 0x6c694020, 0x1b0fe: 0x6ccdfc20, 0x1b0ff: 0x6c694220,
-	// Block 0x6c4, offset 0x1b100
-	0x1b100: 0x6d3daa20, 0x1b101: 0x6d18c220, 0x1b102: 0x6c88ca20, 0x1b103: 0x6c0a6820,
-	0x1b104: 0x6c848820, 0x1b105: 0x6d002220, 0x1b106: 0x6d002420, 0x1b107: 0x6cf17a20,
-	0x1b108: 0x6d08f420, 0x1b109: 0x6cb58220, 0x1b10a: 0x6cb5a220, 0x1b10b: 0x6d2cea20,
-	0x1b10c: 0x6c0d3620, 0x1b10d: 0x6c742620, 0x1b10e: 0x6d2cf020, 0x1b10f: 0x6c80b820,
-	0x1b110: 0x6c3a5620, 0x1b111: 0x6c048020, 0x1b112: 0x6c048820, 0x1b113: 0x6c7fb420,
-	0x1b114: 0x6d22a620, 0x1b115: 0x6c7ff620, 0x1b116: 0x6cf06420, 0x1b117: 0x6c30f820,
-	0x1b118: 0x6cd0de20, 0x1b119: 0x6c8a9420, 0x1b11a: 0x6c640a20, 0x1b11b: 0x6c554420,
-	0x1b11c: 0x6d00a020, 0x1b11d: 0x6c641820, 0x1b11e: 0x6d225820, 0x1b11f: 0x6d316420,
-	0x1b120: 0x6c69ae20, 0x1b121: 0x6cf30220, 0x1b122: 0x6ce5ca20, 0x1b123: 0x6c313a20,
-	0x1b124: 0x6c6c1e20, 0x1b125: 0x6c1bdc20, 0x1b126: 0x6d1a2e20, 0x1b127: 0x6c3f4420,
-	0x1b128: 0x6cbaa420, 0x1b129: 0x6d2ddc20, 0x1b12a: 0x6cc17820, 0x1b12b: 0x6d3d3220,
-	0x1b12c: 0x6d2de620, 0x1b12d: 0x6c32ba20, 0x1b12e: 0x6c262820, 0x1b12f: 0x6cd7e820,
-	0x1b130: 0x6d02dc20, 0x1b131: 0x6d3d5c20, 0x1b132: 0x6d3d7e20, 0x1b133: 0x6cbd9620,
-	0x1b134: 0x6c8bda20, 0x1b135: 0x6d3dac20, 0x1b136: 0x6c1f7c20, 0x1b137: 0x6c32e020,
-	0x1b138: 0x6d3a9020, 0x1b139: 0x6c398020, 0x1b13a: 0x6c159820, 0x1b13b: 0x6c4f5e20,
-	0x1b13c: 0x6d20c220, 0x1b13d: 0x6cd1aa20, 0x1b13e: 0x6cae0e20, 0x1b13f: 0x6d1f0820,
-	// Block 0x6c5, offset 0x1b140
-	0x1b140: 0x6c9a7c20, 0x1b141: 0x6cacfa20, 0x1b142: 0x6cb5a420, 0x1b143: 0x6d2d6820,
-	0x1b144: 0x6c98d020, 0x1b145: 0x6c938a20, 0x1b146: 0x6cae1220, 0x1b147: 0x6caf6020,
-	0x1b148: 0x6c8e4e20, 0x1b149: 0x6c3d6220, 0x1b14a: 0x6c39d020, 0x1b14b: 0x6d081020,
-	0x1b14c: 0x6c6daa20, 0x1b14d: 0x6c6dac20, 0x1b14e: 0x6ca63620, 0x1b14f: 0x6d40b820,
-	0x1b150: 0x6d2fb020, 0x1b151: 0x6d15ee20, 0x1b152: 0x6c8e6a20, 0x1b153: 0x6cce7420,
-	0x1b154: 0x6c668a20, 0x1b155: 0x6d214c20, 0x1b156: 0x6d15fe20, 0x1b157: 0x6cb61a20,
-	0x1b158: 0x6d36e020, 0x1b159: 0x6c385e20, 0x1b15a: 0x6cb16620, 0x1b15b: 0x6c386020,
-	0x1b15c: 0x6d2db220, 0x1b15d: 0x6c7b4420, 0x1b15e: 0x6cdc9a20, 0x1b15f: 0x6d21d420,
-	0x1b160: 0x6cf39a20, 0x1b161: 0x6c616c20, 0x1b162: 0x6c61a820, 0x1b163: 0x6c61ec20,
-	0x1b164: 0x6c5dce20, 0x1b165: 0x6cc63620, 0x1b166: 0x6c285e20, 0x1b167: 0x6c6fca20,
-	0x1b168: 0x6d34d820, 0x1b169: 0x6d2a3a20, 0x1b16a: 0x6d006820, 0x1b16b: 0x6ce54620,
-	0x1b16c: 0x6d09d620, 0x1b16d: 0x6d066820, 0x1b16e: 0x6c40bc20, 0x1b16f: 0x6c7e5820,
-	0x1b170: 0x6c420c20, 0x1b171: 0x6c4e8a20, 0x1b172: 0x6cdf1020, 0x1b173: 0x6c2c1620,
-	0x1b174: 0x6d056620, 0x1b175: 0x6c159420, 0x1b176: 0x6cd23a20, 0x1b177: 0x6c7bde20,
-	0x1b178: 0x6d0f7c20, 0x1b179: 0x6cd24620, 0x1b17a: 0x6cee4c20, 0x1b17b: 0x6c9f3020,
-	0x1b17c: 0x6c9f3220, 0x1b17d: 0x6cea8620, 0x1b17e: 0x6c20fc20, 0x1b17f: 0x6cf42820,
-	// Block 0x6c6, offset 0x1b180
-	0x1b180: 0x6d278820, 0x1b181: 0x6c06e620, 0x1b182: 0x6c01f420, 0x1b183: 0x6d2b3e20,
-	0x1b184: 0x6c04ba20, 0x1b185: 0x6c6a7420, 0x1b186: 0x6c7d4c20, 0x1b187: 0x6cd0e020,
-	0x1b188: 0x6c566820, 0x1b189: 0x6c39c420, 0x1b18a: 0x6c501c20, 0x1b18b: 0x6c4b2e20,
-	0x1b18c: 0x6c166020, 0x1b18d: 0x6d077c20, 0x1b18e: 0x6c9fe820, 0x1b18f: 0x6c5cb220,
-	0x1b190: 0x6c3b1620, 0x1b191: 0x6cbdc820, 0x1b192: 0x6c54a220, 0x1b193: 0x6d16ba20,
-	0x1b194: 0x6cf58620, 0x1b195: 0x6d02b220, 0x1b196: 0x6d0c6420, 0x1b197: 0x6d2b4020,
-	0x1b198: 0x6c39c620, 0x1b199: 0x6cdfd220, 0x1b19a: 0x6cd09420, 0x1b19b: 0x6c721020,
-	0x1b19c: 0x6d0f9620, 0x1b19d: 0x6d296020, 0x1b19e: 0x6c0dcc20, 0x1b19f: 0x6d036a20,
-	0x1b1a0: 0x6d1d3420, 0x1b1a1: 0x6d087620, 0x1b1a2: 0x6cb36e20, 0x1b1a3: 0x6d31c020,
-	0x1b1a4: 0x6c8cb420, 0x1b1a5: 0x6c210020, 0x1b1a6: 0x6c502020, 0x1b1a7: 0x6c9a7e20,
-	0x1b1a8: 0x6d422e20, 0x1b1a9: 0x6ca0e020, 0x1b1aa: 0x6c0b8620, 0x1b1ab: 0x6d069020,
-	0x1b1ac: 0x6c5cb420, 0x1b1ad: 0x6d2f5c20, 0x1b1ae: 0x6d401820, 0x1b1af: 0x6cd33820,
-	0x1b1b0: 0x6cd33a20, 0x1b1b1: 0x6d22e220, 0x1b1b2: 0x6c3a8e20, 0x1b1b3: 0x6c2e7420,
-	0x1b1b4: 0x6c993220, 0x1b1b5: 0x6ca68620, 0x1b1b6: 0x6c16e620, 0x1b1b7: 0x6cf14a20,
-	0x1b1b8: 0x6c2fe420, 0x1b1b9: 0x6c006220, 0x1b1ba: 0x6c0dce20, 0x1b1bb: 0x6c01f620,
-	0x1b1bc: 0x6d390e20, 0x1b1bd: 0x6c8f7420, 0x1b1be: 0x6cfbec20, 0x1b1bf: 0x6c7be820,
-	// Block 0x6c7, offset 0x1b1c0
-	0x1b1c0: 0x6ce5ba20, 0x1b1c1: 0x6c175c20, 0x1b1c2: 0x6cd25c20, 0x1b1c3: 0x6c5a8220,
-	0x1b1c4: 0x6c5a4e20, 0x1b1c5: 0x6d084820, 0x1b1c6: 0x6c7c6220, 0x1b1c7: 0x6d058020,
-	0x1b1c8: 0x6c68dc20, 0x1b1c9: 0x6c6cea20, 0x1b1ca: 0x6d35ba20, 0x1b1cb: 0x6c6cec20,
-	0x1b1cc: 0x6cce3620, 0x1b1cd: 0x6ce72e20, 0x1b1ce: 0x6c53a020, 0x1b1cf: 0x6d0e5020,
-	0x1b1d0: 0x6c40ec20, 0x1b1d1: 0x6cfde020, 0x1b1d2: 0x6ccc9c20, 0x1b1d3: 0x6cffa820,
-	0x1b1d4: 0x6d12de20, 0x1b1d5: 0x6d274c20, 0x1b1d6: 0x6c5aa220, 0x1b1d7: 0x6c4dfe20,
-	0x1b1d8: 0x6c4eac20, 0x1b1d9: 0x6c75ae20, 0x1b1da: 0x6ced0820, 0x1b1db: 0x6cfcb020,
-	0x1b1dc: 0x6c7d5820, 0x1b1dd: 0x6d392020, 0x1b1de: 0x6cf5ea20, 0x1b1df: 0x6c19de20,
-	0x1b1e0: 0x6cd15820, 0x1b1e1: 0x6c101420, 0x1b1e2: 0x6d304c20, 0x1b1e3: 0x6d304e20,
-	0x1b1e4: 0x6cf4dc20, 0x1b1e5: 0x6c4eae20, 0x1b1e6: 0x6c5bb620, 0x1b1e7: 0x6c503420,
-	0x1b1e8: 0x6c194e20, 0x1b1e9: 0x6ced1820, 0x1b1ea: 0x6ce4f420, 0x1b1eb: 0x6d3d5e20,
-	0x1b1ec: 0x6d41b220, 0x1b1ed: 0x6d38e820, 0x1b1ee: 0x6cb48c20, 0x1b1ef: 0x6c6e2020,
-	0x1b1f0: 0x6cf60c20, 0x1b1f1: 0x6ccd4020, 0x1b1f2: 0x6ca63820, 0x1b1f3: 0x6cf60e20,
-	0x1b1f4: 0x6cbe7a20, 0x1b1f5: 0x6cb6fc20, 0x1b1f6: 0x6c6db420, 0x1b1f7: 0x6c4afc20,
-	0x1b1f8: 0x6d332220, 0x1b1f9: 0x6d179e20, 0x1b1fa: 0x6d362820, 0x1b1fb: 0x6c01c220,
-	0x1b1fc: 0x6ced1a20, 0x1b1fd: 0x6c8bb220, 0x1b1fe: 0x6c89b820, 0x1b1ff: 0x6c166e20,
-	// Block 0x6c8, offset 0x1b200
-	0x1b200: 0x6cee1820, 0x1b201: 0x6cffac20, 0x1b202: 0x6d298c20, 0x1b203: 0x6c3b0620,
-	0x1b204: 0x6d07a620, 0x1b205: 0x6c453420, 0x1b206: 0x6d151820, 0x1b207: 0x6cf9d020,
-	0x1b208: 0x6d275420, 0x1b209: 0x6c5ac220, 0x1b20a: 0x6d064220, 0x1b20b: 0x6c9fba20,
-	0x1b20c: 0x6c7c8820, 0x1b20d: 0x6d126020, 0x1b20e: 0x6d1d3a20, 0x1b20f: 0x6cd55c20,
-	0x1b210: 0x6cefd820, 0x1b211: 0x6cd55a20, 0x1b212: 0x6cbe8220, 0x1b213: 0x6c998e20,
-	0x1b214: 0x6ca40020, 0x1b215: 0x6c65ac20, 0x1b216: 0x6caa9420, 0x1b217: 0x6c01c620,
-	0x1b218: 0x6d0fc420, 0x1b219: 0x6c210a20, 0x1b21a: 0x6d111e20, 0x1b21b: 0x6cdd7820,
-	0x1b21c: 0x6c6d2820, 0x1b21d: 0x6ca00e20, 0x1b21e: 0x6c691620, 0x1b21f: 0x6c766620,
-	0x1b220: 0x6c430e20, 0x1b221: 0x6cf25620, 0x1b222: 0x6c171c20, 0x1b223: 0x6cb7b020,
-	0x1b224: 0x6c505220, 0x1b225: 0x6d0e9420, 0x1b226: 0x6c864a20, 0x1b227: 0x6c00ba20,
-	0x1b228: 0x6c623620, 0x1b229: 0x6c626020, 0x1b22a: 0x6c9af820, 0x1b22b: 0x6d299620,
-	0x1b22c: 0x6d01f820, 0x1b22d: 0x6c505820, 0x1b22e: 0x6ca2a220, 0x1b22f: 0x6ca14020,
-	0x1b230: 0x6c233820, 0x1b231: 0x6ca6b820, 0x1b232: 0x6d2ed420, 0x1b233: 0x6c5c1420,
-	0x1b234: 0x6c066220, 0x1b235: 0x6c4ef820, 0x1b236: 0x6d081e20, 0x1b237: 0x6c200420,
-	0x1b238: 0x6c8a1820, 0x1b239: 0x6cfacc20, 0x1b23a: 0x6c28ae20, 0x1b23b: 0x6c6e2e20,
-	0x1b23c: 0x6cb1d220, 0x1b23d: 0x6c8bdc20, 0x1b23e: 0x6cea2820, 0x1b23f: 0x6cf80e20,
-	// Block 0x6c9, offset 0x1b240
-	0x1b240: 0x6d189220, 0x1b241: 0x6c627620, 0x1b242: 0x6c5a7620, 0x1b243: 0x6c278820,
-	0x1b244: 0x6d131220, 0x1b245: 0x6d131420, 0x1b246: 0x6c867820, 0x1b247: 0x6ce00e20,
-	0x1b248: 0x6ce78220, 0x1b249: 0x6cffba20, 0x1b24a: 0x6c3ace20, 0x1b24b: 0x6cd07420,
-	0x1b24c: 0x6d2fde20, 0x1b24d: 0x6c506620, 0x1b24e: 0x6d18c420, 0x1b24f: 0x6cfdfc20,
-	0x1b250: 0x6d03a220, 0x1b251: 0x6cd02620, 0x1b252: 0x6c694a20, 0x1b253: 0x6c067020,
-	0x1b254: 0x6c6eaa20, 0x1b255: 0x6d0ed020, 0x1b256: 0x6c00de20, 0x1b257: 0x6d135c20,
-	0x1b258: 0x6cc7dc20, 0x1b259: 0x6cd57420, 0x1b25a: 0x6c9b5820, 0x1b25b: 0x6d09b820,
-	0x1b25c: 0x6d122e20, 0x1b25d: 0x6cb4bc20, 0x1b25e: 0x6c86ca20, 0x1b25f: 0x6c18f620,
-	0x1b260: 0x6c7c0e20, 0x1b261: 0x6c2f0420, 0x1b262: 0x6c8a7e20, 0x1b263: 0x6d0ef820,
-	0x1b264: 0x6c5e3e20, 0x1b265: 0x6c917e20, 0x1b266: 0x6cf73220, 0x1b267: 0x6cc6dc20,
-	0x1b268: 0x6c8fd620, 0x1b269: 0x6ca47220, 0x1b26a: 0x6c95d620, 0x1b26b: 0x6c945a20,
-	0x1b26c: 0x6cccae20, 0x1b26d: 0x6ce18e20, 0x1b26e: 0x6d0e2420, 0x1b26f: 0x6d3a4420,
-	0x1b270: 0x6d264220, 0x1b271: 0x6d264420, 0x1b272: 0x6cc0c620, 0x1b273: 0x6d12bc20,
-	0x1b274: 0x6c452620, 0x1b275: 0x6d12c420, 0x1b276: 0x6c54a420, 0x1b277: 0x6c50d620,
-	0x1b278: 0x6cd4b820, 0x1b279: 0x6c127420, 0x1b27a: 0x6c127020, 0x1b27b: 0x6cd18620,
-	0x1b27c: 0x6c97da20, 0x1b27d: 0x6c134820, 0x1b27e: 0x6c135020, 0x1b27f: 0x6ce3fc20,
-	// Block 0x6ca, offset 0x1b280
-	0x1b280: 0x6d41b020, 0x1b281: 0x6c11d020, 0x1b282: 0x6d06d620, 0x1b283: 0x6c5be220,
-	0x1b284: 0x6d1af620, 0x1b285: 0x6cbcd220, 0x1b286: 0x6c3b4220, 0x1b287: 0x6cb03820,
-	0x1b288: 0x6d266820, 0x1b289: 0x6d1f9820, 0x1b28a: 0x6cc85020, 0x1b28b: 0x6cae8e20,
-	0x1b28c: 0x6c3b5a20, 0x1b28d: 0x6c3df220, 0x1b28e: 0x6c8cb620, 0x1b28f: 0x6c3a4820,
-	0x1b290: 0x6cc17a20, 0x1b291: 0x6ce3da20, 0x1b292: 0x6caa7e20, 0x1b293: 0x6ce5bc20,
-	0x1b294: 0x6cd77620, 0x1b295: 0x6d322e20, 0x1b296: 0x6c80fa20, 0x1b297: 0x6c80f820,
-	0x1b298: 0x6d416c20, 0x1b299: 0x6c9ff620, 0x1b29a: 0x6c598c20, 0x1b29b: 0x6cee5220,
-	0x1b29c: 0x6cea2020, 0x1b29d: 0x6c176220, 0x1b29e: 0x6c5ed220, 0x1b29f: 0x6cb4f220,
-	0x1b2a0: 0x6d1bba20, 0x1b2a1: 0x6d3f9820, 0x1b2a2: 0x6cee5820, 0x1b2a3: 0x6ce78420,
-	0x1b2a4: 0x6c811220, 0x1b2a5: 0x6c81fa20, 0x1b2a6: 0x6c9b5a20, 0x1b2a7: 0x6c8fd820,
-	0x1b2a8: 0x6ca25c20, 0x1b2a9: 0x6c2ac820, 0x1b2aa: 0x6cf06c20, 0x1b2ab: 0x6ca0bc20,
-	0x1b2ac: 0x6c079220, 0x1b2ad: 0x6d2c1620, 0x1b2ae: 0x6cd59020, 0x1b2af: 0x6cd59220,
-	0x1b2b0: 0x6ca26220, 0x1b2b1: 0x6d397e20, 0x1b2b2: 0x6cc56620, 0x1b2b3: 0x6c031420,
-	0x1b2b4: 0x6cb48220, 0x1b2b5: 0x6c352a20, 0x1b2b6: 0x6c347020, 0x1b2b7: 0x6c29ba20,
-	0x1b2b8: 0x6c857220, 0x1b2b9: 0x6c4abe20, 0x1b2ba: 0x6c5e7820, 0x1b2bb: 0x6c6f4820,
-	0x1b2bc: 0x6c08b220, 0x1b2bd: 0x6d051c20, 0x1b2be: 0x6c19b420, 0x1b2bf: 0x6c22a820,
-	// Block 0x6cb, offset 0x1b2c0
-	0x1b2c0: 0x6ccbc020, 0x1b2c1: 0x6cc83420, 0x1b2c2: 0x6d28ac20, 0x1b2c3: 0x6cc2b420,
-	0x1b2c4: 0x6cb8a620, 0x1b2c5: 0x6d20b620, 0x1b2c6: 0x6c416820, 0x1b2c7: 0x6cf35420,
-	0x1b2c8: 0x6c137c20, 0x1b2c9: 0x6cccbc20, 0x1b2ca: 0x6d09dc20, 0x1b2cb: 0x6c388420,
-	0x1b2cc: 0x6cf4aa20, 0x1b2cd: 0x6d3ee620, 0x1b2ce: 0x6c87d820, 0x1b2cf: 0x6d041220,
-	0x1b2d0: 0x6c110820, 0x1b2d1: 0x6c259220, 0x1b2d2: 0x6cc5c220, 0x1b2d3: 0x6c0bea20,
-	0x1b2d4: 0x6ceaa220, 0x1b2d5: 0x6c2c1820, 0x1b2d6: 0x6d2f2220, 0x1b2d7: 0x6c983220,
-	0x1b2d8: 0x6c1be220, 0x1b2d9: 0x6d168a20, 0x1b2da: 0x6c412c20, 0x1b2db: 0x6c456020,
-	0x1b2dc: 0x6c323420, 0x1b2dd: 0x6c83a220, 0x1b2de: 0x6cb6d620, 0x1b2df: 0x6cd59820,
-	0x1b2e0: 0x6c425620, 0x1b2e1: 0x6ce56a20, 0x1b2e2: 0x6c681a20, 0x1b2e3: 0x6ccdf820,
-	0x1b2e4: 0x6cedb620, 0x1b2e5: 0x6c7ee020, 0x1b2e6: 0x6c704420, 0x1b2e7: 0x6c983420,
-	0x1b2e8: 0x6d0f7e20, 0x1b2e9: 0x6c96b220, 0x1b2ea: 0x6c9e8820, 0x1b2eb: 0x6cd88e20,
-	0x1b2ec: 0x6d254020, 0x1b2ed: 0x6c4f6020, 0x1b2ee: 0x6c3a8620, 0x1b2ef: 0x6c069020,
-	0x1b2f0: 0x6c6a7e20, 0x1b2f1: 0x6c2fe020, 0x1b2f2: 0x6c430020, 0x1b2f3: 0x6d118e20,
-	0x1b2f4: 0x6cfa7c20, 0x1b2f5: 0x6c1ed620, 0x1b2f6: 0x6c20fe20, 0x1b2f7: 0x6cabd020,
-	0x1b2f8: 0x6cd4a820, 0x1b2f9: 0x6c578220, 0x1b2fa: 0x6d02b420, 0x1b2fb: 0x6c1e2020,
-	0x1b2fc: 0x6d3aae20, 0x1b2fd: 0x6c1e2220, 0x1b2fe: 0x6cd90420, 0x1b2ff: 0x6c04bc20,
-	// Block 0x6cc, offset 0x1b300
-	0x1b300: 0x6cd90620, 0x1b301: 0x6c5fd420, 0x1b302: 0x6cf2d620, 0x1b303: 0x6c6cda20,
-	0x1b304: 0x6c469420, 0x1b305: 0x6c5e8e20, 0x1b306: 0x6c98c620, 0x1b307: 0x6cafb820,
-	0x1b308: 0x6c093a20, 0x1b309: 0x6cee6220, 0x1b30a: 0x6c021220, 0x1b30b: 0x6c398820,
-	0x1b30c: 0x6c3b5c20, 0x1b30d: 0x6d16bc20, 0x1b30e: 0x6c3df420, 0x1b30f: 0x6ca3e420,
-	0x1b310: 0x6cf58820, 0x1b311: 0x6c566a20, 0x1b312: 0x6d0ad420, 0x1b313: 0x6c30dc20,
-	0x1b314: 0x6d02fe20, 0x1b315: 0x6d31ba20, 0x1b316: 0x6d109020, 0x1b317: 0x6c8ba020,
-	0x1b318: 0x6cc8c220, 0x1b319: 0x6c35ac20, 0x1b31a: 0x6c99d620, 0x1b31b: 0x6d2f9a20,
-	0x1b31c: 0x6c4cae20, 0x1b31d: 0x6d339620, 0x1b31e: 0x6c230420, 0x1b31f: 0x6d281c20,
-	0x1b320: 0x6d41e420, 0x1b321: 0x6c30de20, 0x1b322: 0x6cd4aa20, 0x1b323: 0x6d2a3c20,
-	0x1b324: 0x6c352c20, 0x1b325: 0x6c858e20, 0x1b326: 0x6c934620, 0x1b327: 0x6c656620,
-	0x1b328: 0x6c19be20, 0x1b329: 0x6cd9a020, 0x1b32a: 0x6cbaa620, 0x1b32b: 0x6c3c2220,
-	0x1b32c: 0x6ca3e620, 0x1b32d: 0x6cfe8620, 0x1b32e: 0x6cfa8a20, 0x1b32f: 0x6c7a2e20,
-	0x1b330: 0x6cb28420, 0x1b331: 0x6cdf1c20, 0x1b332: 0x6cf7d420, 0x1b333: 0x6d350220,
-	0x1b334: 0x6c48da20, 0x1b335: 0x6cfe8c20, 0x1b336: 0x6c643a20, 0x1b337: 0x6c633420,
-	0x1b338: 0x6c467620, 0x1b339: 0x6c05aa20, 0x1b33a: 0x6ca0e220, 0x1b33b: 0x6d16f220,
-	0x1b33c: 0x6d12d820, 0x1b33d: 0x6d12e020, 0x1b33e: 0x6cd33c20, 0x1b33f: 0x6ca7fa20,
-	// Block 0x6cd, offset 0x1b340
-	0x1b340: 0x6c08c220, 0x1b341: 0x6c34d820, 0x1b342: 0x6d149e20, 0x1b343: 0x6c8cb820,
-	0x1b344: 0x6c0dd020, 0x1b345: 0x6ca63020, 0x1b346: 0x6c7e4020, 0x1b347: 0x6c50d820,
-	0x1b348: 0x6c04f020, 0x1b349: 0x6c388620, 0x1b34a: 0x6d37a420, 0x1b34b: 0x6c274620,
-	0x1b34c: 0x6c222c20, 0x1b34d: 0x6d100a20, 0x1b34e: 0x6c3d4a20, 0x1b34f: 0x6c041a20,
-	0x1b350: 0x6ca1fe20, 0x1b351: 0x6c418620, 0x1b352: 0x6cb4d420, 0x1b353: 0x6cc4ba20,
-	0x1b354: 0x6cc74220, 0x1b355: 0x6c995220, 0x1b356: 0x6cce9a20, 0x1b357: 0x6cd90e20,
-	0x1b358: 0x6d30e620, 0x1b359: 0x6cf99620, 0x1b35a: 0x6d202a20, 0x1b35b: 0x6ccfba20,
-	0x1b35c: 0x6c4b3020, 0x1b35d: 0x6ceb9a20, 0x1b35e: 0x6d2cb420, 0x1b35f: 0x6ca3ec20,
-	0x1b360: 0x6ca8fe20, 0x1b361: 0x6d1e2420, 0x1b362: 0x6c2be420, 0x1b363: 0x6d359e20,
-	0x1b364: 0x6d2bcc20, 0x1b365: 0x6c13cc20, 0x1b366: 0x6c287020, 0x1b367: 0x6c46f820,
-	0x1b368: 0x6c107620, 0x1b369: 0x6c6fdc20, 0x1b36a: 0x6c022820, 0x1b36b: 0x6c3e0c20,
-	0x1b36c: 0x6c657020, 0x1b36d: 0x6c032e20, 0x1b36e: 0x6c34da20, 0x1b36f: 0x6c77de20,
-	0x1b370: 0x6ca3b020, 0x1b371: 0x6d3abe20, 0x1b372: 0x6c094820, 0x1b373: 0x6c8efa20,
-	0x1b374: 0x6c147620, 0x1b375: 0x6cccd020, 0x1b376: 0x6cd89e20, 0x1b377: 0x6c1f1820,
-	0x1b378: 0x6cadb620, 0x1b379: 0x6cd31a20, 0x1b37a: 0x6c48dc20, 0x1b37b: 0x6d2bce20,
-	0x1b37c: 0x6d119820, 0x1b37d: 0x6c195620, 0x1b37e: 0x6c6fde20, 0x1b37f: 0x6cd33e20,
-	// Block 0x6ce, offset 0x1b380
-	0x1b380: 0x6d33a620, 0x1b381: 0x6c8efc20, 0x1b382: 0x6c99de20, 0x1b383: 0x6c87da20,
-	0x1b384: 0x6cc65620, 0x1b385: 0x6d2cb620, 0x1b386: 0x6d2aa020, 0x1b387: 0x6c0bec20,
-	0x1b388: 0x6d2e4c20, 0x1b389: 0x6d35a020, 0x1b38a: 0x6c8f7620, 0x1b38b: 0x6c306220,
-	0x1b38c: 0x6c914420, 0x1b38d: 0x6cd0ea20, 0x1b38e: 0x6c85a620, 0x1b38f: 0x6c7f9020,
-	0x1b390: 0x6d1e1c20, 0x1b391: 0x6cd5ae20, 0x1b392: 0x6d09f620, 0x1b393: 0x6cd68420,
-	0x1b394: 0x6cb76820, 0x1b395: 0x6d313820, 0x1b396: 0x6cb4dc20, 0x1b397: 0x6c85ca20,
-	0x1b398: 0x6d14c220, 0x1b399: 0x6cfdba20, 0x1b39a: 0x6d323020, 0x1b39b: 0x6c85cc20,
-	0x1b39c: 0x6ccb1a20, 0x1b39d: 0x6c484e20, 0x1b39e: 0x6c76a420, 0x1b39f: 0x6c078420,
-	0x1b3a0: 0x6cc58e20, 0x1b3a1: 0x6cffde20, 0x1b3a2: 0x6c041c20, 0x1b3a3: 0x6cc59020,
-	0x1b3a4: 0x6c0e1220, 0x1b3a5: 0x6d3e1620, 0x1b3a6: 0x6c1d9820, 0x1b3a7: 0x6d172c20,
-	0x1b3a8: 0x6c22be20, 0x1b3a9: 0x6d063420, 0x1b3aa: 0x6d399220, 0x1b3ab: 0x6c666c20,
-	0x1b3ac: 0x6d41a820, 0x1b3ad: 0x6c374a20, 0x1b3ae: 0x6c378e20, 0x1b3af: 0x6d1fb820,
-	0x1b3b0: 0x6c380c20, 0x1b3b1: 0x6c45e220, 0x1b3b2: 0x6c77a620, 0x1b3b3: 0x6c81ac20,
-	0x1b3b4: 0x6d2d6a20, 0x1b3b5: 0x6c8aec20, 0x1b3b6: 0x6d19be20, 0x1b3b7: 0x6d104420,
-	0x1b3b8: 0x6c50f220, 0x1b3b9: 0x6c449820, 0x1b3ba: 0x6d172e20, 0x1b3bb: 0x6cd34e20,
-	0x1b3bc: 0x6c43dc20, 0x1b3bd: 0x6d28fc20, 0x1b3be: 0x6c943620, 0x1b3bf: 0x6c3e3420,
-	// Block 0x6cf, offset 0x1b3c0
-	0x1b3c0: 0x6c6aa620, 0x1b3c1: 0x6c525c20, 0x1b3c2: 0x6c4b3e20, 0x1b3c3: 0x6ce21020,
-	0x1b3c4: 0x6c49e420, 0x1b3c5: 0x6ceef420, 0x1b3c6: 0x6c7b9820, 0x1b3c7: 0x6cc79620,
-	0x1b3c8: 0x6c01ac20, 0x1b3c9: 0x6c012020, 0x1b3ca: 0x6c734a20, 0x1b3cb: 0x6d14c420,
-	0x1b3cc: 0x6d3cf820, 0x1b3cd: 0x6c7a3620, 0x1b3ce: 0x6d35bc20, 0x1b3cf: 0x6cbf0420,
-	0x1b3d0: 0x6ce73020, 0x1b3d1: 0x6cca6c20, 0x1b3d2: 0x6cca6a20, 0x1b3d3: 0x6c586a20,
-	0x1b3d4: 0x6c710420, 0x1b3d5: 0x6c6fea20, 0x1b3d6: 0x6d094c20, 0x1b3d7: 0x6c34e020,
-	0x1b3d8: 0x6d3c7c20, 0x1b3d9: 0x6d20f220, 0x1b3da: 0x6d296420,
-	0x1b3dc: 0x6d1ba620, 0x1b3dd: 0x6c6c1820, 0x1b3de: 0x6c8f6220, 0x1b3df: 0x6d2e5020,
-	0x1b3e0: 0x6d0ade20, 0x1b3e1: 0x6cc52620, 0x1b3e2: 0x6d313a20, 0x1b3e3: 0x6c295e20,
-	0x1b3e4: 0x6cb4de20, 0x1b3e5: 0x6cbbd820, 0x1b3e6: 0x6c578c20, 0x1b3e7: 0x6c4b4020,
-	0x1b3e8: 0x6c67a220, 0x1b3e9: 0x6d3c1220, 0x1b3ea: 0x6d09f820, 0x1b3eb: 0x6cdd1620,
-	0x1b3ec: 0x6ccbe620, 0x1b3ed: 0x6d314e20, 0x1b3ee: 0x6c069a20, 0x1b3ef: 0x6ce64020,
-	0x1b3f0: 0x6c7df220, 0x1b3f1: 0x6c6e7020, 0x1b3f2: 0x6cb3c220, 0x1b3f3: 0x6c07b020,
-	0x1b3f4: 0x6c3e4e20, 0x1b3f5: 0x6cc89a20, 0x1b3f6: 0x6ce7b620, 0x1b3f7: 0x6c742820,
-	0x1b3f8: 0x6cf5ec20, 0x1b3f9: 0x6c80ba20, 0x1b3fa: 0x6c8f0420, 0x1b3fb: 0x6c3c3c20,
-	0x1b3fc: 0x6cb4e820, 0x1b3fd: 0x6cf1d420, 0x1b3fe: 0x6c756c20, 0x1b3ff: 0x6c41d620,
-	// Block 0x6d0, offset 0x1b400
-	0x1b400: 0x6cdaa220, 0x1b401: 0x6c894c20, 0x1b402: 0x6cc04620, 0x1b403: 0x6ce6be20,
-	0x1b404: 0x6d1fc020, 0x1b405: 0x6c99ec20, 0x1b406: 0x6c052420, 0x1b407: 0x6c906620,
-	0x1b408: 0x6cae6820, 0x1b409: 0x6d3c1620, 0x1b40a: 0x6c2c4020, 0x1b40b: 0x6d078c20,
-	0x1b40c: 0x6ce8a220, 0x1b40d: 0x6d2a7e20, 0x1b40e: 0x6c022a20, 0x1b40f: 0x6c481020,
-	0x1b410: 0x6c097a20, 0x1b411: 0x6c2b6820, 0x1b412: 0x6c4e0020, 0x1b413: 0x6d3f0820,
-	0x1b414: 0x6d33d420, 0x1b415: 0x6cc5e620, 0x1b416: 0x6c070e20, 0x1b417: 0x6c450820,
-	0x1b418: 0x6c658620, 0x1b419: 0x6c591020, 0x1b41a: 0x6ced0a20, 0x1b41b: 0x6caaba20,
-	0x1b41c: 0x6c634a20, 0x1b41d: 0x6ce57c20, 0x1b41e: 0x6c61ee20, 0x1b41f: 0x6cfeb220,
-	0x1b420: 0x6c938e20, 0x1b421: 0x6c5ce620, 0x1b422: 0x6cce6820, 0x1b423: 0x6c133020,
-	0x1b424: 0x6c3b6c20, 0x1b425: 0x6cd91a20, 0x1b426: 0x6c9c0220, 0x1b427: 0x6cf3c020,
-	0x1b428: 0x6c83bc20, 0x1b429: 0x6c83be20, 0x1b42a: 0x6c311020, 0x1b42b: 0x6cbdd020,
-	0x1b42c: 0x6d1cea20, 0x1b42d: 0x6cdd1820, 0x1b42e: 0x6c708c20, 0x1b42f: 0x6ce2ea20,
-	0x1b430: 0x6d019020, 0x1b431: 0x6c7da820, 0x1b432: 0x6d3d5020, 0x1b433: 0x6cd4ca20,
-	0x1b434: 0x6c14c020, 0x1b435: 0x6c394220, 0x1b436: 0x6cefae20, 0x1b437: 0x6c6e7220,
-	0x1b438: 0x6c83c020, 0x1b439: 0x6c0d3220, 0x1b43a: 0x6cfa6420, 0x1b43b: 0x6c3d1020,
-	0x1b43c: 0x6ce21c20, 0x1b43d: 0x6d35e220, 0x1b43e: 0x6c7efa20, 0x1b43f: 0x6c87fc20,
-	// Block 0x6d1, offset 0x1b440
-	0x1b440: 0x6c658820, 0x1b441: 0x6d3cfc20, 0x1b442: 0x6c8ce620, 0x1b443: 0x6c83d420,
-	0x1b444: 0x6cb79220, 0x1b445: 0x6c0e2220, 0x1b446: 0x6c94f820, 0x1b447: 0x6c231620,
-	0x1b448: 0x6cba5420, 0x1b449: 0x6c9dc420, 0x1b44a: 0x6cb5e620, 0x1b44b: 0x6cb5e820,
-	0x1b44c: 0x6c114620, 0x1b44d: 0x6c4bf820, 0x1b44e: 0x6c14f420, 0x1b44f: 0x6c2a7020,
-	0x1b450: 0x6c3a5820, 0x1b451: 0x6cabfe20, 0x1b452: 0x6c057020, 0x1b453: 0x6c057220,
-	0x1b454: 0x6c5cca20, 0x1b455: 0x6d3f8e20, 0x1b456: 0x6c1a0020, 0x1b457: 0x6d2a4c20,
-	0x1b458: 0x6c603820, 0x1b459: 0x6c861020, 0x1b45a: 0x6caea020, 0x1b45b: 0x6d233e20,
-	0x1b45c: 0x6d234020, 0x1b45d: 0x6c481420, 0x1b45e: 0x6c75ba20, 0x1b45f: 0x6c307620,
-	0x1b460: 0x6ce0f620, 0x1b461: 0x6c428020, 0x1b462: 0x6cee1a20, 0x1b463: 0x6c2c5620,
-	0x1b464: 0x6c262a20, 0x1b465: 0x6c389c20, 0x1b466: 0x6c195c20, 0x1b467: 0x6d2e6220,
-	0x1b468: 0x6cb6fe20, 0x1b469: 0x6d24f620, 0x1b46a: 0x6d0d8820, 0x1b46b: 0x6d234220,
-	0x1b46c: 0x6cc29e20, 0x1b46d: 0x6d17a020, 0x1b46e: 0x6ccbaa20, 0x1b46f: 0x6cc59820,
-	0x1b470: 0x6c20d220, 0x1b471: 0x6c837820, 0x1b472: 0x6cb4f420, 0x1b473: 0x6d3d0220,
-	0x1b474: 0x6c3e7a20, 0x1b475: 0x6c77f820, 0x1b476: 0x6c7f0820, 0x1b477: 0x6d405220,
-	0x1b478: 0x6d405420, 0x1b479: 0x6d2fb220, 0x1b47a: 0x6c491620, 0x1b47b: 0x6c3b2a20,
-	0x1b47c: 0x6c3b7420, 0x1b47d: 0x6ccfe620, 0x1b47e: 0x6cbe7c20, 0x1b47f: 0x6ca5e420,
-	// Block 0x6d2, offset 0x1b480
-	0x1b480: 0x6ced1c20, 0x1b481: 0x6c4cc020, 0x1b482: 0x6c925420, 0x1b483: 0x6c4fc620,
-	0x1b484: 0x6c6a1620, 0x1b485: 0x6d15f020, 0x1b486: 0x6c1dae20, 0x1b487: 0x6c71b620,
-	0x1b488: 0x6c712220, 0x1b489: 0x6c1a0220, 0x1b48a: 0x6d423a20, 0x1b48b: 0x6c895420,
-	0x1b48c: 0x6cbab820, 0x1b48d: 0x6d346020, 0x1b48e: 0x6c20d420, 0x1b48f: 0x6d0af020,
-	0x1b490: 0x6c709220, 0x1b491: 0x6c06a020, 0x1b492: 0x6c684620, 0x1b493: 0x6d3d6020,
-	0x1b494: 0x6d3e3a20, 0x1b495: 0x6c0d3820, 0x1b496: 0x6caea220, 0x1b497: 0x6c2fa620,
-	0x1b498: 0x6c1eda20, 0x1b499: 0x6c172e20, 0x1b49a: 0x6c9b0620, 0x1b49b: 0x6c57dc20,
-	0x1b49c: 0x6c659420, 0x1b49d: 0x6c4a6820, 0x1b49e: 0x6cf88820, 0x1b49f: 0x6c319c20,
-	0x1b4a0: 0x6cba5620, 0x1b4a1: 0x6c2a5820, 0x1b4a2: 0x6c4bb420, 0x1b4a3: 0x6c2da020,
-	0x1b4a4: 0x6c954620, 0x1b4a5: 0x6d33e020, 0x1b4a6: 0x6cc38220, 0x1b4a7: 0x6ca04420,
-	0x1b4a8: 0x6c40b220, 0x1b4a9: 0x6c454820, 0x1b4aa: 0x6caf1220, 0x1b4ab: 0x6d2dee20,
-	0x1b4ac: 0x6d199420, 0x1b4ad: 0x6ceb7e20, 0x1b4ae: 0x6ccbac20, 0x1b4af: 0x6c349a20,
-	0x1b4b0: 0x6d125e20, 0x1b4b1: 0x6c400c20, 0x1b4b2: 0x6cefda20, 0x1b4b3: 0x6cee9a20,
-	0x1b4b4: 0x6c32c820, 0x1b4b5: 0x6c641a20, 0x1b4b6: 0x6d3f9a20, 0x1b4b7: 0x6c64b220,
-	0x1b4b8: 0x6d151a20, 0x1b4b9: 0x6cd0ae20, 0x1b4ba: 0x6cf78620, 0x1b4bb: 0x6d0e8220,
-	0x1b4bc: 0x6d0da220, 0x1b4bd: 0x6c200020, 0x1b4be: 0x6c64b420, 0x1b4bf: 0x6c210c20,
-	// Block 0x6d3, offset 0x1b4c0
-	0x1b4c0: 0x6d226a20, 0x1b4c1: 0x6c513a20, 0x1b4c2: 0x6d2be020, 0x1b4c3: 0x6cf2fa20,
-	0x1b4c4: 0x6cb11420, 0x1b4c5: 0x6c087a20, 0x1b4c6: 0x6d10ac20, 0x1b4c7: 0x6c5dd020,
-	0x1b4c8: 0x6d05b220, 0x1b4c9: 0x6cc92020, 0x1b4ca: 0x6d0fc620, 0x1b4cb: 0x6c7e7c20,
-	0x1b4cc: 0x6d0caa20, 0x1b4cd: 0x6c079e20, 0x1b4ce: 0x6c5ac420, 0x1b4cf: 0x6c7c8a20,
-	0x1b4d0: 0x6c6bea20, 0x1b4d1: 0x6c7c8c20, 0x1b4d2: 0x6cd7f220, 0x1b4d3: 0x6c3c5420,
-	0x1b4d4: 0x6d004820, 0x1b4d5: 0x6ceb8220, 0x1b4d6: 0x6d35e420, 0x1b4d7: 0x6c668c20,
-	0x1b4d8: 0x6ca29a20, 0x1b4d9: 0x6c999020, 0x1b4da: 0x6c1f9420, 0x1b4db: 0x6c569e20,
-	0x1b4dc: 0x6c556c20, 0x1b4dd: 0x6c890420, 0x1b4de: 0x6c837a20, 0x1b4df: 0x6ce67e20,
-	0x1b4e0: 0x6ca40220, 0x1b4e1: 0x6d215220, 0x1b4e2: 0x6d1f4620, 0x1b4e3: 0x6c9a0820,
-	0x1b4e4: 0x6cd96620, 0x1b4e5: 0x6d089a20, 0x1b4e6: 0x6d089c20, 0x1b4e7: 0x6d101e20,
-	0x1b4e8: 0x6d316620, 0x1b4e9: 0x6cb11620, 0x1b4ea: 0x6d12fe20, 0x1b4eb: 0x6c605220,
-	0x1b4ec: 0x6c6ae620, 0x1b4ed: 0x6d130020, 0x1b4ee: 0x6c1ee020, 0x1b4ef: 0x6c33fa20,
-	0x1b4f0: 0x6d212820, 0x1b4f1: 0x6d408a20, 0x1b4f2: 0x6cee9c20, 0x1b4f3: 0x6c9a0a20,
-	0x1b4f4: 0x6ce40220, 0x1b4f5: 0x6c603a20, 0x1b4f6: 0x6c6ae820, 0x1b4f7: 0x6c766220,
-	0x1b4f8: 0x6cbfb420, 0x1b4f9: 0x6d1c7e20, 0x1b4fa: 0x6cc77a20, 0x1b4fb: 0x6c59d020,
-	0x1b4fc: 0x6c909620, 0x1b4fd: 0x6c822220, 0x1b4fe: 0x6cc38420, 0x1b4ff: 0x6cfe7620,
-	// Block 0x6d4, offset 0x1b500
-	0x1b500: 0x6cb23c20, 0x1b501: 0x6cd41820, 0x1b502: 0x6c414420, 0x1b503: 0x6cdfe820,
-	0x1b504: 0x6c802e20, 0x1b505: 0x6cf15620, 0x1b506: 0x6d215420, 0x1b507: 0x6c192c20,
-	0x1b508: 0x6c935620, 0x1b509: 0x6c71be20, 0x1b50a: 0x6cd0cc20, 0x1b50b: 0x6c1f9620,
-	0x1b50c: 0x6cb0ea20, 0x1b50d: 0x6d01d420, 0x1b50e: 0x6c642420, 0x1b50f: 0x6d182420,
-	0x1b510: 0x6d2e0220, 0x1b511: 0x6c3ec020, 0x1b512: 0x6cab0620, 0x1b513: 0x6c9d6620,
-	0x1b514: 0x6c80c220, 0x1b515: 0x6cc69020, 0x1b516: 0x6c47ae20, 0x1b517: 0x6c66a820,
-	0x1b518: 0x6c71c020, 0x1b519: 0x6cddf220, 0x1b51a: 0x6d11c020, 0x1b51b: 0x6d317a20,
-	0x1b51c: 0x6c055220, 0x1b51d: 0x6ccc0820, 0x1b51e: 0x6d259220, 0x1b51f: 0x6d3f2020,
-	0x1b520: 0x6ca01020, 0x1b521: 0x6cdae620, 0x1b522: 0x6c644c20, 0x1b523: 0x6d112020,
-	0x1b524: 0x6c6b0a20, 0x1b525: 0x6c5a7420, 0x1b526: 0x6c422a20, 0x1b527: 0x6c3a6220,
-	0x1b528: 0x6d2cd020, 0x1b529: 0x6cb9ae20, 0x1b52a: 0x6c96ce20, 0x1b52b: 0x6cdcf420,
-	0x1b52c: 0x6d259420, 0x1b52d: 0x6d01d620, 0x1b52e: 0x6cc69220, 0x1b52f: 0x6cd27c20,
-	0x1b530: 0x6d33fe20, 0x1b531: 0x6c24de20, 0x1b532: 0x6d27ba20, 0x1b533: 0x6ce68020,
-	0x1b534: 0x6c8e7a20, 0x1b535: 0x6cc68620, 0x1b536: 0x6ce10e20, 0x1b537: 0x6cc3de20,
-	0x1b538: 0x6d2cfa20, 0x1b539: 0x6cd80220, 0x1b53a: 0x6cd17420, 0x1b53b: 0x6cde7020,
-	0x1b53c: 0x6c781420, 0x1b53d: 0x6cf66c20, 0x1b53e: 0x6c479c20, 0x1b53f: 0x6cb51020,
-	// Block 0x6d5, offset 0x1b540
-	0x1b540: 0x6c431020, 0x1b541: 0x6c431220, 0x1b542: 0x6cdcdc20, 0x1b543: 0x6cac6620,
-	0x1b544: 0x6ce1da20, 0x1b545: 0x6c441220, 0x1b546: 0x6d0a1a20, 0x1b547: 0x6c2cd420,
-	0x1b548: 0x6caa2420, 0x1b549: 0x6c606420, 0x1b54a: 0x6cd78c20, 0x1b54b: 0x6c46c220,
-	0x1b54c: 0x6c20d820, 0x1b54d: 0x6cbacc20, 0x1b54e: 0x6c13ec20, 0x1b54f: 0x6cba1620,
-	0x1b550: 0x6c57ec20, 0x1b551: 0x6c9a1820, 0x1b552: 0x6d070a20, 0x1b553: 0x6c42ac20,
-	0x1b554: 0x6c42cc20, 0x1b555: 0x6d3d8020, 0x1b556: 0x6ceb3620, 0x1b557: 0x6cbc7420,
-	0x1b558: 0x6d105c20, 0x1b559: 0x6c2cd620, 0x1b55a: 0x6c642620, 0x1b55b: 0x6c76e220,
-	0x1b55c: 0x6d41be20, 0x1b55d: 0x6c2a5a20, 0x1b55e: 0x6c907220, 0x1b55f: 0x6c0d4420,
-	0x1b560: 0x6d39ba20, 0x1b561: 0x6ccaa420, 0x1b562: 0x6cf79c20, 0x1b563: 0x6c5f1420,
-	0x1b564: 0x6c882220, 0x1b565: 0x6c5c1620, 0x1b566: 0x6d1da420, 0x1b567: 0x6cba7420,
-	0x1b568: 0x6c4cc220, 0x1b569: 0x6c414620, 0x1b56a: 0x6c415020, 0x1b56b: 0x6ce95820,
-	0x1b56c: 0x6c57bc20, 0x1b56d: 0x6cb52020, 0x1b56e: 0x6ccbae20, 0x1b56f: 0x6c24e220,
-	0x1b570: 0x6caeb220, 0x1b571: 0x6d1fe420, 0x1b572: 0x6c559020, 0x1b573: 0x6c67b620,
-	0x1b574: 0x6c56be20, 0x1b575: 0x6c594a20, 0x1b576: 0x6c4b6820, 0x1b577: 0x6ca85e20,
-	0x1b578: 0x6d185220, 0x1b579: 0x6c42d820, 0x1b57a: 0x6c774420, 0x1b57b: 0x6c4a8620,
-	0x1b57c: 0x6c4a8820, 0x1b57d: 0x6c128a20, 0x1b57e: 0x6c97fa20, 0x1b57f: 0x6c6cac20,
-	// Block 0x6d6, offset 0x1b580
-	0x1b580: 0x6c2b4020, 0x1b581: 0x6d3c2220, 0x1b582: 0x6c822620, 0x1b583: 0x6c810a20,
-	0x1b584: 0x6c18dc20, 0x1b585: 0x6c233a20, 0x1b586: 0x6c841820, 0x1b587: 0x6d04e220,
-	0x1b588: 0x6cbe8620, 0x1b589: 0x6cd6da20, 0x1b58a: 0x6c38b220, 0x1b58b: 0x6ce7c220,
-	0x1b58c: 0x6c499e20, 0x1b58d: 0x6d2ae820, 0x1b58e: 0x6cdafc20, 0x1b58f: 0x6c82d020,
-	0x1b590: 0x6c91d220, 0x1b591: 0x6c896620, 0x1b592: 0x6c9d7820, 0x1b593: 0x6c90b020,
-	0x1b594: 0x6c177420, 0x1b595: 0x6cdafe20, 0x1b596: 0x6c782220, 0x1b597: 0x6c1e6620,
-	0x1b598: 0x6ce12020, 0x1b599: 0x6c0c1620, 0x1b59a: 0x6c92a220, 0x1b59b: 0x6c6f8420,
-	0x1b59c: 0x6d30fc20, 0x1b59d: 0x6d2bf620, 0x1b59e: 0x6cd50020, 0x1b59f: 0x6d2ed620,
-	0x1b5a0: 0x6c977020, 0x1b5a1: 0x6ca06a20, 0x1b5a2: 0x6ca7a820, 0x1b5a3: 0x6d106a20,
-	0x1b5a4: 0x6ce59820, 0x1b5a5: 0x6caeb420, 0x1b5a6: 0x6d3b1e20, 0x1b5a7: 0x6ccc0e20,
-	0x1b5a8: 0x6cf6c020, 0x1b5a9: 0x6cc31020, 0x1b5aa: 0x6c526c20, 0x1b5ab: 0x6c64ce20,
-	0x1b5ac: 0x6c233c20, 0x1b5ad: 0x6c630e20, 0x1b5ae: 0x6d0f3a20, 0x1b5af: 0x6cbb1820,
-	0x1b5b0: 0x6d098820, 0x1b5b1: 0x6d1be420, 0x1b5b2: 0x6c37de20, 0x1b5b3: 0x6d0a3c20,
-	0x1b5b4: 0x6d349820, 0x1b5b5: 0x6cbbf620, 0x1b5b6: 0x6d417c20, 0x1b5b7: 0x6c23b420,
-	0x1b5b8: 0x6cb49620, 0x1b5b9: 0x6cd60a20, 0x1b5ba: 0x6c57ae20, 0x1b5bb: 0x6c7d1e20,
-	0x1b5bc: 0x6d319020, 0x1b5bd: 0x6d41f220, 0x1b5be: 0x6d26ec20, 0x1b5bf: 0x6ccdac20,
-	// Block 0x6d7, offset 0x1b5c0
-	0x1b5c0: 0x6cf6c420, 0x1b5c1: 0x6c211420, 0x1b5c2: 0x6c2d8020, 0x1b5c3: 0x6c382620,
-	0x1b5c4: 0x6c41e620, 0x1b5c5: 0x6ca07620, 0x1b5c6: 0x6cf47a20, 0x1b5c7: 0x6cbbaa20,
-	0x1b5c8: 0x6cc52c20, 0x1b5c9: 0x6c8c6020, 0x1b5ca: 0x6c8e9620, 0x1b5cb: 0x6cbbf820,
-	0x1b5cc: 0x6cfd0c20, 0x1b5cd: 0x6cc90820, 0x1b5ce: 0x6c38ba20, 0x1b5cf: 0x6d2e1420,
-	0x1b5d0: 0x6ceb4820, 0x1b5d1: 0x6c81bc20, 0x1b5d2: 0x6d27c620, 0x1b5d3: 0x6cd75a20,
-	0x1b5d4: 0x6c33ae20, 0x1b5d5: 0x6c199220, 0x1b5d6: 0x6ce13220, 0x1b5d7: 0x6c9b3820,
-	0x1b5d8: 0x6c715a20, 0x1b5d9: 0x6c1a4220, 0x1b5da: 0x6cdb3020, 0x1b5db: 0x6c74ba20,
-	0x1b5dc: 0x6c74bc20, 0x1b5dd: 0x6c2d8220, 0x1b5de: 0x6c5c3020, 0x1b5df: 0x6c5f3020,
-	0x1b5e0: 0x6caae020, 0x1b5e1: 0x6cfe4e20, 0x1b5e2: 0x6ceb8e20, 0x1b5e3: 0x6ca94620,
-	0x1b5e4: 0x6cc8b020, 0x1b5e5: 0x6d39c420, 0x1b5e6: 0x6ce78620, 0x1b5e7: 0x6d2b8e20,
-	0x1b5e8: 0x6c3b9420, 0x1b5e9: 0x6cbf6020, 0x1b5ea: 0x6cc4d220, 0x1b5eb: 0x6c526e20,
-	0x1b5ec: 0x6cb9c820, 0x1b5ed: 0x6c472e20, 0x1b5ee: 0x6c8f1a20, 0x1b5ef: 0x6c81e020,
-	0x1b5f0: 0x6c42dc20, 0x1b5f1: 0x6c1eae20, 0x1b5f2: 0x6cf94620, 0x1b5f3: 0x6cd18820,
-	0x1b5f4: 0x6d3f6c20, 0x1b5f5: 0x6cca6820, 0x1b5f6: 0x6c60a620, 0x1b5f7: 0x6c30c620,
-	0x1b5f8: 0x6c6eca20, 0x1b5f9: 0x6c91dc20, 0x1b5fa: 0x6c673c20, 0x1b5fb: 0x6c1f9820,
-	0x1b5fc: 0x6d25aa20, 0x1b5fd: 0x6cde9c20, 0x1b5fe: 0x6cd50c20, 0x1b5ff: 0x6c678220,
-	// Block 0x6d8, offset 0x1b600
-	0x1b600: 0x6ce01820, 0x1b601: 0x6c8c3820, 0x1b602: 0x6ca9cc20, 0x1b603: 0x6d1b0620,
-	0x1b604: 0x6cf7a820, 0x1b605: 0x6cdc8020, 0x1b606: 0x6ccd1020, 0x1b607: 0x6d41d020,
-	0x1b608: 0x6d082a20, 0x1b609: 0x6c199a20, 0x1b60a: 0x6c423420, 0x1b60b: 0x6c716220,
-	0x1b60c: 0x6d41d820, 0x1b60d: 0x6d18c620, 0x1b60e: 0x6cbda220, 0x1b60f: 0x6cb49c20,
-	0x1b610: 0x6d0cd620, 0x1b611: 0x6c826020, 0x1b612: 0x6c3c6a20, 0x1b613: 0x6c5b6c20,
-	0x1b614: 0x6c299220, 0x1b615: 0x6c629620, 0x1b616: 0x6cdc7020, 0x1b617: 0x6c0ff820,
-	0x1b618: 0x6cb2d420, 0x1b619: 0x6c1a4420, 0x1b61a: 0x6c1ef020, 0x1b61b: 0x6d3b5a20,
-	0x1b61c: 0x6c4b7c20, 0x1b61d: 0x6c60aa20, 0x1b61e: 0x6c6ba020, 0x1b61f: 0x6c643020,
-	0x1b620: 0x6cbe8e20, 0x1b621: 0x6d2d2020, 0x1b622: 0x6c65e020, 0x1b623: 0x6cbb2820,
-	0x1b624: 0x6c2a3420, 0x1b625: 0x6d161a20, 0x1b626: 0x6c0c8220, 0x1b627: 0x6cd93a20,
-	0x1b628: 0x6ccefe20, 0x1b629: 0x6c8c3a20, 0x1b62a: 0x6c87e420, 0x1b62b: 0x6c140e20,
-	0x1b62c: 0x6c9b5c20, 0x1b62d: 0x6d1aa020, 0x1b62e: 0x6ce24820, 0x1b62f: 0x6cdf4e20,
-	0x1b630: 0x6c9de020, 0x1b631: 0x6cb67020, 0x1b632: 0x6ce96820, 0x1b633: 0x6c0d5c20,
-	0x1b634: 0x6c5e0820, 0x1b635: 0x6c62aa20, 0x1b636: 0x6cb93420, 0x1b637: 0x6ca65820,
-	0x1b638: 0x6ca92a20, 0x1b639: 0x6d142220, 0x1b63a: 0x6c432a20, 0x1b63b: 0x6c76f620,
-	0x1b63c: 0x6d1b9220, 0x1b63d: 0x6caa2c20, 0x1b63e: 0x6cbeba20, 0x1b63f: 0x6d0de620,
-	// Block 0x6d9, offset 0x1b640
-	0x1b640: 0x6cb67220, 0x1b641: 0x6c9d9e20, 0x1b642: 0x6d2fe820, 0x1b643: 0x6c4b8820,
-	0x1b644: 0x6c212220, 0x1b645: 0x6c5f6a20, 0x1b646: 0x6c7ca420, 0x1b647: 0x6cb33c20,
-	0x1b648: 0x6c2af020, 0x1b649: 0x6c1eba20, 0x1b64a: 0x6c449020, 0x1b64b: 0x6c9de420,
-	0x1b64c: 0x6d1ec220, 0x1b64d: 0x6d373e20, 0x1b64e: 0x6c5a6620, 0x1b64f: 0x6cb93e20,
-	0x1b650: 0x6c82f420, 0x1b651: 0x6c827020, 0x1b652: 0x6cc9a820, 0x1b653: 0x6c91f220,
-	0x1b654: 0x6c86cc20, 0x1b655: 0x6c24a220, 0x1b656: 0x6c941220, 0x1b657: 0x6c9efc20,
-	0x1b658: 0x6c5c7a20, 0x1b659: 0x6cab5c20, 0x1b65a: 0x6c916220, 0x1b65b: 0x6d370620,
-	0x1b65c: 0x6c42ea20, 0x1b65d: 0x6c31d020, 0x1b65e: 0x6d25c620, 0x1b65f: 0x6c86f620,
-	0x1b660: 0x6c3ae820, 0x1b661: 0x6d3dba20, 0x1b662: 0x6cda3420, 0x1b663: 0x6c886020,
-	0x1b664: 0x6c681c20, 0x1b665: 0x6c1ec420, 0x1b666: 0x6cbeec20, 0x1b667: 0x6d39e020,
-	0x1b668: 0x6c918020, 0x1b669: 0x6d0cfc20, 0x1b66a: 0x6c871a20, 0x1b66b: 0x6d39de20,
-	0x1b66c: 0x6c193e20, 0x1b66d: 0x6c6b5a20, 0x1b66e: 0x6c36d820, 0x1b66f: 0x6cda6820,
-	0x1b670: 0x6c580020, 0x1b671: 0x6ca8a220, 0x1b672: 0x6d244e20, 0x1b673: 0x6c8fdc20,
-	0x1b674: 0x6c7f7420, 0x1b675: 0x6c69f020, 0x1b676: 0x6cfc4620, 0x1b677: 0x6c4aa820,
-	0x1b678: 0x6c71de20, 0x1b679: 0x6cff4820, 0x1b67a: 0x6c8d9a20, 0x1b67b: 0x6d1c2a20,
-	0x1b67c: 0x6c653c20, 0x1b67d: 0x6d1b2420, 0x1b67e: 0x6d1f9620, 0x1b67f: 0x6d1cc420,
-	// Block 0x6da, offset 0x1b680
-	0x1b680: 0x6cfd9a20, 0x1b681: 0x6ca9e020, 0x1b682: 0x6c0fb620, 0x1b683: 0x6c156020,
-	0x1b684: 0x6c7ff820, 0x1b685: 0x6c71e220, 0x1b686: 0x6cd6b220, 0x1b687: 0x6ccf9020,
-	0x1b688: 0x6cef7420, 0x1b689: 0x6c23cc20, 0x1b68a: 0x6cc33020, 0x1b68b: 0x6cc20620,
-	0x1b68c: 0x6c126220, 0x1b68d: 0x6c704820, 0x1b68e: 0x6d247a20, 0x1b68f: 0x6c957e20,
-	0x1b690: 0x6c878a20, 0x1b691: 0x6c24a820, 0x1b692: 0x6c945c20, 0x1b693: 0x6c294420,
-	0x1b694: 0x6c752820, 0x1b695: 0x6d0f3e20, 0x1b696: 0x6c806420, 0x1b697: 0x6c800e20,
-	0x1b698: 0x6d3a4620, 0x1b699: 0x6c82a220, 0x1b69a: 0x6c855420, 0x1b69b: 0x6c03e020,
-	0x1b69c: 0x6ca46620, 0x1b69d: 0x6d249220, 0x1b69e: 0x6c8dd820, 0x1b69f: 0x6c4a3020,
-	0x1b6a0: 0x6cba3820, 0x1b6a1: 0x6c22aa20, 0x1b6a2: 0x6c596a20, 0x1b6a3: 0x6d02b620,
-	0x1b6a4: 0x6d20b820, 0x1b6a5: 0x6d16be20, 0x1b6a6: 0x6cb8b220, 0x1b6a7: 0x6cab3020,
-	0x1b6a8: 0x6d057820, 0x1b6a9: 0x6c173c20, 0x1b6aa: 0x6c1f1a20, 0x1b6ab: 0x6cb78020,
-	0x1b6ac: 0x6c768220, 0x1b6ad: 0x6d173020, 0x1b6ae: 0x6c741420, 0x1b6af: 0x6cf87020,
-	0x1b6b0: 0x6d06a420, 0x1b6b1: 0x6c509820, 0x1b6b2: 0x6d231420, 0x1b6b3: 0x6c7cf220,
-	0x1b6b4: 0x6c80ac20, 0x1b6b5: 0x6c7b6220, 0x1b6b6: 0x6cd77c20, 0x1b6b7: 0x6cf5ee20,
-	0x1b6b8: 0x6c002220, 0x1b6b9: 0x6d13f420, 0x1b6ba: 0x6cb4f620, 0x1b6bb: 0x6c1f9e20,
-	0x1b6bc: 0x6c1ba620, 0x1b6bd: 0x6cbd3020, 0x1b6be: 0x6c7b6620, 0x1b6bf: 0x6c76d420,
-	// Block 0x6db, offset 0x1b6c0
-	0x1b6c0: 0x6c7b6820, 0x1b6c1: 0x6c76dc20, 0x1b6c2: 0x6c202220, 0x1b6c3: 0x6ccc5a20,
-	0x1b6c4: 0x6c485a20, 0x1b6c5: 0x6d19ea20, 0x1b6c6: 0x6d02de20, 0x1b6c7: 0x6d004a20,
-	0x1b6c8: 0x6d215620, 0x1b6c9: 0x6cba6820, 0x1b6ca: 0x6cfeec20, 0x1b6cb: 0x6d131620,
-	0x1b6cc: 0x6c43a020, 0x1b6cd: 0x6cf37420, 0x1b6ce: 0x6ce0a820, 0x1b6cf: 0x6c6d3e20,
-	0x1b6d0: 0x6cab4820, 0x1b6d1: 0x6c54f820, 0x1b6d2: 0x6ce40e20, 0x1b6d3: 0x6c582c20,
-	0x1b6d4: 0x6d05d420, 0x1b6d5: 0x6cae3820, 0x1b6d6: 0x6cf81020, 0x1b6d7: 0x6d000820,
-	0x1b6d8: 0x6c1fa220, 0x1b6d9: 0x6ccf7820, 0x1b6da: 0x6ccdae20, 0x1b6db: 0x6c4dbe20,
-	0x1b6dc: 0x6c1f7e20, 0x1b6dd: 0x6d18c820, 0x1b6de: 0x6c36c420, 0x1b6df: 0x6d21b420,
-	0x1b6e0: 0x6c21e220, 0x1b6e1: 0x6c596e20, 0x1b6e2: 0x6d34cc20, 0x1b6e3: 0x6d333620,
-	0x1b6e4: 0x6c228a20, 0x1b6e5: 0x6c105e20, 0x1b6e6: 0x6cf42c20, 0x1b6e7: 0x6cb58420,
-	0x1b6e8: 0x6c106e20, 0x1b6e9: 0x6c107020, 0x1b6ea: 0x6cec4e20, 0x1b6eb: 0x6c721220,
-	0x1b6ec: 0x6cb97e20, 0x1b6ed: 0x6c1b1620, 0x1b6ee: 0x6ccb2a20, 0x1b6ef: 0x6c1ba820,
-	0x1b6f0: 0x6ccb3620, 0x1b6f1: 0x6d37fa20, 0x1b6f2: 0x6cdc4620, 0x1b6f3: 0x6cdc4820,
-	0x1b6f4: 0x6c864c20, 0x1b6f5: 0x6c263420, 0x1b6f6: 0x6d218220, 0x1b6f7: 0x6c867c20,
-	0x1b6f8: 0x6c4a9a20, 0x1b6f9: 0x6c271220, 0x1b6fa: 0x6c35ca20, 0x1b6fb: 0x6cd86c20,
-	0x1b6fc: 0x6c646420, 0x1b6fd: 0x6d301c20, 0x1b6fe: 0x6ca0cc20, 0x1b6ff: 0x6ca0ce20,
-	// Block 0x6dc, offset 0x1b700
-	0x1b700: 0x6d109220, 0x1b701: 0x6ca0d020, 0x1b702: 0x6c242020, 0x1b703: 0x6d0f5020,
-	0x1b704: 0x6ce4da20, 0x1b705: 0x6cd0ee20, 0x1b706: 0x6c274820, 0x1b707: 0x6cce0020,
-	0x1b708: 0x6d06a620, 0x1b709: 0x6d0a7c20, 0x1b70a: 0x6cd4ba20, 0x1b70b: 0x6c118c20,
-	0x1b70c: 0x6c742a20, 0x1b70d: 0x6cb19420, 0x1b70e: 0x6cb85c20, 0x1b70f: 0x6cc04820,
-	0x1b710: 0x6cdaa420, 0x1b711: 0x6cbe7820, 0x1b712: 0x6d27e620, 0x1b713: 0x6c88ee20,
-	0x1b714: 0x6d17a220, 0x1b715: 0x6c3d2a20, 0x1b716: 0x6d346220, 0x1b717: 0x6d12f220,
-	0x1b718: 0x6c119620, 0x1b719: 0x6c5cce20, 0x1b71a: 0x6c27e020, 0x1b71b: 0x6c603c20,
-	0x1b71c: 0x6c2ebe20, 0x1b71d: 0x6d317c20, 0x1b71e: 0x6d27f220, 0x1b71f: 0x6cf15820,
-	0x1b720: 0x6c1e4820, 0x1b721: 0x6c0d8220, 0x1b722: 0x6ce41220, 0x1b723: 0x6c6d4020,
-	0x1b724: 0x6cce1620, 0x1b725: 0x6d1a9220, 0x1b726: 0x6c2dda20, 0x1b727: 0x6c702220,
-	0x1b728: 0x6c5c3220, 0x1b729: 0x6c24b020, 0x1b72a: 0x6d189820, 0x1b72b: 0x6c27fc20,
-	0x1b72c: 0x6c327e20, 0x1b72d: 0x6c678420, 0x1b72e: 0x6c892020, 0x1b72f: 0x6c0d8c20,
-	0x1b730: 0x6c31d220, 0x1b731: 0x6c674020, 0x1b732: 0x6c653e20, 0x1b733: 0x6cd49820,
-	0x1b734: 0x6cab3220, 0x1b735: 0x6c32b620, 0x1b736: 0x6d3ac020, 0x1b737: 0x6d19c020,
-	0x1b738: 0x6cbec820, 0x1b739: 0x6d175e20, 0x1b73a: 0x6ccbda20, 0x1b73b: 0x6cbc4020,
-	0x1b73c: 0x6c784e20, 0x1b73d: 0x6cff8a20, 0x1b73e: 0x6d0a8e20, 0x1b73f: 0x6c2d5e20,
-	// Block 0x6dd, offset 0x1b740
-	0x1b740: 0x6c5b5620, 0x1b741: 0x6c5b5820, 0x1b742: 0x6c47a020, 0x1b743: 0x6cbb9020,
-	0x1b744: 0x6c5f0620, 0x1b745: 0x6d185420, 0x1b746: 0x6cab4a20, 0x1b747: 0x6c5b6220,
-	0x1b748: 0x6c32da20, 0x1b749: 0x6d142420, 0x1b74a: 0x6cff5c20, 0x1b74b: 0x6cf39c20,
-	0x1b74c: 0x6c497220, 0x1b74d: 0x6ca22020, 0x1b74e: 0x6c9a4820, 0x1b74f: 0x6c9a4a20,
-	0x1b750: 0x6c006020, 0x1b751: 0x6c6b9420, 0x1b752: 0x6c318820, 0x1b753: 0x6d239020,
-	0x1b754: 0x6c08ac20, 0x1b755: 0x6c090a20, 0x1b756: 0x6c094e20, 0x1b757: 0x6cafc220,
-	0x1b758: 0x6cafc420, 0x1b759: 0x6c095e20, 0x1b75a: 0x6c152c20, 0x1b75b: 0x6c98c020,
-	0x1b75c: 0x6c4fbc20, 0x1b75d: 0x6c111a20, 0x1b75e: 0x6cafba20, 0x1b75f: 0x6c8b9020,
-	0x1b760: 0x6c633820, 0x1b761: 0x6d2d6420, 0x1b762: 0x6cc9c020, 0x1b763: 0x6ca27620,
-	0x1b764: 0x6ceb9e20, 0x1b765: 0x6d09fc20, 0x1b766: 0x6c379020, 0x1b767: 0x6cc66620,
-	0x1b768: 0x6cfbfa20, 0x1b769: 0x6c710620, 0x1b76a: 0x6ca21020, 0x1b76b: 0x6c4fc420,
-	0x1b76c: 0x6cc04a20, 0x1b76d: 0x6c311220, 0x1b76e: 0x6ccbea20, 0x1b76f: 0x6ce06020,
-	0x1b770: 0x6cadd620, 0x1b771: 0x6c712420, 0x1b772: 0x6c343020, 0x1b773: 0x6c253c20,
-	0x1b774: 0x6c087220, 0x1b775: 0x6cca0020, 0x1b776: 0x6cca6420, 0x1b777: 0x6c999420,
-	0x1b778: 0x6cc9c820, 0x1b779: 0x6cd4ea20, 0x1b77a: 0x6d208e20, 0x1b77b: 0x6cebac20,
-	0x1b77c: 0x6c513c20, 0x1b77d: 0x6c668e20, 0x1b77e: 0x6cde7420, 0x1b77f: 0x6cca0620,
-	// Block 0x6de, offset 0x1b780
-	0x1b780: 0x6c935e20, 0x1b781: 0x6ca21620, 0x1b782: 0x6c98fa20, 0x1b783: 0x6ce78820,
-	0x1b784: 0x6cc72220, 0x1b785: 0x6c16f820, 0x1b786: 0x6cb49820, 0x1b787: 0x6c934e20,
-	0x1b788: 0x6d2da820, 0x1b789: 0x6ccafc20, 0x1b78a: 0x6d2daa20, 0x1b78b: 0x6c9b5e20,
-	0x1b78c: 0x6c91f420, 0x1b78d: 0x6cc20820, 0x1b78e: 0x6c2f2220, 0x1b78f: 0x6cd2e420,
-	0x1b790: 0x6c2b0a20, 0x1b791: 0x6c9f2620, 0x1b792: 0x6c73d220, 0x1b793: 0x6c983620,
-	0x1b794: 0x6cb72620, 0x1b795: 0x6cb1c420, 0x1b796: 0x6ca39220, 0x1b797: 0x6cb72e20,
-	0x1b798: 0x6c29bc20, 0x1b799: 0x6cfa7a20, 0x1b79a: 0x6c1fde20, 0x1b79b: 0x6c3b1a20,
-	0x1b79c: 0x6d0f8820, 0x1b79d: 0x6ca58620, 0x1b79e: 0x6c0d9a20, 0x1b79f: 0x6c3e1020,
-	0x1b7a0: 0x6ccfbc20, 0x1b7a1: 0x6c2fe620, 0x1b7a2: 0x6cbe3420, 0x1b7a3: 0x6cb76a20,
-	0x1b7a4: 0x6d19c220, 0x1b7a5: 0x6cf5c020, 0x1b7a6: 0x6c4d6020, 0x1b7a7: 0x6d100e20,
-	0x1b7a8: 0x6c012220, 0x1b7a9: 0x6d0b8e20, 0x1b7aa: 0x6c78a620, 0x1b7ab: 0x6cbe4420,
-	0x1b7ac: 0x6d0bb020, 0x1b7ad: 0x6c300220, 0x1b7ae: 0x6c288a20, 0x1b7af: 0x6c93e020,
-	0x1b7b0: 0x6cbe7e20, 0x1b7b1: 0x6d102620, 0x1b7b2: 0x6d275620, 0x1b7b3: 0x6d275c20,
-	0x1b7b4: 0x6cd70220, 0x1b7b5: 0x6cd73c20, 0x1b7b6: 0x6d331620, 0x1b7b7: 0x6c0da420,
-	0x1b7b8: 0x6d1e0c20, 0x1b7b9: 0x6c294e20, 0x1b7ba: 0x6cd73e20, 0x1b7bb: 0x6c821020,
-	0x1b7bc: 0x6ca67820, 0x1b7bd: 0x6cea7620, 0x1b7be: 0x6c391420, 0x1b7bf: 0x6c4abc20,
-	// Block 0x6df, offset 0x1b7c0
-	0x1b7c0: 0x6ce62620, 0x1b7c1: 0x6d338220, 0x1b7c2: 0x6cc00020, 0x1b7c3: 0x6c0d1e20,
-	0x1b7c4: 0x6d2b3620, 0x1b7c5: 0x6c9dfc20, 0x1b7c6: 0x6c248c20, 0x1b7c7: 0x6c5b8820,
-	0x1b7c8: 0x6c2dac20, 0x1b7c9: 0x6c4e7c20, 0x1b7ca: 0x6c142c20, 0x1b7cb: 0x6d3d2020,
-	0x1b7cc: 0x6c202a20, 0x1b7cd: 0x6cecba20, 0x1b7ce: 0x6c391c20, 0x1b7cf: 0x6c26e820,
-	0x1b7d0: 0x6cf57220, 0x1b7d1: 0x6cea9c20, 0x1b7d2: 0x6c982a20, 0x1b7d3: 0x6cbffa20,
-	0x1b7d4: 0x6cb73020, 0x1b7d5: 0x6ccd6a20, 0x1b7d6: 0x6cb24220, 0x1b7d7: 0x6c4e8620,
-	0x1b7d8: 0x6cb89a20, 0x1b7d9: 0x6cf34620, 0x1b7da: 0x6cf34820, 0x1b7db: 0x6d0a6620,
-	0x1b7dc: 0x6cd87a20, 0x1b7dd: 0x6cc7f420, 0x1b7de: 0x6c45d420, 0x1b7df: 0x6c674220,
-	0x1b7e0: 0x6c1af620, 0x1b7e1: 0x6cf34a20, 0x1b7e2: 0x6ce92c20, 0x1b7e3: 0x6c704220,
-	0x1b7e4: 0x6ce0b820, 0x1b7e5: 0x6d338c20, 0x1b7e6: 0x6d34e820, 0x1b7e7: 0x6cb8a820,
-	0x1b7e8: 0x6c9d1c20, 0x1b7e9: 0x6c475820, 0x1b7ea: 0x6cedc420, 0x1b7eb: 0x6c6e0e20,
-	0x1b7ec: 0x6c6e1020, 0x1b7ed: 0x6cc8be20, 0x1b7ee: 0x6c755a20, 0x1b7ef: 0x6c52f820,
-	0x1b7f0: 0x6cdf6020, 0x1b7f1: 0x6cc34e20, 0x1b7f2: 0x6c5fcc20, 0x1b7f3: 0x6c0b7020,
-	0x1b7f4: 0x6c0b7220, 0x1b7f5: 0x6c420e20, 0x1b7f6: 0x6cf1fe20, 0x1b7f7: 0x6d378820,
-	0x1b7f8: 0x6c398420, 0x1b7f9: 0x6d045620, 0x1b7fa: 0x6c73e020, 0x1b7fb: 0x6c561020,
-	0x1b7fc: 0x6ca96820, 0x1b7fd: 0x6cb73820, 0x1b7fe: 0x6c3b5620, 0x1b7ff: 0x6d067220,
-	// Block 0x6e0, offset 0x1b800
-	0x1b800: 0x6d068420, 0x1b801: 0x6cbe0620, 0x1b802: 0x6d146220, 0x1b803: 0x6cf2ce20,
-	0x1b804: 0x6d278020, 0x1b805: 0x6d253e20, 0x1b806: 0x6c4f9020, 0x1b807: 0x6d0d3e20,
-	0x1b808: 0x6c189c20, 0x1b809: 0x6c189e20, 0x1b80a: 0x6c286820, 0x1b80b: 0x6d1eec20,
-	0x1b80c: 0x6c33da20, 0x1b80d: 0x6c565820, 0x1b80e: 0x6c5d9c20, 0x1b80f: 0x6cb4cc20,
-	0x1b810: 0x6ca26820, 0x1b811: 0x6caa7620, 0x1b812: 0x6c99d220, 0x1b813: 0x6c268220,
-	0x1b814: 0x6c9e0020, 0x1b815: 0x6c9d1e20, 0x1b816: 0x6c1cae20, 0x1b817: 0x6cacce20,
-	0x1b818: 0x6c08bc20, 0x1b819: 0x6ccbc420, 0x1b81a: 0x6d34ea20, 0x1b81b: 0x6cae0220,
-	0x1b81c: 0x6cac9e20, 0x1b81d: 0x6d3c7620, 0x1b81e: 0x6d288420, 0x1b81f: 0x6c463820,
-	0x1b820: 0x6c8e4220, 0x1b821: 0x6c99d420, 0x1b822: 0x6d2aa620, 0x1b823: 0x6c3c1c20,
-	0x1b824: 0x6cab2e20, 0x1b825: 0x6c858020, 0x1b826: 0x6c94da20, 0x1b827: 0x6c122220,
-	0x1b828: 0x6c3c1e20, 0x1b829: 0x6ceee020, 0x1b82a: 0x6c565a20, 0x1b82b: 0x6ca0d220,
-	0x1b82c: 0x6c9a7820, 0x1b82d: 0x6cd59e20, 0x1b82e: 0x6c71a620, 0x1b82f: 0x6d296220,
-	0x1b830: 0x6ceab020, 0x1b831: 0x6ceaee20, 0x1b832: 0x6ceaf020, 0x1b833: 0x6c50c820,
-	0x1b834: 0x6c859020, 0x1b835: 0x6c9cdc20, 0x1b836: 0x6d147220, 0x1b837: 0x6c37e420,
-	0x1b838: 0x6c3a8820, 0x1b839: 0x6d1efe20, 0x1b83a: 0x6ce48420, 0x1b83b: 0x6d358a20,
-	0x1b83c: 0x6d2f8820, 0x1b83d: 0x6c46f220, 0x1b83e: 0x6d2d6020, 0x1b83f: 0x6d0c6820,
-	// Block 0x6e1, offset 0x1b840
-	0x1b840: 0x6cd7ce20, 0x1b841: 0x6c7be420, 0x1b842: 0x6c6ef820, 0x1b843: 0x6c705c20,
-	0x1b844: 0x6d016020, 0x1b845: 0x6cc00620, 0x1b846: 0x6d16c220, 0x1b847: 0x6c632c20,
-	0x1b848: 0x6d379a20, 0x1b849: 0x6cc2c220, 0x1b84a: 0x6cb2fc20, 0x1b84b: 0x6c5b9020,
-	0x1b84c: 0x6c9d2620, 0x1b84d: 0x6c077e20, 0x1b84e: 0x6d2aaa20, 0x1b84f: 0x6d39f420,
-	0x1b850: 0x6c821820, 0x1b851: 0x6d1e9820, 0x1b852: 0x6c46f420, 0x1b853: 0x6c530420,
-	0x1b854: 0x6c417620, 0x1b855: 0x6c382e20, 0x1b856: 0x6c992e20, 0x1b857: 0x6cd89020,
-	0x1b858: 0x6c54a620, 0x1b859: 0x6cb27a20, 0x1b85a: 0x6c229220, 0x1b85b: 0x6c392220,
-	0x1b85c: 0x6d339a20, 0x1b85d: 0x6cda8020, 0x1b85e: 0x6ca95420, 0x1b85f: 0x6c195420,
-	0x1b860: 0x6c8cac20, 0x1b861: 0x6cad8220, 0x1b862: 0x6c0e5220, 0x1b863: 0x6cb74620,
-	0x1b864: 0x6cd88220, 0x1b865: 0x6ca5c020, 0x1b866: 0x6c70f620, 0x1b867: 0x6cc96a20,
-	0x1b868: 0x6d3ab020, 0x1b869: 0x6cd0e220, 0x1b86a: 0x6c832020, 0x1b86b: 0x6d087020,
-	0x1b86c: 0x6c73f020, 0x1b86d: 0x6c3df620, 0x1b86e: 0x6caca220, 0x1b86f: 0x6c9f9620,
-	0x1b870: 0x6cdf6820, 0x1b871: 0x6d0f4a20, 0x1b872: 0x6c612020, 0x1b873: 0x6d1e1420,
-	0x1b874: 0x6c497c20, 0x1b875: 0x6c083a20, 0x1b876: 0x6d090020, 0x1b877: 0x6c8f6c20,
-	0x1b878: 0x6c913a20, 0x1b879: 0x6c28f420, 0x1b87a: 0x6c95e020, 0x1b87b: 0x6d016220,
-	0x1b87c: 0x6cb3c020, 0x1b87d: 0x6d2aac20, 0x1b87e: 0x6c6d9020, 0x1b87f: 0x6d1a3c20,
-	// Block 0x6e2, offset 0x1b880
-	0x1b880: 0x6cac5420, 0x1b881: 0x6c6a9020, 0x1b882: 0x6d16f620, 0x1b883: 0x6c5a9820,
-	0x1b884: 0x6c5b2620, 0x1b885: 0x6d293020, 0x1b886: 0x6c19ce20, 0x1b887: 0x6d19b420,
-	0x1b888: 0x6ceeec20, 0x1b889: 0x6c546620, 0x1b88a: 0x6c665a20, 0x1b88b: 0x6d0f9820,
-	0x1b88c: 0x6c8ad420, 0x1b88d: 0x6cd8a820, 0x1b88e: 0x6c61aa20, 0x1b88f: 0x6c374020,
-	0x1b890: 0x6d03d020, 0x1b891: 0x6c3e1220, 0x1b892: 0x6cc94c20, 0x1b893: 0x6ccb1820,
-	0x1b894: 0x6d350420, 0x1b895: 0x6d1b3e20, 0x1b896: 0x6cf3b620, 0x1b897: 0x6cf7d620,
-	0x1b898: 0x6c77a420, 0x1b899: 0x6d398a20, 0x1b89a: 0x6c67da20, 0x1b89b: 0x6c95e820,
-	0x1b89c: 0x6c95f420, 0x1b89d: 0x6c01a620, 0x1b89e: 0x6c306420, 0x1b89f: 0x6ce3dc20,
-	0x1b8a0: 0x6ca1c820, 0x1b8a1: 0x6c832220, 0x1b8a2: 0x6d13da20, 0x1b8a3: 0x6c9ce420,
-	0x1b8a4: 0x6cc2c420, 0x1b8a5: 0x6c6c3020, 0x1b8a6: 0x6cb37020, 0x1b8a7: 0x6cef9820,
-	0x1b8a8: 0x6cff7020, 0x1b8a9: 0x6d017220, 0x1b8aa: 0x6c531420, 0x1b8ab: 0x6d069420,
-	0x1b8ac: 0x6cda8620, 0x1b8ad: 0x6c7b9220, 0x1b8ae: 0x6ce20a20, 0x1b8af: 0x6cbcac20,
-	0x1b8b0: 0x6c71fe20, 0x1b8b1: 0x6c378a20, 0x1b8b2: 0x6d386020, 0x1b8b3: 0x6cc81220,
-	0x1b8b4: 0x6cb28620, 0x1b8b5: 0x6d09ec20, 0x1b8b6: 0x6d046020, 0x1b8b7: 0x6d35a220,
-	0x1b8b8: 0x6c49e020, 0x1b8b9: 0x6c586420, 0x1b8ba: 0x6c9fec20, 0x1b8bb: 0x6c5d7020,
-	0x1b8bc: 0x6cebcc20, 0x1b8bd: 0x6cb84c20, 0x1b8be: 0x6cac1e20, 0x1b8bf: 0x6cf35820,
-	// Block 0x6e3, offset 0x1b8c0
-	0x1b8c0: 0x6cc0e820, 0x1b8c1: 0x6c8e4a20, 0x1b8c2: 0x6d16f820, 0x1b8c3: 0x6c633a20,
-	0x1b8c4: 0x6c6e5a20, 0x1b8c5: 0x6cb9f420, 0x1b8c6: 0x6c675420, 0x1b8c7: 0x6c683220,
-	0x1b8c8: 0x6d312a20, 0x1b8c9: 0x6cd1ac20, 0x1b8ca: 0x6d3d3420, 0x1b8cb: 0x6c12d420,
-	0x1b8cc: 0x6c380020, 0x1b8cd: 0x6c5b9c20, 0x1b8ce: 0x6c61ac20, 0x1b8cf: 0x6c8e4620,
-	0x1b8d0: 0x6c159c20, 0x1b8d1: 0x6c5ce020, 0x1b8d2: 0x6c561420, 0x1b8d3: 0x6ca9b420,
-	0x1b8d4: 0x6d09ee20, 0x1b8d5: 0x6c6ce220, 0x1b8d6: 0x6c8aee20, 0x1b8d7: 0x6cc03220,
-	0x1b8d8: 0x6cefa220, 0x1b8d9: 0x6d30ea20, 0x1b8da: 0x6c75a620, 0x1b8db: 0x6c4df620,
-	0x1b8dc: 0x6c052620, 0x1b8dd: 0x6c985220, 0x1b8de: 0x6d3d3a20, 0x1b8df: 0x6d1f1820,
-	0x1b8e0: 0x6cf5c220, 0x1b8e1: 0x6c0ed620, 0x1b8e2: 0x6c310420, 0x1b8e3: 0x6c590420,
-	0x1b8e4: 0x6c532a20, 0x1b8e5: 0x6d173220, 0x1b8e6: 0x6cb48820, 0x1b8e7: 0x6d1ce420,
-	0x1b8e8: 0x6c802420, 0x1b8e9: 0x6c502e20, 0x1b8ea: 0x6c811820, 0x1b8eb: 0x6c4e5620,
-	0x1b8ec: 0x6c850c20, 0x1b8ed: 0x6c44be20, 0x1b8ee: 0x6c3e3620, 0x1b8ef: 0x6cf3b820,
-	0x1b8f0: 0x6c88ea20, 0x1b8f1: 0x6c213a20, 0x1b8f2: 0x6c3ca220, 0x1b8f3: 0x6d173420,
-	0x1b8f4: 0x6d22f220, 0x1b8f5: 0x6ce73420, 0x1b8f6: 0x6c815420, 0x1b8f7: 0x6c4d3a20,
-	0x1b8f8: 0x6c6cee20, 0x1b8f9: 0x6c634220, 0x1b8fa: 0x6c1cb820, 0x1b8fb: 0x6c6f0820,
-	0x1b8fc: 0x6c9a5220, 0x1b8fd: 0x6cdbb820, 0x1b8fe: 0x6c195e20, 0x1b8ff: 0x6cae1420,
-	// Block 0x6e4, offset 0x1b900
-	0x1b900: 0x6cfcaa20, 0x1b901: 0x6cd09820, 0x1b902: 0x6ce92e20, 0x1b903: 0x6c7dd020,
-	0x1b904: 0x6cb25020, 0x1b905: 0x6ca80820, 0x1b906: 0x6c4e9c20, 0x1b907: 0x6c6da020,
-	0x1b908: 0x6cfea220, 0x1b909: 0x6ccf3c20, 0x1b90a: 0x6ca71e20, 0x1b90b: 0x6ce84e20,
-	0x1b90c: 0x6d1e2620, 0x1b90d: 0x6cffe020, 0x1b90e: 0x6cfb3620, 0x1b90f: 0x6ce6bc20,
-	0x1b910: 0x6c355820, 0x1b911: 0x6cda8e20, 0x1b912: 0x6cea1c20, 0x1b913: 0x6c72e620,
-	0x1b914: 0x6c132c20, 0x1b915: 0x6ce3e220, 0x1b916: 0x6c85d020, 0x1b917: 0x6cd71620,
-	0x1b918: 0x6cd8aa20, 0x1b919: 0x6c832820, 0x1b91a: 0x6cd71820, 0x1b91b: 0x6ce1be20,
-	0x1b91c: 0x6c318e20, 0x1b91d: 0x6c81ce20, 0x1b91e: 0x6c7eec20, 0x1b91f: 0x6c87f620,
-	0x1b920: 0x6ceef620, 0x1b921: 0x6cf28020, 0x1b922: 0x6d279a20, 0x1b923: 0x6c590620,
-	0x1b924: 0x6c2b6420, 0x1b925: 0x6c528a20, 0x1b926: 0x6cc8fa20, 0x1b927: 0x6c666e20,
-	0x1b928: 0x6d2f0220, 0x1b929: 0x6ccb1c20, 0x1b92a: 0x6c3e5220, 0x1b92b: 0x6c498420,
-	0x1b92c: 0x6d042a20, 0x1b92d: 0x6cd46420, 0x1b92e: 0x6cd69020, 0x1b92f: 0x6d0b2a20,
-	0x1b930: 0x6c21b620, 0x1b931: 0x6d2f2e20, 0x1b932: 0x6d12e820, 0x1b933: 0x6c797620,
-	0x1b934: 0x6cf2e420, 0x1b935: 0x6c4e0220, 0x1b936: 0x6ceac020, 0x1b937: 0x6c2ffa20,
-	0x1b938: 0x6c510820, 0x1b939: 0x6cf28620, 0x1b93a: 0x6c708e20, 0x1b93b: 0x6ccf4020,
-	0x1b93c: 0x6c894e20, 0x1b93d: 0x6c5cc220, 0x1b93e: 0x6cde4e20, 0x1b93f: 0x6d3cfe20,
-	// Block 0x6e5, offset 0x1b940
-	0x1b940: 0x6c2d5220, 0x1b941: 0x6cbcb620, 0x1b942: 0x6c2a6a20, 0x1b943: 0x6c735620,
-	0x1b944: 0x6d3e2420, 0x1b945: 0x6cf5f020, 0x1b946: 0x6cff8220, 0x1b947: 0x6cb5ca20,
-	0x1b948: 0x6c477e20, 0x1b949: 0x6c4cb820, 0x1b94a: 0x6d0bf620, 0x1b94b: 0x6c8bb020,
-	0x1b94c: 0x6ce17420, 0x1b94d: 0x6d387620, 0x1b94e: 0x6caf0420, 0x1b94f: 0x6c503820,
-	0x1b950: 0x6c166620, 0x1b951: 0x6cd4cc20, 0x1b952: 0x6cb4ea20, 0x1b953: 0x6c399020,
-	0x1b954: 0x6d345820, 0x1b955: 0x6c923c20, 0x1b956: 0x6ca53020, 0x1b957: 0x6c711420,
-	0x1b958: 0x6ce21e20, 0x1b959: 0x6c239c20, 0x1b95a: 0x6c833020, 0x1b95b: 0x6d30f020,
-	0x1b95c: 0x6cb29c20, 0x1b95d: 0x6c3a3420, 0x1b95e: 0x6cd91c20, 0x1b95f: 0x6ce4ee20,
-	0x1b960: 0x6cb09020, 0x1b961: 0x6c288020, 0x1b962: 0x6d231620, 0x1b963: 0x6ca5d820,
-	0x1b964: 0x6d208620, 0x1b965: 0x6c923e20, 0x1b966: 0x6c421a20, 0x1b967: 0x6c9d3a20,
-	0x1b968: 0x6c6e7420, 0x1b969: 0x6c8ce820, 0x1b96a: 0x6c94f420, 0x1b96b: 0x6d1a5c20,
-	0x1b96c: 0x6c253620, 0x1b96d: 0x6cc18820, 0x1b96e: 0x6c57ea20, 0x1b96f: 0x6d231820,
-	0x1b970: 0x6ca72220, 0x1b971: 0x6ccfde20, 0x1b972: 0x6c0bf620, 0x1b973: 0x6c214220,
-	0x1b974: 0x6c54c220, 0x1b975: 0x6d24ec20, 0x1b976: 0x6c7efc20, 0x1b977: 0x6c5d2620,
-	0x1b978: 0x6cbe4620, 0x1b979: 0x6d0bf820, 0x1b97a: 0x6cba0220, 0x1b97b: 0x6ce46220,
-	0x1b97c: 0x6c9e9020, 0x1b97d: 0x6d350c20, 0x1b97e: 0x6d1ae420, 0x1b97f: 0x6c9d3c20,
-	// Block 0x6e6, offset 0x1b980
-	0x1b980: 0x6c07b220, 0x1b981: 0x6d24de20, 0x1b982: 0x6cf20820, 0x1b983: 0x6cc91c20,
-	0x1b984: 0x6c39fa20, 0x1b985: 0x6cbe4820, 0x1b986: 0x6d24e020, 0x1b987: 0x6c786220,
-	0x1b988: 0x6c61f220, 0x1b989: 0x6ccf4220, 0x1b98a: 0x6d24e220, 0x1b98b: 0x6ccba420,
-	0x1b98c: 0x6c924020, 0x1b98d: 0x6d3f4420, 0x1b98e: 0x6c319620, 0x1b98f: 0x6cb81420,
-	0x1b990: 0x6c667a20, 0x1b991: 0x6c9e1c20, 0x1b992: 0x6cb09220, 0x1b993: 0x6cf94420,
-	0x1b994: 0x6d210220, 0x1b995: 0x6d24e420, 0x1b996: 0x6cd05c20, 0x1b997: 0x6cd09e20,
-	0x1b998: 0x6cc74c20, 0x1b999: 0x6c592420, 0x1b99a: 0x6d3a6420, 0x1b99b: 0x6c659620,
-	0x1b99c: 0x6caa9020, 0x1b99d: 0x6d212a20, 0x1b99e: 0x6cc06220, 0x1b99f: 0x6ce67220,
-	0x1b9a0: 0x6cc18a20, 0x1b9a1: 0x6c325c20, 0x1b9a2: 0x6c389e20, 0x1b9a3: 0x6d2bdc20,
-	0x1b9a4: 0x6c0f0420, 0x1b9a5: 0x6cf2f220, 0x1b9a6: 0x6cf28820, 0x1b9a7: 0x6c2c5820,
-	0x1b9a8: 0x6cee8e20, 0x1b9a9: 0x6cf15020, 0x1b9aa: 0x6cc7ac20, 0x1b9ab: 0x6d01ae20,
-	0x1b9ac: 0x6c12ea20, 0x1b9ad: 0x6cf09820, 0x1b9ae: 0x6c510a20, 0x1b9af: 0x6c42a220,
-	0x1b9b0: 0x6d0d8a20, 0x1b9b1: 0x6c534a20, 0x1b9b2: 0x6d089420, 0x1b9b3: 0x6c9cf220,
-	0x1b9b4: 0x6c786a20, 0x1b9b5: 0x6c98da20, 0x1b9b6: 0x6d1bb020, 0x1b9b7: 0x6d0d8c20,
-	0x1b9b8: 0x6d1f3820, 0x1b9b9: 0x6c52a620, 0x1b9ba: 0x6c9e9220, 0x1b9bb: 0x6cd13a20,
-	0x1b9bc: 0x6c9a5a20, 0x1b9bd: 0x6d290420, 0x1b9be: 0x6c5cec20, 0x1b9bf: 0x6ca3c420,
-	// Block 0x6e7, offset 0x1b9c0
-	0x1b9c0: 0x6c4afe20, 0x1b9c1: 0x6c1c2020, 0x1b9c2: 0x6c363820, 0x1b9c3: 0x6cac2620,
-	0x1b9c4: 0x6c99fc20, 0x1b9c5: 0x6c88fc20, 0x1b9c6: 0x6cb79620, 0x1b9c7: 0x6cb79820,
-	0x1b9c8: 0x6c99fe20, 0x1b9c9: 0x6ce4a020, 0x1b9ca: 0x6c23ec20, 0x1b9cb: 0x6cef1020,
-	0x1b9cc: 0x6c116a20, 0x1b9cd: 0x6ce93220, 0x1b9ce: 0x6c9e2620, 0x1b9cf: 0x6c5bc420,
-	0x1b9d0: 0x6ca11a20, 0x1b9d1: 0x6d059c20, 0x1b9d2: 0x6c604020, 0x1b9d3: 0x6cae4020,
-	0x1b9d4: 0x6c649e20, 0x1b9d5: 0x6c658a20, 0x1b9d6: 0x6c555e20, 0x1b9d7: 0x6c3ce020,
-	0x1b9d8: 0x6cfd7420, 0x1b9d9: 0x6d17a820, 0x1b9da: 0x6d1b5420, 0x1b9db: 0x6d2e6420,
-	0x1b9dc: 0x6cd26a20, 0x1b9dd: 0x6c6a1820, 0x1b9de: 0x6c197020, 0x1b9df: 0x6c59c620,
-	0x1b9e0: 0x6ce09a20, 0x1b9e1: 0x6d212c20, 0x1b9e2: 0x6c09a220, 0x1b9e3: 0x6c9fb020,
-	0x1b9e4: 0x6cd1be20, 0x1b9e5: 0x6ce86020, 0x1b9e6: 0x6cd10220, 0x1b9e7: 0x6d1e3a20,
-	0x1b9e8: 0x6c712620, 0x1b9e9: 0x6c307820, 0x1b9ea: 0x6ce98a20, 0x1b9eb: 0x6c68f620,
-	0x1b9ec: 0x6c690820, 0x1b9ed: 0x6cc06420, 0x1b9ee: 0x6d0c0820, 0x1b9ef: 0x6ce0c020,
-	0x1b9f0: 0x6c8f9420, 0x1b9f1: 0x6c5dd220, 0x1b9f2: 0x6d256420, 0x1b9f3: 0x6ca42820,
-	0x1b9f4: 0x6c04f620, 0x1b9f5: 0x6d1fcc20, 0x1b9f6: 0x6cc2f020, 0x1b9f7: 0x6d3c1820,
-	0x1b9f8: 0x6c89ba20, 0x1b9f9: 0x6c14f620, 0x1b9fa: 0x6d0c9620, 0x1b9fb: 0x6c214c20,
-	0x1b9fc: 0x6ca83020, 0x1b9fd: 0x6d3e3e20, 0x1b9fe: 0x6cec9020, 0x1b9ff: 0x6cd1c020,
-	// Block 0x6e8, offset 0x1ba00
-	0x1ba00: 0x6c97ba20, 0x1ba01: 0x6d1c7220, 0x1ba02: 0x6c7ed620, 0x1ba03: 0x6c7cfc20,
-	0x1ba04: 0x6c3d0020, 0x1ba05: 0x6c669020, 0x1ba06: 0x6d06da20, 0x1ba07: 0x6c908a20,
-	0x1ba08: 0x6cef1220, 0x1ba09: 0x6c413620, 0x1ba0a: 0x6cfa6620, 0x1ba0b: 0x6d1c7420,
-	0x1ba0c: 0x6cb31020, 0x1ba0d: 0x6c6d1820, 0x1ba0e: 0x6d0e8620, 0x1ba0f: 0x6ce10420,
-	0x1ba10: 0x6d258220, 0x1ba11: 0x6cdd7a20, 0x1ba12: 0x6d258420, 0x1ba13: 0x6c881420,
-	0x1ba14: 0x6d11b820, 0x1ba15: 0x6c9c0620, 0x1ba16: 0x6d3cde20, 0x1ba17: 0x6c1a1c20,
-	0x1ba18: 0x6c78ba20, 0x1ba19: 0x6cdf7a20, 0x1ba1a: 0x6cde0a20, 0x1ba1b: 0x6cebe420,
-	0x1ba1c: 0x6c8e3620, 0x1ba1d: 0x6c465220, 0x1ba1e: 0x6ccaae20, 0x1ba1f: 0x6ca00620,
-	0x1ba20: 0x6d2cc420, 0x1ba21: 0x6cd27220, 0x1ba22: 0x6d17e820, 0x1ba23: 0x6c952220,
-	0x1ba24: 0x6c969a20, 0x1ba25: 0x6cb48e20, 0x1ba26: 0x6cee9e20, 0x1ba27: 0x6c863420,
-	0x1ba28: 0x6c111220, 0x1ba29: 0x6cf50020, 0x1ba2a: 0x6cf64c20, 0x1ba2b: 0x6cf15a20,
-	0x1ba2c: 0x6cbaba20, 0x1ba2d: 0x6d2ace20, 0x1ba2e: 0x6cd1ce20, 0x1ba2f: 0x6cdace20,
-	0x1ba30: 0x6c004220, 0x1ba31: 0x6cbd8420, 0x1ba32: 0x6cd9b220, 0x1ba33: 0x6d27b220,
-	0x1ba34: 0x6d054420, 0x1ba35: 0x6d19ec20, 0x1ba36: 0x6cc68a20, 0x1ba37: 0x6c5d2e20,
-	0x1ba38: 0x6cdad020, 0x1ba39: 0x6cddcc20, 0x1ba3a: 0x6ca6ac20, 0x1ba3b: 0x6cddf420,
-	0x1ba3c: 0x6cd1d020, 0x1ba3d: 0x6cc81c20, 0x1ba3e: 0x6c002a20, 0x1ba3f: 0x6cacba20,
-	// Block 0x6e9, offset 0x1ba40
-	0x1ba40: 0x6c1f5020, 0x1ba41: 0x6c1e7e20, 0x1ba42: 0x6cacdc20, 0x1ba43: 0x6cf22c20,
-	0x1ba44: 0x6c123220, 0x1ba45: 0x6c9ede20, 0x1ba46: 0x6c440620, 0x1ba47: 0x6c2cce20,
-	0x1ba48: 0x6c504420, 0x1ba49: 0x6c5a7020, 0x1ba4a: 0x6cf8a020, 0x1ba4b: 0x6d3e4020,
-	0x1ba4c: 0x6c2b7220, 0x1ba4d: 0x6d365a20, 0x1ba4e: 0x6d03f220, 0x1ba4f: 0x6c3f6c20,
-	0x1ba50: 0x6c6aea20, 0x1ba51: 0x6c573e20, 0x1ba52: 0x6c439a20, 0x1ba53: 0x6d3f1a20,
-	0x1ba54: 0x6ce1d820, 0x1ba55: 0x6ce2aa20, 0x1ba56: 0x6cdbc820, 0x1ba57: 0x6c09c820,
-	0x1ba58: 0x6c69a420, 0x1ba59: 0x6c5be620, 0x1ba5a: 0x6c4bce20, 0x1ba5b: 0x6d1a7020,
-	0x1ba5c: 0x6c42ca20, 0x1ba5d: 0x6c8f9620, 0x1ba5e: 0x6d362c20, 0x1ba5f: 0x6d0e8820,
-	0x1ba60: 0x6ccf5820, 0x1ba61: 0x6c97be20, 0x1ba62: 0x6d1c8020, 0x1ba63: 0x6c215020,
-	0x1ba64: 0x6c93e620, 0x1ba65: 0x6c807420, 0x1ba66: 0x6c943e20, 0x1ba67: 0x6d003420,
-	0x1ba68: 0x6c0d3c20, 0x1ba69: 0x6cdfb020, 0x1ba6a: 0x6d236e20, 0x1ba6b: 0x6d052420,
-	0x1ba6c: 0x6c56b820, 0x1ba6d: 0x6c09ca20, 0x1ba6e: 0x6c0c0c20, 0x1ba6f: 0x6d368e20,
-	0x1ba70: 0x6c67f220, 0x1ba71: 0x6c79f620, 0x1ba72: 0x6cd0be20, 0x1ba73: 0x6cce0e20,
-	0x1ba74: 0x6c2b3a20, 0x1ba75: 0x6c9d6820, 0x1ba76: 0x6c025220, 0x1ba77: 0x6c91cc20,
-	0x1ba78: 0x6c562820, 0x1ba79: 0x6c54e820, 0x1ba7a: 0x6d1eac20, 0x1ba7b: 0x6c15cc20,
-	0x1ba7c: 0x6c396420, 0x1ba7d: 0x6d1d9e20, 0x1ba7e: 0x6c4bd620, 0x1ba7f: 0x6c97c420,
-	// Block 0x6ea, offset 0x1ba80
-	0x1ba80: 0x6cbeae20, 0x1ba81: 0x6d216e20, 0x1ba82: 0x6cb1b820, 0x1ba83: 0x6c623e20,
-	0x1ba84: 0x6d0b3420, 0x1ba85: 0x6c176e20, 0x1ba86: 0x6cb51220, 0x1ba87: 0x6cf7fe20,
-	0x1ba88: 0x6c624020, 0x1ba89: 0x6c928620, 0x1ba8a: 0x6c90a620, 0x1ba8b: 0x6c8f9c20,
-	0x1ba8c: 0x6c6ca020, 0x1ba8d: 0x6c4c7a20, 0x1ba8e: 0x6c23a620, 0x1ba8f: 0x6c910e20,
-	0x1ba90: 0x6d349020, 0x1ba91: 0x6c414c20, 0x1ba92: 0x6cbb1a20, 0x1ba93: 0x6c83e220,
-	0x1ba94: 0x6d0db420, 0x1ba95: 0x6c127e20, 0x1ba96: 0x6c69b020, 0x1ba97: 0x6c232a20,
-	0x1ba98: 0x6c215620, 0x1ba99: 0x6ce95620, 0x1ba9a: 0x6cab4020, 0x1ba9b: 0x6ce2a820,
-	0x1ba9c: 0x6d12b020, 0x1ba9d: 0x6cf79220, 0x1ba9e: 0x6c9d6a20, 0x1ba9f: 0x6ce11220,
-	0x1baa0: 0x6ca12c20, 0x1baa1: 0x6cce1020, 0x1baa2: 0x6c4ee620, 0x1baa3: 0x6c881620,
-	0x1baa4: 0x6c803220, 0x1baa5: 0x6cebe820, 0x1baa6: 0x6c1b4820, 0x1baa7: 0x6c41aa20,
-	0x1baa8: 0x6c3cae20, 0x1baa9: 0x6d081a20, 0x1baaa: 0x6d140420, 0x1baab: 0x6c97ec20,
-	0x1baac: 0x6d3f5c20, 0x1baad: 0x6c989620, 0x1baae: 0x6c774020, 0x1baaf: 0x6c961620,
-	0x1bab0: 0x6cae7a20, 0x1bab1: 0x6cd5f420, 0x1bab2: 0x6d2f0620, 0x1bab3: 0x6d2eca20,
-	0x1bab4: 0x6d3c4620, 0x1bab5: 0x6d070c20, 0x1bab6: 0x6c594020, 0x1bab7: 0x6c5d9020,
-	0x1bab8: 0x6c66aa20, 0x1bab9: 0x6d0c1c20, 0x1baba: 0x6cd6d820, 0x1babb: 0x6c89f820,
-	0x1babc: 0x6c24fa20, 0x1babd: 0x6ce36420, 0x1babe: 0x6d106020, 0x1babf: 0x6c677220,
-	// Block 0x6eb, offset 0x1bac0
-	0x1bac0: 0x6c23a820, 0x1bac1: 0x6d1d0620, 0x1bac2: 0x6c537220, 0x1bac3: 0x6d0a1c20,
-	0x1bac4: 0x6cd5f620, 0x1bac5: 0x6c499a20, 0x1bac6: 0x6d1c8620, 0x1bac7: 0x6cfeee20,
-	0x1bac8: 0x6d404220, 0x1bac9: 0x6c7de020, 0x1baca: 0x6d070e20, 0x1bacb: 0x6c890c20,
-	0x1bacc: 0x6d369020, 0x1bacd: 0x6cef2020, 0x1bace: 0x6cb0ac20, 0x1bacf: 0x6d23c420,
-	0x1bad0: 0x6c69be20, 0x1bad1: 0x6cb3c420, 0x1bad2: 0x6c297820, 0x1bad3: 0x6c5c1820,
-	0x1bad4: 0x6c6b1c20, 0x1bad5: 0x6cf46820, 0x1bad6: 0x6cabdc20, 0x1bad7: 0x6c608620,
-	0x1bad8: 0x6cac4220, 0x1bad9: 0x6cef2c20, 0x1bada: 0x6cdb1820, 0x1badb: 0x6cb9b820,
-	0x1badc: 0x6cb9ba20, 0x1badd: 0x6cf69c20, 0x1bade: 0x6c92cc20, 0x1badf: 0x6cf8c620,
-	0x1bae0: 0x6d0aa220, 0x1bae1: 0x6c340620, 0x1bae2: 0x6c59da20, 0x1bae3: 0x6c9fc620,
-	0x1bae4: 0x6cc90420, 0x1bae5: 0x6cdb0020, 0x1bae6: 0x6c81b820, 0x1bae7: 0x6d318a20,
-	0x1bae8: 0x6c23aa20, 0x1bae9: 0x6d182820, 0x1baea: 0x6d30fe20, 0x1baeb: 0x6cec9820,
-	0x1baec: 0x6ccd9e20, 0x1baed: 0x6ce00420, 0x1baee: 0x6c177620, 0x1baef: 0x6d0a3220,
-	0x1baf0: 0x6c7d0e20, 0x1baf1: 0x6d126420, 0x1baf2: 0x6ccee420, 0x1baf3: 0x6ce8da20,
-	0x1baf4: 0x6d39bc20, 0x1baf5: 0x6cc95820, 0x1baf6: 0x6c522220, 0x1baf7: 0x6c0a2a20,
-	0x1baf8: 0x6ccd0820, 0x1baf9: 0x6c151c20, 0x1bafa: 0x6c151e20, 0x1bafb: 0x6cd56820,
-	0x1bafc: 0x6ce77c20, 0x1bafd: 0x6cb41020, 0x1bafe: 0x6c8bce20, 0x1baff: 0x6cef2e20,
-	// Block 0x6ec, offset 0x1bb00
-	0x1bb00: 0x6ccb6c20, 0x1bb01: 0x6ccb4620, 0x1bb02: 0x6c1a3820, 0x1bb03: 0x6c6f3020,
-	0x1bb04: 0x6c1a3a20, 0x1bb05: 0x6c57be20, 0x1bb06: 0x6c686c20, 0x1bb07: 0x6c81dc20,
-	0x1bb08: 0x6c183420, 0x1bb09: 0x6c41e020, 0x1bb0a: 0x6c259c20, 0x1bb0b: 0x6c53cc20,
-	0x1bb0c: 0x6cd81820, 0x1bb0d: 0x6cd60220, 0x1bb0e: 0x6cae8420, 0x1bb0f: 0x6c4e2a20,
-	0x1bb10: 0x6d27c020, 0x1bb11: 0x6c8f3c20, 0x1bb12: 0x6c53ce20, 0x1bb13: 0x6c3ed820,
-	0x1bb14: 0x6c505a20, 0x1bb15: 0x6c513e20, 0x1bb16: 0x6cfb8020, 0x1bb17: 0x6c66b620,
-	0x1bb18: 0x6ccd0a20, 0x1bb19: 0x6cf8c820, 0x1bb1a: 0x6d24c220, 0x1bb1b: 0x6c934c20,
-	0x1bb1c: 0x6c7fac20, 0x1bb1d: 0x6ca96020, 0x1bb1e: 0x6d21a220, 0x1bb1f: 0x6c8c3420,
-	0x1bb20: 0x6c9e4020, 0x1bb21: 0x6d2a5020, 0x1bb22: 0x6c290420, 0x1bb23: 0x6c595420,
-	0x1bb24: 0x6d2afc20, 0x1bb25: 0x6d021620, 0x1bb26: 0x6d23ea20, 0x1bb27: 0x6c853020,
-	0x1bb28: 0x6cd3da20, 0x1bb29: 0x6d091c20, 0x1bb2a: 0x6c8d5820, 0x1bb2b: 0x6ced9420,
-	0x1bb2c: 0x6d3e8a20, 0x1bb2d: 0x6d1db420, 0x1bb2e: 0x6c5c3420, 0x1bb2f: 0x6c120420,
-	0x1bb30: 0x6c891620, 0x1bb31: 0x6c2d8420, 0x1bb32: 0x6d134020, 0x1bb33: 0x6c02ec20,
-	0x1bb34: 0x6c589820, 0x1bb35: 0x6d319220, 0x1bb36: 0x6c152420, 0x1bb37: 0x6c980420,
-	0x1bb38: 0x6c284420, 0x1bb39: 0x6c28b220, 0x1bb3a: 0x6d189e20, 0x1bb3b: 0x6cdc5c20,
-	0x1bb3c: 0x6cb0ba20, 0x1bb3d: 0x6c728e20, 0x1bb3e: 0x6cde8e20, 0x1bb3f: 0x6cbda420,
-	// Block 0x6ed, offset 0x1bb40
-	0x1bb40: 0x6c5f3420, 0x1bb41: 0x6d3d9a20, 0x1bb42: 0x6c884c20, 0x1bb43: 0x6ca9c620,
-	0x1bb44: 0x6c4c3020, 0x1bb45: 0x6c6d4e20, 0x1bb46: 0x6c3b8c20, 0x1bb47: 0x6ccb5a20,
-	0x1bb48: 0x6c608820, 0x1bb49: 0x6cdbda20, 0x1bb4a: 0x6c5c3620, 0x1bb4b: 0x6c1eea20,
-	0x1bb4c: 0x6cdeac20, 0x1bb4d: 0x6cd93620, 0x1bb4e: 0x6c2f7e20, 0x1bb4f: 0x6ccba620,
-	0x1bb50: 0x6d3a7e20, 0x1bb51: 0x6c7f5620, 0x1bb52: 0x6c0d5220, 0x1bb53: 0x6c884e20,
-	0x1bb54: 0x6c9d0220, 0x1bb55: 0x6cd20220, 0x1bb56: 0x6cd60c20, 0x1bb57: 0x6c9d8620,
-	0x1bb58: 0x6ca95a20, 0x1bb59: 0x6d1ca220, 0x1bb5a: 0x6d1ca420, 0x1bb5b: 0x6c9b4c20,
-	0x1bb5c: 0x6c6d5e20, 0x1bb5d: 0x6cb65e20, 0x1bb5e: 0x6c0a7020, 0x1bb5f: 0x6c629820,
-	0x1bb60: 0x6c4ff420, 0x1bb61: 0x6cc7d220, 0x1bb62: 0x6c256a20, 0x1bb63: 0x6cf31c20,
-	0x1bb64: 0x6ce1f020, 0x1bb65: 0x6d1b0e20, 0x1bb66: 0x6d1b1020, 0x1bb67: 0x6c336820,
-	0x1bb68: 0x6c226c20, 0x1bb69: 0x6c5df820, 0x1bb6a: 0x6c6eb220, 0x1bb6b: 0x6c807c20,
-	0x1bb6c: 0x6c75f020, 0x1bb6d: 0x6c007820, 0x1bb6e: 0x6cb45820, 0x1bb6f: 0x6d3db020,
-	0x1bb70: 0x6cef4020, 0x1bb71: 0x6c0d5420, 0x1bb72: 0x6c47d620, 0x1bb73: 0x6cb9d620,
-	0x1bb74: 0x6d1ca620, 0x1bb75: 0x6c0d9c20, 0x1bb76: 0x6c7e1c20, 0x1bb77: 0x6c3ade20,
-	0x1bb78: 0x6c125e20, 0x1bb79: 0x6c99c820, 0x1bb7a: 0x6c66f020, 0x1bb7b: 0x6cf02620,
-	0x1bb7c: 0x6c963420, 0x1bb7d: 0x6d29a420, 0x1bb7e: 0x6c940e20, 0x1bb7f: 0x6c869e20,
-	// Block 0x6ee, offset 0x1bb80
-	0x1bb80: 0x6d1ebe20, 0x1bb81: 0x6d106e20, 0x1bb82: 0x6c91ea20, 0x1bb83: 0x6cd8f420,
-	0x1bb84: 0x6d36e220, 0x1bb85: 0x6d1cb220, 0x1bb86: 0x6c31cc20, 0x1bb87: 0x6cee3c20,
-	0x1bb88: 0x6c5afc20, 0x1bb89: 0x6d024020, 0x1bb8a: 0x6cac8020, 0x1bb8b: 0x6cd08420,
-	0x1bb8c: 0x6c0c3820, 0x1bb8d: 0x6c153820, 0x1bb8e: 0x6ca17220, 0x1bb8f: 0x6c8eba20,
-	0x1bb90: 0x6c651620, 0x1bb91: 0x6cb4ba20, 0x1bb92: 0x6ccb7420, 0x1bb93: 0x6c1a4e20,
-	0x1bb94: 0x6c47e220, 0x1bb95: 0x6c0d6820, 0x1bb96: 0x6c5e2820, 0x1bb97: 0x6cfd3020,
-	0x1bb98: 0x6c917220, 0x1bb99: 0x6cbe2620, 0x1bb9a: 0x6c4f2c20, 0x1bb9b: 0x6d1cba20,
-	0x1bb9c: 0x6cc6d820, 0x1bb9d: 0x6c86f820, 0x1bb9e: 0x6c6eb420, 0x1bb9f: 0x6cff3a20,
-	0x1bba0: 0x6d1cbc20, 0x1bba1: 0x6cdc0e20, 0x1bba2: 0x6cf03c20, 0x1bba3: 0x6d025620,
-	0x1bba4: 0x6c57fc20, 0x1bba5: 0x6d097820, 0x1bba6: 0x6d39d420, 0x1bba7: 0x6c8fc620,
-	0x1bba8: 0x6c7f6a20, 0x1bba9: 0x6c337820, 0x1bbaa: 0x6c38de20, 0x1bbab: 0x6c55ee20,
-	0x1bbac: 0x6c7f6c20, 0x1bbad: 0x6cd63420, 0x1bbae: 0x6c8e3220, 0x1bbaf: 0x6d1cbe20,
-	0x1bbb0: 0x6c9ca020, 0x1bbb1: 0x6c62c820, 0x1bbb2: 0x6c892c20, 0x1bbb3: 0x6c66fe20,
-	0x1bbb4: 0x6d1cc620, 0x1bbb5: 0x6c3c0220, 0x1bbb6: 0x6c8c0020, 0x1bbb7: 0x6d192c20,
-	0x1bbb8: 0x6c653220, 0x1bbb9: 0x6d270a20, 0x1bbba: 0x6c155620, 0x1bbbb: 0x6c27a620,
-	0x1bbbc: 0x6cc4e620, 0x1bbbd: 0x6c661820, 0x1bbbe: 0x6c7fe820, 0x1bbbf: 0x6c38e020,
-	// Block 0x6ef, offset 0x1bbc0
-	0x1bbc0: 0x6cd6f420, 0x1bbc1: 0x6d252620, 0x1bbc2: 0x6d3dd420, 0x1bbc3: 0x6c3c8020,
-	0x1bbc4: 0x6ccf8c20, 0x1bbc5: 0x6c830220, 0x1bbc6: 0x6c7fea20, 0x1bbc7: 0x6c23c620,
-	0x1bbc8: 0x6cc20020, 0x1bbc9: 0x6d1dda20, 0x1bbca: 0x6cb9e020, 0x1bbcb: 0x6c383620,
-	0x1bbcc: 0x6c49b420, 0x1bbcd: 0x6cc41a20, 0x1bbce: 0x6d0f2220, 0x1bbcf: 0x6c507c20,
-	0x1bbd0: 0x6d1d7020, 0x1bbd1: 0x6cc95c20, 0x1bbd2: 0x6d29ba20, 0x1bbd3: 0x6c946020,
-	0x1bbd4: 0x6d0f0420, 0x1bbd5: 0x6c84a820, 0x1bbd6: 0x6c9d0e20, 0x1bbd7: 0x6ccde820,
-	0x1bbd8: 0x6cdfc620, 0x1bbd9: 0x6c293e20, 0x1bbda: 0x6c697620, 0x1bbdb: 0x6c161820,
-	0x1bbdc: 0x6d1d7220, 0x1bbdd: 0x6c508420, 0x1bbde: 0x6c03dc20, 0x1bbdf: 0x6d3a4220,
-	0x1bbe0: 0x6c805e20, 0x1bbe1: 0x6c800820, 0x1bbe2: 0x6ca47820, 0x1bbe3: 0x6cecac20,
-	0x1bbe4: 0x6c947020, 0x1bbe5: 0x6d0a5e20, 0x1bbe6: 0x6cfc6a20, 0x1bbe7: 0x6d0f2820,
-	0x1bbe8: 0x6c424820, 0x1bbe9: 0x6d0f3220, 0x1bbea: 0x6d24ac20, 0x1bbeb: 0x6c5d8420,
-	0x1bbec: 0x6c0be820, 0x1bbed: 0x6c9eca20, 0x1bbee: 0x6c49d220, 0x1bbef: 0x6c2a9a20,
-	0x1bbf0: 0x6c5a8620, 0x1bbf1: 0x6cfe7a20, 0x1bbf2: 0x6cfe7c20, 0x1bbf3: 0x6c5caa20,
-	0x1bbf4: 0x6c529620, 0x1bbf5: 0x6c8c9c20, 0x1bbf6: 0x6d2a6620, 0x1bbf7: 0x6d3bbe20,
-	0x1bbf8: 0x6c6faa20, 0x1bbf9: 0x6d2ca820, 0x1bbfa: 0x6d015820, 0x1bbfb: 0x6c1be420,
-	0x1bbfc: 0x6d3d2420, 0x1bbfd: 0x6d28f220, 0x1bbfe: 0x6d28f420, 0x1bbff: 0x6c11ec20,
-	// Block 0x6f0, offset 0x1bc00
-	0x1bc00: 0x6d0f8020, 0x1bc01: 0x6cb74820, 0x1bc02: 0x6d379c20, 0x1bc03: 0x6c3b5e20,
-	0x1bc04: 0x6ca98220, 0x1bc05: 0x6c6efa20, 0x1bc06: 0x6cf18220, 0x1bc07: 0x6cb36820,
-	0x1bc08: 0x6d16c420, 0x1bc09: 0x6c913c20, 0x1bc0a: 0x6c20b620, 0x1bc0b: 0x6caf4020,
-	0x1bc0c: 0x6c767e20, 0x1bc0d: 0x6caca420, 0x1bc0e: 0x6d0c6a20, 0x1bc0f: 0x6c768020,
-	0x1bc10: 0x6cad2620, 0x1bc11: 0x6ca26e20, 0x1bc12: 0x6c179020, 0x1bc13: 0x6c8a9220,
-	0x1bc14: 0x6c4b3420, 0x1bc15: 0x6c778220, 0x1bc16: 0x6c33dc20, 0x1bc17: 0x6c49d620,
-	0x1bc18: 0x6d02b820, 0x1bc19: 0x6d358c20, 0x1bc1a: 0x6c4a2e20, 0x1bc1b: 0x6c49d820,
-	0x1bc1c: 0x6cef9420, 0x1bc1d: 0x6cbb5420, 0x1bc1e: 0x6c0be420, 0x1bc1f: 0x6c268420,
-	0x1bc20: 0x6cf99820, 0x1bc21: 0x6d329a20, 0x1bc22: 0x6d39fc20, 0x1bc23: 0x6c785e20,
-	0x1bc24: 0x6d2fa220, 0x1bc25: 0x6c3e1420, 0x1bc26: 0x6c036e20, 0x1bc27: 0x6d017420,
-	0x1bc28: 0x6c34dc20, 0x1bc29: 0x6c8e1e20, 0x1bc2a: 0x6d3cf220, 0x1bc2b: 0x6d087a20,
-	0x1bc2c: 0x6c721420, 0x1bc2d: 0x6ce08e20, 0x1bc2e: 0x6cad8420, 0x1bc2f: 0x6c6f0220,
-	0x1bc30: 0x6cad5020, 0x1bc31: 0x6cdf1e20, 0x1bc32: 0x6cdf2020, 0x1bc33: 0x6c0dd220,
-	0x1bc34: 0x6d100c20, 0x1bc35: 0x6ce6f020, 0x1bc36: 0x6c4d9420, 0x1bc37: 0x6d3ac220,
-	0x1bc38: 0x6d2cb820, 0x1bc39: 0x6c2d0a20, 0x1bc3a: 0x6cf07a20, 0x1bc3b: 0x6cd25220,
-	0x1bc3c: 0x6c88e620, 0x1bc3d: 0x6c1bfc20, 0x1bc3e: 0x6c5a4a20, 0x1bc3f: 0x6d397820,
-	// Block 0x6f1, offset 0x1bc40
-	0x1bc40: 0x6c54ae20, 0x1bc41: 0x6cd77020, 0x1bc42: 0x6c806e20, 0x1bc43: 0x6ce63620,
-	0x1bc44: 0x6c68de20, 0x1bc45: 0x6d06a820, 0x1bc46: 0x6c525e20, 0x1bc47: 0x6cc35420,
-	0x1bc48: 0x6c8af020, 0x1bc49: 0x6c590820, 0x1bc4a: 0x6d0fa020, 0x1bc4b: 0x6d04c420,
-	0x1bc4c: 0x6d04c620, 0x1bc4d: 0x6cfbfe20, 0x1bc4e: 0x6d1a3020, 0x1bc4f: 0x6cf36020,
-	0x1bc50: 0x6d386620, 0x1bc51: 0x6d10e220, 0x1bc52: 0x6cd35020, 0x1bc53: 0x6cee6e20,
-	0x1bc54: 0x6ce73620, 0x1bc55: 0x6c9ece20, 0x1bc56: 0x6d28fe20, 0x1bc57: 0x6c768420,
-	0x1bc58: 0x6c529e20, 0x1bc59: 0x6c81d020, 0x1bc5a: 0x6cf9a820, 0x1bc5b: 0x6d3a0420,
-	0x1bc5c: 0x6d084a20, 0x1bc5d: 0x6d32a020, 0x1bc5e: 0x6cb37820, 0x1bc5f: 0x6d0be420,
-	0x1bc60: 0x6c5b2e20, 0x1bc61: 0x6c49e620, 0x1bc62: 0x6c180e20, 0x1bc63: 0x6c5aa420,
-	0x1bc64: 0x6c77a820, 0x1bc65: 0x6c194c20, 0x1bc66: 0x6c389020, 0x1bc67: 0x6cce6220,
-	0x1bc68: 0x6d12e220, 0x1bc69: 0x6c5bac20, 0x1bc6b: 0x6ce19a20,
-	0x1bc6c: 0x6c6cf220, 0x1bc6d: 0x6cc55020, 0x1bc6e: 0x6c8b9620, 0x1bc6f: 0x6cf5f220,
-	0x1bc70: 0x6c3e5420, 0x1bc71: 0x6c6f0a20, 0x1bc72: 0x6d019420, 0x1bc73: 0x6cb48a20,
-	0x1bc74: 0x6ce64220, 0x1bc75: 0x6d3d3c20, 0x1bc76: 0x6ce6c020, 0x1bc77: 0x6cecd420,
-	0x1bc78: 0x6c4d4020, 0x1bc79: 0x6cae6a20, 0x1bc7a: 0x6c80fc20, 0x1bc7b: 0x6d0e5220,
-	0x1bc7c: 0x6d06bc20, 0x1bc7d: 0x6c3c3e20, 0x1bc7e: 0x6c1c1020, 0x1bc7f: 0x6cc66820,
-	// Block 0x6f2, offset 0x1bc80
-	0x1bc80: 0x6c554620, 0x1bc81: 0x6cf5f420, 0x1bc82: 0x6cd4ce20, 0x1bc83: 0x6c51c420,
-	0x1bc84: 0x6d099620, 0x1bc85: 0x6c7a9220, 0x1bc86: 0x6c72e820, 0x1bc87: 0x6cfeb620,
-	0x1bc88: 0x6cf5f620, 0x1bc89: 0x6d0bfa20, 0x1bc8a: 0x6c4eb220, 0x1bc8b: 0x6d3c3c20,
-	0x1bc8c: 0x6c75b020, 0x1bc8d: 0x6c2c4220, 0x1bc8e: 0x6d019620, 0x1bc8f: 0x6c601c20,
-	0x1bc90: 0x6cf4e020, 0x1bc91: 0x6d0bfc20, 0x1bc92: 0x6c942c20, 0x1bc93: 0x6c4e0620,
-	0x1bc94: 0x6d0e6220, 0x1bc95: 0x6c591220, 0x1bc96: 0x6c9aee20, 0x1bc97: 0x6c711620,
-	0x1bc98: 0x6c2a1020, 0x1bc99: 0x6c072420, 0x1bc9a: 0x6c3b7a20, 0x1bc9b: 0x6c8c5220,
-	0x1bc9c: 0x6c7d6220, 0x1bc9d: 0x6c5d2820, 0x1bc9e: 0x6cea2220, 0x1bc9f: 0x6cf61620,
-	0x1bca0: 0x6c253e20, 0x1bca1: 0x6cf3c820, 0x1bca2: 0x6c52a820, 0x1bca3: 0x6c179c20,
-	0x1bca4: 0x6c3f6220, 0x1bca5: 0x6cf2f420, 0x1bca6: 0x6c684820, 0x1bca7: 0x6c231820,
-	0x1bca8: 0x6c3ce220, 0x1bca9: 0x6cb2a620, 0x1bcaa: 0x6cbf2620, 0x1bcab: 0x6cc91e20,
-	0x1bcac: 0x6cf61820, 0x1bcad: 0x6cbf2820, 0x1bcae: 0x6d033420, 0x1bcaf: 0x6c174420,
-	0x1bcb0: 0x6d0e7420, 0x1bcb1: 0x6d0e7620, 0x1bcb2: 0x6d17aa20, 0x1bcb3: 0x6c744e20,
-	0x1bcb4: 0x6d234620, 0x1bcb5: 0x6c42a820, 0x1bcb6: 0x6cc47820, 0x1bcb7: 0x6caff020,
-	0x1bcb8: 0x6d049420, 0x1bcb9: 0x6cee6420, 0x1bcba: 0x6cd10420, 0x1bcbb: 0x6c171420,
-	0x1bcbc: 0x6cce6e20, 0x1bcbd: 0x6d048420, 0x1bcbe: 0x6ca72420, 0x1bcbf: 0x6c44d020,
-	// Block 0x6f3, offset 0x1bcc0
-	0x1bcc0: 0x6cf13e20, 0x1bcc1: 0x6c18d420, 0x1bcc2: 0x6c51ce20, 0x1bcc3: 0x6c7cd220,
-	0x1bcc4: 0x6d37fe20, 0x1bcc5: 0x6c32cc20, 0x1bcc6: 0x6cf96a20, 0x1bcc7: 0x6c5ac620,
-	0x1bcc8: 0x6c3ce420, 0x1bcc9: 0x6c890620, 0x1bcca: 0x6d07a820, 0x1bccb: 0x6d037e20,
-	0x1bccc: 0x6c59d220, 0x1bccd: 0x6c690a20, 0x1bcce: 0x6c64b620, 0x1bccf: 0x6c09cc20,
-	0x1bcd0: 0x6d1bbc20, 0x1bcd1: 0x6d3a7020, 0x1bcd2: 0x6cefde20, 0x1bcd3: 0x6ce93620,
-	0x1bcd4: 0x6ccd4a20, 0x1bcd5: 0x6cf67020, 0x1bcd6: 0x6caa9620, 0x1bcd7: 0x6caa9820,
-	0x1bcd8: 0x6c150220, 0x1bcd9: 0x6d0c1220, 0x1bcda: 0x6c6f1020, 0x1bcdb: 0x6c6f2420,
-	0x1bcdc: 0x6d237020, 0x1bcdd: 0x6c9a9c20, 0x1bcde: 0x6ccbfc20, 0x1bcdf: 0x6cf0a620,
-	0x1bce0: 0x6d2c3820, 0x1bce1: 0x6d033620, 0x1bce2: 0x6cbf3e20, 0x1bce3: 0x6cc75020,
-	0x1bce4: 0x6c9a0c20, 0x1bce5: 0x6c593620, 0x1bce6: 0x6d06f420, 0x1bce7: 0x6d2fbe20,
-	0x1bce8: 0x6ceea020, 0x1bce9: 0x6c38a620, 0x1bcea: 0x6cc07620, 0x1bceb: 0x6cdc4a20,
-	0x1bcec: 0x6d0fc820, 0x1bced: 0x6c8b1620, 0x1bcee: 0x6d3a6e20, 0x1bcef: 0x6c6a2220,
-	0x1bcf0: 0x6c434e20, 0x1bcf1: 0x6c485c20, 0x1bcf2: 0x6c05b420, 0x1bcf3: 0x6c557020,
-	0x1bcf4: 0x6d275820, 0x1bcf5: 0x6cf96c20, 0x1bcf6: 0x6cd41a20, 0x1bcf7: 0x6c89ce20,
-	0x1bcf8: 0x6c0afa20, 0x1bcf9: 0x6c46c420, 0x1bcfa: 0x6cea0020, 0x1bcfb: 0x6ce11420,
-	0x1bcfc: 0x6c17a020, 0x1bcfd: 0x6cccfc20, 0x1bcfe: 0x6c371a20, 0x1bcff: 0x6c0f2a20,
-	// Block 0x6f4, offset 0x1bd00
-	0x1bd00: 0x6c5a5a20, 0x1bd01: 0x6d00ce20, 0x1bd02: 0x6cf8ae20, 0x1bd03: 0x6cf50e20,
-	0x1bd04: 0x6cf67220, 0x1bd05: 0x6d284220, 0x1bd06: 0x6c515a20, 0x1bd07: 0x6c51d220,
-	0x1bd08: 0x6cf67420, 0x1bd09: 0x6d27bc20, 0x1bd0a: 0x6d048020, 0x1bd0b: 0x6ca37e20,
-	0x1bd0c: 0x6ccd5020, 0x1bd0d: 0x6cbf8e20, 0x1bd0e: 0x6d121620, 0x1bd0f: 0x6d099e20,
-	0x1bd10: 0x6c9d6c20, 0x1bd11: 0x6c882420, 0x1bd12: 0x6d1c8820, 0x1bd13: 0x6cf45a20,
-	0x1bd14: 0x6cc69a20, 0x1bd15: 0x6c459e20, 0x1bd16: 0x6d0f3820, 0x1bd17: 0x6cbb5820,
-	0x1bd18: 0x6c8e3820, 0x1bd19: 0x6cf67620, 0x1bd1a: 0x6c09f820, 0x1bd1b: 0x6c0c1820,
-	0x1bd1c: 0x6c233e20, 0x1bd1d: 0x6c92a620, 0x1bd1e: 0x6c64d620, 0x1bd1f: 0x6cd53420,
-	0x1bd20: 0x6d185620, 0x1bd21: 0x6c90b220, 0x1bd22: 0x6caeb620, 0x1bd23: 0x6cdbd420,
-	0x1bd24: 0x6d185820, 0x1bd25: 0x6ce28e20, 0x1bd26: 0x6c749420, 0x1bd27: 0x6d3fb220,
-	0x1bd28: 0x6d284620, 0x1bd29: 0x6c56c020, 0x1bd2a: 0x6d154820, 0x1bd2b: 0x6d36b420,
-	0x1bd2c: 0x6c026220, 0x1bd2d: 0x6cf0bc20, 0x1bd2e: 0x6c8f1420, 0x1bd2f: 0x6c4efa20,
-	0x1bd30: 0x6cab4c20, 0x1bd31: 0x6cc55420, 0x1bd32: 0x6c6f2c20, 0x1bd33: 0x6c97fc20,
-	0x1bd34: 0x6c7de220, 0x1bd35: 0x6cce1820, 0x1bd36: 0x6c24b220, 0x1bd37: 0x6d2b9020,
-	0x1bd38: 0x6c64f620, 0x1bd39: 0x6cf6c620, 0x1bd3a: 0x6cf6c820, 0x1bd3b: 0x6cf6ca20,
-	0x1bd3c: 0x6d185a20, 0x1bd3d: 0x6d000c20, 0x1bd3e: 0x6c1c6e20, 0x1bd3f: 0x6c59ea20,
-	// Block 0x6f5, offset 0x1bd40
-	0x1bd40: 0x6c15e420, 0x1bd41: 0x6d131820, 0x1bd42: 0x6ce01020, 0x1bd43: 0x6cc48820,
-	0x1bd44: 0x6d0ec020, 0x1bd45: 0x6cfb9420, 0x1bd46: 0x6cbbae20, 0x1bd47: 0x6c75e820,
-	0x1bd48: 0x6c2aaa20, 0x1bd49: 0x6c340a20, 0x1bd4a: 0x6cd01820, 0x1bd4b: 0x6c687a20,
-	0x1bd4c: 0x6c3b9620, 0x1bd4d: 0x6cd82a20, 0x1bd4e: 0x6c8a1a20, 0x1bd4f: 0x6d23ee20,
-	0x1bd50: 0x6c8bde20, 0x1bd51: 0x6ce78a20, 0x1bd52: 0x6cce8420, 0x1bd53: 0x6c3b4620,
-	0x1bd54: 0x6c38bc20, 0x1bd55: 0x6d0ec220, 0x1bd56: 0x6d0a3e20, 0x1bd57: 0x6c807620,
-	0x1bd58: 0x6c9a6a20, 0x1bd59: 0x6ce1a220, 0x1bd5a: 0x6d18a220, 0x1bd5b: 0x6c6e3020,
-	0x1bd5c: 0x6c9afc20, 0x1bd5d: 0x6c6ecc20, 0x1bd5e: 0x6c694420, 0x1bd5f: 0x6d1c9a20,
-	0x1bd60: 0x6d23f020, 0x1bd61: 0x6d18ca20, 0x1bd62: 0x6d091e20, 0x1bd63: 0x6c7fc020,
-	0x1bd64: 0x6cdf8020, 0x1bd65: 0x6d2a9220, 0x1bd66: 0x6c120c20, 0x1bd67: 0x6cdc7420,
-	0x1bd68: 0x6cf6ea20, 0x1bd69: 0x6cc40220, 0x1bd6a: 0x6c235420, 0x1bd6b: 0x6c886220,
-	0x1bd6c: 0x6c5b6e20, 0x1bd6d: 0x6d3a2c20, 0x1bd6e: 0x6d022c20, 0x1bd6f: 0x6c8d6e20,
-	0x1bd70: 0x6ceec020, 0x1bd71: 0x6d18cc20, 0x1bd72: 0x6d00fc20, 0x1bd73: 0x6d2fe220,
-	0x1bd74: 0x6c5c5220, 0x1bd75: 0x6c270020, 0x1bd76: 0x6ca9ce20, 0x1bd77: 0x6c7fc220,
-	0x1bd78: 0x6cc7de20, 0x1bd79: 0x6cfc3a20, 0x1bd7a: 0x6c77b620, 0x1bd7b: 0x6d09ba20,
-	0x1bd7c: 0x6c6d6620, 0x1bd7d: 0x6c1df820, 0x1bd7e: 0x6c2a3a20, 0x1bd7f: 0x6d123020,
-	// Block 0x6f6, offset 0x1bd80
-	0x1bd80: 0x6c51fc20, 0x1bd81: 0x6c807e20, 0x1bd82: 0x6c0c4220, 0x1bd83: 0x6cc6ce20,
-	0x1bd84: 0x6c86d020, 0x1bd85: 0x6ca18220, 0x1bd86: 0x6c067820, 0x1bd87: 0x6cc93220,
-	0x1bd88: 0x6c941420, 0x1bd89: 0x6c7ea620, 0x1bd8a: 0x6c023620, 0x1bd8b: 0x6d0ab020,
-	0x1bd8c: 0x6c7c1020, 0x1bd8d: 0x6cd7aa20, 0x1bd8e: 0x6c8ab420, 0x1bd8f: 0x6c872020,
-	0x1bd90: 0x6c918420, 0x1bd91: 0x6c74ea20, 0x1bd92: 0x6c8a8620, 0x1bd93: 0x6d0efa20,
-	0x1bd94: 0x6cf73a20, 0x1bd95: 0x6d025a20, 0x1bd96: 0x6c8fde20, 0x1bd97: 0x6d136e20,
-	0x1bd98: 0x6c121a20, 0x1bd99: 0x6cc50c20, 0x1bd9a: 0x6d271420, 0x1bd9b: 0x6c808820,
-	0x1bd9c: 0x6c23ce20, 0x1bd9d: 0x6c750c20, 0x1bd9e: 0x6c1d3220, 0x1bd9f: 0x6c49b620,
-	0x1bda0: 0x6c72d620, 0x1bda1: 0x6c185620, 0x1bda2: 0x6c9cba20, 0x1bda3: 0x6ce19220,
-	0x1bda4: 0x6c809220, 0x1bda5: 0x6d3a4820, 0x1bda6: 0x6c809a20, 0x1bda7: 0x6c8dda20,
-	0x1bda8: 0x6c24c420, 0x1bda9: 0x6d24b220, 0x1bdaa: 0x6d2f8020, 0x1bdab: 0x6d2ff420,
-	0x1bdac: 0x6cabd220, 0x1bdad: 0x6d328c20, 0x1bdae: 0x6cad5220, 0x1bdaf: 0x6c195820,
-	0x1bdb0: 0x6d254620, 0x1bdb1: 0x6c009620, 0x1bdb2: 0x6cf09c20, 0x1bdb3: 0x6c4f4420,
-	0x1bdb4: 0x6c749620, 0x1bdb5: 0x6c74c820, 0x1bdb6: 0x6c3fa020, 0x1bdb7: 0x6d13b020,
-	0x1bdb8: 0x6c03aa20, 0x1bdb9: 0x6c2e5620, 0x1bdba: 0x6d13b420, 0x1bdbb: 0x6d10c620,
-	0x1bdbc: 0x6d411020, 0x1bdbd: 0x6cd6d020, 0x1bdbe: 0x6c379e20, 0x1bdbf: 0x6cac5020,
-	// Block 0x6f7, offset 0x1bdc0
-	0x1bdc0: 0x6c206e20, 0x1bdc1: 0x6c77e220, 0x1bdc2: 0x6d29d420, 0x1bdc3: 0x6c2ec020,
-	0x1bdc4: 0x6cbace20, 0x1bdc5: 0x6d1dfc20, 0x1bdc6: 0x6cbb2a20, 0x1bdc7: 0x6cb14420,
-	0x1bdc8: 0x6c04be20, 0x1bdc9: 0x6cacac20, 0x1bdca: 0x6c175a20, 0x1bdcb: 0x6c64a020,
-	0x1bdcc: 0x6cac0020, 0x1bdcd: 0x6c31a020, 0x1bdce: 0x6c205420, 0x1bdcf: 0x6d215a20,
-	0x1bdd0: 0x6d2c3a20, 0x1bdd1: 0x6c0afc20, 0x1bdd2: 0x6c2ec220, 0x1bdd3: 0x6c055420,
-	0x1bdd4: 0x6c0f2c20, 0x1bdd5: 0x6c205a20, 0x1bdd6: 0x6d1fea20, 0x1bdd7: 0x6d206e20,
-	0x1bdd8: 0x6c31d620, 0x1bdd9: 0x6d0b0820, 0x1bdda: 0x6c197220, 0x1bddb: 0x6ca96620,
-	0x1bddc: 0x6ca9ac20, 0x1bddd: 0x6cb24020, 0x1bdde: 0x6c6f4c20, 0x1bddf: 0x6ca1be20,
-	0x1bde0: 0x6cdde020, 0x1bde1: 0x6ca22420, 0x1bde2: 0x6c814220, 0x1bde3: 0x6cc5c420,
-	0x1bde4: 0x6c981a20, 0x1bde5: 0x6c398a20, 0x1bde6: 0x6c98ca20, 0x1bde7: 0x6ca27020,
-	0x1bde8: 0x6c426020, 0x1bde9: 0x6cf4b820, 0x1bdea: 0x6d0e4020, 0x1bdeb: 0x6c437420,
-	0x1bdec: 0x6c06ec20, 0x1bded: 0x6cd8a020, 0x1bdee: 0x6c665e20, 0x1bdef: 0x6c476620,
-	0x1bdf0: 0x6d202c20, 0x1bdf1: 0x6c437e20, 0x1bdf2: 0x6cd0f220, 0x1bdf3: 0x6ca23020,
-	0x1bdf4: 0x6c2be620, 0x1bdf5: 0x6cb8be20, 0x1bdf6: 0x6cc37020, 0x1bdf7: 0x6cc2cc20,
-	0x1bdf8: 0x6d3f4020, 0x1bdf9: 0x6ce27020, 0x1bdfa: 0x6cf5c420, 0x1bdfb: 0x6c985620,
-	0x1bdfc: 0x6c793820, 0x1bdfd: 0x6cb8d820, 0x1bdfe: 0x6cf44620, 0x1bdff: 0x6c481220,
-	// Block 0x6f8, offset 0x1be00
-	0x1be00: 0x6cf61a20, 0x1be01: 0x6c83c220, 0x1be02: 0x6c83da20, 0x1be03: 0x6cb3f420,
-	0x1be04: 0x6c5ed420, 0x1be05: 0x6c428220, 0x1be06: 0x6d346420, 0x1be07: 0x6c078820,
-	0x1be08: 0x6cc2f220, 0x1be09: 0x6c214e20, 0x1be0a: 0x6c31a220, 0x1be0b: 0x6c724a20,
-	0x1be0c: 0x6c636e20, 0x1be0d: 0x6c64a220, 0x1be0e: 0x6c3c5620, 0x1be0f: 0x6cb0f820,
-	0x1be10: 0x6c780820, 0x1be11: 0x6c713020, 0x1be12: 0x6c77c220, 0x1be13: 0x6c1e9c20,
-	0x1be14: 0x6cf8b220, 0x1be15: 0x6c074020, 0x1be16: 0x6c961820, 0x1be17: 0x6c6bf220,
-	0x1be18: 0x6c967220, 0x1be19: 0x6cca0820, 0x1be1a: 0x6cf0be20, 0x1be1b: 0x6c98fc20,
-	0x1be1c: 0x6c33b020, 0x1be1d: 0x6ce78c20, 0x1be1e: 0x6cbc7620, 0x1be1f: 0x6c67fc20,
-	0x1be20: 0x6cf94820, 0x1be21: 0x6c86d220, 0x1be22: 0x6c31d820, 0x1be23: 0x6c8b5e20,
-	0x1be24: 0x6cac1020, 0x1be25: 0x6cb16e20, 0x1be26: 0x6c0fa620, 0x1be27: 0x6cf73c20,
-	0x1be28: 0x6c1d8620, 0x1be29: 0x6cef6820, 0x1be2a: 0x6c7cc220, 0x1be2b: 0x6c1d8a20,
-	0x1be2c: 0x6cc34c20, 0x1be2d: 0x6cc38020, 0x1be2e: 0x6c035e20, 0x1be2f: 0x6c391620,
-	0x1be30: 0x6cbff420, 0x1be31: 0x6c611c20, 0x1be32: 0x6c110420, 0x1be33: 0x6d3d2220,
-	0x1be34: 0x6c019c20, 0x1be35: 0x6c436820, 0x1be36: 0x6d3c3020, 0x1be37: 0x6c4a0620,
-	0x1be38: 0x6c96b020, 0x1be39: 0x6d1eee20, 0x1be3a: 0x6c778020, 0x1be3b: 0x6c0eae20,
-	0x1be3c: 0x6c544a20, 0x1be3d: 0x6d0b7620, 0x1be3e: 0x6d1a2820, 0x1be3f: 0x6c582620,
-	// Block 0x6f9, offset 0x1be40
-	0x1be40: 0x6d3c3420, 0x1be41: 0x6d27da20, 0x1be42: 0x6c7bba20, 0x1be43: 0x6ca97a20,
-	0x1be44: 0x6c2b5420, 0x1be45: 0x6cbe2e20, 0x1be46: 0x6d381420, 0x1be47: 0x6ca26a20,
-	0x1be48: 0x6c06d820, 0x1be49: 0x6caf4220, 0x1be4a: 0x6c70fc20, 0x1be4b: 0x6d147420,
-	0x1be4c: 0x6cd0e420, 0x1be4d: 0x6cad4e20, 0x1be4e: 0x6cf98e20, 0x1be4f: 0x6ceaf220,
-	0x1be50: 0x6c552620, 0x1be51: 0x6c8cae20, 0x1be52: 0x6c3a8a20, 0x1be53: 0x6cafbe20,
-	0x1be54: 0x6ca62a20, 0x1be55: 0x6d119020, 0x1be56: 0x6d201a20, 0x1be57: 0x6c467020,
-	0x1be58: 0x6d094620, 0x1be59: 0x6c705e20, 0x1be5a: 0x6c286a20, 0x1be5b: 0x6c0eb820,
-	0x1be5c: 0x6c7a7420, 0x1be5d: 0x6cfbe820, 0x1be5e: 0x6ca8f820, 0x1be5f: 0x6c586620,
-	0x1be60: 0x6c523c20, 0x1be61: 0x6c68d420, 0x1be62: 0x6c50dc20, 0x1be63: 0x6d2fa420,
-	0x1be64: 0x6c5ff620, 0x1be65: 0x6d0a7220, 0x1be66: 0x6cccd220, 0x1be67: 0x6cde3820,
-	0x1be68: 0x6cc65820, 0x1be69: 0x6cd45620, 0x1be6a: 0x6ce72820, 0x1be6b: 0x6c81a820,
-	0x1be6c: 0x6c318a20, 0x1be6d: 0x6cf99c20, 0x1be6e: 0x6cd1ae20, 0x1be6f: 0x6c7b1a20,
-	0x1be70: 0x6d329c20, 0x1be71: 0x6d22e420, 0x1be72: 0x6cdccc20, 0x1be73: 0x6d20f420,
-	0x1be74: 0x6c096220, 0x1be75: 0x6c985420, 0x1be76: 0x6cf5c620, 0x1be77: 0x6c734c20,
-	0x1be78: 0x6c87e020, 0x1be79: 0x6cf9aa20, 0x1be7a: 0x6d1a4820, 0x1be7b: 0x6cdb7e20,
-	0x1be7c: 0x6c80ae20, 0x1be7d: 0x6c070220, 0x1be7e: 0x6d35c020, 0x1be7f: 0x6d0c7420,
-	// Block 0x6fa, offset 0x1be80
-	0x1be80: 0x6ccbdc20, 0x1be81: 0x6c85d220, 0x1be82: 0x6c4e9e20, 0x1be83: 0x6cfc0020,
-	0x1be84: 0x6c6dae20, 0x1be85: 0x6cabfc20, 0x1be86: 0x6c3a0620, 0x1be87: 0x6cfeb820,
-	0x1be88: 0x6c044220, 0x1be89: 0x6cb5cc20, 0x1be8a: 0x6ca5da20, 0x1be8b: 0x6c0bfc20,
-	0x1be8c: 0x6d1b5620, 0x1be8d: 0x6c7efe20, 0x1be8e: 0x6c8b0220, 0x1be8f: 0x6c648820,
-	0x1be90: 0x6cbaac20, 0x1be91: 0x6c7d5a20, 0x1be92: 0x6d0c0a20, 0x1be93: 0x6c4cba20,
-	0x1be94: 0x6d402020, 0x1be95: 0x6c9c4820, 0x1be96: 0x6c166820, 0x1be97: 0x6d13e620,
-	0x1be98: 0x6d35e820, 0x1be99: 0x6d32b420, 0x1be9a: 0x6d0b2c20, 0x1be9b: 0x6c9bce20,
-	0x1be9c: 0x6c10f820, 0x1be9d: 0x6c243620, 0x1be9e: 0x6cceec20, 0x1be9f: 0x6c8b9820,
-	0x1bea0: 0x6c2d1620, 0x1bea1: 0x6c953e20, 0x1bea2: 0x6c556020, 0x1bea3: 0x6d3f9020,
-	0x1bea4: 0x6c4b4620, 0x1bea5: 0x6cefc820, 0x1bea6: 0x6c3c4c20, 0x1bea7: 0x6cf28c20,
-	0x1bea8: 0x6d256620, 0x1bea9: 0x6d037420, 0x1beaa: 0x6d399820, 0x1beab: 0x6c98ba20,
-	0x1beac: 0x6cf14020, 0x1bead: 0x6c1fe420, 0x1beae: 0x6cfcce20, 0x1beaf: 0x6ce93420,
-	0x1beb0: 0x6d0bb220, 0x1beb1: 0x6ca4ac20, 0x1beb2: 0x6d004220, 0x1beb3: 0x6c636020,
-	0x1beb4: 0x6c540620, 0x1beb5: 0x6c0af420, 0x1beb6: 0x6d1f3a20, 0x1beb7: 0x6d1f4820,
-	0x1beb8: 0x6c9a0020, 0x1beb9: 0x6c13e420, 0x1beba: 0x6d111420, 0x1bebb: 0x6cdcd620,
-	0x1bebc: 0x6c0f1420, 0x1bebd: 0x6ca00820, 0x1bebe: 0x6c574020, 0x1bebf: 0x6d258620,
-	// Block 0x6fb, offset 0x1bec0
-	0x1bec0: 0x6cd9b420, 0x1bec1: 0x6c96c420, 0x1bec2: 0x6d258820, 0x1bec3: 0x6c270c20,
-	0x1bec4: 0x6d239220, 0x1bec5: 0x6cd1d220, 0x1bec6: 0x6c4fcc20, 0x1bec7: 0x6cbb6420,
-	0x1bec8: 0x6d17ea20, 0x1bec9: 0x6d316a20, 0x1beca: 0x6c123420, 0x1becb: 0x6c4fe220,
-	0x1becc: 0x6c97ee20, 0x1becd: 0x6c6e9620, 0x1bece: 0x6c67b820, 0x1becf: 0x6ca12e20,
-	0x1bed0: 0x6d2ecc20, 0x1bed1: 0x6c150a20, 0x1bed2: 0x6c026420, 0x1bed3: 0x6c025420,
-	0x1bed4: 0x6c4fd420, 0x1bed5: 0x6c24e020, 0x1bed6: 0x6c07c420, 0x1bed7: 0x6c749820,
-	0x1bed8: 0x6c0a2c20, 0x1bed9: 0x6c09fe20, 0x1beda: 0x6c59dc20, 0x1bedb: 0x6cb44a20,
-	0x1bedc: 0x6c8bd020, 0x1bedd: 0x6d072620, 0x1bede: 0x6ce77e20, 0x1bedf: 0x6d121e20,
-	0x1bee0: 0x6c8a1220, 0x1bee1: 0x6cd79020, 0x1bee2: 0x6cff0620, 0x1bee3: 0x6cd49020,
-	0x1bee4: 0x6c33a820, 0x1bee5: 0x6c69c620, 0x1bee6: 0x6c442020, 0x1bee7: 0x6c739020,
-	0x1bee8: 0x6c31b420, 0x1bee9: 0x6c5c3820, 0x1beea: 0x6c7b3e20, 0x1beeb: 0x6cfc2c20,
-	0x1beec: 0x6d021820, 0x1beed: 0x6cde1820, 0x1beee: 0x6cfc3220, 0x1beef: 0x6d09b020,
-	0x1bef0: 0x6ca92620, 0x1bef1: 0x6cb21820, 0x1bef2: 0x6c5dfc20, 0x1bef3: 0x6caa2a20,
-	0x1bef4: 0x6c9be620, 0x1bef5: 0x6c8b5420, 0x1bef6: 0x6ca51e20, 0x1bef7: 0x6c4a0c20,
-	0x1bef8: 0x6cd48420, 0x1bef9: 0x6c917420, 0x1befa: 0x6cde2020, 0x1befb: 0x6cfd3c20,
-	0x1befc: 0x6c9ca220, 0x1befd: 0x6cc4e820, 0x1befe: 0x6c584020, 0x1beff: 0x6ca52820,
-	// Block 0x6fc, offset 0x1bf00
-	0x1bf00: 0x6c957820, 0x1bf01: 0x6cfc5420, 0x1bf02: 0x6cb6ac20, 0x1bf03: 0x6c751e20,
-	0x1bf04: 0x6d07fa20, 0x1bf05: 0x6c9eae20, 0x1bf06: 0x6d3e1a20, 0x1bf07: 0x6c93d620,
-	0x1bf08: 0x6c914c20, 0x1bf09: 0x6d22b820, 0x1bf0a: 0x6cda7a20, 0x1bf0b: 0x6cedda20,
-	0x1bf0c: 0x6cbff620, 0x1bf0d: 0x6c40d220, 0x1bf0e: 0x6c2f4c20, 0x1bf0f: 0x6c821620,
-	0x1bf10: 0x6c031620, 0x1bf11: 0x6c5e7c20, 0x1bf12: 0x6c52fa20, 0x1bf13: 0x6c2c1a20,
-	0x1bf14: 0x6c202e20, 0x1bf15: 0x6c416c20, 0x1bf16: 0x6c6fac20, 0x1bf17: 0x6d20be20,
-	0x1bf18: 0x6cb6d820, 0x1bf19: 0x6d20c020, 0x1bf1a: 0x6c170620, 0x1bf1b: 0x6c969020,
-	0x1bf1c: 0x6c456420, 0x1bf1d: 0x6cf43020, 0x1bf1e: 0x6c3d4220, 0x1bf1f: 0x6cf18420,
-	0x1bf20: 0x6c6bc620, 0x1bf21: 0x6d0b1a20, 0x1bf22: 0x6c0d2620, 0x1bf23: 0x6c0b8020,
-	0x1bf24: 0x6c056220, 0x1bf25: 0x6d268820, 0x1bf26: 0x6c73f220, 0x1bf27: 0x6c9ac220,
-	0x1bf28: 0x6c73f420, 0x1bf29: 0x6cecca20, 0x1bf2a: 0x6c646e20, 0x1bf2b: 0x6c99da20,
-	0x1bf2c: 0x6c282420, 0x1bf2d: 0x6cb20420, 0x1bf2e: 0x6cef9620, 0x1bf2f: 0x6c585820,
-	0x1bf30: 0x6cfc8020, 0x1bf31: 0x6cbaa820, 0x1bf32: 0x6c8cbe20, 0x1bf33: 0x6c274a20,
-	0x1bf34: 0x6d16fc20, 0x1bf35: 0x6c016820, 0x1bf36: 0x6cb28820, 0x1bf37: 0x6c2d4620,
-	0x1bf38: 0x6c3e1620, 0x1bf39: 0x6d080220, 0x1bf3a: 0x6cf7da20, 0x1bf3b: 0x6c0e5820,
-	0x1bf3c: 0x6c229420, 0x1bf3d: 0x6c467820, 0x1bf3e: 0x6c640620, 0x1bf3f: 0x6cce9e20,
-	// Block 0x6fd, offset 0x1bf40
-	0x1bf40: 0x6cb37220, 0x1bf41: 0x6c222220, 0x1bf42: 0x6c77e420, 0x1bf43: 0x6cc4bc20,
-	0x1bf44: 0x6cd0f420, 0x1bf45: 0x6ccfbe20, 0x1bf46: 0x6d14a820, 0x1bf47: 0x6d411220,
-	0x1bf48: 0x6c633c20, 0x1bf49: 0x6c9f3a20, 0x1bf4a: 0x6cccd420, 0x1bf4b: 0x6c8efe20,
-	0x1bf4c: 0x6c095020, 0x1bf4d: 0x6d312c20, 0x1bf4e: 0x6d312e20, 0x1bf4f: 0x6c73fc20,
-	0x1bf50: 0x6c383820, 0x1bf51: 0x6c8f7820, 0x1bf52: 0x6c6c3e20, 0x1bf53: 0x6c698e20,
-	0x1bf54: 0x6c667020, 0x1bf55: 0x6c85d420, 0x1bf56: 0x6c4a1e20, 0x1bf57: 0x6cfa9220,
-	0x1bf58: 0x6d386820, 0x1bf59: 0x6c45e420, 0x1bf5a: 0x6d0be820, 0x1bf5b: 0x6d053420,
-	0x1bf5c: 0x6d0fa420, 0x1bf5d: 0x6d063620, 0x1bf5e: 0x6c95f620, 0x1bf5f: 0x6cda9020,
-	0x1bf60: 0x6d399420, 0x1bf61: 0x6cbd6420, 0x1bf62: 0x6d1a4a20, 0x1bf63: 0x6d09fe20,
-	0x1bf64: 0x6c05f620, 0x1bf65: 0x6c379220, 0x1bf66: 0x6cfe2a20, 0x1bf67: 0x6d10e420,
-	0x1bf68: 0x6cf9ac20, 0x1bf69: 0x6c4f6620, 0x1bf6a: 0x6c4a4a20, 0x1bf6b: 0x6c1cba20,
-	0x1bf6c: 0x6d06ac20, 0x1bf6d: 0x6c047820, 0x1bf6e: 0x6cae1620, 0x1bf6f: 0x6c81f020,
-	0x1bf70: 0x6c28fa20, 0x1bf71: 0x6d1d6420, 0x1bf72: 0x6c5aa620, 0x1bf73: 0x6cf19220,
-	0x1bf74: 0x6c355c20, 0x1bf75: 0x6c19e820, 0x1bf76: 0x6c2c4420, 0x1bf77: 0x6cf44c20,
-	0x1bf78: 0x6cf3c420, 0x1bf79: 0x6c19e020, 0x1bf7a: 0x6c75b220, 0x1bf7b: 0x6c99ee20,
-	0x1bf7c: 0x6c071220, 0x1bf7d: 0x6ce6c220, 0x1bf7e: 0x6cfcb420, 0x1bf7f: 0x6c1f3220,
-	// Block 0x6fe, offset 0x1bf80
-	0x1bf80: 0x6c4e0820, 0x1bf81: 0x6d081220, 0x1bf82: 0x6d0c8820, 0x1bf83: 0x6cc05020,
-	0x1bf84: 0x6d088a20, 0x1bf85: 0x6c80be20, 0x1bf86: 0x6c851420, 0x1bf87: 0x6d053c20,
-	0x1bf88: 0x6c3e5620, 0x1bf89: 0x6c8e5020, 0x1bf8a: 0x6d0b1e20, 0x1bf8b: 0x6cf5f820,
-	0x1bf8c: 0x6c8cec20, 0x1bf8d: 0x6c83c420, 0x1bf8e: 0x6c6d0420, 0x1bf8f: 0x6c88b620,
-	0x1bf90: 0x6cdd6020, 0x1bf91: 0x6cddd620, 0x1bf92: 0x6c3cfe20, 0x1bf93: 0x6cecd620,
-	0x1bf94: 0x6c2d5a20, 0x1bf95: 0x6cb20c20, 0x1bf96: 0x6d2df020, 0x1bf97: 0x6ccb2c20,
-	0x1bf98: 0x6c9f5620, 0x1bf99: 0x6d234820, 0x1bf9a: 0x6c709420, 0x1bf9b: 0x6c186820,
-	0x1bf9c: 0x6c7f0a20, 0x1bf9d: 0x6cf19620, 0x1bf9e: 0x6cd16c20, 0x1bf9f: 0x6cef1420,
-	0x1bfa0: 0x6ce4f620, 0x1bfa1: 0x6c1f4020, 0x1bfa2: 0x6d423c20, 0x1bfa3: 0x6c081e20,
-	0x1bfa4: 0x6c196020, 0x1bfa5: 0x6c562220, 0x1bfa6: 0x6cb5ea20, 0x1bfa7: 0x6c365e20,
-	0x1bfa8: 0x6c7d6420, 0x1bfa9: 0x6c167020, 0x1bfaa: 0x6cb5ec20, 0x1bfab: 0x6c082020,
-	0x1bfac: 0x6ced2020, 0x1bfad: 0x6c925620, 0x1bfae: 0x6c239e20, 0x1bfaf: 0x6c495220,
-	0x1bfb0: 0x6d0d9020, 0x1bfb1: 0x6c2dca20, 0x1bfb2: 0x6c072620, 0x1bfb3: 0x6c8bb620,
-	0x1bfb4: 0x6cbd7220, 0x1bfb5: 0x6caff220, 0x1bfb6: 0x6cabd620, 0x1bfb7: 0x6cc3b820,
-	0x1bfb8: 0x6d3d6220, 0x1bfb9: 0x6cbd7420, 0x1bfba: 0x6c383c20, 0x1bfbb: 0x6c6d8020,
-	0x1bfbc: 0x6cbf2a20, 0x1bfbd: 0x6c321a20, 0x1bfbe: 0x6c6bec20, 0x1bfbf: 0x6c5cf220,
-	// Block 0x6ff, offset 0x1bfc0
-	0x1bfc0: 0x6d226c20, 0x1bfc1: 0x6c999820, 0x1bfc2: 0x6c9a1020, 0x1bfc3: 0x6c210e20,
-	0x1bfc4: 0x6d07aa20, 0x1bfc5: 0x6ce34a20, 0x1bfc6: 0x6d038020, 0x1bfc7: 0x6c277a20,
-	0x1bfc8: 0x6cc75220, 0x1bfc9: 0x6c9f6020, 0x1bfca: 0x6c64b820, 0x1bfcb: 0x6cefe020,
-	0x1bfcc: 0x6cc86620, 0x1bfcd: 0x6c593820, 0x1bfce: 0x6d00be20, 0x1bfcf: 0x6c1fe820,
-	0x1bfd0: 0x6c65ae20, 0x1bfd1: 0x6d3bce20, 0x1bfd2: 0x6c171620, 0x1bfd3: 0x6c890a20,
-	0x1bfd4: 0x6cc2fe20, 0x1bfd5: 0x6cf9d420, 0x1bfd6: 0x6c32ce20, 0x1bfd7: 0x6d262220,
-	0x1bfd8: 0x6d0b2e20, 0x1bfd9: 0x6ca50220, 0x1bfda: 0x6c557220, 0x1bfdb: 0x6d1bbe20,
-	0x1bfdc: 0x6d215e20, 0x1bfdd: 0x6c59d620, 0x1bfde: 0x6cc8d420, 0x1bfdf: 0x6ccb3020,
-	0x1bfe0: 0x6c8e7c20, 0x1bfe1: 0x6cd1de20, 0x1bfe2: 0x6cc69e20, 0x1bfe3: 0x6cdd8220,
-	0x1bfe4: 0x6d112620, 0x1bfe5: 0x6cf15c20, 0x1bfe6: 0x6cf45c20, 0x1bfe7: 0x6d317e20,
-	0x1bfe8: 0x6c6d2a20, 0x1bfe9: 0x6d1c8a20, 0x1bfea: 0x6c969e20, 0x1bfeb: 0x6ce1dc20,
-	0x1bfec: 0x6c8e8220, 0x1bfed: 0x6ce11820, 0x1bfee: 0x6c864e20, 0x1bfef: 0x6c80c420,
-	0x1bff0: 0x6c4a7020, 0x1bff1: 0x6d325020, 0x1bff2: 0x6cbad020, 0x1bff3: 0x6c25be20,
-	0x1bff4: 0x6c748020, 0x1bff5: 0x6d2f8e20, 0x1bff6: 0x6d112820, 0x1bff7: 0x6c00bc20,
-	0x1bff8: 0x6c0d4620, 0x1bff9: 0x6cd4f620, 0x1bffa: 0x6c16c020, 0x1bffb: 0x6c7d8020,
-	0x1bffc: 0x6d3b8820, 0x1bffd: 0x6c234020, 0x1bffe: 0x6c6cb020, 0x1bfff: 0x6d141620,
-	// Block 0x700, offset 0x1c000
-	0x1c000: 0x6c250020, 0x1c001: 0x6c234220, 0x1c002: 0x6cb63820, 0x1c003: 0x6c841a20,
-	0x1c004: 0x6d1d0820, 0x1c005: 0x6cdd8a20, 0x1c006: 0x6cc08c20, 0x1c007: 0x6d082020,
-	0x1c008: 0x6c026620, 0x1c009: 0x6c88c420, 0x1c00a: 0x6c9ad420, 0x1c00b: 0x6d2eda20,
-	0x1c00c: 0x6d1a9620, 0x1c00d: 0x6c57e220, 0x1c00e: 0x6d1be620, 0x1c00f: 0x6cf0ce20,
-	0x1c010: 0x6c92e620, 0x1c011: 0x6cf3ec20, 0x1c012: 0x6c2aac20, 0x1c013: 0x6d054820,
-	0x1c014: 0x6d2b9420, 0x1c015: 0x6d0a4220, 0x1c016: 0x6cc1b420, 0x1c017: 0x6c299420,
-	0x1c018: 0x6c8be020, 0x1c019: 0x6c8a1c20, 0x1c01a: 0x6cbf6220, 0x1c01b: 0x6cdb3420,
-	0x1c01c: 0x6c59ec20, 0x1c01d: 0x6c4a8c20, 0x1c01e: 0x6cb45220, 0x1c01f: 0x6c6e3220,
-	0x1c020: 0x6c38be20, 0x1c021: 0x6c6d4220, 0x1c022: 0x6c8e9820, 0x1c023: 0x6c5f3620,
-	0x1c024: 0x6c5cae20, 0x1c025: 0x6c6e3420, 0x1c026: 0x6c00e220, 0x1c027: 0x6c0a8e20,
-	0x1c028: 0x6c120e20, 0x1c029: 0x6cc1d820, 0x1c02a: 0x6d2a5820, 0x1c02b: 0x6c290c20,
-	0x1c02c: 0x6c694c20, 0x1c02d: 0x6c4c0420, 0x1c02e: 0x6ce07e20, 0x1c02f: 0x6c5c5420,
-	0x1c030: 0x6c58a620, 0x1c031: 0x6ccb7020, 0x1c032: 0x6cdc7620, 0x1c033: 0x6ce4c620,
-	0x1c034: 0x6c1f9a20, 0x1c035: 0x6d21b820, 0x1c036: 0x6c6d6820, 0x1c037: 0x6c917620,
-	0x1c038: 0x6c0d6020, 0x1c039: 0x6cd54220, 0x1c03a: 0x6cf21820, 0x1c03b: 0x6d41a220,
-	0x1c03c: 0x6c7fd020, 0x1c03d: 0x6cf82020, 0x1c03e: 0x6d3ea820, 0x1c03f: 0x6d083020,
-	// Block 0x701, offset 0x1c040
-	0x1c040: 0x6cc88420, 0x1c041: 0x6cf31e20, 0x1c042: 0x6c415820, 0x1c043: 0x6c827220,
-	0x1c044: 0x6c31da20, 0x1c045: 0x6c86fe20, 0x1c046: 0x6d374020, 0x1c047: 0x6cc76a20,
-	0x1c048: 0x6c848e20, 0x1c049: 0x6d29ac20, 0x1c04a: 0x6cbf7620, 0x1c04b: 0x6ce43a20,
-	0x1c04c: 0x6c4aa420, 0x1c04d: 0x6cdc0020, 0x1c04e: 0x6c7eb220, 0x1c04f: 0x6c8fe020,
-	0x1c050: 0x6c918620, 0x1c051: 0x6c872620, 0x1c052: 0x6d29b220, 0x1c053: 0x6c808a20,
-	0x1c054: 0x6d1c2e20, 0x1c055: 0x6c9cb420, 0x1c056: 0x6cfd9c20, 0x1c057: 0x6cbf8820,
-	0x1c058: 0x6c49b820, 0x1c059: 0x6c2a5020, 0x1c05a: 0x6d29c020, 0x1c05b: 0x6c58ce20,
-	0x1c05c: 0x6c483e20, 0x1c05d: 0x6c0eba20, 0x1c05e: 0x6c2e8820, 0x1c05f: 0x6c0ed820,
-	0x1c060: 0x6c568e20, 0x1c061: 0x6d347620, 0x1c062: 0x6cb18020, 0x1c063: 0x6c050c20,
-	0x1c064: 0x6cc4f020, 0x1c065: 0x6c87a220, 0x1c066: 0x6cec0c20,
-	0x1c068: 0x6cfdaa20, 0x1c069: 0x6cb8aa20, 0x1c06a: 0x6c04c020, 0x1c06b: 0x6cae3a20,
-	0x1c06c: 0x6c39c820, 0x1c06d: 0x6c282620, 0x1c06e: 0x6cf26c20, 0x1c06f: 0x6cab3420,
-	0x1c072: 0x6cec4a20, 0x1c073: 0x6c552a20,
-	0x1c074: 0x6c8cc020, 0x1c075: 0x6d14aa20, 0x1c076: 0x6cb29420, 0x1c077: 0x6c223820,
-	0x1c078: 0x6c042020, 0x1c079: 0x6c72ea20, 0x1c07a: 0x6c16a820, 0x1c07b: 0x6c1aa820,
-	0x1c07d: 0x6c296820, 0x1c07e: 0x6c9bd620, 0x1c07f: 0x6c109820,
-	// Block 0x702, offset 0x1c080
-	0x1c080: 0x6d3c8820, 0x1c081: 0x6cb2aa20, 0x1c082: 0x6c0afe20, 0x1c083: 0x6d393220,
-	0x1c084: 0x6d316c20, 0x1c086: 0x6c225020, 0x1c087: 0x6d1bd220,
-	0x1c088: 0x6cb7b220, 0x1c089: 0x6cfb7420, 0x1c08a: 0x6c90f220, 0x1c08b: 0x6c2c9220,
-	0x1c08c: 0x6cab5020, 0x1c08d: 0x6c9b2e20, 0x1c08e: 0x6d3b8a20, 0x1c08f: 0x6c084e20,
-	0x1c090: 0x6c8c6420, 0x1c091: 0x6d2bb020, 0x1c092: 0x6cf47c20, 0x1c093: 0x6cb0c220,
-	0x1c094: 0x6c280220, 0x1c095: 0x6cf27420, 0x1c096: 0x6d1c0820, 0x1c097: 0x6d0e0420,
-	0x1c098: 0x6c415c20, 0x1c099: 0x6c273420, 0x1c09a: 0x6cd03820, 0x1c09b: 0x6ce49a20,
-	0x1c09c: 0x6ce49c20, 0x1c09d: 0x6c4e1c20, 0x1c09e: 0x6c16b020, 0x1c09f: 0x6cd0d220,
-	0x1c0a0: 0x6cbe6e20, 0x1c0a1: 0x6ccfcc20, 0x1c0a2: 0x6c15aa20, 0x1c0a3: 0x6c15ac20,
-	0x1c0a4: 0x6cc89c20, 0x1c0a5: 0x6cd10620, 0x1c0a6: 0x6cda4c20, 0x1c0a7: 0x6cd00820,
-	0x1c0a8: 0x6d1e6c20, 0x1c0a9: 0x6cd66020, 0x1c0aa: 0x6c920e20, 0x1c0ab: 0x6c40a820,
-	0x1c0ac: 0x6d1e1020, 0x1c0ad: 0x6c080e20, 0x1c0ae: 0x6c3cdc20, 0x1c0af: 0x6ca90820,
-	0x1c0b0: 0x6ce47e20, 0x1c0b1: 0x6d1ee020, 0x1c0b2: 0x6c63fc20, 0x1c0b3: 0x6ccf9a20,
-	0x1c0b4: 0x6d2c1820, 0x1c0b5: 0x6c2d3220, 0x1c0b6: 0x6c3dce20, 0x1c0b7: 0x6ca3e220,
-	0x1c0b8: 0x6c2cbc20, 0x1c0b9: 0x6cb24820, 0x1c0ba: 0x6ce62e20, 0x1c0bb: 0x6c578420,
-	0x1c0bc: 0x6ce6b220, 0x1c0bd: 0x6d321a20, 0x1c0be: 0x6d28f620, 0x1c0bf: 0x6c9b0820,
-	// Block 0x703, offset 0x1c0c0
-	0x1c0c0: 0x6c093c20, 0x1c0c1: 0x6cb58620, 0x1c0c2: 0x6c8f2620, 0x1c0c3: 0x6d09de20,
-	0x1c0c4: 0x6c8e4420, 0x1c0c5: 0x6c170820, 0x1c0c6: 0x6ca23220, 0x1c0c7: 0x6d278a20,
-	0x1c0c8: 0x6c393620, 0x1c0c9: 0x6c3e1820, 0x1c0ca: 0x6c44bc20, 0x1c0cb: 0x6ce48e20,
-	0x1c0cc: 0x6c6bca20, 0x1c0cd: 0x6c6bcc20, 0x1c0ce: 0x6cc35220, 0x1c0cf: 0x6cf07c20,
-	0x1c0d0: 0x6c3e1a20, 0x1c0d1: 0x6ce49020, 0x1c0d2: 0x6ca23420, 0x1c0d3: 0x6c341e20,
-	0x1c0d4: 0x6cacb020, 0x1c0d5: 0x6c675620, 0x1c0d6: 0x6cebd220, 0x1c0d7: 0x6c269020,
-	0x1c0d8: 0x6ca3f020, 0x1c0d9: 0x6c8e4c20, 0x1c0da: 0x6c079a20, 0x1c0db: 0x6d31c820,
-	0x1c0dc: 0x6c1f2820, 0x1c0dd: 0x6ca23820, 0x1c0de: 0x6ca23a20, 0x1c0df: 0x6c12d820,
-	0x1c0e0: 0x6ce49620, 0x1c0e1: 0x6c40f220, 0x1c0e2: 0x6c096420, 0x1c0e3: 0x6c269a20,
-	0x1c0e4: 0x6d35ea20, 0x1c0e5: 0x6c361220, 0x1c0e6: 0x6cb5ce20, 0x1c0e7: 0x6c94a020,
-	0x1c0e8: 0x6cac3e20, 0x1c0e9: 0x6d199020, 0x1c0ea: 0x6c384e20, 0x1c0eb: 0x6c579820,
-	0x1c0ec: 0x6ccef220, 0x1c0ed: 0x6d212e20, 0x1c0ee: 0x6ca24220, 0x1c0ef: 0x6c75be20,
-	0x1c0f0: 0x6d176620, 0x1c0f1: 0x6c8e5820, 0x1c0f2: 0x6ccef420, 0x1c0f3: 0x6c2eac20,
-	0x1c0f4: 0x6c1db020, 0x1c0f5: 0x6c579e20, 0x1c0f6: 0x6c290020, 0x1c0f7: 0x6d3c9020,
-	0x1c0f8: 0x6c5eea20, 0x1c0f9: 0x6ced2a20, 0x1c0fa: 0x6c676620, 0x1c0fb: 0x6c1a2620,
-	0x1c0fc: 0x6c171e20, 0x1c0fd: 0x6cea8020, 0x1c0fe: 0x6c825220, 0x1c0ff: 0x6c5f1620,
-	// Block 0x704, offset 0x1c100
-	0x1c100: 0x6c13b020, 0x1c101: 0x6c8e9a20, 0x1c102: 0x6c2f3c20, 0x1c103: 0x6ce98220,
-	0x1c104: 0x6c8c6c20, 0x1c105: 0x6c678c20, 0x1c106: 0x6c679020, 0x1c107: 0x6c1e0020,
-	0x1c108: 0x6cb0d620, 0x1c109: 0x6c2f0620, 0x1c10a: 0x6c2f1020, 0x1c10b: 0x6cb04420,
-	0x1c10c: 0x6c6a8220, 0x1c10d: 0x6c287220, 0x1c10e: 0x6cd4da20, 0x1c10f: 0x6cd4dc20,
-	0x1c110: 0x6d369220, 0x1c111: 0x6d153420, 0x1c112: 0x6ca54020, 0x1c113: 0x6ca39420,
-	0x1c114: 0x6c2f4e20, 0x1c115: 0x6c08be20, 0x1c116: 0x6c69f620, 0x1c117: 0x6c89da20,
-	0x1c118: 0x6c426220, 0x1c119: 0x6c437620, 0x1c11a: 0x6c6fd620, 0x1c11b: 0x6d38da20,
-	0x1c11c: 0x6cfa3020, 0x1c11d: 0x6ccd7220, 0x1c11e: 0x6d057220, 0x1c11f: 0x6caa9e20,
-	0x1c120: 0x6c859220, 0x1c121: 0x6d0f8a20, 0x1c122: 0x6c192020, 0x1c123: 0x6d1f0c20,
-	0x1c124: 0x6c033220, 0x1c125: 0x6c6bce20, 0x1c126: 0x6c73fe20, 0x1c127: 0x6cb59620,
-	0x1c128: 0x6cf95620, 0x1c129: 0x6c251e20, 0x1c12a: 0x6c095220, 0x1c12b: 0x6d16fe20,
-	0x1c12c: 0x6c85aa20, 0x1c12d: 0x6d401a20, 0x1c12e: 0x6c204e20, 0x1c12f: 0x6c3c2620,
-	0x1c130: 0x6d3ad220, 0x1c131: 0x6cad8620, 0x1c132: 0x6cafd020, 0x1c133: 0x6c418a20,
-	0x1c134: 0x6c77ee20, 0x1c135: 0x6c21fa20, 0x1c136: 0x6d08de20, 0x1c137: 0x6d33c620,
-	0x1c138: 0x6c283020, 0x1c139: 0x6d31ca20, 0x1c13a: 0x6c380220, 0x1c13b: 0x6d350e20,
-	0x1c13c: 0x6ce29c20, 0x1c13d: 0x6c706a20, 0x1c13e: 0x6c600220, 0x1c13f: 0x6c3a9a20,
-	// Block 0x705, offset 0x1c140
-	0x1c140: 0x6c706c20, 0x1c141: 0x6cccda20, 0x1c142: 0x6c634420, 0x1c143: 0x6d080820,
-	0x1c144: 0x6d2cbc20, 0x1c145: 0x6c0e1420, 0x1c146: 0x6ca80a20, 0x1c147: 0x6d334620,
-	0x1c148: 0x6d1d8020, 0x1c149: 0x6c6e6820, 0x1c14a: 0x6cc2e020, 0x1c14b: 0x6ce29e20,
-	0x1c14c: 0x6ce6f420, 0x1c14d: 0x6d14e620, 0x1c14e: 0x6c6a0020, 0x1c14f: 0x6cefb020,
-	0x1c150: 0x6c5b3620, 0x1c151: 0x6cdfa220, 0x1c152: 0x6d101220, 0x1c153: 0x6c1c1220,
-	0x1c154: 0x6d35ec20, 0x1c155: 0x6c523220, 0x1c156: 0x6d0b5220, 0x1c157: 0x6c9a9220,
-	0x1c158: 0x6c311a20, 0x1c159: 0x6c6e8620, 0x1c15a: 0x6cfec020, 0x1c15b: 0x6ce7c820,
-	0x1c15c: 0x6ce86220, 0x1c15d: 0x6c986020, 0x1c15e: 0x6cb05e20, 0x1c15f: 0x6cfec220,
-	0x1c160: 0x6cdb8020, 0x1c161: 0x6c3d7020, 0x1c162: 0x6c861220, 0x1c163: 0x6d363420,
-	0x1c164: 0x6c25de20, 0x1c165: 0x6c345220, 0x1c166: 0x6cf4ee20, 0x1c167: 0x6ccbf420,
-	0x1c168: 0x6c815a20, 0x1c169: 0x6cd46a20, 0x1c16a: 0x6c592620, 0x1c16b: 0x6cfb5e20,
-	0x1c16c: 0x6d17ee20, 0x1c16d: 0x6c07f820, 0x1c16e: 0x6d2f3420, 0x1c16f: 0x6c495620,
-	0x1c170: 0x6cdfec20, 0x1c171: 0x6c3ab820, 0x1c172: 0x6c966a20, 0x1c173: 0x6c8bba20,
-	0x1c174: 0x6c1abc20, 0x1c175: 0x6c621a20, 0x1c176: 0x6ce50220, 0x1c177: 0x6c013820,
-	0x1c178: 0x6c1c3220, 0x1c179: 0x6c09d020, 0x1c17a: 0x6c09d220, 0x1c17b: 0x6c9f6220,
-	0x1c17c: 0x6c481a20, 0x1c17d: 0x6c330820, 0x1c17e: 0x6c354220, 0x1c17f: 0x6cefe220,
-	// Block 0x706, offset 0x1c180
-	0x1c180: 0x6d209220, 0x1c181: 0x6c254420, 0x1c182: 0x6d0b5620, 0x1c183: 0x6d3a1620,
-	0x1c184: 0x6c244020, 0x1c185: 0x6c27e620, 0x1c186: 0x6cd0b020, 0x1c187: 0x6d380220,
-	0x1c188: 0x6c1c4620, 0x1c189: 0x6d239420, 0x1c18a: 0x6c541c20, 0x1c18b: 0x6c3c5c20,
-	0x1c18c: 0x6c7e8420, 0x1c18d: 0x6d0fd220, 0x1c18e: 0x6c18de20, 0x1c18f: 0x6ce8c420,
-	0x1c190: 0x6d226e20, 0x1c191: 0x6c4c2820, 0x1c192: 0x6cf19e20, 0x1c193: 0x6c594420,
-	0x1c194: 0x6c7aa220, 0x1c195: 0x6c642820, 0x1c196: 0x6d19f620, 0x1c197: 0x6d182c20,
-	0x1c198: 0x6c911020, 0x1c199: 0x6ccaf820, 0x1c19a: 0x6c749a20, 0x1c19b: 0x6c1c5a20,
-	0x1c19c: 0x6cf6a620, 0x1c19d: 0x6c492220, 0x1c19e: 0x6d185c20, 0x1c19f: 0x6cf16020,
-	0x1c1a0: 0x6c608c20, 0x1c1a1: 0x6c205c20, 0x1c1a2: 0x6c049220, 0x1c1a3: 0x6c5bfe20,
-	0x1c1a4: 0x6c8e8420, 0x1c1a5: 0x6c149c20, 0x1c1a6: 0x6cd47220, 0x1c1a7: 0x6caaaa20,
-	0x1c1a8: 0x6c2cd820, 0x1c1a9: 0x6c26fc20, 0x1c1aa: 0x6c0d0e20, 0x1c1ab: 0x6cdfb820,
-	0x1c1ac: 0x6d2f4020, 0x1c1ad: 0x6c0c1c20, 0x1c1ae: 0x6cd0c620, 0x1c1af: 0x6c246220,
-	0x1c1b0: 0x6c95c020, 0x1c1b1: 0x6d18a420, 0x1c1b2: 0x6d403220, 0x1c1b3: 0x6c1d7c20,
-	0x1c1b4: 0x6d2f4220, 0x1c1b5: 0x6d2d4a20, 0x1c1b6: 0x6cda4220, 0x1c1b7: 0x6ccb5e20,
-	0x1c1b8: 0x6cc39c20, 0x1c1b9: 0x6c2e3c20, 0x1c1ba: 0x6c911a20, 0x1c1bb: 0x6c911c20,
-	0x1c1bc: 0x6ca15220, 0x1c1bd: 0x6cbda620, 0x1c1be: 0x6d1b0820, 0x1c1bf: 0x6d1d0a20,
-	// Block 0x707, offset 0x1c1c0
-	0x1c1c0: 0x6c59fa20, 0x1c1c1: 0x6c3f0820, 0x1c1c2: 0x6c8a2620, 0x1c1c3: 0x6c8fac20,
-	0x1c1c4: 0x6cbbfe20, 0x1c1c5: 0x6c8ea820, 0x1c1c6: 0x6c817a20, 0x1c1c7: 0x6cfba820,
-	0x1c1c8: 0x6c3ad620, 0x1c1c9: 0x6c280420, 0x1c1ca: 0x6d1b7420, 0x1c1cb: 0x6c51f020,
-	0x1c1cc: 0x6c005420, 0x1c1cd: 0x6c04a620, 0x1c1ce: 0x6cfbaa20, 0x1c1cf: 0x6c492a20,
-	0x1c1d0: 0x6c4b8c20, 0x1c1d1: 0x6ca9f620, 0x1c1d2: 0x6d242e20, 0x1c1d3: 0x6cef4a20,
-	0x1c1d4: 0x6d18e820, 0x1c1d5: 0x6d1dc620, 0x1c1d6: 0x6cb07820, 0x1c1d7: 0x6c82ee20,
-	0x1c1d8: 0x6c86a820, 0x1c1d9: 0x6cd57820, 0x1c1da: 0x6c28d820, 0x1c1db: 0x6c8c3c20,
-	0x1c1dc: 0x6c2d8c20, 0x1c1dd: 0x6c8c3e20, 0x1c1de: 0x6c7f6420, 0x1c1df: 0x6c0d1020,
-	0x1c1e0: 0x6c62ba20, 0x1c1e1: 0x6c1ae820, 0x1c1e2: 0x6d103820, 0x1c1e3: 0x6d086220,
-	0x1c1e4: 0x6c6a3820, 0x1c1e5: 0x6d330e20, 0x1c1e6: 0x6c99cc20, 0x1c1e7: 0x6c874420,
-	0x1c1e8: 0x6c5e4820, 0x1c1e9: 0x6c7f7820, 0x1c1ea: 0x6c631420, 0x1c1eb: 0x6c2cf220,
-	0x1c1ec: 0x6d086620, 0x1c1ed: 0x6d1d2e20, 0x1c1ee: 0x6d1b2820, 0x1c1ef: 0x6cc21420,
-	0x1c1f0: 0x6d1dea20, 0x1c1f1: 0x6cdfc820, 0x1c1f2: 0x6c2cfe20, 0x1c1f3: 0x6c95da20,
-	0x1c1f4: 0x6c947c20, 0x1c1f5: 0x6c948420, 0x1c1f6: 0x6c0e4620, 0x1c1f7: 0x6c0e5420,
-	0x1c1f8: 0x6c4ada20, 0x1c1f9: 0x6c037020, 0x1c1fa: 0x6c37e620, 0x1c1fb: 0x6c2a9c20,
-	0x1c1fc: 0x6c37ec20, 0x1c1fd: 0x6c040820, 0x1c1fe: 0x6c041620, 0x1c1ff: 0x6cbc8020,
-	// Block 0x708, offset 0x1c200
-	0x1c200: 0x6c5fd620, 0x1c201: 0x6d2a6820, 0x1c202: 0x6d2a6a20, 0x1c203: 0x6c994420,
-	0x1c204: 0x6c2a8c20, 0x1c205: 0x6cabb820, 0x1c206: 0x6c69f820, 0x1c207: 0x6c59ac20,
-	0x1c208: 0x6c4a3e20, 0x1c209: 0x6c229620, 0x1c20a: 0x6c8ccc20, 0x1c20b: 0x6c42b620,
-	0x1c20c: 0x6ca0f020, 0x1c20d: 0x6c5ffa20, 0x1c20e: 0x6c68e420, 0x1c20f: 0x6caf0620,
-	0x1c210: 0x6c42be20, 0x1c211: 0x6c004020, 0x1c212: 0x6c356620, 0x1c213: 0x6c503e20,
-	0x1c214: 0x6c4ec420, 0x1c215: 0x6c09a420, 0x1c216: 0x6ced2220, 0x1c217: 0x6c1dbc20,
-	0x1c218: 0x6cba5c20, 0x1c219: 0x6cf65220, 0x1c21a: 0x6c005020, 0x1c21b: 0x6cffb820,
-	0x1c21c: 0x6c505c20, 0x1c21d: 0x6c5a7820, 0x1c21e: 0x6c505e20, 0x1c21f: 0x6d2b0220,
-	0x1c220: 0x6c251020, 0x1c221: 0x6c506c20, 0x1c222: 0x6cffc220, 0x1c223: 0x6d132820,
-	0x1c224: 0x6cb33820, 0x1c225: 0x6c507220, 0x1c226: 0x6c695220, 0x1c227: 0x6c00f220,
-	0x1c228: 0x6d03ae20, 0x1c229: 0x6c5a8020, 0x1c22a: 0x6c872820, 0x1c22b: 0x6cb1a620,
-	0x1c22c: 0x6c51a220, 0x1c22d: 0x6c69e220, 0x1c22e: 0x6cafa820, 0x1c22f: 0x6c41ca20,
-	0x1c230: 0x6cad8820, 0x1c231: 0x6d391c20, 0x1c232: 0x6c756e20, 0x1c233: 0x6cc06620,
-	0x1c234: 0x6c259420, 0x1c235: 0x6cc3ce20, 0x1c236: 0x6d2bee20, 0x1c237: 0x6c47b420,
-	0x1c238: 0x6c757620, 0x1c239: 0x6c757820, 0x1c23a: 0x6d394420, 0x1c23b: 0x6d2bfe20,
-	0x1c23c: 0x6c47d820, 0x1c23d: 0x6d2f7c20, 0x1c23e: 0x6c31e020, 0x1c23f: 0x6c9f8a20,
-	// Block 0x709, offset 0x1c240
-	0x1c240: 0x6cb6da20, 0x1c241: 0x6d1c5620, 0x1c242: 0x6d20c620, 0x1c243: 0x6c069220,
-	0x1c244: 0x6d2f5e20, 0x1c245: 0x6d37a820, 0x1c246: 0x6cae3c20, 0x1c247: 0x6c50de20,
-	0x1c248: 0x6d1c5c20, 0x1c249: 0x6c50f420, 0x1c24a: 0x6d173820, 0x1c24b: 0x6c0e6020,
-	0x1c24c: 0x6cecfc20, 0x1c24d: 0x6c50f620, 0x1c24e: 0x6c021620, 0x1c24f: 0x6d2de220,
-	0x1c250: 0x6d0c8020, 0x1c251: 0x6c647e20, 0x1c252: 0x6c510e20, 0x1c253: 0x6d208820,
-	0x1c254: 0x6c7c3a20, 0x1c255: 0x6c394620, 0x1c256: 0x6c413220, 0x1c257: 0x6c2a1220,
-	0x1c258: 0x6cac5620, 0x1c259: 0x6c3f6620, 0x1c25a: 0x6cc06820, 0x1c25b: 0x6cd15e20,
-	0x1c25c: 0x6c2a1620, 0x1c25d: 0x6c926a20, 0x1c25e: 0x6d2df820, 0x1c25f: 0x6c9b2220,
-	0x1c260: 0x6c841c20, 0x1c261: 0x6c6ca220, 0x1c262: 0x6d071220, 0x1c263: 0x6c64ca20,
-	0x1c264: 0x6cac6a20, 0x1c265: 0x6c49a620, 0x1c266: 0x6c014e20, 0x1c267: 0x6c915c20,
-	0x1c268: 0x6d065e20, 0x1c269: 0x6d38b420, 0x1c26a: 0x6c299620, 0x1c26b: 0x6c015620,
-	0x1c26c: 0x6c47e420, 0x1c26d: 0x6c872a20, 0x1c26e: 0x6ca26420, 0x1c26f: 0x6c2f5020,
-	0x1c270: 0x6c421020, 0x1c271: 0x6d057420, 0x1c272: 0x6c983a20, 0x1c273: 0x6cee4e20,
-	0x1c274: 0x6d344020, 0x1c275: 0x6cb74a20, 0x1c276: 0x6d25e020, 0x1c277: 0x6ce49220,
-	0x1c278: 0x6cfd6420, 0x1c279: 0x6c33ca20, 0x1c27a: 0x6d02ba20, 0x1c27b: 0x6cf86620,
-	0x1c27c: 0x6cacae20, 0x1c27d: 0x6c3c2820, 0x1c27e: 0x6c33de20, 0x1c27f: 0x6c9f3c20,
-	// Block 0x70a, offset 0x1c280
-	0x1c280: 0x6c9fee20, 0x1c281: 0x6cd12c20, 0x1c282: 0x6cd34420, 0x1c283: 0x6d278c20,
-	0x1c284: 0x6c9e0e20, 0x1c285: 0x6cac3a20, 0x1c286: 0x6c39cc20, 0x1c287: 0x6c9e8a20,
-	0x1c288: 0x6c27c220, 0x1c289: 0x6c99e020, 0x1c28a: 0x6c995820, 0x1c28b: 0x6c770420,
-	0x1c28c: 0x6cfc9020, 0x1c28d: 0x6c79ba20, 0x1c28e: 0x6cd35620, 0x1c28f: 0x6d0f5420,
-	0x1c290: 0x6d32a220, 0x1c291: 0x6d119c20, 0x1c292: 0x6ccfce20, 0x1c293: 0x6c5dae20,
-	0x1c294: 0x6c26ec20, 0x1c295: 0x6d31cc20, 0x1c296: 0x6c7bee20, 0x1c297: 0x6c706e20,
-	0x1c298: 0x6cd09a20, 0x1c299: 0x6d14d020, 0x1c29a: 0x6cd12e20, 0x1c29b: 0x6c9a8a20,
-	0x1c29c: 0x6ca0f420, 0x1c29d: 0x6d3ad620, 0x1c29e: 0x6d313c20, 0x1c29f: 0x6d313e20,
-	0x1c2a0: 0x6c9dbc20, 0x1c2a1: 0x6cd35820, 0x1c2a2: 0x6d24d620, 0x1c2a3: 0x6c2e8a20,
-	0x1c2a4: 0x6ca69020, 0x1c2a5: 0x6d3f4620, 0x1c2a6: 0x6d3f4820, 0x1c2a7: 0x6c179620,
-	0x1c2a8: 0x6d2c7620, 0x1c2a9: 0x6d087e20, 0x1c2aa: 0x6c0dda20, 0x1c2ab: 0x6c9cea20,
-	0x1c2ac: 0x6c8f7e20, 0x1c2ad: 0x6cdbc220, 0x1c2ae: 0x6ce73e20, 0x1c2af: 0x6c9c3020,
-	0x1c2b0: 0x6c2f3620, 0x1c2b1: 0x6c2c4620, 0x1c2b2: 0x6ca54c20, 0x1c2b3: 0x6c9ff820,
-	0x1c2b4: 0x6d088c20, 0x1c2b5: 0x6c1aaa20, 0x1c2b6: 0x6c7bf420, 0x1c2b7: 0x6c735a20,
-	0x1c2b8: 0x6ca1ce20, 0x1c2b9: 0x6d323a20, 0x1c2ba: 0x6ce5d220, 0x1c2bb: 0x6d0fac20,
-	0x1c2bc: 0x6d0d6c20, 0x1c2bd: 0x6ca10620, 0x1c2be: 0x6d382620, 0x1c2bf: 0x6ca0f620,
-	// Block 0x70b, offset 0x1c2c0
-	0x1c2c0: 0x6d311220, 0x1c2c1: 0x6d32b620, 0x1c2c2: 0x6c9a0220, 0x1c2c3: 0x6cdd1e20,
-	0x1c2c4: 0x6cceda20, 0x1c2c5: 0x6c4ec820, 0x1c2c6: 0x6c592820, 0x1c2c7: 0x6c2c5c20,
-	0x1c2c8: 0x6c1a7620, 0x1c2c9: 0x6c25e020, 0x1c2ca: 0x6c736420, 0x1c2cb: 0x6c356820,
-	0x1c2cc: 0x6c97bc20, 0x1c2cd: 0x6cfcc420, 0x1c2ce: 0x6cf61e20, 0x1c2cf: 0x6c7dd420,
-	0x1c2d0: 0x6c7f4820, 0x1c2d1: 0x6c659820, 0x1c2d2: 0x6ccd4e20, 0x1c2d3: 0x6ce50420,
-	0x1c2d4: 0x6c4bfc20, 0x1c2d5: 0x6ced2c20, 0x1c2d6: 0x6c839820, 0x1c2d7: 0x6cd39c20,
-	0x1c2d8: 0x6cbf4020, 0x1c2d9: 0x6c8b1820, 0x1c2da: 0x6d0b3020, 0x1c2db: 0x6c6ec820,
-	0x1c2dc: 0x6d32d420, 0x1c2dd: 0x6c83ea20, 0x1c2de: 0x6c7f4a20, 0x1c2df: 0x6cdc4c20,
-	0x1c2e0: 0x6c737420, 0x1c2e1: 0x6cd72820, 0x1c2e2: 0x6cdbca20, 0x1c2e3: 0x6c317420,
-	0x1c2e4: 0x6c09d420, 0x1c2e5: 0x6cb0a620, 0x1c2e6: 0x6ca29c20, 0x1c2e7: 0x6c5cd420,
-	0x1c2e8: 0x6ca6ae20, 0x1c2e9: 0x6c926c20, 0x1c2ea: 0x6d17f220, 0x1c2eb: 0x6c6aec20,
-	0x1c2ec: 0x6c113620, 0x1c2ed: 0x6d38ea20, 0x1c2ee: 0x6d217220, 0x1c2ef: 0x6c5cd620,
-	0x1c2f0: 0x6c96c620, 0x1c2f1: 0x6cfa4420, 0x1c2f2: 0x6d040420, 0x1c2f3: 0x6c5ada20,
-	0x1c2f4: 0x6c4c0220, 0x1c2f5: 0x6d290a20, 0x1c2f6: 0x6c218620, 0x1c2f7: 0x6c64ba20,
-	0x1c2f8: 0x6c9a9e20, 0x1c2f9: 0x6c322620, 0x1c2fa: 0x6c541e20, 0x1c2fb: 0x6d07b420,
-	0x1c2fc: 0x6ce53c20, 0x1c2fd: 0x6c7c9220, 0x1c2fe: 0x6c42ce20, 0x1c2ff: 0x6cc8da20,
-	// Block 0x70c, offset 0x1c300
-	0x1c300: 0x6c99a020, 0x1c301: 0x6d071420, 0x1c302: 0x6c381e20, 0x1c303: 0x6cf30820,
-	0x1c304: 0x6c9e7820, 0x1c305: 0x6c1e2e20, 0x1c306: 0x6c7d0620, 0x1c307: 0x6c9c3220,
-	0x1c308: 0x6cf25e20, 0x1c309: 0x6c7a0020, 0x1c30a: 0x6c298420, 0x1c30b: 0x6c188220,
-	0x1c30c: 0x6c782420, 0x1c30d: 0x6cda2420, 0x1c30e: 0x6cf97620, 0x1c30f: 0x6cbf5020,
-	0x1c310: 0x6ca15420, 0x1c311: 0x6ca01620, 0x1c312: 0x6c977220, 0x1c313: 0x6cd72c20,
-	0x1c314: 0x6d2b0420, 0x1c315: 0x6d2f4420, 0x1c316: 0x6d18a620, 0x1c317: 0x6c2dde20,
-	0x1c318: 0x6c79c420, 0x1c319: 0x6ca15620, 0x1c31a: 0x6cd75c20, 0x1c31b: 0x6c235620,
-	0x1c31c: 0x6c907820, 0x1c31d: 0x6c1ad020, 0x1c31e: 0x6c977820, 0x1c31f: 0x6cb19a20,
-	0x1c320: 0x6c199420, 0x1c321: 0x6c4b1a20, 0x1c322: 0x6c9b3a20, 0x1c323: 0x6c596c20,
-	0x1c324: 0x6cc8f220, 0x1c325: 0x6cb1d420, 0x1c326: 0x6cf6f020, 0x1c327: 0x6cbc0220,
-	0x1c328: 0x6cb45a20, 0x1c329: 0x6d3a8420, 0x1c32a: 0x6c2aea20, 0x1c32b: 0x6cd07e20,
-	0x1c32c: 0x6cd76020, 0x1c32d: 0x6c8a7c20, 0x1c32e: 0x6c185020, 0x1c32f: 0x6cfbac20,
-	0x1c330: 0x6c771220, 0x1c331: 0x6d132a20, 0x1c332: 0x6d074820, 0x1c333: 0x6ce79220,
-	0x1c334: 0x6ca1ea20, 0x1c335: 0x6c8be620, 0x1c336: 0x6c4b7e20, 0x1c337: 0x6c66e020,
-	0x1c338: 0x6d136420, 0x1c339: 0x6c00f420, 0x1c33a: 0x6c5c6a20, 0x1c33b: 0x6d2dac20,
-	0x1c33c: 0x6c65f220, 0x1c33d: 0x6c47e620, 0x1c33e: 0x6d2fea20, 0x1c33f: 0x6cc1e420,
-	// Block 0x70d, offset 0x1c340
-	0x1c340: 0x6c9a3420, 0x1c341: 0x6c1e3620, 0x1c342: 0x6ccb0620, 0x1c343: 0x6ca94c20,
-	0x1c344: 0x6d09c020, 0x1c345: 0x6d123e20, 0x1c346: 0x6c5e1820, 0x1c347: 0x6c9b7020,
-	0x1c348: 0x6c9de620, 0x1c349: 0x6cb22020, 0x1c34a: 0x6c9de820, 0x1c34b: 0x6c870220,
-	0x1c34c: 0x6c7c1420, 0x1c34d: 0x6c750020, 0x1c34e: 0x6d07e220, 0x1c34f: 0x6c9dee20,
-	0x1c350: 0x6c5e4a20, 0x1c351: 0x6c919220, 0x1c352: 0x6c9b8e20, 0x1c353: 0x6c8fe420,
-	0x1c354: 0x6c49bc20, 0x1c355: 0x6c97d620, 0x1c356: 0x6cf82e20, 0x1c357: 0x6c1f9020,
-	0x1c358: 0x6ce19620, 0x1c359: 0x6c771c20, 0x1c35a: 0x6d3a9620, 0x1c35b: 0x6c98c220,
-	0x1c35c: 0x6c6c3220, 0x1c35d: 0x6c8ba620, 0x1c35e: 0x6d234a20, 0x1c35f: 0x6cd78420,
-	0x1c360: 0x6d2ad220, 0x1c361: 0x6c752c20, 0x1c362: 0x6cd2a820, 0x1c363: 0x6d15c020,
-	0x1c364: 0x6cd04820, 0x1c365: 0x6d339c20, 0x1c366: 0x6c53f020, 0x1c367: 0x6cd04e20,
-	0x1c368: 0x6d1ce020, 0x1c369: 0x6c72d420, 0x1c36a: 0x6d387820, 0x1c36b: 0x6c68e820,
-	0x1c36c: 0x6c25e220, 0x1c36d: 0x6c32ae20, 0x1c36e: 0x6c006820, 0x1c36f: 0x6c695020,
-	0x1c370: 0x6d2b9820, 0x1c371: 0x6d265c20, 0x1c372: 0x6c03ce20, 0x1c373: 0x6cd22c20,
-	0x1c374: 0x6c2f9420, 0x1c375: 0x6cb73a20, 0x1c376: 0x6c5e8620, 0x1c377: 0x6d3eee20,
-	0x1c378: 0x6c417c20, 0x1c379: 0x6cf4ba20, 0x1c37a: 0x6d302020, 0x1c37b: 0x6c7a2a20,
-	0x1c37c: 0x6c426420, 0x1c37d: 0x6cf84c20, 0x1c37e: 0x6c388820, 0x1c37f: 0x6c7be620,
-	// Block 0x70e, offset 0x1c380
-	0x1c380: 0x6c295820, 0x1c381: 0x6c969220, 0x1c382: 0x6ccbd220, 0x1c383: 0x6c27c420,
-	0x1c384: 0x6c740220, 0x1c385: 0x6c85ac20, 0x1c386: 0x6c3d4e20, 0x1c387: 0x6c9f3e20,
-	0x1c388: 0x6c35b020, 0x1c389: 0x6c5da620, 0x1c38a: 0x6c772820, 0x1c38b: 0x6d350620,
-	0x1c38c: 0x6cb75c20, 0x1c38d: 0x6c76c420, 0x1c38e: 0x6c6bd020, 0x1c38f: 0x6c0d2a20,
-	0x1c390: 0x6c35e020, 0x1c391: 0x6d0b8820, 0x1c392: 0x6caf4e20, 0x1c393: 0x6d302420,
-	0x1c394: 0x6d0c7820, 0x1c395: 0x6cdc2a20, 0x1c396: 0x6d3b7820, 0x1c397: 0x6c17d220,
-	0x1c398: 0x6c33e020, 0x1c399: 0x6cac3c20, 0x1c39a: 0x6d0e4a20, 0x1c39b: 0x6c6d7e20,
-	0x1c39c: 0x6c3c2a20, 0x1c39d: 0x6c381020, 0x1c39e: 0x6ca0f820, 0x1c39f: 0x6d2c7820,
-	0x1c3a0: 0x6c707020, 0x1c3a1: 0x6d22f620, 0x1c3a2: 0x6c77f020, 0x1c3a3: 0x6ceb0a20,
-	0x1c3a4: 0x6ceb0c20, 0x1c3a5: 0x6c2bec20, 0x1c3a6: 0x6d2d3c20, 0x1c3a7: 0x6d314220,
-	0x1c3a8: 0x6c35fc20, 0x1c3a9: 0x6c3e3820, 0x1c3aa: 0x6ca23e20, 0x1c3ab: 0x6d3ad820,
-	0x1c3ac: 0x6c7e5c20, 0x1c3ad: 0x6c0aee20, 0x1c3ae: 0x6caa5620, 0x1c3af: 0x6cb25220,
-	0x1c3b0: 0x6cae6020, 0x1c3b1: 0x6c8cce20, 0x1c3b2: 0x6cad8a20, 0x1c3b3: 0x6c821e20,
-	0x1c3b4: 0x6cb37c20, 0x1c3b5: 0x6c0e6220, 0x1c3b6: 0x6cb37e20, 0x1c3b7: 0x6ccfd020,
-	0x1c3b8: 0x6d28b020, 0x1c3b9: 0x6c009820, 0x1c3ba: 0x6c85d620, 0x1c3bb: 0x6c8f8020,
-	0x1c3bc: 0x6ce73a20, 0x1c3bd: 0x6d1e8420, 0x1c3be: 0x6c85d820, 0x1c3bf: 0x6c7c2a20,
-	// Block 0x70f, offset 0x1c3c0
-	0x1c3c0: 0x6c1ed820, 0x1c3c1: 0x6c793620, 0x1c3c2: 0x6cc2e420, 0x1c3c3: 0x6d399c20,
-	0x1c3c4: 0x6c7b9c20, 0x1c3c5: 0x6c4a5a20, 0x1c3c6: 0x6c361420, 0x1c3c7: 0x6ca4a620,
-	0x1c3c8: 0x6cb86420, 0x1c3c9: 0x6c924420, 0x1c3ca: 0x6cefb220, 0x1c3cb: 0x6c009a20,
-	0x1c3cc: 0x6c448420, 0x1c3cd: 0x6cfcb620, 0x1c3ce: 0x6d03e220, 0x1c3cf: 0x6d0c8a20,
-	0x1c3d0: 0x6c307420, 0x1c3d1: 0x6cae6c20, 0x1c3d2: 0x6cf5fc20, 0x1c3d3: 0x6c81f220,
-	0x1c3d4: 0x6c533c20, 0x1c3d5: 0x6cd78020, 0x1c3d6: 0x6cf9b020, 0x1c3d7: 0x6cbb7020,
-	0x1c3d8: 0x6cbeea20, 0x1c3d9: 0x6cef0220, 0x1c3da: 0x6cbbdc20, 0x1c3db: 0x6d176820,
-	0x1c3dc: 0x6c793e20, 0x1c3dd: 0x6cfec620, 0x1c3de: 0x6cc3c220, 0x1c3df: 0x6c162a20,
-	0x1c3e0: 0x6c80c820, 0x1c3e1: 0x6c52ac20, 0x1c3e2: 0x6d213020, 0x1c3e3: 0x6cfec820,
-	0x1c3e4: 0x6cf9c620, 0x1c3e5: 0x6c988e20, 0x1c3e6: 0x6c960220, 0x1c3e7: 0x6d1e3c20,
-	0x1c3e8: 0x6c17dc20, 0x1c3e9: 0x6c182220, 0x1c3ea: 0x6cf2f620, 0x1c3eb: 0x6c8e5c20,
-	0x1c3ec: 0x6d1d3c20, 0x1c3ed: 0x6c985a20, 0x1c3ee: 0x6cc3c420, 0x1c3ef: 0x6d0e7820,
-	0x1c3f0: 0x6ccbf620, 0x1c3f1: 0x6c7dac20, 0x1c3f2: 0x6d234c20, 0x1c3f3: 0x6c1c2420,
-	0x1c3f4: 0x6c57de20, 0x1c3f5: 0x6c91be20, 0x1c3f6: 0x6c190420, 0x1c3f7: 0x6c659a20,
-	0x1c3f8: 0x6caaa820, 0x1c3f9: 0x6cd92620, 0x1c3fa: 0x6d3d6e20, 0x1c3fb: 0x6c794620,
-	0x1c3fc: 0x6caeaa20, 0x1c3fd: 0x6d0c1420, 0x1c3fe: 0x6d3c9220, 0x1c3ff: 0x6c797e20,
-	// Block 0x710, offset 0x1c400
-	0x1c400: 0x6c19ec20, 0x1c401: 0x6cb5fc20, 0x1c402: 0x6d402220, 0x1c403: 0x6cbecc20,
-	0x1c404: 0x6c8bbc20, 0x1c405: 0x6c757420, 0x1c406: 0x6c0e7e20, 0x1c407: 0x6c2fac20,
-	0x1c408: 0x6c9f6420, 0x1c409: 0x6c2dce20, 0x1c40a: 0x6c64bc20, 0x1c40b: 0x6c51d020,
-	0x1c40c: 0x6c926e20, 0x1c40d: 0x6c00ac20, 0x1c40e: 0x6cdc4e20, 0x1c40f: 0x6cc3d220,
-	0x1c410: 0x6c837c20, 0x1c411: 0x6c06b020, 0x1c412: 0x6d1a7420, 0x1c413: 0x6c334c20,
-	0x1c414: 0x6cf45220, 0x1c415: 0x6cb5fe20, 0x1c416: 0x6c951820, 0x1c417: 0x6ced2e20,
-	0x1c418: 0x6c2d2020, 0x1c419: 0x6ca4b220, 0x1c41a: 0x6c073420, 0x1c41b: 0x6cb7a420,
-	0x1c41c: 0x6c190620, 0x1c41d: 0x6cc87020, 0x1c41e: 0x6d0cb620, 0x1c41f: 0x6c2ed220,
-	0x1c420: 0x6c2fb020, 0x1c421: 0x6c31a820, 0x1c422: 0x6ceb2e20, 0x1c423: 0x6c6b0c20,
-	0x1c424: 0x6d1bc620, 0x1c425: 0x6c0b4420, 0x1c426: 0x6c78c620, 0x1c427: 0x6c0a0220,
-	0x1c428: 0x6cf0b020, 0x1c429: 0x6cd79220, 0x1c42a: 0x6d318220, 0x1c42b: 0x6c32d420,
-	0x1c42c: 0x6cf9de20, 0x1c42d: 0x6c297a20, 0x1c42e: 0x6ce35420, 0x1c42f: 0x6ca50c20,
-	0x1c430: 0x6caf1420, 0x1c431: 0x6c65c420, 0x1c432: 0x6c2c8220, 0x1c433: 0x6ce0a220,
-	0x1c434: 0x6c13f620, 0x1c435: 0x6ce54220, 0x1c436: 0x6cb7b420, 0x1c437: 0x6c341420,
-	0x1c438: 0x6c3c5e20, 0x1c439: 0x6d08a420, 0x1c43a: 0x6cc3f020, 0x1c43b: 0x6cc3f220,
-	0x1c43c: 0x6c96a020, 0x1c43d: 0x6c45a620, 0x1c43e: 0x6ca73820, 0x1c43f: 0x6cdb0820,
-	// Block 0x711, offset 0x1c440
-	0x1c440: 0x6c357820, 0x1c441: 0x6c225420, 0x1c442: 0x6c8e8820, 0x1c443: 0x6cd81a20,
-	0x1c444: 0x6ce12620, 0x1c445: 0x6c058820, 0x1c446: 0x6c574620, 0x1c447: 0x6caf8620,
-	0x1c448: 0x6ceff420, 0x1c449: 0x6cca8820, 0x1c44a: 0x6c82d220, 0x1c44b: 0x6c25c420,
-	0x1c44c: 0x6ce4ba20, 0x1c44d: 0x6cf9e620, 0x1c44e: 0x6cf6aa20, 0x1c44f: 0x6c883e20,
-	0x1c450: 0x6cac7020, 0x1c451: 0x6cef3020, 0x1c452: 0x6d27fc20, 0x1c453: 0x6c330e20,
-	0x1c454: 0x6d307e20, 0x1c455: 0x6c782620, 0x1c456: 0x6c7e6020, 0x1c457: 0x6d3b8c20,
-	0x1c458: 0x6cbed820, 0x1c459: 0x6c4be420, 0x1c45a: 0x6d3b9220, 0x1c45b: 0x6c152620,
-	0x1c45c: 0x6cb7da20, 0x1c45d: 0x6c026c20, 0x1c45e: 0x6cae8620, 0x1c45f: 0x6c8f4020,
-	0x1c460: 0x6c91de20, 0x1c461: 0x6c771420, 0x1c462: 0x6c209a20, 0x1c463: 0x6c190e20,
-	0x1c464: 0x6d1afe20, 0x1c465: 0x6c82d820, 0x1c466: 0x6c0c1e20, 0x1c467: 0x6cb7dc20,
-	0x1c468: 0x6ca07c20, 0x1c469: 0x6cb7de20, 0x1c46a: 0x6c24e820, 0x1c46b: 0x6d3fc220,
-	0x1c46c: 0x6cbeda20, 0x1c46d: 0x6c21da20, 0x1c46e: 0x6c952a20, 0x1c46f: 0x6c5f5420,
-	0x1c470: 0x6ccdbe20, 0x1c471: 0x6c817c20, 0x1c472: 0x6cc1c020, 0x1c473: 0x6d2b9a20,
-	0x1c474: 0x6c2aec20, 0x1c475: 0x6c66e220, 0x1c476: 0x6cf8f220, 0x1c477: 0x6c8be820,
-	0x1c478: 0x6c2fbe20, 0x1c479: 0x6ce01e20, 0x1c47a: 0x6c59fc20, 0x1c47b: 0x6cac7620,
-	0x1c47c: 0x6d28ce20, 0x1c47d: 0x6cbbb820, 0x1c47e: 0x6c2b4820, 0x1c47f: 0x6c86aa20,
-	// Block 0x712, offset 0x1c480
-	0x1c480: 0x6c673e20, 0x1c481: 0x6c688220, 0x1c482: 0x6cf94a20, 0x1c483: 0x6d2f0e20,
-	0x1c484: 0x6cbc0420, 0x1c485: 0x6c33b620, 0x1c486: 0x6c65f420, 0x1c487: 0x6d241220,
-	0x1c488: 0x6d3cb420, 0x1c489: 0x6c518420, 0x1c48a: 0x6c78e020, 0x1c48b: 0x6d2b1420,
-	0x1c48c: 0x6c826a20, 0x1c48d: 0x6c787220, 0x1c48e: 0x6c1ef620, 0x1c48f: 0x6d137020,
-	0x1c490: 0x6cc40c20, 0x1c491: 0x6c299a20, 0x1c492: 0x6d161e20, 0x1c493: 0x6c678e20,
-	0x1c494: 0x6caf9e20, 0x1c495: 0x6cafa020, 0x1c496: 0x6d243020, 0x1c497: 0x6cb1f420,
-	0x1c498: 0x6c36d020, 0x1c499: 0x6c00fe20, 0x1c49a: 0x6c783e20, 0x1c49b: 0x6c652220,
-	0x1c49c: 0x6d243220, 0x1c49d: 0x6cc88e20, 0x1c49e: 0x6c9b7220, 0x1c49f: 0x6cada020,
-	0x1c4a0: 0x6c227820, 0x1c4a1: 0x6c0f9020, 0x1c4a2: 0x6d107c20, 0x1c4a3: 0x6c96e420,
-	0x1c4a4: 0x6c10e620, 0x1c4a5: 0x6cfbc820, 0x1c4a6: 0x6c7c1620, 0x1c4a7: 0x6c828020,
-	0x1c4a8: 0x6c82fe20, 0x1c4a9: 0x6d375420, 0x1c4aa: 0x6c870420, 0x1c4ab: 0x6c872e20,
-	0x1c4ac: 0x6c38e420, 0x1c4ad: 0x6cc41c20, 0x1c4ae: 0x6cada620, 0x1c4af: 0x6d1c3020,
-	0x1c4b0: 0x6c874a20, 0x1c4b1: 0x6c8fe620, 0x1c4b2: 0x6c8fe820, 0x1c4b3: 0x6ca19620,
-	0x1c4b4: 0x6c0fc220, 0x1c4b5: 0x6cd6b420, 0x1c4b6: 0x6c49be20, 0x1c4b7: 0x6c800020,
-	0x1c4b8: 0x6d298620, 0x1c4b9: 0x6d0d1820, 0x1c4ba: 0x6cd2f420, 0x1c4bb: 0x6cd2e620,
-	0x1c4bc: 0x6c84f420, 0x1c4bd: 0x6cc61c20, 0x1c4be: 0x6ccf3620, 0x1c4bf: 0x6d268020,
-	// Block 0x713, offset 0x1c4c0
-	0x1c4c0: 0x6cd88420, 0x1c4c1: 0x6cb56820, 0x1c4c2: 0x6cdde220, 0x1c4c3: 0x6c96b420,
-	0x1c4c4: 0x6d016420, 0x1c4c5: 0x6d109420, 0x1c4c6: 0x6cfa8020, 0x1c4c7: 0x6cb58820,
-	0x1c4c8: 0x6cb58a20, 0x1c4c9: 0x6d34f820, 0x1c4ca: 0x6c07d820, 0x1c4cb: 0x6c333a20,
-	0x1c4cc: 0x6d381820, 0x1c4cd: 0x6cc5d620, 0x1c4ce: 0x6d13cc20, 0x1c4cf: 0x6cd25420,
-	0x1c4d0: 0x6d203020, 0x1c4d1: 0x6d35a820, 0x1c4d2: 0x6ce57a20, 0x1c4d3: 0x6c3e1e20,
-	0x1c4d4: 0x6c3fc420, 0x1c4d5: 0x6c9d2e20, 0x1c4d6: 0x6d411420, 0x1c4d7: 0x6d33ac20,
-	0x1c4d8: 0x6cdb9620, 0x1c4d9: 0x6c9a8420, 0x1c4da: 0x6d428620, 0x1c4db: 0x6cc0ec20,
-	0x1c4dc: 0x6c567220, 0x1c4dd: 0x6d3ac620, 0x1c4de: 0x6cd03a20, 0x1c4df: 0x6cdc3020,
-	0x1c4e0: 0x6c223020, 0x1c4e1: 0x6c147a20, 0x1c4e2: 0x6c9c3e20, 0x1c4e3: 0x6c939020,
-	0x1c4e4: 0x6d223e20, 0x1c4e5: 0x6cfdbc20, 0x1c4e6: 0x6cf3c620, 0x1c4e7: 0x6ce55620,
-	0x1c4e8: 0x6cb1ae20, 0x1c4e9: 0x6d3ada20, 0x1c4ea: 0x6c4aec20, 0x1c4eb: 0x6cf9ae20,
-	0x1c4ec: 0x6d33c820, 0x1c4ed: 0x6c61f420, 0x1c4ee: 0x6c434620, 0x1c4ef: 0x6d314420,
-	0x1c4f0: 0x6c434820, 0x1c4f1: 0x6cd71e20, 0x1c4f2: 0x6c6d0620, 0x1c4f3: 0x6cd0a020,
-	0x1c4f4: 0x6c40f620, 0x1c4f5: 0x6c7daa20, 0x1c4f6: 0x6c2c4820, 0x1c4f7: 0x6c29d820,
-	0x1c4f8: 0x6c5dc620, 0x1c4f9: 0x6ce22820, 0x1c4fa: 0x6cb5ee20, 0x1c4fb: 0x6c481620,
-	0x1c4fc: 0x6c498a20, 0x1c4fd: 0x6d41b420, 0x1c4fe: 0x6c8d0820, 0x1c4ff: 0x6c925a20,
-	// Block 0x714, offset 0x1c500
-	0x1c500: 0x6c0de820, 0x1c501: 0x6c6d1a20, 0x1c502: 0x6c29da20, 0x1c503: 0x6d346620,
-	0x1c504: 0x6c925820, 0x1c505: 0x6c14f820, 0x1c506: 0x6c06a620, 0x1c507: 0x6d30d820,
-	0x1c508: 0x6c5aca20, 0x1c509: 0x6d1fd620, 0x1c50a: 0x6cf8a220, 0x1c50b: 0x6d19ee20,
-	0x1c50c: 0x6d3e5420, 0x1c50d: 0x6c5dd420, 0x1c50e: 0x6d316e20, 0x1c50f: 0x6c3e9c20,
-	0x1c510: 0x6d262420, 0x1c511: 0x6cf3d020, 0x1c512: 0x6cfc1820, 0x1c513: 0x6d0fca20,
-	0x1c514: 0x6d33f420, 0x1c515: 0x6d13fc20, 0x1c516: 0x6c9a1220, 0x1c517: 0x6cd7f820,
-	0x1c518: 0x6c2c6c20, 0x1c519: 0x6c077a20, 0x1c51a: 0x6d3d8220, 0x1c51b: 0x6d318420,
-	0x1c51c: 0x6d1e5620, 0x1c51d: 0x6c606c20, 0x1c51e: 0x6c435220, 0x1c51f: 0x6ce11a20,
-	0x1c520: 0x6cd80420, 0x1c521: 0x6c96d020, 0x1c522: 0x6cde7820, 0x1c523: 0x6c40b620,
-	0x1c524: 0x6d07bc20, 0x1c525: 0x6cb63c20, 0x1c526: 0x6d241420, 0x1c527: 0x6cf81220,
-	0x1c528: 0x6c5f3a20, 0x1c529: 0x6cd8e020, 0x1c52a: 0x6c152820, 0x1c52b: 0x6c28b420,
-	0x1c52c: 0x6c4b8020, 0x1c52d: 0x6cdc7820, 0x1c52e: 0x6c853820, 0x1c52f: 0x6ca9d020,
-	0x1c530: 0x6c9c8a20, 0x1c531: 0x6c29f820, 0x1c532: 0x6c86d620, 0x1c533: 0x6cc4ee20,
-	0x1c534: 0x6d271620, 0x1c535: 0x6ce3b420, 0x1c536: 0x6d29c220, 0x1c537: 0x6c836420,
-	0x1c538: 0x6cc74020, 0x1c539: 0x6d222e20, 0x1c53a: 0x6d20dc20, 0x1c53b: 0x6c83ae20,
-	0x1c53c: 0x6d019820, 0x1c53d: 0x6cbd7620, 0x1c53e: 0x6c50b220, 0x1c53f: 0x6ce83c20,
-	// Block 0x715, offset 0x1c540
-	0x1c540: 0x6d052c20, 0x1c541: 0x6cd7c620, 0x1c542: 0x6cc56c20, 0x1c543: 0x6ce83e20,
-	0x1c544: 0x6d3ef020, 0x1c545: 0x6c13c820, 0x1c546: 0x6c41cc20, 0x1c547: 0x6d16cc20,
-	0x1c548: 0x6cfa8220, 0x1c549: 0x6c0dc620, 0x1c54a: 0x6ca6f620, 0x1c54b: 0x6cbfa620,
-	0x1c54c: 0x6cbfa820, 0x1c54d: 0x6d37e820, 0x1c54e: 0x6c3bd420, 0x1c54f: 0x6c502220,
-	0x1c550: 0x6d279020, 0x1c551: 0x6c77e620, 0x1c552: 0x6c9e8c20, 0x1c553: 0x6d33ae20,
-	0x1c554: 0x6c6d9820, 0x1c555: 0x6c08c820, 0x1c556: 0x6d33b020, 0x1c557: 0x6d22e620,
-	0x1c558: 0x6c9d3420, 0x1c559: 0x6c7a8a20, 0x1c55a: 0x6c04f420, 0x1c55b: 0x6caf5620,
-	0x1c55c: 0x6ca5ce20, 0x1c55d: 0x6c85da20, 0x1c55e: 0x6d1f1a20, 0x1c55f: 0x6d409a20,
-	0x1c560: 0x6caf5820, 0x1c561: 0x6c0edc20, 0x1c562: 0x6c8cd020, 0x1c563: 0x6ca0fc20,
-	0x1c564: 0x6c1a8020, 0x1c565: 0x6ca6fe20, 0x1c566: 0x6cbd6620, 0x1c567: 0x6d0f5620,
-	0x1c568: 0x6d423220, 0x1c569: 0x6d35c420, 0x1c56a: 0x6d33ca20, 0x1c56b: 0x6cd52420,
-	0x1c56c: 0x6c721a20, 0x1c56d: 0x6d3ef620, 0x1c56e: 0x6c5d7220, 0x1c56f: 0x6c5ea820,
-	0x1c570: 0x6c196220, 0x1c571: 0x6ce74220, 0x1c572: 0x6d35f820, 0x1c573: 0x6c5d7620,
-	0x1c574: 0x6c511220, 0x1c575: 0x6d19ce20, 0x1c576: 0x6d3e2620, 0x1c577: 0x6d35fa20,
-	0x1c578: 0x6c6a0220, 0x1c579: 0x6cc59420, 0x1c57a: 0x6c325020, 0x1c57b: 0x6d14e820,
-	0x1c57c: 0x6d399e20, 0x1c57d: 0x6c5bb820, 0x1c57e: 0x6ca9ba20, 0x1c57f: 0x6c3ff420,
-	// Block 0x716, offset 0x1c580
-	0x1c580: 0x6cf62020, 0x1c581: 0x6c77aa20, 0x1c582: 0x6c80ca20, 0x1c583: 0x6c3d7420,
-	0x1c584: 0x6d0a9020, 0x1c585: 0x6cd72020, 0x1c586: 0x6c939420, 0x1c587: 0x6c7dae20,
-	0x1c588: 0x6c41da20, 0x1c589: 0x6c6db820, 0x1c58a: 0x6ce32e20, 0x1c58b: 0x6c1a0c20,
-	0x1c58c: 0x6ce8b420, 0x1c58d: 0x6cce7020, 0x1c58e: 0x6cd72220, 0x1c58f: 0x6d0bc020,
-	0x1c590: 0x6c951a20, 0x1c591: 0x6c927020, 0x1c592: 0x6c481c20, 0x1c593: 0x6d424420,
-	0x1c594: 0x6cc59a20, 0x1c595: 0x6d3ce620, 0x1c596: 0x6c057c20, 0x1c597: 0x6c044a20,
-	0x1c598: 0x6c5eec20, 0x1c599: 0x6d33f620, 0x1c59a: 0x6d366020, 0x1c59b: 0x6c7db420,
-	0x1c59c: 0x6c837e20, 0x1c59d: 0x6caeac20, 0x1c59e: 0x6c780a20, 0x1c59f: 0x6c0dea20,
-	0x1c5a0: 0x6c1dbe20, 0x1c5a1: 0x6d41b620, 0x1c5a2: 0x6d237420, 0x1c5a3: 0x6cda5220,
-	0x1c5a4: 0x6c94ae20, 0x1c5a5: 0x6cfd8020, 0x1c5a6: 0x6d140620, 0x1c5a7: 0x6cf8b620,
-	0x1c5a8: 0x6c0b4620, 0x1c5a9: 0x6c624820, 0x1c5aa: 0x6c3ec420, 0x1c5ab: 0x6cb0b020,
-	0x1c5ac: 0x6cab0820, 0x1c5ad: 0x6c6a2c20, 0x1c5ae: 0x6d380420, 0x1c5af: 0x6d3fa820,
-	0x1c5b0: 0x6d064e20, 0x1c5b1: 0x6c197e20, 0x1c5b2: 0x6c2a2220, 0x1c5b3: 0x6cf1e820,
-	0x1c5b4: 0x6cfb8220, 0x1c5b5: 0x6d3e6820, 0x1c5b6: 0x6d23c820, 0x1c5b7: 0x6c626420,
-	0x1c5b8: 0x6d072e20, 0x1c5b9: 0x6d31f420, 0x1c5ba: 0x6d36b820, 0x1c5bb: 0x6c2a2a20,
-	0x1c5bc: 0x6c645420, 0x1c5bd: 0x6c5f1820, 0x1c5be: 0x6c431820, 0x1c5bf: 0x6c431a20,
-	// Block 0x717, offset 0x1c5c0
-	0x1c5c0: 0x6c47c420, 0x1c5c1: 0x6cc6a020, 0x1c5c2: 0x6cdc6020, 0x1c5c3: 0x6cc73c20,
-	0x1c5c4: 0x6c627a20, 0x1c5c5: 0x6c775220, 0x1c5c6: 0x6ca2ac20, 0x1c5c7: 0x6c11dc20,
-	0x1c5c8: 0x6c9a2620, 0x1c5c9: 0x6d370c20, 0x1c5ca: 0x6c624a20, 0x1c5cb: 0x6c92d620,
-	0x1c5cc: 0x6cda5a20, 0x1c5cd: 0x6c5f3c20, 0x1c5ce: 0x6d1d0c20, 0x1c5cf: 0x6cf1f020,
-	0x1c5d0: 0x6cbfc420, 0x1c5d1: 0x6ccb6020, 0x1c5d2: 0x6c51e620, 0x1c5d3: 0x6d18aa20,
-	0x1c5d4: 0x6c59fe20, 0x1c5d5: 0x6cbce620, 0x1c5d6: 0x6c615620, 0x1c5d7: 0x6cdc8820,
-	0x1c5d8: 0x6cff2020, 0x1c5d9: 0x6cb45e20, 0x1c5da: 0x6c688420, 0x1c5db: 0x6d3d0c20,
-	0x1c5dc: 0x6d380c20, 0x1c5dd: 0x6d41e620, 0x1c5de: 0x6c93ba20, 0x1c5df: 0x6cdc8c20,
-	0x1c5e0: 0x6ca9d420, 0x1c5e1: 0x6ccb7820, 0x1c5e2: 0x6c5c6c20, 0x1c5e3: 0x6cc4de20,
-	0x1c5e4: 0x6cab1e20, 0x1c5e5: 0x6d243420, 0x1c5e6: 0x6cb1f820, 0x1c5e7: 0x6c62bc20,
-	0x1c5e8: 0x6ce9ce20, 0x1c5e9: 0x6cf1f420, 0x1c5ea: 0x6c199e20, 0x1c5eb: 0x6c5e1a20,
-	0x1c5ec: 0x6c7c1820, 0x1c5ed: 0x6c93c020, 0x1c5ee: 0x6c0c4c20, 0x1c5ef: 0x6ccba820,
-	0x1c5f0: 0x6cc4f420, 0x1c5f1: 0x6d3d1620, 0x1c5f2: 0x6c84d420, 0x1c5f3: 0x6c24aa20,
-	0x1c5f4: 0x6d08f220, 0x1c5f5: 0x6cebc420, 0x1c5f6: 0x6c6f5620, 0x1c5f7: 0x6cbefa20,
-	0x1c5f8: 0x6cf59020, 0x1c5f9: 0x6cbefe20, 0x1c5fa: 0x6c796820, 0x1c5fb: 0x6d207a20,
-	0x1c5fc: 0x6ccfc020, 0x1c5fd: 0x6c6e1a20, 0x1c5fe: 0x6d11f220, 0x1c5ff: 0x6c1fe020,
-	// Block 0x718, offset 0x1c600
-	0x1c600: 0x6d3cce20, 0x1c601: 0x6ce84420, 0x1c602: 0x6c814620, 0x1c603: 0x6cbca020,
-	0x1c604: 0x6d2d2820, 0x1c605: 0x6d11a020, 0x1c606: 0x6c0b3020, 0x1c607: 0x6c05c420,
-	0x1c608: 0x6d11a220, 0x1c609: 0x6c0ddc20, 0x1c60a: 0x6cebd420, 0x1c60b: 0x6d3a0820,
-	0x1c60c: 0x6c699020, 0x1c60d: 0x6cbc3a20, 0x1c60e: 0x6c2e1020, 0x1c60f: 0x6cf36620,
-	0x1c610: 0x6c4a5e20, 0x1c611: 0x6d10ea20, 0x1c612: 0x6d35fc20, 0x1c613: 0x6c205020,
-	0x1c614: 0x6d120220, 0x1c615: 0x6ce5c220, 0x1c616: 0x6c69a020, 0x1c617: 0x6c205220,
-	0x1c618: 0x6c6f1220, 0x1c619: 0x6cfeca20, 0x1c61a: 0x6c19f020, 0x1c61b: 0x6c79ec20,
-	0x1c61c: 0x6c24ac20, 0x1c61d: 0x6cf29420, 0x1c61e: 0x6c289420, 0x1c61f: 0x6c7a4a20,
-	0x1c620: 0x6c780c20, 0x1c621: 0x6d3d7020, 0x1c622: 0x6d05b420, 0x1c623: 0x6cda5420,
-	0x1c624: 0x6c491c20, 0x1c625: 0x6c7c3e20, 0x1c626: 0x6c312420, 0x1c627: 0x6d3dfa20,
-	0x1c628: 0x6d09a020, 0x1c629: 0x6cf29620, 0x1c62a: 0x6cebea20, 0x1c62b: 0x6d0bc620,
-	0x1c62c: 0x6d217820, 0x1c62d: 0x6c726a20, 0x1c62e: 0x6cbf5220, 0x1c62f: 0x6d113a20,
-	0x1c630: 0x6d113c20, 0x1c631: 0x6ce5cc20, 0x1c632: 0x6c177820, 0x1c633: 0x6d228020,
-	0x1c634: 0x6ce4bc20, 0x1c635: 0x6c2e3e20, 0x1c636: 0x6c729220, 0x1c637: 0x6c8aa820,
-	0x1c638: 0x6cf6ce20, 0x1c639: 0x6cf52220, 0x1c63a: 0x6c7c4420, 0x1c63b: 0x6c206220,
-	0x1c63c: 0x6d2f7220, 0x1c63d: 0x6c7b7c20, 0x1c63e: 0x6c7b7420, 0x1c63f: 0x6c907420,
-	// Block 0x719, offset 0x1c640
-	0x1c640: 0x6c199c20, 0x1c641: 0x6c256c20, 0x1c642: 0x6cb18420, 0x1c643: 0x6d2a9420,
-	0x1c644: 0x6c24ba20, 0x1c645: 0x6cbc6820, 0x1c646: 0x6cbf7820, 0x1c647: 0x6c314c20,
-	0x1c648: 0x6d2a9e20, 0x1c649: 0x6c904620, 0x1c64a: 0x6cbd0a20, 0x1c64b: 0x6c856c20,
-	0x1c64c: 0x6c1f0a20, 0x1c64d: 0x6cd40c20, 0x1c64e: 0x6c3fb820, 0x1c64f: 0x6cba9220,
-	0x1c650: 0x6c1f1c20, 0x1c651: 0x6c531820, 0x1c652: 0x6cb59820, 0x1c653: 0x6c508620,
-	0x1c654: 0x6cd18420, 0x1c655: 0x6c3c0820, 0x1c656: 0x6cd5b220, 0x1c657: 0x6c9eb020,
-	0x1c658: 0x6cc24020, 0x1c659: 0x6d2e5220, 0x1c65a: 0x6d3adc20, 0x1c65b: 0x6c8cd420,
-	0x1c65c: 0x6c8f8220, 0x1c65d: 0x6c0e1620, 0x1c65e: 0x6c6e6a20, 0x1c65f: 0x6c6e7e20,
-	0x1c660: 0x6d2eb620, 0x1c661: 0x6c046620, 0x1c662: 0x6cd8c220, 0x1c663: 0x6c75c020,
-	0x1c664: 0x6c534e20, 0x1c665: 0x6ce74a20, 0x1c666: 0x6cd95a20, 0x1c667: 0x6c6e8820,
-	0x1c668: 0x6c2e2e20, 0x1c669: 0x6d17f820, 0x1c66a: 0x6cd5e820, 0x1c66b: 0x6c6e7820,
-	0x1c66c: 0x6cc24c20, 0x1c66d: 0x6c6b1020, 0x1c66e: 0x6cb26020, 0x1c66f: 0x6c329e20,
-	0x1c670: 0x6ccea620, 0x1c671: 0x6d3bac20, 0x1c672: 0x6c136220, 0x1c673: 0x6c2ab020,
-	0x1c674: 0x6c259e20, 0x1c675: 0x6cec5a20, 0x1c676: 0x6c6ec020, 0x1c677: 0x6c76fa20,
-	0x1c678: 0x6c6ec420, 0x1c679: 0x6d39f020, 0x1c67a: 0x6d39f620, 0x1c67b: 0x6c821a20,
-	0x1c67c: 0x6cae9220, 0x1c67d: 0x6d20e020, 0x1c67e: 0x6c1b0e20, 0x1c67f: 0x6c418820,
-	// Block 0x71a, offset 0x1c680
-	0x1c680: 0x6c984220, 0x1c681: 0x6d39fe20, 0x1c682: 0x6cedb820, 0x1c683: 0x6c321220,
-	0x1c684: 0x6c5eac20, 0x1c685: 0x6cff7420, 0x1c686: 0x6c03f020, 0x1c687: 0x6cdb9820,
-	0x1c688: 0x6c5ffc20, 0x1c689: 0x6cbdce20, 0x1c68a: 0x6d2faa20, 0x1c68b: 0x6cdce820,
-	0x1c68c: 0x6d0b2020, 0x1c68d: 0x6d3c7e20, 0x1c68e: 0x6d255220, 0x1c68f: 0x6c568420,
-	0x1c690: 0x6c4f6820, 0x1c691: 0x6cffe220, 0x1c692: 0x6c132e20, 0x1c693: 0x6c096c20,
-	0x1c694: 0x6c08d020, 0x1c695: 0x6c658020, 0x1c696: 0x6d15de20, 0x1c697: 0x6c2ffc20,
-	0x1c698: 0x6ccce220, 0x1c699: 0x6cd0fe20, 0x1c69a: 0x6c264820, 0x1c69b: 0x6c2b6c20,
-	0x1c69c: 0x6d3a0e20, 0x1c69d: 0x6ca33420, 0x1c69e: 0x6c1aac20, 0x1c69f: 0x6c470620,
-	0x1c6a0: 0x6c85f620, 0x1c6a1: 0x6cbcba20, 0x1c6a2: 0x6c9faa20, 0x1c6a3: 0x6c05ae20,
-	0x1c6a4: 0x6ce58220, 0x1c6a5: 0x6cd8b620, 0x1c6a6: 0x6c3e5820, 0x1c6a7: 0x6c12de20,
-	0x1c6a8: 0x6c07b420, 0x1c6a9: 0x6cae1a20, 0x1c6aa: 0x6c26a020, 0x1c6ab: 0x6d3f0620,
-	0x1c6ac: 0x6c2c4a20, 0x1c6ad: 0x6c8cee20, 0x1c6ae: 0x6d2ac420, 0x1c6af: 0x6caa4220,
-	0x1c6b0: 0x6c3e5a20, 0x1c6b1: 0x6c467e20, 0x1c6b2: 0x6c389620, 0x1c6b3: 0x6c634e20,
-	0x1c6b4: 0x6c41d820, 0x1c6b5: 0x6c394820, 0x1c6b6: 0x6cd2cc20, 0x1c6b7: 0x6c993820,
-	0x1c6b8: 0x6cb35620, 0x1c6b9: 0x6ce45020, 0x1c6ba: 0x6c648a20, 0x1c6bb: 0x6cbf1820,
-	0x1c6bc: 0x6c8f8a20, 0x1c6bd: 0x6c9fe420, 0x1c6be: 0x6c0af020, 0x1c6bf: 0x6c960420,
-	// Block 0x71b, offset 0x1c6c0
-	0x1c6c0: 0x6c4b4c20, 0x1c6c1: 0x6cc10c20, 0x1c6c2: 0x6c1b2620, 0x1c6c3: 0x6d19e220,
-	0x1c6c4: 0x6d120820, 0x1c6c5: 0x6cfc0e20, 0x1c6c6: 0x6c08e220, 0x1c6c7: 0x6cbf1a20,
-	0x1c6c8: 0x6c7dfa20, 0x1c6c9: 0x6c2acc20, 0x1c6ca: 0x6cff8c20, 0x1c6cb: 0x6c6c4620,
-	0x1c6cc: 0x6cc2f420, 0x1c6cd: 0x6cdcec20, 0x1c6ce: 0x6cc7ae20, 0x1c6cf: 0x6c381420,
-	0x1c6d0: 0x6c7b9e20, 0x1c6d1: 0x6d3af620, 0x1c6d2: 0x6ce7b820, 0x1c6d3: 0x6c5ed820,
-	0x1c6d4: 0x6c26a820, 0x1c6d5: 0x6c4f7a20, 0x1c6d6: 0x6c12ee20, 0x1c6d7: 0x6d383020,
-	0x1c6d8: 0x6c79ee20, 0x1c6d9: 0x6c7f0e20, 0x1c6da: 0x6c09a820, 0x1c6db: 0x6ccc8a20,
-	0x1c6dc: 0x6c28fe20, 0x1c6dd: 0x6d32c820, 0x1c6de: 0x6c12fa20, 0x1c6df: 0x6c3d7e20,
-	0x1c6e0: 0x6d27b420, 0x1c6e1: 0x6ce8c620, 0x1c6e2: 0x6cabd820, 0x1c6e3: 0x6c83ec20,
-	0x1c6e4: 0x6c80d020, 0x1c6e5: 0x6c71ba20, 0x1c6e6: 0x6c495820, 0x1c6e7: 0x6c65b020,
-	0x1c6e8: 0x6c4e1e20, 0x1c6e9: 0x6ce75620, 0x1c6ea: 0x6cf9d620, 0x1c6eb: 0x6d366220,
-	0x1c6ec: 0x6c1a0e20, 0x1c6ed: 0x6cdb9a20, 0x1c6ee: 0x6cd39e20, 0x1c6ef: 0x6d3b0c20,
-	0x1c6f0: 0x6d424620, 0x1c6f1: 0x6cffb020, 0x1c6f2: 0x6cce7620, 0x1c6f3: 0x6ce67620,
-	0x1c6f4: 0x6c12fc20, 0x1c6f5: 0x6d0c9e20, 0x1c6f6: 0x6c435020, 0x1c6f7: 0x6c7b2c20,
-	0x1c6f8: 0x6c41a020, 0x1c6f9: 0x6c1dc020, 0x1c6fa: 0x6c7c2e20, 0x1c6fb: 0x6c42aa20,
-	0x1c6fc: 0x6d27b620, 0x1c6fd: 0x6cab2a20, 0x1c6fe: 0x6cb8f420, 0x1c6ff: 0x6cffb220,
-	// Block 0x71c, offset 0x1c700
-	0x1c700: 0x6c65b220, 0x1c701: 0x6cb3de20, 0x1c702: 0x6c7f1c20, 0x1c703: 0x6d405c20,
-	0x1c704: 0x6c08ec20, 0x1c705: 0x6c0a0420, 0x1c706: 0x6c0a0620, 0x1c707: 0x6c448c20,
-	0x1c708: 0x6cdf3020, 0x1c709: 0x6c48e020, 0x1c70a: 0x6d209420, 0x1c70b: 0x6c64cc20,
-	0x1c70c: 0x6c2a2420, 0x1c70d: 0x6c472420, 0x1c70e: 0x6c1b4420, 0x1c70f: 0x6d32e220,
-	0x1c710: 0x6cbed220, 0x1c711: 0x6ccc6820, 0x1c712: 0x6d38ec20, 0x1c713: 0x6c928e20,
-	0x1c714: 0x6c0f3020, 0x1c715: 0x6c5f0a20, 0x1c716: 0x6c8bc420, 0x1c717: 0x6cdb9e20,
-	0x1c718: 0x6c75d420, 0x1c719: 0x6c3ec820, 0x1c71a: 0x6d2c4220, 0x1c71b: 0x6c472620,
-	0x1c71c: 0x6c798620, 0x1c71d: 0x6cb9b220, 0x1c71e: 0x6cb90a20, 0x1c71f: 0x6c75d620,
-	0x1c720: 0x6c20dc20, 0x1c721: 0x6c495a20, 0x1c722: 0x6d250420, 0x1c723: 0x6c130820,
-	0x1c724: 0x6d40cc20, 0x1c725: 0x6c0fe620, 0x1c726: 0x6d2ae420, 0x1c727: 0x6cbcd620,
-	0x1c728: 0x6cebb020, 0x1c729: 0x6c954e20, 0x1c72a: 0x6c27ec20, 0x1c72b: 0x6cfef420,
-	0x1c72c: 0x6cc92620, 0x1c72d: 0x6c66ba20, 0x1c72e: 0x6d07c020, 0x1c72f: 0x6c0b0020,
-	0x1c730: 0x6cdcfc20, 0x1c731: 0x6cfd8620, 0x1c732: 0x6cfc2420, 0x1c733: 0x6cb2c620,
-	0x1c734: 0x6d318c20, 0x1c735: 0x6d039420, 0x1c736: 0x6c559420, 0x1c737: 0x6d154a20,
-	0x1c738: 0x6d3b1420, 0x1c739: 0x6d265820, 0x1c73a: 0x6c211020, 0x1c73b: 0x6c93f620,
-	0x1c73c: 0x6cf37e20, 0x1c73d: 0x6c303820, 0x1c73e: 0x6cd79a20, 0x1c73f: 0x6c609020,
-	// Block 0x71d, offset 0x1c740
-	0x1c740: 0x6c6af220, 0x1c741: 0x6c59ee20, 0x1c742: 0x6d039620, 0x1c743: 0x6c9aa820,
-	0x1c744: 0x6c396a20, 0x1c745: 0x6c200a20, 0x1c746: 0x6d3bde20, 0x1c747: 0x6cb0fc20,
-	0x1c748: 0x6c3c6220, 0x1c749: 0x6d3a2820, 0x1c74a: 0x6c59f020, 0x1c74b: 0x6cbce020,
-	0x1c74c: 0x6c542420, 0x1c74d: 0x6cbfbe20, 0x1c74e: 0x6c9e9a20, 0x1c74f: 0x6cba7620,
-	0x1c750: 0x6c483c20, 0x1c751: 0x6c7d1020, 0x1c752: 0x6cd41c20, 0x1c753: 0x6c90f420,
-	0x1c754: 0x6d27c820, 0x1c755: 0x6c517020, 0x1c756: 0x6ce13420, 0x1c757: 0x6d26ee20,
-	0x1c758: 0x6c1d7e20, 0x1c759: 0x6c42de20, 0x1c75a: 0x6c3a7020, 0x1c75b: 0x6cc92e20,
-	0x1c75c: 0x6d32f420, 0x1c75d: 0x6c465e20, 0x1c75e: 0x6ca87220, 0x1c75f: 0x6cba7e20,
-	0x1c760: 0x6cffbc20, 0x1c761: 0x6c24b420, 0x1c762: 0x6c903820, 0x1c763: 0x6caec620,
-	0x1c764: 0x6c322e20, 0x1c765: 0x6c867e20, 0x1c766: 0x6c0a5420, 0x1c767: 0x6d3d9e20,
-	0x1c768: 0x6c1ea820, 0x1c769: 0x6ccc9020, 0x1c76a: 0x6c1b5220, 0x1c76b: 0x6d3b2c20,
-	0x1c76c: 0x6cbada20, 0x1c76d: 0x6c8fae20, 0x1c76e: 0x6c7fb620, 0x1c76f: 0x6c64fa20,
-	0x1c770: 0x6c10ba20, 0x1c771: 0x6c844220, 0x1c772: 0x6c5c5820, 0x1c773: 0x6c0a5620,
-	0x1c774: 0x6c2b9020, 0x1c775: 0x6c236420, 0x1c776: 0x6d0c3620, 0x1c777: 0x6caf2020,
-	0x1c778: 0x6c11e020, 0x1c779: 0x6d3be620, 0x1c77a: 0x6cb02220, 0x1c77b: 0x6cb19e20,
-	0x1c77c: 0x6c30c820, 0x1c77d: 0x6d243620, 0x1c77e: 0x6c9ef820, 0x1c77f: 0x6ce96020,
-	// Block 0x71e, offset 0x1c780
-	0x1c780: 0x6d2b1020, 0x1c781: 0x6ccc9220, 0x1c782: 0x6c4b8420, 0x1c783: 0x6d156e20,
-	0x1c784: 0x6c56cc20, 0x1c785: 0x6c15e620, 0x1c786: 0x6c7a0820, 0x1c787: 0x6c246820,
-	0x1c788: 0x6cb2d620, 0x1c789: 0x6d2a9020, 0x1c78a: 0x6c5f5620, 0x1c78b: 0x6c4b1c20,
-	0x1c78c: 0x6cdb3820, 0x1c78d: 0x6c90fc20, 0x1c78e: 0x6c131a20, 0x1c78f: 0x6c92e820,
-	0x1c790: 0x6ca73e20, 0x1c791: 0x6cdd3820, 0x1c792: 0x6c24b620, 0x1c793: 0x6c2e5420,
-	0x1c794: 0x6cdd4020, 0x1c795: 0x6c822a20, 0x1c796: 0x6c32dc20, 0x1c797: 0x6c89d020,
-	0x1c798: 0x6cff2220, 0x1c799: 0x6c0f9420, 0x1c79a: 0x6c9da020, 0x1c79b: 0x6ccc9420,
-	0x1c79c: 0x6c299c20, 0x1c79d: 0x6c8a3620, 0x1c79e: 0x6c280c20, 0x1c79f: 0x6c2d8e20,
-	0x1c7a0: 0x6c3f9020, 0x1c7a1: 0x6c65f820, 0x1c7a2: 0x6c9fd020, 0x1c7a3: 0x6c7d2820,
-	0x1c7a4: 0x6c27a020, 0x1c7a5: 0x6c689820, 0x1c7a6: 0x6c2ab620, 0x1c7a7: 0x6c5a0c20,
-	0x1c7a8: 0x6cdd0020, 0x1c7a9: 0x6c818220, 0x1c7aa: 0x6d295220, 0x1c7ab: 0x6cff3c20,
-	0x1c7ac: 0x6c931e20, 0x1c7ad: 0x6cd3f620, 0x1c7ae: 0x6d295420, 0x1c7af: 0x6cb81c20,
-	0x1c7b0: 0x6cac0a20, 0x1c7b1: 0x6cb81e20, 0x1c7b2: 0x6cac0c20, 0x1c7b3: 0x6c41f620,
-	0x1c7b4: 0x6c72b220, 0x1c7b5: 0x6c328a20, 0x1c7b6: 0x6c930620, 0x1c7b7: 0x6d0cf220,
-	0x1c7b8: 0x6c0fea20, 0x1c7b9: 0x6c291820, 0x1c7ba: 0x6cc9ec20, 0x1c7bb: 0x6d3b5e20,
-	0x1c7bc: 0x6c8fca20, 0x1c7bd: 0x6cb94020, 0x1c7be: 0x6c888420, 0x1c7bf: 0x6c10cc20,
-	// Block 0x71f, offset 0x1c7c0
-	0x1c7c0: 0x6d396220, 0x1c7c1: 0x6c7f6e20, 0x1c7c2: 0x6cd42020, 0x1c7c3: 0x6c7fec20,
-	0x1c7c4: 0x6c7d3420, 0x1c7c5: 0x6d21d620, 0x1c7c6: 0x6d270420, 0x1c7c7: 0x6c500020,
-	0x1c7c8: 0x6d31a220, 0x1c7c9: 0x6cdf5020, 0x1c7ca: 0x6ce43e20, 0x1c7cb: 0x6ca8a420,
-	0x1c7cc: 0x6c1e0420, 0x1c7cd: 0x6c60ec20, 0x1c7ce: 0x6d199820, 0x1c7cf: 0x6cb82020,
-	0x1c7d0: 0x6ce2ca20, 0x1c7d1: 0x6d3c0020, 0x1c7d2: 0x6d396820, 0x1c7d3: 0x6c387020,
-	0x1c7d4: 0x6cda3c20, 0x1c7d5: 0x6d396620, 0x1c7d6: 0x6cba9820, 0x1c7d7: 0x6d3de020,
-	0x1c7d8: 0x6ce2d420, 0x1c7d9: 0x6c933a20, 0x1c7da: 0x6c919420, 0x1c7db: 0x6c662a20,
-	0x1c7dc: 0x6cebbe20, 0x1c7dd: 0x6d1cd420, 0x1c7de: 0x6d248620, 0x1c7df: 0x6c7f7e20,
-	0x1c7e0: 0x6c8ff420, 0x1c7e1: 0x6cbd1620, 0x1c7e2: 0x6c88a220, 0x1c7e3: 0x6c800a20,
-	0x1c7e4: 0x6cb95c20, 0x1c7e5: 0x6d272020, 0x1c7e6: 0x6d37e420, 0x1c7e7: 0x6cc20e20,
-	0x1c7e8: 0x6c88a420, 0x1c7e9: 0x6c0b2820, 0x1c7ea: 0x6c32ea20, 0x1c7eb: 0x6d415a20,
-	0x1c7ec: 0x6c84d620, 0x1c7ed: 0x6cd86220, 0x1c7ee: 0x6c958e20, 0x1c7ef: 0x6d1cde20,
-	0x1c7f0: 0x6d273820, 0x1c7f1: 0x6d3df220, 0x1c7f2: 0x6d24ae20, 0x1c7f3: 0x6c9cd620,
-	0x1c7f4: 0x6c2b5820, 0x1c7f5: 0x6c388a20, 0x1c7f6: 0x6ccfb020, 0x1c7f7: 0x6d302820,
-	0x1c7f8: 0x6ccfc220, 0x1c7f9: 0x6caa7220, 0x1c7fa: 0x6c50e220, 0x1c7fb: 0x6c832420,
-	0x1c7fc: 0x6cfa8e20, 0x1c7fd: 0x6d3efa20, 0x1c7fe: 0x6ca5c620, 0x1c7ff: 0x6c25b420,
-	// Block 0x720, offset 0x1c800
-	0x1c800: 0x6d2f4620, 0x1c801: 0x6cb8c020, 0x1c802: 0x6d2d5a20, 0x1c803: 0x6c08d220,
-	0x1c804: 0x6c04c620, 0x1c805: 0x6cf4d820, 0x1c806: 0x6ccbde20, 0x1c807: 0x6c772a20,
-	0x1c808: 0x6cc77620, 0x1c809: 0x6c3bba20, 0x1c80a: 0x6c096e20, 0x1c80b: 0x6c252620,
-	0x1c80c: 0x6d1b9a20, 0x1c80d: 0x6d304020, 0x1c80e: 0x6c1b9020, 0x1c80f: 0x6cdf8620,
-	0x1c810: 0x6c56fa20, 0x1c811: 0x6c033c20, 0x1c812: 0x6c85f820, 0x1c813: 0x6c419620,
-	0x1c814: 0x6c722e20, 0x1c815: 0x6cb38420, 0x1c816: 0x6ca10c20, 0x1c817: 0x6c241020,
-	0x1c818: 0x6d2d6e20, 0x1c819: 0x6d392220, 0x1c81a: 0x6c83c620, 0x1c81b: 0x6cdaac20,
-	0x1c81c: 0x6ce5d620, 0x1c81d: 0x6c85fa20, 0x1c81e: 0x6cf62220, 0x1c81f: 0x6cdab620,
-	0x1c820: 0x6c535020, 0x1c821: 0x6ce74c20, 0x1c822: 0x6d3e4420, 0x1c823: 0x6c12e020,
-	0x1c824: 0x6d26bc20, 0x1c825: 0x6d388620, 0x1c826: 0x6c8bb820, 0x1c827: 0x6d3c1a20,
-	0x1c828: 0x6c042220, 0x1c829: 0x6c81f620, 0x1c82a: 0x6c3bda20, 0x1c82b: 0x6c375820,
-	0x1c82c: 0x6cc10e20, 0x1c82d: 0x6c521620, 0x1c82e: 0x6c895a20, 0x1c82f: 0x6cfcd820,
-	0x1c830: 0x6c3ea020, 0x1c831: 0x6c895c20, 0x1c832: 0x6c11fa20, 0x1c833: 0x6c6dc220,
-	0x1c834: 0x6c851c20, 0x1c835: 0x6d26c620, 0x1c836: 0x6c929020, 0x1c837: 0x6c714020,
-	0x1c838: 0x6cb61e20, 0x1c839: 0x6c254e20, 0x1c83a: 0x6c045220, 0x1c83b: 0x6d2ece20,
-	0x1c83c: 0x6c8bc620, 0x1c83d: 0x6d402620, 0x1c83e: 0x6c6dcc20, 0x1c83f: 0x6c4cc420,
-	// Block 0x721, offset 0x1c840
-	0x1c840: 0x6c57e020, 0x1c841: 0x6cca2220, 0x1c842: 0x6cca2620, 0x1c843: 0x6ce12a20,
-	0x1c844: 0x6c0b4c20, 0x1c845: 0x6cc75c20, 0x1c846: 0x6c9e5c20, 0x1c847: 0x6c542620,
-	0x1c848: 0x6d065220, 0x1c849: 0x6d402a20, 0x1c84a: 0x6c56fe20, 0x1c84b: 0x6c66be20,
-	0x1c84c: 0x6d294e20, 0x1c84d: 0x6c225e20, 0x1c84e: 0x6c843020, 0x1c84f: 0x6d021a20,
-	0x1c850: 0x6c3da020, 0x1c851: 0x6cab1220, 0x1c852: 0x6c076020, 0x1c853: 0x6c47d020,
-	0x1c854: 0x6d052820, 0x1c855: 0x6c42e020, 0x1c856: 0x6ce13620, 0x1c857: 0x6cc0b220,
-	0x1c858: 0x6c645620, 0x1c859: 0x6c126a20, 0x1c85a: 0x6d3c2420, 0x1c85b: 0x6ce14020,
-	0x1c85c: 0x6c9c7c20, 0x1c85d: 0x6cca2c20, 0x1c85e: 0x6c3bf420, 0x1c85f: 0x6d2a2620,
-	0x1c860: 0x6c775620, 0x1c861: 0x6c67fe20, 0x1c862: 0x6ca07e20, 0x1c863: 0x6cca3020,
-	0x1c864: 0x6cca3220, 0x1c865: 0x6cab1c20, 0x1c866: 0x6cf70820, 0x1c867: 0x6c897420,
-	0x1c868: 0x6c680820, 0x1c869: 0x6c7b4620, 0x1c86a: 0x6c0ffa20, 0x1c86b: 0x6c58b620,
-	0x1c86c: 0x6cd63620, 0x1c86d: 0x6d403e20, 0x1c86e: 0x6cfd4020, 0x1c86f: 0x6cab2020,
-	0x1c870: 0x6ce97020, 0x1c871: 0x6ca8b820, 0x1c872: 0x6c873020, 0x1c873: 0x6d42b220,
-	0x1c874: 0x6c2bb820, 0x1c875: 0x6ca8ba20, 0x1c876: 0x6ce5e420, 0x1c877: 0x6c809820,
-	0x1c878: 0x6c9d1a20, 0x1c879: 0x6cd7c020, 0x1c87a: 0x6c6f5820, 0x1c87b: 0x6cf83e20,
-	0x1c87c: 0x6c456620, 0x1c87d: 0x6d331c20, 0x1c87e: 0x6c6f5e20, 0x1c87f: 0x6d201c20,
-	// Block 0x722, offset 0x1c880
-	0x1c880: 0x6c61b020, 0x1c881: 0x6c143a20, 0x1c882: 0x6d391020, 0x1c883: 0x6d09f020,
-	0x1c884: 0x6d264a20, 0x1c885: 0x6c531c20, 0x1c886: 0x6d207e20, 0x1c887: 0x6c50e420,
-	0x1c888: 0x6cecce20, 0x1c889: 0x6cc5d820, 0x1c88a: 0x6cf1d220, 0x1c88b: 0x6cf18c20,
-	0x1c88c: 0x6cc03620, 0x1c88d: 0x6ca32820, 0x1c88e: 0x6d3e1c20, 0x1c88f: 0x6ce80c20,
-	0x1c890: 0x6ca99020, 0x1c891: 0x6c3d1420, 0x1c892: 0x6c61d020, 0x1c893: 0x6cd4c020,
-	0x1c894: 0x6c213c20, 0x1c895: 0x6caf5a20, 0x1c896: 0x6d323220, 0x1c897: 0x6ccbe020,
-	0x1c898: 0x6c532e20, 0x1c899: 0x6d351220, 0x1c89a: 0x6c5ffe20, 0x1c89b: 0x6c3b2220,
-	0x1c89c: 0x6d279e20, 0x1c89d: 0x6cc5de20, 0x1c89e: 0x6c283220, 0x1c89f: 0x6c6c4020,
-	0x1c8a0: 0x6cda9420, 0x1c8a1: 0x6c39d220, 0x1c8a2: 0x6cdd5a20, 0x1c8a3: 0x6c252820,
-	0x1c8a4: 0x6c6fb820, 0x1c8a5: 0x6d288c20, 0x1c8a6: 0x6c03f220, 0x1c8a7: 0x6c6c8c20,
-	0x1c8a8: 0x6c3d6a20, 0x1c8a9: 0x6d35fe20, 0x1c8aa: 0x6c229820, 0x1c8ab: 0x6d3f1620,
-	0x1c8ac: 0x6c1da620, 0x1c8ad: 0x6c533e20, 0x1c8ae: 0x6d288e20, 0x1c8af: 0x6c833420,
-	0x1c8b0: 0x6cf87a20, 0x1c8b1: 0x6c3e5c20, 0x1c8b2: 0x6d019a20, 0x1c8b3: 0x6ccfe020,
-	0x1c8b4: 0x6c0e6c20, 0x1c8b5: 0x6d3ae820, 0x1c8b6: 0x6cc0fc20, 0x1c8b7: 0x6c8cf020,
-	0x1c8b8: 0x6d3aea20, 0x1c8b9: 0x6cced620, 0x1c8ba: 0x6c421e20, 0x1c8bb: 0x6d101420,
-	0x1c8bc: 0x6c3e5e20, 0x1c8bd: 0x6ceb1820, 0x1c8be: 0x6d31d420, 0x1c8bf: 0x6c275e20,
-	// Block 0x723, offset 0x1c8c0
-	0x1c8c0: 0x6c1f3420, 0x1c8c1: 0x6cd1b420, 0x1c8c2: 0x6d37b620, 0x1c8c3: 0x6cfb4e20,
-	0x1c8c4: 0x6d411a20, 0x1c8c5: 0x6c6ede20, 0x1c8c6: 0x6c04f820, 0x1c8c7: 0x6cc18c20,
-	0x1c8c8: 0x6ca10e20, 0x1c8c9: 0x6cd5c620, 0x1c8ca: 0x6d41ac20, 0x1c8cb: 0x6c7c2c20,
-	0x1c8cc: 0x6c6db020, 0x1c8cd: 0x6cc5f220, 0x1c8ce: 0x6c4f7c20, 0x1c8cf: 0x6d01b220,
-	0x1c8d0: 0x6c6ad620, 0x1c8d1: 0x6d39a820, 0x1c8d2: 0x6c1db420, 0x1c8d3: 0x6c48b620,
-	0x1c8d4: 0x6c042420, 0x1c8d5: 0x6c745420, 0x1c8d6: 0x6c7bf620, 0x1c8d7: 0x6c556220,
-	0x1c8d8: 0x6c22c620, 0x1c8d9: 0x6c587820, 0x1c8da: 0x6c44d220, 0x1c8db: 0x6ce1c820,
-	0x1c8dc: 0x6c6ad820, 0x1c8dd: 0x6c7a9a20, 0x1c8de: 0x6c68fc20, 0x1c8df: 0x6cc2f620,
-	0x1c8e0: 0x6c411620, 0x1c8e1: 0x6c960620, 0x1c8e2: 0x6d089620, 0x1c8e3: 0x6c07ee20,
-	0x1c8e4: 0x6cfcc620, 0x1c8e5: 0x6c3e8620, 0x1c8e6: 0x6c449420, 0x1c8e7: 0x6c307a20,
-	0x1c8e8: 0x6cc67a20, 0x1c8e9: 0x6ce5d820, 0x1c8ea: 0x6d19e420, 0x1c8eb: 0x6c82c220,
-	0x1c8ec: 0x6d01b420, 0x1c8ed: 0x6c736820, 0x1c8ee: 0x6d06e020, 0x1c8ef: 0x6c40f820,
-	0x1c8f0: 0x6c2eae20, 0x1c8f1: 0x6ce7ba20, 0x1c8f2: 0x6cd7ea20, 0x1c8f3: 0x6c67e820,
-	0x1c8f4: 0x6cfdc420, 0x1c8f5: 0x6c5bc820, 0x1c8f6: 0x6c745620, 0x1c8f7: 0x6d346820,
-	0x1c8f8: 0x6c65b420, 0x1c8f9: 0x6c737620, 0x1c8fa: 0x6c1ac020, 0x1c8fb: 0x6c9e2c20,
-	0x1c8fc: 0x6d31e820, 0x1c8fd: 0x6c939e20, 0x1c8fe: 0x6c1a1020, 0x1c8ff: 0x6cc07a20,
-	// Block 0x724, offset 0x1c900
-	0x1c900: 0x6cd4ec20, 0x1c901: 0x6c055020, 0x1c902: 0x6ce7bc20, 0x1c903: 0x6cfedc20,
-	0x1c904: 0x6c588020, 0x1c905: 0x6cbd3620, 0x1c906: 0x6c451220, 0x1c907: 0x6d052620,
-	0x1c908: 0x6ce34c20, 0x1c909: 0x6ce82e20, 0x1c90a: 0x6d00c020, 0x1c90b: 0x6c536420,
-	0x1c90c: 0x6cf8a420, 0x1c90d: 0x6c3ea220, 0x1c90e: 0x6ce64620, 0x1c90f: 0x6cdbcc20,
-	0x1c910: 0x6c335220, 0x1c911: 0x6c7db620, 0x1c912: 0x6c3d8020, 0x1c913: 0x6c6dc420,
-	0x1c914: 0x6c56a620, 0x1c915: 0x6d33f820, 0x1c916: 0x6d0ca020, 0x1c917: 0x6c6f1c20,
-	0x1c918: 0x6c3cb020, 0x1c919: 0x6c622020, 0x1c91a: 0x6d077420, 0x1c91b: 0x6cc60c20,
-	0x1c91c: 0x6d3faa20, 0x1c91d: 0x6c187820, 0x1c91e: 0x6c34a420, 0x1c91f: 0x6c865020,
-	0x1c920: 0x6c93ec20, 0x1c921: 0x6c896020, 0x1c922: 0x6c1dcc20, 0x1c923: 0x6cc36420,
-	0x1c924: 0x6ccede20, 0x1c925: 0x6cb62020, 0x1c926: 0x6cb62220, 0x1c927: 0x6d3ce020,
-	0x1c928: 0x6cb62420, 0x1c929: 0x6ced3420, 0x1c92a: 0x6cba6a20, 0x1c92b: 0x6cfcec20,
-	0x1c92c: 0x6cd47420, 0x1c92d: 0x6cef2220, 0x1c92e: 0x6cb70e20, 0x1c92f: 0x6ce23020,
-	0x1c930: 0x6ced3620, 0x1c931: 0x6c428c20, 0x1c932: 0x6cee3020, 0x1c933: 0x6c080420,
-	0x1c934: 0x6d3cc620, 0x1c935: 0x6c113a20, 0x1c936: 0x6c4cc620, 0x1c937: 0x6c255020,
-	0x1c938: 0x6c950420, 0x1c939: 0x6c8f1020, 0x1c93a: 0x6cb71020, 0x1c93b: 0x6d2e6e20,
-	0x1c93c: 0x6c0a0820, 0x1c93d: 0x6c21cc20, 0x1c93e: 0x6c8d3c20, 0x1c93f: 0x6c9dca20,
-	// Block 0x725, offset 0x1c940
-	0x1c940: 0x6cb51420, 0x1c941: 0x6cbcd820, 0x1c942: 0x6ce4b420, 0x1c943: 0x6d3fac20,
-	0x1c944: 0x6c4bd820, 0x1c945: 0x6d405e20, 0x1c946: 0x6cf67c20, 0x1c947: 0x6d3e6a20,
-	0x1c948: 0x6d043220, 0x1c949: 0x6c899a20, 0x1c94a: 0x6c6ca420, 0x1c94b: 0x6c3a1220,
-	0x1c94c: 0x6cc8a020, 0x1c94d: 0x6c9f7220, 0x1c94e: 0x6d239e20, 0x1c94f: 0x6d400420,
-	0x1c950: 0x6c38ae20, 0x1c951: 0x6c93ee20, 0x1c952: 0x6d071620, 0x1c953: 0x6d1bd820,
-	0x1c954: 0x6cce5620, 0x1c955: 0x6cb81820, 0x1c956: 0x6d073020, 0x1c957: 0x6cfd8820,
-	0x1c958: 0x6c64dc20, 0x1c959: 0x6c78ce20, 0x1c95a: 0x6cfcfe20, 0x1c95b: 0x6cc87620,
-	0x1c95c: 0x6c9dcc20, 0x1c95d: 0x6c5f1c20, 0x1c95e: 0x6c32d820, 0x1c95f: 0x6c1d1e20,
-	0x1c960: 0x6c2c9420, 0x1c961: 0x6c9f7820, 0x1c962: 0x6c9e7c20, 0x1c963: 0x6d259c20,
-	0x1c964: 0x6d01fe20, 0x1c965: 0x6c060e20, 0x1c966: 0x6cd82020, 0x1c967: 0x6cbfc020,
-	0x1c968: 0x6c0b0220, 0x1c969: 0x6c58dc20, 0x1c96a: 0x6c44d820, 0x1c96b: 0x6c234620,
-	0x1c96c: 0x6c9e3820, 0x1c96d: 0x6cf0c420, 0x1c96e: 0x6c403620, 0x1c96f: 0x6cf00620,
-	0x1c970: 0x6ce7f420, 0x1c971: 0x6c465a20, 0x1c972: 0x6c9e9c20, 0x1c973: 0x6d00de20,
-	0x1c974: 0x6c891220, 0x1c975: 0x6d3fb620, 0x1c976: 0x6c0bb620, 0x1c977: 0x6d284a20,
-	0x1c978: 0x6d19fc20, 0x1c979: 0x6ce36820, 0x1c97a: 0x6c486c20, 0x1c97b: 0x6d36ea20,
-	0x1c97c: 0x6d284c20, 0x1c97d: 0x6c198c20, 0x1c97e: 0x6c152020, 0x1c97f: 0x6c278c20,
-	// Block 0x726, offset 0x1c980
-	0x1c980: 0x6cf9ea20, 0x1c981: 0x6d259e20, 0x1c982: 0x6d400620, 0x1c983: 0x6d05da20,
-	0x1c984: 0x6d1d6a20, 0x1c985: 0x6cf14420, 0x1c986: 0x6c44da20, 0x1c987: 0x6d07c220,
-	0x1c988: 0x6d1c9c20, 0x1c989: 0x6c6d5220, 0x1c98a: 0x6d18ae20, 0x1c98b: 0x6d3ca220,
-	0x1c98c: 0x6ca6c020, 0x1c98d: 0x6c053c20, 0x1c98e: 0x6c47c820, 0x1c98f: 0x6cac7220,
-	0x1c990: 0x6d395420, 0x1c991: 0x6c64fc20, 0x1c992: 0x6c220a20, 0x1c993: 0x6cc31620,
-	0x1c994: 0x6cd6e020, 0x1c995: 0x6d276620, 0x1c996: 0x6cf9f220, 0x1c997: 0x6c24ea20,
-	0x1c998: 0x6cf6d220, 0x1c999: 0x6cc6a620, 0x1c99a: 0x6ce1ea20, 0x1c99b: 0x6c405420,
-	0x1c99c: 0x6d27ca20, 0x1c99d: 0x6c188820, 0x1c99e: 0x6c432020, 0x1c99f: 0x6cc82820,
-	0x1c9a0: 0x6c55b820, 0x1c9a1: 0x6d294620, 0x1c9a2: 0x6ce2b420, 0x1c9a3: 0x6cfd1020,
-	0x1c9a4: 0x6cdb1e20, 0x1c9a5: 0x6d31fc20, 0x1c9a6: 0x6d403420, 0x1c9a7: 0x6ce1ec20,
-	0x1c9a8: 0x6c5a8420, 0x1c9a9: 0x6c114a20, 0x1c9aa: 0x6c0a5820, 0x1c9ab: 0x6c3cf620,
-	0x1c9ac: 0x6c246a20, 0x1c9ad: 0x6c844620, 0x1c9ae: 0x6cdd4220, 0x1c9af: 0x6d0ddc20,
-	0x1c9b0: 0x6cf81820, 0x1c9b1: 0x6d403820, 0x1c9b2: 0x6c826420, 0x1c9b3: 0x6c739820,
-	0x1c9b4: 0x6cba8220, 0x1c9b5: 0x6c980820, 0x1c9b6: 0x6d34a420, 0x1c9b7: 0x6c93bc20,
-	0x1c9b8: 0x6ca2b220, 0x1c9b9: 0x6cb1a020, 0x1c9ba: 0x6c885220, 0x1c9bb: 0x6c9c8020,
-	0x1c9bc: 0x6d08bc20, 0x1c9bd: 0x6d400a20, 0x1c9be: 0x6c5f5820, 0x1c9bf: 0x6ccd1220,
-	// Block 0x727, offset 0x1c9c0
-	0x1c9c0: 0x6cdc8e20, 0x1c9c1: 0x6c38ca20, 0x1c9c2: 0x6c940620, 0x1c9c3: 0x6c083020,
-	0x1c9c4: 0x6d141e20, 0x1c9c5: 0x6ccac220, 0x1c9c6: 0x6ca1ec20, 0x1c9c7: 0x6d114c20,
-	0x1c9c8: 0x6cbb4a20, 0x1c9c9: 0x6c5d0220, 0x1c9ca: 0x6cfd5a20, 0x1c9cb: 0x6c629a20,
-	0x1c9cc: 0x6ccc8620, 0x1c9cd: 0x6d055220, 0x1c9ce: 0x6cc49420, 0x1c9cf: 0x6d08be20,
-	0x1c9d0: 0x6cdca020, 0x1c9d1: 0x6cbbc020, 0x1c9d2: 0x6d2b9e20, 0x1c9d3: 0x6d427020,
-	0x1c9d4: 0x6d341e20, 0x1c9d5: 0x6ccdca20, 0x1c9d6: 0x6cca3420, 0x1c9d7: 0x6c8bf020,
-	0x1c9d8: 0x6d243820, 0x1c9d9: 0x6c386220, 0x1c9da: 0x6c8a3820, 0x1c9db: 0x6c21e020,
-	0x1c9dc: 0x6d41f820, 0x1c9dd: 0x6c66f220, 0x1c9de: 0x6cc54a20, 0x1c9df: 0x6c15f020,
-	0x1c9e0: 0x6cc8b620, 0x1c9e1: 0x6d055620, 0x1c9e2: 0x6c5c6e20, 0x1c9e3: 0x6c57ca20,
-	0x1c9e4: 0x6d414a20, 0x1c9e5: 0x6cf70a20, 0x1c9e6: 0x6cbb4e20, 0x1c9e7: 0x6d287c20,
-	0x1c9e8: 0x6c270220, 0x1c9e9: 0x6cd12620, 0x1c9ea: 0x6c5c7e20, 0x1c9eb: 0x6cf91620,
-	0x1c9ec: 0x6ccb8020, 0x1c9ed: 0x6c660020, 0x1c9ee: 0x6c679220, 0x1c9ef: 0x6c58b820,
-	0x1c9f0: 0x6d2a5e20, 0x1c9f1: 0x6c236e20, 0x1c9f2: 0x6d026020, 0x1c9f3: 0x6c695a20,
-	0x1c9f4: 0x6c0aa820, 0x1c9f5: 0x6c28de20, 0x1c9f6: 0x6d191020, 0x1c9f7: 0x6ca9ec20,
-	0x1c9f8: 0x6cdca220, 0x1c9f9: 0x6d191220, 0x1c9fa: 0x6ccc9a20, 0x1c9fb: 0x6d060420,
-	0x1c9fc: 0x6c62cc20, 0x1c9fd: 0x6c0d6c20, 0x1c9fe: 0x6cba3020, 0x1c9ff: 0x6c7fee20,
-	// Block 0x728, offset 0x1ca00
-	0x1ca00: 0x6cb47020, 0x1ca01: 0x6d09c620, 0x1ca02: 0x6d415420, 0x1ca03: 0x6cb69620,
-	0x1ca04: 0x6caee820, 0x1ca05: 0x6d124620, 0x1ca06: 0x6ca19a20, 0x1ca07: 0x6c835c20,
-	0x1ca08: 0x6d012820, 0x1ca09: 0x6d415620, 0x1ca0a: 0x6c7c1a20, 0x1ca0b: 0x6d1ed220,
-	0x1ca0c: 0x6d076220, 0x1ca0d: 0x6c828420, 0x1ca0e: 0x6cfb0420, 0x1ca0f: 0x6c156220,
-	0x1ca10: 0x6c69f220, 0x1ca11: 0x6c919620, 0x1ca12: 0x6c156a20, 0x1ca13: 0x6d1c4020,
-	0x1ca14: 0x6c111820, 0x1ca15: 0x6cc51620, 0x1ca16: 0x6cfb1620, 0x1ca17: 0x6d418620,
-	0x1ca18: 0x6d415c20, 0x1ca19: 0x6c965220, 0x1ca1a: 0x6c84e020, 0x1ca1b: 0x6c2a5220,
-	0x1ca1c: 0x6c806a20, 0x1ca1d: 0x6c82ac20, 0x1ca1e: 0x6c894020, 0x1ca1f: 0x6cd7b620,
-	0x1ca20: 0x6c6f4620, 0x1ca21: 0x6d207420, 0x1ca22: 0x6c52ee20, 0x1ca23: 0x6d38f420,
-	0x1ca24: 0x6cfa7420, 0x1ca25: 0x6c436a20, 0x1ca26: 0x6d264820, 0x1ca27: 0x6c5fce20,
-	0x1ca28: 0x6cecbc20, 0x1ca29: 0x6c7bda20, 0x1ca2a: 0x6c617a20, 0x1ca2b: 0x6cc5b820,
-	0x1ca2c: 0x6cef8820, 0x1ca2d: 0x6d278220, 0x1ca2e: 0x6c52fc20, 0x1ca2f: 0x6c213420,
-	0x1ca30: 0x6caf2c20, 0x1ca31: 0x6ccbca20, 0x1ca32: 0x6c425820, 0x1ca33: 0x6ca30820,
-	0x1ca34: 0x6cc5c620, 0x1ca35: 0x6d401620, 0x1ca36: 0x6c94dc20, 0x1ca37: 0x6c3b1220,
-	0x1ca38: 0x6d34ec20, 0x1ca39: 0x6cf17e20, 0x1ca3a: 0x6c39c220, 0x1ca3b: 0x6d3aa420,
-	0x1ca3c: 0x6d321420, 0x1ca3d: 0x6ca97c20, 0x1ca3e: 0x6cd4a020, 0x1ca3f: 0x6cfc8220,
-	// Block 0x729, offset 0x1ca40
-	0x1ca40: 0x6c421220, 0x1ca41: 0x6d016620, 0x1ca42: 0x6c3dfa20, 0x1ca43: 0x6c88e420,
-	0x1ca44: 0x6d410c20, 0x1ca45: 0x6ccfb220, 0x1ca46: 0x6cf84e20, 0x1ca47: 0x6d33a020,
-	0x1ca48: 0x6d37a020, 0x1ca49: 0x6d390420, 0x1ca4a: 0x6c04ec20, 0x1ca4b: 0x6c3dfc20,
-	0x1ca4c: 0x6c1f1420, 0x1ca4d: 0x6ccec820, 0x1ca4e: 0x6d16ce20, 0x1ca4f: 0x6c6d9220,
-	0x1ca50: 0x6c273820, 0x1ca51: 0x6c054a20, 0x1ca52: 0x6cc65a20, 0x1ca53: 0x6c6a9820,
-	0x1ca54: 0x6c7a8620, 0x1ca55: 0x6cc54620, 0x1ca56: 0x6c2e7620, 0x1ca57: 0x6c4f6420,
-	0x1ca58: 0x6c5b9e20, 0x1ca59: 0x6c449220, 0x1ca5a: 0x6d087c20, 0x1ca5b: 0x6c67dc20,
-	0x1ca5c: 0x6c95ea20, 0x1ca5d: 0x6c740420, 0x1ca5e: 0x6c68d620, 0x1ca5f: 0x6ce7ae20,
-	0x1ca60: 0x6c450020, 0x1ca61: 0x6cfea820, 0x1ca62: 0x6c735020, 0x1ca63: 0x6d053620,
-	0x1ca64: 0x6cf87220, 0x1ca65: 0x6cdbf020, 0x1ca66: 0x6ce1c020, 0x1ca67: 0x6c61d220,
-	0x1ca68: 0x6ce31820, 0x1ca69: 0x6c5eb820, 0x1ca6a: 0x6d06be20, 0x1ca6b: 0x6c8cf220,
-	0x1ca6c: 0x6d1bb220, 0x1ca6d: 0x6d06c020, 0x1ca6e: 0x6cb6f620, 0x1ca6f: 0x6c39fc20,
-	0x1ca70: 0x6c21b820, 0x1ca71: 0x6cce5220, 0x1ca72: 0x6c4bc220, 0x1ca73: 0x6cd11e20,
-	0x1ca74: 0x6cef0420, 0x1ca75: 0x6c9dc020, 0x1ca76: 0x6cd46820, 0x1ca77: 0x6c081a20,
-	0x1ca78: 0x6c1da820, 0x1ca79: 0x6ce22220, 0x1ca7a: 0x6c8f0620, 0x1ca7b: 0x6cc35a20,
-	0x1ca7c: 0x6d3f7820, 0x1ca7d: 0x6d2e5c20, 0x1ca7e: 0x6ced0c20, 0x1ca7f: 0x6c93d820,
-	// Block 0x72a, offset 0x1ca80
-	0x1ca80: 0x6d3cc420, 0x1ca81: 0x6d3e2820, 0x1ca82: 0x6c78b420, 0x1ca83: 0x6cfd7820,
-	0x1ca84: 0x6c64a420, 0x1ca85: 0x6c9e2820, 0x1ca86: 0x6c802a20, 0x1ca87: 0x6ce33020,
-	0x1ca88: 0x6c9e9420, 0x1ca89: 0x6c5eda20, 0x1ca8a: 0x6d275020, 0x1ca8b: 0x6c5bca20,
-	0x1ca8c: 0x6cd7ec20, 0x1ca8d: 0x6c348620, 0x1ca8e: 0x6c32c420, 0x1ca8f: 0x6c0ba020,
-	0x1ca90: 0x6cfcc820, 0x1ca91: 0x6c464a20, 0x1ca92: 0x6d3c8a20, 0x1ca93: 0x6c58d820,
-	0x1ca94: 0x6c2c5e20, 0x1ca95: 0x6c93a020, 0x1ca96: 0x6c0af620, 0x1ca97: 0x6c9f5820,
-	0x1ca98: 0x6d256820, 0x1ca99: 0x6c6d1c20, 0x1ca9a: 0x6c401020, 0x1ca9b: 0x6cc81e20,
-	0x1ca9c: 0x6d31ea20, 0x1ca9d: 0x6c3ce620, 0x1ca9e: 0x6c24ce20, 0x1ca9f: 0x6c430c20,
-	0x1caa0: 0x6c150420, 0x1caa1: 0x6c83f020, 0x1caa2: 0x6d17fc20, 0x1caa3: 0x6c64be20,
-	0x1caa4: 0x6c0d4020, 0x1caa5: 0x6cb15a20, 0x1caa6: 0x6c97f020, 0x1caa7: 0x6c824820,
-	0x1caa8: 0x6d1bda20, 0x1caa9: 0x6cdd2e20, 0x1caaa: 0x6ca1d820, 0x1caab: 0x6ccaba20,
-	0x1caac: 0x6d00e020, 0x1caad: 0x6c8a1420, 0x1caae: 0x6ccda220, 0x1caaf: 0x6d2b8c20,
-	0x1cab0: 0x6c677a20, 0x1cab1: 0x6cba2420, 0x1cab2: 0x6cbbb220, 0x1cab3: 0x6c589a20,
-	0x1cab4: 0x6c694620, 0x1cab5: 0x6d415020, 0x1cab6: 0x6c3d1a20, 0x1cab7: 0x6d016820,
-	0x1cab8: 0x6c426820, 0x1cab9: 0x6c3d2420, 0x1caba: 0x6cc38a20, 0x1cabb: 0x6c3d2620,
-	0x1cabc: 0x6cb81020, 0x1cabd: 0x6c0e6e20, 0x1cabe: 0x6cb2ac20, 0x1cabf: 0x6cfe3420,
-	// Block 0x72b, offset 0x1cac0
-	0x1cac0: 0x6d2ff620, 0x1cac1: 0x6c428e20, 0x1cac2: 0x6d1bdc20, 0x1cac3: 0x6d1bea20,
-	0x1cac4: 0x6cbee020, 0x1cac5: 0x6cfa4c20, 0x1cac6: 0x6c49aa20, 0x1cac7: 0x6d41fa20,
-	0x1cac8: 0x6ce02a20, 0x1cac9: 0x6c126020, 0x1caca: 0x6cb7fe20, 0x1cacb: 0x6cf27620,
-	0x1cacc: 0x6d1c2220, 0x1cacd: 0x6c828620, 0x1cace: 0x6ce04820, 0x1cacf: 0x6c919820,
-	0x1cad0: 0x6c49c420, 0x1cad1: 0x6cedf420, 0x1cad2: 0x6cedf020, 0x1cad3: 0x6c424e20,
-	0x1cad4: 0x6cedfe20, 0x1cad5: 0x6c4e5020, 0x1cad6: 0x6c953820, 0x1cad7: 0x6c952c20,
-	0x1cad8: 0x6c3e2220, 0x1cad9: 0x6c9c3a20, 0x1cada: 0x6c380620, 0x1cadb: 0x6c470020,
-	0x1cadc: 0x6d3a6020, 0x1cadd: 0x6c707220, 0x1cade: 0x6c98d420, 0x1cadf: 0x6c477420,
-	0x1cae0: 0x6c9f4220, 0x1cae1: 0x6c427220, 0x1cae2: 0x6c03f420, 0x1cae3: 0x6c48b220,
-	0x1cae4: 0x6ce33220, 0x1cae5: 0x6c736a20, 0x1cae6: 0x6c3e8820, 0x1cae7: 0x6cd0b420,
-	0x1cae8: 0x6d0da820, 0x1cae9: 0x6d2fc220, 0x1caea: 0x6d41b820, 0x1caeb: 0x6c48b820,
-	0x1caec: 0x6d3d7220, 0x1caed: 0x6d237620, 0x1caee: 0x6d366620, 0x1caef: 0x6c018e20,
-	0x1caf0: 0x6c382020, 0x1caf1: 0x6c803420, 0x1caf2: 0x6cd56220, 0x1caf3: 0x6cd80620,
-	0x1caf4: 0x6cb00820, 0x1caf5: 0x6c96da20, 0x1caf6: 0x6c8f1620, 0x1caf7: 0x6c03f820,
-	0x1caf8: 0x6c382420, 0x1caf9: 0x6c844a20, 0x1cafa: 0x6c177e20, 0x1cafb: 0x6cf0d020,
-	0x1cafc: 0x6c0a3420, 0x1cafd: 0x6c629c20, 0x1cafe: 0x6d2b9c20, 0x1caff: 0x6c1ce620,
-	// Block 0x72c, offset 0x1cb00
-	0x1cb00: 0x6c8f2220, 0x1cb01: 0x6c5f5a20, 0x1cb02: 0x6c739e20, 0x1cb03: 0x6c9da220,
-	0x1cb04: 0x6d2fec20, 0x1cb05: 0x6c956220, 0x1cb06: 0x6cb03220, 0x1cb07: 0x6c5f9e20,
-	0x1cb08: 0x6c5fb020, 0x1cb09: 0x6c946820, 0x1cb0a: 0x6d0f7620, 0x1cb0b: 0x6c9cde20,
-	0x1cb0c: 0x6cba9e20, 0x1cb0d: 0x6c268820, 0x1cb0e: 0x6c9a4e20, 0x1cb0f: 0x6d0f9a20,
-	0x1cb10: 0x6d1fbc20, 0x1cb11: 0x6d1fb420, 0x1cb12: 0x6c3b6620, 0x1cb13: 0x6c033e20,
-	0x1cb14: 0x6c42b820, 0x1cb15: 0x6d104a20, 0x1cb16: 0x6c477620, 0x1cb17: 0x6cbaaa20,
-	0x1cb18: 0x6d29d620, 0x1cb19: 0x6c42ba20, 0x1cb1a: 0x6c8cf620, 0x1cb1b: 0x6d176e20,
-	0x1cb1c: 0x6d3aee20, 0x1cb1d: 0x6c2b2820, 0x1cb1e: 0x6d04c820, 0x1cb1f: 0x6cbb3c20,
-	0x1cb20: 0x6d14fa20, 0x1cb21: 0x6cfcca20, 0x1cb22: 0x6cc67c20, 0x1cb23: 0x6cc44a20,
-	0x1cb24: 0x6cc44c20, 0x1cb25: 0x6cbb4420, 0x1cb26: 0x6c588220, 0x1cb27: 0x6cdd2620,
-	0x1cb28: 0x6cfcdc20, 0x1cb29: 0x6d17fe20, 0x1cb2a: 0x6d107a20, 0x1cb2b: 0x6cbad220,
-	0x1cb2c: 0x6cb9c220, 0x1cb2d: 0x6d218820, 0x1cb2e: 0x6c44dc20, 0x1cb2f: 0x6c6b2220,
-	0x1cb30: 0x6ce0cc20, 0x1cb31: 0x6d25ac20, 0x1cb32: 0x6cf6d420, 0x1cb33: 0x6c38d820,
-	0x1cb34: 0x6ccd1a20, 0x1cb35: 0x6c3ba220, 0x1cb36: 0x6ccd1e20, 0x1cb37: 0x6c88d820,
-	0x1cb38: 0x6c827420, 0x1cb39: 0x6c44e420, 0x1cb3a: 0x6caa0820, 0x1cb3b: 0x6cbb5e20,
-	0x1cb3c: 0x6c164620, 0x1cb3d: 0x6d221c20, 0x1cb3e: 0x6c461020, 0x1cb3f: 0x6d170420,
-	// Block 0x72d, offset 0x1cb40
-	0x1cb40: 0x6c1cbe20, 0x1cb41: 0x6cf22220, 0x1cb42: 0x6c3b2420, 0x1cb43: 0x6c533020,
-	0x1cb44: 0x6c1c0820, 0x1cb45: 0x6c1c0a20, 0x1cb46: 0x6c252a20, 0x1cb47: 0x6c3e6020,
-	0x1cb48: 0x6cf9b220, 0x1cb49: 0x6c079c20, 0x1cb4a: 0x6d177020, 0x1cb4b: 0x6c7e4220,
-	0x1cb4c: 0x6d177220, 0x1cb4d: 0x6caf6220, 0x1cb4e: 0x6c8cf820, 0x1cb4f: 0x6c8f2e20,
-	0x1cb50: 0x6d360020, 0x1cb51: 0x6cc18e20, 0x1cb52: 0x6cf77a20, 0x1cb53: 0x6d00ae20,
-	0x1cb54: 0x6cfdc620, 0x1cb55: 0x6cf62420, 0x1cb56: 0x6cf88e20, 0x1cb57: 0x6c785020,
-	0x1cb58: 0x6cbc4620, 0x1cb59: 0x6c5bcc20, 0x1cb5a: 0x6c5aba20, 0x1cb5b: 0x6cfecc20,
-	0x1cb5c: 0x6ccc5e20, 0x1cb5d: 0x6c536620, 0x1cb5e: 0x6c676c20, 0x1cb5f: 0x6c2b7e20,
-	0x1cb60: 0x6c255220, 0x1cb61: 0x6c3a6420, 0x1cb62: 0x6c2a2620, 0x1cb63: 0x6ccc6a20,
-	0x1cb64: 0x6c1c4a20, 0x1cb65: 0x6d3b1620, 0x1cb66: 0x6c65d220, 0x1cb67: 0x6d07c420,
-	0x1cb68: 0x6c1c6220, 0x1cb69: 0x6cb0fe20, 0x1cb6a: 0x6d3fb820, 0x1cb6b: 0x6cece620,
-	0x1cb6c: 0x6c5aea20, 0x1cb6d: 0x6c542820, 0x1cb6e: 0x6c517420, 0x1cb6f: 0x6c51e820,
-	0x1cb70: 0x6c4f0a20, 0x1cb71: 0x6c027220, 0x1cb72: 0x6cb16820, 0x1cb73: 0x6d18d020,
-	0x1cb74: 0x6c885420, 0x1cb75: 0x6c543420, 0x1cb76: 0x6c030820, 0x1cb77: 0x6c8bf220,
-	0x1cb78: 0x6cae4820, 0x1cb79: 0x6cbc6a20, 0x1cb7a: 0x6c027e20, 0x1cb7b: 0x6c386420,
-	0x1cb7c: 0x6d18d220, 0x1cb7d: 0x6c5c8020, 0x1cb7e: 0x6d07e420, 0x1cb7f: 0x6c2a4a20,
-	// Block 0x72e, offset 0x1cb80
-	0x1cb80: 0x6d124420, 0x1cb81: 0x6c819a20, 0x1cb82: 0x6c819820, 0x1cb83: 0x6c779c20,
-	0x1cb84: 0x6c996620, 0x1cb85: 0x6d30d220, 0x1cb86: 0x6cb5a820, 0x1cb87: 0x6c467a20,
-	0x1cb88: 0x6c468020, 0x1cb89: 0x6c467c20, 0x1cb8a: 0x6c2f3420, 0x1cb8b: 0x6c2eb020,
-	0x1cb8c: 0x6c373020, 0x1cb8d: 0x6cd64620, 0x1cb8e: 0x6cc85620, 0x1cb8f: 0x6ca3b220,
-	0x1cb90: 0x6ca3b420, 0x1cb91: 0x6c329220, 0x1cb92: 0x6c82b220, 0x1cb93: 0x6ce63220,
-	0x1cb94: 0x6d3efc20, 0x1cb95: 0x6c44c220, 0x1cb96: 0x6c17b620, 0x1cb97: 0x6c503220,
-	0x1cb98: 0x6d27a020, 0x1cb99: 0x6c03b020, 0x1cb9a: 0x6caf6420, 0x1cb9b: 0x6d14ec20,
-	0x1cb9c: 0x6cd8bc20, 0x1cb9d: 0x6cc26e20, 0x1cb9e: 0x6c635220, 0x1cb9f: 0x6c723220,
-	0x1cba0: 0x6c5d5620, 0x1cba1: 0x6c1e8e20, 0x1cba2: 0x6c81d420, 0x1cba3: 0x6c951c20,
-	0x1cba4: 0x6c607020, 0x1cba5: 0x6ce0c620, 0x1cba6: 0x6cab8e20, 0x1cba7: 0x6c90b420,
-	0x1cba8: 0x6caa2820, 0x1cba9: 0x6c67be20, 0x1cbaa: 0x6cad1e20, 0x1cbab: 0x6d2c5620,
-	0x1cbac: 0x6c90be20, 0x1cbad: 0x6c5f7020, 0x1cbae: 0x6c81e420, 0x1cbaf: 0x6c5e2e20,
-	0x1cbb0: 0x6d1ed420, 0x1cbb1: 0x6ca1a020, 0x1cbb2: 0x6c580420, 0x1cbb3: 0x6c378420,
-	0x1cbb4: 0x6d169620, 0x1cbb5: 0x6c2f5420, 0x1cbb6: 0x6d127420, 0x1cbb7: 0x6c264420,
-	0x1cbb8: 0x6cd95820, 0x1cbb9: 0x6cbd6820, 0x1cbba: 0x6d27a220, 0x1cbbb: 0x6c1b9420,
-	0x1cbbc: 0x6c27ca20, 0x1cbbd: 0x6c27cc20, 0x1cbbe: 0x6c533420, 0x1cbbf: 0x6c450220,
-	// Block 0x72f, offset 0x1cbc0
-	0x1cbc0: 0x6d344820, 0x1cbc1: 0x6cacb220, 0x1cbc2: 0x6ca80c20, 0x1cbc3: 0x6c27d420,
-	0x1cbc4: 0x6d31d620, 0x1cbc5: 0x6c181a20, 0x1cbc6: 0x6c8cfa20, 0x1cbc7: 0x6d32ba20,
-	0x1cbc8: 0x6d1fc220, 0x1cbc9: 0x6cec3020, 0x1cbca: 0x6c89e420, 0x1cbcb: 0x6c8f8c20,
-	0x1cbcc: 0x6d345c20, 0x1cbcd: 0x6ca90220, 0x1cbce: 0x6ce55e20, 0x1cbcf: 0x6c375c20,
-	0x1cbd0: 0x6d0bb420, 0x1cbd1: 0x6ce5f020, 0x1cbd2: 0x6c485e20, 0x1cbd3: 0x6d077220,
-	0x1cbd4: 0x6c880420, 0x1cbd5: 0x6c504620, 0x1cbd6: 0x6cd16e20, 0x1cbd7: 0x6c8b1a20,
-	0x1cbd8: 0x6cb24420, 0x1cbd9: 0x6c6dce20, 0x1cbda: 0x6c726c20, 0x1cbdb: 0x6c08ee20,
-	0x1cbdc: 0x6c2bfe20, 0x1cbdd: 0x6c4c7c20, 0x1cbde: 0x6cf1a220, 0x1cbdf: 0x6d071a20,
-	0x1cbe0: 0x6cb25820, 0x1cbe1: 0x6c232e20, 0x1cbe2: 0x6c2fc820, 0x1cbe3: 0x6ca5f820,
-	0x1cbe4: 0x6ce68c20, 0x1cbe5: 0x6c71d020, 0x1cbe6: 0x6c234820, 0x1cbe7: 0x6c7c4220,
-	0x1cbe8: 0x6c894420, 0x1cbe9: 0x6c7d1220, 0x1cbea: 0x6c234a20, 0x1cbeb: 0x6c884020,
-	0x1cbec: 0x6cf26020, 0x1cbed: 0x6c7d1420, 0x1cbee: 0x6c885820, 0x1cbef: 0x6c886820,
-	0x1cbf0: 0x6c236620, 0x1cbf1: 0x6c027420, 0x1cbf2: 0x6cd11820, 0x1cbf3: 0x6cd96e20,
-	0x1cbf4: 0x6ce64c20, 0x1cbf5: 0x6c7d2a20, 0x1cbf6: 0x6ca88820, 0x1cbf7: 0x6d34aa20,
-	0x1cbf8: 0x6c281020, 0x1cbf9: 0x6ca93420, 0x1cbfa: 0x6cbc8a20, 0x1cbfb: 0x6ca65e20,
-	0x1cbfc: 0x6ce65220, 0x1cbfd: 0x6ce65620, 0x1cbfe: 0x6c8ff820, 0x1cbff: 0x6d22c620,
-	// Block 0x730, offset 0x1cc00
-	0x1cc00: 0x6d22b620, 0x1cc01: 0x6d2fac20, 0x1cc02: 0x6cd8ac20, 0x1cc03: 0x6cda8220,
-	0x1cc04: 0x6d180020, 0x1cc05: 0x6cdad820, 0x1cc06: 0x6cd8ca20, 0x1cc07: 0x6d2fcc20,
-	0x1cc08: 0x6d2fce20, 0x1cc09: 0x6cc78220, 0x1cc0a: 0x6d164c20, 0x1cc0b: 0x6c81fe20,
-	0x1cc0c: 0x6c5e8020, 0x1cc0d: 0x6cbffe20, 0x1cc0e: 0x6c78f220, 0x1cc0f: 0x6c12b620,
-	0x1cc10: 0x6c437020, 0x1cc11: 0x6c0eb020, 0x1cc12: 0x6c58f020, 0x1cc13: 0x6c597a20,
-	0x1cc14: 0x6d15c220, 0x1cc15: 0x6cc5c820, 0x1cc16: 0x6cffd220, 0x1cc17: 0x6cc7f620,
-	0x1cc18: 0x6d38d820, 0x1cc19: 0x6d25fc20, 0x1cc1a: 0x6c323820, 0x1cc1b: 0x6c425a20,
-	0x1cc1c: 0x6cc65420, 0x1cc1d: 0x6c416e20, 0x1cc1e: 0x6c138020, 0x1cc1f: 0x6cf2d220,
-	0x1cc20: 0x6c169820, 0x1cc21: 0x6c476020, 0x1cc22: 0x6d33a220, 0x1cc23: 0x6c4dd620,
-	0x1cc24: 0x6c3d4420, 0x1cc25: 0x6c3a3220, 0x1cc26: 0x6c3b6420, 0x1cc27: 0x6cadb220,
-	0x1cc28: 0x6cad2820, 0x1cc29: 0x6c647020, 0x1cc2a: 0x6c39a820, 0x1cc2b: 0x6d3ccc20,
-	0x1cc2c: 0x6d1f0220, 0x1cc2d: 0x6ca31420, 0x1cc2e: 0x6c01e820, 0x1cc2f: 0x6c78f620,
-	0x1cc30: 0x6cc46420, 0x1cc31: 0x6c456820, 0x1cc32: 0x6d22da20, 0x1cc33: 0x6cf1d020,
-	0x1cc34: 0x6d10d020, 0x1cc35: 0x6cb58c20, 0x1cc36: 0x6cafc020, 0x1cc37: 0x6cb9f620,
-	0x1cc38: 0x6cf59220, 0x1cc39: 0x6cf59420, 0x1cc3a: 0x6c3a8c20, 0x1cc3b: 0x6c78f820,
-	0x1cc3c: 0x6c6e1220, 0x1cc3d: 0x6cdf6420, 0x1cc3e: 0x6cd09020, 0x1cc3f: 0x6d37e620,
-	// Block 0x731, offset 0x1cc40
-	0x1cc40: 0x6d2f2820, 0x1cc41: 0x6d007220, 0x1cc42: 0x6cd09620, 0x1cc43: 0x6cf07e20,
-	0x1cc44: 0x6d391220, 0x1cc45: 0x6c2e7820, 0x1cc46: 0x6c282c20, 0x1cc47: 0x6c3a9020,
-	0x1cc48: 0x6c037220, 0x1cc49: 0x6c0ec820, 0x1cc4a: 0x6cc17c20, 0x1cc4b: 0x6ce49420,
-	0x1cc4c: 0x6c06f220, 0x1cc4d: 0x6c484a20, 0x1cc4e: 0x6cdf0420, 0x1cc4f: 0x6d3ef220,
-	0x1cc50: 0x6c7a3220, 0x1cc51: 0x6d33b420, 0x1cc52: 0x6ca68820, 0x1cc53: 0x6cb28a20,
-	0x1cc54: 0x6d3f5420, 0x1cc55: 0x6c3f4c20, 0x1cc56: 0x6cad2a20, 0x1cc57: 0x6d313020,
-	0x1cc58: 0x6cfb3820, 0x1cc59: 0x6d428820, 0x1cc5a: 0x6cadb820, 0x1cc5b: 0x6c640820,
-	0x1cc5c: 0x6cd15620, 0x1cc5d: 0x6d33b620, 0x1cc5e: 0x6c05ac20, 0x1cc5f: 0x6ca23620,
-	0x1cc60: 0x6cc0ee20, 0x1cc61: 0x6c552e20, 0x1cc62: 0x6c77ea20, 0x1cc63: 0x6c1b8620,
-	0x1cc64: 0x6d1b4020, 0x1cc65: 0x6d057a20, 0x1cc66: 0x6d0f5220, 0x1cc67: 0x6c8f7a20,
-	0x1cc68: 0x6c306620, 0x1cc69: 0x6c761c20, 0x1cc6a: 0x6c914620, 0x1cc6b: 0x6c6e5c20,
-	0x1cc6c: 0x6caa5820, 0x1cc6d: 0x6d0bea20, 0x1cc6e: 0x6cacd020, 0x1cc6f: 0x6c7ae820,
-	0x1cc70: 0x6d14d620, 0x1cc71: 0x6c49e820, 0x1cc72: 0x6c4d3e20, 0x1cc73: 0x6c438220,
-	0x1cc74: 0x6c307020, 0x1cc75: 0x6c1aa220, 0x1cc76: 0x6c683e20, 0x1cc77: 0x6d046420,
-	0x1cc78: 0x6d046620, 0x1cc79: 0x6c374c20, 0x1cc7a: 0x6c01b020, 0x1cc7b: 0x6c526020,
-	0x1cc7c: 0x6cb10a20, 0x1cc7d: 0x6ca5a420, 0x1cc7e: 0x6d3f5620, 0x1cc7f: 0x6c4a4c20,
-	// Block 0x732, offset 0x1cc80
-	0x1cc80: 0x6c19e220, 0x1cc81: 0x6ce5c020, 0x1cc82: 0x6d33ce20, 0x1cc83: 0x6c252c20,
-	0x1cc84: 0x6c99e620, 0x1cc85: 0x6d009220, 0x1cc86: 0x6c252e20, 0x1cc87: 0x6d009420,
-	0x1cc88: 0x6c972e20, 0x1cc89: 0x6c972a20, 0x1cc8a: 0x6c600420, 0x1cc8b: 0x6d029e20,
-	0x1cc8c: 0x6ca8f020, 0x1cc8d: 0x6c7b2020, 0x1cc8e: 0x6cc97220, 0x1cc8f: 0x6d2a0420,
-	0x1cc90: 0x6cb5aa20, 0x1cc91: 0x6ca4e820, 0x1cc92: 0x6c9cec20, 0x1cc93: 0x6ca9b820,
-	0x1cc94: 0x6c943a20, 0x1cc95: 0x6ced7c20, 0x1cc96: 0x6c0ef420, 0x1cc97: 0x6cf1d820,
-	0x1cc98: 0x6ced0e20, 0x1cc99: 0x6d04d020, 0x1cc9a: 0x6c68ea20, 0x1cc9b: 0x6c6e7a20,
-	0x1cc9c: 0x6d1fc420, 0x1cc9d: 0x6c524e20, 0x1cc9e: 0x6c260820, 0x1cc9f: 0x6c8b0820,
-	0x1cca0: 0x6cccdc20, 0x1cca1: 0x6ce6c420, 0x1cca2: 0x6c99f020, 0x1cca3: 0x6c214420,
-	0x1cca4: 0x6cd0a220, 0x1cca5: 0x6cba0420, 0x1cca6: 0x6c2a9220, 0x1cca7: 0x6c72ee20,
-	0x1cca8: 0x6c243820, 0x1cca9: 0x6d04cc20, 0x1ccaa: 0x6d032e20, 0x1ccab: 0x6ceac220,
-	0x1ccac: 0x6cad3820, 0x1ccad: 0x6c19f220, 0x1ccae: 0x6ca56c20, 0x1ccaf: 0x6cb43620,
-	0x1ccb0: 0x6c311420, 0x1ccb1: 0x6ceac420, 0x1ccb2: 0x6ca7d620, 0x1ccb3: 0x6ca53e20,
-	0x1ccb4: 0x6cb05a20, 0x1ccb5: 0x6c478220, 0x1ccb6: 0x6c954020, 0x1ccb7: 0x6c85fc20,
-	0x1ccb8: 0x6c88b820, 0x1ccb9: 0x6d2f3020, 0x1ccba: 0x6c254020, 0x1ccbb: 0x6c6a1c20,
-	0x1ccbc: 0x6c899420, 0x1ccbd: 0x6cd6fc20, 0x1ccbe: 0x6caff420, 0x1ccbf: 0x6c0bfe20,
-	// Block 0x733, offset 0x1ccc0
-	0x1ccc0: 0x6c94fc20, 0x1ccc1: 0x6cb11020, 0x1ccc2: 0x6c82c420, 0x1ccc3: 0x6c7cfe20,
-	0x1ccc4: 0x6c20d620, 0x1ccc5: 0x6c288c20, 0x1ccc6: 0x6ce4fa20, 0x1ccc7: 0x6ca57020,
-	0x1ccc8: 0x6c6dbc20, 0x1ccc9: 0x6ca37a20, 0x1ccca: 0x6c7e7820, 0x1cccb: 0x6d12f420,
-	0x1cccc: 0x6d0c0e20, 0x1cccd: 0x6cc5f420, 0x1ccce: 0x6cd0a420, 0x1cccf: 0x6c21c220,
-	0x1ccd0: 0x6c3f7820, 0x1ccd1: 0x6c3f6a20, 0x1ccd2: 0x6c709620, 0x1ccd3: 0x6c3a3620,
-	0x1ccd4: 0x6cbabc20, 0x1ccd5: 0x6ced8820, 0x1ccd6: 0x6c307c20, 0x1ccd7: 0x6caff620,
-	0x1ccd8: 0x6c4c6e20, 0x1ccd9: 0x6d3f9220, 0x1ccda: 0x6c2fa820, 0x1ccdb: 0x6cf2fe20,
-	0x1ccdc: 0x6c9a6020, 0x1ccdd: 0x6ca5f420, 0x1ccde: 0x6d3bd020, 0x1ccdf: 0x6c1c3420,
-	0x1cce0: 0x6c23f020, 0x1cce1: 0x6c954820, 0x1cce2: 0x6cab8020, 0x1cce3: 0x6c2c6e20,
-	0x1cce4: 0x6c013c20, 0x1cce5: 0x6d038220, 0x1cce6: 0x6ca50420, 0x1cce7: 0x6cd5ea20,
-	0x1cce8: 0x6cd69220, 0x1cce9: 0x6ca42e20, 0x1ccea: 0x6d283c20, 0x1cceb: 0x6d380020,
-	0x1ccec: 0x6cc78620, 0x1cced: 0x6c366020, 0x1ccee: 0x6cc9ca20, 0x1ccef: 0x6ce8c820,
-	0x1ccf0: 0x6d10ae20, 0x1ccf1: 0x6c669220, 0x1ccf2: 0x6cefe620, 0x1ccf3: 0x6c690e20,
-	0x1ccf4: 0x6d213220, 0x1ccf5: 0x6c637220, 0x1ccf6: 0x6c32d020, 0x1ccf7: 0x6c09d820,
-	0x1ccf8: 0x6c16b220, 0x1ccf9: 0x6c401220, 0x1ccfa: 0x6cfcde20, 0x1ccfb: 0x6ca6b020,
-	0x1ccfc: 0x6c9e2e20, 0x1ccfd: 0x6cec3820, 0x1ccfe: 0x6ce2a220, 0x1ccff: 0x6ce9e620,
-	// Block 0x734, offset 0x1cd00
-	0x1cd00: 0x6c055620, 0x1cd01: 0x6cba1820, 0x1cd02: 0x6c93a820, 0x1cd03: 0x6cec3a20,
-	0x1cd04: 0x6cda3e20, 0x1cd05: 0x6ce11c20, 0x1cd06: 0x6cdaee20, 0x1cd07: 0x6d3c9820,
-	0x1cd08: 0x6c441420, 0x1cd09: 0x6d183220, 0x1cd0a: 0x6c100a20, 0x1cd0b: 0x6c89fa20,
-	0x1cd0c: 0x6c607220, 0x1cd0d: 0x6cb00a20, 0x1cd0e: 0x6d00d020, 0x1cd0f: 0x6c42d020,
-	0x1cd10: 0x6c93b420, 0x1cd11: 0x6c0d8420, 0x1cd12: 0x6cab6c20, 0x1cd13: 0x6c16c220,
-	0x1cd14: 0x6c92ae20, 0x1cd15: 0x6c4c8220, 0x1cd16: 0x6cace020, 0x1cd17: 0x6c1fbc20,
-	0x1cd18: 0x6c0c1a20, 0x1cd19: 0x6c67c020, 0x1cd1a: 0x6c3d9220, 0x1cd1b: 0x6ce12c20,
-	0x1cd1c: 0x6ca06e20, 0x1cd1d: 0x6cf6ac20, 0x1cd1e: 0x6d3b8e20, 0x1cd1f: 0x6c93f820,
-	0x1cd20: 0x6c686e20, 0x1cd21: 0x6d1d4420, 0x1cd22: 0x6c936220, 0x1cd23: 0x6d36be20,
-	0x1cd24: 0x6d098620, 0x1cd25: 0x6c211e20, 0x1cd26: 0x6c8c6620, 0x1cd27: 0x6ce78e20,
-	0x1cd28: 0x6caec820, 0x1cd29: 0x6ca6cc20, 0x1cd2a: 0x6c1fcc20, 0x1cd2b: 0x6c8a1e20,
-	0x1cd2c: 0x6c256620, 0x1cd2d: 0x6c4a8e20, 0x1cd2e: 0x6cff1620, 0x1cd2f: 0x6ce29020,
-	0x1cd30: 0x6c38c220, 0x1cd31: 0x6d349a20, 0x1cd32: 0x6c688020, 0x1cd33: 0x6ccdb420,
-	0x1cd34: 0x6c550420, 0x1cd35: 0x6c255c20, 0x1cd36: 0x6cc90a20, 0x1cd37: 0x6cfd8a20,
-	0x1cd38: 0x6cdc1020, 0x1cd39: 0x6c3bf020, 0x1cd3a: 0x6d1c0020, 0x1cd3b: 0x6ccd1620,
-	0x1cd3c: 0x6d3b5c20, 0x1cd3d: 0x6c284c20, 0x1cd3e: 0x6c7b4020, 0x1cd3f: 0x6ca9d220,
-	// Block 0x735, offset 0x1cd40
-	0x1cd40: 0x6cea7020, 0x1cd41: 0x6c886a20, 0x1cd42: 0x6c0a7620, 0x1cd43: 0x6d1dc020,
-	0x1cd44: 0x6c74cc20, 0x1cd45: 0x6c1f8020, 0x1cd46: 0x6d18d420, 0x1cd47: 0x6c732c20,
-	0x1cd48: 0x6c7e9820, 0x1cd49: 0x6c88ce20, 0x1cd4a: 0x6ccac420, 0x1cd4b: 0x6cea7420,
-	0x1cd4c: 0x6c47da20, 0x1cd4d: 0x6cb67820, 0x1cd4e: 0x6c257c20, 0x1cd4f: 0x6c0d8e20,
-	0x1cd50: 0x6d09bc20, 0x1cd51: 0x6ca53a20, 0x1cd52: 0x6cf32020, 0x1cd53: 0x6d2a0e20,
-	0x1cd54: 0x6cfd3420, 0x1cd55: 0x6c0c4420, 0x1cd56: 0x6d044020, 0x1cd57: 0x6c7b5c20,
-	0x1cd58: 0x6c7eaa20, 0x1cd59: 0x6d0c4220, 0x1cd5a: 0x6c918820, 0x1cd5b: 0x6c5e4220,
-	0x1cd5c: 0x6d28a020, 0x1cd5d: 0x6c95cc20, 0x1cd5e: 0x6cc21020, 0x1cd5f: 0x6d2a1020,
-	0x1cd60: 0x6c946c20, 0x1cd61: 0x6ca61e20, 0x1cd62: 0x6d28aa20, 0x1cd63: 0x6c189420,
-	0x1cd64: 0x6cb8b620, 0x1cd65: 0x6cf2da20, 0x1cd66: 0x6c4a2420, 0x1cd67: 0x6d29e220,
-	0x1cd68: 0x6c8bea20, 0x1cd69: 0x6c4a0e20, 0x1cd6a: 0x6d3f2a20, 0x1cd6b: 0x6c68c420,
-	0x1cd6c: 0x6ca80e20, 0x1cd6d: 0x6c1e4020, 0x1cd6e: 0x6c620c20, 0x1cd6f: 0x6c42c820,
-	0x1cd70: 0x6c1e4420, 0x1cd71: 0x6c9dce20, 0x1cd72: 0x6ca87420, 0x1cd73: 0x6d357020,
-	0x1cd74: 0x6d35c620, 0x1cd75: 0x6c43f220, 0x1cd76: 0x6c669420, 0x1cd77: 0x6c2eb220,
-	0x1cd78: 0x6d33e420, 0x1cd79: 0x6d04d820, 0x1cd7a: 0x6cdf3220, 0x1cd7b: 0x6d319820,
-	0x1cd7c: 0x6c6fd020, 0x1cd7d: 0x6cfc8420, 0x1cd7e: 0x6d20ca20, 0x1cd7f: 0x6c138620,
-	// Block 0x736, offset 0x1cd80
-	0x1cd80: 0x6d11a420, 0x1cd81: 0x6d20e820, 0x1cd82: 0x6c1cc220, 0x1cd83: 0x6cf89020,
-	0x1cd84: 0x6cf89220, 0x1cd85: 0x6c700620, 0x1cd86: 0x6d217a20, 0x1cd87: 0x6d227220,
-	0x1cd88: 0x6d043820, 0x1cd89: 0x6c71d420, 0x1cd8a: 0x6c702a20, 0x1cd8b: 0x6d035820,
-	0x1cd8c: 0x6ccf0620, 0x1cd8d: 0x6ccf2820, 0x1cd8e: 0x6ccf9620, 0x1cd8f: 0x6c6fb220,
-	0x1cd90: 0x6cd36020, 0x1cd91: 0x6cdfa420, 0x1cd92: 0x6cd4e220, 0x1cd93: 0x6cd3b620,
-	0x1cd94: 0x6ce50820, 0x1cd95: 0x6ce0a420, 0x1cd96: 0x6cb4b020, 0x1cd97: 0x6cb4b220,
-	0x1cd98: 0x6c496420, 0x1cd99: 0x6c57cc20, 0x1cd9a: 0x6ce54020, 0x1cd9b: 0x6c201620,
-	0x1cd9c: 0x6cd75220, 0x1cd9d: 0x6cf9d820, 0x1cd9e: 0x6cf45e20, 0x1cd9f: 0x6d385220,
-	0x1cda0: 0x6c29be20, 0x1cda1: 0x6c1ff420, 0x1cda2: 0x6cccd620, 0x1cda3: 0x6d15d420,
-	0x1cda4: 0x6c397c20, 0x1cda5: 0x6cabc020, 0x1cda6: 0x6cdf6a20, 0x1cda7: 0x6c389420,
-	0x1cda8: 0x6c04c820, 0x1cda9: 0x6c1ff620, 0x1cdaa: 0x6c4f6c20, 0x1cdab: 0x6c39d420,
-	0x1cdac: 0x6c047a20, 0x1cdad: 0x6c08d420, 0x1cdae: 0x6c934820, 0x1cdaf: 0x6d37b020,
-	0x1cdb0: 0x6c667220, 0x1cdb1: 0x6c122a20, 0x1cdb2: 0x6c8cfc20, 0x1cdb3: 0x6d3a1020,
-	0x1cdb4: 0x6d2ac620, 0x1cdb5: 0x6c34f220, 0x1cdb6: 0x6c0ef620, 0x1cdb7: 0x6cfb5020,
-	0x1cdb8: 0x6c447620, 0x1cdb9: 0x6c1ff820, 0x1cdba: 0x6cf9b420, 0x1cdbb: 0x6c914e20,
-	0x1cdbc: 0x6cbf2e20, 0x1cdbd: 0x6cacfc20, 0x1cdbe: 0x6cf62a20, 0x1cdbf: 0x6c7af420,
-	// Block 0x737, offset 0x1cdc0
-	0x1cdc0: 0x6c3ea420, 0x1cdc1: 0x6d2a8620, 0x1cdc2: 0x6c3cb220, 0x1cdc3: 0x6c83f220,
-	0x1cdc4: 0x6cce7820, 0x1cdc5: 0x6d216420, 0x1cdc6: 0x6c80d220, 0x1cdc7: 0x6ce6ce20,
-	0x1cdc8: 0x6d237820, 0x1cdc9: 0x6cefe820, 0x1cdca: 0x6c0f3220, 0x1cdcb: 0x6c9be020,
-	0x1cdcc: 0x6ca76c20, 0x1cdcd: 0x6c70b420, 0x1cdce: 0x6c59f420, 0x1cdcf: 0x6cd44a20,
-	0x1cdd0: 0x6c78d020, 0x1cdd1: 0x6c0bb820, 0x1cdd2: 0x6ca2a620, 0x1cdd3: 0x6c2ede20,
-	0x1cdd4: 0x6c315c20, 0x1cdd5: 0x6c059020, 0x1cdd6: 0x6c13ae20, 0x1cdd7: 0x6d18b220,
-	0x1cdd8: 0x6cd9d820, 0x1cdd9: 0x6c123a20, 0x1cdda: 0x6c129c20, 0x1cddb: 0x6c90c020,
-	0x1cddc: 0x6c279820, 0x1cddd: 0x6d098a20, 0x1cdde: 0x6d123420, 0x1cddf: 0x6c1cee20,
-	0x1cde0: 0x6c2b0820, 0x1cde1: 0x6c291c20, 0x1cde2: 0x6cbb2c20, 0x1cde3: 0x6c91f620,
-	0x1cde4: 0x6d162220, 0x1cde5: 0x6c60e020, 0x1cde6: 0x6c670e20, 0x1cde7: 0x6c5e3020,
-	0x1cde8: 0x6c9b8620, 0x1cde9: 0x6cb69820, 0x1cdea: 0x6c91fe20, 0x1cdeb: 0x6c919a20,
-	0x1cdec: 0x6c157220, 0x1cded: 0x6cd6c020, 0x1cdee: 0x6c449e20, 0x1cdef: 0x6c894620,
-	0x1cdf0: 0x6c647220, 0x1cdf1: 0x6c650020, 0x1cdf2: 0x6ccb1420, 0x1cdf3: 0x6d0e5420,
-	0x1cdf4: 0x6c3e6820, 0x1cdf5: 0x6cb25a20, 0x1cdf6: 0x6d0eea20, 0x1cdf7: 0x6d0f1c20,
-	0x1cdf8: 0x6c12aa20, 0x1cdf9: 0x6c12c020, 0x1cdfa: 0x6d164220, 0x1cdfb: 0x6c821220,
-	0x1cdfc: 0x6ce62820, 0x1cdfd: 0x6c681e20, 0x1cdfe: 0x6c008420, 0x1cdff: 0x6ca39020,
-	// Block 0x738, offset 0x1ce00
-	0x1ce00: 0x6ce56820, 0x1ce01: 0x6c682020, 0x1ce02: 0x6c6a5a20, 0x1ce03: 0x6cae8c20,
-	0x1ce04: 0x6cecbe20, 0x1ce05: 0x6d167020, 0x1ce06: 0x6c145e20, 0x1ce07: 0x6c9db820,
-	0x1ce08: 0x6c9cd820, 0x1ce09: 0x6c416220, 0x1ce0a: 0x6cb89e20, 0x1ce0b: 0x6d22c820,
-	0x1ce0c: 0x6d22ca20, 0x1ce0d: 0x6cce9620, 0x1ce0e: 0x6cbeee20, 0x1ce0f: 0x6c323020,
-	0x1ce10: 0x6c564c20, 0x1ce11: 0x6cb6ce20, 0x1ce12: 0x6c982c20, 0x1ce13: 0x6d3f2e20,
-	0x1ce14: 0x6c5ba020, 0x1ce15: 0x6cdbaa20, 0x1ce16: 0x6d357220, 0x1ce17: 0x6cfd6020,
-	0x1ce18: 0x6cafb020, 0x1ce19: 0x6c3ddc20, 0x1ce1a: 0x6cea4220, 0x1ce1b: 0x6cef8a20,
-	0x1ce1c: 0x6cf3a820, 0x1ce1d: 0x6d338420, 0x1ce1e: 0x6cb73e20, 0x1ce1f: 0x6cccbe20,
-	0x1ce20: 0x6cf18020, 0x1ce21: 0x6cba3e20, 0x1ce22: 0x6cc56e20, 0x1ce23: 0x6c3dde20,
-	0x1ce24: 0x6c79b620, 0x1ce25: 0x6c6bba20, 0x1ce26: 0x6c913620, 0x1ce27: 0x6d067420,
-	0x1ce28: 0x6c5e8220, 0x1ce29: 0x6cbd5420, 0x1ce2a: 0x6cb57620, 0x1ce2b: 0x6d0c5a20,
-	0x1ce2c: 0x6c3b1420, 0x1ce2d: 0x6c032020, 0x1ce2e: 0x6cc8c020, 0x1ce2f: 0x6d02ac20,
-	0x1ce30: 0x6c618a20, 0x1ce31: 0x6c570620, 0x1ce32: 0x6c570820, 0x1ce33: 0x6c398620,
-	0x1ce34: 0x6cf4ae20, 0x1ce35: 0x6c73e420, 0x1ce36: 0x6c466c20, 0x1ce37: 0x6d34ee20,
-	0x1ce38: 0x6d278420, 0x1ce39: 0x6cbd5620, 0x1ce3a: 0x6c029e20, 0x1ce3b: 0x6c1e7820,
-	0x1ce3c: 0x6c994620, 0x1ce3d: 0x6d0b1420, 0x1ce3e: 0x6c3a8020, 0x1ce3f: 0x6cc63220,
-	// Block 0x739, offset 0x1ce40
-	0x1ce40: 0x6c4f5a20, 0x1ce41: 0x6c22fc20, 0x1ce42: 0x6d1a2a20, 0x1ce43: 0x6d1fa220,
-	0x1ce44: 0x6c0b7420, 0x1ce45: 0x6d169a20, 0x1ce46: 0x6cbd1020, 0x1ce47: 0x6cef8c20,
-	0x1ce48: 0x6c858420, 0x1ce49: 0x6cb05420, 0x1ce4a: 0x6c35d420, 0x1ce4b: 0x6cfc7c20,
-	0x1ce4c: 0x6c169a20, 0x1ce4d: 0x6c122420, 0x1ce4e: 0x6d3aa620, 0x1ce4f: 0x6cda4820,
-	0x1ce50: 0x6ce30e20, 0x1ce51: 0x6d260220, 0x1ce52: 0x6cc4ae20, 0x1ce53: 0x6c8cb020,
-	0x1ce54: 0x6cdf1a20, 0x1ce55: 0x6cce9820, 0x1ce56: 0x6c2b5c20, 0x1ce57: 0x6c9e6e20,
-	0x1ce58: 0x6cbe9c20, 0x1ce59: 0x6c859620, 0x1ce5a: 0x6d1e7220, 0x1ce5b: 0x6c77d820,
-	0x1ce5c: 0x6ca27220, 0x1ce5d: 0x6c06ee20, 0x1ce5e: 0x6c05a820, 0x1ce5f: 0x6c467220,
-	0x1ce60: 0x6c9f3420, 0x1ce61: 0x6d15c420, 0x1ce62: 0x6d15ca20, 0x1ce63: 0x6c720020,
-	0x1ce64: 0x6cb1de20, 0x1ce65: 0x6cc91420, 0x1ce66: 0x6c7a7620, 0x1ce67: 0x6ca8fa20,
-	0x1ce68: 0x6ca62c20, 0x1ce69: 0x6c0ebc20, 0x1ce6a: 0x6c0dc820, 0x1ce6b: 0x6cccc620,
-	0x1ce6c: 0x6d051a20, 0x1ce6d: 0x6d119220, 0x1ce6e: 0x6cfa8420, 0x1ce6f: 0x6c079620,
-	0x1ce70: 0x6c530620, 0x1ce71: 0x6d1ba220, 0x1ce72: 0x6d2c7420, 0x1ce73: 0x6c2fe220,
-	0x1ce74: 0x6c706020, 0x1ce75: 0x6c2e6220, 0x1ce76: 0x6ca7de20, 0x1ce77: 0x6c417e20,
-	0x1ce78: 0x6c54a820, 0x1ce79: 0x6cb27c20, 0x1ce7a: 0x6c99dc20, 0x1ce7b: 0x6c3e0220,
-	0x1ce7c: 0x6cd0e820, 0x1ce7d: 0x6c46f620, 0x1ce7e: 0x6c093e20, 0x1ce7f: 0x6cf07620,
-	// Block 0x73a, offset 0x1ce80
-	0x1ce80: 0x6c3e0420, 0x1ce81: 0x6d3d2e20, 0x1ce82: 0x6c994c20, 0x1ce83: 0x6c393220,
-	0x1ce84: 0x6c633020, 0x1ce85: 0x6c98cc20, 0x1ce86: 0x6c98ce20, 0x1ce87: 0x6c036a20,
-	0x1ce88: 0x6c223220, 0x1ce89: 0x6ca0d620, 0x1ce8a: 0x6d3e0620, 0x1ce8b: 0x6c2be020,
-	0x1ce8c: 0x6c1b0a20, 0x1ce8d: 0x6c61b220, 0x1ce8e: 0x6c6d9420, 0x1ce8f: 0x6c8f6e20,
-	0x1ce90: 0x6c23e220, 0x1ce91: 0x6ca78e20, 0x1ce92: 0x6d256c20, 0x1ce93: 0x6d08fe20,
-	0x1ce94: 0x6d1c5a20, 0x1ce95: 0x6cbf0020, 0x1ce96: 0x6c43cc20, 0x1ce97: 0x6c9ff020,
-	0x1ce98: 0x6c85ae20, 0x1ce99: 0x6cc65c20, 0x1ce9a: 0x6d1b3c20, 0x1ce9b: 0x6c44b020,
-	0x1ce9c: 0x6cba4420, 0x1ce9d: 0x6c148e20, 0x1ce9e: 0x6c18aa20, 0x1ce9f: 0x6d22e820,
-	0x1cea0: 0x6c4fa220, 0x1cea1: 0x6d3f3420, 0x1cea2: 0x6c8adc20, 0x1cea3: 0x6cf3bc20,
-	0x1cea4: 0x6c61b420, 0x1cea5: 0x6c4a4020, 0x1cea6: 0x6c22bc20, 0x1cea7: 0x6c657620,
-	0x1cea8: 0x6c223420, 0x1cea9: 0x6c469e20, 0x1ceaa: 0x6c49e220, 0x1ceab: 0x6c984420,
-	0x1ceac: 0x6c13ce20, 0x1cead: 0x6c683620, 0x1ceae: 0x6c683820, 0x1ceaf: 0x6c3e2420,
-	0x1ceb0: 0x6d20ea20, 0x1ceb1: 0x6d398e20, 0x1ceb2: 0x6d3e1420, 0x1ceb3: 0x6c675220,
-	0x1ceb4: 0x6c5b2820, 0x1ceb5: 0x6d19b620, 0x1ceb6: 0x6c13d020, 0x1ceb7: 0x6c380820,
-	0x1ceb8: 0x6cc64e20, 0x1ceb9: 0x6cc79420, 0x1ceba: 0x6c1cb620, 0x1cebb: 0x6c989220,
-	0x1cebc: 0x6ce72c20, 0x1cebd: 0x6d381c20, 0x1cebe: 0x6cb8ac20, 0x1cebf: 0x6d3a0220,
-	// Block 0x73b, offset 0x1cec0
-	0x1cec0: 0x6d09f220, 0x1cec1: 0x6c586820, 0x1cec2: 0x6c3d5420, 0x1cec3: 0x6cc2c620,
-	0x1cec4: 0x6c40ea20, 0x1cec5: 0x6c264620, 0x1cec6: 0x6c6d9a20, 0x1cec7: 0x6d041c20,
-	0x1cec8: 0x6c201c20, 0x1cec9: 0x6c12ac20, 0x1ceca: 0x6c6d9c20, 0x1cecb: 0x6c374820,
-	0x1cecc: 0x6c01a820, 0x1cecd: 0x6cbbd420, 0x1cece: 0x6c1b1220, 0x1cecf: 0x6cc58c20,
-	0x1ced0: 0x6c666020, 0x1ced1: 0x6ce31220, 0x1ced2: 0x6c598420, 0x1ced3: 0x6cb28e20,
-	0x1ced4: 0x6c85b020, 0x1ced5: 0x6c6c3620, 0x1ced6: 0x6c81aa20, 0x1ced7: 0x6cd5b620,
-	0x1ced8: 0x6d3c0e20, 0x1ced9: 0x6c268c20, 0x1ceda: 0x6c63a820, 0x1cedb: 0x6cc52220,
-	0x1cedc: 0x6c095620, 0x1cedd: 0x6d2ab420, 0x1cede: 0x6cbbd620, 0x1cedf: 0x6c5ba220,
-	0x1cee0: 0x6c61b620, 0x1cee1: 0x6c295c20, 0x1cee2: 0x6d24c020, 0x1cee3: 0x6cc65e20,
-	0x1cee4: 0x6c5cb620, 0x1cee5: 0x6d03d420, 0x1cee6: 0x6c95ec20, 0x1cee7: 0x6d1c5e20,
-	0x1cee8: 0x6d09f420, 0x1cee9: 0x6c6ce420, 0x1ceea: 0x6cdcce20, 0x1ceeb: 0x6d19b820,
-	0x1ceec: 0x6c971220, 0x1ceed: 0x6c532020, 0x1ceee: 0x6d391420, 0x1ceef: 0x6d11f620,
-	0x1cef0: 0x6c324c20, 0x1cef1: 0x6cefa420, 0x1cef2: 0x6c83b020, 0x1cef3: 0x6c310820,
-	0x1cef4: 0x6c3d6020, 0x1cef5: 0x6cc59220, 0x1cef6: 0x6d1a4c20, 0x1cef7: 0x6c50fc20,
-	0x1cef8: 0x6c08a020, 0x1cef9: 0x6c108820, 0x1cefa: 0x6d27e220, 0x1cefb: 0x6c2b6620,
-	0x1cefc: 0x6ce89820, 0x1cefd: 0x6cdbba20, 0x1cefe: 0x6cdbbc20, 0x1ceff: 0x6c19d020,
-	// Block 0x73c, offset 0x1cf00
-	0x1cf00: 0x6c18b420, 0x1cf01: 0x6cf3be20, 0x1cf02: 0x6c0ce420, 0x1cf03: 0x6cf5d020,
-	0x1cf04: 0x6c450420, 0x1cf05: 0x6c85de20, 0x1cf06: 0x6cb43420, 0x1cf07: 0x6d3ae020,
-	0x1cf08: 0x6ca10020, 0x1cf09: 0x6c85e020, 0x1cf0a: 0x6d3c1420, 0x1cf0b: 0x6d423420,
-	0x1cf0c: 0x6ceab820, 0x1cf0d: 0x6cc03820, 0x1cf0e: 0x6ccbe420, 0x1cf0f: 0x6cdd1220,
-	0x1cf10: 0x6c18b620, 0x1cf11: 0x6cae9620, 0x1cf12: 0x6c71ae20, 0x1cf13: 0x6c99e820,
-	0x1cf14: 0x6c9b1220, 0x1cf15: 0x6d042420, 0x1cf16: 0x6c6da220, 0x1cf17: 0x6c17d820,
-	0x1cf18: 0x6ccfd420, 0x1cf19: 0x6c756820, 0x1cf1a: 0x6d0c7a20, 0x1cf1b: 0x6ce66620,
-	0x1cf1c: 0x6d1f2020, 0x1cf1d: 0x6c261e20, 0x1cf1e: 0x6c494c20, 0x1cf1f: 0x6c4ea020,
-	0x1cf20: 0x6d1fbe20, 0x1cf21: 0x6c262020, 0x1cf22: 0x6c63b420, 0x1cf23: 0x6cede220,
-	0x1cf24: 0x6cda9620, 0x1cf25: 0x6ca99220, 0x1cf26: 0x6cce6420, 0x1cf27: 0x6cfcac20,
-	0x1cf28: 0x6c811a20, 0x1cf29: 0x6c3e4020, 0x1cf2a: 0x6c355a20, 0x1cf2b: 0x6ca10220,
-	0x1cf2c: 0x6cf20420, 0x1cf2d: 0x6c6aa820, 0x1cf2e: 0x6ca3f420, 0x1cf2f: 0x6ca27c20,
-	0x1cf30: 0x6c76c820, 0x1cf31: 0x6c7eee20, 0x1cf32: 0x6c87f820, 0x1cf33: 0x6cd26020,
-	0x1cf34: 0x6cf28220, 0x1cf35: 0x6ce93020, 0x1cf36: 0x6cfa9620, 0x1cf37: 0x6c5db220,
-	0x1cf38: 0x6d1f2220, 0x1cf39: 0x6d1c6020, 0x1cf3a: 0x6d1ba820, 0x1cf3b: 0x6c461e20,
-	0x1cf3c: 0x6c213e20, 0x1cf3d: 0x6c988a20, 0x1cf3e: 0x6c988c20, 0x1cf3f: 0x6c22c220,
-	// Block 0x73d, offset 0x1cf40
-	0x1cf40: 0x6ced1020, 0x1cf41: 0x6c6db220, 0x1cf42: 0x6c2c4e20, 0x1cf43: 0x6cc18020,
-	0x1cf44: 0x6c2ffe20, 0x1cf45: 0x6c648c20, 0x1cf46: 0x6d405020, 0x1cf47: 0x6c483a20,
-	0x1cf48: 0x6c7e4420, 0x1cf49: 0x6c924820, 0x1cf4a: 0x6c711c20, 0x1cf4b: 0x6cf08620,
-	0x1cf4c: 0x6c757020, 0x1cf4d: 0x6ca82220, 0x1cf4e: 0x6c7d5c20, 0x1cf4f: 0x6c511a20,
-	0x1cf50: 0x6cb43a20, 0x1cf51: 0x6d290020, 0x1cf52: 0x6c430420, 0x1cf53: 0x6c4cbc20,
-	0x1cf54: 0x6c3e6c20, 0x1cf55: 0x6c94f620, 0x1cf56: 0x6c166a20, 0x1cf57: 0x6c1daa20,
-	0x1cf58: 0x6cd91e20, 0x1cf59: 0x6c20ca20, 0x1cf5a: 0x6d2e5e20, 0x1cf5b: 0x6c9acc20,
-	0x1cf5c: 0x6c114420, 0x1cf5d: 0x6c037820, 0x1cf5e: 0x6c83c820, 0x1cf5f: 0x6ce8aa20,
-	0x1cf60: 0x6c0e7020, 0x1cf61: 0x6c4eb620, 0x1cf62: 0x6c064620, 0x1cf63: 0x6cbe1220,
-	0x1cf64: 0x6c731e20, 0x1cf65: 0x6cf60020, 0x1cf66: 0x6cbd6a20, 0x1cf67: 0x6c2bf220,
-	0x1cf68: 0x6c6a0420, 0x1cf69: 0x6cb43820, 0x1cf6a: 0x6c296220, 0x1cf6b: 0x6c6c9020,
-	0x1cf6c: 0x6cbbde20, 0x1cf6d: 0x6cdf2220, 0x1cf6e: 0x6c44c820, 0x1cf6f: 0x6c573420,
-	0x1cf70: 0x6c470c20, 0x1cf71: 0x6c8cfe20, 0x1cf72: 0x6c39fe20, 0x1cf73: 0x6cbd7020,
-	0x1cf74: 0x6c012a20, 0x1cf75: 0x6cee1620, 0x1cf76: 0x6c081c20, 0x1cf77: 0x6d38e220,
-	0x1cf78: 0x6d0c0020, 0x1cf79: 0x6c709020, 0x1cf7a: 0x6c648e20, 0x1cf7b: 0x6c8c1e20,
-	0x1cf7c: 0x6ce05c20, 0x1cf7d: 0x6cd4d420, 0x1cf7e: 0x6ce49e20, 0x1cf7f: 0x6c2a1420,
-	// Block 0x73e, offset 0x1cf80
-	0x1cf80: 0x6c561c20, 0x1cf81: 0x6cb5d020, 0x1cf82: 0x6c511c20, 0x1cf83: 0x6c253820,
-	0x1cf84: 0x6ce22420, 0x1cf85: 0x6c210420, 0x1cf86: 0x6c098a20, 0x1cf87: 0x6c16aa20,
-	0x1cf88: 0x6c586e20, 0x1cf89: 0x6c3aa620, 0x1cf8a: 0x6c7f0020, 0x1cf8b: 0x6cb4ee20,
-	0x1cf8c: 0x6c9b1420, 0x1cf8d: 0x6cb2a020, 0x1cf8e: 0x6cee7420, 0x1cf8f: 0x6c288220,
-	0x1cf90: 0x6ccc4e20, 0x1cf91: 0x6c587020, 0x1cf92: 0x6d0d6e20, 0x1cf93: 0x6d14ee20,
-	0x1cf94: 0x6ce58420, 0x1cf95: 0x6cb5d220, 0x1cf96: 0x6ced1220, 0x1cf97: 0x6c12e220,
-	0x1cf98: 0x6ca3bc20, 0x1cf99: 0x6d327c20, 0x1cf9a: 0x6ceba420, 0x1cf9b: 0x6c6f6c20,
-	0x1cf9c: 0x6ce5ee20, 0x1cf9d: 0x6c954220, 0x1cf9e: 0x6c0ae020, 0x1cf9f: 0x6d199220,
-	0x1cfa0: 0x6c9b1620, 0x1cfa1: 0x6c100820, 0x1cfa2: 0x6cada820, 0x1cfa3: 0x6c2fc620,
-	0x1cfa4: 0x6d1c6420, 0x1cfa5: 0x6d1c6620, 0x1cfa6: 0x6d1c6820, 0x1cfa7: 0x6cfebc20,
-	0x1cfa8: 0x6cc97420, 0x1cfa9: 0x6cbfb020, 0x1cfaa: 0x6c77fc20, 0x1cfab: 0x6cfe3620,
-	0x1cfac: 0x6ced8620, 0x1cfad: 0x6d226020, 0x1cfae: 0x6d213620, 0x1cfaf: 0x6c3ffa20,
-	0x1cfb0: 0x6c88fe20, 0x1cfb1: 0x6d07a220, 0x1cfb2: 0x6d07a420, 0x1cfb3: 0x6ca42a20,
-	0x1cfb4: 0x6c12f620, 0x1cfb5: 0x6cf28e20, 0x1cfb6: 0x6c217a20, 0x1cfb7: 0x6cfece20,
-	0x1cfb8: 0x6d210620, 0x1cfb9: 0x6c0b4020, 0x1cfba: 0x6c998420, 0x1cfbb: 0x6c013420,
-	0x1cfbc: 0x6c364020, 0x1cfbd: 0x6c960a20, 0x1cfbe: 0x6d1c7820, 0x1cfbf: 0x6c7dfc20,
-	// Block 0x73f, offset 0x1cfc0
-	0x1cfc0: 0x6c7dfe20, 0x1cfc1: 0x6c676420, 0x1cfc2: 0x6c9e2a20, 0x1cfc3: 0x6d42a020,
-	0x1cfc4: 0x6d42a220, 0x1cfc5: 0x6d409c20, 0x1cfc6: 0x6c060020, 0x1cfc7: 0x6cc74e20,
-	0x1cfc8: 0x6cf7ec20, 0x1cfc9: 0x6d12f620, 0x1cfca: 0x6c013620, 0x1cfcb: 0x6cc19420,
-	0x1cfcc: 0x6c64a820, 0x1cfcd: 0x6c3e8e20, 0x1cfce: 0x6c93e420, 0x1cfcf: 0x6c6dbe20,
-	0x1cfd0: 0x6cae4220, 0x1cfd1: 0x6c3c5020, 0x1cfd2: 0x6c535220, 0x1cfd3: 0x6c535420,
-	0x1cfd4: 0x6c540820, 0x1cfd5: 0x6d0e7a20, 0x1cfd6: 0x6ce86420, 0x1cfd7: 0x6d311420,
-	0x1cfd8: 0x6d3e4620, 0x1cfd9: 0x6cfd7a20, 0x1cfda: 0x6cc5f620, 0x1cfdb: 0x6c43f420,
-	0x1cfdc: 0x6cb82c20, 0x1cfdd: 0x6cbe8020, 0x1cfde: 0x6c9cf820, 0x1cfdf: 0x6c59c820,
-	0x1cfe0: 0x6ccff220, 0x1cfe1: 0x6cb43c20, 0x1cfe2: 0x6c413820, 0x1cfe3: 0x6c303020,
-	0x1cfe4: 0x6d392a20, 0x1cfe5: 0x6c669620, 0x1cfe6: 0x6cefcc20, 0x1cfe7: 0x6c0f0820,
-	0x1cfe8: 0x6cee9220, 0x1cfe9: 0x6cabc620, 0x1cfea: 0x6c620e20, 0x1cfeb: 0x6c556620,
-	0x1cfec: 0x6d2a0820, 0x1cfed: 0x6c636220, 0x1cfee: 0x6c32c620, 0x1cfef: 0x6d120a20,
-	0x1cff0: 0x6cdbc420, 0x1cff1: 0x6c231c20, 0x1cff2: 0x6cc2fa20, 0x1cff3: 0x6cee9420,
-	0x1cff4: 0x6d315820, 0x1cff5: 0x6c7c7a20, 0x1cff6: 0x6ce67820, 0x1cff7: 0x6c5cd220,
-	0x1cff8: 0x6cf7ee20, 0x1cff9: 0x6cd1c220, 0x1cffa: 0x6cb79a20, 0x1cffb: 0x6c7f9e20,
-	0x1cffc: 0x6d3f9420, 0x1cffd: 0x6d10a820, 0x1cffe: 0x6d24f020, 0x1cfff: 0x6c9a0620,
-	// Block 0x740, offset 0x1d000
-	0x1d000: 0x6d275220, 0x1d001: 0x6cd5c820, 0x1d002: 0x6c2c6220, 0x1d003: 0x6d3bc620,
-	0x1d004: 0x6c491820, 0x1d005: 0x6cc4dc20, 0x1d006: 0x6d08e020, 0x1d007: 0x6c15b820,
-	0x1d008: 0x6c765a20, 0x1d009: 0x6c7d0020, 0x1d00a: 0x6c571620, 0x1d00b: 0x6c67a820,
-	0x1d00c: 0x6c908e20, 0x1d00d: 0x6cefce20, 0x1d00e: 0x6cac2a20, 0x1d00f: 0x6d206c20,
-	0x1d010: 0x6cd9b620, 0x1d011: 0x6d1b6220, 0x1d012: 0x6cd1d420, 0x1d013: 0x6c215420,
-	0x1d014: 0x6cd27620, 0x1d015: 0x6d275a20, 0x1d016: 0x6d317220, 0x1d017: 0x6c812220,
-	0x1d018: 0x6cc7b420, 0x1d019: 0x6c9b2a20, 0x1d01a: 0x6c863a20, 0x1d01b: 0x6cc38e20,
-	0x1d01c: 0x6cdb9c20, 0x1d01d: 0x6d258a20, 0x1d01e: 0x6c863c20, 0x1d01f: 0x6c71c420,
-	0x1d020: 0x6cf65620, 0x1d021: 0x6c057e20, 0x1d022: 0x6c1e8220, 0x1d023: 0x6d062020,
-	0x1d024: 0x6ce8cc20, 0x1d025: 0x6c8e7020, 0x1d026: 0x6c5de020, 0x1d027: 0x6c2d2220,
-	0x1d028: 0x6cba5e20, 0x1d029: 0x6d409e20, 0x1d02a: 0x6cb39820, 0x1d02b: 0x6c25e420,
-	0x1d02c: 0x6d24fa20, 0x1d02d: 0x6c1e9020, 0x1d02e: 0x6d237a20, 0x1d02f: 0x6c7afe20,
-	0x1d030: 0x6cac6220, 0x1d031: 0x6cb43e20, 0x1d032: 0x6cb44020, 0x1d033: 0x6ca35820,
-	0x1d034: 0x6cd78820, 0x1d035: 0x6cf78820, 0x1d036: 0x6c3b7c20, 0x1d037: 0x6d27b820,
-	0x1d038: 0x6d32d220, 0x1d039: 0x6c64c020, 0x1d03a: 0x6c605e20, 0x1d03b: 0x6cc92220,
-	0x1d03c: 0x6c123620, 0x1d03d: 0x6c371820, 0x1d03e: 0x6c9c5820, 0x1d03f: 0x6c4fa820,
-	// Block 0x741, offset 0x1d040
-	0x1d040: 0x6cdcd820, 0x1d041: 0x6d317420, 0x1d042: 0x6ca00c20, 0x1d043: 0x6cd9b820,
-	0x1d044: 0x6d06fe20, 0x1d045: 0x6c8e7220, 0x1d046: 0x6cf78a20, 0x1d047: 0x6c479220,
-	0x1d048: 0x6c80c020, 0x1d049: 0x6cc68c20, 0x1d04a: 0x6cf25420, 0x1d04b: 0x6c414820,
-	0x1d04c: 0x6c263020, 0x1d04d: 0x6cd1d620, 0x1d04e: 0x6ce10820, 0x1d04f: 0x6c95b620,
-	0x1d050: 0x6cc82020, 0x1d051: 0x6cdd2820, 0x1d052: 0x6d07ae20, 0x1d053: 0x6c073620,
-	0x1d054: 0x6d11ba20, 0x1d055: 0x6c4b5620, 0x1d056: 0x6c09da20, 0x1d057: 0x6d3ffc20,
-	0x1d058: 0x6c4bd220, 0x1d059: 0x6d42ba20, 0x1d05a: 0x6ce58620, 0x1d05b: 0x6c12fe20,
-	0x1d05c: 0x6cae2e20, 0x1d05d: 0x6c7fa420, 0x1d05e: 0x6c28b620, 0x1d05f: 0x6c622420,
-	0x1d060: 0x6c83f420, 0x1d061: 0x6ccffa20, 0x1d062: 0x6c810620, 0x1d063: 0x6d237c20,
-	0x1d064: 0x6c8e2e20, 0x1d065: 0x6d1c8420, 0x1d066: 0x6ca13020, 0x1d067: 0x6c2e3020,
-	0x1d068: 0x6ce58e20, 0x1d069: 0x6c993c20, 0x1d06a: 0x6ce6fa20, 0x1d06b: 0x6c1f5a20,
-	0x1d06c: 0x6caeae20, 0x1d06d: 0x6c014020, 0x1d06e: 0x6c881820, 0x1d06f: 0x6c233220,
-	0x1d070: 0x6cf80220, 0x1d071: 0x6cb2ae20, 0x1d072: 0x6cbfb820, 0x1d073: 0x6c6ca620,
-	0x1d074: 0x6c215820, 0x1d075: 0x6c6b1420, 0x1d076: 0x6cef2420, 0x1d077: 0x6ce99620,
-	0x1d078: 0x6c128220, 0x1d079: 0x6d23ca20, 0x1d07a: 0x6d183620, 0x1d07b: 0x6d3ed220,
-	0x1d07c: 0x6c8a7220, 0x1d07d: 0x6c09dc20, 0x1d07e: 0x6c91ce20, 0x1d07f: 0x6d077620,
-	// Block 0x742, offset 0x1d080
-	0x1d080: 0x6c10a820, 0x1d081: 0x6d2ed020, 0x1d082: 0x6c824a20, 0x1d083: 0x6cbb1c20,
-	0x1d084: 0x6c97f220, 0x1d085: 0x6d0cb820, 0x1d086: 0x6c8d3e20, 0x1d087: 0x6c621020,
-	0x1d088: 0x6c0c0e20, 0x1d089: 0x6c4bde20, 0x1d08a: 0x6c4e5c20, 0x1d08b: 0x6c2b8220,
-	0x1d08c: 0x6cdaf020, 0x1d08d: 0x6c929620, 0x1d08e: 0x6ccf6c20, 0x1d08f: 0x6cce1420,
-	0x1d090: 0x6c2b8420, 0x1d091: 0x6c9ee420, 0x1d092: 0x6d09a220, 0x1d093: 0x6c97f420,
-	0x1d094: 0x6c0f3420, 0x1d095: 0x6c2c8420, 0x1d096: 0x6c25ea20, 0x1d097: 0x6d311620,
-	0x1d098: 0x6cd00a20, 0x1d099: 0x6d08a620, 0x1d09a: 0x6cf0b220, 0x1d09b: 0x6c558220,
-	0x1d09c: 0x6c025620, 0x1d09d: 0x6c9cfc20, 0x1d09e: 0x6c90aa20, 0x1d09f: 0x6c244a20,
-	0x1d0a0: 0x6d37c220, 0x1d0a1: 0x6c114820, 0x1d0a2: 0x6cb33220, 0x1d0a3: 0x6c67b220,
-	0x1d0a4: 0x6c9d6e20, 0x1d0a5: 0x6c233420, 0x1d0a6: 0x6ca7a220, 0x1d0a7: 0x6c5c0220,
-	0x1d0a8: 0x6c738620, 0x1d0a9: 0x6d1a8420, 0x1d0aa: 0x6c66ac20, 0x1d0ab: 0x6ca6f020,
-	0x1d0ac: 0x6cd50220, 0x1d0ad: 0x6d19f020, 0x1d0ae: 0x6c4c7e20, 0x1d0af: 0x6c18d620,
-	0x1d0b0: 0x6c56bc20, 0x1d0b1: 0x6ccc0020, 0x1d0b2: 0x6c79fc20, 0x1d0b3: 0x6cba6e20,
-	0x1d0b4: 0x6c966e20, 0x1d0b5: 0x6d29e420, 0x1d0b6: 0x6d2b5a20, 0x1d0b7: 0x6cbb1620,
-	0x1d0b8: 0x6c30ba20, 0x1d0b9: 0x6c88c620, 0x1d0ba: 0x6c8c5a20, 0x1d0bb: 0x6c79fe20,
-	0x1d0bc: 0x6c007020, 0x1d0bd: 0x6c0a0a20, 0x1d0be: 0x6c843220, 0x1d0bf: 0x6cf00a20,
-	// Block 0x743, offset 0x1d0c0
-	0x1d0c0: 0x6c609620, 0x1d0c1: 0x6cb9c420, 0x1d0c2: 0x6cd17620, 0x1d0c3: 0x6c385c20,
-	0x1d0c4: 0x6c9b3c20, 0x1d0c5: 0x6cab9020, 0x1d0c6: 0x6c15dc20, 0x1d0c7: 0x6c2d2820,
-	0x1d0c8: 0x6d0aa420, 0x1d0c9: 0x6c687020, 0x1d0ca: 0x6cc8ac20, 0x1d0cb: 0x6cc8ae20,
-	0x1d0cc: 0x6c82d420, 0x1d0cd: 0x6d218e20, 0x1d0ce: 0x6cbbf220, 0x1d0cf: 0x6c1ea020,
-	0x1d0d0: 0x6c575220, 0x1d0d1: 0x6c64e220, 0x1d0d2: 0x6c971a20, 0x1d0d3: 0x6d27c220,
-	0x1d0d4: 0x6c05b820, 0x1d0d5: 0x6d1f6820, 0x1d0d6: 0x6cc1aa20, 0x1d0d7: 0x6c92da20,
-	0x1d0d8: 0x6cc52a20, 0x1d0d9: 0x6c5c1e20, 0x1d0da: 0x6c369020, 0x1d0db: 0x6ce36a20,
-	0x1d0dc: 0x6c3a6a20, 0x1d0dd: 0x6c749e20, 0x1d0de: 0x6d41c820, 0x1d0df: 0x6c384020,
-	0x1d0e0: 0x6cc7c020, 0x1d0e1: 0x6c3b8e20, 0x1d0e2: 0x6c7d1620, 0x1d0e3: 0x6cd75820,
-	0x1d0e4: 0x6cc8a220, 0x1d0e5: 0x6d0b5e20, 0x1d0e6: 0x6d05dc20, 0x1d0e7: 0x6c403c20,
-	0x1d0e8: 0x6c74a020, 0x1d0e9: 0x6c298a20, 0x1d0ea: 0x6cf3e420, 0x1d0eb: 0x6c303a20,
-	0x1d0ec: 0x6cd82420, 0x1d0ed: 0x6cff1820, 0x1d0ee: 0x6cf8d020, 0x1d0ef: 0x6c8fa020,
-	0x1d0f0: 0x6cf16420, 0x1d0f1: 0x6ccee820, 0x1d0f2: 0x6cb64220, 0x1d0f3: 0x6c64e420,
-	0x1d0f4: 0x6d284e20, 0x1d0f5: 0x6cdcde20, 0x1d0f6: 0x6c8d5a20, 0x1d0f7: 0x6d23f220,
-	0x1d0f8: 0x6cf9ec20, 0x1d0f9: 0x6cf27220, 0x1d0fa: 0x6c609820, 0x1d0fb: 0x6c538820,
-	0x1d0fc: 0x6cd8ee20, 0x1d0fd: 0x6ca9ca20, 0x1d0fe: 0x6c82da20, 0x1d0ff: 0x6d07ce20,
-	// Block 0x744, offset 0x1d100
-	0x1d100: 0x6d285620, 0x1d101: 0x6d23cc20, 0x1d102: 0x6cf7a420, 0x1d103: 0x6c506e20,
-	0x1d104: 0x6c05d620, 0x1d105: 0x6c4fae20, 0x1d106: 0x6c00d220, 0x1d107: 0x6ceeba20,
-	0x1d108: 0x6c5c3c20, 0x1d109: 0x6c5c3e20, 0x1d10a: 0x6c628220, 0x1d10b: 0x6c226e20,
-	0x1d10c: 0x6cfd8420, 0x1d10d: 0x6ced9a20, 0x1d10e: 0x6c9ee820, 0x1d10f: 0x6d18b420,
-	0x1d110: 0x6c838820, 0x1d111: 0x6c677e20, 0x1d112: 0x6c120820, 0x1d113: 0x6cd01e20,
-	0x1d114: 0x6cbb2620, 0x1d115: 0x6c885a20, 0x1d116: 0x6c781c20, 0x1d117: 0x6d25ae20,
-	0x1d118: 0x6c26c020, 0x1d119: 0x6ce42220, 0x1d11a: 0x6ce0d420, 0x1d11b: 0x6d08e820,
-	0x1d11c: 0x6c0a5c20, 0x1d11d: 0x6d2d9a20, 0x1d11e: 0x6cdce020, 0x1d11f: 0x6cfad820,
-	0x1d120: 0x6c38c420, 0x1d121: 0x6c2f8220, 0x1d122: 0x6d021c20, 0x1d123: 0x6c47d220,
-	0x1d124: 0x6d021e20, 0x1d125: 0x6cd56e20, 0x1d126: 0x6c66d420, 0x1d127: 0x6c4fb020,
-	0x1d128: 0x6c52ca20, 0x1d129: 0x6cc99820, 0x1d12a: 0x6d02f220, 0x1d12b: 0x6d09aa20,
-	0x1d12c: 0x6d122420, 0x1d12d: 0x6c046a20, 0x1d12e: 0x6cda2c20, 0x1d12f: 0x6cd57020,
-	0x1d130: 0x6d09b420, 0x1d131: 0x6c336a20, 0x1d132: 0x6cb21a20, 0x1d133: 0x6cf01820,
-	0x1d134: 0x6ca92820, 0x1d135: 0x6c1df020, 0x1d136: 0x6c970420, 0x1d137: 0x6cc7d420,
-	0x1d138: 0x6cb18620, 0x1d139: 0x6cdf4c20, 0x1d13a: 0x6c62a020, 0x1d13b: 0x6d2a5a20,
-	0x1d13c: 0x6c18f020, 0x1d13d: 0x6d319a20, 0x1d13e: 0x6c37a820, 0x1d13f: 0x6ca65420,
-	// Block 0x745, offset 0x1d140
-	0x1d140: 0x6d1ca820, 0x1d141: 0x6c432620, 0x1d142: 0x6c23b820, 0x1d143: 0x6cff2420,
-	0x1d144: 0x6cb66020, 0x1d145: 0x6c382820, 0x1d146: 0x6c65e420, 0x1d147: 0x6d073e20,
-	0x1d148: 0x6c7ca620, 0x1d149: 0x6c60c620, 0x1d14a: 0x6c0b5820, 0x1d14b: 0x6c2e4620,
-	0x1d14c: 0x6c9d9420, 0x1d14d: 0x6c7fc420, 0x1d14e: 0x6c6d6420, 0x1d14f: 0x6c124e20,
-	0x1d150: 0x6c9ea020, 0x1d151: 0x6cbf6e20, 0x1d152: 0x6cbcec20, 0x1d153: 0x6cfc3420,
-	0x1d154: 0x6c8a5420, 0x1d155: 0x6cab9820, 0x1d156: 0x6cfbb620, 0x1d157: 0x6cdb4020,
-	0x1d158: 0x6c936a20, 0x1d159: 0x6d18f020, 0x1d15a: 0x6d075220, 0x1d15b: 0x6d014c20,
-	0x1d15c: 0x6c847220, 0x1d15d: 0x6d18f220, 0x1d15e: 0x6c7e6620, 0x1d15f: 0x6c82f020,
-	0x1d160: 0x6c69ca20, 0x1d161: 0x6c2b9a20, 0x1d162: 0x6d355a20, 0x1d163: 0x6c06bc20,
-	0x1d164: 0x6ce2c220, 0x1d165: 0x6d123620, 0x1d166: 0x6ca17c20, 0x1d167: 0x6c595e20,
-	0x1d168: 0x6c0c3e20, 0x1d169: 0x6c386820, 0x1d16a: 0x6cda3220, 0x1d16b: 0x6ce02e20,
-	0x1d16c: 0x6ce99a20, 0x1d16d: 0x6cbf8020, 0x1d16e: 0x6cbc0820, 0x1d16f: 0x6cf0f620,
-	0x1d170: 0x6c8ebc20, 0x1d171: 0x6c5c5c20, 0x1d172: 0x6cabac20, 0x1d173: 0x6c432c20,
-	0x1d174: 0x6d286220, 0x1d175: 0x6c068a20, 0x1d176: 0x6c870a20, 0x1d177: 0x6cd57e20,
-	0x1d178: 0x6c1ebe20, 0x1d179: 0x6c007e20, 0x1d17a: 0x6c8c7a20, 0x1d17b: 0x6d2a6020,
-	0x1d17c: 0x6d07e620, 0x1d17d: 0x6cbe2820, 0x1d17e: 0x6c7f7220, 0x1d17f: 0x6c5e3220,
-	// Block 0x746, offset 0x1d180
-	0x1d180: 0x6cebb620, 0x1d181: 0x6cf54420, 0x1d182: 0x6cc8b820, 0x1d183: 0x6cc8ba20,
-	0x1d184: 0x6cb68420, 0x1d185: 0x6c528020, 0x1d186: 0x6c917820, 0x1d187: 0x6cda6420,
-	0x1d188: 0x6ce9d020, 0x1d189: 0x6c9b8a20, 0x1d18a: 0x6d287020, 0x1d18b: 0x6cb2dc20,
-	0x1d18c: 0x6d22b020, 0x1d18d: 0x6d09c220, 0x1d18e: 0x6c62be20, 0x1d18f: 0x6c6eec20,
-	0x1d190: 0x6d07e820, 0x1d191: 0x6ca09020, 0x1d192: 0x6cc0c220, 0x1d193: 0x6cda6620,
-	0x1d194: 0x6c6eee20, 0x1d195: 0x6c3d0420, 0x1d196: 0x6ca8a620, 0x1d197: 0x6c0ffe20,
-	0x1d198: 0x6cc4ea20, 0x1d199: 0x6d193020, 0x1d19a: 0x6cfc4a20, 0x1d19b: 0x6d21e420,
-	0x1d19c: 0x6c718820, 0x1d19d: 0x6c892e20, 0x1d19e: 0x6c88dc20, 0x1d19f: 0x6d1b1e20,
-	0x1d1a0: 0x6cbb2e20, 0x1d1a1: 0x6d1c2420, 0x1d1a2: 0x6c8fcc20, 0x1d1a3: 0x6ce82220,
-	0x1d1a4: 0x6cf05420, 0x1d1a5: 0x6d270c20, 0x1d1a6: 0x6c8d9420, 0x1d1a7: 0x6cc1f020,
-	0x1d1a8: 0x6d117020, 0x1d1a9: 0x6c38e620, 0x1d1aa: 0x6c9a3c20, 0x1d1ab: 0x6c4f3020,
-	0x1d1ac: 0x6c7c5620, 0x1d1ad: 0x6c7ff020, 0x1d1ae: 0x6c62d220, 0x1d1af: 0x6c29a220,
-	0x1d1b0: 0x6c981820, 0x1d1b1: 0x6c836220, 0x1d1b2: 0x6c828820, 0x1d1b3: 0x6c5b0a20,
-	0x1d1b4: 0x6c3c8220, 0x1d1b5: 0x6d342820, 0x1d1b6: 0x6cf10e20, 0x1d1b7: 0x6c7cb620,
-	0x1d1b8: 0x6d2ea220, 0x1d1b9: 0x6c580620, 0x1d1ba: 0x6c84ac20, 0x1d1bb: 0x6c62e220,
-	0x1d1bc: 0x6c9cb620, 0x1d1bd: 0x6c830a20, 0x1d1be: 0x6c582220, 0x1d1bf: 0x6c957a20,
-	// Block 0x747, offset 0x1d1c0
-	0x1d1c0: 0x6c5fa020, 0x1d1c1: 0x6c7cbe20, 0x1d1c2: 0x6c934020, 0x1d1c3: 0x6c655020,
-	0x1d1c4: 0x6cc9ba20, 0x1d1c5: 0x6ce2e620, 0x1d1c6: 0x6c829e20, 0x1d1c7: 0x6cc36820,
-	0x1d1c8: 0x6cff6020, 0x1d1c9: 0x6d197420, 0x1d1ca: 0x6c947220, 0x1d1cb: 0x6c9ae620,
-	0x1d1cc: 0x6c0cd420, 0x1d1cd: 0x6c549420, 0x1d1ce: 0x6c561220, 0x1d1cf: 0x6c91b820,
-	0x1d1d0: 0x6caaa220, 0x1d1d1: 0x6c93d420, 0x1d1d2: 0x6cd7da20, 0x1d1d3: 0x6cfeaa20,
-	0x1d1d4: 0x6cb98220, 0x1d1d5: 0x6c1f3620, 0x1d1d6: 0x6c54c620, 0x1d1d7: 0x6d058a20,
-	0x1d1d8: 0x6c25d820, 0x1d1d9: 0x6c3e6e20, 0x1d1da: 0x6d058c20, 0x1d1db: 0x6d05a820,
-	0x1d1dc: 0x6c91c420, 0x1d1dd: 0x6c562420, 0x1d1de: 0x6d216620, 0x1d1df: 0x6c504a20,
-	0x1d1e0: 0x6c686020, 0x1d1e1: 0x6c725820, 0x1d1e2: 0x6c4c8620, 0x1d1e3: 0x6c066820,
-	0x1d1e4: 0x6d0cd220, 0x1d1e5: 0x6d2e8220, 0x1d1e6: 0x6d2e8420, 0x1d1e7: 0x6c7c4820,
-	0x1d1e8: 0x6c0d5620, 0x1d1e9: 0x6cf90620, 0x1d1ea: 0x6cd63220, 0x1d1eb: 0x6c1d0820,
-	0x1d1ec: 0x6cc00220, 0x1d1ed: 0x6c2db220, 0x1d1ee: 0x6c612620, 0x1d1ef: 0x6cc00c20,
-	0x1d1f0: 0x6c2f5820, 0x1d1f1: 0x6cd19a20, 0x1d1f2: 0x6cf95020, 0x1d1f3: 0x6c740820,
-	0x1d1f4: 0x6d302a20, 0x1d1f5: 0x6ccf0a20, 0x1d1f6: 0x6d208020, 0x1d1f7: 0x6c4dea20,
-	0x1d1f8: 0x6d3efe20, 0x1d1f9: 0x6c532220, 0x1d1fa: 0x6c5a9a20, 0x1d1fb: 0x6c9b0c20,
-	0x1d1fc: 0x6c447e20, 0x1d1fd: 0x6cdbb020, 0x1d1fe: 0x6cf95a20, 0x1d1ff: 0x6c149420,
-	// Block 0x748, offset 0x1d200
-	0x1d200: 0x6cd25620, 0x1d201: 0x6d15d620, 0x1d202: 0x6c969620, 0x1d203: 0x6cfe2020,
-	0x1d204: 0x6c399420, 0x1d205: 0x6c360220, 0x1d206: 0x6c034020, 0x1d207: 0x6c1b9620,
-	0x1d208: 0x6cb8ca20, 0x1d209: 0x6cf18e20, 0x1d20a: 0x6cf19020, 0x1d20b: 0x6cc8c620,
-	0x1d20c: 0x6c056620, 0x1d20d: 0x6cafd220, 0x1d20e: 0x6d269a20, 0x1d20f: 0x6d269c20,
-	0x1d210: 0x6c756a20, 0x1d211: 0x6cb5ae20, 0x1d212: 0x6ce73c20, 0x1d213: 0x6d1ad620,
-	0x1d214: 0x6cb5b020, 0x1d215: 0x6c119020, 0x1d216: 0x6d255420, 0x1d217: 0x6c741a20,
-	0x1d218: 0x6c5b3020, 0x1d219: 0x6cbd6c20, 0x1d21a: 0x6cb5b220, 0x1d21b: 0x6d382220,
-	0x1d21c: 0x6d0b2220, 0x1d21d: 0x6c4fc220, 0x1d21e: 0x6ca27e20, 0x1d21f: 0x6cede420,
-	0x1d220: 0x6c3b6820, 0x1d221: 0x6c3b6a20, 0x1d222: 0x6c4f6e20, 0x1d223: 0x6c462e20,
-	0x1d224: 0x6d2a4620, 0x1d225: 0x6c3fd420, 0x1d226: 0x6cc47020, 0x1d227: 0x6c6bda20,
-	0x1d228: 0x6c3e4220, 0x1d229: 0x6c1aa420, 0x1d22a: 0x6c30ea20, 0x1d22b: 0x6c064820,
-	0x1d22c: 0x6cfc0620, 0x1d22d: 0x6ca5de20, 0x1d22e: 0x6ce27820, 0x1d22f: 0x6cbfac20,
-	0x1d230: 0x6d1f2c20, 0x1d231: 0x6d2cc220, 0x1d232: 0x6cb2a220, 0x1d233: 0x6c1b1e20,
-	0x1d234: 0x6d204220, 0x1d235: 0x6c511e20, 0x1d236: 0x6c4da020, 0x1d237: 0x6c723420,
-	0x1d238: 0x6c85fe20, 0x1d239: 0x6c3fe620, 0x1d23a: 0x6cc47620, 0x1d23b: 0x6d2c2a20,
-	0x1d23c: 0x6c468220, 0x1d23d: 0x6cafe220, 0x1d23e: 0x6cafe420, 0x1d23f: 0x6cfb5220,
-	// Block 0x749, offset 0x1d240
-	0x1d240: 0x6d3af020, 0x1d241: 0x6c2dc820, 0x1d242: 0x6c0ce820, 0x1d243: 0x6c0de220,
-	0x1d244: 0x6c470e20, 0x1d245: 0x6d2d7020, 0x1d246: 0x6cc10620, 0x1d247: 0x6ccf1220,
-	0x1d248: 0x6ce5fa20, 0x1d249: 0x6c8d0020, 0x1d24a: 0x6c478420, 0x1d24b: 0x6c288420,
-	0x1d24c: 0x6c478620, 0x1d24d: 0x6d1c6a20, 0x1d24e: 0x6c860020, 0x1d24f: 0x6c196a20,
-	0x1d250: 0x6cc11220, 0x1d251: 0x6ca1d620, 0x1d252: 0x6c43f620, 0x1d253: 0x6c22ca20,
-	0x1d254: 0x6c5b3820, 0x1d255: 0x6c5b3a20, 0x1d256: 0x6c986a20, 0x1d257: 0x6c3ffc20,
-	0x1d258: 0x6d0fbc20, 0x1d259: 0x6cebde20, 0x1d25a: 0x6c8b0e20, 0x1d25b: 0x6d39ac20,
-	0x1d25c: 0x6d13f820, 0x1d25d: 0x6cfb6220, 0x1d25e: 0x6c7e0020, 0x1d25f: 0x6c684e20,
-	0x1d260: 0x6c861a20, 0x1d261: 0x6d17be20, 0x1d262: 0x6cb2b020, 0x1d263: 0x6cb4fc20,
-	0x1d264: 0x6c4cfe20, 0x1d265: 0x6ccf1a20, 0x1d266: 0x6d14fc20, 0x1d267: 0x6cee2420,
-	0x1d268: 0x6ca11c20, 0x1d269: 0x6cbf3220, 0x1d26a: 0x6cbcc420, 0x1d26b: 0x6c4b0420,
-	0x1d26c: 0x6cbf3420, 0x1d26d: 0x6d364020, 0x1d26e: 0x6c976420, 0x1d26f: 0x6c81f820,
-	0x1d270: 0x6d305c20, 0x1d271: 0x6c63c220, 0x1d272: 0x6ca4ae20, 0x1d273: 0x6cd7ee20,
-	0x1d274: 0x6cb5f020, 0x1d275: 0x6d038420, 0x1d276: 0x6c6bee20, 0x1d277: 0x6cc07c20,
-	0x1d278: 0x6cce7a20, 0x1d279: 0x6d1e4c20, 0x1d27a: 0x6c63ce20, 0x1d27b: 0x6cea0220,
-	0x1d27c: 0x6c17de20, 0x1d27d: 0x6c044e20, 0x1d27e: 0x6c357620, 0x1d27f: 0x6c4ed420,
-	// Block 0x74a, offset 0x1d280
-	0x1d280: 0x6cd56420, 0x1d281: 0x6d081620, 0x1d282: 0x6c3c5820, 0x1d283: 0x6cd0b820,
-	0x1d284: 0x6cd0ba20, 0x1d285: 0x6c3f7020, 0x1d286: 0x6cfce020, 0x1d287: 0x6d2ffe20,
-	0x1d288: 0x6cf3da20, 0x1d289: 0x6c3ea820, 0x1d28a: 0x6c83f820, 0x1d28b: 0x6c80d420,
-	0x1d28c: 0x6c09de20, 0x1d28d: 0x6c1e9220, 0x1d28e: 0x6d24fc20, 0x1d28f: 0x6d1fd820,
-	0x1d290: 0x6c6af820, 0x1d291: 0x6c288e20, 0x1d292: 0x6d0ca220, 0x1d293: 0x6ce67a20,
-	0x1d294: 0x6c2d6820, 0x1d295: 0x6cea0420, 0x1d296: 0x6c5b3c20, 0x1d297: 0x6cf29820,
-	0x1d298: 0x6d340420, 0x1d299: 0x6cd92c20, 0x1d29a: 0x6c3a1420, 0x1d29b: 0x6c70b620,
-	0x1d29c: 0x6c9d7020, 0x1d29d: 0x6cb62c20, 0x1d29e: 0x6cb62e20, 0x1d29f: 0x6d23a820,
-	0x1d2a0: 0x6c75da20, 0x1d2a1: 0x6c7e8a20, 0x1d2a2: 0x6c9be220, 0x1d2a3: 0x6cbac420,
-	0x1d2a4: 0x6cd80820, 0x1d2a5: 0x6cf68020, 0x1d2a6: 0x6c950820, 0x1d2a7: 0x6c865420,
-	0x1d2a8: 0x6c2ed620, 0x1d2a9: 0x6ce59a20, 0x1d2aa: 0x6ce23220, 0x1d2ab: 0x6c7d7a20,
-	0x1d2ac: 0x6c4e2620, 0x1d2ad: 0x6c4eec20, 0x1d2ae: 0x6d23aa20, 0x1d2af: 0x6c058420,
-	0x1d2b0: 0x6c3a4020, 0x1d2b1: 0x6cb00c20, 0x1d2b2: 0x6ceea820, 0x1d2b3: 0x6c339e20,
-	0x1d2b4: 0x6d183820, 0x1d2b5: 0x6d250c20, 0x1d2b6: 0x6cddd020, 0x1d2b7: 0x6cc30c20,
-	0x1d2b8: 0x6cba1a20, 0x1d2b9: 0x6cc8d820, 0x1d2ba: 0x6ca5fc20, 0x1d2bb: 0x6cbe5220,
-	0x1d2bc: 0x6cf0b420, 0x1d2bd: 0x6c899e20, 0x1d2be: 0x6c4cc820, 0x1d2bf: 0x6cec9620,
-	// Block 0x74b, offset 0x1d2c0
-	0x1d2c0: 0x6c301020, 0x1d2c1: 0x6c367220, 0x1d2c2: 0x6c04d020, 0x1d2c3: 0x6c2c8620,
-	0x1d2c4: 0x6cee3420, 0x1d2c5: 0x6c11a020, 0x1d2c6: 0x6d102820, 0x1d2c7: 0x6d1d6820,
-	0x1d2c8: 0x6c4c3220, 0x1d2c9: 0x6c150e20, 0x1d2ca: 0x6c2fb420, 0x1d2cb: 0x6c7e8c20,
-	0x1d2cc: 0x6c782c20, 0x1d2cd: 0x6c6afa20, 0x1d2ce: 0x6d005020, 0x1d2cf: 0x6ce68e20,
-	0x1d2d0: 0x6c99b220, 0x1d2d1: 0x6d05de20, 0x1d2d2: 0x6c9dd020, 0x1d2d3: 0x6d219020,
-	0x1d2d4: 0x6c6a3220, 0x1d2d5: 0x6cd28020, 0x1d2d6: 0x6d07c820, 0x1d2d7: 0x6c59f620,
-	0x1d2d8: 0x6d0dce20, 0x1d2d9: 0x6c0b0420, 0x1d2da: 0x6cc75e20, 0x1d2db: 0x6ceeb220,
-	0x1d2dc: 0x6c403e20, 0x1d2dd: 0x6d25a020, 0x1d2de: 0x6c9aaa20, 0x1d2df: 0x6cf14620,
-	0x1d2e0: 0x6c3ee220, 0x1d2e1: 0x6cc7c220, 0x1d2e2: 0x6d00e220, 0x1d2e3: 0x6d1f6a20,
-	0x1d2e4: 0x6cc09020, 0x1d2e5: 0x6c990020, 0x1d2e6: 0x6cf97820, 0x1d2e7: 0x6d1be020,
-	0x1d2e8: 0x6cd1f020, 0x1d2e9: 0x6c1d2020, 0x1d2ea: 0x6ce0ce20, 0x1d2eb: 0x6d39be20,
-	0x1d2ec: 0x6d3fba20, 0x1d2ed: 0x6ce36c20, 0x1d2ee: 0x6c404020, 0x1d2ef: 0x6d25a220,
-	0x1d2f0: 0x6c7c9820, 0x1d2f1: 0x6c9b3e20, 0x1d2f2: 0x6c7e9620, 0x1d2f3: 0x6c31b220,
-	0x1d2f4: 0x6c559620, 0x1d2f5: 0x6cbfc220, 0x1d2f6: 0x6c2ee020, 0x1d2f7: 0x6c866420,
-	0x1d2f8: 0x6cf29c20, 0x1d2f9: 0x6d276220, 0x1d2fa: 0x6cc24e20, 0x1d2fb: 0x6ca43a20,
-	0x1d2fc: 0x6c90b620, 0x1d2fd: 0x6c211220, 0x1d2fe: 0x6cc6a820, 0x1d2ff: 0x6d1c9220,
-	// Block 0x74c, offset 0x1d300
-	0x1d300: 0x6c677620, 0x1d301: 0x6c051420, 0x1d302: 0x6c80d820, 0x1d303: 0x6cad0e20,
-	0x1d304: 0x6cd82c20, 0x1d305: 0x6cf6da20, 0x1d306: 0x6c22de20, 0x1d307: 0x6cf6dc20,
-	0x1d308: 0x6d25b020, 0x1d309: 0x6cf23c20, 0x1d30a: 0x6c885c20, 0x1d30b: 0x6cd9dc20,
-	0x1d30c: 0x6c04a020, 0x1d30d: 0x6cc6b220, 0x1d30e: 0x6cc6b420, 0x1d30f: 0x6c60b220,
-	0x1d310: 0x6cf38220, 0x1d311: 0x6d055020, 0x1d312: 0x6c4f0e20, 0x1d313: 0x6cbdac20,
-	0x1d314: 0x6d156020, 0x1d315: 0x6c089020, 0x1d316: 0x6c575420, 0x1d317: 0x6ce13c20,
-	0x1d318: 0x6d161420, 0x1d319: 0x6c327c20, 0x1d31a: 0x6ca3d620, 0x1d31b: 0x6c517820,
-	0x1d31c: 0x6c55c020, 0x1d31d: 0x6c4a8a20, 0x1d31e: 0x6c96a420, 0x1d31f: 0x6ca01a20,
-	0x1d320: 0x6d18b620, 0x1d321: 0x6cf1b020, 0x1d322: 0x6d1ca020, 0x1d323: 0x6ce28420,
-	0x1d324: 0x6d37ca20, 0x1d325: 0x6c123c20, 0x1d326: 0x6ccb1020, 0x1d327: 0x6cb81a20,
-	0x1d328: 0x6c97c820, 0x1d329: 0x6ce5e620, 0x1d32a: 0x6cce2020, 0x1d32b: 0x6cd3e620,
-	0x1d32c: 0x6c129e20, 0x1d32d: 0x6c1ad620, 0x1d32e: 0x6c2ca620, 0x1d32f: 0x6c027620,
-	0x1d330: 0x6c92fa20, 0x1d331: 0x6cf0e820, 0x1d332: 0x6d371220, 0x1d333: 0x6ce14220,
-	0x1d334: 0x6c18ea20, 0x1d335: 0x6cb16a20, 0x1d336: 0x6cc1c420, 0x1d337: 0x6cb02420,
-	0x1d338: 0x6d21be20, 0x1d339: 0x6c66e420, 0x1d33a: 0x6c955820, 0x1d33b: 0x6c90c220,
-	0x1d33c: 0x6cbdea20, 0x1d33d: 0x6d37ce20, 0x1d33e: 0x6d1b1420, 0x1d33f: 0x6c678820,
-	// Block 0x74d, offset 0x1d340
-	0x1d340: 0x6cd67620, 0x1d341: 0x6cf1b820, 0x1d342: 0x6cff2620, 0x1d343: 0x6ceda020,
-	0x1d344: 0x6d30a220, 0x1d345: 0x6d310820, 0x1d346: 0x6c96f820, 0x1d347: 0x6c967a20,
-	0x1d348: 0x6c4c4820, 0x1d349: 0x6c8eaa20, 0x1d34a: 0x6c990a20, 0x1d34b: 0x6cf6f220,
-	0x1d34c: 0x6c236a20, 0x1d34d: 0x6c846220, 0x1d34e: 0x6c97d020, 0x1d34f: 0x6cff2820,
-	0x1d350: 0x6c173020, 0x1d351: 0x6d2ee220, 0x1d352: 0x6c98a020, 0x1d353: 0x6cfe5e20,
-	0x1d354: 0x6ca17e20, 0x1d355: 0x6d418220, 0x1d356: 0x6cd83c20, 0x1d357: 0x6cbfd420,
-	0x1d358: 0x6ce28820, 0x1d359: 0x6d34ac20, 0x1d35a: 0x6caed820, 0x1d35b: 0x6caeda20,
-	0x1d35c: 0x6c695620, 0x1d35d: 0x6cc1dc20, 0x1d35e: 0x6c0cc220, 0x1d35f: 0x6c8a3c20,
-	0x1d360: 0x6cac8220, 0x1d361: 0x6c4b2220, 0x1d362: 0x6cf81c20, 0x1d363: 0x6c615a20,
-	0x1d364: 0x6d3b9620, 0x1d365: 0x6c5a0e20, 0x1d366: 0x6c3a4220, 0x1d367: 0x6c818420,
-	0x1d368: 0x6c74de20, 0x1d369: 0x6c74e020, 0x1d36a: 0x6c5c7220, 0x1d36b: 0x6d1aa220,
-	0x1d36c: 0x6c153a20, 0x1d36d: 0x6c689c20, 0x1d36e: 0x6ccdcc20, 0x1d36f: 0x6ca4ca20,
-	0x1d370: 0x6cff3e20, 0x1d371: 0x6cf40020, 0x1d372: 0x6c1d2620, 0x1d373: 0x6d0a5020,
-	0x1d374: 0x6cd83e20, 0x1d375: 0x6c1f9c20, 0x1d376: 0x6c19a020, 0x1d377: 0x6c291e20,
-	0x1d378: 0x6c854420, 0x1d379: 0x6d026620, 0x1d37a: 0x6ccdd420, 0x1d37b: 0x6d162420,
-	0x1d37c: 0x6c6e3a20, 0x1d37d: 0x6c26c820, 0x1d37e: 0x6c154420, 0x1d37f: 0x6cb80020,
-	// Block 0x74e, offset 0x1d380
-	0x1d380: 0x6c221820, 0x1d381: 0x6cfe0220, 0x1d382: 0x6ccf7e20, 0x1d383: 0x6c95c820,
-	0x1d384: 0x6cbdb620, 0x1d385: 0x6d1d6e20, 0x1d386: 0x6c14a220, 0x1d387: 0x6c86da20,
-	0x1d388: 0x6d2b6a20, 0x1d389: 0x6d07ea20, 0x1d38a: 0x6c888820, 0x1d38b: 0x6d3a3220,
-	0x1d38c: 0x6d2b1e20, 0x1d38d: 0x6d005a20, 0x1d38e: 0x6c98a420, 0x1d38f: 0x6d026820,
-	0x1d390: 0x6cb69a20, 0x1d391: 0x6cc6e220, 0x1d392: 0x6c661a20, 0x1d393: 0x6c9bf220,
-	0x1d394: 0x6c500220, 0x1d395: 0x6cc7e420, 0x1d396: 0x6c5e3420, 0x1d397: 0x6d3dda20,
-	0x1d398: 0x6c6b7820, 0x1d399: 0x6cb22420, 0x1d39a: 0x6c50aa20, 0x1d39b: 0x6c9f0e20,
-	0x1d39c: 0x6c38ee20, 0x1d39d: 0x6c828a20, 0x1d39e: 0x6c6b7220, 0x1d39f: 0x6c7ec420,
-	0x1d3a0: 0x6c9fda20, 0x1d3a1: 0x6c84ae20, 0x1d3a2: 0x6c219020, 0x1d3a3: 0x6c873220,
-	0x1d3a4: 0x6cbfe620, 0x1d3a5: 0x6ca8bc20, 0x1d3a6: 0x6c919c20, 0x1d3a7: 0x6c328c20,
-	0x1d3a8: 0x6cff5620, 0x1d3a9: 0x6d39ee20, 0x1d3aa: 0x6c8ffc20, 0x1d3ab: 0x6c875620,
-	0x1d3ac: 0x6c8ffe20, 0x1d3ad: 0x6c3c8620, 0x1d3ae: 0x6d127220, 0x1d3af: 0x6c086620,
-	0x1d3b0: 0x6ca46020, 0x1d3b1: 0x6c47f220, 0x1d3b2: 0x6c730e20, 0x1d3b3: 0x6d1c4220,
-	0x1d3b4: 0x6cd63820, 0x1d3b5: 0x6cf75820, 0x1d3b6: 0x6c11c820, 0x1d3b7: 0x6cc22420,
-	0x1d3b8: 0x6cc33c20, 0x1d3b9: 0x6c329020, 0x1d3ba: 0x6c11ca20, 0x1d3bb: 0x6c97ae20,
-	0x1d3bc: 0x6cc22e20, 0x1d3bd: 0x6c6b8e20, 0x1d3be: 0x6d3a4e20, 0x1d3bf: 0x6d3d1820,
-	// Block 0x74f, offset 0x1d3c0
-	0x1d3c0: 0x6d093820, 0x1d3c1: 0x6c598620, 0x1d3c2: 0x6ca9a420, 0x1d3c3: 0x6cadba20,
-	0x1d3c4: 0x6caa8420, 0x1d3c5: 0x6d033020, 0x1d3c6: 0x6d383220, 0x1d3c7: 0x6c973420,
-	0x1d3c8: 0x6c37ce20, 0x1d3c9: 0x6c761220, 0x1d3ca: 0x6c9f1020, 0x1d3cb: 0x6cf93c20,
-	0x1d3cc: 0x6d03ba20, 0x1d3cd: 0x6d0d5c20, 0x1d3ce: 0x6c770620, 0x1d3cf: 0x6d260e20,
-	0x1d3d0: 0x6cc28820, 0x1d3d1: 0x6c8d0220, 0x1d3d2: 0x6d089020, 0x1d3d3: 0x6cd5ca20,
-	0x1d3d4: 0x6cfb5420, 0x1d3d5: 0x6ce7cc20, 0x1d3d6: 0x6cfe3820, 0x1d3d7: 0x6c6a1e20,
-	0x1d3d8: 0x6cfb7020, 0x1d3d9: 0x6d0b3220, 0x1d3da: 0x6c559a20, 0x1d3db: 0x6cf0ca20,
-	0x1d3dc: 0x6c2a2c20, 0x1d3dd: 0x6c1cdc20, 0x1d3de: 0x6cf0d420, 0x1d3df: 0x6c2a3620,
-	0x1d3e0: 0x6d3cd820, 0x1d3e1: 0x6c527020, 0x1d3e2: 0x6cc22620, 0x1d3e3: 0x6d13be20,
-	0x1d3e4: 0x6d198c20, 0x1d3e5: 0x6c103220, 0x1d3e6: 0x6c41ce20, 0x1d3e7: 0x6d20cc20,
-	0x1d3e8: 0x6c0c7020, 0x1d3e9: 0x6c141820, 0x1d3ea: 0x6d147a20, 0x1d3eb: 0x6cccc820,
-	0x1d3ec: 0x6c191e20, 0x1d3ed: 0x6c3d5620, 0x1d3ee: 0x6c4bbc20, 0x1d3ef: 0x6c3b1e20,
-	0x1d3f0: 0x6cd65220, 0x1d3f1: 0x6c6a8820, 0x1d3f2: 0x6ca32020, 0x1d3f3: 0x6d37aa20,
-	0x1d3f4: 0x6c282e20, 0x1d3f5: 0x6d170c20, 0x1d3f6: 0x6d381e20, 0x1d3f7: 0x6d37b220,
-	0x1d3f8: 0x6c6bd220, 0x1d3f9: 0x6d350820, 0x1d3fa: 0x6d009820, 0x1d3fb: 0x6cc46820,
-	0x1d3fc: 0x6d33ba20, 0x1d3fd: 0x6cc5da20, 0x1d3fe: 0x6cbd2620, 0x1d3ff: 0x6c6c3820,
-	// Block 0x750, offset 0x1d400
-	0x1d400: 0x6c756220, 0x1d401: 0x6d255820, 0x1d402: 0x6c9a8620, 0x1d403: 0x6c149620,
-	0x1d404: 0x6c02a220, 0x1d405: 0x6ca79820, 0x1d406: 0x6c5a9e20, 0x1d407: 0x6cc46a20,
-	0x1d408: 0x6c635620, 0x1d409: 0x6ceb1020, 0x1d40a: 0x6c8e0e20, 0x1d40b: 0x6c276620,
-	0x1d40c: 0x6c064a20, 0x1d40d: 0x6cad5620, 0x1d40e: 0x6d120020, 0x1d40f: 0x6d429420,
-	0x1d410: 0x6c097020, 0x1d411: 0x6cced220, 0x1d412: 0x6ce05820, 0x1d413: 0x6c723620,
-	0x1d414: 0x6c51c220, 0x1d415: 0x6d090220, 0x1d416: 0x6d053820, 0x1d417: 0x6d31d220,
-	0x1d418: 0x6d14da20, 0x1d419: 0x6cabea20, 0x1d41a: 0x6c0e6420, 0x1d41b: 0x6c2b2220,
-	0x1d41c: 0x6cec2a20, 0x1d41d: 0x6c3fd620, 0x1d41e: 0x6c4bc420, 0x1d41f: 0x6d35ca20,
-	0x1d420: 0x6d360a20, 0x1d421: 0x6cc47220, 0x1d422: 0x6cacb420, 0x1d423: 0x6d174620,
-	0x1d424: 0x6c997420, 0x1d425: 0x6ceaba20, 0x1d426: 0x6ca32e20, 0x1d427: 0x6c464420,
-	0x1d428: 0x6d088220, 0x1d429: 0x6d304220, 0x1d42a: 0x6cc0f420, 0x1d42b: 0x6c070420,
-	0x1d42c: 0x6c4bc620, 0x1d42d: 0x6cf77c20, 0x1d42e: 0x6ca6ea20, 0x1d42f: 0x6c0ee020,
-	0x1d430: 0x6c0e7220, 0x1d431: 0x6c40ac20, 0x1d432: 0x6c1bac20, 0x1d433: 0x6c1ba220,
-	0x1d434: 0x6c7a9420, 0x1d435: 0x6cc5ea20, 0x1d436: 0x6c67e220, 0x1d437: 0x6c63ba20,
-	0x1d438: 0x6c667e20, 0x1d439: 0x6c0efa20, 0x1d43a: 0x6c6aba20, 0x1d43b: 0x6c375420,
-	0x1d43c: 0x6c438620, 0x1d43d: 0x6cc7a620, 0x1d43e: 0x6d39a020, 0x1d43f: 0x6c4a6020,
-	// Block 0x751, offset 0x1d440
-	0x1d440: 0x6d19d020, 0x1d441: 0x6c111020, 0x1d442: 0x6c8b1020, 0x1d443: 0x6c762220,
-	0x1d444: 0x6d044420, 0x1d445: 0x6d3c1c20, 0x1d446: 0x6c28fc20, 0x1d447: 0x6d05aa20,
-	0x1d448: 0x6c7d5e20, 0x1d449: 0x6c791a20, 0x1d44a: 0x6ca79e20, 0x1d44b: 0x6cd5dc20,
-	0x1d44c: 0x6c63c420, 0x1d44d: 0x6c7db020, 0x1d44e: 0x6c1a1220, 0x1d44f: 0x6c852220,
-	0x1d450: 0x6c72f620, 0x1d451: 0x6ccff420, 0x1d452: 0x6cb3da20, 0x1d453: 0x6c43fa20,
-	0x1d454: 0x6d180820, 0x1d455: 0x6d235620, 0x1d456: 0x6d31da20, 0x1d457: 0x6c8e6020,
-	0x1d458: 0x6cc07e20, 0x1d459: 0x6cc44820, 0x1d45a: 0x6c622620, 0x1d45b: 0x6d180a20,
-	0x1d45c: 0x6c103e20, 0x1d45d: 0x6d3c1e20, 0x1d45e: 0x6cd72420, 0x1d45f: 0x6ccc0420,
-	0x1d460: 0x6cc44e20, 0x1d461: 0x6c87e220, 0x1d462: 0x6c880620, 0x1d463: 0x6c88c020,
-	0x1d464: 0x6c7a9e20, 0x1d465: 0x6c659e20, 0x1d466: 0x6c3d1820, 0x1d467: 0x6c14d020,
-	0x1d468: 0x6c09e020, 0x1d469: 0x6c7d7020, 0x1d46a: 0x6ce22e20, 0x1d46b: 0x6d262a20,
-	0x1d46c: 0x6c8d2220, 0x1d46d: 0x6c1bb420, 0x1d46e: 0x6c167420, 0x1d46f: 0x6c1dc420,
-	0x1d470: 0x6c343220, 0x1d471: 0x6c0c7420, 0x1d472: 0x6c899620, 0x1d473: 0x6cce5c20,
-	0x1d474: 0x6cade020, 0x1d475: 0x6cade220, 0x1d476: 0x6c3a0e20, 0x1d477: 0x6d24fe20,
-	0x1d478: 0x6c95b820, 0x1d479: 0x6c4cca20, 0x1d47a: 0x6d0daa20, 0x1d47b: 0x6c31aa20,
-	0x1d47c: 0x6ce40420, 0x1d47d: 0x6d369a20, 0x1d47e: 0x6c70ae20, 0x1d47f: 0x6d15fa20,
-	// Block 0x752, offset 0x1d480
-	0x1d480: 0x6c622820, 0x1d481: 0x6d346c20, 0x1d482: 0x6c48ba20, 0x1d483: 0x6c791c20,
-	0x1d484: 0x6cb81620, 0x1d485: 0x6ce40a20, 0x1d486: 0x6ce35820, 0x1d487: 0x6c402420,
-	0x1d488: 0x6c1d1a20, 0x1d489: 0x6d01f020, 0x1d48a: 0x6c0b4820, 0x1d48b: 0x6c2ed820,
-	0x1d48c: 0x6c7d7c20, 0x1d48d: 0x6c32a020, 0x1d48e: 0x6d054a20, 0x1d48f: 0x6d054c20,
-	0x1d490: 0x6c51d620, 0x1d491: 0x6d262c20, 0x1d492: 0x6c05ba20, 0x1d493: 0x6c060620,
-	0x1d494: 0x6c402620, 0x1d495: 0x6d217c20, 0x1d496: 0x6ce98c20, 0x1d497: 0x6d0dc420,
-	0x1d498: 0x6c5adc20, 0x1d499: 0x6c074420, 0x1d49a: 0x6c1ee220, 0x1d49b: 0x6c93aa20,
-	0x1d49c: 0x6cadaa20, 0x1d49d: 0x6c27ee20, 0x1d49e: 0x6d27f420, 0x1d49f: 0x6cddf820,
-	0x1d4a0: 0x6c465c20, 0x1d4a1: 0x6c265c20, 0x1d4a2: 0x6c57ee20, 0x1d4a3: 0x6cc6aa20,
-	0x1d4a4: 0x6d262e20, 0x1d4a5: 0x6cc82620, 0x1d4a6: 0x6ca3d420, 0x1d4a7: 0x6c6f3220,
-	0x1d4a8: 0x6cdd8620, 0x1d4a9: 0x6c04a220, 0x1d4aa: 0x6cea0a20, 0x1d4ab: 0x6c1bbe20,
-	0x1d4ac: 0x6cca8a20, 0x1d4ad: 0x6ca7ae20, 0x1d4ae: 0x6d1bec20, 0x1d4af: 0x6c6bfa20,
-	0x1d4b0: 0x6cb91e20, 0x1d4b1: 0x6c57f420, 0x1d4b2: 0x6c7aa820, 0x1d4b3: 0x6c884220,
-	0x1d4b4: 0x6c7fae20, 0x1d4b5: 0x6c843420, 0x1d4b6: 0x6d30de20, 0x1d4b7: 0x6cd1fc20,
-	0x1d4b8: 0x6c93b620, 0x1d4b9: 0x6d18b820, 0x1d4ba: 0x6c2e5e20, 0x1d4bb: 0x6d023220,
-	0x1d4bc: 0x6cfae020, 0x1d4bd: 0x6cf0ea20, 0x1d4be: 0x6c0c7e20, 0x1d4bf: 0x6c129620,
-	// Block 0x753, offset 0x1d4c0
-	0x1d4c0: 0x6c5f4620, 0x1d4c1: 0x6cbb4c20, 0x1d4c2: 0x6ccbb020, 0x1d4c3: 0x6c05bc20,
-	0x1d4c4: 0x6cfd8c20, 0x1d4c5: 0x6c0ae420, 0x1d4c6: 0x6c3f0c20, 0x1d4c7: 0x6c65e620,
-	0x1d4c8: 0x6d3bea20, 0x1d4c9: 0x6c65e820, 0x1d4ca: 0x6c257020, 0x1d4cb: 0x6c60c820,
-	0x1d4cc: 0x6c280620, 0x1d4cd: 0x6d28d020, 0x1d4ce: 0x6c38cc20, 0x1d4cf: 0x6c0f7e20,
-	0x1d4d0: 0x6cfe5a20, 0x1d4d1: 0x6d030420, 0x1d4d2: 0x6c0cf820, 0x1d4d3: 0x6cc52e20,
-	0x1d4d4: 0x6c97ca20, 0x1d4d5: 0x6c7fc620, 0x1d4d6: 0x6c02b220, 0x1d4d7: 0x6d2b1620,
-	0x1d4d8: 0x6c4b8e20, 0x1d4d9: 0x6c12bc20, 0x1d4da: 0x6cdc9220, 0x1d4db: 0x6ca9d620,
-	0x1d4dc: 0x6c14dc20, 0x1d4dd: 0x6c88d220, 0x1d4de: 0x6c0aac20, 0x1d4df: 0x6c6c6a20,
-	0x1d4e0: 0x6c291620, 0x1d4e1: 0x6cd58220, 0x1d4e2: 0x6ce08020, 0x1d4e3: 0x6c0aae20,
-	0x1d4e4: 0x6c7fd820, 0x1d4e5: 0x6cb46e20, 0x1d4e6: 0x6cc7e020, 0x1d4e7: 0x6d355e20,
-	0x1d4e8: 0x6c32ec20, 0x1d4e9: 0x6cd58620, 0x1d4ea: 0x6cec4220, 0x1d4eb: 0x6cd40020,
-	0x1d4ec: 0x6c042c20, 0x1d4ed: 0x6d012020, 0x1d4ee: 0x6c0fbe20, 0x1d4ef: 0x6c194220,
-	0x1d4f0: 0x6c7f7c20, 0x1d4f1: 0x6c8fee20, 0x1d4f2: 0x6cf7c420, 0x1d4f3: 0x6cfb0c20,
-	0x1d4f4: 0x6c800220, 0x1d4f5: 0x6d30e220, 0x1d4f6: 0x6c27aa20, 0x1d4f7: 0x6c72d820,
-	0x1d4f8: 0x6d29c620, 0x1d4f9: 0x6cd21c20, 0x1d4fa: 0x6c663820, 0x1d4fb: 0x6cacc620,
-	0x1d4fc: 0x6d196820, 0x1d4fd: 0x6c809c20, 0x1d4fe: 0x6d0b7020, 0x1d4ff: 0x6cf94020,
-	// Block 0x754, offset 0x1d500
-	0x1d500: 0x6cf57420, 0x1d501: 0x6d11f820, 0x1d502: 0x6c3cc820, 0x1d503: 0x6cdfe620,
-	0x1d504: 0x6c40b420, 0x1d505: 0x6c3d0620, 0x1d506: 0x6c407e20, 0x1d507: 0x6c03c820,
-	0x1d508: 0x6c519620, 0x1d509: 0x6c5fa420, 0x1d50a: 0x6c5fb420, 0x1d50b: 0x6c665220,
-	0x1d50c: 0x6c490820, 0x1d50d: 0x6c0b9020, 0x1d50e: 0x6d0e5620, 0x1d50f: 0x6c4a6220,
-	0x1d510: 0x6c743020, 0x1d511: 0x6cb13a20, 0x1d512: 0x6c997620, 0x1d513: 0x6c9d4020,
-	0x1d514: 0x6c9d4220, 0x1d515: 0x6c9ed620, 0x1d516: 0x6cd36c20, 0x1d517: 0x6cd8c420,
-	0x1d518: 0x6c14cc20, 0x1d519: 0x6c954a20, 0x1d51a: 0x6c745a20, 0x1d51b: 0x6c9d6020,
-	0x1d51c: 0x6ce5da20, 0x1d51d: 0x6c882620, 0x1d51e: 0x6d121820, 0x1d51f: 0x6d369c20,
-	0x1d520: 0x6c757a20, 0x1d521: 0x6cf79620, 0x1d522: 0x6ccd5a20, 0x1d523: 0x6ceeb620,
-	0x1d524: 0x6cf8d220, 0x1d525: 0x6ce51220, 0x1d526: 0x6d21a620, 0x1d527: 0x6c803e20,
-	0x1d528: 0x6c36aa20, 0x1d529: 0x6c322a20, 0x1d52a: 0x6cbd3e20, 0x1d52b: 0x6cad2220,
-	0x1d52c: 0x6c62a220, 0x1d52d: 0x6ca01e20, 0x1d52e: 0x6d1caa20, 0x1d52f: 0x6c46dc20,
-	0x1d530: 0x6cc15020, 0x1d531: 0x6d2e8c20, 0x1d532: 0x6c6d6c20, 0x1d533: 0x6c492c20,
-	0x1d534: 0x6c2abc20, 0x1d535: 0x6c670420, 0x1d536: 0x6c956420, 0x1d537: 0x6cc28220,
-	0x1d538: 0x6c652620, 0x1d539: 0x6cef6220, 0x1d53a: 0x6c750220, 0x1d53b: 0x6cc15c20,
-	0x1d53c: 0x6c956a20, 0x1d53d: 0x6c805420, 0x1d53e: 0x6cd08a20, 0x1d53f: 0x6c2bba20,
-	// Block 0x755, offset 0x1d540
-	0x1d540: 0x6c494420, 0x1d541: 0x6c664e20, 0x1d542: 0x6c490220, 0x1d543: 0x6d0e3e20,
-	0x1d544: 0x6c4a3a20, 0x1d545: 0x6c9d2a20, 0x1d546: 0x6cd32020, 0x1d547: 0x6c14be20,
-	0x1d548: 0x6c802020, 0x1d549: 0x6c740a20, 0x1d54a: 0x6c61d620, 0x1d54b: 0x6cf77e20,
-	0x1d54c: 0x6c2b6e20, 0x1d54d: 0x6ce4fc20, 0x1d54e: 0x6d216820, 0x1d54f: 0x6c46cc20,
-	0x1d550: 0x6c6d4620, 0x1d551: 0x6cc27220, 0x1d552: 0x6c68c620, 0x1d553: 0x6cc01820,
-	0x1d554: 0x6c6c3a20, 0x1d555: 0x6c241220, 0x1d556: 0x6c743220, 0x1d557: 0x6d360c20,
-	0x1d558: 0x6c17bc20, 0x1d559: 0x6c600a20, 0x1d55a: 0x6c471220, 0x1d55b: 0x6c289020,
-	0x1d55c: 0x6d3e5820, 0x1d55d: 0x6c2bf820, 0x1d55e: 0x6cce0420, 0x1d55f: 0x6c57a020,
-	0x1d560: 0x6cc30220, 0x1d561: 0x6c440c20, 0x1d562: 0x6cd3a020, 0x1d563: 0x6c6b9820,
-	0x1d564: 0x6c4b0a20, 0x1d565: 0x6c459820, 0x1d566: 0x6c1f5c20, 0x1d567: 0x6c6b9a20,
-	0x1d568: 0x6c5d3a20, 0x1d569: 0x6cc08420, 0x1d56a: 0x6d039020, 0x1d56b: 0x6cdaf220,
-	0x1d56c: 0x6ca60220, 0x1d56d: 0x6c5f1e20, 0x1d56e: 0x6c92b420, 0x1d56f: 0x6d36c020,
-	0x1d570: 0x6d2bfa20, 0x1d571: 0x6c0a5e20, 0x1d572: 0x6d03a620, 0x1d573: 0x6c55cc20,
-	0x1d574: 0x6cce2220, 0x1d575: 0x6c45be20, 0x1d576: 0x6d374820, 0x1d577: 0x6d092820,
-	0x1d578: 0x6c1f8a20, 0x1d579: 0x6cf71a20, 0x1d57a: 0x6d159420, 0x1d57b: 0x6c877e20,
-	0x1d57c: 0x6c750e20, 0x1d57d: 0x6cf75020, 0x1d57e: 0x6d0f0c20, 0x1d57f: 0x6cf75e20,
-	// Block 0x756, offset 0x1d580
-	0x1d580: 0x6d0c5c20, 0x1d581: 0x6d0f3620, 0x1d582: 0x6c2f9a20, 0x1d583: 0x6c3fc620,
-	0x1d584: 0x6cc01a20, 0x1d585: 0x6cc01c20, 0x1d586: 0x6c698a20, 0x1d587: 0x6c529c20,
-	0x1d588: 0x6c61b820, 0x1d589: 0x6c384c20, 0x1d58a: 0x6d0a7e20, 0x1d58b: 0x6c2e1420,
-	0x1d58c: 0x6c53b820, 0x1d58d: 0x6c149820, 0x1d58e: 0x6ce25c20, 0x1d58f: 0x6d058620,
-	0x1d590: 0x6c6aaa20, 0x1d591: 0x6d14dc20, 0x1d592: 0x6cc5e020, 0x1d593: 0x6d0ac020,
-	0x1d594: 0x6d1a4e20, 0x1d595: 0x6ccd7e20, 0x1d596: 0x6cb77020, 0x1d597: 0x6ceabc20,
-	0x1d598: 0x6c61d820, 0x1d599: 0x6d0a8020, 0x1d59a: 0x6d1a5020, 0x1d59b: 0x6c356020,
-	0x1d59c: 0x6c3b2c20, 0x1d59d: 0x6d0ba420, 0x1d59e: 0x6d109e20, 0x1d59f: 0x6cd98c20,
-	0x1d5a0: 0x6cd06020, 0x1d5a1: 0x6d1a5e20, 0x1d5a2: 0x6d02ce20, 0x1d5a3: 0x6c743420,
-	0x1d5a4: 0x6cff8620, 0x1d5a5: 0x6ca54e20, 0x1d5a6: 0x6c18c020, 0x1d5a7: 0x6d1f2e20,
-	0x1d5a8: 0x6d352220, 0x1d5a9: 0x6d046820, 0x1d5aa: 0x6c39d620, 0x1d5ab: 0x6d033220,
-	0x1d5ac: 0x6c174020, 0x1d5ad: 0x6ccf4420, 0x1d5ae: 0x6cfaa220, 0x1d5af: 0x6cc94e20,
-	0x1d5b0: 0x6d3ce220, 0x1d5b1: 0x6d063c20, 0x1d5b2: 0x6d177820, 0x1d5b3: 0x6d177a20,
-	0x1d5b4: 0x6cdb7a20, 0x1d5b5: 0x6c1ab220, 0x1d5b6: 0x6c509e20, 0x1d5b7: 0x6ccff620,
-	0x1d5b8: 0x6c512c20, 0x1d5b9: 0x6d06e620, 0x1d5ba: 0x6d31de20, 0x1d5bb: 0x6d3afa20,
-	0x1d5bc: 0x6d334e20, 0x1d5bd: 0x6c46a820, 0x1d5be: 0x6d3e5c20, 0x1d5bf: 0x6d3f1c20,
-	// Block 0x757, offset 0x1d5c0
-	0x1d5c0: 0x6d2d7820, 0x1d5c1: 0x6c479420, 0x1d5c2: 0x6c3ffe20, 0x1d5c3: 0x6c65a020,
-	0x1d5c4: 0x6c2eb420, 0x1d5c5: 0x6c8d0a20, 0x1d5c6: 0x6c2bfa20, 0x1d5c7: 0x6d104e20,
-	0x1d5c8: 0x6c861c20, 0x1d5c9: 0x6ca4b020, 0x1d5ca: 0x6cacb820, 0x1d5cb: 0x6d392e20,
-	0x1d5cc: 0x6c422220, 0x1d5cd: 0x6d17c420, 0x1d5ce: 0x6c724420, 0x1d5cf: 0x6d120c20,
-	0x1d5d0: 0x6d2cc820, 0x1d5d1: 0x6d150020, 0x1d5d2: 0x6d150220, 0x1d5d3: 0x6cc24a20,
-	0x1d5d4: 0x6d2fb620, 0x1d5d5: 0x6cb2b220, 0x1d5d6: 0x6c09ac20, 0x1d5d7: 0x6d049620,
-	0x1d5d8: 0x6cc11620, 0x1d5d9: 0x6c037c20, 0x1d5da: 0x6c26aa20, 0x1d5db: 0x6d411e20,
-	0x1d5dc: 0x6ce1cc20, 0x1d5dd: 0x6d3a7220, 0x1d5de: 0x6c224820, 0x1d5df: 0x6d305e20,
-	0x1d5e0: 0x6d1e3e20, 0x1d5e1: 0x6d064620, 0x1d5e2: 0x6d0a2020, 0x1d5e3: 0x6d180c20,
-	0x1d5e4: 0x6c5a5620, 0x1d5e5: 0x6c514420, 0x1d5e6: 0x6cd3a220, 0x1d5e7: 0x6c13f020,
-	0x1d5e8: 0x6cfff820, 0x1d5e9: 0x6cd1d820, 0x1d5ea: 0x6c523e20, 0x1d5eb: 0x6c144420,
-	0x1d5ec: 0x6c46ba20, 0x1d5ed: 0x6c4b0c20, 0x1d5ee: 0x6cc30420, 0x1d5ef: 0x6c5bea20,
-	0x1d5f0: 0x6c6afc20, 0x1d5f1: 0x6c57a220, 0x1d5f2: 0x6c40fc20, 0x1d5f3: 0x6cfdca20,
-	0x1d5f4: 0x6ceea420, 0x1d5f5: 0x6ccffc20, 0x1d5f6: 0x6d393420, 0x1d5f7: 0x6ce75c20,
-	0x1d5f8: 0x6c9c6220, 0x1d5f9: 0x6d2d8420, 0x1d5fa: 0x6ca04620, 0x1d5fb: 0x6c366420,
-	0x1d5fc: 0x6c5ace20, 0x1d5fd: 0x6d0cb220, 0x1d5fe: 0x6d046e20, 0x1d5ff: 0x6c48bc20,
-	// Block 0x758, offset 0x1d600
-	0x1d600: 0x6c37d220, 0x1d601: 0x6c0e2420, 0x1d602: 0x6ce5c420, 0x1d603: 0x6d152020,
-	0x1d604: 0x6c82ca20, 0x1d605: 0x6d39b420, 0x1d606: 0x6c7ba420, 0x1d607: 0x6c7ac620,
-	0x1d608: 0x6cf3dc20, 0x1d609: 0x6d238220, 0x1d60a: 0x6ce2a420, 0x1d60b: 0x6c625220,
-	0x1d60c: 0x6d36a020, 0x1d60d: 0x6cc60220, 0x1d60e: 0x6c244e20, 0x1d60f: 0x6c810c20,
-	0x1d610: 0x6c357a20, 0x1d611: 0x6c7bc620, 0x1d612: 0x6c370c20, 0x1d613: 0x6cd3b820,
-	0x1d614: 0x6ce6d820, 0x1d615: 0x6c289620, 0x1d616: 0x6c074620, 0x1d617: 0x6c151020,
-	0x1d618: 0x6d205620, 0x1d619: 0x6c794a20, 0x1d61a: 0x6cbc4e20, 0x1d61b: 0x6cbd3820,
-	0x1d61c: 0x6cd65020, 0x1d61d: 0x6c014220, 0x1d61e: 0x6d227c20, 0x1d61f: 0x6cfffe20,
-	0x1d620: 0x6c1a2220, 0x1d621: 0x6c6bf420, 0x1d622: 0x6cfcee20, 0x1d623: 0x6cf37a20,
-	0x1d624: 0x6cf51020, 0x1d625: 0x6c435620, 0x1d626: 0x6cd99a20, 0x1d627: 0x6c101a20,
-	0x1d628: 0x6c5c0420, 0x1d629: 0x6c6e9820, 0x1d62a: 0x6cd76a20, 0x1d62b: 0x6d325220,
-	0x1d62c: 0x6cd76c20, 0x1d62d: 0x6c31ae20, 0x1d62e: 0x6c57e420, 0x1d62f: 0x6c172420,
-	0x1d630: 0x6cd6fe20, 0x1d631: 0x6c6b2820, 0x1d632: 0x6c78d420, 0x1d633: 0x6cc13a20,
-	0x1d634: 0x6c23ac20, 0x1d635: 0x6cff9820, 0x1d636: 0x6cdc6420, 0x1d637: 0x6cee3620,
-	0x1d638: 0x6cfb8620, 0x1d639: 0x6c3a6c20, 0x1d63a: 0x6c1ad220, 0x1d63b: 0x6cde9220,
-	0x1d63c: 0x6d186620, 0x1d63d: 0x6ca6c220, 0x1d63e: 0x6d1a9a20, 0x1d63f: 0x6c2e3820,
-	// Block 0x759, offset 0x1d640
-	0x1d640: 0x6cb06820, 0x1d641: 0x6d3d8c20, 0x1d642: 0x6c15de20, 0x1d643: 0x6c188420,
-	0x1d644: 0x6d3cd620, 0x1d645: 0x6c626a20, 0x1d646: 0x6cb52820, 0x1d647: 0x6ce00820,
-	0x1d648: 0x6d3ca420, 0x1d649: 0x6cf00c20, 0x1d64a: 0x6c714c20, 0x1d64b: 0x6cbeb220,
-	0x1d64c: 0x6c303c20, 0x1d64d: 0x6d335420, 0x1d64e: 0x6d2af220, 0x1d64f: 0x6d406020,
-	0x1d650: 0x6cb91620, 0x1d651: 0x6d3d8e20, 0x1d652: 0x6c89c820, 0x1d653: 0x6c66c020,
-	0x1d654: 0x6c1f6e20, 0x1d655: 0x6c4fe420, 0x1d656: 0x6c952620, 0x1d657: 0x6cd06e20,
-	0x1d658: 0x6c0c7820, 0x1d659: 0x6c581220, 0x1d65a: 0x6cb12620, 0x1d65b: 0x6d219420,
-	0x1d65c: 0x6c2eea20, 0x1d65d: 0x6d05e820, 0x1d65e: 0x6cb14220, 0x1d65f: 0x6cd3de20,
-	0x1d660: 0x6d07d220, 0x1d661: 0x6cd3e020, 0x1d662: 0x6c5d4220, 0x1d663: 0x6c57c020,
-	0x1d664: 0x6c36ac20, 0x1d665: 0x6d384020, 0x1d666: 0x6c2c9c20, 0x1d667: 0x6d00f220,
-	0x1d668: 0x6c3ef620, 0x1d669: 0x6cb49420, 0x1d66a: 0x6ce69020, 0x1d66b: 0x6c66d620,
-	0x1d66c: 0x6cb71e20, 0x1d66d: 0x6d23f620, 0x1d66e: 0x6d3e9020, 0x1d66f: 0x6d3b9420,
-	0x1d670: 0x6cf81420, 0x1d671: 0x6c5c4220, 0x1d672: 0x6d1a0220, 0x1d673: 0x6c015020,
-	0x1d674: 0x6cfb9e20, 0x1d675: 0x6ca40e20, 0x1d676: 0x6c18ec20, 0x1d677: 0x6c3cce20,
-	0x1d678: 0x6d39c620, 0x1d679: 0x6d0fd820, 0x1d67a: 0x6d0ec420, 0x1d67b: 0x6c5a0020,
-	0x1d67c: 0x6d07d420, 0x1d67d: 0x6c443a20, 0x1d67e: 0x6cab0e20, 0x1d67f: 0x6cb53220,
-	// Block 0x75a, offset 0x1d680
-	0x1d680: 0x6ca1e820, 0x1d681: 0x6d134620, 0x1d682: 0x6cf0d620, 0x1d683: 0x6d044620,
-	0x1d684: 0x6ce2ba20, 0x1d685: 0x6d38b620, 0x1d686: 0x6ccdc020, 0x1d687: 0x6c65ec20,
-	0x1d688: 0x6cb33a20, 0x1d689: 0x6c7d2220, 0x1d68a: 0x6c5a6420, 0x1d68b: 0x6c5e0c20,
-	0x1d68c: 0x6c43b620, 0x1d68d: 0x6d1cac20, 0x1d68e: 0x6c9c7420, 0x1d68f: 0x6cffc020,
-	0x1d690: 0x6c9d9820, 0x1d691: 0x6cf81a20, 0x1d692: 0x6cbae220, 0x1d693: 0x6c188c20,
-	0x1d694: 0x6d097220, 0x1d695: 0x6ce38820, 0x1d696: 0x6cdb4a20, 0x1d697: 0x6c059420,
-	0x1d698: 0x6c1b5a20, 0x1d699: 0x6cb92820, 0x1d69a: 0x6cd3ea20, 0x1d69b: 0x6c67c820,
-	0x1d69c: 0x6d25b620, 0x1d69d: 0x6d023620, 0x1d69e: 0x6c51f620, 0x1d69f: 0x6ce1f220,
-	0x1d6a0: 0x6d115020, 0x1d6a1: 0x6d115220, 0x1d6a2: 0x6d378020, 0x1d6a3: 0x6d21c820,
-	0x1d6a4: 0x6c0c4020, 0x1d6a5: 0x6c23e020, 0x1d6a6: 0x6cbee620, 0x1d6a7: 0x6c846420,
-	0x1d6a8: 0x6ca08020, 0x1d6a9: 0x6ca17620, 0x1d6aa: 0x6cce2420, 0x1d6ab: 0x6d30b020,
-	0x1d6ac: 0x6ca05420, 0x1d6ad: 0x6c660420, 0x1d6ae: 0x6d2b1820, 0x1d6af: 0x6c6a3a20,
-	0x1d6b0: 0x6c886e20, 0x1d6b1: 0x6c90c620, 0x1d6b2: 0x6c121020, 0x1d6b3: 0x6cab5e20,
-	0x1d6b4: 0x6c4c0620, 0x1d6b5: 0x6cf7ae20, 0x1d6b6: 0x6d3dc020, 0x1d6b7: 0x6c027a20,
-	0x1d6b8: 0x6c027c20, 0x1d6b9: 0x6c6cc220, 0x1d6ba: 0x6d30b220, 0x1d6bb: 0x6d158620,
-	0x1d6bc: 0x6c551220, 0x1d6bd: 0x6c680e20, 0x1d6be: 0x6c978e20, 0x1d6bf: 0x6c178a20,
-	// Block 0x75b, offset 0x1d6c0
-	0x1d6c0: 0x6c4f2620, 0x1d6c1: 0x6c576020, 0x1d6c2: 0x6c160020, 0x1d6c3: 0x6d060020,
-	0x1d6c4: 0x6d2ba420, 0x1d6c5: 0x6ccb9220, 0x1d6c6: 0x6cf71c20, 0x1d6c7: 0x6d2c0420,
-	0x1d6c8: 0x6c337a20, 0x1d6c9: 0x6d336c20, 0x1d6ca: 0x6ca4ce20, 0x1d6cb: 0x6c7fda20,
-	0x1d6cc: 0x6c359820, 0x1d6cd: 0x6d1c2620, 0x1d6ce: 0x6c74ee20, 0x1d6cf: 0x6c5f8220,
-	0x1d6d0: 0x6d421220, 0x1d6d1: 0x6c696020, 0x1d6d2: 0x6c0ffc20, 0x1d6d3: 0x6c5c8620,
-	0x1d6d4: 0x6d3bf420, 0x1d6d5: 0x6cf40820, 0x1d6d6: 0x6d2b7a20, 0x1d6d7: 0x6d2c6220,
-	0x1d6d8: 0x6cd42220, 0x1d6d9: 0x6cbc6c20, 0x1d6da: 0x6ce03620, 0x1d6db: 0x6d2b7c20,
-	0x1d6dc: 0x6cb4a020, 0x1d6dd: 0x6cd12820, 0x1d6de: 0x6d07ee20, 0x1d6df: 0x6d2a9820,
-	0x1d6e0: 0x6ce04020, 0x1d6e1: 0x6c293620, 0x1d6e2: 0x6cdcac20, 0x1d6e3: 0x6cfc4e20,
-	0x1d6e4: 0x6c5f8c20, 0x1d6e5: 0x6c69d820, 0x1d6e6: 0x6c6e3c20, 0x1d6e7: 0x6d2e9820,
-	0x1d6e8: 0x6ca45c20, 0x1d6e9: 0x6d143220, 0x1d6ea: 0x6c010420, 0x1d6eb: 0x6d2dbc20,
-	0x1d6ec: 0x6cb0d820, 0x1d6ed: 0x6c5b7e20, 0x1d6ee: 0x6c57d420, 0x1d6ef: 0x6d193220,
-	0x1d6f0: 0x6d193420, 0x1d6f1: 0x6ccdd620, 0x1d6f2: 0x6cc51c20, 0x1d6f3: 0x6caa3220,
-	0x1d6f4: 0x6cba3220, 0x1d6f5: 0x6d3cbe20, 0x1d6f6: 0x6cdee420, 0x1d6f7: 0x6c56e020,
-	0x1d6f8: 0x6d38c420, 0x1d6f9: 0x6c500420, 0x1d6fa: 0x6c010620, 0x1d6fb: 0x6d1c3420,
-	0x1d6fc: 0x6c671a20, 0x1d6fd: 0x6d246620, 0x1d6fe: 0x6c662c20, 0x1d6ff: 0x6c5c9c20,
-	// Block 0x75c, offset 0x1d700
-	0x1d700: 0x6c31f020, 0x1d701: 0x6d30bc20, 0x1d702: 0x6d08d020, 0x1d703: 0x6d29bc20,
-	0x1d704: 0x6c830c20, 0x1d705: 0x6cd08c20, 0x1d706: 0x6cf12220, 0x1d707: 0x6c161a20,
-	0x1d708: 0x6c879020, 0x1d709: 0x6d159a20, 0x1d70a: 0x6c0bdc20, 0x1d70b: 0x6d30c820,
-	0x1d70c: 0x6d0f0e20, 0x1d70d: 0x6c36f220, 0x1d70e: 0x6c1e0e20, 0x1d70f: 0x6cf12a20,
-	0x1d710: 0x6c1e1020, 0x1d711: 0x6d125620, 0x1d712: 0x6c157c20, 0x1d713: 0x6cc51e20,
-	0x1d714: 0x6d1b2c20, 0x1d715: 0x6c801020, 0x1d716: 0x6c194820, 0x1d717: 0x6d013820,
-	0x1d718: 0x6ca8cc20, 0x1d719: 0x6c584c20, 0x1d71a: 0x6d29ca20, 0x1d71b: 0x6d197c20,
-	0x1d71c: 0x6c294a20, 0x1d71d: 0x6d2dda20, 0x1d71e: 0x6d0f2a20, 0x1d71f: 0x6c321020,
-	0x1d720: 0x6d0c5020, 0x1d721: 0x6c616e20, 0x1d722: 0x6c2f8c20, 0x1d723: 0x6c3fa220,
-	0x1d724: 0x6cc5a420, 0x1d725: 0x6c5e6620, 0x1d726: 0x6c6a5c20, 0x1d727: 0x6c53b420,
-	0x1d728: 0x6ce25820, 0x1d729: 0x6cc51820, 0x1d72a: 0x6ccd6620, 0x1d72b: 0x6cb72820,
-	0x1d72c: 0x6cea9420, 0x1d72d: 0x6d0abe20, 0x1d72e: 0x6d164e20, 0x1d72f: 0x6d0a6220,
-	0x1d730: 0x6c617020, 0x1d731: 0x6cc5aa20, 0x1d732: 0x6c679c20, 0x1d733: 0x6c5b8c20,
-	0x1d734: 0x6cab2c20, 0x1d735: 0x6c71f420, 0x1d736: 0x6d0b7220, 0x1d737: 0x6ca54220,
-	0x1d738: 0x6d062420, 0x1d739: 0x6c354620, 0x1d73a: 0x6c952020, 0x1d73b: 0x6d045220,
-	0x1d73c: 0x6cd97c20, 0x1d73d: 0x6c3cc420, 0x1d73e: 0x6ccf3220, 0x1d73f: 0x6c39b820,
-	// Block 0x75d, offset 0x1d740
-	0x1d740: 0x6c73d620, 0x1d741: 0x6d333a20, 0x1d742: 0x6c475a20, 0x1d743: 0x6c508a20,
-	0x1d744: 0x6cb27020, 0x1d745: 0x6d410820, 0x1d746: 0x6cd40e20, 0x1d747: 0x6d048620,
-	0x1d748: 0x6d2caa20, 0x1d749: 0x6cdb7820, 0x1d74a: 0x6d31b420, 0x1d74b: 0x6c2bce20,
-	0x1d74c: 0x6d385420, 0x1d74d: 0x6c221e20, 0x1d74e: 0x6cc0d420, 0x1d74f: 0x6d2f9820,
-	0x1d750: 0x6c092020, 0x1d751: 0x6d169c20, 0x1d752: 0x6d146620, 0x1d753: 0x6c7b8620,
-	0x1d754: 0x6c82b620, 0x1d755: 0x6cd32220, 0x1d756: 0x6c48aa20, 0x1d757: 0x6cd19c20,
-	0x1d758: 0x6c5fe420, 0x1d759: 0x6c5a8c20, 0x1d75a: 0x6c19c020, 0x1d75b: 0x6d398420,
-	0x1d75c: 0x6ccfb420, 0x1d75d: 0x6c578620, 0x1d75e: 0x6c286c20, 0x1d75f: 0x6c469620,
-	0x1d760: 0x6cc2ba20, 0x1d761: 0x6c4aca20, 0x1d762: 0x6d09e020, 0x1d763: 0x6d16d220,
-	0x1d764: 0x6d328e20, 0x1d765: 0x6c40de20, 0x1d766: 0x6cfdb020, 0x1d767: 0x6c143220,
-	0x1d768: 0x6c5d1a20, 0x1d769: 0x6d062e20, 0x1d76a: 0x6d386220, 0x1d76b: 0x6c6bd420,
-	0x1d76c: 0x6cf35c20, 0x1d76d: 0x6d223020, 0x1d76e: 0x6cbc3220, 0x1d76f: 0x6cf4ce20,
-	0x1d770: 0x6c433c20, 0x1d771: 0x6d203220, 0x1d772: 0x6c5ba420, 0x1d773: 0x6c7bbc20,
-	0x1d774: 0x6cd76620, 0x1d775: 0x6cd98220, 0x1d776: 0x6c370a20, 0x1d777: 0x6cbea220,
-	0x1d778: 0x6d399620, 0x1d779: 0x6d404a20, 0x1d77a: 0x6caae620, 0x1d77b: 0x6c319420,
-	0x1d77c: 0x6d3d3e20, 0x1d77d: 0x6c3a4e20, 0x1d77e: 0x6c789c20, 0x1d77f: 0x6cefa620,
-	// Block 0x75e, offset 0x1d780
-	0x1d780: 0x6d20f820, 0x1d781: 0x6cd6fa20, 0x1d782: 0x6cd05420, 0x1d783: 0x6c2e1620,
-	0x1d784: 0x6c15a220, 0x1d785: 0x6c89b020, 0x1d786: 0x6d3cd020, 0x1d787: 0x6cdc3220,
-	0x1d788: 0x6cdfd620, 0x1d789: 0x6cd05620, 0x1d78a: 0x6d174820, 0x1d78b: 0x6ca1d020,
-	0x1d78c: 0x6c18c220, 0x1d78d: 0x6c2e9620, 0x1d78e: 0x6c5a5220, 0x1d78f: 0x6c668220,
-	0x1d790: 0x6d00a620, 0x1d791: 0x6d095a20, 0x1d792: 0x6d12ea20, 0x1d793: 0x6cf08820,
-	0x1d794: 0x6c361a20, 0x1d795: 0x6d232420, 0x1d796: 0x6d078e20, 0x1d797: 0x6c14f020,
-	0x1d798: 0x6d3e2c20, 0x1d799: 0x6c012c20, 0x1d79a: 0x6d0e6620, 0x1d79b: 0x6c2c5020,
-	0x1d79c: 0x6c9c4e20, 0x1d79d: 0x6cb13c20, 0x1d79e: 0x6d059020, 0x1d79f: 0x6ca05820,
-	0x1d7a0: 0x6c292e20, 0x1d7a1: 0x6cdab820, 0x1d7a2: 0x6d01b620, 0x1d7a3: 0x6d10fe20,
-	0x1d7a4: 0x6c057420, 0x1d7a5: 0x6cd38c20, 0x1d7a6: 0x6cb8e420, 0x1d7a7: 0x6c9d4c20,
-	0x1d7a8: 0x6c6c9820, 0x1d7a9: 0x6c976820, 0x1d7aa: 0x6d306620, 0x1d7ab: 0x6c65b620,
-	0x1d7ac: 0x6ca05220, 0x1d7ad: 0x6cdff420, 0x1d7ae: 0x6d2b7820, 0x1d7af: 0x6cbbe420,
-	0x1d7b0: 0x6c7fa820, 0x1d7b1: 0x6cb49020, 0x1d7b2: 0x6c748620, 0x1d7b3: 0x6d0ea820,
-	0x1d7b4: 0x6cba1e20, 0x1d7b5: 0x6d2d9020, 0x1d7b6: 0x6c193c20, 0x1d7b7: 0x6c475c20,
-	0x1d7b8: 0x6cb8cc20, 0x1d7b9: 0x6c534020, 0x1d7ba: 0x6cf96420, 0x1d7bb: 0x6c602420,
-	0x1d7bc: 0x6c536820, 0x1d7bd: 0x6c4db220, 0x1d7be: 0x6c52c020, 0x1d7bf: 0x6cf6f420,
-	// Block 0x75f, offset 0x1d7c0
-	0x1d7c0: 0x6cf6f620, 0x1d7c1: 0x6c5d6220, 0x1d7c2: 0x6c8a3e20, 0x1d7c3: 0x6c4e6a20,
-	0x1d7c4: 0x6c31f220, 0x1d7c5: 0x6c900420, 0x1d7c6: 0x6c30fa20, 0x1d7c7: 0x6c675a20,
-	0x1d7c8: 0x6cb6e820, 0x1d7c9: 0x6cd37220, 0x1d7ca: 0x6c852420, 0x1d7cb: 0x6c2a9e20,
-	0x1d7cc: 0x6cec9a20, 0x1d7cd: 0x6c088a20, 0x1d7ce: 0x6cd60820, 0x1d7cf: 0x6cfd1c20,
-	0x1d7d0: 0x6c3c7020, 0x1d7d1: 0x6d375a20, 0x1d7d2: 0x6d377620, 0x1d7d3: 0x6d0f2c20,
-	0x1d7d4: 0x6d0f3020, 0x1d7d5: 0x6cd2b020, 0x1d7d6: 0x6c1f1620, 0x1d7d7: 0x6c5aae20,
-	0x1d7d8: 0x6cea4e20, 0x1d7d9: 0x6d177c20, 0x1d7da: 0x6cea5020, 0x1d7db: 0x6d177e20,
-	0x1d7dc: 0x6c649020, 0x1d7dd: 0x6c034a20, 0x1d7de: 0x6c547220, 0x1d7df: 0x6c364820,
-	0x1d7e0: 0x6c1e8420, 0x1d7e1: 0x6cfe3020, 0x1d7e2: 0x6c593e20, 0x1d7e3: 0x6c64c220,
-	0x1d7e4: 0x6c790420, 0x1d7e5: 0x6c40fe20, 0x1d7e6: 0x6c725a20, 0x1d7e7: 0x6c3d8a20,
-	0x1d7e8: 0x6cf68420, 0x1d7e9: 0x6c0d4820, 0x1d7ea: 0x6c4fd620, 0x1d7eb: 0x6d23ce20,
-	0x1d7ec: 0x6d39c820, 0x1d7ed: 0x6c638420, 0x1d7ee: 0x6c3b9a20, 0x1d7ef: 0x6cf6f820,
-	0x1d7f0: 0x6c0f8020, 0x1d7f1: 0x6cf16620, 0x1d7f2: 0x6c58aa20, 0x1d7f3: 0x6c0d5820,
-	0x1d7f4: 0x6c2ba620, 0x1d7f5: 0x6d3fce20, 0x1d7f6: 0x6c3ba620, 0x1d7f7: 0x6d191c20,
-	0x1d7f8: 0x6d357c20, 0x1d7f9: 0x6c064020, 0x1d7fa: 0x6c147820, 0x1d7fb: 0x6c01b420,
-	0x1d7fc: 0x6cafe620, 0x1d7fd: 0x6ca33c20, 0x1d7fe: 0x6caf6620, 0x1d7ff: 0x6c468a20,
-	// Block 0x760, offset 0x1d800
-	0x1d800: 0x6ca34620, 0x1d801: 0x6d204820, 0x1d802: 0x6c2dcc20, 0x1d803: 0x6ca11e20,
-	0x1d804: 0x6cd8ce20, 0x1d805: 0x6d04dc20, 0x1d806: 0x6c588420, 0x1d807: 0x6c7d7220,
-	0x1d808: 0x6c514820, 0x1d809: 0x6c4fce20, 0x1d80a: 0x6ca13220, 0x1d80b: 0x6c4ef020,
-	0x1d80c: 0x6c99a420, 0x1d80d: 0x6c842220, 0x1d80e: 0x6ca60420, 0x1d80f: 0x6c08f420,
-	0x1d810: 0x6d229620, 0x1d811: 0x6c638620, 0x1d812: 0x6ce93a20, 0x1d813: 0x6c98be20,
-	0x1d814: 0x6cb02620, 0x1d815: 0x6cf6fa20, 0x1d816: 0x6c36b820, 0x1d817: 0x6c72ae20,
-	0x1d818: 0x6ca17820, 0x1d819: 0x6c1e6a20, 0x1d81a: 0x6ce03820, 0x1d81b: 0x6c584e20,
-	0x1d81c: 0x6c753620, 0x1d81d: 0x6c06dc20, 0x1d81e: 0x6d313220, 0x1d81f: 0x6d254a20,
-	0x1d820: 0x6c3fc820, 0x1d821: 0x6c110e20, 0x1d822: 0x6c461420, 0x1d823: 0x6ce27220,
-	0x1d824: 0x6d14de20, 0x1d825: 0x6c4f7820, 0x1d826: 0x6ced8020, 0x1d827: 0x6cb20a20,
-	0x1d828: 0x6c5dc820, 0x1d829: 0x6c395020, 0x1d82a: 0x6cdfa620, 0x1d82b: 0x6c498620,
-	0x1d82c: 0x6d2ac820, 0x1d82d: 0x6d345e20, 0x1d82e: 0x6c37cc20, 0x1d82f: 0x6d3afe20,
-	0x1d830: 0x6cd38e20, 0x1d831: 0x6c09ae20, 0x1d832: 0x6d3e5e20, 0x1d833: 0x6c37d020,
-	0x1d834: 0x6c4b4e20, 0x1d835: 0x6cb14020, 0x1d836: 0x6c0b3a20, 0x1d837: 0x6c971420,
-	0x1d838: 0x6c277220, 0x1d839: 0x6cd16820, 0x1d83a: 0x6c7bf820, 0x1d83b: 0x6c3ab220,
-	0x1d83c: 0x6ce5f420, 0x1d83d: 0x6d150620, 0x1d83e: 0x6c1b2a20, 0x1d83f: 0x6c998620,
-	// Block 0x761, offset 0x1d840
-	0x1d840: 0x6c51c820, 0x1d841: 0x6c09b020, 0x1d842: 0x6c927420, 0x1d843: 0x6c8c5420,
-	0x1d844: 0x6c5bec20, 0x1d845: 0x6c410020, 0x1d846: 0x6cb11a20, 0x1d847: 0x6d3e6020,
-	0x1d848: 0x6c642020, 0x1d849: 0x6d070420, 0x1d84a: 0x6d2b6020, 0x1d84b: 0x6c691020,
-	0x1d84c: 0x6c414a20, 0x1d84d: 0x6d29dc20, 0x1d84e: 0x6c669e20, 0x1d84f: 0x6d1be220,
-	0x1d850: 0x6d0a9c20, 0x1d851: 0x6d325420, 0x1d852: 0x6ccef820, 0x1d853: 0x6c0d4a20,
-	0x1d854: 0x6c0d4c20, 0x1d855: 0x6cc08620, 0x1d856: 0x6ccefa20, 0x1d857: 0x6c203c20,
-	0x1d858: 0x6d29e620, 0x1d859: 0x6d38a220, 0x1d85a: 0x6c7f5220, 0x1d85b: 0x6d299820,
-	0x1d85c: 0x6c22e020, 0x1d85d: 0x6c188620, 0x1d85e: 0x6cce3a20, 0x1d85f: 0x6ce51620,
-	0x1d860: 0x6cadee20, 0x1d861: 0x6c44de20, 0x1d862: 0x6cfb8820, 0x1d863: 0x6c974020,
-	0x1d864: 0x6c66c220, 0x1d865: 0x6cdc6820, 0x1d866: 0x6c404420, 0x1d867: 0x6ce0aa20,
-	0x1d868: 0x6c23ae20, 0x1d869: 0x6c23b020, 0x1d86a: 0x6d36c620, 0x1d86b: 0x6c5f2220,
-	0x1d86c: 0x6d2f3e20, 0x1d86d: 0x6c322c20, 0x1d86e: 0x6c6d5420, 0x1d86f: 0x6d047420,
-	0x1d870: 0x6c218820, 0x1d871: 0x6d280420, 0x1d872: 0x6c061420, 0x1d873: 0x6d290c20,
-	0x1d874: 0x6c7f5820, 0x1d875: 0x6c3cf820, 0x1d876: 0x6c125c20, 0x1d877: 0x6c5f6020,
-	0x1d878: 0x6cd17e20, 0x1d879: 0x6d18da20, 0x1d87a: 0x6d3bec20, 0x1d87b: 0x6c406820,
-	0x1d87c: 0x6c46de20, 0x1d87d: 0x6cc9ea20, 0x1d87e: 0x6d2b1a20, 0x1d87f: 0x6c8a4020,
-	// Block 0x762, offset 0x1d880
-	0x1d880: 0x6d18f820, 0x1d881: 0x6c045e20, 0x1d882: 0x6c191620, 0x1d883: 0x6ceda620,
-	0x1d884: 0x6d373220, 0x1d885: 0x6d3cb620, 0x1d886: 0x6c0c4620, 0x1d887: 0x6d276e20,
-	0x1d888: 0x6d2bb620, 0x1d889: 0x6c28e020, 0x1d88a: 0x6d29ae20, 0x1d88b: 0x6d0eec20,
-	0x1d88c: 0x6cb4c420, 0x1d88d: 0x6ccdd820, 0x1d88e: 0x6cedac20, 0x1d88f: 0x6d1cca20,
-	0x1d890: 0x6c6d7220, 0x1d891: 0x6c423c20, 0x1d892: 0x6cfbd420, 0x1d893: 0x6d29f020,
-	0x1d894: 0x6c0ac620, 0x1d895: 0x6c31f420, 0x1d896: 0x6cd54820, 0x1d897: 0x6d0f0620,
-	0x1d898: 0x6cce4220, 0x1d899: 0x6d08d420, 0x1d89a: 0x6c907020, 0x1d89b: 0x6c424420,
-	0x1d89c: 0x6d29f420, 0x1d89d: 0x6c06d220, 0x1d89e: 0x6d311c20, 0x1d89f: 0x6c3fa820,
-	0x1d8a0: 0x6d253420, 0x1d8a1: 0x6c460c20, 0x1d8a2: 0x6c110c20, 0x1d8a3: 0x6d2aae20,
-	0x1d8a4: 0x6cfb2e20, 0x1d8a5: 0x6c043820, 0x1d8a6: 0x6d2f2a20, 0x1d8a7: 0x6c5da220,
-	0x1d8a8: 0x6d358e20, 0x1d8a9: 0x6c393420, 0x1d8aa: 0x6cdf9220, 0x1d8ab: 0x6cb20620,
-	0x1d8ac: 0x6c0b2a20, 0x1d8ad: 0x6c469820, 0x1d8ae: 0x6d3ab420, 0x1d8af: 0x6c497a20,
-	0x1d8b0: 0x6c37c420, 0x1d8b1: 0x6c666220, 0x1d8b2: 0x6c078220, 0x1d8b3: 0x6cd34820,
-	0x1d8b4: 0x6ce5ec20, 0x1d8b5: 0x6c4b3a20, 0x1d8b6: 0x6c7bec20, 0x1d8b7: 0x6c274e20,
-	0x1d8b8: 0x6c995a20, 0x1d8b9: 0x6c3a9220, 0x1d8ba: 0x6c51be20, 0x1d8bb: 0x6d14b020,
-	0x1d8bc: 0x6d2b5c20, 0x1d8bd: 0x6d35ce20, 0x1d8be: 0x6c640e20, 0x1d8bf: 0x6c5bb020,
-	// Block 0x763, offset 0x1d8c0
-	0x1d8c0: 0x6d3e1e20, 0x1d8c1: 0x6c8c5020, 0x1d8c2: 0x6c922c20, 0x1d8c3: 0x6d29d820,
-	0x1d8c4: 0x6d3e2020, 0x1d8c5: 0x6c40f020, 0x1d8c6: 0x6c6cfa20, 0x1d8c7: 0x6cc05220,
-	0x1d8c8: 0x6d323c20, 0x1d8c9: 0x6c7f4620, 0x1d8ca: 0x6ccef020, 0x1d8cb: 0x6c400020,
-	0x1d8cc: 0x6c322020, 0x1d8cd: 0x6c5edc20, 0x1d8ce: 0x6cd52c20, 0x1d8cf: 0x6cce3820,
-	0x1d8d0: 0x6c22ce20, 0x1d8d1: 0x6c09b220, 0x1d8d2: 0x6d388c20, 0x1d8d3: 0x6c44d420,
-	0x1d8d4: 0x6cadda20, 0x1d8d5: 0x6c283620, 0x1d8d6: 0x6c7f4c20, 0x1d8d7: 0x6c3ce820,
-	0x1d8d8: 0x6d3c9e20, 0x1d8d9: 0x6c402820, 0x1d8da: 0x6d3bd620, 0x1d8db: 0x6cc9e620,
-	0x1d8dc: 0x6d2af420, 0x1d8dd: 0x6d0ec820, 0x1d8de: 0x6d299a20, 0x1d8df: 0x6d276820,
-	0x1d8e0: 0x6d2bb220, 0x1d8e1: 0x6ccdc220, 0x1d8e2: 0x6d1cae20, 0x1d8e3: 0x6c423e20,
-	0x1d8e4: 0x6c1be820, 0x1d8e5: 0x6cf60220, 0x1d8e6: 0x6ccf4620, 0x1d8e7: 0x6ca42420,
-	0x1d8e8: 0x6ce75e20, 0x1d8e9: 0x6cf8a820, 0x1d8ea: 0x6c197620, 0x1d8eb: 0x6c51dc20,
-	0x1d8ec: 0x6c199620, 0x1d8ed: 0x6d30dc20, 0x1d8ee: 0x6cf9f620, 0x1d8ef: 0x6ce14620,
-	0x1d8f0: 0x6d407e20, 0x1d8f1: 0x6d407c20, 0x1d8f2: 0x6c85b620, 0x1d8f3: 0x6c6f6020,
-	0x1d8f4: 0x6c3fca20, 0x1d8f5: 0x6d2fa620, 0x1d8f6: 0x6c41d220, 0x1d8f7: 0x6cb6ea20,
-	0x1d8f8: 0x6ccd8020, 0x1d8f9: 0x6cbf1c20, 0x1d8fa: 0x6d1adc20, 0x1d8fb: 0x6cfc0c20,
-	0x1d8fc: 0x6c21fe20, 0x1d8fd: 0x6c743620, 0x1d8fe: 0x6cbdd420, 0x1d8ff: 0x6c1b2020,
-	// Block 0x764, offset 0x1d900
-	0x1d900: 0x6c220020, 0x1d901: 0x6c192820, 0x1d902: 0x6c192a20, 0x1d903: 0x6c2eb620,
-	0x1d904: 0x6c70a020, 0x1d905: 0x6c174820, 0x1d906: 0x6c2b3020, 0x1d907: 0x6cf89620,
-	0x1d908: 0x6d2d7a20, 0x1d909: 0x6c745c20, 0x1d90a: 0x6d26be20, 0x1d90b: 0x6cc11820,
-	0x1d90c: 0x6c606220, 0x1d90d: 0x6c1b3e20, 0x1d90e: 0x6c1e9420, 0x1d90f: 0x6c486420,
-	0x1d910: 0x6d096820, 0x1d911: 0x6d3e6220, 0x1d912: 0x6ce59420, 0x1d913: 0x6c349c20,
-	0x1d914: 0x6c8b1c20, 0x1d915: 0x6c41e220, 0x1d916: 0x6cdd3220, 0x1d917: 0x6c245020,
-	0x1d918: 0x6cf79820, 0x1d919: 0x6d2fd220, 0x1d91a: 0x6cdaf420, 0x1d91b: 0x6d1b0020,
-	0x1d91c: 0x6c715020, 0x1d91d: 0x6c66c420, 0x1d91e: 0x6cc3f420, 0x1d91f: 0x6ce1a020,
-	0x1d920: 0x6c21d020, 0x1d921: 0x6c250420, 0x1d922: 0x6c92b820, 0x1d923: 0x6cc27420,
-	0x1d924: 0x6c298c20, 0x1d925: 0x6cbfc820, 0x1d926: 0x6d3e9220, 0x1d927: 0x6ce37e20,
-	0x1d928: 0x6cc14a20, 0x1d929: 0x6c1c8820, 0x1d92a: 0x6c5a1e20, 0x1d92b: 0x6cbc0a20,
-	0x1d92c: 0x6cbbc220, 0x1d92d: 0x6c69ce20, 0x1d92e: 0x6d2a9a20, 0x1d92f: 0x6ce44220,
-	0x1d930: 0x6c37b020, 0x1d931: 0x6d298420, 0x1d932: 0x6d298820, 0x1d933: 0x6d40a620,
-	0x1d934: 0x6cabbc20, 0x1d935: 0x6c064220, 0x1d936: 0x6c7a8c20, 0x1d937: 0x6c77f220,
-	0x1d938: 0x6c33cc20, 0x1d939: 0x6c743820, 0x1d93a: 0x6c3d6c20, 0x1d93b: 0x6c190020,
-	0x1d93c: 0x6c658c20, 0x1d93d: 0x6c39e420, 0x1d93e: 0x6d352420, 0x1d93f: 0x6cdde620,
-	// Block 0x765, offset 0x1d940
-	0x1d940: 0x6d26a820, 0x1d941: 0x6c03b620, 0x1d942: 0x6cb5d820, 0x1d943: 0x6d26aa20,
-	0x1d944: 0x6cbab420, 0x1d945: 0x6ceba820, 0x1d946: 0x6cdf2420, 0x1d947: 0x6d17c820,
-	0x1d948: 0x6ca72620, 0x1d949: 0x6c8d0e20, 0x1d94a: 0x6c9a9420, 0x1d94b: 0x6c038220,
-	0x1d94c: 0x6c2e5820, 0x1d94d: 0x6c7a4420, 0x1d94e: 0x6ceb2420, 0x1d94f: 0x6c636620,
-	0x1d950: 0x6c220620, 0x1d951: 0x6cad7820, 0x1d952: 0x6cb83820, 0x1d953: 0x6d3b0020,
-	0x1d954: 0x6c70a220, 0x1d955: 0x6c2d1c20, 0x1d956: 0x6d346e20, 0x1d957: 0x6c3d7620,
-	0x1d958: 0x6cac5a20, 0x1d959: 0x6c724e20, 0x1d95a: 0x6ccce620, 0x1d95b: 0x6c0fe420,
-	0x1d95c: 0x6ca5ec20, 0x1d95d: 0x6c724620, 0x1d95e: 0x6c861e20, 0x1d95f: 0x6c449a20,
-	0x1d960: 0x6d152420, 0x1d961: 0x6c5ef420, 0x1d962: 0x6c34fe20, 0x1d963: 0x6cfc1c20,
-	0x1d964: 0x6c685420, 0x1d965: 0x6c350020, 0x1d966: 0x6d39b620, 0x1d967: 0x6cc30620,
-	0x1d968: 0x6c7aec20, 0x1d969: 0x6d3b6820, 0x1d96a: 0x6c4b5a20, 0x1d96b: 0x6cbf4420,
-	0x1d96c: 0x6c7cd620, 0x1d96d: 0x6cfdce20, 0x1d96e: 0x6c1c3620, 0x1d96f: 0x6c927620,
-	0x1d970: 0x6cb11c20, 0x1d971: 0x6d367020, 0x1d972: 0x6c63d020, 0x1d973: 0x6ce5dc20,
-	0x1d974: 0x6c113820, 0x1d975: 0x6c669820, 0x1d976: 0x6cde6a20, 0x1d977: 0x6cbb8020,
-	0x1d978: 0x6c09e220, 0x1d979: 0x6cfab220, 0x1d97a: 0x6c350220, 0x1d97b: 0x6c5ef620,
-	0x1d97c: 0x6c714620, 0x1d97d: 0x6c625420, 0x1d97e: 0x6cd4fa20, 0x1d97f: 0x6ce8e020,
-	// Block 0x766, offset 0x1d980
-	0x1d980: 0x6c1f6420, 0x1d981: 0x6c6e9a20, 0x1d982: 0x6ca85620, 0x1d983: 0x6cfef820,
-	0x1d984: 0x6c10b020, 0x1d985: 0x6d091420, 0x1d986: 0x6c259a20, 0x1d987: 0x6ca25020,
-	0x1d988: 0x6cd4fc20, 0x1d989: 0x6c896220, 0x1d98a: 0x6d1e5420, 0x1d98b: 0x6c691820,
-	0x1d98c: 0x6c1dce20, 0x1d98d: 0x6cbb9220, 0x1d98e: 0x6ca1da20, 0x1d98f: 0x6cde9420,
-	0x1d990: 0x6c66c620, 0x1d991: 0x6cb64620, 0x1d992: 0x6cf29e20, 0x1d993: 0x6cf00e20,
-	0x1d994: 0x6c219820, 0x1d995: 0x6c6b2a20, 0x1d996: 0x6c609a20, 0x1d997: 0x6ca86420,
-	0x1d998: 0x6c70be20, 0x1d999: 0x6c70c020, 0x1d99a: 0x6c950c20, 0x1d99b: 0x6c92bc20,
-	0x1d99c: 0x6c839a20, 0x1d99d: 0x6c57f020, 0x1d99e: 0x6c728420, 0x1d99f: 0x6c1b4e20,
-	0x1d9a0: 0x6ced4820, 0x1d9a1: 0x6cc31420, 0x1d9a2: 0x6ce2fa20, 0x1d9a3: 0x6c0f4c20,
-	0x1d9a4: 0x6d40d220, 0x1d9a5: 0x6cbce220, 0x1d9a6: 0x6d160820, 0x1d9a7: 0x6c245e20,
-	0x1d9a8: 0x6d3fbc20, 0x1d9a9: 0x6c113e20, 0x1d9aa: 0x6d3fbe20, 0x1d9ab: 0x6caf1620,
-	0x1d9ac: 0x6d36c820, 0x1d9ad: 0x6d32d820, 0x1d9ae: 0x6c2d2a20, 0x1d9af: 0x6d349420,
-	0x1d9b0: 0x6d21aa20, 0x1d9b1: 0x6c346220, 0x1d9b2: 0x6c340c20, 0x1d9b3: 0x6c202820,
-	0x1d9b4: 0x6d1e6020, 0x1d9b5: 0x6d380820, 0x1d9b6: 0x6c2c9e20, 0x1d9b7: 0x6d2c9220,
-	0x1d9b8: 0x6c191020, 0x1d9b9: 0x6c1fce20, 0x1d9ba: 0x6c66c820, 0x1d9bb: 0x6c486e20,
-	0x1d9bc: 0x6ce13e20, 0x1d9bd: 0x6c71d620, 0x1d9be: 0x6c3efa20, 0x1d9bf: 0x6d40d820,
-	// Block 0x767, offset 0x1d9c0
-	0x1d9c0: 0x6c2eec20, 0x1d9c1: 0x6cb12e20, 0x1d9c2: 0x6cc76020, 0x1d9c3: 0x6cab1020,
-	0x1d9c4: 0x6ce38020, 0x1d9c5: 0x6c142020, 0x1d9c6: 0x6ce9ec20, 0x1d9c7: 0x6c65ee20,
-	0x1d9c8: 0x6c29f420, 0x1d9c9: 0x6c25ca20, 0x1d9ca: 0x6cb53a20, 0x1d9cb: 0x6cdeb020,
-	0x1d9cc: 0x6cbae420, 0x1d9cd: 0x6ca74020, 0x1d9ce: 0x6c2ce020, 0x1d9cf: 0x6ce38a20,
-	0x1d9d0: 0x6c60ce20, 0x1d9d1: 0x6ca87e20, 0x1d9d2: 0x6cac7820, 0x1d9d3: 0x6c8e3a20,
-	0x1d9d4: 0x6d29aa20, 0x1d9d5: 0x6c0a7a20, 0x1d9d6: 0x6c1cf220, 0x1d9d7: 0x6c931020,
-	0x1d9d8: 0x6c8a4220, 0x1d9d9: 0x6c246e20, 0x1d9da: 0x6ce0da20, 0x1d9db: 0x6c27a420,
-	0x1d9dc: 0x6cdb5420, 0x1d9dd: 0x6cf81e20, 0x1d9de: 0x6c7ce220, 0x1d9df: 0x6c5f7820,
-	0x1d9e0: 0x6d34ae20, 0x1d9e1: 0x6cbaee20, 0x1d9e2: 0x6c2ba820, 0x1d9e3: 0x6cac8420,
-	0x1d9e4: 0x6d3fd020, 0x1d9e5: 0x6c887020, 0x1d9e6: 0x6c085c20, 0x1d9e7: 0x6d2a2a20,
-	0x1d9e8: 0x6ca74820, 0x1d9e9: 0x6c0d0220, 0x1d9ea: 0x6ce9d220, 0x1d9eb: 0x6c717e20,
-	0x1d9ec: 0x6c2ac020, 0x1d9ed: 0x6c137020, 0x1d9ee: 0x6cfaf420, 0x1d9ef: 0x6c38dc20,
-	0x1d9f0: 0x6c1ec820, 0x1d9f1: 0x6d37d820, 0x1d9f2: 0x6c33be20, 0x1d9f3: 0x6c0e9a20,
-	0x1d9f4: 0x6c247420, 0x1d9f5: 0x6c247620, 0x1d9f6: 0x6c74f220, 0x1d9f7: 0x6c74f420,
-	0x1d9f8: 0x6c8c7e20, 0x1d9f9: 0x6cde0620, 0x1d9fa: 0x6cbbc420, 0x1d9fb: 0x6c73bc20,
-	0x1d9fc: 0x6cb4a220, 0x1d9fd: 0x6c89d420, 0x1d9fe: 0x6c33c020, 0x1d9ff: 0x6c249620,
-	// Block 0x768, offset 0x1da00
-	0x1da00: 0x6c7c1220, 0x1da01: 0x6d2a9c20, 0x1da02: 0x6c26d220, 0x1da03: 0x6c0abc20,
-	0x1da04: 0x6c0abe20, 0x1da05: 0x6d3a3820, 0x1da06: 0x6c72be20, 0x1da07: 0x6c1ec020,
-	0x1da08: 0x6cbc7020, 0x1da09: 0x6c33d020, 0x1da0a: 0x6c1e0820, 0x1da0b: 0x6c5f9620,
-	0x1da0c: 0x6cf48e20, 0x1da0d: 0x6d271820, 0x1da0e: 0x6ca74c20, 0x1da0f: 0x6c8c8220,
-	0x1da10: 0x6c8b7620, 0x1da11: 0x6d34c020, 0x1da12: 0x6c878220, 0x1da13: 0x6d376a20,
-	0x1da14: 0x6c156e20, 0x1da15: 0x6c1ece20, 0x1da16: 0x6c32e820, 0x1da17: 0x6cf12420,
-	0x1da18: 0x6c900620, 0x1da19: 0x6c8c8c20, 0x1da1a: 0x6cfb0e20, 0x1da1b: 0x6cf12e20,
-	0x1da1c: 0x6d414020, 0x1da1d: 0x6c801220, 0x1da1e: 0x6d028e20, 0x1da1f: 0x6cc4fa20,
-	0x1da20: 0x6cc95e20, 0x1da21: 0x6ca8ce20, 0x1da22: 0x6cdef620, 0x1da23: 0x6cc22c20,
-	0x1da24: 0x6c6c1220, 0x1da25: 0x6c249a20, 0x1da26: 0x6c260620, 0x1da27: 0x6cf83020,
-	0x1da28: 0x6c7cc620, 0x1da29: 0x6c753a20, 0x1da2a: 0x6c8c9020, 0x1da2b: 0x6ccfa420,
-	0x1da2c: 0x6c457e20, 0x1da2d: 0x6c27d820, 0x1da2e: 0x6c3c0a20, 0x1da2f: 0x6cc10820,
-	0x1da30: 0x6ce3c220, 0x1da31: 0x6c349e20, 0x1da32: 0x6c34a020, 0x1da33: 0x6c459a20,
-	0x1da34: 0x6c80da20, 0x1da35: 0x6cc60e20, 0x1da36: 0x6c95be20, 0x1da37: 0x6c007620,
-	0x1da38: 0x6c5f2420, 0x1da39: 0x6c715220, 0x1da3a: 0x6ce18020, 0x1da3b: 0x6c79ae20,
-	0x1da3c: 0x6c81de20, 0x1da3d: 0x6d0dd820, 0x1da3e: 0x6c9abc20, 0x1da3f: 0x6c775c20,
-	// Block 0x769, offset 0x1da40
-	0x1da40: 0x6cc15420, 0x1da41: 0x6c90ce20, 0x1da42: 0x6c81ea20, 0x1da43: 0x6c34c020,
-	0x1da44: 0x6d34b420, 0x1da45: 0x6d0f3c20, 0x1da46: 0x6ce3cc20, 0x1da47: 0x6c2a4e20,
-	0x1da48: 0x6d1d7420, 0x1da49: 0x6d249a20, 0x1da4a: 0x6c17ce20, 0x1da4b: 0x6d0b8220,
-	0x1da4c: 0x6c4ade20, 0x1da4d: 0x6c756420, 0x1da4e: 0x6cf08220, 0x1da4f: 0x6d269e20,
-	0x1da50: 0x6d032c20, 0x1da51: 0x6c275420, 0x1da52: 0x6d078a20, 0x1da53: 0x6c393e20,
-	0x1da54: 0x6cc5e420, 0x1da55: 0x6cccde20, 0x1da56: 0x6c7bc020, 0x1da57: 0x6cd4d620,
-	0x1da58: 0x6cea5220, 0x1da59: 0x6c18c420, 0x1da5a: 0x6c276820, 0x1da5b: 0x6c361c20,
-	0x1da5c: 0x6ca34020, 0x1da5d: 0x6cb5dc20, 0x1da5e: 0x6c98de20, 0x1da5f: 0x6cc86020,
-	0x1da60: 0x6cc5ec20, 0x1da61: 0x6cb98c20, 0x1da62: 0x6d3ba620, 0x1da63: 0x6c52a020,
-	0x1da64: 0x6c54d220, 0x1da65: 0x6cc19c20, 0x1da66: 0x6c7bfa20, 0x1da67: 0x6c2bfc20,
-	0x1da68: 0x6c8d1220, 0x1da69: 0x6c277420, 0x1da6a: 0x6c022c20, 0x1da6b: 0x6d31e220,
-	0x1da6c: 0x6c395620, 0x1da6d: 0x6c7baa20, 0x1da6e: 0x6d102220, 0x1da6f: 0x6cae7420,
-	0x1da70: 0x6c072820, 0x1da71: 0x6c471420, 0x1da72: 0x6c471620, 0x1da73: 0x6cad5e20,
-	0x1da74: 0x6d3b0420, 0x1da75: 0x6cc71020, 0x1da76: 0x6c364a20, 0x1da77: 0x6c038420,
-	0x1da78: 0x6d38d420, 0x1da79: 0x6d353020, 0x1da7a: 0x6d110020, 0x1da7b: 0x6c780020,
-	0x1da7c: 0x6d17ca20, 0x1da7d: 0x6d364420, 0x1da7e: 0x6cd3a820, 0x1da7f: 0x6cb2b820,
-	// Block 0x76a, offset 0x1da80
-	0x1da80: 0x6c375e20, 0x1da81: 0x6c45f420, 0x1da82: 0x6c713a20, 0x1da83: 0x6c69a820,
-	0x1da84: 0x6c49ee20, 0x1da85: 0x6c514c20, 0x1da86: 0x6c766420, 0x1da87: 0x6cc30820,
-	0x1da88: 0x6d389420, 0x1da89: 0x6d293c20, 0x1da8a: 0x6d367220, 0x1da8b: 0x6ccef620,
-	0x1da8c: 0x6c89c420, 0x1da8d: 0x6d23ae20, 0x1da8e: 0x6cce7c20, 0x1da8f: 0x6d1f5c20,
-	0x1da90: 0x6ced9020, 0x1da91: 0x6d1af820, 0x1da92: 0x6d307420, 0x1da93: 0x6ced3e20,
-	0x1da94: 0x6c3f7c20, 0x1da95: 0x6cbe5420, 0x1da96: 0x6d38a620, 0x1da97: 0x6ca60620,
-	0x1da98: 0x6c838420, 0x1da99: 0x6d308420, 0x1da9a: 0x6d2e7a20, 0x1da9b: 0x6c89ca20,
-	0x1da9c: 0x6d3e8220, 0x1da9d: 0x6c5aee20, 0x1da9e: 0x6cee3820, 0x1da9f: 0x6c21d220,
-	0x1daa0: 0x6c4ccc20, 0x1daa1: 0x6c76e820, 0x1daa2: 0x6d160a20, 0x1daa3: 0x6caec220,
-	0x1daa4: 0x6cba7a20, 0x1daa5: 0x6c4be620, 0x1daa6: 0x6ca73a20, 0x1daa7: 0x6cb2c820,
-	0x1daa8: 0x6c496020, 0x1daa9: 0x6c075220, 0x1daaa: 0x6c950e20, 0x1daab: 0x6cac0420,
-	0x1daac: 0x6c896c20, 0x1daad: 0x6cc88020, 0x1daae: 0x6cc76220, 0x1daaf: 0x6c631020,
-	0x1dab0: 0x6d0fda20, 0x1dab1: 0x6cfba020, 0x1dab2: 0x6c201020, 0x1dab3: 0x6c23fe20,
-	0x1dab4: 0x6c211c20, 0x1dab5: 0x6c443c20, 0x1dab6: 0x6d1f7220, 0x1dab7: 0x6c52cc20,
-	0x1dab8: 0x6cd50820, 0x1dab9: 0x6c405820, 0x1daba: 0x6d3e9420, 0x1dabb: 0x6c3efc20,
-	0x1dabc: 0x6cf16820, 0x1dabd: 0x6c07cc20, 0x1dabe: 0x6d2e2020, 0x1dabf: 0x6d21c020,
-	// Block 0x76b, offset 0x1dac0
-	0x1dac0: 0x6cf16a20, 0x1dac1: 0x6ce1f420, 0x1dac2: 0x6c47dc20, 0x1dac3: 0x6d319e20,
-	0x1dac4: 0x6cfa0220, 0x1dac5: 0x6d25b820, 0x1dac6: 0x6c931220, 0x1dac7: 0x6c689e20,
-	0x1dac8: 0x6c178620, 0x1dac9: 0x6d3bb420, 0x1daca: 0x6cf0f820, 0x1dacb: 0x6c5d0420,
-	0x1dacc: 0x6d098c20, 0x1dacd: 0x6d30b820, 0x1dace: 0x6c69d020, 0x1dacf: 0x6d2e9020,
-	0x1dad0: 0x6c102620, 0x1dad1: 0x6c81c620, 0x1dad2: 0x6c3ba820, 0x1dad3: 0x6c386a20,
-	0x1dad4: 0x6c8bfc20, 0x1dad5: 0x6c445220, 0x1dad6: 0x6ccb8e20, 0x1dad7: 0x6c76fc20,
-	0x1dad8: 0x6c58be20, 0x1dad9: 0x6d162820, 0x1dada: 0x6c60f020, 0x1dadb: 0x6d3cc020,
-	0x1dadc: 0x6c377820, 0x1dadd: 0x6d246820, 0x1dade: 0x6c671c20, 0x1dadf: 0x6c52e020,
-	0x1dae0: 0x6c829220, 0x1dae1: 0x6cae2c20, 0x1dae2: 0x6c878420, 0x1dae3: 0x6c879a20,
-	0x1dae4: 0x6c91a020, 0x1dae5: 0x6c8c9220, 0x1dae6: 0x6c17ca20, 0x1dae7: 0x6d0b6a20,
-	0x1dae8: 0x6c4ac020, 0x1dae9: 0x6d077a20, 0x1daea: 0x6c272a20, 0x1daeb: 0x6cc5ca20,
-	0x1daec: 0x6d3ba020, 0x1daed: 0x6c35e220, 0x1daee: 0x6c94e020, 0x1daef: 0x6cc85420,
-	0x1daf0: 0x6c529820, 0x1daf1: 0x6c46fa20, 0x1daf2: 0x6c77ec20, 0x1daf3: 0x6c914820,
-	0x1daf4: 0x6d38d020, 0x1daf5: 0x6d350a20, 0x1daf6: 0x6d171020, 0x1daf7: 0x6c54b220,
-	0x1daf8: 0x6d31c420, 0x1daf9: 0x6c85ba20, 0x1dafa: 0x6d10dc20, 0x1dafb: 0x6cbe3620,
-	0x1dafc: 0x6cd36220, 0x1dafd: 0x6d293420, 0x1dafe: 0x6d35d020, 0x1daff: 0x6c699620,
-	// Block 0x76c, offset 0x1db00
-	0x1db00: 0x6d386c20, 0x1db01: 0x6cc2d020, 0x1db02: 0x6c922e20, 0x1db03: 0x6c699820,
-	0x1db04: 0x6d305420, 0x1db05: 0x6c3f6020, 0x1db06: 0x6c89b220, 0x1db07: 0x6ca72a20,
-	0x1db08: 0x6c072a20, 0x1db09: 0x6c5abc20, 0x1db0a: 0x6c4bcc20, 0x1db0b: 0x6cee2620,
-	0x1db0c: 0x6c895820, 0x1db0d: 0x6c21c420, 0x1db0e: 0x6d3e4820, 0x1db0f: 0x6c23f420,
-	0x1db10: 0x6c3eae20, 0x1db11: 0x6c630c20, 0x1db12: 0x6cf15e20, 0x1db13: 0x6cd4f020,
-	0x1db14: 0x6cae2020, 0x1db15: 0x6d259a20, 0x1db16: 0x6cf9e220, 0x1db17: 0x6ca72e20,
-	0x1db18: 0x6c92c420, 0x1db19: 0x6d309420, 0x1db1a: 0x6c8be220, 0x1db1b: 0x6d02ae20,
-	0x1db1c: 0x6c471820, 0x1db1d: 0x6c224a20, 0x1db1e: 0x6c225220, 0x1db1f: 0x6cb0a820,
-	0x1db20: 0x6d41ba20, 0x1db21: 0x6c0bb020, 0x1db22: 0x6c7e8e20, 0x1db23: 0x6c7e9020,
-	0x1db24: 0x6c226020, 0x1db25: 0x6d08ea20, 0x1db26: 0x6c050620, 0x1db27: 0x6c0bc020,
-	0x1db28: 0x6c0bc220, 0x1db29: 0x6c0bc420, 0x1db2a: 0x6d08ec20, 0x1db2b: 0x6c0bcc20,
-	0x1db2c: 0x6c04a820, 0x1db2d: 0x6c227e20, 0x1db2e: 0x6c0bd620, 0x1db2f: 0x6c0bda20,
-	0x1db30: 0x6c18a020, 0x1db31: 0x6cc7fc20, 0x1db32: 0x6ca9bc20, 0x1db33: 0x6ca9c220,
-	0x1db34: 0x6c160420, 0x1db35: 0x6c21a820, 0x1db36: 0x6c21a420, 0x1db37: 0x6d198820,
-	0x1db38: 0x6cc61820, 0x1db39: 0x6c0ae820, 0x1db3a: 0x6c0aea20, 0x1db3b: 0x6cd22e20,
-	0x1db3c: 0x6cc83220, 0x1db3d: 0x6c89d620, 0x1db3e: 0x6c267620, 0x1db3f: 0x6c14b620,
-	// Block 0x76d, offset 0x1db40
-	0x1db40: 0x6c416420, 0x1db41: 0x6cb8a020, 0x1db42: 0x6d207620, 0x1db43: 0x6d207820,
-	0x1db44: 0x6cb73420, 0x1db45: 0x6d0a6820, 0x1db46: 0x6d145820, 0x1db47: 0x6c4ce420,
-	0x1db48: 0x6c972020, 0x1db49: 0x6cb4ca20, 0x1db4a: 0x6d288620, 0x1db4b: 0x6cee4a20,
-	0x1db4c: 0x6ce91e20, 0x1db4d: 0x6d3cca20, 0x1db4e: 0x6d1c5820, 0x1db4f: 0x6ce3d620,
-	0x1db50: 0x6d281620, 0x1db51: 0x6c6cd620, 0x1db52: 0x6c4f5c20, 0x1db53: 0x6d0b7a20,
-	0x1db54: 0x6c390620, 0x1db55: 0x6cf4b020, 0x1db56: 0x6c267820, 0x1db57: 0x6c354c20,
-	0x1db58: 0x6c4d1c20, 0x1db59: 0x6d30e420, 0x1db5a: 0x6d384c20, 0x1db5b: 0x6c6cd820,
-	0x1db5c: 0x6d25de20, 0x1db5d: 0x6ceee420, 0x1db5e: 0x6c87ee20, 0x1db5f: 0x6c1b0220,
-	0x1db60: 0x6c180420, 0x1db61: 0x6ca68020, 0x1db62: 0x6ce57420, 0x1db63: 0x6d359020,
-	0x1db64: 0x6d147c20, 0x1db65: 0x6c6efc20, 0x1db66: 0x6c633220, 0x1db67: 0x6c18a620,
-	0x1db68: 0x6c273a20, 0x1db69: 0x6c378820, 0x1db6a: 0x6c2b5e20, 0x1db6b: 0x6cb36a20,
-	0x1db6c: 0x6d3ab620, 0x1db6d: 0x6c2e6420, 0x1db6e: 0x6d2ab020, 0x1db6f: 0x6ce20620,
-	0x1db70: 0x6cd5a220, 0x1db71: 0x6ceaf620, 0x1db72: 0x6cc28620, 0x1db73: 0x6c6e5020,
-	0x1db74: 0x6c5b2a20, 0x1db75: 0x6c306820, 0x1db76: 0x6d203420, 0x1db77: 0x6c9c4020,
-	0x1db78: 0x6c083c20, 0x1db79: 0x6c5e9c20, 0x1db7a: 0x6ca39c20, 0x1db7b: 0x6d14b220,
-	0x1db7c: 0x6c6a9a20, 0x1db7d: 0x6d3c5820, 0x1db7e: 0x6c8ade20, 0x1db7f: 0x6d0a7420,
-	// Block 0x76e, offset 0x1db80
-	0x1db80: 0x6ce9f620, 0x1db81: 0x6cd98420, 0x1db82: 0x6cd34a20, 0x1db83: 0x6ce20e20,
-	0x1db84: 0x6cacf820, 0x1db85: 0x6c546820, 0x1db86: 0x6ca68a20, 0x1db87: 0x6c33e420,
-	0x1db88: 0x6c6f0420, 0x1db89: 0x6d084620, 0x1db8a: 0x6d0a7620, 0x1db8b: 0x6c101220,
-	0x1db8c: 0x6d1e9c20, 0x1db8d: 0x6cfeac20, 0x1db8e: 0x6cc03a20, 0x1db8f: 0x6ce82420,
-	0x1db90: 0x6d3a0a20, 0x1db91: 0x6cc03c20, 0x1db92: 0x6c2c3420, 0x1db93: 0x6c2c3620,
-	0x1db94: 0x6ce89a20, 0x1db95: 0x6c6e6c20, 0x1db96: 0x6ce3e620, 0x1db97: 0x6c310a20,
-	0x1db98: 0x6d15e020, 0x1db99: 0x6d30ee20, 0x1db9a: 0x6ce6f220, 0x1db9b: 0x6c4a2020,
-	0x1db9c: 0x6cf4da20, 0x1db9d: 0x6cd36420, 0x1db9e: 0x6c1a6a20, 0x1db9f: 0x6cda9820,
-	0x1dba0: 0x6d2a7a20, 0x1dba1: 0x6cc43620, 0x1dba2: 0x6c3ca420, 0x1dba3: 0x6c87fa20,
-	0x1dba4: 0x6cddc820, 0x1dba5: 0x6c5b3220, 0x1dba6: 0x6c850e20, 0x1dba7: 0x6c483620,
-	0x1dba8: 0x6c7f0220, 0x1dba9: 0x6c07b820, 0x1dbaa: 0x6c262420, 0x1dbab: 0x6c743e20,
-	0x1dbac: 0x6c083e20, 0x1dbad: 0x6c591820, 0x1dbae: 0x6c271620, 0x1dbaf: 0x6c924a20,
-	0x1dbb0: 0x6d1f3220, 0x1dbb1: 0x6d387c20, 0x1dbb2: 0x6c6d0820, 0x1dbb3: 0x6d232620,
-	0x1dbb4: 0x6c219620, 0x1dbb5: 0x6c7c6820, 0x1dbb6: 0x6cee7620, 0x1dbb7: 0x6ce3f020,
-	0x1dbb8: 0x6d178420, 0x1dbb9: 0x6c26a220, 0x1dbba: 0x6d25e620, 0x1dbbb: 0x6c954420,
-	0x1dbbc: 0x6c087420, 0x1dbbd: 0x6caaf220, 0x1dbbe: 0x6d213a20, 0x1dbbf: 0x6c296a20,
-	// Block 0x76f, offset 0x1dbc0
-	0x1dbc0: 0x6cdbf620, 0x1dbc1: 0x6c33f420, 0x1dbc2: 0x6cdc4220, 0x1dbc3: 0x6d0d9820,
-	0x1dbc4: 0x6c1ffc20, 0x1dbc5: 0x6c1b2c20, 0x1dbc6: 0x6ce33420, 0x1dbc7: 0x6d235c20,
-	0x1dbc8: 0x6cd26c20, 0x1dbc9: 0x6d315a20, 0x1dbca: 0x6d1f4020, 0x1dbcb: 0x6d283820,
-	0x1dbcc: 0x6c364c20, 0x1dbcd: 0x6c0ba420, 0x1dbce: 0x6c4cec20, 0x1dbcf: 0x6c364e20,
-	0x1dbd0: 0x6cf9ca20, 0x1dbd1: 0x6c59ca20, 0x1dbd2: 0x6cc07020, 0x1dbd3: 0x6c2a1820,
-	0x1dbd4: 0x6c26ac20, 0x1dbd5: 0x6cef1620, 0x1dbd6: 0x6ca45020, 0x1dbd7: 0x6d150820,
-	0x1dbd8: 0x6c46be20, 0x1dbd9: 0x6d111620, 0x1dbda: 0x6c1e4620, 0x1dbdb: 0x6c8e7420,
-	0x1dbdc: 0x6d0a9820, 0x1dbdd: 0x6cde6c20, 0x1dbde: 0x6c2c7420, 0x1dbdf: 0x6c1b4020,
-	0x1dbe0: 0x6d25ec20, 0x1dbe1: 0x6cdada20, 0x1dbe2: 0x6cde6e20, 0x1dbe3: 0x6cba1420,
-	0x1dbe4: 0x6c96f220, 0x1dbe5: 0x6d111820, 0x1dbe6: 0x6c499c20, 0x1dbe7: 0x6d2ed220,
-	0x1dbe8: 0x6c025820, 0x1dbe9: 0x6cd3bc20, 0x1dbea: 0x6c10ea20, 0x1dbeb: 0x6c1c4e20,
-	0x1dbec: 0x6cdaf620, 0x1dbed: 0x6d2a1c20, 0x1dbee: 0x6d300420, 0x1dbef: 0x6c340220,
-	0x1dbf0: 0x6c2c8820, 0x1dbf1: 0x6c90ac20, 0x1dbf2: 0x6c1b5020, 0x1dbf3: 0x6c25c220,
-	0x1dbf4: 0x6c8bd620, 0x1dbf5: 0x6d41f020, 0x1dbf6: 0x6cc54820, 0x1dbf7: 0x6cb91820,
-	0x1dbf8: 0x6d085820, 0x1dbf9: 0x6d23d620, 0x1dbfa: 0x6d154e20, 0x1dbfb: 0x6cf51c20,
-	0x1dbfc: 0x6c8a1620, 0x1dbfd: 0x6c729820, 0x1dbfe: 0x6cd3e220, 0x1dbff: 0x6c0a6020,
-	// Block 0x770, offset 0x1dc00
-	0x1dc00: 0x6d10bc20, 0x1dc01: 0x6c974220, 0x1dc02: 0x6d022220, 0x1dc03: 0x6cdc9420,
-	0x1dc04: 0x6c4d2a20, 0x1dc05: 0x6d2d9e20, 0x1dc06: 0x6ce2b020, 0x1dc07: 0x6c37aa20,
-	0x1dc08: 0x6c9ea220, 0x1dc09: 0x6c0b0c20, 0x1dc0a: 0x6c0b1420, 0x1dc0b: 0x6c7e5220,
-	0x1dc0c: 0x6c847a20, 0x1dc0d: 0x6d25c820, 0x1dc0e: 0x6d117620, 0x1dc0f: 0x6c957c20,
-	0x1dc10: 0x6c854c20, 0x1dc11: 0x6d169e20, 0x1dc12: 0x6ce65a20, 0x1dc13: 0x6c2ad420,
-	0x1dc14: 0x6cb6c420, 0x1dc15: 0x6d1d8220, 0x1dc16: 0x6cccb420, 0x1dc17: 0x6c4dc820,
-	0x1dc18: 0x6d20a420, 0x1dc19: 0x6c982220, 0x1dc1a: 0x6cc78820, 0x1dc1b: 0x6cbef620,
-	0x1dc1c: 0x6cedb420, 0x1dc1d: 0x6c7bd620, 0x1dc1e: 0x6c3d3620, 0x1dc1f: 0x6c777a20,
-	0x1dc20: 0x6c0d2020, 0x1dc21: 0x6c398220, 0x1dc22: 0x6d03bc20, 0x1dc23: 0x6ca30220,
-	0x1dc24: 0x6d02a620, 0x1dc25: 0x6cd04220, 0x1dc26: 0x6c051620, 0x1dc27: 0x6d253620,
-	0x1dc28: 0x6c259020, 0x1dc29: 0x6c5d8a20, 0x1dc2a: 0x6d006a20, 0x1dc2b: 0x6c052c20,
-	0x1dc2c: 0x6cf34e20, 0x1dc2d: 0x6c720220, 0x1dc2e: 0x6d1ef620, 0x1dc2f: 0x6c4dd020,
-	0x1dc30: 0x6cdf1220, 0x1dc31: 0x6cbf9820, 0x1dc32: 0x6c092220, 0x1dc33: 0x6caf2e20,
-	0x1dc34: 0x6c0dbe20, 0x1dc35: 0x6ccec620, 0x1dc36: 0x6c06de20, 0x1dc37: 0x6cec1020,
-	0x1dc38: 0x6c2bd020, 0x1dc39: 0x6d404620, 0x1dc3a: 0x6d12c820, 0x1dc3b: 0x6c8b9e20,
-	0x1dc3c: 0x6c7b8820, 0x1dc3d: 0x6c4a3c20, 0x1dc3e: 0x6d398620, 0x1dc3f: 0x6cd19e20,
-	// Block 0x771, offset 0x1dc40
-	0x1dc40: 0x6c7a2c20, 0x1dc41: 0x6d22dc20, 0x1dc42: 0x6c40e020, 0x1dc43: 0x6c50ce20,
-	0x1dc44: 0x6cbc9a20, 0x1dc45: 0x6d359420, 0x1dc46: 0x6c5fe620, 0x1dc47: 0x6c585c20,
-	0x1dc48: 0x6c545e20, 0x1dc49: 0x6d03c820, 0x1dc4a: 0x6c682a20, 0x1dc4b: 0x6cf76a20,
-	0x1dc4c: 0x6c4a7620, 0x1dc4d: 0x6caab420, 0x1dc4e: 0x6c80a220, 0x1dc4f: 0x6c63a620,
-	0x1dc50: 0x6c7b1420, 0x1dc51: 0x6d333e20, 0x1dc52: 0x6c813820, 0x1dc53: 0x6d281e20,
-	0x1dc54: 0x6d0c6c20, 0x1dc55: 0x6c19c220, 0x1dc56: 0x6c30fc20, 0x1dc57: 0x6cf5ae20,
-	0x1dc58: 0x6c935220, 0x1dc59: 0x6c3f4e20, 0x1dc5a: 0x6cf3aa20, 0x1dc5b: 0x6c3e2620,
-	0x1dc5c: 0x6c433e20, 0x1dc5d: 0x6c500a20, 0x1dc5e: 0x6c80a420, 0x1dc5f: 0x6c63aa20,
-	0x1dc60: 0x6c44f020, 0x1dc61: 0x6c759a20, 0x1dc62: 0x6d1ce220, 0x1dc63: 0x6c0eca20,
-	0x1dc64: 0x6cf86820, 0x1dc65: 0x6c06f420, 0x1dc66: 0x6c85bc20, 0x1dc67: 0x6d279220,
-	0x1dc68: 0x6c108c20, 0x1dc69: 0x6cff7a20, 0x1dc6a: 0x6cb4e020, 0x1dc6b: 0x6cafd420,
-	0x1dc6c: 0x6cbe3c20, 0x1dc6d: 0x6c4c1a20, 0x1dc6e: 0x6d386e20, 0x1dc6f: 0x6cdfd820,
-	0x1dc70: 0x6d404c20, 0x1dc71: 0x6cb27e20, 0x1dc72: 0x6c7ef020, 0x1dc73: 0x6ca5d020,
-	0x1dc74: 0x6c186220, 0x1dc75: 0x6d1f2420, 0x1dc76: 0x6c10b420, 0x1dc77: 0x6cfd6820,
-	0x1dc78: 0x6c27d020, 0x1dc79: 0x6c711e20, 0x1dc7a: 0x6d1dba20, 0x1dc7b: 0x6cbb7420,
-	0x1dc7c: 0x6d13ea20, 0x1dc7d: 0x6c30a620, 0x1dc7e: 0x6d0d7220, 0x1dc7f: 0x6c99f220,
-	// Block 0x772, offset 0x1dc80
-	0x1dc80: 0x6cc91a20, 0x1dc81: 0x6c071820, 0x1dc82: 0x6c361e20, 0x1dc83: 0x6cd4d820,
-	0x1dc84: 0x6c735e20, 0x1dc85: 0x6d225220, 0x1dc86: 0x6d282820, 0x1dc87: 0x6c53f420,
-	0x1dc88: 0x6c7c6a20, 0x1dc89: 0x6cfd6e20, 0x1dc8a: 0x6cfd7020, 0x1dc8b: 0x6cd9a820,
-	0x1dc8c: 0x6ce0f820, 0x1dc8d: 0x6ca00220, 0x1dc8e: 0x6cf63220, 0x1dc8f: 0x6cc7fe20,
-	0x1dc90: 0x6c1f4c20, 0x1dc91: 0x6d3e4a20, 0x1dc92: 0x6d405820, 0x1dc93: 0x6d12f820,
-	0x1dc94: 0x6cf36c20, 0x1dc95: 0x6cfd7c20, 0x1dc96: 0x6d27a820, 0x1dc97: 0x6c504220,
-	0x1dc98: 0x6d1d9220, 0x1dc99: 0x6c08e620, 0x1dc9a: 0x6c998820, 0x1dc9b: 0x6c176420,
-	0x1dc9c: 0x6c3d8620, 0x1dc9d: 0x6c8a6e20, 0x1dc9e: 0x6d1a7820, 0x1dc9f: 0x6d3b8020,
-	0x1dca0: 0x6c56a820, 0x1dca1: 0x6cbb8220, 0x1dca2: 0x6d0c1820, 0x1dca3: 0x6d2ebc20,
-	0x1dca4: 0x6c97e020, 0x1dca5: 0x6cbb8420, 0x1dca6: 0x6d065020, 0x1dca7: 0x6c2adc20,
-	0x1dca8: 0x6c0a9c20, 0x1dca9: 0x6d0a2820, 0x1dcaa: 0x6c0a0c20, 0x1dcab: 0x6d2b8420,
-	0x1dcac: 0x6cef2620, 0x1dcad: 0x6d335820, 0x1dcae: 0x6c99a820, 0x1dcaf: 0x6ccd9620,
-	0x1dcb0: 0x6c8bc820, 0x1dcb1: 0x6cb33420, 0x1dcb2: 0x6c27f020, 0x1dcb3: 0x6c9b4020,
-	0x1dcb4: 0x6d133220, 0x1dcb5: 0x6c12b820, 0x1dcb6: 0x6c7b3620, 0x1dcb7: 0x6c3c6420,
-	0x1dcb8: 0x6c9b4220, 0x1dcb9: 0x6d406420, 0x1dcba: 0x6c7c0220, 0x1dcbb: 0x6c88d020,
-	0x1dcbc: 0x6d29a220, 0x1dcbd: 0x6c153020, 0x1dcbe: 0x6d1eb820, 0x1dcbf: 0x6c5f6420,
-	// Block 0x773, offset 0x1dcc0
-	0x1dcc0: 0x6d0ed820, 0x1dcc1: 0x6c154820, 0x1dcc2: 0x6c25f820, 0x1dcc3: 0x6c8d8820,
-	0x1dcc4: 0x6c583a20, 0x1dcc5: 0x6cf74020, 0x1dcc6: 0x6c3c7820, 0x1dcc7: 0x6d29b620,
-	0x1dcc8: 0x6c875820, 0x1dcc9: 0x6d1fa420, 0x1dcca: 0x6c2f5a20, 0x1dccb: 0x6cc02020,
-	0x1dccc: 0x6d3d4020, 0x1dccd: 0x6cae1820, 0x1dcce: 0x6d391e20, 0x1dccf: 0x6d15e220,
-	0x1dcd0: 0x6c418e20, 0x1dcd1: 0x6d20fe20, 0x1dcd2: 0x6c6fba20, 0x1dcd3: 0x6d0d7420,
-	0x1dcd4: 0x6d41ae20, 0x1dcd5: 0x6c98e020, 0x1dcd6: 0x6d323e20, 0x1dcd7: 0x6d06c820,
-	0x1dcd8: 0x6c311820, 0x1dcd9: 0x6d315420, 0x1dcda: 0x6c3b3020, 0x1dcdb: 0x6d263e20,
-	0x1dcdc: 0x6c40ae20, 0x1dcdd: 0x6d282a20, 0x1dcde: 0x6cdf7220, 0x1dcdf: 0x6ce46a20,
-	0x1dce0: 0x6cb83a20, 0x1dce1: 0x6ceb2c20, 0x1dce2: 0x6c243e20, 0x1dce3: 0x6c4da820,
-	0x1dce4: 0x6c471a20, 0x1dce5: 0x6cda5020, 0x1dce6: 0x6c37ee20, 0x1dce7: 0x6c1dc620,
-	0x1dce8: 0x6d293e20, 0x1dce9: 0x6ca03a20, 0x1dcea: 0x6c81d620, 0x1dceb: 0x6c21ca20,
-	0x1dcec: 0x6c1e4e20, 0x1dced: 0x6d205020, 0x1dcee: 0x6ce76020, 0x1dcef: 0x6d353c20,
-	0x1dcf0: 0x6cfab420, 0x1dcf1: 0x6c67ec20, 0x1dcf2: 0x6c1a3020, 0x1dcf3: 0x6d1b6c20,
-	0x1dcf4: 0x6ce8e220, 0x1dcf5: 0x6c69b220, 0x1dcf6: 0x6c9a1a20, 0x1dcf7: 0x6c7aa420,
-	0x1dcf8: 0x6cdb8820, 0x1dcf9: 0x6c833c20, 0x1dcfa: 0x6cb44420, 0x1dcfb: 0x6d41c220,
-	0x1dcfc: 0x6c4d4420, 0x1dcfd: 0x6d0e9c20, 0x1dcfe: 0x6ccc8c20, 0x1dcff: 0x6ca77e20,
-	// Block 0x774, offset 0x1dd00
-	0x1dd00: 0x6cef3420, 0x1dd01: 0x6c92c620, 0x1dd02: 0x6c803620, 0x1dd03: 0x6d0c2c20,
-	0x1dd04: 0x6ce23820, 0x1dd05: 0x6cadc220, 0x1dd06: 0x6d2e1220, 0x1dd07: 0x6c215e20,
-	0x1dd08: 0x6ce00a20, 0x1dd09: 0x6d41ca20, 0x1dd0a: 0x6d3ca620, 0x1dd0b: 0x6c246020,
-	0x1dd0c: 0x6c7d8220, 0x1dd0d: 0x6ce38220, 0x1dd0e: 0x6cfba220, 0x1dd0f: 0x6c317620,
-	0x1dd10: 0x6c55c420, 0x1dd11: 0x6d065c20, 0x1dd12: 0x6d040820, 0x1dd13: 0x6ce07c20,
-	0x1dd14: 0x6cc09a20, 0x1dd15: 0x6c216420, 0x1dd16: 0x6d285a20, 0x1dd17: 0x6cb3a620,
-	0x1dd18: 0x6c783620, 0x1dd19: 0x6cd9e620, 0x1dd1a: 0x6c9c7620, 0x1dd1b: 0x6cc31820,
-	0x1dd1c: 0x6c1e3220, 0x1dd1d: 0x6c25cc20, 0x1dd1e: 0x6d285e20, 0x1dd1f: 0x6d1e7e20,
-	0x1dd20: 0x6c022220, 0x1dd21: 0x6d2ce420, 0x1dd22: 0x6c4d4a20, 0x1dd23: 0x6ce14a20,
-	0x1dd24: 0x6c680020, 0x1dd25: 0x6cb1a220, 0x1dd26: 0x6c191820, 0x1dd27: 0x6d244020,
-	0x1dd28: 0x6c846620, 0x1dd29: 0x6d2a2c20, 0x1dd2a: 0x6c818620, 0x1dd2b: 0x6d142c20,
-	0x1dd2c: 0x6c680a20, 0x1dd2d: 0x6c102820, 0x1dd2e: 0x6c69d420, 0x1dd2f: 0x6cf71e20,
-	0x1dd30: 0x6ce03c20, 0x1dd31: 0x6c37f220, 0x1dd32: 0x6ca9dc20, 0x1dd33: 0x6d193620,
-	0x1dd34: 0x6c854620, 0x1dd35: 0x6c72c020, 0x1dd36: 0x6d0efc20, 0x1dd37: 0x6d193820,
-	0x1dd38: 0x6ca78020, 0x1dd39: 0x6cc7ec20, 0x1dd3a: 0x6d09cc20, 0x1dd3b: 0x6c1e0a20,
-	0x1dd3c: 0x6d0f1220, 0x1dd3d: 0x6c8db420, 0x1dd3e: 0x6c9cc820, 0x1dd3f: 0x6c9cca20,
-	// Block 0x775, offset 0x1dd40
-	0x1dd40: 0x6ca78420, 0x1dd41: 0x6d036020, 0x1dd42: 0x6c69ea20, 0x1dd43: 0x6ccc9620,
-	0x1dd44: 0x6c9cd420, 0x1dd45: 0x6d0f2420, 0x1dd46: 0x6c0b7820, 0x1dd47: 0x6c111e20,
-	0x1dd48: 0x6cd37620, 0x1dd49: 0x6d204a20, 0x1dd4a: 0x6cd39220, 0x1dd4b: 0x6cd40220,
-	0x1dd4c: 0x6c84fc20, 0x1dd4d: 0x6d382020, 0x1dd4e: 0x6d12aa20, 0x1dd4f: 0x6c89c020,
-	0x1dd50: 0x6c847c20, 0x1dd51: 0x6c6c2e20, 0x1dd52: 0x6c6d7c20, 0x1dd53: 0x6cc02220,
-	0x1dd54: 0x6d15d820, 0x1dd55: 0x6c8a6c20, 0x1dd56: 0x6c29c020, 0x1dd57: 0x6d2f6220,
-	0x1dd58: 0x6c2f5c20, 0x1dd59: 0x6cb38220, 0x1dd5a: 0x6cc04220, 0x1dd5b: 0x6c034220,
-	0x1dd5c: 0x6c3f5620, 0x1dd5d: 0x6d314820, 0x1dd5e: 0x6d344a20, 0x1dd5f: 0x6c034420,
-	0x1dd60: 0x6c949820, 0x1dd61: 0x6c3f5820, 0x1dd62: 0x6ca3a020, 0x1dd63: 0x6c2e2020,
-	0x1dd64: 0x6ccd8620, 0x1dd65: 0x6cbc2220, 0x1dd66: 0x6c79ea20, 0x1dd67: 0x6c203420,
-	0x1dd68: 0x6d3f0e20, 0x1dd69: 0x6c390e20, 0x1dd6a: 0x6c573620, 0x1dd6b: 0x6c573820,
-	0x1dd6c: 0x6c4eb820, 0x1dd6d: 0x6c427c20, 0x1dd6e: 0x6cb5de20, 0x1dd6f: 0x6c985c20,
-	0x1dd70: 0x6cc64620, 0x1dd71: 0x6c2c5220, 0x1dd72: 0x6cd8be20, 0x1dd73: 0x6cf87e20,
-	0x1dd74: 0x6d178620, 0x1dd75: 0x6c146620, 0x1dd76: 0x6cd1b620, 0x1dd77: 0x6ce91a20,
-	0x1dd78: 0x6cf60620, 0x1dd79: 0x6caa7420, 0x1dd7a: 0x6cb8dc20, 0x1dd7b: 0x6cc0c020,
-	0x1dd7c: 0x6c668420, 0x1dd7d: 0x6cb09a20, 0x1dd7e: 0x6d128220, 0x1dd7f: 0x6c6c4820,
-	// Block 0x776, offset 0x1dd80
-	0x1dd80: 0x6c03a020, 0x1dd81: 0x6c399620, 0x1dd82: 0x6c18d020, 0x1dd83: 0x6d03ee20,
-	0x1dd84: 0x6c30ee20, 0x1dd85: 0x6d26c220, 0x1dd86: 0x6cb8e620, 0x1dd87: 0x6c3d7820,
-	0x1dd88: 0x6caf6820, 0x1dd89: 0x6ca34820, 0x1dd8a: 0x6d02d820, 0x1dd8b: 0x6c356e20,
-	0x1dd8c: 0x6c746020, 0x1dd8d: 0x6c33f820, 0x1dd8e: 0x6c464c20, 0x1dd8f: 0x6d1ae620,
-	0x1dd90: 0x6cb99a20, 0x1dd91: 0x6c04ce20, 0x1dd92: 0x6cc97620, 0x1dd93: 0x6cc57220,
-	0x1dd94: 0x6c174a20, 0x1dd95: 0x6ca99620, 0x1dd96: 0x6c3b3220, 0x1dd97: 0x6d27ec20,
-	0x1dd98: 0x6c614620, 0x1dd99: 0x6cbd7820, 0x1dd9a: 0x6caf6a20, 0x1dd9b: 0x6c4c2020,
-	0x1dd9c: 0x6c535a20, 0x1dd9d: 0x6d1a6c20, 0x1dd9e: 0x6c757220, 0x1dd9f: 0x6cd1ca20,
-	0x1dda0: 0x6d17ce20, 0x1dda1: 0x6d37ba20, 0x1dda2: 0x6cf7f020, 0x1dda3: 0x6c413a20,
-	0x1dda4: 0x6cc64820, 0x1dda5: 0x6c5d8e20, 0x1dda6: 0x6cdf7620, 0x1dda7: 0x6c778820,
-	0x1dda8: 0x6d264020, 0x1dda9: 0x6c934a20, 0x1ddaa: 0x6c365020, 0x1ddab: 0x6cf21c20,
-	0x1ddac: 0x6c345420, 0x1ddad: 0x6d3e7220, 0x1ddae: 0x6ca64020, 0x1ddaf: 0x6ce8d020,
-	0x1ddb0: 0x6cd3aa20, 0x1ddb1: 0x6c9f6820, 0x1ddb2: 0x6c472220, 0x1ddb3: 0x6c780e20,
-	0x1ddb4: 0x6c8d2420, 0x1ddb5: 0x6c0dec20, 0x1ddb6: 0x6cd8d020, 0x1ddb7: 0x6c47a420,
-	0x1ddb8: 0x6c0f1c20, 0x1ddb9: 0x6caf7820, 0x1ddba: 0x6d238420, 0x1ddbb: 0x6cd8d220,
-	0x1ddbc: 0x6d424820, 0x1ddbd: 0x6c101820, 0x1ddbe: 0x6d1f5020, 0x1ddbf: 0x6ce4b020,
-	// Block 0x777, offset 0x1ddc0
-	0x1ddc0: 0x6c642220, 0x1ddc1: 0x6d317620, 0x1ddc2: 0x6cd2d420, 0x1ddc3: 0x6cd3ac20,
-	0x1ddc4: 0x6d347a20, 0x1ddc5: 0x6c725220, 0x1ddc6: 0x6c14d220, 0x1ddc7: 0x6cd1da20,
-	0x1ddc8: 0x6cd1dc20, 0x1ddc9: 0x6d089e20, 0x1ddca: 0x6d2f6820, 0x1ddcb: 0x6c065420,
-	0x1ddcc: 0x6c514e20, 0x1ddcd: 0x6c09e620, 0x1ddce: 0x6cd10e20, 0x1ddcf: 0x6c1e9620,
-	0x1ddd0: 0x6cd27820, 0x1ddd1: 0x6c0f1e20, 0x1ddd2: 0x6d3b0e20, 0x1ddd3: 0x6c1c3820,
-	0x1ddd4: 0x6d289220, 0x1ddd5: 0x6cb31420, 0x1ddd6: 0x6ce76220, 0x1ddd7: 0x6cb9aa20,
-	0x1ddd8: 0x6c3eb020, 0x1ddd9: 0x6d2d3020, 0x1ddda: 0x6c8f0c20, 0x1dddb: 0x6cb8f820,
-	0x1dddc: 0x6c3eb220, 0x1dddd: 0x6c864020, 0x1ddde: 0x6d26ca20, 0x1dddf: 0x6caf7a20,
-	0x1dde0: 0x6d0f5e20, 0x1dde1: 0x6c04fe20, 0x1dde2: 0x6c0e8020, 0x1dde3: 0x6c6b0020,
-	0x1dde4: 0x6c465420, 0x1dde5: 0x6cd5ec20, 0x1dde6: 0x6d32da20, 0x1dde7: 0x6ca24c20,
-	0x1dde8: 0x6cf7f220, 0x1dde9: 0x6cf7f420, 0x1ddea: 0x6c2c7620, 0x1ddeb: 0x6c637420,
-	0x1ddec: 0x6ca29e20, 0x1dded: 0x6ce06420, 0x1ddee: 0x6c588820, 0x1ddef: 0x6d15f220,
-	0x1ddf0: 0x6cd7fa20, 0x1ddf1: 0x6c7bfe20, 0x1ddf2: 0x6c761e20, 0x1ddf3: 0x6c06ce20,
-	0x1ddf4: 0x6c66a020, 0x1ddf5: 0x6ce77020, 0x1ddf6: 0x6d03f420, 0x1ddf7: 0x6c537820,
-	0x1ddf8: 0x6c691c20, 0x1ddf9: 0x6c1bbc20, 0x1ddfa: 0x6c37d820, 0x1ddfb: 0x6c961a20,
-	0x1ddfc: 0x6c0dee20, 0x1ddfd: 0x6cd3be20, 0x1ddfe: 0x6ca1dc20, 0x1ddff: 0x6c637820,
-	// Block 0x778, offset 0x1de00
-	0x1de00: 0x6d1a8620, 0x1de01: 0x6c757c20, 0x1de02: 0x6d389e20, 0x1de03: 0x6c1d5620,
-	0x1de04: 0x6cfdf620, 0x1de05: 0x6ce77220, 0x1de06: 0x6ca14220, 0x1de07: 0x6c833e20,
-	0x1de08: 0x6c5f0e20, 0x1de09: 0x6d23b020, 0x1de0a: 0x6d071e20, 0x1de0b: 0x6cc57820,
-	0x1de0c: 0x6d421a20, 0x1de0d: 0x6d36a220, 0x1de0e: 0x6cbf4c20, 0x1de0f: 0x6ccd8e20,
-	0x1de10: 0x6c1c5020, 0x1de11: 0x6cfc2220, 0x1de12: 0x6d03f620, 0x1de13: 0x6cc30e20,
-	0x1de14: 0x6caf8020, 0x1de15: 0x6ce5fe20, 0x1de16: 0x6d39c020, 0x1de17: 0x6cfe4820,
-	0x1de18: 0x6ca01220, 0x1de19: 0x6c7ada20, 0x1de1a: 0x6d112c20, 0x1de1b: 0x6cfac220,
-	0x1de1c: 0x6cfb7620, 0x1de1d: 0x6d04ea20, 0x1de1e: 0x6c757e20, 0x1de1f: 0x6c13aa20,
-	0x1de20: 0x6c81b620, 0x1de21: 0x6c607820, 0x1de22: 0x6cb06620, 0x1de23: 0x6cc7ba20,
-	0x1de24: 0x6c9cfe20, 0x1de25: 0x6d140820, 0x1de26: 0x6d19fa20, 0x1de27: 0x6c49f220,
-	0x1de28: 0x6c019020, 0x1de29: 0x6c2fd420, 0x1de2a: 0x6d1fe020, 0x1de2b: 0x6ccb3820,
-	0x1de2c: 0x6c77c620, 0x1de2d: 0x6cb9b620, 0x1de2e: 0x6c944220, 0x1de2f: 0x6cd90020,
-	0x1de30: 0x6c003020, 0x1de31: 0x6c2e3220, 0x1de32: 0x6c4efe20, 0x1de33: 0x6cc8de20,
-	0x1de34: 0x6cd3cc20, 0x1de35: 0x6c795020, 0x1de36: 0x6cc09220, 0x1de37: 0x6cff0c20,
-	0x1de38: 0x6d308620, 0x1de39: 0x6d054e20, 0x1de3a: 0x6d2a0c20, 0x1de3b: 0x6ce37020,
-	0x1de3c: 0x6c263820, 0x1de3d: 0x6c487020, 0x1de3e: 0x6c53d220, 0x1de3f: 0x6d37c820,
-	// Block 0x779, offset 0x1de40
-	0x1de40: 0x6ce7de20, 0x1de41: 0x6c93ac20, 0x1de42: 0x6c9a2220, 0x1de43: 0x6c80e220,
-	0x1de44: 0x6ced4a20, 0x1de45: 0x6d02e620, 0x1de46: 0x6d27c420, 0x1de47: 0x6c075420,
-	0x1de48: 0x6cf51e20, 0x1de49: 0x6cdb0c20, 0x1de4a: 0x6d23dc20, 0x1de4b: 0x6c151420,
-	0x1de4c: 0x6c2fb620, 0x1de4d: 0x6c0f4e20, 0x1de4e: 0x6c4f0020, 0x1de4f: 0x6c63de20,
-	0x1de50: 0x6c538420, 0x1de51: 0x6c249220, 0x1de52: 0x6c3c6620, 0x1de53: 0x6c14d620,
-	0x1de54: 0x6ced4c20, 0x1de55: 0x6d36d020, 0x1de56: 0x6cd82620, 0x1de57: 0x6d07ca20,
-	0x1de58: 0x6c575620, 0x1de59: 0x6d228220, 0x1de5a: 0x6ce59e20, 0x1de5b: 0x6c45fa20,
-	0x1de5c: 0x6d3d9420, 0x1de5d: 0x6c94bc20, 0x1de5e: 0x6d03fc20, 0x1de5f: 0x6cbde620,
-	0x1de60: 0x6cd0c420, 0x1de61: 0x6c4e2e20, 0x1de62: 0x6c94be20, 0x1de63: 0x6d128a20,
-	0x1de64: 0x6c1eac20, 0x1de65: 0x6d2bae20, 0x1de66: 0x6c70c420, 0x1de67: 0x6cfd0220,
-	0x1de68: 0x6ce60020, 0x1de69: 0x6c987020, 0x1de6a: 0x6cb4b420, 0x1de6b: 0x6c843620,
-	0x1de6c: 0x6cacc020, 0x1de6d: 0x6cc8e020, 0x1de6e: 0x6c1a3220, 0x1de6f: 0x6c435820,
-	0x1de70: 0x6c852820, 0x1de71: 0x6ce28220, 0x1de72: 0x6c0e4420, 0x1de73: 0x6d3b2420,
-	0x1de74: 0x6d327e20, 0x1de75: 0x6ce87a20, 0x1de76: 0x6c8f1820, 0x1de77: 0x6d41d420,
-	0x1de78: 0x6c729a20, 0x1de79: 0x6c16fa20, 0x1de7a: 0x6d25f020, 0x1de7b: 0x6c66d820,
-	0x1de7c: 0x6c429220, 0x1de7d: 0x6c2e4020, 0x1de7e: 0x6ce24020, 0x1de7f: 0x6c16c620,
-	// Block 0x77a, offset 0x1de80
-	0x1de80: 0x6c951020, 0x1de81: 0x6c4cd020, 0x1de82: 0x6c8d5c20, 0x1de83: 0x6c06ba20,
-	0x1de84: 0x6c92de20, 0x1de85: 0x6c845020, 0x1de86: 0x6cbade20, 0x1de87: 0x6cb3e220,
-	0x1de88: 0x6c732e20, 0x1de89: 0x6c9f7a20, 0x1de8a: 0x6d41d620, 0x1de8b: 0x6caeca20,
-	0x1de8c: 0x6c01d020, 0x1de8d: 0x6caf9020, 0x1de8e: 0x6cfd1420, 0x1de8f: 0x6d0afa20,
-	0x1de90: 0x6d3c6820, 0x1de91: 0x6c834620, 0x1de92: 0x6c783220, 0x1de93: 0x6c798a20,
-	0x1de94: 0x6cdea820, 0x1de95: 0x6c7d8420, 0x1de96: 0x6c31bc20, 0x1de97: 0x6ca59020,
-	0x1de98: 0x6c20e220, 0x1de99: 0x6d3e9820, 0x1de9a: 0x6d32ec20, 0x1de9b: 0x6c078c20,
-	0x1de9c: 0x6ca87620, 0x1de9d: 0x6d403620, 0x1de9e: 0x6c216620, 0x1de9f: 0x6ce01420,
-	0x1dea0: 0x6c2fba20, 0x1dea1: 0x6cb65420, 0x1dea2: 0x6cb9cc20, 0x1dea3: 0x6d3cac20,
-	0x1dea4: 0x6c5f4820, 0x1dea5: 0x6d23fa20, 0x1dea6: 0x6c6cb620, 0x1dea7: 0x6c496620,
-	0x1dea8: 0x6c990820, 0x1dea9: 0x6c167c20, 0x1deaa: 0x6ce51c20, 0x1deab: 0x6cf6de20,
-	0x1deac: 0x6c891e20, 0x1dead: 0x6ce24220, 0x1deae: 0x6c482820, 0x1deaf: 0x6c263a20,
-	0x1deb0: 0x6cd61420, 0x1deb1: 0x6d319c20, 0x1deb2: 0x6c92e020, 0x1deb3: 0x6c9be820,
-	0x1deb4: 0x6c92e220, 0x1deb5: 0x6c571820, 0x1deb6: 0x6c0c8020, 0x1deb7: 0x6c40cc20,
-	0x1deb8: 0x6c7f2c20, 0x1deb9: 0x6c790e20, 0x1deba: 0x6c39ec20, 0x1debb: 0x6cf55820,
-	0x1debc: 0x6ca3d820, 0x1debd: 0x6ced9c20, 0x1debe: 0x6d299c20, 0x1debf: 0x6c570020,
-	// Block 0x77b, offset 0x1dec0
-	0x1dec0: 0x6c2a8620, 0x1dec1: 0x6cfada20, 0x1dec2: 0x6cb10220, 0x1dec3: 0x6c5d6020,
-	0x1dec4: 0x6c89cc20, 0x1dec5: 0x6c384820, 0x1dec6: 0x6c9ad820, 0x1dec7: 0x6c767220,
-	0x1dec8: 0x6d1bf220, 0x1dec9: 0x6c2b4a20, 0x1deca: 0x6c892220, 0x1decb: 0x6c4c4020,
-	0x1decc: 0x6cfc3620, 0x1decd: 0x6c328220, 0x1dece: 0x6ce8fc20, 0x1decf: 0x6cef4420,
-	0x1ded0: 0x6d3fca20, 0x1ded1: 0x6c406a20, 0x1ded2: 0x6cc76620, 0x1ded3: 0x6c60d220,
-	0x1ded4: 0x6c36ba20, 0x1ded5: 0x6c758620, 0x1ded6: 0x6c191420, 0x1ded7: 0x6ce38c20,
-	0x1ded8: 0x6d2c5820, 0x1ded9: 0x6c56d420, 0x1deda: 0x6d0fe020, 0x1dedb: 0x6c32de20,
-	0x1dedc: 0x6cfa0420, 0x1dedd: 0x6d21c220, 0x1dede: 0x6c795a20, 0x1dedf: 0x6d03aa20,
-	0x1dee0: 0x6c5a1020, 0x1dee1: 0x6cf03220, 0x1dee2: 0x6c406c20, 0x1dee3: 0x6d2f7620,
-	0x1dee4: 0x6c13b620, 0x1dee5: 0x6cbcee20, 0x1dee6: 0x6cd20620, 0x1dee7: 0x6c52d620,
-	0x1dee8: 0x6c7ca820, 0x1dee9: 0x6ce51e20, 0x1deea: 0x6ca1ee20, 0x1deeb: 0x6cbbbc20,
-	0x1deec: 0x6cbbbe20, 0x1deed: 0x6c543820, 0x1deee: 0x6ce7e020, 0x1deef: 0x6c236c20,
-	0x1def0: 0x6c58ae20, 0x1def1: 0x6d136620, 0x1def2: 0x6c9f7e20, 0x1def3: 0x6c66e620,
-	0x1def4: 0x6c32a420, 0x1def5: 0x6c66da20, 0x1def6: 0x6cd94220, 0x1def7: 0x6c7caa20,
-	0x1def8: 0x6c55d220, 0x1def9: 0x6d07d820, 0x1defa: 0x6c34b620, 0x1defb: 0x6c6b4a20,
-	0x1defc: 0x6d31a020, 0x1defd: 0x6c0b0e20, 0x1defe: 0x6d37d020, 0x1deff: 0x6d3ea220,
-	// Block 0x77c, offset 0x1df00
-	0x1df00: 0x6d04fe20, 0x1df01: 0x6d129020, 0x1df02: 0x6c9a6e20, 0x1df03: 0x6cac3420,
-	0x1df04: 0x6c003620, 0x1df05: 0x6c6c0c20, 0x1df06: 0x6cba9420, 0x1df07: 0x6c9a3220,
-	0x1df08: 0x6cdda220, 0x1df09: 0x6c26ca20, 0x1df0a: 0x6c059620, 0x1df0b: 0x6cfa0a20,
-	0x1df0c: 0x6c887a20, 0x1df0d: 0x6cddaa20, 0x1df0e: 0x6c769a20, 0x1df0f: 0x6c8ec020,
-	0x1df10: 0x6d116420, 0x1df11: 0x6d137420, 0x1df12: 0x6caa2e20, 0x1df13: 0x6cf23e20,
-	0x1df14: 0x6cc6d420, 0x1df15: 0x6ce15420, 0x1df16: 0x6cddac20, 0x1df17: 0x6cbaf220,
-	0x1df18: 0x6c86e020, 0x1df19: 0x6cd7a620, 0x1df1a: 0x6c20e420, 0x1df1b: 0x6c0f9620,
-	0x1df1c: 0x6cac8620, 0x1df1d: 0x6c266e20, 0x1df1e: 0x6c089620, 0x1df1f: 0x6cca9020,
-	0x1df20: 0x6c429420, 0x1df21: 0x6d3ea620, 0x1df22: 0x6cf38c20, 0x1df23: 0x6d1cb420,
-	0x1df24: 0x6c5a7e20, 0x1df25: 0x6ce5aa20, 0x1df26: 0x6c8ec220, 0x1df27: 0x6c767420,
-	0x1df28: 0x6cdd0220, 0x1df29: 0x6ccc2220, 0x1df2a: 0x6cd9f020, 0x1df2b: 0x6ceda820,
-	0x1df2c: 0x6c507620, 0x1df2d: 0x6d327020, 0x1df2e: 0x6d327220, 0x1df2f: 0x6c80e820,
-	0x1df30: 0x6d18fc20, 0x1df31: 0x6d25c420, 0x1df32: 0x6ce18620, 0x1df33: 0x6ca88a20,
-	0x1df34: 0x6cf7b020, 0x1df35: 0x6c638c20, 0x1df36: 0x6c43ba20, 0x1df37: 0x6c96a820,
-	0x1df38: 0x6c730620, 0x1df39: 0x6cd9a220, 0x1df3a: 0x6d413420, 0x1df3b: 0x6cddae20,
-	0x1df3c: 0x6cfa5620, 0x1df3d: 0x6c3d0220, 0x1df3e: 0x6cf21e20, 0x1df3f: 0x6ca2ec20,
-	// Block 0x77d, offset 0x1df40
-	0x1df40: 0x6c91fa20, 0x1df41: 0x6cddb020, 0x1df42: 0x6cab6020, 0x1df43: 0x6d40f620,
-	0x1df44: 0x6ce96e20, 0x1df45: 0x6d050820, 0x1df46: 0x6c49b220, 0x1df47: 0x6d08cc20,
-	0x1df48: 0x6c892620, 0x1df49: 0x6cd48620, 0x1df4a: 0x6c02f820, 0x1df4b: 0x6c97d420,
-	0x1df4c: 0x6ca18020, 0x1df4d: 0x6c956620, 0x1df4e: 0x6c0a9e20, 0x1df4f: 0x6cf0fe20,
-	0x1df50: 0x6c8ed020, 0x1df51: 0x6c2bb220, 0x1df52: 0x6cca3620, 0x1df53: 0x6d401220,
-	0x1df54: 0x6d158a20, 0x1df55: 0x6c932020, 0x1df56: 0x6c028220, 0x1df57: 0x6c796220,
-	0x1df58: 0x6cbafa20, 0x1df59: 0x6c24f820, 0x1df5a: 0x6cb54e20, 0x1df5b: 0x6c16d220,
-	0x1df5c: 0x6ce0dc20, 0x1df5d: 0x6c981020, 0x1df5e: 0x6d1dd020, 0x1df5f: 0x6c160620,
-	0x1df60: 0x6c3c7220, 0x1df61: 0x6c6ebe20, 0x1df62: 0x6c0c4820, 0x1df63: 0x6cd62a20,
-	0x1df64: 0x6c912420, 0x1df65: 0x6d055820, 0x1df66: 0x6c237420, 0x1df67: 0x6c8fce20,
-	0x1df68: 0x6d29b020, 0x1df69: 0x6c670820, 0x1df6a: 0x6c12a220, 0x1df6b: 0x6c849220,
-	0x1df6c: 0x6cfa5c20, 0x1df6d: 0x6cf72020, 0x1df6e: 0x6c776020, 0x1df6f: 0x6cd6f820,
-	0x1df70: 0x6c086220, 0x1df71: 0x6d2f4a20, 0x1df72: 0x6cba9620, 0x1df73: 0x6c19a620,
-	0x1df74: 0x6c933420, 0x1df75: 0x6c576820, 0x1df76: 0x6c60f220, 0x1df77: 0x6cb47220,
-	0x1df78: 0x6c5c8c20, 0x1df79: 0x6cbb5020, 0x1df7a: 0x6cb32420, 0x1df7b: 0x6c8c0220,
-	0x1df7c: 0x6ccb9020, 0x1df7d: 0x6d055a20, 0x1df7e: 0x6cca3c20, 0x1df7f: 0x6c19a820,
-	// Block 0x77e, offset 0x1df80
-	0x1df80: 0x6c7d3a20, 0x1df81: 0x6cd84820, 0x1df82: 0x6c8f5420, 0x1df83: 0x6ca4d220,
-	0x1df84: 0x6c5a2220, 0x1df85: 0x6cb1e020, 0x1df86: 0x6cdcb020, 0x1df87: 0x6c38ea20,
-	0x1df88: 0x6cbc0e20, 0x1df89: 0x6cc2aa20, 0x1df8a: 0x6d0fee20, 0x1df8b: 0x6ce0de20,
-	0x1df8c: 0x6cfe6620, 0x1df8d: 0x6c750420, 0x1df8e: 0x6c68a420, 0x1df8f: 0x6d41fc20,
-	0x1df90: 0x6c8a4e20, 0x1df91: 0x6cbd0420, 0x1df92: 0x6c819020, 0x1df93: 0x6c338020,
-	0x1df94: 0x6d030620, 0x1df95: 0x6d295820, 0x1df96: 0x6c5f8e20, 0x1df97: 0x6c661e20,
-	0x1df98: 0x6d37da20, 0x1df99: 0x6c2af620, 0x1df9a: 0x6d0b0620, 0x1df9b: 0x6d1d5c20,
-	0x1df9c: 0x6c331e20, 0x1df9d: 0x6c750620, 0x1df9e: 0x6caa3020, 0x1df9f: 0x6d295a20,
-	0x1dfa0: 0x6cb4a420, 0x1dfa1: 0x6ce60620, 0x1dfa2: 0x6c38ec20, 0x1dfa3: 0x6d2f4c20,
-	0x1dfa4: 0x6c2f8a20, 0x1dfa5: 0x6ccdda20, 0x1dfa6: 0x6c764220, 0x1dfa7: 0x6c653820,
-	0x1dfa8: 0x6c3af020, 0x1dfa9: 0x6cdcba20, 0x1dfaa: 0x6c920020, 0x1dfab: 0x6c730c20,
-	0x1dfac: 0x6c5c9420, 0x1dfad: 0x6d246a20, 0x1dfae: 0x6c889c20, 0x1dfaf: 0x6d3dcc20,
-	0x1dfb0: 0x6cbbc820, 0x1dfb1: 0x6c672220, 0x1dfb2: 0x6d3dde20, 0x1dfb3: 0x6c828c20,
-	0x1dfb4: 0x6c0ac820, 0x1dfb5: 0x6ce60820, 0x1dfb6: 0x6c58c220, 0x1dfb7: 0x6d138c20,
-	0x1dfb8: 0x6c346c20, 0x1dfb9: 0x6c4cd620, 0x1dfba: 0x6c29ac20, 0x1dfbb: 0x6c72ce20,
-	0x1dfbc: 0x6c3bac20, 0x1dfbd: 0x6c26d620, 0x1dfbe: 0x6c077220, 0x1dfbf: 0x6d194a20,
-	// Block 0x77f, offset 0x1dfc0
-	0x1dfc0: 0x6c010820, 0x1dfc1: 0x6d3fe220, 0x1dfc2: 0x6d0aba20, 0x1dfc3: 0x6c2e4e20,
-	0x1dfc4: 0x6d3b4e20, 0x1dfc5: 0x6c528620, 0x1dfc6: 0x6d3cc220, 0x1dfc7: 0x6c5fa220,
-	0x1dfc8: 0x6ca8be20, 0x1dfc9: 0x6c51a620, 0x1dfca: 0x6c5e4c20, 0x1dfcb: 0x6cbe6020,
-	0x1dfcc: 0x6c0d7020, 0x1dfcd: 0x6d1c3e20, 0x1dfce: 0x6c7d4020, 0x1dfcf: 0x6ca93c20,
-	0x1dfd0: 0x6d060e20, 0x1dfd1: 0x6c672620, 0x1dfd2: 0x6c672820, 0x1dfd3: 0x6cba9a20,
-	0x1dfd4: 0x6c142620, 0x1dfd5: 0x6d377220, 0x1dfd6: 0x6c9f1620, 0x1dfd7: 0x6c84ce20,
-	0x1dfd8: 0x6c829820, 0x1dfd9: 0x6c5fa620, 0x1dfda: 0x6d416620, 0x1dfdb: 0x6c7c2220,
-	0x1dfdc: 0x6cce4420, 0x1dfdd: 0x6caefc20, 0x1dfde: 0x6c7ece20, 0x1dfdf: 0x6c320020,
-	0x1dfe0: 0x6cd7b020, 0x1dfe1: 0x6c21ec20, 0x1dfe2: 0x6c942820, 0x1dfe3: 0x6c0c6220,
-	0x1dfe4: 0x6c068420, 0x1dfe5: 0x6c920420, 0x1dfe6: 0x6cfd5c20, 0x1dfe7: 0x6c7b7e20,
-	0x1dfe8: 0x6c901020, 0x1dfe9: 0x6c36fa20, 0x1dfea: 0x6c91a220, 0x1dfeb: 0x6d02f820,
-	0x1dfec: 0x6c672c20, 0x1dfed: 0x6c809420, 0x1dfee: 0x6c0fd620, 0x1dfef: 0x6c655620,
-	0x1dff0: 0x6d125820, 0x1dff1: 0x6c157e20, 0x1dff2: 0x6cfda620, 0x1dff3: 0x6c673020,
-	0x1dff4: 0x6cf76220, 0x1dff5: 0x6c49c820, 0x1dff6: 0x6c125620, 0x1dff7: 0x6ca8d220,
-	0x1dff8: 0x6c831620, 0x1dff9: 0x6c249c20, 0x1dffa: 0x6cc23020, 0x1dffb: 0x6cacc820,
-	0x1dffc: 0x6c959420, 0x1dffd: 0x6d414420, 0x1dffe: 0x6c947a20, 0x1dfff: 0x6d2a3820,
-	// Block 0x780, offset 0x1e000
-	0x1e000: 0x6ca8d820, 0x1e001: 0x6c753e20, 0x1e002: 0x6ce19820, 0x1e003: 0x6cd58e20,
-	0x1e004: 0x6c801c20, 0x1e005: 0x6c6c2220, 0x1e006: 0x6c40c420, 0x1e007: 0x6d15b420,
-	0x1e008: 0x6d312020, 0x1e009: 0x6c2f5220, 0x1e00a: 0x6d2f5220, 0x1e00b: 0x6cb2f020,
-	0x1e00c: 0x6c8a6620, 0x1e00d: 0x6ce91820, 0x1e00e: 0x6cb8ba20, 0x1e00f: 0x6c203220,
-	0x1e010: 0x6cccca20, 0x1e011: 0x6c5fe820, 0x1e012: 0x6c388e20, 0x1e013: 0x6c2e0a20,
-	0x1e014: 0x6c9ac420, 0x1e015: 0x6caa7020, 0x1e016: 0x6d0f8c20, 0x1e017: 0x6c146420,
-	0x1e018: 0x6d03d620, 0x1e019: 0x6c413020, 0x1e01a: 0x6c107a20, 0x1e01b: 0x6cdf6620,
-	0x1e01c: 0x6c721c20, 0x1e01d: 0x6c33e620, 0x1e01e: 0x6c173e20, 0x1e01f: 0x6d37ac20,
-	0x1e020: 0x6ca32220, 0x1e021: 0x6c06f620, 0x1e022: 0x6c426a20, 0x1e023: 0x6c04c420,
-	0x1e024: 0x6cb97a20, 0x1e025: 0x6d11fa20, 0x1e026: 0x6cbd2220, 0x1e027: 0x6c756620,
-	0x1e028: 0x6cf35e20, 0x1e029: 0x6c463c20, 0x1e02a: 0x6c778420, 0x1e02b: 0x6c398e20,
-	0x1e02c: 0x6c5d8c20, 0x1e02d: 0x6ce80a20, 0x1e02e: 0x6ca98e20, 0x1e02f: 0x6c039c20,
-	0x1e030: 0x6d22fa20, 0x1e031: 0x6cb98420, 0x1e032: 0x6d32aa20, 0x1e033: 0x6cb98620,
-	0x1e034: 0x6c477820, 0x1e035: 0x6c0e6820, 0x1e036: 0x6c353c20, 0x1e037: 0x6cb35220,
-	0x1e038: 0x6c108e20, 0x1e039: 0x6c0ee220, 0x1e03a: 0x6d26a020, 0x1e03b: 0x6d413820,
-	0x1e03c: 0x6ca28020, 0x1e03d: 0x6ce05a20, 0x1e03e: 0x6c641020, 0x1e03f: 0x6c2d4a20,
-	// Block 0x781, offset 0x1e040
-	0x1e040: 0x6d1f2620, 0x1e041: 0x6ce5f820, 0x1e042: 0x6c0ee420, 0x1e043: 0x6c8cd620,
-	0x1e044: 0x6cd77a20, 0x1e045: 0x6cb8d020, 0x1e046: 0x6c993620, 0x1e047: 0x6c064420,
-	0x1e048: 0x6cd36620, 0x1e049: 0x6d088420, 0x1e04a: 0x6cdde820, 0x1e04b: 0x6c097220,
-	0x1e04c: 0x6ca5d220, 0x1e04d: 0x6caf5e20, 0x1e04e: 0x6c344220, 0x1e04f: 0x6d03e420,
-	0x1e050: 0x6c77bc20, 0x1e051: 0x6c81b020, 0x1e052: 0x6c379420, 0x1e053: 0x6c985e20,
-	0x1e054: 0x6d0ba820, 0x1e055: 0x6d1fc620, 0x1e056: 0x6c19f620, 0x1e057: 0x6c63bc20,
-	0x1e058: 0x6d127e20, 0x1e059: 0x6ca4a820, 0x1e05a: 0x6d361020, 0x1e05b: 0x6c29aa20,
-	0x1e05c: 0x6ce74620, 0x1e05d: 0x6c939820, 0x1e05e: 0x6c2e2220, 0x1e05f: 0x6d19d220,
-	0x1e060: 0x6c765020, 0x1e061: 0x6d2c2e20, 0x1e062: 0x6d39a220, 0x1e063: 0x6cf7e420,
-	0x1e064: 0x6c2fa220, 0x1e065: 0x6c2fd220, 0x1e066: 0x6cfaa420, 0x1e067: 0x6c573a20,
-	0x1e068: 0x6cc2e820, 0x1e069: 0x6ccbf020, 0x1e06a: 0x6c4cfa20, 0x1e06b: 0x6c2e2420,
-	0x1e06c: 0x6c448620, 0x1e06d: 0x6c9ffc20, 0x1e06e: 0x6d32be20, 0x1e06f: 0x6ccb2620,
-	0x1e070: 0x6c68ec20, 0x1e071: 0x6d13ec20, 0x1e072: 0x6c15b220, 0x1e073: 0x6c1d4e20,
-	0x1e074: 0x6ce0be20, 0x1e075: 0x6c018220, 0x1e076: 0x6d1a6220, 0x1e077: 0x6cc7a820,
-	0x1e078: 0x6d3b0620, 0x1e079: 0x6c815c20, 0x1e07a: 0x6cb4ac20, 0x1e07b: 0x6cf3cc20,
-	0x1e07c: 0x6c7f1020, 0x1e07d: 0x6ce27c20, 0x1e07e: 0x6c890020, 0x1e07f: 0x6c794420,
-	// Block 0x782, offset 0x1e080
-	0x1e080: 0x6cfed020, 0x1e081: 0x6cdd6820, 0x1e082: 0x6c851a20, 0x1e083: 0x6d2bac20,
-	0x1e084: 0x6c1e8620, 0x1e085: 0x6c4c2220, 0x1e086: 0x6c434a20, 0x1e087: 0x6c357020,
-	0x1e088: 0x6d053e20, 0x1e089: 0x6c262e20, 0x1e08a: 0x6c94aa20, 0x1e08b: 0x6c3c5220,
-	0x1e08c: 0x6d02da20, 0x1e08d: 0x6c8f0a20, 0x1e08e: 0x6c763220, 0x1e08f: 0x6c65a220,
-	0x1e090: 0x6cc8d020, 0x1e091: 0x6ce2f220, 0x1e092: 0x6c80ce20, 0x1e093: 0x6cbdda20,
-	0x1e094: 0x6c70a420, 0x1e095: 0x6c000820, 0x1e096: 0x6cbac620, 0x1e097: 0x6d30da20,
-	0x1e098: 0x6cab0020, 0x1e099: 0x6c263220, 0x1e09a: 0x6c98ee20, 0x1e09b: 0x6c078a20,
-	0x1e09c: 0x6cb60620, 0x1e09d: 0x6c2a7820, 0x1e09e: 0x6c78be20, 0x1e09f: 0x6c7d7420,
-	0x1e0a0: 0x6c167620, 0x1e0a1: 0x6cf65e20, 0x1e0a2: 0x6c482020, 0x1e0a3: 0x6c954c20,
-	0x1e0a4: 0x6c20da20, 0x1e0a5: 0x6d3c6420, 0x1e0a6: 0x6c6c9a20, 0x1e0a7: 0x6d367420,
-	0x1e0a8: 0x6cfab620, 0x1e0a9: 0x6c732220, 0x1e0aa: 0x6c5d5820, 0x1e0ab: 0x6caddc20,
-	0x1e0ac: 0x6cdfee20, 0x1e0ad: 0x6c2fae20, 0x1e0ae: 0x6c66a220, 0x1e0af: 0x6c725c20,
-	0x1e0b0: 0x6c9bdc20, 0x1e0b1: 0x6d3e6620, 0x1e0b2: 0x6cbcdc20, 0x1e0b3: 0x6d1bc820,
-	0x1e0b4: 0x6c766a20, 0x1e0b5: 0x6cbad420, 0x1e0b6: 0x6cd80a20, 0x1e0b7: 0x6c367820,
-	0x1e0b8: 0x6c13ac20, 0x1e0b9: 0x6cbb9420, 0x1e0ba: 0x6d37c420, 0x1e0bb: 0x6c32d620,
-	0x1e0bc: 0x6cd9d220, 0x1e0bd: 0x6c59e820, 0x1e0be: 0x6c588c20, 0x1e0bf: 0x6c003220,
-	// Block 0x783, offset 0x1e0c0
-	0x1e0c0: 0x6c327020, 0x1e0c1: 0x6c9a6420, 0x1e0c2: 0x6c911420, 0x1e0c3: 0x6d3e7420,
-	0x1e0c4: 0x6c3ac020, 0x1e0c5: 0x6c9a1c20, 0x1e0c6: 0x6ca15820, 0x1e0c7: 0x6d325c20,
-	0x1e0c8: 0x6c0f5020, 0x1e0c9: 0x6c442a20, 0x1e0ca: 0x6ca86620, 0x1e0cb: 0x6ce18220,
-	0x1e0cc: 0x6c730220, 0x1e0cd: 0x6ca86820, 0x1e0ce: 0x6ca2e820, 0x1e0cf: 0x6c8e8e20,
-	0x1e0d0: 0x6c431e20, 0x1e0d1: 0x6c058a20, 0x1e0d2: 0x6d186c20, 0x1e0d3: 0x6c638020,
-	0x1e0d4: 0x6c0d4e20, 0x1e0d5: 0x6cc6ac20, 0x1e0d6: 0x6c0c2420, 0x1e0d7: 0x6ce0d620,
-	0x1e0d8: 0x6c980620, 0x1e0d9: 0x6c955420, 0x1e0da: 0x6c085420, 0x1e0db: 0x6d1dbc20,
-	0x1e0dc: 0x6c6eae20, 0x1e0dd: 0x6c2b4620, 0x1e0de: 0x6d40dc20, 0x1e0df: 0x6d08b420,
-	0x1e0e0: 0x6c8ea620, 0x1e0e1: 0x6c153220, 0x1e0e2: 0x6c74d020, 0x1e0e3: 0x6c8aac20,
-	0x1e0e4: 0x6cb46420, 0x1e0e5: 0x6c91e220, 0x1e0e6: 0x6c336e20, 0x1e0e7: 0x6c7fc820,
-	0x1e0e8: 0x6cb49e20, 0x1e0e9: 0x6c249420, 0x1e0ea: 0x6cbae820, 0x1e0eb: 0x6c2aee20,
-	0x1e0ec: 0x6c5e1e20, 0x1e0ed: 0x6c826e20, 0x1e0ee: 0x6c58b220, 0x1e0ef: 0x6d3dc420,
-	0x1e0f0: 0x6c887c20, 0x1e0f1: 0x6d18fe20, 0x1e0f2: 0x6c142420, 0x1e0f3: 0x6c0c4e20,
-	0x1e0f4: 0x6c7eba20, 0x1e0f5: 0x6c157020, 0x1e0f6: 0x6cfda020, 0x1e0f7: 0x6d2f0020,
-	0x1e0f8: 0x6c169c20, 0x1e0f9: 0x6c6fbc20, 0x1e0fa: 0x6c02a420, 0x1e0fb: 0x6c2eb820,
-	0x1e0fc: 0x6cc13c20, 0x1e0fd: 0x6c8a8420, 0x1e0fe: 0x6c9caa20, 0x1e0ff: 0x6d2efa20,
-	// Block 0x784, offset 0x1e100
-	0x1e100: 0x6c9ac620, 0x1e101: 0x6c96b620, 0x1e102: 0x6cd68220, 0x1e103: 0x6ccd3c20,
-	0x1e104: 0x6c5db420, 0x1e105: 0x6c9ac820, 0x1e106: 0x6d0c8e20, 0x1e107: 0x6c098e20,
-	0x1e108: 0x6c4eba20, 0x1e109: 0x6c099020, 0x1e10a: 0x6ccdfa20, 0x1e10b: 0x6c763420,
-	0x1e10c: 0x6c778a20, 0x1e10d: 0x6c07f220, 0x1e10e: 0x6c535c20, 0x1e10f: 0x6cc8fe20,
-	0x1e110: 0x6cca5820, 0x1e111: 0x6cfb6420, 0x1e112: 0x6cfb6620, 0x1e113: 0x6c64ac20,
-	0x1e114: 0x6c9fb420, 0x1e115: 0x6cf96820, 0x1e116: 0x6cd74020, 0x1e117: 0x6c312020,
-	0x1e118: 0x6d2c3c20, 0x1e119: 0x6ca53420, 0x1e11a: 0x6d2d8820, 0x1e11b: 0x6cae7820,
-	0x1e11c: 0x6cfa2220, 0x1e11d: 0x6c8d2820, 0x1e11e: 0x6c0bae20, 0x1e11f: 0x6c09e820,
-	0x1e120: 0x6cc90020, 0x1e121: 0x6c00be20, 0x1e122: 0x6c492020, 0x1e123: 0x6c441620,
-	0x1e124: 0x6c441820, 0x1e125: 0x6c382220, 0x1e126: 0x6c1f6620, 0x1e127: 0x6c53c820,
-	0x1e128: 0x6c4a7e20, 0x1e129: 0x6c9fbe20, 0x1e12a: 0x6ccb1220, 0x1e12b: 0x6c7dc020,
-	0x1e12c: 0x6c812c20, 0x1e12d: 0x6c935a20, 0x1e12e: 0x6ce68820, 0x1e12f: 0x6ccc7620,
-	0x1e130: 0x6c714820, 0x1e131: 0x6d26e420, 0x1e132: 0x6d26e620, 0x1e133: 0x6c15e020,
-	0x1e134: 0x6cc27620, 0x1e135: 0x6c8c6a20, 0x1e136: 0x6c167e20, 0x1e137: 0x6ccca420,
-	0x1e138: 0x6c7dc220, 0x1e139: 0x6d0c3020, 0x1e13a: 0x6cf1b220, 0x1e13b: 0x6d0cd420,
-	0x1e13c: 0x6c36b020, 0x1e13d: 0x6c5cda20, 0x1e13e: 0x6d23fc20, 0x1e13f: 0x6cf1b420,
-	// Block 0x785, offset 0x1e140
-	0x1e140: 0x6cfe6020, 0x1e141: 0x6c05be20, 0x1e142: 0x6c53d620, 0x1e143: 0x6cc28020,
-	0x1e144: 0x6d11dc20, 0x1e145: 0x6cf1ba20, 0x1e146: 0x6c04d820, 0x1e147: 0x6c01d220,
-	0x1e148: 0x6cef4620, 0x1e149: 0x6d1a1020, 0x1e14a: 0x6c7e2020, 0x1e14b: 0x6cc40a20,
-	0x1e14c: 0x6c7fca20, 0x1e14d: 0x6c317c20, 0x1e14e: 0x6cc38620, 0x1e14f: 0x6c3c6e20,
-	0x1e150: 0x6ce4cc20, 0x1e151: 0x6ca88c20, 0x1e152: 0x6cdec420, 0x1e153: 0x6c767620,
-	0x1e154: 0x6c518a20, 0x1e155: 0x6cc40e20, 0x1e156: 0x6c209c20, 0x1e157: 0x6c493020,
-	0x1e158: 0x6c314620, 0x1e159: 0x6cb72420, 0x1e15a: 0x6c7c4e20, 0x1e15b: 0x6ce15c20,
-	0x1e15c: 0x6c493420, 0x1e15d: 0x6cb18a20, 0x1e15e: 0x6c771820, 0x1e15f: 0x6cf92420,
-	0x1e160: 0x6c5c8e20, 0x1e161: 0x6c160e20, 0x1e162: 0x6cb0dc20, 0x1e163: 0x6c29a420,
-	0x1e164: 0x6c58c420, 0x1e165: 0x6cdeda20, 0x1e166: 0x6cf1c220, 0x1e167: 0x6cde0220,
-	0x1e168: 0x6c9abe20, 0x1e169: 0x6cd67e20, 0x1e16a: 0x6ccd2820, 0x1e16b: 0x6d0e3820,
-	0x1e16c: 0x6c4e8820, 0x1e16d: 0x6c090e20, 0x1e16e: 0x6cf1f820, 0x1e16f: 0x6c208c20,
-	0x1e170: 0x6cc8f820, 0x1e171: 0x6ceee620, 0x1e172: 0x6cfb2820, 0x1e173: 0x6c52fe20,
-	0x1e174: 0x6c646620, 0x1e175: 0x6c9f9220, 0x1e176: 0x6c772620, 0x1e177: 0x6c9aea20,
-	0x1e178: 0x6d2c2420, 0x1e179: 0x6ca52a20, 0x1e17a: 0x6c4a4220, 0x1e17b: 0x6cf18820,
-	0x1e17c: 0x6cde3e20, 0x1e17d: 0x6c9fa020, 0x1e17e: 0x6c935420, 0x1e17f: 0x6c764e20,
-	// Block 0x786, offset 0x1e180
-	0x1e180: 0x6c380a20, 0x1e181: 0x6c43ce20, 0x1e182: 0x6c50e620, 0x1e183: 0x6c7da420,
-	0x1e184: 0x6c6f6820, 0x1e185: 0x6d26a220, 0x1e186: 0x6c80b020, 0x1e187: 0x6c316c20,
-	0x1e188: 0x6d232820, 0x1e189: 0x6d0c0420, 0x1e18a: 0x6c166c20, 0x1e18b: 0x6cf88020,
-	0x1e18c: 0x6cf19420, 0x1e18d: 0x6c5cc620, 0x1e18e: 0x6d0c9020, 0x1e18f: 0x6c362020,
-	0x1e190: 0x6c15b420, 0x1e191: 0x6c7fa020, 0x1e192: 0x6cc27020, 0x1e193: 0x6c5bce20,
-	0x1e194: 0x6c7e0220, 0x1e195: 0x6cc3c620, 0x1e196: 0x6c515020, 0x1e197: 0x6ce4b220,
-	0x1e198: 0x6c26b220, 0x1e199: 0x6cc39020, 0x1e19a: 0x6c4e5e20, 0x1e19b: 0x6c58a220,
-	0x1e19c: 0x6c3fba20, 0x1e19d: 0x6c3f9e20, 0x1e19e: 0x6c820620, 0x1e19f: 0x6c332a20,
-	0x1e1a0: 0x6d031020, 0x1e1a1: 0x6cb89020, 0x1e1a2: 0x6cf49a20, 0x1e1a3: 0x6c412620,
-	0x1e1a4: 0x6d356a20, 0x1e1a5: 0x6d19a020, 0x1e1a6: 0x6d0f7820, 0x1e1a7: 0x6c30d620,
-	0x1e1a8: 0x6c35ce20, 0x1e1a9: 0x6cd0d620, 0x1e1aa: 0x6c04b220, 0x1e1ab: 0x6cadc620,
-	0x1e1ac: 0x6c792220, 0x1e1ad: 0x6d27d420, 0x1e1ae: 0x6cc84c20, 0x1e1af: 0x6d34da20,
-	0x1e1b0: 0x6cafac20, 0x1e1b1: 0x6c6e0420, 0x1e1b2: 0x6c39a020, 0x1e1b3: 0x6d0f7a20,
-	0x1e1b4: 0x6d19a220, 0x1e1b5: 0x6d321020, 0x1e1b6: 0x6c69f420, 0x1e1b7: 0x6c195020,
-	0x1e1b8: 0x6c35d620, 0x1e1b9: 0x6cc0d620, 0x1e1ba: 0x6c2bd220, 0x1e1bb: 0x6d410a20,
-	0x1e1bc: 0x6d427820, 0x1e1bd: 0x6c2d3820, 0x1e1be: 0x6c8e0820, 0x1e1bf: 0x6c000220,
-	// Block 0x787, offset 0x1e1c0
-	0x1e1c0: 0x6ceae620, 0x1e1c1: 0x6ceae820, 0x1e1c2: 0x6c068c20, 0x1e1c3: 0x6c0dc020,
-	0x1e1c4: 0x6c3fae20, 0x1e1c5: 0x6c618e20, 0x1e1c6: 0x6c921420, 0x1e1c7: 0x6c902c20,
-	0x1e1c8: 0x6c18a220, 0x1e1c9: 0x6d03c220, 0x1e1ca: 0x6c34ce20, 0x1e1cb: 0x6c910220,
-	0x1e1cc: 0x6ca0da20, 0x1e1cd: 0x6c67d620, 0x1e1ce: 0x6cd4ae20, 0x1e1cf: 0x6c34d020,
-	0x1e1d0: 0x6cfc8620, 0x1e1d1: 0x6c373820, 0x1e1d2: 0x6c4acc20, 0x1e1d3: 0x6d207c20,
-	0x1e1d4: 0x6c40e220, 0x1e1d5: 0x6ccd2e20, 0x1e1d6: 0x6c759e20, 0x1e1d7: 0x6cbc3420,
-	0x1e1d8: 0x6d03d820, 0x1e1d9: 0x6c213620, 0x1e1da: 0x6c3fd820, 0x1e1db: 0x6c095820,
-	0x1e1dc: 0x6cf99e20, 0x1e1dd: 0x6ccd3820, 0x1e1de: 0x6cd0f620, 0x1e1df: 0x6d35aa20,
-	0x1e1e0: 0x6cb40420, 0x1e1e1: 0x6c30e420, 0x1e1e2: 0x6d260620, 0x1e1e3: 0x6d322820,
-	0x1e1e4: 0x6c1e7620, 0x1e1e5: 0x6cfc9820, 0x1e1e6: 0x6c2a5620, 0x1e1e7: 0x6ca7fe20,
-	0x1e1e8: 0x6d27e020, 0x1e1e9: 0x6cfbf020, 0x1e1ea: 0x6cadce20, 0x1e1eb: 0x6c3aa020,
-	0x1e1ec: 0x6d404e20, 0x1e1ed: 0x6d174c20, 0x1e1ee: 0x6c334820, 0x1e1ef: 0x6c94e620,
-	0x1e1f0: 0x6d19c420, 0x1e1f1: 0x6c707820, 0x1e1f2: 0x6c20c620, 0x1e1f3: 0x6c18ba20,
-	0x1e1f4: 0x6cafd620, 0x1e1f5: 0x6c8cd820, 0x1e1f6: 0x6ce21420, 0x1e1f7: 0x6cfcae20,
-	0x1e1f8: 0x6c923020, 0x1e1f9: 0x6cd0fc20, 0x1e1fa: 0x6cfc0a20, 0x1e1fb: 0x6d19d420,
-	0x1e1fc: 0x6d3a6220, 0x1e1fd: 0x6d0fb020, 0x1e1fe: 0x6cc62c20, 0x1e1ff: 0x6cf9bc20,
-	// Block 0x788, offset 0x1e200
-	0x1e200: 0x6c1d1420, 0x1e201: 0x6d0e6820, 0x1e202: 0x6d19d620, 0x1e203: 0x6cd5ce20,
-	0x1e204: 0x6c2b2c20, 0x1e205: 0x6d210c20, 0x1e206: 0x6c8f9220, 0x1e207: 0x6cee7820,
-	0x1e208: 0x6cee7a20, 0x1e209: 0x6ca82420, 0x1e20a: 0x6c334a20, 0x1e20b: 0x6cdbf220,
-	0x1e20c: 0x6c018420, 0x1e20d: 0x6c59b620, 0x1e20e: 0x6c6a0620, 0x1e20f: 0x6cdbf420,
-	0x1e210: 0x6d1ae220, 0x1e211: 0x6c413c20, 0x1e212: 0x6d0d9a20, 0x1e213: 0x6c5abe20,
-	0x1e214: 0x6c43fc20, 0x1e215: 0x6d27ee20, 0x1e216: 0x6cf4f220, 0x1e217: 0x6c7c6c20,
-	0x1e218: 0x6c009e20, 0x1e219: 0x6cf89820, 0x1e21a: 0x6ce10c20, 0x1e21b: 0x6c623020,
-	0x1e21c: 0x6d2f3620, 0x1e21d: 0x6c29de20, 0x1e21e: 0x6c024820, 0x1e21f: 0x6cf8aa20,
-	0x1e220: 0x6d1aee20, 0x1e221: 0x6cc9be20, 0x1e222: 0x6cc53a20, 0x1e223: 0x6c8bca20,
-	0x1e224: 0x6ce9b220, 0x1e225: 0x6c2ade20, 0x1e226: 0x6c693820, 0x1e227: 0x6cdc5820,
-	0x1e228: 0x6cdbfa20, 0x1e229: 0x6c02e220, 0x1e22a: 0x6cfc2620, 0x1e22b: 0x6c3b8220,
-	0x1e22c: 0x6ca64c20, 0x1e22d: 0x6c376820, 0x1e22e: 0x6c5f4a20, 0x1e22f: 0x6c29ec20,
-	0x1e230: 0x6cf7a620, 0x1e231: 0x6d1b0a20, 0x1e232: 0x6c358220, 0x1e233: 0x6c5af420,
-	0x1e234: 0x6c903c20, 0x1e235: 0x6cf72220, 0x1e236: 0x6c859820, 0x1e237: 0x6c868820,
-	0x1e238: 0x6c86b420, 0x1e239: 0x6d3c5620, 0x1e23a: 0x6c553a20, 0x1e23b: 0x6d33d220,
-	0x1e23c: 0x6cdcea20, 0x1e23d: 0x6c735220, 0x1e23e: 0x6ca3f620, 0x1e23f: 0x6d178820,
-	// Block 0x789, offset 0x1e240
-	0x1e240: 0x6cc3ba20, 0x1e241: 0x6d0e7e20, 0x1e242: 0x6cbd7a20, 0x1e243: 0x6cb8e820,
-	0x1e244: 0x6d047c20, 0x1e245: 0x6d0b5420, 0x1e246: 0x6c604620, 0x1e247: 0x6c481820,
-	0x1e248: 0x6c587a20, 0x1e249: 0x6d367620, 0x1e24a: 0x6c46c020, 0x1e24b: 0x6c736e20,
-	0x1e24c: 0x6c225620, 0x1e24d: 0x6d1d9420, 0x1e24e: 0x6c70b020, 0x1e24f: 0x6c1e9820,
-	0x1e250: 0x6c54f020, 0x1e251: 0x6d28c420, 0x1e252: 0x6c961c20, 0x1e253: 0x6d219620,
-	0x1e254: 0x6c1dde20, 0x1e255: 0x6c2de020, 0x1e256: 0x6cdbe020, 0x1e257: 0x6c4f2820,
-	0x1e258: 0x6cf32220, 0x1e259: 0x6cd6a620, 0x1e25a: 0x6c49ae20, 0x1e25b: 0x6c1ec220,
-	0x1e25c: 0x6d28d220, 0x1e25d: 0x6d1dcc20, 0x1e25e: 0x6c5f7c20, 0x1e25f: 0x6cf70c20,
-	0x1e260: 0x6c1dfe20, 0x1e261: 0x6c8f5220, 0x1e262: 0x6c847e20, 0x1e263: 0x6ca41420,
-	0x1e264: 0x6d092c20, 0x1e265: 0x6d28e420, 0x1e266: 0x6c610820, 0x1e267: 0x6c610a20,
-	0x1e268: 0x6d222220, 0x1e269: 0x6d211020, 0x1e26a: 0x6d093020, 0x1e26b: 0x6ca2f820,
-	0x1e26c: 0x6c3d2e20, 0x1e26d: 0x6ccb2820, 0x1e26e: 0x6ca28e20, 0x1e26f: 0x6cf19820,
-	0x1e270: 0x6c3b3620, 0x1e271: 0x6cacda20, 0x1e272: 0x6d27aa20, 0x1e273: 0x6c862220,
-	0x1e274: 0x6c1c3a20, 0x1e275: 0x6d0f6020, 0x1e276: 0x6c8d2a20, 0x1e277: 0x6c823e20,
-	0x1e278: 0x6c016e20, 0x1e279: 0x6c05ce20, 0x1e27a: 0x6cf50420, 0x1e27b: 0x6c2d6a20,
-	0x1e27c: 0x6c297420, 0x1e27d: 0x6c56ac20, 0x1e27e: 0x6cf50620, 0x1e27f: 0x6c2e3420,
-	// Block 0x78a, offset 0x1e280
-	0x1e280: 0x6d05c220, 0x1e281: 0x6c625820, 0x1e282: 0x6ca2a820, 0x1e283: 0x6c18e820,
-	0x1e284: 0x6cff1020, 0x1e285: 0x6d2cde20, 0x1e286: 0x6ce68a20, 0x1e287: 0x6d325e20,
-	0x1e288: 0x6cae2820, 0x1e289: 0x6c9a2420, 0x1e28a: 0x6c8d4c20, 0x1e28b: 0x6cb53420,
-	0x1e28c: 0x6d38b020, 0x1e28d: 0x6c5e0220, 0x1e28e: 0x6ccc7c20, 0x1e28f: 0x6c3a1a20,
-	0x1e290: 0x6c538a20, 0x1e291: 0x6d2da020, 0x1e292: 0x6d1a0820, 0x1e293: 0x6ca60820,
-	0x1e294: 0x6d3b2e20, 0x1e295: 0x6cea6e20, 0x1e296: 0x6c8be420, 0x1e297: 0x6c8e3020,
-	0x1e298: 0x6c308e20, 0x1e299: 0x6d1bf620, 0x1e29a: 0x6cf53220, 0x1e29b: 0x6c8d7420,
-	0x1e29c: 0x6cd6a420, 0x1e29d: 0x6c8d7620, 0x1e29e: 0x6cfa0620, 0x1e29f: 0x6c539020,
-	0x1e2a0: 0x6d1a1220, 0x1e2a1: 0x6c974420, 0x1e2a2: 0x6c974620, 0x1e2a3: 0x6d280620,
-	0x1e2a4: 0x6c8f4c20, 0x1e2a5: 0x6c9c1620, 0x1e2a6: 0x6c0d6a20, 0x1e2a7: 0x6cf54020,
-	0x1e2a8: 0x6cf10020, 0x1e2a9: 0x6c7e2a20, 0x1e2aa: 0x6d1aac20, 0x1e2ab: 0x6cf7b220,
-	0x1e2ac: 0x6d191e20, 0x1e2ad: 0x6c008020, 0x1e2ae: 0x6c28e420, 0x1e2af: 0x6ce2e420,
-	0x1e2b0: 0x6cca4020, 0x1e2b1: 0x6d246c20, 0x1e2b2: 0x6c933620, 0x1e2b3: 0x6c8fd020,
-	0x1e2b4: 0x6c27a820, 0x1e2b5: 0x6c60f420, 0x1e2b6: 0x6cacec20, 0x1e2b7: 0x6d0ff420,
-	0x1e2b8: 0x6c03d620, 0x1e2b9: 0x6cafa420, 0x1e2ba: 0x6cef7020, 0x1e2bb: 0x6c3c8420,
-	0x1e2bc: 0x6cf93420, 0x1e2bd: 0x6c62e420, 0x1e2be: 0x6c970e20, 0x1e2bf: 0x6c9bac20,
-	// Block 0x78b, offset 0x1e2c0
-	0x1e2c0: 0x6c9bae20, 0x1e2c1: 0x6c829a20, 0x1e2c2: 0x6c87ae20, 0x1e2c3: 0x6c5e5820,
-	0x1e2c4: 0x6c008220, 0x1e2c5: 0x6c3b0220, 0x1e2c6: 0x6c27ae20, 0x1e2c7: 0x6c901220,
-	0x1e2c8: 0x6c8db620, 0x1e2c9: 0x6c010e20, 0x1e2ca: 0x6c3c8e20, 0x1e2cb: 0x6c87c820,
-	0x1e2cc: 0x6c062620, 0x1e2cd: 0x6c521820, 0x1e2ce: 0x6c521020, 0x1e2cf: 0x6c521420,
-	0x1e2d0: 0x6c0e3e20, 0x1e2d1: 0x6cbe3020, 0x1e2d2: 0x6cbe3220, 0x1e2d3: 0x6c6e8a20,
-	0x1e2d4: 0x6ce46c20, 0x1e2d5: 0x6d317820, 0x1e2d6: 0x6c6e9220, 0x1e2d7: 0x6c198420,
-	0x1e2d8: 0x6cbed420, 0x1e2d9: 0x6c6e9c20, 0x1e2da: 0x6c6ea620, 0x1e2db: 0x6c2d8620,
-	0x1e2dc: 0x6c6eb020, 0x1e2dd: 0x6ce47a20, 0x1e2de: 0x6c39f220, 0x1e2df: 0x6c3a0a20,
-	0x1e2e0: 0x6c77c820, 0x1e2e1: 0x6c9c9220, 0x1e2e2: 0x6c9e5620, 0x1e2e3: 0x6c9e5020,
-	0x1e2e4: 0x6c065a20, 0x1e2e5: 0x6d133420, 0x1e2e6: 0x6ce52020, 0x1e2e7: 0x6c5c9820,
-	0x1e2e8: 0x6d139c20, 0x1e2e9: 0x6c43d020, 0x1e2ea: 0x6c2f5e20, 0x1e2eb: 0x6c13ea20,
-	0x1e2ec: 0x6cb9a020, 0x1e2ed: 0x6cc5f820, 0x1e2ee: 0x6c2b7020, 0x1e2ef: 0x6c326020,
-	0x1e2f0: 0x6cf4f420, 0x1e2f1: 0x6cc5fa20, 0x1e2f2: 0x6cbd8820, 0x1e2f3: 0x6c6d2020,
-	0x1e2f4: 0x6d08e420, 0x1e2f5: 0x6ca99e20, 0x1e2f6: 0x6c03a220, 0x1e2f7: 0x6d1af020,
-	0x1e2f8: 0x6cc95020, 0x1e2f9: 0x6ca35e20, 0x1e2fa: 0x6ca14420, 0x1e2fb: 0x6d412220,
-	0x1e2fc: 0x6c26b620, 0x1e2fd: 0x6c050020, 0x1e2fe: 0x6d183e20, 0x1e2ff: 0x6d121a20,
-	// Block 0x78c, offset 0x1e300
-	0x1e300: 0x6ce23420, 0x1e301: 0x6c074c20, 0x1e302: 0x6c63d820, 0x1e303: 0x6c537a20,
-	0x1e304: 0x6cad6220, 0x1e305: 0x6d0f6420, 0x1e306: 0x6c0e4220, 0x1e307: 0x6d1a0020,
-	0x1e308: 0x6c442c20, 0x1e309: 0x6ce23c20, 0x1e30a: 0x6c6b2e20, 0x1e30b: 0x6d00e420,
-	0x1e30c: 0x6c014820, 0x1e30d: 0x6c014a20, 0x1e30e: 0x6c523620, 0x1e30f: 0x6c45fc20,
-	0x1e310: 0x6cb88a20, 0x1e311: 0x6c26c220, 0x1e312: 0x6cbbf420, 0x1e313: 0x6ce64a20,
-	0x1e314: 0x6c978620, 0x1e315: 0x6d1d4e20, 0x1e316: 0x6cdbde20, 0x1e317: 0x6ce5a020,
-	0x1e318: 0x6cbc6220, 0x1e319: 0x6d08b820, 0x1e31a: 0x6c79ac20, 0x1e31b: 0x6c083420,
-	0x1e31c: 0x6cdeb420, 0x1e31d: 0x6cce5820, 0x1e31e: 0x6c0dfa20, 0x1e31f: 0x6c7e2220,
-	0x1e320: 0x6c70d420, 0x1e321: 0x6c7eda20, 0x1e322: 0x6d024a20, 0x1e323: 0x6cc76820,
-	0x1e324: 0x6c054420, 0x1e325: 0x6c372c20, 0x1e326: 0x6cbfd620, 0x1e327: 0x6cbfd820,
-	0x1e328: 0x6c518c20, 0x1e329: 0x6d001620, 0x1e32a: 0x6ca2ba20, 0x1e32b: 0x6c70da20,
-	0x1e32c: 0x6c650a20, 0x1e32d: 0x6c0b1620, 0x1e32e: 0x6c2b4c20, 0x1e32f: 0x6c651c20,
-	0x1e330: 0x6cf16e20, 0x1e331: 0x6ce1fa20, 0x1e332: 0x6c466620, 0x1e333: 0x6cdec620,
-	0x1e334: 0x6c076c20, 0x1e335: 0x6d011c20, 0x1e336: 0x6cac8820, 0x1e337: 0x6c445420,
-	0x1e338: 0x6c0ab020, 0x1e339: 0x6c7e2e20, 0x1e33a: 0x6ce0e020, 0x1e33b: 0x6c90d420,
-	0x1e33c: 0x6c4ba420, 0x1e33d: 0x6cbc1220, 0x1e33e: 0x6d08ee20, 0x1e33f: 0x6c5f9820,
-	// Block 0x78d, offset 0x1e340
-	0x1e340: 0x6c654820, 0x1e341: 0x6c679820, 0x1e342: 0x6c164c20, 0x1e343: 0x6c26d820,
-	0x1e344: 0x6c56e820, 0x1e345: 0x6cfc6420, 0x1e346: 0x6cb96020, 0x1e347: 0x6c320420,
-	0x1e348: 0x6cec4420, 0x1e349: 0x6c655a20, 0x1e34a: 0x6c801e20, 0x1e34b: 0x6ceeee20,
-	0x1e34c: 0x6cc5fc20, 0x1e34d: 0x6c3ecc20, 0x1e34e: 0x6c9aa220, 0x1e34f: 0x6cc37820,
-	0x1e350: 0x6c442e20, 0x1e351: 0x6cf01020, 0x1e352: 0x6cbc6420, 0x1e353: 0x6c4e3e20,
-	0x1e354: 0x6c172820, 0x1e355: 0x6c7e3420, 0x1e356: 0x6cc77c20, 0x1e357: 0x6d286620,
-	0x1e358: 0x6ccf8020, 0x1e359: 0x6cf04620, 0x1e35a: 0x6c444e20, 0x1e35b: 0x6c046220,
-	0x1e35c: 0x6ce1fc20, 0x1e35d: 0x6c466820, 0x1e35e: 0x6d286c20, 0x1e35f: 0x6c435e20,
-	0x1e360: 0x6c0ab220, 0x1e361: 0x6cf05220, 0x1e362: 0x6cdcc220, 0x1e363: 0x6c31fa20,
-	0x1e364: 0x6cec4620, 0x1e365: 0x6c320620, 0x1e366: 0x6ceed820, 0x1e367: 0x6cc5cc20,
-	0x1e368: 0x6c3e2820, 0x1e369: 0x6c4e1a20, 0x1e36a: 0x6cefea20, 0x1e36b: 0x6d283e20,
-	0x1e36c: 0x6ce1e020, 0x1e36d: 0x6c6fb420, 0x1e36e: 0x6c6fc420, 0x1e36f: 0x6cfad220,
-	0x1e370: 0x6d022820, 0x1e371: 0x6cfae220, 0x1e372: 0x6c5f8820, 0x1e373: 0x6d19ba20,
-	0x1e374: 0x6d28c220, 0x1e375: 0x6d284020, 0x1e376: 0x6ccea820, 0x1e377: 0x6c822420,
-	0x1e378: 0x6caecc20, 0x1e379: 0x6c5a2020, 0x1e37a: 0x6d1c0420, 0x1e37b: 0x6d287220,
-	0x1e37c: 0x6caef020, 0x1e37d: 0x6c016020, 0x1e37e: 0x6d1a1820, 0x1e37f: 0x6cfe0a20,
-	// Block 0x78e, offset 0x1e380
-	0x1e380: 0x6c56ea20, 0x1e381: 0x6d12dc20, 0x1e382: 0x6c2f6e20, 0x1e383: 0x6cbea820,
-	0x1e384: 0x6c7c7020, 0x1e385: 0x6cfe3a20, 0x1e386: 0x6cd75420, 0x1e387: 0x6c4daa20,
-	0x1e388: 0x6d05ae20, 0x1e389: 0x6d152a20, 0x1e38a: 0x6d05b620, 0x1e38b: 0x6c35b420,
-	0x1e38c: 0x6cd99020, 0x1e38d: 0x6c7cd820, 0x1e38e: 0x6cb60c20, 0x1e38f: 0x6c4f8220,
-	0x1e390: 0x6d238620, 0x1e391: 0x6cece020, 0x1e392: 0x6c048c20, 0x1e393: 0x6c33fe20,
-	0x1e394: 0x6c2b8620, 0x1e395: 0x6c27f220, 0x1e396: 0x6cacbe20, 0x1e397: 0x6cb31820,
-	0x1e398: 0x6c8e1220, 0x1e399: 0x6c182e20, 0x1e39a: 0x6c6e2620, 0x1e39b: 0x6c834020,
-	0x1e39c: 0x6c516a20, 0x1e39d: 0x6cbb9e20, 0x1e39e: 0x6c36a020, 0x1e39f: 0x6c357c20,
-	0x1e3a0: 0x6cf01220, 0x1e3a1: 0x6d00e620, 0x1e3a2: 0x6c7e1020, 0x1e3a3: 0x6cd07020,
-	0x1e3a4: 0x6d156620, 0x1e3a5: 0x6cd07a20, 0x1e3a6: 0x6c4d2420, 0x1e3a7: 0x6c332820,
-	0x1e3a8: 0x6d228420, 0x1e3a9: 0x6cb26620, 0x1e3aa: 0x6c834220, 0x1e3ab: 0x6c3f8420,
-	0x1e3ac: 0x6c63e020, 0x1e3ad: 0x6ce7f820, 0x1e3ae: 0x6c5c4a20, 0x1e3af: 0x6c7ca020,
-	0x1e3b0: 0x6c63ec20, 0x1e3b1: 0x6c953220, 0x1e3b2: 0x6ce6e220, 0x1e3b3: 0x6c199820,
-	0x1e3b4: 0x6d1d1020, 0x1e3b5: 0x6d276a20, 0x1e3b6: 0x6c55c620, 0x1e3b7: 0x6c4f1020,
-	0x1e3b8: 0x6c6e3620, 0x1e3b9: 0x6ce9be20, 0x1e3ba: 0x6ce9c020, 0x1e3bb: 0x6cb21420,
-	0x1e3bc: 0x6c7f5a20, 0x1e3bd: 0x6ce9c220, 0x1e3be: 0x6d3eb420, 0x1e3bf: 0x6d3eb220,
-	// Block 0x78f, offset 0x1e3c0
-	0x1e3c0: 0x6c20e620, 0x1e3c1: 0x6c2fc020, 0x1e3c2: 0x6c7f5c20, 0x1e3c3: 0x6ce02020,
-	0x1e3c4: 0x6c4f2220, 0x1e3c5: 0x6cb93220, 0x1e3c6: 0x6c783820, 0x1e3c7: 0x6c257220,
-	0x1e3c8: 0x6d085e20, 0x1e3c9: 0x6cbd4420, 0x1e3ca: 0x6d157820, 0x1e3cb: 0x6cc9d420,
-	0x1e3cc: 0x6ce39e20, 0x1e3cd: 0x6c358a20, 0x1e3ce: 0x6c36ca20, 0x1e3cf: 0x6d0ce220,
-	0x1e3d0: 0x6cf21420, 0x1e3d1: 0x6c76f820, 0x1e3d2: 0x6d1e0220, 0x1e3d3: 0x6d3b9820,
-	0x1e3d4: 0x6d0ce420, 0x1e3d5: 0x6cfc3c20, 0x1e3d6: 0x6d035220, 0x1e3d7: 0x6d162620,
-	0x1e3d8: 0x6d263820, 0x1e3d9: 0x6cca9620, 0x1e3da: 0x6c2ce620, 0x1e3db: 0x6c2ce820,
-	0x1e3dc: 0x6c67ca20, 0x1e3dd: 0x6c7c4a20, 0x1e3de: 0x6c835420, 0x1e3df: 0x6c819220,
-	0x1e3e0: 0x6cb1a820, 0x1e3e1: 0x6cec7820, 0x1e3e2: 0x6c979a20, 0x1e3e3: 0x6c247c20,
-	0x1e3e4: 0x6d117820, 0x1e3e5: 0x6c507e20, 0x1e3e6: 0x6cbc1420, 0x1e3e7: 0x6c482e20,
-	0x1e3e8: 0x6d0ab620, 0x1e3e9: 0x6d0e1a20, 0x1e3ea: 0x6c5c9e20, 0x1e3eb: 0x6c164e20,
-	0x1e3ec: 0x6cc7ee20, 0x1e3ed: 0x6c9bb620, 0x1e3ee: 0x6c0d7420, 0x1e3ef: 0x6cfc6620,
-	0x1e3f0: 0x6cb23220, 0x1e3f1: 0x6c91a620, 0x1e3f2: 0x6c806620, 0x1e3f3: 0x6ca8d620,
-	0x1e3f4: 0x6cc34620, 0x1e3f5: 0x6d12be20, 0x1e3f6: 0x6c2f6a20, 0x1e3f7: 0x6cbe9e20,
-	0x1e3f8: 0x6c4d9620, 0x1e3f9: 0x6cfe2420, 0x1e3fa: 0x6cd74a20, 0x1e3fb: 0x6d057e20,
-	0x1e3fc: 0x6d058820, 0x1e3fd: 0x6cecd220, 0x1e3fe: 0x6c480620, 0x1e3ff: 0x6c33ec20,
-	// Block 0x790, offset 0x1e400
-	0x1e400: 0x6cb5b420, 0x1e401: 0x6c047c20, 0x1e402: 0x6cd98820, 0x1e403: 0x6c4f7220,
-	0x1e404: 0x6d22fc20, 0x1e405: 0x6c915420, 0x1e406: 0x6c8e1020, 0x1e407: 0x6cb30c20,
-	0x1e408: 0x6c6e1e20, 0x1e409: 0x6c6ada20, 0x1e40a: 0x6c63c820, 0x1e40b: 0x6ce6d420,
-	0x1e40c: 0x6c513220, 0x1e40d: 0x6d1cf420, 0x1e40e: 0x6c6f1420, 0x1e40f: 0x6c780220,
-	0x1e410: 0x6d152c20, 0x1e411: 0x6cb21220, 0x1e412: 0x6c5bee20, 0x1e413: 0x6ce9a820,
-	0x1e414: 0x6c4ed620, 0x1e415: 0x6d1cf820, 0x1e416: 0x6d1cfa20, 0x1e417: 0x6c781e20,
-	0x1e418: 0x6ce37420, 0x1e419: 0x6d1dfe20, 0x1e41a: 0x6c36a220, 0x1e41b: 0x6d3b9020,
-	0x1e41c: 0x6d0ccc20, 0x1e41d: 0x6c357e20, 0x1e41e: 0x6ca87820, 0x1e41f: 0x6c975a20,
-	0x1e420: 0x6c2cdc20, 0x1e421: 0x6cca8c20, 0x1e422: 0x6c507820, 0x1e423: 0x6c835020,
-	0x1e424: 0x6c163c20, 0x1e425: 0x6cc7e620, 0x1e426: 0x6cb22620, 0x1e427: 0x6cc33e20,
-	0x1e428: 0x6c3c2c20, 0x1e429: 0x6c0c0020, 0x1e42a: 0x6c48be20, 0x1e42b: 0x6c3eb820,
-	0x1e42c: 0x6cf96e20, 0x1e42d: 0x6d2e0c20, 0x1e42e: 0x6c0c1020, 0x1e42f: 0x6cc98020,
-	0x1e430: 0x6c038820, 0x1e431: 0x6cdf3420, 0x1e432: 0x6c8b2a20, 0x1e433: 0x6c487420,
-	0x1e434: 0x6d08ba20, 0x1e435: 0x6cce8820, 0x1e436: 0x6c72a820, 0x1e437: 0x6c0c3420,
-	0x1e438: 0x6cd84020, 0x1e439: 0x6cf04820, 0x1e43a: 0x6d0fec20, 0x1e43b: 0x6d116a20,
-	0x1e43c: 0x6cd9f820, 0x1e43d: 0x6c767820, 0x1e43e: 0x6cd9fa20, 0x1e43f: 0x6c386c20,
-	// Block 0x791, offset 0x1e440
-	0x1e440: 0x6c8ed220, 0x1e441: 0x6cf7bc20, 0x1e442: 0x6c8f5620, 0x1e443: 0x6cb17020,
-	0x1e444: 0x6cb17220, 0x1e445: 0x6c8ede20, 0x1e446: 0x6c0c5620, 0x1e447: 0x6c0c5820,
-	0x1e448: 0x6c0c5a20, 0x1e449: 0x6c8a5620, 0x1e44a: 0x6c0c9e20, 0x1e44b: 0x6ccb9c20,
-	0x1e44c: 0x6c3c9020, 0x1e44d: 0x6d051820, 0x1e44e: 0x6c3c0e20, 0x1e44f: 0x6d0f8220,
-	0x1e450: 0x6d2dde20, 0x1e451: 0x6c0bee20, 0x1e452: 0x6cc97020, 0x1e453: 0x6c725420,
-	0x1e454: 0x6cd7fc20, 0x1e455: 0x6cd9c620, 0x1e456: 0x6d112e20, 0x1e457: 0x6c8e7e20,
-	0x1e458: 0x6cb16020, 0x1e459: 0x6c0c2620, 0x1e45a: 0x6c0c2820, 0x1e45b: 0x6c39f420,
-	0x1e45c: 0x6c387420, 0x1e45d: 0x6c3a2e20, 0x1e45e: 0x6c39ee20, 0x1e45f: 0x6cd25820,
-	0x1e460: 0x6cd24c20, 0x1e461: 0x6c116220, 0x1e462: 0x6c5eb020, 0x1e463: 0x6c2f9e20,
-	0x1e464: 0x6cd8ae20, 0x1e465: 0x6ceac620, 0x1e466: 0x6d2d7220, 0x1e467: 0x6cdcd220,
-	0x1e468: 0x6cfde820, 0x1e469: 0x6cea5a20, 0x1e46a: 0x6cc5fe20, 0x1e46b: 0x6d235e20,
-	0x1e46c: 0x6c737e20, 0x1e46d: 0x6c1c2a20, 0x1e46e: 0x6d1af220, 0x1e46f: 0x6c395c20,
-	0x1e470: 0x6c395e20, 0x1e471: 0x6cdcda20, 0x1e472: 0x6d1ae820, 0x1e473: 0x6ce81620,
-	0x1e474: 0x6d152e20, 0x1e475: 0x6d42a620, 0x1e476: 0x6c09ec20, 0x1e477: 0x6c6b9c20,
-	0x1e478: 0x6ce1e220, 0x1e479: 0x6c8f0e20, 0x1e47a: 0x6c226220, 0x1e47b: 0x6ce61420,
-	0x1e47c: 0x6cd8d420, 0x1e47d: 0x6c060420, 0x1e47e: 0x6cd3b020, 0x1e47f: 0x6c350620,
-	// Block 0x792, offset 0x1e480
-	0x1e480: 0x6c4d7220, 0x1e481: 0x6cc60420, 0x1e482: 0x6ce51020, 0x1e483: 0x6c691e20,
-	0x1e484: 0x6c63da20, 0x1e485: 0x6c0df020, 0x1e486: 0x6d113020, 0x1e487: 0x6ce77420,
-	0x1e488: 0x6c226420, 0x1e489: 0x6cfdf820, 0x1e48a: 0x6d102a20, 0x1e48b: 0x6c738a20,
-	0x1e48c: 0x6c37a220, 0x1e48d: 0x6d0eb220, 0x1e48e: 0x6c823a20, 0x1e48f: 0x6cf68c20,
-	0x1e490: 0x6c117220, 0x1e491: 0x6c0e8e20, 0x1e492: 0x6ca57220, 0x1e493: 0x6c36a420,
-	0x1e494: 0x6c10b620, 0x1e495: 0x6c75e620, 0x1e496: 0x6c313620, 0x1e497: 0x6cdb0e20,
-	0x1e498: 0x6d219820, 0x1e499: 0x6cd3d020, 0x1e49a: 0x6d114a20, 0x1e49b: 0x6c5d0020,
-	0x1e49c: 0x6c4cd220, 0x1e49d: 0x6cd3d220, 0x1e49e: 0x6c66dc20, 0x1e49f: 0x6d3cae20,
-	0x1e4a0: 0x6c0df420, 0x1e4a1: 0x6cfd1620, 0x1e4a2: 0x6c10c020, 0x1e4a3: 0x6d135020,
-	0x1e4a4: 0x6ce01620, 0x1e4a5: 0x6c3a1e20, 0x1e4a6: 0x6d2ede20, 0x1e4a7: 0x6cf0de20,
-	0x1e4a8: 0x6c496820, 0x1e4a9: 0x6c36b220, 0x1e4aa: 0x6caa9a20, 0x1e4ab: 0x6d286020,
-	0x1e4ac: 0x6c55d620, 0x1e4ad: 0x6c5a1420, 0x1e4ae: 0x6ce61c20, 0x1e4af: 0x6c5c6220,
-	0x1e4b0: 0x6c650c20, 0x1e4b1: 0x6c543c20, 0x1e4b2: 0x6c00e820, 0x1e4b3: 0x6ce14c20,
-	0x1e4b4: 0x6c3b4820, 0x1e4b5: 0x6cf0ee20, 0x1e4b6: 0x6c47de20, 0x1e4b7: 0x6c13b820,
-	0x1e4b8: 0x6cd99e20, 0x1e4b9: 0x6ce15820, 0x1e4ba: 0x6c0f9820, 0x1e4bb: 0x6c42e820,
-	0x1e4bc: 0x6cf90c20, 0x1e4bd: 0x6c7d2620, 0x1e4be: 0x6c8f4e20, 0x1e4bf: 0x6cd9f220,
-	// Block 0x793, offset 0x1e4c0
-	0x1e4c0: 0x6ce24a20, 0x1e4c1: 0x6d137c20, 0x1e4c2: 0x6d27cc20, 0x1e4c3: 0x6ca08a20,
-	0x1e4c4: 0x6ce16020, 0x1e4c5: 0x6c979420, 0x1e4c6: 0x6c0aa020, 0x1e4c7: 0x6d245620,
-	0x1e4c8: 0x6d050a20, 0x1e4c9: 0x6c6cc820, 0x1e4ca: 0x6cca4420, 0x1e4cb: 0x6c7d3c20,
-	0x1e4cc: 0x6d3bfc20, 0x1e4cd: 0x6ccdde20, 0x1e4ce: 0x6c1c9020, 0x1e4cf: 0x6c28e620,
-	0x1e4d0: 0x6d193c20, 0x1e4d1: 0x6c5f9020, 0x1e4d2: 0x6cc53220, 0x1e4d3: 0x6c19ac20,
-	0x1e4d4: 0x6d1de420, 0x1e4d5: 0x6ce20220, 0x1e4d6: 0x6cf11c20, 0x1e4d7: 0x6cfe0e20,
-	0x1e4d8: 0x6d2dc620, 0x1e4d9: 0x6c3b4a20, 0x1e4da: 0x6c4d8a20, 0x1e4db: 0x6c9bb020,
-	0x1e4dc: 0x6d0f1420, 0x1e4dd: 0x6ca0a220, 0x1e4de: 0x6c158020, 0x1e4df: 0x6cfe1020,
-	0x1e4e0: 0x6c959820, 0x1e4e1: 0x6d29cc20, 0x1e4e2: 0x6ca46c20, 0x1e4e3: 0x6cd22620,
-	0x1e4e4: 0x6c2f9020, 0x1e4e5: 0x6c5e6e20, 0x1e4e6: 0x6cea9e20, 0x1e4e7: 0x6ce0e420,
-	0x1e4e8: 0x6cea4420, 0x1e4e9: 0x6cf84020, 0x1e4ea: 0x6cc5ce20, 0x1e4eb: 0x6d22d220,
-	0x1e4ec: 0x6c1bea20, 0x1e4ed: 0x6c392420, 0x1e4ee: 0x6d1acc20, 0x1e4ef: 0x6c665620,
-	0x1e4f0: 0x6cd32620, 0x1e4f1: 0x6c05e820, 0x1e4f2: 0x6cd89420, 0x1e4f3: 0x6c34d220,
-	0x1e4f4: 0x6d147e20, 0x1e4f5: 0x6c378c20, 0x1e4f6: 0x6cc52420, 0x1e4f7: 0x6cfdde20,
-	0x1e4f8: 0x6c50e820, 0x1e4f9: 0x6c823820, 0x1e4fa: 0x6c68d820, 0x1e4fb: 0x6cf5b020,
-	0x1e4fc: 0x6c0dd420, 0x1e4fd: 0x6c0e6a20, 0x1e4fe: 0x6c310c20, 0x1e4ff: 0x6c360420,
-	// Block 0x794, offset 0x1e500
-	0x1e500: 0x6d210020, 0x1e501: 0x6ca56a20, 0x1e502: 0x6c75a820, 0x1e503: 0x6c4cbe20,
-	0x1e504: 0x6c5ce820, 0x1e505: 0x6cfcbe20, 0x1e506: 0x6c495020, 0x1e507: 0x6c13a020,
-	0x1e508: 0x6c7d0220, 0x1e509: 0x6c479820, 0x1e50a: 0x6cd9ba20, 0x1e50b: 0x6c14fc20,
-	0x1e50c: 0x6d130a20, 0x1e50d: 0x6ca06020, 0x1e50e: 0x6c0f2220, 0x1e50f: 0x6c8e7620,
-	0x1e510: 0x6d04de20, 0x1e511: 0x6c6ca820, 0x1e512: 0x6c976e20, 0x1e513: 0x6cca2820,
-	0x1e514: 0x6d3be020, 0x1e515: 0x6ca46420, 0x1e516: 0x6cd44220, 0x1e517: 0x6c7c7220,
-	0x1e518: 0x6c4c9020, 0x1e519: 0x6cfd6620, 0x1e51a: 0x6c3b8020, 0x1e51b: 0x6c0f3c20,
-	0x1e51c: 0x6ca64420, 0x1e51d: 0x6c0a1420, 0x1e51e: 0x6c0f6e20, 0x1e51f: 0x6ce8fa20,
-	0x1e520: 0x6c4dbc20, 0x1e521: 0x6c3a2020, 0x1e522: 0x6c650e20, 0x1e523: 0x6c015420,
-	0x1e524: 0x6c00fa20, 0x1e525: 0x6c408020, 0x1e526: 0x6cfaf620, 0x1e527: 0x6d276c20,
-	0x1e528: 0x6d02f420, 0x1e529: 0x6c3bb020, 0x1e52a: 0x6cb1fe20, 0x1e52b: 0x6d02fa20,
-	0x1e52c: 0x6c969820, 0x1e52d: 0x6d236020, 0x1e52e: 0x6c3caa20, 0x1e52f: 0x6c4ed820,
-	0x1e530: 0x6c2b7420, 0x1e531: 0x6ceb3220, 0x1e532: 0x6d306820, 0x1e533: 0x6c1b4220,
-	0x1e534: 0x6d0a2420, 0x1e535: 0x6d3b1020, 0x1e536: 0x6d340c20, 0x1e537: 0x6cae2420,
-	0x1e538: 0x6d034620, 0x1e539: 0x6cc64a20, 0x1e53a: 0x6cc97a20, 0x1e53b: 0x6d27f820,
-	0x1e53c: 0x6cf1a420, 0x1e53d: 0x6d348a20, 0x1e53e: 0x6c28a020, 0x1e53f: 0x6c935c20,
-	// Block 0x795, offset 0x1e540
-	0x1e540: 0x6d1f5e20, 0x1e541: 0x6c0f3e20, 0x1e542: 0x6c060a20, 0x1e543: 0x6c748a20,
-	0x1e544: 0x6ceb4220, 0x1e545: 0x6d184020, 0x1e546: 0x6cc13020, 0x1e547: 0x6cb4c220,
-	0x1e548: 0x6cc13e20, 0x1e549: 0x6c6ee620, 0x1e54a: 0x6cb35c20, 0x1e54b: 0x6d2f7020,
-	0x1e54c: 0x6d251220, 0x1e54d: 0x6cadf020, 0x1e54e: 0x6d394c20, 0x1e54f: 0x6c727220,
-	0x1e550: 0x6d3b2620, 0x1e551: 0x6caa4420, 0x1e552: 0x6c70c820, 0x1e553: 0x6caf8820,
-	0x1e554: 0x6d29fa20, 0x1e555: 0x6c645020, 0x1e556: 0x6c8d4e20, 0x1e557: 0x6d31f620,
-	0x1e558: 0x6cdf3a20, 0x1e559: 0x6c404820, 0x1e55a: 0x6d103020, 0x1e55b: 0x6cd2d820,
-	0x1e55c: 0x6c0a4020, 0x1e55d: 0x6cebc220, 0x1e55e: 0x6ceb4620, 0x1e55f: 0x6cd8e420,
-	0x1e560: 0x6c8e9020, 0x1e561: 0x6c96de20, 0x1e562: 0x6cb13220, 0x1e563: 0x6ce24620,
-	0x1e564: 0x6d36f820, 0x1e565: 0x6cc6b820, 0x1e566: 0x6ce2b620, 0x1e567: 0x6c308a20,
-	0x1e568: 0x6d09ac20, 0x1e569: 0x6cc2a420, 0x1e56a: 0x6cd02220, 0x1e56b: 0x6c6ee820,
-	0x1e56c: 0x6c37a620, 0x1e56d: 0x6c4d7a20, 0x1e56e: 0x6c0f7020, 0x1e56f: 0x6d39ce20,
-	0x1e570: 0x6d1a0c20, 0x1e571: 0x6c962a20, 0x1e572: 0x6d397a20, 0x1e573: 0x6c28bc20,
-	0x1e574: 0x6d023820, 0x1e575: 0x6c8eb020, 0x1e576: 0x6c716a20, 0x1e577: 0x6cd97020,
-	0x1e578: 0x6cbd4620, 0x1e579: 0x6c987a20, 0x1e57a: 0x6c80ec20, 0x1e57b: 0x6c4f2420,
-	0x1e57c: 0x6ce90020, 0x1e57d: 0x6d07da20, 0x1e57e: 0x6cea1420, 0x1e57f: 0x6c75f220,
-	// Block 0x796, offset 0x1e580
-	0x1e580: 0x6c35be20, 0x1e581: 0x6c1a7a20, 0x1e582: 0x6d03ac20, 0x1e583: 0x6c005820,
-	0x1e584: 0x6c931420, 0x1e585: 0x6d3c6c20, 0x1e586: 0x6d38be20, 0x1e587: 0x6ccf8220,
-	0x1e588: 0x6cb13620, 0x1e589: 0x6c7d8c20, 0x1e58a: 0x6ce24c20, 0x1e58b: 0x6c7f2e20,
-	0x1e58c: 0x6d3fd220, 0x1e58d: 0x6c78e220, 0x1e58e: 0x6cb67c20, 0x1e58f: 0x6cb67e20,
-	0x1e590: 0x6d0ede20, 0x1e591: 0x6c3a2220, 0x1e592: 0x6ccacc20, 0x1e593: 0x6d0df020,
-	0x1e594: 0x6c445820, 0x1e595: 0x6d11e220, 0x1e596: 0x6cf54820, 0x1e597: 0x6cb14e20,
-	0x1e598: 0x6c237620, 0x1e599: 0x6cb15020, 0x1e59a: 0x6cb9da20, 0x1e59b: 0x6c3a2420,
-	0x1e59c: 0x6c5a2420, 0x1e59d: 0x6cb9d420, 0x1e59e: 0x6c5d6820, 0x1e59f: 0x6d21de20,
-	0x1e5a0: 0x6ce3a820, 0x1e5a1: 0x6cc32420, 0x1e5a2: 0x6cfa1620, 0x1e5a3: 0x6d3fd620,
-	0x1e5a4: 0x6c7cae20, 0x1e5a5: 0x6cc76c20, 0x1e5a6: 0x6cd84620, 0x1e5a7: 0x6c488020,
-	0x1e5a8: 0x6ceb5c20, 0x1e5a9: 0x6c4aa220, 0x1e5aa: 0x6cda0020, 0x1e5ab: 0x6cb94a20,
-	0x1e5ac: 0x6c1a5a20, 0x1e5ad: 0x6d374e20, 0x1e5ae: 0x6c8ed620, 0x1e5af: 0x6caef820,
-	0x1e5b0: 0x6ce2c820, 0x1e5b1: 0x6cf7be20, 0x1e5b2: 0x6c12b420, 0x1e5b3: 0x6c31ea20,
-	0x1e5b4: 0x6d0efe20, 0x1e5b5: 0x6d25cc20, 0x1e5b6: 0x6d407220, 0x1e5b7: 0x6ccad020,
-	0x1e5b8: 0x6ccde020, 0x1e5b9: 0x6c84b020, 0x1e5ba: 0x6d376220, 0x1e5bb: 0x6cd6b020,
-	0x1e5bc: 0x6c933820, 0x1e5bd: 0x6cf7c020, 0x1e5be: 0x6c956c20, 0x1e5bf: 0x6d2eec20,
-	// Block 0x797, offset 0x1e5c0
-	0x1e5c0: 0x6ca19020, 0x1e5c1: 0x6c030020, 0x1e5c2: 0x6c118420, 0x1e5c3: 0x6c0c5c20,
-	0x1e5c4: 0x6c237a20, 0x1e5c5: 0x6cc16220, 0x1e5c6: 0x6c0ac220, 0x1e5c7: 0x6d376420,
-	0x1e5c8: 0x6d248020, 0x1e5c9: 0x6d060c20, 0x1e5ca: 0x6c576c20, 0x1e5cb: 0x6c0e9e20,
-	0x1e5cc: 0x6cdb7020, 0x1e5cd: 0x6cff5820, 0x1e5ce: 0x6c8c0a20, 0x1e5cf: 0x6d2ea420,
-	0x1e5d0: 0x6c33c620, 0x1e5d1: 0x6c8eea20, 0x1e5d2: 0x6ceb6220, 0x1e5d3: 0x6c136a20,
-	0x1e5d4: 0x6c2d9e20, 0x1e5d5: 0x6c68b220, 0x1e5d6: 0x6ce60c20, 0x1e5d7: 0x6d0f1620,
-	0x1e5d8: 0x6c958620, 0x1e5d9: 0x6d2dca20, 0x1e5da: 0x6c6df820, 0x1e5db: 0x6d196a20,
-	0x1e5dc: 0x6d139e20, 0x1e5dd: 0x6ceadc20, 0x1e5de: 0x6cb20020, 0x1e5df: 0x6d397220,
-	0x1e5e0: 0x6d0f2620, 0x1e5e1: 0x6c902020, 0x1e5e2: 0x6c937220, 0x1e5e3: 0x6ce2e020,
-	0x1e5e4: 0x6cfda820, 0x1e5e5: 0x6c630220, 0x1e5e6: 0x6cd6ca20, 0x1e5e7: 0x6c719c20,
-	0x1e5e8: 0x6cf7d020, 0x1e5e9: 0x6c585020, 0x1e5ea: 0x6c84ee20, 0x1e5eb: 0x6c0c6820,
-	0x1e5ec: 0x6c968c20, 0x1e5ed: 0x6d22ba20, 0x1e5ee: 0x6ceae220, 0x1e5ef: 0x6d09da20,
-	0x1e5f0: 0x6c1afa20, 0x1e5f1: 0x6cc0d820, 0x1e5f2: 0x6cc63e20, 0x1e5f3: 0x6c0eb220,
-	0x1e5f4: 0x6c935020, 0x1e5f5: 0x6d29f820, 0x1e5f6: 0x6cd2ba20, 0x1e5f7: 0x6cd89620,
-	0x1e5f8: 0x6c3fbc20, 0x1e5f9: 0x6c706420, 0x1e5fa: 0x6d404820, 0x1e5fb: 0x6d3ab820,
-	0x1e5fc: 0x6cebc020, 0x1e5fd: 0x6caa4020, 0x1e5fe: 0x6c643820, 0x1e5ff: 0x6d16d420,
-	// Block 0x798, offset 0x1e600
-	0x1e600: 0x6c273c20, 0x1e601: 0x6cfe9020, 0x1e602: 0x6c96b820, 0x1e603: 0x6d19bc20,
-	0x1e604: 0x6c683a20, 0x1e605: 0x6c572e20, 0x1e606: 0x6c95ee20, 0x1e607: 0x6c4d5c20,
-	0x1e608: 0x6cb10820, 0x1e609: 0x6c0bf020, 0x1e60a: 0x6c83b420, 0x1e60b: 0x6c1a6c20,
-	0x1e60c: 0x6d0e5820, 0x1e60d: 0x6d036e20, 0x1e60e: 0x6cbd2820, 0x1e60f: 0x6c75aa20,
-	0x1e610: 0x6cb5e220, 0x1e611: 0x6cb5e420, 0x1e612: 0x6c78aa20, 0x1e613: 0x6d3c5c20,
-	0x1e614: 0x6d3f7e20, 0x1e615: 0x6cdaae20, 0x1e616: 0x6c116420, 0x1e617: 0x6cb14a20,
-	0x1e618: 0x6d364820, 0x1e619: 0x6c7c8220, 0x1e61a: 0x6ccab020, 0x1e61b: 0x6cf4f620,
-	0x1e61c: 0x6c02da20, 0x1e61d: 0x6c8e7820, 0x1e61e: 0x6cb8fa20, 0x1e61f: 0x6ccd9020,
-	0x1e620: 0x6c0c1220, 0x1e621: 0x6c955020, 0x1e622: 0x6c233620, 0x1e623: 0x6c15e220,
-	0x1e624: 0x6d395c20, 0x1e625: 0x6c62c420, 0x1e626: 0x6cd6ac20, 0x1e627: 0x6cfd9420,
-	0x1e628: 0x6c476e20, 0x1e629: 0x6cefb420, 0x1e62a: 0x6cefd220, 0x1e62b: 0x6cefd420,
-	0x1e62c: 0x6d214020, 0x1e62d: 0x6c422420, 0x1e62e: 0x6d17d620, 0x1e62f: 0x6c01ec20,
-	0x1e630: 0x6ce7f220, 0x1e631: 0x6c6bf020, 0x1e632: 0x6c065e20, 0x1e633: 0x6c074e20,
-	0x1e634: 0x6c220c20, 0x1e635: 0x6ce3c620, 0x1e636: 0x6c2c0020, 0x1e637: 0x6c7a5620,
-	0x1e638: 0x6c4d2820, 0x1e639: 0x6cbba020, 0x1e63a: 0x6c543020, 0x1e63b: 0x6c7af020,
-	0x1e63c: 0x6c443220, 0x1e63d: 0x6ce9ee20, 0x1e63e: 0x6c452020, 0x1e63f: 0x6cb12a20,
-	// Block 0x799, offset 0x1e640
-	0x1e640: 0x6c0a8220, 0x1e641: 0x6c783c20, 0x1e642: 0x6cb87a20, 0x1e643: 0x6d21ce20,
-	0x1e644: 0x6cdc1420, 0x1e645: 0x6c90d020, 0x1e646: 0x6c0fb220, 0x1e647: 0x6cff4620,
-	0x1e648: 0x6c055a20, 0x1e649: 0x6c0fb420, 0x1e64a: 0x6c221420, 0x1e64b: 0x6c7b5e20,
-	0x1e64c: 0x6c0d9220, 0x1e64d: 0x6ca09420, 0x1e64e: 0x6c8a5220, 0x1e64f: 0x6c90da20,
-	0x1e650: 0x6cff5220, 0x1e651: 0x6c31fe20, 0x1e652: 0x6d29f220, 0x1e653: 0x6cdc1a20,
-	0x1e654: 0x6ce3d020, 0x1e655: 0x6c0d9620, 0x1e656: 0x6c7b6020, 0x1e657: 0x6c91a820,
-	0x1e658: 0x6c42bc20, 0x1e659: 0x6c42c420, 0x1e65a: 0x6cbc5020, 0x1e65b: 0x6c779420,
-	0x1e65c: 0x6cbc2c20, 0x1e65d: 0x6c819420, 0x1e65e: 0x6ccb0c20, 0x1e65f: 0x6c0bf420,
-	0x1e660: 0x6c7d6e20, 0x1e661: 0x6c7d7620, 0x1e662: 0x6c2b7620, 0x1e663: 0x6c39da20,
-	0x1e664: 0x6d04ec20, 0x1e665: 0x6cc47e20, 0x1e666: 0x6c98f820, 0x1e667: 0x6c28a220,
-	0x1e668: 0x6c7d7e20, 0x1e669: 0x6c0d8620, 0x1e66a: 0x6c383e20, 0x1e66b: 0x6ce5a220,
-	0x1e66c: 0x6caf8a20, 0x1e66d: 0x6d3e9c20, 0x1e66e: 0x6c384220, 0x1e66f: 0x6cc48620,
-	0x1e670: 0x6ce41a20, 0x1e671: 0x6c066420, 0x1e672: 0x6c0a4220, 0x1e673: 0x6c990420,
-	0x1e674: 0x6c3eea20, 0x1e675: 0x6c376a20, 0x1e676: 0x6cc6ba20, 0x1e677: 0x6cc14420,
-	0x1e678: 0x6c45b620, 0x1e679: 0x6d04f820, 0x1e67a: 0x6c7e1620, 0x1e67b: 0x6c628e20,
-	0x1e67c: 0x6caed220, 0x1e67d: 0x6d3b6020, 0x1e67e: 0x6cce8e20, 0x1e67f: 0x6cdd4420,
-	// Block 0x79a, offset 0x1e680
-	0x1e680: 0x6ce43620, 0x1e681: 0x6c86ba20, 0x1e682: 0x6c0d8a20, 0x1e683: 0x6d3fd420,
-	0x1e684: 0x6c2baa20, 0x1e685: 0x6caee420, 0x1e686: 0x6cd94820, 0x1e687: 0x6d32f820,
-	0x1e688: 0x6cc32220, 0x1e689: 0x6d3fd820, 0x1e68a: 0x6cd76220, 0x1e68b: 0x6c660e20,
-	0x1e68c: 0x6ceb9620, 0x1e68d: 0x6c55f420, 0x1e68e: 0x6c7eae20, 0x1e68f: 0x6c6f8e20,
-	0x1e690: 0x6cb6a020, 0x1e691: 0x6c889820, 0x1e692: 0x6d320420, 0x1e693: 0x6c0d9420,
-	0x1e694: 0x6caefa20, 0x1e695: 0x6c96e620, 0x1e696: 0x6cca0e20, 0x1e697: 0x6c979e20,
-	0x1e698: 0x6c97a020, 0x1e699: 0x6ccbbc20, 0x1e69a: 0x6d061020, 0x1e69b: 0x6c8b7a20,
-	0x1e69c: 0x6cb95420, 0x1e69d: 0x6cb95220, 0x1e69e: 0x6ca46220, 0x1e69f: 0x6c58cc20,
-	0x1e6a0: 0x6c7e3220, 0x1e6a1: 0x6ca94220, 0x1e6a2: 0x6c0d9820, 0x1e6a3: 0x6c8b8a20,
-	0x1e6a4: 0x6cc4fe20, 0x1e6a5: 0x6c310e20, 0x1e6a6: 0x6c313420, 0x1e6a7: 0x6ca53620,
-	0x1e6a8: 0x6c53dc20, 0x1e6a9: 0x6cf90e20, 0x1e6aa: 0x6c314e20, 0x1e6ab: 0x6c4e7220,
-	0x1e6ac: 0x6c315420, 0x1e6ad: 0x6c315220, 0x1e6ae: 0x6c6f9620, 0x1e6af: 0x6c170e20,
-	0x1e6b0: 0x6d249c20, 0x1e6b1: 0x6d24a420, 0x1e6b2: 0x6c43e020, 0x1e6b3: 0x6d0ecc20,
-	0x1e6b4: 0x6c3f8e20, 0x1e6b5: 0x6cbdb820, 0x1e6b6: 0x6c4a9e20, 0x1e6b7: 0x6d3fdc20,
-	0x1e6b8: 0x6c8f5820, 0x1e6b9: 0x6c4aa620, 0x1e6ba: 0x6cce2a20, 0x1e6bb: 0x6d248220,
-	0x1e6bc: 0x6c4ae220, 0x1e6bd: 0x6c9a9620, 0x1e6be: 0x6c623220, 0x1e6bf: 0x6cb61220,
-	// Block 0x79b, offset 0x1e6c0
-	0x1e6c0: 0x6c40da20, 0x1e6c1: 0x6c7c9020, 0x1e6c2: 0x6c5cf620, 0x1e6c3: 0x6c038c20,
-	0x1e6c4: 0x6cb39c20, 0x1e6c5: 0x6c9aa620, 0x1e6c6: 0x6d05c820, 0x1e6c7: 0x6d0dd220,
-	0x1e6c8: 0x6cff1a20, 0x1e6c9: 0x6c89a220, 0x1e6ca: 0x6d242620, 0x1e6cb: 0x6ce9ca20,
-	0x1e6cc: 0x6cb53e20, 0x1e6cd: 0x6cee3e20, 0x1e6ce: 0x6c89a820, 0x1e6cf: 0x6cf0f020,
-	0x1e6d0: 0x6c41bc20, 0x1e6d1: 0x6c1aea20, 0x1e6d2: 0x6cb17420, 0x1e6d3: 0x6c0ab620,
-	0x1e6d4: 0x6ca09620, 0x1e6d5: 0x6c616220, 0x1e6d6: 0x6d060820, 0x1e6d7: 0x6c1e3e20,
-	0x1e6d8: 0x6d0e2620, 0x1e6d9: 0x6d2dcc20, 0x1e6da: 0x6d211220, 0x1e6db: 0x6c29c420,
-	0x1e6dc: 0x6cc57620, 0x1e6dd: 0x6c6b0220, 0x1e6de: 0x6c03f620, 0x1e6df: 0x6c537c20,
-	0x1e6e0: 0x6ceacc20, 0x1e6e1: 0x6c2e3620, 0x1e6e2: 0x6c614e20, 0x1e6e3: 0x6d073620,
-	0x1e6e4: 0x6c358020, 0x1e6e5: 0x6c367c20, 0x1e6e6: 0x6ccc1220, 0x1e6e7: 0x6c4f8620,
-	0x1e6e8: 0x6cea6620, 0x1e6e9: 0x6ca15e20, 0x1e6ea: 0x6c6c0020, 0x1e6eb: 0x6cd07220,
-	0x1e6ec: 0x6c04d620, 0x1e6ed: 0x6d25a420, 0x1e6ee: 0x6cb01420, 0x1e6ef: 0x6c91d420,
-	0x1e6f0: 0x6cf1aa20, 0x1e6f1: 0x6c55a620, 0x1e6f2: 0x6c915a20, 0x1e6f3: 0x6d289a20,
-	0x1e6f4: 0x6c39ae20, 0x1e6f5: 0x6c3b9020, 0x1e6f6: 0x6ca36820, 0x1e6f7: 0x6d1f6c20,
-	0x1e6f8: 0x6cb15220, 0x1e6f9: 0x6ca1b620, 0x1e6fa: 0x6c517e20, 0x1e6fb: 0x6cf9fa20,
-	0x1e6fc: 0x6cc14620, 0x1e6fd: 0x6c4e3820, 0x1e6fe: 0x6caf9420, 0x1e6ff: 0x6c8d6220,
-	// Block 0x79c, offset 0x1e700
-	0x1e700: 0x6ceb5220, 0x1e701: 0x6c0e9820, 0x1e702: 0x6cc0a020, 0x1e703: 0x6cb2d220,
-	0x1e704: 0x6c3f0620, 0x1e705: 0x6c0a6420, 0x1e706: 0x6c22a420, 0x1e707: 0x6cf0e020,
-	0x1e708: 0x6c70ce20, 0x1e709: 0x6c2de220, 0x1e70a: 0x6c03c620, 0x1e70b: 0x6d1f7a20,
-	0x1e70c: 0x6c4bf020, 0x1e70d: 0x6caf9620, 0x1e70e: 0x6ca70620, 0x1e70f: 0x6d03a020,
-	0x1e710: 0x6cdf4020, 0x1e711: 0x6c066a20, 0x1e712: 0x6c406020, 0x1e713: 0x6d2c9820,
-	0x1e714: 0x6c728620, 0x1e715: 0x6c473620, 0x1e716: 0x6cd41e20, 0x1e717: 0x6c309a20,
-	0x1e718: 0x6c27b020, 0x1e719: 0x6cdeba20, 0x1e71a: 0x6c6b4c20, 0x1e71b: 0x6cd50e20,
-	0x1e71c: 0x6c548220, 0x1e71d: 0x6cfe0420, 0x1e71e: 0x6c376e20, 0x1e71f: 0x6c01d620,
-	0x1e720: 0x6cef4820, 0x1e721: 0x6d2fe620, 0x1e722: 0x6d39d020, 0x1e723: 0x6d1b8220,
-	0x1e724: 0x6c8b4020, 0x1e725: 0x6c962e20, 0x1e726: 0x6ce79420, 0x1e727: 0x6ce3c820,
-	0x1e728: 0x6d18e220, 0x1e729: 0x6c0e3020, 0x1e72a: 0x6cf03420, 0x1e72b: 0x6c688a20,
-	0x1e72c: 0x6c7a6820, 0x1e72d: 0x6c4a9220, 0x1e72e: 0x6cfae620, 0x1e72f: 0x6c444820,
-	0x1e730: 0x6c5b4420, 0x1e731: 0x6c81fc20, 0x1e732: 0x6c40b820, 0x1e733: 0x6c77ca20,
-	0x1e734: 0x6d055e20, 0x1e735: 0x6c346820, 0x1e736: 0x6c758820, 0x1e737: 0x6ce3a020,
-	0x1e738: 0x6c9e4620, 0x1e739: 0x6cce9220, 0x1e73a: 0x6d2c9a20, 0x1e73b: 0x6cdd4620,
-	0x1e73c: 0x6cbd4820, 0x1e73d: 0x6d21d020, 0x1e73e: 0x6ca57820, 0x1e73f: 0x6d30b420,
-	// Block 0x79d, offset 0x1e740
-	0x1e740: 0x6c4bf620, 0x1e741: 0x6c452420, 0x1e742: 0x6cdb7c20, 0x1e743: 0x6cf40220,
-	0x1e744: 0x6cc0a620, 0x1e745: 0x6ccd1820, 0x1e746: 0x6cb42020, 0x1e747: 0x6c596220,
-	0x1e748: 0x6ce5a820, 0x1e749: 0x6c854020, 0x1e74a: 0x6ccc2420, 0x1e74b: 0x6ccc2620,
-	0x1e74c: 0x6c77d020, 0x1e74d: 0x6c9b7e20, 0x1e74e: 0x6c1a8e20, 0x1e74f: 0x6c87e620,
-	0x1e750: 0x6d409820, 0x1e751: 0x6cf94c20, 0x1e752: 0x6d1e6420, 0x1e753: 0x6ca61020,
-	0x1e754: 0x6d3eba20, 0x1e755: 0x6cb68820, 0x1e756: 0x6d330c20, 0x1e757: 0x6cfe0620,
-	0x1e758: 0x6ca57a20, 0x1e759: 0x6c216e20, 0x1e75a: 0x6c62c620, 0x1e75b: 0x6c2dec20,
-	0x1e75c: 0x6cbd0020, 0x1e75d: 0x6c482c20, 0x1e75e: 0x6d38f220, 0x1e75f: 0x6c302420,
-	0x1e760: 0x6c7f3020, 0x1e761: 0x6c3aec20, 0x1e762: 0x6ca61420, 0x1e763: 0x6d192220,
-	0x1e764: 0x6c7d8e20, 0x1e765: 0x6c932620, 0x1e766: 0x6c703820, 0x1e767: 0x6c168620,
-	0x1e768: 0x6c6de620, 0x1e769: 0x6c951220, 0x1e76a: 0x6c8d8a20, 0x1e76b: 0x6d406e20,
-	0x1e76c: 0x6c849420, 0x1e76d: 0x6c9bf420, 0x1e76e: 0x6d3fde20, 0x1e76f: 0x6d375220,
-	0x1e770: 0x6ca70c20, 0x1e771: 0x6c570420, 0x1e772: 0x6d24c420, 0x1e773: 0x6c2cb620,
-	0x1e774: 0x6cd20c20, 0x1e775: 0x6cd02c20, 0x1e776: 0x6c5d1620, 0x1e777: 0x6ce3ac20,
-	0x1e778: 0x6c544020, 0x1e779: 0x6d03b220, 0x1e77a: 0x6d39e420, 0x1e77b: 0x6c7ebc20,
-	0x1e77c: 0x6d3fe020, 0x1e77d: 0x6d2b6820, 0x1e77e: 0x6c0b1820, 0x1e77f: 0x6c0b1a20,
-	// Block 0x79e, offset 0x1e780
-	0x1e780: 0x6c596420, 0x1e781: 0x6cc32a20, 0x1e782: 0x6d2b7020, 0x1e783: 0x6ceeca20,
-	0x1e784: 0x6ceecc20, 0x1e785: 0x6d21e620, 0x1e786: 0x6c212420, 0x1e787: 0x6cc77020,
-	0x1e788: 0x6c2f0a20, 0x1e789: 0x6c5a2e20, 0x1e78a: 0x6c893220, 0x1e78b: 0x6d0e0620,
-	0x1e78c: 0x6cbfda20, 0x1e78d: 0x6cbfdc20, 0x1e78e: 0x6c661020, 0x1e78f: 0x6c089c20,
-	0x1e790: 0x6c36dc20, 0x1e791: 0x6d0ff220, 0x1e792: 0x6c409020, 0x1e793: 0x6cc9d820,
-	0x1e794: 0x6c41fa20, 0x1e795: 0x6cf98220, 0x1e796: 0x6ceb9820, 0x1e797: 0x6c55fa20,
-	0x1e798: 0x6cd42420, 0x1e799: 0x6cc93420, 0x1e79a: 0x6d08d620, 0x1e79b: 0x6cf17220,
-	0x1e79c: 0x6cba8820, 0x1e79d: 0x6c508020, 0x1e79e: 0x6cf39020, 0x1e79f: 0x6c39b420,
-	0x1e7a0: 0x6ccad620, 0x1e7a1: 0x6c8ee420, 0x1e7a2: 0x6c96aa20, 0x1e7a3: 0x6cd29620,
-	0x1e7a4: 0x6cd21420, 0x1e7a5: 0x6c493a20, 0x1e7a6: 0x6d3ec220, 0x1e7a7: 0x6ce2d020,
-	0x1e7a8: 0x6cde2620, 0x1e7a9: 0x6d117a20, 0x1e7aa: 0x6c35a820, 0x1e7ab: 0x6d1e0820,
-	0x1e7ac: 0x6cb9e420, 0x1e7ad: 0x6cb6a420, 0x1e7ae: 0x6cf17420, 0x1e7af: 0x6cc93820,
-	0x1e7b0: 0x6cd0ce20, 0x1e7b1: 0x6c889e20, 0x1e7b2: 0x6c028e20, 0x1e7b3: 0x6c823420,
-	0x1e7b4: 0x6c5b0c20, 0x1e7b5: 0x6c9fdc20, 0x1e7b6: 0x6c62e620, 0x1e7b7: 0x6ce5b620,
-	0x1e7b8: 0x6cc16820, 0x1e7b9: 0x6c654a20, 0x1e7ba: 0x6cd03020, 0x1e7bb: 0x6c97a820,
-	0x1e7bc: 0x6cf7c620, 0x1e7bd: 0x6cc0aa20, 0x1e7be: 0x6c0c9c20, 0x1e7bf: 0x6c62e820,
-	// Block 0x79f, offset 0x1e7c0
-	0x1e7c0: 0x6c62d820, 0x1e7c1: 0x6d3a3c20, 0x1e7c2: 0x6c679a20, 0x1e7c3: 0x6d051420,
-	0x1e7c4: 0x6d3b9c20, 0x1e7c5: 0x6d1de620, 0x1e7c6: 0x6d2eee20, 0x1e7c7: 0x6c776420,
-	0x1e7c8: 0x6d093620, 0x1e7c9: 0x6c0cce20, 0x1e7ca: 0x6d248a20, 0x1e7cb: 0x6cc16a20,
-	0x1e7cc: 0x6cfe6e20, 0x1e7cd: 0x6c0ea220, 0x1e7ce: 0x6c697820, 0x1e7cf: 0x6d0a5a20,
-	0x1e7d0: 0x6cdb7220, 0x1e7d1: 0x6c5a3a20, 0x1e7d2: 0x6d420020, 0x1e7d3: 0x6ccdee20,
-	0x1e7d4: 0x6ccdf020, 0x1e7d5: 0x6c387620, 0x1e7d6: 0x6c4bae20, 0x1e7d7: 0x6c8c0c20,
-	0x1e7d8: 0x6d0a5c20, 0x1e7d9: 0x6c9e8620, 0x1e7da: 0x6cf82c20, 0x1e7db: 0x6d2bbe20,
-	0x1e7dc: 0x6cfe7820, 0x1e7dd: 0x6c3c0620, 0x1e7de: 0x6c494620, 0x1e7df: 0x6c548a20,
-	0x1e7e0: 0x6c7b4e20, 0x1e7e1: 0x6d2b7220, 0x1e7e2: 0x6ccada20, 0x1e7e3: 0x6d2dd020,
-	0x1e7e4: 0x6c420420, 0x1e7e5: 0x6c4bb220, 0x1e7e6: 0x6d1d6020, 0x1e7e7: 0x6c855220,
-	0x1e7e8: 0x6c16da20, 0x1e7e9: 0x6c836e20, 0x1e7ea: 0x6cd63a20, 0x1e7eb: 0x6c011020,
-	0x1e7ec: 0x6cc7f220, 0x1e7ed: 0x6c62fe20, 0x1e7ee: 0x6d076e20, 0x1e7ef: 0x6c56f220,
-	0x1e7f0: 0x6cd63c20, 0x1e7f1: 0x6c87bc20, 0x1e7f2: 0x6c8b8e20, 0x1e7f3: 0x6c87c620,
-	0x1e7f4: 0x6c9f2020, 0x1e7f5: 0x6d31a620, 0x1e7f6: 0x6cfe1220, 0x1e7f7: 0x6c370220,
-	0x1e7f8: 0x6c91ac20, 0x1e7f9: 0x6c49ca20, 0x1e7fa: 0x6c84f020, 0x1e7fb: 0x6cfb1c20,
-	0x1e7fc: 0x6d20ce20, 0x1e7fd: 0x6c29c220, 0x1e7fe: 0x6c613a20, 0x1e7ff: 0x6d1f4220,
-	// Block 0x7a0, offset 0x1e800
-	0x1e800: 0x6cea5c20, 0x1e801: 0x6c91c020, 0x1e802: 0x6c39ac20, 0x1e803: 0x6c035420,
-	0x1e804: 0x6c515220, 0x1e805: 0x6c03be20, 0x1e806: 0x6cb2ba20, 0x1e807: 0x6ca70020,
-	0x1e808: 0x6c915620, 0x1e809: 0x6d1f5220, 0x1e80a: 0x6d2c8020, 0x1e80b: 0x6c401420,
-	0x1e80c: 0x6c03c020, 0x1e80d: 0x6c065620, 0x1e80e: 0x6c547620, 0x1e80f: 0x6cb00220,
-	0x1e810: 0x6cdf2c20, 0x1e811: 0x6c4a8220, 0x1e812: 0x6c6b1620, 0x1e813: 0x6c77b420,
-	0x1e814: 0x6ceffa20, 0x1e815: 0x6c376420, 0x1e816: 0x6ce77620, 0x1e817: 0x6d2b6220,
-	0x1e818: 0x6c547c20, 0x1e819: 0x6c7b2e20, 0x1e81a: 0x6c625a20, 0x1e81b: 0x6c686220,
-	0x1e81c: 0x6cfac620, 0x1e81d: 0x6d2c8820, 0x1e81e: 0x6cfdfa20, 0x1e81f: 0x6d0a2c20,
-	0x1e820: 0x6c451e20, 0x1e821: 0x6c843820, 0x1e822: 0x6c884620, 0x1e823: 0x6c64ea20,
-	0x1e824: 0x6c852c20, 0x1e825: 0x6cd28820, 0x1e826: 0x6ce5a420, 0x1e827: 0x6c4be820,
-	0x1e828: 0x6ccc1620, 0x1e829: 0x6c595020, 0x1e82a: 0x6c758020, 0x1e82b: 0x6c626e20,
-	0x1e82c: 0x6d1e5a20, 0x1e82d: 0x6cbe5820, 0x1e82e: 0x6c8d6420, 0x1e82f: 0x6cb65820,
-	0x1e830: 0x6d406820, 0x1e831: 0x6c3a1c20, 0x1e832: 0x6c7d8620, 0x1e833: 0x6c168020,
-	0x1e834: 0x6c482a20, 0x1e835: 0x6ca60a20, 0x1e836: 0x6ca70820, 0x1e837: 0x6c2de420,
-	0x1e838: 0x6c6dd420, 0x1e839: 0x6cd02420, 0x1e83a: 0x6cd20020, 0x1e83b: 0x6d3e9e20,
-	0x1e83c: 0x6c3bf820, 0x1e83d: 0x6c2ef620, 0x1e83e: 0x6c089420, 0x1e83f: 0x6c16ce20,
-	// Block 0x7a1, offset 0x1e840
-	0x1e840: 0x6ce39020, 0x1e841: 0x6cf16c20, 0x1e842: 0x6ceec420, 0x1e843: 0x6cc9d220,
-	0x1e844: 0x6c36c020, 0x1e845: 0x6cbfd220, 0x1e846: 0x6c407020, 0x1e847: 0x6c5a1620,
-	0x1e848: 0x6cc31e20, 0x1e849: 0x6c678a20, 0x1e84a: 0x6c0b1220, 0x1e84b: 0x6ccac820,
-	0x1e84c: 0x6c028020, 0x1e84d: 0x6cb68020, 0x1e84e: 0x6cde1e20, 0x1e84f: 0x6c493220,
-	0x1e850: 0x6d116620, 0x1e851: 0x6cad1220, 0x1e852: 0x6c651e20, 0x1e853: 0x6c823020,
-	0x1e854: 0x6c0c9a20, 0x1e855: 0x6d093420, 0x1e856: 0x6c0cc820, 0x1e857: 0x6c979820,
-	0x1e858: 0x6c9fd820, 0x1e859: 0x6d1dd220, 0x1e85a: 0x6cf10420, 0x1e85b: 0x6cf7b620,
-	0x1e85c: 0x6c4ba020, 0x1e85d: 0x6ccde220, 0x1e85e: 0x6c8c0620, 0x1e85f: 0x6d41fe20,
-	0x1e860: 0x6c56e420, 0x1e861: 0x6c41fe20, 0x1e862: 0x6c854a20, 0x1e863: 0x6d2dc820,
-	0x1e864: 0x6c496e20, 0x1e865: 0x6ca79a20, 0x1e866: 0x6d15f420, 0x1e867: 0x6c3ebc20,
-	0x1e868: 0x6c864220, 0x1e869: 0x6c6f7e20, 0x1e86a: 0x6c102220, 0x1e86b: 0x6d0e8e20,
-	0x1e86c: 0x6c3f5020, 0x1e86d: 0x6c2dd020, 0x1e86e: 0x6c5efc20, 0x1e86f: 0x6c3cea20,
-	0x1e870: 0x6cc83620, 0x1e871: 0x6c41ac20, 0x1e872: 0x6cd1e820, 0x1e873: 0x6c3cee20,
-	0x1e874: 0x6ca01420, 0x1e875: 0x6c060c20, 0x1e876: 0x6d250820, 0x1e877: 0x6d341420,
-	0x1e878: 0x6c56c420, 0x1e879: 0x6cbd9a20, 0x1e87a: 0x6c3d9820, 0x1e87b: 0x6c049620,
-	0x1e87c: 0x6cf1ac20, 0x1e87d: 0x6c64ec20, 0x1e87e: 0x6cd1f620, 0x1e87f: 0x6d23e420,
-	// Block 0x7a2, offset 0x1e880
-	0x1e880: 0x6c3d3220, 0x1e881: 0x6d10b620, 0x1e882: 0x6c74b020, 0x1e883: 0x6c74b220,
-	0x1e884: 0x6cb06c20, 0x1e885: 0x6c583020, 0x1e886: 0x6d326820, 0x1e887: 0x6c061220,
-	0x1e888: 0x6d0eb420, 0x1e889: 0x6d0af620, 0x1e88a: 0x6d336420, 0x1e88b: 0x6c399c20,
-	0x1e88c: 0x6c3cf020, 0x1e88d: 0x6cf1ae20, 0x1e88e: 0x6cab5220, 0x1e88f: 0x6c279220,
-	0x1e890: 0x6c43ac20, 0x1e891: 0x6cc7ca20, 0x1e892: 0x6c8d6620, 0x1e893: 0x6c9eea20,
-	0x1e894: 0x6c3eec20, 0x1e895: 0x6ceb5420, 0x1e896: 0x6c9f7c20, 0x1e897: 0x6c869620,
-	0x1e898: 0x6c0b5020, 0x1e899: 0x6d36fc20, 0x1e89a: 0x6c43ae20, 0x1e89b: 0x6d251420,
-	0x1e89c: 0x6c227620, 0x1e89d: 0x6cc1cc20, 0x1e89e: 0x6cff1c20, 0x1e89f: 0x6c1adc20,
-	0x1e8a0: 0x6c28c020, 0x1e8a1: 0x6c70d020, 0x1e8a2: 0x6d11d620, 0x1e8a3: 0x6c473820,
-	0x1e8a4: 0x6c301820, 0x1e8a5: 0x6d240020, 0x1e8a6: 0x6d0f6e20, 0x1e8a7: 0x6cc73a20,
-	0x1e8a8: 0x6d0afe20, 0x1e8a9: 0x6ce60420, 0x1e8aa: 0x6d240220, 0x1e8ab: 0x6ce54420,
-	0x1e8ac: 0x6d1bf820, 0x1e8ad: 0x6c331620, 0x1e8ae: 0x6cf38620, 0x1e8af: 0x6c377020,
-	0x1e8b0: 0x6c487c20, 0x1e8b1: 0x6c00d420, 0x1e8b2: 0x6d341a20, 0x1e8b3: 0x6d0ed620,
-	0x1e8b4: 0x6c527a20, 0x1e8b5: 0x6cff2c20, 0x1e8b6: 0x6c63f020, 0x1e8b7: 0x6c8b4220,
-	0x1e8b8: 0x6d39d220, 0x1e8b9: 0x6d0fe220, 0x1e8ba: 0x6ce39220, 0x1e8bb: 0x6c539220,
-	0x1e8bc: 0x6c963020, 0x1e8bd: 0x6cc7da20, 0x1e8be: 0x6ca1f220, 0x1e8bf: 0x6c43b820,
-	// Block 0x7a3, offset 0x1e8c0
-	0x1e8c0: 0x6cc57e20, 0x1e8c1: 0x6c688c20, 0x1e8c2: 0x6d050220, 0x1e8c3: 0x6d38ba20,
-	0x1e8c4: 0x6d341c20, 0x1e8c5: 0x6c963220, 0x1e8c6: 0x6c528c20, 0x1e8c7: 0x6ca77620,
-	0x1e8c8: 0x6c370820, 0x1e8c9: 0x6c944620, 0x1e8ca: 0x6c63f220, 0x1e8cb: 0x6c62b420,
-	0x1e8cc: 0x6ce90420, 0x1e8cd: 0x6c583820, 0x1e8ce: 0x6ceb9220, 0x1e8cf: 0x6c104a20,
-	0x1e8d0: 0x6cf40420, 0x1e8d1: 0x6c730820, 0x1e8d2: 0x6d244820, 0x1e8d3: 0x6c0f9c20,
-	0x1e8d4: 0x6c75f620, 0x1e8d5: 0x6d0aae20, 0x1e8d6: 0x6c089220, 0x1e8d7: 0x6cf71020,
-	0x1e8d8: 0x6c75f820, 0x1e8d9: 0x6c717620, 0x1e8da: 0x6ce87e20, 0x1e8db: 0x6c6de420,
-	0x1e8dc: 0x6ce3a220, 0x1e8dd: 0x6c359020, 0x1e8de: 0x6c359220, 0x1e8df: 0x6c7bcc20,
-	0x1e8e0: 0x6c55e820, 0x1e8e1: 0x6cf48a20, 0x1e8e2: 0x6cd02a20, 0x1e8e3: 0x6c7f6620,
-	0x1e8e4: 0x6c69ee20, 0x1e8e5: 0x6cacca20, 0x1e8e6: 0x6c932820, 0x1e8e7: 0x6cb02c20,
-	0x1e8e8: 0x6cd51a20, 0x1e8e9: 0x6c3f2220, 0x1e8ea: 0x6c015e20, 0x1e8eb: 0x6d3dd020,
-	0x1e8ec: 0x6caef420, 0x1e8ed: 0x6cbdba20, 0x1e8ee: 0x6cb94220, 0x1e8ef: 0x6c06be20,
-	0x1e8f0: 0x6c2dee20, 0x1e8f1: 0x6c932a20, 0x1e8f2: 0x6cc42c20, 0x1e8f3: 0x6c652a20,
-	0x1e8f4: 0x6c718420, 0x1e8f5: 0x6ce92a20, 0x1e8f6: 0x6d0b0420, 0x1e8f7: 0x6d252020,
-	0x1e8f8: 0x6cb68e20, 0x1e8f9: 0x6c849620, 0x1e8fa: 0x6d138620, 0x1e8fb: 0x6d3c7020,
-	0x1e8fc: 0x6c798e20, 0x1e8fd: 0x6c352020, 0x1e8fe: 0x6c7d9020, 0x1e8ff: 0x6cd11c20,
-	// Block 0x7a4, offset 0x1e900
-	0x1e900: 0x6cb69020, 0x1e901: 0x6c6de820, 0x1e902: 0x6d192420, 0x1e903: 0x6d192620,
-	0x1e904: 0x6c6dea20, 0x1e905: 0x6d3ebc20, 0x1e906: 0x6c7f3220, 0x1e907: 0x6c302620,
-	0x1e908: 0x6cb55020, 0x1e909: 0x6c219420, 0x1e90a: 0x6c44e620, 0x1e90b: 0x6c70e020,
-	0x1e90c: 0x6c74f620, 0x1e90d: 0x6d199620, 0x1e90e: 0x6d422420, 0x1e90f: 0x6c5f8a20,
-	0x1e910: 0x6cd62c20, 0x1e911: 0x6d1c1420, 0x1e912: 0x6c1c9220, 0x1e913: 0x6c9e8220,
-	0x1e914: 0x6cc77220, 0x1e915: 0x6c016220, 0x1e916: 0x6cbfe020, 0x1e917: 0x6ce3ae20,
-	0x1e918: 0x6c55fc20, 0x1e919: 0x6ce3b020, 0x1e91a: 0x6c36e020, 0x1e91b: 0x6c6a4420,
-	0x1e91c: 0x6c991220, 0x1e91d: 0x6c3f2620, 0x1e91e: 0x6c212820, 0x1e91f: 0x6ce90820,
-	0x1e920: 0x6d0e0820, 0x1e921: 0x6c51a020, 0x1e922: 0x6d25d020, 0x1e923: 0x6cb10620,
-	0x1e924: 0x6c7d9620, 0x1e925: 0x6c9a3e20, 0x1e926: 0x6c55fe20, 0x1e927: 0x6d1c1620,
-	0x1e928: 0x6c204820, 0x1e929: 0x6cf54c20, 0x1e92a: 0x6c718a20, 0x1e92b: 0x6c309c20,
-	0x1e92c: 0x6c124420, 0x1e92d: 0x6c39e020, 0x1e92e: 0x6c520a20, 0x1e92f: 0x6d1c3620,
-	0x1e930: 0x6d25d220, 0x1e931: 0x6cfb0620, 0x1e932: 0x6cf24620, 0x1e933: 0x6cd21620,
-	0x1e934: 0x6c520c20, 0x1e935: 0x6c1eca20, 0x1e936: 0x6ce16820, 0x1e937: 0x6cfa1a20,
-	0x1e938: 0x6cc93a20, 0x1e939: 0x6c8ee620, 0x1e93a: 0x6c60fe20, 0x1e93b: 0x6c474c20,
-	0x1e93c: 0x6c654620, 0x1e93d: 0x6cdd0420, 0x1e93e: 0x6c4f3a20, 0x1e93f: 0x6c228020,
-	// Block 0x7a5, offset 0x1e940
-	0x1e940: 0x6c228220, 0x1e941: 0x6d195420, 0x1e942: 0x6d124820, 0x1e943: 0x6d0f0220,
-	0x1e944: 0x6c5f9a20, 0x1e945: 0x6c875c20, 0x1e946: 0x6ce4d220, 0x1e947: 0x6c7a0e20,
-	0x1e948: 0x6ce30620, 0x1e949: 0x6ce30820, 0x1e94a: 0x6d195620, 0x1e94b: 0x6ce90c20,
-	0x1e94c: 0x6c96ac20, 0x1e94d: 0x6c68ae20, 0x1e94e: 0x6c42f420, 0x1e94f: 0x6ce4d420,
-	0x1e950: 0x6c18fe20, 0x1e951: 0x6c610020, 0x1e952: 0x6ce97620, 0x1e953: 0x6d311020,
-	0x1e954: 0x6c029020, 0x1e955: 0x6d11e620, 0x1e956: 0x6d143c20, 0x1e957: 0x6cab6620,
-	0x1e958: 0x6c1c9820, 0x1e959: 0x6d376e20, 0x1e95a: 0x6c8f5c20, 0x1e95b: 0x6d1de820,
-	0x1e95c: 0x6c937020, 0x1e95d: 0x6c0aca20, 0x1e95e: 0x6cd6b820, 0x1e95f: 0x6d3de420,
-	0x1e960: 0x6d21fa20, 0x1e961: 0x6cf41020, 0x1e962: 0x6c752620, 0x1e963: 0x6d1ab620,
-	0x1e964: 0x6ce3b820, 0x1e965: 0x6cd85620, 0x1e966: 0x6c68b420, 0x1e967: 0x6d196c20,
-	0x1e968: 0x6c577020, 0x1e969: 0x6c0ad020, 0x1e96a: 0x6d1c4620, 0x1e96b: 0x6cdb7420,
-	0x1e96c: 0x6c5a3c20, 0x1e96d: 0x6c38f820, 0x1e96e: 0x6c68b620, 0x1e96f: 0x6c8a5a20,
-	0x1e970: 0x6d0f1820, 0x1e971: 0x6c42f820, 0x1e972: 0x6c704020, 0x1e973: 0x6cfbda20,
-	0x1e974: 0x6cfbdc20, 0x1e975: 0x6ce90e20, 0x1e976: 0x6c971c20, 0x1e977: 0x6d420220,
-	0x1e978: 0x6d248e20, 0x1e979: 0x6d1c4a20, 0x1e97a: 0x6c934220, 0x1e97b: 0x6ce97820,
-	0x1e97c: 0x6cfbde20, 0x1e97d: 0x6d092e20, 0x1e97e: 0x6d197820, 0x1e97f: 0x6cb0e020,
-	// Block 0x7a6, offset 0x1e980
-	0x1e980: 0x6c1efc20, 0x1e981: 0x6c958c20, 0x1e982: 0x6cf75c20, 0x1e983: 0x6d15a220,
-	0x1e984: 0x6c5fb220, 0x1e985: 0x6d2b2c20, 0x1e986: 0x6d220820, 0x1e987: 0x6d2dd220,
-	0x1e988: 0x6d13a420, 0x1e989: 0x6d0ffa20, 0x1e98a: 0x6cb0e220, 0x1e98b: 0x6ca94420,
-	0x1e98c: 0x6c56f420, 0x1e98d: 0x6c9cd220, 0x1e98e: 0x6d1c5020, 0x1e98f: 0x6c9bc420,
-	0x1e990: 0x6c2bc220, 0x1e991: 0x6d273620, 0x1e992: 0x6d249020, 0x1e993: 0x6c831a20,
-	0x1e994: 0x6c068620, 0x1e995: 0x6c91ae20, 0x1e996: 0x6c521220, 0x1e997: 0x6c902220,
-	0x1e998: 0x6cd6cc20, 0x1e999: 0x6d274020, 0x1e99a: 0x6d1c5220, 0x1e99b: 0x6c49cc20,
-	0x1e99c: 0x6cc23820, 0x1e99d: 0x6c84f220, 0x1e99e: 0x6c948820, 0x1e99f: 0x6ca78a20,
-	0x1e9a0: 0x6c6f5a20, 0x1e9a1: 0x6c5e8820, 0x1e9a2: 0x6d24ca20, 0x1e9a3: 0x6c9fea20,
-	0x1e9a4: 0x6cd1a020, 0x1e9a5: 0x6cab3620, 0x1e9a6: 0x6d0ada20, 0x1e9a7: 0x6c122620,
-	0x1e9a8: 0x6c05ec20, 0x1e9a9: 0x6d322a20, 0x1e9aa: 0x6c470420, 0x1e9ab: 0x6c2fec20,
-	0x1e9ac: 0x6c914a20, 0x1e9ad: 0x6d0ae420, 0x1e9ae: 0x6cfeae20, 0x1e9af: 0x6d0f5820,
-	0x1e9b0: 0x6c8cda20, 0x1e9b1: 0x6c1aa620, 0x1e9b2: 0x6cc18220, 0x1e9b3: 0x6d24d820,
-	0x1e9b4: 0x6d090420, 0x1e9b5: 0x6ceb1220, 0x1e9b6: 0x6cd7de20, 0x1e9b7: 0x6d361220,
-	0x1e9b8: 0x6c375620, 0x1e9b9: 0x6c485820, 0x1e9ba: 0x6d04d220, 0x1e9bb: 0x6c526620,
-	0x1e9bc: 0x6d388020, 0x1e9bd: 0x6c438a20, 0x1e9be: 0x6c943820, 0x1e9bf: 0x6c534820,
-	// Block 0x7a7, offset 0x1e9c0
-	0x1e9c0: 0x6cf3ce20, 0x1e9c1: 0x6c0f0c20, 0x1e9c2: 0x6c83dc20, 0x1e9c3: 0x6c72f820,
-	0x1e9c4: 0x6c479a20, 0x1e9c5: 0x6c357220, 0x1e9c6: 0x6d236220, 0x1e9c7: 0x6cfb6820,
-	0x1e9c8: 0x6ce33a20, 0x1e9c9: 0x6cf45420, 0x1e9ca: 0x6cc42a20, 0x1e9cb: 0x6c9e7a20,
-	0x1e9cc: 0x6c013e20, 0x1e9cd: 0x6c7d7820, 0x1e9ce: 0x6c06b420, 0x1e9cf: 0x6caeb020,
-	0x1e9d0: 0x6cb8fc20, 0x1e9d1: 0x6c219220, 0x1e9d2: 0x6c44d620, 0x1e9d3: 0x6d250220,
-	0x1e9d4: 0x6cdadc20, 0x1e9d5: 0x6c558e20, 0x1e9d6: 0x6c516020, 0x1e9d7: 0x6c367e20,
-	0x1e9d8: 0x6c47bc20, 0x1e9d9: 0x6cbfba20, 0x1e9da: 0x6c225a20, 0x1e9db: 0x6c9a1e20,
-	0x1e9dc: 0x6cf51220, 0x1e9dd: 0x6d187820, 0x1e9de: 0x6d122020, 0x1e9df: 0x6cf23820,
-	0x1e9e0: 0x6c8e9420, 0x1e9e1: 0x6c60a020, 0x1e9e2: 0x6d187a20, 0x1e9e3: 0x6c64ee20,
-	0x1e9e4: 0x6c51e220, 0x1e9e5: 0x6d141c20, 0x1e9e6: 0x6d1bfa20, 0x1e9e7: 0x6d310420,
-	0x1e9e8: 0x6c8f4420, 0x1e9e9: 0x6c8a2e20, 0x1e9ea: 0x6c689220, 0x1e9eb: 0x6c703020,
-	0x1e9ec: 0x6d242a20, 0x1e9ed: 0x6c931820, 0x1e9ee: 0x6c58b420, 0x1e9ef: 0x6d2db020,
-	0x1e9f0: 0x6d1c0c20, 0x1e9f1: 0x6c56da20, 0x1e9f2: 0x6c9b8020, 0x1e9f3: 0x6c49c020,
-	0x1e9f4: 0x6cd6ba20, 0x1e9f5: 0x6c91bc20, 0x1e9f6: 0x6c6c5820, 0x1e9f7: 0x6c8d6820,
-	0x1e9f8: 0x6c661220, 0x1e9f9: 0x6cfbd020, 0x1e9fa: 0x6c25fe20, 0x1e9fb: 0x6c662620,
-	0x1e9fc: 0x6c664020, 0x1e9fd: 0x6d0d1a20, 0x1e9fe: 0x6c25f420, 0x1e9ff: 0x6c924c20,
-	// Block 0x7a8, offset 0x1ea00
-	0x1ea00: 0x6d1eaa20, 0x1ea01: 0x6c241620, 0x1ea02: 0x6c614c20, 0x1ea03: 0x6cad6820,
-	0x1ea04: 0x6c241820, 0x1ea05: 0x6cad6c20, 0x1ea06: 0x6d3b3220, 0x1ea07: 0x6c758220,
-	0x1ea08: 0x6d3a8220, 0x1ea09: 0x6c651020, 0x1ea0a: 0x6c9c8420, 0x1ea0b: 0x6c9c8620,
-	0x1ea0c: 0x6d22a820, 0x1ea0d: 0x6c8ec820, 0x1ea0e: 0x6c18f420, 0x1ea0f: 0x6c758a20,
-	0x1ea10: 0x6c8bf620, 0x1ea11: 0x6ca61a20, 0x1ea12: 0x6cb69420, 0x1ea13: 0x6c932c20,
-	0x1ea14: 0x6c703a20, 0x1ea15: 0x6c758c20, 0x1ea16: 0x6c6df020, 0x1ea17: 0x6c871420,
-	0x1ea18: 0x6cfd9820, 0x1ea19: 0x6cfbd220, 0x1ea1a: 0x6c639020, 0x1ea1b: 0x6c9ca620,
-	0x1ea1c: 0x6c875e20, 0x1ea1d: 0x6ccf8e20, 0x1ea1e: 0x6d2ef220, 0x1ea1f: 0x6c8c1020,
-	0x1ea20: 0x6c6dfa20, 0x1ea21: 0x6cb6b620, 0x1ea22: 0x6c8de220, 0x1ea23: 0x6d0d2820,
-	0x1ea24: 0x6c241a20, 0x1ea25: 0x6c973220, 0x1ea26: 0x6c972620, 0x1ea27: 0x6c516220,
-	0x1ea28: 0x6c17a620, 0x1ea29: 0x6c3d9c20, 0x1ea2a: 0x6c9e5e20, 0x1ea2b: 0x6c9e3e20,
-	0x1ea2c: 0x6c3da820, 0x1ea2d: 0x6cad9c20, 0x1ea2e: 0x6cc27e20, 0x1ea2f: 0x6cc14c20,
-	0x1ea30: 0x6ca1f420, 0x1ea31: 0x6c3db020, 0x1ea32: 0x6cfd2c20, 0x1ea33: 0x6c7f3420,
-	0x1ea34: 0x6cc15820, 0x1ea35: 0x6c9e6a20, 0x1ea36: 0x6c1ca620, 0x1ea37: 0x6c3c9420,
-	0x1ea38: 0x6c3d6e20, 0x1ea39: 0x6cc14020, 0x1ea3a: 0x6c9e6420, 0x1ea3b: 0x6c966820,
-	0x1ea3c: 0x6c99c420, 0x1ea3d: 0x6ca07020, 0x1ea3e: 0x6c5af020, 0x1ea3f: 0x6ca1b820,
-	// Block 0x7a9, offset 0x1ea40
-	0x1ea40: 0x6d407020, 0x1ea41: 0x6caaae20, 0x1ea42: 0x6c3bb420, 0x1ea43: 0x6c59ce20,
-	0x1ea44: 0x6c59b820, 0x1ea45: 0x6c6c5a20, 0x1ea46: 0x6c49f620, 0x1ea47: 0x6ce47420,
-	0x1ea48: 0x6ce81c20, 0x1ea49: 0x6c538c20, 0x1ea4a: 0x6c57c820, 0x1ea4b: 0x6c7c0820,
-	0x1ea4c: 0x6c539a20, 0x1ea4d: 0x6cd56020, 0x1ea4e: 0x6c843a20, 0x1ea4f: 0x6ca70a20,
-	0x1ea50: 0x6c1af220, 0x1ea51: 0x6c521c20, 0x1ea52: 0x6c521a20, 0x1ea53: 0x6d187c20,
-	0x1ea54: 0x6cb9ce20, 0x1ea55: 0x6c284820, 0x1ea56: 0x6cf8ea20, 0x1ea57: 0x6cea2e20,
-	0x1ea58: 0x6ca17020, 0x1ea59: 0x6ca15020, 0x1ea5a: 0x6cb9d220, 0x1ea5b: 0x6c279e20,
-	0x1ea5c: 0x6c1f8420, 0x1ea5d: 0x6d1ff620, 0x1ea5e: 0x6c2d2e20, 0x1ea5f: 0x6d143020,
-	0x1ea60: 0x6cfa1220, 0x1ea61: 0x6d0df220, 0x1ea62: 0x6cc15a20, 0x1ea63: 0x6c9a7220,
-	0x1ea64: 0x6d0e0a20, 0x1ea65: 0x6cbe9420, 0x1ea66: 0x6d271220, 0x1ea67: 0x6c84a220,
-	0x1ea68: 0x6c293820, 0x1ea69: 0x6c31ec20, 0x1ea6a: 0x6c11e820, 0x1ea6b: 0x6d0c4820,
-	0x1ea6c: 0x6d0d0820, 0x1ea6d: 0x6d0e1420, 0x1ea6e: 0x6c285820, 0x1ea6f: 0x6c01e420,
-	0x1ea70: 0x6d320a20, 0x1ea71: 0x6c27ac20, 0x1ea72: 0x6c11ea20, 0x1ea73: 0x6d144020,
-	0x1ea74: 0x6c9a4620, 0x1ea75: 0x6d2e4220, 0x1ea76: 0x6d0e3420, 0x1ea77: 0x6c320e20,
-	0x1ea78: 0x6c91b020, 0x1ea79: 0x6d353420, 0x1ea7a: 0x6c3bc220, 0x1ea7b: 0x6c3f1020,
-	0x1ea7c: 0x6c3f9820, 0x1ea7d: 0x6c9e3220, 0x1ea7e: 0x6c9e0a20, 0x1ea7f: 0x6d25bc20,
-	// Block 0x7aa, offset 0x1ea80
-	0x1ea80: 0x6c247220, 0x1ea81: 0x6cc28420, 0x1ea82: 0x6c178820, 0x1ea83: 0x6cebfc20,
-	0x1ea84: 0x6d39e620, 0x1ea85: 0x6d342a20, 0x1ea86: 0x6c9bbe20, 0x1ea87: 0x6c029420,
-	0x1ea88: 0x6c0cd020, 0x1ea89: 0x6ceb6a20, 0x1ea8a: 0x6c0ada20, 0x1ea8b: 0x6d257220,
-	0x1ea8c: 0x6c176620, 0x1ea8d: 0x6ceb5e20, 0x1ea8e: 0x6c2f7420, 0x1ea8f: 0x6c9d7420,
-	0x1ea90: 0x6ca3d020, 0x1ea91: 0x6c2f7c20, 0x1ea92: 0x6d3e8420, 0x1ea93: 0x6c47a620,
-	0x1ea94: 0x6c47a820, 0x1ea95: 0x6c302220, 0x1ea96: 0x6c3ba420, 0x1ea97: 0x6ce25020,
-	0x1ea98: 0x6d252820, 0x1ea99: 0x6cb03a20, 0x1ea9a: 0x6c168e20, 0x1ea9b: 0x6c42f620,
-	0x1ea9c: 0x6cb80820, 0x1ea9d: 0x6d252a20, 0x1ea9e: 0x6ce0e220, 0x1ea9f: 0x6ce29820,
-	0x1eaa0: 0x6cd56620, 0x1eaa1: 0x6cd55220, 0x1eaa2: 0x6c3b9e20, 0x1eaa3: 0x6c3adc20,
-	0x1eaa4: 0x6cf1be20, 0x1eaa5: 0x6c039620, 0x1eaa6: 0x6c2dea20, 0x1eaa7: 0x6ceb5a20,
-	0x1eaa8: 0x6d37d420, 0x1eaa9: 0x6cc1ee20, 0x1eaaa: 0x6cd11a20, 0x1eaab: 0x6cd28e20,
-	0x1eaac: 0x6d205e20, 0x1eaad: 0x6cd29420, 0x1eaae: 0x6ce69e20, 0x1eaaf: 0x6cf40c20,
-	0x1eab0: 0x6ca77220, 0x1eab1: 0x6c6df620, 0x1eab2: 0x6c5d1020, 0x1eab3: 0x6c719820,
-	0x1eab4: 0x6d0e1e20, 0x1eab5: 0x6ce88020, 0x1eab6: 0x6cd85c20, 0x1eab7: 0x6cf75420,
-	0x1eab8: 0x6cfd4e20, 0x1eab9: 0x6d0e2820, 0x1eaba: 0x6c82ae20, 0x1eabb: 0x6c08a220,
-	0x1eabc: 0x6d11da20, 0x1eabd: 0x6cc0a220, 0x1eabe: 0x6c4dc020, 0x1eabf: 0x6cf53a20,
-	// Block 0x7ab, offset 0x1eac0
-	0x1eac0: 0x6cf54220, 0x1eac1: 0x6c53e620, 0x1eac2: 0x6d028620, 0x1eac3: 0x6c36f820,
-	0x1eac4: 0x6d2c1020, 0x1eac5: 0x6d055c20, 0x1eac6: 0x6cf27820, 0x1eac7: 0x6d2c1220,
-	0x1eac8: 0x6ca9f820, 0x1eac9: 0x6ca48c20, 0x1eaca: 0x6cb63420, 0x1eacb: 0x6d2d0020,
-	0x1eacc: 0x6c62b620, 0x1eacd: 0x6d3ebe20, 0x1eace: 0x6c5f9c20, 0x1eacf: 0x6c5fac20,
-	0x1ead0: 0x6cb56c20, 0x1ead1: 0x6c5f2820, 0x1ead2: 0x6c1bc220, 0x1ead3: 0x6c193020,
-	0x1ead4: 0x6c193420, 0x1ead5: 0x6c519220, 0x1ead6: 0x6d0b3a20, 0x1ead7: 0x6d1aae20,
-	0x1ead8: 0x6d026c20, 0x1ead9: 0x6c05c020, 0x1eada: 0x6d2b2620, 0x1eadb: 0x6d027620,
-	0x1eadc: 0x6c148c20, 0x1eadd: 0x6c1aec20, 0x1eade: 0x6d0e0c20, 0x1eadf: 0x6c71e020,
-	0x1eae0: 0x6ce5b220, 0x1eae1: 0x6c8d9620, 0x1eae2: 0x6c8d7820, 0x1eae3: 0x6c1e6e20,
-	0x1eae4: 0x6cc33220, 0x1eae5: 0x6d027e20, 0x1eae6: 0x6c791420, 0x1eae7: 0x6ca8ae20,
-	0x1eae8: 0x6c703e20, 0x1eae9: 0x6d11e420, 0x1eaea: 0x6c21e820, 0x1eaeb: 0x6c7dc820,
-	0x1eaec: 0x6d22b220, 0x1eaed: 0x6c1efa20, 0x1eaee: 0x6d163020, 0x1eaef: 0x6ca61c20,
-	0x1eaf0: 0x6d2b2a20, 0x1eaf1: 0x6d407820, 0x1eaf2: 0x6cc25820, 0x1eaf3: 0x6d281020,
-	0x1eaf4: 0x6d0e3020, 0x1eaf5: 0x6cab6e20, 0x1eaf6: 0x6c36fe20, 0x1eaf7: 0x6cf33820,
-	0x1eaf8: 0x6d198020, 0x1eaf9: 0x6c221a20, 0x1eafa: 0x6d407a20, 0x1eafb: 0x6c2d0020,
-	0x1eafc: 0x6c1efe20, 0x1eafd: 0x6c6d7a20, 0x1eafe: 0x6d0bd420, 0x1eaff: 0x6c1b8020,
-	// Block 0x7ac, offset 0x1eb00
-	0x1eb00: 0x6c192420, 0x1eb01: 0x6c512220, 0x1eb02: 0x6d1a6e20, 0x1eb03: 0x6c71c620,
-	0x1eb04: 0x6c8d3220, 0x1eb05: 0x6c05b620, 0x1eb06: 0x6ce59620, 0x1eb07: 0x6d3e7820,
-	0x1eb08: 0x6c790620, 0x1eb09: 0x6d228620, 0x1eb0a: 0x6c21d420, 0x1eb0b: 0x6cc25220,
-	0x1eb0c: 0x6cf32620, 0x1eb0d: 0x6c8fb020, 0x1eb0e: 0x6cad1420, 0x1eb0f: 0x6c45c020,
-	0x1eb10: 0x6cad1620, 0x1eb11: 0x6d0e0e20, 0x1eb12: 0x6c8ff220, 0x1eb13: 0x6c904820,
-	0x1eb14: 0x6c45c820, 0x1eb15: 0x6c76b820, 0x1eb16: 0x6c26dc20, 0x1eb17: 0x6c8e0020,
-	0x1eb18: 0x6c26de20, 0x1eb19: 0x6c8f6620, 0x1eb1a: 0x6c458620, 0x1eb1b: 0x6c76a820,
-	0x1eb1c: 0x6c4a9620, 0x1eb1d: 0x6cbfea20, 0x1eb1e: 0x6c0cd620, 0x1eb1f: 0x6c4a3820,
-	0x1eb20: 0x6d26f620, 0x1eb21: 0x6c20f820, 0x1eb22: 0x6c51aa20, 0x1eb23: 0x6c753020,
-	0x1eb24: 0x6d013c20, 0x1eb25: 0x6d249820,
-	// Block 0x7ad, offset 0x1eb40
-	0x1eb43: 0x6ccd4220,
-	// Block 0x7ae, offset 0x1eb80
-	0x1eb80: 0x6cb6e820, 0x1eb81: 0x6c452620, 0x1eb82: 0x6c17ce20, 0x1eb83: 0x6c642020,
-	0x1eb84: 0x6c573e20, 0x1eb85: 0x6c202c20, 0x1eb86: 0x6c71ea20, 0x1eb87: 0x6c4a9620,
-	0x1eb88: 0x6c4a9620, 0x1eb89: 0x6cb75220, 0x1eb8a: 0x6c6c2e20, 0x1eb8b: 0x6c7e6220,
-	0x1eb8c: 0x6ca3ac20, 0x1eb8d: 0x6c804a20, 0x1eb8e: 0x6c7f7820, 0x1eb8f: 0x6c956220,
-	0x1eb90: 0x6c957a20, 0x1eb91: 0x6c955820, 0x1eb92: 0x6c95b820, 0x1eb93: 0x6c957c20,
-	0x1eb94: 0x6c822620, 0x1eb95: 0x6c95e820, 0x1eb96: 0x6c81d020, 0x1eb97: 0x6c95f620,
-	0x1eb98: 0x6c960a20, 0x1eb99: 0x6c81d620, 0x1eb9a: 0x6c962a20, 0x1eb9b: 0x6c949a20,
-	0x1eb9c: 0x6c948c20, 0x1eb9d: 0x6c7ff820, 0x1eb9e: 0x6c808820, 0x1eb9f: 0x6c7ff020,
-	0x1eba0: 0x6c948820, 0x1eba1: 0x6c7f9a20, 0x1eba2: 0x6c807c20, 0x1eba3: 0x6c7fc420,
-	0x1eba4: 0x6c7fd820, 0x1eba5: 0x6c7e3e20, 0x1eba6: 0x6c7eaa20, 0x1eba7: 0x6c7ec420,
-	0x1eba8: 0x6c80b420, 0x1eba9: 0x6c80f820, 0x1ebaa: 0x6c811820, 0x1ebab: 0x6c80ae20,
-	0x1ebac: 0x6c80a220, 0x1ebad: 0x6c7ee220, 0x1ebae: 0x6c839020, 0x1ebaf: 0x6c815620,
-	0x1ebb0: 0x6c91da20, 0x1ebb1: 0x6c91f220, 0x1ebb2: 0x6c918420, 0x1ebb3: 0x6c915c20,
-	0x1ebb4: 0x6c819a20, 0x1ebb5: 0x6c917820, 0x1ebb6: 0x6c91c420, 0x1ebb7: 0x6c927620,
-	0x1ebb8: 0x6c933620, 0x1ebb9: 0x6c91d420, 0x1ebba: 0x6c934220, 0x1ebbb: 0x6c926e20,
-	0x1ebbc: 0x6c925a20, 0x1ebbd: 0x6c93ec20, 0x1ebbe: 0x6c924820, 0x1ebbf: 0x6c92de20,
-	// Block 0x7af, offset 0x1ebc0
-	0x1ebc0: 0x6c924c20, 0x1ebc1: 0x6c952620, 0x1ebc2: 0x6c903e20, 0x1ebc3: 0x6ca9f020,
-	0x1ebc4: 0x6c8ff420, 0x1ebc5: 0x6c8ff820, 0x1ebc6: 0x6c814220, 0x1ebc7: 0x6c82d220,
-	0x1ebc8: 0x6c927420, 0x1ebc9: 0x6c823e20, 0x1ebca: 0x6c82e220, 0x1ebcb: 0x6c93a620,
-	0x1ebcc: 0x6c90b020, 0x1ebcd: 0x6c833020, 0x1ebce: 0x6c910e20, 0x1ebcf: 0x6c833420,
-	0x1ebd0: 0x6c93bc20, 0x1ebd1: 0x6c910220, 0x1ebd2: 0x6c823c20, 0x1ebd3: 0x6c81fe20,
-	0x1ebd4: 0x6c8c2820, 0x1ebd5: 0x6c8cc420, 0x1ebd6: 0x6c837e20, 0x1ebd7: 0x6c8d3c20,
-	0x1ebd8: 0x6c8cfe20, 0x1ebd9: 0x6c8cd820, 0x1ebda: 0x6c31f020, 0x1ebdb: 0x6ca2d020,
-	0x1ebdc: 0x6c822620, 0x1ebdd: 0x6cab0e20, 0x1ebde: 0x6c27b220, 0x1ebdf: 0x6ca91020,
-	0x1ebe0: 0x6caa5e20, 0x1ebe1: 0x6c93d620, 0x1ebe2: 0x6d176620, 0x1ebe3: 0x6c06c620,
-	0x1ebe4: 0x6cac7620, 0x1ebe5: 0x6c0b8220, 0x1ebe6: 0x6c3ff020, 0x1ebe7: 0x6c105620,
-	0x1ebe8: 0x6c9d2620, 0x1ebe9: 0x6cd60020, 0x1ebea: 0x6cdd5a20, 0x1ebeb: 0x6c115e20,
-	0x1ebec: 0x6cc9c620, 0x1ebed: 0x6cd12c20, 0x1ebee: 0x6d12f620, 0x1ebef: 0x6cd76a20,
-	0x1ebf0: 0x6ccbda20, 0x1ebf1: 0x6c18a020, 0x1ebf2: 0x6c189c20, 0x1ebf3: 0x6cd41020,
-	0x1ebf4: 0x6cc91420, 0x1ebf5: 0x6c361020, 0x1ebf6: 0x6c361220, 0x1ebf7: 0x6c89aa20,
-	0x1ebf8: 0x6c898820, 0x1ebf9: 0x6c894a20, 0x1ebfa: 0x6c894c20, 0x1ebfb: 0x6c897420,
-	0x1ebfc: 0x6c894620, 0x1ebfd: 0x6c89c820, 0x1ebfe: 0x6c89c020, 0x1ebff: 0x6c867020,
-	// Block 0x7b0, offset 0x1ec00
-	0x1ec00: 0x6c937620, 0x1ec01: 0x6caa6e20, 0x1ec02: 0x6c916e20, 0x1ec03: 0x6c938a20,
-	0x1ec04: 0x6c940e20, 0x1ec05: 0x6c870420, 0x1ec06: 0x6c935a20, 0x1ec07: 0x6c84ee20,
-	0x1ec08: 0x6c871420, 0x1ec09: 0x6c843a20, 0x1ec0a: 0x6c855c20, 0x1ec0b: 0x6c867820,
-	0x1ec0c: 0x6c867c20, 0x1ec0d: 0x6c878420, 0x1ec0e: 0x6ca6f220, 0x1ec0f: 0x6c883620,
-	0x1ec10: 0x6c893820, 0x1ec11: 0x6ca73420, 0x1ec12: 0x6c881620, 0x1ec13: 0x6c890620,
-	0x1ec14: 0x6c88c420, 0x1ec15: 0x6ca6f620, 0x1ec16: 0x6c891220, 0x1ec17: 0x6c886820,
-	0x1ec18: 0x6ca73a20, 0x1ec19: 0x6c881820, 0x1ec1a: 0x6c87fa20, 0x1ec1b: 0x6c892220,
-	0x1ec1c: 0x6c8abc20, 0x1ec1d: 0x6c8abe20, 0x1ec1e: 0x6d0e4220, 0x1ec1f: 0x6c8af020,
-	0x1ec20: 0x6c8b1020, 0x1ec21: 0x6cd76a20, 0x1ec22: 0x6c881020, 0x1ec23: 0x6ca75a20,
-	0x1ec24: 0x6ca72020, 0x1ec25: 0x6c892020, 0x1ec26: 0x6c888420, 0x1ec27: 0x6c8b5420,
-	0x1ec28: 0x6c8e1820, 0x1ec29: 0x6c8c9e20, 0x1ec2a: 0x6ca91020, 0x1ec2b: 0x6c8e1420,
-	0x1ec2c: 0x6c87f420, 0x1ec2d: 0x6c8cbe20, 0x1ec2e: 0x6d1c8a20, 0x1ec2f: 0x6c8cf620,
-	0x1ec30: 0x6c8cfa20, 0x1ec31: 0x6c8d2420, 0x1ec32: 0x6c8d2a20, 0x1ec33: 0x6c8db620,
-	0x1ec34: 0x6c8e1220, 0x1ec35: 0x6c858620, 0x1ec36: 0x6c853820, 0x1ec37: 0x6c854620,
-	0x1ec38: 0x6c86b420, 0x1ec39: 0x6c363420, 0x1ec3a: 0x6c823620, 0x1ec3b: 0x6c89ec20,
-	0x1ec3c: 0x6c8a0620, 0x1ec3d: 0x6ca7d020, 0x1ec3e: 0x6c8a9420, 0x1ec3f: 0x6c822620,
-	// Block 0x7b1, offset 0x1ec40
-	0x1ec40: 0x6c8a1a20, 0x1ec41: 0x6c8a2620, 0x1ec42: 0x6c8a7220, 0x1ec43: 0x6c8a1620,
-	0x1ec44: 0x6c8fb020, 0x1ec45: 0x6d275420, 0x1ec46: 0x6cc84c20, 0x1ec47: 0x6c8e8020,
-	0x1ec48: 0x6c1e2020, 0x1ec49: 0x6c8efa20, 0x1ec4a: 0x6c8e4a20, 0x1ec4b: 0x6c8e3620,
-	0x1ec4c: 0x6c8e5020, 0x1ec4d: 0x6c8e4c20, 0x1ec4e: 0x6c8e5c20, 0x1ec4f: 0x6ca99020,
-	0x1ec50: 0x6c835420, 0x1ec51: 0x6c8f2420, 0x1ec52: 0x6c92a020, 0x1ec53: 0x6c923020,
-	0x1ec54: 0x6c94e420, 0x1ec55: 0x6c94f020, 0x1ec56: 0x6c94f420, 0x1ec57: 0x6c950e20,
-	0x1ec58: 0x6c93d020, 0x1ec59: 0x6c862e20, 0x1ec5a: 0x6c85ca20, 0x1ec5b: 0x6c93d620,
-	0x1ec5c: 0x6c8f9220, 0x1ec5d: 0x6c857620, 0x1ec5e: 0x6c856e20, 0x1ec5f: 0x6c93ae20,
-	0x1ec60: 0x6d16ba20, 0x1ec61: 0x6c87d820, 0x1ec62: 0x6c83bc20, 0x1ec63: 0x6ca5c020,
-	0x1ec64: 0x6c851420, 0x1ec65: 0x6c861220, 0x1ec66: 0x6c844a20, 0x1ec67: 0x6c852220,
-	0x1ec68: 0x6c87e220, 0x1ec69: 0x6c84fc20, 0x1ec6a: 0x6c847e20, 0x1ec6b: 0x6ca68c20,
-	0x1ec6c: 0x6ca6ac20, 0x1ec6d: 0x6c8c4420, 0x1ec6e: 0x6c8bde20, 0x1ec6f: 0x6c8be020,
-	0x1ec70: 0x6c8c7a20, 0x1ec71: 0x6c8bca20, 0x1ec72: 0x6c8c0c20, 0x1ec73: 0x6c8c1020,
-	0x1ec74: 0x6c8ba020, 0x1ec75: 0x6c8bb020, 0x1ec76: 0x6c8bea20, 0x1ec77: 0x6c856c20,
-	0x1ec78: 0x6c85f620, 0x1ec79: 0x6c85f820, 0x1ec7a: 0x6d3c3420, 0x1ec7b: 0x6d358c20,
-	0x1ec7c: 0x6cd42220, 0x1ec7d: 0x6cd03620, 0x1ec7e: 0x6c13d020, 0x1ec7f: 0x6c22b220,
-	// Block 0x7b2, offset 0x1ec80
-	0x1ec80: 0x6cbc9020, 0x1ec81: 0x6c324420, 0x1ec82: 0x6cde2e20, 0x1ec83: 0x6ce13620,
-	0x1ec84: 0x6d2d1820, 0x1ec85: 0x6c306420, 0x1ec86: 0x6c066220, 0x1ec87: 0x6c3efc20,
-	0x1ec88: 0x6d03ba20, 0x1ec89: 0x6c67d620, 0x1ec8a: 0x6c665220, 0x1ec8b: 0x6c7e0420,
-	0x1ec8c: 0x6cf49020, 0x1ec8d: 0x6c56a220, 0x1ec8e: 0x43f41c20, 0x1ec8f: 0x43f41e20,
-	0x1ec90: 0x6d37f420, 0x1ec91: 0x43f42220, 0x1ec92: 0x6cbe7a20, 0x1ec93: 0x43f42620,
-	0x1ec94: 0x43f42820, 0x1ec95: 0x6cf6b620, 0x1ec96: 0x6d399820, 0x1ec97: 0x6d173820,
-	0x1ec98: 0x6c84f420, 0x1ec99: 0x6cd03a20, 0x1ec9a: 0x6cfdbc20, 0x1ec9b: 0x6c3e9c20,
-	0x1ec9c: 0x6c6e9220, 0x1ec9d: 0x6c6dcc20, 0x1ec9e: 0x6d221c20, 0x1ec9f: 0x43f43e20,
-	0x1eca0: 0x6cc0c220, 0x1eca1: 0x43f44220, 0x1eca2: 0x6d39c620, 0x1eca3: 0x43f44620,
-	0x1eca4: 0x43f44820, 0x1eca5: 0x6d178420, 0x1eca6: 0x6c30a620, 0x1eca7: 0x43f44e20,
-	0x1eca8: 0x43f45020, 0x1eca9: 0x43f45220, 0x1ecaa: 0x6c395c20, 0x1ecab: 0x6cd8d420,
-	0x1ecac: 0x6c496820, 0x1ecad: 0x6c520c20, 0x1ecae: 0x6c80a420, 0x1ecaf: 0x6c868820,
-	0x1ecb0: 0x6cf43220, 0x1ecb1: 0x6ccbb820, 0x1ecb2: 0x6c9dfe20, 0x1ecb3: 0x6c9e0c20,
-	0x1ecb4: 0x6cbd7c20, 0x1ecb5: 0x6c068e20, 0x1ecb6: 0x6c509c20, 0x1ecb7: 0x6ce0a020,
-	0x1ecb8: 0x6cb7ce20, 0x1ecb9: 0x6cb2ec20, 0x1ecba: 0x6ca16020, 0x1ecbb: 0x6c135420,
-	0x1ecbc: 0x6c17fa20, 0x1ecbd: 0x6c5b4c20, 0x1ecbe: 0x6c765820, 0x1ecbf: 0x6d2b8a20,
-	// Block 0x7b3, offset 0x1ecc0
-	0x1ecc0: 0x6c1a5420, 0x1ecc1: 0x6c9fa820, 0x1ecc2: 0x6c61a820, 0x1ecc3: 0x6cd55a20,
-	0x1ecc4: 0x6c99ec20, 0x1ecc5: 0x6c4d3a20, 0x1ecc6: 0x6d3a6420, 0x1ecc7: 0x6c4ee620,
-	0x1ecc8: 0x6d3a6e20, 0x1ecc9: 0x6d2ff420, 0x1ecca: 0x6d423c20, 0x1eccb: 0x6c06b020,
-	0x1eccc: 0x6ccf3620, 0x1eccd: 0x6d34f820, 0x1ecce: 0x6cb58a20, 0x1eccf: 0x6d203020,
-	0x1ecd0: 0x6d411420, 0x1ecd1: 0x6d3ac620, 0x1ecd2: 0x6c5dd420, 0x1ecd3: 0x6d316e20,
-	0x1ecd4: 0x6c47c420, 0x1ecd5: 0x6ce84420, 0x1ecd6: 0x6c6af220, 0x1ecd7: 0x6c891220,
-	0x1ecd8: 0x6c6d5220, 0x1ecd9: 0x6c38ca20, 0x1ecda: 0x6cd56220, 0x1ecdb: 0x6d30d220,
-	0x1ecdc: 0x6c1e4020, 0x1ecdd: 0x6c12c020, 0x1ecde: 0x6c12c020, 0x1ecdf: 0x6d311420,
-	0x1ece0: 0x6c51d620, 0x1ece1: 0x6cd36c20, 0x1ece2: 0x6d134620, 0x1ece3: 0x6c6cc220,
-	0x1ece4: 0x6c0d4a20, 0x1ece5: 0x6d2bb620, 0x1ece6: 0x6c21a420, 0x1ece7: 0x6d178420,
-	0x1ece8: 0x6ca41420, 0x1ece9: 0x6cfe0a20, 0x1ecea: 0x6cb21420, 0x1eceb: 0x6c5baa20,
-	0x1ecec: 0x4885dc20, 0x1eced: 0x6c496420,
-	0x1ecf0: 0x6c0e0820, 0x1ecf1: 0x6c7bdc20, 0x1ecf2: 0x6cc2b220, 0x1ecf3: 0x6d03c620,
-	0x1ecf4: 0x6c1ca820, 0x1ecf5: 0x6c627020, 0x1ecf6: 0x6d1e1820, 0x1ecf7: 0x6cce9420,
-	0x1ecf8: 0x6c509c20, 0x1ecf9: 0x6ce21620, 0x1ecfa: 0x6c5bbc20, 0x1ecfb: 0x6cec3420,
-	0x1ecfc: 0x6d37f420, 0x1ecfd: 0x6c3b8420, 0x1ecfe: 0x6d0d4620, 0x1ecff: 0x6c077c20,
-	// Block 0x7b4, offset 0x1ed00
-	0x1ed00: 0x6c097420, 0x1ed01: 0x6c226820, 0x1ed02: 0x6c025020, 0x1ed03: 0x6d182220,
-	0x1ed04: 0x6c112620, 0x1ed05: 0x6d110c20, 0x1ed06: 0x6cee0e20, 0x1ed07: 0x6cd0ac20,
-	0x1ed08: 0x6d236a20, 0x1ed09: 0x6d2b8a20, 0x1ed0a: 0x6c02d820, 0x1ed0b: 0x6c1a5420,
-	0x1ed0c: 0x6c279420, 0x1ed0d: 0x6d212620, 0x1ed0e: 0x6cd9b020, 0x1ed0f: 0x6c0de620,
-	0x1ed10: 0x6c024020, 0x1ed11: 0x6cbe7a20, 0x1ed12: 0x6c80f820, 0x1ed13: 0x6cee5220,
-	0x1ed14: 0x6d2f2220, 0x1ed15: 0x6c271220, 0x1ed16: 0x6ccbda20, 0x1ed17: 0x6c8e4a20,
-	0x1ed18: 0x6d1a7020, 0x1ed19: 0x6d3e4020, 0x1ed1a: 0x6c4ee620, 0x1ed1b: 0x6c6eb420,
-	0x1ed1c: 0x6d3a6e20, 0x1ed1d: 0x6cbc0220, 0x1ed1e: 0x6c74c820, 0x1ed1f: 0x6c391620,
-	0x1ed20: 0x6d399820, 0x1ed21: 0x6d325020, 0x1ed22: 0x6c225020, 0x1ed23: 0x6c578420,
-	0x1ed24: 0x6c492220, 0x1ed25: 0x6cf16020, 0x1ed26: 0x6d173820, 0x1ed27: 0x6cd15e20,
-	0x1ed28: 0x6d344020, 0x1ed29: 0x6c736420, 0x1ed2a: 0x6d311220, 0x1ed2b: 0x6ce4ba20,
-	0x1ed2c: 0x6ce5cc20, 0x1ed2d: 0x6c6af220, 0x1ed2e: 0x6c832420, 0x1ed2f: 0x6ce1c820,
-	0x1ed30: 0x6c891220, 0x1ed31: 0x6cb2ac20, 0x1ed32: 0x6d30d220, 0x1ed33: 0x6c598420,
-	0x1ed34: 0x6c573420, 0x1ed35: 0x6d276220, 0x1ed36: 0x6cbb4c20, 0x1ed37: 0x6c407e20,
-	0x1ed38: 0x6cd36c20, 0x1ed39: 0x6c2e3820, 0x1ed3a: 0x6d39c620, 0x1ed3b: 0x6cbeb220,
-	0x1ed3c: 0x6d134620, 0x1ed3d: 0x6cab0e20, 0x1ed3e: 0x6d23f620, 0x1ed3f: 0x6c6cc220,
-	// Block 0x7b5, offset 0x1ed40
-	0x1ed40: 0x6c0bdc20, 0x1ed41: 0x6d2bb620, 0x1ed42: 0x6cd50820, 0x1ed43: 0x6c1b5020,
-	0x1ed44: 0x6cd9e620, 0x1ed45: 0x6d03f420, 0x1ed46: 0x6d3a6220, 0x1ed47: 0x6ca41420,
-	0x1ed48: 0x6c6e9220, 0x1ed49: 0x6c046220, 0x1ed4a: 0x6cfe0a20, 0x1ed4b: 0x6c35b420,
-	0x1ed4c: 0x6cb21420, 0x1ed4d: 0x6d320420, 0x1ed4e: 0x6c4a9620, 0x1ed4f: 0x48509420,
-	0x1ed50: 0x48508820, 0x1ed51: 0x4867aa20, 0x1ed52: 0x6c513820, 0x1ed53: 0x6d008620,
-	0x1ed54: 0x6c6ad220, 0x1ed55: 0x48a49220, 0x1ed56: 0x6cba2c20, 0x1ed57: 0x6c084620,
-	0x1ed58: 0x6c36f820, 0x1ed59: 0x6cad1420,
-	// Block 0x7b6, offset 0x1ed80
-	0x1ed80: 0xf0001c1c, 0x1ed81: 0xf0001c1c, 0x1ed82: 0x00658c9c,
-	0x1ed90: 0x2cd43683, 0x1ed91: 0x2d3f2883, 0x1ed92: 0x2cd6a083, 0x1ed93: 0xf0001c1c,
-	0x1ed94: 0x2c37b483, 0x1ed95: 0x2c341683, 0x1ed96: 0x2c6b9883, 0x1ed97: 0x2ce45483,
-	0x1ed98: 0x2c682283, 0x1ed99: 0x2d1d3483, 0x1ed9a: 0x2cf3c883, 0x1ed9b: 0x2c8a9483,
-	0x1ed9c: 0x2cb97883, 0x1ed9d: 0x2c546483, 0x1ed9e: 0x2d292683, 0x1ed9f: 0x2d02dc83,
-	0x1eda0: 0x2c1e5483, 0x1eda1: 0x2d37b683, 0x1eda2: 0x2cd0d283, 0x1eda3: 0x2c395083,
-	0x1eda4: 0x2cd0dc83, 0x1eda5: 0x2c20b483, 0x1eda6: 0x2d0db483, 0x1eda7: 0x2ce7e683,
-	0x1eda8: 0x2c103683, 0x1eda9: 0x2d13b683, 0x1edaa: 0x2cc9f283, 0x1edab: 0x2d1f4083,
-	0x1edac: 0x2d426083, 0x1edad: 0x2d378283, 0x1edae: 0x2d200883, 0x1edaf: 0x2d350083,
-	0x1edb0: 0x2d407e83, 0x1edb1: 0x2c26e083, 0x1edb2: 0x2c6d1a83, 0x1edb3: 0x2c796883,
-	0x1edb4: 0x2c50b683, 0x1edb5: 0x2c97ba83, 0x1edb6: 0x2d1f9883, 0x1edb7: 0x2d266883,
-	0x1edb8: 0x2ccf9a83, 0x1edb9: 0x2c438c83, 0x1edba: 0x2d1c6283,
-	// Block 0x7b7, offset 0x1edc0
-	0x1edc0: 0xe000b021, 0x1edc1: 0xe000b035, 0x1edc2: 0xe000b031, 0x1edc3: 0xe000b019,
-	0x1edc4: 0xe000b02d, 0x1edc5: 0xe000b025, 0x1edc6: 0xe000b029, 0x1edc7: 0xe000b039,
-	0x1edc8: 0xe000b01d,
-	0x1edd0: 0x2c2a9083, 0x1edd1: 0x2c785283,
-	// Block 0x7b8, offset 0x1ee00
-	0x1ee00: 0x6c508820, 0x1ee01: 0x6cb4c820, 0x1ee03: 0x6cbc8c20,
-	0x1ee05: 0x6c4d4c20,
-	0x1ee09: 0x6cbf9020, 0x1ee0a: 0x6c126420,
-	0x1ee0d: 0x6cd2ec20,
-	0x1ee13: 0x6cd7ba20,
-	0x1ee14: 0x6c73ca20,
-	0x1ee1b: 0x6d22c020,
-	0x1ee1d: 0x6c796620,
-	0x1ee22: 0x6d3dfc20,
-	0x1ee26: 0x6d03be20,
-	0x1ee31: 0x6ca1fc20,
-	0x1ee37: 0x6c5e9420,
-	0x1ee38: 0x6d12d220, 0x1ee39: 0x6c755e20,
-	0x1ee3c: 0x6cb97c20, 0x1ee3d: 0x6c922420,
-	// Block 0x7b9, offset 0x1ee40
-	0x1ee49: 0x6c1e5e20,
-	0x1ee57: 0x6cd3d420,
-	0x1ee60: 0x6cbd0220,
-	0x1ee65: 0x6c40ce20,
-	0x1ee6d: 0x6cb58e20,
-	0x1ee77: 0x6c15c420,
-	// Block 0x7ba, offset 0x1ee80
-	0x1ee84: 0x6c582a20, 0x1ee86: 0x6d163620, 0x1ee87: 0x6d425e20,
-	0x1ee88: 0x6c6a4a20,
-	0x1ee91: 0x6d404420,
-	0x1ee94: 0x6d3ed420,
-	0x1ee9f: 0x6c6c2020,
-	0x1eea2: 0x6cac1620,
-	0x1eea4: 0x6c32ee20, 0x1eea5: 0x6c238220, 0x1eea7: 0x6cd08e20,
-	0x1eeb8: 0x6c59aa20,
-	// Block 0x7bb, offset 0x1eec0
-	0x1eeca: 0x6d1abe20,
-	0x1eecc: 0x6c4bb820,
-	0x1eed6: 0x6c6f3a20,
-	0x1eeeb: 0x6ccfa220,
-	0x1eefa: 0x6c6fe220,
-	// Block 0x7bc, offset 0x1ef00
-	0x1ef05: 0x6d130c20,
-	0x1ef09: 0x6c308c20,
-	0x1ef0c: 0x6c73c020, 0x1ef0d: 0x6c6a4c20, 0x1ef0f: 0x6c2df020,
-	0x1ef11: 0x6c73c220, 0x1ef12: 0x6c20ba20,
-	0x1ef16: 0x6c8c9820,
-	0x1ef1a: 0x6ce63e20,
-	0x1ef23: 0x6c44aa20,
-	0x1ef2e: 0x6d0b7e20,
-	0x1ef31: 0x6d148020,
-	0x1ef3f: 0x6cef1c20,
-	// Block 0x7bd, offset 0x1ef40
-	0x1ef42: 0x6c6a5820,
-	0x1ef4c: 0x6d146a20,
-	0x1ef57: 0x6c2f3220,
-	0x1ef5a: 0x6cb59a20,
-	0x1ef6c: 0x6c05b020,
-	0x1ef71: 0x6d01a620,
-	0x1ef79: 0x6d2f3220,
-	// Block 0x7be, offset 0x1ef80
-	0x1ef8c: 0x6d1daa20,
-	0x1ef90: 0x6d073820,
-	0x1ef99: 0x6c2f3820, 0x1ef9b: 0x6c280820,
-	0x1ef9f: 0x6cf06220,
-	0x1efa3: 0x6c488620,
-	0x1efa9: 0x6c391220,
-	0x1efae: 0x6ca0ba20,
-	0x1efb1: 0x6cf56220, 0x1efb2: 0x6d0d3220,
-	0x1efb5: 0x6ca5b820, 0x1efb6: 0x6c286020,
-	// Block 0x7bf, offset 0x1efc0
-	0x1efcb: 0x6c281a20,
-	0x1efcf: 0x6ce1ac20,
-	0x1efd2: 0x6c455620,
-	0x1efd7: 0x6c7abc20,
-	0x1efd8: 0x6c1f0420,
-	0x1efef: 0x6cc25e20,
-	0x1eff1: 0x6ca0be20, 0x1eff3: 0x6cd19220,
-	0x1eff5: 0x6c41c620, 0x1eff7: 0x6cd0d820,
-	// Block 0x7c0, offset 0x1f000
-	0x1f001: 0x6ceaa020,
-	0x1f005: 0x6cd42c20,
-	0x1f00a: 0x6ca7e620,
-	0x1f024: 0x6d281a20, 0x1f025: 0x6c489220,
-	0x1f02c: 0x6cfe7e20, 0x1f02d: 0x6c814420,
-	0x1f030: 0x6c286e20, 0x1f031: 0x6cdd0620,
-	0x1f035: 0x6c988420, 0x1f036: 0x6d148220,
-	0x1f038: 0x6ce26e20, 0x1f03a: 0x6c094020,
-	// Block 0x7c1, offset 0x1f040
-	0x1f042: 0x6cde3020,
-	0x1f057: 0x6c95e420,
-	0x1f062: 0x6cf7d220, 0x1f063: 0x6c5cb820,
-	0x1f064: 0x6c268e20, 0x1f067: 0x6c722420,
-	0x1f069: 0x6c318c20,
-	0x1f06c: 0x6c017c20,
-	// Block 0x7c2, offset 0x1f080
-	0x1f089: 0x6c9a8820,
-	0x1f08c: 0x6cc46c20, 0x1f08e: 0x6c003820, 0x1f08f: 0x6d22ec20,
-	0x1f092: 0x6c666620,
-	0x1f094: 0x6cb76620,
-	0x1f09f: 0x6c9fa220,
-	0x1f0a3: 0x6d391620,
-	0x1f0a4: 0x6d35ac20, 0x1f0a5: 0x6d37ea20, 0x1f0a6: 0x6ca4e220, 0x1f0a7: 0x6c0e1a20,
-	0x1f0a9: 0x6d3bc020, 0x1f0aa: 0x6cd5be20, 0x1f0ab: 0x6d0a8420,
-	0x1f0ac: 0x6c741e20, 0x1f0ad: 0x6cb9fe20,
-	0x1f0b0: 0x6c489a20, 0x1f0b2: 0x6ce85220,
-	0x1f0b6: 0x6d1d3820, 0x1f0b7: 0x6d35d620,
-	0x1f0be: 0x6c7c6620,
-	// Block 0x7c3, offset 0x1f0c0
-	0x1f0c6: 0x6c192620,
-	0x1f0d6: 0x6c88ec20, 0x1f0d7: 0x6d0ae620,
-	0x1f0dc: 0x6c4ce820, 0x1f0dd: 0x6c9e8e20, 0x1f0de: 0x6ccf0e20, 0x1f0df: 0x6d223620,
-	0x1f0e1: 0x6cd8b020, 0x1f0e2: 0x6cda1220,
-	0x1f0e4: 0x6d35d820, 0x1f0e7: 0x6cbc7c20,
-	0x1f0e9: 0x6c3fde20,
-	0x1f0ec: 0x6c710a20, 0x1f0ed: 0x6c071e20, 0x1f0ef: 0x6c099220,
-	0x1f0f2: 0x6cdd6220,
-	0x1f0f5: 0x6cba0820, 0x1f0f6: 0x6ca03220, 0x1f0f7: 0x6c15b620,
-	0x1f0fa: 0x6ccaa820, 0x1f0fb: 0x6c5ec020,
-	// Block 0x7c4, offset 0x1f100
-	0x1f115: 0x6c461620, 0x1f116: 0x6cbf1e20,
-	0x1f11a: 0x6cc73820,
-	0x1f11e: 0x6cda1a20, 0x1f11f: 0x6cda1e20,
-	0x1f120: 0x6d10f420,
-	0x1f12a: 0x6c1d6a20,
-	0x1f12d: 0x6cd66620, 0x1f12e: 0x6d2ffa20, 0x1f12f: 0x6c862420,
-	0x1f130: 0x6c413e20, 0x1f131: 0x6cdbc620, 0x1f132: 0x6d2d7c20,
-	0x1f134: 0x6d3c4220,
-	0x1f13d: 0x6c400820,
-	// Block 0x7c5, offset 0x1f140
-	0x1f143: 0x6c5ee020,
-	0x1f144: 0x6c30b220,
-	0x1f157: 0x6c5bd020,
-	0x1f15a: 0x6c65a420, 0x1f15b: 0x6d0d9c20,
-	0x1f15c: 0x6d364a20,
-	0x1f168: 0x6c9a5c20, 0x1f169: 0x6d120e20, 0x1f16a: 0x6c2b3220, 0x1f16b: 0x6d150e20,
-	0x1f16f: 0x6c0cf220,
-	0x1f172: 0x6cc1a220, 0x1f173: 0x6d181a20,
-	0x1f175: 0x6d105420,
-	0x1f179: 0x6d2c3e20,
-	0x1f17d: 0x6ccc6020,
-	// Block 0x7c6, offset 0x1f180
-	0x1f199: 0x6c7f1820,
-	0x1f1ae: 0x6c746e20,
-	0x1f1b0: 0x6cb50620, 0x1f1b3: 0x6d216a20,
-	0x1f1b6: 0x6d291820, 0x1f1b7: 0x6cc98220,
-	0x1f1b8: 0x6ccb3a20, 0x1f1bb: 0x6c340420,
-	0x1f1bf: 0x6c6b9e20,
-	// Block 0x7c7, offset 0x1f1c0
-	0x1f1c0: 0x6c782020, 0x1f1c3: 0x6d265420,
-	0x1f1c7: 0x6c65ca20,
-	0x1f1c8: 0x6d113220,
-	0x1f1d3: 0x6cfaca20,
-	0x1f1d5: 0x6d000220, 0x1f1d6: 0x6cbb9620,
-	0x1f1da: 0x6d23b820, 0x1f1db: 0x6cc1ae20,
-	0x1f1e1: 0x6cfac820, 0x1f1e2: 0x6c962020,
-	0x1f1e4: 0x6c4a0a20, 0x1f1e7: 0x6c198620,
-	0x1f1e8: 0x6c209620, 0x1f1e9: 0x6d155620, 0x1f1eb: 0x6d333020,
-	0x1f1ed: 0x6d403020, 0x1f1ee: 0x6c335c20,
-	0x1f1f0: 0x6d2d3420,
-	0x1f1ff: 0x6c3a6e20,
-	// Block 0x7c8, offset 0x1f200
-	0x1f200: 0x6d155820, 0x1f201: 0x6c9b4420,
-	0x1f208: 0x6c0b0a20, 0x1f209: 0x6c6b4020, 0x1f20a: 0x6cd61820, 0x1f20b: 0x6c8a2220,
-	0x1f20c: 0x6c08fa20, 0x1f20d: 0x6cda7620,
-	0x1f211: 0x6c2ca220,
-	0x1f221: 0x6c076220, 0x1f222: 0x6cf21220,
-	0x1f227: 0x6c9b6a20,
-	0x1f229: 0x6c15ea20,
-	0x1f235: 0x6c29f620,
-	0x1f23a: 0x6cb21c20, 0x1f23b: 0x6c660820,
-	0x1f23c: 0x6c8c7420, 0x1f23d: 0x6c4b9220, 0x1f23e: 0x6cb54620, 0x1f23f: 0x6c52dc20,
-	// Block 0x7c9, offset 0x1f240
-	0x1f243: 0x6c60e820,
-	0x1f244: 0x6d024e20, 0x1f245: 0x6d330820, 0x1f246: 0x6c15fa20,
-	0x1f250: 0x6d116c20, 0x1f251: 0x6c160a20,
-	0x1f258: 0x6c2cee20, 0x1f259: 0x6c1d6020, 0x1f25a: 0x6ca56220, 0x1f25b: 0x6ca56420,
-	0x1f25e: 0x6d2d5420, 0x1f25f: 0x6c0b1e20,
-	0x1f261: 0x6c161020,
-	0x1f26a: 0x6cff5a20,
-	0x1f26f: 0x6c248620,
-	0x1f270: 0x6d02f620, 0x1f271: 0x6c6e4420, 0x1f272: 0x6cb96620,
-	0x1f274: 0x6cbe6820,
-	0x1f279: 0x6c475220,
-	// Block 0x7ca, offset 0x1f280
-	0x1f284: 0x6cf4b420,
-	0x1f29c: 0x6d25e420, 0x1f29d: 0x6c0dde20,
-	0x1f2a2: 0x6cecde20,
-	0x1f2b0: 0x6ca7a620,
-	0x1f2b5: 0x6c891020,
-	0x1f2b8: 0x6cc53e20,
-	0x1f2be: 0x6c396e20, 0x1f2bf: 0x6c2b9420,
-	// Block 0x7cb, offset 0x1f2c0
-	0x1f2ca: 0x6c5af820, 0x1f2cb: 0x6d190620,
-	0x1f2cc: 0x6cfbbc20,
-	0x1f2d6: 0x6c800420, 0x1f2d7: 0x6c40a020,
-	0x1f2d9: 0x6d04ae20,
-	0x1f2dc: 0x6c897e20, 0x1f2dd: 0x6ce1a620, 0x1f2de: 0x6c5fba20,
-	0x1f2e2: 0x6c6ba620, 0x1f2e3: 0x6d2c1a20,
-	0x1f2e4: 0x6cd19420,
-	0x1f2ea: 0x6cb59220, 0x1f2eb: 0x6c0b2c20,
-	0x1f2ed: 0x6c802220, 0x1f2ee: 0x6c8c1a20,
-	0x1f2f6: 0x6d364c20, 0x1f2f7: 0x6c09bc20,
-	0x1f2f8: 0x6cd17020,
-	0x1f2fd: 0x6cd17a20, 0x1f2ff: 0x6cbdbc20,
-	// Block 0x7cc, offset 0x1f300
-	0x1f302: 0x6c0be620, 0x1f303: 0x6cf55e20,
-	0x1f309: 0x6c733a20, 0x1f30b: 0x6c5e8420,
-	0x1f30d: 0x6cf57620, 0x1f30e: 0x6cbdc420,
-	0x1f311: 0x6c4d5620,
-	0x1f315: 0x6c94e220,
-	0x1f320: 0x6d26b420,
-	0x1f328: 0x6c880a20,
-	0x1f32f: 0x6c048e20,
-	0x1f332: 0x6c526820,
-	0x1f336: 0x6cb54020,
-	0x1f33a: 0x6cb93820, 0x1f33b: 0x6d337820,
-	0x1f33c: 0x6c991a20,
-	// Block 0x7cd, offset 0x1f340
-	0x1f341: 0x6c238020,
-	0x1f344: 0x6ca30020,
-	0x1f34a: 0x6ce6a820,
-	0x1f34c: 0x6d3f6e20,
-	0x1f355: 0x6c6ed420, 0x1f356: 0x6d2f8620,
-	0x1f35f: 0x6ca71c20,
-	0x1f360: 0x6c19e420, 0x1f363: 0x6cb86620,
-	0x1f366: 0x6d236420, 0x1f367: 0x6c690020,
-	0x1f36d: 0x6d2fda20,
-	0x1f373: 0x6c2b5020,
-	0x1f374: 0x6c6f3c20,
-	0x1f378: 0x6cdc0a20, 0x1f37b: 0x6d108220,
-	0x1f37f: 0x6cedbe20,
-	// Block 0x7ce, offset 0x1f380
-	0x1f382: 0x6c89d820,
-	0x1f384: 0x6ce71220, 0x1f386: 0x6c9bfc20,
-	0x1f38b: 0x6d1faa20,
-	0x1f393: 0x6cd7e020,
-	0x1f39b: 0x6c910820,
-	0x1f39f: 0x6d19f820,
-	0x1f3a5: 0x6c1d4420,
-	0x1f3ab: 0x6c420020,
-	0x1f3ac: 0x6c6f3820,
-	0x1f3b6: 0x6cbdf820, 0x1f3b7: 0x6c6ef220,
-	0x1f3b9: 0x6d006e20,
-	// Block 0x7cf, offset 0x1f3c0
-	0x1f3c2: 0x6c51b820,
-	0x1f3c6: 0x6ce1ae20,
-	0x1f3c8: 0x6cc01220, 0x1f3c9: 0x6d007420, 0x1f3ca: 0x6c6e5420, 0x1f3cb: 0x6ca71620,
-	0x1f3cc: 0x6c6e5620, 0x1f3cf: 0x6c5fea20,
-	0x1f3d8: 0x6ce4de20, 0x1f3da: 0x6c252220, 0x1f3db: 0x6c2e7c20,
-	0x1f3dd: 0x6cbea020,
-	0x1f3e5: 0x6cb2e620, 0x1f3e6: 0x6cb29620,
-	0x1f3e8: 0x6c2e9020, 0x1f3e9: 0x6c910420,
-	0x1f3f3: 0x6c88ba20,
-	0x1f3f4: 0x6c4e0a20, 0x1f3f5: 0x6cacd620, 0x1f3f6: 0x6ce0f020,
-	0x1f3fa: 0x6d151020, 0x1f3fb: 0x6d081420,
-	0x1f3fc: 0x6cddca20, 0x1f3fd: 0x6c8e6420, 0x1f3fe: 0x6cd6d220, 0x1f3ff: 0x6cd0a820,
-	// Block 0x7d0, offset 0x1f400
-	0x1f401: 0x6c10a020, 0x1f402: 0x6cd9bc20,
-	0x1f405: 0x6cbd8c20, 0x1f406: 0x6cd06620,
-	0x1f40a: 0x6ca9f420, 0x1f40b: 0x6ce6de20,
-	0x1f40c: 0x6c677020,
-	0x1f415: 0x6cf6b820, 0x1f416: 0x6d36fe20,
-	0x1f41d: 0x6c7f5e20, 0x1f41e: 0x6c86be20, 0x1f41f: 0x6c86c020,
-	0x1f422: 0x6c519420, 0x1f423: 0x6c69cc20,
-	0x1f425: 0x6d0d0a20, 0x1f427: 0x6cd49420,
-	0x1f42a: 0x6cd2a220,
-	0x1f431: 0x6d31ae20, 0x1f433: 0x6d1e8620,
-	0x1f43a: 0x6cddc620, 0x1f43b: 0x6cf39e20,
-	// Block 0x7d1, offset 0x1f440
-	0x1f441: 0x6c169620, 0x1f442: 0x6c238820,
-	0x1f446: 0x6c720820,
-	0x1f44e: 0x6cd4a420,
-	0x1f454: 0x6c6fe620, 0x1f455: 0x6ceef020,
-	0x1f45e: 0x6c5db620,
-	0x1f464: 0x6c6a2020,
-	0x1f46c: 0x6d2a4e20,
-	0x1f476: 0x6cab7220,
-	0x1f47c: 0x6c488c20,
-	// Block 0x7d2, offset 0x1f480
-	0x1f483: 0x6c4fba20,
-	0x1f484: 0x6c84f620, 0x1f485: 0x6d356c20, 0x1f486: 0x6cfc7220,
-	0x1f489: 0x6c100c20, 0x1f48a: 0x6c170020,
-	0x1f493: 0x6d274a20,
-	0x1f494: 0x6c510020,
-	0x1f49c: 0x6ce1e420,
-	0x1f4a0: 0x6c0c4a20,
-	0x1f4a5: 0x6c2da420, 0x1f4a7: 0x6c37b620,
-	0x1f4a8: 0x6c6f3e20,
-	0x1f4ad: 0x6c2c0a20, 0x1f4ae: 0x6d164420, 0x1f4af: 0x6c7d4620,
-	0x1f4b1: 0x6d300a20, 0x1f4b3: 0x6c7de420,
-	0x1f4b4: 0x6d384e20, 0x1f4b5: 0x6c71ee20,
-	0x1f4b9: 0x6ccd6820, 0x1f4ba: 0x6ccc3820, 0x1f4bb: 0x6c2da820,
-	0x1f4bc: 0x6c046c20, 0x1f4bd: 0x6c5e7420,
-	// Block 0x7d3, offset 0x1f4c0
-	0x1f4c0: 0x6d378620, 0x1f4c3: 0x6d144e20,
-	0x1f4c5: 0x6c79b020, 0x1f4c6: 0x6cf33e20,
-	0x1f4ca: 0x6c436420, 0x1f4cb: 0x6c031220,
-	0x1f4ce: 0x6c463620,
-	0x1f4d1: 0x6cfb2420, 0x1f4d2: 0x6c484020, 0x1f4d3: 0x6c8ef620,
-	0x1f4d4: 0x6c1b7620, 0x1f4d5: 0x6c48c020, 0x1f4d6: 0x6c1fdc20,
-	0x1f4d8: 0x6c83a020, 0x1f4d9: 0x6c242a20, 0x1f4da: 0x6cd63e20,
-	0x1f4e1: 0x6c08b620,
-	0x1f4e5: 0x6c0dbc20, 0x1f4e6: 0x6c857820,
-	0x1f4e9: 0x6c6fae20, 0x1f4ea: 0x6ce54a20, 0x1f4eb: 0x6c347220,
-	0x1f4ed: 0x6d0bde20, 0x1f4ee: 0x6cc28a20,
-	0x1f4f1: 0x6c8ac820, 0x1f4f3: 0x6c787c20,
-	0x1f4f5: 0x6c449620, 0x1f4f6: 0x6d312420,
-	0x1f4f8: 0x6c3b5820,
-	// Block 0x7d4, offset 0x1f500
-	0x1f501: 0x6d146e20, 0x1f503: 0x6c6fd220,
-	0x1f504: 0x6d067c20, 0x1f505: 0x6c68cc20,
-	0x1f508: 0x6c93cc20, 0x1f509: 0x6c6fb020, 0x1f50b: 0x6c1e1e20,
-	0x1f50e: 0x6cfc7e20,
-	0x1f510: 0x6c7b1620, 0x1f511: 0x6c333e20,
-	0x1f516: 0x6c952e20, 0x1f517: 0x6cf59a20,
-	0x1f518: 0x6cbe0820, 0x1f519: 0x6c107420,
-	0x1f524: 0x6cb84620,
-	0x1f531: 0x6caf5020, 0x1f532: 0x6d0adc20, 0x1f533: 0x6c07da20,
-	0x1f534: 0x6c4cb220, 0x1f535: 0x6c484c20,
-	0x1f539: 0x6c710020,
-	0x1f53c: 0x6cb82420, 0x1f53e: 0x6c741020,
-	// Block 0x7d5, offset 0x1f540
-	0x1f544: 0x6c85c020,
-	0x1f550: 0x6c570c20, 0x1f551: 0x6c683c20,
-	0x1f558: 0x6cb84e20, 0x1f55a: 0x6d2c2620, 0x1f55b: 0x6cb82620,
-	0x1f55d: 0x6d304620, 0x1f55e: 0x6c139020, 0x1f55f: 0x6d1ce820,
-	0x1f562: 0x6d0bee20,
-	0x1f564: 0x6c1cc020,
-	0x1f568: 0x6c1b9a20, 0x1f56a: 0x6cec8620,
-	0x1f56c: 0x6cd9a620,
-	0x1f572: 0x6c76cc20, 0x1f573: 0x6d255c20,
-	0x1f57d: 0x6c1d9c20, 0x1f57f: 0x6cdd6420,
-	// Block 0x7d6, offset 0x1f580
-	0x1f580: 0x6ce85820, 0x1f583: 0x6d305620,
-	0x1f584: 0x6ce2ee20, 0x1f586: 0x6cf36820,
-	0x1f588: 0x6c264a20, 0x1f589: 0x6c860820, 0x1f58a: 0x6c139420,
-	0x1f595: 0x6cc66e20, 0x1f596: 0x6c461820, 0x1f597: 0x6cc3bc20,
-	0x1f599: 0x6c83ce20,
-	0x1f59e: 0x6ce1c620,
-	0x1f5a4: 0x6c860a20, 0x1f5a7: 0x6c9c5c20,
-	0x1f5a9: 0x6c1c3020,
-	0x1f5ac: 0x6c4bfa20, 0x1f5ad: 0x6c909420, 0x1f5ae: 0x6c209020, 0x1f5af: 0x6cdd6e20,
-	0x1f5b0: 0x6c690420, 0x1f5b1: 0x6c6d0c20,
-	0x1f5b5: 0x6c381620, 0x1f5b6: 0x6d2cf620,
-	0x1f5be: 0x6c6d0e20, 0x1f5bf: 0x6c254220,
-	// Block 0x7d7, offset 0x1f5c0
-	0x1f5c2: 0x6c136c20, 0x1f5c3: 0x6d420820,
-	0x1f5c5: 0x6d2fc420,
-	0x1f5c8: 0x6cb1c620, 0x1f5c9: 0x6d2dfc20, 0x1f5ca: 0x6cf66420, 0x1f5cb: 0x6d121420,
-	0x1f5cc: 0x6c3f7420, 0x1f5cd: 0x6c1cce20,
-	0x1f5d3: 0x6c254a20,
-	0x1f5d7: 0x6c486820,
-	0x1f5e3: 0x6c5f0020,
-	0x1f5e6: 0x6ccb3c20, 0x1f5e7: 0x6d2d8e20,
-	0x1f5e8: 0x6c8e2420, 0x1f5e9: 0x6ccb3e20, 0x1f5ea: 0x6d132220,
-	0x1f5f0: 0x6c70ba20,
-	0x1f5f6: 0x6ce87220,
-	0x1f5fa: 0x6cc7c620, 0x1f5fb: 0x6d2af820,
-	0x1f5fc: 0x6c589020,
-	// Block 0x7d8, offset 0x1f600
-	0x1f601: 0x6cfc2820, 0x1f603: 0x6cb91a20,
-	0x1f604: 0x6d2fdc20,
-	0x1f60b: 0x6c11b220,
-	0x1f60e: 0x6c7e1820, 0x1f60f: 0x6c869a20,
-	0x1f610: 0x6cc76420,
-	0x1f614: 0x6c31c020, 0x1f617: 0x6c8b3020,
-	0x1f61c: 0x6d1c0620, 0x1f61d: 0x6c86c220,
-	0x1f620: 0x6c31c620, 0x1f622: 0x6c8d8020,
-	0x1f62a: 0x6ceca220,
-	0x1f62f: 0x6c2f1820,
-	0x1f633: 0x6c6f4020,
-	0x1f635: 0x6c855e20, 0x1f636: 0x6c7a1620, 0x1f637: 0x6c791e20,
-	0x1f639: 0x6d31b220,
-	// Block 0x7d9, offset 0x1f640
-	0x1f640: 0x6c51b420, 0x1f642: 0x6c091220,
-	0x1f644: 0x6caf2820,
-	0x1f64a: 0x6c4f4820,
-	0x1f651: 0x6d3d2820, 0x1f652: 0x6c332020,
-	0x1f654: 0x6d16a420,
-	0x1f65c: 0x6c787e20, 0x1f65d: 0x6d16a620, 0x1f65e: 0x6ca0dc20,
-	0x1f661: 0x6c118a20, 0x1f663: 0x6c44ee20,
-	0x1f664: 0x6c788820, 0x1f665: 0x6cd32a20,
-	0x1f66d: 0x6c8cc620, 0x1f66e: 0x6c07dc20,
-	0x1f671: 0x6c32b820,
-	0x1f676: 0x6c72e020, 0x1f677: 0x6ca4e420,
-	0x1f678: 0x6d3f0020, 0x1f67b: 0x6d401e20,
-	// Block 0x7da, offset 0x1f680
-	0x1f683: 0x6ce0ea20,
-	0x1f686: 0x6cf9be20, 0x1f687: 0x6c4ec020,
-	0x1f68c: 0x6c94a620, 0x1f68d: 0x6cb99020,
-	0x1f693: 0x6ca12220,
-	0x1f694: 0x6cab3a20, 0x1f695: 0x6c4fc820,
-	0x1f699: 0x6d2c3420, 0x1f69a: 0x6c737020, 0x1f69b: 0x6c23a020,
-	0x1f6a0: 0x6c864420, 0x1f6a1: 0x6d2c4020, 0x1f6a2: 0x6d1fdc20, 0x1f6a3: 0x6c2d6c20,
-	0x1f6a4: 0x6c747820, 0x1f6a5: 0x6c073a20,
-	0x1f6a9: 0x6d11bc20, 0x1f6aa: 0x6cb1c820,
-	0x1f6b1: 0x6c6d3620, 0x1f6b2: 0x6c766c20, 0x1f6b3: 0x6ccb4020,
-	0x1f6b4: 0x6d102c20, 0x1f6b5: 0x6c6d3820,
-	0x1f6b9: 0x6c78dc20,
-	// Block 0x7db, offset 0x1f6c0
-	0x1f6c4: 0x6c14de20, 0x1f6c7: 0x6ca74a20,
-	0x1f6c9: 0x6cedb020, 0x1f6ca: 0x6c942a20,
-	0x1f6d0: 0x6d277a20, 0x1f6d1: 0x6d108420, 0x1f6d2: 0x6c05a020,
-	0x1f6d5: 0x6c755220, 0x1f6d6: 0x6d07fc20,
-	0x1f6d8: 0x6d385820,
-	0x1f6e0: 0x6c7ce820, 0x1f6e1: 0x6c3cda20,
-	0x1f6ea: 0x6cc17e20, 0x1f6eb: 0x6ccecc20,
-	0x1f6ec: 0x6cdce420,
-	0x1f6f0: 0x6c316820, 0x1f6f2: 0x6c7af820, 0x1f6f3: 0x6cad8c20,
-	0x1f6fa: 0x6c065020,
-	0x1f6fe: 0x6c401620, 0x1f6ff: 0x6c700c20,
-	// Block 0x7dc, offset 0x1f700
-	0x1f700: 0x6cc47c20,
-	0x1f704: 0x6c70ca20,
-	0x1f70a: 0x6cbf6a20,
-	0x1f70d: 0x6d38c220, 0x1f70e: 0x6c577420, 0x1f70f: 0x6c05e020,
-	0x1f715: 0x6d145c20, 0x1f717: 0x6d148420,
-	0x1f718: 0x6d148620,
-	0x1f71d: 0x6c995020,
-	0x1f726: 0x6cc86c20,
-	0x1f72b: 0x6c227c20,
-	0x1f72e: 0x6c4dca20,
-	0x1f730: 0x6c238420,
-	0x1f734: 0x6cf83a20,
-	0x1f739: 0x6cc2b820, 0x1f73a: 0x6ce56c20,
-	0x1f73c: 0x6c2e0c20, 0x1f73e: 0x6c4ddc20,
-	// Block 0x7dd, offset 0x1f740
-	0x1f747: 0x6d12a620,
-	0x1f74d: 0x6c353420, 0x1f74e: 0x6ceef820,
-	0x1f750: 0x6c122e20, 0x1f751: 0x6c2e2620,
-	0x1f755: 0x6c362620, 0x1f756: 0x6c2c6820,
-	0x1f758: 0x6cdb9220, 0x1f759: 0x6cc30a20,
-	0x1f75c: 0x6c368020, 0x1f75d: 0x6cab4420, 0x1f75e: 0x6d081c20,
-	0x1f762: 0x6cf47820,
-	0x1f766: 0x6d190820,
-	0x1f768: 0x6ca1fa20,
-	0x1f770: 0x6c549620,
-	0x1f774: 0x6c4dde20,
-	0x1f77f: 0x6cd22820,
-	// Block 0x7de, offset 0x1f780
-	0x1f783: 0x6cc96420,
-	0x1f788: 0x6c090820, 0x1f78a: 0x6c4dcc20, 0x1f78b: 0x6c6e4620,
-	0x1f78e: 0x6cbdfa20, 0x1f78f: 0x6c25d420,
-	0x1f790: 0x6c22a620, 0x1f792: 0x6c046e20,
-	0x1f797: 0x6c32f020,
-	0x1f79c: 0x6cf84220,
-	0x1f7a7: 0x6d33c020,
-	0x1f7a8: 0x6c949220, 0x1f7aa: 0x6c54b620, 0x1f7ab: 0x6c601420,
-	0x1f7ac: 0x6c48c820,
-	0x1f7b2: 0x6cacd820,
-	// Block 0x7df, offset 0x1f7c0
-	0x1f7c0: 0x6d39c220,
-	0x1f7c5: 0x6c08fc20, 0x1f7c7: 0x6d21ae20,
-	0x1f7d2: 0x6cb6c220,
-	0x1f7d5: 0x6c50b420, 0x1f7d6: 0x6c1ed420,
-	0x1f7d9: 0x6ccec220, 0x1f7da: 0x6c1be020, 0x1f7db: 0x6c0eac20,
-	0x1f7df: 0x6cc62420,
-	0x1f7e0: 0x6d1ef820,
-	0x1f7e4: 0x6ca39620,
-	0x1f7e9: 0x6c5b9420, 0x1f7ea: 0x6ce57620, 0x1f7eb: 0x6c04c220,
-	0x1f7f0: 0x6d057620,
-	0x1f7f4: 0x6d1f1020, 0x1f7f5: 0x6c1c0620,
-	0x1f7ff: 0x6c526220,
-	// Block 0x7e0, offset 0x1f800
-	0x1f803: 0x6cec7020,
-	0x1f806: 0x6d01ce20,
-	0x1f80a: 0x6c748c20,
-	0x1f80c: 0x6cdbec20, 0x1f80d: 0x6cbe2c20, 0x1f80e: 0x6d3bbc20,
-	0x1f815: 0x6c617620,
-	0x1f818: 0x6c091420, 0x1f81a: 0x6cf59c20,
-	0x1f820: 0x6c602820, 0x1f822: 0x6c75c620,
-	0x1f825: 0x6c89ee20, 0x1f826: 0x6d1eb620,
-	0x1f82d: 0x6c70ea20,
-	0x1f832: 0x6d266a20,
-	0x1f835: 0x6c055e20,
-	0x1f838: 0x6cafaa20, 0x1f83b: 0x6d2b3820,
-	0x1f83e: 0x6d165820, 0x1f83f: 0x6c2bc820,
-	// Block 0x7e1, offset 0x1f840
-	0x1f842: 0x6cbc9220,
-	0x1f844: 0x6cdd4c20, 0x1f846: 0x6c22ae20,
-	0x1f848: 0x6d3aa220, 0x1f849: 0x6d267420,
-	0x1f84f: 0x6c682820,
-	0x1f854: 0x6cd23e20, 0x1f857: 0x6d148820,
-	0x1f858: 0x6cf99220,
-	0x1f860: 0x6d254220,
-	0x1f865: 0x6c4c6020, 0x1f867: 0x6c789020,
-	0x1f86a: 0x6c252420, 0x1f86b: 0x6d171a20,
-	0x1f875: 0x6c85c220, 0x1f877: 0x6c2d0c20,
-	0x1f87a: 0x6cf5d620,
-	0x1f87f: 0x6c09c020,
-	// Block 0x7e2, offset 0x1f880
-	0x1f882: 0x6c0b3420, 0x1f883: 0x6c99ea20,
-	0x1f884: 0x6c85e420, 0x1f887: 0x6cda1820,
-	0x1f890: 0x6c8e5620, 0x1f891: 0x6c4b5420, 0x1f892: 0x6c78b620,
-	0x1f897: 0x6d151220,
-	0x1f899: 0x6cf7f620, 0x1f89a: 0x6d1a7c20,
-	0x1f89f: 0x6c78c020,
-	0x1f8a3: 0x6ccf6020,
-	0x1f8a7: 0x6cf2bc20,
-	0x1f8ae: 0x6cb0b620,
-	0x1f8b6: 0x6d26dc20, 0x1f8b7: 0x6c538020,
-	0x1f8ba: 0x6c867220, 0x1f8bb: 0x6c405020,
-	// Block 0x7e3, offset 0x1f8c0
-	0x1f8c3: 0x6c74d620,
-	0x1f8c4: 0x6cfae820,
-	0x1f8c9: 0x6c2cf020,
-	0x1f8cc: 0x6c878820,
-	0x1f8d3: 0x6ce83420,
-	0x1f8d8: 0x6c645820, 0x1f8db: 0x6c041420,
-	0x1f8dc: 0x6c2c0c20, 0x1f8dd: 0x6d2efc20,
-	0x1f8e3: 0x6d22bc20,
-	0x1f8e8: 0x6c333420,
-	0x1f8ed: 0x6c115c20, 0x1f8ee: 0x6ce88620,
-	0x1f8f6: 0x6cdf9420, 0x1f8f7: 0x6c5fee20,
-	0x1f8f8: 0x6cb59420, 0x1f8f9: 0x6ccd7620, 0x1f8fa: 0x6ca6fa20,
-	// Block 0x7e4, offset 0x1f900
-	0x1f906: 0x6c498c20,
-	0x1f908: 0x6c08e420, 0x1f90b: 0x6d037820,
-	0x1f913: 0x6d31fa20,
-	0x1f919: 0x6cc94a20, 0x1f91b: 0x6ca0b820,
-	0x1f91d: 0x6c3dc420,
-	0x1f922: 0x6ce1a820, 0x1f923: 0x6c055c20,
-	0x1f92a: 0x6c0c8a20,
-	0x1f92c: 0x6cf56620, 0x1f92e: 0x6c6a5e20,
-	0x1f936: 0x6c6cd220,
-	0x1f93e: 0x6cb8b020,
-	// Block 0x7e5, offset 0x1f940
-	0x1f948: 0x6cd89820, 0x1f949: 0x6c6e1620, 0x1f94b: 0x6c1b8820,
-	0x1f957: 0x6c6e1c20,
-	0x1f965: 0x6cdc3a20,
-	0x1f96f: 0x6d2bde20,
-	0x1f970: 0x6c83e020,
-	0x1f974: 0x6d3d0620,
-	0x1f979: 0x6c0ba820,
-	0x1f97f: 0x6cea6220,
-	// Block 0x7e6, offset 0x1f980
-	0x1f983: 0x6c0a1820,
-	0x1f986: 0x6c3ac220,
-	0x1f98a: 0x6c2a8220,
-	0x1f98c: 0x6d3a2620,
-	0x1f991: 0x6c70dc20,
-	0x1f999: 0x6d15b020,
-	0x1f99c: 0x6d0b6420, 0x1f99f: 0x6c1bd820,
-	0x1f9a0: 0x6c488e20, 0x1f9a1: 0x6d34d020,
-	0x1f9a8: 0x6cc61620, 0x1f9ab: 0x6d1e8a20,
-	0x1f9ad: 0x6c0ea820, 0x1f9af: 0x6c611820,
-	0x1f9b0: 0x6cb23620, 0x1f9b3: 0x6d1b9c20,
-	0x1f9b4: 0x6d0f4220, 0x1f9b5: 0x6c98b420,
-	0x1f9bd: 0x6c904e20, 0x1f9be: 0x6ca2ca20, 0x1f9bf: 0x6cc9bc20,
-	// Block 0x7e7, offset 0x1f9c0
-	0x1f9c0: 0x6c1fda20, 0x1f9c2: 0x6c221c20, 0x1f9c3: 0x6cf41a20,
-	0x1f9c4: 0x6cc5ae20,
-	0x1f9c8: 0x6c272420, 0x1f9c9: 0x6c5fc420, 0x1f9cb: 0x6d15b820,
-	0x1f9cd: 0x6cc45e20,
-	0x1f9d0: 0x6c5d9820, 0x1f9d1: 0x6c484220, 0x1f9d3: 0x6d301020,
-	0x1f9d4: 0x6cb08220, 0x1f9d7: 0x6d288220,
-	0x1f9d8: 0x6c04e020, 0x1f9d9: 0x6c6a6a20,
-	0x1f9dc: 0x6c53e220, 0x1f9df: 0x6cfc7620,
-	0x1f9e0: 0x6c5a8820,
-	0x1f9e9: 0x6d2bc420, 0x1f9ea: 0x6c270820, 0x1f9eb: 0x6c436c20,
-	0x1f9ed: 0x6cb08420, 0x1f9ef: 0x6cb14620,
-	0x1f9f0: 0x6cd23620, 0x1f9f1: 0x6c898620, 0x1f9f2: 0x6d267620, 0x1f9f3: 0x6c565020,
-	0x1f9f4: 0x6c0b6a20, 0x1f9f7: 0x6cc61e20,
-	0x1f9f9: 0x6cc62020,
-	// Block 0x7e8, offset 0x1fa00
-	0x1fa04: 0x6d13c420, 0x1fa05: 0x6d338820, 0x1fa07: 0x6c6c2820,
-	0x1fa08: 0x6cf22020, 0x1fa09: 0x6c173420, 0x1fa0b: 0x6cbf9a20,
-	0x1fa0d: 0x6d3a5620, 0x1fa0f: 0x6d2c1c20,
-	0x1fa10: 0x6cb34820, 0x1fa11: 0x6c019e20, 0x1fa13: 0x6c50c220,
-	0x1fa15: 0x6c1e5620, 0x1fa16: 0x6d0c6020,
-	0x1fa1a: 0x6cd31820, 0x1fa1b: 0x6c566020,
-	0x1fa1c: 0x6c35dc20,
-	0x1fa34: 0x6cd24020,
-	0x1fa39: 0x6ceaaa20, 0x1fa3a: 0x6c272c20, 0x1fa3b: 0x6cec6a20,
-	0x1fa3c: 0x6cb2f420, 0x1fa3d: 0x6cc6f420, 0x1fa3e: 0x6c705220,
-	// Block 0x7e9, offset 0x1fa40
-	0x1fa40: 0x6c0e4a20,
-	0x1fa50: 0x6d222820, 0x1fa51: 0x6c30a220, 0x1fa53: 0x6c4ace20,
-	0x1fa54: 0x6cd45420, 0x1fa57: 0x6cdd0820,
-	0x1fa58: 0x6ca68220, 0x1fa59: 0x6d385c20, 0x1fa5a: 0x6c905220, 0x1fa5b: 0x6c0dca20,
-	0x1fa5c: 0x6d421420, 0x1fa5d: 0x6d12d620, 0x1fa5e: 0x6cc4b420,
-	0x1fa60: 0x6c8cb220, 0x1fa61: 0x6cc96c20,
-	0x1fa64: 0x6c82b820, 0x1fa65: 0x6c35e820, 0x1fa67: 0x6d381a20,
-	0x1fa68: 0x6c612820, 0x1fa6b: 0x6c35ea20,
-	0x1fa6f: 0x6d428420,
-	0x1fa72: 0x6ca31820, 0x1fa73: 0x6d27dc20,
-	// Block 0x7ea, offset 0x1fa80
-	0x1fa8a: 0x6d016c20, 0x1fa8b: 0x6d418a20,
-	0x1fa8c: 0x6cd5aa20, 0x1fa8d: 0x6c2fce20, 0x1fa8e: 0x6c384620, 0x1fa8f: 0x6cc58a20,
-	0x1fa91: 0x6c051820, 0x1fa92: 0x6c4de020, 0x1fa93: 0x6c530a20,
-	0x1fa94: 0x6d13d020, 0x1fa96: 0x6d13d220,
-	0x1fa99: 0x6c77da20, 0x1fa9a: 0x6d16de20, 0x1fa9b: 0x6c5b1e20,
-	0x1fa9c: 0x6d329020,
-	0x1faae: 0x6c6e6220,
-	0x1fab1: 0x6c43d220,
-	0x1fab4: 0x6ca9fa20, 0x1fab5: 0x6cbca220, 0x1fab7: 0x6c2e7e20,
-	0x1fab9: 0x6c61c420, 0x1faba: 0x6d171e20, 0x1fabb: 0x6d14b620,
-	0x1fabd: 0x6c3e2c20, 0x1fabe: 0x6cd77220, 0x1fabf: 0x6cd77420,
-	// Block 0x7eb, offset 0x1fac0
-	0x1fac0: 0x6d1e1e20, 0x1fac1: 0x6c78fe20, 0x1fac2: 0x6c573020, 0x1fac3: 0x6c53b620,
-	0x1fac7: 0x6c50ec20,
-	0x1faca: 0x6c509620, 0x1facb: 0x6cb9f820,
-	0x1facc: 0x6cb85020, 0x1face: 0x6cd8a620,
-	0x1fad0: 0x6c051e20,
-	0x1faec: 0x6c6d9e20, 0x1faed: 0x6c789220,
-	0x1faf3: 0x6c001a20,
-	0x1faf4: 0x6c908020, 0x1faf6: 0x6ce84820,
-	0x1faf9: 0x6c207020,
-	0x1fafc: 0x6cd98620, 0x1fafd: 0x6c19d620, 0x1faff: 0x6cee6a20,
-	// Block 0x7ec, offset 0x1fb00
-	0x1fb02: 0x6caa5220,
-	0x1fb04: 0x6c6fb620, 0x1fb07: 0x6c0d2c20,
-	0x1fb21: 0x6cffda20, 0x1fb22: 0x6cd0f820, 0x1fb23: 0x6c545020,
-	0x1fb26: 0x6d3ad020,
-	0x1fb28: 0x6c490e20, 0x1fb29: 0x6c5eb220, 0x1fb2b: 0x6c61dc20,
-	0x1fb2d: 0x6cf5da20, 0x1fb2f: 0x6ccf3e20,
-	0x1fb30: 0x6cab7e20, 0x1fb31: 0x6c553c20, 0x1fb32: 0x6cde4220, 0x1fb33: 0x6cff7c20,
-	0x1fb35: 0x6d2a7c20,
-	0x1fb38: 0x6c0fee20, 0x1fb39: 0x6cb77820, 0x1fb3a: 0x6cebd620, 0x1fb3b: 0x6ceabe20,
-	0x1fb3c: 0x6c2a0c20, 0x1fb3e: 0x6ca33020,
-	// Block 0x7ed, offset 0x1fb40
-	0x1fb60: 0x6d2cee20, 0x1fb63: 0x6d0b9020,
-	0x1fb66: 0x6cf44020, 0x1fb67: 0x6d31aa20,
-	0x1fb68: 0x6c2a8e20, 0x1fb69: 0x6c509a20, 0x1fb6b: 0x6c01ea20,
-	0x1fb6c: 0x6cafda20, 0x1fb6d: 0x6ccb2220, 0x1fb6e: 0x6c3bbc20, 0x1fb6f: 0x6c485420,
-	0x1fb73: 0x6cb35420,
-	0x1fb77: 0x6d088820,
-	0x1fb78: 0x6c4d9c20, 0x1fb79: 0x6c427420, 0x1fb7a: 0x6c034620, 0x1fb7b: 0x6d3f7620,
-	0x1fb7c: 0x6c9c0020, 0x1fb7e: 0x6c5dba20,
-	// Block 0x7ee, offset 0x1fb80
-	0x1fba7: 0x6c2cc220,
-	0x1fba8: 0x6cf5dc20, 0x1fbab: 0x6c26ee20,
-	0x1fbac: 0x6ca47a20,
-	0x1fbb0: 0x6c2dbe20, 0x1fbb1: 0x6c95f820, 0x1fbb2: 0x6c789e20,
-	0x1fbb7: 0x6d178e20,
-	0x1fbb8: 0x6c744420, 0x1fbb9: 0x6c512420, 0x1fbbb: 0x6c602c20,
-	0x1fbbe: 0x6c51c620, 0x1fbbf: 0x6ca82820,
-	// Block 0x7ef, offset 0x1fbc0
-	0x1fbc0: 0x6cc8f620, 0x1fbc1: 0x6cb99220, 0x1fbc2: 0x6c276c20, 0x1fbc3: 0x6cce6c20,
-	0x1fbc4: 0x6c78ae20, 0x1fbc5: 0x6d3a1220, 0x1fbc7: 0x6cd1b820,
-	0x1fbc8: 0x6c93da20, 0x1fbc9: 0x6c635c20, 0x1fbca: 0x6cb10c20, 0x1fbcb: 0x6c546e20,
-	0x1fbcc: 0x6c5ec420, 0x1fbcd: 0x6cde5420, 0x1fbce: 0x6c1dac20, 0x1fbcf: 0x6cf29020,
-	0x1fbd0: 0x6c6e8020, 0x1fbd1: 0x6cb30e20, 0x1fbd2: 0x6d2cf220, 0x1fbd3: 0x6d02d420,
-	0x1fbd6: 0x6c0b9420,
-	0x1fbd9: 0x6d06ce20,
-	0x1fbde: 0x6c471020, 0x1fbdf: 0x6c6be620,
-	0x1fbe2: 0x6cfb6a20,
-	0x1fbf8: 0x6c356420, 0x1fbfa: 0x6c0f0020, 0x1fbfb: 0x6cb15420,
-	0x1fbff: 0x6d28ea20,
-	// Block 0x7f0, offset 0x1fc00
-	0x1fc01: 0x6cac2420, 0x1fc02: 0x6ce85a20,
-	0x1fc04: 0x6d1bb420,
-	0x1fc2e: 0x6cfde220,
-	0x1fc31: 0x6caaf420, 0x1fc32: 0x6c438e20, 0x1fc33: 0x6c0f0220,
-	0x1fc34: 0x6d01a420,
-	0x1fc38: 0x6d315c20, 0x1fc39: 0x6d214620, 0x1fc3a: 0x6ca6a420,
-	// Block 0x7f1, offset 0x1fc40
-	0x1fc40: 0x6d0a9220, 0x1fc41: 0x6cec3620, 0x1fc43: 0x6c021820,
-	0x1fc44: 0x6c4ece20, 0x1fc45: 0x6c52b220, 0x1fc46: 0x6c27e220,
-	0x1fc48: 0x6caac220, 0x1fc4a: 0x6c12b020, 0x1fc4b: 0x6c604820,
-	0x1fc4c: 0x6ca5ae20, 0x1fc4d: 0x6d1e4020, 0x1fc4e: 0x6cfed220,
-	0x1fc50: 0x6c1faa20, 0x1fc51: 0x6d121020, 0x1fc53: 0x6c440220,
-	0x1fc54: 0x6ce0fc20, 0x1fc55: 0x6c065220, 0x1fc56: 0x6c15be20,
-	0x1fc58: 0x6d06ec20, 0x1fc5b: 0x6c4d2020,
-	0x1fc5d: 0x6c1db620, 0x1fc5f: 0x6c65a620,
-	0x1fc60: 0x6d422620,
-	0x1fc64: 0x6cf0a420, 0x1fc65: 0x6c265220, 0x1fc66: 0x6caf6c20,
-	// Block 0x7f2, offset 0x1fc80
-	0x1fc90: 0x6c592c20, 0x1fc92: 0x6cf63a20,
-	0x1fc94: 0x6cae4c20, 0x1fc95: 0x6c8e3420, 0x1fc96: 0x6ca24a20, 0x1fc97: 0x6c9ec620,
-	0x1fc98: 0x6c812020, 0x1fc99: 0x6ce9fe20, 0x1fc9a: 0x6c048420,
-	0x1fc9d: 0x6c439820, 0x1fc9f: 0x6c7aa020,
-	0x1fca2: 0x6c636a20, 0x1fca3: 0x6c0e7c20,
-	// Block 0x7f3, offset 0x1fcc0
-	0x1fccd: 0x6c592e20, 0x1fccf: 0x6d40c420,
-	0x1fcd0: 0x6c960e20,
-	0x1fcd7: 0x6c840a20,
-	0x1fcd9: 0x6c515620, 0x1fcda: 0x6ca06220,
-	0x1fcdc: 0x6cd72a20, 0x1fcdd: 0x6cd00420, 0x1fcde: 0x6c777020, 0x1fcdf: 0x6c1c4020,
-	0x1fce0: 0x6c8d3420, 0x1fce1: 0x6c95ba20,
-	0x1fce4: 0x6d0dae20, 0x1fce5: 0x6d2fc620, 0x1fce6: 0x6c1fae20, 0x1fce7: 0x6c47ac20,
-	0x1fce8: 0x6cbde020, 0x1fcea: 0x6cdff220, 0x1fceb: 0x6c3be220,
-	0x1fcec: 0x6ce8d220,
-	0x1fcf1: 0x6c8d3620,
-	0x1fcf4: 0x6c810820,
-	// Block 0x7f4, offset 0x1fd00
-	0x1fd16: 0x6c7fa620, 0x1fd17: 0x6d299220,
-	0x1fd18: 0x6cf50820,
-	0x1fd1d: 0x6c840c20, 0x1fd1e: 0x6c000a20, 0x1fd1f: 0x6c94b620,
-	0x1fd20: 0x6d353e20, 0x1fd21: 0x6c1dc820, 0x1fd22: 0x6c67f020,
-	0x1fd24: 0x6c64c620,
-	0x1fd29: 0x6c950020, 0x1fd2a: 0x6d153020,
-	0x1fd2c: 0x6cce0820,
-	0x1fd3b: 0x6c5f0220,
-	// Block 0x7f5, offset 0x1fd40
-	0x1fd5c: 0x6d181e20, 0x1fd5d: 0x6ca8ea20,
-	0x1fd61: 0x6c5c0a20, 0x1fd63: 0x6d2bf020,
-	0x1fd66: 0x6c4e6020,
-	0x1fd68: 0x6d1afa20, 0x1fd69: 0x6c0a1a20, 0x1fd6a: 0x6c014620, 0x1fd6b: 0x6cf97220,
-	0x1fd6c: 0x6ca60020,
-	0x1fd70: 0x6c2b3e20, 0x1fd71: 0x6c65cc20, 0x1fd72: 0x6cac6820,
-	0x1fd75: 0x6d23bc20, 0x1fd76: 0x6c1fc620, 0x1fd77: 0x6d289820,
-	0x1fd79: 0x6c13fc20, 0x1fd7b: 0x6d307620,
-	0x1fd7c: 0x6ccb4220, 0x1fd7e: 0x6cae3620, 0x1fd7f: 0x6c472820,
-	// Block 0x7f6, offset 0x1fd80
-	0x1fd80: 0x6d307820,
-	0x1fd86: 0x6c842420, 0x1fd87: 0x6c30be20,
-	0x1fd89: 0x6c1dd020, 0x1fd8b: 0x6d419620,
-	0x1fd8c: 0x6cb39e20, 0x1fd8f: 0x6ccefc20,
-	0x1fd90: 0x6c8fa220,
-	0x1fda2: 0x6cd5fe20,
-	0x1fda4: 0x6c6d3a20, 0x1fda5: 0x6c8d4820,
-	0x1fda8: 0x6c774220, 0x1fda9: 0x6c7e9220, 0x1fdab: 0x6d05cc20,
-	0x1fdac: 0x6c6d3c20, 0x1fdae: 0x6c1fea20,
-	0x1fdb2: 0x6d26de20,
-	// Block 0x7f7, offset 0x1fdc0
-	0x1fdc6: 0x6c971820, 0x1fdc7: 0x6d020820,
-	0x1fdc8: 0x6c6f8620, 0x1fdc9: 0x6c627420, 0x1fdcb: 0x6d26e820,
-	0x1fdcf: 0x6c64f220,
-	0x1fdd1: 0x6c4e3020, 0x1fdd3: 0x6cc98a20,
-	0x1fdd4: 0x6c5c2820, 0x1fdd5: 0x6cbc5a20, 0x1fdd7: 0x6ccb5220,
-	0x1fdd8: 0x6d419a20, 0x1fddb: 0x6c91d620,
-	0x1fddc: 0x6c57c420, 0x1fddd: 0x6c1e6820, 0x1fdde: 0x6ccd5c20, 0x1fddf: 0x6cf31220,
-	0x1fde0: 0x6c60a220, 0x1fde1: 0x6d3d9620, 0x1fde2: 0x6cfb8c20, 0x1fde3: 0x6d141020,
-	0x1fde4: 0x6c4c8820, 0x1fde5: 0x6c7d1c20,
-	// Block 0x7f8, offset 0x1fe00
-	0x1fe11: 0x6d38a820,
-	0x1fe14: 0x6c929e20, 0x1fe16: 0x6c0e9020, 0x1fe17: 0x6cd28a20,
-	0x1fe18: 0x6d1d4a20, 0x1fe19: 0x6c7a5c20,
-	0x1fe39: 0x6d36d820, 0x1fe3a: 0x6d00e820,
-	0x1fe3d: 0x6d135420, 0x1fe3e: 0x6c36b420, 0x1fe3f: 0x6c940420,
-	// Block 0x7f9, offset 0x1fe40
-	0x1fe40: 0x6c4f1420, 0x1fe41: 0x6d135620,
-	0x1fe46: 0x6c962c20, 0x1fe47: 0x6c21dc20,
-	0x1fe48: 0x6c397020, 0x1fe49: 0x6d34a020, 0x1fe4a: 0x6d1d5020, 0x1fe4b: 0x6cf1f220,
-	0x1fe4c: 0x6cebf220, 0x1fe4d: 0x6c00d620, 0x1fe4e: 0x6d21b020,
-	0x1fe51: 0x6c571a20, 0x1fe53: 0x6c8b3220,
-	0x1fe54: 0x6c6dd620, 0x1fe55: 0x6d28ca20,
-	0x1fe67: 0x6d29e820,
-	0x1fe68: 0x6c336420, 0x1fe6a: 0x6c629220,
-	0x1fe6e: 0x6cf2a220,
-	0x1fe70: 0x6c60ba20, 0x1fe71: 0x6cf6e420, 0x1fe73: 0x6d2e8620,
-	0x1fe74: 0x6ce95c20,
-	// Block 0x7fa, offset 0x1fe80
-	0x1fe8a: 0x6d21b220,
-	0x1fe8f: 0x6c8b4620,
-	0x1fe92: 0x6d372420, 0x1fe93: 0x6cd20a20,
-	0x1fe95: 0x6c81c220, 0x1fe96: 0x6c7f6020, 0x1fe97: 0x6cf03620,
-	0x1fe98: 0x6cad7220, 0x1fe99: 0x6c1b6220, 0x1fe9a: 0x6d1d1420, 0x1fe9b: 0x6c314020,
-	0x1fe9d: 0x6c314220, 0x1fe9f: 0x6c067620,
-	0x1fea0: 0x6cbcf020, 0x1fea1: 0x6cd62020, 0x1fea3: 0x6d34a820,
-	0x1fea9: 0x6c8b4820, 0x1feab: 0x6caed620,
-	0x1fead: 0x6d300620,
-	0x1febf: 0x6cab5a20,
-	// Block 0x7fb, offset 0x1fec0
-	0x1fec2: 0x6d023c20, 0x1fec3: 0x6c60d820,
-	0x1fec4: 0x6c7f6220, 0x1fec5: 0x6d1cb020, 0x1fec6: 0x6c134c20,
-	0x1fed6: 0x6c820020,
-	0x1fedd: 0x6c952820,
-	0x1fee1: 0x6c8fbc20, 0x1fee2: 0x6cf91020,
-	0x1fee6: 0x6c8c7620,
-	0x1fee9: 0x6c4aa020,
-	0x1fef3: 0x6d03b020,
-	0x1fef7: 0x6c848620,
-	0x1fef8: 0x6c221620,
-	// Block 0x7fc, offset 0x1ff00
-	0x1ff07: 0x6cbebc20,
-	0x1ff11: 0x6c652e20, 0x1ff12: 0x6c2a4420, 0x1ff13: 0x6c661420,
-	0x1ff14: 0x6cbee820, 0x1ff15: 0x6d026e20, 0x1ff16: 0x6d1d5a20,
-	0x1ff1f: 0x6c4d0020,
-	0x1ff21: 0x6d311820, 0x1ff22: 0x6ccf0420, 0x1ff23: 0x6c9c9a20,
-	0x1ff24: 0x6c58ba20,
-	0x1ff31: 0x6c248220, 0x1ff32: 0x6cc7e820, 0x1ff33: 0x6cc95a20,
-	0x1ff34: 0x6c5e4620, 0x1ff35: 0x6d143420, 0x1ff37: 0x6c2b4e20,
-	0x1ff39: 0x6c949e20, 0x1ff3b: 0x6d193e20,
-	// Block 0x7fd, offset 0x1ff40
-	0x1ff42: 0x6c100020, 0x1ff43: 0x6cad1820,
-	0x1ff44: 0x6ce04220, 0x1ff45: 0x6c35a420, 0x1ff46: 0x6d29ee20, 0x1ff47: 0x6c23c420,
-	0x1ff53: 0x6d2d0a20,
-	0x1ff55: 0x6cf82620, 0x1ff56: 0x6c98b020,
-	0x1ff58: 0x6c7eca20, 0x1ff59: 0x6d287820,
-	0x1ff61: 0x6c36e620,
-	0x1ff65: 0x6c2f0e20,
-	0x1ff6d: 0x6c493c20,
-	0x1ff71: 0x6c596620,
-	0x1ff75: 0x6cd40620, 0x1ff76: 0x6c663220,
-	0x1ff79: 0x6d2dce20, 0x1ff7a: 0x6c610620, 0x1ff7b: 0x6c596820,
-	// Block 0x7fe, offset 0x1ff80
-	0x1ff85: 0x6cedb220, 0x1ff86: 0x6c95d820,
-	0x1ff8f: 0x6c315620,
-	0x1ff95: 0x6c893c20,
-	0x1ffa3: 0x6ca7ea20,
-	0x1ffa4: 0x6ca41c20, 0x1ffa5: 0x6c6fc820, 0x1ffa6: 0x6d266c20,
-	0x1ffa9: 0x6d108820, 0x1ffaa: 0x6c204c20,
-	0x1ffae: 0x6c11cc20, 0x1ffaf: 0x6c84f820,
-	0x1ffb0: 0x6c33d420, 0x1ffb1: 0x6ca41e20, 0x1ffb2: 0x6ca42020,
-	0x1ffb8: 0x6cc63820,
-	0x1ffbd: 0x6d267820,
-	// Block 0x7ff, offset 0x1ffc0
-	0x1ffc0: 0x6d1ee620, 0x1ffc2: 0x6d19a420,
-	0x1ffc4: 0x6c4c5820,
-	0x1ffc8: 0x6c295420,
-	0x1ffd1: 0x6d312620, 0x1ffd2: 0x6c9c3c20, 0x1ffd3: 0x6c2e6820,
-	0x1ffd6: 0x6d312820,
-	0x1ffda: 0x6c7abe20,
-	0x1ffdc: 0x6c4de220, 0x1ffdd: 0x6cd98020, 0x1ffde: 0x6c50d020, 0x1ffdf: 0x6c5e9620,
-	0x1ffe0: 0x6d302e20,
-	0x1ffe4: 0x6c0dd620, 0x1ffe6: 0x6ceef220, 0x1ffe7: 0x6ce7d220,
-	0x1ffe9: 0x6ce88c20,
-	0x1ffec: 0x6c426e20, 0x1ffed: 0x6c908220, 0x1ffee: 0x6cc2c820, 0x1ffef: 0x6c5d2220,
-	0x1fff0: 0x6d3ba420, 0x1fff1: 0x6cc3b220, 0x1fff3: 0x6c533a20,
-	0x1fff5: 0x6c296020, 0x1fff6: 0x6c510420, 0x1fff7: 0x6cdf6e20,
-	0x1fff8: 0x6c48ca20, 0x1fffa: 0x6d230220,
-	0x1fffc: 0x6d0baa20, 0x1ffff: 0x6cec8c20,
-	// Block 0x800, offset 0x20000
-	0x20000: 0x6cc43820,
-	0x20005: 0x6c744620, 0x20006: 0x6cab3820,
-	0x20009: 0x6cc29c20, 0x2000a: 0x6d347220,
-	0x2000d: 0x6c8d1820, 0x2000e: 0x6cf37020, 0x2000f: 0x6d033c20,
-	0x20010: 0x6c26ae20, 0x20012: 0x6d24f220, 0x20013: 0x6d261e20,
-	0x20017: 0x6ca13820,
-	0x20019: 0x6d1f5420,
-	0x2001e: 0x6cf45820,
-	0x20020: 0x6d2ebe20, 0x20023: 0x6d07b820,
-	0x20026: 0x6cc53c20, 0x20027: 0x6c4be220,
-	0x20028: 0x6d23be20,
-	0x2002e: 0x6cf9fc20, 0x2002f: 0x6c0b5220,
-	0x20030: 0x6d1f7e20, 0x20032: 0x6d1a1420,
-	0x20034: 0x6d083220, 0x20035: 0x6d1f8c20, 0x20036: 0x6c827a20,
-	0x2003c: 0x6ce6a620, 0x2003f: 0x6d311a20,
-	// Block 0x801, offset 0x20040
-	0x20044: 0x6d292420, 0x20045: 0x6c40ba20, 0x20046: 0x6c7e5620,
-	0x20049: 0x6cc39e20,
-	0x2004e: 0x6c70ec20,
-	0x20050: 0x6c20fa20, 0x20051: 0x6c263e20, 0x20052: 0x6cea3a20, 0x20053: 0x6c001220,
-	0x20057: 0x6d3edc20,
-	0x2005a: 0x6c59a620, 0x2005b: 0x6d167c20,
-	0x20069: 0x6c062e20, 0x2006a: 0x6c1afc20,
-	0x2006d: 0x6cc63a20,
-	0x20074: 0x6c913220, 0x20077: 0x6c6a6c20,
-	0x20078: 0x6cd30a20, 0x2007a: 0x6d413620,
-	// Block 0x802, offset 0x20080
-	0x20081: 0x6d167e20,
-	0x20084: 0x6c3bc820, 0x20085: 0x6c3bca20,
-	0x20089: 0x6ca0c420,
-	0x2008d: 0x6cd59a20,
-	0x2009b: 0x6c023e20,
-	0x2009d: 0x6cb05620, 0x2009e: 0x6cb27820, 0x2009f: 0x6cb2f820,
-	0x200a0: 0x6c639e20, 0x200a1: 0x6d38ca20, 0x200a3: 0x6cbf9e20,
-	0x200a7: 0x6d1fa620,
-	0x200a8: 0x6cdfd020, 0x200ab: 0x6cc6f620,
-	0x200ad: 0x6c9d2020,
-	0x200b6: 0x6d16ac20,
-	0x200b8: 0x6cc6fc20, 0x200bb: 0x6c8ace20,
-	0x200bc: 0x6cbf0220,
-	// Block 0x803, offset 0x200c0
-	0x200d9: 0x6c5b2020, 0x200da: 0x6c61a020,
-	0x200df: 0x6c433a20,
-	0x200e7: 0x6d1f0420,
-	0x200e8: 0x6c138220, 0x200e9: 0x6c2a6020, 0x200ea: 0x6d19ac20,
-	0x200ec: 0x6d22de20, 0x200ed: 0x6c06fc20, 0x200ef: 0x6c0ed020,
-	// Block 0x804, offset 0x20100
-	0x20114: 0x6cbb6820,
-	0x2011a: 0x6c141c20,
-	0x2011c: 0x6d02be20, 0x2011e: 0x6c1b1420,
-	0x20123: 0x6d2a7220,
-	0x20124: 0x6c7c6020, 0x20126: 0x6c3aa220,
-	0x20129: 0x6cddea20, 0x2012a: 0x6c48f420,
-	0x2012d: 0x6c342620,
-	0x20132: 0x6c4a5420,
-	0x20134: 0x6d345020,
-	// Block 0x805, offset 0x20140
-	0x2014c: 0x6c15a620, 0x2014d: 0x6ca4ec20,
-	0x20150: 0x6c553e20, 0x20152: 0x6ce21820,
-	0x20161: 0x6d175620,
-	0x20164: 0x6ca82a20, 0x20165: 0x6d2d3e20, 0x20166: 0x6c587220,
-	0x20168: 0x6c325620, 0x2016a: 0x6cb78620, 0x2016b: 0x6c12e420,
-	0x2016e: 0x6c20cc20,
-	0x20172: 0x6c264e20,
-	0x20176: 0x6d361820, 0x20177: 0x6c453020,
-	0x2017b: 0x6cf26e20,
-	// Block 0x806, offset 0x20180
-	0x20189: 0x6c325820,
-	0x2018d: 0x6c1b2420,
-	0x20191: 0x6c01be20, 0x20192: 0x6c7df820,
-	0x20194: 0x6cf2e820,
-	0x20198: 0x6d1bb620, 0x2019a: 0x6cb13e20,
-	0x201ab: 0x6d2c3020,
-	0x201ac: 0x6d3b6420, 0x201ae: 0x6cdac420,
-	0x201b3: 0x6ca6a620,
-	0x201ba: 0x6d3a1420, 0x201bb: 0x6c14fe20,
-	0x201be: 0x6c084020, 0x201bf: 0x6ca5f220,
-	// Block 0x807, offset 0x201c0
-	0x201c0: 0x6d347420, 0x201c1: 0x6c5bd420,
-	0x201d8: 0x6cfa3a20, 0x201da: 0x6d364e20, 0x201db: 0x6cf63c20,
-	0x201de: 0x6c67aa20,
-	0x201e9: 0x6c330220, 0x201ea: 0x6c3d7c20,
-	0x201ed: 0x6c685c20, 0x201ee: 0x6c176820, 0x201ef: 0x6c045020,
-	0x201f5: 0x6c8b1e20,
-	0x201fc: 0x6c025a20,
-	// Block 0x808, offset 0x20200
-	0x2020b: 0x6d2a1620,
-	0x2020c: 0x6c1f6020, 0x2020f: 0x6ceb8620,
-	0x20212: 0x6c4fd220, 0x20213: 0x6c773620,
-	0x20214: 0x6d1a7e20, 0x20216: 0x6cfcea20,
-	0x2021d: 0x6c401820, 0x2021e: 0x6c0cb620,
-	0x20220: 0x6c7c4020,
-	0x20224: 0x6cbcde20, 0x20225: 0x6cc98420,
-	0x2023f: 0x6c266220,
-	// Block 0x809, offset 0x20240
-	0x20240: 0x6d12b220,
-	0x20244: 0x6d2f0820, 0x20246: 0x6c896420,
-	0x20248: 0x6c332620,
-	0x2024d: 0x6c816620, 0x2024e: 0x6d09a620,
-	0x20258: 0x6d36a420, 0x2025a: 0x6c7a5a20,
-	0x2025e: 0x6cdc6a20, 0x2025f: 0x6cf2a020,
-	0x20263: 0x6c7a5e20,
-	0x2026f: 0x6c65d420,
-	0x20276: 0x6c67ba20,
-	0x2027b: 0x6d3caa20,
-	0x2027d: 0x6cd6dc20, 0x2027e: 0x6d219c20,
-	// Block 0x80a, offset 0x20280
-	0x20281: 0x6cc98c20, 0x20283: 0x6d23e620,
-	0x20284: 0x6c803a20,
-	0x2028a: 0x6d240620,
-	0x2028c: 0x6cba2820, 0x2028d: 0x6c72a220, 0x2028f: 0x6c8b3420,
-	0x20292: 0x6cd53e20, 0x20293: 0x6cfd1a20,
-	0x20296: 0x6c415420,
-	0x202a2: 0x6cdf4420,
-	0x202a7: 0x6ce52220,
-	0x202af: 0x6c9c1020,
-	0x202b1: 0x6c2ba220, 0x202b3: 0x6c9ddc20,
-	0x202be: 0x6c5afa20,
-	// Block 0x80b, offset 0x202c0
-	0x202c9: 0x6c351c20,
-	0x202cd: 0x6c8b4a20,
-	0x202d2: 0x6c7f6820, 0x202d3: 0x6d1aa820,
-	0x202d4: 0x6c804620, 0x202d6: 0x6c68a020,
-	0x202d8: 0x6c5e2620,
-	0x202e3: 0x6c4c4c20,
-	0x202e6: 0x6d2e9420,
-	0x202ed: 0x6c9d0820,
-	0x202f0: 0x6c7c5020,
-	0x202f7: 0x6c352620,
-	0x202ff: 0x6d1ab020,
-	// Block 0x80c, offset 0x20300
-	0x20307: 0x6c836020,
-	0x20315: 0x6c462a20,
-	0x2031b: 0x6ce6ac20,
-	0x2031c: 0x6d10c820, 0x2031e: 0x6cedf620,
-	0x20323: 0x6c6aa020,
-	0x20328: 0x6d04c220, 0x2032a: 0x6cd5c020,
-	0x20331: 0x6cf08c20,
-	0x20334: 0x6d236620,
-	// Block 0x80d, offset 0x20340
-	0x20341: 0x6d2da620,
-	0x20349: 0x6c01ee20,
-	0x2034f: 0x6cca9a20,
-	0x20350: 0x6c1e0c20, 0x20352: 0x6c7ae220,
-	0x20356: 0x6c71a020, 0x20357: 0x6c4d5220,
-	0x20362: 0x6c9e0420,
-	0x20367: 0x6c4f9420,
-	0x2036a: 0x6c1d9e20,
-	0x2036e: 0x6c8d1a20,
-	0x20370: 0x6d3f9620,
-	// Block 0x80e, offset 0x20380
-	0x20389: 0x6c7d4820,
-	0x2038c: 0x6d378c20, 0x2038e: 0x6d2f5420,
-	0x20390: 0x6c2f2e20, 0x20391: 0x6c467420, 0x20392: 0x6d279620, 0x20393: 0x6c27c620,
-	0x20394: 0x6caada20,
-	0x2039b: 0x6c0dd820,
-	0x2039d: 0x6cc47420, 0x2039e: 0x6c14c420,
-	0x203a2: 0x6cc70620, 0x203a3: 0x6d19c820,
-	0x203a4: 0x6c14c620, 0x203a7: 0x6d361a20,
-	0x203aa: 0x6c48f820, 0x203ab: 0x6caabe20,
-	0x203ac: 0x6ccfe420, 0x203af: 0x6cdac620,
-	0x203b2: 0x6cf2b820, 0x203b3: 0x6c1bb220,
-	0x203ba: 0x6c9ee220, 0x203bb: 0x6d347e20,
-	0x203be: 0x6cb50a20,
-	// Block 0x80f, offset 0x203c0
-	0x203c1: 0x6c465820,
-	0x203c6: 0x6c90fa20,
-	0x203c8: 0x6d3ea020,
-	0x203cd: 0x6c293a20, 0x203cf: 0x6cfc6820,
-	0x203d1: 0x6cc77e20,
-	0x203d7: 0x6caefe20,
-	0x203de: 0x6cf56c20,
-	0x203e2: 0x6c7aba20,
-	0x203e4: 0x6c4b2620, 0x203e5: 0x6c212e20, 0x203e6: 0x6c6baa20,
-	0x203f2: 0x6c6bac20, 0x203f3: 0x6cf57820,
-	0x203f5: 0x6c7a1a20, 0x203f7: 0x6c46ec20,
-	0x203f8: 0x6d2cac20, 0x203f9: 0x6c392620,
-	0x203fc: 0x6d015a20,
-	// Block 0x810, offset 0x20400
-	0x2040d: 0x6c585e20, 0x2040f: 0x6ca79020,
-	0x20410: 0x6cf85820,
-	0x2041b: 0x6c240820,
-	0x2041d: 0x6c4bba20,
-	0x20421: 0x6cf5b620,
-	0x20427: 0x6cb83620,
-	0x2042a: 0x6c981c20,
-	0x2042d: 0x6d303220,
-	0x20430: 0x6c734620,
-	0x20434: 0x6c0ca020,
-	// Block 0x811, offset 0x20440
-	0x20440: 0x6c0ca220,
-	0x20445: 0x6cc2d620,
-	0x2044b: 0x6cf88620,
-	0x2044e: 0x6c68f020,
-	0x20450: 0x6cc2ea20, 0x20451: 0x6d352620, 0x20452: 0x6ce46820, 0x20453: 0x6c762a20,
-	0x20458: 0x6cca1a20, 0x2045b: 0x6d3e4c20,
-	0x20463: 0x6c6adc20,
-	0x2046a: 0x6c0cec20,
-	0x2046c: 0x6c312c20, 0x2046d: 0x6d417620,
-	0x20476: 0x6d0db020,
-	// Block 0x812, offset 0x20480
-	0x20481: 0x6c0a1c20,
-	0x20485: 0x6c7b0020, 0x20487: 0x6d0eb620,
-	0x20488: 0x6cef3820, 0x2048a: 0x6c583420,
-	0x2048c: 0x6c506420,
-	0x20491: 0x6c45b820,
-	0x20494: 0x6c9b5420, 0x20497: 0x6c82e420,
-	0x20499: 0x6c2cae20, 0x2049b: 0x6c0e0220,
-	0x2049c: 0x6c584420, 0x2049f: 0x6cebfe20,
-	0x204a0: 0x6c751420,
-	0x204a8: 0x6c1bda20,
-	0x204ad: 0x6c030e20, 0x204ae: 0x6c6fa420,
-	0x204b7: 0x6c2c0e20,
-	0x204b9: 0x6d2f1c20, 0x204bb: 0x6c26e620,
-	0x204bc: 0x6cd23820, 0x204bd: 0x6c501420,
-	// Block 0x813, offset 0x204c0
-	0x204cc: 0x6d12c020,
-	0x204d7: 0x6c091a20,
-	0x204d8: 0x6cb05020, 0x204d9: 0x6d118820,
-	0x204dc: 0x6c2b1420, 0x204dd: 0x6c11ee20, 0x204de: 0x6cb20220, 0x204df: 0x6d268420,
-	0x204e0: 0x6cbc7820, 0x204e1: 0x6caf3220,
-	0x204f5: 0x6ceb7020, 0x204f6: 0x6d015c20,
-	0x204fd: 0x6d12cc20,
-	// Block 0x814, offset 0x20500
-	0x20500: 0x6c392820, 0x20501: 0x6c484620, 0x20502: 0x6c566e20, 0x20503: 0x6cc7fa20,
-	0x20509: 0x6cc4b620, 0x2050a: 0x6c3d2020, 0x2050b: 0x6c598020,
-	0x2051a: 0x6cc79020,
-	0x20522: 0x6c993020,
-	0x20525: 0x6c32f620, 0x20526: 0x6c5b9820, 0x20527: 0x6cf85a20,
-	0x20528: 0x6d04bc20, 0x2052b: 0x6cc4b820,
-	0x2052c: 0x6d13d620, 0x2052f: 0x6d303420,
-	0x20531: 0x6c61c620, 0x20532: 0x6c434020, 0x20533: 0x6d203820,
-	0x20535: 0x6cb40620,
-	// Block 0x815, offset 0x20540
-	0x20548: 0x6c1f2220, 0x20549: 0x6c240a20, 0x2054a: 0x6d303620, 0x2054b: 0x6ca79220,
-	0x2054d: 0x6cbca620,
-	0x20550: 0x6c13d220, 0x20552: 0x6ca79420, 0x20553: 0x6cdbb620,
-	0x20559: 0x6c13d420, 0x2055a: 0x6c19da20, 0x2055b: 0x6d10e020,
-	0x2055c: 0x6c324820, 0x2055d: 0x6cedc820, 0x2055f: 0x6ca76220,
-	0x20560: 0x6c9c4420,
-	0x20566: 0x6caa1620, 0x20567: 0x6cf87820,
-	0x20569: 0x6d109820, 0x2056b: 0x6c14c820,
-	// Block 0x816, offset 0x20580
-	0x20598: 0x6d018c20, 0x20599: 0x6c9ed420, 0x2059a: 0x6c796420,
-	0x2059c: 0x6c243a20, 0x2059e: 0x6cd13620, 0x2059f: 0x6cacb620,
-	0x205a0: 0x6c569c20, 0x205a2: 0x6c78b020, 0x205a3: 0x6cfcc220,
-	0x205a5: 0x6c53fa20, 0x205a6: 0x6cbf2020, 0x205a7: 0x6d3f8220,
-	0x205aa: 0x6c3e7420, 0x205ab: 0x6ca3be20,
-	0x205ad: 0x6ca69e20, 0x205af: 0x6c7a7a20,
-	0x205be: 0x6ca59820,
-	// Block 0x817, offset 0x205c0
-	0x205cd: 0x6c439020,
-	0x205d1: 0x6c53fc20, 0x205d3: 0x6c002620,
-	0x205d5: 0x6cd1ba20,
-	0x205de: 0x6d04d420, 0x205df: 0x6c230e20,
-	0x205e0: 0x6c684420, 0x205e2: 0x6d2c3220, 0x205e3: 0x6cfebe20,
-	0x205e4: 0x6c88f820, 0x205e5: 0x6cc24820,
-	0x205e8: 0x6ccd4420, 0x205e9: 0x6d01c020, 0x205eb: 0x6c461c20,
-	0x205ec: 0x6c9ed820, 0x205ed: 0x6c148020, 0x205ef: 0x6c371620,
-	0x205f3: 0x6c312220,
-	// Block 0x818, offset 0x20600
-	0x20606: 0x6c79f020,
-	0x2060a: 0x6ce58a20, 0x2060b: 0x6cd1cc20,
-	0x2060f: 0x6cca7020,
-	0x20612: 0x6c491a20,
-	0x20616: 0x6c505620, 0x20617: 0x6d367c20,
-	0x20618: 0x6d106620, 0x20619: 0x6ce70020, 0x2061a: 0x6c09ee20,
-	0x2061c: 0x6ca06420, 0x2061e: 0x6c3ebe20,
-	0x20625: 0x6cbb1420,
-	0x20639: 0x6d367e20,
-	0x2063c: 0x6cd9ca20, 0x2063f: 0x6ca7a020,
-	// Block 0x819, offset 0x20640
-	0x20640: 0x6c738020, 0x20642: 0x6d105620,
-	0x20644: 0x6c599e20,
-	0x20648: 0x6c080020, 0x20649: 0x6ca06620, 0x2064a: 0x6c176a20,
-	0x2064e: 0x6c93a420, 0x2064f: 0x6cce8220,
-	0x20650: 0x6c104220, 0x20651: 0x6d2b8820, 0x20652: 0x6cd81020,
-	0x20654: 0x6d41c420, 0x20655: 0x6d265620, 0x20656: 0x6d294c20, 0x20657: 0x6c948e20,
-	0x20665: 0x6cc1b020,
-	0x2067a: 0x6c9e9820,
-	// Block 0x81a, offset 0x20680
-	0x20680: 0x6d3bd820,
-	0x20688: 0x6c297e20, 0x2068a: 0x6d250a20,
-	0x20692: 0x6c71d220,
-	0x20695: 0x6c5b6020, 0x20696: 0x6cb7d020,
-	0x20698: 0x6d285220, 0x2069a: 0x6c97fe20,
-	0x2069c: 0x6ca0aa20,
-	0x206b1: 0x6cb16220, 0x206b3: 0x6c6d4a20,
-	0x206b9: 0x6d10b820,
-	// Block 0x81b, offset 0x206c0
-	0x206c0: 0x6c1c6820, 0x206c1: 0x6ca6c620, 0x206c2: 0x6cd9de20,
-	0x206c8: 0x6cd61a20, 0x206cb: 0x6cb16420,
-	0x206d4: 0x6c4f1620,
-	0x206e0: 0x6d10be20, 0x206e2: 0x6ca56020,
-	0x206ea: 0x6cd3f020,
-	0x206ec: 0x6d251820, 0x206ee: 0x6c114c20, 0x206ef: 0x6c6b5220,
-	0x206f9: 0x6d023e20,
-	0x206fd: 0x6d0cec20, 0x206fe: 0x6cff3620,
-	// Block 0x81c, offset 0x20700
-	0x2070b: 0x6d025020,
-	0x2070c: 0x6c86ec20, 0x2070e: 0x6c397620,
-	0x20717: 0x6d3b3c20,
-	0x20719: 0x6ca37220, 0x2071b: 0x6d3bb620,
-	0x2071e: 0x6c7c4c20,
-	0x20722: 0x6c957020,
-	0x2072b: 0x6cb83220,
-	0x20736: 0x6ceca820,
-	0x2073d: 0x6cd54c20, 0x2073f: 0x6c1a7c20,
-	// Block 0x81d, offset 0x20740
-	0x20741: 0x6d164620,
-	0x20746: 0x6c500820,
-	0x20748: 0x6c698220, 0x2074b: 0x6c5b8e20,
-	0x2074d: 0x6cffce20, 0x2074e: 0x6c222020,
-	0x2075e: 0x6c61a220,
-	0x20766: 0x6ca62e20,
-	0x20768: 0x6ca63420, 0x20769: 0x6ce3bc20,
-	0x20776: 0x6c724820,
-	0x20778: 0x6ca04220,
-	0x2077d: 0x6c83d220, 0x2077f: 0x6d382c20,
-	// Block 0x81e, offset 0x20780
-	0x20781: 0x6d06d420, 0x20783: 0x6cbf3820,
-	0x20784: 0x6c3e9620, 0x20786: 0x6c0d7e20,
-	0x2078a: 0x6c621620,
-	0x2078d: 0x6cb5f420, 0x2078e: 0x6cf89c20,
-	0x20794: 0x6c2ada20, 0x20795: 0x6c376020,
-	0x2079b: 0x6cd53220,
-	0x2079c: 0x6ce77820, 0x2079d: 0x6cff9620, 0x2079f: 0x6cb01c20,
-	0x207a8: 0x6c284020, 0x207aa: 0x6c60da20,
-	0x207b3: 0x6d002020,
-	0x207b7: 0x6c23ca20,
-	0x207bb: 0x6c0d1c20,
-	0x207bc: 0x6cc6f020,
-	// Block 0x81f, offset 0x207c0
-	0x207cd: 0x6c9e4a20,
-	0x207d2: 0x6c9e4c20,
-	0x207d4: 0x6cd49c20, 0x207d5: 0x6cff6c20, 0x207d6: 0x6c05e420, 0x207d7: 0x6cec2220,
-	0x207d9: 0x6cad8020,
-	0x207e3: 0x6c410e20,
-	0x207e5: 0x6c549c20, 0x207e6: 0x6c525420,
-	0x207e8: 0x6d39f220, 0x207e9: 0x6c48c420,
-	0x207ed: 0x6c4b3820,
-	0x207f9: 0x6c273e20,
-	0x207fc: 0x6c0d2820, 0x207fd: 0x6c5a4420,
-	// Block 0x820, offset 0x20800
-	0x20800: 0x6c13d620,
-	0x20804: 0x6cfa3420, 0x20805: 0x6c710220, 0x20807: 0x6d119a20,
-	0x20816: 0x6c3bb620, 0x20817: 0x6d2a7420,
-	0x2081b: 0x6c3c3020,
-	0x20822: 0x6c708020, 0x20823: 0x6d230a20,
-	0x20829: 0x6c5cbe20,
-	0x20832: 0x6c6ab020, 0x20833: 0x6d049020,
-	0x20835: 0x6ca3ba20,
-	0x2083b: 0x6caa1820,
-	0x2083d: 0x6cd13820, 0x2083f: 0x6d233420,
-	// Block 0x821, offset 0x20840
-	0x20842: 0x6c587620, 0x20843: 0x6c450c20,
-	0x20844: 0x6ced1620, 0x20846: 0x6ceb1e20, 0x20847: 0x6cbb7820,
-	0x20858: 0x6d1b5220, 0x2085a: 0x6c635e20,
-	0x20861: 0x6cdd7220, 0x20863: 0x6c6ade20,
-	0x20864: 0x6cf64020, 0x20865: 0x6cf25020,
-	0x20869: 0x6c986620,
-	0x20876: 0x6d0fbe20,
-	0x20878: 0x6d110820,
-	0x2087d: 0x6c986c20, 0x2087e: 0x6cab3e20,
-	// Block 0x822, offset 0x20880
-	0x20881: 0x6c017020,
-	0x20885: 0x6c910c20,
-	0x20891: 0x6c366e20, 0x20892: 0x6d3f1e20,
-	0x20897: 0x6c367020,
-	0x20899: 0x6c01c820,
-	0x2089e: 0x6c5de220,
-	0x208a0: 0x6c135220,
-	0x208b0: 0x6d049c20, 0x208b1: 0x6c625e20, 0x208b3: 0x6d424e20,
-	0x208b5: 0x6cb63620,
-	0x208ba: 0x6d32ee20,
-	// Block 0x823, offset 0x208c0
-	0x208c0: 0x6c5f2e20, 0x208c1: 0x6cb52e20, 0x208c2: 0x6c732420, 0x208c3: 0x6ca91c20,
-	0x208df: 0x6ccb7220,
-	0x208e5: 0x6c51fa20, 0x208e6: 0x6cc72c20, 0x208e7: 0x6cbdec20,
-	0x208ec: 0x6c70de20, 0x208ef: 0x6c86ee20,
-	0x208f5: 0x6cd29020,
-	0x208f8: 0x6ca6da20, 0x208f9: 0x6cfbc420, 0x208fa: 0x6c3dbc20,
-	0x208fd: 0x6cc80820,
-	// Block 0x824, offset 0x20900
-	0x20901: 0x6d04ac20, 0x20902: 0x6c4ba220,
-	0x20904: 0x6c62e020, 0x20906: 0x6c9bf820, 0x20907: 0x6c3dc020,
-	0x20909: 0x6cc9ee20, 0x2090a: 0x6d247820, 0x2090b: 0x6c69de20,
-	0x2090c: 0x6c9c2220, 0x2090d: 0x6c900e20, 0x2090e: 0x6cbb0020,
-	0x20910: 0x6c9cc620, 0x20913: 0x6d15a420,
-	0x20916: 0x6c4dc620, 0x20917: 0x6ca6e620,
-	0x20918: 0x6c81ee20, 0x20919: 0x6ccbbe20,
-	0x2091c: 0x6c8c4220, 0x2091e: 0x6d22c220,
-	0x20925: 0x6caab020,
-	0x2092b: 0x6cf4c020,
-	0x2092f: 0x6c0b3620,
-	0x20932: 0x6c0b3820, 0x20933: 0x6d079620,
-	0x20935: 0x6c649620,
-	0x20938: 0x6c0b3c20,
-	// Block 0x825, offset 0x20940
-	0x20942: 0x6c2a7a20,
-	0x20947: 0x6d3b8620,
-	0x2094b: 0x6cc72020,
-	0x20950: 0x6cd69820,
-	0x20958: 0x6c631820, 0x2095b: 0x6c5b4a20,
-	0x2095e: 0x6d2d5c20,
-	0x20962: 0x6c042e20, 0x20963: 0x6c8ac420,
-	0x20965: 0x6d003820,
-	0x2096d: 0x6c656c20, 0x2096e: 0x6cd44020,
-	0x20973: 0x6c77ba20,
-	0x20977: 0x6c490c20,
-	0x20978: 0x6c949420,
-	0x2097e: 0x6caa1a20, 0x2097f: 0x6c16e820,
-	// Block 0x826, offset 0x20980
-	0x2098e: 0x6c895220,
-	0x20999: 0x6ca3c620, 0x2099a: 0x6cc80020,
-	0x2099e: 0x6d368020,
-	0x209a6: 0x6c128620,
-	0x209b0: 0x6c867420,
-	0x209bb: 0x6c7fcc20,
-	0x209bf: 0x6c14e220,
-	// Block 0x827, offset 0x209c0
-	0x209c1: 0x6cedba20,
-	0x209c4: 0x6c856620, 0x209c7: 0x6cf49620,
-	0x209c8: 0x6cad4220, 0x209c9: 0x6d200a20, 0x209cb: 0x6c415e20,
-	0x209cf: 0x6c011420,
-	0x209d0: 0x6d04b420, 0x209d1: 0x6cd70420, 0x209d2: 0x6cc8aa20,
-	0x209d8: 0x6c04b620, 0x209d9: 0x6d1eea20,
-	0x209e2: 0x6c5d6e20,
-	0x209e5: 0x6c5a9c20,
-	0x209e8: 0x6d428c20, 0x209e9: 0x6cfe9820, 0x209eb: 0x6c9dba20,
-	0x209f0: 0x6c40d620, 0x209f1: 0x6d25e220, 0x209f3: 0x6c0ff020,
-	0x209f4: 0x6c17ba20, 0x209f5: 0x6ce9e220, 0x209f7: 0x6c0ff220,
-	0x209fd: 0x6c40d820, 0x209ff: 0x6ce55820,
-	// Block 0x828, offset 0x20a00
-	0x20a00: 0x6ca2dc20,
-	0x20a05: 0x6c556a20, 0x20a06: 0x6ca83c20,
-	0x20a0b: 0x6c5b3e20,
-	0x20a0c: 0x6c90ea20, 0x20a0e: 0x6ce35020,
-	0x20a10: 0x6cbc5420, 0x20a11: 0x6cbbee20, 0x20a12: 0x6d380620,
-	0x20a16: 0x6c2b4220,
-	0x20a1a: 0x6c8bd820,
-	0x20a1d: 0x6cc32c20, 0x20a1e: 0x6d3b9a20,
-	0x20a20: 0x6c828e20, 0x20a22: 0x6d013620,
-	0x20a25: 0x6cc56220,
-	0x20a28: 0x6c28f620, 0x20a2a: 0x6c316020, 0x20a2b: 0x6ca71420,
-	0x20a2f: 0x6cd2ae20,
-	0x20a32: 0x6cfb2020,
-	0x20a39: 0x6d343820,
-	0x20a3d: 0x6c008820, 0x20a3e: 0x6c21f220, 0x20a3f: 0x6cb42a20,
-	// Block 0x829, offset 0x20a40
-	0x20a41: 0x6cd2b620,
-	0x20a45: 0x6cc0de20, 0x20a46: 0x6cd55020, 0x20a47: 0x6c2cbe20,
-	0x20a49: 0x6cffa420, 0x20a4a: 0x6cd70a20,
-	0x20a4c: 0x6c586020,
-	0x20a50: 0x6d149220, 0x20a51: 0x6c72dc20,
-	0x20a54: 0x6d34fc20,
-	0x20a5c: 0x6d2f9e20,
-	0x20a63: 0x6d06a220,
-	0x20a6f: 0x6c905a20,
-	0x20a71: 0x6d3aca20, 0x20a73: 0x6cdd5620,
-	0x20a77: 0x6c2e8020,
-	0x20a7a: 0x6cc18420,
-	0x20a7c: 0x6c78a220, 0x20a7d: 0x6c54ba20, 0x20a7e: 0x6c708220,
-	// Block 0x82a, offset 0x20a80
-	0x20a80: 0x6cbea420,
-	0x20a8d: 0x6c0dae20,
-	0x20a95: 0x6ce3f220, 0x20a97: 0x6c744820,
-	0x20a9a: 0x6cc05a20,
-	0x20aa3: 0x6c67e420,
-	0x20aaa: 0x6d282e20,
-	0x20aad: 0x6c9a9a20, 0x20aae: 0x6caf6e20,
-	0x20ab0: 0x6cc1a020,
-	0x20abc: 0x6c9d5220, 0x20abf: 0x6ce3fe20,
-	// Block 0x82b, offset 0x20ac0
-	0x20ac2: 0x6c768c20,
-	0x20ac4: 0x6c08e820, 0x20ac6: 0x6cc11c20,
-	0x20acf: 0x6ce56620,
-	0x20ad1: 0x6c1f6c20,
-	0x20ad8: 0x6c714a20, 0x20ada: 0x6cf69620,
-	0x20ade: 0x6c8c5e20,
-	0x20aed: 0x6c1bca20, 0x20aee: 0x6c5f7e20,
-	0x20af4: 0x6c917a20,
-	0x20af8: 0x6c876220,
-	0x20afe: 0x6c73c820,
-	// Block 0x82c, offset 0x20b00
-	0x20b05: 0x6d397c20, 0x20b06: 0x6c921020,
-	0x20b0e: 0x6ca7f620,
-	0x20b14: 0x6cc2c020,
-	0x20b2d: 0x6d0b6820, 0x20b2f: 0x6c35c220,
-	0x20b31: 0x6c564020,
-	// Block 0x82d, offset 0x20b40
-	0x20b40: 0x6c982620,
-	0x20b49: 0x6cf4a020,
-	0x20b4c: 0x6c137620,
-	0x20b51: 0x6cbd1820, 0x20b52: 0x6c6a6220, 0x20b53: 0x6c52f420,
-	0x20b55: 0x6c27b620, 0x20b56: 0x6c371c20, 0x20b57: 0x6d2b3a20,
-	0x20b58: 0x6c565220, 0x20b59: 0x6c020e20, 0x20b5a: 0x6c6bb220, 0x20b5b: 0x6c3faa20,
-	0x20b5c: 0x6d1e7020, 0x20b5e: 0x6c3c1a20,
-	0x20b6c: 0x6ca26620,
-	0x20b76: 0x6ccb1620, 0x20b77: 0x6c238a20,
-	0x20b7b: 0x6c772220,
-	// Block 0x82e, offset 0x20b80
-	0x20b82: 0x6d11ea20, 0x20b83: 0x6c008c20,
-	0x20b84: 0x6c05a620, 0x20b86: 0x6cb34c20,
-	0x20b88: 0x6cd2b820, 0x20b89: 0x6c392a20, 0x20b8b: 0x6c70f420,
-	0x20b8c: 0x6cafb420, 0x20b8e: 0x6cf07420, 0x20b8f: 0x6c7a2220,
-	0x20b90: 0x6cbc8620, 0x20b91: 0x6c417220,
-	0x20ba2: 0x6c7be220, 0x20ba3: 0x6cdc2420,
-	0x20ba4: 0x6c07d620, 0x20ba5: 0x6c632820, 0x20ba6: 0x6d0b8020,
-	0x20baa: 0x6c76fe20, 0x20bab: 0x6ca7f820,
-	0x20bad: 0x6d03cc20, 0x20baf: 0x6cf85c20,
-	0x20bb1: 0x6c8c4a20, 0x20bb2: 0x6c347e20,
-	0x20bb4: 0x6c159a20,
-	// Block 0x82f, offset 0x20bc0
-	0x20bc8: 0x6cd32e20, 0x20bcb: 0x6c334020,
-	0x20bcd: 0x6c675020, 0x20bce: 0x6d222a20, 0x20bcf: 0x6c922020,
-	0x20bd0: 0x6c372020, 0x20bd3: 0x6c476420,
-	0x20bd5: 0x6cefa020, 0x20bd6: 0x6c17d620, 0x20bd7: 0x6c590020,
-	0x20bd8: 0x6c0ce220, 0x20bdb: 0x6c4e9420,
-	0x20bdc: 0x6ce99e20, 0x20bdd: 0x6ca32420, 0x20bde: 0x6cb6e620,
-	0x20be0: 0x6ce7e820, 0x20be1: 0x6d24d220, 0x20be2: 0x6cede020,
-	0x20be4: 0x6cf3b020, 0x20be5: 0x6c434220,
-	0x20be8: 0x6c792e20, 0x20bea: 0x6d14ba20,
-	0x20bf8: 0x6cfe9a20, 0x20bfa: 0x6c4ae420, 0x20bfb: 0x6d0b8c20,
-	0x20bfc: 0x6cdc2e20, 0x20bfd: 0x6cd95420, 0x20bff: 0x6d3d3820,
-	// Block 0x830, offset 0x20c00
-	0x20c02: 0x6ce84a20, 0x20c03: 0x6cfbf420,
-	0x20c08: 0x6d2b4420, 0x20c09: 0x6c85c620,
-	0x20c0c: 0x6d3acc20, 0x20c0e: 0x6c6aa220,
-	0x20c11: 0x6ce3e820,
-	0x20c14: 0x6d009c20, 0x20c15: 0x6cbf1220, 0x20c17: 0x6d0b9420,
-	0x20c18: 0x6c708620, 0x20c1b: 0x6d1a5a20,
-	0x20c1c: 0x6d345220, 0x20c1e: 0x6c76d020, 0x20c1f: 0x6d3e2220,
-	0x20c21: 0x6c77f420, 0x20c23: 0x6ca81220,
-	0x20c24: 0x6cbb0620, 0x20c25: 0x6ced0220, 0x20c26: 0x6d2abc20,
-	0x20c28: 0x6c708820, 0x20c2a: 0x6d3f4220,
-	// Block 0x831, offset 0x20c40
-	0x20c44: 0x6d0b9620, 0x20c47: 0x6c8bae20,
-	0x20c49: 0x6cb5c020,
-	0x20c4e: 0x6c5b3420,
-	0x20c53: 0x6cb77a20,
-	0x20c55: 0x6d0fa820, 0x20c56: 0x6cdc3620,
-	0x20c58: 0x6cb6f220, 0x20c59: 0x6c4a5620,
-	0x20c62: 0x6cbe1020, 0x20c63: 0x6c353e20,
-	0x20c65: 0x6d429820,
-	0x20c68: 0x6d2b4820, 0x20c69: 0x6cb77c20, 0x20c6a: 0x6c602e20,
-	0x20c6c: 0x6ceb2020, 0x20c6d: 0x6c2e9c20, 0x20c6f: 0x6c5bbe20,
-	0x20c70: 0x6c98e420, 0x20c72: 0x6d063e20,
-	0x20c75: 0x6c53fe20, 0x20c76: 0x6d0d7c20, 0x20c77: 0x6cfdc220,
-	0x20c78: 0x6c231020, 0x20c79: 0x6c555820,
-	0x20c7c: 0x6c01c020, 0x20c7e: 0x6c0de420,
-	// Block 0x832, offset 0x20c80
-	0x20c87: 0x6c348e20,
-	0x20c90: 0x6d3a6a20, 0x20c91: 0x6c2e9e20, 0x20c92: 0x6d1ea220, 0x20c93: 0x6cb6fa20,
-	0x20c94: 0x6cd26820, 0x20c95: 0x6d099a20, 0x20c96: 0x6d1ea420, 0x20c97: 0x6c76ae20,
-	0x20c98: 0x6cbc2420, 0x20c9b: 0x6cbab620,
-	0x20c9c: 0x6cae3e20, 0x20c9f: 0x6cc2ee20,
-	0x20ca1: 0x6d1c6e20,
-	0x20ca7: 0x6ccbf220,
-	0x20cab: 0x6ce1d020,
-	0x20cad: 0x6c53c020, 0x20cae: 0x6cb06220, 0x20caf: 0x6d110a20,
-	0x20cb4: 0x6ce8bc20, 0x20cb5: 0x6c148220, 0x20cb7: 0x6cfa3c20,
-	0x20cb8: 0x6cb5f620, 0x20cba: 0x6cbf3a20,
-	0x20cbd: 0x6c6d1220,
-	// Block 0x833, offset 0x20cc0
-	0x20cc8: 0x6d316020,
-	0x20ccc: 0x6d39ae20, 0x20cce: 0x6cf64420,
-	0x20cd0: 0x6cf22a20, 0x20cd1: 0x6d37f820,
-	0x20cd5: 0x6cdc4420,
-	0x20cd8: 0x6c781020, 0x20cd9: 0x6c7e0c20, 0x20cda: 0x6c777220,
-	0x20cdd: 0x6c176c20, 0x20cde: 0x6c09f020, 0x20cdf: 0x6ca13a20,
-	0x20ce0: 0x6d3b1220, 0x20ce1: 0x6c4edc20, 0x20ce2: 0x6d227820, 0x20ce3: 0x6d153220,
-	0x20ce4: 0x6c966c20, 0x20ce7: 0x6cb7aa20,
-	0x20ce8: 0x6c4c0020, 0x20ce9: 0x6c97e420, 0x20cea: 0x6c89f420, 0x20ceb: 0x6c8bc020,
-	0x20cec: 0x6d40c620, 0x20ced: 0x6c82cc20, 0x20cee: 0x6c56b220, 0x20cef: 0x6c209220,
-	0x20cf0: 0x6cb7ac20, 0x20cf1: 0x6c824420,
-	// Block 0x834, offset 0x20d00
-	0x20d01: 0x6c1ac420, 0x20d03: 0x6cb33020,
-	0x20d04: 0x6c2eca20,
-	0x20d0a: 0x6c82ce20,
-	0x20d0e: 0x6d160420,
-	0x20d13: 0x6c2d7620,
-	0x20d16: 0x6c33a420, 0x20d17: 0x6c42d620,
-	0x20d18: 0x6c54f220, 0x20d1a: 0x6cff0020, 0x20d1b: 0x6c40ca20,
-	0x20d1c: 0x6cae8020,
-	0x20d2c: 0x6cd06a20,
-	0x20d31: 0x6cef2a20,
-	0x20d3b: 0x6c335820,
-	0x20d3c: 0x6c177220, 0x20d3d: 0x6d1b0420, 0x20d3e: 0x6c7b3a20, 0x20d3f: 0x6c7a6020,
-	// Block 0x835, offset 0x20d40
-	0x20d41: 0x6d41ce20, 0x20d42: 0x6c47ca20,
-	0x20d45: 0x6d285420, 0x20d46: 0x6d36da20,
-	0x20d49: 0x6c629420, 0x20d4a: 0x6c199020,
-	0x20d56: 0x6d020e20,
-	0x20d5b: 0x6d419e20,
-	0x20d5c: 0x6c017420, 0x20d5d: 0x6c4fb220,
-	0x20d60: 0x6cb36020, 0x20d62: 0x6c2b9820, 0x20d63: 0x6d135820,
-	0x20d67: 0x6ca4c420,
-	0x20d71: 0x6c6b4220, 0x20d72: 0x6c059220, 0x20d73: 0x6c804020,
-	0x20d74: 0x6c124820, 0x20d76: 0x6c0a6620,
-	0x20d7b: 0x6d2e1a20,
-	0x20d7c: 0x6cb7e620,
-	// Block 0x836, offset 0x20d80
-	0x20d82: 0x6ca4c620,
-	0x20d85: 0x6c940c20, 0x20d87: 0x6c7c0a20,
-	0x20d89: 0x6ca08420, 0x20d8b: 0x6c82e620,
-	0x20d8c: 0x6cad7420,
-	0x20d92: 0x6c86c420, 0x20d93: 0x6c136420,
-	0x20d95: 0x6c299820, 0x20d96: 0x6c82e820,
-	0x20d99: 0x6c36cc20, 0x20d9b: 0x6c086020,
-	0x20d9c: 0x6c74e820,
-	0x20da5: 0x6d083420, 0x20da6: 0x6ca89420,
-	0x20da8: 0x6c4d7c20,
-	0x20dae: 0x6cfc4220,
-	0x20db0: 0x6c661620, 0x20db1: 0x6c9c9e20, 0x20db2: 0x6ca8a020,
-	0x20dbb: 0x6c124a20,
-	0x20dbc: 0x6cd97820, 0x20dbd: 0x6d2ba820, 0x20dbe: 0x6d194220,
-	// Block 0x837, offset 0x20dc0
-	0x20dc2: 0x6c1d3020,
-	0x20dc4: 0x6c125020,
-	0x20dc9: 0x6c830620, 0x20dca: 0x6caad220, 0x20dcb: 0x6c876420,
-	0x20dce: 0x6c84ba20, 0x20dcf: 0x6c957220,
-	0x20dd3: 0x6ce18a20,
-	0x20dd6: 0x6ca8c420, 0x20dd7: 0x6ca8c620,
-	0x20dd9: 0x6c5fae20, 0x20ddb: 0x6c831220,
-	0x20ddd: 0x6ca48020,
-	0x20de0: 0x6c8c1420, 0x20de1: 0x6c8dce20,
-	0x20de4: 0x6cfbe220, 0x20de5: 0x6d24a820, 0x20de7: 0x6d28ec20,
-	0x20de8: 0x6cc34a20, 0x20de9: 0x6c8ac020,
-	0x20def: 0x6d22ce20,
-	0x20df0: 0x6c597620,
-	0x20dfa: 0x6ca4de20,
-	0x20dfc: 0x6d0a7820, 0x20dfe: 0x6c711020, 0x20dff: 0x6c5dbc20,
-	// Block 0x838, offset 0x20e00
-	0x20e01: 0x6d179420,
-	0x20e0a: 0x6cf71420, 0x20e0b: 0x6ccb8a20,
-	0x20e0c: 0x6c697020, 0x20e0d: 0x6d1de020,
-	0x20e15: 0x6cd18c20, 0x20e16: 0x6c6d8420, 0x20e17: 0x6ced6e20,
-	0x20e18: 0x6d129e20, 0x20e19: 0x6c6f4420,
-	0x20e1c: 0x6c45d020,
-	0x20e21: 0x6c5aa020,
-	0x20e2a: 0x6c37a420,
-	0x20e35: 0x6c4e7a20,
-	0x20e3c: 0x6c3e3020,
-	// Block 0x839, offset 0x20e40
-	0x20e40: 0x6c3e4a20, 0x20e41: 0x6d3d4a20, 0x20e42: 0x6c5eb620,
-	0x20e4f: 0x6c053a20,
-	0x20e52: 0x6cb56620, 0x20e53: 0x6cd2a620,
-	0x20e55: 0x6c2df420, 0x20e56: 0x6cadfa20, 0x20e57: 0x6cfbe420,
-	0x20e58: 0x6cc9f620,
-	0x20e5d: 0x6c169220, 0x20e5e: 0x6d264620,
-	0x20e60: 0x6c455820, 0x20e62: 0x6cf34220,
-	0x20e64: 0x6c3b0a20, 0x20e67: 0x6c159020,
-	0x20e69: 0x6ca58420, 0x20e6a: 0x6c73d820,
-	0x20e6c: 0x6d2f8220, 0x20e6e: 0x6cb96c20,
-	0x20e71: 0x6c029820,
-	0x20e76: 0x6cedf820, 0x20e77: 0x6d379020,
-	0x20e79: 0x6c597820, 0x20e7b: 0x6c106620,
-	0x20e7c: 0x6d3a5a20, 0x20e7d: 0x6c092e20, 0x20e7e: 0x6c173620, 0x20e7f: 0x6d328620,
-	// Block 0x83a, offset 0x20e80
-	0x20e80: 0x6c3de620, 0x20e81: 0x6c79b820, 0x20e83: 0x6d422c20,
-	0x20e84: 0x6d086c20, 0x20e86: 0x6c3fb220,
-	0x20e8a: 0x6d118a20,
-	0x20e8d: 0x6c0e4e20, 0x20e8f: 0x6c06e220,
-	0x20e90: 0x6d007c20, 0x20e91: 0x6cd33020, 0x20e92: 0x6d149620,
-	0x20e94: 0x6c531020, 0x20e95: 0x6c251c20, 0x20e97: 0x6d16e620,
-	0x20e98: 0x6d3b7620,
-	0x20e9d: 0x6c1bf620,
-	0x20ea4: 0x6cb2fe20,
-	0x20ea8: 0x6d1a3a20,
-	0x20eb1: 0x6d260a20,
-	0x20eb6: 0x6c6edc20,
-	0x20eb9: 0x6c995c20, 0x20eba: 0x6cba4820,
-	0x20ebc: 0x6d172420,
-	// Block 0x83b, offset 0x20ec0
-	0x20ec0: 0x6cf3b220,
-	0x20ecd: 0x6c069820, 0x20ece: 0x6c5dbe20, 0x20ecf: 0x6c239420,
-	0x20ed0: 0x6c797220,
-	0x20ed5: 0x6cde4820, 0x20ed7: 0x6c4ea620,
-	0x20ed8: 0x6cba4e20,
-	0x20edc: 0x6d345420,
-	0x20ee2: 0x6ccb2420,
-	0x20ee5: 0x6cb8d620, 0x20ee6: 0x6c4cb420,
-	0x20ee9: 0x6c4bbe20,
-	0x20eec: 0x6c649820, 0x20eed: 0x6d37b820, 0x20eee: 0x6c9e2220, 0x20eef: 0x6c4afa20,
-	0x20ef0: 0x6cd37e20, 0x20ef1: 0x6ca1d220, 0x20ef2: 0x6c363220, 0x20ef3: 0x6c039e20,
-	0x20ef4: 0x6c7e7220,
-	0x20ef8: 0x6d392820, 0x20efa: 0x6c603020,
-	// Block 0x83c, offset 0x20f00
-	0x20f00: 0x6d2a4a20,
-	0x20f04: 0x6d2bd820, 0x20f05: 0x6d179820, 0x20f07: 0x6c468420,
-	0x20f0a: 0x6c4a6e20, 0x20f0b: 0x6d1bc420,
-	0x20f0c: 0x6ccc9820, 0x20f0d: 0x6c513420, 0x20f0e: 0x6c057820, 0x20f0f: 0x6ca12a20,
-	0x20f10: 0x6c9b1e20, 0x20f13: 0x6cf4fe20,
-	0x20f14: 0x6c277620, 0x20f17: 0x6c6f1620,
-	0x20f1c: 0x6c4ed020, 0x20f1f: 0x6ce70220,
-	0x20f20: 0x6c79be20, 0x20f21: 0x6c841220, 0x20f22: 0x6d368220, 0x20f23: 0x6c5bf420,
-	0x20f24: 0x6d296e20, 0x20f26: 0x6c2dfc20, 0x20f27: 0x6c244420,
-	0x20f31: 0x6d368420, 0x20f33: 0x6c7adc20,
-	0x20f35: 0x6cfe4a20, 0x20f36: 0x6c57ba20, 0x20f37: 0x6c8a0c20,
-	0x20f38: 0x6c255620, 0x20f39: 0x6cbb9a20, 0x20f3a: 0x6c692420,
-	0x20f3c: 0x6d05d020, 0x20f3d: 0x6c37da20, 0x20f3f: 0x6cead020,
-	// Block 0x83d, offset 0x20f40
-	0x20f40: 0x6ce00020, 0x20f41: 0x6d36a820,
-	0x20f48: 0x6ca51020, 0x20f49: 0x6c99ac20, 0x20f4a: 0x6c2c8c20, 0x20f4b: 0x6c135820,
-	0x20f4e: 0x6c693a20, 0x20f4f: 0x6c884820,
-	0x20f51: 0x6ccc1820, 0x20f52: 0x6c28aa20,
-	0x20f55: 0x6cdc6c20, 0x20f56: 0x6c884a20, 0x20f57: 0x6c4cf020,
-	0x20f5a: 0x6c0c7c20,
-	0x20f5c: 0x6c22e220, 0x20f5d: 0x6c2d7e20, 0x20f5e: 0x6c93fc20, 0x20f5f: 0x6ca64e20,
-	0x20f60: 0x6d0dda20, 0x20f61: 0x6c7fbc20,
-	0x20f64: 0x6c415620, 0x20f65: 0x6c1eb420,
-	0x20f69: 0x6c0a8820, 0x20f6a: 0x6d40ea20, 0x20f6b: 0x6c5c6620,
-	0x20f6d: 0x6c7f4220, 0x20f6e: 0x6cfbba20, 0x20f6f: 0x6c3bfc20,
-	0x20f70: 0x6c520220,
-	0x20f79: 0x6d124020, 0x20f7a: 0x6d2e3220,
-	0x20f7c: 0x6ca56620, 0x20f7e: 0x6c95d020,
-	// Block 0x83e, offset 0x20f80
-	0x20f80: 0x6d25d620, 0x20f82: 0x6ca5ac20,
-	0x20f89: 0x6cc58220,
-	0x20f9c: 0x6c43e820, 0x20f9e: 0x6c65a820, 0x20f9f: 0x6cb2b420,
-	0x20fa3: 0x6c0d1620,
-	0x20fa6: 0x6c66d020,
-	0x20fa9: 0x6c0e2e20,
-	0x20faf: 0x6c9d1820,
-	0x20fb0: 0x6c563420,
-	0x20fb4: 0x6c2df220, 0x20fb6: 0x6d1e8c20, 0x20fb7: 0x6d108c20,
-	0x20fb8: 0x6c07d020, 0x20fba: 0x6c189820, 0x20fbb: 0x6c5e8c20,
-	0x20fbd: 0x6d108e20,
-	// Block 0x83f, offset 0x20fc0
-	0x20fc7: 0x6c491020,
-	0x20fc8: 0x6d0e5e20,
-	0x20fd5: 0x6c1bc820, 0x20fd7: 0x6ccc3a20,
-	0x20fd8: 0x6d0d3820, 0x20fd9: 0x6d165e20, 0x20fda: 0x6d166020, 0x20fdb: 0x6c17fc20,
-	0x20fde: 0x6c4e8220, 0x20fdf: 0x6c597420,
-	0x20fe4: 0x6cd71020, 0x20fe5: 0x6cdc2220, 0x20fe6: 0x6cc56820, 0x20fe7: 0x6cdfcc20,
-	0x20fe8: 0x6d34e420, 0x20fea: 0x6c391e20, 0x20feb: 0x6c3cc620,
-	0x20ff0: 0x6cdfce20, 0x20ff2: 0x6c9c3620, 0x20ff3: 0x6cafb620,
-	0x20ff4: 0x6c106820, 0x20ff5: 0x6ca30e20, 0x20ff6: 0x6ce48220, 0x20ff7: 0x6c036620,
-	0x20ff8: 0x6d16b020,
-	// Block 0x840, offset 0x21000
-	0x21002: 0x6d0d4820,
-	0x21004: 0x6ce54c20, 0x21006: 0x6d10ce20, 0x21007: 0x6cd04c20,
-	0x21008: 0x6c77dc20, 0x21009: 0x6ce72420, 0x2100b: 0x6d084420,
-	0x21013: 0x6d202820,
-	0x21015: 0x6c043a20,
-	0x21019: 0x6cf9a220, 0x2101a: 0x6c938420, 0x2101b: 0x6c7dce20,
-	0x2101c: 0x6d29d220, 0x2101d: 0x6cc02c20,
-	0x21020: 0x6c243020, 0x21021: 0x6d416a20, 0x21022: 0x6c90e020,
-	0x21024: 0x6cf9a420,
-	0x2102f: 0x6ccfca20,
-	0x21032: 0x6cb43020,
-	0x21034: 0x6c6da620, 0x21035: 0x6cbaae20, 0x21036: 0x6d175820,
-	0x21038: 0x6ca81420, 0x21039: 0x6c32fc20, 0x2103b: 0x6c6ab420,
-	0x2103c: 0x6cdc3820, 0x2103d: 0x6d2e5820, 0x2103e: 0x6c23e420,
-	// Block 0x841, offset 0x21040
-	0x21041: 0x6c07e420, 0x21042: 0x6c491220, 0x21043: 0x6ccf2a20,
-	0x21045: 0x6c6cfe20, 0x21046: 0x6c2c3e20,
-	0x21051: 0x6c27d220, 0x21053: 0x6ca3a220,
-	0x21055: 0x6ca9fc20, 0x21057: 0x6c601820,
-	0x21058: 0x6d0c8220, 0x2105a: 0x6caa2020,
-	0x2105c: 0x6c325a20, 0x2105d: 0x6cf09020, 0x2105e: 0x6cb0f420,
-	0x21062: 0x6c555a20,
-	0x21064: 0x6c644020, 0x21065: 0x6d12ee20, 0x21066: 0x6c759220, 0x21067: 0x6c7f9c20,
-	0x21068: 0x6c7e7420, 0x21069: 0x6d19de20,
-	0x2106d: 0x6ce9a220,
-	0x21075: 0x6ca4f620,
-	0x2107a: 0x6d411c20,
-	0x2107f: 0x6c96c220,
-	// Block 0x842, offset 0x21080
-	0x21080: 0x6cd7f020, 0x21081: 0x6d365420,
-	0x21084: 0x6c5ac020, 0x21085: 0x6d3c8e20, 0x21087: 0x6c5bd820,
-	0x2108d: 0x6c1e8c20, 0x2108f: 0x6c182420,
-	0x21092: 0x6d04da20, 0x21093: 0x6c7fa220,
-	0x21095: 0x6c232620, 0x21096: 0x6cd0bc20, 0x21097: 0x6ca13c20,
-	0x21098: 0x6d140220, 0x21099: 0x6d111a20, 0x2109a: 0x6cf7fa20, 0x2109b: 0x6d419020,
-	0x2109c: 0x6c0e2820,
-	0x210a7: 0x6d216c20,
-	0x210a9: 0x6c927e20,
-	0x210ae: 0x6ce9b620, 0x210af: 0x6ceffe20,
-	0x210b1: 0x6c3b8820, 0x210b2: 0x6cd06c20,
-	0x210bb: 0x6c8a0e20,
-	// Block 0x843, offset 0x210c0
-	0x210c2: 0x6cd56a20, 0x210c3: 0x6c284220,
-	0x210c4: 0x6c732620, 0x210c5: 0x6d21a020, 0x210c6: 0x6d034a20, 0x210c7: 0x6d114220,
-	0x210c8: 0x6cda5820,
-	0x210d2: 0x6c5d8020,
-	0x210d4: 0x6cb92220,
-	0x210da: 0x6c967c20,
-	0x210dd: 0x6c767020,
-	0x210e1: 0x6c91e620, 0x210e3: 0x6d1ebc20,
-	0x210ee: 0x6cfd2e20,
-	0x210f9: 0x6cf40620, 0x210fb: 0x6d1b2020,
-	0x210fc: 0x6cf72c20, 0x210ff: 0x6d2d0820,
-	// Block 0x844, offset 0x21100
-	0x21100: 0x6d027020,
-	0x21104: 0x6cc1fa20,
-	0x21108: 0x6c84be20,
-	0x2110d: 0x6cb95820,
-	0x21114: 0x6c8dd020, 0x21115: 0x6c947820,
-	0x2111a: 0x6c14b220,
-	0x21126: 0x6d334420,
-	0x21128: 0x6d0c8420,
-	0x21132: 0x6d1b3820, 0x21133: 0x6c7c5c20,
-	0x21137: 0x6cc0d220,
-	0x21139: 0x6c3dd820, 0x2113b: 0x6d22d420,
-	// Block 0x845, offset 0x21140
-	0x21141: 0x6cb57e20,
-	0x21146: 0x6cb75620, 0x21147: 0x6c61a620,
-	0x21148: 0x6d24ce20,
-	0x2114e: 0x6c434420, 0x2114f: 0x6c734820,
-	0x21151: 0x6cb5a020, 0x21153: 0x6c411020,
-	0x21155: 0x6cc37220,
-	0x2115a: 0x6cf09220,
-	0x21167: 0x6d368620,
-	0x2116b: 0x6c65ba20,
-	0x2116d: 0x6cd8d620,
-	0x21170: 0x6d188c20, 0x21171: 0x6cb91c20,
-	0x2117c: 0x6c856220, 0x2117f: 0x6d29ce20,
-	// Block 0x846, offset 0x21180
-	0x21180: 0x6d168020, 0x21182: 0x6c110620, 0x21183: 0x6d168220,
-	0x21184: 0x6c437220, 0x21186: 0x6c2e6e20,
-	0x21188: 0x6d33a420, 0x21189: 0x6d16ec20, 0x2118b: 0x6d28fa20,
-	0x2118c: 0x6c275220, 0x2118e: 0x6cdab220,
-	0x21194: 0x6c6b4420, 0x21195: 0x6c193820, 0x21196: 0x6cc1fc20,
-	0x21198: 0x6c4e7820, 0x21199: 0x6cfb1e20,
-	0x211a0: 0x6cc2ae20, 0x211a1: 0x6c6a5620,
-	0x211a5: 0x6c733820,
-	0x211aa: 0x6c285c20,
-	0x211ad: 0x6c6c2420,
-	0x211b4: 0x6c0da820, 0x211b5: 0x6c551a20,
-	0x211b9: 0x6c73da20, 0x211bb: 0x6d20b020,
-	// Block 0x847, offset 0x211c0
-	0x211c3: 0x6c84fa20,
-	0x211c4: 0x6cbb0420, 0x211c5: 0x6cd70620, 0x211c6: 0x6c7a2420,
-	0x211c8: 0x6d31b620,
-	0x211cd: 0x6c3de820, 0x211ce: 0x6ccfac20,
-	0x211d2: 0x6c20c020,
-	0x211d5: 0x6ce72620, 0x211d7: 0x6d16ee20,
-	0x211d9: 0x6d0f9220,
-	0x211dc: 0x6ceafa20, 0x211dd: 0x6d385e20, 0x211de: 0x6c5ff220,
-	0x211e4: 0x6d0a7a20, 0x211e6: 0x6cd05220, 0x211e7: 0x6d078820,
-	0x211ed: 0x6c8e4820, 0x211ee: 0x6d24dc20, 0x211ef: 0x6c554220,
-	0x211f0: 0x6d334820, 0x211f3: 0x6cae6620,
-	0x211f7: 0x6c742220,
-	// Block 0x848, offset 0x21200
-	0x21202: 0x6d362020, 0x21203: 0x6cb0f620,
-	0x21204: 0x6d261820, 0x21206: 0x6c649a20,
-	0x2120a: 0x6cad0220,
-	0x2120e: 0x6d3bca20,
-	0x21210: 0x6cfb6e20, 0x21212: 0x6c080220,
-	0x21214: 0x6c232820, 0x21216: 0x6ca13e20,
-	0x2121a: 0x6c4c7420,
-	0x2121e: 0x6c1a3420, 0x2121f: 0x6cbb9c20,
-	0x21226: 0x6c0a4a20,
-	0x21229: 0x6cbb4820, 0x2122b: 0x6d38aa20,
-	0x21232: 0x6c38d020, 0x21233: 0x6c0cc420,
-	0x2123e: 0x6c0fa020, 0x2123f: 0x6cc73220,
-	// Block 0x849, offset 0x21240
-	0x21245: 0x6c2f8820, 0x21246: 0x6cc32e20, 0x21247: 0x6c703c20,
-	0x21248: 0x6d117420,
-	0x21253: 0x6cf98620,
-	0x21256: 0x6d2a3e20,
-	0x2125d: 0x6c27c820, 0x2125f: 0x6cf44420,
-	0x21260: 0x6ceb1420, 0x21262: 0x6c54c820,
-	0x21267: 0x6cf64620,
-	0x2126c: 0x6c7f1a20, 0x2126e: 0x6c3a1620,
-	0x21279: 0x6c55ec20,
-	// Block 0x84a, offset 0x21280
-	0x21286: 0x6cfa7220,
-	0x21289: 0x6ccd2c20,
-	0x2128d: 0x6c3a8420,
-	0x21290: 0x6c261820, 0x21292: 0x6c3e3220,
-	0x21294: 0x6c1f3020,
-	0x2129d: 0x6c2fd020, 0x2129e: 0x6c807020,
-	0x212a9: 0x6cf7fc20,
-	0x212af: 0x6c0c1420,
-	0x212b0: 0x6d23e820, 0x212b1: 0x6cdc6e20, 0x212b2: 0x6cf80c20,
-	0x212b7: 0x6cb3e620,
-	0x212be: 0x6c697c20,
-	// Block 0x84b, offset 0x212c0
-	0x212c0: 0x6d166420, 0x212c3: 0x6cecb820,
-	0x212c4: 0x6c611e20, 0x212c6: 0x6cecc620, 0x212c7: 0x6ce9f220,
-	0x212cb: 0x6c021020,
-	0x212cd: 0x6ce45820, 0x212ce: 0x6c1b0020,
-	0x212d2: 0x6cc46220,
-	0x212d4: 0x6cc96820, 0x212d5: 0x6d1a2c20, 0x212d6: 0x6caf3420, 0x212d7: 0x6c228e20,
-	0x212d8: 0x6ce71a20, 0x212d9: 0x6d1ace20,
-	0x212dc: 0x6c43c820, 0x212dd: 0x6ce55020, 0x212de: 0x6d329620, 0x212df: 0x6d390c20,
-	0x212e1: 0x6d149820, 0x212e2: 0x6c7ae420, 0x212e3: 0x6cd90c20,
-	0x212e7: 0x6c2c2820,
-	0x212ec: 0x6d008820, 0x212ee: 0x6cfe9e20, 0x212ef: 0x6c4a1c20,
-	0x212f0: 0x6ceb7420, 0x212f1: 0x6c3c3620, 0x212f2: 0x6cf3b420,
-	0x212f5: 0x6d053220,
-	0x212ff: 0x6d1f1620,
-	// Block 0x84c, offset 0x21300
-	0x21301: 0x6c8ce020, 0x21302: 0x6d0e6020,
-	0x21305: 0x6c2ff620, 0x21306: 0x6cb77e20, 0x21307: 0x6ce21a20,
-	0x21308: 0x6c4dfc20, 0x2130a: 0x6c1b1c20, 0x2130b: 0x6cd91820,
-	0x21311: 0x6cc35820,
-	0x21314: 0x6c4ea820,
-	0x2131f: 0x6cc77820,
-	0x21320: 0x6cb78e20, 0x21321: 0x6c762c20, 0x21322: 0x6d211e20, 0x21323: 0x6c139a20,
-	0x21324: 0x6c1a8220, 0x21325: 0x6d233a20, 0x21327: 0x6c0e2020,
-	0x21329: 0x6c231220, 0x2132a: 0x6d39a420,
-	0x2132c: 0x6d235420,
-	0x21331: 0x6c744a20, 0x21332: 0x6c8f3620, 0x21333: 0x6ccab220,
-	0x21334: 0x6d236820,
-	// Block 0x84d, offset 0x21340
-	0x21345: 0x6cd66820,
-	0x2134b: 0x6d262020,
-	0x2134e: 0x6d2eba20,
-	0x21351: 0x6cd66a20, 0x21353: 0x6c1ee420,
-	0x21354: 0x6d2ec620, 0x21355: 0x6cca2020, 0x21356: 0x6cfabe20,
-	0x21358: 0x6c24d820, 0x21359: 0x6c9bde20, 0x2135a: 0x6c2b7c20,
-	0x2135e: 0x6d368820, 0x2135f: 0x6c02de20,
-	0x21366: 0x6d04e020,
-	0x21368: 0x6cb11e20, 0x2136a: 0x6c69bc20, 0x2136b: 0x6c7b6c20,
-	0x2136c: 0x6cc98620, 0x2136d: 0x6cfcf420, 0x2136e: 0x6d2cda20, 0x2136f: 0x6c2d7820,
-	0x21377: 0x6d154420,
-	0x2137a: 0x6c5c2e20, 0x2137b: 0x6ccda620,
-	// Block 0x84e, offset 0x21380
-	0x21384: 0x6c1d2220, 0x21385: 0x6d156220, 0x21386: 0x6d021220, 0x21387: 0x6d36dc20,
-	0x21388: 0x6ce5e020, 0x2138a: 0x6cb26c20, 0x2138b: 0x6cfbb020,
-	0x2138e: 0x6cfadc20, 0x2138f: 0x6cdb4c20,
-	0x21391: 0x6c24a020,
-	0x21397: 0x6cd97220,
-	0x2139b: 0x6c522820,
-	0x2139d: 0x6cfd3a20, 0x2139f: 0x6d1f8e20,
-	0x213a1: 0x6d246420,
-	0x213a4: 0x6cdf5220, 0x213a6: 0x6c751820, 0x213a7: 0x6ca48220,
-	0x213a9: 0x6c2cba20, 0x213ab: 0x6d164820,
-	0x213ac: 0x6c090620,
-	0x213b3: 0x6d056220,
-	0x213b4: 0x6d166820, 0x213b5: 0x6cc81020, 0x213b7: 0x6c455a20,
-	0x213ba: 0x6d166a20,
-	0x213bf: 0x6d356e20,
-	// Block 0x84f, offset 0x213c0
-	0x213c0: 0x6d02a420, 0x213c2: 0x6c617820,
-	0x213c4: 0x6cfa2c20,
-	0x213c8: 0x6d2f4e20, 0x213c9: 0x6ca54620, 0x213ca: 0x6d015620,
-	0x213ce: 0x6d168620,
-	0x213eb: 0x6c3f3420,
-	0x213ed: 0x6ccf3420, 0x213ef: 0x6d253c20,
-	0x213f0: 0x6c390420, 0x213f2: 0x6c3d3c20, 0x213f3: 0x6cf4a820,
-	0x213f4: 0x6cf57c20, 0x213f5: 0x6c539c20,
-	0x213f9: 0x6c618220, 0x213fa: 0x6c170420,
-	0x213ff: 0x6ca0ca20,
-	// Block 0x850, offset 0x21400
-	0x21400: 0x6cae0820, 0x21403: 0x6ca20e20,
-	0x21404: 0x6cc00420, 0x21405: 0x6c994a20, 0x21407: 0x6c268020,
-	0x21409: 0x6cf98c20, 0x2140a: 0x6ccfae20, 0x2140b: 0x6ce26c20,
-	0x2140c: 0x6c530220, 0x2140d: 0x6c093620,
-	0x2141d: 0x6ca62620, 0x2141f: 0x6cbbd220,
-	0x21427: 0x6cc84e20,
-	0x21438: 0x6c67d820, 0x21439: 0x6c138420, 0x2143a: 0x6c9ce220,
-	0x2143d: 0x6d16f020, 0x2143f: 0x6cdd0a20,
-	// Block 0x851, offset 0x21440
-	0x21441: 0x6cf4c220, 0x21442: 0x6d078420,
-	0x21445: 0x6cf76c20, 0x21447: 0x6d15d020,
-	0x21450: 0x6ca49a20, 0x21453: 0x6cf07820,
-	0x2146e: 0x6c770220,
-	0x21471: 0x6c906020, 0x21472: 0x6c938620, 0x21473: 0x6d3c2a20,
-	0x2147a: 0x6d35b420,
-	0x2147c: 0x6d042220, 0x2147e: 0x6c44f820, 0x2147f: 0x6c6ce620,
-	// Block 0x852, offset 0x21480
-	0x21480: 0x6cfca420, 0x21481: 0x6c61c820, 0x21482: 0x6c261a20,
-	0x21484: 0x6c815020, 0x21485: 0x6c3bb820, 0x21486: 0x6c722a20,
-	0x2148b: 0x6c9eb220,
-	0x2148c: 0x6cf9a620,
-	0x21491: 0x6cda8c20,
-	0x214a8: 0x6d35b620, 0x214aa: 0x6c567e20, 0x214ab: 0x6c79e220,
-	0x214ad: 0x6cdd5820, 0x214ae: 0x6ca68e20,
-	0x214ba: 0x6ce28c20, 0x214bb: 0x6d3ace20,
-	// Block 0x853, offset 0x214c0
-	0x214c1: 0x6c269820, 0x214c3: 0x6cc04420,
-	0x214c4: 0x6d0b9820, 0x214c6: 0x6cfb4820,
-	0x214c9: 0x6ca58820,
-	0x214cd: 0x6d351420, 0x214ce: 0x6c0ce620,
-	0x214d2: 0x6c1d3a20, 0x214d3: 0x6c7f9820,
-	0x214d4: 0x6c2ff820, 0x214d5: 0x6cc43a20, 0x214d6: 0x6cfe2e20,
-	0x214d8: 0x6cff8020, 0x214d9: 0x6ced0620, 0x214da: 0x6cc81420, 0x214db: 0x6cee5020,
-	0x214dc: 0x6ca69820, 0x214de: 0x6c03fe20, 0x214df: 0x6d0b9a20,
-	0x214e5: 0x6cd7e220, 0x214e6: 0x6d1ad820,
-	0x214e8: 0x6d231220,
-	0x214ee: 0x6c83b820, 0x214ef: 0x6c5dc020,
-	// Block 0x854, offset 0x21500
-	0x21517: 0x6c056820,
-	0x21523: 0x6cf5e620,
-	0x21525: 0x6c6f6a20,
-	0x21528: 0x6d01ac20, 0x21529: 0x6cb8e020, 0x2152a: 0x6caaf820, 0x2152b: 0x6d040020,
-	0x2152c: 0x6c344e20, 0x2152d: 0x6c614020, 0x2152e: 0x6cf44a20, 0x2152f: 0x6ca21220,
-	0x21530: 0x6d0e6e20, 0x21531: 0x6cb79020, 0x21532: 0x6ca2de20, 0x21533: 0x6c1c1e20,
-	0x21534: 0x6c540220, 0x21536: 0x6ccaf220,
-	0x21538: 0x6ca4aa20, 0x2153b: 0x6c1a7020,
-	0x2153c: 0x6c1a7220, 0x2153d: 0x6c7cd020, 0x2153f: 0x6c644220,
-	// Block 0x855, offset 0x21540
-	0x21540: 0x6ce8ac20, 0x21542: 0x6c319a20,
-	0x21545: 0x6cf9c220, 0x21546: 0x6d382e20, 0x21547: 0x6c5dcc20,
-	0x21548: 0x6c1d1620, 0x21549: 0x6c26a420,
-	0x2154c: 0x6c997c20, 0x2154d: 0x6d120620,
-	0x21553: 0x6c72f220,
-	0x2156c: 0x6cd38420, 0x2156f: 0x6d1a6420,
-	0x21573: 0x6c478a20,
-	0x21574: 0x6cf4ec20,
-	0x21578: 0x6c4cee20, 0x21579: 0x6ce3f620, 0x2157b: 0x6c52a220,
-	// Block 0x856, offset 0x21580
-	0x21587: 0x6cc54e20,
-	0x21589: 0x6d14f420, 0x2158b: 0x6cea7c20,
-	0x2158f: 0x6cbf3c20,
-	0x21590: 0x6c4d6e20, 0x21592: 0x6cb79e20,
-	0x21595: 0x6c5dd820, 0x21596: 0x6ce40020, 0x21597: 0x6caf7020,
-	0x2159a: 0x6c451020,
-	0x2159c: 0x6d01c420, 0x2159e: 0x6c9d5620, 0x2159f: 0x6c434c20,
-	0x215a0: 0x6cddf020, 0x215a1: 0x6cfdec20, 0x215a3: 0x6cd4e620,
-	0x215a6: 0x6c3e9820,
-	0x215ac: 0x6d3b7e20, 0x215ad: 0x6c8f3820,
-	// Block 0x857, offset 0x215c0
-	0x215c5: 0x6d1f4420,
-	0x215ca: 0x6c1a7820, 0x215cb: 0x6c330620,
-	0x215e2: 0x6c841420, 0x215e3: 0x6d105820,
-	0x215e4: 0x6c841620, 0x215e7: 0x6c91c820,
-	0x215e8: 0x6ca24e20, 0x215e9: 0x6cdc5220, 0x215ea: 0x6c00b620,
-	0x215ed: 0x6c79f420, 0x215ef: 0x6d306a20,
-	0x215f0: 0x6c00b820, 0x215f1: 0x6ce2a620, 0x215f3: 0x6c93ea20,
-	0x215f4: 0x6ce9ac20, 0x215f5: 0x6c088020,
-	0x215fe: 0x6c5bf620, 0x215ff: 0x6c588a20,
-	// Block 0x858, offset 0x21600
-	0x2161b: 0x6c7e0e20,
-	0x2161d: 0x6d02e020,
-	0x21621: 0x6ccaf420,
-	0x2162b: 0x6cd5f020,
-	0x2162c: 0x6cc3da20, 0x2162d: 0x6c035620, 0x2162e: 0x6cea0620,
-	0x21632: 0x6c403220, 0x21633: 0x6c0cba20,
-	0x21635: 0x6ce17e20, 0x21637: 0x6cfe4c20,
-	0x21639: 0x6cd81420, 0x2163a: 0x6c0f4020,
-	0x2163c: 0x6c970020, 0x2163d: 0x6c298020, 0x2163f: 0x6c4b6420,
-	// Block 0x859, offset 0x21640
-	0x21640: 0x6c522020, 0x21641: 0x6cf69a20, 0x21642: 0x6c298220, 0x21643: 0x6d184e20,
-	0x21645: 0x6c088420, 0x21647: 0x6c472c20,
-	0x21648: 0x6c255820, 0x21649: 0x6ccb4420,
-	0x2164d: 0x6c441e20, 0x2164e: 0x6d23c220, 0x2164f: 0x6ca2fa20,
-	0x21651: 0x6c865620, 0x21652: 0x6d36ac20,
-	0x21670: 0x6d2fd420,
-	0x21674: 0x6c5f1220, 0x21675: 0x6cc87220,
-	0x21679: 0x6c1d5820,
-	// Block 0x85a, offset 0x21680
-	0x21682: 0x6c6b1820,
-	0x2168c: 0x6c172020, 0x2168d: 0x6d307a20,
-	0x21692: 0x6cdb1020, 0x21693: 0x6d1db020,
-	0x21696: 0x6cb7d420, 0x21697: 0x6d3d9820,
-	0x2169a: 0x6c769620,
-	0x2169c: 0x6d133c20, 0x2169e: 0x6cb7d620,
-	0x216b9: 0x6d04a420,
-	// Block 0x85b, offset 0x216c0
-	0x216c9: 0x6d141420, 0x216ca: 0x6c1e3020,
-	0x216ce: 0x6ce98020, 0x216cf: 0x6c00da20,
-	0x216d0: 0x6cb1f220, 0x216d3: 0x6c8b3620,
-	0x216d4: 0x6c9dd820, 0x216d5: 0x6c00dc20, 0x216d7: 0x6ca0ae20,
-	0x216d8: 0x6cf0e220, 0x216d9: 0x6d1d5220, 0x216da: 0x6ca65020,
-	0x216de: 0x6c0f7420,
-	0x216e0: 0x6c8f4620,
-	0x216f3: 0x6cc8e620,
-	0x216fb: 0x6c936620,
-	0x216fc: 0x6c140c20, 0x216ff: 0x6c1f8620,
-	// Block 0x85c, offset 0x21700
-	0x21701: 0x6ccb0220, 0x21702: 0x6c847020,
-	0x21704: 0x6cd94620, 0x21706: 0x6c86c620,
-	0x2170b: 0x6cf90420,
-	0x2170d: 0x6d0c3e20, 0x2170e: 0x6c25ce20,
-	0x21710: 0x6c8eb620,
-	0x21718: 0x6c9b6c20, 0x2171a: 0x6d2e8a20,
-	0x21724: 0x6d3c4c20, 0x21727: 0x6c9ea620,
-	0x21729: 0x6c86f220, 0x2172b: 0x6c71da20,
-	0x2172f: 0x6d025220,
-	0x21730: 0x6d025420, 0x21731: 0x6c904220, 0x21732: 0x6c8fc220,
-	// Block 0x85d, offset 0x21740
-	0x21742: 0x6ce2c620, 0x21743: 0x6d3b3820,
-	0x2174b: 0x6c155220,
-	0x2174c: 0x6cfc4420, 0x2174f: 0x6d1cc220,
-	0x21750: 0x6cae2a20,
-	0x21758: 0x6d012220, 0x2175a: 0x6c69dc20,
-	0x2175e: 0x6c1cf820,
-	0x21773: 0x6c50ae20,
-	0x2177d: 0x6cea8420,
-	// Block 0x85e, offset 0x21780
-	0x21785: 0x6c53b220,
-	0x21788: 0x6c97b020, 0x2178a: 0x6c6c7a20,
-	0x2178c: 0x6cc17020, 0x2178d: 0x6c30d420, 0x2178e: 0x6cbff820, 0x2178f: 0x6d28ee20,
-	0x21791: 0x6cd0d420, 0x21792: 0x6d28f020,
-	0x21795: 0x6d15ba20,
-	0x2179a: 0x6c578020,
-	0x2179f: 0x6c76a220,
-	0x217b0: 0x6d268e20, 0x217b1: 0x6ca68420, 0x217b2: 0x6cd7d620,
-	0x217b4: 0x6cf2aa20,
-	0x217b8: 0x6c118e20, 0x217ba: 0x6c647c20,
-	0x217bc: 0x6c9ecc20, 0x217bd: 0x6ccea020, 0x217bf: 0x6cc70820,
-	// Block 0x85f, offset 0x217c0
-	0x217c0: 0x6c419220,
-	0x217c5: 0x6cbb0a20, 0x217c7: 0x6cd52a20,
-	0x217c8: 0x6d3d5820,
-	0x217cf: 0x6cd1bc20,
-	0x217d1: 0x6ce3f820,
-	0x217d6: 0x6d2c3620, 0x217d7: 0x6d2d7e20,
-	0x217dd: 0x6c3bdc20, 0x217de: 0x6c9eda20,
-	0x217e0: 0x6d2b5220,
-	0x217e4: 0x6d368a20, 0x217e5: 0x6cb90020, 0x217e6: 0x6c4ede20, 0x217e7: 0x6c440e20,
-	0x217ee: 0x6c119e20,
-	0x217f0: 0x6c4c7820, 0x217f1: 0x6c685e20, 0x217f3: 0x6d1da220,
-	0x217f4: 0x6c026820,
-	0x217fb: 0x6d2c4620,
-	0x217fd: 0x6cf8c420,
-	// Block 0x860, offset 0x21800
-	0x21801: 0x6d05d220, 0x21802: 0x6cf46620,
-	0x2180f: 0x6c74b820,
-	0x21810: 0x6c5f2a20, 0x21812: 0x6c1c6a20,
-	0x21814: 0x6ced5420, 0x21816: 0x6c9ef220, 0x21817: 0x6d2b6420,
-	0x2181c: 0x6c6b6e20, 0x2181d: 0x6cd29220, 0x2181f: 0x6cf72e20,
-	0x21821: 0x6c36e220,
-	0x21825: 0x6c564220, 0x21826: 0x6c564a20,
-	0x21828: 0x6c857020, 0x2182b: 0x6c1f0820,
-	0x2182e: 0x6d13c820, 0x2182f: 0x6c992c20,
-	0x21830: 0x6d056c20, 0x21831: 0x6d379820, 0x21833: 0x6d16b820,
-	0x2183a: 0x6c89de20,
-	0x2183f: 0x6c647820,
-	// Block 0x861, offset 0x21840
-	0x21840: 0x6c656e20, 0x21841: 0x6c70fa20,
-	0x21844: 0x6d3abc20,
-	0x21848: 0x6cf43a20,
-	0x2184f: 0x6c78a420,
-	0x21850: 0x6c786020, 0x21851: 0x6c860e20, 0x21852: 0x6c08dc20, 0x21853: 0x6c43ec20,
-	0x21855: 0x6d059820, 0x21856: 0x6ccbfa20, 0x21857: 0x6c8d1c20,
-	0x21858: 0x6c781220,
-	0x2185e: 0x6c0f4220, 0x2185f: 0x6c0b0820,
-	0x21860: 0x6cd68820, 0x21861: 0x6cb66e20, 0x21862: 0x6ccde420,
-	0x21866: 0x6c5e6420,
-	0x21868: 0x6cbc1c20,
-	0x2186e: 0x6d166c20, 0x2186f: 0x6c73d020,
-	0x21870: 0x6d2efe20, 0x21872: 0x6d031620,
-	0x21877: 0x6cea9a20,
-	0x21878: 0x6c4d5020, 0x21879: 0x6cfa2e20, 0x2187b: 0x6ceae020,
-	0x2187c: 0x6d145620,
-	// Block 0x862, offset 0x21880
-	0x21883: 0x6c242c20,
-	0x21887: 0x6c674620,
-	0x21888: 0x6ca3de20, 0x2188b: 0x6caf0020,
-	0x2188d: 0x6c6a7020, 0x2188e: 0x6d08d820, 0x2188f: 0x6c552020,
-	0x218a5: 0x6d1f9e20, 0x218a6: 0x6caa4c20, 0x218a7: 0x6d12c220,
-	0x218aa: 0x6d1b3a20,
-	0x218ac: 0x6c799420,
-	0x218b6: 0x6cfe8420, 0x218b7: 0x6cfd6220,
-	0x218bc: 0x6ca49620, 0x218be: 0x6d2f2420,
-	// Block 0x863, offset 0x218c0
-	0x218d0: 0x6c6a7c20, 0x218d3: 0x6caa5020,
-	0x218d4: 0x6ccd7020,
-	0x218e2: 0x6c63a020,
-	0x218e7: 0x6d38dc20,
-	0x218e8: 0x6cc6fe20, 0x218eb: 0x6c922220,
-	0x218ec: 0x6cc96e20, 0x218ed: 0x6caa6020, 0x218ef: 0x6c0ec420,
-	0x218f0: 0x6d302220, 0x218f2: 0x6cbdca20,
-	0x218f4: 0x6c21f620, 0x218f5: 0x6d40ac20, 0x218f7: 0x6cf2ac20,
-	0x218f8: 0x6cf43620, 0x218fb: 0x6ca7e020,
-	0x218ff: 0x6cfa8820,
-	// Block 0x864, offset 0x21900
-	0x21900: 0x6c531220,
-	0x2192b: 0x6ce6e820,
-	0x2192c: 0x6c6c8a20,
-	0x21931: 0x6c6aa420, 0x21932: 0x6c51c020, 0x21933: 0x6ce84c20,
-	0x21934: 0x6d303a20, 0x21935: 0x6cb1ec20, 0x21936: 0x6c6ce820, 0x21937: 0x6ca44420,
-	0x2193c: 0x6c33e820, 0x2193e: 0x6cf5be20, 0x2193f: 0x6d018020,
-	// Block 0x865, offset 0x21940
-	0x21941: 0x6cf86c20, 0x21942: 0x6c815220, 0x21943: 0x6c32ac20,
-	0x21944: 0x6c61ca20, 0x21945: 0x6c138a20, 0x21946: 0x6c1d6620,
-	0x21948: 0x6c427020,
-	0x2194e: 0x6cfdb820, 0x2194f: 0x6c29d620,
-	0x21965: 0x6c0b8e20, 0x21966: 0x6cfea020, 0x21967: 0x6d02c220,
-	// Block 0x866, offset 0x21980
-	0x21981: 0x6d224c20, 0x21982: 0x6cfb4a20, 0x21983: 0x6c83ba20,
-	0x21984: 0x6cba0020, 0x21987: 0x6c9a5420,
-	0x21989: 0x6cbb6c20, 0x2198a: 0x6d0b9e20,
-	0x2198c: 0x6cb82a20, 0x2198d: 0x6cbf8a20, 0x2198f: 0x6c056a20,
-	0x21990: 0x6d32b220,
-	0x2199a: 0x6d2b4a20, 0x2199b: 0x6cd68e20,
-	0x2199e: 0x6ccaf020,
-	// Block 0x867, offset 0x219c0
-	0x219c5: 0x6c923a20,
-	0x219c9: 0x6d009e20, 0x219cb: 0x6c3f5c20,
-	0x219cc: 0x6d2d3a20,
-	0x219e9: 0x6d2b5020, 0x219eb: 0x6c32c220,
-	0x219ed: 0x6c2ad620, 0x219ee: 0x6d233c20,
-	0x219f0: 0x6c93de20, 0x219f2: 0x6ced8220, 0x219f3: 0x6d090e20,
-	0x219f4: 0x6c68f420, 0x219f5: 0x6d266420, 0x219f6: 0x6d362420, 0x219f7: 0x6cefc420,
-	0x219f9: 0x6c43ee20, 0x219fa: 0x6c71b420,
-	0x219fc: 0x6d0d8420, 0x219fd: 0x6c262620, 0x219fe: 0x6c997e20,
-	// Block 0x868, offset 0x21a00
-	0x21a06: 0x6c3e7820, 0x21a07: 0x6c002820,
-	0x21a0a: 0x6d079e20,
-	0x21a0c: 0x6c427e20, 0x21a0d: 0x6c013220,
-	0x21a12: 0x6c603620,
-	0x21a18: 0x6cafea20, 0x21a19: 0x6d352820,
-	0x21a1c: 0x6caac020,
-	0x21a3f: 0x6cacbc20,
-	// Block 0x869, offset 0x21a40
-	0x21a41: 0x6d14f620,
-	0x21a44: 0x6c6ac820, 0x21a46: 0x6d3e3820,
-	0x21a48: 0x6c644420, 0x21a49: 0x6cec6420,
-	0x21a4c: 0x6c644620,
-	0x21a5f: 0x6c15c020,
-	0x21a61: 0x6cdd7420, 0x21a62: 0x6cdd7620, 0x21a63: 0x6c605020,
-	0x21a64: 0x6cd96420, 0x21a66: 0x6ce2f420, 0x21a67: 0x6caf7420,
-	0x21a68: 0x6cb32c20,
-	0x21a6e: 0x6c9d5a20,
-	0x21a74: 0x6d12fc20, 0x21a76: 0x6cbe1c20, 0x21a77: 0x6c6d1620,
-	0x21a7a: 0x6c73ae20,
-	0x21a7d: 0x6d24f420, 0x21a7e: 0x6cc83e20,
-	// Block 0x86a, offset 0x21a80
-	0x21a94: 0x6c04fa20,
-	0x21ab0: 0x6c0d3a20,
-	0x21ab4: 0x6cf0ae20, 0x21ab5: 0x6d2a8820, 0x21ab6: 0x6cbcd020, 0x21ab7: 0x6cd9ce20,
-	0x21ab8: 0x6c91ca20,
-	0x21abc: 0x6c2ecc20, 0x21abd: 0x6c1fb820, 0x21abe: 0x6c09f620, 0x21abf: 0x6d3a1a20,
-	// Block 0x86b, offset 0x21ac0
-	0x21ac0: 0x6c966220, 0x21ac1: 0x6c3aba20, 0x21ac2: 0x6cb1cc20, 0x21ac3: 0x6d1b6620,
-	0x21ac4: 0x6d08a220, 0x21ac6: 0x6c02e020, 0x21ac7: 0x6d3d7820,
-	0x21ac8: 0x6d40c820, 0x21acb: 0x6c08ea20,
-	0x21ad1: 0x6c812620, 0x21ad3: 0x6ce40820,
-	0x21ad9: 0x6ce5c820, 0x21ada: 0x6c64c820,
-	0x21adf: 0x6ce7c020,
-	0x21afd: 0x6c343420, 0x21afe: 0x6c308420,
-	// Block 0x86c, offset 0x21b00
-	0x21b02: 0x6c0b4220,
-	0x21b20: 0x6d36b020, 0x21b22: 0x6c3b8a20,
-	0x21b26: 0x6c776a20, 0x21b27: 0x6d36b220,
-	0x21b28: 0x6d2cfc20, 0x21b29: 0x6c0a1e20, 0x21b2a: 0x6c7b6e20,
-	0x21b2c: 0x6c050220, 0x21b2d: 0x6c73b820, 0x21b2e: 0x6cc13420,
-	0x21b30: 0x6cb51e20, 0x21b31: 0x6c824e20, 0x21b32: 0x6d00da20, 0x21b33: 0x6ce0ca20,
-	0x21b3c: 0x6cd9d420, 0x21b3e: 0x6c075020,
-	// Block 0x86d, offset 0x21b40
-	0x21b47: 0x6d106820,
-	0x21b48: 0x6c65ce20,
-	0x21b65: 0x6d2a8a20,
-	// Block 0x86e, offset 0x21b80
-	0x21b80: 0x6d3b6a20, 0x21b83: 0x6c38b820,
-	0x21b85: 0x6ccf2420, 0x21b87: 0x6cbf5e20,
-	0x21b89: 0x6cb3a020, 0x21b8b: 0x6ce60220,
-	0x21b8c: 0x6ccc1a20, 0x21b8d: 0x6d28c820,
-	0x21b91: 0x6ca7ac20, 0x21b92: 0x6c48fa20, 0x21b93: 0x6c250a20,
-	0x21ba1: 0x6cbc5e20, 0x21ba3: 0x6c2ee420,
-	0x21bb3: 0x6cb1ee20,
-	0x21bb4: 0x6c226a20, 0x21bb6: 0x6c058e20,
-	// Block 0x86f, offset 0x21bc0
-	0x21bcd: 0x6d1b8a20,
-	0x21bd1: 0x6cfc3020,
-	0x21bd4: 0x6d161820, 0x21bd5: 0x6c9e9e20, 0x21bd6: 0x6c32b220, 0x21bd7: 0x6d395620,
-	0x21bd9: 0x6c798c20,
-	0x21be2: 0x6d2ee020,
-	0x21bf6: 0x6c8eb820,
-	0x21bf8: 0x6d355820, 0x21bf9: 0x6c15ee20, 0x21bfa: 0x6c31ca20, 0x21bfb: 0x6d25c020,
-	0x21bfe: 0x6cddd220, 0x21bff: 0x6c6b5820,
-	// Block 0x870, offset 0x21c00
-	0x21c00: 0x6c86c820, 0x21c01: 0x6c460420,
-	0x21c0c: 0x6c054220,
-	0x21c17: 0x6c4c9220,
-	0x21c18: 0x6c8a3420, 0x21c19: 0x6cd08220,
-	0x21c23: 0x6ca7c020,
-	0x21c25: 0x6c24bc20, 0x21c26: 0x6cf04c20,
-	0x21c28: 0x6cead620, 0x21c2b: 0x6cda6020,
-	0x21c2d: 0x6c8fc420,
-	0x21c33: 0x6cff3820,
-	0x21c34: 0x6d0df820,
-	// Block 0x871, offset 0x21c40
-	0x21c43: 0x6cbebe20,
-	0x21c4d: 0x6cf73020, 0x21c4f: 0x6d21e220,
-	0x21c51: 0x6d337220, 0x21c52: 0x6d027420, 0x21c53: 0x6c146e20,
-	0x21c54: 0x6c3c0020, 0x21c56: 0x6c4c9c20,
-	0x21c58: 0x6c6e3e20, 0x21c59: 0x6c808220, 0x21c5a: 0x6cfafe20,
-	0x21c5d: 0x6c8d8e20,
-	0x21c6e: 0x6c830020,
-	0x21c72: 0x6c760220, 0x21c73: 0x6d002a20,
-	0x21c7c: 0x6d28d820,
-	// Block 0x872, offset 0x21c80
-	0x21c84: 0x6c493e20, 0x21c85: 0x6cbd0820, 0x21c86: 0x6c963e20, 0x21c87: 0x6d124a20,
-	0x21c88: 0x6c945620, 0x21c89: 0x6cdeee20,
-	0x21c91: 0x6c964020,
-	0x21c9e: 0x6c03a420, 0x21c9f: 0x6c165420,
-	0x21ca1: 0x6d3dec20,
-	0x21cab: 0x6ce5d020,
-	0x21caf: 0x6cecaa20,
-	0x21cb0: 0x6c8dd420,
-	0x21cb4: 0x6d24aa20, 0x21cb5: 0x6cb72c20, 0x21cb7: 0x6cb58020,
-	0x21cbc: 0x6c619420, 0x21cbd: 0x6c0eb620, 0x21cbf: 0x6cd1a420,
-	// Block 0x873, offset 0x21cc0
-	0x21cc0: 0x6c3f4a20, 0x21cc2: 0x6c4a4620,
-	0x21cc5: 0x6c2d0e20, 0x21cc7: 0x6c4fa420,
-	0x21cc9: 0x6c411220, 0x21ccb: 0x6cb5c820,
-	0x21cd3: 0x6c19fe20,
-	0x21cd4: 0x6c5bc220, 0x21cd7: 0x6cf9cc20,
-	0x21cd8: 0x6cd27020, 0x21cd9: 0x6d365820, 0x21cda: 0x6cb61420,
-	0x21cdc: 0x6c4d7420, 0x21cdf: 0x6c692c20,
-	0x21ce0: 0x6c867620, 0x21ce2: 0x6c8a7820,
-	0x21ce4: 0x6cbba620,
-	0x21ce8: 0x6cc99c20, 0x21cea: 0x6cb55220, 0x21ceb: 0x6cd19620,
-	0x21cee: 0x6c6a7220,
-	0x21cf5: 0x6c06e420, 0x21cf6: 0x6c0aec20, 0x21cf7: 0x6c032420,
-	0x21cf8: 0x6c755c20, 0x21cf9: 0x6caf3a20,
-	0x21cfc: 0x6c282220, 0x21cff: 0x6ce0e620,
-	// Block 0x874, offset 0x21d00
-	0x21d00: 0x6c7cca20, 0x21d01: 0x6c7a2820, 0x21d03: 0x6c79d020,
-	0x21d09: 0x6cd1a620, 0x21d0a: 0x6cd1a820, 0x21d0b: 0x6c5e9a20,
-	0x21d0c: 0x6c063620,
-	0x21d10: 0x6c785a20, 0x21d11: 0x6c7b9020,
-	0x21d16: 0x6c9f9c20,
-	0x21d19: 0x6c89e020, 0x21d1a: 0x6c35f220, 0x21d1b: 0x6c43d820,
-	0x21d1f: 0x6cee0420,
-	0x21d20: 0x6c344020, 0x21d23: 0x6cb85220,
-	0x21d24: 0x6c573220, 0x21d26: 0x6c539e20,
-	0x21d29: 0x6cae5e20, 0x21d2b: 0x6c698c20,
-	0x21d30: 0x6cc0f020, 0x21d31: 0x6d3f3c20, 0x21d32: 0x6d391820, 0x21d33: 0x6c7b9620,
-	0x21d35: 0x6ccbd820, 0x21d37: 0x6c61cc20,
-	0x21d38: 0x6cee6c20, 0x21d39: 0x6cb40820, 0x21d3a: 0x6d090620,
-	0x21d3c: 0x6cce6620,
-	// Block 0x875, offset 0x21d40
-	0x21d42: 0x6c80b620, 0x21d43: 0x6d351620,
-	0x21d44: 0x6ce6c620, 0x21d47: 0x6c26f020,
-	0x21d55: 0x6d0faa20, 0x21d56: 0x6c6d0020, 0x21d57: 0x6d351820,
-	0x21d5a: 0x6d3d5a20,
-	0x21d5c: 0x6d28b420, 0x21d5d: 0x6c14f220,
-	0x21d62: 0x6c998020,
-	0x21d66: 0x6c797820, 0x21d67: 0x6d388420,
-	0x21d68: 0x6c54ca20, 0x21d69: 0x6cae7220,
-	0x21d6d: 0x6c6ffc20,
-	0x21d78: 0x6c21bc20, 0x21d79: 0x6c9fae20,
-	0x21d7e: 0x6cffec20,
-	// Block 0x876, offset 0x21d80
-	0x21d80: 0x6c322220, 0x21d81: 0x6cef1820, 0x21d83: 0x6c119a20,
-	0x21d84: 0x6d214a20, 0x21d85: 0x6c326220, 0x21d86: 0x6c763620, 0x21d87: 0x6cb0a220,
-	0x21d8a: 0x6c1a1a20,
-	0x21d8e: 0x6c218020,
-	0x21d90: 0x6cceb420, 0x21d91: 0x6d0d9e20, 0x21d92: 0x6c7b2820,
-	0x21d94: 0x6d265020,
-	0x21da6: 0x6cb61620, 0x21da7: 0x6d32e020,
-	0x21da9: 0x6c78c220, 0x21daa: 0x6cb61820, 0x21dab: 0x6d354020,
-	0x21dac: 0x6c928420,
-	0x21db1: 0x6caf7c20, 0x21db2: 0x6cab0420, 0x21db3: 0x6cad7c20,
-	0x21dba: 0x6c3a6020,
-	0x21dbf: 0x6cf19c20,
-	// Block 0x877, offset 0x21dc0
-	0x21dc2: 0x6c9b2c20,
-	0x21dc8: 0x6ccd5620,
-	0x21dcc: 0x6d04a020, 0x21dce: 0x6c351020, 0x21dcf: 0x6c0c9220,
-	0x21dda: 0x6d1eb020,
-	0x21ddc: 0x6c97f620, 0x21dde: 0x6c8a7a20,
-	0x21de1: 0x6d00ea20, 0x21de2: 0x6c949c20, 0x21de3: 0x6cbba820,
-	0x21de4: 0x6c2ae620, 0x21de6: 0x6c1a3e20, 0x21de7: 0x6c1a4020,
-	0x21ded: 0x6c21d820,
-	0x21df8: 0x6c131420,
-	// Block 0x878, offset 0x21e00
-	0x21e00: 0x6c825e20, 0x21e01: 0x6d2e1c20, 0x21e02: 0x6c853620, 0x21e03: 0x6c885e20,
-	0x21e04: 0x6cc45820,
-	0x21e0d: 0x6c18ee20, 0x21e0f: 0x6c1a4820,
-	0x21e10: 0x6c473c20, 0x21e12: 0x6d403a20, 0x21e13: 0x6c1df420,
-	0x21e14: 0x6c204420,
-	0x21e1c: 0x6c835220, 0x21e1d: 0x6cd7a820, 0x21e1e: 0x6c941020,
-	0x21e23: 0x6c3f2420,
-	0x21e25: 0x6c871620, 0x21e27: 0x6cca6020,
-	0x21e2b: 0x6cca0c20,
-	0x21e2f: 0x6cc9b220,
-	0x21e33: 0x6ca8b020,
-	0x21e36: 0x6d413c20, 0x21e37: 0x6c855020,
-	0x21e3b: 0x6cd58c20,
-	0x21e3e: 0x6c3f2a20,
-	// Block 0x879, offset 0x21e40
-	0x21e49: 0x6c094620,
-	0x21e4d: 0x6c2a0820,
-	0x21e52: 0x6cd1b220,
-	0x21e56: 0x6c422020, 0x21e57: 0x6ce09e20,
-	0x21e5c: 0x6c97f820, 0x21e5f: 0x6c842820,
-	0x21e62: 0x6c0a4c20,
-	0x21e66: 0x6cac7e20,
-	0x21e68: 0x6d1eca20,
-	0x21e6d: 0x6c6f5020, 0x21e6f: 0x6c4c1220,
-	0x21e70: 0x6c89dc20, 0x21e73: 0x6cf2de20,
-	0x21e74: 0x6cb85420, 0x21e75: 0x6c30e820, 0x21e77: 0x6c8afa20,
-	0x21e79: 0x6c68e020, 0x21e7b: 0x6c8afc20,
-	// Block 0x87a, offset 0x21e80
-	0x21e81: 0x6ce56020,
-	0x21e84: 0x6c4c2620, 0x21e86: 0x6cacde20, 0x21e87: 0x6cbb8e20,
-	0x21e89: 0x6c2b8a20, 0x21e8a: 0x6d284420,
-	0x21e92: 0x6c821420,
-	0x21e96: 0x6cd7cc20, 0x21e97: 0x6d02b020,
-	0x21e9c: 0x6d02c420, 0x21e9d: 0x6cfe2620, 0x21e9e: 0x6c95ac20,
-	0x21ea4: 0x6c07e820, 0x21ea5: 0x6ce55a20,
-	0x21eac: 0x6cffee20, 0x21eae: 0x6c30b420,
-	0x21eb3: 0x6c296e20,
-	0x21eb4: 0x6ce67c20, 0x21eb5: 0x6d3bcc20,
-	0x21ebb: 0x6cab4620,
-	0x21ebd: 0x6cf30e20,
-	// Block 0x87b, offset 0x21ec0
-	0x21ec4: 0x6d02ee20, 0x21ec5: 0x6cc87a20,
-	0x21ec8: 0x6d3dae20, 0x21ec9: 0x6c299020,
-	0x21ecd: 0x6c257420,
-	0x21ed1: 0x6d3dc820,
-	0x21ed7: 0x6c238620,
-	0x21ed8: 0x6c159220,
-	0x21edd: 0x6d100820,
-	0x21ee7: 0x6d0d5e20,
-	0x21ef3: 0x6d0d6820,
-	0x21ef5: 0x6d323620,
-	0x21efd: 0x6caade20, 0x21efe: 0x6d0e7220,
-	// Block 0x87c, offset 0x21f00
-	0x21f05: 0x6c39d820,
-	0x21f09: 0x6d0da020, 0x21f0a: 0x6d214e20,
-	0x21f0d: 0x6ce34020, 0x21f0e: 0x6c401a20, 0x21f0f: 0x6c07a020,
-	0x21f11: 0x6d0db220, 0x21f13: 0x6c5ad220,
-	0x21f19: 0x6c5a6220,
-	0x21f1c: 0x6c4b7420, 0x21f1d: 0x6d0ece20, 0x21f1f: 0x6c55da20,
-	0x21f20: 0x6c0c3620,
-	0x21f27: 0x6cdcc420,
-	0x21f2e: 0x6d3f3020, 0x21f2f: 0x6c618620,
-	0x21f30: 0x6c35ae20, 0x21f31: 0x6c61ce20, 0x21f32: 0x6c7ccc20,
-	0x21f34: 0x6c89b620,
-	0x21f38: 0x6c5dda20, 0x21f3a: 0x6cef3a20, 0x21f3b: 0x6d3cea20,
-	0x21f3f: 0x6ce6ae20,
-	// Block 0x87d, offset 0x21f40
-	0x21f43: 0x6d290e20,
-	0x21f44: 0x6d201020,
-	0x21f49: 0x6cc5c020,
-	0x21f4d: 0x6c9e4e20,
-	0x21f5a: 0x6ca31020,
-	0x21f5d: 0x6ce84220, 0x21f5f: 0x6c27be20,
-	0x21f61: 0x6c73ec20,
-	0x21f64: 0x6d056e20, 0x21f65: 0x6c2b1820,
-	0x21f70: 0x6cfe1a20,
-	0x21f77: 0x6d048a20,
-	0x21f7a: 0x6d1fac20, 0x21f7b: 0x6c489620,
-	0x21f7e: 0x6cf5a420,
-	// Block 0x87e, offset 0x21f80
-	0x21f88: 0x6c51bc20,
-	0x21f8d: 0x6c2f6c20,
-	0x21f90: 0x6c914020, 0x21f92: 0x6d061a20,
-	0x21f94: 0x6d391a20, 0x21f95: 0x6cfca820, 0x21f96: 0x6c598820, 0x21f97: 0x6c138c20,
-	0x21f98: 0x6cd2c420, 0x21f99: 0x6c421820, 0x21f9a: 0x6caadc20, 0x21f9b: 0x6c01aa20,
-	0x21f9f: 0x6d003c20,
-	0x21fa7: 0x6c502c20,
-	0x21fb2: 0x6cbd2a20, 0x21fb3: 0x6c450620,
-	0x21fb4: 0x6ccce020, 0x21fb5: 0x6c3e4c20,
-	0x21fbd: 0x6d2b4c20,
-	// Block 0x87f, offset 0x21fc0
-	0x21fc7: 0x6c287c20,
-	0x21fd6: 0x6c2d1420, 0x21fd7: 0x6ccfdc20,
-	0x21fd9: 0x6d411820,
-	0x21fe2: 0x6c0ca620,
-	0x21fe6: 0x6c20d020, 0x21fe7: 0x6d30f820,
-	0x21fe8: 0x6c276e20, 0x21feb: 0x6cf2b620,
-	0x21fec: 0x6cbf2420,
-	0x21ff0: 0x6c8bb420, 0x21ff2: 0x6c5cc820, 0x21ff3: 0x6c5ed020,
-	// Block 0x880, offset 0x22000
-	0x22005: 0x6c127620,
-	0x2200a: 0x6ca28620,
-	0x2200d: 0x6c2ea820, 0x2200e: 0x6cf09620,
-	0x22020: 0x6c0b9a20, 0x22021: 0x6ce3c020,
-	0x22025: 0x6ce8be20,
-	0x22036: 0x6c453620,
-	// Block 0x881, offset 0x22040
-	0x22044: 0x6c1b3220, 0x22045: 0x6c23ee20, 0x22046: 0x6ce3c420,
-	0x22052: 0x6c5de620, 0x22053: 0x6cb50e20,
-	0x22054: 0x6ccab820, 0x22055: 0x6ccaa020, 0x22056: 0x6d085220, 0x22057: 0x6c021c20,
-	0x22058: 0x6ca3ce20, 0x2205a: 0x6d0fd020, 0x2205b: 0x6cd4f420,
-	0x2205c: 0x6ccc0620,
-	0x22061: 0x6ce6d620,
-	0x22069: 0x6d0bc420, 0x2206a: 0x6c5a5820,
-	0x2206e: 0x6c0d4220,
-	0x2207e: 0x6caba020, 0x2207f: 0x6c128820,
-	// Block 0x882, offset 0x22080
-	0x22081: 0x6c026a20, 0x22083: 0x6c99ae20,
-	0x22094: 0x6c9b3620, 0x22096: 0x6ce47220,
-	0x2209d: 0x6ccaa220, 0x2209e: 0x6d073a20, 0x2209f: 0x6c771020,
-	0x220a7: 0x6c811020,
-	0x220b6: 0x6c0cc020, 0x220b7: 0x6c23b220,
-	0x220ba: 0x6cfb8e20,
-	// Block 0x883, offset 0x220c0
-	0x220c4: 0x6cea2a20,
-	0x220c9: 0x6d240a20, 0x220ca: 0x6c28c220, 0x220cb: 0x6d1d5420,
-	0x220cd: 0x6d2f7820, 0x220cf: 0x6cb4b620,
-	0x220d8: 0x6c5c4e20,
-	0x220de: 0x6c00ea20, 0x220df: 0x6ca0b220,
-	0x220e2: 0x6c6dde20, 0x220e3: 0x6c7fce20,
-	0x220f2: 0x6c8b5820, 0x220f3: 0x6cb1a420,
-	0x220f5: 0x6c0fa420, 0x220f6: 0x6cbf8220,
-	0x220f9: 0x6c0aa220,
-	0x220ff: 0x6d1dd420,
-	// Block 0x884, offset 0x22100
-	0x22105: 0x6c871820,
-	0x2210d: 0x6ca8b220, 0x2210f: 0x6c2a8820,
-	0x22113: 0x6c584620,
-	0x22117: 0x6d272420,
-	0x2211a: 0x6c212c20,
-	0x2211c: 0x6c87b020, 0x2211e: 0x6d2ef420, 0x2211f: 0x6c8dd620,
-	0x22120: 0x6c217020,
-	0x22127: 0x6c12d220,
-	0x22128: 0x6d09ea20,
-	0x2212c: 0x6c71ac20, 0x2212d: 0x6c5cac20,
-	0x2213e: 0x6ce6f820,
-	// Block 0x885, offset 0x22140
-	0x22146: 0x6ca91220, 0x22147: 0x6c727a20,
-	0x2214f: 0x6c144c20,
-	0x22156: 0x6d2a2e20,
-	0x2215b: 0x6d24a020,
-	0x2215f: 0x6c78f420,
-	0x22166: 0x6c7bea20, 0x22167: 0x6c3a4a20,
-	0x2216f: 0x6d282620,
-	0x22170: 0x6cb9fc20,
-	0x22174: 0x6cc2dc20,
-	0x22178: 0x6cb38a20, 0x2217a: 0x6cadf620,
-	// Block 0x886, offset 0x22180
-	0x22184: 0x6c453820, 0x22185: 0x6d17e420, 0x22186: 0x6c961020,
-	0x22191: 0x6c7b5a20, 0x22193: 0x6d085420,
-	0x22194: 0x6ca76e20,
-	0x2219a: 0x6c55ac20, 0x2219b: 0x6c715820,
-	0x221a9: 0x6d136a20,
-	0x221ae: 0x6cf73420,
-	0x221b1: 0x6d271c20, 0x221b2: 0x6ce19020, 0x221b3: 0x6cb23e20,
-	0x221b4: 0x6c33c820, 0x221b5: 0x6c06d420,
-	0x221b8: 0x6c8a6020,
-	// Block 0x887, offset 0x221c0
-	0x221c0: 0x6d1e0e20,
-	0x221ce: 0x6d0acc20,
-	0x221d1: 0x6c68bc20,
-	0x221d4: 0x6c7dcc20, 0x221d6: 0x6d321820, 0x221d7: 0x6cd59c20,
-	0x221da: 0x6cd24820,
-	0x221de: 0x6d1efa20, 0x221df: 0x6cac1a20,
-	0x221e0: 0x6cff6e20, 0x221e1: 0x6c5fe020,
-	0x221f6: 0x6cb4d220, 0x221f7: 0x6c50c620,
-	0x221fa: 0x6c799620,
-	// Block 0x888, offset 0x22200
-	0x22202: 0x6d12d020, 0x22203: 0x6c1bf020,
-	0x2220a: 0x6c77a220, 0x2220b: 0x6d269020,
-	0x2220e: 0x6cec1a20, 0x2220f: 0x6ca71820,
-	0x22211: 0x6c222e20, 0x22213: 0x6d14a020,
-	0x22224: 0x6c704620,
-	0x2222b: 0x6d0f4e20,
-	0x2222c: 0x6c83a620, 0x2222e: 0x6c270a20, 0x2222f: 0x6c1d0c20,
-	0x22235: 0x6d14c620,
-	0x2223a: 0x6c4e9a20,
-	0x2223f: 0x6d13de20,
-	// Block 0x889, offset 0x22240
-	0x22241: 0x6c1d4a20, 0x22242: 0x6c568020, 0x22243: 0x6d3b6220,
-	0x22266: 0x6cbf0a20, 0x22267: 0x6c34de20,
-	0x22278: 0x6ce73220, 0x22279: 0x6cfa9020,
-	0x2227f: 0x6c3e5020,
-	// Block 0x88a, offset 0x22280
-	0x22282: 0x6c2d5020, 0x22283: 0x6cf77820,
-	0x22284: 0x6d003e20, 0x22285: 0x6d323820, 0x22286: 0x6cbc3e20, 0x22287: 0x6ce85620,
-	0x222b7: 0x6c4eb020,
-	0x222b8: 0x6c7bf220, 0x222b9: 0x6cdd1a20, 0x222bb: 0x6cd46220,
-	0x222bc: 0x6ce58020,
-	// Block 0x88b, offset 0x222c0
-	0x222c0: 0x6d315020, 0x222c3: 0x6ca58c20,
-	0x222c5: 0x6cba0a20, 0x222c6: 0x6d1a6620,
-	0x222c8: 0x6c899220, 0x222c9: 0x6ccc5420, 0x222ca: 0x6d3f4c20, 0x222cb: 0x6cafec20,
-	0x222cc: 0x6c42c620, 0x222cf: 0x6c6d0a20,
-	0x222d0: 0x6d1f3620, 0x222d2: 0x6ccd8c20,
-	0x222d4: 0x6c9d4620, 0x222d5: 0x6cab9c20, 0x222d7: 0x6c54cc20,
-	0x222db: 0x6d204620,
-	0x222dd: 0x6c9bd420,
-	// Block 0x88c, offset 0x22300
-	0x22310: 0x6d352a20, 0x22313: 0x6c08e020,
-	0x22317: 0x6ccfe820,
-	0x22318: 0x6cb79420, 0x22319: 0x6cfaa620, 0x2231a: 0x6cac5820, 0x2231b: 0x6c776e20,
-	0x2232b: 0x6cd68620,
-	0x2232c: 0x6cafee20, 0x2232e: 0x6d290220, 0x2232f: 0x6d3a6c20,
-	0x22331: 0x6cd9c020, 0x22332: 0x6c6f1820,
-	0x22335: 0x6c150020, 0x22336: 0x6c38a420, 0x22337: 0x6cff8e20,
-	0x22338: 0x6d1aec20, 0x22339: 0x6c540e20, 0x2233a: 0x6c999220, 0x2233b: 0x6ce8c020,
-	0x2233d: 0x6c621820,
-	// Block 0x88d, offset 0x22340
-	0x22341: 0x6d151c20, 0x22343: 0x6d236c20,
-	0x22344: 0x6c6ee020, 0x22345: 0x6cad9220, 0x22347: 0x6cfed820,
-	0x22349: 0x6c468c20,
-	0x2234c: 0x6c465020, 0x2234d: 0x6cdcf220, 0x2234e: 0x6cfc1620, 0x2234f: 0x6d3baa20,
-	0x2237e: 0x6c1dba20,
-	// Block 0x88e, offset 0x22380
-	0x22384: 0x6cbb7e20, 0x22385: 0x6ce34220, 0x22386: 0x6d27b020,
-	0x22389: 0x6cccec20, 0x2238a: 0x6c8b1420,
-	0x2238c: 0x6d353620,
-	0x22390: 0x6cabf220,
-	0x223a3: 0x6c712e20,
-	0x223a4: 0x6c7f1220,
-	0x223a8: 0x6d3f1820, 0x223aa: 0x6cc1a420, 0x223ab: 0x6c47b020,
-	0x223ac: 0x6c747a20, 0x223ad: 0x6d348220, 0x223ae: 0x6c021e20, 0x223af: 0x6cbe2020,
-	0x223b0: 0x6cb00620, 0x223b1: 0x6d417820, 0x223b3: 0x6cb9b020,
-	0x223b5: 0x6c25e620, 0x223b7: 0x6c606620,
-	0x223b8: 0x6ce35220, 0x223b9: 0x6cc7b620, 0x223bb: 0x6c4d4220,
-	0x223bc: 0x6d0a2620, 0x223be: 0x6c073c20, 0x223bf: 0x6d348420,
-	// Block 0x88f, offset 0x223c0
-	0x223c1: 0x6c340020,
-	0x223cb: 0x6c293220,
-	0x223d0: 0x6cc62e20,
-	0x223f2: 0x6c41a820,
-	0x223f5: 0x6c42ae20, 0x223f6: 0x6cde7220,
-	0x223f8: 0x6cebae20, 0x223f9: 0x6d105e20, 0x223fa: 0x6c7a4e20, 0x223fb: 0x6d368c20,
-	// Block 0x890, offset 0x22400
-	0x22416: 0x6c64d020, 0x22417: 0x6ca6be20,
-	0x22418: 0x6cd00e20, 0x22419: 0x6c058620, 0x2241a: 0x6cd66e20, 0x2241b: 0x6c30c020,
-	0x2241d: 0x6cb91420, 0x2241e: 0x6c4e2820, 0x2241f: 0x6cb83020,
-	0x22420: 0x6c41e420, 0x22423: 0x6c215a20,
-	0x22424: 0x6c13fe20, 0x22425: 0x6c0a2620, 0x22426: 0x6d140c20, 0x22427: 0x6c3d9020,
-	0x22428: 0x6c35b820, 0x2242a: 0x6c816c20, 0x2242b: 0x6c4fe020,
-	0x2242c: 0x6c842a20,
-	0x22431: 0x6ce28020, 0x22432: 0x6cd01020,
-	0x22434: 0x6d1a9020, 0x22437: 0x6c64d220,
-	0x2243b: 0x6c140020,
-	// Block 0x891, offset 0x22440
-	0x22457: 0x6ca86020,
-	0x22458: 0x6c23f620, 0x2245b: 0x6d154620,
-	0x2245f: 0x6ce12220,
-	0x22462: 0x6c738820,
-	0x22470: 0x6c1c5820, 0x22471: 0x6c468e20,
-	0x22474: 0x6c6b1a20, 0x22475: 0x6d307c20, 0x22476: 0x6c559220, 0x22477: 0x6c987220,
-	0x2247b: 0x6d406220,
-	0x2247c: 0x6cd8e820, 0x2247f: 0x6c3ad020,
-	// Block 0x892, offset 0x22480
-	0x22480: 0x6d3e8620, 0x22481: 0x6d3e8820, 0x22483: 0x6c6b3420,
-	0x22484: 0x6cd82820, 0x22486: 0x6c211620, 0x22487: 0x6cad9820,
-	0x2248b: 0x6d128e20,
-	0x2248c: 0x6c2b4420, 0x2248e: 0x6c825820, 0x2248f: 0x6d05e420,
-	0x22490: 0x6cc7c820, 0x22492: 0x6cabde20, 0x22493: 0x6c738e20,
-	0x22494: 0x6cf8dc20, 0x22495: 0x6d133e20, 0x22496: 0x6c014c20,
-	0x22498: 0x6d189420, 0x22499: 0x6c64f420,
-	0x2249c: 0x6cd93820, 0x2249d: 0x6cf2c420, 0x2249f: 0x6ccb5820,
-	0x224a0: 0x6d355020, 0x224a1: 0x6c088e20, 0x224a2: 0x6d3be220,
-	0x224a6: 0x6c67fa20, 0x224a7: 0x6c506820,
-	0x224a9: 0x6c1c6c20, 0x224aa: 0x6c340820,
-	// Block 0x893, offset 0x224c0
-	0x224d3: 0x6c0f5820,
-	0x224d4: 0x6c60a820, 0x224d5: 0x6c1fb020, 0x224d7: 0x6c962620,
-	0x224da: 0x6cc8b220,
-	0x224eb: 0x6c55b020,
-	0x224f1: 0x6c28c420,
-	0x224f4: 0x6c4e6420, 0x224f5: 0x6cc3fe20, 0x224f6: 0x6ccc1e20, 0x224f7: 0x6d2e1e20,
-	0x224f8: 0x6d2b0e20, 0x224f9: 0x6c201220, 0x224fa: 0x6cb53620, 0x224fb: 0x6c2ef020,
-	0x224fd: 0x6d2ce220, 0x224fe: 0x6ce83220,
-	// Block 0x894, offset 0x22500
-	0x22501: 0x6c221220, 0x22502: 0x6cc99e20,
-	0x22504: 0x6c955620, 0x22507: 0x6c60be20,
-	0x22522: 0x6c95c220, 0x22523: 0x6cbdb220,
-	0x22527: 0x6cbf6c20,
-	0x22528: 0x6c739420,
-	0x2252c: 0x6c00e020, 0x2252d: 0x6c65e220,
-	0x22539: 0x6ce42a20, 0x2253a: 0x6cf1b620,
-	0x2253d: 0x6cbbb620,
-	// Block 0x895, offset 0x22540
-	0x22541: 0x6cac0820, 0x22542: 0x6c5d0620,
-	0x22545: 0x6c00ec20, 0x22547: 0x6cd7a220,
-	0x22548: 0x6c887220, 0x22549: 0x6c337420, 0x2254b: 0x6cdebc20,
-	0x2254c: 0x6c6cbe20, 0x2254d: 0x6c0a8a20, 0x2254e: 0x6d0de820, 0x2254f: 0x6c435a20,
-	0x22550: 0x6cb18820, 0x22551: 0x6d242c20, 0x22552: 0x6ccf7c20,
-	0x22555: 0x6c651420, 0x22557: 0x6c55dc20,
-	0x2255a: 0x6c8b4e20,
-	0x2255c: 0x6c0bce20, 0x2255d: 0x6cdb4e20, 0x2255e: 0x6c689420,
-	0x22578: 0x6d3cb820,
-	0x2257d: 0x6c4dc220,
-	// Block 0x896, offset 0x22580
-	0x22587: 0x6c340e20,
-	0x22590: 0x6d014e20, 0x22591: 0x6c9b8220, 0x22592: 0x6c3db420, 0x22593: 0x6c931a20,
-	0x22594: 0x6ce0b220, 0x22597: 0x6c8ecc20,
-	0x22598: 0x6cfaee20, 0x22599: 0x6cca9420,
-	0x2259c: 0x6c240220, 0x2259d: 0x6d3c2620, 0x2259f: 0x6c188e20,
-	0x225b0: 0x6c892820,
-	0x225b4: 0x6c848c20,
-	// Block 0x897, offset 0x225c0
-	0x225c0: 0x6caf1a20, 0x225c1: 0x6ceb9420,
-	0x225c4: 0x6cebb820, 0x225c6: 0x6c8a4a20, 0x225c7: 0x6d002620,
-	0x225c8: 0x6c20f620, 0x225c9: 0x6c581a20, 0x225ca: 0x6ca7c220, 0x225cb: 0x6cb94820,
-	0x225cc: 0x6c871c20, 0x225cf: 0x6cad3e20,
-	0x225d0: 0x6ce5b020, 0x225d1: 0x6c8ece20, 0x225d2: 0x6cf40a20,
-	0x225e4: 0x6d1d2620, 0x225e6: 0x6d2c6820,
-	0x225f0: 0x6d21ee20, 0x225f2: 0x6cfc5020, 0x225f3: 0x6d083820,
-	0x225f4: 0x6cd68a20, 0x225f5: 0x6cf74220,
-	0x225f8: 0x6c9a4220, 0x225f9: 0x6ccbb420, 0x225fa: 0x6c893420,
-	0x225fc: 0x6c6f9020, 0x225fd: 0x6c81ec20,
-	// Block 0x898, offset 0x22600
-	0x2260e: 0x6cff5020, 0x2260f: 0x6d407420,
-	0x2261a: 0x6c8ee820,
-	0x2261c: 0x6d2ff020, 0x2261e: 0x6d30c220,
-	0x22620: 0x6c830820,
-	0x2262d: 0x6c32b420,
-	0x22637: 0x6c663420,
-	0x22638: 0x6cd68c20, 0x22639: 0x6d425620, 0x2263a: 0x6cbd0c20,
-	0x2263c: 0x6c81ca20,
-	// Block 0x899, offset 0x22640
-	0x22649: 0x6d248420, 0x2264a: 0x6d196620, 0x2264b: 0x6ca66e20,
-	0x2264e: 0x6c134620,
-	0x22655: 0x6d0f1a20, 0x22657: 0x6cc89020,
-	0x2265e: 0x6d0d1c20, 0x2265f: 0x6c2f1e20,
-	0x22660: 0x6c9df620,
-	0x22667: 0x6c82a420,
-	0x22669: 0x6cecae20,
-	0x22670: 0x6ca2fe20,
-	0x22676: 0x6d0d2420,
-	0x2267a: 0x6c831c20,
-	0x2267d: 0x6ccc3020, 0x2267e: 0x6c551620,
-	// Block 0x89a, offset 0x22680
-	0x22681: 0x6cf58020, 0x22682: 0x6cf58220,
-	0x22684: 0x6d1fa020, 0x22685: 0x6c4d9220, 0x22687: 0x6c4d0820,
-	0x22689: 0x6cebc820, 0x2268a: 0x6d068220, 0x2268b: 0x6caf3c20,
-	0x2268c: 0x6cdf8e20, 0x2268d: 0x6cf58a20, 0x2268e: 0x6cf58c20, 0x2268f: 0x6c0d2420,
-	0x22690: 0x6cbd1a20, 0x22691: 0x6cf58e20, 0x22692: 0x6d20c420, 0x22693: 0x6cf84a20,
-	0x22695: 0x6c22b620, 0x22696: 0x6cba4020, 0x22697: 0x6cf95420,
-	0x2269a: 0x6cec0620, 0x2269b: 0x6c35f420,
-	0x2269c: 0x6d1fae20, 0x2269d: 0x6d041a20, 0x2269e: 0x6ca5c220, 0x2269f: 0x6c4de420,
-	0x226a0: 0x6c094a20, 0x226a1: 0x6cd0ec20,
-	0x226a4: 0x6d2d6220, 0x226a5: 0x6c2d4420, 0x226a6: 0x6d222c20,
-	0x226a8: 0x6cab7a20, 0x226aa: 0x6c4ae820, 0x226ab: 0x6cee0620,
-	0x226ac: 0x6cb8c620, 0x226ad: 0x6d14c820,
-	0x226b0: 0x6d40b020, 0x226b2: 0x6cb8c820, 0x226b3: 0x6c2f9c20,
-	0x226b4: 0x6c793420, 0x226b6: 0x6c1f2620, 0x226b7: 0x6d13e020,
-	0x226ba: 0x6c4d9e20, 0x226bb: 0x6c7b6420,
-	// Block 0x89b, offset 0x226c0
-	0x226c8: 0x6c2d5820, 0x226c9: 0x6cf88a20, 0x226ca: 0x6d3e3c20, 0x226cb: 0x6c8d0420,
-	0x226cc: 0x6d3f4e20, 0x226ce: 0x6d234420, 0x226cf: 0x6c5ccc20,
-	0x226d1: 0x6cd86e20, 0x226d2: 0x6c76d620,
-	0x226da: 0x6c01c420,
-	0x226dc: 0x6d1fca20, 0x226dd: 0x6c605420, 0x226de: 0x6c5d2c20, 0x226df: 0x6cb82e20,
-	0x226e0: 0x6c541020, 0x226e1: 0x6c541220, 0x226e3: 0x6c2d5c20,
-	0x226e9: 0x6d004c20,
-	0x226ed: 0x6ccf5620, 0x226ee: 0x6ccc5c20,
-	0x226f2: 0x6d00ca20, 0x226f3: 0x6d112220,
-	0x226f4: 0x6c26f420, 0x226f6: 0x6d01d820, 0x226f7: 0x6c1ac620,
-	0x226f8: 0x6d1fde20, 0x226f9: 0x6c50a220, 0x226fa: 0x6ccc6220,
-	0x226ff: 0x6cdf2e20,
-	// Block 0x89c, offset 0x22700
-	0x22701: 0x6d3a1c20, 0x22703: 0x6c006c20,
-	0x22707: 0x6cc3e020,
-	0x22708: 0x6d2aea20, 0x2270a: 0x6c7e4a20, 0x2270b: 0x6c911620,
-	0x2270c: 0x6c1fc820, 0x2270e: 0x6d1fe620,
-	0x22716: 0x6ce41020,
-	0x22718: 0x6cd1fa20,
-	0x22721: 0x6d000a20, 0x22722: 0x6cf8ee20,
-	0x22728: 0x6c5e1220, 0x22729: 0x6c1c8620, 0x2272a: 0x6d18e620,
-	0x2272f: 0x6cd54420,
-	0x22730: 0x6d270020, 0x22731: 0x6c155420, 0x22732: 0x6c36da20, 0x22733: 0x6cf73620,
-	0x22734: 0x6cf74420, 0x22735: 0x6d1d2a20, 0x22736: 0x6d410020, 0x22737: 0x6d28a220,
-	0x2273a: 0x6d28a820,
-	// Block 0x89d, offset 0x22740
-	0x22742: 0x6cde2c20, 0x22743: 0x6ced7020,
-	0x22747: 0x6d031e20,
-	0x2274a: 0x6cee4820, 0x2274b: 0x6c3f3820,
-	0x22750: 0x6c91b620,
-	0x2275e: 0x6c656820,
-	0x22761: 0x6d0c6620, 0x22763: 0x6c094c20,
-	0x22764: 0x6c78fc20, 0x22765: 0x6c497820,
-	0x22768: 0x6d3e1820,
-	0x2276e: 0x6c7cce20, 0x2276f: 0x6d38e020,
-	0x22770: 0x6d35be20, 0x22773: 0x6ce8a420,
-	0x22777: 0x6cde4c20,
-	0x22779: 0x6c1f3e20, 0x2277a: 0x6c196e20, 0x2277b: 0x6c1a7420,
-	0x2277c: 0x6d3af420, 0x2277e: 0x6c26f220,
-	// Block 0x89e, offset 0x22780
-	0x22787: 0x6c09c620,
-	0x22789: 0x6c641c20,
-	0x2278c: 0x6d17e620, 0x2278f: 0x6d26c420,
-	0x22790: 0x6c428a20,
-	0x22796: 0x6c41ae20,
-	0x2279c: 0x6cbbac20,
-	0x227a0: 0x6c1eb020, 0x227a1: 0x6c1eb620, 0x227a2: 0x6c0a6a20,
-	0x227a6: 0x6c4b8a20,
-	0x227a9: 0x6c47e020, 0x227aa: 0x6c0e0020, 0x227ab: 0x6d1b9420,
-	0x227ac: 0x6d3cbc20, 0x227ad: 0x6c47ec20, 0x227af: 0x6c876820,
-	0x227b5: 0x6c35c420, 0x227b6: 0x6c271420,
-	0x227bc: 0x6c118620,
-	// Block 0x89f, offset 0x227c0
-	0x227c2: 0x6ce3d420, 0x227c3: 0x6c323620,
-	0x227c4: 0x6d168c20,
-	0x227c8: 0x6c2e6020, 0x227ca: 0x6ca97e20,
-	0x227cc: 0x6d094420, 0x227cd: 0x6ca54a20, 0x227ce: 0x6c4b3220, 0x227cf: 0x6c779e20,
-	0x227d2: 0x6c201a20,
-	0x227d6: 0x6d2c2020, 0x227d7: 0x6d1efc20,
-	0x227d9: 0x6c043420, 0x227da: 0x6cd24a20, 0x227db: 0x6c2d3e20,
-	0x227dc: 0x6cabb420, 0x227dd: 0x6cc01620,
-	0x227e1: 0x6d094820, 0x227e3: 0x6ca0e420,
-	0x227e4: 0x6c77e020, 0x227e5: 0x6d1fb020, 0x227e6: 0x6c68d220, 0x227e7: 0x6c0ec620,
-	0x227ec: 0x6d052020,
-	0x227f2: 0x6c9ce820, 0x227f3: 0x6c95f220,
-	0x227f5: 0x6d094e20, 0x227f7: 0x6c34e220,
-	0x227f9: 0x6c37c620, 0x227fa: 0x6cccd820,
-	0x227fc: 0x6c7cee20, 0x227fd: 0x6ca52c20, 0x227fe: 0x6c9e1420, 0x227ff: 0x6c85ce20,
-	// Block 0x8a0, offset 0x22800
-	0x22800: 0x6c949620, 0x22802: 0x6c2e8420,
-	0x22804: 0x6cb85620, 0x22805: 0x6c832a20, 0x22807: 0x6c997020,
-	0x22809: 0x6c524c20, 0x2280a: 0x6c181620, 0x2280b: 0x6d35e620,
-	0x2280d: 0x6c477c20, 0x2280e: 0x6c25b820,
-	0x22813: 0x6cf4de20,
-	0x22814: 0x6ce26420, 0x22817: 0x6cf61220,
-	0x22818: 0x6d10a620, 0x22819: 0x6cefc620, 0x2281b: 0x6d40be20,
-	0x2281c: 0x6c96be20, 0x2281d: 0x6d225a20, 0x2281e: 0x6caf0820, 0x2281f: 0x6d17a420,
-	0x22820: 0x6cbe1620, 0x22821: 0x6d26b620, 0x22822: 0x6c754c20, 0x22823: 0x6c67e620,
-	0x22824: 0x6d06d820, 0x22825: 0x6c07ea20,
-	0x2282a: 0x6c95b020, 0x2282b: 0x6d3c6020,
-	0x22832: 0x6c326420, 0x22833: 0x6cfe4020,
-	0x22836: 0x6c5be420,
-	0x2283a: 0x6c479e20, 0x2283b: 0x6c77b020,
-	0x2283e: 0x6d037c20, 0x2283f: 0x6c5cf020,
-	// Block 0x8a1, offset 0x22840
-	0x22840: 0x6c0af820,
-	0x22844: 0x6c78c420, 0x22845: 0x6c77b220,
-	0x22848: 0x6c25e820,
-	0x2284f: 0x6c92a420,
-	0x22851: 0x6d41c620, 0x22852: 0x6d2a2020, 0x22853: 0x6c692e20,
-	0x22854: 0x6c49a020,
-	0x22859: 0x6d0c2220, 0x2285a: 0x6c376620,
-	0x2285c: 0x6cbe8820, 0x2285f: 0x6c2ae820,
-	0x22860: 0x6cd8ea20, 0x22861: 0x6cdc7220, 0x22862: 0x6c8aa420,
-	0x22867: 0x6ccdb020,
-	0x22869: 0x6c0a6e20, 0x2286a: 0x6cf0e420, 0x2286b: 0x6d136020,
-	0x2286d: 0x6d2d5020, 0x2286f: 0x6d129420,
-	0x22870: 0x6c2e4c20, 0x22871: 0x6c00ee20,
-	0x22874: 0x6c680620, 0x22877: 0x6cda6220,
-	0x22879: 0x6c581c20, 0x2287a: 0x6d246020,
-	0x2287d: 0x6cc50a20,
-	// Block 0x8a2, offset 0x22880
-	0x22880: 0x6c2cfa20, 0x22881: 0x6d413e20, 0x22882: 0x6c047420,
-	0x22884: 0x6cbd5a20, 0x22887: 0x6c633620,
-	0x22889: 0x6cafcc20,
-	0x2288c: 0x6ce7ec20,
-	0x22890: 0x6c1da220,
-	0x22895: 0x6c4af020,
-	0x228a0: 0x6c5ee620,
-	0x228a8: 0x6d096420, 0x228aa: 0x6c2d6020,
-	0x228ad: 0x6c0bac20, 0x228ae: 0x6d291c20, 0x228af: 0x6ce76820,
-	0x228b6: 0x6ccd5820,
-	0x228b8: 0x6c482620, 0x228b9: 0x6cc3ec20,
-	// Block 0x8a3, offset 0x228c0
-	0x228c0: 0x6c47cc20,
-	0x228c8: 0x6c55b220, 0x228c9: 0x6c7b0420,
-	0x228cc: 0x6c46d820, 0x228ce: 0x6cdb3220,
-	0x228d0: 0x6c1df620, 0x228d2: 0x6c795c20,
-	0x228d4: 0x6c317e20,
-	0x228d9: 0x6d190a20,
-	0x228dc: 0x6c2a4220, 0x228dd: 0x6cbaf820,
-	0x228e3: 0x6c900220,
-	0x228e5: 0x6c84cc20, 0x228e7: 0x6c87a020,
-	0x228e8: 0x6cbe6420, 0x228ea: 0x6ceed420,
-	0x228ec: 0x6ca1bc20,
-	0x228f1: 0x6cb74420, 0x228f3: 0x6c67a020,
-	0x228f4: 0x6d008c20,
-	0x228f9: 0x6c277820, 0x228fb: 0x6c90a420,
-	// Block 0x8a4, offset 0x22900
-	0x22902: 0x6c497620,
-	0x22906: 0x6cadc820,
-	0x22909: 0x6cafce20, 0x2290b: 0x6c735420,
-	0x2290d: 0x6c06aa20, 0x2290e: 0x6c747c20, 0x2290f: 0x6c738420,
-	0x22910: 0x6cd3b420,
-	0x22915: 0x6d014a20,
-	0x22918: 0x6cc8a820, 0x22919: 0x6c6ec220, 0x2291a: 0x6cb3be20, 0x2291b: 0x6cc9f420,
-	0x22920: 0x6c5e7a20,
-	0x22929: 0x6c3b1820, 0x2292a: 0x6c06e820, 0x2292b: 0x6c6bc220,
-	0x2292c: 0x6cc94020, 0x2292e: 0x6caf3e20,
-	0x22934: 0x6c2c2220, 0x22935: 0x6c98c820, 0x22936: 0x6c03ec20, 0x22937: 0x6c03ee20,
-	0x22938: 0x6ce57820, 0x22939: 0x6c8cba20, 0x2293a: 0x6cd0f020, 0x2293b: 0x6d31c220,
-	0x2293c: 0x6caf4620, 0x2293d: 0x6cf4c620, 0x2293f: 0x6d2b4220,
-	// Block 0x8a5, offset 0x22940
-	0x22940: 0x6c063a20,
-	0x22947: 0x6c938020,
-	0x22956: 0x6c4fa020, 0x22957: 0x6c30e020,
-	0x22958: 0x6c3e0e20, 0x22959: 0x6ca5c420,
-	0x2295d: 0x6c43de20,
-	0x22960: 0x6cc79820, 0x22961: 0x6cfbfc20,
-	0x22964: 0x6c096020,
-	0x2296e: 0x6c98d220,
-	0x22972: 0x6cc70a20, 0x22973: 0x6cc04c20,
-	0x22977: 0x6c0ee820,
-	0x22979: 0x6c4fa620, 0x2297a: 0x6ca4ee20, 0x2297b: 0x6d0c8620,
-	// Block 0x8a6, offset 0x22980
-	0x22983: 0x6cad5c20,
-	0x22984: 0x6cdbc020, 0x22986: 0x6ceba220,
-	0x22988: 0x6cc10a20, 0x22989: 0x6c83d620, 0x2298a: 0x6c2a7220,
-	0x2298c: 0x6c6aca20, 0x2298d: 0x6c6acc20, 0x2298e: 0x6c4bc820, 0x2298f: 0x6c649c20,
-	0x22990: 0x6c099e20,
-	0x229a0: 0x6cca5620, 0x229a1: 0x6c053020, 0x229a2: 0x6c214a20,
-	0x229a6: 0x6ca3c220, 0x229a7: 0x6c054e20,
-	0x229aa: 0x6cc68820, 0x229ab: 0x6c636c20,
-	0x229ac: 0x6cd9c220,
-	0x229b0: 0x6c2a7420,
-	0x229be: 0x6cfaac20, 0x229bf: 0x6d2d8020,
-	// Block 0x8a7, offset 0x229c0
-	0x229c0: 0x6c999620, 0x229c3: 0x6d3e5020,
-	0x229c5: 0x6c623c20, 0x229c6: 0x6cb61c20,
-	0x229cb: 0x6cc82420,
-	0x229cc: 0x6cdd2c20, 0x229cd: 0x6cc71620, 0x229ce: 0x6cf50c20, 0x229cf: 0x6cc69620,
-	0x229d0: 0x6cc69820,
-	0x229da: 0x6cde7620,
-	0x229dc: 0x6cd9d020,
-	0x229e4: 0x6c842c20, 0x229e7: 0x6c24fc20,
-	0x229e8: 0x6d3fb020, 0x229e9: 0x6c9ad220, 0x229ea: 0x6cf80820,
-	0x229ec: 0x6c989e20, 0x229ed: 0x6ca86220, 0x229ef: 0x6cdbd220,
-	0x229f1: 0x6cadea20,
-	0x229f4: 0x6c0a2820, 0x229f5: 0x6c2c9020,
-	0x229f8: 0x6cc1be20, 0x229f9: 0x6cbbfa20, 0x229fb: 0x6c3b4420,
-	0x229fc: 0x6cdb1620,
-	// Block 0x8a8, offset 0x22a00
-	0x22a03: 0x6d05e620,
-	0x22a07: 0x6cc72420,
-	0x22a08: 0x6c5f3220, 0x22a0b: 0x6cc1d620,
-	0x22a0c: 0x6c8b3820,
-	0x22a15: 0x6ccafe20,
-	0x22a18: 0x6c7dd620, 0x22a1a: 0x6c257620, 0x22a1b: 0x6d136c20,
-	0x22a1c: 0x6c0e3220, 0x22a1e: 0x6c6b5c20,
-	0x22a20: 0x6cc1e020, 0x22a21: 0x6cc1e220,
-	0x22a25: 0x6c9b6e20, 0x22a26: 0x6cc49020,
-	0x22a28: 0x6c0d5e20, 0x22a29: 0x6c178220,
-	0x22a2c: 0x6c31d420,
-	0x22a36: 0x6cc4ec20, 0x22a37: 0x6cfb0220,
-	0x22a3a: 0x6ce25220, 0x22a3b: 0x6cc20a20,
-	0x22a3c: 0x6ca8b420, 0x22a3f: 0x6cd51c20,
-	// Block 0x8a9, offset 0x22a40
-	0x22a40: 0x6c920220, 0x22a42: 0x6c7dda20,
-	0x22a48: 0x6c9f3620, 0x22a49: 0x6c9f9e20,
-	0x22a4d: 0x6c287e20,
-	0x22a50: 0x6d1b6820, 0x22a53: 0x6d001020,
-	0x22a57: 0x6c618820,
-	0x22a5c: 0x6d19b220,
-	0x22a66: 0x6c3b3820, 0x22a67: 0x6d383420,
-	0x22a6b: 0x6c47c020,
-	0x22a71: 0x6c13c420, 0x22a73: 0x6c8e3c20,
-	0x22a76: 0x6c102c20,
-	0x22a7a: 0x6cabae20, 0x22a7b: 0x6cd87620,
-	0x22a7c: 0x6c29b820, 0x22a7d: 0x6d31b020,
-	// Block 0x8aa, offset 0x22a80
-	0x22a80: 0x6cccb620, 0x22a82: 0x6c1fbe20,
-	0x22a84: 0x6c6fa820,
-	0x22a8a: 0x6c787620, 0x22a8b: 0x6c1af820,
-	0x22a91: 0x6c565c20, 0x22a92: 0x6c858220, 0x22a93: 0x6ccbc620,
-	0x22a96: 0x6cac1820, 0x22a97: 0x6ceee220,
-	0x22a98: 0x6cf42620,
-	0x22a9c: 0x6d1c5420,
-	0x22aa1: 0x6ccbc820, 0x22aa2: 0x6c2b1020,
-	0x22aa5: 0x6c27b820,
-	0x22ab1: 0x6ce83a20, 0x22ab2: 0x6c50ca20, 0x22ab3: 0x6cb34e20,
-	0x22ab5: 0x6d34f620, 0x22ab6: 0x6ca98020, 0x22ab7: 0x6ca67e20,
-	0x22abd: 0x6cc6f820, 0x22abe: 0x6c48ea20,
-	// Block 0x8ab, offset 0x22ac0
-	0x22ac0: 0x6d343e20, 0x22ac3: 0x6c5fe220,
-	0x22adc: 0x6c392c20, 0x22adf: 0x6c6a8020,
-	0x22ae0: 0x6c4d3820,
-	0x22ae4: 0x6d2e4e20, 0x22ae6: 0x6cf86420,
-	0x22ae9: 0x6d3e1220,
-	0x22aec: 0x6cf76e20, 0x22aed: 0x6cb1ac20,
-	0x22af0: 0x6c078020, 0x22af2: 0x6c657220,
-	// Block 0x8ac, offset 0x22b00
-	0x22b13: 0x6c665c20,
-	0x22b16: 0x6d28ae20,
-	0x22b1e: 0x6c07ac20, 0x22b1f: 0x6c995e20,
-	0x22b22: 0x6d2a7620, 0x22b23: 0x6d3c3820,
-	0x22b25: 0x6c7bbe20,
-	0x22b28: 0x6c089e20, 0x22b2a: 0x6cac2220,
-	0x22b3c: 0x6c996020, 0x22b3d: 0x6ce09020,
-	// Block 0x8ad, offset 0x22b40
-	0x22b5e: 0x6cea7a20, 0x22b5f: 0x6c95aa20,
-	0x22b62: 0x6cdf9a20,
-	0x22b71: 0x6c016a20,
-	0x22b77: 0x6c4e0420,
-	0x22b78: 0x6d3a0c20, 0x22b7a: 0x6c34e820, 0x22b7b: 0x6c34ea20,
-	0x22b7c: 0x6c421c20,
-	// Block 0x8ae, offset 0x22b80
-	0x22b86: 0x6cbf8c20,
-	0x22b88: 0x6cee1220, 0x22b8a: 0x6ca10420, 0x22b8b: 0x6d30f220,
-	0x22b8c: 0x6cf1d620, 0x22b8d: 0x6d3c3a20, 0x22b8f: 0x6c69fe20,
-	0x22b90: 0x6cad8e20,
-	0x22b98: 0x6cdaa820,
-	0x22b9d: 0x6c724020,
-	0x22ba0: 0x6cb4ec20, 0x22ba1: 0x6c11f420, 0x22ba3: 0x6ce94a20,
-	0x22ba4: 0x6ccbec20, 0x22ba6: 0x6ceb1620,
-	0x22ba9: 0x6c579420, 0x22bab: 0x6d176220,
-	// Block 0x8af, offset 0x22bc0
-	0x22be0: 0x6c9f4820, 0x22be1: 0x6d37b420,
-	0x22be5: 0x6cd77e20,
-	0x22be9: 0x6d176420, 0x22bea: 0x6cee1420, 0x22beb: 0x6c024220,
-	0x22bf6: 0x6cda7820,
-	0x22bfe: 0x6c4b0020, 0x22bff: 0x6ceb8020,
-	// Block 0x8b0, offset 0x22c00
-	0x22c00: 0x6c5b5220, 0x22c03: 0x6d06dc20,
-	0x22c04: 0x6d296c20, 0x22c06: 0x6d3f1220, 0x22c07: 0x6c0b9e20,
-	0x22c09: 0x6c26a620, 0x22c0a: 0x6d19ca20, 0x22c0b: 0x6cc35c20,
-	0x22c0e: 0x6c580e20, 0x22c0f: 0x6ca2e020,
-	0x22c10: 0x6d28ba20, 0x22c12: 0x6ce32620,
-	0x22c18: 0x6d14f820, 0x22c19: 0x6cdfaa20, 0x22c1a: 0x6ccf1820, 0x22c1b: 0x6cd78220,
-	0x22c1d: 0x6d03e620,
-	0x22c20: 0x6d1fce20, 0x22c23: 0x6c3b7620,
-	// Block 0x8b1, offset 0x22c40
-	0x22c47: 0x6c78b220,
-	0x22c4b: 0x6c3e7c20,
-	0x22c52: 0x6c9fb220,
-	0x22c5a: 0x6cb09820,
-	0x22c5c: 0x6c604220, 0x22c5d: 0x6cbc4a20, 0x22c5e: 0x6d37fc20, 0x22c5f: 0x6c422820,
-	0x22c60: 0x6d24f820, 0x22c61: 0x6c1b3620,
-	0x22c65: 0x6cba5a20, 0x22c67: 0x6d424220,
-	0x22c69: 0x6d00bc20, 0x22c6a: 0x6c98ea20,
-	0x22c6c: 0x6c556e20, 0x22c6e: 0x6cb0a420, 0x22c6f: 0x6d0a9420,
-	0x22c71: 0x6cf9d220, 0x22c72: 0x6ce34420,
-	0x22c75: 0x6ca34e20, 0x22c76: 0x6c1fac20,
-	// Block 0x8b2, offset 0x22c80
-	0x22c80: 0x6cf45020,
-	0x22cac: 0x6c599820, 0x22cad: 0x6d096620, 0x22cae: 0x6ce26620,
-	0x22cb0: 0x6cbc4c20, 0x22cb3: 0x6c685020,
-	0x22cbc: 0x6c293020, 0x22cbd: 0x6c044620,
-	// Block 0x8b3, offset 0x22cc0
-	0x22ccd: 0x6c297620, 0x22cce: 0x6c79f820,
-	0x22cd0: 0x6c70b220, 0x22cd1: 0x6ccc0a20, 0x22cd2: 0x6c6dc820,
-	0x22cd5: 0x6ca06c20, 0x22cd6: 0x6caa0220,
-	0x22cd8: 0x6cd78e20, 0x22cda: 0x6cd5f820, 0x22cdb: 0x6d3c2020,
-	0x22cdc: 0x6c3ec220, 0x22cdf: 0x6d29de20,
-	0x22ce0: 0x6d00cc20, 0x22ce1: 0x6c812820, 0x22ce2: 0x6ce70420,
-	0x22ce9: 0x6d306e20,
-	0x22cec: 0x6c11fe20, 0x22cee: 0x6d26cc20,
-	0x22cf1: 0x6d393620,
-	// Block 0x8b4, offset 0x22d00
-	0x22d1a: 0x6cdfb420,
-	0x22d1e: 0x6d0cb420, 0x22d1f: 0x6c928820,
-	0x22d20: 0x6d0db620,
-	0x22d26: 0x6d2ae020, 0x22d27: 0x6cd66c20,
-	// Block 0x8b5, offset 0x22d40
-	0x22d45: 0x6c4c3620, 0x22d46: 0x6d3a2020,
-	0x22d48: 0x6cc7bc20, 0x22d49: 0x6cc7be20,
-	0x22d4c: 0x6c76e620, 0x22d4d: 0x6c626220, 0x22d4e: 0x6c42da20,
-	0x22d52: 0x6d01fa20,
-	0x22d55: 0x6caba220, 0x22d56: 0x6c64d420,
-	0x22d5a: 0x6d349220, 0x22d5b: 0x6d2c4820,
-	0x22d5d: 0x6c53a820, 0x22d5f: 0x6c7b7020,
-	0x22d61: 0x6c0f4420,
-	0x22d64: 0x6ccb4820, 0x22d65: 0x6c01cc20, 0x22d66: 0x6c66b820,
-	0x22d68: 0x6ce2ac20, 0x22d6b: 0x6cd93420,
-	0x22d6d: 0x6c9c0c20, 0x22d6e: 0x6d1a9420, 0x22d6f: 0x6cdfb620,
-	0x22d70: 0x6c4c3820, 0x22d73: 0x6cc84620,
-	0x22d74: 0x6cf0ba20, 0x22d77: 0x6cd8de20,
-	// Block 0x8b6, offset 0x22d80
-	0x22da4: 0x6cb7c220, 0x22da6: 0x6d2f0a20,
-	// Block 0x8b7, offset 0x22dc0
-	0x22dc5: 0x6c304020, 0x22dc6: 0x6c3eee20, 0x22dc7: 0x6cd07620,
-	0x22dc8: 0x6cdb1a20, 0x22dc9: 0x6d18a020, 0x22dca: 0x6c891820,
-	0x22dcc: 0x6c516e20, 0x22dce: 0x6d319420,
-	0x22dd0: 0x6d2afe20, 0x22dd2: 0x6c250c20, 0x22dd3: 0x6c250e20,
-	0x22ddd: 0x6c3cf220, 0x22dde: 0x6c853220, 0x22ddf: 0x6c7a0220,
-	0x22de3: 0x6d000620,
-	0x22de4: 0x6d1fee20,
-	// Block 0x8b8, offset 0x22e00
-	0x22e03: 0x6c4fea20,
-	0x22e09: 0x6c4f0620, 0x22e0a: 0x6c790c20,
-	0x22e1d: 0x6d23ec20,
-	0x22e23: 0x6c58e220,
-	0x22e24: 0x6cdd3e20, 0x22e26: 0x6c7e9c20,
-	0x22e28: 0x6c313c20, 0x22e29: 0x6c66de20, 0x22e2a: 0x6cb32020, 0x22e2b: 0x6c0b5420,
-	0x22e30: 0x6d097420, 0x22e32: 0x6c0bc820,
-	0x22e37: 0x6cf0e620,
-	// Block 0x8b9, offset 0x22e40
-	0x22e61: 0x6c28d620, 0x22e62: 0x6c6b5e20, 0x22e63: 0x6c046020,
-	0x22e65: 0x6ca74420, 0x22e66: 0x6cfd2620, 0x22e67: 0x6ccb7620,
-	0x22e6a: 0x6c576420, 0x22e6b: 0x6c1fa420,
-	0x22e6e: 0x6caba620, 0x22e6f: 0x6c8b5020,
-	0x22e70: 0x6c2ba420, 0x22e71: 0x6c114e20, 0x22e73: 0x6d2c5e20,
-	0x22e75: 0x6c936820,
-	0x22e79: 0x6c5e1420,
-	0x22e7c: 0x6c86ce20, 0x22e7d: 0x6d1d1620, 0x22e7f: 0x6cf03a20,
-	// Block 0x8ba, offset 0x22e80
-	0x22e80: 0x6c0a8c20, 0x22e81: 0x6c4c9620, 0x22e83: 0x6cb0ce20,
-	0x22e86: 0x6c0c3a20,
-	0x22ea0: 0x6d0dea20,
-	0x22ea4: 0x6d3bee20,
-	0x22eb2: 0x6c539420,
-	0x22eb6: 0x6c8c7820, 0x22eb7: 0x6c36ce20,
-	0x22eb9: 0x6d1b1820, 0x22eba: 0x6c808020,
-	0x22ebc: 0x6d123820, 0x22ebf: 0x6d08c820,
-	// Block 0x8bb, offset 0x22ec0
-	0x22ec0: 0x6c86fa20,
-	0x22ee8: 0x6c808420, 0x22ee9: 0x6c8d9020, 0x22eea: 0x6cf73820, 0x22eeb: 0x6c52de20,
-	0x22eed: 0x6c696a20, 0x22eee: 0x6d3dd220,
-	0x22ef2: 0x6d34b620,
-	0x22ef5: 0x6c0fb820, 0x22ef6: 0x6ce29620, 0x22ef7: 0x6c019820,
-	0x22efa: 0x6d0a5220, 0x22efb: 0x6c82fa20,
-	0x22efc: 0x6d29ec20, 0x22efd: 0x6c5b7c20,
-	// Block 0x8bc, offset 0x22f00
-	0x22f0e: 0x6cf92620, 0x22f0f: 0x6c539820,
-	0x22f11: 0x6c397820, 0x22f12: 0x6c662420, 0x22f13: 0x6c23c820,
-	0x22f14: 0x6d28da20, 0x22f16: 0x6c10e020,
-	0x22f18: 0x6d1ece20, 0x22f1b: 0x6c338820,
-	0x22f1c: 0x6cac4e20,
-	0x22f25: 0x6cdede20, 0x22f27: 0x6cacc420,
-	0x22f2b: 0x6c386e20,
-	0x22f2c: 0x6cf74620,
-	0x22f36: 0x6d124c20, 0x22f37: 0x6c957620,
-	0x22f3a: 0x6c0b2220,
-	0x22f3c: 0x6c6d7420, 0x22f3d: 0x6c876a20,
-	// Block 0x8bd, offset 0x22f40
-	0x22f4a: 0x6d0f0a20, 0x22f4b: 0x6c315020,
-	0x22f4e: 0x6c981620,
-	0x22f50: 0x6c45ca20, 0x22f51: 0x6cc51420, 0x22f52: 0x6c121220,
-	0x22f63: 0x6c9ae420,
-	0x22f71: 0x6c47fc20, 0x22f72: 0x6cd69e20,
-	0x22f78: 0x6d0d2020, 0x22f79: 0x6c0adc20,
-	// Block 0x8be, offset 0x22f80
-	0x22f80: 0x6c0c6a20, 0x22f81: 0x6c1a6220, 0x22f82: 0x6c7ce620,
-	0x22f84: 0x6c5d8820,
-	0x22f8d: 0x6c1be620, 0x22f8f: 0x6cf2d020,
-	0x22f91: 0x6c23e820, 0x22f92: 0x6d357a20,
-	0x22f99: 0x6cd70820,
-	0x22f9c: 0x6c48a220, 0x22f9d: 0x6cb40020, 0x22f9e: 0x6d068620, 0x22f9f: 0x6cd7d020,
-	0x22fa1: 0x6cf42e20,
-	0x22fae: 0x6c3d4020,
-	0x22fb0: 0x6cd31e20, 0x22fb3: 0x6c5b9220,
-	0x22fb4: 0x6c597c20, 0x22fb5: 0x6cabb620,
-	0x22fbc: 0x6d3a5e20, 0x22fbe: 0x6d14a220,
-	// Block 0x8bf, offset 0x22fc0
-	0x22fc3: 0x6c85a820,
-	0x22fc4: 0x6ccd3420,
-	0x22fdc: 0x6c9f3820, 0x22fde: 0x6c437c20,
-	0x22fe0: 0x6c54b020,
-	0x22fef: 0x6c371220,
-	0x22ff0: 0x6c380e20, 0x22ff3: 0x6d06aa20,
-	0x22ff4: 0x6d14ca20,
-	0x22ffe: 0x6d1d3620,
-	// Block 0x8c0, offset 0x23000
-	0x23014: 0x6c1b1820,
-	0x23019: 0x6d14cc20,
-	0x23025: 0x6c2b6a20, 0x23026: 0x6c5b5020, 0x23027: 0x6c510c20,
-	0x23029: 0x6d2c7a20,
-	0x23036: 0x6d27a420, 0x23037: 0x6cfa9c20,
-	// Block 0x8c1, offset 0x23040
-	0x2304c: 0x6cfb4c20, 0x2304d: 0x6c81d220, 0x2304e: 0x6cced420, 0x2304f: 0x6cd36820,
-	0x23050: 0x6d3d5220,
-	0x23064: 0x6c0ca820, 0x23065: 0x6c6fc020, 0x23066: 0x6cf29220, 0x23067: 0x6c68f820,
-	0x23068: 0x6c3e7e20, 0x2306a: 0x6cfd7620, 0x2306b: 0x6c768a20,
-	// Block 0x8c2, offset 0x23080
-	0x230b2: 0x6ca4fe20,
-	0x230b4: 0x6c5ddc20, 0x230b5: 0x6c605620, 0x230b6: 0x6c7e7e20,
-	0x230bb: 0x6c3d1220,
-	0x230bc: 0x6ccd4c20, 0x230bd: 0x6c8a9c20, 0x230be: 0x6c9ee020, 0x230bf: 0x6c182620,
-	// Block 0x8c3, offset 0x230c0
-	0x230c2: 0x6ca05e20,
-	0x230cf: 0x6c909820,
-	0x230e8: 0x6c34f620, 0x230eb: 0x6ca50020,
-	0x230ed: 0x6c5ee820,
-	0x230f0: 0x6d3b0820,
-	// Block 0x8c4, offset 0x23100
-	0x23102: 0x6cdad220, 0x23103: 0x6c34f820,
-	0x23107: 0x6c6f2820,
-	0x2310a: 0x6d291e20, 0x2310b: 0x6c5b5c20,
-	0x2310c: 0x6d1cfe20, 0x2310d: 0x6c557a20, 0x2310e: 0x6c8c5820, 0x2310f: 0x6cf25820,
-	0x23110: 0x6c4ee820,
-	0x23114: 0x6ca40620,
-	0x23137: 0x6cf8b020,
-	0x23139: 0x6c422c20,
-	0x2313e: 0x6c51d420, 0x2313f: 0x6c5f0820,
-	// Block 0x8c5, offset 0x23140
-	0x23140: 0x6cfdf020, 0x23141: 0x6ccc0c20,
-	0x23150: 0x6cea0c20, 0x23152: 0x6d2f6c20, 0x23153: 0x6cd60420,
-	0x23155: 0x6d1fe820, 0x23156: 0x6c64d820,
-	0x2315c: 0x6d2a8c20,
-	0x23164: 0x6d2ed820,
-	0x2317d: 0x6cc92c20,
-	// Block 0x8c6, offset 0x23180
-	0x23184: 0x6d0c2420,
-	0x2318b: 0x6c255a20,
-	0x23197: 0x6c608a20,
-	0x23198: 0x6cce1a20,
-	0x231a3: 0x6c36a820,
-	0x231a4: 0x6c817420, 0x231a5: 0x6ce07820, 0x231a7: 0x6d3b2820,
-	0x231ad: 0x6c8c3620, 0x231af: 0x6d2b9220,
-	0x231b1: 0x6c732a20, 0x231b2: 0x6c550220,
-	// Block 0x8c7, offset 0x231c0
-	0x231d7: 0x6cd07820,
-	0x231d8: 0x6c5dfa20,
-	0x231dc: 0x6c7d2020,
-	0x231f1: 0x6c1f7620, 0x231f2: 0x6d395020,
-	0x231f6: 0x6c023020,
-	0x231f8: 0x6d3db220,
-	0x231fd: 0x6d03a420, 0x231ff: 0x6c9ef420,
-	// Block 0x8c8, offset 0x23200
-	0x23200: 0x6c550c20,
-	0x23214: 0x6ce01a20,
-	0x23219: 0x6c0a7220,
-	0x23223: 0x6c2f8420,
-	0x23229: 0x6c769820, 0x2322b: 0x6c0c3c20,
-	0x23230: 0x6c5e1620, 0x23231: 0x6c8b5220, 0x23232: 0x6c24b820,
-	// Block 0x8c9, offset 0x23240
-	0x23243: 0x6cfd2820,
-	0x23244: 0x6cc55620,
-	0x23253: 0x6d270220,
-	0x23255: 0x6d09be20, 0x23257: 0x6c8a8020,
-	0x23263: 0x6ccc2a20,
-	0x23266: 0x6cd3fc20,
-	0x2326a: 0x6d025c20,
-	0x23273: 0x6cff4a20,
-	0x23277: 0x6d129620,
-	0x23278: 0x6c805020, 0x23279: 0x6d192e20,
-	0x2327f: 0x6c88da20,
-	// Block 0x8ca, offset 0x23280
-	0x23294: 0x6c0fba20, 0x23295: 0x6c126e20,
-	0x2329d: 0x6d124220,
-	0x232a6: 0x6c893620,
-	0x232bb: 0x6cdef020,
-	// Block 0x8cb, offset 0x232c0
-	0x232d1: 0x6c62ec20,
-	0x232d4: 0x6cf75220, 0x232d5: 0x6d377020,
-	0x232da: 0x6cf75620,
-	0x232dd: 0x6d273220,
-	0x232e4: 0x6cfc6c20, 0x232e6: 0x6d3df820,
-	0x232ef: 0x6d2ef820,
-	0x232f5: 0x6d410620, 0x232f7: 0x6ca2ce20,
-	0x232fe: 0x6c2a0420, 0x232ff: 0x6c8ad620,
-	// Block 0x8cc, offset 0x23300
-	0x23300: 0x6ca2d220,
-	0x23309: 0x6cad5420, 0x2330b: 0x6c721620,
-	0x23316: 0x6c95b220,
-	0x23319: 0x6cd64820, 0x2331a: 0x6cce5420,
-	0x2331d: 0x6c95b420, 0x2331f: 0x6c3b3a20,
-	0x23323: 0x6c065820,
-	0x23328: 0x6c865820, 0x2332b: 0x6d04a220,
-	0x23336: 0x6c290820,
-	// Block 0x8cd, offset 0x23340
-	0x23340: 0x6c1a8c20,
-	0x23344: 0x6d2f1420, 0x23347: 0x6cda3a20,
-	0x2334a: 0x6cd03e20,
-	0x23352: 0x6c447220,
-	0x23358: 0x6d209020, 0x2335a: 0x6c5ad420, 0x2335b: 0x6c183e20,
-	0x2335d: 0x6c698420, 0x2335e: 0x6d3ac420, 0x2335f: 0x6cd4b220,
-	0x23362: 0x6cff8420,
-	0x23366: 0x6ca91420,
-	0x2336d: 0x6c674420, 0x2336f: 0x6c674820,
-	0x23377: 0x6c2e0e20,
-	0x2337d: 0x6cbb0c20, 0x2337e: 0x6cc04e20,
-	// Block 0x8ce, offset 0x23380
-	0x23380: 0x6c3c4020,
-	0x23386: 0x6d2e6620, 0x23387: 0x6c77fa20,
-	0x23392: 0x6c2ece20, 0x23393: 0x6d2aec20,
-	0x23396: 0x6c49f820, 0x23397: 0x6ccb5c20,
-	0x23398: 0x6c3bea20, 0x2339b: 0x6c67bc20,
-	0x2339d: 0x6d0cd820, 0x2339e: 0x6d370820,
-	0x233a2: 0x6c872220,
-	0x233a6: 0x6c8ddc20,
-	0x233aa: 0x6d146420,
-	0x233ac: 0x6cc23e20, 0x233ad: 0x6cac5220, 0x233ae: 0x6c463a20,
-	0x233b0: 0x6c640220, 0x233b1: 0x6c50da20, 0x233b3: 0x6caf0c20,
-	0x233b5: 0x6c721820, 0x233b7: 0x6c180620,
-	0x233ba: 0x6c8af220, 0x233bb: 0x6cd35220,
-	0x233bc: 0x6cb37a20, 0x233bd: 0x6cfe2820, 0x233bf: 0x6cb08e20,
-	// Block 0x8cf, offset 0x233c0
-	0x233c0: 0x6c95ae20, 0x233c1: 0x6c243420, 0x233c3: 0x6d225020,
-	0x233c7: 0x6c79a820,
-	0x233c8: 0x6d01b020,
-	0x233cd: 0x6ced1e20, 0x233ce: 0x6d0d8e20, 0x233cf: 0x6cadd820,
-	0x233d3: 0x6c1a0620,
-	0x233d8: 0x6ce34620, 0x233d9: 0x6c182820, 0x233da: 0x6c09ce20, 0x233db: 0x6c890820,
-	0x233dc: 0x6c641e20, 0x233de: 0x6ce68220,
-	0x233e2: 0x6ce2f620,
-	0x233e8: 0x6c2edc20, 0x233ea: 0x6cd60620, 0x233eb: 0x6c842e20,
-	0x233ec: 0x6c936020, 0x233ed: 0x6cf97420, 0x233ef: 0x6c24e420,
-	0x233f3: 0x6c0e9220,
-	0x233f4: 0x6ce9ba20, 0x233f5: 0x6cb45020, 0x233f7: 0x6c8c6220,
-	0x233f8: 0x6c3bec20, 0x233fa: 0x6c0f7620, 0x233fb: 0x6c163620,
-	0x233fe: 0x6c290a20, 0x233ff: 0x6cdf5820,
-	// Block 0x8d0, offset 0x23400
-	0x23400: 0x6c2a3c20, 0x23403: 0x6c872420,
-	0x23405: 0x6d0b1220, 0x23406: 0x6d0b1820, 0x23407: 0x6d2d6620,
-	0x2340a: 0x6d14e220,
-	0x2340c: 0x6cb4fa20,
-	0x23414: 0x6c564420, 0x23416: 0x6ce62a20,
-	0x23418: 0x6c79cc20, 0x2341b: 0x6c213220,
-	0x2341c: 0x6d1f0020, 0x2341d: 0x6c3bd020, 0x2341f: 0x6caab220,
-	0x23420: 0x6ce53020, 0x23421: 0x6c6cde20, 0x23422: 0x6cafbc20, 0x23423: 0x6c18a420,
-	0x23424: 0x6cb08820, 0x23426: 0x6c6bc420, 0x23427: 0x6c4ac820,
-	0x23432: 0x6d3c3220,
-	0x23435: 0x6c552420, 0x23436: 0x6c1e2420, 0x23437: 0x6cd5a020,
-	0x23438: 0x6ce1b420, 0x23439: 0x6cafc620, 0x2343a: 0x6cc70020, 0x2343b: 0x6cc70220,
-	0x2343d: 0x6c544e20, 0x2343e: 0x6cae5a20,
-	// Block 0x8d1, offset 0x23440
-	0x23445: 0x6c043e20, 0x23447: 0x6cf99a20,
-	0x2344b: 0x6cbdcc20,
-	0x2344c: 0x6ca63220, 0x2344e: 0x6ce1b620, 0x2344f: 0x6cc26a20,
-	0x23452: 0x6d008e20,
-	0x23454: 0x6d2fa820, 0x23455: 0x6c570e20, 0x23456: 0x6d02c820,
-	0x23458: 0x6cd42e20, 0x2345b: 0x6ce8a620,
-	0x2345d: 0x6c895020, 0x2345e: 0x6c097c20, 0x2345f: 0x6c1e5a20,
-	0x23461: 0x6d037020, 0x23463: 0x6d02cc20,
-	0x23464: 0x6c3d6820,
-	0x23469: 0x6c6bde20,
-	0x2346d: 0x6c3f5e20,
-	0x23470: 0x6ce27a20, 0x23471: 0x6ccf4c20,
-	0x23474: 0x6c174620, 0x23475: 0x6c20b820,
-	0x2347c: 0x6cc47a20, 0x2347d: 0x6c545620, 0x2347e: 0x6c07ec20,
-	// Block 0x8d2, offset 0x23480
-	0x23480: 0x6c113020,
-	0x23485: 0x6ca21420,
-	0x23489: 0x6d059e20, 0x2348a: 0x6c2eaa20,
-	0x2348d: 0x6c15c220, 0x2348e: 0x6d215c20, 0x2348f: 0x6d383620,
-	0x23493: 0x6c83e620,
-	0x23494: 0x6cd43420,
-	0x2349a: 0x6c31a420,
-	0x2349c: 0x6c98bc20, 0x2349d: 0x6c59d420, 0x2349f: 0x6ce22c20,
-	0x234a1: 0x6c326620, 0x234a2: 0x6ce34820, 0x234a3: 0x6cd10820,
-	0x234a4: 0x6c9a0e20,
-	0x234a8: 0x6d316820, 0x234a9: 0x6cbd9020, 0x234aa: 0x6cb0ae20, 0x234ab: 0x6ce11620,
-	0x234ac: 0x6c123820, 0x234ad: 0x6d112420, 0x234af: 0x6d054620,
-	0x234b0: 0x6c053620, 0x234b1: 0x6c47b220,
-	0x234b5: 0x6c10aa20,
-	0x234bc: 0x6c46c620, 0x234bd: 0x6c0f2e20,
-	// Block 0x8d3, offset 0x234c0
-	0x234c1: 0x6cf21020,
-	0x234c4: 0x6c624420,
-	0x234ca: 0x6c7e4c20,
-	0x234cd: 0x6c24e620, 0x234ce: 0x6c9fc820, 0x234cf: 0x6c242820,
-	0x234d0: 0x6cab4e20, 0x234d1: 0x6d1da620,
-	0x234d6: 0x6c98fe20, 0x234d7: 0x6c78c820,
-	0x234d8: 0x6c981e20, 0x234d9: 0x6c2f8020, 0x234da: 0x6c582e20, 0x234db: 0x6c34ac20,
-	0x234dc: 0x6c677420, 0x234dd: 0x6cdb0220,
-	0x234e2: 0x6c135c20, 0x234e3: 0x6cde9e20,
-	0x234e5: 0x6c59f820, 0x234e6: 0x6c74be20, 0x234e7: 0x6d0a4020,
-	0x234ea: 0x6d04a620,
-	0x234ec: 0x6c9d8820, 0x234ed: 0x6cc45620, 0x234ee: 0x6c817620,
-	0x234f1: 0x6d370a20, 0x234f2: 0x6cf02820,
-	0x234f7: 0x6ccb6e20,
-	0x234fb: 0x6d29ea20,
-	// Block 0x8d4, offset 0x23500
-	0x23501: 0x6c019620, 0x23502: 0x6cf10c20,
-	0x23504: 0x6c581e20, 0x23507: 0x6d2e9e20,
-	0x23509: 0x6d1c2c20, 0x2350a: 0x6c43bc20, 0x2350b: 0x6c5c9220,
-	0x2350d: 0x6cc33420,
-	0x23513: 0x6c8b7c20,
-	0x23514: 0x6c719a20, 0x23515: 0x6c03de20, 0x23516: 0x6c82a620,
-	0x23518: 0x6c97ac20, 0x23519: 0x6c8dde20,
-	0x2351c: 0x6c856a20, 0x2351d: 0x6c611420,
-	0x23521: 0x6c5b1620, 0x23522: 0x6d031820, 0x23523: 0x6cd30020,
-	0x23524: 0x6d300e20, 0x23527: 0x6c0e4820,
-	0x2352b: 0x6c137a20,
-	0x2352f: 0x6c137e20,
-	0x23530: 0x6c6d8c20, 0x23531: 0x6c031c20, 0x23532: 0x6c06da20,
-	0x23535: 0x6d0e3c20, 0x23537: 0x6c565e20,
-	0x23539: 0x6d20ba20, 0x2353b: 0x6c091e20,
-	0x2353c: 0x6c1ff220, 0x2353e: 0x6c612220,
-	// Block 0x8d5, offset 0x23540
-	0x23542: 0x6ca26c20,
-	0x23544: 0x6c98c420, 0x23545: 0x6d379420, 0x23547: 0x6d12c620,
-	0x23548: 0x6c30a020, 0x23549: 0x6d12a420,
-	0x2354d: 0x6cc63c20, 0x2354e: 0x6d19a620,
-	0x23550: 0x6c501e20, 0x23552: 0x6ca31220, 0x23553: 0x6ce61020,
-	0x23554: 0x6c3fb620, 0x23555: 0x6ca22c20, 0x23556: 0x6d291020,
-	0x23558: 0x6c552820, 0x2355a: 0x6c185c20, 0x2355b: 0x6ceaf420,
-	0x2355e: 0x6c1f1220, 0x2355f: 0x6c3df820,
-	0x23567: 0x6c063420,
-	0x2356c: 0x6c2bde20, 0x2356d: 0x6c111c20, 0x2356e: 0x6c921220, 0x2356f: 0x6cb35020,
-	0x23570: 0x6c268620, 0x23571: 0x6d12da20, 0x23573: 0x6d15d220,
-	0x23577: 0x6cfdb620,
-	0x23578: 0x6c086e20, 0x23579: 0x6d398c20, 0x2357b: 0x6d14a620,
-	0x2357d: 0x6c93d220, 0x2357f: 0x6c7b9420,
-	// Block 0x8d6, offset 0x23580
-	0x23582: 0x6d35a420,
-	0x23587: 0x6cec0820,
-	0x23588: 0x6c2b1c20, 0x23589: 0x6cd5b020, 0x2358a: 0x6c8ad820, 0x2358b: 0x6d2a4220,
-	0x2358c: 0x6d35a620, 0x2358d: 0x6ca49e20,
-	0x23597: 0x6c147220,
-	0x2359a: 0x6cfea620, 0x2359b: 0x6d2a0220,
-	0x2359e: 0x6d22f420, 0x2359f: 0x6c310620,
-	0x235a0: 0x6c143e20, 0x235a1: 0x6d009020, 0x235a2: 0x6d0fa220,
-	0x235a4: 0x6cfc0220, 0x235a5: 0x6c05f220,
-	0x235ae: 0x6d2cec20,
-	0x235b0: 0x6cc03420, 0x235b2: 0x6c553420, 0x235b3: 0x6d293220,
-	0x235b4: 0x6c741620, 0x235b6: 0x6c4d9a20,
-	0x235bf: 0x6c01ae20,
-	// Block 0x8d7, offset 0x235c0
-	0x235c0: 0x6d2a7820, 0x235c3: 0x6ccc4c20,
-	0x235c5: 0x6cfcb220, 0x235c6: 0x6c1b9e20, 0x235c7: 0x6d0d6a20,
-	0x235c9: 0x6c01ba20,
-	0x235cd: 0x6d305220, 0x235ce: 0x6c742c20,
-	0x235d1: 0x6c85ea20, 0x235d3: 0x6c822020,
-	0x235d6: 0x6c112c20,
-	0x235d8: 0x6c924220, 0x235da: 0x6c634c20,
-	0x235dd: 0x6cfa3820, 0x235de: 0x6cfff020, 0x235df: 0x6d0c0c20,
-	0x235e0: 0x6d05a020, 0x235e2: 0x6c33f020, 0x235e3: 0x6d1c7620,
-	0x235e4: 0x6c5ab820, 0x235e5: 0x6ce32820, 0x235e6: 0x6caa0020, 0x235e7: 0x6cf7e820,
-	0x235ea: 0x6ce8b220,
-	0x235f7: 0x6cec5620,
-	0x235f8: 0x6c186620,
-	0x235fc: 0x6c52aa20, 0x235fe: 0x6ce32a20, 0x235ff: 0x6d07a020,
-	// Block 0x8d8, offset 0x23600
-	0x23600: 0x6d28bc20,
-	0x23607: 0x6c43f020,
-	0x2360b: 0x6c908c20,
-	0x2360c: 0x6c147c20, 0x2360d: 0x6cac6020, 0x2360e: 0x6c605820,
-	0x23610: 0x6cde5e20, 0x23613: 0x6cf64e20,
-	0x23616: 0x6cfeda20,
-	0x23618: 0x6ccab620, 0x23619: 0x6c637020, 0x2361a: 0x6cdad420, 0x2361b: 0x6c599a20,
-	0x2361d: 0x6c25bc20, 0x2361f: 0x6cde6020,
-	0x23620: 0x6cd65420,
-	0x2362a: 0x6c3e9a20, 0x2362b: 0x6c863620,
-	0x2362d: 0x6ccf5a20, 0x2362f: 0x6ce10620,
-	0x23636: 0x6c2cd020,
-	0x2363a: 0x6c09fa20,
-	0x2363c: 0x6c46c820, 0x2363d: 0x6c244620, 0x2363f: 0x6cb90820,
-	// Block 0x8d9, offset 0x23640
-	0x23642: 0x6c824620, 0x23643: 0x6cdaea20,
-	0x23646: 0x6d402420, 0x23647: 0x6c4faa20,
-	0x2364f: 0x6c1c4420,
-	0x23650: 0x6c128020, 0x23653: 0x6cf30420,
-	0x23654: 0x6cfef220, 0x23655: 0x6c8b2020, 0x23656: 0x6d0c1e20,
-	0x2365d: 0x6c09fc20, 0x2365f: 0x6c594220,
-	0x23661: 0x6cf67820, 0x23662: 0x6c1ac820, 0x23663: 0x6d05d620,
-	0x23664: 0x6ca4bc20, 0x23665: 0x6d0cc020, 0x23667: 0x6d01fc20,
-	0x23668: 0x6d2c4a20, 0x2366a: 0x6cdc5e20,
-	0x2366c: 0x6cf8ca20, 0x2366d: 0x6c080620, 0x2366e: 0x6cc48420, 0x2366f: 0x6cd79820,
-	0x23670: 0x6c049020, 0x23671: 0x6c4b6a20, 0x23672: 0x6c763c20, 0x23673: 0x6c188020,
-	0x23676: 0x6d072820,
-	0x2367e: 0x6c368620, 0x2367f: 0x6c865a20,
-	// Block 0x8da, offset 0x23680
-	0x23680: 0x6cf69e20, 0x23681: 0x6c594c20, 0x23682: 0x6cdb0420,
-	0x23684: 0x6c16f620,
-	0x2368a: 0x6c92a820, 0x2368b: 0x6d0cc220,
-	0x2368e: 0x6c290620, 0x2368f: 0x6c284620,
-	0x23690: 0x6d0f6a20, 0x23692: 0x6d2d3620, 0x23693: 0x6c729020,
-	0x23695: 0x6c345e20, 0x23696: 0x6ccabe20, 0x23697: 0x6c7f2a20,
-	0x23698: 0x6cdb1c20,
-	0x2369f: 0x6d2b0020,
-	0x236a3: 0x6c0a5020,
-	0x236a6: 0x6d1b8c20,
-	0x236a8: 0x6c4fb420, 0x236aa: 0x6c8b3a20,
-	0x236ad: 0x6c4ff620, 0x236ae: 0x6d0fdc20,
-	0x236b4: 0x6cd7a420, 0x236b5: 0x6c00f020, 0x236b6: 0x6cbf7420,
-	0x236b9: 0x6c82ec20, 0x236ba: 0x6d011220,
-	0x236bc: 0x6cd3f220,
-	// Block 0x8db, offset 0x236c0
-	0x236c3: 0x6c91ec20,
-	0x236c5: 0x6cc41220, 0x236c6: 0x6c888020,
-	0x236cc: 0x6d001a20, 0x236ce: 0x6d1c2020,
-	0x236d1: 0x6d012620,
-	0x236d8: 0x6c8d9e20, 0x236d9: 0x6d1ed620,
-	0x236de: 0x6c294020, 0x236df: 0x6c806020,
-	0x236e0: 0x6cff5e20,
-	0x236e8: 0x6d182a20,
-	0x236ec: 0x6cf34c20, 0x236ee: 0x6d168e20, 0x236ef: 0x6ceaa420,
-	0x236f0: 0x6c102e20, 0x236f2: 0x6d032020,
-	0x236f5: 0x6cd7c420, 0x236f6: 0x6c6c2a20,
-	0x236f8: 0x6c031e20, 0x236f9: 0x6c383020, 0x236fb: 0x6ca0d420,
-	0x236fc: 0x6cc91220,
-	// Block 0x8dc, offset 0x23700
-	0x2370a: 0x6c26ea20, 0x2370b: 0x6c619820,
-	0x23710: 0x6cda8820, 0x23711: 0x6cbf0620, 0x23712: 0x6c033020,
-	0x23726: 0x6ce48c20, 0x23727: 0x6d1f0a20,
-	0x23729: 0x6ceb0020, 0x2372b: 0x6cec6c20,
-	0x2372c: 0x6d202e20, 0x2372e: 0x6c2fe820,
-	0x23731: 0x6cf7d820, 0x23732: 0x6c799820,
-	0x23736: 0x6cbf0c20, 0x23737: 0x6c32f820,
-	0x23738: 0x6c34e420, 0x2373a: 0x6d173620,
-	// Block 0x8dd, offset 0x23740
-	0x23752: 0x6cf5c820, 0x23753: 0x6cbd2420,
-	0x23754: 0x6cda9220, 0x23757: 0x6c8e5220,
-	0x23759: 0x6cecd820,
-	0x2376d: 0x6c17da20, 0x2376e: 0x6d399a20,
-	0x23770: 0x6c997220,
-	0x23777: 0x6cc2de20,
-	0x2377d: 0x6d208c20, 0x2377f: 0x6d17ac20,
-	// Block 0x8de, offset 0x23780
-	0x23780: 0x6c9c5020, 0x23783: 0x6c7f0c20,
-	0x23784: 0x6d362e20,
-	0x237a4: 0x6ca5e620, 0x237a6: 0x6c048220,
-	0x237aa: 0x6c300420,
-	0x237ae: 0x6d363020,
-	// Block 0x8df, offset 0x237c0
-	0x237d5: 0x6d17ec20,
-	0x237d8: 0x6c8d1e20, 0x237d9: 0x6d216020, 0x237da: 0x6c231e20, 0x237db: 0x6c2c6a20,
-	0x237dc: 0x6d365c20,
-	0x237e0: 0x6cc86820, 0x237e3: 0x6c669a20,
-	0x237e9: 0x6ced8c20, 0x237eb: 0x6c6d2c20,
-	0x237ed: 0x6cad0820,
-	// Block 0x8e0, offset 0x23800
-	0x2380d: 0x6c928a20, 0x2380e: 0x6cc1a620,
-	0x23810: 0x6cf80020, 0x23811: 0x6c26b420,
-	0x23816: 0x6c56c220, 0x23817: 0x6c95bc20,
-	0x23819: 0x6c822820,
-	0x23836: 0x6c45f820,
-	0x2383b: 0x6c8e2620,
-	// Block 0x8e1, offset 0x23840
-	0x23842: 0x6c817820,
-	0x23844: 0x6d3be420,
-	0x23868: 0x6d2a5220, 0x23869: 0x6c506a20, 0x2386a: 0x6cfe5420,
-	0x2386d: 0x6c507020, 0x2386e: 0x6c86a220,
-	0x23871: 0x6c2d8820, 0x23872: 0x6c444020,
-	0x2387d: 0x6c58a820,
-	// Block 0x8e2, offset 0x23880
-	0x23884: 0x6c36b620, 0x23886: 0x6cf9fe20,
-	0x2388b: 0x6c651820,
-	0x2388c: 0x6cb67420, 0x2388d: 0x6cfa0820, 0x2388e: 0x6d1ffa20,
-	0x238a1: 0x6d330420,
-	0x238aa: 0x6d3bf220,
-	0x238ae: 0x6c163a20,
-	// Block 0x8e3, offset 0x238c0
-	0x238c9: 0x6d027a20,
-	0x238d5: 0x6ca4d620,
-	0x238dd: 0x6c62ee20, 0x238de: 0x6ce4d620,
-	0x238e3: 0x6d0e3220,
-	0x238e7: 0x6c500c20,
-	0x238e8: 0x6d030820, 0x238e9: 0x6c8de020, 0x238eb: 0x6c047620,
-	0x238ec: 0x6c081220,
-	0x238f1: 0x6c463e20, 0x238f2: 0x6c8cc820,
-	0x238f5: 0x6c7df420, 0x238f6: 0x6cb85e20, 0x238f7: 0x6c699e20,
-	0x238f9: 0x6c371420, 0x238fa: 0x6d10fa20, 0x238fb: 0x6c316e20,
-	// Block 0x8e4, offset 0x23900
-	0x23901: 0x6c5d9220, 0x23902: 0x6c322420, 0x23903: 0x6cadbe20,
-	0x2390c: 0x6d259820, 0x2390f: 0x6c90b820,
-	0x23910: 0x6d03f820, 0x23913: 0x6c883a20,
-	0x23914: 0x6d113820, 0x23915: 0x6cf6a020, 0x23916: 0x6d114420,
-	0x23918: 0x6cf70020, 0x2391b: 0x6c918a20,
-	0x2391d: 0x6d0f0020,
-	0x23920: 0x6cc33820,
-	0x23925: 0x6cc50020, 0x23926: 0x6cec2020, 0x23927: 0x6d40a420,
-	0x23928: 0x6c392e20, 0x23929: 0x6d16c620, 0x2392a: 0x6c323c20, 0x2392b: 0x6cdc2620,
-	0x2392d: 0x6caf4820, 0x2392f: 0x6c4de820,
-	0x23931: 0x6d069820, 0x23933: 0x6c45e620,
-	0x23935: 0x6c2c2e20, 0x23937: 0x6ca32620,
-	0x2393e: 0x6c34ec20, 0x2393f: 0x6cebda20,
-	// Block 0x8e5, offset 0x23940
-	0x23942: 0x6ca81820,
-	0x23948: 0x6c2e1a20, 0x23949: 0x6c598e20,
-	0x2394c: 0x6ce32c20, 0x2394d: 0x6c395420,
-	0x23951: 0x6cf3ca20, 0x23952: 0x6c01fe20,
-	0x23954: 0x6cb2a820,
-	0x23959: 0x6c4e1420, 0x2395b: 0x6c428820,
-	0x2395c: 0x6c83e820, 0x2395e: 0x6c339c20, 0x2395f: 0x6c400e20,
-	0x23960: 0x6ca35020, 0x23962: 0x6c132220,
-	0x23967: 0x6c6a2820,
-	0x23969: 0x6cbed020, 0x2396b: 0x6d1bd020,
-	0x2396c: 0x6cfdd220,
-	0x23971: 0x6c557c20,
-	0x23974: 0x6cdaec20,
-	0x2397b: 0x6c43a420,
-	0x2397c: 0x6c368820, 0x2397d: 0x6d072a20,
-	// Block 0x8e6, offset 0x23980
-	0x23986: 0x6cf6cc20,
-	0x2398a: 0x6c774c20, 0x2398b: 0x6c4c8a20,
-	0x2398c: 0x6c6a3620, 0x2398d: 0x6c200c20, 0x2398e: 0x6c826220, 0x2398f: 0x6c527620,
-	0x23990: 0x6d41f420,
-	0x23995: 0x6cb1e620,
-	0x23998: 0x6c2ab420, 0x23999: 0x6cf70220, 0x2399a: 0x6c826820,
-	0x2399c: 0x6ccdc620,
-	0x239a7: 0x6c918c20,
-	0x239a9: 0x6c338a20, 0x239aa: 0x6c760420,
-	0x239ad: 0x6c164820, 0x239af: 0x6d012c20,
-	0x239b0: 0x6cec0220, 0x239b1: 0x6d30c420, 0x239b3: 0x6d3b9e20,
-	0x239b7: 0x6c8f6020,
-	0x239b8: 0x6c82aa20,
-	0x239bc: 0x6c273620, 0x239bd: 0x6c417820,
-	// Block 0x8e7, offset 0x239c0
-	0x239c4: 0x6cd34020, 0x239c7: 0x6d0da420,
-	0x239cc: 0x6c41b420,
-	0x239d0: 0x6d0d0020,
-	0x239d6: 0x6cdbac20,
-	0x239da: 0x6d37a620,
-	0x239dc: 0x6cd34220,
-	0x239e1: 0x6cd15c20,
-	0x239e5: 0x6c15ae20,
-	0x239f7: 0x6c5a0820,
-	0x239f8: 0x6d1b8e20, 0x239fb: 0x6c9bee20,
-	// Block 0x8e8, offset 0x23a00
-	0x23a02: 0x6cc4f220,
-	0x23a05: 0x6cfdae20,
-	0x23a08: 0x6c071420,
-	0x23a0c: 0x6c200820,
-	0x23a11: 0x6cb47620,
-	0x23a19: 0x6c77d220, 0x23a1a: 0x6c7e3820,
-	0x23a1d: 0x6cc35020, 0x23a1f: 0x6c4f9220,
-	0x23a20: 0x6c1bf220, 0x23a21: 0x6c983820,
-	0x23a26: 0x6d2cb020,
-	0x23a2a: 0x6c3bd220,
-	0x23a2c: 0x6c17b420,
-	0x23a33: 0x6c6e1820,
-	// Block 0x8e9, offset 0x23a40
-	0x23a43: 0x6c8ada20,
-	0x23a45: 0x6ca31c20, 0x23a46: 0x6ca31e20, 0x23a47: 0x6ce72a20,
-	0x23a4b: 0x6cc46620,
-	0x23a4c: 0x6d411620, 0x23a4d: 0x6caf5420, 0x23a4e: 0x6d1fba20,
-	0x23a50: 0x6cd4be20,
-	0x23a5b: 0x6c8af420,
-	0x23a5c: 0x6cd43020, 0x23a5d: 0x6ce97e20, 0x23a5f: 0x6c430220,
-	0x23a60: 0x6ccea220, 0x23a61: 0x6ceb0420, 0x23a63: 0x6ca3f220,
-	0x23a67: 0x6ceb7a20,
-	0x23a68: 0x6c458220, 0x23a69: 0x6c2e1c20,
-	0x23a74: 0x6c9bd020, 0x23a75: 0x6c052820, 0x23a77: 0x6d00a420,
-	0x23a78: 0x6cd8b420, 0x23a79: 0x6ce6c820, 0x23a7a: 0x6c4b4220,
-	0x23a7d: 0x6c3e8020, 0x23a7e: 0x6c4b4820,
-	// Block 0x8ea, offset 0x23a80
-	0x23a89: 0x6c4b4a20,
-	0x23a91: 0x6d3a7420, 0x23a93: 0x6c7f1420,
-	0x23a95: 0x6c951620, 0x23a96: 0x6ce50020, 0x23a97: 0x6cc4c620,
-	0x23a9a: 0x6c300820,
-	0x23aa8: 0x6c737220, 0x23aa9: 0x6d0cac20,
-	0x23aac: 0x6cc84020, 0x23aad: 0x6c283a20,
-	0x23ab0: 0x6c999e20,
-	0x23ab6: 0x6c944020,
-	0x23ab8: 0x6d072c20, 0x23aba: 0x6cf6a220,
-	// Block 0x8eb, offset 0x23ac0
-	0x23ac2: 0x6c967420, 0x23ac3: 0x6cb52220,
-	0x23ac5: 0x6c144820,
-	0x23ac8: 0x6cce1e20, 0x23ac9: 0x6c4f0820, 0x23aca: 0x6cb2ce20,
-	0x23ace: 0x6c5f3820,
-	0x23ad3: 0x6c86a620,
-	0x23ad5: 0x6d240c20, 0x23ad6: 0x6c04a420,
-	0x23ad8: 0x6ce29220,
-	0x23add: 0x6c1de820,
-	0x23ae0: 0x6c1dea20,
-	0x23ae4: 0x6cb54420, 0x23ae5: 0x6cf70420, 0x23ae6: 0x6c076820,
-	0x23aea: 0x6d138020,
-	0x23aed: 0x6c4a1020, 0x23aef: 0x6d3b3a20,
-	0x23af3: 0x6c827c20,
-	0x23af4: 0x6c827e20, 0x23af5: 0x6c13be20,
-	// Block 0x8ec, offset 0x23b00
-	0x23b00: 0x6c4a1420,
-	0x23b0d: 0x6c2f2420,
-	0x23b13: 0x6d0b4420,
-	0x23b18: 0x6ca7fc20, 0x23b19: 0x6cd4de20, 0x23b1b: 0x6d363220,
-	0x23b1f: 0x6d36e420,
-	0x23b22: 0x6d36e620, 0x23b23: 0x6cb07620,
-	0x23b25: 0x6c6f4e20, 0x23b26: 0x6c6f5220, 0x23b27: 0x6d169020,
-	0x23b28: 0x6d201220, 0x23b2a: 0x6c6f5420,
-	0x23b2f: 0x6c58f220,
-	0x23b31: 0x6c323e20,
-	0x23b3b: 0x6ce20c20,
-	0x23b3c: 0x6cbc9e20, 0x23b3d: 0x6cbd5c20, 0x23b3e: 0x6d032420, 0x23b3f: 0x6c14bc20,
-	// Block 0x8ed, offset 0x23b40
-	0x23b40: 0x6c61ae20, 0x23b42: 0x6cbe0a20,
-	0x23b4a: 0x6c324620, 0x23b4b: 0x6d33aa20,
-	0x23b4e: 0x6cab7820,
-	0x23b50: 0x6cf4c820, 0x23b52: 0x6cf18620,
-	0x23b58: 0x6c096620, 0x23b5b: 0x6c069420,
-	0x23b5d: 0x6ca23c20, 0x23b5e: 0x6c6cf420, 0x23b5f: 0x6ce21220,
-	0x23b60: 0x6c89e220,
-	0x23b65: 0x6c127220, 0x23b66: 0x6d2c2820,
-	0x23b6c: 0x6c1b8e20, 0x23b6d: 0x6d0ae020, 0x23b6e: 0x6c7c6420, 0x23b6f: 0x6d1b4420,
-	0x23b78: 0x6c8f8820, 0x23b79: 0x6cb86020, 0x23b7b: 0x6c4f4c20,
-	0x23b7c: 0x6cce5020, 0x23b7d: 0x6c4d6420, 0x23b7e: 0x6c139220,
-	// Block 0x8ee, offset 0x23b80
-	0x23b80: 0x6c68e220, 0x23b81: 0x6c81ae20,
-	0x23b88: 0x6cf5fa20, 0x23b8b: 0x6c0ef220,
-	0x23b93: 0x6d351a20,
-	0x23b95: 0x6cea8a20, 0x23b96: 0x6c3e8220,
-	0x23b98: 0x6c54ce20, 0x23b9a: 0x6ca83220, 0x23b9b: 0x6d17ae20,
-	0x23b9c: 0x6d3c4020,
-	0x23ba0: 0x6c13e620,
-	0x23ba4: 0x6cdb8220, 0x23ba7: 0x6d283620,
-	0x23bae: 0x6c325e20,
-	0x23bb0: 0x6cf61c20, 0x23bb1: 0x6c203620, 0x23bb2: 0x6d03e820, 0x23bb3: 0x6c68fa20,
-	0x23bb4: 0x6ccfea20,
-	// Block 0x8ef, offset 0x23bc0
-	0x23bc0: 0x6cedca20, 0x23bc1: 0x6c06a220, 0x23bc2: 0x6c3a3a20, 0x23bc3: 0x6c669c20,
-	0x23bc4: 0x6cc30020, 0x23bc5: 0x6d17f020, 0x23bc6: 0x6c300a20, 0x23bc7: 0x6d06f620,
-	0x23bc8: 0x6ca35220, 0x23bc9: 0x6c605a20,
-	0x23bcc: 0x6d31e620, 0x23bcd: 0x6cb5fa20, 0x23bce: 0x6c330a20, 0x23bcf: 0x6d1a7220,
-	0x23bd1: 0x6c700420, 0x23bd2: 0x6caffe20, 0x23bd3: 0x6d033e20,
-	0x23bd4: 0x6c94fe20, 0x23bd5: 0x6c113420, 0x23bd6: 0x6c8e2020, 0x23bd7: 0x6c0cac20,
-	0x23bd8: 0x6c2a1c20, 0x23bd9: 0x6c2a7620,
-	0x23bdf: 0x6c7ed820,
-	0x23be1: 0x6cf65020, 0x23be2: 0x6c725620,
-	0x23be4: 0x6cff9020, 0x23be6: 0x6c6dc020,
-	0x23bf9: 0x6cec7220, 0x23bfb: 0x6ca50a20,
-	0x23bfc: 0x6cfd8220, 0x23bfd: 0x6cc3e220, 0x23bfe: 0x6cbcd420, 0x23bff: 0x6ce86a20,
-	// Block 0x8f0, offset 0x23c00
-	0x23c00: 0x6d064a20, 0x23c01: 0x6c5bfc20,
-	0x23c05: 0x6c9f6c20, 0x23c06: 0x6ceff220,
-	0x23c08: 0x6d1f5620, 0x23c09: 0x6ce9ae20, 0x23c0a: 0x6c278020,
-	0x23c0e: 0x6c786c20, 0x23c0f: 0x6ca36220,
-	0x23c11: 0x6c401c20, 0x23c12: 0x6d239620, 0x23c13: 0x6d354420,
-	0x23c15: 0x6c4dae20, 0x23c16: 0x6c002e20, 0x23c17: 0x6c401e20,
-	0x23c21: 0x6d0f6220,
-	0x23c24: 0x6cd27e20, 0x23c26: 0x6c150c20,
-	0x23c2a: 0x6c1c5c20, 0x23c2b: 0x6d284820,
-	0x23c2c: 0x6cd65a20, 0x23c2e: 0x6cdb0620, 0x23c2f: 0x6cca8620,
-	0x23c31: 0x6c368a20, 0x23c32: 0x6d332e20, 0x23c33: 0x6c004e20,
-	0x23c34: 0x6cdd8c20, 0x23c35: 0x6c10b220, 0x23c37: 0x6cc45220,
-	0x23c38: 0x6d185e20, 0x23c39: 0x6d0dca20, 0x23c3b: 0x6ca36620,
-	0x23c3c: 0x6cf46a20,
-	// Block 0x8f1, offset 0x23c40
-	0x23c47: 0x6c865c20,
-	0x23c48: 0x6c865e20, 0x23c4a: 0x6cf6a820, 0x23c4b: 0x6c749c20,
-	0x23c4c: 0x6cd1ea20, 0x23c4e: 0x6d0b5c20,
-	0x23c5b: 0x6c18e420,
-	0x23c5c: 0x6d1c8c20, 0x23c5d: 0x6c0a5220, 0x23c5e: 0x6c184020,
-	0x23c61: 0x6d2bfc20, 0x23c62: 0x6ceb9020, 0x23c63: 0x6c56c620,
-	0x23c64: 0x6ce2b220, 0x23c65: 0x6d1d4c20, 0x23c66: 0x6c08f820, 0x23c67: 0x6ca91e20,
-	0x23c68: 0x6c891a20, 0x23c69: 0x6d034c20, 0x23c6a: 0x6d229020,
-	0x23c72: 0x6c075e20,
-	0x23c74: 0x6ca07820, 0x23c75: 0x6c331420, 0x23c77: 0x6c29ea20,
-	0x23c78: 0x6cb64c20,
-	// Block 0x8f2, offset 0x23c80
-	0x23c80: 0x6cd65c20, 0x23c83: 0x6cff1e20,
-	0x23c84: 0x6d380a20, 0x23c85: 0x6d3cb220, 0x23c87: 0x6c0bca20,
-	0x23c89: 0x6cf02a20, 0x23c8a: 0x6cf6ec20,
-	0x23c8c: 0x6c2aae20, 0x23c8e: 0x6d005620, 0x23c8f: 0x6cac4620,
-	0x23c90: 0x6ca87a20, 0x23c93: 0x6c0cfa20,
-	0x23c94: 0x6ccf7a20, 0x23c95: 0x6c3ad820, 0x23c96: 0x6c9fcc20, 0x23c97: 0x6cb7e820,
-	0x23caa: 0x6ccdbc20, 0x23cab: 0x6cdd9c20,
-	0x23cb7: 0x6c60c020,
-	0x23cba: 0x6c285020, 0x23cbb: 0x6c739c20,
-	0x23cbc: 0x6c930420, 0x23cbe: 0x6c02f620,
-	// Block 0x8f3, offset 0x23cc0
-	0x23cc2: 0x6d18ea20, 0x23cc3: 0x6cd57a20,
-	0x23cc4: 0x6cdc9c20, 0x23cc5: 0x6cf0f220, 0x23cc6: 0x6cecec20, 0x23cc7: 0x6c1ef420,
-	0x23ccc: 0x6cf32820,
-	0x23cd6: 0x6c0aa420,
-	0x23cd8: 0x6d1b1a20, 0x23cd9: 0x6c5d8220,
-	0x23cdc: 0x6c769c20, 0x23cdd: 0x6ca93020,
-	0x23ce2: 0x6c00fc20,
-	0x23ce4: 0x6c870020, 0x23ce6: 0x6d2d0220,
-	0x23cf1: 0x6c933020,
-	0x23cf6: 0x6c0bd420, 0x23cf7: 0x6cac8a20,
-	0x23cff: 0x6c4b9c20,
-	// Block 0x8f4, offset 0x23d00
-	0x23d00: 0x6cda6a20, 0x23d01: 0x6c9ba020, 0x23d02: 0x6cfc5220, 0x23d03: 0x6c906e20,
-	0x23d05: 0x6cb80220,
-	0x23d0b: 0x6c164a20,
-	0x23d0c: 0x6d195c20, 0x23d0d: 0x6c4f8e20, 0x23d0f: 0x6c88e020,
-	0x23d10: 0x6c49c220, 0x23d12: 0x6cf06020,
-	0x23d17: 0x6c752020,
-	0x23d18: 0x6c829c20, 0x23d19: 0x6c946620, 0x23d1a: 0x6c87a620,
-	0x23d1c: 0x6cb03e20,
-	0x23d22: 0x6c58e820,
-	0x23d2e: 0x6c4a5820,
-	0x23d33: 0x6c713420,
-	0x23d36: 0x6c2aa220,
-	0x23d3a: 0x6c3ad220,
-	// Block 0x8f5, offset 0x23d40
-	0x23d41: 0x6d338e20, 0x23d43: 0x6c9a7a20,
-	0x23d45: 0x6c58f420,
-	0x23d49: 0x6cabba20, 0x23d4a: 0x6c08c420,
-	0x23d4c: 0x6cb30020,
-	0x23d53: 0x6c374220,
-	0x23d55: 0x6c58fc20,
-	0x23d63: 0x6c170c20,
-	0x23d65: 0x6c95fc20, 0x23d66: 0x6c3d2820,
-	0x23d6f: 0x6c1db220,
-	0x23d71: 0x6d40c020, 0x23d72: 0x6ca3fe20, 0x23d73: 0x6cffae20,
-	0x23d79: 0x6c044820, 0x23d7a: 0x6c926620,
-	0x23d7c: 0x6c961220, 0x23d7f: 0x6ca76620,
-	// Block 0x8f6, offset 0x23d80
-	0x23d80: 0x6d2ad020,
-	0x23d84: 0x6d3b0a20, 0x23d85: 0x6c557420,
-	0x23d88: 0x6c5ad820, 0x23d89: 0x6ce17c20, 0x23d8a: 0x6c1dca20,
-	0x23d91: 0x6c59e020, 0x23d92: 0x6c30b820,
-	0x23d9b: 0x6c9eba20,
-	0x23d9d: 0x6c0f5a20,
-	0x23da0: 0x6c2ca420, 0x23da2: 0x6c2ad020, 0x23da3: 0x6cb41620,
-	0x23da5: 0x6cd94020, 0x23da6: 0x6c1dec20,
-	0x23dab: 0x6d123c20,
-	0x23dac: 0x6c9bf020, 0x23dad: 0x6c8fc820,
-	0x23db2: 0x6c888220,
-	0x23db5: 0x6c0d0620,
-	0x23dba: 0x6c93c220,
-	0x23dbf: 0x6ccba020,
-	// Block 0x8f7, offset 0x23dc0
-	0x23dc0: 0x6d425820,
-	0x23dc4: 0x6c25aa20, 0x23dc5: 0x6c8de420, 0x23dc6: 0x6d331a20, 0x23dc7: 0x6cb05220,
-	0x23dc8: 0x6c05c220, 0x23dcb: 0x6cc3a420,
-	0x23dce: 0x6caf4a20, 0x23dcf: 0x6ca44220,
-	0x23dd0: 0x6caf4c20, 0x23dd1: 0x6c0fe220, 0x23dd2: 0x6c06f020, 0x23dd3: 0x6c37e820,
-	0x23dd5: 0x6c9fa620, 0x23dd6: 0x6ca0f220, 0x23dd7: 0x6cec2420,
-	0x23dd8: 0x6d2f6020, 0x23dd9: 0x6d35c220, 0x23dda: 0x6c240c20,
-	0x23ddf: 0x6d0a0620,
-	0x23de0: 0x6c602020, 0x23de1: 0x6c4b4420, 0x23de3: 0x6c19ea20,
-	0x23de7: 0x6c4ec620,
-	0x23de8: 0x6cfff220, 0x23de9: 0x6cc3c020, 0x23deb: 0x6c21be20,
-	0x23ded: 0x6c3f6420,
-	0x23df3: 0x6cbdde20,
-	0x23df4: 0x6c926820, 0x23df5: 0x6cc3d020, 0x23df6: 0x6c2d1e20, 0x23df7: 0x6cb8f020,
-	0x23dfc: 0x6c16ee20, 0x23dfd: 0x6cde6220, 0x23dfe: 0x6c06ae20,
-	// Block 0x8f8, offset 0x23e00
-	0x23e01: 0x6c326c20, 0x23e02: 0x6c082620, 0x23e03: 0x6c547820,
-	0x23e08: 0x6d2c8420, 0x23e09: 0x6d2c8620,
-	0x23e0e: 0x6cc3ee20, 0x23e0f: 0x6c967620,
-	0x23e10: 0x6c4e2c20, 0x23e13: 0x6c8e8620,
-	0x23e14: 0x6c92d020, 0x23e16: 0x6d3e8c20,
-	0x23e18: 0x6cb07020, 0x23e19: 0x6d395220, 0x23e1b: 0x6d2a2420,
-	0x23e1d: 0x6ca9a020,
-	0x23e20: 0x6c5c5620, 0x23e23: 0x6d092020,
-	0x23e25: 0x6c7ea020,
-	0x23e2b: 0x6caa0620,
-	0x23e2c: 0x6d0dfa20, 0x23e2d: 0x6cc4d820, 0x23e2e: 0x6ca52220,
-	0x23e30: 0x6c7eb420, 0x23e31: 0x6c4a1220, 0x23e32: 0x6c31e220,
-	0x23e35: 0x6c919020,
-	0x23e39: 0x6c663c20, 0x23e3a: 0x6d028c20, 0x23e3b: 0x6cb80e20,
-	0x23e3e: 0x6cfe7420,
-	// Block 0x8f9, offset 0x23e40
-	0x23e41: 0x6c4cb020, 0x23e42: 0x6c6a8420, 0x23e43: 0x6c98b620,
-	0x23e46: 0x6cf95820, 0x23e47: 0x6c7c3620,
-	0x23e4e: 0x6d1e7620,
-	0x23e50: 0x6c4d3c20, 0x23e51: 0x6c9d3220, 0x23e52: 0x6d11fc20,
-	0x23e55: 0x6cf14c20,
-	0x23e5f: 0x6c85f220,
-	0x23e60: 0x6c735820, 0x23e61: 0x6cf36420, 0x23e62: 0x6cbbda20,
-	0x23e6e: 0x6c2e2a20, 0x23e6f: 0x6c1f4220,
-	0x23e72: 0x6cdd1c20,
-	0x23e75: 0x6c1cc420,
-	0x23e78: 0x6cc2a020, 0x23e79: 0x6ccf5e20,
-	// Block 0x8fa, offset 0x23e80
-	0x23e82: 0x6c9bd820, 0x23e83: 0x6c726820,
-	0x23e8b: 0x6ce8e620,
-	0x23e92: 0x6ca9c020, 0x23e93: 0x6ca07a20,
-	0x23e99: 0x6c3bee20,
-	0x23ea2: 0x6c027020, 0x23ea3: 0x6c4c3e20,
-	0x23ea4: 0x6c55b420, 0x23ea5: 0x6c11b820, 0x23ea6: 0x6c33b220, 0x23ea7: 0x6c4d4820,
-	0x23ea8: 0x6c694e20,
-	0x23eb0: 0x6c473a20,
-	0x23eb5: 0x6c6c6020,
-	0x23eb8: 0x6d0fe420,
-	// Block 0x8fb, offset 0x23ec0
-	0x23ec0: 0x6c145020,
-	0x23ecc: 0x6c5b0820,
-	0x23ed4: 0x6cc20c20, 0x23ed5: 0x6c784420,
-	0x23edf: 0x6cbe6620,
-	0x23ee0: 0x6d197a20, 0x23ee3: 0x6c767a20,
-	0x23ee4: 0x6c68b820, 0x23ee7: 0x6c1d6220,
-	0x23ee8: 0x6c103020, 0x23ee9: 0x6c44ae20, 0x23eea: 0x6c682620, 0x23eeb: 0x6d339020,
-	0x23eee: 0x6cf20020,
-	0x23ef0: 0x6c0d2220,
-	0x23ef4: 0x6d048820, 0x23ef5: 0x6c393020,
-	0x23ef8: 0x6d147620, 0x23ef9: 0x6c203020, 0x23efa: 0x6d11ee20,
-	0x23efd: 0x6d0f4c20, 0x23efe: 0x6c324020, 0x23eff: 0x6d0d4a20,
-	// Block 0x8fc, offset 0x23f00
-	0x23f01: 0x6c9b0a20,
-	0x23f07: 0x6c1a9620,
-	0x23f08: 0x6ca27420, 0x23f09: 0x6c683420, 0x23f0b: 0x6caa7a20,
-	0x23f0d: 0x6c4c6420, 0x23f0e: 0x6d094a20,
-	0x23f11: 0x6c3e1c20, 0x23f12: 0x6d08dc20, 0x23f13: 0x6c3d4c20,
-	0x23f14: 0x6cae1020, 0x23f15: 0x6ca0ea20, 0x23f16: 0x6cf5a820, 0x23f17: 0x6cf2dc20,
-	0x23f18: 0x6ccd3620, 0x23f1b: 0x6cf5aa20,
-	0x23f1c: 0x6cb75a20, 0x23f1d: 0x6c9e5220,
-	0x23f26: 0x6c282820,
-	0x23f28: 0x6c1e2820,
-	0x23f31: 0x6c3a9c20, 0x23f32: 0x6c9ec820,
-	0x23f34: 0x6d095020, 0x23f35: 0x6d06ae20, 0x23f36: 0x6cd7dc20, 0x23f37: 0x6c71b220,
-	0x23f38: 0x6c993420, 0x23f39: 0x6c063e20, 0x23f3b: 0x6d14d220,
-	0x23f3c: 0x6c485020, 0x23f3d: 0x6ca69220, 0x23f3f: 0x6d14d420,
-	// Block 0x8fd, offset 0x23f40
-	0x23f41: 0x6d429020,
-	0x23f44: 0x6caa5420,
-	0x23f51: 0x6c2d4820, 0x23f52: 0x6c393c20, 0x23f53: 0x6d173a20,
-	0x23f54: 0x6cd35a20, 0x23f57: 0x6c240e20,
-	0x23f58: 0x6d31ce20,
-	0x23f5e: 0x6cd36a20, 0x23f5f: 0x6c68e620,
-	0x23f60: 0x6c546a20, 0x23f61: 0x6c375020,
-	0x23f66: 0x6c833220, 0x23f67: 0x6d095420,
-	0x23f68: 0x6c452c20, 0x23f6a: 0x6cd43220,
-	0x23f6c: 0x6c72ec20,
-	0x23f74: 0x6c6ab820, 0x23f75: 0x6cef0020, 0x23f77: 0x6cd44620,
-	0x23f78: 0x6c6e7620, 0x23f7a: 0x6d061c20, 0x23f7b: 0x6c1d4c20,
-	// Block 0x8fe, offset 0x23f80
-	0x23f85: 0x6c675e20, 0x23f86: 0x6ca20a20,
-	0x23f89: 0x6d231a20,
-	0x23f8c: 0x6c745220,
-	0x23f91: 0x6ce6ea20,
-	0x23f94: 0x6cfec420, 0x23f96: 0x6c30ac20,
-	0x23f98: 0x6c4c6c20, 0x23f99: 0x6c986220, 0x23f9a: 0x6cedcc20, 0x23f9b: 0x6d06de20,
-	0x23f9c: 0x6cee5420, 0x23f9d: 0x6cdd2020, 0x23f9e: 0x6c736620, 0x23f9f: 0x6d26b820,
-	0x23fa1: 0x6c4e1620, 0x23fa3: 0x6ccfec20,
-	0x23fa5: 0x6d00ac20, 0x23fa6: 0x6c8e5a20, 0x23fa7: 0x6cc8f020,
-	0x23faf: 0x6c09a620,
-	0x23fb2: 0x6ca53220,
-	0x23fb6: 0x6ced8420, 0x23fb7: 0x6c700020,
-	0x23fb8: 0x6cc38c20,
-	// Block 0x8ff, offset 0x23fc0
-	0x23fc4: 0x6ca6a220, 0x23fc6: 0x6c9c5220, 0x23fc7: 0x6cdd2220,
-	0x23fc9: 0x6cbb4020,
-	0x23fcc: 0x6c4ed220, 0x23fcd: 0x6d3d6c20, 0x23fce: 0x6c9c5e20, 0x23fcf: 0x6d06f820,
-	0x23fd1: 0x6c810420, 0x23fd2: 0x6c6aee20, 0x23fd3: 0x6c2faa20,
-	0x23fd4: 0x6c171820, 0x23fd5: 0x6d365e20, 0x23fd6: 0x6c3a0c20, 0x23fd7: 0x6c63cc20,
-	0x23fd8: 0x6c75cc20, 0x23fd9: 0x6c5dde20, 0x23fda: 0x6cb4fe20, 0x23fdb: 0x6c70a620,
-	0x23fdc: 0x6d3cd420, 0x23fde: 0x6c2d6420, 0x23fdf: 0x6c690c20,
-	0x23fe0: 0x6d0af220, 0x23fe2: 0x6d2dfa20,
-	0x23fed: 0x6d33f220, 0x23fef: 0x6c973620,
-	0x23ff0: 0x6c54da20, 0x23ff1: 0x6d01ca20, 0x23ff2: 0x6cd27420, 0x23ff3: 0x6c4a7220,
-	0x23fff: 0x6d06fa20,
-	// Block 0x900, offset 0x24000
-	0x24002: 0x6c606a20,
-	0x24004: 0x6c20b020, 0x24006: 0x6c99a220, 0x24007: 0x6cc84220,
-	0x24008: 0x6d05bc20, 0x24009: 0x6c594620, 0x2400a: 0x6ccc6420, 0x2400b: 0x6c71c820,
-	0x2400f: 0x6c7c0020,
-	0x24011: 0x6c542020, 0x24012: 0x6c491e20, 0x24013: 0x6c486a20,
-	0x24015: 0x6c9c6420, 0x24016: 0x6c2ed020, 0x24017: 0x6c0a0020,
-	0x24018: 0x6c899820, 0x24019: 0x6c7e8620, 0x2401a: 0x6ccd5220, 0x2401b: 0x6c928c20,
-	0x2401c: 0x6cf8b420, 0x2401f: 0x6cda2220,
-	0x2402c: 0x6cab4220, 0x2402e: 0x6c838020,
-	0x24037: 0x6c7a5020,
-	0x24038: 0x6c4a7c20, 0x2403b: 0x6cf67a20,
-	0x2403c: 0x6cac6c20, 0x2403d: 0x6ccb4c20, 0x2403e: 0x6c754e20, 0x2403f: 0x6c53d020,
-	// Block 0x901, offset 0x24040
-	0x24040: 0x6c49a220, 0x24041: 0x6c727c20, 0x24043: 0x6ca3d220,
-	0x24044: 0x6c575020, 0x24045: 0x6c442220, 0x24046: 0x6c866020, 0x24047: 0x6c46d020,
-	0x24048: 0x6ce41420, 0x2404a: 0x6c96d820, 0x2404b: 0x6ce2ae20,
-	0x2404c: 0x6c26ba20,
-	0x24050: 0x6cb52420, 0x24051: 0x6d23c620, 0x24052: 0x6c693020, 0x24053: 0x6c9ee620,
-	0x24054: 0x6c451820, 0x24055: 0x6c9c0e20, 0x24056: 0x6cf0c020,
-	0x24058: 0x6ce36620, 0x24059: 0x6cb63a20,
-	0x2405c: 0x6c18e620, 0x2405d: 0x6c30c220, 0x2405f: 0x6cac6e20,
-	0x24070: 0x6c4efc20,
-	0x24074: 0x6c9d8a20, 0x24075: 0x6c967820, 0x24076: 0x6c92d220, 0x24077: 0x6cb53020,
-	0x24078: 0x6c795220, 0x2407a: 0x6c2ee820, 0x2407b: 0x6cb7d820,
-	0x2407c: 0x6c687c20, 0x2407d: 0x6c774e20, 0x2407e: 0x6cbbb020, 0x2407f: 0x6c9d8c20,
-	// Block 0x902, offset 0x24080
-	0x24080: 0x6ccd0c20,
-	0x24087: 0x6c64da20,
-	0x24088: 0x6c843c20, 0x24089: 0x6c78d620, 0x2408a: 0x6d073c20,
-	0x24091: 0x6c977a20, 0x24092: 0x6c3cf420, 0x24093: 0x6c163420,
-	0x24094: 0x6c5b6420,
-	0x240a7: 0x6c7a0420,
-	0x240aa: 0x6cf02c20, 0x240ab: 0x6c49a820,
-	0x240ac: 0x6c60c220, 0x240ad: 0x6d421c20, 0x240ae: 0x6c5e0a20, 0x240af: 0x6d00fe20,
-	0x240b4: 0x6cdc8420, 0x240b6: 0x6cc88220,
-	0x240b8: 0x6ce28620,
-	0x240bc: 0x6d336820, 0x240bd: 0x6c7d8820, 0x240be: 0x6cfe0020, 0x240bf: 0x6c9dda20,
-	// Block 0x903, offset 0x240c0
-	0x240c1: 0x6cf8f020,
-	0x240cc: 0x6cc94820,
-	0x240d9: 0x6c36c620, 0x240da: 0x6c9efe20, 0x240db: 0x6d3a8820,
-	0x240dc: 0x6d406c20, 0x240dd: 0x6c9bec20, 0x240df: 0x6cf70620,
-	0x240e1: 0x6ce14e20, 0x240e3: 0x6c645220,
-	0x240e4: 0x6c16d020, 0x240e5: 0x6c60dc20,
-	0x240ee: 0x6d3dbc20,
-	0x240ff: 0x6c520420,
-	// Block 0x904, offset 0x24100
-	0x24100: 0x6c141020, 0x24101: 0x6cb7fc20, 0x24102: 0x6c9dea20, 0x24103: 0x6d320220,
-	0x24104: 0x6c7a6c20, 0x24105: 0x6d138220, 0x24106: 0x6d38c020,
-	0x24108: 0x6c652020, 0x2410a: 0x6cacc220,
-	0x2410d: 0x6c5b0220, 0x2410f: 0x6ca02220,
-	0x24110: 0x6c8f5020,
-	0x24118: 0x6cd73420, 0x2411a: 0x6c974a20, 0x2411b: 0x6c849c20,
-	0x2411e: 0x6cd7ae20, 0x2411f: 0x6d159020,
-	0x24124: 0x6c872c20,
-	0x24128: 0x6d005e20, 0x24129: 0x6ce28a20, 0x2412a: 0x6d051020,
-	0x2412d: 0x6d08ce20, 0x2412e: 0x6c874820, 0x2412f: 0x6c9ba220,
-	0x24130: 0x6cef6a20, 0x24131: 0x6c9ba420,
-	0x2413a: 0x6d124e20, 0x2413b: 0x6c7ffe20,
-	0x2413c: 0x6c8da020, 0x2413d: 0x6d1c3820, 0x2413e: 0x6d1c3a20, 0x2413f: 0x6c876c20,
-	// Block 0x905, offset 0x24140
-	0x24140: 0x6c662820, 0x24141: 0x6c4aaa20,
-	0x24145: 0x6c494020, 0x24146: 0x6d028220,
-	0x24149: 0x6ccf9220, 0x2414b: 0x6d418420,
-	0x24153: 0x6c771e20,
-	0x24154: 0x6c82a820,
-	0x2415a: 0x6c0bde20,
-	0x2415d: 0x6cd54e20, 0x2415e: 0x6caa7820, 0x2415f: 0x6d069a20,
-	0x24163: 0x6c503020,
-	0x24168: 0x6c4af220, 0x2416a: 0x6d2d4020, 0x2416b: 0x6c80c620,
-	0x2416c: 0x6c248e20, 0x2416d: 0x6d363620, 0x2416e: 0x6c3ca820, 0x2416f: 0x6cbd3220,
-	0x24171: 0x6d2acc20, 0x24172: 0x6ca35420, 0x24173: 0x6ca99a20,
-	0x24174: 0x6d17f420, 0x24177: 0x6c232c20,
-	0x24178: 0x6cd1e020, 0x24179: 0x6c65c220, 0x2417a: 0x6d3fa420, 0x2417b: 0x6d0db820,
-	0x2417c: 0x6d1bd620,
-	// Block 0x906, offset 0x24180
-	0x24180: 0x6cc86e20, 0x24182: 0x6cc6a420, 0x24183: 0x6cf8cc20,
-	0x24185: 0x6c492420, 0x24186: 0x6c769420,
-	0x24188: 0x6cf51420, 0x2418a: 0x6cbda820, 0x2418b: 0x6c235820,
-	0x2418d: 0x6d2b0620, 0x2418e: 0x6d024220,
-	0x24190: 0x6d241020, 0x24191: 0x6d29a020, 0x24192: 0x6c206620, 0x24193: 0x6c853c20,
-	0x24194: 0x6c853e20, 0x24195: 0x6d075020, 0x24196: 0x6c9c9020, 0x24197: 0x6d075420,
-	0x24198: 0x6cc88c20, 0x2419b: 0x6c4b9420,
-	0x2419c: 0x6cc73020, 0x2419f: 0x6c991420,
-	0x241a1: 0x6cbdbe20, 0x241a2: 0x6c24be20, 0x241a3: 0x6c24c020,
-	0x241a4: 0x6c24c620,
-	0x241ae: 0x6cf35a20,
-	0x241b0: 0x6c383220, 0x241b1: 0x6c037620,
-	0x241b8: 0x6cb85820, 0x241b9: 0x6d35ee20, 0x241ba: 0x6ce5d420,
-	// Block 0x907, offset 0x241c0
-	0x241c4: 0x6d35f020, 0x241c5: 0x6d345a20, 0x241c7: 0x6c591420,
-	0x241c8: 0x6c1da420, 0x241ca: 0x6d35f220,
-	0x241ce: 0x6d1cf020,
-	0x241d2: 0x6cf4f020, 0x241d3: 0x6c06a420,
-	0x241d5: 0x6c534c20, 0x241d6: 0x6cd06420,
-	0x241d8: 0x6c746620, 0x241d9: 0x6c7d0420,
-	0x241dc: 0x6d15f820, 0x241dd: 0x6d0bbe20,
-	0x241e0: 0x6c087c20,
-	0x241e4: 0x6c7aea20, 0x241e5: 0x6cb8f220,
-	0x241e8: 0x6d2f6620, 0x241ea: 0x6c766820, 0x241eb: 0x6cce1220,
-	0x241ee: 0x6c01ca20, 0x241ef: 0x6d307020,
-	0x241f0: 0x6d369420,
-	0x241f7: 0x6d36b620,
-	0x241f9: 0x6c693220,
-	// Block 0x908, offset 0x24200
-	0x24200: 0x6cd83020, 0x24201: 0x6cb45c20, 0x24202: 0x6cab9420,
-	0x2420a: 0x6d3dbe20,
-	0x24211: 0x6d1c3c20, 0x24213: 0x6c584a20,
-	0x24215: 0x6d0b6e20,
-	0x24218: 0x6cd23c20, 0x24219: 0x6cabb220, 0x2421a: 0x6cb48420,
-	0x2421e: 0x6c983c20, 0x2421f: 0x6c146220,
-	0x24229: 0x6d278e20,
-	0x2422c: 0x6c476a20,
-	0x24239: 0x6c282a20, 0x2423b: 0x6ca4a020,
-	0x2423d: 0x6d302620, 0x2423f: 0x6c552c20,
-	// Block 0x909, offset 0x24240
-	0x24245: 0x6c792c20, 0x24247: 0x6c2e8c20,
-	0x24248: 0x6ce63c20, 0x2424b: 0x6c48ee20,
-	0x2424e: 0x6cbef020, 0x2424f: 0x6cd2ca20,
-	0x24250: 0x6c640c20, 0x24251: 0x6c02ca20, 0x24252: 0x6ca2f620, 0x24253: 0x6cb23a20,
-	0x24254: 0x6c63b220,
-	0x24261: 0x6d30ec20, 0x24262: 0x6c108620, 0x24263: 0x6cf2b020,
-	0x24265: 0x6c141e20,
-	0x2426a: 0x6ca4a420, 0x2426b: 0x6c76c620,
-	0x2426f: 0x6c319220,
-	0x24270: 0x6c48f020, 0x24271: 0x6cbf0e20, 0x24273: 0x6cc66a20,
-	0x24274: 0x6d15e820, 0x24275: 0x6c32fe20, 0x24276: 0x6c82c020,
-	0x24278: 0x6d387a20, 0x24279: 0x6c7ac220, 0x2427a: 0x6c354020, 0x2427b: 0x6cfa9e20,
-	0x2427c: 0x6c2d5420, 0x2427d: 0x6caaf020, 0x2427e: 0x6c361620, 0x2427f: 0x6d1d8620,
-	// Block 0x90a, offset 0x24280
-	0x24280: 0x6cf4e220, 0x24281: 0x6c793a20,
-	0x24293: 0x6d35f420,
-	0x24297: 0x6d351c20,
-	0x24298: 0x6d0a0820, 0x2429b: 0x6d334a20,
-	0x2429e: 0x6d0fae20,
-	0x242a0: 0x6c5dc420, 0x242a1: 0x6c602220, 0x242a2: 0x6ca4f020,
-	0x242a7: 0x6d0ba020,
-	0x242a8: 0x6c924620, 0x242ab: 0x6c3d7220,
-	0x242ac: 0x6cca1c20, 0x242ad: 0x6c1f4420, 0x242ae: 0x6cefca20,
-	0x242b0: 0x6c3f6820, 0x242b1: 0x6c794020, 0x242b2: 0x6cd8c020, 0x242b3: 0x6c778620,
-	0x242b5: 0x6d17b020, 0x242b6: 0x6c579a20,
-	0x242be: 0x6d225e20,
-	// Block 0x90b, offset 0x242c0
-	0x242c3: 0x6c861420,
-	0x242c6: 0x6c8c2020, 0x242c7: 0x6c321e20,
-	0x242c8: 0x6c363c20,
-	0x242cc: 0x6cbb4220, 0x242cd: 0x6c31a620,
-	0x242d0: 0x6c6af020, 0x242d1: 0x6c21c620, 0x242d2: 0x6cfcd420,
-	0x242d6: 0x6c430a20,
-	0x242ec: 0x6c2a1e20,
-	0x242f0: 0x6c52b420,
-	0x242fb: 0x6d3fa620,
-	0x242fe: 0x6cb7b620, 0x242ff: 0x6ceb3820,
-	// Block 0x90c, offset 0x24300
-	0x24300: 0x6c52b820, 0x24301: 0x6cb06420, 0x24302: 0x6c453c20,
-	0x24304: 0x6ca85020, 0x24307: 0x6c798420,
-	0x2430a: 0x6d354620,
-	0x24311: 0x6cffb420,
-	0x24321: 0x6ccf6620, 0x24322: 0x6d217620, 0x24323: 0x6c676a20,
-	0x24329: 0x6cb70a20, 0x2432a: 0x6c190a20, 0x2432b: 0x6cca8220,
-	0x2432d: 0x6cdd8e20, 0x2432e: 0x6cb9bc20, 0x2432f: 0x6c5c1a20,
-	0x24331: 0x6ccda020, 0x24332: 0x6c368c20,
-	0x2433b: 0x6cbfbc20,
-	0x2433d: 0x6c78ca20,
-	// Block 0x90d, offset 0x24340
-	0x24340: 0x6cf23420, 0x24341: 0x6d3e7c20, 0x24342: 0x6c608e20,
-	0x24347: 0x6c26e220,
-	0x24349: 0x6c263620,
-	0x2434d: 0x6c90f620, 0x2434e: 0x6c775020, 0x2434f: 0x6c7e1220,
-	0x24350: 0x6c2b8e20, 0x24351: 0x6cbc7e20, 0x24353: 0x6ca16420,
-	0x24356: 0x6c4cce20, 0x24357: 0x6c52c620,
-	0x24358: 0x6c177c20, 0x24359: 0x6c522620,
-	0x24362: 0x6c129020, 0x24363: 0x6d308c20,
-	0x24366: 0x6c4bea20,
-	0x24370: 0x6d05ec20, 0x24371: 0x6caece20, 0x24372: 0x6c74ca20,
-	0x24375: 0x6c41ee20, 0x24376: 0x6cd83220,
-	0x24378: 0x6cdc8620, 0x24379: 0x6cc40420, 0x2437b: 0x6cf3f220,
-	0x2437c: 0x6d0cda20, 0x2437d: 0x6caf1820, 0x2437e: 0x6cffc420, 0x2437f: 0x6cac4820,
-	// Block 0x90e, offset 0x24380
-	0x2438d: 0x6c7e9e20,
-	0x24397: 0x6c085a20,
-	0x24398: 0x6d320020, 0x24399: 0x6c60de20,
-	0x2439c: 0x6c6cc020, 0x2439d: 0x6c887420, 0x2439e: 0x6c791220,
-	0x243a0: 0x6d38d620,
-	0x243a8: 0x6d2a9620, 0x243aa: 0x6c822e20, 0x243ab: 0x6cb54820,
-	0x243ac: 0x6c0e3820,
-	0x243b5: 0x6d1b1c20, 0x243b6: 0x6cb1f620,
-	0x243bb: 0x6cda3820,
-	0x243bc: 0x6c941620, 0x243be: 0x6c2bb420, 0x243bf: 0x6c31e420,
-	// Block 0x90f, offset 0x243c0
-	0x243c0: 0x6c8a8820, 0x243c1: 0x6d3dd620,
-	0x243ca: 0x6c16fc20,
-	0x243d2: 0x6c194020, 0x243d3: 0x6cdee020,
-	0x243d9: 0x6cc41e20, 0x243da: 0x6c2a4c20,
-	0x243dd: 0x6cc51020, 0x243df: 0x6cb3ba20,
-	0x243e6: 0x6d37e020, 0x243e7: 0x6d006020,
-	0x243ea: 0x6c679620, 0x243eb: 0x6cc21820,
-	0x243ec: 0x6c831020, 0x243ed: 0x6c10f020, 0x243ee: 0x6cc39a20,
-	0x243f5: 0x6cfe7220, 0x243f6: 0x6c836820,
-	0x243fa: 0x6c809620,
-	0x243ff: 0x6c7e6820,
-	// Block 0x910, offset 0x24400
-	0x24401: 0x6c7e6a20,
-	0x24404: 0x6d24b420,
-	0x2440a: 0x6c697e20, 0x2440b: 0x6cbd4e20,
-	0x2440c: 0x6c5e7e20, 0x2440f: 0x6c41c820,
-	0x24412: 0x6d169220,
-	0x24420: 0x6d16c820, 0x24421: 0x6d339e20,
-	0x24424: 0x6c0c6e20, 0x24425: 0x6cd0e620, 0x24426: 0x6c6fd820,
-	0x2442b: 0x6c509420,
-	0x2442c: 0x6c3e2020, 0x2442e: 0x6c706620,
-	// Block 0x911, offset 0x24440
-	0x24440: 0x6d426620, 0x24441: 0x6d14ac20,
-	0x24446: 0x6cfc9420, 0x24447: 0x6d14ae20,
-	0x24449: 0x6cd8a220, 0x2444b: 0x6c20f220,
-	0x2444e: 0x6ca0fa20,
-	0x24461: 0x6d2d6c20, 0x24463: 0x6d0a0020,
-	0x24466: 0x6cc79a20,
-	0x24468: 0x6c5db020,
-	0x2446c: 0x6cce6a20,
-	0x24470: 0x6cd46620,
-	0x2447e: 0x6d203e20, 0x2447f: 0x6d231c20,
-	// Block 0x912, offset 0x24480
-	0x24482: 0x6c75b420,
-	0x24489: 0x6d3e4220, 0x2448a: 0x6c925c20,
-	0x2449a: 0x6c1baa20, 0x2449b: 0x6c7d6620,
-	0x244a0: 0x6d3ce420,
-	0x244a6: 0x6c541420,
-	0x244a9: 0x6d064420,
-	0x244be: 0x6d3f9c20, 0x244bf: 0x6d1d4220,
-	// Block 0x913, offset 0x244c0
-	0x244c2: 0x6d39b020,
-	0x244c5: 0x6c8f3a20,
-	0x244d1: 0x6caa6820,
-	0x244d8: 0x6c0a3020, 0x244da: 0x6c1c5e20,
-	0x244dc: 0x6d412420, 0x244dd: 0x6c3cb820, 0x244de: 0x6c92aa20, 0x244df: 0x6cb49220,
-	0x244e5: 0x6d3bdc20, 0x244e7: 0x6d308020,
-	0x244e8: 0x6cd1ec20, 0x244e9: 0x6d227e20, 0x244ea: 0x6c92ac20, 0x244eb: 0x6c896820,
-	0x244ef: 0x6c74c020,
-	0x244f0: 0x6c8aa620, 0x244f1: 0x6c080820,
-	// Block 0x914, offset 0x24500
-	0x24503: 0x6d18ce20,
-	0x24504: 0x6c492820,
-	0x2450c: 0x6c02ae20, 0x2450f: 0x6c4b8220,
-	0x24510: 0x6c9fce20, 0x24512: 0x6d0dec20, 0x24513: 0x6c7fd220,
-	0x24516: 0x6c0f9220,
-	0x24519: 0x6d29a620, 0x2451a: 0x6d1ffe20,
-	0x24525: 0x6d194420, 0x24526: 0x6ca66020,
-	0x2452c: 0x6ca66620, 0x2452d: 0x6c4ce020, 0x2452e: 0x6c760a20,
-	0x24530: 0x6cd21820, 0x24532: 0x6cfc5c20,
-	0x24534: 0x6cb95e20, 0x24535: 0x6cc42020, 0x24536: 0x6c7cc420,
-	// Block 0x915, offset 0x24540
-	0x24540: 0x6ccf1620, 0x24542: 0x6c5dd620,
-	0x24544: 0x6ced8e20,
-	0x2454a: 0x6c3af220, 0x2454b: 0x6c3b0020,
-	0x2454d: 0x6d22c420,
-	0x24551: 0x6d339220, 0x24552: 0x6c48a420,
-	0x24554: 0x6c6a8620, 0x24555: 0x6c983e20, 0x24556: 0x6c50cc20,
-	0x24558: 0x6d1fa820,
-	0x2455f: 0x6c324220,
-	0x24560: 0x6cd7d220, 0x24562: 0x6c859420,
-	0x24565: 0x6c6a9420, 0x24566: 0x6ca98a20, 0x24567: 0x6c03ac20,
-	0x24568: 0x6d20de20,
-	0x2456e: 0x6d33b220,
-	0x24578: 0x6c50e020, 0x24579: 0x6c77e820,
-	0x2457e: 0x6c324a20, 0x2457f: 0x6c634820,
-	// Block 0x916, offset 0x24580
-	0x24581: 0x6c186020, 0x24583: 0x6c20f420,
-	0x24584: 0x6c50f820, 0x24585: 0x6d2d2620,
-	0x2458a: 0x6c9a8c20,
-	0x2458d: 0x6c50fa20, 0x2458e: 0x6d3f0420, 0x2458f: 0x6d3a0620,
-	0x24592: 0x6ceb0e20,
-	0x24598: 0x6d421820, 0x2459a: 0x6cc7a220, 0x2459b: 0x6c34ee20,
-	0x2459c: 0x6c67e020,
-	0x245a7: 0x6c526420,
-	0x245a9: 0x6c07e620, 0x245aa: 0x6ca10820,
-	0x245af: 0x6d40ba20,
-	0x245b2: 0x6c0caa20,
-	0x245b4: 0x6c7a9820, 0x245b5: 0x6c63c020,
-	0x245ba: 0x6d3d0420,
-	0x245bc: 0x6d04d620,
-	// Block 0x917, offset 0x245c0
-	0x245c3: 0x6c512820,
-	0x245c5: 0x6cbb7220,
-	0x245cd: 0x6c3a5c20, 0x245ce: 0x6cd10a20,
-	0x245d2: 0x6d3c9620, 0x245d3: 0x6c7b6a20,
-	0x245d4: 0x6d2b5420, 0x245d5: 0x6cfaae20, 0x245d7: 0x6c09d620,
-	0x245d8: 0x6d17f620, 0x245da: 0x6c171a20,
-	0x245ea: 0x6c999a20,
-	0x245f6: 0x6ced3020,
-	0x245fd: 0x6cf37620, 0x245fe: 0x6c7a5220, 0x245ff: 0x6cf2be20,
-	// Block 0x918, offset 0x24600
-	0x24600: 0x6d038a20, 0x24601: 0x6c781620, 0x24603: 0x6c6f8220,
-	0x24604: 0x6c329c20, 0x24605: 0x6c594820,
-	0x24608: 0x6d369620, 0x24609: 0x6c130620, 0x2460a: 0x6cc75a20, 0x2460b: 0x6c606e20,
-	0x2460d: 0x6d131a20,
-	0x2461b: 0x6c6dca20,
-	0x2461c: 0x6d106220,
-	0x24621: 0x6d400220,
-	0x24629: 0x6c11d620,
-	0x24631: 0x6cd81c20, 0x24632: 0x6c866220, 0x24633: 0x6c47c620,
-	0x24634: 0x6c172220, 0x24636: 0x6c3a6820, 0x24637: 0x6c8e8a20,
-	0x24639: 0x6c6b1e20, 0x2463a: 0x6d276020,
-	0x2463d: 0x6d36ba20,
-	// Block 0x919, offset 0x24640
-	0x24640: 0x6c1dd220, 0x24641: 0x6c0cbc20,
-	0x24652: 0x6c5f1a20,
-	0x2465c: 0x6c955220, 0x2465d: 0x6c64f820, 0x2465f: 0x6c206020,
-	0x24660: 0x6cd6de20, 0x24662: 0x6c93fe20, 0x24663: 0x6c75ea20,
-	0x24664: 0x6c69c820, 0x24666: 0x6ce42020, 0x24667: 0x6d2c0020,
-	0x2466a: 0x6d18a820,
-	0x2466c: 0x6c235a20, 0x2466d: 0x6ca57420, 0x2466e: 0x6c638220,
-	0x24674: 0x6c627c20,
-	0x2467d: 0x6c00ce20,
-	// Block 0x91a, offset 0x24680
-	0x24687: 0x6c65d820,
-	0x2468a: 0x6c07ca20,
-	0x2468c: 0x6c38c620, 0x2468d: 0x6cdc8a20, 0x2468e: 0x6d421e20,
-	0x24690: 0x6c42e420, 0x24691: 0x6c432420, 0x24692: 0x6c817e20,
-	0x24694: 0x6d3db620,
-	0x2469f: 0x6c56ca20,
-	0x246a2: 0x6ce9c420,
-	0x246a6: 0x6c0a7420, 0x246a7: 0x6c716420,
-	0x246ae: 0x6c575a20,
-	0x246b2: 0x6c1a4a20,
-	0x246b6: 0x6c7b4220, 0x246b7: 0x6c291420,
-	0x246b8: 0x6c444c20, 0x246b9: 0x6d011420, 0x246bb: 0x6c6b6220,
-	0x246bd: 0x6c117620,
-	// Block 0x91b, offset 0x246c0
-	0x246c6: 0x6d40ec20,
-	0x246c8: 0x6cb46820, 0x246cb: 0x6cd57c20,
-	0x246cc: 0x6c104820,
-	0x246d7: 0x6ca93220,
-	0x246d8: 0x6d0dfc20, 0x246d9: 0x6d396020, 0x246db: 0x6c9b8420,
-	0x246dd: 0x6c0b5e20, 0x246df: 0x6cfe6420,
-	0x246e4: 0x6c931c20, 0x246e5: 0x6c849020,
-	0x246e9: 0x6c62ca20, 0x246eb: 0x6c9f0a20,
-	0x246ec: 0x6c835620, 0x246ee: 0x6d375820, 0x246ef: 0x6d1ecc20,
-	0x246f0: 0x6c0b6020,
-	0x246f8: 0x6ca2bc20, 0x246f9: 0x6cc4da20,
-	// Block 0x91c, offset 0x24700
-	0x24702: 0x6ca7c620,
-	0x2470a: 0x6cc33a20, 0x2470b: 0x6d30c620,
-	0x24710: 0x6c836620,
-	0x24717: 0x6c294820,
-	0x24718: 0x6c752e20,
-	0x2471c: 0x6c8dc420, 0x2471e: 0x6c8de820, 0x2471f: 0x6d0d2620,
-	0x24723: 0x6d118620,
-	0x24724: 0x6d321220, 0x24725: 0x6cb4ce20, 0x24726: 0x6c008a20,
-	0x24728: 0x6caa3e20, 0x24729: 0x6c988220,
-	0x24731: 0x6c76c220, 0x24733: 0x6c6f5c20,
-	0x24734: 0x6d0d5820, 0x24735: 0x6c9e5420, 0x24737: 0x6d1a3e20,
-	0x24738: 0x6ceccc20, 0x24739: 0x6d11f420, 0x2473a: 0x6cebce20, 0x2473b: 0x6cafc820,
-	0x2473c: 0x6cdc2c20,
-	// Block 0x91d, offset 0x24740
-	0x24745: 0x6c799a20,
-	0x24748: 0x6c532c20, 0x2474a: 0x6ca03020, 0x2474b: 0x6c8cd220,
-	0x2474c: 0x6d173e20, 0x2474d: 0x6ccfd220, 0x2474f: 0x6d429220,
-	0x2475b: 0x6ce85020,
-	0x2475d: 0x6d1e7820, 0x2475f: 0x6cec2620,
-	0x24760: 0x6c4af420, 0x24761: 0x6c53bc20,
-	0x24765: 0x6cd36e20, 0x24767: 0x6d049220,
-	0x24769: 0x6c000620,
-	0x24771: 0x6c19ee20, 0x24773: 0x6c793c20,
-	0x24774: 0x6d176c20, 0x24775: 0x6d104820, 0x24776: 0x6ce67420, 0x24777: 0x6c311e20,
-	0x24778: 0x6c13e820, 0x24779: 0x6c8f3020,
-	0x2477d: 0x6cc06a20, 0x2477e: 0x6d084e20, 0x2477f: 0x6ccfee20,
-	// Block 0x91e, offset 0x24780
-	0x24780: 0x6c7b5420, 0x24781: 0x6ce7ca20, 0x24783: 0x6cba0e20,
-	0x24785: 0x6c1e4220,
-	0x2478a: 0x6cf1de20,
-	0x2478c: 0x6c906820, 0x2478d: 0x6c018820,
-	0x24794: 0x6c76d820, 0x24796: 0x6d11b020,
-	0x24798: 0x6c3e8420,
-	0x2479c: 0x6c084220, 0x2479d: 0x6c803020, 0x2479e: 0x6cb86c20, 0x2479f: 0x6c2d6620,
-	0x247a2: 0x6c69a620, 0x247a3: 0x6c4a7420,
-	0x247a5: 0x6d049820,
-	0x247a8: 0x6c78bc20,
-	0x247b6: 0x6cfcd620, 0x247b7: 0x6cf33a20,
-	// Block 0x91f, offset 0x247c0
-	0x247c2: 0x6c45f620,
-	0x247c6: 0x6cab8620, 0x247c7: 0x6c781820,
-	0x247cb: 0x6c7a5420,
-	0x247d1: 0x6ce4be20, 0x247d2: 0x6c46d420, 0x247d3: 0x6c96a220,
-	0x247d5: 0x6c8f3e20,
-	0x247d9: 0x6cf0c220, 0x247da: 0x6cf1ec20,
-	0x247e1: 0x6c462020, 0x247e3: 0x6ce8e820,
-	0x247e4: 0x6ca91620, 0x247e7: 0x6c9d7c20,
-	0x247eb: 0x6c80e020,
-	0x247ec: 0x6cba2220, 0x247ed: 0x6c977e20, 0x247ee: 0x6d308e20,
-	0x247f0: 0x6c57c620, 0x247f1: 0x6d1db620, 0x247f2: 0x6c6d5020,
-	0x247f4: 0x6c9aae20, 0x247f7: 0x6c3ef020,
-	0x247fb: 0x6cc1c220,
-	// Block 0x920, offset 0x24800
-	0x2480c: 0x6c8f4820, 0x2480d: 0x6c406220, 0x2480e: 0x6c28c620,
-	0x24810: 0x6c460020, 0x24812: 0x6c256e20,
-	0x24815: 0x6d040c20,
-	0x2481c: 0x6ce87c20, 0x2481d: 0x6cd48020,
-	0x2482a: 0x6cbf8420,
-	0x24833: 0x6cc6e020,
-	0x2483b: 0x6c874c20,
-	0x2483f: 0x6c5f9220,
-	// Block 0x921, offset 0x24840
-	0x24840: 0x6cebbc20,
-	0x2484c: 0x6ce7aa20,
-	0x24852: 0x6ce04c20,
-	0x24854: 0x6c8dea20, 0x24856: 0x6d169420, 0x24857: 0x6cc85220,
-	0x24859: 0x6cabe220,
-	0x2485d: 0x6c10e820,
-	0x24861: 0x6d269820, 0x24862: 0x6cc3b020, 0x24863: 0x6d3ade20,
-	0x24864: 0x6c4d6220,
-	0x24871: 0x6c381220, 0x24872: 0x6c4d6820,
-	// Block 0x922, offset 0x24880
-	0x24880: 0x6c101620, 0x24881: 0x6cb25620, 0x24882: 0x6c8b0c20,
-	0x2488a: 0x6c7cd420, 0x2488b: 0x6c3e9e20,
-	0x2488c: 0x6ce50620, 0x2488d: 0x6cf2fc20, 0x2488f: 0x6c70aa20,
-	0x24898: 0x6d318620, 0x2489a: 0x6c3ec620,
-	0x248a2: 0x6c8f9e20,
-	0x248a6: 0x6cf8ce20, 0x248a7: 0x6ce4c020,
-	0x248ab: 0x6c626620,
-	0x248af: 0x6d122c20,
-	0x248b1: 0x6c246620,
-	0x248b4: 0x6cad3020, 0x248b5: 0x6cbce820,
-	0x248bb: 0x6c8fb420,
-	0x248bc: 0x6c615820,
-	// Block 0x923, offset 0x248c0
-	0x248c2: 0x6ce79a20, 0x248c3: 0x6d158420,
-	0x248c5: 0x6c168420,
-	0x248cb: 0x6c45c220,
-	0x248ce: 0x6c309620,
-	0x248d6: 0x6cfda420,
-	0x248d9: 0x6ce6b620, 0x248db: 0x6d3b7020,
-	0x248dc: 0x6d15c820, 0x248dd: 0x6d170020, 0x248de: 0x6d3ef820, 0x248df: 0x6cb6e020,
-	0x248e2: 0x6c141a20,
-	0x248ec: 0x6c33e220, 0x248ef: 0x6c1cbc20,
-	0x248f0: 0x6c922a20, 0x248f1: 0x6c33ea20, 0x248f3: 0x6c399220,
-	0x248f4: 0x6cd35c20, 0x248f5: 0x6ce3e420, 0x248f6: 0x6c5eaa20, 0x248f7: 0x6cbfaa20,
-	0x248f8: 0x6cd70e20, 0x248f9: 0x6c18b020,
-	0x248fc: 0x6c5a6820, 0x248fd: 0x6cd41220,
-	// Block 0x924, offset 0x24900
-	0x24900: 0x6d279c20,
-	0x24906: 0x6c8f8420,
-	0x24908: 0x6c97b620, 0x24909: 0x6c464220,
-	0x2490d: 0x6cfaa020, 0x2490e: 0x6ca10a20,
-	0x24910: 0x6cd05e20, 0x24912: 0x6cb30820, 0x24913: 0x6d120420,
-	0x24914: 0x6cc0fa20, 0x24915: 0x6cc4c020,
-	0x24919: 0x6c724220,
-	0x2491c: 0x6d1ada20, 0x2491d: 0x6c041020, 0x2491e: 0x6ca81c20,
-	0x24920: 0x6c1d6c20,
-	0x2492a: 0x6cc67820, 0x2492b: 0x6c202020,
-	0x2492c: 0x6ca83420, 0x2492d: 0x6c861620, 0x2492e: 0x6c676220, 0x2492f: 0x6c77ac20,
-	0x24930: 0x6c12f020, 0x24931: 0x6c1d5220, 0x24932: 0x6d3b5620, 0x24933: 0x6d3f1420,
-	0x24934: 0x6d0fb820,
-	0x2493c: 0x6cf1e020,
-	// Block 0x925, offset 0x24940
-	0x2494b: 0x6c620420,
-	0x2494c: 0x6c620620,
-	0x24950: 0x6c93e820, 0x24951: 0x6cc07820, 0x24952: 0x6c33fc20, 0x24953: 0x6c05cc20,
-	0x24954: 0x6c14ce20, 0x24956: 0x6c0f1620,
-	0x24958: 0x6c1abe20, 0x24959: 0x6d30fa20, 0x2495a: 0x6c98b820,
-	0x2495c: 0x6c621c20, 0x2495d: 0x6c9eb620, 0x2495e: 0x6d262620,
-	0x24960: 0x6cf3d220, 0x24961: 0x6d366420, 0x24962: 0x6cb25c20,
-	0x24965: 0x6c1ccc20,
-	0x2496b: 0x6c9c6020,
-	0x2496c: 0x6c3a3c20, 0x2496d: 0x6c25c020, 0x2496e: 0x6c9b2420,
-	// Block 0x926, offset 0x24980
-	0x2498d: 0x6d1a8220, 0x2498e: 0x6c989a20, 0x2498f: 0x6c2d2420,
-	0x24990: 0x6c2dd620, 0x24992: 0x6cb9b420,
-	0x24995: 0x6c4f9820, 0x24996: 0x6d348620, 0x24997: 0x6c713e20,
-	0x24998: 0x6ca76820,
-	0x2499c: 0x6c9c6620, 0x2499d: 0x6c47b620,
-	0x249a3: 0x6d3b5820,
-	0x249a4: 0x6ca85220, 0x249a5: 0x6d3d8420, 0x249a7: 0x6d131c20,
-	0x249a8: 0x6c23dc20, 0x249aa: 0x6d05be20,
-	0x249ac: 0x6cf8b820, 0x249af: 0x6c0e8420,
-	0x249be: 0x6c11d820,
-	// Block 0x927, offset 0x249c0
-	0x249c3: 0x6d0dba20,
-	0x249d1: 0x6c6cb220,
-	0x249d4: 0x6c71ce20, 0x249d5: 0x6c298620, 0x249d6: 0x6c327620,
-	0x249d8: 0x6d128c20, 0x249d9: 0x6c6ea020, 0x249da: 0x6c78cc20, 0x249db: 0x6c962220,
-	0x249dc: 0x6cf00220, 0x249dd: 0x6ce87620, 0x249de: 0x6d1f6020, 0x249df: 0x6cac3020,
-	0x249e1: 0x6cb01020, 0x249e2: 0x6c2fb820,
-	0x249e4: 0x6cf00420, 0x249e5: 0x6c183620, 0x249e6: 0x6c66bc20,
-	0x249e8: 0x6cd81e20, 0x249e9: 0x6d3d8a20, 0x249ea: 0x6cda4020,
-	0x249ec: 0x6cc87420, 0x249ee: 0x6d218420,
-	0x249f3: 0x6c368e20,
-	0x249f6: 0x6c7a7e20,
-	0x249f8: 0x6d3b2220,
-	0x249fe: 0x6cf9e820,
-	// Block 0x928, offset 0x24a00
-	0x24a1b: 0x6c3ef220,
-	0x24a1c: 0x6ce23e20, 0x24a1d: 0x6cf6d020, 0x24a1e: 0x6c1d8020, 0x24a1f: 0x6c41ec20,
-	0x24a20: 0x6c936420, 0x24a21: 0x6c131620, 0x24a22: 0x6ccdb220, 0x24a23: 0x6c8e9c20,
-	0x24a25: 0x6cf8e020, 0x24a26: 0x6c5f3e20, 0x24a27: 0x6d161220,
-	0x24a28: 0x6ce01220, 0x24a2a: 0x6c55b620,
-	0x24a2d: 0x6c25c820, 0x24a2e: 0x6c447820,
-	0x24a30: 0x6cd3dc20, 0x24a31: 0x6ccac020, 0x24a32: 0x6c53d420, 0x24a33: 0x6cfd0e20,
-	0x24a36: 0x6cf9f020,
-	0x24a3b: 0x6ca2ae20,
-	0x24a3c: 0x6cdd9620, 0x24a3e: 0x6d2d4c20,
-	// Block 0x929, offset 0x24a40
-	0x24a40: 0x6c3d9e20, 0x24a41: 0x6ccb6220, 0x24a42: 0x6caa4620, 0x24a43: 0x6d18ac20,
-	0x24a67: 0x6cbdaa20,
-	0x24a68: 0x6cbedc20,
-	0x24a75: 0x6c5c5a20, 0x24a76: 0x6cd6e220, 0x24a77: 0x6c284a20,
-	0x24a78: 0x6cab5420, 0x24a79: 0x6ca17420, 0x24a7a: 0x6cb92420, 0x24a7b: 0x6c1c8020,
-	0x24a7c: 0x6cac0620, 0x24a7d: 0x6c739620,
-	// Block 0x92a, offset 0x24a80
-	0x24a80: 0x6c178020, 0x24a81: 0x6c8b3c20, 0x24a82: 0x6c0db420, 0x24a83: 0x6c7a0a20,
-	0x24a84: 0x6c28c820, 0x24a85: 0x6c1dee20, 0x24a86: 0x6ce70620, 0x24a87: 0x6c28ca20,
-	0x24a88: 0x6c97ce20, 0x24a89: 0x6c56ce20, 0x24a8a: 0x6c8a2820, 0x24a8b: 0x6cfbae20,
-	0x24a8d: 0x6c129820, 0x24a8e: 0x6c92ea20, 0x24a8f: 0x6c204220,
-	0x24a90: 0x6cf3f420, 0x24a91: 0x6c978820,
-	0x24a95: 0x6d3f2420, 0x24a97: 0x6c328020,
-	0x24a9a: 0x6cd6f220, 0x24a9b: 0x6c406420,
-	0x24a9c: 0x6c72a620, 0x24a9d: 0x6d395820, 0x24a9f: 0x6c2e4220,
-	0x24aa0: 0x6cee5a20, 0x24aa1: 0x6c206820, 0x24aa2: 0x6cb92620, 0x24aa3: 0x6cea1220,
-	0x24aa5: 0x6c886420, 0x24aa6: 0x6c0c2e20, 0x24aa7: 0x6c845420,
-	0x24aaa: 0x6c845620,
-	// Block 0x92b, offset 0x24ac0
-	0x24ac6: 0x6c0a9220, 0x24ac7: 0x6c407620,
-	0x24ac8: 0x6c257820, 0x24ac9: 0x6c318020, 0x24acb: 0x6d29a820,
-	0x24acc: 0x6c8fb620, 0x24acd: 0x6d0a4a20, 0x24ace: 0x6cbf7a20, 0x24acf: 0x6c5f6e20,
-	0x24ad0: 0x6cba2c20, 0x24ad2: 0x6c65fa20, 0x24ad3: 0x6cce9020,
-	0x24ad4: 0x6c351e20, 0x24ad5: 0x6cd51620, 0x24ad6: 0x6c10c820, 0x24ad7: 0x6d05f820,
-	0x24ad8: 0x6c304420, 0x24ada: 0x6cc49220,
-	0x24adc: 0x6d0fe620, 0x24add: 0x6cc8b420, 0x24ade: 0x6c8c7020, 0x24adf: 0x6c65fc20,
-	0x24ae0: 0x6c2ca820, 0x24ae1: 0x6c3ba020, 0x24ae2: 0x6c2d9020, 0x24ae3: 0x6d41dc20,
-	0x24ae5: 0x6ca94820,
-	0x24aea: 0x6cdba020, 0x24aeb: 0x6ce52420,
-	0x24aec: 0x6c01da20, 0x24aef: 0x6c131c20,
-	0x24af0: 0x6c2fc220, 0x24af1: 0x6cd02820, 0x24af2: 0x6c328420, 0x24af3: 0x6ce39420,
-	0x24af4: 0x6c695420, 0x24af5: 0x6d41de20, 0x24af6: 0x6d2f1020, 0x24af7: 0x6c65fe20,
-	0x24af8: 0x6c28da20, 0x24af9: 0x6c285420, 0x24afa: 0x6cd97420,
-	// Block 0x92c, offset 0x24b00
-	0x24b10: 0x6d2e2620, 0x24b11: 0x6ce69620, 0x24b12: 0x6d372a20,
-	0x24b15: 0x6d1f8220, 0x24b16: 0x6cac0e20,
-	0x24b21: 0x6c854220,
-	0x24b24: 0x6cb9d820, 0x24b26: 0x6cdca620, 0x24b27: 0x6c71dc20,
-	0x24b28: 0x6c010020, 0x24b29: 0x6c445020, 0x24b2a: 0x6c72b420, 0x24b2b: 0x6cea7220,
-	0x24b2c: 0x6c0aa620, 0x24b2d: 0x6cb87e20, 0x24b2e: 0x6c0fa820, 0x24b2f: 0x6c5c7c20,
-	0x24b31: 0x6c670020,
-	0x24b34: 0x6c466420, 0x24b35: 0x6cdba420,
-	0x24b3a: 0x6c227a20, 0x24b3b: 0x6cbb5c20,
-	0x24b3f: 0x6d0cf420,
-	// Block 0x92d, offset 0x24b40
-	0x24b4f: 0x6c2d9420,
-	0x24b52: 0x6c9f0420,
-	0x24b5c: 0x6cb3b620, 0x24b5d: 0x6c8e1620, 0x24b5e: 0x6c6b7420, 0x24b5f: 0x6d3b3e20,
-	0x24b60: 0x6c47ee20, 0x24b63: 0x6c32aa20,
-	0x24b64: 0x6d2fee20, 0x24b66: 0x6ccebe20, 0x24b67: 0x6cbdf020,
-	0x24b68: 0x6c9ca420, 0x24b6a: 0x6cb2e220, 0x24b6b: 0x6c23c020,
-	0x24b6c: 0x6c1d8820, 0x24b6f: 0x6cc9ae20,
-	0x24b76: 0x6ce52620,
-	// Block 0x92e, offset 0x24b80
-	0x24b85: 0x6c8edc20, 0x24b86: 0x6c936c20, 0x24b87: 0x6c91fc20,
-	0x24b88: 0x6d407620,
-	0x24b8c: 0x6c941e20, 0x24b8d: 0x6c58e620, 0x24b8f: 0x6ce5b420,
-	0x24b90: 0x6ce9d820, 0x24b91: 0x6cbb5220, 0x24b92: 0x6c8c8020, 0x24b93: 0x6c06c220,
-	0x24b94: 0x6cad7620, 0x24b95: 0x6d2dc420, 0x24b97: 0x6c874e20,
-	0x24b9b: 0x6ce3b220,
-	0x24b9c: 0x6c560020,
-	0x24ba2: 0x6c8b6c20,
-	0x24bb5: 0x6c5b8020, 0x24bb6: 0x6cc16420, 0x24bb7: 0x6d086820,
-	0x24bb9: 0x6c6ec620, 0x24bba: 0x6c2f1220, 0x24bbb: 0x6cdc0820,
-	0x24bbd: 0x6cf11e20, 0x24bbf: 0x6d0d1420,
-	// Block 0x92f, offset 0x24bc0
-	0x24bc0: 0x6d0c4a20, 0x24bc1: 0x6c050e20, 0x24bc3: 0x6c67ce20,
-	0x24bc4: 0x6ca66820, 0x24bc5: 0x6c876e20, 0x24bc6: 0x6c560620, 0x24bc7: 0x6cb80420,
-	0x24bc8: 0x6d37e220,
-	0x24bd1: 0x6c0acc20,
-	0x24bd4: 0x6d220020, 0x24bd5: 0x6c2f1420, 0x24bd6: 0x6c8c8a20, 0x24bd7: 0x6c878c20,
-	0x24bd8: 0x6d3de620, 0x24bd9: 0x6c62f020, 0x24bda: 0x6c70e620,
-	0x24bdc: 0x6c3c8820, 0x24bde: 0x6d248820,
-	0x24be8: 0x6c8b7e20, 0x24be9: 0x6d28e020, 0x24bea: 0x6cb9e820, 0x24beb: 0x6c6a4620,
-	0x24bec: 0x6c494220, 0x24bee: 0x6d3dee20,
-	0x24bf1: 0x6c40a220,
-	0x24bf9: 0x6ccba220,
-	0x24bfc: 0x6c248a20,
-	// Block 0x930, offset 0x24c00
-	0x24c03: 0x6c5b8220,
-	0x24c08: 0x6c29a620, 0x24c09: 0x6c901c20, 0x24c0a: 0x6d198420,
-	0x24c17: 0x6cc96020,
-	0x24c18: 0x6d274220, 0x24c1a: 0x6c2bc620,
-	0x24c21: 0x6c420820, 0x24c22: 0x6d295c20, 0x24c23: 0x6ccdf420,
-	0x24c24: 0x6d24b020, 0x24c25: 0x6c0fde20, 0x24c27: 0x6c2f9820,
-	0x24c28: 0x6c388c20, 0x24c2a: 0x6d22d820,
-	0x24c2c: 0x6ccfc420,
-	0x24c32: 0x6c457020,
-	0x24c34: 0x6c9ed020, 0x24c35: 0x6cea4a20,
-	0x24c38: 0x6c8af620,
-	// Block 0x931, offset 0x24c40
-	0x24c41: 0x6d2bd420, 0x24c42: 0x6cadbc20,
-	0x24c44: 0x6c9c4a20, 0x24c46: 0x6c9ffa20, 0x24c47: 0x6c394a20,
-	0x24c49: 0x6ca33620, 0x24c4a: 0x6cd8b820, 0x24c4b: 0x6d14ea20,
-	0x24c4c: 0x6c635020, 0x24c4d: 0x6d3ae620,
-	0x24c53: 0x6c047e20,
-	0x24c54: 0x6d231e20, 0x24c56: 0x6cb35820,
-	0x24c5a: 0x6c582820, 0x24c5b: 0x6c11f820,
-	0x24c5c: 0x6c684a20,
-	0x24c60: 0x6cdfe420,
-	0x24c69: 0x6d363a20, 0x24c6b: 0x6c9cf420,
-	0x24c6c: 0x6c77ae20,
-	0x24c71: 0x6d109a20, 0x24c72: 0x6c335020, 0x24c73: 0x6cc36020,
-	0x24c74: 0x6c10a420, 0x24c75: 0x6c1f5420, 0x24c76: 0x6cbc2820, 0x24c77: 0x6c8e6c20,
-	0x24c78: 0x6c0f1820, 0x24c7a: 0x6c772e20, 0x24c7b: 0x6c3bde20,
-	// Block 0x932, offset 0x24c80
-	0x24c85: 0x6c2a2020,
-	0x24c89: 0x6c312820, 0x24c8a: 0x6c440820,
-	0x24c99: 0x6c8d3a20, 0x24c9a: 0x6cf79420,
-	0x24c9c: 0x6ca6ba20, 0x24c9d: 0x6d389620, 0x24c9e: 0x6d389820,
-	0x24ca3: 0x6c1d7820,
-	0x24cb4: 0x6ca6ee20, 0x24cb5: 0x6c5f0c20, 0x24cb7: 0x6cc12420,
-	// Block 0x933, offset 0x24cc0
-	0x24cc4: 0x6c763e20, 0x24cc7: 0x6cfcfc20,
-	0x24cc9: 0x6c516820, 0x24ccb: 0x6c8bd220,
-	0x24ccd: 0x6d3e7e20,
-	0x24cd1: 0x6cab8c20, 0x24cd2: 0x6c245620,
-	0x24cd7: 0x6c140420,
-	0x24cdd: 0x6d383820, 0x24cde: 0x6c102420,
-	0x24ce4: 0x6c1d8220, 0x24ce5: 0x6cf8e220, 0x24ce6: 0x6cc99220, 0x24ce7: 0x6cfb9620,
-	0x24ce8: 0x6ccb6420, 0x24ce9: 0x6c9e6020, 0x24ceb: 0x6c38c020,
-	0x24cec: 0x6d341620, 0x24cee: 0x6c256420,
-	0x24cf4: 0x6cfa4620,
-	0x24cfe: 0x6cab1420, 0x24cff: 0x6c845820,
-	// Block 0x934, offset 0x24d00
-	0x24d00: 0x6d40de20, 0x24d02: 0x6c24f220, 0x24d03: 0x6d2b1220,
-	0x24d05: 0x6c845a20,
-	0x24d18: 0x6cb67620, 0x24d1a: 0x6d3d1020, 0x24d1b: 0x6c257a20,
-	0x24d1c: 0x6cb41e20, 0x24d1e: 0x6c38d620, 0x24d1f: 0x6ce02620,
-	0x24d29: 0x6d3eac20, 0x24d2a: 0x6d412a20, 0x24d2b: 0x6d38bc20,
-	0x24d2c: 0x6cc6d020, 0x24d2d: 0x6c8bee20, 0x24d2e: 0x6ce02820,
-	0x24d36: 0x6cd3fe20,
-	0x24d3a: 0x6c251420, 0x24d3b: 0x6d3eb820,
-	0x24d3c: 0x6c3db620,
-	// Block 0x935, offset 0x24d40
-	0x24d41: 0x6d001c20,
-	0x24d48: 0x6c3c7420,
-	0x24d4f: 0x6cfd4220,
-	0x24d50: 0x6c670c20, 0x24d52: 0x6c3c0420,
-	0x24d57: 0x6c875020,
-	0x24d58: 0x6ca19820,
-	0x24d5f: 0x6d1ed020,
-	0x24d65: 0x6c5e5020, 0x24d67: 0x6cc16620,
-	0x24d6c: 0x6ca78220,
-	0x24d70: 0x6c9cbe20, 0x24d73: 0x6cb80a20,
-	0x24d76: 0x6c51ae20,
-	0x24d78: 0x6c893a20,
-	0x24d7f: 0x6d42b420,
-	// Block 0x936, offset 0x24d80
-	0x24d82: 0x6c8df220,
-	0x24d85: 0x6d39f820, 0x24d87: 0x6ca78c20,
-	0x24d8a: 0x6c612420, 0x24d8b: 0x6cc62620,
-	0x24d8c: 0x6c6a9620, 0x24d8d: 0x6c41d020,
-	0x24d90: 0x6d170220, 0x24d93: 0x6d38ce20,
-	0x24d95: 0x6cf4ca20,
-	0x24d9a: 0x6c44fe20, 0x24d9b: 0x6c243220,
-	0x24d9d: 0x6c9ed220,
-	0x24da1: 0x6d0a0220, 0x24da3: 0x6d33cc20,
-	0x24da4: 0x6cff7620, 0x24da7: 0x6c3e3a20,
-	0x24da8: 0x6c553620,
-	0x24dac: 0x6c2b1e20, 0x24dae: 0x6c741820, 0x24daf: 0x6c2e1220,
-	0x24db9: 0x6cd44420,
-	0x24dbc: 0x6cee0a20,
-	// Block 0x937, offset 0x24dc0
-	0x24dc3: 0x6ca33820,
-	0x24dc4: 0x6c2b2620, 0x24dc5: 0x6cd37020, 0x24dc6: 0x6c224020, 0x24dc7: 0x6cd4d220,
-	0x24dc9: 0x6cec2c20, 0x24dca: 0x6c181820, 0x24dcb: 0x6c389820,
-	0x24dcd: 0x6c470820, 0x24dce: 0x6d24e620,
-	0x24dd1: 0x6c491420,
-	0x24dda: 0x6cbcbc20,
-	0x24ddc: 0x6d2de820, 0x24ddd: 0x6c276020, 0x24dde: 0x6cceee20,
-	0x24de6: 0x6d388820, 0x24de7: 0x6cfde420,
-	0x24de8: 0x6ca00020, 0x24de9: 0x6d3f5020, 0x24dea: 0x6c599620, 0x24deb: 0x6c9c5420,
-	0x24ded: 0x6cf88c20, 0x24dee: 0x6d363c20, 0x24def: 0x6cac2820,
-	0x24df0: 0x6c349420,
-	0x24df4: 0x6c22c820, 0x24df5: 0x6ca1d420, 0x24df7: 0x6c17be20,
-	0x24df9: 0x6d17b620, 0x24dfa: 0x6c464820,
-	// Block 0x938, offset 0x24e00
-	0x24e07: 0x6c6dba20,
-	0x24e13: 0x6d2b8020,
-	0x24e14: 0x6cb25e20, 0x24e15: 0x6d130420, 0x24e16: 0x6c6af420,
-	0x24e18: 0x6caf7620, 0x24e1b: 0x6ccbfe20,
-	0x24e1c: 0x6d3c4420, 0x24e1d: 0x6c6f1e20,
-	0x24e20: 0x6c8e6e20, 0x24e21: 0x6d227020, 0x24e23: 0x6c70ac20,
-	0x24e28: 0x6caafe20,
-	0x24e38: 0x6c999c20,
-	// Block 0x939, offset 0x24e40
-	0x24e44: 0x6c187420, 0x24e46: 0x6d3bd420, 0x24e47: 0x6ca76a20,
-	0x24e48: 0x6c79aa20, 0x24e49: 0x6c6a2e20, 0x24e4a: 0x6c57b020,
-	0x24e4d: 0x6d02e220, 0x24e4e: 0x6d424a20, 0x24e4f: 0x6d0e9620,
-	0x24e50: 0x6c748220,
-	0x24e55: 0x6c54ea20, 0x24e56: 0x6d393a20, 0x24e57: 0x6ccf6a20,
-	0x24e59: 0x6d0dbc20, 0x24e5b: 0x6d01de20,
-	0x24e5c: 0x6c2ed420, 0x24e5f: 0x6c187a20,
-	0x24e72: 0x6c65c620, 0x24e73: 0x6c624c20,
-	0x24e76: 0x6c21ce20, 0x24e77: 0x6c537420,
-	// Block 0x93a, offset 0x24e80
-	0x24e80: 0x6c26bc20,
-	0x24e84: 0x6c764020, 0x24e85: 0x6d039820, 0x24e86: 0x6c5c1c20, 0x24e87: 0x6c65d020,
-	0x24e88: 0x6d394820, 0x24e89: 0x6d2c8c20, 0x24e8a: 0x6c403820, 0x24e8b: 0x6c1c6020,
-	0x24e8c: 0x6c082e20, 0x24e8d: 0x6cab0a20,
-	0x24e91: 0x6c626820, 0x24e92: 0x6cb9c020,
-	0x24e94: 0x6ced9620, 0x24e95: 0x6cab6a20, 0x24e96: 0x6c0a3220, 0x24e97: 0x6cd79c20,
-	0x24ea0: 0x6c6dd020, 0x24ea1: 0x6d132e20,
-	// Block 0x93b, offset 0x24ec0
-	0x24ec4: 0x6c3a7220, 0x24ec7: 0x6c844420,
-	0x24eca: 0x6c868020, 0x24ecb: 0x6cb01e20,
-	0x24ed2: 0x6cdc7a20, 0x24ed3: 0x6c8e9e20,
-	0x24ed4: 0x6c517220, 0x24ed5: 0x6c5d1420, 0x24ed6: 0x6ce07a20, 0x24ed7: 0x6cd79e20,
-	0x24ed8: 0x6d36ec20, 0x24ed9: 0x6c0f5c20,
-	0x24edd: 0x6cf8e420,
-	0x24ee1: 0x6cb33620, 0x24ee2: 0x6cc45c20,
-	0x24ee4: 0x6ca2b020,
-	0x24efd: 0x6d1db820,
-	// Block 0x93c, offset 0x24f00
-	0x24f02: 0x6c279620,
-	0x24f0a: 0x6cb72220, 0x24f0b: 0x6c2e0220,
-	0x24f0c: 0x6ca87c20, 0x24f0d: 0x6cd6e420, 0x24f0f: 0x6cce8c20,
-	0x24f10: 0x6c7dc420, 0x24f11: 0x6cdc9020, 0x24f13: 0x6c30ca20,
-	0x24f14: 0x6c2ef220,
-	0x24f1c: 0x6c45ba20,
-	0x24f2f: 0x6d3bb020,
-	0x24f30: 0x6c4c8c20,
-	0x24f3c: 0x6d05fa20, 0x24f3d: 0x6cc1e820,
-	// Block 0x93d, offset 0x24f40
-	0x24f40: 0x6d0a4c20, 0x24f43: 0x6c689a20,
-	0x24f44: 0x6d30aa20, 0x24f46: 0x6c2d9220, 0x24f47: 0x6cca7620,
-	0x24f48: 0x6c080c20, 0x24f4a: 0x6cdda620, 0x24f4b: 0x6cba2e20,
-	0x24f4f: 0x6d05fc20,
-	0x24f51: 0x6d0a4e20,
-	0x24f54: 0x6ca17a20,
-	0x24f75: 0x6cdca820, 0x24f76: 0x6c7ea820, 0x24f77: 0x6d3a8a20,
-	0x24f78: 0x6d396420, 0x24f7a: 0x6c870820,
-	0x24f7c: 0x6c280e20, 0x24f7d: 0x6c717820, 0x24f7f: 0x6d286e20,
-	// Block 0x93e, offset 0x24f80
-	0x24f80: 0x6c15fc20, 0x24f81: 0x6c956020,
-	0x24f84: 0x6ccb8220, 0x24f86: 0x6c888620,
-	0x24f88: 0x6d414e20, 0x24f8b: 0x6c7f7020,
-	0x24f8c: 0x6cd6ec20, 0x24f8d: 0x6cbcfe20,
-	0x24f98: 0x6c30ce20,
-	0x24f9e: 0x6cf54a20, 0x24f9f: 0x6c9b9020,
-	0x24fa1: 0x6c62ce20,
-	0x24fa4: 0x6c1aee20, 0x24fa6: 0x6ca65c20,
-	0x24fb8: 0x6d116e20, 0x24fbb: 0x6c7ec020,
-	0x24fbe: 0x6c942020,
-	// Block 0x93f, offset 0x24fc0
-	0x24fc0: 0x6cdcbe20, 0x24fc1: 0x6c3dbe20,
-	0x24fc4: 0x6c830420, 0x24fc5: 0x6cf05820,
-	0x24fce: 0x6c237820,
-	0x24fd4: 0x6c877020, 0x24fd6: 0x6cb22820,
-	0x24fd8: 0x6c759020, 0x24fd9: 0x6c71e420, 0x24fdb: 0x6c7ecc20,
-	0x24fe7: 0x6c62f220,
-	0x24fea: 0x6c9f1a20,
-	0x24fec: 0x6d125020, 0x24fed: 0x6c0b2620,
-	0x24ff1: 0x6c23d420, 0x24ff2: 0x6cd85e20,
-	0x24ff5: 0x6cd86020,
-	0x24ff8: 0x6c51b020,
-	// Block 0x940, offset 0x25000
-	0x25003: 0x6ca48820,
-	0x25005: 0x6c2f2620,
-	0x25008: 0x6c180220, 0x25009: 0x6d282220, 0x2500b: 0x6d052220,
-	0x2500c: 0x6cd4c220, 0x2500e: 0x6c15b020, 0x2500f: 0x6c9f4c20,
-	0x25010: 0x6c87fe20, 0x25011: 0x6d19e620, 0x25012: 0x6d037620, 0x25013: 0x6cee9020,
-	0x25014: 0x6c479020, 0x25015: 0x6ce7f020, 0x25016: 0x6cddf620, 0x25017: 0x6c3a5e20,
-	0x25018: 0x6c265420, 0x25019: 0x6ca84620, 0x2501a: 0x6c244820, 0x2501b: 0x6d426e20,
-	0x2501c: 0x6c6b2020, 0x2501d: 0x6d08b020, 0x2501e: 0x6c0f5e20, 0x2501f: 0x6c6c5e20,
-	0x25020: 0x6d1b1220, 0x25021: 0x6d05f020, 0x25023: 0x6d20e420,
-	0x25024: 0x6d048c20, 0x25026: 0x6cb76c20, 0x25027: 0x6c069620,
-	0x25028: 0x6d03dc20, 0x25029: 0x6c45ec20,
-	0x2502c: 0x6d418c20,
-	0x25030: 0x6c6a1a20, 0x25032: 0x6c763020,
-	0x25035: 0x6d03f020, 0x25036: 0x6c06b220, 0x25037: 0x6cd4ee20,
-	0x25038: 0x6d23a020, 0x2503a: 0x6d38ee20, 0x2503b: 0x6d2e0420,
-	// Block 0x941, offset 0x25040
-	0x25042: 0x6d37c620,
-	0x25046: 0x6c140620,
-	0x25048: 0x6c20e020, 0x25049: 0x6c8f4220,
-	0x2504e: 0x6cdbdc20,
-	0x25050: 0x6d3a8620,
-	0x25059: 0x6c0bd220,
-	0x2505d: 0x6d035420, 0x2505f: 0x6d0bce20,
-	0x25062: 0x6c8daa20,
-	0x25067: 0x6d0bd220,
-	0x2506c: 0x6ce63020,
-	0x25079: 0x6c2b5a20,
-	// Block 0x942, offset 0x25080
-	0x25081: 0x6cafca20, 0x25082: 0x6c567620, 0x25083: 0x6c132a20,
-	0x2508a: 0x6ce45e20, 0x2508b: 0x6ca20220,
-	0x2508c: 0x6c731620, 0x2508e: 0x6ca20420,
-	0x25090: 0x6c723020, 0x25091: 0x6c8f0020, 0x25093: 0x6c8e0c20,
-	0x25097: 0x6c8f0220,
-	0x25098: 0x6c568820,
-	0x250a6: 0x6c3e3e20, 0x250a7: 0x6c553820,
-	0x250aa: 0x6c361820, 0x250ab: 0x6c458420,
-	0x250ac: 0x6c470a20,
-	0x250b1: 0x6c48b420,
-	0x250b9: 0x6c94a420, 0x250bb: 0x6c389a20,
-	0x250bc: 0x6c93e220, 0x250bd: 0x6c9b1820, 0x250be: 0x6c3e8a20, 0x250bf: 0x6c8e5e20,
-	// Block 0x943, offset 0x250c0
-	0x250c5: 0x6d00c220, 0x250c6: 0x6c471e20,
-	0x250c8: 0x6cfcda20, 0x250c9: 0x6c0f1a20, 0x250cb: 0x6c622220,
-	0x250d3: 0x6cc2a220,
-	0x250d4: 0x6c927220,
-	0x250de: 0x6cd79420,
-	0x250e1: 0x6ca20820, 0x250e2: 0x6d23a420, 0x250e3: 0x6c4eea20,
-	0x250e9: 0x6d26d020, 0x250ea: 0x6c289e20,
-	0x250ef: 0x6d218620,
-	0x250f0: 0x6c64de20, 0x250f3: 0x6c429020,
-	0x250ff: 0x6c129420,
-	// Block 0x944, offset 0x25100
-	0x25100: 0x6cd0c820, 0x25101: 0x6c8f1c20,
-	0x25106: 0x6c687e20,
-	0x25109: 0x6cdb2020, 0x2510a: 0x6cdb2220, 0x2510b: 0x6d383e20,
-	0x25112: 0x6c8aaa20,
-	0x25114: 0x6d085c20, 0x25115: 0x6c92ee20, 0x25117: 0x6c629e20,
-	0x2511a: 0x6d0cdc20,
-	0x2511f: 0x6c930820,
-	0x25121: 0x6c9fd220, 0x25122: 0x6ce39620,
-	0x25126: 0x6c595c20,
-	0x25129: 0x6d18ec20, 0x2512a: 0x6ce08220,
-	0x2512c: 0x6cf48820,
-	0x25130: 0x6c5f8020,
-	0x25137: 0x6c31e620,
-	0x25138: 0x6c7d9420, 0x2513a: 0x6c758e20,
-	0x2513f: 0x6cd21a20,
-	// Block 0x945, offset 0x25140
-	0x25140: 0x6ca44e20, 0x25141: 0x6cb3bc20,
-	0x25144: 0x6cd52020, 0x25145: 0x6cc37e20,
-	0x2514c: 0x6cc5bc20, 0x2514f: 0x6c3b6220,
-	0x25152: 0x6cde3a20, 0x25153: 0x6cea4820,
-	0x25155: 0x6d0f9c20,
-	0x25166: 0x6c342c20, 0x25167: 0x6c21fc20,
-	0x25169: 0x6c478020, 0x2516a: 0x6c3b6e20,
-	0x2516d: 0x6cc74620,
-	0x25171: 0x6c42c020, 0x25172: 0x6cfdbe20,
-	0x25174: 0x6cfdc020, 0x25175: 0x6c545420, 0x25177: 0x6ce1c420,
-	0x25178: 0x6ccd8420, 0x25179: 0x6d0fba20, 0x2517a: 0x6d3f5220,
-	0x2517c: 0x6d256a20,
-	// Block 0x946, offset 0x25180
-	0x25184: 0x6cda7420, 0x25187: 0x6c203820,
-	0x25188: 0x6cfdc820, 0x2518a: 0x6c048a20,
-	0x2518c: 0x6c97c020, 0x2518e: 0x6c3f6e20, 0x2518f: 0x6c7e6420,
-	0x25190: 0x6c851e20, 0x25192: 0x6c6af620, 0x25193: 0x6d1ea820,
-	0x25198: 0x6d23a620, 0x2519a: 0x6c1c4820,
-	0x2519c: 0x6c203a20, 0x2519d: 0x6d182e20, 0x2519e: 0x6ccd0020,
-	0x251a2: 0x6c609220, 0x251a3: 0x6d0c2820,
-	0x251a6: 0x6cf51820, 0x251a7: 0x6c215c20,
-	0x251a8: 0x6c987420,
-	0x251ad: 0x6c3ede20, 0x251ae: 0x6c637c20, 0x251af: 0x6c46d620,
-	0x251b0: 0x6c474420, 0x251b1: 0x6c63e420,
-	0x251b5: 0x6cfb9820, 0x251b7: 0x6c6d6020,
-	0x251b8: 0x6d3f6420, 0x251b9: 0x6c90bc20,
-	0x251bc: 0x6c46da20,
-	// Block 0x947, offset 0x251c0
-	0x251c0: 0x6cc57c20, 0x251c2: 0x6ccd1420,
-	0x251c5: 0x6c74da20, 0x251c6: 0x6ce79c20, 0x251c7: 0x6d1ffc20,
-	0x251d4: 0x6c651a20, 0x251d5: 0x6c31dc20, 0x251d7: 0x6c55f020,
-	0x251db: 0x6ccace20,
-	0x251dc: 0x6d246220,
-	0x251e2: 0x6c974e20,
-	0x251e4: 0x6d342620, 0x251e5: 0x6d0c4420, 0x251e6: 0x6c42f020,
-	0x251e8: 0x6c582020,
-	0x251ee: 0x6cc34420,
-	0x251f1: 0x6d103e20, 0x251f3: 0x6d418820,
-	0x251f7: 0x6cfe8e20,
-	0x251f8: 0x6d170620, 0x251f9: 0x6d0d5a20, 0x251fa: 0x6c531e20, 0x251fb: 0x6d20e620,
-	0x251ff: 0x6c1c0020,
-	// Block 0x948, offset 0x25200
-	0x25201: 0x6c1b1020,
-	0x25204: 0x6c4f6a20, 0x25205: 0x6ccb1e20, 0x25206: 0x6cabbe20, 0x25207: 0x6cde4020,
-	0x25208: 0x6c3b2620, 0x25209: 0x6c1aa020,
-	0x2520c: 0x6c533220, 0x2520d: 0x6d095220,
-	0x25216: 0x6d351e20,
-	0x2521b: 0x6cc19020,
-	0x25220: 0x6cf5fe20, 0x25221: 0x6c3e6220, 0x25223: 0x6cd4e020,
-	0x25224: 0x6c4d6a20, 0x25226: 0x6cb38c20,
-	0x25228: 0x6c229a20,
-	0x25230: 0x6c149a20, 0x25233: 0x6c52ae20,
-	0x25238: 0x6cad7a20, 0x25239: 0x6ccff820, 0x2523a: 0x6cfede20,
-	0x2523d: 0x6d07ac20, 0x2523e: 0x6c229e20, 0x2523f: 0x6ce68420,
-	// Block 0x949, offset 0x25240
-	0x25240: 0x6cb39620,
-	0x25247: 0x6cde7e20,
-	0x25248: 0x6c13a820, 0x2524b: 0x6d40ce20,
-	0x2524c: 0x6c5de820, 0x2524d: 0x6d071820, 0x2524e: 0x6d0e9820, 0x2524f: 0x6c149e20,
-	0x25251: 0x6ceb3420,
-	0x25258: 0x6cfb8420, 0x25259: 0x6d07c620, 0x2525a: 0x6c542a20, 0x2525b: 0x6c58de20,
-	0x2525c: 0x6c442620, 0x2525d: 0x6c1d3c20, 0x2525e: 0x6c0a3620, 0x2525f: 0x6c52bc20,
-	0x25260: 0x6c52be20, 0x25261: 0x6c1b4a20, 0x25263: 0x6c140820,
-	0x2526f: 0x6d2c8e20,
-	0x25271: 0x6d2d1e20, 0x25272: 0x6cdea220,
-	0x25275: 0x6cb3a220, 0x25276: 0x6cdea420,
-	0x25278: 0x6d1f6e20, 0x25279: 0x6c3ef420, 0x2527a: 0x6c220e20, 0x2527b: 0x6c26be20,
-	0x2527c: 0x6cde1a20, 0x2527e: 0x6c8ea020,
-	// Block 0x94a, offset 0x25280
-	0x25281: 0x6c221020, 0x25283: 0x6c52d420,
-	0x25285: 0x6c4f1a20, 0x25286: 0x6c7e5020,
-	0x25288: 0x6cd20420,
-	0x2528d: 0x6ce79e20, 0x2528e: 0x6c5c7020, 0x2528f: 0x6c518620,
-	0x25290: 0x6cb1d820, 0x25291: 0x6d243a20,
-	0x2529c: 0x6cfaf020, 0x2529d: 0x6c4e6c20, 0x2529f: 0x6cb3ac20,
-	0x252a6: 0x6c7ec220, 0x252a7: 0x6c5e5220,
-	0x252b0: 0x6cdf8420,
-	0x252b4: 0x6c819e20, 0x252b6: 0x6cd5b420,
-	0x252ba: 0x6c2a0a20, 0x252bb: 0x6c2d1020,
-	// Block 0x94b, offset 0x252c0
-	0x252c8: 0x6d04a820, 0x252cb: 0x6cee6020,
-	0x252cd: 0x6c17f820, 0x252ce: 0x6ca3ae20,
-	0x252d0: 0x6c73d420, 0x252d3: 0x6c375220,
-	0x252d4: 0x6c375a20, 0x252d5: 0x6caa6c20, 0x252d6: 0x6caa8820,
-	0x252dd: 0x6d3bae20,
-	0x252e2: 0x6cab2220,
-	0x252e4: 0x6c8ac220, 0x252e5: 0x6c82b420, 0x252e7: 0x6c032a20,
-	0x252ec: 0x6c196820, 0x252ef: 0x6c4a6a20,
-	0x252f0: 0x6cc2f820, 0x252f1: 0x6c448820, 0x252f3: 0x6c45ee20,
-	0x252f4: 0x6ccee020,
-	0x252f9: 0x6c7f2020, 0x252fa: 0x6d32e820, 0x252fb: 0x6d183020,
-	0x252fc: 0x6c4bda20, 0x252fd: 0x6ceea620, 0x252fe: 0x6c951e20,
-	// Block 0x94c, offset 0x25300
-	0x25302: 0x6cd28620, 0x25303: 0x6d1be820,
-	0x25304: 0x6cd14620, 0x25305: 0x6ce8ea20, 0x25306: 0x6c0a3820,
-	0x25308: 0x6d2aee20, 0x25309: 0x6d383a20, 0x2530b: 0x6cc72620,
-	0x2530c: 0x6cb64e20, 0x2530d: 0x6c405620, 0x2530e: 0x6c131820,
-	0x25313: 0x6c845c20,
-	0x25314: 0x6c978c20, 0x25316: 0x6c886620, 0x25317: 0x6c0c3020,
-	0x2531b: 0x6c207e20,
-	0x2531c: 0x6d18ee20,
-	0x25320: 0x6cac3620,
-	0x25325: 0x6d191420, 0x25326: 0x6c7b4820,
-	0x25329: 0x6c0c5220, 0x2532b: 0x6c1c9e20,
-	0x2532c: 0x6cc22020, 0x2532d: 0x6ca1ae20, 0x2532e: 0x6d301620, 0x2532f: 0x6ccc3c20,
-	0x25330: 0x6ccc3e20,
-	0x25337: 0x6d109620,
-	0x25338: 0x6c457420, 0x25339: 0x6ca3b620,
-	0x2533c: 0x6d018420, 0x2533f: 0x6ce53220,
-	// Block 0x94d, offset 0x25340
-	0x25346: 0x6d127820,
-	0x25349: 0x6ccbe220,
-	0x2534f: 0x6ccaec20,
-	0x25352: 0x6c2cc620, 0x25353: 0x6d06c220,
-	0x25359: 0x6cc19220,
-	0x25360: 0x6c52b020, 0x25361: 0x6cd16620, 0x25362: 0x6ce6ec20,
-	0x25370: 0x6c352e20,
-	0x25375: 0x6c89ea20, 0x25377: 0x6c53c220,
-	0x25378: 0x6c852020, 0x2537a: 0x6cfdee20,
-	0x2537d: 0x6cd0b620,
-	// Block 0x94e, offset 0x25380
-	0x25380: 0x6c3d8220,
-	0x25388: 0x6d0dc020, 0x25389: 0x6cee3220, 0x2538a: 0x6cb51620, 0x2538b: 0x6c34a620,
-	0x2538d: 0x6c57b220, 0x2538e: 0x6cb90c20,
-	0x25390: 0x6d01e020,
-	0x2539d: 0x6c22d620, 0x2539e: 0x6cd11020,
-	0x253a2: 0x6c37dc20,
-	0x253a4: 0x6d039a20, 0x253a6: 0x6cea0e20, 0x253a7: 0x6d0ea220,
-	0x253a9: 0x6c8b2820,
-	0x253ac: 0x6c9c6e20,
-	0x253b8: 0x6d402c20, 0x253ba: 0x6d3e8020,
-	0x253bc: 0x6c55ba20, 0x253bd: 0x6d1c9e20, 0x253be: 0x6c885620, 0x253bf: 0x6c266a20,
-	// Block 0x94f, offset 0x253c0
-	0x253c0: 0x6ce4c420, 0x253c1: 0x6ce53e20,
-	0x253cb: 0x6cc6b020,
-	0x253cd: 0x6c00d020,
-	0x253d0: 0x6c00e420, 0x253d1: 0x6d309e20, 0x253d2: 0x6c4c4620, 0x253d3: 0x6c92f020,
-	0x253d4: 0x6d2f7a20, 0x253d5: 0x6c9c8220, 0x253d6: 0x6c8a2a20, 0x253d7: 0x6d30a020,
-	0x253db: 0x6cc25020,
-	0x253dc: 0x6c236820, 0x253df: 0x6ce65020,
-	0x253e1: 0x6ce02c20, 0x253e2: 0x6d2e2820, 0x253e3: 0x6c55e020,
-	0x253e5: 0x6cb1da20, 0x253e7: 0x6c267020,
-	0x253e8: 0x6cc6d220,
-	0x253ee: 0x6ca52020,
-	0x253f3: 0x6ca45a20,
-	0x253f4: 0x6c291a20, 0x253f5: 0x6c695c20,
-	0x253fb: 0x6c72b620,
-	0x253fc: 0x6c37ac20,
-	// Block 0x950, offset 0x25400
-	0x2540a: 0x6c877420,
-	0x2540c: 0x6c4c4e20, 0x2540d: 0x6cec7e20,
-	0x25412: 0x6ca7ee20,
-	0x25414: 0x6c6c3420,
-	0x25429: 0x6cb04a20, 0x2542a: 0x6c1bde20,
-	0x25432: 0x6cb04c20, 0x25433: 0x6d166e20,
-	0x25434: 0x6c316220, 0x25435: 0x6cec1420, 0x25436: 0x6d099020,
-	0x25438: 0x6cb73c20, 0x25439: 0x6ccd6c20,
-	0x2543c: 0x6d056a20, 0x2543f: 0x6c509020,
-	// Block 0x951, offset 0x25440
-	0x25440: 0x6caca620, 0x25442: 0x6cadb420,
-	0x25444: 0x6d045a20, 0x25446: 0x6c1b7e20, 0x25447: 0x6cdf9020,
-	0x25448: 0x6d41a620, 0x25449: 0x6d414820, 0x2544a: 0x6cb74c20, 0x2544b: 0x6c316420,
-	0x25459: 0x6cd70c20,
-	0x2545c: 0x6ca2f220, 0x2545d: 0x6cf59620,
-	0x25467: 0x6c179420,
-	0x25468: 0x6d16d020, 0x2546b: 0x6d329e20,
-	0x2546e: 0x6c70fe20, 0x2546f: 0x6c274c20,
-	0x25471: 0x6cc9fc20,
-	0x25474: 0x6d3ac820, 0x25475: 0x6ced7620,
-	0x25478: 0x6cc9fe20, 0x25479: 0x6c04f220, 0x2547a: 0x6c643c20, 0x2547b: 0x6c972c20,
-	// Block 0x952, offset 0x25480
-	0x25488: 0x6ceb9c20, 0x2548a: 0x6cb76020,
-	0x2548f: 0x6d3c0c20,
-	0x25490: 0x6ceb0220, 0x25493: 0x6cb28c20,
-	0x2549d: 0x6cae6220, 0x2549e: 0x6c7b9a20, 0x2549f: 0x6d14d820,
-	0x254a1: 0x6d018620, 0x254a2: 0x6d264c20, 0x254a3: 0x6c523020,
-	0x254a5: 0x6c53f220, 0x254a6: 0x6d32a420, 0x254a7: 0x6c217420,
-	0x254a8: 0x6cd35e20, 0x254a9: 0x6cec1c20, 0x254ab: 0x6d009620,
-	0x254b8: 0x6c452a20,
-	// Block 0x953, offset 0x254c0
-	0x254c5: 0x6c35fe20,
-	0x254cf: 0x6c7a7220,
-	0x254d0: 0x6ca32c20, 0x254d3: 0x6c707420,
-	0x254d4: 0x6d088e20, 0x254d5: 0x6cc0fe20, 0x254d6: 0x6c181c20, 0x254d7: 0x6c939620,
-	0x254d8: 0x6c511420, 0x254d9: 0x6cd16020, 0x254da: 0x6ca44620,
-	0x254dc: 0x6c511620, 0x254dd: 0x6c13de20, 0x254de: 0x6d0bfe20, 0x254df: 0x6c450a20,
-	0x254e0: 0x6ca81e20, 0x254e2: 0x6c4c6a20, 0x254e3: 0x6d0c8c20,
-	0x254e4: 0x6c494e20, 0x254e7: 0x6d360420,
-	0x254e8: 0x6c81f420,
-	0x254ef: 0x6c321820,
-	0x254f0: 0x6cb78220, 0x254f1: 0x6cc10020, 0x254f2: 0x6c742e20,
-	// Block 0x954, offset 0x25500
-	0x25501: 0x6c3c4220, 0x25503: 0x6d06c420,
-	0x25504: 0x6ce9fc20, 0x25506: 0x6c4e1820, 0x25507: 0x6c7a4220,
-	0x2550a: 0x6ccff020, 0x2550b: 0x6d363e20,
-	0x2550d: 0x6cad2c20, 0x2550e: 0x6d32cc20, 0x2550f: 0x6c861820,
-	0x25510: 0x6ced2620, 0x25512: 0x6c391020, 0x25513: 0x6d033a20,
-	0x25516: 0x6d0bb620,
-	0x2551b: 0x6c709820,
-	0x2551c: 0x6cd0a620,
-	0x2552d: 0x6c989020, 0x2552f: 0x6cea7e20,
-	0x25530: 0x6d3d6620, 0x25531: 0x6cf62820, 0x25532: 0x6d1b5820, 0x25533: 0x6c6db620,
-	0x25534: 0x6cea5420, 0x25537: 0x6c453220,
-	0x25538: 0x6c620a20,
-	// Block 0x955, offset 0x25540
-	0x2554f: 0x6d3ba820,
-	0x25552: 0x6ce5f220,
-	0x25554: 0x6d33e220, 0x25556: 0x6c604420,
-	0x2555a: 0x6d1c8220, 0x2555b: 0x6cf0aa20,
-	0x2555d: 0x6c593c20, 0x2555e: 0x6ce68620, 0x2555f: 0x6c150620,
-	0x25562: 0x6c7c8e20, 0x25563: 0x6cb86e20,
-	0x25564: 0x6c04fc20, 0x25565: 0x6c13a420, 0x25566: 0x6ceb8420, 0x25567: 0x6ca43020,
-	0x25568: 0x6c6a2420, 0x2556a: 0x6d0c1620,
-	0x2556c: 0x6ce8ca20, 0x2556e: 0x6cf1e620,
-	0x25570: 0x6c232020, 0x25573: 0x6d06fc20,
-	0x25574: 0x6d1b6020, 0x25577: 0x6c084420,
-	0x2557c: 0x6c935820,
-	// Block 0x956, offset 0x25580
-	0x25581: 0x6d290620, 0x25582: 0x6c265820,
-	0x25586: 0x6ca84820, 0x25587: 0x6c71c220,
-	0x25588: 0x6c541620,
-	0x2558c: 0x6c453a20,
-	0x25595: 0x6c541820, 0x25596: 0x6c76b220, 0x25597: 0x6c459620,
-	0x25599: 0x6c5b5e20, 0x2559a: 0x6d01e220,
-	0x2559d: 0x6cf8ba20, 0x2559e: 0x6c4e2420, 0x2559f: 0x6c9c6820,
-	0x255a1: 0x6cf25c20, 0x255a2: 0x6c5d3620, 0x255a3: 0x6ccabc20,
-	0x255a4: 0x6d034220, 0x255a5: 0x6d307220, 0x255a6: 0x6c5dea20,
-	0x255a8: 0x6c45a020, 0x255ab: 0x6cc9e420,
-	0x255ac: 0x6c6c4a20, 0x255ad: 0x6cebec20,
-	0x255b1: 0x6c332420, 0x255b2: 0x6c1aca20,
-	0x255bd: 0x6cf67e20,
-	// Block 0x957, offset 0x255c0
-	0x255c2: 0x6c9c6a20, 0x255c3: 0x6d29e020,
-	0x255c4: 0x6cca8420,
-	0x255d3: 0x6cea5e20,
-	0x255d4: 0x6d366820, 0x255d5: 0x6cf1ea20,
-	0x255d8: 0x6d1a9820, 0x255d9: 0x6cea8220, 0x255db: 0x6c1cda20,
-	0x255dc: 0x6d2af020, 0x255de: 0x6cff0a20, 0x255df: 0x6ca07420,
-	0x255e0: 0x6c245820, 0x255e3: 0x6c0b4e20,
-	0x255e4: 0x6d04f020, 0x255e7: 0x6d154c20,
-	0x255ee: 0x6c5a6020,
-	0x255f0: 0x6d2bf820, 0x255f1: 0x6cdd3620, 0x255f2: 0x6c5cfe20, 0x255f3: 0x6c727e20,
-	// Block 0x958, offset 0x25600
-	0x25601: 0x6c245a20,
-	0x25604: 0x6c5f4020, 0x25605: 0x6d0a4420, 0x25606: 0x6cdcfe20, 0x25607: 0x6c135e20,
-	0x25609: 0x6d18b020,
-	0x2560e: 0x6c0c2220,
-	0x25612: 0x6c74c220, 0x25613: 0x6c868220,
-	0x25616: 0x6cad9a20,
-	0x2561b: 0x6d289c20,
-	0x2561c: 0x6d134220, 0x2561e: 0x6c0a5a20, 0x2561f: 0x6d310020,
-	0x25620: 0x6d310220, 0x25622: 0x6c702420, 0x25623: 0x6d309020,
-	0x25626: 0x6cd60e20,
-	0x2562a: 0x6cf6d620,
-	0x25637: 0x6d065820,
-	0x25638: 0x6ca3a620, 0x25639: 0x6cfb9a20, 0x2563a: 0x6c4bec20, 0x2563b: 0x6cf0d220,
-	0x2563e: 0x6c60c420, 0x2563f: 0x6cc9a220,
-	// Block 0x959, offset 0x25640
-	0x25642: 0x6c304220, 0x25643: 0x6caac820,
-	0x25644: 0x6c327a20, 0x25645: 0x6d32fc20, 0x25646: 0x6c7a6420,
-	0x25649: 0x6ca01c20,
-	0x25655: 0x6c05d820, 0x25656: 0x6c5c5020,
-	0x25659: 0x6d3fc620,
-	0x25668: 0x6cca5c20, 0x2566a: 0x6ce29420, 0x2566b: 0x6d157220,
-	0x2566d: 0x6d241620,
-	0x25671: 0x6d123220, 0x25672: 0x6ca94a20,
-	0x25674: 0x6c1dfa20, 0x25675: 0x6c5d4820, 0x25677: 0x6c337620,
-	0x25679: 0x6cb7f220, 0x2567a: 0x6d1d1820, 0x2567b: 0x6c0e3420,
-	0x2567c: 0x6ca92e20, 0x2567d: 0x6c5a1a20,
-	// Block 0x95a, offset 0x25680
-	0x25686: 0x6d1d1a20,
-	0x2568a: 0x6c05da20,
-	0x2568e: 0x6c4a2820, 0x2568f: 0x6c82f620,
-	0x25690: 0x6d421020,
-	0x25699: 0x6c15fe20,
-	0x256a3: 0x6c660a20,
-	0x256a7: 0x6c9b9220,
-	0x256a9: 0x6d002820,
-	0x256af: 0x6d035620,
-	0x256b1: 0x6c849e20,
-	0x256ba: 0x6cbc2e20,
-	0x256bf: 0x6cf05c20,
-	// Block 0x95b, offset 0x256c0
-	0x256c0: 0x6ca37620, 0x256c2: 0x6cacee20,
-	0x256c4: 0x6c829020, 0x256c7: 0x6c958220,
-	0x256cb: 0x6c946220,
-	0x256cd: 0x6c44ea20, 0x256cf: 0x6c946420,
-	0x256d2: 0x6cc22220,
-	0x256d6: 0x6c959020,
-	0x256d8: 0x6ca46820, 0x256db: 0x6c959220,
-	0x256dc: 0x6d273e20,
-	0x256e2: 0x6cd71a20,
-	0x256e5: 0x6c9d3e20, 0x256e6: 0x6cede820, 0x256e7: 0x6c12f420,
-	0x256e8: 0x6c64a620, 0x256e9: 0x6cee2020,
-	0x256ef: 0x6c637e20,
-	0x256f4: 0x6c58c020,
-	0x256f8: 0x6c894220, 0x256f9: 0x6d3f2c20, 0x256fa: 0x6c040a20, 0x256fb: 0x6cd43c20,
-	0x256fe: 0x6cecf220,
-	// Block 0x95c, offset 0x25700
-	0x25702: 0x6cd4c420,
-	0x25707: 0x6c4a4e20,
-	0x25708: 0x6cf5cc20, 0x2570a: 0x6cc79c20, 0x2570b: 0x6d11fe20,
-	0x2570e: 0x6c42c220,
-	0x25715: 0x6d26d220,
-	0x25718: 0x6d1da820, 0x25719: 0x6cec3c20, 0x2571a: 0x6c0f4620,
-	0x2571f: 0x6d034e20,
-	0x25722: 0x6cb0c620, 0x25723: 0x6c0f7820,
-	0x25726: 0x6c4d7e20, 0x25727: 0x6d2d5220,
-	0x25728: 0x6cf33020, 0x2572a: 0x6d138420, 0x2572b: 0x6c0ab820,
-	0x2572c: 0x6c4d8620,
-	0x25738: 0x6c1c0220, 0x2573b: 0x6d360620,
-	0x2573d: 0x6ca5dc20,
-	// Block 0x95d, offset 0x25740
-	0x25741: 0x6cf3d420, 0x25742: 0x6c006e20,
-	0x25748: 0x6c006a20, 0x25749: 0x6d229220, 0x2574a: 0x6c1c7020,
-	0x2574d: 0x6c6eac20, 0x2574e: 0x6d371020, 0x2574f: 0x6d372c20,
-	0x25750: 0x6d372e20, 0x25751: 0x6c70ee20,
-	0x25756: 0x6c4dd820,
-	0x2575a: 0x6cb24c20,
-	0x2575d: 0x6d11a620,
-	0x25763: 0x6d1f1e20,
-	0x25764: 0x6cb25420, 0x25766: 0x6ca11020,
-	0x2576c: 0x6d429e20, 0x2576d: 0x6cb38e20, 0x2576f: 0x6d091220,
-	0x25770: 0x6c7bc420, 0x25771: 0x6d17bc20, 0x25772: 0x6cb39020,
-	0x2577b: 0x6d3c9c20,
-	// Block 0x95e, offset 0x25780
-	0x25783: 0x6ca5fa20,
-	0x25784: 0x6cc0b020, 0x25785: 0x6c23f820,
-	0x2578c: 0x6d11cc20,
-	0x25791: 0x6c3b9820,
-	0x25795: 0x6cf9f420, 0x25797: 0x6c677c20,
-	0x25798: 0x6c13b220, 0x2579b: 0x6d000e20,
-	0x2579c: 0x6c13b420,
-	0x257a2: 0x6c1a5020, 0x257a3: 0x6c257e20,
-	0x257a7: 0x6cbf7c20,
-	0x257a9: 0x6d245220, 0x257ab: 0x6d21d820,
-	0x257af: 0x6cf21620,
-	0x257b1: 0x6c13c020, 0x257b2: 0x6d22ae20,
-	0x257b9: 0x6d425420, 0x257ba: 0x6c29fc20,
-	0x257bd: 0x6c73a820, 0x257be: 0x6c29fe20, 0x257bf: 0x6d1c4c20,
-	// Block 0x95f, offset 0x257c0
-	0x257c1: 0x6c3cd420,
-	0x257c5: 0x6cf27a20,
-	0x257c8: 0x6c6cf620, 0x257c9: 0x6cb76e20, 0x257cb: 0x6cbe0e20,
-	0x257cd: 0x6c7dee20, 0x257cf: 0x6cdf9e20,
-	0x257d0: 0x6cfa9420, 0x257d2: 0x6ce46420,
-	0x257d4: 0x6c7df620, 0x257d6: 0x6ce53a20,
-	0x257d8: 0x6c556420, 0x257d9: 0x6d39aa20, 0x257da: 0x6d2d7620, 0x257db: 0x6cde5820,
-	0x257dd: 0x6ce46e20, 0x257de: 0x6cde6820, 0x257df: 0x6cde8020,
-	0x257e0: 0x6c574820, 0x257e1: 0x6d0dc220, 0x257e2: 0x6ce61620,
-	0x257e4: 0x6ce61820, 0x257e5: 0x6cde8220,
-	0x257ec: 0x6c581020, 0x257ee: 0x6c63e620, 0x257ef: 0x6cb7e020,
-	0x257f1: 0x6cdeae20,
-	0x257f4: 0x6cdfc220, 0x257f5: 0x6c57ce20,
-	0x257f8: 0x6d3bf620, 0x257f9: 0x6c572220,
-	0x257fc: 0x6c800c20,
-	// Block 0x960, offset 0x25800
-	0x25806: 0x6d420420, 0x25807: 0x6d169820,
-	0x25808: 0x6c3dfe20, 0x25809: 0x6cf4bc20, 0x2580b: 0x6c3e0020,
-	0x2580d: 0x6c2f5620, 0x2580e: 0x6cde3c20,
-	0x25816: 0x6c17b820,
-	0x25819: 0x6cc64220, 0x2581a: 0x6cc35620,
-	0x2581c: 0x6c438420,
-	0x25821: 0x6c3e6620, 0x25822: 0x6c2c4c20, 0x25823: 0x6c2dc620,
-	0x25824: 0x6d1e3020, 0x25826: 0x6c643e20,
-	0x25829: 0x6c8f8e20,
-	0x2582c: 0x6d1e3220, 0x2582d: 0x6cafe020, 0x2582f: 0x6c5d7820,
-	0x25830: 0x6cbf3020, 0x25832: 0x6c38a020, 0x25833: 0x6cf3d620,
-	0x25834: 0x6ce74e20, 0x25835: 0x6c4f7e20,
-	0x25838: 0x6cdfac20,
-	0x2583e: 0x6c525020,
-	// Block 0x961, offset 0x25840
-	0x25844: 0x6ce56220,
-	0x25848: 0x6d388e20, 0x2584b: 0x6c045420,
-	0x2584c: 0x6d01e420, 0x2584d: 0x6c29c620, 0x2584f: 0x6c6c4c20,
-	0x25855: 0x6c54ec20, 0x25856: 0x6c06b620,
-	0x25858: 0x6c2fb220,
-	0x2585c: 0x6caac420, 0x2585d: 0x6cf0c620, 0x2585e: 0x6d218c20,
-	0x25860: 0x6d039c20, 0x25861: 0x6c3ee020, 0x25862: 0x6cfd0020, 0x25863: 0x6cb7c420,
-	0x25864: 0x6ce87820, 0x25867: 0x6c609420,
-	0x25869: 0x6d1d4620, 0x2586b: 0x6c2ae420,
-	0x2586c: 0x6ceeb020, 0x2586d: 0x6cf6ae20, 0x2586f: 0x6cac0220,
-	0x25871: 0x6cd12020, 0x25872: 0x6d1fec20,
-	0x25874: 0x6c005220, 0x25875: 0x6c66d220, 0x25877: 0x6c466020,
-	0x25878: 0x6cc93020,
-	0x2587c: 0x6c462220, 0x2587f: 0x6ccc6e20,
-	// Block 0x962, offset 0x25880
-	0x25880: 0x6ce13a20,
-	0x25887: 0x6c92f220,
-	0x25888: 0x6c027820, 0x2588a: 0x6cb7ee20, 0x2588b: 0x6d04fc20,
-	0x2588d: 0x6c271020,
-	0x25891: 0x6c382a20, 0x25892: 0x6cf0f420,
-	0x25894: 0x6c341020, 0x25895: 0x6c8a3a20, 0x25896: 0x6c386620, 0x25897: 0x6c5a1c20,
-	0x25898: 0x6c74dc20, 0x25899: 0x6cdec020, 0x2589a: 0x6d422020, 0x2589b: 0x6cc53020,
-	0x2589c: 0x6c117a20, 0x2589d: 0x6ce2c020,
-	0x258a0: 0x6c57d020, 0x258a1: 0x6d05fe20, 0x258a3: 0x6d2dae20,
-	0x258a7: 0x6c41f420,
-	0x258aa: 0x6caeea20, 0x258ab: 0x6c118020,
-	0x258ac: 0x6d005820, 0x258ad: 0x6c26d020,
-	0x258b1: 0x6c62d020,
-	0x258b6: 0x6c854820,
-	0x258b9: 0x6cac9020,
-	0x258bd: 0x6c8ffa20, 0x258be: 0x6c877620, 0x258bf: 0x6cf7c220,
-	// Block 0x963, offset 0x258c0
-	0x258c0: 0x6ce2d620, 0x258c3: 0x6c8dac20,
-	0x258c8: 0x6c855820, 0x258c9: 0x6cc4a220, 0x258ca: 0x6c8df420,
-	0x258ce: 0x6c4bca20,
-	0x258d4: 0x6cb30a20, 0x258d5: 0x6ca11220, 0x258d6: 0x6cabf020,
-	0x258d9: 0x6c03b420,
-	0x258e1: 0x6cb62820,
-	0x258e4: 0x6d0cc420,
-	0x258ea: 0x6cec3e20, 0x258eb: 0x6c020c20,
-	0x258ed: 0x6ca04a20, 0x258ee: 0x6c9fca20, 0x258ef: 0x6d0ab220,
-	0x258f0: 0x6c9b9420, 0x258f3: 0x6c48d620,
-	0x258f6: 0x6c682420,
-	0x258fb: 0x6c410a20,
-	// Block 0x964, offset 0x25900
-	0x25901: 0x6c110a20, 0x25902: 0x6cf4ac20, 0x25903: 0x6d301820,
-	0x25904: 0x6cc58820, 0x25905: 0x6c79b420,
-	0x25914: 0x6d2f8a20, 0x25915: 0x6d37a220, 0x25916: 0x6cc00a20, 0x25917: 0x6c4c1420,
-	0x25918: 0x6c456a20, 0x25919: 0x6cb40220, 0x2591a: 0x6c566c20, 0x2591b: 0x6c9e0820,
-	0x2591e: 0x6ce45a20,
-	0x25923: 0x6cee0020,
-	0x25938: 0x6d3a0020, 0x25939: 0x6c268a20, 0x2593a: 0x6d048e20, 0x2593b: 0x6ca2d420,
-	0x2593e: 0x6c72de20,
-	// Block 0x965, offset 0x25940
-	0x25941: 0x6ca71a20,
-	0x25948: 0x6c567820, 0x25949: 0x6ccbd420,
-	0x2595c: 0x6d33b820, 0x2595f: 0x6cdde420,
-	0x25961: 0x6cd7d820,
-	0x25965: 0x6d170820,
-	0x2596d: 0x6cbf1020, 0x2596e: 0x6d35c820, 0x2596f: 0x6c939220,
-	0x25970: 0x6cc79e20, 0x25972: 0x6cb5ac20, 0x25973: 0x6d224020,
-	0x25974: 0x6d386a20, 0x25975: 0x6d0fa620, 0x25976: 0x6cfc0420, 0x25977: 0x6ca1cc20,
-	0x25978: 0x6c1d9a20, 0x25979: 0x6c5aa820, 0x2597a: 0x6c6f6420, 0x2597b: 0x6c6fec20,
-	0x2597c: 0x6cb19220,
-	// Block 0x966, offset 0x25980
-	0x25981: 0x6c699220, 0x25983: 0x6c48c620,
-	0x25985: 0x6ca0fe20,
-	0x25990: 0x6cf5ce20, 0x25991: 0x6cb43220,
-	0x259af: 0x6c61d420,
-	0x259b6: 0x6cf1da20, 0x259b7: 0x6c071620,
-	0x259b8: 0x6d15ea20, 0x259b9: 0x6c3e6a20, 0x259ba: 0x6cd7e420, 0x259bb: 0x6c72f020,
-	0x259bc: 0x6c61f620, 0x259be: 0x6ca69a20,
-	// Block 0x967, offset 0x259c0
-	0x259c0: 0x6c07b620,
-	0x259c5: 0x6d06c620,
-	0x259c8: 0x6cbdd220, 0x259c9: 0x6c0ef820,
-	0x259cc: 0x6cede620, 0x259cd: 0x6d30f620, 0x259cf: 0x6cf2e620,
-	0x259d0: 0x6ccea420, 0x259d1: 0x6d2a8020, 0x259d2: 0x6d101820,
-	0x259d5: 0x6cd98a20, 0x259d6: 0x6ca82020,
-	0x259db: 0x6c098620,
-	0x259e3: 0x6c242420,
-	0x259e4: 0x6cbab220,
-	0x259ea: 0x6cffe620, 0x259eb: 0x6d33d620,
-	0x259ec: 0x6ccf1020, 0x259ef: 0x6d360820,
-	0x259f0: 0x6cae7020,
-	// Block 0x968, offset 0x25a00
-	0x25a0f: 0x6c2e1e20,
-	0x25a16: 0x6cf2f820,
-	0x25a18: 0x6d352020, 0x25a19: 0x6c098820, 0x25a1b: 0x6c3b7020,
-	0x25a25: 0x6c052a20,
-	0x25a2a: 0x6cc06c20, 0x25a2b: 0x6ca63a20,
-	0x25a2c: 0x6c0f0620, 0x25a2d: 0x6c33f220, 0x25a2f: 0x6cd2d020,
-	0x25a30: 0x6d05a220, 0x25a31: 0x6c16ac20, 0x25a32: 0x6d05a420, 0x25a33: 0x6d128020,
-	0x25a34: 0x6c9c5620,
-	0x25a38: 0x6d02d620, 0x25a39: 0x6d3d6820, 0x25a3a: 0x6c3ff620,
-	0x25a3d: 0x6cb06020, 0x25a3e: 0x6d095e20,
-	// Block 0x969, offset 0x25a40
-	0x25a40: 0x6d235020, 0x25a41: 0x6cfb6020, 0x25a42: 0x6d235220, 0x25a43: 0x6d213420,
-	0x25a45: 0x6c709a20, 0x25a46: 0x6cddec20, 0x25a47: 0x6c797c20,
-	0x25a4a: 0x6d32ce20, 0x25a4b: 0x6c9b1a20,
-	0x25a4c: 0x6c428420,
-	0x25a52: 0x6ca28a20, 0x25a53: 0x6cf7ea20,
-	0x25a54: 0x6c09aa20, 0x25a56: 0x6c3ff820,
-	0x25a5c: 0x6cfff420,
-	0x25a60: 0x6c6f7620, 0x25a63: 0x6c468820,
-	0x25a70: 0x6c1b2820, 0x25a71: 0x6c6f7820, 0x25a72: 0x6c6f7a20,
-	0x25a75: 0x6ccbf820, 0x25a77: 0x6c3a0820,
-	// Block 0x96a, offset 0x25a80
-	0x25aab: 0x6c3e8c20,
-	0x25aaf: 0x6ced8a20,
-	0x25ab0: 0x6d05a620, 0x25ab1: 0x6c0e7620,
-	// Block 0x96b, offset 0x25ac0
-	0x25ac1: 0x6c504820, 0x25ac3: 0x6d00c420,
-	0x25ac4: 0x6cb11820, 0x25ac5: 0x6d227420, 0x25ac7: 0x6ce4ae20,
-	0x25ac8: 0x6cb00020, 0x25aca: 0x6cd2d220, 0x25acb: 0x6c7afc20,
-	0x25acc: 0x6c5ef020, 0x25acf: 0x6d2be420,
-	0x25ad0: 0x6ca3cc20, 0x25ad1: 0x6ca20620, 0x25ad3: 0x6c3ea620,
-	0x25ad4: 0x6c326820, 0x25ad7: 0x6cd13e20,
-	0x25ad8: 0x6c13ee20, 0x25ada: 0x6c1b3820, 0x25adb: 0x6c4b0820,
-	0x25adc: 0x6c9f6620, 0x25add: 0x6ce0c220, 0x25ade: 0x6c044c20, 0x25adf: 0x6cbac220,
-	0x25ae1: 0x6d3d7420, 0x25ae2: 0x6cf0ac20, 0x25ae3: 0x6d0a1e20,
-	0x25ae5: 0x6c9e9620, 0x25ae6: 0x6d290820, 0x25ae7: 0x6d1f4a20,
-	0x25ae9: 0x6d204c20, 0x25aeb: 0x6cccee20,
-	0x25aec: 0x6c514220, 0x25aed: 0x6c93a220, 0x25aee: 0x6d347820,
-	0x25af2: 0x6c6e9020, 0x25af3: 0x6d317020,
-	0x25af6: 0x6c9b2620, 0x25af7: 0x6d1f4c20,
-	0x25af9: 0x6cf30020, 0x25afa: 0x6c038620,
-	0x25afd: 0x6c737820, 0x25afe: 0x6cc7b220, 0x25aff: 0x6c23f220,
-	// Block 0x96c, offset 0x25b00
-	0x25b00: 0x6d33fc20,
-	0x25b09: 0x6c557620, 0x25b0a: 0x6d0f5c20,
-	0x25b0c: 0x6c75d020, 0x25b0d: 0x6ccf1c20, 0x25b0e: 0x6c79f220,
-	0x25b11: 0x6cb9a820,
-	0x25b14: 0x6c9b2820,
-	0x25b1a: 0x6ce58c20,
-	// Block 0x96d, offset 0x25b40
-	0x25b50: 0x6ca84a20,
-	0x25b5f: 0x6c1b3a20,
-	0x25b61: 0x6d047220, 0x25b63: 0x6c5d3820,
-	0x25b66: 0x6c2b8020, 0x25b67: 0x6c80d620,
-	0x25b69: 0x6d2a1a20, 0x25b6a: 0x6c130a20, 0x25b6b: 0x6cdd8420,
-	0x25b6c: 0x6d412c20, 0x25b6d: 0x6cdbd020, 0x25b6f: 0x6cf9e020,
-	0x25b71: 0x6d01e620,
-	0x25b74: 0x6c6b1220, 0x25b75: 0x6d1f5820, 0x25b77: 0x6c46ca20,
-	0x25b78: 0x6c451620,
-	0x25b7c: 0x6c75d820, 0x25b7d: 0x6c5a5e20, 0x25b7e: 0x6c607420, 0x25b7f: 0x6cb3ca20,
-	// Block 0x96e, offset 0x25b80
-	0x25b80: 0x6cf37820, 0x25b82: 0x6d183420,
-	0x25b85: 0x6ca3a420, 0x25b87: 0x6cc71820,
-	0x25b88: 0x6ca40820, 0x25b8a: 0x6cb2c020, 0x25b8b: 0x6ccd9420,
-	0x25b8c: 0x6c2dd820, 0x25b8d: 0x6c607620, 0x25b8e: 0x6c571420, 0x25b8f: 0x6c335620,
-	0x25b90: 0x6c79a020, 0x25b91: 0x6cde8620, 0x25b93: 0x6c53c620,
-	0x25b95: 0x6cd4f820,
-	0x25b99: 0x6c526a20, 0x25b9a: 0x6c3bc020,
-	0x25bb2: 0x6c79fa20,
-	// Block 0x96f, offset 0x25bc0
-	0x25bd9: 0x6ca70220,
-	0x25bdd: 0x6c1e9e20,
-	0x25be6: 0x6cbb5a20,
-	0x25bf2: 0x6cf8bc20, 0x25bf3: 0x6c558020,
-	0x25bf4: 0x6cd99620, 0x25bf5: 0x6cf30a20, 0x25bf7: 0x6c4d7620,
-	0x25bf8: 0x6cc7b820, 0x25bf9: 0x6c9b3020, 0x25bfb: 0x6cca2420,
-	0x25bfd: 0x6cf3de20, 0x25bff: 0x6d1f6420,
-	// Block 0x970, offset 0x25c00
-	0x25c01: 0x6cdfba20, 0x25c02: 0x6cd01220,
-	0x25c06: 0x6cb71220,
-	0x25c08: 0x6c4c8420, 0x25c09: 0x6cb87420, 0x25c0a: 0x6cfad020,
-	0x25c0f: 0x6cdbd620,
-	0x25c10: 0x6c92b020, 0x25c13: 0x6cb52620,
-	0x25c14: 0x6c2ddc20, 0x25c17: 0x6cb64020,
-	0x25c18: 0x6c63dc20, 0x25c19: 0x6d1f6620, 0x25c1a: 0x6cf79e20, 0x25c1b: 0x6c177a20,
-	0x25c21: 0x6c9d7e20, 0x25c22: 0x6c911820, 0x25c23: 0x6c08f220,
-	0x25c2a: 0x6cadec20,
-	0x25c2e: 0x6d318e20, 0x25c2f: 0x6cd01420,
-	0x25c30: 0x6c15da20, 0x25c31: 0x6c403a20,
-	0x25c36: 0x6cc13820, 0x25c37: 0x6cd82220,
-	0x25c3a: 0x6d417a20,
-	// Block 0x971, offset 0x25c40
-	0x25c6b: 0x6d2fd620,
-	0x25c7d: 0x6cb01220,
-	// Block 0x972, offset 0x25c80
-	0x25c80: 0x6c23fa20,
-	0x25c86: 0x6c42e220, 0x25c87: 0x6c31b620,
-	0x25c89: 0x6c3da420, 0x25c8a: 0x6c492620, 0x25c8b: 0x6ccae620,
-	0x25c8c: 0x6cda2a20, 0x25c8d: 0x6c65da20, 0x25c8e: 0x6cb3e020,
-	0x25c90: 0x6c11ac20, 0x25c91: 0x6c085020, 0x25c92: 0x6ca20c20, 0x25c93: 0x6d2f7420,
-	0x25c94: 0x6cff9a20, 0x25c96: 0x6c715c20, 0x25c97: 0x6cd50620,
-	0x25c98: 0x6c65dc20, 0x25c99: 0x6c844e20, 0x25c9b: 0x6c203e20,
-	0x25c9c: 0x6c81e220, 0x25c9e: 0x6c51ea20, 0x25c9f: 0x6c55bc20,
-	0x25ca0: 0x6c473220, 0x25ca1: 0x6d2f0c20, 0x25ca2: 0x6c6b3620, 0x25ca3: 0x6cfe5620,
-	0x25ca5: 0x6c317820, 0x25ca6: 0x6c4e3220, 0x25ca7: 0x6c63e820,
-	0x25ca8: 0x6cfe5820, 0x25ca9: 0x6c60ae20, 0x25caa: 0x6cd56c20, 0x25cab: 0x6c812e20,
-	0x25cac: 0x6c5f4220, 0x25cad: 0x6ccd0e20,
-	0x25cb0: 0x6ce1ee20, 0x25cb1: 0x6d3e8e20, 0x25cb2: 0x6cd69620,
-	0x25cb4: 0x6c60b020, 0x25cb5: 0x6c1f7820, 0x25cb6: 0x6c628020, 0x25cb7: 0x6cd01c20,
-	0x25cb8: 0x6c8c6820, 0x25cb9: 0x6c8a2020, 0x25cbb: 0x6cca2a20,
-	0x25cbd: 0x6c019220, 0x25cbe: 0x6cc87c20,
-	// Block 0x973, offset 0x25cc0
-	0x25cc0: 0x6ce37820, 0x25cc1: 0x6c28b820, 0x25cc3: 0x6c589c20,
-	0x25cc5: 0x6cc99420,
-	// Block 0x974, offset 0x25d00
-	0x25d06: 0x6cc8a420, 0x25d07: 0x6cf38020,
-	0x25d08: 0x6c729620, 0x25d09: 0x6c589e20, 0x25d0a: 0x6c838620, 0x25d0b: 0x6c92dc20,
-	0x25d0e: 0x6cdfbe20, 0x25d0f: 0x6d2b9620,
-	0x25d13: 0x6cb9ca20,
-	0x25d17: 0x6cf6d820,
-	0x25d21: 0x6c22a220, 0x25d22: 0x6ccf2620,
-	0x25d27: 0x6cc99620,
-	0x25d2a: 0x6c99bc20, 0x25d2b: 0x6cc1da20,
-	0x25d2d: 0x6c0f7a20, 0x25d2e: 0x6c41f020,
-	0x25d30: 0x6cbcea20, 0x25d31: 0x6c739a20, 0x25d32: 0x6c290e20, 0x25d33: 0x6c16cc20,
-	0x25d34: 0x6d0fde20, 0x25d35: 0x6c518020, 0x25d37: 0x6c5f5c20,
-	0x25d39: 0x6c0df820, 0x25d3b: 0x6c9a3020,
-	0x25d3f: 0x6c33b820,
-	// Block 0x975, offset 0x25d40
-	0x25d40: 0x6c02b020, 0x25d41: 0x6c6dd820, 0x25d42: 0x6c92f420, 0x25d43: 0x6c9e6620,
-	0x25d44: 0x6c2d8a20, 0x25d45: 0x6c51f220, 0x25d47: 0x6c650420,
-	0x25d4a: 0x6c575e20, 0x25d4b: 0x6c466220,
-	0x25d4e: 0x6c92f620, 0x25d4f: 0x6c3f0a20,
-	0x25d50: 0x6c5b7220, 0x25d52: 0x6d2b6620,
-	0x25d54: 0x6c6d6220, 0x25d55: 0x6cd83420, 0x25d56: 0x6cc43e20,
-	0x25d5c: 0x6c28cc20, 0x25d5e: 0x6ced9e20, 0x25d5f: 0x6c0b5620,
-	0x25d64: 0x6c63ee20,
-	0x25d6b: 0x6c284e20,
-	0x25d6c: 0x6c6f8a20, 0x25d6d: 0x6cfb9c20, 0x25d6e: 0x6c0f7c20,
-	// Block 0x976, offset 0x25d80
-	0x25d8f: 0x6cfa0020,
-	0x25d91: 0x6c0c3220,
-	0x25d95: 0x6cb3a820,
-	0x25d98: 0x6ccae820, 0x25d99: 0x6c076620, 0x25d9a: 0x6ccc8020, 0x25d9b: 0x6cf02e20,
-	0x25d9d: 0x6c123e20, 0x25d9e: 0x6c92f820,
-	0x25da9: 0x6c28ce20, 0x25dab: 0x6c47e820,
-	0x25dac: 0x6d289e20, 0x25dad: 0x6c055820, 0x25dae: 0x6c423820,
-	0x25db1: 0x6c175420, 0x25db2: 0x6c62ae20, 0x25db3: 0x6c8ab620,
-	0x25db5: 0x6cbf7e20, 0x25db6: 0x6c66f420, 0x25db7: 0x6c930a20,
-	0x25db8: 0x6c32a620, 0x25db9: 0x6cdb8a20, 0x25dba: 0x6d116020, 0x25dbb: 0x6d1b1620,
-	0x25dbd: 0x6cdec220, 0x25dbe: 0x6d116220, 0x25dbf: 0x6c6de020,
-	// Block 0x977, offset 0x25dc0
-	0x25dc0: 0x6c1ebc20, 0x25dc1: 0x6c3f1220, 0x25dc2: 0x6d25c220, 0x25dc3: 0x6ccebc20,
-	0x25dc5: 0x6c0e3620, 0x25dc6: 0x6c299e20, 0x25dc7: 0x6cd3f820,
-	0x25dca: 0x6c916420, 0x25dcb: 0x6cbcf220,
-	0x25dcc: 0x6c955c20, 0x25dcd: 0x6cb3ae20, 0x25dcf: 0x6c9b7a20,
-	0x25dd0: 0x6c6b6620, 0x25dd3: 0x6c5f7220,
-	0x25dd6: 0x6c930c20,
-	// Block 0x978, offset 0x25e00
-	0x25e04: 0x6c172a20, 0x25e05: 0x6c9f0020, 0x25e06: 0x6c9b7c20, 0x25e07: 0x6c660220,
-	0x25e0a: 0x6c114020,
-	0x25e0c: 0x6cdb5220,
-	0x25e14: 0x6c51fe20, 0x25e15: 0x6cc9aa20, 0x25e17: 0x6d3eae20,
-	0x25e18: 0x6c795e20, 0x25e19: 0x6c452220, 0x25e1a: 0x6cd83a20,
-	0x25e20: 0x6ce3a420, 0x25e21: 0x6d2e8e20, 0x25e22: 0x6d026420, 0x25e23: 0x6cd70020,
-	0x25e24: 0x6c1bcc20, 0x25e25: 0x6d1ec620, 0x25e26: 0x6c91f820, 0x25e27: 0x6c9c1a20,
-	0x25e28: 0x6c8b6020, 0x25e29: 0x6cd8f620,
-	0x25e2c: 0x6cf71820, 0x25e2d: 0x6c38da20, 0x25e2e: 0x6c3db820, 0x25e2f: 0x6cd08820,
-	0x25e30: 0x6ce3a620, 0x25e31: 0x6c14a420, 0x25e32: 0x6d270620,
-	0x25e34: 0x6c3dba20, 0x25e35: 0x6c670220, 0x25e36: 0x6c2cb020,
-	0x25e3a: 0x6d011a20, 0x25e3b: 0x6c281220,
-	0x25e3f: 0x6d34b020,
-	// Block 0x979, offset 0x25e40
-	0x25e43: 0x6d075620,
-	0x25e48: 0x6ca89820, 0x25e49: 0x6c397420, 0x25e4a: 0x6c9b8820, 0x25e4b: 0x6c9fd420,
-	0x25e7e: 0x6c90d220, 0x25e7f: 0x6c31e820,
-	// Block 0x97a, offset 0x25e80
-	0x25e81: 0x6d2e9620, 0x25e82: 0x6c671020, 0x25e83: 0x6c4f2e20,
-	0x25e84: 0x6c28e220, 0x25e85: 0x6ccbb220, 0x25e86: 0x6c671220, 0x25e87: 0x6ce03e20,
-	0x25e88: 0x6c696c20, 0x25e89: 0x6cb34220, 0x25e8b: 0x6cb2e420,
-	0x25e8d: 0x6d3bf820, 0x25e8f: 0x6c8a4c20,
-	0x25e90: 0x6d3f6620, 0x25e92: 0x6d3dd820,
-	0x25e94: 0x6c56de20,
-	0x25e99: 0x6cf92020, 0x25e9b: 0x6c9b9620,
-	0x25e9c: 0x6c72ba20, 0x25e9d: 0x6c9f0c20, 0x25e9e: 0x6cfbcc20,
-	0x25ea0: 0x6c7d3820, 0x25ea1: 0x6c9b9820, 0x25ea2: 0x6c653420,
-	0x25ea6: 0x6caa0a20,
-	0x25ea8: 0x6c2cb220, 0x25ea9: 0x6ccad220,
-	// Block 0x97b, offset 0x25ec0
-	0x25ecf: 0x6c1f8c20,
-	0x25ed0: 0x6d34bc20, 0x25ed1: 0x6cb9e220, 0x25ed2: 0x6c93c420,
-	0x25ed4: 0x6d3ddc20,
-	0x25ed8: 0x6d42b020, 0x25ed9: 0x6c4e4820, 0x25eda: 0x6cdc1820, 0x25edb: 0x6c46e220,
-	0x25edd: 0x6c1e3c20, 0x25ede: 0x6c62da20, 0x25edf: 0x6d194820,
-	0x25ee0: 0x6d21f020,
-	0x25ee8: 0x6caa0c20, 0x25ee9: 0x6ca66420, 0x25eea: 0x6cc93620,
-	0x25eee: 0x6c8c0820,
-	0x25ef1: 0x6ca93820,
-	// Block 0x97c, offset 0x25f00
-	0x25f0d: 0x6cbc1620, 0x25f0e: 0x6d117c20, 0x25f0f: 0x6c409c20,
-	0x25f10: 0x6cd6b620, 0x25f11: 0x6c7d3e20, 0x25f12: 0x6cc21220, 0x25f13: 0x6c304a20,
-	0x25f14: 0x6cd58a20,
-	0x25f1a: 0x6c84c020, 0x25f1b: 0x6c719220,
-	0x25f1c: 0x6cc8bc20,
-	0x25f20: 0x6d2c6c20,
-	0x25f24: 0x6cff5420,
-	0x25f38: 0x6c9ae220, 0x25f39: 0x6cd29820, 0x25f3a: 0x6c2cfc20, 0x25f3b: 0x6c878e20,
-	0x25f3c: 0x6c2b0420, 0x25f3d: 0x6d29c420, 0x25f3f: 0x6c958420,
-	// Block 0x97d, offset 0x25f40
-	0x25f40: 0x6c11c620, 0x25f43: 0x6c023c20,
-	0x25f46: 0x6c663620,
-	0x25f48: 0x6c2e5020, 0x25f4b: 0x6d1cd820,
-	0x25f56: 0x6d197220, 0x25f57: 0x6c294620,
-	0x25f58: 0x6caa1220, 0x25f5a: 0x6d272620,
-	0x25f6e: 0x6c855620, 0x25f6f: 0x6c84e220,
-	0x25f70: 0x6c56f620, 0x25f72: 0x6d206420,
-	0x25f7a: 0x6ca48420,
-	// Block 0x97e, offset 0x25f80
-	0x25f82: 0x6c194a20,
-	0x25f89: 0x6c3c9220, 0x25f8a: 0x6c0cd220,
-	0x25f8f: 0x6c97d820,
-	0x25f90: 0x6c424a20, 0x25f91: 0x6c5e6020, 0x25f93: 0x6c241c20,
-	0x25f95: 0x6d200020,
-	0x25f98: 0x6d206620,
-	0x25f9c: 0x6d057c20,
-	0x25fa1: 0x6d06b020, 0x25fa2: 0x6c561820, 0x25fa3: 0x6c915020,
-	0x25fa5: 0x6cf9b820, 0x25fa6: 0x6d177420,
-	0x25fae: 0x6c561e20, 0x25faf: 0x6c569020,
-	0x25fb0: 0x6d3f0a20,
-	0x25fb7: 0x6c458c20,
-	0x25fb8: 0x6ce99220, 0x25fb9: 0x6cf36a20, 0x25fba: 0x6c8d2020, 0x25fbb: 0x6c472020,
-	0x25fbc: 0x6d37be20,
-	// Block 0x97f, offset 0x25fc0
-	0x25fc4: 0x6c915820,
-	0x25fc8: 0x6d412e20,
-	0x25fcc: 0x6ce76a20, 0x25fcd: 0x6cf97020, 0x25fce: 0x6c515c20,
-	0x25fd3: 0x6d26e220,
-	0x25fd9: 0x6ca40c20, 0x25fda: 0x6c0f4820, 0x25fdb: 0x6c54fa20,
-	0x25fdc: 0x6cb7e220, 0x25fdd: 0x6cd53a20, 0x25fde: 0x6cbadc20, 0x25fdf: 0x6d38ae20,
-	0x25fe0: 0x6d122620, 0x25fe1: 0x6c473420,
-	0x25fe5: 0x6c049e20, 0x25fe6: 0x6c76ec20,
-	0x25fee: 0x6c517620, 0x25fef: 0x6c628420,
-	0x25ff0: 0x6c55be20, 0x25ff1: 0x6d0cde20,
-	0x25ff6: 0x6c212020, 0x25ff7: 0x6c2f8620,
-	0x25ff8: 0x6cbfce20, 0x25ff9: 0x6c543620,
-	0x25ffc: 0x6c507420, 0x25fff: 0x6d413220,
-	// Block 0x980, offset 0x26000
-	0x26001: 0x6cfbb820,
-	0x26004: 0x6cfa5220, 0x26005: 0x6cf91820,
-	0x26008: 0x6ccb8420,
-	0x2600c: 0x6c445a20, 0x2600d: 0x6cf92220,
-	0x26011: 0x6c445e20,
-	0x26014: 0x6c93c620, 0x26016: 0x6c446020, 0x26017: 0x6c78ea20,
-	0x26019: 0x6cd48a20, 0x2601a: 0x6d3b5020,
-	0x2601c: 0x6ce2de20, 0x2601d: 0x6d0b7820, 0x2601e: 0x6ca67c20,
-	0x26026: 0x6c95e220, 0x26027: 0x6cdbae20,
-	0x2602a: 0x6c159e20,
-	0x2602d: 0x6cf4cc20, 0x2602f: 0x6d208220,
-	0x26039: 0x6d2a4420, 0x2603b: 0x6d174420,
-	0x2603c: 0x6cf5d220, 0x2603d: 0x6c533620, 0x2603e: 0x6cc2ce20, 0x2603f: 0x6cee0c20,
-	// Block 0x981, offset 0x26040
-	0x26040: 0x6c1b9820, 0x26041: 0x6cf87420, 0x26042: 0x6ce4e020, 0x26043: 0x6d27e420,
-	0x26045: 0x6d13e220, 0x26046: 0x6c600620, 0x26047: 0x6c5aaa20,
-	0x26048: 0x6c3d1620, 0x2604a: 0x6c3f5420,
-	0x2604d: 0x6c600820, 0x2604e: 0x6d080a20,
-	0x26051: 0x6cdf6c20, 0x26053: 0x6c324e20,
-	0x26057: 0x6d255620,
-	0x2605b: 0x6c2c3220,
-	0x2605e: 0x6d3a6620, 0x2605f: 0x6cdf0620,
-	0x26061: 0x6cc70c20, 0x26062: 0x6d090a20, 0x26063: 0x6d232020,
-	0x26064: 0x6c394e20, 0x26065: 0x6c06ca20, 0x26067: 0x6cc24420,
-	0x26069: 0x6c109620, 0x2606a: 0x6c635420, 0x2606b: 0x6d2c2c20,
-	0x2606d: 0x6caa5a20, 0x2606e: 0x6ccf1420,
-	0x26072: 0x6c860220,
-	// Block 0x982, offset 0x26080
-	0x26084: 0x6c4af620, 0x26085: 0x6c48de20, 0x26087: 0x6c276420,
-	0x2608f: 0x6c40fa20,
-	0x26092: 0x6c22cc20,
-	0x26094: 0x6d0d9220, 0x26095: 0x6cd92220, 0x26096: 0x6cd38820,
-	0x26098: 0x6c7a9c20, 0x26099: 0x6d352e20, 0x2609a: 0x6ce75020, 0x2609b: 0x6cc19620,
-	0x2609c: 0x6c364220, 0x2609e: 0x6d03ea20, 0x2609f: 0x6cc7b020,
-	0x260a0: 0x6d213820, 0x260a3: 0x6d17c020,
-	0x260a4: 0x6d17c220, 0x260a5: 0x6d06e420, 0x260a6: 0x6c3d2c20, 0x260a7: 0x6c43f820,
-	0x260ac: 0x6c512a20, 0x260ad: 0x6d19e820, 0x260af: 0x6c53be20,
-	0x260b1: 0x6c349820,
-	0x260bd: 0x6d03ec20, 0x260be: 0x6c38a220,
-	// Block 0x983, offset 0x260c0
-	0x260c9: 0x6cb50020, 0x260ca: 0x6ccc0220,
-	0x260cc: 0x6c326a20, 0x260cd: 0x6c2c7220, 0x260ce: 0x6c83fa20, 0x260cf: 0x6d180620,
-	0x260d0: 0x6cf78c20, 0x260d1: 0x6c451420, 0x260d2: 0x6ce75820, 0x260d3: 0x6c77c020,
-	0x260d4: 0x6c53c420, 0x260d5: 0x6c7db820, 0x260d6: 0x6ca84c20, 0x260d7: 0x6c1b3c20,
-	0x260d8: 0x6ce34e20, 0x260da: 0x6ce75a20,
-	0x260e0: 0x6c83fc20, 0x260e1: 0x6ca35c20,
-	0x260f1: 0x6d2d8220, 0x260f2: 0x6c06cc20,
-	// Block 0x984, offset 0x26100
-	0x26101: 0x6ce59220, 0x26103: 0x6d289420,
-	0x26104: 0x6c367420, 0x26105: 0x6cd47620, 0x26106: 0x6c798820, 0x26107: 0x6caeb820,
-	0x26108: 0x6c402020, 0x26109: 0x6c929820, 0x2610a: 0x6d01e820, 0x2610b: 0x6d01ea20,
-	0x2610c: 0x6d04e820, 0x2610d: 0x6c929a20, 0x2610e: 0x6ce50a20, 0x2610f: 0x6cde8820,
-	0x26110: 0x6c22da20, 0x26111: 0x6cc12a20, 0x26113: 0x6c402220,
-	0x26114: 0x6d340620, 0x26116: 0x6d01ec20, 0x26117: 0x6d408220,
-	0x26118: 0x6c3abe20, 0x26119: 0x6c9f7420, 0x2611a: 0x6d038c20,
-	0x2611d: 0x6ce76c20, 0x2611e: 0x6cb60220,
-	0x26120: 0x6cb15c20, 0x26122: 0x6cdc5620, 0x26123: 0x6c37a020,
-	0x26127: 0x6c562c20,
-	0x2613b: 0x6cd92e20,
-	0x2613d: 0x6c0cb020, 0x2613e: 0x6c2f6620, 0x2613f: 0x6c04d220,
-	// Block 0x985, offset 0x26140
-	0x26140: 0x6cd1e220, 0x26141: 0x6d01ee20, 0x26142: 0x6cff9420, 0x26143: 0x6c3a6620,
-	0x26152: 0x6c202620, 0x26153: 0x6cd67020,
-	0x26154: 0x6d10b220, 0x26155: 0x6c74a220, 0x26156: 0x6cd14820,
-	0x26158: 0x6d1eb220, 0x26159: 0x6c396c20,
-	0x2615c: 0x6c7c9a20, 0x2615d: 0x6c2c9820, 0x2615f: 0x6c990220,
-	0x26160: 0x6c6b2420, 0x26162: 0x6d0cc820,
-	0x26165: 0x6ceeb420,
-	0x26168: 0x6cca7220, 0x26169: 0x6c6b2620, 0x2616a: 0x6d219220, 0x2616b: 0x6cf0c820,
-	0x2616c: 0x6c369220, 0x2616d: 0x6cc31220, 0x2616e: 0x6c6f2e20, 0x2616f: 0x6c3cba20,
-	0x26170: 0x6c8fa620, 0x26171: 0x6c2ee220, 0x26172: 0x6cb12420,
-	0x26174: 0x6c891420, 0x26175: 0x6c559820, 0x26176: 0x6c93fa20,
-	0x2617f: 0x6c2d7a20,
-	// Block 0x986, offset 0x26180
-	0x26183: 0x6c255e20,
-	0x26184: 0x6ca1e420,
-	0x26195: 0x6cedea20, 0x26196: 0x6c72fe20, 0x26197: 0x6c782e20,
-	0x26198: 0x6d0cca20, 0x26199: 0x6c693420,
-	0x261a1: 0x6c45b020, 0x261a3: 0x6cc6b620,
-	0x261a4: 0x6cdce220, 0x261a5: 0x6ccdb620,
-	0x261a8: 0x6c1b5420, 0x261aa: 0x6cb65220, 0x261ab: 0x6cdd9820,
-	0x261ad: 0x6d134420, 0x261ae: 0x6d2a5420, 0x261af: 0x6cc39620,
-	0x261b0: 0x6d2e1820, 0x261b1: 0x6c035a20, 0x261b2: 0x6d40d620, 0x261b3: 0x6cdd9a20,
-	0x261b4: 0x6d309220, 0x261b5: 0x6cf8e820, 0x261b7: 0x6c1eec20,
-	0x261b8: 0x6c694820, 0x261b9: 0x6d41d220, 0x261ba: 0x6c43aa20, 0x261bb: 0x6cf52420,
-	0x261be: 0x6c94c020, 0x261bf: 0x6c60b420,
-	// Block 0x987, offset 0x261c0
-	0x261c2: 0x6d00ec20, 0x261c3: 0x6d00ee20,
-	0x261c6: 0x6c30f620,
-	0x261cb: 0x6cbfc620,
-	0x261d1: 0x6cb2d020, 0x261d3: 0x6c8ea420,
-	0x261e5: 0x6c6b3820, 0x261e7: 0x6c5c4020,
-	0x261eb: 0x6ccc7a20,
-	0x261f8: 0x6d34a620, 0x261f9: 0x6c00e620, 0x261fa: 0x6d074a20, 0x261fb: 0x6c0a7820,
-	0x261fd: 0x6d126820, 0x261fe: 0x6ca6d820, 0x261ff: 0x6d3a2e20,
-	// Block 0x988, offset 0x26200
-	0x26201: 0x6cdb4220, 0x26203: 0x6d010220,
-	0x26204: 0x6d241820, 0x26205: 0x6cc14820,
-	0x26208: 0x6d40e020, 0x26209: 0x6d341820, 0x2620a: 0x6d2ee420, 0x2620b: 0x6c94c420,
-	0x2620c: 0x6cf03020, 0x2620d: 0x6c1ce820, 0x2620e: 0x6c9d9620,
-	0x26210: 0x6c5f5e20, 0x26212: 0x6cdb4420, 0x26213: 0x6d12b620,
-	0x26214: 0x6cf7ac20, 0x26215: 0x6ce96420, 0x26216: 0x6c886c20, 0x26217: 0x6d082e20,
-	0x26219: 0x6cf52c20,
-	0x2621f: 0x6c990c20,
-	0x2622c: 0x6c538e20, 0x2622f: 0x6c94c620,
-	0x26230: 0x6c31ce20, 0x26231: 0x6c23ba20, 0x26232: 0x6c152e20, 0x26233: 0x6c92fc20,
-	0x26234: 0x6cdb4620,
-	// Block 0x989, offset 0x26240
-	0x26240: 0x6c94c820,
-	0x26246: 0x6d37d220, 0x26247: 0x6c847420,
-	0x26248: 0x6c3ae220, 0x2624a: 0x6c6e3820, 0x2624b: 0x6c7d2c20,
-	0x2624c: 0x6d18f420, 0x2624d: 0x6c576620, 0x2624e: 0x6c258020,
-	0x26250: 0x6d243c20, 0x26251: 0x6c083620, 0x26252: 0x6cea3020, 0x26253: 0x6cd58020,
-	0x26254: 0x6c27a220, 0x26255: 0x6cf38a20, 0x26256: 0x6c22ea20, 0x26257: 0x6ca95e20,
-	0x26258: 0x6c29a020, 0x26259: 0x6d40ee20, 0x2625a: 0x6c4e4220,
-	0x2625c: 0x6cb02e20, 0x2625d: 0x6c204620,
-	0x26260: 0x6c328620, 0x26261: 0x6cabe020,
-	0x26264: 0x6d39d620, 0x26266: 0x6d011620, 0x26267: 0x6d30ac20,
-	0x26268: 0x6cbcf420, 0x26269: 0x6d07dc20, 0x2626b: 0x6ccb0820,
-	// Block 0x98a, offset 0x26280
-	0x26280: 0x6c0a9620, 0x26282: 0x6c407c20,
-	0x26288: 0x6c86d820,
-	0x2628e: 0x6c359620,
-	0x26290: 0x6d126e20, 0x26291: 0x6cd58420, 0x26293: 0x6ccb8620,
-	0x26295: 0x6cb54a20, 0x26296: 0x6c4cf220, 0x26297: 0x6ccb8820,
-	0x26299: 0x6c408620, 0x2629a: 0x6c990e20,
-	0x2629c: 0x6c827620, 0x2629d: 0x6d2db420,
-	0x262a8: 0x6c14a620,
-	0x262ad: 0x6cf0fc20,
-	0x262bd: 0x6c827820, 0x262bf: 0x6d2b6c20,
-	// Block 0x98b, offset 0x262c0
-	0x262c0: 0x6d1c0e20, 0x262c1: 0x6c010220, 0x262c2: 0x6d005c20,
-	0x262c4: 0x6c0aaa20,
-	0x262cb: 0x6c155a20,
-	0x262ce: 0x6cb03620, 0x262cf: 0x6c23c220,
-	0x262d0: 0x6c8b6620, 0x262d1: 0x6cb69c20, 0x262d3: 0x6c62d420,
-	0x262d4: 0x6c6df220, 0x262d5: 0x6c302820, 0x262d6: 0x6c3a4620, 0x262d7: 0x6d159220,
-	0x262d8: 0x6ce97220,
-	0x262e8: 0x6c9bf620, 0x262e9: 0x6c11be20, 0x262ea: 0x6d0b3c20,
-	0x262f2: 0x6d103c20,
-	0x262f4: 0x6ce6a220,
-	0x262f8: 0x6d34be20, 0x262fa: 0x6d027c20, 0x262fb: 0x6c942220,
-	0x262fd: 0x6c875420, 0x262ff: 0x6c991620,
-	// Block 0x98c, offset 0x26300
-	0x26302: 0x6cfa1820,
-	0x26305: 0x6cda4420,
-	0x26316: 0x6cda6c20, 0x26317: 0x6d097e20,
-	0x2631d: 0x6c877a20, 0x2631e: 0x6d25d820,
-	0x26321: 0x6d2e4020, 0x26323: 0x6cdef220,
-	0x26324: 0x6d083a20, 0x26325: 0x6cf12020, 0x26326: 0x6d139620, 0x26327: 0x6cad1a20,
-	0x26328: 0x6c991820, 0x26329: 0x6ce3b620, 0x2632a: 0x6cb22a20,
-	0x2632c: 0x6c328e20, 0x2632d: 0x6cc0a820, 0x2632e: 0x6d162c20,
-	0x26333: 0x6ceb6020,
-	0x26334: 0x6c14aa20, 0x26337: 0x6c6d7620,
-	0x2633c: 0x6c35aa20,
-	// Block 0x98d, offset 0x26340
-	0x26343: 0x6c157420,
-	0x26344: 0x6d1c4420, 0x26345: 0x6c8dae20, 0x26347: 0x6cfc5e20,
-	0x26349: 0x6cb55a20, 0x2634b: 0x6d272220,
-	0x2634c: 0x6c94ce20, 0x2634d: 0x6d1cda20, 0x2634e: 0x6cc21a20,
-	0x26352: 0x6c3a7820, 0x26353: 0x6d3eca20,
-	0x26359: 0x6cbe6220,
-	0x2635d: 0x6ca94020, 0x2635e: 0x6cf13220, 0x2635f: 0x6cd6c220,
-	0x26361: 0x6c40a420,
-	0x26364: 0x6ca1aa20, 0x26365: 0x6ca1ac20, 0x26366: 0x6ceb6820, 0x26367: 0x6c14ae20,
-	0x26368: 0x6d2a1220,
-	0x2636e: 0x6c84da20, 0x2636f: 0x6c84e420,
-	0x26371: 0x6cfa2020, 0x26372: 0x6c733420,
-	0x26374: 0x6ca41a20, 0x26375: 0x6c9db420,
-	0x26378: 0x6c5a3e20, 0x2637a: 0x6cd6f620,
-	0x2637c: 0x6d066420, 0x2637f: 0x6c3a7a20,
-	// Block 0x98e, offset 0x26380
-	0x26381: 0x6d029420,
-	0x26386: 0x6cdefa20, 0x26387: 0x6d1e6a20,
-	0x26389: 0x6d2e4420,
-	0x26391: 0x6cbb3420, 0x26392: 0x6ca46a20,
-	0x26394: 0x6c8c9420,
-	0x26398: 0x6c948220, 0x26399: 0x6cfc6e20, 0x2639a: 0x6c3f2c20,
-	0x2639c: 0x6c8df820,
-	0x263a0: 0x6ccadc20, 0x263a2: 0x6c5ca620,
-	0x263a8: 0x6ce66020, 0x263aa: 0x6cbe7020,
-	0x263ac: 0x6c598a20, 0x263ae: 0x6c01b220,
-	0x263b5: 0x6c97c220, 0x263b7: 0x6ca6b220,
-	0x263bb: 0x6c4c8020,
-	0x263bc: 0x6cab8820, 0x263bf: 0x6cfe4620,
-	// Block 0x98f, offset 0x263c0
-	0x263c1: 0x6c6c5620,
-	0x263c6: 0x6d32f620,
-	0x263c8: 0x6ca2cc20, 0x263cb: 0x6cca5e20,
-	0x263cc: 0x6c56d020, 0x263ce: 0x6d40f020, 0x263cf: 0x6c5b7620,
-	0x263d2: 0x6c5f7420,
-	0x263d6: 0x6d138a20,
-	0x263e6: 0x6d03de20,
-	0x263e9: 0x6c7e6c20, 0x263ea: 0x6d232220, 0x263eb: 0x6c745820,
-	0x263f1: 0x6cd5da20, 0x263f2: 0x6d32d620,
-	0x263f4: 0x6d1e4e20, 0x263f6: 0x6c439c20,
-	0x263f8: 0x6c66ae20, 0x263f9: 0x6d034820,
-	0x263fc: 0x6c5aec20, 0x263ff: 0x6cd67820,
-	// Block 0x990, offset 0x26400
-	0x26402: 0x6c1cf020, 0x26403: 0x6c4f8a20,
-	0x26408: 0x6c8a6420,
-	0x2640d: 0x6c674a20, 0x2640f: 0x6c456c20,
-	0x26411: 0x6d3d3020,
-	0x26417: 0x6cb6de20,
-	0x2641c: 0x6cb8b820, 0x2641e: 0x6c30e220, 0x2641f: 0x6cb30220,
-	0x26422: 0x6c567a20,
-	0x26425: 0x6ca98c20, 0x26427: 0x6cb76420,
-	0x26428: 0x6c2db420, 0x26429: 0x6c2db620, 0x2642b: 0x6c85b220,
-	0x2642e: 0x6d046220,
-	0x2643d: 0x6ca2da20, 0x2643f: 0x6d32a620,
-	// Block 0x991, offset 0x26440
-	0x26440: 0x6c7e6e20, 0x26441: 0x6d35cc20, 0x26443: 0x6c35b220,
-	0x26444: 0x6c0e6620, 0x26445: 0x6cb30620, 0x26446: 0x6d058420, 0x26447: 0x6d1e7a20,
-	0x26448: 0x6c223c20, 0x26449: 0x6c85e220,
-	0x2644c: 0x6cad5820, 0x2644f: 0x6d053a20,
-	0x2645b: 0x6cb4a820,
-	0x2645d: 0x6c17e420, 0x2645e: 0x6cb78420,
-	0x26461: 0x6d177620, 0x26463: 0x6ce31c20,
-	0x26464: 0x6c348820, 0x26465: 0x6c8f9020, 0x26467: 0x6c668020,
-	0x2646d: 0x6d2e6020, 0x2646e: 0x6d261220,
-	0x26476: 0x6d210820,
-	0x26478: 0x6c44ca20, 0x2647a: 0x6c546c20,
-	0x2647e: 0x6cb6f820,
-	// Block 0x992, offset 0x26480
-	0x26480: 0x6ca28c20, 0x26481: 0x6c592a20, 0x26482: 0x6c906a20, 0x26483: 0x6cf89420,
-	0x26484: 0x6c356c20, 0x26485: 0x6c80fe20, 0x26486: 0x6c3aae20, 0x26487: 0x6ced2820,
-	0x26489: 0x6c259620, 0x2648b: 0x6caea420,
-	0x2648f: 0x6c262c20,
-	0x26490: 0x6cf22420,
-	0x264a1: 0x6c430620,
-	0x264a5: 0x6c254820,
-	0x264a8: 0x6cb7a620, 0x264a9: 0x6c83fe20, 0x264aa: 0x6cbcc820, 0x264ab: 0x6cba6020,
-	0x264ac: 0x6c798220, 0x264ad: 0x6c082220, 0x264af: 0x6cd46c20,
-	0x264b7: 0x6ceea220,
-	// Block 0x993, offset 0x264c0
-	0x264c4: 0x6cccf220,
-	0x264cf: 0x6d3e6e20,
-	0x264d2: 0x6ce40c20, 0x264d3: 0x6cb90e20,
-	0x264d4: 0x6c31ac20, 0x264d7: 0x6ce8dc20,
-	0x264da: 0x6ceeaa20,
-	0x264de: 0x6c558420, 0x264df: 0x6d038e20,
-	0x264e1: 0x6ccd0220, 0x264e2: 0x6d354a20,
-	0x264e7: 0x6c1bb820,
-	0x264f8: 0x6d394a20, 0x264f9: 0x6cf23620, 0x264fa: 0x6c1b4c20, 0x264fb: 0x6cdd9420,
-	0x264fc: 0x6d020220, 0x264fe: 0x6c78d220,
-	// Block 0x994, offset 0x26500
-	0x26501: 0x6ccca220, 0x26502: 0x6cd1f220, 0x26503: 0x6cd47820,
-	0x26505: 0x6c6bfc20,
-	0x26509: 0x6c431c20, 0x2650a: 0x6c93b220,
-	0x26514: 0x6d020420,
-	0x2651a: 0x6d354c20,
-	0x2651e: 0x6c978220,
-	0x26520: 0x6cd67420, 0x26521: 0x6c78da20, 0x26523: 0x6c2dfe20,
-	0x26524: 0x6d141a20, 0x26526: 0x6cdb2420, 0x26527: 0x6c206420,
-	0x26531: 0x6c256820, 0x26532: 0x6cebb220,
-	0x26535: 0x6d022020,
-	0x2653d: 0x6d082620,
-	// Block 0x995, offset 0x26540
-	0x26542: 0x6c51f420, 0x26543: 0x6c74ce20,
-	0x26546: 0x6ce43020, 0x26547: 0x6c3ada20,
-	0x26549: 0x6d355620, 0x2654a: 0x6cd3e820, 0x2654b: 0x6ce9c620,
-	0x2654e: 0x6c1cea20,
-	0x26550: 0x6ce43220, 0x26551: 0x6d2e8820, 0x26552: 0x6c527820,
-	0x26554: 0x6cc1de20, 0x26555: 0x6cef4220, 0x26557: 0x6c33ba20,
-	0x26558: 0x6c067220,
-	0x2655c: 0x6c8a2c20,
-	0x26564: 0x6cd83620,
-	0x2656a: 0x6c0c8420, 0x2656b: 0x6d023420,
-	0x2656c: 0x6c0cfc20, 0x2656e: 0x6c23d820,
-	0x26572: 0x6c72ac20, 0x26573: 0x6c518820,
-	0x26577: 0x6c7d3020,
-	0x26578: 0x6d1dc820,
-	// Block 0x996, offset 0x26580
-	0x26580: 0x6cd62220,
-	0x2658d: 0x6ca89a20, 0x2658f: 0x6d21da20,
-	0x26590: 0x6d3dca20, 0x26591: 0x6c9b8c20, 0x26592: 0x6c55f220,
-	0x26595: 0x6c8b6220,
-	0x2659d: 0x6c6a4020, 0x2659e: 0x6d048220,
-	0x265a3: 0x6d0e0020,
-	0x265a9: 0x6c6b7a20, 0x265aa: 0x6c7eb820, 0x265ab: 0x6cd62e20,
-	0x265ac: 0x6c6b7c20, 0x265ad: 0x6c828220,
-	0x265b0: 0x6d40fc20, 0x265b2: 0x6cd40420,
-	0x265b8: 0x6cef6c20, 0x265b9: 0x6c318620, 0x265ba: 0x6cdb6420,
-	// Block 0x997, offset 0x265c0
-	0x265c3: 0x6d012e20,
-	0x265c4: 0x6cc4f620,
-	0x265cc: 0x6c964e20,
-	0x265d1: 0x6cb96420,
-	0x265d8: 0x6ca48620, 0x265d9: 0x6c8dec20,
-	0x265dc: 0x6c630620,
-	0x265e0: 0x6ca03e20, 0x265e3: 0x6c476220,
-	0x265e8: 0x6d080c20,
-	0x265ec: 0x6d058e20,
-	0x265f1: 0x6c0f3620,
-	0x265fc: 0x6ceebc20,
-	// Block 0x998, offset 0x26600
-	0x26602: 0x6c7a6e20,
-	0x26606: 0x6cecf020,
-	0x26608: 0x6c143c20, 0x2660a: 0x6c996820, 0x2660b: 0x6c789a20,
-	0x2660e: 0x6c22c420,
-	0x26612: 0x6cfcbc20, 0x26613: 0x6ca11620,
-	0x2661a: 0x6c5cc420, 0x2661b: 0x6c162c20,
-	0x2661c: 0x6cd1c620, 0x2661d: 0x6d31dc20, 0x2661e: 0x6c364420, 0x2661f: 0x6c9c5a20,
-	0x26621: 0x6cd1c820, 0x26622: 0x6cc11420, 0x26623: 0x6cd4e420,
-	0x26625: 0x6c220420, 0x26626: 0x6d0d9420,
-	0x26629: 0x6c54dc20, 0x2662a: 0x6cb50220, 0x2662b: 0x6d366c20,
-	0x2662c: 0x6c599c20,
-	0x26634: 0x6d353820, 0x26636: 0x6d1fda20,
-	0x2663c: 0x6c435420, 0x2663d: 0x6d11c420, 0x2663e: 0x6cb3cc20,
-	// Block 0x999, offset 0x26640
-	0x26647: 0x6d153620,
-	0x26648: 0x6c1a8420, 0x26649: 0x6c625020, 0x2664b: 0x6c007420,
-	0x2664d: 0x6c308620, 0x2664f: 0x6cdc6220,
-	0x26651: 0x6c701c20,
-	0x26658: 0x6cb7c820, 0x26659: 0x6c884420, 0x2665a: 0x6d085620,
-	0x2665c: 0x6c8a7620,
-	0x26661: 0x6d285820, 0x26662: 0x6d085a20, 0x26663: 0x6c23e620,
-	0x26664: 0x6cb10020, 0x26666: 0x6c7c9c20,
-	0x26668: 0x6ce37a20, 0x26669: 0x6c58e020, 0x2666a: 0x6c280020, 0x2666b: 0x6c4b7820,
-	0x2666c: 0x6c188a20, 0x2666e: 0x6cce3c20, 0x2666f: 0x6c628620,
-	0x26674: 0x6c891c20, 0x26675: 0x6c76b620, 0x26676: 0x6cd17820,
-	0x26678: 0x6c30cc20, 0x26679: 0x6d1f8020, 0x2667a: 0x6cb66220,
-	0x2667c: 0x6cffc620,
-	// Block 0x99a, offset 0x26680
-	0x26682: 0x6d18f620, 0x26683: 0x6c90c420,
-	0x26686: 0x6c206a20,
-	0x2668b: 0x6c81e620,
-	0x2668c: 0x6c42ec20,
-	0x26690: 0x6d2ba220, 0x26692: 0x6cef6420,
-	0x26696: 0x6c653620,
-	0x2669b: 0x6d1c3220,
-	0x2669c: 0x6c38f420, 0x2669d: 0x6c877c20, 0x2669e: 0x6cb94e20,
-	0x266a2: 0x6d125420,
-	0x266a6: 0x6c7c5a20, 0x266a7: 0x6cef7a20,
-	0x266a9: 0x6cc42620,
-	0x266ac: 0x6cffca20, 0x266ad: 0x6cc42820,
-	0x266b0: 0x6c551820,
-	0x266b5: 0x6c342020, 0x266b6: 0x6c1f1e20,
-	0x266b9: 0x6ccfd620,
-	0x266bc: 0x6d3d5620, 0x266bd: 0x6c355e20, 0x266be: 0x6c61f820,
-	// Block 0x99b, offset 0x266c0
-	0x266c1: 0x6cdfde20, 0x266c3: 0x6cabc420,
-	0x266cb: 0x6c6be220,
-	0x266cc: 0x6cbc4220,
-	0x266d1: 0x6cb99620, 0x266d2: 0x6c724c20,
-	0x266d5: 0x6cc06e20, 0x266d6: 0x6ceb2220,
-	0x266da: 0x6caafa20, 0x266db: 0x6cd8c620,
-	0x266df: 0x6d14fe20,
-	0x266e1: 0x6c47a220, 0x266e2: 0x6c5d3220, 0x266e3: 0x6cabda20,
-	0x266e4: 0x6d3e5a20, 0x266e6: 0x6c685220,
-	0x266e9: 0x6cf80420, 0x266ea: 0x6cceb820,
-	0x266ec: 0x6d153820, 0x266ed: 0x6d369e20,
-	0x266f5: 0x6c952420, 0x266f7: 0x6d38a020,
-	0x266f8: 0x6c74a420, 0x266f9: 0x6ce00620, 0x266fa: 0x6cab0c20, 0x266fb: 0x6c728020,
-	0x266fc: 0x6c559c20, 0x266fe: 0x6d36c220,
-	// Block 0x99c, offset 0x26700
-	0x26703: 0x6c088820,
-	0x2670d: 0x6c1c7220, 0x2670e: 0x6d07d020, 0x2670f: 0x6c60b620,
-	0x26710: 0x6c48a020, 0x26711: 0x6c715e20, 0x26712: 0x6cf31620, 0x26713: 0x6ceb4a20,
-	0x26715: 0x6cc09820, 0x26716: 0x6ceebe20, 0x26717: 0x6c32a220,
-	0x26719: 0x6cd47c20, 0x2671b: 0x6d31fe20,
-	0x2671c: 0x6ca55420, 0x2671f: 0x6cf8f620,
-	0x26720: 0x6d30a420, 0x26721: 0x6d371620, 0x26723: 0x6ca2ea20,
-	0x26728: 0x6c650620,
-	0x2672e: 0x6d114e20, 0x2672f: 0x6c4c9820,
-	0x26732: 0x6c2c0820,
-	0x26734: 0x6c5e1c20, 0x26735: 0x6c6de220,
-	0x2673c: 0x6c74ec20, 0x2673d: 0x6d270820,
-	// Block 0x99d, offset 0x26740
-	0x26744: 0x6c60ee20, 0x26746: 0x6cdb5c20,
-	0x26748: 0x6c654020, 0x2674a: 0x6c7d9820, 0x2674b: 0x6cf33220,
-	0x2674c: 0x6c7c1e20, 0x2674d: 0x6c0c6020, 0x2674e: 0x6c751220,
-	0x26751: 0x6c0ad620, 0x26753: 0x6c157a20,
-	0x26755: 0x6d3ecc20, 0x26756: 0x6c87c220,
-	0x2675a: 0x6c3d0e20, 0x2675b: 0x6cb9f020,
-	0x2675c: 0x6d0d4020, 0x2675e: 0x6ce08c20, 0x2675f: 0x6ca0d820,
-	0x26763: 0x6c79e420,
-	0x26764: 0x6cf5d420,
-	0x2676e: 0x6c569220, 0x2676f: 0x6c569420,
-	0x26771: 0x6c3e7020,
-	0x26774: 0x6d104c20, 0x26775: 0x6c4cea20, 0x26777: 0x6cc57020,
-	0x26778: 0x6d1b4c20, 0x26779: 0x6c3c4420, 0x2677a: 0x6c75b620,
-	0x2677c: 0x6d27a620, 0x2677f: 0x6d0a8820,
-	// Block 0x99e, offset 0x26780
-	0x26781: 0x6cf87c20,
-	0x2678e: 0x6cf96220,
-	0x26791: 0x6c4f7620,
-	0x2679a: 0x6c569620,
-	0x2679d: 0x6c54d020, 0x2679e: 0x6cb4aa20, 0x2679f: 0x6c385020,
-	0x267a4: 0x6c636420, 0x267a7: 0x6d150420,
-	0x267ad: 0x6ceac820, 0x267ae: 0x6ca2e220,
-	0x267b8: 0x6d1a6a20, 0x267b9: 0x6d1b5a20,
-	// Block 0x99f, offset 0x267c0
-	0x267c3: 0x6c622a20,
-	0x267c4: 0x6cee5620, 0x267c5: 0x6cd3a420, 0x267c6: 0x6c330c20, 0x267c7: 0x6c34fc20,
-	0x267c9: 0x6ceb3020, 0x267ca: 0x6cebe620, 0x267cb: 0x6c863e20,
-	0x267cf: 0x6cc55220,
-	0x267d2: 0x6c22d020, 0x267d3: 0x6d070220,
-	0x267d4: 0x6d389020, 0x267d5: 0x6d3f5a20,
-	0x267dc: 0x6cee2a20, 0x267dd: 0x6d0b5820, 0x267df: 0x6c622c20,
-	0x267e0: 0x6c179e20,
-	0x267e9: 0x6c606020,
-	0x267f5: 0x6ccd5420, 0x267f6: 0x6ce8de20,
-	0x267f8: 0x6c0cf620, 0x267f9: 0x6cf8be20, 0x267fa: 0x6caf7e20, 0x267fb: 0x6d2cd420,
-	0x267fe: 0x6c5c0620,
-	// Block 0x9a0, offset 0x26800
-	0x26800: 0x6cdd3020, 0x26802: 0x6c51da20,
-	0x26804: 0x6d265220, 0x26806: 0x6cf37c20,
-	0x26808: 0x6c8d4020, 0x2680a: 0x6d2cd620, 0x2680b: 0x6c574a20,
-	0x26817: 0x6c151220,
-	0x2681f: 0x6c367620,
-	0x26821: 0x6c18e020,
-	0x26827: 0x6cdc6620,
-	0x26829: 0x6ce51420,
-	0x26830: 0x6d36c420, 0x26831: 0x6ce41620, 0x26832: 0x6c022e20, 0x26833: 0x6d3d9020,
-	0x26834: 0x6d3f6020, 0x26835: 0x6c783020, 0x26837: 0x6ccb4e20,
-	0x26838: 0x6ce4c220, 0x26839: 0x6c92b620,
-	0x2683e: 0x6ccd2620, 0x2683f: 0x6d2c9020,
-	// Block 0x9a1, offset 0x26840
-	0x26843: 0x6c1cde20,
-	0x26845: 0x6d0ea620,
-	0x26852: 0x6ca25420, 0x26853: 0x6c54fc20,
-	0x2685a: 0x6c1ad420,
-	0x2685d: 0x6cdb0a20,
-	0x26863: 0x6ca51420,
-	0x26866: 0x6c60b820, 0x26867: 0x6c346020,
-	0x26868: 0x6c547e20, 0x2686a: 0x6c23de20, 0x2686b: 0x6d2c0220,
-	0x2686c: 0x6d1a9c20, 0x2686e: 0x6cffbe20,
-	0x26870: 0x6c0bbc20, 0x26871: 0x6c085220, 0x26872: 0x6c7e9a20,
-	0x26874: 0x6c1ad820, 0x26876: 0x6cb87820,
-	0x26878: 0x6c015220, 0x26879: 0x6cd1fe20,
-	0x2687c: 0x6c1c7420,
-	// Block 0x9a2, offset 0x26880
-	0x26885: 0x6caa6a20, 0x26887: 0x6c628820,
-	0x26893: 0x6cab9220,
-	0x26895: 0x6cf97a20,
-	0x26898: 0x6c14a020, 0x2689a: 0x6c005620,
-	0x2689d: 0x6cd17c20, 0x2689e: 0x6c518220,
-	0x268a0: 0x6c60ca20, 0x268a1: 0x6c1ade20, 0x268a2: 0x6cf8fa20, 0x268a3: 0x6d32fe20,
-	0x268a6: 0x6cde0020,
-	0x268a8: 0x6c96e220, 0x268ab: 0x6caf9a20,
-	0x268ae: 0x6d05f220, 0x268af: 0x6cba2a20,
-	0x268b9: 0x6cfa4e20,
-	// Block 0x9a3, offset 0x268c0
-	0x268ca: 0x6d241a20,
-	0x268d1: 0x6c6b4620, 0x268d2: 0x6cfa5420, 0x268d3: 0x6c91ee20,
-	0x268d5: 0x6cbcf620, 0x268d7: 0x6c145220,
-	0x268db: 0x6d107020,
-	0x268dc: 0x6c62b020, 0x268dd: 0x6ccc3620, 0x268de: 0x6c912020,
-	0x268e0: 0x6c5f7620, 0x268e1: 0x6d373020, 0x268e2: 0x6cee5c20,
-	0x268e4: 0x6c0a9820, 0x268e5: 0x6c015820, 0x268e6: 0x6d142a20, 0x268e7: 0x6c015a20,
-	0x268ec: 0x6c847620,
-	0x268f9: 0x6cfaec20,
-	0x268fe: 0x6c703620, 0x268ff: 0x6ce08420,
-	// Block 0x9a4, offset 0x26900
-	0x26901: 0x6c507a20, 0x26902: 0x6c520620,
-	0x26905: 0x6d2c0620, 0x26906: 0x6d2e2e20, 0x26907: 0x6d191a20,
-	0x26908: 0x6cf91a20, 0x2690a: 0x6cf91c20, 0x2690b: 0x6c384420,
-	0x2690c: 0x6d0cf620, 0x2690f: 0x6ca25620,
-	0x26915: 0x6c474020,
-	0x2691e: 0x6d27d020,
-	0x26924: 0x6d384820, 0x26926: 0x6c160220, 0x26927: 0x6c208620,
-	0x26928: 0x6c5c8a20, 0x26929: 0x6d28d620, 0x2692a: 0x6c4c0820, 0x2692b: 0x6c661c20,
-	0x2692c: 0x6d0b3e20,
-	0x26930: 0x6cfe6820, 0x26931: 0x6c520820,
-	// Block 0x9a5, offset 0x26940
-	0x26943: 0x6c28e820,
-	0x26947: 0x6c9df020,
-	0x26948: 0x6ca93a20, 0x2694a: 0x6c9ba620,
-	0x2694c: 0x6c8b6e20, 0x2694d: 0x6d396a20, 0x2694e: 0x6cb42220, 0x2694f: 0x6cdf0a20,
-	0x26953: 0x6d1cd020,
-	0x26954: 0x6ce2cc20, 0x26955: 0x6c4ca220,
-	0x2695a: 0x6cbb3020,
-	0x2695c: 0x6c942420, 0x2695d: 0x6cc9b820, 0x2695e: 0x6c8b7020, 0x2695f: 0x6c1b6c20,
-	0x26960: 0x6d015020, 0x26963: 0x6c4ca820,
-	0x26964: 0x6c067e20, 0x26965: 0x6c964220, 0x26966: 0x6c73a420,
-	0x2696a: 0x6c36e820,
-	0x26973: 0x6c51a820,
-	0x26975: 0x6c9aba20,
-	0x26978: 0x6d028820, 0x26979: 0x6cb22c20, 0x2697b: 0x6c4dc420,
-	0x2697c: 0x6c194420, 0x2697d: 0x6ccdec20, 0x2697e: 0x6c5ca020,
-	// Block 0x9a6, offset 0x26980
-	0x26986: 0x6d1c4820,
-	0x26988: 0x6c663e20,
-	0x2698d: 0x6c016620,
-	0x26991: 0x6cdef420, 0x26992: 0x6d144220, 0x26993: 0x6ce9dc20,
-	0x26997: 0x6c8ef220,
-	0x26999: 0x6d425a20, 0x2699b: 0x6c84ec20,
-	0x2699d: 0x6cb23420, 0x2699e: 0x6d098420,
-	0x269a0: 0x6ca5a220, 0x269a1: 0x6c315820,
-	0x269a4: 0x6c806c20,
-	0x269aa: 0x6d2d5e20, 0x269ab: 0x6c73e620,
-	0x269ac: 0x6d314620, 0x269ad: 0x6c600c20, 0x269ae: 0x6cb8ce20,
-	0x269b0: 0x6c4da220, 0x269b1: 0x6c3b7220, 0x269b3: 0x6c4da420,
-	0x269b4: 0x6c535620, 0x269b5: 0x6c514620, 0x269b6: 0x6c541a20,
-	0x269ba: 0x6d2e7820, 0x269bb: 0x6c1dd420,
-	0x269bc: 0x6cdf7e20, 0x269bd: 0x6cba7820, 0x269bf: 0x6ccf7420,
-	// Block 0x9a7, offset 0x269c0
-	0x269c0: 0x6d1bee20, 0x269c3: 0x6cbd4020,
-	0x269c6: 0x6c5e0e20,
-	0x269c8: 0x6cf8fc20, 0x269c9: 0x6c51f820, 0x269ca: 0x6cf90820, 0x269cb: 0x6cf97e20,
-	0x269cc: 0x6c4fb620, 0x269cd: 0x6c81e820, 0x269cf: 0x6c870c20,
-	0x269d2: 0x6c19a220,
-	0x269d6: 0x6c760620, 0x269d7: 0x6cf76020,
-	0x269d8: 0x6c4e7620,
-	0x269de: 0x6c311620,
-	0x269e0: 0x6c30ae20, 0x269e1: 0x6cec9220,
-	0x269e4: 0x6c30b020, 0x269e5: 0x6d293820, 0x269e6: 0x6c737a20,
-	0x269e8: 0x6c90e620, 0x269e9: 0x6c1f6220, 0x269eb: 0x6d32ea20,
-	0x269ef: 0x6cb64420,
-	0x269f0: 0x6c770e20, 0x269f1: 0x6c5df420, 0x269f2: 0x6c7f2420,
-	0x269fa: 0x6c410620,
-	0x269fc: 0x6cd48220, 0x269fe: 0x6c301a20,
-	// Block 0x9a8, offset 0x26a00
-	0x26a03: 0x6c90c820,
-	0x26a04: 0x6ce93e20, 0x26a07: 0x6d21ca20,
-	0x26a08: 0x6cf52e20, 0x26a0a: 0x6ce4ce20,
-	0x26a12: 0x6c4c9e20,
-	0x26a18: 0x6ce04420, 0x26a19: 0x6cb6ae20,
-	0x26a20: 0x6c8b8020, 0x26a21: 0x6c87b420, 0x26a23: 0x6d09d020,
-	0x26a28: 0x6c452820, 0x26a29: 0x6ce63820, 0x26a2a: 0x6c4ea220, 0x26a2b: 0x6c1f2a20,
-	0x26a2d: 0x6cea4c20, 0x26a2f: 0x6d047a20,
-	0x26a30: 0x6d1f3020, 0x26a31: 0x6ca11820, 0x26a32: 0x6c1ba420,
-	0x26a34: 0x6c562020, 0x26a35: 0x6c317020, 0x26a37: 0x6ca24420,
-	0x26a39: 0x6ca34420, 0x26a3b: 0x6c8d0c20,
-	0x26a3f: 0x6c00ae20,
-	// Block 0x9a9, offset 0x26a40
-	0x26a40: 0x6cfab020,
-	0x26a44: 0x6c76e020, 0x26a45: 0x6cd8cc20, 0x26a46: 0x6cca0420,
-	0x26a4a: 0x6d180e20,
-	0x26a4f: 0x6d183c20,
-	0x26a50: 0x6d000020, 0x26a52: 0x6d340820, 0x26a53: 0x6c313020,
-	0x26a58: 0x6c973e20,
-	0x26a5c: 0x6c950a20, 0x26a5d: 0x6c74a820,
-	0x26a61: 0x6cbad620, 0x26a62: 0x6c8d4a20,
-	0x26a69: 0x6cb12c20, 0x26a6a: 0x6c23fc20, 0x26a6b: 0x6c351820,
-	0x26a6c: 0x6d229420,
-	0x26a70: 0x6d3d0a20, 0x26a72: 0x6cf8fe20, 0x26a73: 0x6c581620,
-	0x26a74: 0x6ca02020, 0x26a75: 0x6ce14420,
-	0x26a79: 0x6cb41820, 0x26a7b: 0x6c9da420,
-	0x26a7c: 0x6c979020, 0x26a7e: 0x6c48d420,
-	// Block 0x9aa, offset 0x26a80
-	0x26a80: 0x6cb93620, 0x26a82: 0x6c8bfa20, 0x26a83: 0x6c9fd620,
-	0x26a84: 0x6cf04e20, 0x26a85: 0x6c136820, 0x26a87: 0x6c56e220,
-	0x26a88: 0x6cdc0420, 0x26a8b: 0x6c72bc20,
-	0x26a8c: 0x6ccc8420, 0x26a8d: 0x6c9ba820,
-	0x26a97: 0x6cef7620,
-	0x26a98: 0x6cf75a20, 0x26a99: 0x6c8e2a20,
-	0x26a9c: 0x6c0ad820, 0x26a9d: 0x6cf13820,
-	0x26aa1: 0x6c85b420, 0x26aa2: 0x6d304420,
-	0x26aa4: 0x6d1df220, 0x26aa5: 0x6c554e20, 0x26aa6: 0x6cecda20, 0x26aa7: 0x6c034c20,
-	0x26aa8: 0x6c649220,
-	0x26aad: 0x6d426a20, 0x26aae: 0x6d2df220, 0x26aaf: 0x6c0e7a20,
-	0x26ab0: 0x6cbfb220, 0x26ab1: 0x6d0f5a20,
-	0x26ab4: 0x6c300620, 0x26ab5: 0x6cc19820,
-	0x26aba: 0x6caff820, 0x26abb: 0x6d2d2c20,
-	0x26abe: 0x6cccf420, 0x26abf: 0x6c46bc20,
-	// Block 0x9ab, offset 0x26ac0
-	0x26ac0: 0x6c0c9020, 0x26ac1: 0x6d152220, 0x26ac2: 0x6c3eaa20,
-	0x26ac4: 0x6d034020, 0x26ac5: 0x6cd3a620, 0x26ac6: 0x6ce6fc20,
-	0x26ac9: 0x6c2f6220,
-	0x26acc: 0x6ce86e20, 0x26acd: 0x6cfef620, 0x26ace: 0x6cf3e020, 0x26acf: 0x6cade420,
-	0x26ad0: 0x6c5ade20,
-	0x26ad5: 0x6c7f2220,
-	0x26ad9: 0x6cd8e220, 0x26ada: 0x6c250220, 0x26adb: 0x6ccc7220,
-	0x26adc: 0x6d38f020, 0x26add: 0x6d2fd820, 0x26ade: 0x6cef3220, 0x26adf: 0x6c7f2620,
-	0x26ae0: 0x6c0a3a20, 0x26ae3: 0x6c303e20,
-	0x26ae6: 0x6ca51620, 0x26ae7: 0x6d005420,
-	0x26ae8: 0x6cc54020, 0x26ae9: 0x6ce98e20, 0x26aea: 0x6cf0d820, 0x26aeb: 0x6d1f7020,
-	0x26aec: 0x6c9a2820, 0x26aed: 0x6d25b220, 0x26aee: 0x6d384220,
-	0x26af6: 0x6cd9ea20,
-	0x26af8: 0x6c474820, 0x26af9: 0x6ccee620, 0x26afb: 0x6d2f9220,
-	0x26afc: 0x6cb02820, 0x26aff: 0x6ce70820,
-	// Block 0x9ac, offset 0x26b00
-	0x26b01: 0x6c1ae220, 0x26b02: 0x6caedc20, 0x26b03: 0x6c153c20,
-	0x26b04: 0x6d1dca20, 0x26b05: 0x6cd6ea20, 0x26b07: 0x6cf48420,
-	0x26b09: 0x6cb03020, 0x26b0a: 0x6c596020,
-	0x26b0c: 0x6c3f1e20, 0x26b0e: 0x6c0c9620,
-	0x26b13: 0x6ca4d020,
-	0x26b15: 0x6c0c9820, 0x26b16: 0x6cf11420, 0x26b17: 0x6d1dd620,
-	0x26b19: 0x6ca52620, 0x26b1a: 0x6c48fe20,
-	0x26b20: 0x6c879220, 0x26b22: 0x6d035e20, 0x26b23: 0x6d0d2220,
-	0x26b24: 0x6cb37420, 0x26b25: 0x6cadca20,
-	0x26b2a: 0x6cdd5c20,
-	0x26b2c: 0x6cc5e220, 0x26b2d: 0x6ccd3a20,
-	0x26b32: 0x6cdd5e20,
-	0x26b38: 0x6c27d620, 0x26b3a: 0x6c9af020,
-	// Block 0x9ad, offset 0x26b40
-	0x26b43: 0x6cd44820,
-	0x26b48: 0x6c46a620, 0x26b4a: 0x6c4da620, 0x26b4b: 0x6cd39020,
-	0x26b4c: 0x6d102020, 0x26b4e: 0x6c479620,
-	0x26b5b: 0x6c77fe20,
-	0x26b5e: 0x6c709c20,
-	0x26b60: 0x6cac2e20, 0x26b61: 0x6c12f820, 0x26b62: 0x6c05b220, 0x26b63: 0x6d047020,
-	0x26b64: 0x6c111420, 0x26b67: 0x6c8c2420,
-	0x26b68: 0x6c00b020,
-	0x26b6c: 0x6c9d6220, 0x26b6d: 0x6c7f3e20,
-	0x26b71: 0x6cfee020, 0x26b73: 0x6ccf1e20,
-	0x26b7b: 0x6c5d7c20,
-	0x26b7c: 0x6ca6b420,
-	// Block 0x9ae, offset 0x26b80
-	0x26b84: 0x6d335620, 0x26b86: 0x6c8c5c20, 0x26b87: 0x6d2c4420,
-	0x26b8a: 0x6d27be20,
-	0x26b8d: 0x6d071c20,
-	0x26b94: 0x6c1a2a20, 0x26b95: 0x6cf2c020, 0x26b96: 0x6cf68620,
-	0x26b99: 0x6c074820,
-	0x26b9c: 0x6cce1c20,
-	0x26ba0: 0x6d23d020, 0x26ba1: 0x6c9d8020,
-	0x26bb2: 0x6c32b020,
-	0x26bb5: 0x6c144a20, 0x26bb7: 0x6d2b0820,
-	0x26bb8: 0x6c1a8820, 0x26bba: 0x6ce69220,
-	// Block 0x9af, offset 0x26bc0
-	0x26bc5: 0x6d157020,
-	0x26bcb: 0x6d10ba20,
-	0x26bce: 0x6c7a6620,
-	0x26bd0: 0x6c3b9c20, 0x26bd1: 0x6d010420, 0x26bd2: 0x6c1a8a20,
-	0x26bdb: 0x6c7d2420,
-	0x26bdf: 0x6c0d6220,
-	0x26be1: 0x6c90cc20,
-	0x26be5: 0x6d18fa20, 0x26be6: 0x6c9da620, 0x26be7: 0x6d024620,
-	0x26bf1: 0x6c4a9c20, 0x26bf3: 0x6c955e20,
-	0x26bf6: 0x6ccdce20,
-	0x26bfe: 0x6c717a20, 0x26bff: 0x6c318420,
-	// Block 0x9b0, offset 0x26c00
-	0x26c02: 0x6cfaf220,
-	0x26c05: 0x6d356020,
-	0x26c08: 0x6c0d9020,
-	0x26c15: 0x6d356220, 0x26c16: 0x6d3bfa20, 0x26c17: 0x6d092a20,
-	0x26c18: 0x6c893020, 0x26c19: 0x6cdcb220,
-	0x26c26: 0x6c808c20, 0x26c27: 0x6c72cc20,
-	0x26c28: 0x6c9df220, 0x26c29: 0x6d0ab420, 0x26c2a: 0x6d2ea020, 0x26c2b: 0x6c4c0c20,
-	0x26c32: 0x6d376820,
-	0x26c3d: 0x6cf12c20, 0x26c3e: 0x6cc36a20, 0x26c3f: 0x6c14ac20,
-	// Block 0x9b1, offset 0x26c40
-	0x26c48: 0x6cc63020, 0x26c4a: 0x6d272820,
-	0x26c4c: 0x6d3ece20,
-	0x26c50: 0x6c965420, 0x26c51: 0x6c4b3620, 0x26c53: 0x6c19f420,
-	0x26c55: 0x6c709e20, 0x26c56: 0x6ce4fe20, 0x26c57: 0x6ced9820,
-	0x26c5b: 0x6d33d820,
-	0x26c5e: 0x6ca42c20,
-	0x26c63: 0x6c4db420,
-	0x26c68: 0x6cf6b020, 0x26c69: 0x6c8bd420,
-	0x26c6c: 0x6d0c2e20, 0x26c6d: 0x6d074220,
-	0x26c72: 0x6c56d220, 0x26c73: 0x6c423620,
-	0x26c74: 0x6d074c20, 0x26c76: 0x6cf90a20,
-	0x26c7a: 0x6c258420,
-	0x26c7d: 0x6cf92a20, 0x26c7e: 0x6c560220,
-	// Block 0x9b2, offset 0x26c80
-	0x26c85: 0x6d0c4c20,
-	0x26c8e: 0x6d170e20, 0x26c8f: 0x6c1b1a20,
-	0x26c90: 0x6c741c20, 0x26c92: 0x6d40b220,
-	0x26c9c: 0x6c699420, 0x26c9d: 0x6d178220, 0x26c9f: 0x6ce05e20,
-	0x26ca0: 0x6c1c1420, 0x26ca1: 0x6c037a20, 0x26ca2: 0x6ce82820, 0x26ca3: 0x6d3f7a20,
-	0x26ca4: 0x6cc05420, 0x26ca7: 0x6c1c1620,
-	0x26ca8: 0x6cf7e020,
-	0x26cb0: 0x6ca69c20, 0x26cb2: 0x6c241420,
-	0x26cb4: 0x6cf44820, 0x26cb6: 0x6c1f4820, 0x26cb7: 0x6cda4e20,
-	0x26cb8: 0x6d1df820, 0x26cb9: 0x6c71bc20, 0x26cba: 0x6c037e20,
-	0x26cbc: 0x6c229c20, 0x26cbd: 0x6c2c6420, 0x26cbe: 0x6cac9820, 0x26cbf: 0x6c1c2620,
-	// Block 0x9b3, offset 0x26cc0
-	0x26cc1: 0x6cc0ac20, 0x26cc3: 0x6d0ca420,
-	0x26ccd: 0x6d2d2e20,
-	0x26cd2: 0x6cfce220, 0x26cd3: 0x6c084620,
-	0x26cd4: 0x6c7ba620, 0x26cd5: 0x6cb7a820, 0x26cd6: 0x6d389220, 0x26cd7: 0x6c713820,
-	0x26cd8: 0x6cbcca20, 0x26cd9: 0x6ca13420, 0x26cda: 0x6d258c20,
-	0x26cdc: 0x6c4b5820, 0x26cdd: 0x6d417220,
-	0x26ce7: 0x6cbccc20,
-	0x26cf0: 0x6c558a20, 0x26cf1: 0x6cc08820, 0x26cf2: 0x6c4d2220, 0x26cf3: 0x6c402c20,
-	0x26cf4: 0x6c812a20, 0x26cf5: 0x6ccc6c20, 0x26cf6: 0x6cf68820, 0x26cf7: 0x6c101c20,
-	0x26cf8: 0x6cd3ba20, 0x26cf9: 0x6d1e5220, 0x26cfa: 0x6c49f020,
-	0x26cfc: 0x6ca85420, 0x26cff: 0x6c545820,
-	// Block 0x9b4, offset 0x26d00
-	0x26d0a: 0x6c9d7220,
-	0x26d0e: 0x6c369420, 0x26d0f: 0x6cfb8a20,
-	0x26d10: 0x6d280020, 0x26d11: 0x6d073220, 0x26d12: 0x6cbde420, 0x26d13: 0x6c301220,
-	0x26d14: 0x6c838220, 0x26d15: 0x6cb7ca20, 0x26d16: 0x6c7fb020, 0x26d17: 0x6c3ee420,
-	0x26d18: 0x6cb71420, 0x26d19: 0x6c1d3e20,
-	0x26d1c: 0x6c245c20, 0x26d1f: 0x6ca16620,
-	0x26d20: 0x6c06b820,
-	0x26d24: 0x6c2a2e20,
-	0x26d28: 0x6c6b3a20, 0x26d29: 0x6c1d5c20, 0x26d2a: 0x6c1c7620, 0x26d2b: 0x6d23f820,
-	0x26d2c: 0x6c24ee20, 0x26d2d: 0x6cdb2620, 0x26d2e: 0x6ce42420, 0x26d2f: 0x6cd61020,
-	0x26d30: 0x6d2c4c20, 0x26d31: 0x6c3ef820, 0x26d33: 0x6c184620,
-	0x26d34: 0x6c3d0c20, 0x26d35: 0x6c543220, 0x26d36: 0x6d2c4e20,
-	// Block 0x9b5, offset 0x26d40
-	0x26d44: 0x6c6b3c20, 0x26d45: 0x6d2c5020, 0x26d46: 0x6d2d9c20,
-	0x26d49: 0x6d0dde20, 0x26d4a: 0x6c4d3020, 0x26d4b: 0x6cf48220,
-	0x26d4c: 0x6c576220, 0x26d4d: 0x6c2cde20, 0x26d4e: 0x6d115420, 0x26d4f: 0x6cd9ec20,
-	0x26d50: 0x6cb92c20, 0x26d51: 0x6c60cc20, 0x26d52: 0x6d04aa20, 0x26d53: 0x6cb7f020,
-	0x26d54: 0x6c758420, 0x26d56: 0x6c4d3220,
-	0x26d5e: 0x6d0dee20, 0x26d5f: 0x6c6b6820,
-	0x26d60: 0x6c24f420, 0x26d62: 0x6ce96a20, 0x26d63: 0x6d2ee620,
-	0x26d64: 0x6cb16c20, 0x26d65: 0x6c930e20, 0x26d66: 0x6d342020, 0x26d67: 0x6c1f8820,
-	0x26d68: 0x6c9da820, 0x26d69: 0x6cbaec20, 0x26d6b: 0x6c892420,
-	0x26d72: 0x6c86dc20,
-	0x26d76: 0x6c359a20, 0x26d77: 0x6cdb5820,
-	0x26d78: 0x6c74f020, 0x26d7b: 0x6c717c20,
-	0x26d7c: 0x6ce03a20, 0x26d7d: 0x6c8a4820, 0x26d7e: 0x6cca0a20, 0x26d7f: 0x6c309220,
-	// Block 0x9b6, offset 0x26d80
-	0x26d81: 0x6d28d420, 0x26d82: 0x6d34b220,
-	0x26d86: 0x6d08ca20, 0x26d87: 0x6c8d8620,
-	0x26d8a: 0x6c2abe20,
-	0x26d8d: 0x6d2dbe20, 0x26d8e: 0x6d07f020, 0x26d8f: 0x6cbdf220,
-	0x26d90: 0x6c69da20, 0x26d91: 0x6cb0da20,
-	0x26d94: 0x6c4e6e20,
-	0x26d9a: 0x6d21f220, 0x26d9b: 0x6c4ca420,
-	0x26d9d: 0x6d0a5420,
-	0x26da0: 0x6d0a5620, 0x26da1: 0x6c156c20, 0x26da2: 0x6c6b8020, 0x26da3: 0x6c719420,
-	0x26da4: 0x6d0e1820, 0x26da5: 0x6c31f620, 0x26da7: 0x6c53e020,
-	0x26da8: 0x6cfd4a20, 0x26da9: 0x6d0a5820,
-	0x26dae: 0x6c8db020, 0x26daf: 0x6c6b8620,
-	0x26db0: 0x6d197e20, 0x26db1: 0x6cc22a20, 0x26db2: 0x6c41c020, 0x26db3: 0x6c3c8c20,
-	0x26db5: 0x6c753820, 0x26db6: 0x6cc16e20,
-	0x26dbb: 0x6c6fe020,
-	0x26dbd: 0x6c61ba20, 0x26dbe: 0x6c612c20,
-	// Block 0x9b7, offset 0x26dc0
-	0x26dc5: 0x6cf77420, 0x26dc6: 0x6cacd220,
-	0x26dc8: 0x6c7bf020, 0x26dc9: 0x6c7a8e20, 0x26dcb: 0x6c7a9020,
-	0x26dcc: 0x6d2cbe20, 0x26dcf: 0x6c03b220,
-	0x26dd2: 0x6c190220, 0x26dd3: 0x6c569820,
-	0x26dd4: 0x6caa6220, 0x26dd5: 0x6c356220, 0x26dd6: 0x6d046a20, 0x26dd7: 0x6c33ce20,
-	0x26dd8: 0x6cd10020, 0x26dd9: 0x6cecdc20, 0x26dda: 0x6c3b2e20,
-	0x26ddd: 0x6cf60420, 0x26dde: 0x6d3e2e20,
-	0x26de0: 0x6c569a20,
-	0x26de5: 0x6c0cea20, 0x26de7: 0x6ceba620,
-	0x26de8: 0x6c04cc20, 0x26de9: 0x6c43e420, 0x26deb: 0x6c77f620,
-	0x26df2: 0x6d3c8c20, 0x26df3: 0x6c3e9220,
-	0x26df4: 0x6ca12020, 0x26df5: 0x6c63c620, 0x26df6: 0x6ceb2620, 0x26df7: 0x6d235a20,
-	0x26df9: 0x6ca24620, 0x26dfa: 0x6c745e20, 0x26dfb: 0x6c712820,
-	0x26dfc: 0x6c486220, 0x26dfd: 0x6cb35a20,
-	// Block 0x9b8, offset 0x26e00
-	0x26e00: 0x6ca63c20,
-	0x26e04: 0x6cec1e20, 0x26e05: 0x6d0d9620,
-	0x26e14: 0x6c1e2c20, 0x26e15: 0x6c7ba820, 0x26e16: 0x6c4d7020,
-	0x26e18: 0x6cfdd020, 0x26e19: 0x6cf65c20, 0x26e1b: 0x6c25a820,
-	0x26e1c: 0x6ce6fe20, 0x26e1d: 0x6cc92420, 0x26e1f: 0x6c345820,
-	0x26e20: 0x6c182a20,
-	0x26e24: 0x6c833820, 0x26e25: 0x6d3e6420, 0x26e27: 0x6d332420,
-	0x26e28: 0x6d426c20, 0x26e2b: 0x6c773020,
-	0x26e2c: 0x6d293a20, 0x26e2e: 0x6d250020, 0x26e2f: 0x6cbf4620,
-	0x26e33: 0x6c381820,
-	0x26e34: 0x6d0a2220, 0x26e36: 0x6c622e20,
-	0x26e38: 0x6c13a620,
-	// Block 0x9b9, offset 0x26e40
-	0x26e40: 0x6cd4fe20, 0x26e41: 0x6d08a820, 0x26e42: 0x6d00d220, 0x26e43: 0x6ce2f820,
-	0x26e44: 0x6c4ef220, 0x26e45: 0x6cfac020, 0x26e46: 0x6ccd0420, 0x26e47: 0x6cea8c20,
-	0x26e48: 0x6c4f8420, 0x26e49: 0x6c7dbc20, 0x26e4a: 0x6c133620, 0x26e4b: 0x6c30bc20,
-	0x26e4c: 0x6caac620, 0x26e4d: 0x6d0e9a20, 0x26e4e: 0x6c1a2c20, 0x26e4f: 0x6cb40a20,
-	0x26e50: 0x6cb7ba20, 0x26e51: 0x6d26d420, 0x26e52: 0x6c3d8c20,
-	0x26e57: 0x6ce6dc20,
-	0x26e5f: 0x6cf2c220,
-	0x26e60: 0x6cd11220, 0x26e61: 0x6ceb8c20,
-	0x26e74: 0x6ce06a20, 0x26e76: 0x6d0b6020, 0x26e77: 0x6d36ca20,
-	0x26e78: 0x6c92be20, 0x26e79: 0x6d0dd020, 0x26e7a: 0x6c70c220,
-	0x26e7d: 0x6c2a8020, 0x26e7f: 0x6c1f7020,
-	// Block 0x9ba, offset 0x26e80
-	0x26e80: 0x6d412620, 0x26e81: 0x6c369620, 0x26e82: 0x6d349620, 0x26e83: 0x6caec020,
-	0x26e85: 0x6c0cbe20, 0x26e87: 0x6c2c0220,
-	0x26e90: 0x6c7f2820, 0x26e92: 0x6d133020,
-	0x26e9c: 0x6c4fe620, 0x26e9d: 0x6cac7420, 0x26e9e: 0x6ce0ae20, 0x26e9f: 0x6c774a20,
-	0x26ea0: 0x6d05ea20, 0x26ea1: 0x6d408e20, 0x26ea2: 0x6c628c20, 0x26ea3: 0x6cf52620,
-	0x26ea6: 0x6c204020,
-	0x26ea9: 0x6cb3a420, 0x26eaa: 0x6d0dd620, 0x26eab: 0x6cebb420,
-	0x26ead: 0x6c31b820, 0x26eaf: 0x6cb13020,
-	0x26eb0: 0x6c1c7820, 0x26eb1: 0x6c5d4420, 0x26eb2: 0x6cb26820,
-	0x26eb4: 0x6c235c20, 0x26eb5: 0x6d2c9620,
-	0x26eba: 0x6cec9e20,
-	0x26ebf: 0x6cec6620,
-	// Block 0x9bb, offset 0x26ec0
-	0x26ec3: 0x6c36ae20,
-	0x26ec4: 0x6cf0da20, 0x26ec5: 0x6c040420, 0x26ec7: 0x6c678020,
-	0x26ed3: 0x6c140a20,
-	0x26ed5: 0x6c1f8220, 0x26ed6: 0x6c7af220, 0x26ed7: 0x6ce2bc20,
-	0x26ed8: 0x6d406a20, 0x26ed9: 0x6c86ac20, 0x26eda: 0x6cdeb220, 0x26edb: 0x6cc9a420,
-	0x26ede: 0x6cac7a20, 0x26edf: 0x6cac7c20,
-	0x26ee3: 0x6ccb0020,
-	0x26ee4: 0x6cbbba20,
-	0x26eed: 0x6d40e220, 0x26eef: 0x6d371820,
-	0x26ef0: 0x6d0de020, 0x26ef2: 0x6c6b4820, 0x26ef3: 0x6ca5aa20,
-	// Block 0x9bc, offset 0x26f00
-	0x26f04: 0x6c944420, 0x26f05: 0x6cc15220, 0x26f07: 0x6c2af220,
-	0x26f08: 0x6c897620, 0x26f09: 0x6c15f220, 0x26f0a: 0x6cbcf820, 0x26f0b: 0x6c912220,
-	0x26f0c: 0x6c2efe20, 0x26f0d: 0x6c24f620,
-	0x26f10: 0x6c615c20, 0x26f13: 0x6c178420,
-	0x26f14: 0x6cd69a20, 0x26f15: 0x6d40f220, 0x26f17: 0x6c775a20,
-	0x26f1a: 0x6cbaf020, 0x26f1b: 0x6c847820,
-	0x26f2e: 0x6cd65e20, 0x26f2f: 0x6d243e20,
-	0x26f30: 0x6d2ee820, 0x26f31: 0x6c82f220,
-	// Block 0x9bd, offset 0x26f40
-	0x26f45: 0x6cb33e20,
-	0x26f4a: 0x6d30b620, 0x26f4b: 0x6d001e20,
-	0x26f4d: 0x6ce08620, 0x26f4e: 0x6c258620, 0x26f4f: 0x6c7fdc20,
-	0x26f51: 0x6d060220, 0x26f52: 0x6cd62820, 0x26f53: 0x6d2c9c20,
-	0x26f54: 0x6c11ba20, 0x26f57: 0x6c08fe20,
-	0x26f58: 0x6caf1c20,
-	0x26f5d: 0x6c1a5620,
-	0x26f63: 0x6cbc0c20,
-	0x26f64: 0x6c5f8620,
-	0x26f6a: 0x6d2d0420,
-	0x26f6c: 0x6c7fde20,
-	// Block 0x9be, offset 0x26f80
-	0x26f81: 0x6ce52820, 0x26f82: 0x6cc9b020, 0x26f83: 0x6c6c6e20,
-	0x26f84: 0x6d3b4020, 0x26f85: 0x6c352220, 0x26f87: 0x6c145620,
-	0x26f88: 0x6c73a020, 0x26f89: 0x6ce16220, 0x26f8a: 0x6c086420,
-	0x26f8c: 0x6c38e820, 0x26f8d: 0x6c8b6820, 0x26f8e: 0x6d2b6e20, 0x26f8f: 0x6cdcb420,
-	0x26f99: 0x6ccb8c20,
-	0x26fa7: 0x6d375c20,
-	0x26fa8: 0x6ce9d420, 0x26faa: 0x6cbe5e20,
-	0x26fac: 0x6c21e620,
-	0x26fb0: 0x6cdee620, 0x26fb1: 0x6c0e3c20, 0x26fb2: 0x6cf1f620,
-	0x26fb5: 0x6cb36220,
-	0x26fbd: 0x6ca09a20, 0x26fbe: 0x6c10e420,
-	// Block 0x9bf, offset 0x26fc0
-	0x26fc1: 0x6c7c2020, 0x26fc3: 0x6c260220,
-	0x26fc4: 0x6cc54420, 0x26fc5: 0x6c068020, 0x26fc6: 0x6c7f8020,
-	0x26fcd: 0x6ca75220, 0x26fce: 0x6c84c220,
-	0x26fd5: 0x6c697220, 0x26fd6: 0x6c919e20, 0x26fd7: 0x6c879620,
-	0x26fd8: 0x6c900820, 0x26fd9: 0x6c4baa20,
-	0x26fdd: 0x6c161c20,
-	0x26fe4: 0x6cfb1820, 0x26fe6: 0x6c165620,
-	0x26fe8: 0x6d029020, 0x26fe9: 0x6d2ea820,
-	0x26fef: 0x6cd6c620,
-	0x26ffb: 0x6c9d1220,
-	0x26ffc: 0x6c947420, 0x26ffd: 0x6c965620,
-	// Block 0x9c0, offset 0x27000
-	0x27000: 0x6c2d0220,
-	0x27008: 0x6c2f2820, 0x2700a: 0x6cecb220, 0x2700b: 0x6d274620,
-	0x2700c: 0x6c948620, 0x2700e: 0x6c948a20,
-	0x27013: 0x6c837220,
-	0x27015: 0x6cec6020, 0x27016: 0x6c2f3e20, 0x27017: 0x6ca59620,
-	0x27018: 0x6cceb220, 0x27019: 0x6d019e20, 0x2701a: 0x6cafe820,
-	0x27025: 0x6c98dc20, 0x27027: 0x6d1ade20,
-	0x27029: 0x6c0f0a20, 0x2702b: 0x6d3b0220,
-	0x2702e: 0x6c1cc820,
-	0x27036: 0x6ca24820, 0x27037: 0x6ceb2820,
-	0x27039: 0x6ce7be20, 0x2703a: 0x6d128820,
-	// Block 0x9c1, offset 0x27040
-	0x27041: 0x6c5a7220, 0x27043: 0x6cc60020,
-	0x27045: 0x6d130620,
-	0x2704b: 0x6ceb3a20,
-	0x27056: 0x6d413a20, 0x27057: 0x6d23d220,
-	0x2705a: 0x6c000c20,
-	0x2705c: 0x6d38a420, 0x2705d: 0x6cec9c20,
-	0x27061: 0x6c34ae20, 0x27062: 0x6d384420, 0x27063: 0x6c4cfc20,
-	0x27064: 0x6c5a0420, 0x27065: 0x6c9e6220,
-	0x27069: 0x6c211a20, 0x2706a: 0x6cbce420, 0x2706b: 0x6c45b220,
-	0x2706c: 0x6ce69420, 0x2706d: 0x6c9a2a20,
-	0x27071: 0x6ce1a420,
-	0x27074: 0x6cc6c420, 0x27077: 0x6cc6c620,
-	0x27078: 0x6cb66420, 0x27079: 0x6c4c9a20,
-	0x2707d: 0x6cfe6220, 0x2707e: 0x6ce4ca20,
-	// Block 0x9c2, offset 0x27080
-	0x27085: 0x6cff4020,
-	0x27088: 0x6d2db620, 0x27089: 0x6c258820,
-	0x27094: 0x6c7ffc20,
-	0x27098: 0x6cd02e20, 0x2709a: 0x6c830e20, 0x2709b: 0x6c879820,
-	0x2709d: 0x6c14e620, 0x2709e: 0x6ca8d020, 0x2709f: 0x6c947620,
-	0x270a1: 0x6ce63a20, 0x270a2: 0x6c5ba620,
-	0x270a7: 0x6c458020,
-	0x270b0: 0x6cb77220, 0x270b1: 0x6d20fa20, 0x270b3: 0x6d02d220,
-	0x270b8: 0x6d26ae20, 0x270b9: 0x6c034e20, 0x270ba: 0x6c276a20, 0x270bb: 0x6c5eba20,
-	0x270bc: 0x6d089220, 0x270bf: 0x6c743c20,
-	// Block 0x9c3, offset 0x270c0
-	0x270c0: 0x6ca99420,
-	0x270c8: 0x6c325220, 0x270c9: 0x6c602620,
-	0x270d0: 0x6cabc820, 0x270d1: 0x6c45f020, 0x270d2: 0x6c07ba20,
-	0x270d4: 0x6c794220, 0x270d5: 0x6d105020, 0x270d6: 0x6c8f0820, 0x270d7: 0x6ca5ee20,
-	0x270d8: 0x6d2cca20, 0x270d9: 0x6d1b5c20, 0x270da: 0x6ca72820, 0x270db: 0x6cad9020,
-	0x270dd: 0x6c458e20, 0x270de: 0x6c109e20, 0x270df: 0x6c512e20,
-	0x270e0: 0x6cc71220, 0x270e1: 0x6c4b5020,
-	0x270e5: 0x6c09b620, 0x270e6: 0x6cf63020, 0x270e7: 0x6c712a20,
-	0x270e8: 0x6c5cf420, 0x270e9: 0x6c09e420, 0x270eb: 0x6ce56420,
-	0x270ec: 0x6d332820, 0x270ef: 0x6d181020,
-	0x270f0: 0x6c22d220, 0x270f2: 0x6c0e2620,
-	0x270f7: 0x6c459c20,
-	0x270fa: 0x6c381a20,
-	0x270fd: 0x6d0fce20, 0x270fe: 0x6d064820,
-	// Block 0x9c4, offset 0x27100
-	0x27101: 0x6c52b620,
-	0x27104: 0x6d2a0a20, 0x27105: 0x6c148420, 0x27106: 0x6c537620,
-	0x27108: 0x6ce4b820,
-	0x2710c: 0x6d340a20, 0x2710d: 0x6d039220, 0x2710e: 0x6d062220,
-	0x27111: 0x6d325820,
-	0x27114: 0x6ced4020,
-	0x27118: 0x6c75dc20,
-	0x2711d: 0x6cf30c20,
-	0x27120: 0x6c92c220, 0x27122: 0x6d32f220, 0x27123: 0x6cc71a20,
-	0x27124: 0x6c1a3c20, 0x27125: 0x6c3ee620, 0x27127: 0x6c369820,
-	0x27128: 0x6ce1e620, 0x27129: 0x6ce12e20, 0x2712b: 0x6c730020,
-	0x2712c: 0x6c17c020, 0x2712d: 0x6cde9620, 0x2712e: 0x6c2c0420,
-	0x27130: 0x6d3fc020, 0x27133: 0x6c794c20,
-	0x27134: 0x6ce99820, 0x27136: 0x6c794e20,
-	// Block 0x9c5, offset 0x27140
-	0x27145: 0x6cc71c20, 0x27146: 0x6d276420, 0x27147: 0x6c517a20,
-	0x27148: 0x6d400820, 0x27149: 0x6c235e20, 0x2714a: 0x6cbfcc20,
-	0x2714e: 0x6ca2b420, 0x2714f: 0x6c346420,
-	0x27150: 0x6d065a20, 0x27151: 0x6c795620, 0x27152: 0x6cfd1220,
-	0x2715b: 0x6c31ba20,
-	0x2715c: 0x6c76ee20, 0x2715e: 0x6d1bf020,
-	0x27162: 0x6d3e9620,
-	0x27167: 0x6c5a0620,
-	0x27169: 0x6caed020, 0x2716b: 0x6c86ae20,
-	0x2716d: 0x6c0f8220, 0x2716e: 0x6c444420, 0x2716f: 0x6c716620,
-	0x27170: 0x6c783420, 0x27172: 0x6c55ce20, 0x27173: 0x6d115820,
-	0x27174: 0x6ce14820, 0x27176: 0x6cbf7020, 0x27177: 0x6cc72820,
-	0x27178: 0x6c8f1e20, 0x27179: 0x6c5c5e20, 0x2717a: 0x6c5f6220,
-	// Block 0x9c6, offset 0x27180
-	0x27189: 0x6d371a20, 0x2718b: 0x6ce15220,
-	0x2718c: 0x6d355c20, 0x2718d: 0x6c775e20,
-	0x27194: 0x6d107220, 0x27196: 0x6ce18420, 0x27197: 0x6c52d820,
-	0x2719b: 0x6c897820,
-	0x2719d: 0x6c12a020,
-	0x271a1: 0x6ca3aa20, 0x271a2: 0x6d400e20,
-	0x271a4: 0x6c2af420, 0x271a6: 0x6c68a220, 0x271a7: 0x6caeec20,
-	0x271a9: 0x6c49fa20, 0x271aa: 0x6c377420, 0x271ab: 0x6c670620,
-	0x271ac: 0x6c69d220, 0x271ad: 0x6caaca20, 0x271ae: 0x6d2a6220,
-	0x271b3: 0x6caef620,
-	0x271b4: 0x6c292020, 0x271b6: 0x6cc1f620, 0x271b7: 0x6c889620,
-	0x271b8: 0x6ca2be20, 0x271b9: 0x6c805220,
-	0x271be: 0x6c3baa20,
-	// Block 0x9c7, offset 0x271c0
-	0x271c2: 0x6c5d0e20,
-	0x271c6: 0x6c7bb420,
-	0x271c8: 0x6d1b2a20, 0x271c9: 0x6cd69c20, 0x271ca: 0x6c671e20,
-	0x271d2: 0x6c964420,
-	0x271d4: 0x6c933c20,
-	0x271da: 0x6c446a20, 0x271db: 0x6cc51220,
-	0x271de: 0x6cb22e20,
-	0x271e0: 0x6c900a20,
-	0x271e4: 0x6d320c20, 0x271e5: 0x6cfd4c20,
-	0x271e8: 0x6c8c8e20, 0x271e9: 0x6c88aa20, 0x271ea: 0x6ccd2420, 0x271eb: 0x6c0fd420,
-	0x271ec: 0x6c87a820,
-	0x271f3: 0x6d013a20,
-	0x271f4: 0x6c446e20, 0x271f5: 0x6c9fe020, 0x271f6: 0x6c88ae20,
-	0x271f9: 0x6c753c20, 0x271fa: 0x6d38c820,
-	0x271ff: 0x6c784820,
-	// Block 0x9c8, offset 0x27200
-	0x27201: 0x6c2f2a20, 0x27203: 0x6d30ce20,
-	0x27205: 0x6cd4ac20, 0x27206: 0x6c5e9020, 0x27207: 0x6c8f7c20,
-	0x27208: 0x6c49ea20, 0x27209: 0x6d2a5620, 0x2720a: 0x6cfd4420, 0x2720b: 0x6cb8ae20,
-	0x2720d: 0x6ccfd820,
-	0x27210: 0x6d1ae020, 0x27211: 0x6c6be420,
-	0x27214: 0x6ccffe20, 0x27215: 0x6cd00020, 0x27216: 0x6cc95220,
-	0x2721b: 0x6cf8c020,
-	0x27221: 0x6c7aac20, 0x27223: 0x6cc1c620,
-	0x27225: 0x6c443e20, 0x27226: 0x6c050820,
-	0x27228: 0x6c0a7c20, 0x27229: 0x6cb92e20,
-	0x27230: 0x6c0d6420, 0x27231: 0x6c050a20, 0x27233: 0x6d42ae20,
-	0x27234: 0x6cb0d020, 0x27236: 0x6c5e3620,
-	0x2723e: 0x6c051020,
-	// Block 0x9c9, offset 0x27240
-	0x2724a: 0x6ca9d820,
-	0x2724c: 0x6c18fc20, 0x2724e: 0x6cae4e20,
-	0x27251: 0x6c3f2e20, 0x27252: 0x6ce88220,
-	0x2725c: 0x6cb04e20, 0x2725d: 0x6cb36420,
-	0x27260: 0x6c1b7420, 0x27263: 0x6d093e20,
-	0x27264: 0x6cb74020, 0x27265: 0x6cf4b220,
-	0x27268: 0x6d357e20, 0x27269: 0x6c2c1c20, 0x2726a: 0x6c22fe20, 0x2726b: 0x6d1ef420,
-	0x27279: 0x6c230020,
-	0x2727c: 0x6c2c1e20, 0x2727d: 0x6d3d2620, 0x2727f: 0x6d408020,
-	// Block 0x9ca, offset 0x27280
-	0x27280: 0x6c238c20, 0x27283: 0x6caca820,
-	0x27284: 0x6d0d4c20, 0x27285: 0x6cb74e20, 0x27286: 0x6cc6fa20, 0x27287: 0x6c63a420,
-	0x27289: 0x6d359220, 0x2728a: 0x6cc00e20, 0x2728b: 0x6d268a20,
-	0x2728d: 0x6cd32420,
-	0x27291: 0x6c4fc020,
-	0x27299: 0x6ceab220,
-	0x2729c: 0x6c0cde20, 0x2729e: 0x6c770020,
-	0x272a2: 0x6c21aa20,
-	0x272a4: 0x6c229020, 0x272a6: 0x6d1ad020, 0x272a7: 0x6cd34c20,
-	0x272a8: 0x6ca3b820, 0x272a9: 0x6cc85820, 0x272ab: 0x6d0f9e20,
-	0x272ac: 0x6c1a9820, 0x272ae: 0x6c21f820,
-	0x272b1: 0x6c457620, 0x272b2: 0x6c9c4220,
-	0x272b4: 0x6c612e20,
-	0x272bc: 0x6c44b220, 0x272bd: 0x6d2a6c20,
-	// Block 0x9cb, offset 0x272c0
-	0x272c1: 0x6c081420,
-	0x272c7: 0x6d030c20,
-	0x272c8: 0x6c7df020, 0x272ca: 0x6c2e8e20,
-	0x272cd: 0x6ce66a20,
-	0x272da: 0x6cd71c20,
-	0x272de: 0x6c275620,
-	0x272e6: 0x6c851020,
-	0x272e8: 0x6d1e2820, 0x272e9: 0x6c684220,
-	0x272ec: 0x6cde0420, 0x272ed: 0x6cc24620, 0x272ee: 0x6d1a6020, 0x272ef: 0x6d24e820,
-	0x272f0: 0x6c6abc20, 0x272f2: 0x6cb8da20, 0x272f3: 0x6d10a020,
-	0x272f4: 0x6d0ba620, 0x272f7: 0x6cbe4a20,
-	0x272ff: 0x6cadd420,
-	// Block 0x9cc, offset 0x27300
-	0x27317: 0x6c635820,
-	0x27319: 0x6ce82c20, 0x2731b: 0x6ce2ec20,
-	0x27321: 0x6c33f620, 0x27322: 0x6c15ba20, 0x27323: 0x6c636820,
-	0x27324: 0x6c1c2820, 0x27325: 0x6c64aa20, 0x27326: 0x6cd5e020,
-	0x2732f: 0x6cde5a20,
-	// Block 0x9cd, offset 0x27340
-	0x27355: 0x6d33ea20, 0x27357: 0x6d256e20,
-	0x2735a: 0x6c54d420,
-	0x2735c: 0x6c8b1220,
-	0x27360: 0x6d2ad420, 0x27362: 0x6c1f5e20,
-	0x27366: 0x6cc0ba20, 0x27367: 0x6c07fa20,
-	0x27379: 0x6c588620, 0x2737a: 0x6c7aca20, 0x2737b: 0x6cd10c20,
-	0x2737d: 0x6c6afe20, 0x2737f: 0x6cee2c20,
-	// Block 0x9ce, offset 0x27380
-	0x27383: 0x6c54de20,
-	0x2738a: 0x6d2ae620, 0x2738b: 0x6d297020,
-	0x2738c: 0x6d106420, 0x2738e: 0x6c1bba20, 0x2738f: 0x6c701220,
-	0x2739a: 0x6c89fe20, 0x2739b: 0x6d209620,
-	0x273a0: 0x6c0b4a20, 0x273a2: 0x6c7bc820,
-	0x273ac: 0x6c1e4a20, 0x273ad: 0x6d0b3620, 0x273ae: 0x6d3d8620,
-	0x273b0: 0x6cbcda20, 0x273b1: 0x6cfcf020, 0x273b3: 0x6d250620,
-	0x273b4: 0x6cf46e20, 0x273b5: 0x6c693620, 0x273b6: 0x6cfe5020, 0x273b7: 0x6ccc7420,
-	0x273b9: 0x6d36cc20,
-	0x273bc: 0x6c1d5a20, 0x273be: 0x6c0b0620, 0x273bf: 0x6ceeb820,
-	// Block 0x9cf, offset 0x273c0
-	0x273d3: 0x6c2a3220,
-	0x273dd: 0x6d23d820, 0x273de: 0x6ce9b820,
-	0x273e1: 0x6c17c220,
-	0x273e5: 0x6c5c4420, 0x273e6: 0x6cba2620,
-	0x273e8: 0x6cf01a20,
-	0x273f0: 0x6d1f7420,
-	0x273fc: 0x6c2ca020, 0x273fe: 0x6c26f620,
-	// Block 0x9d0, offset 0x27400
-	0x27401: 0x6d1f7620, 0x27402: 0x6c702620, 0x27403: 0x6ce9bc20,
-	0x27404: 0x6d297620, 0x27407: 0x6c5c6020,
-	0x27409: 0x6ccc8220,
-	0x2740c: 0x6c5e1020,
-	0x27414: 0x6d115a20,
-	0x27419: 0x6cfd1e20,
-	0x2741e: 0x6cfd2020,
-	0x2742c: 0x6c2caa20, 0x2742e: 0x6c703220,
-	0x27432: 0x6c5c7420,
-	0x27434: 0x6c77cc20, 0x27435: 0x6d1f8420,
-	0x27438: 0x6c870e20,
-	0x2743c: 0x6c201420, 0x2743e: 0x6c1b6820,
-	// Block 0x9d1, offset 0x27440
-	0x27440: 0x6c5e3820, 0x27442: 0x6d1f9020,
-	0x27444: 0x6d270e20,
-	0x2744e: 0x6cded820, 0x2744f: 0x6d29b420,
-	0x27453: 0x6ca8ac20,
-	0x27454: 0x6d3b4a20,
-	0x27461: 0x6cfc6220,
-	0x27469: 0x6cd22a20, 0x2746b: 0x6c79ca20,
-	0x2746c: 0x6cb6c620, 0x2746d: 0x6ce91420, 0x2746e: 0x6c387e20, 0x2746f: 0x6c258e20,
-	0x27472: 0x6cea3820, 0x27473: 0x6c137420,
-	0x27474: 0x6c110020, 0x27475: 0x6cfe1420, 0x27476: 0x6cadfc20, 0x27477: 0x6c6e0220,
-	0x27478: 0x6cb56a20, 0x27479: 0x6cceae20, 0x2747a: 0x6ca97420, 0x2747b: 0x6ca30420,
-	0x2747d: 0x6cbd5020,
-	// Block 0x9d2, offset 0x27480
-	0x2748d: 0x6c090c20,
-	0x27493: 0x6c092420,
-	0x27494: 0x6c05a220, 0x27495: 0x6c0b7620, 0x27496: 0x6d3e0220, 0x27497: 0x6ca30a20,
-	0x27498: 0x6cf07020, 0x27499: 0x6c4fbe20,
-	0x274a1: 0x6c6c8220, 0x274a3: 0x6d333c20,
-	0x274a7: 0x6cbc8220,
-	0x274ae: 0x6c501620, 0x274af: 0x6ce71e20,
-	0x274b0: 0x6d2a4020, 0x274b1: 0x6cd15420, 0x274b2: 0x6c25a420, 0x274b3: 0x6c597e20,
-	0x274b4: 0x6cc78e20, 0x274b5: 0x6d292e20, 0x274b6: 0x6ca6f820,
-	0x274be: 0x6cfa8620,
-	// Block 0x9d3, offset 0x274c0
-	0x274c8: 0x6cc2bc20, 0x274c9: 0x6c619a20, 0x274ca: 0x6d1a3620, 0x274cb: 0x6c850620,
-	0x274cc: 0x6c984620, 0x274cd: 0x6cceca20, 0x274ce: 0x6c4e8e20, 0x274cf: 0x6c260e20,
-	0x274d0: 0x6c759c20, 0x274d1: 0x6c61bc20, 0x274d2: 0x6c107820, 0x274d3: 0x6c905420,
-	0x274d4: 0x6c3d2220, 0x274d5: 0x6d1f0e20, 0x274d6: 0x6c7b1c20,
-	0x274dc: 0x6cfe2220,
-	0x274e1: 0x6d279420, 0x274e3: 0x6cbd5e20,
-	0x274e4: 0x6c5b2c20, 0x274e5: 0x6cb42e20,
-	0x274eb: 0x6c83b220,
-	0x274ec: 0x6cadcc20, 0x274ed: 0x6cd4c620, 0x274ee: 0x6c707620, 0x274ef: 0x6d14e020,
-	0x274f0: 0x6d32a820, 0x274f1: 0x6c1d0e20, 0x274f3: 0x6cf77620,
-	0x274f5: 0x6c561a20, 0x274f6: 0x6cc74420,
-	// Block 0x9d4, offset 0x27500
-	0x2750c: 0x6c590c20, 0x2750d: 0x6cbc3c20, 0x2750e: 0x6d33d020, 0x2750f: 0x6d1c6c20,
-	0x27510: 0x6cf7e220, 0x27511: 0x6cbb7620, 0x27512: 0x6c61fa20, 0x27513: 0x6d32bc20,
-	0x27514: 0x6c59b420, 0x27516: 0x6d210a20, 0x27517: 0x6d405a20,
-	0x27518: 0x6c99f420,
-	0x2751c: 0x6cd13220,
-	0x27529: 0x6cc2e620,
-	0x27530: 0x6c676020, 0x27531: 0x6c512020, 0x27533: 0x6ce75220,
-	0x27534: 0x6c513020, 0x27535: 0x6cf15220, 0x27536: 0x6d17cc20, 0x27537: 0x6cacfe20,
-	0x2753a: 0x6cf22620, 0x2753b: 0x6cb99820,
-	0x2753c: 0x6c862020, 0x2753d: 0x6d150a20, 0x2753e: 0x6c20ac20, 0x2753f: 0x6d06e820,
-	// Block 0x9d5, offset 0x27540
-	0x27540: 0x6cefd020,
-	0x27546: 0x6c439420,
-	0x27548: 0x6d226220, 0x2754b: 0x6d2d4420,
-	0x2754c: 0x6c41a220, 0x2754d: 0x6cb8f620, 0x2754e: 0x6c773220, 0x2754f: 0x6c840220,
-	0x27550: 0x6cd00220, 0x27551: 0x6c499220, 0x27553: 0x6cb17c20,
-	0x27556: 0x6c840420,
-	0x27558: 0x6c562620, 0x2755b: 0x6ce8ce20,
-	0x2755c: 0x6cd75620, 0x2755e: 0x6c56aa20, 0x2755f: 0x6c840620,
-	0x27562: 0x6c910a20,
-	0x27566: 0x6c297020,
-	0x27568: 0x6d42a420, 0x27569: 0x6cccf620, 0x2756b: 0x6ccf6e20,
-	0x2756d: 0x6c3cb620, 0x2756e: 0x6c726e20, 0x2756f: 0x6ce76e20,
-	0x27570: 0x6c691a20, 0x27571: 0x6cbbe620, 0x27572: 0x6c42d420, 0x27573: 0x6d3e7020,
-	0x27574: 0x6c59e620, 0x27575: 0x6ccd0620,
-	0x27578: 0x6cdff620,
-	// Block 0x9d6, offset 0x27580
-	0x2758c: 0x6ceaca20, 0x2758e: 0x6c8e2220,
-	0x27590: 0x6c1a2e20, 0x27591: 0x6cf27020, 0x27592: 0x6d425020, 0x27593: 0x6d23da20,
-	0x27595: 0x6d3a2220, 0x27597: 0x6cc45420,
-	0x27598: 0x6cf80a20, 0x27599: 0x6cc1b620, 0x2759b: 0x6c442820,
-	0x275a2: 0x6cb52a20, 0x275a3: 0x6d05e020,
-	0x275a8: 0x6c415220, 0x275a9: 0x6cc3f820, 0x275aa: 0x6c1ddc20, 0x275ab: 0x6c9b4e20,
-	0x275b2: 0x6cd02020, 0x275b3: 0x6cc1c820,
-	0x275b6: 0x6cbbb420, 0x275b7: 0x6c11b420,
-	0x275ba: 0x6c86b020,
-	0x275bc: 0x6ceda220, 0x275bd: 0x6c826620, 0x275be: 0x6d03a820, 0x275bf: 0x6c80ea20,
-	// Block 0x9d7, offset 0x275c0
-	0x275c2: 0x6cd3ec20, 0x275c3: 0x6d330020,
-	0x275c4: 0x6c38ce20,
-	0x275ca: 0x6d371c20,
-	0x275cf: 0x6d1aa420,
-	0x275d1: 0x6c86de20,
-	0x275d6: 0x6ca08820, 0x275d7: 0x6cf04020,
-	0x275d9: 0x6d1c1020, 0x275da: 0x6cc4e420,
-	0x275e0: 0x6cc2a820,
-	0x275e5: 0x6c95ce20,
-	0x275f2: 0x6c275820,
-	0x275f4: 0x6d1b4e20, 0x275f5: 0x6c08da20, 0x275f6: 0x6c438820,
-	0x275f8: 0x6cf20a20, 0x275f9: 0x6d0d7620, 0x275fa: 0x6c9e1e20,
-	0x275fc: 0x6c42a020, 0x275fd: 0x6cc05620, 0x275fe: 0x6d33da20,
-	// Block 0x9d8, offset 0x27600
-	0x2760b: 0x6c471c20,
-	0x2760c: 0x6ce75420, 0x2760e: 0x6c8d1420, 0x2760f: 0x6ce33620,
-	0x27610: 0x6c224c20, 0x27611: 0x6d150c20, 0x27612: 0x6c395a20, 0x27613: 0x6cb31220,
-	0x27614: 0x6c09b820, 0x27616: 0x6c064e20,
-	0x2761f: 0x6cae7620,
-	0x27621: 0x6cdb8420,
-	0x27624: 0x6cd92820, 0x27625: 0x6cef1a20, 0x27626: 0x6cff9220,
-	0x2762c: 0x6c504c20, 0x2762d: 0x6d0dac20,
-	0x27636: 0x6d152620, 0x27637: 0x6d2a1e20,
-	0x27638: 0x6d1d0020, 0x27639: 0x6ca43220,
-	0x2763f: 0x6d289620,
-	// Block 0x9d9, offset 0x27640
-	0x27641: 0x6ce50c20, 0x27642: 0x6cf68a20, 0x27643: 0x6c69b420,
-	0x27644: 0x6d0cbc20,
-	0x2764c: 0x6ca55e20, 0x2764d: 0x6ce07020, 0x2764e: 0x6d0eaa20, 0x2764f: 0x6ce51a20,
-	0x27650: 0x6d36ce20, 0x27651: 0x6c1d7a20, 0x27652: 0x6ce23a20,
-	0x27657: 0x6d2cdc20,
-	0x2765e: 0x6c9e3a20,
-	0x27661: 0x6cf47020, 0x27662: 0x6d1b0220, 0x27663: 0x6d0eac20,
-	0x27664: 0x6c81ba20,
-	0x27669: 0x6cb31e20, 0x2766b: 0x6c5d4620,
-	0x2766c: 0x6c4d4620, 0x2766d: 0x6ca21a20, 0x2766e: 0x6c236020,
-	0x27671: 0x6c7aae20, 0x27672: 0x6c1d8420,
-	0x27674: 0x6d1ff020,
-	0x27678: 0x6d3da020, 0x2767b: 0x6cd9e420,
-	// Block 0x9da, offset 0x27680
-	0x27682: 0x6d1b7e20,
-	0x27685: 0x6d41da20, 0x27686: 0x6cca7420, 0x27687: 0x6c8f4a20,
-	0x27688: 0x6c4f2020, 0x27689: 0x6cf0ec20, 0x2768a: 0x6c9b6020, 0x2768b: 0x6c55d020,
-	0x2768c: 0x6c86b220, 0x2768e: 0x6c9d9c20,
-	0x27690: 0x6c054020, 0x27691: 0x6c65f020,
-	0x2769c: 0x6cc40620,
-	0x276a0: 0x6c9b6220, 0x276a2: 0x6ca21c20, 0x276a3: 0x6c53ac20,
-	0x276a4: 0x6c56d820, 0x276a5: 0x6c9c8e20, 0x276a6: 0x6ccca820,
-	0x276a9: 0x6cce2620, 0x276aa: 0x6c17c620,
-	0x276ac: 0x6d3dc220, 0x276ae: 0x6d342220, 0x276af: 0x6ca77020,
-	0x276b5: 0x6c62b220,
-	0x276b8: 0x6c784020, 0x276b9: 0x6d330620,
-	0x276bf: 0x6c281420,
-	// Block 0x9db, offset 0x276c0
-	0x276c0: 0x6c8a8220, 0x276c1: 0x6d2e3020, 0x276c2: 0x6c460620, 0x276c3: 0x6c818c20,
-	0x276c4: 0x6c571e20, 0x276c5: 0x6c1fd220, 0x276c7: 0x6c660c20,
-	0x276c8: 0x6c7d3220,
-	0x276cd: 0x6ccf0220,
-	0x276d4: 0x6c191c20, 0x276d5: 0x6ce08820, 0x276d7: 0x6c55f820,
-	0x276d8: 0x6c9b9e20, 0x276d9: 0x6cada420, 0x276da: 0x6d2e3820, 0x276db: 0x6c16d620,
-	0x276dd: 0x6c41f820,
-	0x276e0: 0x6d193a20, 0x276e2: 0x6cdcb620,
-	0x276e6: 0x6d076420, 0x276e7: 0x6c62de20,
-	0x276e8: 0x6c808e20,
-	0x276ec: 0x6d159620, 0x276ef: 0x6c9dae20,
-	0x276f1: 0x6c9f1420,
-	0x276f5: 0x6c24a620,
-	0x276f8: 0x6c805a20, 0x276fb: 0x6d0c4e20,
-	0x276fe: 0x6c9ccc20,
-	// Block 0x9dc, offset 0x27700
-	0x27702: 0x6d1e6820, 0x27703: 0x6c125420,
-	0x27704: 0x6c664420, 0x27707: 0x6cda0a20,
-	0x2770e: 0x6d0d2a20,
-	0x27711: 0x6c736020,
-	0x27715: 0x6c369c20,
-	0x27718: 0x6c3bf220, 0x2771a: 0x6c3bf620,
-	0x27721: 0x6c4a2a20, 0x27722: 0x6c96fc20,
-	0x27724: 0x6c8ab820,
-	0x27729: 0x6c1cca20, 0x2772b: 0x6c840820,
-	0x27731: 0x6d349c20,
-	0x27734: 0x6d024820, 0x27737: 0x6c1dfc20,
-	0x27739: 0x6c60fc20,
-	0x2773d: 0x6caf5c20,
-	// Block 0x9dd, offset 0x27740
-	0x27742: 0x6c6abe20,
-	0x27747: 0x6d38e420,
-	0x2774d: 0x6d046c20,
-	0x27751: 0x6c7bfc20,
-	0x27759: 0x6c6e2220, 0x2775b: 0x6c56a020,
-	0x2775e: 0x6cb99c20,
-	0x27763: 0x6c133220,
-	0x27766: 0x6cb60420, 0x27767: 0x6ced3220,
-	0x27768: 0x6c98ec20, 0x2776a: 0x6c30f020,
-	0x27774: 0x6c79d220, 0x27776: 0x6c277c20,
-	0x27778: 0x6ca4b420, 0x2777a: 0x6c536a20,
-	// Block 0x9de, offset 0x27780
-	0x27782: 0x6c7f4020, 0x27783: 0x6c34aa20,
-	0x27784: 0x6cb91020, 0x27786: 0x6d1a8820,
-	0x27796: 0x6c911220, 0x27797: 0x6c5ae020,
-	0x2779b: 0x6c402e20,
-	0x2779c: 0x6c98f420, 0x2779e: 0x6d389a20,
-	0x277a1: 0x6d1dfa20,
-	0x277ad: 0x6c817020, 0x277ae: 0x6c609c20, 0x277af: 0x6d186a20,
-	0x277b0: 0x6c8e8c20, 0x277b1: 0x6c235220, 0x277b3: 0x6ca43c20,
-	// Block 0x9df, offset 0x277c0
-	0x277d0: 0x6cea2620, 0x277d1: 0x6cfe5220,
-	0x277d5: 0x6c0bba20, 0x277d6: 0x6c207820, 0x277d7: 0x6cf52020,
-	0x277d9: 0x6c70c620,
-	0x277e5: 0x6d005220, 0x277e6: 0x6caf9220, 0x277e7: 0x6d3da220,
-	0x277e8: 0x6cc8e420, 0x277ea: 0x6ccafa20, 0x277eb: 0x6d3f6220,
-	0x277ed: 0x6d336220,
-	0x277f0: 0x6d40da20, 0x277f1: 0x6cc14220, 0x277f3: 0x6c1c7a20,
-	0x277f5: 0x6d36f020,
-	// Block 0x9e0, offset 0x27800
-	0x27817: 0x6cc37a20,
-	0x27818: 0x6cb92020, 0x27819: 0x6d0afc20, 0x2781a: 0x6c17c420, 0x2781b: 0x6c517c20,
-	0x2781c: 0x6cc80420,
-	0x27820: 0x6c70cc20, 0x27821: 0x6cf52820,
-	0x2782c: 0x6c1c7c20, 0x2782d: 0x6c7c0420, 0x2782f: 0x6c240020,
-	0x27830: 0x6cc89220, 0x27831: 0x6c7e1e20, 0x27832: 0x6c1b5e20, 0x27833: 0x6d40e420,
-	0x27834: 0x6c688620, 0x27836: 0x6d21c420, 0x27837: 0x6ce8fe20,
-	0x27838: 0x6c9b6420, 0x27839: 0x6c266c20, 0x2783a: 0x6cd7a020,
-	// Block 0x9e1, offset 0x27840
-	0x27865: 0x6c3c6c20, 0x27866: 0x6c469020, 0x27867: 0x6c301c20,
-	0x27868: 0x6c142220, 0x27869: 0x6c99be20, 0x2786a: 0x6c15e820, 0x2786b: 0x6c0b1020,
-	0x2786c: 0x6d241e20, 0x2786f: 0x6cecea20,
-	0x27870: 0x6d40e620, 0x27872: 0x6d3ea420,
-	0x27874: 0x6c1fec20, 0x27875: 0x6ced5620, 0x27876: 0x6cebf420,
-	0x27878: 0x6cc2a620, 0x2787b: 0x6ced5820,
-	0x2787d: 0x6cfa5020,
-	// Block 0x9e2, offset 0x27880
-	0x27884: 0x6d1d5620, 0x27885: 0x6c66e820,
-	0x27888: 0x6cf04220, 0x27889: 0x6ce39a20, 0x2788a: 0x6ccaca20,
-	0x2788c: 0x6cb67a20, 0x2788d: 0x6ccc2020, 0x2788e: 0x6d244220, 0x2788f: 0x6c60e220,
-	0x27890: 0x6c314420, 0x27891: 0x6c15f620, 0x27892: 0x6ce96c20,
-	0x27895: 0x6c8ec420, 0x27897: 0x6d3cba20,
-	0x278b3: 0x6cc89420,
-	0x278b6: 0x6d0eda20, 0x278b7: 0x6c47ea20,
-	0x278b9: 0x6c86e220, 0x278ba: 0x6c13ba20,
-	0x278be: 0x6c2cac20,
-	// Block 0x9e3, offset 0x278c0
-	0x278c0: 0x6d2e2a20, 0x278c1: 0x6cb32220,
-	0x278d2: 0x6c912620,
-	0x278d4: 0x6d374c20,
-	// Block 0x9e4, offset 0x27900
-	0x27901: 0x6c888a20,
-	0x27905: 0x6c95ca20,
-	0x2790d: 0x6c352420,
-	0x27910: 0x6c750820, 0x27911: 0x6c873420, 0x27912: 0x6c7ff220,
-	0x27914: 0x6cc89620, 0x27915: 0x6c474220, 0x27916: 0x6c155c20, 0x27917: 0x6d060620,
-	0x2791a: 0x6d356420,
-	// Block 0x9e5, offset 0x27940
-	0x27941: 0x6d097c20, 0x27942: 0x6c0e9c20, 0x27943: 0x6c19aa20,
-	0x27945: 0x6d3b4220, 0x27946: 0x6c522a20,
-	0x27949: 0x6c04ac20,
-	0x27953: 0x6c2f0820,
-	0x27956: 0x6d2e3a20, 0x27957: 0x6c4ca620,
-	0x2795a: 0x6c0c5420, 0x2795b: 0x6c7ec620,
-	0x2797a: 0x6c6c7620,
-	// Block 0x9e6, offset 0x27980
-	0x27982: 0x6c411c20,
-	0x27992: 0x6c9c1e20,
-	0x27994: 0x6d247e20,
-	0x279aa: 0x6cf82a20,
-	0x279ac: 0x6cb17820, 0x279ad: 0x6cd85020,
-	0x279b4: 0x6c2b0020,
-	0x279b8: 0x6c219e20, 0x279b9: 0x6c2bbe20, 0x279ba: 0x6c5fa820, 0x279bb: 0x6c157620,
-	0x279bf: 0x6d3dea20,
-	// Block 0x9e7, offset 0x279c0
-	0x279d3: 0x6c115220,
-	0x279de: 0x6c681620,
-	0x279f2: 0x6ce80220,
-	0x279fd: 0x6c84e820,
-	// Block 0x9e8, offset 0x27a00
-	0x27a02: 0x6cba9020,
-	0x27a06: 0x6c21a020,
-	0x27a0f: 0x6cdef820,
-	0x27a11: 0x6c2e5220, 0x27a13: 0x6c664820,
-	0x27a1b: 0x6d356820,
-	0x27a1c: 0x6c753220, 0x27a1e: 0x6ca0a420,
-	0x27a20: 0x6c959620,
-	0x27a26: 0x6c062420,
-	0x27a2d: 0x6d415e20,
-	0x27a35: 0x6d300820,
-	0x27a38: 0x6d220c20, 0x27a3b: 0x6c062a20,
-	0x27a3e: 0x6c969420, 0x27a3f: 0x6cf85020,
-	// Block 0x9e9, offset 0x27a40
-	0x27a40: 0x6c567c20, 0x27a41: 0x6d171220, 0x27a42: 0x6c355020, 0x27a43: 0x6c470220,
-	0x27a44: 0x6ce89e20, 0x27a45: 0x6d314a20, 0x27a47: 0x6cc07220,
-	0x27a48: 0x6cdaba20, 0x27a49: 0x6c89c620, 0x27a4a: 0x6cc11a20, 0x27a4b: 0x6c8d2620,
-	0x27a4c: 0x6c499420, 0x27a4d: 0x6c80e420, 0x27a4e: 0x6ce7dc20, 0x27a4f: 0x6c266620,
-	0x27a50: 0x6c911e20, 0x27a51: 0x6c5a1220, 0x27a52: 0x6cd47e20, 0x27a53: 0x6c688820,
-	0x27a54: 0x6d41f620, 0x27a55: 0x6c411a20, 0x27a56: 0x6cef5220,
-	0x27a59: 0x6c7d4e20, 0x27a5a: 0x6c32bc20, 0x27a5b: 0x6cd92020,
-	0x27a5c: 0x6cb5e020, 0x27a5d: 0x6d101a20,
-	0x27a61: 0x6cd37820, 0x27a63: 0x6c411420,
-	0x27a66: 0x6c2a1a20, 0x27a67: 0x6d11b220,
-	0x27a6b: 0x6cb99e20,
-	0x27a6d: 0x6cce7220, 0x27a6e: 0x6c16ae20, 0x27a6f: 0x6ca05020,
-	0x27a71: 0x6ca05a20,
-	0x27a75: 0x6ca50620,
-	0x27a78: 0x6c232220, 0x27a7a: 0x6ca84e20, 0x27a7b: 0x6d2f6a20,
-	0x27a7c: 0x6c133420, 0x27a7f: 0x6cd92a20,
-	// Block 0x9ea, offset 0x27a80
-	0x27a80: 0x6ca85820, 0x27a81: 0x6c22dc20,
-	0x27a84: 0x6c75de20, 0x27a86: 0x6cce7e20,
-	0x27a88: 0x6d3a2420, 0x27a89: 0x6c34b020, 0x27a8a: 0x6c01ce20, 0x27a8b: 0x6c088c20,
-	0x27a8e: 0x6ce41820,
-	0x27a90: 0x6cb06a20, 0x27a91: 0x6cf9ee20, 0x27a92: 0x6cc09420, 0x27a93: 0x6cd14e20,
-	0x27a97: 0x6ce0d820,
-	0x27a9b: 0x6c978420,
-	0x27a9c: 0x6cb10420, 0x27a9e: 0x6ce43420, 0x27a9f: 0x6cc6cc20,
-	0x27aa7: 0x6c237220,
-	0x27aaa: 0x6c5f7a20, 0x27aab: 0x6c3cc020,
-	0x27aac: 0x6cf53c20, 0x27aad: 0x6c69d620, 0x27aae: 0x6c818e20, 0x27aaf: 0x6d2ba620,
-	0x27ab0: 0x6caeee20, 0x27ab1: 0x6c11e420, 0x27ab3: 0x6ca9de20,
-	0x27ab5: 0x6c160c20,
-	0x27abe: 0x6c97a420, 0x27abf: 0x6c4ba820,
-	// Block 0x9eb, offset 0x27ac0
-	0x27ac0: 0x6ca7d820, 0x27ac1: 0x6c1d0220, 0x27ac2: 0x6c165820,
-	0x27ac6: 0x6ca48a20,
-	0x27ac9: 0x6cf95c20, 0x27aca: 0x6c6f6620, 0x27acb: 0x6c613020,
-	0x27acc: 0x6d323420,
-	0x27ad1: 0x6ce6ca20,
-	0x27ad4: 0x6c9ace20, 0x27ad5: 0x6d26b220, 0x27ad7: 0x6d37bc20,
-	0x27ad8: 0x6cea5620, 0x27ad9: 0x6cc8d220, 0x27ada: 0x6d01ba20, 0x27adb: 0x6cf63420,
-	0x27add: 0x6ce6d220, 0x27ade: 0x6ca99820,
-	0x27ae0: 0x6cee2820, 0x27ae1: 0x6c64ae20, 0x27ae3: 0x6c3b3420,
-	0x27af2: 0x6c0ba620,
-	0x27af7: 0x6d152820,
-	0x27afa: 0x6c2ec420, 0x27afb: 0x6c5ef820,
-	0x27afc: 0x6c41de20, 0x27aff: 0x6c64c420,
-	// Block 0x9ec, offset 0x27b00
-	0x27b00: 0x6c6ee220,
-	0x27b06: 0x6c763820,
-	0x27b0a: 0x6cc3d620,
-	0x27b0c: 0x6ca40420, 0x27b0d: 0x6ca1de20, 0x27b0e: 0x6d072220, 0x27b0f: 0x6cd96a20,
-	0x27b10: 0x6cd0c020, 0x27b11: 0x6c7bac20, 0x27b12: 0x6cc3e620, 0x27b13: 0x6cef2820,
-	0x27b17: 0x6c2eda20,
-	0x27b18: 0x6ca40a20, 0x27b1a: 0x6cc92a20, 0x27b1b: 0x6c45a220,
-	0x27b1c: 0x6c313220, 0x27b1e: 0x6ca73020,
-	0x27b21: 0x6c175020, 0x27b22: 0x6c515e20, 0x27b23: 0x6d0e9e20,
-	0x27b29: 0x6ce8f020, 0x27b2a: 0x6c104420,
-	0x27b2c: 0x6c559e20, 0x27b2d: 0x6d1e5820, 0x27b2f: 0x6cd2d620,
-	0x27b30: 0x6c1f7220,
-	0x27b39: 0x6cff0e20, 0x27b3a: 0x6c9ad620, 0x27b3b: 0x6c852a20,
-	0x27b3c: 0x6ce37220, 0x27b3e: 0x6c64e620,
-	// Block 0x9ed, offset 0x27b40
-	0x27b42: 0x6d354e20, 0x27b43: 0x6c487220,
-	0x27b44: 0x6c496220, 0x27b46: 0x6cb7cc20,
-	0x27b48: 0x6c3a1820, 0x27b49: 0x6d229820, 0x27b4a: 0x6d309620, 0x27b4b: 0x6cf01c20,
-	0x27b4c: 0x6c35ba20, 0x27b4d: 0x6c14da20, 0x27b4e: 0x6cf6e020,
-	0x27b50: 0x6c47d420,
-	0x27b57: 0x6cc3fa20,
-	0x27b58: 0x6c5c4620, 0x27b5a: 0x6d00f620, 0x27b5b: 0x6d1bf420,
-	0x27b5d: 0x6cdeaa20, 0x27b5e: 0x6cec5820, 0x27b5f: 0x6c3efe20,
-	0x27b60: 0x6c6c0820, 0x27b61: 0x6cb0bc20,
-	0x27b65: 0x6cd15020, 0x27b66: 0x6d21c620, 0x27b67: 0x6c7ace20,
-	0x27b69: 0x6cb0ca20, 0x27b6a: 0x6d010620, 0x27b6b: 0x6caaac20,
-	0x27b6c: 0x6cfd2420, 0x27b6d: 0x6c66ea20, 0x27b6e: 0x6d074e20,
-	0x27b70: 0x6c0a7e20,
-	0x27b74: 0x6ca41220, 0x27b76: 0x6c897020,
-	0x27b78: 0x6cb13420,
-	0x27b7c: 0x6c6eb820,
-	// Block 0x9ee, offset 0x27b80
-	0x27b80: 0x6cde1c20, 0x27b81: 0x6d0edc20, 0x27b82: 0x6c00f820,
-	0x27b85: 0x6cff3020, 0x27b86: 0x6cbaf420, 0x27b87: 0x6cf48620,
-	0x27b88: 0x6ce15620, 0x27b8a: 0x6c75f420,
-	0x27b90: 0x6c7e2820,
-	0x27b97: 0x6c813220,
-	0x27b99: 0x6ca5b020,
-	0x27b9c: 0x6c314a20, 0x27b9d: 0x6cd54620, 0x27b9f: 0x6c696220,
-	0x27ba0: 0x6ca89c20, 0x27ba2: 0x6d21dc20,
-	0x27ba8: 0x6c132020, 0x27baa: 0x6c696420,
-	0x27bac: 0x6c57d620, 0x27bad: 0x6cf1c020, 0x27bae: 0x6d127020, 0x27baf: 0x6c35a020,
-	0x27bb0: 0x6c49fe20, 0x27bb1: 0x6c572020, 0x27bb2: 0x6c68a620,
-	0x27bba: 0x6c835820,
-	0x27bbc: 0x6cce2820, 0x27bbd: 0x6d1e8020, 0x27bbf: 0x6c2ac220,
-	// Block 0x9ef, offset 0x27bc0
-	0x27bc0: 0x6c493820, 0x27bc1: 0x6ca97220, 0x27bc3: 0x6cdcc020,
-	0x27bc4: 0x6cfe6c20, 0x27bc6: 0x6cc9b420, 0x27bc7: 0x6c168c20,
-	0x27bce: 0x6cc90c20,
-	0x27bd0: 0x6d277020, 0x27bd2: 0x6c3b4c20, 0x27bd3: 0x6c672420,
-	0x27bd4: 0x6d076a20,
-	0x27bd8: 0x6cf93020, 0x27bd9: 0x6cd54a20,
-	0x27be5: 0x6d013220, 0x27be6: 0x6c87ac20,
-	0x27be9: 0x6ce80420,
-	0x27bec: 0x6c9d1020, 0x27bed: 0x6c162020, 0x27bee: 0x6c5d6a20,
-	0x27bf1: 0x6d3bb820, 0x27bf2: 0x6d273420,
-	0x27bfb: 0x6c801a20,
-	0x27bfd: 0x6d0d2c20, 0x27bfe: 0x6c29a820, 0x27bff: 0x6cfe1820,
-	// Block 0x9f0, offset 0x27c00
-	0x27c00: 0x6d267220, 0x27c01: 0x6ce6b020, 0x27c02: 0x6c07d220, 0x27c03: 0x6cca4620,
-	0x27c04: 0x6cfc9620, 0x27c05: 0x6c2e7a20, 0x27c06: 0x6cb09c20, 0x27c07: 0x6cb11220,
-	0x27c09: 0x6cde0c20, 0x27c0b: 0x6c687220,
-	0x27c0c: 0x6d126620, 0x27c0e: 0x6d271020,
-	0x27c10: 0x6cc61420, 0x27c11: 0x6cbc1820, 0x27c12: 0x6cb56220, 0x27c13: 0x6c2da620,
-	0x27c14: 0x6cb56420, 0x27c17: 0x6c4e7e20,
-	0x27c18: 0x6d253220, 0x27c19: 0x6d1ee220, 0x27c1a: 0x6c5fd020, 0x27c1b: 0x6c412820,
-	0x27c1c: 0x6c4d0620, 0x27c1d: 0x6cd30420, 0x27c1f: 0x6cc0c820,
-	0x27c29: 0x6cf1fa20,
-	0x27c2c: 0x6d321620, 0x27c2d: 0x6cb2f220, 0x27c2e: 0x6d0c5e20, 0x27c2f: 0x6c46e820,
-	0x27c30: 0x6c720420, 0x27c31: 0x6ce52e20,
-	0x27c37: 0x6c35d820,
-	0x27c3a: 0x6d0ace20, 0x27c3b: 0x6c8c4620,
-	0x27c3c: 0x6c092620,
-	// Block 0x9f1, offset 0x27c40
-	0x27c40: 0x6d3eea20, 0x27c41: 0x6c530820, 0x27c43: 0x6c347420,
-	0x27c45: 0x6c333c20, 0x27c46: 0x6d087220,
-	0x27c48: 0x6ccd3020, 0x27c4a: 0x6ccd3220, 0x27c4b: 0x6d10d220,
-	0x27c4c: 0x6cc4b020,
-	0x27c54: 0x6ceaf820, 0x27c57: 0x6c0dac20,
-	0x27c58: 0x6d069e20, 0x27c59: 0x6cea1a20, 0x27c5a: 0x6c19d220,
-	0x27c5c: 0x6c30fe20, 0x27c5d: 0x6d171420,
-	0x27c61: 0x6c180820,
-	0x27c75: 0x6c731a20, 0x27c76: 0x6c5eae20,
-	0x27c78: 0x6d2fae20, 0x27c79: 0x6c07de20, 0x27c7b: 0x6ce4e220,
-	// Block 0x9f2, offset 0x27c80
-	0x27c80: 0x6cae6420,
-	0x27c85: 0x6c3fda20,
-	0x27c96: 0x6ceb7620,
-	0x27c98: 0x6cfb3e20, 0x27c99: 0x6ca69420, 0x27c9a: 0x6c8f8620,
-	0x27c9d: 0x6d3d4220, 0x27c9f: 0x6d32c020,
-	0x27ca0: 0x6cd74820, 0x27ca1: 0x6d3f7c20, 0x27ca2: 0x6c3c4620, 0x27ca3: 0x6c32be20,
-	0x27ca4: 0x6cb09420, 0x27ca5: 0x6d0d7820, 0x27ca6: 0x6cda1620, 0x27ca7: 0x6cc05820,
-	0x27ca8: 0x6c362220, 0x27ca9: 0x6cb98e20, 0x27cab: 0x6cba0620,
-	0x27cad: 0x6c10d420, 0x27cae: 0x6d0a8a20,
-	0x27cb5: 0x6d3c8220,
-	0x27cb8: 0x6c993a20, 0x27cb9: 0x6c68ee20,
-	0x27cbf: 0x6d2dea20,
-	// Block 0x9f3, offset 0x27cc0
-	0x27cc0: 0x6caffa20, 0x27cc1: 0x6cf63620, 0x27cc2: 0x6d0e7c20, 0x27cc3: 0x6c3ab420,
-	0x27cc4: 0x6ca83620, 0x27cc6: 0x6d364620,
-	0x27cc8: 0x6cdd6a20, 0x27cca: 0x6d17d020,
-	0x27ccc: 0x6c82c620, 0x27ccd: 0x6d06ea20, 0x27ccf: 0x6d17d220,
-	0x27cd2: 0x6cee9620,
-	0x27cd5: 0x6c5ede20, 0x27cd6: 0x6c186e20, 0x27cd7: 0x6c2eba20,
-	0x27ce3: 0x6d257020,
-	0x27ce5: 0x6cf78020, 0x27ce7: 0x6c8e6220,
-	0x27ce8: 0x6cdd6c20,
-	0x27cf1: 0x6c07fc20, 0x27cf2: 0x6cfa4020, 0x27cf3: 0x6d0e8c20,
-	0x27cf5: 0x6c24d020, 0x27cf7: 0x6c773420,
-	0x27cfa: 0x6cbe4e20, 0x27cfb: 0x6c909a20,
-	0x27cfc: 0x6c087e20,
-	// Block 0x9f4, offset 0x27d00
-	0x27d08: 0x6d2e6a20, 0x27d09: 0x6c24ae20, 0x27d0a: 0x6cf3e220, 0x27d0b: 0x6d05c020,
-	0x27d0c: 0x6c187e20, 0x27d0d: 0x6c4fd820, 0x27d0e: 0x6c748820,
-	0x27d10: 0x6c192e20, 0x27d11: 0x6c13fa20, 0x27d12: 0x6c15ce20, 0x27d13: 0x6d348820,
-	0x27d14: 0x6d0a2a20,
-	0x27d23: 0x6c441a20,
-	0x27d24: 0x6c18e220, 0x27d25: 0x6d132020,
-	0x27d2a: 0x6c1ee820, 0x27d2b: 0x6cc1b820,
-	0x27d2c: 0x6d020620, 0x27d2e: 0x6d2e7c20, 0x27d2f: 0x6c790820,
-	0x27d31: 0x6c74ae20,
-	0x27d3d: 0x6cc1ba20, 0x27d3f: 0x6c9b5020,
-	// Block 0x9f5, offset 0x27d40
-	0x27d40: 0x6d134e20, 0x27d41: 0x6d406620, 0x27d42: 0x6cb45620,
-	0x27d44: 0x6cd3e420,
-	0x27d49: 0x6cd57220, 0x27d4a: 0x6c152a20,
-	0x27d4d: 0x6c31c420, 0x27d4f: 0x6c4c4a20,
-	0x27d50: 0x6c92fe20, 0x27d51: 0x6d0c3820,
-	0x27d56: 0x6ca7ba20, 0x27d57: 0x6c0d6620,
-	0x27d5f: 0x6ce9cc20,
-	0x27d66: 0x6ca6dc20, 0x27d67: 0x6c584220,
-	0x27d68: 0x6cb9de20,
-	0x27d6f: 0x6cfa6020,
-	0x27d72: 0x6c8dc620,
-	0x27d77: 0x6c882820,
-	0x27d79: 0x6d186e20, 0x27d7b: 0x6c866620,
-	0x27d7c: 0x6cd8f020, 0x27d7f: 0x6c279a20,
-	// Block 0x9f6, offset 0x27d80
-	0x27d82: 0x6cf11620,
-	0x27d85: 0x6c22c020,
-	0x27d89: 0x6c6fbe20, 0x27d8a: 0x6c534420,
-	0x27d8c: 0x6d210e20, 0x27d8e: 0x6c7c6e20,
-	0x27d92: 0x6c4f8020, 0x27d93: 0x6c439620,
-	0x27d94: 0x6c39e620, 0x27d97: 0x6c7c8020,
-	0x27d9a: 0x6c4a6c20, 0x27d9b: 0x6c1bb020,
-	0x27d9e: 0x6c6fc220,
-	0x27da1: 0x6cdbce20,
-	0x27da4: 0x6c2ec620,
-	0x27dac: 0x6cdc0c20,
-	0x27db0: 0x6cbd8620,
-	0x27db4: 0x6c4a8020,
-	0x27dbb: 0x6d3c6620,
-	0x27dbe: 0x6ce5de20,
-	// Block 0x9f7, offset 0x27dc0
-	0x27dc1: 0x6d26d820,
-	0x27dc7: 0x6d419220,
-	0x27dcf: 0x6cf3e820,
-	0x27dd0: 0x6c250820,
-	0x27ddb: 0x6d36d220,
-	0x27de0: 0x6cd72e20, 0x27de2: 0x6c301420,
-	0x27ded: 0x6cef3c20,
-	0x27dff: 0x6c1d4220,
-	// Block 0x9f8, offset 0x27e00
-	0x27e0b: 0x6cc8f420,
-	0x27e16: 0x6c60d420,
-	0x27e1c: 0x6c2de820, 0x27e1e: 0x6c124020,
-	0x27e20: 0x6c7a0c20, 0x27e23: 0x6cef5420,
-	0x27e27: 0x6c11bc20,
-	0x27e2a: 0x6c968020, 0x27e2b: 0x6caba820,
-	0x27e32: 0x6cca3820,
-	0x27e36: 0x6cef6620,
-	0x27e3c: 0x6cca3e20, 0x27e3f: 0x6c6c7020,
-	// Block 0x9f9, offset 0x27e40
-	0x27e4c: 0x6cef6e20,
-	0x27e5e: 0x6c115420, 0x27e5f: 0x6c84d020,
-	0x27e6f: 0x6d273a20,
-	0x27e74: 0x6d277220, 0x27e77: 0x6c196420,
-	0x27e7a: 0x6ccce420,
-	// Block 0x9fa, offset 0x27e80
-	0x27e82: 0x6c54d620, 0x27e83: 0x6ccc9e20,
-	0x27e84: 0x6cea5820, 0x27e86: 0x6c3d3020,
-	0x27e88: 0x6cbe1820, 0x27e89: 0x6d05ac20,
-	0x27e8d: 0x6c1fe620, 0x27e8e: 0x6c400420,
-	0x27e92: 0x6d181220, 0x27e93: 0x6c300c20,
-	0x27e94: 0x6c3eb420, 0x27e95: 0x6c3eb620, 0x27e96: 0x6d2ad620, 0x27e97: 0x6cb4ae20,
-	0x27e99: 0x6c8d2c20,
-	0x27e9d: 0x6ccca020, 0x27e9e: 0x6cad9420,
-	0x27ea2: 0x6d1a8a20, 0x27ea3: 0x6c961e20,
-	0x27ea4: 0x6c57b620, 0x27ea5: 0x6d1b6e20, 0x27ea6: 0x6c084a20, 0x27ea7: 0x6d209820,
-	0x27ea8: 0x6ccf7020, 0x27eaa: 0x6d01f220, 0x27eab: 0x6c1ee620,
-	0x27eb4: 0x6ccf7220, 0x27eb5: 0x6c2d7220,
-	0x27eb9: 0x6d187020, 0x27ebb: 0x6c183a20,
-	0x27ebc: 0x6c451c20, 0x27ebd: 0x6c8fa820, 0x27ebe: 0x6cb2ca20, 0x27ebf: 0x6d280220,
-	// Block 0x9fb, offset 0x27ec0
-	0x27ec0: 0x6d0eae20, 0x27ec1: 0x6ca15a20, 0x27ec3: 0x6cdbd820,
-	0x27ecb: 0x6c6ea420,
-	0x27ecd: 0x6cd99c20, 0x27ece: 0x6cad0c20,
-	0x27ed0: 0x6d0b3820, 0x27ed1: 0x6ccb5020, 0x27ed2: 0x6c34b820,
-	0x27ed5: 0x6c207a20, 0x27ed6: 0x6d022420,
-	0x27ed8: 0x6ce95a20, 0x27ed9: 0x6c45b420, 0x27eda: 0x6d08b620,
-	0x27edc: 0x6c7e4e20, 0x27ede: 0x6c8d5e20,
-	0x27ee0: 0x6c279020, 0x27ee1: 0x6d2c5220,
-	0x27eec: 0x6d1a0a20, 0x27eed: 0x6cd93c20, 0x27eef: 0x6d229a20,
-	0x27ef0: 0x6ceb4c20, 0x27ef1: 0x6ceb4e20,
-	0x27ef4: 0x6c03c420, 0x27ef5: 0x6cc4d620, 0x27ef6: 0x6c0f8420, 0x27ef7: 0x6c279c20,
-	0x27ef9: 0x6d2c5a20, 0x27efa: 0x6c543a20,
-	0x27efe: 0x6c5b7820,
-	// Block 0x9fc, offset 0x27f00
-	0x27f05: 0x6c916020,
-	0x27f0a: 0x6c8e2820, 0x27f0b: 0x6cc7d620,
-	0x27f15: 0x6c28d220, 0x27f16: 0x6c9b6620, 0x27f17: 0x6cfa5820,
-	0x27f18: 0x6cf26220, 0x27f19: 0x6c4e4620, 0x27f1a: 0x6d3eb020, 0x27f1b: 0x6d327420,
-	0x27f1c: 0x6ccb7c20, 0x27f1d: 0x6c25fa20, 0x27f1e: 0x6c86e420,
-	0x27f20: 0x6c2ce220, 0x27f21: 0x6c887e20, 0x27f22: 0x6c46e020,
-	0x27f26: 0x6caee020,
-	0x27f2a: 0x6d1c0a20,
-	0x27f2c: 0x6c548420, 0x27f2e: 0x6c336c20, 0x27f2f: 0x6cf53e20,
-	0x27f37: 0x6cb1be20,
-	0x27f38: 0x6c520020, 0x27f3a: 0x6c8fb820, 0x27f3b: 0x6ca18420,
-	0x27f3c: 0x6c3a7620, 0x27f3d: 0x6c93be20, 0x27f3e: 0x6d2b2020, 0x27f3f: 0x6c0fae20,
-	// Block 0x9fd, offset 0x27f40
-	0x27f40: 0x6c2d9620, 0x27f41: 0x6c98aa20, 0x27f43: 0x6d3c4e20,
-	0x27f44: 0x6c932220, 0x27f45: 0x6cace820, 0x27f46: 0x6c337c20, 0x27f47: 0x6c10ce20,
-	0x27f4c: 0x6c189020, 0x27f4d: 0x6c981220,
-	0x27f56: 0x6cf72420,
-	0x27f5d: 0x6c019a20, 0x27f5e: 0x6d37dc20,
-	0x27f60: 0x6ca44a20, 0x27f61: 0x6cebba20, 0x27f62: 0x6c519c20,
-	0x27f65: 0x6c338220, 0x27f66: 0x6ceca020, 0x27f67: 0x6d37de20,
-	0x27f68: 0x6c133e20, 0x27f69: 0x6c873620, 0x27f6a: 0x6cd6aa20,
-	0x27f6e: 0x6c134020,
-	0x27f70: 0x6cd84a20, 0x27f72: 0x6c338420,
-	0x27f74: 0x6c5cdc20,
-	0x27f7c: 0x6c654220, 0x27f7d: 0x6ca9e220, 0x27f7e: 0x6c28ea20, 0x27f7f: 0x6c409820,
-	// Block 0x9fe, offset 0x27f80
-	0x27f80: 0x6c5e4e20, 0x27f81: 0x6c5c9620, 0x27f82: 0x6c228420,
-	0x27f84: 0x6d1e6620, 0x27f85: 0x6cc9b620, 0x27f86: 0x6ce6a420,
-	0x27f8e: 0x6c8f5a20,
-	0x27f91: 0x6cdb8c20, 0x27f92: 0x6c8da220, 0x27f93: 0x6c97a620,
-	0x27f94: 0x6c2d9c20,
-	0x27f98: 0x6cad4020, 0x27f9a: 0x6c8da420,
-	0x27f9d: 0x6c878620, 0x27f9f: 0x6caa1020,
-	0x27fa3: 0x6c8b7820,
-	0x27fa4: 0x6ccd6220, 0x27fa6: 0x6c3afe20,
-	0x27fab: 0x6ccd6420,
-	0x27fae: 0x6c8db820, 0x27faf: 0x6d2eaa20,
-	0x27fb1: 0x6c0d7820, 0x27fb2: 0x6c84dc20,
-	0x27fb5: 0x6cd86420, 0x27fb6: 0x6cc4fc20, 0x27fb7: 0x6c655820,
-	0x27fb8: 0x6d3df020, 0x27fbb: 0x6c8dbe20,
-	0x27fbc: 0x6c8dc020, 0x27fbd: 0x6c9c2420, 0x27fbf: 0x6cd6c820,
-	// Block 0x9ff, offset 0x27fc0
-	0x27fc4: 0x6c8dc820, 0x27fc7: 0x6c5d5020,
-	0x27fce: 0x6c8dee20, 0x27fcf: 0x6c655e20,
-	0x27fd0: 0x6cc23a20,
-	0x27fd4: 0x6ca9ea20, 0x27fd5: 0x6c6e7c20, 0x27fd6: 0x6c187020,
-	0x27fdc: 0x6d318820, 0x27fdd: 0x6cbede20, 0x27fdf: 0x6cbee220,
-	0x27fe0: 0x6c36c820, 0x27fe3: 0x6ccb9420,
-	0x27fe9: 0x6c071a20, 0x27feb: 0x6c3a0020,
-	0x27fee: 0x6c3ab620, 0x27fef: 0x6c3a3820,
-	0x27ff4: 0x6c399820, 0x27ff5: 0x6c7a7c20,
-	0x27ffa: 0x6d28c620, 0x27ffb: 0x6c5c2220,
-	0x27ffd: 0x6c3a4420,
-	// Block 0xa00, offset 0x28000
-	0x28001: 0x6c338620,
-	0x28006: 0x6cabca20, 0x28007: 0x6ca99c20,
-	0x28008: 0x6cad2e20, 0x28009: 0x6c289820, 0x2800a: 0x6c27e820, 0x2800b: 0x6c00b220,
-	0x2800d: 0x6ce50e20, 0x2800e: 0x6c17a420, 0x2800f: 0x6c02ac20,
-	0x28010: 0x6c9aa020, 0x28011: 0x6ca43420,
-	0x28014: 0x6c0ff420, 0x28015: 0x6d23b420, 0x28016: 0x6cfac420, 0x28017: 0x6c973a20,
-	0x2801a: 0x6cb26420,
-	0x2801c: 0x6c331020, 0x2801e: 0x6c2a3020,
-	0x28021: 0x6d043a20, 0x28022: 0x6ca6ce20, 0x28023: 0x6c4dba20,
-	0x28024: 0x6c1f7a20, 0x28025: 0x6cd64a20, 0x28026: 0x6c97cc20,
-	0x2802c: 0x6ceda420, 0x2802d: 0x6d18dc20, 0x2802e: 0x6c2e4820, 0x2802f: 0x6d0c3a20,
-	0x28031: 0x6cf32420, 0x28032: 0x6cdba220,
-	0x28034: 0x6c019420, 0x28035: 0x6c7fd420, 0x28036: 0x6ca43e20,
-	0x28038: 0x6cc0b620, 0x28039: 0x6c9e6820, 0x2803a: 0x6caae420, 0x2803b: 0x6c11c020,
-	0x2803c: 0x6c11e620,
-	// Block 0xa01, offset 0x28040
-	0x28040: 0x6c808620, 0x28041: 0x6ce52a20, 0x28042: 0x6d139220,
-	0x28044: 0x6ca74e20, 0x28046: 0x6cd64e20,
-	0x2804b: 0x6c228620,
-	0x2804d: 0x6c663a20,
-	0x28050: 0x6c424020,
-	0x28054: 0x6c673220, 0x28055: 0x6c4caa20, 0x28057: 0x6d2dd620,
-	0x28059: 0x6c95dc20,
-	0x2805c: 0x6c5ebc20, 0x2805d: 0x6c4b5220,
-	0x28061: 0x6c63d220, 0x28062: 0x6c614a20,
-	0x28065: 0x6d08a020, 0x28067: 0x6c3c5a20,
-	0x2806b: 0x6c09ea20,
-	0x2806c: 0x6cb60a20, 0x2806f: 0x6d258e20,
-	0x28070: 0x6c021a20, 0x28071: 0x6c2b3820,
-	0x28074: 0x6c366820, 0x28075: 0x6c3b7e20,
-	0x28078: 0x6c727020, 0x28079: 0x6ca64220, 0x2807a: 0x6ceb3c20,
-	0x2807c: 0x6cd00c20, 0x2807d: 0x6c3eca20, 0x2807e: 0x6cf9e420, 0x2807f: 0x6cc1ac20,
-	// Block 0xa02, offset 0x28080
-	0x28080: 0x6cb39a20, 0x28081: 0x6ced4220, 0x28082: 0x6c8d4220, 0x28083: 0x6c96d220,
-	0x28084: 0x6d394020, 0x28085: 0x6c065c20, 0x28087: 0x6d23b620,
-	0x2808c: 0x6c082a20, 0x2808d: 0x6c973c20, 0x2808f: 0x6c637a20,
-	0x28091: 0x6d102e20, 0x28093: 0x6c7ade20,
-	0x28094: 0x6c69c020, 0x28096: 0x6c0df220,
-	0x2809a: 0x6c962420, 0x2809b: 0x6c4b1820,
-	0x2809c: 0x6c351420, 0x2809d: 0x6d36d420,
-	0x280a1: 0x6d326020, 0x280a2: 0x6c369e20, 0x280a3: 0x6d39ca20,
-	0x280a4: 0x6c039020,
-	0x280a8: 0x6d326220, 0x280a9: 0x6c3c6820, 0x280aa: 0x6c313820, 0x280ab: 0x6ca73c20,
-	0x280ac: 0x6c10bc20, 0x280ad: 0x6c336020, 0x280ae: 0x6ccc1c20, 0x280af: 0x6ccb6820,
-	0x280b0: 0x6c0a6220,
-	0x280b4: 0x6d36f420, 0x280b5: 0x6d309820, 0x280b6: 0x6c10be20,
-	0x280ba: 0x6c74c420, 0x280bb: 0x6d0aa820,
-	0x280bf: 0x6cf90020,
-	// Block 0xa03, offset 0x280c0
-	0x280c1: 0x6d3db820, 0x280c2: 0x6c045a20, 0x280c3: 0x6d115c20,
-	0x280c4: 0x6c1e3420, 0x280c5: 0x6cdeb620, 0x280c6: 0x6cb93020,
-	0x280c8: 0x6ca53820, 0x280c9: 0x6d242020, 0x280ca: 0x6c36bc20, 0x280cb: 0x6c650820,
-	0x280cc: 0x6d18de20, 0x280cd: 0x6cff2a20, 0x280cf: 0x6ca88020,
-	0x280d2: 0x6c0db620,
-	0x280d7: 0x6c4cd420,
-	0x280d8: 0x6d010820, 0x280d9: 0x6c2e4a20,
-	0x280dc: 0x6c70d620, 0x280dd: 0x6cdda420, 0x280de: 0x6c2ef420, 0x280df: 0x6c3f1420,
-	0x280e0: 0x6c9e4420, 0x280e1: 0x6cd3fa20, 0x280e2: 0x6d08c420, 0x280e3: 0x6ce39c20,
-	0x280e4: 0x6d244420, 0x280e7: 0x6d011820,
-	0x280e8: 0x6c3f1620, 0x280e9: 0x6d373420, 0x280ea: 0x6ca65a20, 0x280eb: 0x6d08c620,
-	0x280ec: 0x6d0fe820, 0x280ee: 0x6c3cd020, 0x280ef: 0x6d403c20,
-	0x280f0: 0x6d395e20, 0x280f1: 0x6d07de20,
-	0x280f5: 0x6d39d820, 0x280f7: 0x6c7edc20,
-	0x280f9: 0x6d1d5820, 0x280fa: 0x6c435c20, 0x280fb: 0x6c7e2c20,
-	0x280fd: 0x6c358820, 0x280fe: 0x6cef5620, 0x280ff: 0x6c9a3620,
-	// Block 0xa04, offset 0x28100
-	0x28103: 0x6c57fe20,
-	0x28104: 0x6c1e3820, 0x28106: 0x6cddb220, 0x28107: 0x6cdec820,
-	0x28108: 0x6cddb420, 0x28109: 0x6cdeca20, 0x2810a: 0x6d097a20,
-	0x2810c: 0x6c460820, 0x2810d: 0x6c643220, 0x2810f: 0x6c0fb020,
-	0x28110: 0x6cdecc20, 0x28111: 0x6d25f620,
-	0x28118: 0x6cdece20,
-	0x2811d: 0x6c20ec20,
-	0x28120: 0x6d047820, 0x28121: 0x6c519820, 0x28122: 0x6cdd4820,
-	0x28127: 0x6ca18a20,
-	0x28128: 0x6c1d2c20, 0x28129: 0x6cdbe420, 0x2812a: 0x6d2b2220, 0x2812b: 0x6c933220,
-	0x2812c: 0x6d2eea20, 0x2812d: 0x6c963c20, 0x2812e: 0x6d075820, 0x2812f: 0x6c653a20,
-	0x28130: 0x6ccd2220, 0x28132: 0x6d075a20,
-	0x2813e: 0x6c67cc20,
-	// Block 0xa05, offset 0x28140
-	0x28142: 0x6c067c20, 0x28143: 0x6c970c20,
-	0x28145: 0x6ce7a020, 0x28146: 0x6cf92c20,
-	0x28149: 0x6cc6e620, 0x2814b: 0x6cd12a20,
-	0x2814c: 0x6d396c20, 0x2814e: 0x6c654420, 0x2814f: 0x6c409a20,
-	0x28150: 0x6c2afa20, 0x28153: 0x6d1de220,
-	0x28154: 0x6c70e420, 0x28156: 0x6d195e20, 0x28157: 0x6c054820,
-	0x28159: 0x6ccb9620, 0x2815a: 0x6cdcc620,
-	0x2815c: 0x6c346e20, 0x2815d: 0x6d028420,
-	0x28161: 0x6c58c820,
-	0x28165: 0x6cc80c20, 0x28166: 0x6ca66c20, 0x28167: 0x6d397020,
-	0x28168: 0x6c4bac20, 0x2816a: 0x6c964820,
-	0x28172: 0x6d342e20, 0x28173: 0x6d076c20,
-	0x28175: 0x6d343020, 0x28177: 0x6c752a20,
-	0x28178: 0x6c70e820, 0x2817b: 0x6d25da20,
-	0x2817c: 0x6c91a420, 0x2817f: 0x6c0fda20,
-	// Block 0xa06, offset 0x28180
-	0x28182: 0x6cc6ea20, 0x28183: 0x6d029620,
-	0x28189: 0x6cf83220, 0x2818a: 0x6c959a20,
-	0x2818e: 0x6c447020,
-	0x28191: 0x6d414620, 0x28192: 0x6c4eca20,
-	0x28194: 0x6c685620, 0x28195: 0x6cc95420, 0x28196: 0x6cbd8a20, 0x28197: 0x6cc43c20,
-	0x28198: 0x6cad6420, 0x28199: 0x6d26da20, 0x2819a: 0x6c182c20, 0x2819b: 0x6c3ece20,
-	0x2819c: 0x6cadc020, 0x2819f: 0x6c9aa420,
-	0x281a2: 0x6ce1de20,
-	0x281a4: 0x6c78f020, 0x281a5: 0x6cf8d420,
-	0x281ab: 0x6c351620,
-	0x281ad: 0x6d187220,
-	0x281b0: 0x6cdc7e20, 0x281b2: 0x6cf9f820, 0x281b3: 0x6c730420,
-	0x281b5: 0x6cef3e20, 0x281b7: 0x6d18ba20,
-	0x281b9: 0x6d242220, 0x281bb: 0x6c045c20,
-	0x281bc: 0x6ceb5820, 0x281bd: 0x6cdeb820, 0x281be: 0x6cad6e20,
-	// Block 0xa07, offset 0x281c0
-	0x281c2: 0x6c0dfc20,
-	0x281c5: 0x6d286820, 0x281c6: 0x6d286a20, 0x281c7: 0x6c32e220,
-	0x281c8: 0x6cc88620, 0x281c9: 0x6cef5820,
-	0x281cf: 0x6cf05020,
-	0x281d0: 0x6c4b9820, 0x281d2: 0x6c26d420, 0x281d3: 0x6cfa1420,
-	0x281d6: 0x6c5d4a20, 0x281d7: 0x6c733220,
-	0x281d8: 0x6cdbe620, 0x281da: 0x6cdcbc20,
-	0x281dd: 0x6c90d620, 0x281de: 0x6c046420, 0x281df: 0x6d246e20,
-	0x281e0: 0x6d337420, 0x281e1: 0x6c4ba620, 0x281e3: 0x6c7c5820,
-	0x281e4: 0x6c42f220, 0x281e5: 0x6c281620,
-	0x281e9: 0x6cfc5a20, 0x281ea: 0x6d2d2420, 0x281eb: 0x6ccb9820,
-	0x281ed: 0x6c784620, 0x281ee: 0x6c105020, 0x281ef: 0x6c0fce20,
-	0x281f2: 0x6cdcc820,
-	0x281f4: 0x6d249420, 0x281f5: 0x6c105220, 0x281f6: 0x6c6f9220, 0x281f7: 0x6c6f9420,
-	0x281f9: 0x6c73aa20, 0x281fa: 0x6c754220,
-	0x281fc: 0x6ca31620, 0x281fd: 0x6d2d1c20, 0x281fe: 0x6ce1ba20, 0x281ff: 0x6cefec20,
-	// Block 0xa08, offset 0x28200
-	0x28200: 0x6cf9dc20, 0x28201: 0x6d01cc20,
-	0x28205: 0x6cc9a620, 0x28206: 0x6c5f6620,
-	0x28209: 0x6d026a20,
-	0x2820c: 0x6c338c20, 0x2820d: 0x6d3f2620,
-	0x28218: 0x6d25ee20, 0x28219: 0x6cbe1e20, 0x2821a: 0x6c3ed020, 0x2821b: 0x6caeba20,
-	0x2821c: 0x6cad6620, 0x2821e: 0x6d1b7620,
-	0x28220: 0x6c52c220, 0x28221: 0x6d40d420, 0x28223: 0x6c45a820,
-	0x28224: 0x6c308820, 0x28225: 0x6c50a820, 0x28226: 0x6cf31020,
-	0x28228: 0x6cace220, 0x2822b: 0x6cdb2820,
-	0x2822c: 0x6c76f020, 0x2822d: 0x6ca88220, 0x2822e: 0x6c4ffa20, 0x2822f: 0x6c3cfa20,
-	0x28230: 0x6c36be20, 0x28231: 0x6d137620,
-	0x28234: 0x6ce69820, 0x28235: 0x6c309420, 0x28236: 0x6d30ba20, 0x28237: 0x6cca7820,
-	0x2823b: 0x6ca18c20,
-	0x2823c: 0x6cdb6020, 0x2823e: 0x6c823220,
-	// Block 0xa09, offset 0x28240
-	0x28240: 0x6cb4a620, 0x28241: 0x6c35a620, 0x28242: 0x6d3de220, 0x28243: 0x6d139820,
-	0x28247: 0x6cfda220,
-	0x28248: 0x6c4a2c20, 0x28249: 0x6cc59e20, 0x2824a: 0x6c8dfe20,
-	0x2824d: 0x6c02cc20,
-	0x28250: 0x6c146820, 0x28252: 0x6c345620, 0x28253: 0x6cbf3620,
-	0x28254: 0x6c7a4620, 0x28255: 0x6d05b020, 0x28256: 0x6c587c20, 0x28257: 0x6d10aa20,
-	0x28258: 0x6d324620, 0x28259: 0x6ce6da20, 0x2825a: 0x6c082420,
-	0x2825d: 0x6c020220, 0x2825f: 0x6c76b420,
-	0x28261: 0x6c7a4c20, 0x28262: 0x6cadde20, 0x28263: 0x6d205220,
-	0x28264: 0x6c02aa20, 0x28265: 0x6c9ad020, 0x28266: 0x6ca13620,
-	0x2826c: 0x6c3f7220, 0x2826d: 0x6cbe5020, 0x2826e: 0x6c7e8220, 0x2826f: 0x6c30f220,
-	0x28270: 0x6ce06c20, 0x28273: 0x6cba1c20,
-	0x28274: 0x6d121c20, 0x28275: 0x6cf0b620, 0x28276: 0x6c558c20, 0x28277: 0x6ca14620,
-	0x28278: 0x6c50a620, 0x28279: 0x6d08ac20, 0x2827b: 0x6c0a1220,
-	0x2827c: 0x6cb31a20, 0x2827e: 0x6c2b3c20,
-	// Block 0xa0a, offset 0x28280
-	0x28280: 0x6d31f020, 0x28282: 0x6cd1e420, 0x28283: 0x6c76e420,
-	0x28284: 0x6c130c20, 0x28287: 0x6d05c420,
-	0x28288: 0x6d31f220, 0x2828a: 0x6d3a7820,
-	0x2828f: 0x6c5c2420,
-	0x28290: 0x6c1bc020, 0x28293: 0x6c53aa20,
-	0x28294: 0x6caa0420, 0x28295: 0x6ca86a20, 0x28296: 0x6d0eb020,
-	0x28298: 0x6c1d4020, 0x28299: 0x6c3f8620, 0x2829a: 0x6c49f420, 0x2829b: 0x6cb52c20,
-	0x2829d: 0x6c44a220, 0x2829e: 0x6ce6e020,
-	0x282a2: 0x6ce07220, 0x282a3: 0x6cba2020,
-	0x282a6: 0x6c702020, 0x282a7: 0x6d05e220,
-	0x282a8: 0x6cb71620, 0x282aa: 0x6d326420,
-	0x282ae: 0x6cc09c20,
-	0x282b0: 0x6c35bc20, 0x282b3: 0x6c5c4c20,
-	0x282b4: 0x6c53d820, 0x282b5: 0x6cbeb420, 0x282b7: 0x6c17e020,
-	0x282ba: 0x6c405c20,
-	0x282bc: 0x6c52ce20, 0x282bd: 0x6cf6e220, 0x282be: 0x6cf3ee20, 0x282bf: 0x6c987820,
-	// Block 0xa0b, offset 0x282c0
-	0x282c2: 0x6ce2fc20,
-	0x282c5: 0x6c52d020,
-	0x282d0: 0x6c0f6a20, 0x282d2: 0x6cbde820, 0x282d3: 0x6c44a420,
-	0x282d6: 0x6c3f0020, 0x282d7: 0x6c7cde20,
-	0x282dd: 0x6c0cfe20, 0x282de: 0x6c6eba20, 0x282df: 0x6c76f220,
-	0x282e0: 0x6c4a9020, 0x282e2: 0x6c432820, 0x282e3: 0x6d05f420,
-	0x282e4: 0x6c01d420, 0x282e5: 0x6d26f420, 0x282e6: 0x6cf53420, 0x282e7: 0x6d157a20,
-	0x282e8: 0x6c6dda20, 0x282ea: 0x6c930220, 0x282eb: 0x6cc31c20,
-	0x282ec: 0x6ce9c820, 0x282ee: 0x6c62a420,
-	0x282fa: 0x6c6f3420, 0x282fb: 0x6c74d420,
-	0x282fc: 0x6cb1d620, 0x282fd: 0x6c7d8a20,
-	// Block 0xa0c, offset 0x28300
-	0x28300: 0x6cec7420, 0x28301: 0x6c5c7620, 0x28302: 0x6c341220, 0x28303: 0x6d25f420,
-	0x28304: 0x6c6b6a20, 0x28306: 0x6c4b9020, 0x28307: 0x6c432e20,
-	0x28308: 0x6cb3b220, 0x28309: 0x6c9ade20, 0x2830a: 0x6d3bf020, 0x2830b: 0x6c4f9c20,
-	0x28314: 0x6d1e0420, 0x28315: 0x6cc0a420, 0x28317: 0x6c834e20,
-	0x28318: 0x6c020620, 0x28319: 0x6cb08020, 0x2831a: 0x6cf24220,
-	0x2831d: 0x6cbe2a20, 0x2831f: 0x6cbdee20,
-	0x28320: 0x6c9f0620, 0x28321: 0x6c30d020, 0x28322: 0x6c9c9420, 0x28323: 0x6d2db820,
-	0x28325: 0x6cbec020, 0x28326: 0x6d158c20,
-	0x2832e: 0x6c04aa20,
-	0x28331: 0x6c730a20, 0x28333: 0x6d2b2420,
-	0x28334: 0x6d075c20, 0x28335: 0x6c7ff420, 0x28336: 0x6c968220, 0x28337: 0x6c968420,
-	0x28338: 0x6cab6220, 0x28339: 0x6c06c020, 0x2833b: 0x6cb3e820,
-	0x2833c: 0x6d075e20,
-	// Block 0xa0d, offset 0x28340
-	0x28340: 0x6c02fe20,
-	0x28346: 0x6c53ae20,
-	0x28349: 0x6c53b020, 0x2834a: 0x6d2e3c20,
-	0x2834c: 0x6ccbb620, 0x2834d: 0x6c433020, 0x2834f: 0x6cb34420,
-	0x28350: 0x6c8aae20,
-	0x28355: 0x6cec7a20, 0x28356: 0x6d07f420,
-	0x2835c: 0x6c7cb820, 0x2835f: 0x6c36ea20,
-	0x28360: 0x6c4f3e20, 0x28361: 0x6ccb9a20,
-	0x28364: 0x6c28ee20,
-	0x2836a: 0x6d07f620,
-	0x2836c: 0x6c36f420, 0x2836d: 0x6c415a20, 0x2836f: 0x6c29c820,
-	0x28371: 0x6c9bfa20, 0x28372: 0x6d143e20, 0x28373: 0x6ca94e20,
-	0x28375: 0x6cb23020,
-	0x28379: 0x6c124620,
-	0x2837e: 0x6d263c20,
-	// Block 0xa0e, offset 0x28380
-	0x28380: 0x6c36fc20, 0x28381: 0x6ca8ca20,
-	0x28384: 0x6d1b2e20, 0x28387: 0x6cbbca20,
-	0x28389: 0x6c52e220, 0x2838a: 0x6c8dca20,
-	0x2838c: 0x6c14e820, 0x2838d: 0x6d1d3020,
-	0x28392: 0x6c494820,
-	0x28394: 0x6ca7ca20, 0x28395: 0x6d05c620, 0x28396: 0x6cdff820, 0x28397: 0x6c6d6e20,
-	0x2839b: 0x6caea620,
-	0x2839d: 0x6c89e820,
-	0x283a0: 0x6c072c20, 0x283a3: 0x6d030020,
-	0x283a4: 0x6cea6020, 0x283a5: 0x6c174e20, 0x283a6: 0x6c41a420,
-	0x283a8: 0x6c54e020, 0x283a9: 0x6cee2e20,
-	0x283ac: 0x6c3eba20, 0x283ad: 0x6cae2220, 0x283af: 0x6ca4b620,
-	0x283b0: 0x6d0a1820, 0x283b1: 0x6d096c20,
-	0x283b4: 0x6c8f1220, 0x283b5: 0x6c8d4420, 0x283b6: 0x6d097020, 0x283b7: 0x6cc12e20,
-	0x283b8: 0x6c4fda20, 0x283b9: 0x6d153c20, 0x283ba: 0x6c4ef420,
-	0x283bc: 0x6c3ed220, 0x283bd: 0x6c038a20, 0x283be: 0x6d153e20,
-	// Block 0xa0f, offset 0x283c0
-	0x283c0: 0x6c0f3820,
-	0x283c4: 0x6c52c420, 0x283c5: 0x6c866a20,
-	0x283c9: 0x6cc98820, 0x283ca: 0x6cf6b220,
-	0x283ce: 0x6cd3ce20, 0x283cf: 0x6cb15e20,
-	0x283d0: 0x6c57c220, 0x283d1: 0x6d155220, 0x283d2: 0x6c0f5220, 0x283d3: 0x6c0f6c20,
-	0x283d4: 0x6ca57620, 0x283d5: 0x6cc09e20,
-	0x283d8: 0x6cf01e20, 0x283d9: 0x6c184a20, 0x283da: 0x6d1f7820,
-	0x283dc: 0x6cf0dc20, 0x283dd: 0x6c5b6820, 0x283de: 0x6cc99a20,
-	0x283e2: 0x6c53da20, 0x283e3: 0x6cd9e820,
-	0x283e4: 0x6c4f1220, 0x283e5: 0x6cad6a20, 0x283e7: 0x6c39b020,
-	0x283e9: 0x6c8eae20, 0x283ea: 0x6d395a20, 0x283eb: 0x6cb02a20,
-	0x283ed: 0x6c86b620,
-	0x283f0: 0x6c20e820, 0x283f1: 0x6cf6fc20, 0x283f2: 0x6d330220,
-	0x283f4: 0x6c085620, 0x283f5: 0x6d333420, 0x283f6: 0x6cdc9620, 0x283f7: 0x6d0de420,
-	0x283fc: 0x6cbe5a20, 0x283fd: 0x6cf53620, 0x283fe: 0x6c89a620,
-	// Block 0xa10, offset 0x28400
-	0x28400: 0x6d2fe420, 0x28401: 0x6c897220,
-	0x28405: 0x6c6a3c20, 0x28407: 0x6c52da20,
-	0x28408: 0x6d1ec020, 0x2840a: 0x6c7ea220, 0x2840b: 0x6c548620,
-	0x2840d: 0x6d263620, 0x2840e: 0x6c539620, 0x2840f: 0x6d137820,
-	0x28411: 0x6d1d1c20, 0x28412: 0x6d086020, 0x28413: 0x6d1f8620,
-	0x28418: 0x6cc32020,
-	0x2841c: 0x6ce15e20, 0x2841d: 0x6cddb620, 0x2841f: 0x6c871020,
-	0x28420: 0x6cd9fc20, 0x28421: 0x6c871220,
-	0x28424: 0x6d245420, 0x28427: 0x6d192020,
-	0x2842d: 0x6d051220, 0x2842e: 0x6c028620, 0x2842f: 0x6ce97420,
-	0x28430: 0x6cdb6220, 0x28431: 0x6cd67a20, 0x28433: 0x6d247020,
-	0x28435: 0x6c3c7a20,
-	0x28439: 0x6cdb6620, 0x2843a: 0x6ce9da20, 0x2843b: 0x6d247220,
-	0x2843c: 0x6d331020, 0x2843d: 0x6d331220, 0x2843f: 0x6ce25420,
-	// Block 0xa11, offset 0x28440
-	0x28444: 0x6c8ee020, 0x28446: 0x6c1a5c20, 0x28447: 0x6cdc0620,
-	0x28448: 0x6ccad820,
-	0x2844f: 0x6c47f420,
-	0x28450: 0x6c3c8a20, 0x28451: 0x6c8b8420, 0x28452: 0x6cb17a20,
-	0x28456: 0x6c87b620,
-	0x28458: 0x6c901820, 0x28459: 0x6c1e7020, 0x2845a: 0x6cff6220, 0x2845b: 0x6c52e420,
-	0x2845c: 0x6d029820, 0x2845d: 0x6ccf9420,
-	0x28460: 0x6c902620, 0x28461: 0x6c53ea20, 0x28462: 0x6d083e20, 0x28463: 0x6c3c9620,
-	0x28465: 0x6c037420, 0x28466: 0x6c0ecc20, 0x28467: 0x6ce22620,
-	0x28468: 0x6cdabc20, 0x28469: 0x6d2fb820, 0x2846a: 0x6c0c0220, 0x2846b: 0x6cd9c420,
-	0x2846c: 0x6ce9aa20, 0x2846d: 0x6cdd8820, 0x2846e: 0x6cfefa20, 0x2846f: 0x6c527220,
-	0x28470: 0x6ccac620, 0x28472: 0x6c3a1020,
-	0x28477: 0x6ca9aa20,
-	0x28478: 0x6c98ac20,
-	0x2847d: 0x6c58ca20, 0x2847e: 0x6d343420,
-	// Block 0xa12, offset 0x28480
-	0x28482: 0x6d171620,
-	0x28484: 0x6d22fe20, 0x28487: 0x6d14f020,
-	0x28488: 0x6d264e20, 0x28489: 0x6c1b2220,
-	0x28495: 0x6d1aea20, 0x28496: 0x6ca9a620, 0x28497: 0x6cc71420,
-	0x2849b: 0x6ca34a20,
-	0x284a3: 0x6ce4a620,
-	0x284a5: 0x6c035020,
-	0x284aa: 0x6c379c20, 0x284ab: 0x6d32dc20,
-	0x284ac: 0x6c366a20, 0x284ad: 0x6cb3dc20, 0x284ae: 0x6c5efa20, 0x284af: 0x6ca5f620,
-	0x284b1: 0x6c6f2020, 0x284b2: 0x6c63d420,
-	0x284b5: 0x6c41a620,
-	0x284b9: 0x6c8d2e20, 0x284bb: 0x6d41bc20,
-	0x284be: 0x6c073820,
-	// Block 0xa13, offset 0x284c0
-	0x284c5: 0x6cd4f220, 0x284c6: 0x6d15fc20, 0x284c7: 0x6cabf420,
-	0x284cb: 0x6ca50e20,
-	0x284cc: 0x6cd3c020, 0x284ce: 0x6c97c620, 0x284cf: 0x6cd3c220,
-	0x284d1: 0x6ce35e20,
-	0x284d8: 0x6c45a420,
-	0x284dd: 0x6c834420, 0x284de: 0x6c061020, 0x284df: 0x6d251020,
-	0x284e0: 0x6d422820, 0x284e1: 0x6c80e620, 0x284e2: 0x6d04f220,
-	0x284e5: 0x6d294220, 0x284e6: 0x6c1a8620, 0x284e7: 0x6c64e820,
-	0x284e8: 0x6c99b420, 0x284e9: 0x6c63e220, 0x284ea: 0x6d23de20,
-	0x284ed: 0x6d23e020, 0x284ee: 0x6d155420,
-	0x284f2: 0x6c982020, 0x284f3: 0x6d294420,
-	0x284f5: 0x6d3ca820, 0x284f6: 0x6ce37620,
-	0x284f9: 0x6cf8d620, 0x284fa: 0x6c716020, 0x284fb: 0x6d299e20,
-	0x284fc: 0x6c92e420, 0x284fd: 0x6ce24420,
-	// Block 0xa14, offset 0x28500
-	0x28500: 0x6d3cb020, 0x28501: 0x6c8d6020, 0x28503: 0x6c729c20,
-	0x28506: 0x6c5f4c20, 0x28507: 0x6c733020,
-	0x2850a: 0x6d3e9a20,
-	0x2850c: 0x6d265a20, 0x2850d: 0x6c301620,
-	0x28512: 0x6ca47020,
-	0x28516: 0x6c1d2420,
-	0x2851f: 0x6c022020,
-	0x28523: 0x6c44e020,
-	0x28525: 0x6c0e9420, 0x28526: 0x6c2fbc20, 0x28527: 0x6cf02220,
-	0x2852c: 0x6cc31a20, 0x2852d: 0x6c783a20,
-	0x28530: 0x6cb0cc20, 0x28531: 0x6c76f420, 0x28532: 0x6c3f0e20, 0x28533: 0x6d1e6220,
-	0x28535: 0x6ce96620, 0x28536: 0x6ce81e20, 0x28537: 0x6d205a20,
-	0x28538: 0x6d10c020, 0x2853a: 0x6d126c20,
-	0x2853d: 0x6d0ed220,
-	// Block 0xa15, offset 0x28540
-	0x28548: 0x6cfbb220, 0x2854a: 0x6ce38e20,
-	0x2854c: 0x6cdc9820,
-	0x28550: 0x6c227420,
-	0x28554: 0x6d066220, 0x28555: 0x6cf53820, 0x28556: 0x6c117420, 0x28557: 0x6d242420,
-	0x2855a: 0x6c15f820, 0x2855b: 0x6cfa1020,
-	0x2855d: 0x6c77ce20, 0x2855e: 0x6c124220, 0x2855f: 0x6c13bc20,
-	0x28560: 0x6cc0b420, 0x28563: 0x6c267220,
-	0x28565: 0x6cdb5620,
-	0x28568: 0x6c571c20,
-	0x28577: 0x6cf38e20,
-	0x28578: 0x6d251a20,
-	0x2857d: 0x6c681220, 0x2857e: 0x6cfe0820, 0x2857f: 0x6d2d0620,
-	// Block 0xa16, offset 0x28580
-	0x28580: 0x6cca3a20, 0x28581: 0x6ca09220, 0x28583: 0x6cce3e20,
-	0x28584: 0x6c12a420, 0x28585: 0x6cdbe220, 0x28586: 0x6c208420, 0x28587: 0x6c9c9620,
-	0x28588: 0x6d3a3420, 0x28589: 0x6c1d2820, 0x2858a: 0x6c62c220, 0x2858b: 0x6c1d2a20,
-	0x28599: 0x6c889020,
-	0x2859e: 0x6c4d8020,
-	0x285a4: 0x6c33c220, 0x285a5: 0x6cfe0c20, 0x285a6: 0x6c19ae20, 0x285a7: 0x6cce4020,
-	0x285a8: 0x6c873820, 0x285a9: 0x6c5a2c20,
-	0x285ac: 0x6c2af820, 0x285af: 0x6c897a20,
-	0x285b6: 0x6d28a420,
-	0x285ba: 0x6c5e4420, 0x285bb: 0x6c8c0420,
-	0x285be: 0x6c31ee20, 0x285bf: 0x6c4f3620,
-	// Block 0xa17, offset 0x285c0
-	0x285c0: 0x6d1ddc20, 0x285c1: 0x6d263a20, 0x285c2: 0x6c4cf420, 0x285c3: 0x6c8d9c20,
-	0x285c5: 0x6c88de20, 0x285c7: 0x6c030220,
-	0x285c8: 0x6c292220, 0x285c9: 0x6d194e20, 0x285ca: 0x6ca9e420, 0x285cb: 0x6ccde620,
-	0x285cd: 0x6d035c20,
-	0x285d0: 0x6c26da20, 0x285d1: 0x6d247420, 0x285d2: 0x6c118220, 0x285d3: 0x6cf33420,
-	0x285d4: 0x6c141420, 0x285d5: 0x6c0fca20, 0x285d7: 0x6c663020,
-	0x285de: 0x6c9bb820, 0x285df: 0x6cf05e20,
-	0x285e0: 0x6ca09e20,
-	0x285e5: 0x6cd73820, 0x285e6: 0x6c6b8220, 0x285e7: 0x6cd7b220,
-	0x285e8: 0x6c5e5420, 0x285eb: 0x6c21ee20,
-	0x285ed: 0x6c901420, 0x285ee: 0x6c582420,
-	0x285f0: 0x6ceada20, 0x285f3: 0x6d220620,
-	0x285f6: 0x6c165a20, 0x285f7: 0x6d1dee20,
-	0x285f8: 0x6c5e5e20, 0x285fa: 0x6c806820,
-	0x285ff: 0x6ca30c20,
-	// Block 0xa18, offset 0x28600
-	0x28600: 0x6c032220, 0x28601: 0x6c418020, 0x28602: 0x6d15cc20, 0x28603: 0x6c63ac20,
-	0x28605: 0x6c269220, 0x28606: 0x6c2fa420, 0x28607: 0x6d0a8220,
-	0x28608: 0x6cc59620, 0x28609: 0x6c732020, 0x2860a: 0x6ce94c20, 0x2860b: 0x6d064020,
-	0x2860c: 0x6cd99220, 0x2860e: 0x6c128420, 0x2860f: 0x6c198e20,
-	0x28611: 0x6c2f7020,
-	0x2861a: 0x6c4d2620,
-	0x2861f: 0x6cf47220,
-	0x28626: 0x6cb72020,
-	0x28628: 0x6c5f6820,
-	0x2862e: 0x6c7cac20, 0x2862f: 0x6cef5e20,
-	0x28636: 0x6cd44e20, 0x28637: 0x6c3f2820,
-	0x28639: 0x6ce97a20, 0x2863b: 0x6c0cf020,
-	0x2863d: 0x6cdff020, 0x2863e: 0x6c4f5220, 0x2863f: 0x6cb1ce20,
-	// Block 0xa19, offset 0x28640
-	0x28643: 0x6d217e20,
-	0x28644: 0x6cdffa20,
-	0x2864c: 0x6cfd9020, 0x2864e: 0x6d050c20,
-	0x28653: 0x6cf26820,
-	0x28654: 0x6c4d8220, 0x28655: 0x6caef220,
-	0x2865d: 0x6ce04620, 0x2865f: 0x6c0d0a20,
-	0x28660: 0x6cfd9e20, 0x28663: 0x6d162e20,
-	0x28666: 0x6cb19020, 0x28667: 0x6c586c20,
-	0x28668: 0x6ca24020, 0x28669: 0x6c035220, 0x2866b: 0x6c396020,
-	0x2866f: 0x6c2f6020,
-	0x28677: 0x6c3b3c20,
-	0x2867a: 0x6c6bf620,
-	0x2867e: 0x6cdd4a20,
-	// Block 0xa1a, offset 0x28680
-	0x28684: 0x6ced9220, 0x28685: 0x6c43a220,
-	0x28688: 0x6c3b3e20, 0x2868a: 0x6ceb4420,
-	0x2868c: 0x6cf1a620, 0x2868d: 0x6c487620, 0x2868e: 0x6c343620,
-	0x28690: 0x6d308820, 0x28691: 0x6c22a020, 0x28692: 0x6d11ce20,
-	0x28694: 0x6c050420, 0x28695: 0x6c10b820, 0x28696: 0x6ca15c20,
-	0x28698: 0x6cb35e20, 0x2869b: 0x6c443020,
-	0x2869e: 0x6c8e9220,
-	0x286a1: 0x6cc4d020,
-	0x286a8: 0x6c41b020, 0x286aa: 0x6c55a220, 0x286ab: 0x6ca1e620,
-	0x286ae: 0x6d04f620, 0x286af: 0x6c59a220,
-	0x286b0: 0x6c3f0220, 0x286b1: 0x6c5b4220, 0x286b3: 0x6cc1ca20,
-	0x286b4: 0x6c6b3e20, 0x286b5: 0x6cead220, 0x286b6: 0x6d21ac20, 0x286b7: 0x6ca16820,
-	0x286b8: 0x6d38b220, 0x286b9: 0x6c702820, 0x286bb: 0x6cd53c20,
-	0x286bc: 0x6c7bae20, 0x286bd: 0x6cbf6620, 0x286be: 0x6c8b2c20, 0x286bf: 0x6c405e20,
-	// Block 0xa1b, offset 0x286c0
-	0x286ca: 0x6d074420,
-	0x286d6: 0x6c8c6e20,
-	0x286d8: 0x6ca88420, 0x286da: 0x6caf9c20,
-	0x286dc: 0x6c406e20, 0x286dd: 0x6c10c620, 0x286de: 0x6d18e020,
-	0x286e1: 0x6c0f8620, 0x286e3: 0x6c358420,
-	0x286e9: 0x6d30a620, 0x286eb: 0x6c86b820,
-	0x286ee: 0x6ce92620, 0x286ef: 0x6c26cc20,
-	0x286f1: 0x6c931620, 0x286f2: 0x6d0c4020, 0x286f3: 0x6c301e20,
-	0x286f4: 0x6cbcfc20, 0x286f5: 0x6ced5c20, 0x286f6: 0x6ca03c20, 0x286f7: 0x6d418020,
-	0x286f8: 0x6c408420, 0x286f9: 0x6cc15620, 0x286fa: 0x6c078e20, 0x286fb: 0x6c02b420,
-	0x286fc: 0x6cbaf620,
-	// Block 0xa1c, offset 0x28700
-	0x28701: 0x6cc44020,
-	0x28708: 0x6cc41020, 0x28709: 0x6c576a20, 0x2870a: 0x6cfd2a20, 0x2870b: 0x6c7dd820,
-	0x2870f: 0x6c258220,
-	0x28712: 0x6d158820,
-	0x28716: 0x6c1ae420, 0x28717: 0x6d404020,
-	0x28718: 0x6ca52420, 0x28719: 0x6c1a5820, 0x2871a: 0x6c32a820, 0x2871b: 0x6d1e0620,
-	0x2871c: 0x6d30e020, 0x2871e: 0x6ce0b020, 0x2871f: 0x6d0ff020,
-	0x28720: 0x6d011e20, 0x28721: 0x6d07ec20, 0x28723: 0x6c32e420,
-	0x28724: 0x6cd64c20, 0x28725: 0x6cfbbe20, 0x28726: 0x6cfbc020,
-	0x28729: 0x6c359e20,
-	0x28732: 0x6c7e5420,
-	0x28738: 0x6cf10220, 0x28739: 0x6d1ec820, 0x2873a: 0x6d21e020,
-	0x2873d: 0x6ce30420, 0x2873f: 0x6c6c7220,
-	// Block 0xa1d, offset 0x28740
-	0x28741: 0x6ce16420, 0x28742: 0x6cb69e20,
-	0x28744: 0x6c2cec20, 0x28745: 0x6ce1fe20, 0x28746: 0x6c941820, 0x28747: 0x6d2e9a20,
-	0x28748: 0x6cf17020, 0x28749: 0x6c62d620, 0x2874a: 0x6c023820, 0x2874b: 0x6cabaa20,
-	0x2874c: 0x6cb88420,
-	0x28750: 0x6cd21220, 0x28751: 0x6cde2420,
-	0x28754: 0x6ca18e20,
-	0x28758: 0x6d1f9220,
-	0x28760: 0x6d2c6a20, 0x28763: 0x6d117220,
-	0x2876b: 0x6c1cfa20,
-	0x2876c: 0x6c84b220, 0x2876d: 0x6d21f420, 0x2876e: 0x6c161420, 0x2876f: 0x6d143620,
-	0x28772: 0x6c1c9420,
-	0x28774: 0x6c84b420,
-	0x2877d: 0x6ce90a20, 0x2877f: 0x6d40fe20,
-	// Block 0xa1e, offset 0x28780
-	0x28782: 0x6cfbd620,
-	0x28787: 0x6cf93620,
-	0x28789: 0x6c0d0c20, 0x2878a: 0x6c4e4a20, 0x2878b: 0x6cb6b020,
-	0x2878c: 0x6cca7a20, 0x2878e: 0x6c3a2c20,
-	0x28790: 0x6ccdea20,
-	0x28798: 0x6c584820,
-	0x287a0: 0x6c059a20, 0x287a1: 0x6d220220, 0x287a2: 0x6d220420,
-	0x287a4: 0x6c610420,
-	0x287b1: 0x6c7b0620, 0x287b2: 0x6d3fe420,
-	0x287b9: 0x6cfd5420, 0x287ba: 0x6c9bc020,
-	// Block 0xa1f, offset 0x287c0
-	0x287c3: 0x6c87b820,
-	0x287c4: 0x6d377820, 0x287c5: 0x6c38fc20, 0x287c6: 0x6c8b8820, 0x287c7: 0x6c115620,
-	0x287c8: 0x6c320a20, 0x287c9: 0x6c4a0020, 0x287ca: 0x6d04b020, 0x287cb: 0x6c84ea20,
-	0x287cc: 0x6cb80c20, 0x287cf: 0x6c753420,
-	0x287d0: 0x6ceade20, 0x287d2: 0x6c72d220, 0x287d3: 0x6cff6420,
-	0x287d8: 0x6cc23420,
-	0x287dc: 0x6d3bba20,
-	0x287e1: 0x6c754420,
-	0x287e6: 0x6c6bbc20,
-	0x287e8: 0x6d390620, 0x287e9: 0x6cfc8820, 0x287ea: 0x6c8f7020, 0x287eb: 0x6d100420,
-	0x287ec: 0x6cc4b220, 0x287ed: 0x6d16d620, 0x287ee: 0x6c8ae020, 0x287ef: 0x6c0e5620,
-	0x287f0: 0x6c5ce220, 0x287f1: 0x6c61be20, 0x287f2: 0x6c306a20, 0x287f3: 0x6d386420,
-	0x287f4: 0x6cc29220, 0x287f5: 0x6c6a9c20,
-	0x287fa: 0x6c710820,
-	0x287fc: 0x6c078620, 0x287ff: 0x6c087620,
-	// Block 0xa20, offset 0x28800
-	0x28800: 0x6c43fe20, 0x28801: 0x6c217c20, 0x28803: 0x6cb9a220,
-	0x28804: 0x6cd9c820, 0x28805: 0x6cf0a020, 0x28806: 0x6c1a1420, 0x28807: 0x6c909020,
-	0x28808: 0x6d213e20, 0x28809: 0x6c7e4620, 0x2880a: 0x6cb9a420, 0x2880b: 0x6c2cd220,
-	0x2880c: 0x6cde0e20, 0x2880d: 0x6d2e6c20, 0x2880f: 0x6c38b620,
-	0x28810: 0x6c8b5620, 0x28811: 0x6ce64420, 0x28812: 0x6c5ebe20, 0x28813: 0x6cb8de20,
-	0x28814: 0x6c556820, 0x28817: 0x6d214220,
-	0x28818: 0x6cb79c20, 0x28819: 0x6d214420, 0x2881a: 0x6cebe020,
-	0x2881c: 0x6c03bc20, 0x2881d: 0x6cb61020, 0x2881e: 0x6cc95620, 0x2881f: 0x6cbb8620,
-	0x28820: 0x6d0bc220, 0x28821: 0x6cfc1e20,
-	0x28828: 0x6c220820, 0x28829: 0x6c396220, 0x2882b: 0x6c7dba20,
-	0x2882c: 0x6c4be020, 0x2882d: 0x6cc39220, 0x2882e: 0x6c367a20, 0x2882f: 0x6cbf4e20,
-	0x28832: 0x6c96d420, 0x28833: 0x6c7a5820,
-	0x28834: 0x6d11c620, 0x28837: 0x6cc39420,
-	0x28838: 0x6c1e6420, 0x28839: 0x6c642c20, 0x2883b: 0x6d3a7a20,
-	0x2883d: 0x6c331220, 0x2883e: 0x6cec0a20,
-	// Block 0xa21, offset 0x28840
-	0x28840: 0x6ca51220,
-	0x28844: 0x6d0cce20, 0x28845: 0x6ce78020,
-	0x2884b: 0x6d03fe20,
-	0x2884c: 0x6c4bee20, 0x2884d: 0x6cb26a20,
-	0x28851: 0x6d229c20, 0x28852: 0x6c51ec20,
-	0x28854: 0x6d3da420, 0x28857: 0x6ccf0020,
-	0x28858: 0x6d22a220, 0x2885b: 0x6c62a620,
-	0x2885d: 0x6cbaea20, 0x2885e: 0x6cd73220, 0x2885f: 0x6c21de20,
-	0x28860: 0x6d40e820, 0x28861: 0x6c838e20, 0x28862: 0x6ca60e20,
-	0x28864: 0x6cebf820, 0x28865: 0x6d2c5c20, 0x28867: 0x6c28d420,
-	0x2886e: 0x6c328820, 0x2886f: 0x6c0bd020,
-	0x28870: 0x6c6a3e20, 0x28871: 0x6cb87c20, 0x28872: 0x6c519020, 0x28873: 0x6c1d5e20,
-	0x28874: 0x6d0ce620, 0x28876: 0x6d0ee020,
-	0x2887a: 0x6cd94e20, 0x2887b: 0x6ce2c420,
-	0x2887c: 0x6d11e020, 0x2887e: 0x6c779620,
-	// Block 0xa22, offset 0x28880
-	0x28880: 0x6d3c6e20, 0x28881: 0x6c4b9a20, 0x28882: 0x6c005a20, 0x28883: 0x6c4d8420,
-	0x28888: 0x6cddb820, 0x28889: 0x6d076020, 0x2888a: 0x6c0c5020,
-	0x2888c: 0x6c3cfc20, 0x2888d: 0x6cc15e20, 0x2888e: 0x6c98ae20,
-	0x28890: 0x6c4ca020,
-	0x28896: 0x6c0ac420, 0x28897: 0x6c751020,
-	0x28898: 0x6c208a20, 0x2889b: 0x6cb47420,
-	0x2889f: 0x6d195020,
-	0x288a2: 0x6cb95020, 0x288a3: 0x6d196220,
-	0x288a4: 0x6c36ec20, 0x288a5: 0x6c8da620, 0x288a7: 0x6c0ace20,
-	0x288ad: 0x6c5e5620, 0x288ae: 0x6ca0b620,
-	0x288b1: 0x6d09ce20,
-	0x288b4: 0x6d0f1e20,
-	0x288b8: 0x6c87ba20, 0x288ba: 0x6ce04e20,
-	0x288be: 0x6c947e20,
-	// Block 0xa23, offset 0x288c0
-	0x288c0: 0x6c769020, 0x288c1: 0x6c99aa20, 0x288c2: 0x6cfefc20,
-	0x288c7: 0x6c007220,
-	0x288ca: 0x6cde1420,
-	0x288cd: 0x6c9aac20, 0x288cf: 0x6c4c4220,
-	0x288d3: 0x6c432220,
-	0x288d4: 0x6ca4c220, 0x288d5: 0x6c4ffc20,
-	0x288e0: 0x6cc39820,
-	0x288e5: 0x6c12a620, 0x288e6: 0x6ccb0a20,
-	0x288eb: 0x6cb03c20,
-	0x288f2: 0x6d006220, 0x288f3: 0x6cff6620,
-	0x288f4: 0x6c712c20,
-	0x288f9: 0x6c1a2420, 0x288fa: 0x6ca50820,
-	// Block 0xa24, offset 0x28900
-	0x28900: 0x6ca58e20,
-	0x2890d: 0x6ca25220, 0x2890f: 0x6cce8020,
-	0x28911: 0x6c2cda20,
-	0x28914: 0x6c8d5220, 0x28916: 0x6d31f820, 0x28917: 0x6d11d020,
-	0x28919: 0x6c404a20, 0x2891a: 0x6cb9c620, 0x2891b: 0x6cbf5820,
-	0x2891c: 0x6c715620, 0x2891d: 0x6c0e2c20, 0x2891e: 0x6c990620, 0x2891f: 0x6d2ce020,
-	0x28920: 0x6cdf0820,
-	0x28924: 0x6c1ce020,
-	0x2892b: 0x6d2d3220,
-	0x2892d: 0x6cd1f420, 0x2892e: 0x6d1e7c20,
-	0x28930: 0x6cbf6820, 0x28931: 0x6c2a3820, 0x28932: 0x6ce42620, 0x28933: 0x6d3c7820,
-	0x28935: 0x6d1b8020, 0x28937: 0x6ca51820,
-	0x28938: 0x6c0e9620, 0x28939: 0x6c7bb220, 0x2893a: 0x6d355220, 0x2893b: 0x6c34ba20,
-	0x2893c: 0x6c236220, 0x2893d: 0x6c061620,
-	// Block 0xa25, offset 0x28940
-	0x28947: 0x6c846820,
-	0x2894a: 0x6c716c20, 0x2894b: 0x6cf1bc20,
-	0x2894c: 0x6c8b3e20, 0x2894f: 0x6cf2c620,
-	0x28950: 0x6cd2de20, 0x28951: 0x6ca7b620, 0x28952: 0x6c987c20, 0x28953: 0x6c6f8c20,
-	0x28958: 0x6d050020,
-	0x2895d: 0x6cf2a420, 0x2895f: 0x6c2a4020,
-	0x28961: 0x6cf70e20, 0x28962: 0x6c01e020, 0x28963: 0x6c26ce20,
-	0x28964: 0x6d401020, 0x28965: 0x6c4f2a20, 0x28966: 0x6c20ea20, 0x28967: 0x6c089820,
-	0x28969: 0x6c309020, 0x2896b: 0x6d2f1220,
-	0x2896f: 0x6d0b0220,
-	0x28972: 0x6c2bac20, 0x28973: 0x6c5d6420,
-	0x28977: 0x6c9f8020,
-	0x2897a: 0x6c408820,
-	0x2897c: 0x6c061e20, 0x2897d: 0x6c78e420, 0x2897e: 0x6c991020, 0x2897f: 0x6cc55820,
-	// Block 0xa26, offset 0x28980
-	0x28980: 0x6d3fda20, 0x28981: 0x6cb88020, 0x28982: 0x6cf98020, 0x28983: 0x6cda0220,
-	0x28984: 0x6d050e20, 0x28985: 0x6ca36e20,
-	0x28989: 0x6c979620,
-	0x2898e: 0x6d2c0820, 0x2898f: 0x6c154a20,
-	0x28990: 0x6ccf8420, 0x28991: 0x6cf2ca20,
-	0x28996: 0x6c005c20, 0x28997: 0x6c059820,
-	0x28998: 0x6c4fb820, 0x2899a: 0x6ccad420, 0x2899b: 0x6cddba20,
-	0x2899c: 0x6ce44020, 0x2899d: 0x6d0bcc20, 0x2899f: 0x6c0e3a20,
-	0x289a0: 0x6cc6e420,
-	0x289ab: 0x6ccc2c20,
-	0x289ac: 0x6cf26a20, 0x289af: 0x6c028a20,
-	0x289b1: 0x6d3c2820, 0x289b3: 0x6cb1c020,
-	0x289b4: 0x6cdbe820, 0x289b5: 0x6d143820, 0x289b6: 0x6cda0420, 0x289b7: 0x6c30d220,
-	0x289b8: 0x6cda0620, 0x289b9: 0x6c956e20,
-	// Block 0xa27, offset 0x289c0
-	0x289c3: 0x6c3afc20,
-	0x289c4: 0x6d422220, 0x289c6: 0x6ca53c20, 0x289c7: 0x6c2ac420,
-	0x289c8: 0x6d34c220, 0x289c9: 0x6c25d020, 0x289ca: 0x6c8a5820, 0x289cb: 0x6c616420,
-	0x289cc: 0x6c0ea020, 0x289cd: 0x6c23d020, 0x289ce: 0x6c1a6020, 0x289cf: 0x6c104e20,
-	0x289d1: 0x6cca1020, 0x289d2: 0x6d29be20,
-	0x289d8: 0x6c69e420, 0x289db: 0x6d125220,
-	0x289dc: 0x6c920620, 0x289de: 0x6c121420,
-	0x289e8: 0x6ca67020,
-	0x289f0: 0x6c6b8820, 0x289f1: 0x6cb47c20, 0x289f2: 0x6d3c5020, 0x289f3: 0x6d29c820,
-	0x289fa: 0x6c87c420,
-	0x289fd: 0x6c7ed020,
-	// Block 0xa28, offset 0x28a00
-	0x28a00: 0x6c1d0620, 0x28a03: 0x6d2eae20,
-	0x28a0d: 0x6c0bb420, 0x28a0e: 0x6cf23220,
-	0x28a13: 0x6c53de20,
-	0x28a17: 0x6cb1fc20,
-	0x28a19: 0x6ccb9e20,
-	0x28a1e: 0x6ca67220, 0x28a1f: 0x6c3b4e20,
-	0x28a20: 0x6d065620, 0x28a22: 0x6cd2da20,
-	0x28a24: 0x6c72c220,
-	0x28a28: 0x6c752420, 0x28a2a: 0x6d24a220,
-	0x28a2c: 0x6c4c2a20, 0x28a2d: 0x6c4c3420, 0x28a2f: 0x6c55a420,
-	0x28a32: 0x6c869020, 0x28a33: 0x6d00fa20,
-	0x28a34: 0x6c376c20, 0x28a35: 0x6d25b420, 0x28a36: 0x6c4d2e20,
-	0x28a39: 0x6c6ebc20, 0x28a3b: 0x6c78de20,
-	0x28a3d: 0x6d3fcc20, 0x28a3e: 0x6c3ae620,
-	// Block 0xa29, offset 0x28a40
-	0x28a40: 0x6cae8820, 0x28a41: 0x6c44e220, 0x28a43: 0x6c652820,
-	0x28a44: 0x6ca61220, 0x28a46: 0x6cfbc220, 0x28a47: 0x6c873c20,
-	0x28a48: 0x6c17a820, 0x28a4a: 0x6c377620, 0x28a4b: 0x6c44e820,
-	0x28a4c: 0x6d247620, 0x28a4d: 0x6c560420, 0x28a4e: 0x6c3af820, 0x28a4f: 0x6c028c20,
-	0x28a53: 0x6c37b220,
-	0x28a58: 0x6c78ec20, 0x28a59: 0x6c7ab620, 0x28a5a: 0x6c0fd020,
-	0x28a5d: 0x6d13a020, 0x28a5e: 0x6c69e820,
-	0x28a66: 0x6c17ae20, 0x28a67: 0x6c44ec20,
-	0x28a68: 0x6cc82e20, 0x28a6a: 0x6d273c20,
-	0x28a6c: 0x6c8c1620,
-	0x28a71: 0x6d24a620, 0x28a72: 0x6d274820, 0x28a73: 0x6d2d1220,
-	0x28a74: 0x6cff6820, 0x28a77: 0x6c9f2420,
-	0x28a7b: 0x6c4af820,
-	0x28a7c: 0x6c6f6e20, 0x28a7e: 0x6cebaa20,
-	// Block 0xa2a, offset 0x28a80
-	0x28a81: 0x6cf78220, 0x28a82: 0x6cefd620, 0x28a83: 0x6d3d6a20,
-	0x28a84: 0x6cf0a220, 0x28a85: 0x6c7c8420,
-	0x28a88: 0x6c9a9820, 0x28a8a: 0x6c505020, 0x28a8b: 0x6c4f5020,
-	0x28a8c: 0x6c399a20, 0x28a8d: 0x6ca96e20, 0x28a8e: 0x6d205420, 0x28a8f: 0x6c57a420,
-	0x28a92: 0x6c812420,
-	0x28aa0: 0x6d3a1820, 0x28aa1: 0x6c4b1620, 0x28aa2: 0x6c0a1620, 0x28aa3: 0x6c642e20,
-	0x28aa4: 0x6ce59c20, 0x28aa6: 0x6c93f020, 0x28aa7: 0x6c79a220,
-	0x28aa8: 0x6d419420, 0x28aa9: 0x6c8d4620, 0x28aaa: 0x6cb63220,
-	0x28aac: 0x6d3a1e20,
-	0x28ab1: 0x6c47ba20, 0x28ab2: 0x6d413020,
-	0x28ab4: 0x6d0f6620, 0x28ab5: 0x6cda5620, 0x28ab7: 0x6c7c9620,
-	0x28ab9: 0x6c167a20, 0x28abb: 0x6d113e20,
-	0x28abe: 0x6d23e220,
-	// Block 0xa2b, offset 0x28ac0
-	0x28ac5: 0x6cd50420, 0x28ac6: 0x6c7f5420, 0x28ac7: 0x6d187620,
-	0x28ac8: 0x6c30c420,
-	0x28acc: 0x6cf3f020, 0x28acd: 0x6d1d1220, 0x28ace: 0x6c3f0420, 0x28acf: 0x6d3be820,
-	0x28ad0: 0x6c3f8a20, 0x28ad2: 0x6cdb2a20, 0x28ad3: 0x6c853420,
-	0x28ad4: 0x6d122820, 0x28ad5: 0x6cea1020,
-	0x28add: 0x6c4b7a20,
-	0x28ae1: 0x6c940020, 0x28ae2: 0x6d0ed420, 0x28ae3: 0x6cb66620,
-	0x28ae4: 0x6c813020, 0x28ae5: 0x6d3a3020, 0x28ae7: 0x6c4b1e20,
-	0x28ae8: 0x6c551020,
-	0x28aef: 0x6c6ddc20,
-	0x28af2: 0x6c1bc620,
-	0x28af5: 0x6c717220, 0x28af6: 0x6d2c6020,
-	0x28af8: 0x6c9e8020,
-	// Block 0xa2c, offset 0x28b00
-	0x28b00: 0x6d39da20, 0x28b01: 0x6c41ba20, 0x28b02: 0x6d047620, 0x28b03: 0x6c60e620,
-	0x28b07: 0x6cccaa20,
-	0x28b08: 0x6c9ab620, 0x28b09: 0x6d287420,
-	0x28b0d: 0x6cd48820,
-	0x28b10: 0x6c941a20, 0x28b11: 0x6d206020, 0x28b12: 0x6c681420, 0x28b13: 0x6caacc20,
-	0x28b18: 0x6c72c420, 0x28b19: 0x6d206220,
-	0x28b1c: 0x6d195220, 0x28b1d: 0x6ce2ce20, 0x28b1e: 0x6cef7220, 0x28b1f: 0x6c17f620,
-	0x28b20: 0x6c8c8620, 0x28b21: 0x6c483020, 0x28b23: 0x6c875a20,
-	0x28b24: 0x6c8ab020, 0x28b27: 0x6c68ac20,
-	0x28b28: 0x6d0ff620, 0x28b29: 0x6c0c5e20, 0x28b2a: 0x6cb6a220,
-	0x28b2e: 0x6d196420,
-	0x28b31: 0x6c0d7620, 0x28b32: 0x6c9bbc20, 0x28b33: 0x6c145a20,
-	0x28b35: 0x6c41be20,
-	0x28b39: 0x6cc21c20, 0x28b3a: 0x6c2bc020, 0x28b3b: 0x6c82a020,
-	// Block 0xa2d, offset 0x28b40
-	0x28b40: 0x6c8dcc20,
-	0x28b44: 0x6c585220, 0x28b45: 0x6cc23220, 0x28b47: 0x6c959c20,
-	0x28b49: 0x6c7cc820,
-	0x28b4d: 0x6cc08020, 0x28b4e: 0x6d227620, 0x28b4f: 0x6c57a620,
-	0x28b53: 0x6c833a20,
-	0x28b55: 0x6cc60620, 0x28b56: 0x6cffb620, 0x28b57: 0x6cd8da20,
-	0x28b5a: 0x6c327220, 0x28b5b: 0x6c0cb420,
-	0x28b60: 0x6ca97020, 0x28b62: 0x6c51e020, 0x28b63: 0x6cadc420,
-	0x28b65: 0x6c3acc20, 0x28b66: 0x6ca2aa20,
-	0x28b69: 0x6c3d9620,
-	0x28b6c: 0x6c55a820, 0x28b6d: 0x6cedec20, 0x28b6e: 0x6ccc1420,
-	0x28b70: 0x6c687420, 0x28b71: 0x6cf47420,
-	0x28b79: 0x6c404c20,
-	// Block 0xa2e, offset 0x28b80
-	0x28b81: 0x6c0df620, 0x28b82: 0x6d3b3020,
-	0x28b84: 0x6d3a2a20, 0x28b85: 0x6c1ada20, 0x28b87: 0x6cd07c20,
-	0x28b88: 0x6c550820, 0x28b89: 0x6c101e20,
-	0x28b8e: 0x6cc4d420,
-	0x28b96: 0x6ca2b620,
-	0x28b98: 0x6c869220, 0x28b9b: 0x6c638820,
-	0x28b9e: 0x6c96e020,
-	0x28ba1: 0x6c9b6820, 0x28ba2: 0x6ca1f020, 0x28ba3: 0x6d38b820,
-	0x28ba4: 0x6cfc3820, 0x28ba5: 0x6c5b7420, 0x28ba6: 0x6c48fc20, 0x28ba7: 0x6c702c20,
-	0x28ba9: 0x6ca2b820, 0x28bab: 0x6cc82a20,
-	0x28bad: 0x6cf3fc20, 0x28baf: 0x6cc7d820,
-	0x28bb1: 0x6d2ce620,
-	// Block 0xa2f, offset 0x28bc0
-	0x28bc1: 0x6caae220, 0x28bc2: 0x6d010a20,
-	0x28bc4: 0x6c680220,
-	0x28bcb: 0x6c853a20,
-	0x28bcc: 0x6cd51020, 0x28bcd: 0x6d190020, 0x28bce: 0x6c2bae20, 0x28bcf: 0x6cbe9220,
-	0x28bd0: 0x6c717420, 0x28bd3: 0x6d373620,
-	0x28bd5: 0x6c80f020, 0x28bd6: 0x6c10ca20, 0x28bd7: 0x6c7bca20,
-	0x28bd8: 0x6d190220, 0x28bda: 0x6c0f9a20,
-	0x28be7: 0x6c1c8c20,
-	0x28bed: 0x6c680c20, 0x28bef: 0x6cf32a20,
-	0x28bf0: 0x6d0aac20,
-	0x28bf5: 0x6cea3220, 0x28bf6: 0x6c987e20,
-	0x28bf8: 0x6c39b220, 0x28bf9: 0x6d3dce20, 0x28bfb: 0x6cb88220,
-	0x28bfd: 0x6cde2220, 0x28bfe: 0x6cb68a20,
-	// Block 0xa30, offset 0x28c00
-	0x28c00: 0x6caf1e20, 0x28c01: 0x6c0cc620, 0x28c02: 0x6c3bfe20, 0x28c03: 0x6ce92820,
-	0x28c04: 0x6c57d220, 0x28c07: 0x6c36d220,
-	0x28c0b: 0x6c36d420,
-	0x28c0e: 0x6c2fc420,
-	0x28c10: 0x6cc7e220,
-	0x28c16: 0x6c36d620,
-	0x28c1e: 0x6d0ef020, 0x28c1f: 0x6cd8f820,
-	0x28c25: 0x6d1cc020, 0x28c26: 0x6ca61620, 0x28c27: 0x6ca61820,
-	0x28c28: 0x6d158e20,
-	0x28c39: 0x6c9c9820,
-	0x28c3e: 0x6d129820, 0x28c3f: 0x6cb32620,
-	// Block 0xa31, offset 0x28c40
-	0x28c40: 0x6c240420, 0x28c42: 0x6cf11820,
-	0x28c44: 0x6c4d8820, 0x28c45: 0x6d1c2820, 0x28c47: 0x6ce6a020,
-	0x28c48: 0x6d375e20, 0x28c49: 0x6c3a2a20, 0x28c4a: 0x6d1f9420,
-	0x28c4d: 0x6c7cb020, 0x28c4e: 0x6c01e220, 0x28c4f: 0x6c03d220,
-	0x28c51: 0x6c4f3420,
-	0x28c5e: 0x6ca41620, 0x28c5f: 0x6ca3da20,
-	0x28c62: 0x6c6df420,
-	0x28c65: 0x6ceece20,
-	0x28c71: 0x6c1f8e20, 0x28c73: 0x6cddbe20,
-	0x28c74: 0x6ce20020, 0x28c75: 0x6cb6a620, 0x28c76: 0x6ce16620, 0x28c77: 0x6cf05a20,
-	0x28c78: 0x6c41fc20, 0x28c7a: 0x6c446420,
-	0x28c7c: 0x6c4f3820, 0x28c7e: 0x6ca37420, 0x28c7f: 0x6c446620,
-	// Block 0xa32, offset 0x28c80
-	0x28c84: 0x6d331420,
-	0x28c97: 0x6cde2820,
-	0x28c9b: 0x6cd84c20,
-	0x28c9d: 0x6ca6de20, 0x28c9e: 0x6cca9820,
-	0x28cab: 0x6d012a20,
-	0x28caf: 0x6d410220,
-	0x28cb0: 0x6d21fc20, 0x28cb1: 0x6ca6e020, 0x28cb2: 0x6cb55420,
-	0x28cb5: 0x6cd03220,
-	0x28cbc: 0x6c102020,
-	// Block 0xa33, offset 0x28cc0
-	0x28ccb: 0x6c7d9a20,
-	0x28ccc: 0x6c84c420, 0x28cce: 0x6c488220,
-	0x28cd6: 0x6d0e1c20, 0x28cd7: 0x6c10d220,
-	0x28cd8: 0x6c672a20, 0x28cda: 0x6cf40e20, 0x28cdb: 0x6c134420,
-	0x28cdc: 0x6c8c0e20, 0x28cdd: 0x6d3c0420, 0x28cdf: 0x6c5b0e20,
-	0x28ce1: 0x6ce7a620, 0x28ce2: 0x6d2ca220,
-	0x28ce4: 0x6c522c20, 0x28ce7: 0x6c4ce220,
-	0x28cf1: 0x6c6e4220,
-	0x28cf5: 0x6c2f1620, 0x28cf7: 0x6d1cdc20,
-	0x28cfc: 0x6d377420,
-	// Block 0xa34, offset 0x28d00
-	0x28d02: 0x6cf06620,
-	0x28d04: 0x6c62fa20, 0x28d05: 0x6cc73620,
-	0x28d08: 0x6c030620, 0x28d09: 0x6c292420, 0x28d0a: 0x6c958a20, 0x28d0b: 0x6d13a220,
-	0x28d0c: 0x6ceed220,
-	0x28d12: 0x6cbb3220,
-	0x28d19: 0x6c446c20, 0x28d1a: 0x6c62fc20,
-	0x28d26: 0x6d409620,
-	0x28d28: 0x6d15a620, 0x28d2b: 0x6d2ca420,
-	0x28d2d: 0x6c8b8c20,
-	0x28d34: 0x6d13a820,
-	0x28d3c: 0x6d2dd420,
-	// Block 0xa35, offset 0x28d40
-	0x28d40: 0x6c1e1620, 0x28d41: 0x6c0c6620,
-	0x28d46: 0x6d077020, 0x28d47: 0x6d1eda20,
-	0x28d4d: 0x6d029a20, 0x28d4e: 0x6cef7c20, 0x28d4f: 0x6c87ca20,
-	0x28d5b: 0x6c0fdc20,
-	0x28d5c: 0x6c664c20, 0x28d5d: 0x6c158220, 0x28d5e: 0x6c7d9e20,
-	0x28d61: 0x6cbe9a20,
-	0x28d67: 0x6cd6ce20,
-	0x28d68: 0x6cf76420, 0x28d69: 0x6cc23620,
-	0x28d70: 0x6c95a020, 0x28d73: 0x6c294c20,
-	0x28d74: 0x6ca71020, 0x28d75: 0x6c855a20, 0x28d77: 0x6c03e420,
-	0x28d79: 0x6c365220, 0x28d7a: 0x6c3d7a20, 0x28d7b: 0x6c400620,
-	0x28d7c: 0x6c5d1220, 0x28d7d: 0x6d2cd820, 0x28d7e: 0x6c014420,
-	// Block 0xa36, offset 0x28d80
-	0x28d81: 0x6cc09620, 0x28d82: 0x6c1dd620, 0x28d83: 0x6c9e3c20,
-	0x28d84: 0x6d0aa620, 0x28d85: 0x6ce92420, 0x28d86: 0x6ca60c20, 0x28d87: 0x6c570220,
-	0x28d88: 0x6cd50a20, 0x28d8a: 0x6d05f620, 0x28d8b: 0x6d384620,
-	0x28d8c: 0x6c776220,
-	0x28d92: 0x6cfee220, 0x28d93: 0x6cfee420,
-	0x28d94: 0x6c22d420, 0x28d95: 0x6c1c3c20, 0x28d97: 0x6c2dd220,
-	0x28d98: 0x6d181420, 0x28d9a: 0x6c2f6420,
-	0x28d9d: 0x6c4ef620, 0x28d9e: 0x6cece420,
-	0x28da0: 0x6d160220, 0x28da1: 0x6c066020, 0x28da2: 0x6d184220,
-	0x28da7: 0x6d0a9e20,
-	0x28dac: 0x6cfdd420,
-	0x28db3: 0x6c08a420,
-	0x28db6: 0x6c6b3020, 0x28db7: 0x6c43a620,
-	0x28db8: 0x6d2b5620, 0x28dba: 0x6d326a20, 0x28dbb: 0x6c55aa20,
-	0x28dbc: 0x6cf6b420, 0x28dbd: 0x6d02e820, 0x28dbe: 0x6cff1220, 0x28dbf: 0x6c404e20,
-	// Block 0xa37, offset 0x28dc0
-	0x28dc0: 0x6d383c20, 0x28dc2: 0x6c99b620, 0x28dc3: 0x6d02ea20,
-	0x28dc4: 0x6cbad820,
-	0x28dc8: 0x6c3b9220, 0x28dc9: 0x6c049820, 0x28dca: 0x6c583220,
-	0x28dd1: 0x6c687620, 0x28dd3: 0x6c066620,
-	0x28dd4: 0x6d0af820, 0x28dd5: 0x6d114020,
-	0x28ddb: 0x6cf8d820,
-	0x28ddd: 0x6c729e20, 0x28ddf: 0x6cc27c20,
-	0x28de0: 0x6d26f020, 0x28de1: 0x6cdf4220, 0x28de2: 0x6ce81820, 0x28de3: 0x6ca16c20,
-	0x28de4: 0x6d2c5420, 0x28de5: 0x6cc1ce20, 0x28de7: 0x6c3da620,
-	0x28de9: 0x6cc1d020, 0x28dea: 0x6c1c7e20,
-	0x28dec: 0x6d1f7c20,
-	0x28df7: 0x6ce38620,
-	0x28dfa: 0x6cebf020,
-	0x28dfd: 0x6ceb5620, 0x28dff: 0x6c1eb220,
-	// Block 0xa38, offset 0x28e00
-	0x28e01: 0x6c43b020,
-	0x28e08: 0x6d251620, 0x28e09: 0x6c43b220, 0x28e0a: 0x6cc1d220,
-	0x28e0f: 0x6c72a020,
-	0x28e12: 0x6c2ef820, 0x28e13: 0x6d157e20,
-	0x28e14: 0x6cd20820, 0x28e15: 0x6d18e420, 0x28e17: 0x6c4b2020,
-	0x28e18: 0x6c680420, 0x28e1a: 0x6cd94420, 0x28e1b: 0x6cbf7220,
-	0x28e1d: 0x6c36c220, 0x28e1e: 0x6c59a420, 0x28e1f: 0x6c5b4620,
-	0x28e20: 0x6d0a4620, 0x28e23: 0x6c717020,
-	0x28e25: 0x6d2d2220, 0x28e26: 0x6c1c8220, 0x28e27: 0x6c81c020,
-	0x28e29: 0x6cb66820, 0x28e2a: 0x6d050420,
-	0x28e2c: 0x6c5af620, 0x28e2d: 0x6ce79820,
-	0x28e3a: 0x6c407220,
-	0x28e3d: 0x6d0a4820, 0x28e3e: 0x6c6b4e20, 0x28e3f: 0x6c9d0620,
-	// Block 0xa39, offset 0x28e40
-	0x28e40: 0x6d242820,
-	0x28e48: 0x6d3c4a20, 0x28e49: 0x6c688e20, 0x28e4a: 0x6d373820, 0x28e4b: 0x6c1a5220,
-	0x28e4d: 0x6c6b6c20, 0x28e4e: 0x6cff3220, 0x28e4f: 0x6c18f220,
-	0x28e50: 0x6c848220, 0x28e51: 0x6d26fe20, 0x28e53: 0x6d373a20,
-	0x28e54: 0x6c818820, 0x28e55: 0x6cf32c20, 0x28e56: 0x6cc1ea20,
-	0x28e58: 0x6cedce20, 0x28e5a: 0x6d142e20, 0x28e5b: 0x6d190420,
-	0x28e5c: 0x6c80f220, 0x28e5e: 0x6ce7fa20, 0x28e5f: 0x6c015c20,
-	0x28e60: 0x6c74e420, 0x28e61: 0x6d0ee420,
-	0x28e65: 0x6c72b020, 0x28e67: 0x6d327620,
-	0x28e69: 0x6d373c20, 0x28e6a: 0x6c98a820,
-	0x28e6e: 0x6d055420,
-	0x28e71: 0x6c208020, 0x28e72: 0x6c1e6c20,
-	0x28e78: 0x6cbafc20, 0x28e79: 0x6c3a2620, 0x28e7a: 0x6c16d420,
-	0x28e7c: 0x6c9dec20, 0x28e7d: 0x6cdb5a20, 0x28e7e: 0x6c02b820,
-	// Block 0xa3a, offset 0x28e80
-	0x28e80: 0x6c3f9620,
-	0x28e84: 0x6cf10620, 0x28e85: 0x6d342420, 0x28e86: 0x6c9f8220, 0x28e87: 0x6c168820,
-	0x28e88: 0x6d0cfa20, 0x28e89: 0x6d245820, 0x28e8b: 0x6c408a20,
-	0x28e8c: 0x6cded020, 0x28e8d: 0x6c616020, 0x28e8f: 0x6c3aee20,
-	0x28e92: 0x6c55f620, 0x28e93: 0x6c70e220,
-	0x28e95: 0x6d22ac20,
-	0x28e9b: 0x6cb69220,
-	0x28e9c: 0x6c9a3820, 0x28e9f: 0x6c0ccc20,
-	0x28ea0: 0x6c4cd820,
-	0x28ea4: 0x6ca04c20, 0x28ea6: 0x6ced5e20, 0x28ea7: 0x6ced6020,
-	0x28eb4: 0x6c6dec20, 0x28eb5: 0x6d245a20, 0x28eb6: 0x6cfbce20,
-	0x28eb9: 0x6c212a20, 0x28eba: 0x6c60f820,
-	0x28ebc: 0x6cfd9620, 0x28ebd: 0x6cae4420, 0x28ebe: 0x6c409220,
-	// Block 0xa3b, offset 0x28ec0
-	0x28ec2: 0x6c8ed820,
-	0x28ec4: 0x6cc9da20, 0x28ec5: 0x6d08f020, 0x28ec6: 0x6d409220,
-	0x28ec8: 0x6c6b7e20, 0x28ecb: 0x6d2dc220,
-	0x28ecd: 0x6d21e820, 0x28ece: 0x6d21ea20, 0x28ecf: 0x6c9a4020,
-	0x28ed0: 0x6c9ea820, 0x28ed1: 0x6c99c020, 0x28ed2: 0x6c346a20, 0x28ed3: 0x6c409420,
-	0x28edb: 0x6c671820,
-	0x28ee6: 0x6c9e8420,
-	0x28ee8: 0x6c023a20,
-	0x28eed: 0x6c78e620,
-	0x28ef6: 0x6c544420,
-	0x28efa: 0x6c46e420,
-	0x28efc: 0x6cf74c20, 0x28efe: 0x6cc6e820, 0x28eff: 0x6c43be20,
-	// Block 0xa3c, offset 0x28f00
-	0x28f00: 0x6cac9220, 0x28f01: 0x6d25d420, 0x28f02: 0x6cfa5e20,
-	0x28f05: 0x6ccc2e20, 0x28f06: 0x6cafa620,
-	0x28f08: 0x6cbe9620, 0x28f09: 0x6d1dde20, 0x28f0a: 0x6cc20220,
-	0x28f0c: 0x6c462820, 0x28f0e: 0x6c446820, 0x28f0f: 0x6cfb0820,
-	0x28f11: 0x6cdb6820,
-	0x28f15: 0x6c04ae20, 0x28f16: 0x6cb6a820, 0x28f17: 0x6c548820,
-	0x28f1b: 0x6cf74e20,
-	0x28f1d: 0x6cf39220,
-	0x28f2d: 0x6cb55620, 0x28f2e: 0x6c56ec20, 0x28f2f: 0x6c4aae20,
-	0x28f31: 0x6c2bbc20, 0x28f32: 0x6cce2c20, 0x28f33: 0x6c975220,
-	0x28f34: 0x6c9fde20, 0x28f35: 0x6c62ea20, 0x28f36: 0x6cf7c820, 0x28f37: 0x6cfb1020,
-	0x28f38: 0x6c610220, 0x28f39: 0x6c16d820, 0x28f3a: 0x6c7a1220, 0x28f3b: 0x6c1cfc20,
-	// Block 0xa3d, offset 0x28f40
-	0x28f42: 0x6d2ef020, 0x28f43: 0x6cb1aa20,
-	0x28f44: 0x6cdb6c20, 0x28f45: 0x6c94cc20, 0x28f46: 0x6c84c620, 0x28f47: 0x6c9c2020,
-	0x28f48: 0x6c1cfe20, 0x28f49: 0x6ce47c20, 0x28f4b: 0x6c8da820,
-	0x28f4d: 0x6c1c9a20,
-	0x28f56: 0x6c1d0020,
-	0x28f59: 0x6c1c9c20,
-	0x28f5d: 0x6ca7c820, 0x28f5f: 0x6d1e0a20,
-	0x28f6e: 0x6c9db020,
-	0x28f70: 0x6cd51e20, 0x28f72: 0x6cf93820,
-	0x28f74: 0x6c36f620, 0x28f75: 0x6d3ec820,
-	0x28f78: 0x6c6b8420, 0x28f79: 0x6c5faa20, 0x28f7a: 0x6c53e820, 0x28f7b: 0x6cd18220,
-	0x28f7c: 0x6c879c20, 0x28f7e: 0x6cb55c20,
-	// Block 0xa3e, offset 0x28f80
-	0x28f80: 0x6d38c620, 0x28f81: 0x6cd85820, 0x28f82: 0x6cc21e20,
-	0x28f8b: 0x6d013420,
-	0x28f97: 0x6cd85a20,
-	0x28f9b: 0x6d061220,
-	0x28fa0: 0x6c409e20,
-	0x28faf: 0x6ca9e620,
-	0x28fb0: 0x6d0bd020, 0x28fb1: 0x6c8ef020, 0x28fb2: 0x6c643420, 0x28fb3: 0x6c4ab020,
-	0x28fb4: 0x6c7cc020, 0x28fb5: 0x6c1ca220, 0x28fb6: 0x6c121620, 0x28fb7: 0x6c1ed020,
-	0x28fb9: 0x6c4c5020, 0x28fbb: 0x6c285a20,
-	0x28fbf: 0x6c672e20,
-	// Block 0xa3f, offset 0x28fc0
-	0x28fc1: 0x6c292620, 0x28fc2: 0x6c548c20,
-	0x28fc4: 0x6c7a1420, 0x28fc6: 0x6c1f9220, 0x28fc7: 0x6cb96220,
-	0x28fc8: 0x6c010c20, 0x28fca: 0x6cb0e420,
-	0x28fd1: 0x6d0abc20, 0x28fd2: 0x6c6dfc20, 0x28fd3: 0x6c9c2620,
-	0x28fd5: 0x6c0d7a20, 0x28fd6: 0x6c801620, 0x28fd7: 0x6c47fa20,
-	0x28fd8: 0x6c1e1420, 0x28fdb: 0x6d1dec20,
-	0x28fdc: 0x6c488420, 0x28fdd: 0x6d220a20, 0x28fde: 0x6d397420,
-	0x28fed: 0x6c115820, 0x28fef: 0x6c8ef420,
-	0x28ff0: 0x6c105420, 0x28ff1: 0x6c965820, 0x28ff2: 0x6c6b8c20, 0x28ff3: 0x6d31a820,
-	0x28ff4: 0x6c9f2220, 0x28ff5: 0x6c4a1620, 0x28ff7: 0x6c63f820,
-	0x28ff9: 0x6c7ed220,
-	// Block 0xa40, offset 0x29000
-	0x29000: 0x6cd48c20, 0x29003: 0x6c4c5220,
-	0x29006: 0x6c9c2820, 0x29007: 0x6cb9ea20,
-	0x29008: 0x6c7f8420, 0x2900a: 0x6c51b220, 0x2900b: 0x6ce97c20,
-	0x29011: 0x6c5b1020,
-	0x29018: 0x6c52e620,
-	0x2901c: 0x6c93c820, 0x2901f: 0x6c63fa20,
-	0x29025: 0x6c4ab220,
-	0x29028: 0x6d144420, 0x29029: 0x6c585420,
-	0x29030: 0x6c95a220,
-	0x29034: 0x6c754620,
-	0x29038: 0x6c49ce20, 0x2903b: 0x6cc34820,
-	0x2903c: 0x6ca7cc20, 0x2903f: 0x6c97b220,
-	// Block 0xa41, offset 0x29040
-	0x29042: 0x6d282420, 0x29043: 0x6cf18a20,
-	0x29044: 0x6c1c0c20, 0x29045: 0x6c1c1820, 0x29046: 0x6d33dc20,
-	0x29048: 0x6c224420, 0x29049: 0x6d3c3e20, 0x2904a: 0x6c573c20, 0x2904b: 0x6c6ac020,
-	0x2904c: 0x6cc19e20, 0x2904d: 0x6ce86620, 0x2904e: 0x6c9f6a20, 0x2904f: 0x6c9a2020,
-	0x29050: 0x6d218020, 0x29051: 0x6c026e20, 0x29052: 0x6c049a20,
-	0x29054: 0x6caf8c20, 0x29055: 0x6d31a420, 0x29056: 0x6c91d020, 0x29057: 0x6c1c5420,
-	0x29058: 0x6ce7f620, 0x2905a: 0x6c6a3420,
-	0x2905c: 0x6d2da420,
-	0x29062: 0x6c6c6820, 0x29063: 0x6c91f020,
-	0x29066: 0x6c670a20, 0x29067: 0x6ce0b420,
-	0x29068: 0x6c168a20, 0x2906a: 0x6c22ee20,
-	0x2906d: 0x6cec5c20, 0x2906e: 0x6c240620, 0x2906f: 0x6c771a20,
-	0x29071: 0x6c0bd820,
-	0x29078: 0x6cf17620, 0x2907b: 0x6cb95620,
-	0x2907f: 0x6c424220,
-	// Block 0xa42, offset 0x29080
-	0x29082: 0x6c5ca220,
-	0x29084: 0x6c420620, 0x29086: 0x6c630020, 0x29087: 0x6c424620,
-	0x29089: 0x6c580820,
-	0x2908d: 0x6cd8dc20,
-	0x29090: 0x6c3d9a20,
-	0x29095: 0x6cb01620, 0x29097: 0x6c10d620,
-	0x2909c: 0x6c07c620,
-	0x290a2: 0x6cd2dc20,
-	0x290a5: 0x6c58b020, 0x290a7: 0x6c4a9420,
-	0x290aa: 0x6cab9620,
-	0x290b3: 0x6cad7020,
-	0x290b5: 0x6d1d2020, 0x290b6: 0x6ce6e620, 0x290b7: 0x6d001820,
-	0x290b9: 0x6d3b3620, 0x290bb: 0x6d21d220,
-	// Block 0xa43, offset 0x290c0
-	0x290c1: 0x6c66fa20,
-	0x290c4: 0x6cc25420, 0x290c5: 0x6ced6220, 0x290c6: 0x6c7d9220, 0x290c7: 0x6d3c7220,
-	0x290c9: 0x6d245c20, 0x290ca: 0x6c4cda20, 0x290cb: 0x6cb2de20,
-	0x290cc: 0x6d41a420, 0x290cd: 0x6d40fa20, 0x290cf: 0x6d39e820,
-	0x290d0: 0x6caa9c20, 0x290d1: 0x6d39ea20,
-	0x290d6: 0x6cb17620, 0x290d7: 0x6c9cac20,
-	0x290dc: 0x6c0ad220, 0x290dd: 0x6cdb6e20,
-	0x290e1: 0x6cb47a20, 0x290e2: 0x6c9cc420,
-	0x290eb: 0x6d13a620,
-	0x290ec: 0x6d22b420, 0x290ee: 0x6d249620,
-	0x290f0: 0x6d3a9420, 0x290f3: 0x6c8dc220,
-	0x290fa: 0x6caa3620,
-	0x290fe: 0x6c8d3020,
-	// Block 0xa44, offset 0x29100
-	0x29100: 0x6c8a7020, 0x29102: 0x6ceace20,
-	0x29104: 0x6c08f020, 0x29105: 0x6ca36a20, 0x29106: 0x6cc1bc20,
-	0x29108: 0x6cb01820, 0x29109: 0x6c30f420, 0x2910a: 0x6ca86e20, 0x2910b: 0x6cea6820,
-	0x2910d: 0x6c5f2620, 0x2910f: 0x6c8d5420,
-	0x29113: 0x6c7aaa20,
-	0x29114: 0x6cdb2c20,
-	0x29118: 0x6ce81a20,
-	0x2911e: 0x6ca38620, 0x2911f: 0x6d2b0c20,
-	0x29122: 0x6ce7c420, 0x29123: 0x6c444a20,
-	0x29124: 0x6c331820, 0x29127: 0x6c6b5020,
-	0x29129: 0x6ce4c820, 0x2912a: 0x6ce5e220, 0x2912b: 0x6c1b6020,
-	0x2912c: 0x6cc14e20, 0x2912e: 0x6ccc2820,
-	0x29130: 0x6c0f9e20, 0x29131: 0x6c848420, 0x29133: 0x6c963a20,
-	0x29135: 0x6c8a4420, 0x29136: 0x6cd62620, 0x29137: 0x6c2ad220,
-	0x29139: 0x6c1ae620, 0x2913a: 0x6c9f0220,
-	0x2913c: 0x6ce24e20, 0x2913d: 0x6c5d0c20, 0x2913f: 0x6ca7e220,
-	// Block 0xa45, offset 0x29140
-	0x29141: 0x6c75fe20, 0x29142: 0x6c56dc20,
-	0x29144: 0x6c932e20, 0x29145: 0x6d138820, 0x29147: 0x6ca18620,
-	0x29148: 0x6c17c820,
-	0x2914c: 0x6cddd420, 0x2914e: 0x6c784220, 0x2914f: 0x6c409620,
-	0x29151: 0x6c17aa20,
-	0x29154: 0x6cddbc20, 0x29157: 0x6cbfe220,
-	0x2915b: 0x6cdb6a20,
-	0x2915d: 0x6d287620, 0x2915f: 0x6cddc220,
-	0x29160: 0x6c7a7020, 0x29161: 0x6c0fc420, 0x29163: 0x6c90fe20,
-	0x29164: 0x6ca1a220, 0x29166: 0x6c88e220, 0x29167: 0x6d08d220,
-	0x29168: 0x6cddc420, 0x29169: 0x6c97aa20, 0x2916a: 0x6c0ad420,
-	0x29172: 0x6ce44820,
-	0x29174: 0x6c88a620, 0x29175: 0x6ce04a20, 0x29176: 0x6ccdf220,
-	0x29178: 0x6cc22820, 0x29179: 0x6c320820, 0x2917a: 0x6c58d420, 0x2917b: 0x6ccb0e20,
-	0x2917f: 0x6c7c2620,
-	// Block 0xa46, offset 0x29180
-	0x29183: 0x6ca8dc20,
-	0x29185: 0x6ca8de20, 0x29186: 0x6c95a420, 0x29187: 0x6d425c20,
-	0x29188: 0x6d174e20, 0x29189: 0x6cfcc020, 0x2918a: 0x6c179820, 0x2918b: 0x6ce61220,
-	0x29192: 0x6cd79620,
-	0x29194: 0x6c9d0020, 0x29197: 0x6c9c7220,
-	0x2919b: 0x6ced5220,
-	0x2919d: 0x6c07c820, 0x2919e: 0x6cbae020,
-	0x291a0: 0x6ca0b020, 0x291a3: 0x6c8eca20,
-	0x291a4: 0x6cf32e20, 0x291a6: 0x6c9a7020,
-	0x291a8: 0x6ce7fe20, 0x291ab: 0x6ca25a20,
-	0x291ad: 0x6c9a4420,
-	0x291b2: 0x6d42b620,
-	0x291b4: 0x6cea6420, 0x291b5: 0x6c778c20, 0x291b6: 0x6cea6a20,
-	0x291ba: 0x6c184c20, 0x291bb: 0x6d336a20,
-	0x291bd: 0x6c1cec20, 0x291be: 0x6ce47820,
-	// Block 0xa47, offset 0x291c0
-	0x291c0: 0x6d372020, 0x291c1: 0x6c153420, 0x291c2: 0x6c153e20,
-	0x291c5: 0x6cbe5c20, 0x291c6: 0x6cea3420, 0x291c7: 0x6c5b7a20,
-	0x291c8: 0x6cc41420, 0x291c9: 0x6d2dba20, 0x291ca: 0x6c652c20, 0x291cb: 0x6c154c20,
-	0x291cd: 0x6c5a2620, 0x291cf: 0x6c5b0620,
-	0x291d0: 0x6c1b6a20, 0x291d2: 0x6c5a2820, 0x291d3: 0x6c528220,
-	0x291d4: 0x6d280820, 0x291d6: 0x6ce94020, 0x291d7: 0x6c0b1c20,
-	0x291d9: 0x6c5a3620, 0x291da: 0x6d280a20,
-	0x291df: 0x6ca1a420,
-	0x291e0: 0x6c45c420, 0x291e2: 0x6c45c620,
-	0x291e4: 0x6c4bb020, 0x291e6: 0x6c157820,
-	0x291e8: 0x6cc42220, 0x291e9: 0x6cc8ee20, 0x291ea: 0x6c7c2820, 0x291eb: 0x6cb1c220,
-	0x291ee: 0x6cc80220,
-	0x291f2: 0x6ca9a220, 0x291f3: 0x6c56c820,
-	0x291f4: 0x6c6cb820, 0x291f5: 0x6ca6d220, 0x291f6: 0x6c067420,
-	0x291f8: 0x6ca65620, 0x291fa: 0x6c0a8420, 0x291fb: 0x6c55d820,
-	0x291fc: 0x6c846a20, 0x291ff: 0x6d39dc20,
-	// Block 0xa48, offset 0x29200
-	0x29200: 0x6ca2fc20, 0x29202: 0x6cc36620, 0x29203: 0x6c3cd220,
-	0x29204: 0x6c090020, 0x29205: 0x6c84a020, 0x29206: 0x6c0d0820, 0x29207: 0x6ca70e20,
-	0x29208: 0x6c304820, 0x2920b: 0x6c88a020,
-	0x2920c: 0x6ca6e420, 0x2920d: 0x6c88a820, 0x2920e: 0x6c968820, 0x2920f: 0x6d30ca20,
-	0x29213: 0x6c639420,
-	0x29214: 0x6d15a820, 0x29216: 0x6c904c20,
-	0x29218: 0x6d181820,
-	0x2921d: 0x6c278e20, 0x2921e: 0x6c327820,
-	0x29223: 0x6d160c20,
-	0x29225: 0x6cdf8220, 0x29226: 0x6c4f5420, 0x29227: 0x6cd61620,
-	0x2922c: 0x6cece820, 0x2922e: 0x6cdb2e20, 0x2922f: 0x6d11d820,
-	0x29230: 0x6c37e020, 0x29232: 0x6d326e20,
-	0x2923a: 0x6c313e20, 0x2923b: 0x6c651220,
-	0x2923f: 0x6cace620,
-	// Block 0xa49, offset 0x29240
-	0x29240: 0x6c5afe20, 0x29242: 0x6c145420, 0x29243: 0x6ccd1c20,
-	0x29244: 0x6c916620, 0x29246: 0x6d244c20,
-	0x29248: 0x6d0ef420, 0x29249: 0x6ced6420, 0x2924a: 0x6cbc6e20, 0x2924b: 0x6c953420,
-	0x2924c: 0x6d245e20, 0x2924f: 0x6ce90620,
-	0x29250: 0x6cf10820, 0x29252: 0x6cea8e20,
-	0x29255: 0x6c5d1820, 0x29256: 0x6c079020, 0x29257: 0x6cbd0620,
-	0x29259: 0x6c6c7420, 0x2925a: 0x6c7f3620,
-	0x2925c: 0x6d356620, 0x2925d: 0x6d21ec20, 0x2925f: 0x6c22f020,
-	0x29266: 0x6d139420, 0x29267: 0x6c2f0c20,
-	0x29268: 0x6c145820, 0x29269: 0x6c2d9a20, 0x2926a: 0x6c97a220,
-	0x2926c: 0x6c2afc20, 0x2926d: 0x6ceed020, 0x2926e: 0x6ca75020, 0x2926f: 0x6c835e20,
-	0x29270: 0x6c0db820, 0x29271: 0x6cf39420, 0x29273: 0x6d320820,
-	0x29276: 0x6cc77420, 0x29277: 0x6cec7c20,
-	0x29278: 0x6c9dac20, 0x29279: 0x6c6c1020, 0x2927b: 0x6c544620,
-	0x2927d: 0x6d2d5620, 0x2927e: 0x6cc80a20, 0x2927f: 0x6d3ec620,
-	// Block 0xa4a, offset 0x29280
-	0x29280: 0x6cac9420, 0x29282: 0x6ca1a620,
-	0x29284: 0x6c9db220, 0x29286: 0x6cb55820, 0x29287: 0x6ca1a820,
-	0x2928a: 0x6d342c20, 0x2928b: 0x6c04b020,
-	0x2928d: 0x6c9f1820, 0x2928f: 0x6c933e20,
-	0x29291: 0x6cb55e20, 0x29292: 0x6c1d0420,
-	0x29294: 0x6c84d220, 0x29295: 0x6d196e20,
-	0x29298: 0x6c2b0620, 0x29299: 0x6c25d220, 0x2929b: 0x6c339020,
-	0x2929c: 0x6c96e820, 0x2929d: 0x6d0e2c20, 0x2929f: 0x6d2bba20,
-	0x292a0: 0x6d0e2e20, 0x292a1: 0x6c339220, 0x292a2: 0x6cb42620,
-	0x292a5: 0x6d273020,
-	0x292a9: 0x6c5e5c20, 0x292aa: 0x6c975420, 0x292ab: 0x6c664620,
-	0x292ac: 0x6ca9e820, 0x292ad: 0x6cbdc020, 0x292af: 0x6cbdc220,
-	0x292b2: 0x6d13aa20,
-	0x292b4: 0x6cdf5420,
-	0x292b9: 0x6c655c20,
-	0x292bc: 0x6c141620, 0x292be: 0x6c28f220, 0x292bf: 0x6ce2e220,
-	// Block 0xa4b, offset 0x292c0
-	0x292c0: 0x6c87ce20, 0x292c3: 0x6ca77c20,
-	0x292c4: 0x6c158420, 0x292c5: 0x6d29f620,
-	0x292ca: 0x6d24b820,
-	0x292cc: 0x6d41e220, 0x292cd: 0x6c0b2020,
-	0x292d0: 0x6c1ef820,
-	0x292d8: 0x6cc48c20, 0x292da: 0x6cc49820, 0x292db: 0x6d0f7020,
-	0x292dc: 0x6c0fe820,
-	0x292e1: 0x6c247820,
-	0x292ec: 0x6c9cae20, 0x292ee: 0x6c787420,
-	0x292f0: 0x6c248420,
-	0x292f7: 0x6cf7ce20,
-	0x292f9: 0x6c968a20, 0x292fb: 0x6cd22020,
-	0x292fc: 0x6c2d0420, 0x292ff: 0x6cd22220,
-	// Block 0xa4c, offset 0x29300
-	0x29302: 0x6c2f7620, 0x29303: 0x6c6ee420,
-	0x29305: 0x6d25a820, 0x29306: 0x6c41b220,
-	0x2930a: 0x6c5ca420, 0x2930b: 0x6c5f4e20,
-	0x2930d: 0x6caed420, 0x2930f: 0x6c2ab220,
-	0x29311: 0x6c085e20,
-	0x29314: 0x6cacea20, 0x29315: 0x6cded420, 0x29317: 0x6d252220,
-	0x29318: 0x6c42ee20, 0x29319: 0x6d252420,
-	0x2931f: 0x6c639220,
-	0x29323: 0x6c799020,
-	0x29326: 0x6c309820,
-	0x29329: 0x6cfbd820, 0x2932a: 0x6cb80620,
-	0x2932c: 0x6cca7c20,
-	0x29330: 0x6d1b9820, 0x29333: 0x6c901a20,
-	0x29336: 0x6ce29a20, 0x29337: 0x6c902420,
-	0x2933a: 0x6cc60820,
-	0x2933d: 0x6d1b9020, 0x2933e: 0x6cb2d820, 0x2933f: 0x6cb41c20,
-	// Block 0xa4d, offset 0x29340
-	0x29340: 0x6d25be20, 0x29341: 0x6cc72a20, 0x29343: 0x6c399e20,
-	0x29347: 0x6c4f5820,
-	0x29348: 0x6c9c8820, 0x29349: 0x6c55ea20, 0x2934a: 0x6d3eb620,
-	0x2934c: 0x6c8d7e20, 0x2934d: 0x6c6eea20, 0x2934e: 0x6cc72e20,
-	0x29352: 0x6cb2e020, 0x29353: 0x6c49fc20,
-	0x29354: 0x6c37ae20,
-	0x2935d: 0x6c247e20, 0x2935e: 0x6c760020,
-	0x29366: 0x6d052a20,
-	0x29368: 0x6c377a20, 0x29369: 0x6ce44420, 0x2936b: 0x6d0ff820,
-	0x2936d: 0x6c010a20, 0x2936e: 0x6c560820, 0x2936f: 0x6cf7ca20,
-	0x29371: 0x6c560a20, 0x29373: 0x6cd85220,
-	0x29374: 0x6c854e20, 0x29376: 0x6d197020, 0x29377: 0x6c47f620,
-	0x29379: 0x6ce16a20,
-	// Block 0xa4e, offset 0x29380
-	0x29380: 0x6cc42420, 0x29381: 0x6d3fe620, 0x29382: 0x6c84de20,
-	0x29384: 0x6c69ec20, 0x29387: 0x6c38fe20,
-	0x29388: 0x6cb47e20, 0x29389: 0x6cd86620, 0x2938b: 0x6c6b9020,
-	0x2938c: 0x6c91b220, 0x2938d: 0x6c87d020, 0x2938e: 0x6c158620,
-	0x29390: 0x6d122220,
-	0x29395: 0x6c5b0020,
-	0x29399: 0x6c53e420, 0x2939a: 0x6c2cea20, 0x2939b: 0x6cc0be20,
-	0x2939c: 0x6c74f820, 0x2939e: 0x6cb0d420,
-	0x293a2: 0x6c7c5220,
-	0x293a5: 0x6cf82820, 0x293a6: 0x6ce30c20,
-	0x293a9: 0x6d076820,
-	0x293af: 0x6c0b6220,
-	0x293b2: 0x6c50b020, 0x293b3: 0x6c88ac20,
-	0x293b6: 0x6cdb7620, 0x293b7: 0x6c8ab220,
-	0x293bc: 0x6c6c7820,
-	// Block 0xa4f, offset 0x293c0
-	0x293c1: 0x6c87d220, 0x293c2: 0x6c158820,
-	0x293c5: 0x6cb65a20, 0x293c6: 0x6cb66c20,
-	0x293c9: 0x6d3ec020, 0x293cb: 0x6d3ec420,
-	0x293cd: 0x6cb6b220, 0x293cf: 0x6cb6b820,
-	0x293d0: 0x6d3ed020, 0x293d2: 0x6d2d1020, 0x293d3: 0x6d2d1420,
-	0x293d4: 0x6cabec20, 0x293d6: 0x6c70d820,
-	0x293d9: 0x6d0df420,
-	0x293dc: 0x6c4f8c20, 0x293dd: 0x6ca37020,
-	0x293e4: 0x6d0e0220, 0x293e6: 0x6d2e9c20, 0x293e7: 0x6cd2e020,
-	0x293e8: 0x6d34ba20,
-	0x293ed: 0x6d2c0a20,
-	0x293f4: 0x6cc73420, 0x293f5: 0x6d2c0c20, 0x293f7: 0x6d195820,
-	0x293f8: 0x6ca02820, 0x293f9: 0x6d0b4020, 0x293fb: 0x6d376620,
-	0x293fd: 0x6c7e3020, 0x293fe: 0x6cfa1c20,
-	// Block 0xa50, offset 0x29400
-	0x29400: 0x6cb13820, 0x29401: 0x6cdeec20, 0x29403: 0x6d162a20,
-	0x29406: 0x6d051620, 0x29407: 0x6d2d0c20,
-	0x29409: 0x6c34c420, 0x2940a: 0x6c36e420,
-	0x2940e: 0x6d1ab420,
-	0x29410: 0x6c36ee20, 0x29411: 0x6cdb8e20, 0x29412: 0x6c016420, 0x29413: 0x6c260420,
-	0x29415: 0x6ceb6420, 0x29417: 0x6ceb6620,
-	0x29418: 0x6cfa1e20, 0x2941b: 0x6c21ea20,
-	0x2941d: 0x6cdb9020,
-	0x29425: 0x6c62f420, 0x29426: 0x6cba3620, 0x29427: 0x6d410420,
-	0x29428: 0x6d2d0e20, 0x29429: 0x6d280e20, 0x2942a: 0x6d2ea620,
-	0x2942c: 0x6d159c20,
-	0x29432: 0x6d0b4220, 0x29433: 0x6d266020,
-	0x29439: 0x6c51ac20, 0x2943a: 0x6cb88820,
-	0x2943e: 0x6c13c220,
-	// Block 0xa51, offset 0x29440
-	0x29443: 0x6cab7020,
-	0x29448: 0x6c560c20, 0x2944a: 0x6d0f2020,
-	0x2944c: 0x6cbd0e20, 0x2944d: 0x6c0fd820, 0x2944e: 0x6cbafe20, 0x2944f: 0x6c6c1420,
-	0x2945b: 0x6ca6e820,
-	0x2945e: 0x6c162420, 0x2945f: 0x6cbdf620,
-	0x29461: 0x6d2a3220,
-	0x29464: 0x6d1b3220, 0x29465: 0x6d029c20, 0x29467: 0x6cb6ba20,
-	0x29468: 0x6c673420, 0x2946b: 0x6d061420,
-	0x2946d: 0x6d2bbc20, 0x2946f: 0x6c370420,
-	0x29473: 0x6d40a020,
-	0x29474: 0x6d163220,
-	0x29479: 0x6d34c820, 0x2947a: 0x6c87d420,
-	0x2947d: 0x6c87d620, 0x2947e: 0x6d1aba20,
-	// Block 0xa52, offset 0x29480
-	0x29481: 0x6c88b220, 0x29483: 0x6c158a20,
-	0x29485: 0x6c754820, 0x29487: 0x6d28e620,
-	0x2948e: 0x6d2d1620, 0x2948f: 0x6cb12220,
-	0x29491: 0x6c8fd220, 0x29493: 0x6c8fd420,
-	0x29498: 0x6c8fe220,
-	0x2949d: 0x6c900020,
-	0x294a0: 0x6c900c20, 0x294a2: 0x6c98b220,
-	0x294a5: 0x6d30d020,
-	0x294ac: 0x6c423a20, 0x294ad: 0x6c466a20, 0x294ae: 0x6cc49a20, 0x294af: 0x6c248020,
-	0x294b0: 0x6c68aa20,
-	0x294b7: 0x6c0fec20,
-	0x294b9: 0x6d3b4c20, 0x294ba: 0x6cbfe820, 0x294bb: 0x6d0f7220,
-	// Block 0xa53, offset 0x294c0
-	0x294c0: 0x6d003020, 0x294c2: 0x6c5b4820, 0x294c3: 0x6cc16c20,
-	0x294c8: 0x6c8e0220, 0x294ca: 0x6d1ab220,
-	0x294ce: 0x6cb0e820,
-	0x294d2: 0x6c88b020,
-	// Block 0xa54, offset 0x29500
-	0x2951d: 0x6c343c20,
-	// Block 0xa55, offset 0x29540
-	0x29548: 0x6c040c20,
-	0x2954f: 0x6d2d9220,
-	// Block 0xa56, offset 0x29580
-	0x295ae: 0x6c943c20,
-	// Block 0xa57, offset 0x295c0
-	0x295ca: 0x6cd94a20,
-	0x295d7: 0x6c73ac20,
-	// Block 0xa58, offset 0x29600
-	0x2961d: 0x6d1d8e20,
-	// Block 0xa59, offset 0x29640
-	0x29679: 0x6caa5c20,
-	// Block 0xa5a, offset 0x29680
-	0x29690: 0x6c230620,
-	// Block 0xa5b, offset 0x296c0
-	0x296e2: 0x6cfc9220,
-	// Block 0xa5c, offset 0x29700
-	0x29721: 0x6c85dc20,
-	// Block 0xa5d, offset 0x29740
-	0x29748: 0x6c3abc20,
-	0x29759: 0x6cdb3a20,
-	// Block 0xa5e, offset 0x29780
-	0x2979c: 0x6c79dc20,
-	// Block 0xa5f, offset 0x297c0
-	0x297e8: 0x6c1a9e20,
-	0x297f8: 0x6d09b220,
-	// Block 0xa60, offset 0x29800
-	0x29830: 0x6cb86a20,
-	// Block 0xa61, offset 0x29840
-	0x29850: 0x6c45fe20,
-	// Block 0xa62, offset 0x29880
-	0x29880: 0x6c5ef220,
-	0x298a8: 0x6c953a20,
-	// Block 0xa63, offset 0x298c0
-	0x298d9: 0x6d165020,
-	0x298df: 0x6d146820,
-	0x298e2: 0x6ca49820,
-	0x298f0: 0x6cf7de20, 0x298f2: 0x6cffaa20,
-	// Block 0xa64, offset 0x29900
-	0x2990b: 0x6c73b020,
-	// Block 0xa65, offset 0x29940
-	0x29944: 0x6d268220, 0x29946: 0x6c7b1020,
-	0x29949: 0x6c8cc220,
-	0x29950: 0x6ca5f020, 0x29953: 0x6c108a20,
-	// Block 0xa66, offset 0x29980
-	0x299b6: 0x6c4e3a20,
-	// Block 0xa67, offset 0x299c0
-	0x299e7: 0x6c3d5820,
-	0x299e9: 0x6c230a20,
-	// Block 0xa68, offset 0x29a00
-	0x29a0e: 0x6c74d220,
-	// Block 0xa69, offset 0x29a40
-	0x29a60: 0x6d2eb220,
-	0x29a66: 0x6c109020, 0x29a67: 0x6cda9a20,
-	0x29a6e: 0x6c59cc20,
-	0x29a74: 0x6d2da220,
-	// Block 0xa6a, offset 0x29a80
-	0x29a9d: 0x6c73ea20,
-	0x29aa3: 0x6c4ea420,
-	0x29aa4: 0x6c003a20,
-	0x29aa8: 0x6ce33820,
-	// Block 0xa6b, offset 0x29ac0
-	0x29ac8: 0x6d06ca20, 0x29ac9: 0x6c534620,
-	0x29ad2: 0x6c3e4620,
-	0x29ad4: 0x6c5b4020, 0x29ad5: 0x6cd1e620,
-	0x29ad9: 0x6cb41220,
-	// Block 0xa6c, offset 0x29b00
-	0x29b1b: 0x6d33bc20,
-	0x29b1e: 0x6c740c20,
-	0x29b22: 0x6ca90020,
-	0x29b36: 0x6c1c5220,
-	0x29b38: 0x6ce36020,
-	// Block 0xa6d, offset 0x29b40
-	0x29b40: 0x6c857420, 0x29b41: 0x6cecb420, 0x29b42: 0x6d144620, 0x29b43: 0x48024420,
-	0x29b44: 0x6ca62220, 0x29b45: 0x6cf43220, 0x29b46: 0x6ce9f420, 0x29b47: 0x6c0e1020,
-	0x29b48: 0x6d28b220, 0x29b49: 0x6c071c20, 0x29b4a: 0x6ccbb820, 0x29b4b: 0x6cfe3c20,
-	0x29b4c: 0x6c75ee20, 0x29b4d: 0x6cddc620, 0x29b4e: 0x6c9dfe20, 0x29b4f: 0x6ce92020,
-	0x29b50: 0x6c5a2a20, 0x29b51: 0x6c720620, 0x29b52: 0x480a3820, 0x29b53: 0x44697220,
-	0x29b54: 0x6ca57e20, 0x29b55: 0x6d292620, 0x29b56: 0x480a9620, 0x29b57: 0x6cc6ec20,
-	0x29b58: 0x6d24d020, 0x29b59: 0x6c0da020, 0x29b5a: 0x6c2fd820, 0x29b5b: 0x6c7bdc20,
-	0x29b5c: 0x6cbee220, 0x29b5d: 0x6cb9ec20, 0x29b5e: 0x6cc5a020, 0x29b5f: 0x6cafae20,
-	0x29b60: 0x6c787a20, 0x29b61: 0x6c95a620, 0x29b62: 0x6c438c20, 0x29b63: 0x6c15bc20,
-	0x29b64: 0x6c5fc020, 0x29b65: 0x6d1e1820, 0x29b66: 0x6c9e0c20, 0x29b67: 0x6cbd7c20,
-	0x29b68: 0x6cce9420, 0x29b69: 0x6c059e20, 0x29b6a: 0x6c22f420, 0x29b6b: 0x6c06c620,
-	0x29b6c: 0x6c5b8420, 0x29b6d: 0x6c068e20, 0x29b6e: 0x6c0efe20, 0x29b6f: 0x6c5fd220,
-	0x29b70: 0x6c5fec20, 0x29b71: 0x6cbe3a20, 0x29b72: 0x6cbe3a20, 0x29b73: 0x6cbe3a20,
-	0x29b74: 0x48145820, 0x29b75: 0x6c5a8620, 0x29b76: 0x6c5fb820, 0x29b77: 0x6cda0e20,
-	0x29b78: 0x4816c620, 0x29b79: 0x6c697a20, 0x29b7a: 0x6c1bd620, 0x29b7b: 0x6d108620,
-	0x29b7c: 0x6cfc7820, 0x29b7d: 0x6cf56a20, 0x29b7e: 0x6c19b620, 0x29b7f: 0x6d385a20,
-	// Block 0xa6e, offset 0x29b80
-	0x29b80: 0x6c35e420, 0x29b81: 0x6c9ec220, 0x29b82: 0x6ce0e820, 0x29b83: 0x6cb6ec20,
-	0x29b84: 0x6cfb5820, 0x29b85: 0x6ccd8a20, 0x29b86: 0x6ccd8a20, 0x29b87: 0x6c5bbc20,
-	0x29b88: 0x6c1aae20, 0x29b89: 0x6d2bd620, 0x29b8a: 0x6d110420, 0x29b8b: 0x6ce8d420,
-	0x29b8c: 0x6ce0a020, 0x29b8d: 0x6ce8d620, 0x29b8e: 0x6c4fd020, 0x29b8f: 0x6cae3420,
-	0x29b90: 0x6cbc9020, 0x29b91: 0x6d3c2c20, 0x29b92: 0x6c19c620, 0x29b93: 0x6d344c20,
-	0x29b94: 0x6ce92220, 0x29b95: 0x6d03ca20, 0x29b96: 0x6c223620, 0x29b97: 0x6c064c20,
-	0x29b98: 0x6c2c7c20, 0x29b99: 0x4829c820, 0x29b9a: 0x6c972420, 0x29b9b: 0x6c554020,
-	0x29b9c: 0x6c3c9c20, 0x29b9d: 0x6c341620, 0x29b9e: 0x6c9c0420, 0x29b9f: 0x6cceea20,
-	0x29ba0: 0x6c1bda20, 0x29ba1: 0x482dd420, 0x29ba2: 0x6c5ea220, 0x29ba3: 0x6d20ec20,
-	0x29ba4: 0x6ce9f820, 0x29ba5: 0x6cb1e820, 0x29ba6: 0x6c3fe420, 0x29ba7: 0x6ccae220,
-	0x29ba8: 0x6c139820, 0x29ba9: 0x6cc52820, 0x29baa: 0x6c804820, 0x29bab: 0x6c804820,
-	0x29bac: 0x48339020, 0x29bad: 0x6d24da20, 0x29bae: 0x6d365020, 0x29baf: 0x6ca91020,
-	0x29bb0: 0x6c061c20, 0x29bb1: 0x6c81ee20, 0x29bb2: 0x6cd45020, 0x29bb3: 0x6c674e20,
-	0x29bb4: 0x6c28f820, 0x29bb5: 0x6d1edc20, 0x29bb6: 0x6d11f020, 0x29bb7: 0x6ce8a020,
-	0x29bb8: 0x6c17fa20, 0x29bb9: 0x6d053020, 0x29bba: 0x6cb8a420, 0x29bbb: 0x6cf3b020,
-	0x29bbc: 0x6d0d7a20, 0x29bbd: 0x483bcc20, 0x29bbe: 0x6c2ccc20, 0x29bbf: 0x6d3e3620,
-	// Block 0xa6f, offset 0x29bc0
-	0x29bc0: 0x6c15c620, 0x29bc1: 0x6d09d820, 0x29bc2: 0x6c175e20, 0x29bc3: 0x6d15b220,
-	0x29bc4: 0x6d0a8c20, 0x29bc5: 0x6cd71420, 0x29bc6: 0x6c997a20, 0x29bc7: 0x6c3b8620,
-	0x29bc8: 0x6c980020, 0x29bc9: 0x48430620, 0x29bca: 0x6d16e820, 0x29bcb: 0x6c0e0e20,
-	0x29bcc: 0x6c097620, 0x29bcd: 0x6cd5c220, 0x29bce: 0x6c80b420, 0x29bcf: 0x6cd79620,
-	0x29bd0: 0x6c45cc20, 0x29bd1: 0x48466220, 0x29bd2: 0x48466220, 0x29bd3: 0x6d20e820,
-	0x29bd4: 0x6ce1b020, 0x29bd5: 0x6ce1b020, 0x29bd6: 0x6d16b220, 0x29bd7: 0x48657020,
-	0x29bd8: 0x48c3b420, 0x29bd9: 0x6d03c020, 0x29bda: 0x6c2dc420, 0x29bdb: 0x6ccd7820,
-	0x29bdc: 0x6c300020, 0x29bdd: 0x6cc58620, 0x29bde: 0x6d357420, 0x29bdf: 0x6c7bb620,
-	0x29be0: 0x6d24d420, 0x29be1: 0x6c5a4620, 0x29be2: 0x6c73f820, 0x29be3: 0x6c5b4c20,
-	0x29be4: 0x6c2ff820, 0x29be5: 0x6c339820, 0x29be6: 0x6c224e20, 0x29be7: 0x6c599420,
-	0x29be8: 0x6cd0ac20, 0x29be9: 0x6c599420, 0x29bea: 0x6c90a220, 0x29beb: 0x6d2b8a20,
-	0x29bec: 0x6cfd0820, 0x29bed: 0x6c3be420, 0x29bee: 0x6c11da20, 0x29bef: 0x6c9b4a20,
-	0x29bf0: 0x6c1a5420, 0x29bf1: 0x6c804a20, 0x29bf2: 0x6c19b220, 0x29bf3: 0x6c63b620,
-	0x29bf4: 0x6c7a1820, 0x29bf5: 0x6c063220, 0x29bf6: 0x6c036820, 0x29bf7: 0x6c72e420,
-	0x29bf8: 0x48561820, 0x29bf9: 0x6cecf820, 0x29bfa: 0x6cb1ea20, 0x29bfb: 0x6ccf2c20,
-	0x29bfc: 0x6ccae020, 0x29bfd: 0x6c600020, 0x29bfe: 0x4857e220, 0x29bff: 0x6c6d1420,
-	// Block 0xa70, offset 0x29c00
-	0x29c00: 0x6d0ca820, 0x29c01: 0x6d0d6620, 0x29c02: 0x6c30b620, 0x29c03: 0x6ca07220,
-	0x29c04: 0x6c67f620, 0x29c05: 0x6c5ae420, 0x29c06: 0x6c691420, 0x29c07: 0x4474d820,
-	0x29c08: 0x6c9fa820, 0x29c09: 0x6c6e8420, 0x29c0a: 0x48601420, 0x29c0b: 0x6c61ec20,
-	0x29c0c: 0x6cd4b820, 0x29c0d: 0x6c6cea20, 0x29c0e: 0x6cf01620, 0x29c0f: 0x6cd55a20,
-	0x29c10: 0x6cf15420, 0x29c11: 0x6c16e420, 0x29c12: 0x6c994e20, 0x29c13: 0x6c9e1820,
-	0x29c14: 0x6d41b020, 0x29c15: 0x6c6d2820, 0x29c16: 0x6ca31420, 0x29c17: 0x6ce05420,
-	0x29c18: 0x6c80f820, 0x29c19: 0x6cee5220, 0x29c1a: 0x6d3f9820, 0x29c1b: 0x6cb6d620,
-	0x29c1c: 0x6c0bea20, 0x29c1d: 0x48678620, 0x29c1e: 0x6c572820, 0x29c1f: 0x6c48dc20,
-	0x29c20: 0x6c5e8e20, 0x29c21: 0x6cca6a20, 0x29c22: 0x6c99ec20, 0x29c23: 0x4868da20,
-	0x29c24: 0x6c022a20, 0x29c25: 0x6c078420, 0x29c26: 0x6d3e3a20, 0x29c27: 0x6c513820,
-	0x29c28: 0x6d2be020, 0x29c29: 0x6d112020, 0x29c2a: 0x6c415020, 0x29c2b: 0x6ccefe20,
-	0x29c2c: 0x486d4620, 0x29c2d: 0x6d370620, 0x29c2e: 0x6d159820, 0x29c2f: 0x6c22aa20,
-	0x29c30: 0x48714e20, 0x29c31: 0x6d05d420, 0x29c32: 0x6c7d9c20, 0x29c33: 0x6cdc4620,
-	0x29c34: 0x6cf15820, 0x29c35: 0x6ccbda20, 0x29c36: 0x6cbc4020, 0x29c37: 0x48751a20,
-	0x29c38: 0x483a1620, 0x29c39: 0x4875f420, 0x29c3a: 0x6c391c20, 0x29c3b: 0x48797820,
-	0x29c3c: 0x6d0c6820, 0x29c3d: 0x6c077e20, 0x29c3e: 0x6cb8a820, 0x29c3f: 0x6cf3b620,
-	// Block 0xa71, offset 0x29c40
-	0x29c40: 0x6cac1e20, 0x29c41: 0x6c4d3a20, 0x29c42: 0x6c8e4a20, 0x29c43: 0x6c502e20,
-	0x29c44: 0x6c6cee20, 0x29c45: 0x6ca80820, 0x29c46: 0x6c07ac20, 0x29c47: 0x6cb28620,
-	0x29c48: 0x6c42a220, 0x29c49: 0x6d0c0820, 0x29c4a: 0x6c903620, 0x29c4b: 0x6d3e4020,
-	0x29c4c: 0x6c2cce20, 0x29c4d: 0x6ccc0a20, 0x29c4e: 0x6d0bf820, 0x29c4f: 0x6c177620,
-	0x29c50: 0x487ebc20, 0x29c51: 0x487f1c20, 0x29c52: 0x6c3b8c20, 0x29c53: 0x6d270a20,
-	0x29c54: 0x6c6eb420, 0x29c55: 0x6d1cba20, 0x29c56: 0x6cd63020, 0x29c57: 0x6cb9e020,
-	0x29c58: 0x6d28f220, 0x29c59: 0x6d3bbe20, 0x29c5a: 0x6ce08e20, 0x29c5b: 0x480a4a20,
-	0x29c5c: 0x6c32cc20, 0x29c5d: 0x4884c620, 0x29c5e: 0x6c233e20, 0x29c5f: 0x48875620,
-	0x29c60: 0x6c24c420, 0x29c61: 0x6c74c820, 0x29c62: 0x6d2c3a20, 0x29c63: 0x488c1020,
-	0x29c64: 0x6cf61a20, 0x29c65: 0x6c074020, 0x29c66: 0x6d0e3c20, 0x29c67: 0x48902820,
-	0x29c68: 0x6cde2020, 0x29c69: 0x6cedda20, 0x29c6a: 0x6c45d620, 0x29c6b: 0x6d268820,
-	0x29c6c: 0x6cb29020, 0x29c6d: 0x6cb29020, 0x29c6e: 0x6c277a20, 0x29c6f: 0x6d215e20,
-	0x29c70: 0x6d325020, 0x29c71: 0x6cdd8a20, 0x29c72: 0x6cbf7620, 0x29c73: 0x6d03d220,
-	0x29c74: 0x6cc89c20, 0x29c75: 0x48986c20, 0x29c76: 0x6d28f620, 0x29c77: 0x48992420,
-	0x29c78: 0x6d176620, 0x29c79: 0x6cb2b420, 0x29c7a: 0x6d226e20, 0x29c7b: 0x489f4220,
-	0x29c7c: 0x489f7020, 0x29c7d: 0x48a08820, 0x29c7e: 0x6d0c7620, 0x29c7f: 0x6c627820,
-	// Block 0xa72, offset 0x29c80
-	0x29c80: 0x6d344020, 0x29c81: 0x48a1e620, 0x29c82: 0x48a1e420, 0x29c83: 0x48a23220,
-	0x29c84: 0x48a26620, 0x29c85: 0x6d313c20, 0x29c86: 0x6d313e20, 0x29c87: 0x6d313e20,
-	0x29c88: 0x6c736420, 0x29c89: 0x6c6ad220, 0x29c8a: 0x6c188220, 0x29c8b: 0x6d130220,
-	0x29c8c: 0x6cd23420, 0x29c8d: 0x48a83a20, 0x29c8e: 0x6d03e220, 0x29c8f: 0x6c926e20,
-	0x29c90: 0x6ce4ba20, 0x29c91: 0x6c5b7020, 0x29c92: 0x6c6fd820, 0x29c93: 0x6d411420,
-	0x29c94: 0x6c1baa20, 0x29c95: 0x6c8f3a20, 0x29c96: 0x6c3e9c20, 0x29c97: 0x6cd52420,
-	0x29c98: 0x6c657420, 0x29c99: 0x6c47c420, 0x29c9a: 0x6c624a20, 0x29c9b: 0x6cf1f020,
-	0x29c9c: 0x48b2f820, 0x29c9d: 0x6ce4c020, 0x29c9e: 0x6ce4c020, 0x29c9f: 0x6cb26020,
-	0x29ca0: 0x6cb2be20, 0x29ca1: 0x48b75620, 0x29ca2: 0x6d3bde20, 0x29ca3: 0x6d3a2820,
-	0x29ca4: 0x6cf00020, 0x29ca5: 0x6c178020, 0x29ca6: 0x6c076020, 0x29ca7: 0x6cf8f420,
-	0x29ca8: 0x6c680820, 0x29ca9: 0x6cca3020, 0x29caa: 0x6c61b020, 0x29cab: 0x48bf0c20,
-	0x29cac: 0x6c07ee20, 0x29cad: 0x6d10b020, 0x29cae: 0x6d3e6a20, 0x29caf: 0x6d400620,
-	0x29cb0: 0x6ccac220, 0x29cb1: 0x6c965020, 0x29cb2: 0x6d03dc20, 0x29cb3: 0x48c48e20,
-	0x29cb4: 0x6c9a0420, 0x29cb5: 0x48c5b220, 0x29cb6: 0x6c177e20, 0x29cb7: 0x48c67c20,
-	0x29cb8: 0x6d104a20, 0x29cb9: 0x6c027e20, 0x29cba: 0x6d30d220, 0x29cbb: 0x48c9b420,
-	0x29cbc: 0x48ca4620, 0x29cbd: 0x6cb25820, 0x29cbe: 0x48cb5020, 0x29cbf: 0x6c236620,
-	// Block 0xa73, offset 0x29cc0
-	0x29cc0: 0x6c78f420, 0x29cc1: 0x6cc5d220, 0x29cc2: 0x6d22da20, 0x29cc3: 0x6c252c20,
-	0x29cc4: 0x6c231a20, 0x29cc5: 0x6caff420, 0x29cc6: 0x6d1d4020, 0x29cc7: 0x48cf4e20,
-	0x29cc8: 0x48cf6a20, 0x29cc9: 0x6d085420, 0x29cca: 0x48673820, 0x29ccb: 0x6d20e820,
-	0x29ccc: 0x6cf89220, 0x29ccd: 0x6c225220, 0x29cce: 0x6c07f020, 0x29ccf: 0x6cb6ce20,
-	0x29cd0: 0x6d22c820, 0x29cd1: 0x6d338420, 0x29cd2: 0x6c813e20, 0x29cd3: 0x6c570620,
-	0x29cd4: 0x6c398620, 0x29cd5: 0x6d0b1420, 0x29cd6: 0x6c7a7620, 0x29cd7: 0x48d67820,
-	0x29cd8: 0x6cc91420, 0x29cd9: 0x6c148e20, 0x29cda: 0x6cc65e20, 0x29cdb: 0x6c6aa820,
-	0x29cdc: 0x6cf3bc20, 0x29cdd: 0x6c988a20, 0x29cde: 0x6c2bf220, 0x29cdf: 0x6d311420,
-	0x29ce0: 0x6cb28e20, 0x29ce1: 0x6c711c20, 0x29ce2: 0x6c757020, 0x29ce3: 0x6c114420,
-	0x29ce4: 0x48d86c20, 0x29ce5: 0x6cdd8420, 0x29ce6: 0x48d9aa20, 0x29ce7: 0x448a5620,
-	0x29ce8: 0x6cb2ae20, 0x29ce9: 0x6c6ca620, 0x29cea: 0x6c25ea20, 0x29ceb: 0x48e79420,
-	0x29cec: 0x6cc8a220, 0x29ced: 0x48de5820, 0x29cee: 0x6c19a420, 0x29cef: 0x6c936e20,
-	0x29cf0: 0x6c175420, 0x29cf1: 0x6c93c420, 0x29cf2: 0x6c7cba20, 0x29cf3: 0x6caaa220,
-	0x29cf4: 0x6c91c420, 0x29cf5: 0x6c7c4820, 0x29cf6: 0x6cf90620, 0x29cf7: 0x6c1aa420,
-	0x29cf8: 0x6cb8ca20, 0x29cf9: 0x6d24fc20, 0x29cfa: 0x6cb2b020, 0x29cfb: 0x6d276220,
-	0x29cfc: 0x6c2ed620, 0x29cfd: 0x6d39be20, 0x29cfe: 0x6c22de20, 0x29cff: 0x6c5f4420,
-	// Block 0xa74, offset 0x29d00
-	0x29d00: 0x6c4b2220, 0x29d01: 0x6cfe0220, 0x29d02: 0x6c22ec20, 0x29d03: 0x6d3cd820,
-	0x29d04: 0x6d13be20, 0x29d05: 0x6c668020, 0x29d06: 0x6c8e6020, 0x29d07: 0x6cd72420,
-	0x29d08: 0x6c929c20, 0x29d09: 0x6d0daa20, 0x29d0a: 0x6c996a20, 0x29d0b: 0x48f15c20,
-	0x29d0c: 0x48f2cc20, 0x29d0d: 0x6ca8e820, 0x29d0e: 0x6d25ea20, 0x29d0f: 0x6c1a2220,
-	0x29d10: 0x6d23f620, 0x29d11: 0x6c0bdc20, 0x29d12: 0x6cd2b020, 0x29d13: 0x6c649220,
-	0x29d14: 0x6c498620, 0x29d15: 0x6c09b020, 0x29d16: 0x6c424420, 0x29d17: 0x6cb6ea20,
-	0x29d18: 0x6cd61020, 0x29d19: 0x6d2fdc20, 0x29d1a: 0x6c038220, 0x29d1b: 0x6c658c20,
-	0x29d1c: 0x6cb11c20, 0x29d1d: 0x4811bc20, 0x29d1e: 0x6cc5e420, 0x29d1f: 0x6cd50820,
-	0x29d20: 0x490ba420, 0x29d21: 0x490bda20, 0x29d22: 0x6cb6c420, 0x29d23: 0x6cb27e20,
-	0x29d24: 0x6d3e4a20, 0x29d25: 0x490e5c20, 0x29d26: 0x6c176420, 0x29d27: 0x6c0f1c20,
-	0x29d28: 0x6d07ca20, 0x29d29: 0x6c575620, 0x29d2a: 0x6c0dee20, 0x29d2b: 0x6cbb5020,
-	0x29d2c: 0x6d295820, 0x29d2d: 0x4917f420, 0x29d2e: 0x6c763420, 0x29d2f: 0x6cae7c20,
-	0x29d30: 0x6ccca420, 0x29d31: 0x491aee20, 0x29d32: 0x6cef3620, 0x29d33: 0x6cb8e820,
-	0x29d34: 0x6cf69820, 0x29d35: 0x6d280620, 0x29d36: 0x6cace820, 0x29d37: 0x6cb26420,
-	0x29d38: 0x6c930020, 0x29d39: 0x6c160820, 0x29d3a: 0x6c0ab220, 0x29d3b: 0x49281420,
-	0x29d3c: 0x6c7d6c20, 0x29d3d: 0x6d0eb020, 0x29d3e: 0x6c35b420, 0x29d3f: 0x6c35b420,
-	// Block 0xa75, offset 0x29d40
-	0x29d40: 0x6cb26620, 0x29d41: 0x6d097020, 0x29d42: 0x6c5eb020, 0x29d43: 0x6c04d420,
-	0x29d44: 0x6c36b220, 0x29d45: 0x6d276c20, 0x29d46: 0x6c060a20, 0x29d47: 0x6cea1420,
-	0x29d48: 0x6c423020, 0x29d49: 0x6cbf6820, 0x29d4a: 0x6d320420, 0x29d4b: 0x6c62d820,
-	0x29d4c: 0x6c64ec20, 0x29d4d: 0x6c702e20, 0x29d4e: 0x6c60f620, 0x29d4f: 0x6cb02c20,
-	0x29d50: 0x6d21ea20, 0x29d51: 0x6c968620, 0x29d52: 0x6ccc2e20, 0x29d53: 0x49441c20,
-	0x29d54: 0x49452220, 0x29d55: 0x6c966820, 0x29d56: 0x6cba8620, 0x29d57: 0x6d353420,
-	0x29d58: 0x6c9e0a20, 0x29d59: 0x6d342a20, 0x29d5a: 0x6c9d7420, 0x29d5b: 0x6c3ba420,
-	0x29d5c: 0x6c08a220, 0x29d5d: 0x6cb13820,
-}
-
-// mainLookup: 13824 entries, 27648 bytes
-// Block 0 is the null block.
-var mainLookup = [13824]uint16{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26,
-	0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e,
-	0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36,
-	0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e,
-	// Block 0x4, offset 0x100
-	0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46,
-	0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e,
-	0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56,
-	0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e,
-	0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66,
-	0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d,
-	0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74,
-	0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c,
-	// Block 0x5, offset 0x140
-	0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84,
-	0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c,
-	0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94,
-	0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c,
-	0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4,
-	0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa,
-	0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2,
-	0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9,
-	// Block 0x6, offset 0x180
-	0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1,
-	0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9,
-	// Block 0x7, offset 0x1c0
-	0x1f7: 0xca,
-	// Block 0x8, offset 0x200
-	0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2,
-	0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda,
-	0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2,
-	0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea,
-	0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2,
-	0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8,
-	// Block 0x9, offset 0x240
-	0x25e: 0xf9, 0x25f: 0xfa,
-	// Block 0xa, offset 0x280
-	0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe,
-	0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106,
-	0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e,
-	0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116,
-	// Block 0xb, offset 0x2c0
-	0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e,
-	0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124,
-	0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127,
-	0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b,
-	0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f,
-	0x2f0: 0x130, 0x2f1: 0x131,
-	0x2f9: 0x132,
-	// Block 0xc, offset 0x300
-	0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a,
-	0x31a: 0x13b, 0x31b: 0x13c,
-	// Block 0xd, offset 0x340
-	0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144,
-	0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a,
-	0x350: 0x14b, 0x351: 0x14c,
-	// Block 0xe, offset 0x380
-	0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154,
-	0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c,
-	0x390: 0x15d,
-	// Block 0xf, offset 0x3c0
-	0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165,
-	0x3e8: 0x166,
-	0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169,
-	// Block 0x10, offset 0x400
-	0x400: 0x16a,
-	// Block 0x11, offset 0x440
-	0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172,
-	0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176,
-	0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e,
-	0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186,
-	// Block 0x12, offset 0x480
-	0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a,
-	// Block 0x13, offset 0x4c0
-	0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192,
-	0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198,
-	0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f,
-	0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5,
-	// Block 0x14, offset 0x500
-	0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad,
-	0x528: 0x1ae,
-	// Block 0x15, offset 0x540
-	0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d,
-	0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
-	0x56f: 0x12,
-	// Block 0x16, offset 0x580
-	0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1,
-	// Block 0x17, offset 0x5c0
-	0x5e0: 0x14,
-	// Block 0x18, offset 0x600
-	0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06,
-	0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e,
-	0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16,
-	0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e,
-	0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05,
-	0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08,
-	0x630: 0x13, 0x633: 0x15,
-	// Block 0x19, offset 0x640
-	0x642: 0x01, 0x643: 0x02, 0x644: 0x03, 0x645: 0x1b2, 0x646: 0x05, 0x647: 0x06,
-	0x648: 0x07, 0x649: 0x08, 0x64a: 0x09, 0x64b: 0x0a, 0x64c: 0x0b, 0x64d: 0x0c, 0x64e: 0x0d, 0x64f: 0x0e,
-	0x650: 0x0f, 0x651: 0x10, 0x652: 0x11, 0x653: 0x12, 0x654: 0x13, 0x655: 0x14, 0x656: 0x15, 0x657: 0x16,
-	0x658: 0x17, 0x659: 0x18, 0x65a: 0x19, 0x65b: 0x1a, 0x65c: 0x1b, 0x65d: 0x1c, 0x65e: 0x1d, 0x65f: 0x1e,
-	0x660: 0x01, 0x661: 0x02, 0x662: 0x03, 0x663: 0x04, 0x664: 0x05,
-	0x66a: 0x06, 0x66d: 0x07, 0x66f: 0x08,
-	0x670: 0x13, 0x673: 0x15,
-	// Block 0x1a, offset 0x680
-	0x6a4: 0xfb, 0x6a5: 0xfc, 0x6a6: 0xfd, 0x6a7: 0xfe,
-	0x6a8: 0xff, 0x6a9: 0x100, 0x6aa: 0x101, 0x6ab: 0x102, 0x6ac: 0x103, 0x6ad: 0x104, 0x6ae: 0x105, 0x6af: 0x1b5,
-	0x6b0: 0x1b6, 0x6b1: 0x1b7, 0x6b2: 0x1b8, 0x6b3: 0x1b9, 0x6b4: 0x1ba, 0x6b5: 0x10c, 0x6b6: 0x10d, 0x6b7: 0x10e,
-	0x6b8: 0x10f, 0x6b9: 0x110, 0x6ba: 0x1bb, 0x6bb: 0x1bc, 0x6bc: 0x113, 0x6bd: 0x114, 0x6be: 0x115, 0x6bf: 0x116,
-	// Block 0x1b, offset 0x6c0
-	0x6c2: 0x01, 0x6c3: 0x02, 0x6c4: 0x03, 0x6c5: 0x04, 0x6c6: 0x05, 0x6c7: 0x06,
-	0x6c8: 0x07, 0x6c9: 0x08, 0x6ca: 0x09, 0x6cb: 0x0a, 0x6cc: 0x0b, 0x6cd: 0x0c, 0x6ce: 0x0d, 0x6cf: 0x0e,
-	0x6d0: 0x0f, 0x6d1: 0x10, 0x6d2: 0x11, 0x6d3: 0x12, 0x6d4: 0x13, 0x6d5: 0x14, 0x6d6: 0x15, 0x6d7: 0x16,
-	0x6d8: 0x1b3, 0x6d9: 0x1b4, 0x6da: 0x19, 0x6db: 0x1a, 0x6dc: 0x1b, 0x6dd: 0x1c, 0x6de: 0x1d, 0x6df: 0x1e,
-	0x6e0: 0x01, 0x6e1: 0x02, 0x6e2: 0x03, 0x6e3: 0x04, 0x6e4: 0x05,
-	0x6ea: 0x06, 0x6ed: 0x07, 0x6ef: 0x18,
-	0x6f0: 0x13, 0x6f3: 0x15,
-	// Block 0x1c, offset 0x700
-	0x720: 0x1f, 0x721: 0x20, 0x722: 0x21, 0x723: 0x22, 0x724: 0x23, 0x725: 0x24, 0x726: 0x1bd, 0x727: 0x26,
-	0x728: 0x27, 0x729: 0x28, 0x72a: 0x29, 0x72b: 0x2a, 0x72c: 0x2b, 0x72d: 0x2c, 0x72e: 0x2d, 0x72f: 0x2e,
-	0x730: 0x2f, 0x731: 0x30, 0x732: 0x31, 0x733: 0x32, 0x734: 0x33, 0x735: 0x34, 0x736: 0x35, 0x737: 0x36,
-	0x738: 0x37, 0x739: 0x38, 0x73a: 0x39, 0x73b: 0x3a, 0x73c: 0x3b, 0x73d: 0x3c, 0x73e: 0x3d, 0x73f: 0x3e,
-	// Block 0x1d, offset 0x740
-	0x742: 0x01, 0x743: 0x02, 0x744: 0x03, 0x745: 0x04, 0x746: 0x05, 0x747: 0x06,
-	0x748: 0x07, 0x749: 0x08, 0x74a: 0x09, 0x74b: 0x0a, 0x74c: 0x0b, 0x74d: 0x0c, 0x74e: 0x0d, 0x74f: 0x0e,
-	0x750: 0x0f, 0x751: 0x10, 0x752: 0x11, 0x753: 0x12, 0x754: 0x13, 0x755: 0x14, 0x756: 0x15, 0x757: 0x16,
-	0x758: 0x17, 0x759: 0x18, 0x75a: 0x19, 0x75b: 0x1a, 0x75c: 0x1b, 0x75d: 0x1c, 0x75e: 0x1d, 0x75f: 0x1e,
-	0x760: 0x1a, 0x761: 0x02, 0x762: 0x03, 0x763: 0x04, 0x764: 0x05,
-	0x76a: 0x06, 0x76d: 0x07, 0x76f: 0x08,
-	0x770: 0x13, 0x773: 0x15,
-	// Block 0x1e, offset 0x780
-	0x780: 0x3f, 0x781: 0x40, 0x782: 0x41, 0x783: 0x42, 0x784: 0x43, 0x785: 0x44, 0x786: 0x45, 0x787: 0x46,
-	0x788: 0x47, 0x789: 0x48, 0x78a: 0x49, 0x78b: 0x4a, 0x78c: 0x4b, 0x78d: 0x4c, 0x78e: 0x4d, 0x78f: 0x4e,
-	0x790: 0x4f, 0x791: 0x50, 0x792: 0x51, 0x793: 0x52, 0x794: 0x53, 0x795: 0x54, 0x796: 0x55, 0x797: 0x56,
-	0x798: 0x57, 0x799: 0x58, 0x79a: 0x59, 0x79b: 0x5a, 0x79c: 0x5b, 0x79d: 0x5c, 0x79e: 0x5d, 0x79f: 0x5e,
-	0x7a0: 0x5f, 0x7a1: 0x60, 0x7a2: 0x61, 0x7a3: 0x62, 0x7a4: 0x63, 0x7a5: 0x64, 0x7a6: 0x65, 0x7a7: 0x66,
-	0x7a8: 0x67, 0x7a9: 0x68, 0x7aa: 0x69, 0x7ac: 0x6a, 0x7ad: 0x6b, 0x7ae: 0x6c, 0x7af: 0x6d,
-	0x7b0: 0x6e, 0x7b1: 0x6f, 0x7b3: 0x70, 0x7b4: 0x71, 0x7b5: 0x72, 0x7b6: 0x73, 0x7b7: 0x74,
-	0x7b8: 0x1c7, 0x7b9: 0x1c8, 0x7ba: 0x1c9, 0x7bb: 0x1ca, 0x7bc: 0x79, 0x7bd: 0x7a, 0x7be: 0x7b, 0x7bf: 0x7c,
-	// Block 0x1f, offset 0x7c0
-	0x7c0: 0x7d, 0x7c1: 0x7e, 0x7c2: 0x7f, 0x7c3: 0x80, 0x7c4: 0x81, 0x7c5: 0x1cb, 0x7c6: 0x83, 0x7c7: 0x84,
-	0x7c8: 0x85, 0x7c9: 0x86, 0x7ca: 0x87, 0x7cb: 0x88, 0x7cc: 0x89, 0x7cd: 0x8a, 0x7ce: 0x8b, 0x7cf: 0x8c,
-	0x7d0: 0x8d, 0x7d1: 0x8e, 0x7d2: 0x1cc, 0x7d3: 0x90, 0x7d4: 0x91, 0x7d5: 0x92, 0x7d6: 0x93, 0x7d7: 0x94,
-	0x7d8: 0x95, 0x7d9: 0x96, 0x7da: 0x97, 0x7db: 0x98, 0x7dc: 0x99, 0x7dd: 0x9a, 0x7de: 0x9b, 0x7df: 0x9c,
-	0x7e0: 0x9d, 0x7e1: 0x9e, 0x7e2: 0x9f, 0x7e3: 0xa0, 0x7e4: 0xa1, 0x7e5: 0xa2, 0x7e6: 0xa3, 0x7e7: 0xa4,
-	0x7e8: 0xa5, 0x7e9: 0xa6, 0x7ea: 0xa7, 0x7eb: 0xa8, 0x7ec: 0xa9, 0x7ed: 0xaa,
-	0x7f0: 0xab, 0x7f1: 0xac, 0x7f2: 0xad, 0x7f3: 0xae, 0x7f4: 0xaf, 0x7f5: 0xb0, 0x7f6: 0xb1, 0x7f7: 0xb2,
-	0x7f8: 0xb3, 0x7fa: 0xb4, 0x7fb: 0xb5, 0x7fc: 0xb6, 0x7fd: 0xb7, 0x7fe: 0xb8, 0x7ff: 0xb9,
-	// Block 0x20, offset 0x800
-	0x800: 0xba, 0x801: 0xbb, 0x802: 0xbc, 0x803: 0xbd, 0x804: 0xbe, 0x805: 0xbf, 0x806: 0xc0, 0x807: 0xc1,
-	0x808: 0xc2, 0x809: 0xc3, 0x80a: 0xc4, 0x80b: 0xc5, 0x80c: 0xc6, 0x80d: 0x1cd, 0x80e: 0xc8, 0x80f: 0x1ce,
-	// Block 0x21, offset 0x840
-	0x840: 0x18b, 0x841: 0x18c, 0x842: 0x18d, 0x843: 0x18e, 0x844: 0x1cf, 0x845: 0x190, 0x846: 0x191, 0x847: 0x192,
-	0x848: 0x193, 0x849: 0x194, 0x84c: 0x195, 0x84d: 0x196, 0x84e: 0x197, 0x84f: 0x198,
-	0x850: 0x199, 0x851: 0x19a, 0x852: 0x19b, 0x853: 0x19c, 0x854: 0x19d, 0x855: 0x19e, 0x857: 0x19f,
-	0x858: 0x1a0, 0x859: 0x1a1, 0x85a: 0x1a2, 0x85b: 0x1a3, 0x85c: 0x1a4, 0x85d: 0x1a5,
-	// Block 0x22, offset 0x880
-	0x890: 0x09, 0x891: 0x0a, 0x892: 0x0b, 0x893: 0x0c, 0x896: 0x0d,
-	0x89b: 0x0e, 0x89d: 0x0f, 0x89e: 0x10, 0x89f: 0x1f,
-	0x8af: 0x12,
-	// Block 0x23, offset 0x8c0
-	0x8c2: 0x01, 0x8c3: 0x1c0, 0x8c4: 0x1c1, 0x8c5: 0x1c2, 0x8c6: 0x1c3, 0x8c7: 0x1c4,
-	0x8c8: 0x1c5, 0x8c9: 0x1c6, 0x8ca: 0x09, 0x8cb: 0x0a, 0x8cc: 0x0b, 0x8cd: 0x0c, 0x8ce: 0x0d, 0x8cf: 0x0e,
-	0x8d0: 0x0f, 0x8d1: 0x10, 0x8d2: 0x11, 0x8d3: 0x12, 0x8d4: 0x13, 0x8d5: 0x14, 0x8d6: 0x15, 0x8d7: 0x16,
-	0x8d8: 0x17, 0x8d9: 0x18, 0x8da: 0x19, 0x8db: 0x1a, 0x8dc: 0x1b, 0x8dd: 0x1c, 0x8de: 0x1d, 0x8df: 0x1e,
-	0x8e0: 0x01, 0x8e1: 0x1c, 0x8e2: 0x1d, 0x8e3: 0x1e, 0x8e4: 0x05,
-	0x8ea: 0x06, 0x8ed: 0x07, 0x8ef: 0x08,
-	0x8f0: 0x20, 0x8f3: 0x15,
-	// Block 0x24, offset 0x900
-	0x902: 0x01, 0x903: 0x02, 0x904: 0x03, 0x905: 0x04, 0x906: 0x05, 0x907: 0x06,
-	0x908: 0x07, 0x909: 0x08, 0x90a: 0x09, 0x90b: 0x0a, 0x90c: 0x0b, 0x90d: 0x0c, 0x90e: 0x0d, 0x90f: 0x0e,
-	0x910: 0x1d0, 0x911: 0x1d1, 0x912: 0x11, 0x913: 0x12, 0x914: 0x13, 0x915: 0x14, 0x916: 0x15, 0x917: 0x16,
-	0x918: 0x17, 0x919: 0x18, 0x91a: 0x19, 0x91b: 0x1a, 0x91c: 0x1b, 0x91d: 0x1c, 0x91e: 0x1d, 0x91f: 0x1e,
-	0x920: 0x01, 0x921: 0x02, 0x922: 0x03, 0x923: 0x04, 0x924: 0x05,
-	0x92a: 0x06, 0x92d: 0x07, 0x92f: 0x08,
-	0x930: 0x13, 0x933: 0x15,
-	// Block 0x25, offset 0x940
-	0x960: 0x1f, 0x961: 0x20, 0x962: 0x21, 0x963: 0x22, 0x964: 0x23, 0x965: 0x24, 0x966: 0x1d2, 0x967: 0x26,
-	0x968: 0x27, 0x969: 0x28, 0x96a: 0x29, 0x96b: 0x2a, 0x96c: 0x2b, 0x96d: 0x2c, 0x96e: 0x2d, 0x96f: 0x2e,
-	0x970: 0x2f, 0x971: 0x30, 0x972: 0x31, 0x973: 0x32, 0x974: 0x33, 0x975: 0x34, 0x976: 0x35, 0x977: 0x36,
-	0x978: 0x37, 0x979: 0x38, 0x97a: 0x39, 0x97b: 0x3a, 0x97c: 0x3b, 0x97d: 0x3c, 0x97e: 0x3d, 0x97f: 0x3e,
-	// Block 0x26, offset 0x980
-	0x982: 0x01, 0x983: 0x02, 0x984: 0x03, 0x985: 0x04, 0x986: 0x05, 0x987: 0x06,
-	0x988: 0x07, 0x989: 0x08, 0x98a: 0x09, 0x98b: 0x0a, 0x98c: 0x0b, 0x98d: 0x0c, 0x98e: 0x0d, 0x98f: 0x0e,
-	0x990: 0x0f, 0x991: 0x10, 0x992: 0x11, 0x993: 0x12, 0x994: 0x13, 0x995: 0x14, 0x996: 0x15, 0x997: 0x16,
-	0x998: 0x17, 0x999: 0x18, 0x99a: 0x19, 0x99b: 0x1a, 0x99c: 0x1b, 0x99d: 0x1c, 0x99e: 0x1d, 0x99f: 0x1e,
-	0x9a0: 0x23, 0x9a1: 0x02, 0x9a2: 0x03, 0x9a3: 0x04, 0x9a4: 0x05,
-	0x9aa: 0x06, 0x9ad: 0x07, 0x9af: 0x08,
-	0x9b0: 0x13, 0x9b3: 0x15,
-	// Block 0x27, offset 0x9c0
-	0x9c2: 0x01, 0x9c3: 0x02, 0x9c4: 0x1d5, 0x9c5: 0x1d6, 0x9c6: 0x05, 0x9c7: 0x06,
-	0x9c8: 0x07, 0x9c9: 0x08, 0x9ca: 0x09, 0x9cb: 0x0a, 0x9cc: 0x0b, 0x9cd: 0x0c, 0x9ce: 0x0d, 0x9cf: 0x0e,
-	0x9d0: 0x0f, 0x9d1: 0x10, 0x9d2: 0x11, 0x9d3: 0x12, 0x9d4: 0x13, 0x9d5: 0x14, 0x9d6: 0x15, 0x9d7: 0x16,
-	0x9d8: 0x17, 0x9d9: 0x18, 0x9da: 0x19, 0x9db: 0x1a, 0x9dc: 0x1b, 0x9dd: 0x1c, 0x9de: 0x1d, 0x9df: 0x1e,
-	0x9e0: 0x01, 0x9e1: 0x02, 0x9e2: 0x03, 0x9e3: 0x04, 0x9e4: 0x05,
-	0x9ea: 0x06, 0x9ed: 0x07, 0x9ef: 0x08,
-	0x9f0: 0x13, 0x9f3: 0x15,
-	// Block 0x28, offset 0xa00
-	0xa00: 0x3f, 0xa01: 0x40, 0xa02: 0x41, 0xa03: 0x42, 0xa04: 0x43, 0xa05: 0x44, 0xa06: 0x45, 0xa07: 0x46,
-	0xa08: 0x47, 0xa09: 0x48, 0xa0a: 0x49, 0xa0b: 0x4a, 0xa0c: 0x4b, 0xa0d: 0x4c, 0xa0e: 0x4d, 0xa0f: 0x4e,
-	0xa10: 0x4f, 0xa11: 0x50, 0xa12: 0x51, 0xa13: 0x52, 0xa14: 0x53, 0xa15: 0x54, 0xa16: 0x55, 0xa17: 0x56,
-	0xa18: 0x57, 0xa19: 0x58, 0xa1a: 0x59, 0xa1b: 0x5a, 0xa1c: 0x5b, 0xa1d: 0x5c, 0xa1e: 0x5d, 0xa1f: 0x5e,
-	0xa20: 0x5f, 0xa21: 0x60, 0xa22: 0x61, 0xa23: 0x62, 0xa24: 0x63, 0xa25: 0x64, 0xa26: 0x65, 0xa27: 0x66,
-	0xa28: 0x67, 0xa29: 0x68, 0xa2a: 0x69, 0xa2c: 0x6a, 0xa2d: 0x6b, 0xa2e: 0x6c, 0xa2f: 0x6d,
-	0xa30: 0x6e, 0xa31: 0x6f, 0xa33: 0x70, 0xa34: 0x71, 0xa35: 0x72, 0xa36: 0x73, 0xa37: 0x74,
-	0xa38: 0x75, 0xa39: 0x1db, 0xa3a: 0x77, 0xa3b: 0x78, 0xa3c: 0x79, 0xa3d: 0x7a, 0xa3e: 0x7b, 0xa3f: 0x7c,
-	// Block 0x29, offset 0xa40
-	0xa42: 0x01, 0xa43: 0x02, 0xa44: 0x1d9, 0xa45: 0x1da, 0xa46: 0x05, 0xa47: 0x06,
-	0xa48: 0x07, 0xa49: 0x08, 0xa4a: 0x09, 0xa4b: 0x0a, 0xa4c: 0x0b, 0xa4d: 0x0c, 0xa4e: 0x0d, 0xa4f: 0x0e,
-	0xa50: 0x0f, 0xa51: 0x10, 0xa52: 0x11, 0xa53: 0x12, 0xa54: 0x13, 0xa55: 0x14, 0xa56: 0x15, 0xa57: 0x16,
-	0xa58: 0x17, 0xa59: 0x18, 0xa5a: 0x19, 0xa5b: 0x1a, 0xa5c: 0x1b, 0xa5d: 0x1c, 0xa5e: 0x1d, 0xa5f: 0x1e,
-	0xa60: 0x01, 0xa61: 0x26, 0xa62: 0x03, 0xa63: 0x04, 0xa64: 0x05,
-	0xa6a: 0x06, 0xa6d: 0x07, 0xa6f: 0x08,
-	0xa70: 0x13, 0xa73: 0x15,
-	// Block 0x2a, offset 0xa80
-	0xa80: 0x3f, 0xa81: 0x40, 0xa82: 0x41, 0xa83: 0x42, 0xa84: 0x43, 0xa85: 0x44, 0xa86: 0x45, 0xa87: 0x46,
-	0xa88: 0x47, 0xa89: 0x48, 0xa8a: 0x49, 0xa8b: 0x4a, 0xa8c: 0x4b, 0xa8d: 0x4c, 0xa8e: 0x4d, 0xa8f: 0x4e,
-	0xa90: 0x4f, 0xa91: 0x50, 0xa92: 0x51, 0xa93: 0x52, 0xa94: 0x53, 0xa95: 0x54, 0xa96: 0x55, 0xa97: 0x56,
-	0xa98: 0x57, 0xa99: 0x58, 0xa9a: 0x59, 0xa9b: 0x5a, 0xa9c: 0x5b, 0xa9d: 0x5c, 0xa9e: 0x5d, 0xa9f: 0x5e,
-	0xaa0: 0x5f, 0xaa1: 0x60, 0xaa2: 0x61, 0xaa3: 0x62, 0xaa4: 0x63, 0xaa5: 0x64, 0xaa6: 0x65, 0xaa7: 0x66,
-	0xaa8: 0x67, 0xaa9: 0x68, 0xaaa: 0x69, 0xaac: 0x6a, 0xaad: 0x6b, 0xaae: 0x6c, 0xaaf: 0x6d,
-	0xab0: 0x6e, 0xab1: 0x6f, 0xab3: 0x70, 0xab4: 0x71, 0xab5: 0x72, 0xab6: 0x1e5, 0xab7: 0x74,
-	0xab8: 0x75, 0xab9: 0x1e6, 0xaba: 0x77, 0xabb: 0x78, 0xabc: 0x79, 0xabd: 0x7a, 0xabe: 0x7b, 0xabf: 0x7c,
-	// Block 0x2b, offset 0xac0
-	0xac0: 0x7d, 0xac1: 0x7e, 0xac2: 0x7f, 0xac3: 0x80, 0xac4: 0x1e7, 0xac5: 0x82, 0xac6: 0x83, 0xac7: 0x84,
-	0xac8: 0x85, 0xac9: 0x86, 0xaca: 0x87, 0xacb: 0x88, 0xacc: 0x89, 0xacd: 0x8a, 0xace: 0x8b, 0xacf: 0x8c,
-	0xad0: 0x8d, 0xad1: 0x8e, 0xad2: 0x8f, 0xad3: 0x90, 0xad4: 0x91, 0xad5: 0x92, 0xad6: 0x93, 0xad7: 0x94,
-	0xad8: 0x95, 0xad9: 0x96, 0xada: 0x97, 0xadb: 0x98, 0xadc: 0x99, 0xadd: 0x9a, 0xade: 0x9b, 0xadf: 0x9c,
-	0xae0: 0x9d, 0xae1: 0x9e, 0xae2: 0x9f, 0xae3: 0xa0, 0xae4: 0xa1, 0xae5: 0xa2, 0xae6: 0xa3, 0xae7: 0xa4,
-	0xae8: 0xa5, 0xae9: 0xa6, 0xaea: 0xa7, 0xaeb: 0xa8, 0xaec: 0xa9, 0xaed: 0xaa,
-	0xaf0: 0xab, 0xaf1: 0xac, 0xaf2: 0xad, 0xaf3: 0xae, 0xaf4: 0xaf, 0xaf5: 0xb0, 0xaf6: 0xb1, 0xaf7: 0xb2,
-	0xaf8: 0xb3, 0xafa: 0xb4, 0xafb: 0xb5, 0xafc: 0xb6, 0xafd: 0xb7, 0xafe: 0xb8, 0xaff: 0xb9,
-	// Block 0x2c, offset 0xb00
-	0xb02: 0x01, 0xb03: 0x1e0, 0xb04: 0x1e1, 0xb05: 0x1e2, 0xb06: 0x05, 0xb07: 0x1e3,
-	0xb08: 0x1e4, 0xb09: 0x08, 0xb0a: 0x09, 0xb0b: 0x0a, 0xb0c: 0x0b, 0xb0d: 0x0c, 0xb0e: 0x0d, 0xb0f: 0x0e,
-	0xb10: 0x0f, 0xb11: 0x10, 0xb12: 0x11, 0xb13: 0x12, 0xb14: 0x13, 0xb15: 0x14, 0xb16: 0x15, 0xb17: 0x16,
-	0xb18: 0x17, 0xb19: 0x18, 0xb1a: 0x19, 0xb1b: 0x1a, 0xb1c: 0x1b, 0xb1d: 0x1c, 0xb1e: 0x1d, 0xb1f: 0x1e,
-	0xb20: 0x01, 0xb21: 0x28, 0xb22: 0x29, 0xb23: 0x04, 0xb24: 0x05,
-	0xb2a: 0x06, 0xb2d: 0x07, 0xb2f: 0x08,
-	0xb30: 0x13, 0xb33: 0x15,
-	// Block 0x2d, offset 0xb40
-	0xb60: 0x1f, 0xb61: 0x20, 0xb62: 0x21, 0xb63: 0x22, 0xb64: 0x23, 0xb65: 0x24, 0xb66: 0x25, 0xb67: 0x26,
-	0xb68: 0x27, 0xb69: 0x28, 0xb6a: 0x29, 0xb6b: 0x2a, 0xb6c: 0x2b, 0xb6d: 0x2c, 0xb6e: 0x2d, 0xb6f: 0x2e,
-	0xb70: 0x2f, 0xb71: 0x30, 0xb72: 0x31, 0xb73: 0x32, 0xb74: 0x33, 0xb75: 0x34, 0xb76: 0x35, 0xb77: 0x36,
-	0xb78: 0x37, 0xb79: 0x38, 0xb7a: 0x39, 0xb7b: 0x3a, 0xb7c: 0x1e8, 0xb7d: 0x1e9, 0xb7e: 0x1ea, 0xb7f: 0x3e,
-	// Block 0x2e, offset 0xb80
-	0xb82: 0x01, 0xb83: 0x02, 0xb84: 0x03, 0xb85: 0x04, 0xb86: 0x05, 0xb87: 0x06,
-	0xb88: 0x07, 0xb89: 0x08, 0xb8a: 0x09, 0xb8b: 0x0a, 0xb8c: 0x0b, 0xb8d: 0x0c, 0xb8e: 0x0d, 0xb8f: 0x0e,
-	0xb90: 0x0f, 0xb91: 0x10, 0xb92: 0x11, 0xb93: 0x12, 0xb94: 0x13, 0xb95: 0x14, 0xb96: 0x15, 0xb97: 0x16,
-	0xb98: 0x17, 0xb99: 0x18, 0xb9a: 0x19, 0xb9b: 0x1a, 0xb9c: 0x1b, 0xb9d: 0x1c, 0xb9e: 0x1d, 0xb9f: 0x1e,
-	0xba0: 0x2b, 0xba1: 0x02, 0xba2: 0x03, 0xba3: 0x04, 0xba4: 0x05,
-	0xbaa: 0x06, 0xbad: 0x07, 0xbaf: 0x08,
-	0xbb0: 0x13, 0xbb3: 0x15,
-	// Block 0x2f, offset 0xbc0
-	0xbc0: 0x3f, 0xbc1: 0x40, 0xbc2: 0x41, 0xbc3: 0x42, 0xbc4: 0x43, 0xbc5: 0x44, 0xbc6: 0x45, 0xbc7: 0x46,
-	0xbc8: 0x47, 0xbc9: 0x48, 0xbca: 0x49, 0xbcb: 0x4a, 0xbcc: 0x4b, 0xbcd: 0x4c, 0xbce: 0x4d, 0xbcf: 0x4e,
-	0xbd0: 0x4f, 0xbd1: 0x50, 0xbd2: 0x51, 0xbd3: 0x52, 0xbd4: 0x53, 0xbd5: 0x54, 0xbd6: 0x55, 0xbd7: 0x56,
-	0xbd8: 0x57, 0xbd9: 0x58, 0xbda: 0x59, 0xbdb: 0x5a, 0xbdc: 0x5b, 0xbdd: 0x5c, 0xbde: 0x5d, 0xbdf: 0x5e,
-	0xbe0: 0x5f, 0xbe1: 0x60, 0xbe2: 0x61, 0xbe3: 0x62, 0xbe4: 0x63, 0xbe5: 0x64, 0xbe6: 0x65, 0xbe7: 0x66,
-	0xbe8: 0x67, 0xbe9: 0x68, 0xbea: 0x69, 0xbec: 0x6a, 0xbed: 0x6b, 0xbee: 0x6c, 0xbef: 0x6d,
-	0xbf0: 0x6e, 0xbf1: 0x6f, 0xbf3: 0x70, 0xbf4: 0x71, 0xbf5: 0x72, 0xbf6: 0x73, 0xbf7: 0x74,
-	0xbf8: 0x75, 0xbf9: 0x76, 0xbfa: 0x1f4, 0xbfb: 0x1f5, 0xbfc: 0x79, 0xbfd: 0x7a, 0xbfe: 0x7b, 0xbff: 0x7c,
-	// Block 0x30, offset 0xc00
-	0xc00: 0x7d, 0xc01: 0x7e, 0xc02: 0x7f, 0xc03: 0x80, 0xc04: 0x81, 0xc05: 0x1f6, 0xc06: 0x83, 0xc07: 0x84,
-	0xc08: 0x85, 0xc09: 0x86, 0xc0a: 0x87, 0xc0b: 0x88, 0xc0c: 0x89, 0xc0d: 0x8a, 0xc0e: 0x8b, 0xc0f: 0x8c,
-	0xc10: 0x8d, 0xc11: 0x8e, 0xc12: 0x1f7, 0xc13: 0x90, 0xc14: 0x91, 0xc15: 0x92, 0xc16: 0x93, 0xc17: 0x94,
-	0xc18: 0x95, 0xc19: 0x96, 0xc1a: 0x97, 0xc1b: 0x98, 0xc1c: 0x99, 0xc1d: 0x9a, 0xc1e: 0x9b, 0xc1f: 0x9c,
-	0xc20: 0x9d, 0xc21: 0x9e, 0xc22: 0x9f, 0xc23: 0xa0, 0xc24: 0xa1, 0xc25: 0xa2, 0xc26: 0xa3, 0xc27: 0xa4,
-	0xc28: 0xa5, 0xc29: 0xa6, 0xc2a: 0xa7, 0xc2b: 0xa8, 0xc2c: 0xa9, 0xc2d: 0xaa,
-	0xc30: 0xab, 0xc31: 0xac, 0xc32: 0xad, 0xc33: 0xae, 0xc34: 0xaf, 0xc35: 0xb0, 0xc36: 0xb1, 0xc37: 0xb2,
-	0xc38: 0xb3, 0xc3a: 0xb4, 0xc3b: 0xb5, 0xc3c: 0xb6, 0xc3d: 0xb7, 0xc3e: 0xb8, 0xc3f: 0xb9,
-	// Block 0x31, offset 0xc40
-	0xc40: 0xba, 0xc41: 0xbb, 0xc42: 0xbc, 0xc43: 0xbd, 0xc44: 0xbe, 0xc45: 0xbf, 0xc46: 0xc0, 0xc47: 0xc1,
-	0xc48: 0xc2, 0xc49: 0xc3, 0xc4a: 0xc4, 0xc4b: 0xc5, 0xc4c: 0xc6, 0xc4d: 0xc7, 0xc4e: 0xc8, 0xc4f: 0x1f8,
-	// Block 0x32, offset 0xc80
-	0xc80: 0x18b, 0xc81: 0x18c, 0xc82: 0x18d, 0xc83: 0x18e, 0xc84: 0x1f9, 0xc85: 0x190, 0xc86: 0x191, 0xc87: 0x192,
-	0xc88: 0x193, 0xc89: 0x194, 0xc8c: 0x195, 0xc8d: 0x196, 0xc8e: 0x197, 0xc8f: 0x198,
-	0xc90: 0x199, 0xc91: 0x19a, 0xc92: 0x19b, 0xc93: 0x19c, 0xc94: 0x19d, 0xc95: 0x19e, 0xc97: 0x19f,
-	0xc98: 0x1a0, 0xc99: 0x1a1, 0xc9a: 0x1a2, 0xc9b: 0x1a3, 0xc9c: 0x1a4, 0xc9d: 0x1a5,
-	// Block 0x33, offset 0xcc0
-	0xcd0: 0x09, 0xcd1: 0x0a, 0xcd2: 0x0b, 0xcd3: 0x0c, 0xcd6: 0x0d,
-	0xcdb: 0x0e, 0xcdd: 0x0f, 0xcde: 0x10, 0xcdf: 0x30,
-	0xcef: 0x12,
-	// Block 0x34, offset 0xd00
-	0xd02: 0x01, 0xd03: 0x1ed, 0xd04: 0x1ee, 0xd05: 0x1ef, 0xd06: 0x1f0, 0xd07: 0x06,
-	0xd08: 0x07, 0xd09: 0x1f1, 0xd0a: 0x1f2, 0xd0b: 0x0a, 0xd0c: 0x1f3, 0xd0d: 0x0c, 0xd0e: 0x0d, 0xd0f: 0x0e,
-	0xd10: 0x0f, 0xd11: 0x10, 0xd12: 0x11, 0xd13: 0x12, 0xd14: 0x13, 0xd15: 0x14, 0xd16: 0x15, 0xd17: 0x16,
-	0xd18: 0x17, 0xd19: 0x18, 0xd1a: 0x19, 0xd1b: 0x1a, 0xd1c: 0x1b, 0xd1d: 0x1c, 0xd1e: 0x1d, 0xd1f: 0x1e,
-	0xd20: 0x01, 0xd21: 0x2d, 0xd22: 0x2e, 0xd23: 0x2f, 0xd24: 0x05,
-	0xd2a: 0x06, 0xd2d: 0x07, 0xd2f: 0x08,
-	0xd30: 0x31, 0xd33: 0x15,
-	// Block 0x35, offset 0xd40
-	0xd40: 0x3f, 0xd41: 0x40, 0xd42: 0x41, 0xd43: 0x42, 0xd44: 0x43, 0xd45: 0x44, 0xd46: 0x45, 0xd47: 0x46,
-	0xd48: 0x47, 0xd49: 0x48, 0xd4a: 0x49, 0xd4b: 0x4a, 0xd4c: 0x4b, 0xd4d: 0x4c, 0xd4e: 0x4d, 0xd4f: 0x4e,
-	0xd50: 0x4f, 0xd51: 0x50, 0xd52: 0x51, 0xd53: 0x52, 0xd54: 0x53, 0xd55: 0x54, 0xd56: 0x55, 0xd57: 0x56,
-	0xd58: 0x57, 0xd59: 0x58, 0xd5a: 0x59, 0xd5b: 0x5a, 0xd5c: 0x5b, 0xd5d: 0x5c, 0xd5e: 0x5d, 0xd5f: 0x5e,
-	0xd60: 0x5f, 0xd61: 0x60, 0xd62: 0x61, 0xd63: 0x62, 0xd64: 0x63, 0xd65: 0x64, 0xd66: 0x65, 0xd67: 0x66,
-	0xd68: 0x67, 0xd69: 0x68, 0xd6a: 0x69, 0xd6c: 0x6a, 0xd6d: 0x6b, 0xd6e: 0x6c, 0xd6f: 0x6d,
-	0xd70: 0x6e, 0xd71: 0x6f, 0xd73: 0x70, 0xd74: 0x71, 0xd75: 0x72, 0xd76: 0x73, 0xd77: 0x74,
-	0xd78: 0x203, 0xd79: 0x204, 0xd7a: 0x205, 0xd7b: 0x206, 0xd7c: 0x79, 0xd7d: 0x7a, 0xd7e: 0x7b, 0xd7f: 0x207,
-	// Block 0x36, offset 0xd80
-	0xd80: 0x208, 0xd81: 0x209, 0xd82: 0x7f, 0xd83: 0x80, 0xd84: 0x20a, 0xd85: 0x20b, 0xd86: 0x83, 0xd87: 0x84,
-	0xd88: 0x85, 0xd89: 0x86, 0xd8a: 0x87, 0xd8b: 0x88, 0xd8c: 0x89, 0xd8d: 0x8a, 0xd8e: 0x8b, 0xd8f: 0x8c,
-	0xd90: 0x8d, 0xd91: 0x20c, 0xd92: 0x20d, 0xd93: 0x90, 0xd94: 0x91, 0xd95: 0x92, 0xd96: 0x93, 0xd97: 0x94,
-	0xd98: 0x95, 0xd99: 0x96, 0xd9a: 0x97, 0xd9b: 0x98, 0xd9c: 0x99, 0xd9d: 0x9a, 0xd9e: 0x9b, 0xd9f: 0x9c,
-	0xda0: 0x9d, 0xda1: 0x9e, 0xda2: 0x9f, 0xda3: 0xa0, 0xda4: 0xa1, 0xda5: 0xa2, 0xda6: 0xa3, 0xda7: 0xa4,
-	0xda8: 0xa5, 0xda9: 0xa6, 0xdaa: 0xa7, 0xdab: 0xa8, 0xdac: 0xa9, 0xdad: 0xaa,
-	0xdb0: 0xab, 0xdb1: 0xac, 0xdb2: 0xad, 0xdb3: 0xae, 0xdb4: 0xaf, 0xdb5: 0xb0, 0xdb6: 0xb1, 0xdb7: 0xb2,
-	0xdb8: 0xb3, 0xdba: 0xb4, 0xdbb: 0xb5, 0xdbc: 0xb6, 0xdbd: 0xb7, 0xdbe: 0xb8, 0xdbf: 0xb9,
-	// Block 0x37, offset 0xdc0
-	0xdc0: 0xba, 0xdc1: 0xbb, 0xdc2: 0xbc, 0xdc3: 0xbd, 0xdc4: 0xbe, 0xdc5: 0xbf, 0xdc6: 0xc0, 0xdc7: 0xc1,
-	0xdc8: 0x20e, 0xdc9: 0x20f, 0xdca: 0x210, 0xdcb: 0x211, 0xdcc: 0xc6, 0xdcd: 0x212, 0xdce: 0x213, 0xdcf: 0x214,
-	// Block 0x38, offset 0xe00
-	0xe24: 0xfb, 0xe25: 0xfc, 0xe26: 0xfd, 0xe27: 0xfe,
-	0xe28: 0xff, 0xe29: 0x100, 0xe2a: 0x101, 0xe2b: 0x102, 0xe2c: 0x215, 0xe2d: 0x104, 0xe2e: 0x105, 0xe2f: 0x106,
-	0xe30: 0x107, 0xe31: 0x108, 0xe32: 0x109, 0xe33: 0x10a, 0xe34: 0x10b, 0xe35: 0x10c, 0xe36: 0x10d, 0xe37: 0x10e,
-	0xe38: 0x10f, 0xe39: 0x110, 0xe3a: 0x111, 0xe3b: 0x112, 0xe3c: 0x113, 0xe3d: 0x114, 0xe3e: 0x115, 0xe3f: 0x116,
-	// Block 0x39, offset 0xe40
-	0xe40: 0x18b, 0xe41: 0x18c, 0xe42: 0x18d, 0xe43: 0x18e, 0xe44: 0x216, 0xe45: 0x217, 0xe46: 0x218, 0xe47: 0x192,
-	0xe48: 0x193, 0xe49: 0x194, 0xe4c: 0x195, 0xe4d: 0x196, 0xe4e: 0x197, 0xe4f: 0x198,
-	0xe50: 0x199, 0xe51: 0x19a, 0xe52: 0x19b, 0xe53: 0x19c, 0xe54: 0x19d, 0xe55: 0x19e, 0xe57: 0x19f,
-	0xe58: 0x1a0, 0xe59: 0x1a1, 0xe5a: 0x1a2, 0xe5b: 0x1a3, 0xe5c: 0x1a4, 0xe5d: 0x1a5,
-	// Block 0x3a, offset 0xe80
-	0xe90: 0x09, 0xe91: 0x0a, 0xe92: 0x0b, 0xe93: 0x0c, 0xe96: 0x0d,
-	0xe9b: 0x0e, 0xe9d: 0x0f, 0xe9e: 0x10, 0xe9f: 0x37,
-	0xeaf: 0x12,
-	// Block 0x3b, offset 0xec0
-	0xec2: 0x01, 0xec3: 0x1fc, 0xec4: 0x1fd, 0xec5: 0x1fe, 0xec6: 0x1ff, 0xec7: 0x200,
-	0xec8: 0x201, 0xec9: 0x08, 0xeca: 0x09, 0xecb: 0x0a, 0xecc: 0x0b, 0xecd: 0x202, 0xece: 0x0d, 0xecf: 0x0e,
-	0xed0: 0x0f, 0xed1: 0x10, 0xed2: 0x11, 0xed3: 0x12, 0xed4: 0x13, 0xed5: 0x14, 0xed6: 0x15, 0xed7: 0x16,
-	0xed8: 0x17, 0xed9: 0x18, 0xeda: 0x19, 0xedb: 0x1a, 0xedc: 0x1b, 0xedd: 0x1c, 0xede: 0x1d, 0xedf: 0x1e,
-	0xee0: 0x01, 0xee1: 0x33, 0xee2: 0x34, 0xee3: 0x35, 0xee4: 0x05,
-	0xeea: 0x06, 0xeed: 0x07, 0xeef: 0x36,
-	0xef0: 0x38, 0xef3: 0x15,
-	// Block 0x3c, offset 0xf00
-	0xf02: 0x01, 0xf03: 0x02, 0xf04: 0x21b, 0xf05: 0x21c, 0xf06: 0x05, 0xf07: 0x06,
-	0xf08: 0x07, 0xf09: 0x08, 0xf0a: 0x09, 0xf0b: 0x0a, 0xf0c: 0x0b, 0xf0d: 0x0c, 0xf0e: 0x0d, 0xf0f: 0x0e,
-	0xf10: 0x0f, 0xf11: 0x10, 0xf12: 0x11, 0xf13: 0x12, 0xf14: 0x13, 0xf15: 0x14, 0xf16: 0x15, 0xf17: 0x16,
-	0xf18: 0x17, 0xf19: 0x18, 0xf1a: 0x19, 0xf1b: 0x1a, 0xf1c: 0x1b, 0xf1d: 0x1c, 0xf1e: 0x1d, 0xf1f: 0x1e,
-	0xf20: 0x01, 0xf21: 0x02, 0xf22: 0x03, 0xf23: 0x04, 0xf24: 0x05,
-	0xf2a: 0x06, 0xf2d: 0x07, 0xf2f: 0x08,
-	0xf30: 0x13, 0xf33: 0x15,
-	// Block 0x3d, offset 0xf40
-	0xf42: 0x01, 0xf43: 0x21f, 0xf44: 0x03, 0xf45: 0x04, 0xf46: 0x05, 0xf47: 0x06,
-	0xf48: 0x07, 0xf49: 0x08, 0xf4a: 0x09, 0xf4b: 0x0a, 0xf4c: 0x0b, 0xf4d: 0x0c, 0xf4e: 0x0d, 0xf4f: 0x0e,
-	0xf50: 0x0f, 0xf51: 0x10, 0xf52: 0x11, 0xf53: 0x12, 0xf54: 0x13, 0xf55: 0x14, 0xf56: 0x15, 0xf57: 0x16,
-	0xf58: 0x17, 0xf59: 0x18, 0xf5a: 0x19, 0xf5b: 0x1a, 0xf5c: 0x1b, 0xf5d: 0x1c, 0xf5e: 0x1d, 0xf5f: 0x1e,
-	0xf60: 0x01, 0xf61: 0x02, 0xf62: 0x03, 0xf63: 0x04, 0xf64: 0x05,
-	0xf6a: 0x06, 0xf6d: 0x07, 0xf6f: 0x08,
-	0xf70: 0x13, 0xf73: 0x15,
-	// Block 0x3e, offset 0xf80
-	0xf80: 0x3f, 0xf81: 0x40, 0xf82: 0x41, 0xf83: 0x42, 0xf84: 0x43, 0xf85: 0x44, 0xf86: 0x45, 0xf87: 0x46,
-	0xf88: 0x47, 0xf89: 0x48, 0xf8a: 0x49, 0xf8b: 0x4a, 0xf8c: 0x4b, 0xf8d: 0x4c, 0xf8e: 0x4d, 0xf8f: 0x4e,
-	0xf90: 0x4f, 0xf91: 0x50, 0xf92: 0x51, 0xf93: 0x52, 0xf94: 0x53, 0xf95: 0x54, 0xf96: 0x55, 0xf97: 0x56,
-	0xf98: 0x57, 0xf99: 0x58, 0xf9a: 0x59, 0xf9b: 0x5a, 0xf9c: 0x5b, 0xf9d: 0x5c, 0xf9e: 0x5d, 0xf9f: 0x5e,
-	0xfa0: 0x5f, 0xfa1: 0x60, 0xfa2: 0x61, 0xfa3: 0x62, 0xfa4: 0x63, 0xfa5: 0x64, 0xfa6: 0x65, 0xfa7: 0x66,
-	0xfa8: 0x67, 0xfa9: 0x68, 0xfaa: 0x69, 0xfac: 0x6a, 0xfad: 0x6b, 0xfae: 0x6c, 0xfaf: 0x6d,
-	0xfb0: 0x6e, 0xfb1: 0x6f, 0xfb3: 0x70, 0xfb4: 0x71, 0xfb5: 0x72, 0xfb6: 0x73, 0xfb7: 0x74,
-	0xfb8: 0x75, 0xfb9: 0x226, 0xfba: 0x227, 0xfbb: 0x228, 0xfbc: 0x79, 0xfbd: 0x7a, 0xfbe: 0x7b, 0xfbf: 0x7c,
-	// Block 0x3f, offset 0xfc0
-	0xfc0: 0x7d, 0xfc1: 0x7e, 0xfc2: 0x7f, 0xfc3: 0x80, 0xfc4: 0x81, 0xfc5: 0x82, 0xfc6: 0x83, 0xfc7: 0x84,
-	0xfc8: 0x85, 0xfc9: 0x86, 0xfca: 0x87, 0xfcb: 0x88, 0xfcc: 0x89, 0xfcd: 0x8a, 0xfce: 0x8b, 0xfcf: 0x8c,
-	0xfd0: 0x8d, 0xfd1: 0x8e, 0xfd2: 0x229, 0xfd3: 0x90, 0xfd4: 0x91, 0xfd5: 0x92, 0xfd6: 0x93, 0xfd7: 0x94,
-	0xfd8: 0x95, 0xfd9: 0x96, 0xfda: 0x97, 0xfdb: 0x98, 0xfdc: 0x99, 0xfdd: 0x9a, 0xfde: 0x9b, 0xfdf: 0x9c,
-	0xfe0: 0x9d, 0xfe1: 0x9e, 0xfe2: 0x9f, 0xfe3: 0xa0, 0xfe4: 0xa1, 0xfe5: 0xa2, 0xfe6: 0xa3, 0xfe7: 0xa4,
-	0xfe8: 0xa5, 0xfe9: 0xa6, 0xfea: 0xa7, 0xfeb: 0xa8, 0xfec: 0xa9, 0xfed: 0xaa,
-	0xff0: 0xab, 0xff1: 0xac, 0xff2: 0xad, 0xff3: 0xae, 0xff4: 0xaf, 0xff5: 0xb0, 0xff6: 0xb1, 0xff7: 0xb2,
-	0xff8: 0xb3, 0xffa: 0xb4, 0xffb: 0xb5, 0xffc: 0xb6, 0xffd: 0xb7, 0xffe: 0xb8, 0xfff: 0xb9,
-	// Block 0x40, offset 0x1000
-	0x1000: 0xba, 0x1001: 0xbb, 0x1002: 0xbc, 0x1003: 0xbd, 0x1004: 0xbe, 0x1005: 0xbf, 0x1006: 0xc0, 0x1007: 0xc1,
-	0x1008: 0xc2, 0x1009: 0xc3, 0x100a: 0xc4, 0x100b: 0xc5, 0x100c: 0xc6, 0x100d: 0xc7, 0x100e: 0x22a, 0x100f: 0x22b,
-	// Block 0x41, offset 0x1040
-	0x1040: 0x18b, 0x1041: 0x18c, 0x1042: 0x18d, 0x1043: 0x18e, 0x1044: 0x22c, 0x1045: 0x22d, 0x1046: 0x191, 0x1047: 0x192,
-	0x1048: 0x193, 0x1049: 0x194, 0x104c: 0x195, 0x104d: 0x196, 0x104e: 0x197, 0x104f: 0x198,
-	0x1050: 0x199, 0x1051: 0x19a, 0x1052: 0x19b, 0x1053: 0x19c, 0x1054: 0x19d, 0x1055: 0x19e, 0x1057: 0x19f,
-	0x1058: 0x1a0, 0x1059: 0x1a1, 0x105a: 0x1a2, 0x105b: 0x1a3, 0x105c: 0x1a4, 0x105d: 0x1a5,
-	// Block 0x42, offset 0x1080
-	0x1090: 0x09, 0x1091: 0x0a, 0x1092: 0x0b, 0x1093: 0x0c, 0x1096: 0x0d,
-	0x109b: 0x0e, 0x109d: 0x0f, 0x109e: 0x10, 0x109f: 0x3f,
-	0x10af: 0x12,
-	// Block 0x43, offset 0x10c0
-	0x10c2: 0x01, 0x10c3: 0x222, 0x10c4: 0x03, 0x10c5: 0x223, 0x10c6: 0x05, 0x10c7: 0x224,
-	0x10c8: 0x225, 0x10c9: 0x08, 0x10ca: 0x09, 0x10cb: 0x0a, 0x10cc: 0x0b, 0x10cd: 0x0c, 0x10ce: 0x0d, 0x10cf: 0x0e,
-	0x10d0: 0x0f, 0x10d1: 0x10, 0x10d2: 0x11, 0x10d3: 0x12, 0x10d4: 0x13, 0x10d5: 0x14, 0x10d6: 0x15, 0x10d7: 0x16,
-	0x10d8: 0x17, 0x10d9: 0x18, 0x10da: 0x19, 0x10db: 0x1a, 0x10dc: 0x1b, 0x10dd: 0x1c, 0x10de: 0x1d, 0x10df: 0x1e,
-	0x10e0: 0x01, 0x10e1: 0x3c, 0x10e2: 0x3d, 0x10e3: 0x3e, 0x10e4: 0x05,
-	0x10ea: 0x06, 0x10ed: 0x07, 0x10ef: 0x08,
-	0x10f0: 0x40, 0x10f3: 0x15,
-	// Block 0x44, offset 0x1100
-	0x1124: 0xfb, 0x1125: 0xfc, 0x1126: 0xfd, 0x1127: 0xfe,
-	0x1128: 0xff, 0x1129: 0x100, 0x112a: 0x101, 0x112b: 0x102, 0x112c: 0x103, 0x112d: 0x104, 0x112e: 0x232, 0x112f: 0x106,
-	0x1130: 0x233, 0x1131: 0x234, 0x1132: 0x235, 0x1133: 0x236, 0x1134: 0x237, 0x1135: 0x10c, 0x1136: 0x10d, 0x1137: 0x10e,
-	0x1138: 0x10f, 0x1139: 0x110, 0x113a: 0x111, 0x113b: 0x112, 0x113c: 0x113, 0x113d: 0x114, 0x113e: 0x115, 0x113f: 0x116,
-	// Block 0x45, offset 0x1140
-	0x1142: 0x01, 0x1143: 0x02, 0x1144: 0x03, 0x1145: 0x04, 0x1146: 0x05, 0x1147: 0x06,
-	0x1148: 0x07, 0x1149: 0x08, 0x114a: 0x09, 0x114b: 0x0a, 0x114c: 0x0b, 0x114d: 0x0c, 0x114e: 0x0d, 0x114f: 0x0e,
-	0x1150: 0x0f, 0x1151: 0x10, 0x1152: 0x11, 0x1153: 0x12, 0x1154: 0x13, 0x1155: 0x14, 0x1156: 0x15, 0x1157: 0x16,
-	0x1158: 0x22e, 0x1159: 0x22f, 0x115a: 0x230, 0x115b: 0x231, 0x115c: 0x1b, 0x115d: 0x1c, 0x115e: 0x1d, 0x115f: 0x1e,
-	0x1160: 0x01, 0x1161: 0x02, 0x1162: 0x03, 0x1163: 0x04, 0x1164: 0x05,
-	0x116a: 0x06, 0x116d: 0x07, 0x116f: 0x42,
-	0x1170: 0x13, 0x1173: 0x15,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x3f, 0x1181: 0x40, 0x1182: 0x41, 0x1183: 0x42, 0x1184: 0x43, 0x1185: 0x44, 0x1186: 0x45, 0x1187: 0x46,
-	0x1188: 0x47, 0x1189: 0x48, 0x118a: 0x49, 0x118b: 0x4a, 0x118c: 0x4b, 0x118d: 0x4c, 0x118e: 0x4d, 0x118f: 0x4e,
-	0x1190: 0x4f, 0x1191: 0x50, 0x1192: 0x51, 0x1193: 0x52, 0x1194: 0x53, 0x1195: 0x54, 0x1196: 0x55, 0x1197: 0x56,
-	0x1198: 0x57, 0x1199: 0x58, 0x119a: 0x59, 0x119b: 0x5a, 0x119c: 0x5b, 0x119d: 0x5c, 0x119e: 0x5d, 0x119f: 0x5e,
-	0x11a0: 0x5f, 0x11a1: 0x60, 0x11a2: 0x61, 0x11a3: 0x62, 0x11a4: 0x63, 0x11a5: 0x64, 0x11a6: 0x65, 0x11a7: 0x66,
-	0x11a8: 0x67, 0x11a9: 0x68, 0x11aa: 0x69, 0x11ac: 0x6a, 0x11ad: 0x6b, 0x11ae: 0x6c, 0x11af: 0x6d,
-	0x11b0: 0x6e, 0x11b1: 0x6f, 0x11b3: 0x70, 0x11b4: 0x71, 0x11b5: 0x72, 0x11b6: 0x73, 0x11b7: 0x74,
-	0x11b8: 0x75, 0x11b9: 0x241, 0x11ba: 0x77, 0x11bb: 0x78, 0x11bc: 0x79, 0x11bd: 0x7a, 0x11be: 0x7b, 0x11bf: 0x7c,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x7d, 0x11c1: 0x7e, 0x11c2: 0x7f, 0x11c3: 0x80, 0x11c4: 0x242, 0x11c5: 0x82, 0x11c6: 0x83, 0x11c7: 0x84,
-	0x11c8: 0x85, 0x11c9: 0x86, 0x11ca: 0x87, 0x11cb: 0x88, 0x11cc: 0x89, 0x11cd: 0x8a, 0x11ce: 0x8b, 0x11cf: 0x8c,
-	0x11d0: 0x8d, 0x11d1: 0x8e, 0x11d2: 0x8f, 0x11d3: 0x90, 0x11d4: 0x91, 0x11d5: 0x92, 0x11d6: 0x93, 0x11d7: 0x94,
-	0x11d8: 0x95, 0x11d9: 0x96, 0x11da: 0x97, 0x11db: 0x98, 0x11dc: 0x99, 0x11dd: 0x9a, 0x11de: 0x9b, 0x11df: 0x9c,
-	0x11e0: 0x9d, 0x11e1: 0x9e, 0x11e2: 0x9f, 0x11e3: 0xa0, 0x11e4: 0xa1, 0x11e5: 0xa2, 0x11e6: 0xa3, 0x11e7: 0xa4,
-	0x11e8: 0xa5, 0x11e9: 0xa6, 0x11ea: 0xa7, 0x11eb: 0xa8, 0x11ec: 0xa9, 0x11ed: 0xaa,
-	0x11f0: 0xab, 0x11f1: 0xac, 0x11f2: 0xad, 0x11f3: 0xae, 0x11f4: 0xaf, 0x11f5: 0xb0, 0x11f6: 0xb1, 0x11f7: 0xb2,
-	0x11f8: 0xb3, 0x11fa: 0xb4, 0x11fb: 0xb5, 0x11fc: 0xb6, 0x11fd: 0xb7, 0x11fe: 0xb8, 0x11ff: 0xb9,
-	// Block 0x48, offset 0x1200
-	0x1202: 0x01, 0x1203: 0x23a, 0x1204: 0x23b, 0x1205: 0x23c, 0x1206: 0x23d, 0x1207: 0x23e,
-	0x1208: 0x23f, 0x1209: 0x08, 0x120a: 0x240, 0x120b: 0x0a, 0x120c: 0x0b, 0x120d: 0x0c, 0x120e: 0x0d, 0x120f: 0x0e,
-	0x1210: 0x0f, 0x1211: 0x10, 0x1212: 0x11, 0x1213: 0x12, 0x1214: 0x13, 0x1215: 0x14, 0x1216: 0x15, 0x1217: 0x16,
-	0x1218: 0x17, 0x1219: 0x18, 0x121a: 0x19, 0x121b: 0x1a, 0x121c: 0x1b, 0x121d: 0x1c, 0x121e: 0x1d, 0x121f: 0x1e,
-	0x1220: 0x01, 0x1221: 0x44, 0x1222: 0x45, 0x1223: 0x04, 0x1224: 0x05,
-	0x122a: 0x06, 0x122d: 0x07, 0x122f: 0x08,
-	0x1230: 0x13, 0x1233: 0x15,
-	// Block 0x49, offset 0x1240
-	0x1260: 0x1f, 0x1261: 0x20, 0x1262: 0x21, 0x1263: 0x22, 0x1264: 0x23, 0x1265: 0x24, 0x1266: 0x25, 0x1267: 0x26,
-	0x1268: 0x27, 0x1269: 0x28, 0x126a: 0x245, 0x126b: 0x2a, 0x126c: 0x2b, 0x126d: 0x2c, 0x126e: 0x2d, 0x126f: 0x2e,
-	0x1270: 0x2f, 0x1271: 0x30, 0x1272: 0x31, 0x1273: 0x32, 0x1274: 0x33, 0x1275: 0x34, 0x1276: 0x35, 0x1277: 0x36,
-	0x1278: 0x37, 0x1279: 0x38, 0x127a: 0x39, 0x127b: 0x3a, 0x127c: 0x3b, 0x127d: 0x3c, 0x127e: 0x3d, 0x127f: 0x3e,
-	// Block 0x4a, offset 0x1280
-	0x1282: 0x01, 0x1283: 0x02, 0x1284: 0x03, 0x1285: 0x04, 0x1286: 0x05, 0x1287: 0x06,
-	0x1288: 0x07, 0x1289: 0x08, 0x128a: 0x09, 0x128b: 0x0a, 0x128c: 0x0b, 0x128d: 0x0c, 0x128e: 0x0d, 0x128f: 0x0e,
-	0x1290: 0x0f, 0x1291: 0x10, 0x1292: 0x11, 0x1293: 0x12, 0x1294: 0x13, 0x1295: 0x14, 0x1296: 0x15, 0x1297: 0x16,
-	0x1298: 0x17, 0x1299: 0x18, 0x129a: 0x19, 0x129b: 0x1a, 0x129c: 0x1b, 0x129d: 0x1c, 0x129e: 0x1d, 0x129f: 0x1e,
-	0x12a0: 0x47, 0x12a1: 0x02, 0x12a2: 0x03, 0x12a3: 0x04, 0x12a4: 0x05,
-	0x12aa: 0x06, 0x12ad: 0x07, 0x12af: 0x08,
-	0x12b0: 0x13, 0x12b3: 0x15,
-	// Block 0x4b, offset 0x12c0
-	0x12c2: 0x01, 0x12c3: 0x02, 0x12c4: 0x03, 0x12c5: 0x04, 0x12c6: 0x248, 0x12c7: 0x06,
-	0x12c8: 0x07, 0x12c9: 0x249, 0x12ca: 0x24a, 0x12cb: 0x0a, 0x12cc: 0x0b, 0x12cd: 0x0c, 0x12ce: 0x0d, 0x12cf: 0x0e,
-	0x12d0: 0x0f, 0x12d1: 0x10, 0x12d2: 0x11, 0x12d3: 0x12, 0x12d4: 0x13, 0x12d5: 0x14, 0x12d6: 0x15, 0x12d7: 0x16,
-	0x12d8: 0x17, 0x12d9: 0x18, 0x12da: 0x19, 0x12db: 0x1a, 0x12dc: 0x1b, 0x12dd: 0x1c, 0x12de: 0x1d, 0x12df: 0x1e,
-	0x12e0: 0x01, 0x12e1: 0x02, 0x12e2: 0x03, 0x12e3: 0x04, 0x12e4: 0x05,
-	0x12ea: 0x06, 0x12ed: 0x07, 0x12ef: 0x08,
-	0x12f0: 0x13, 0x12f3: 0x15,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x3f, 0x1301: 0x40, 0x1302: 0x41, 0x1303: 0x42, 0x1304: 0x43, 0x1305: 0x44, 0x1306: 0x45, 0x1307: 0x46,
-	0x1308: 0x47, 0x1309: 0x48, 0x130a: 0x49, 0x130b: 0x4a, 0x130c: 0x4b, 0x130d: 0x4c, 0x130e: 0x4d, 0x130f: 0x4e,
-	0x1310: 0x4f, 0x1311: 0x50, 0x1312: 0x51, 0x1313: 0x52, 0x1314: 0x53, 0x1315: 0x54, 0x1316: 0x55, 0x1317: 0x56,
-	0x1318: 0x57, 0x1319: 0x58, 0x131a: 0x59, 0x131b: 0x5a, 0x131c: 0x5b, 0x131d: 0x5c, 0x131e: 0x5d, 0x131f: 0x5e,
-	0x1320: 0x5f, 0x1321: 0x60, 0x1322: 0x61, 0x1323: 0x62, 0x1324: 0x63, 0x1325: 0x64, 0x1326: 0x65, 0x1327: 0x66,
-	0x1328: 0x67, 0x1329: 0x68, 0x132a: 0x69, 0x132c: 0x6a, 0x132d: 0x6b, 0x132e: 0x6c, 0x132f: 0x6d,
-	0x1330: 0x6e, 0x1331: 0x6f, 0x1333: 0x70, 0x1334: 0x71, 0x1335: 0x72, 0x1336: 0x73, 0x1337: 0x74,
-	0x1338: 0x254, 0x1339: 0x255, 0x133a: 0x256, 0x133b: 0x257, 0x133c: 0x79, 0x133d: 0x7a, 0x133e: 0x7b, 0x133f: 0x7c,
-	// Block 0x4d, offset 0x1340
-	0x1340: 0x7d, 0x1341: 0x7e, 0x1342: 0x7f, 0x1343: 0x80, 0x1344: 0x258, 0x1345: 0x20b, 0x1346: 0x83, 0x1347: 0x84,
-	0x1348: 0x85, 0x1349: 0x86, 0x134a: 0x87, 0x134b: 0x88, 0x134c: 0x89, 0x134d: 0x8a, 0x134e: 0x8b, 0x134f: 0x8c,
-	0x1350: 0x8d, 0x1351: 0x8e, 0x1352: 0x259, 0x1353: 0x90, 0x1354: 0x91, 0x1355: 0x92, 0x1356: 0x93, 0x1357: 0x94,
-	0x1358: 0x95, 0x1359: 0x96, 0x135a: 0x97, 0x135b: 0x98, 0x135c: 0x99, 0x135d: 0x9a, 0x135e: 0x9b, 0x135f: 0x9c,
-	0x1360: 0x9d, 0x1361: 0x9e, 0x1362: 0x9f, 0x1363: 0xa0, 0x1364: 0xa1, 0x1365: 0xa2, 0x1366: 0xa3, 0x1367: 0xa4,
-	0x1368: 0xa5, 0x1369: 0xa6, 0x136a: 0xa7, 0x136b: 0xa8, 0x136c: 0xa9, 0x136d: 0xaa,
-	0x1370: 0xab, 0x1371: 0xac, 0x1372: 0xad, 0x1373: 0xae, 0x1374: 0xaf, 0x1375: 0xb0, 0x1376: 0xb1, 0x1377: 0xb2,
-	0x1378: 0xb3, 0x137a: 0xb4, 0x137b: 0xb5, 0x137c: 0xb6, 0x137d: 0xb7, 0x137e: 0xb8, 0x137f: 0xb9,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0xba, 0x1381: 0xbb, 0x1382: 0xbc, 0x1383: 0xbd, 0x1384: 0xbe, 0x1385: 0xbf, 0x1386: 0xc0, 0x1387: 0xc1,
-	0x1388: 0xc2, 0x1389: 0xc3, 0x138a: 0xc4, 0x138b: 0x25a, 0x138c: 0xc6, 0x138d: 0x25b, 0x138e: 0x25c, 0x138f: 0x25d,
-	// Block 0x4f, offset 0x13c0
-	0x13e4: 0xfb, 0x13e5: 0xfc, 0x13e6: 0xfd, 0x13e7: 0xfe,
-	0x13e8: 0xff, 0x13e9: 0x100, 0x13ea: 0x101, 0x13eb: 0x102, 0x13ec: 0x25e, 0x13ed: 0x104, 0x13ee: 0x105, 0x13ef: 0x106,
-	0x13f0: 0x107, 0x13f1: 0x108, 0x13f2: 0x109, 0x13f3: 0x10a, 0x13f4: 0x10b, 0x13f5: 0x10c, 0x13f6: 0x10d, 0x13f7: 0x10e,
-	0x13f8: 0x10f, 0x13f9: 0x110, 0x13fa: 0x111, 0x13fb: 0x112, 0x13fc: 0x113, 0x13fd: 0x114, 0x13fe: 0x115, 0x13ff: 0x116,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x18b, 0x1401: 0x18c, 0x1402: 0x18d, 0x1403: 0x18e, 0x1404: 0x25f, 0x1405: 0x260, 0x1406: 0x191, 0x1407: 0x192,
-	0x1408: 0x193, 0x1409: 0x194, 0x140c: 0x195, 0x140d: 0x196, 0x140e: 0x197, 0x140f: 0x198,
-	0x1410: 0x199, 0x1411: 0x19a, 0x1412: 0x19b, 0x1413: 0x19c, 0x1414: 0x19d, 0x1415: 0x19e, 0x1417: 0x19f,
-	0x1418: 0x1a0, 0x1419: 0x1a1, 0x141a: 0x1a2, 0x141b: 0x1a3, 0x141c: 0x1a4, 0x141d: 0x1a5,
-	// Block 0x51, offset 0x1440
-	0x1450: 0x09, 0x1451: 0x0a, 0x1452: 0x0b, 0x1453: 0x0c, 0x1456: 0x0d,
-	0x145b: 0x0e, 0x145d: 0x0f, 0x145e: 0x10, 0x145f: 0x4e,
-	0x146f: 0x12,
-	// Block 0x52, offset 0x1480
-	0x1482: 0x01, 0x1483: 0x24d, 0x1484: 0x24e, 0x1485: 0x24f, 0x1486: 0x250, 0x1487: 0x251,
-	0x1488: 0x252, 0x1489: 0x08, 0x148a: 0x253, 0x148b: 0x0a, 0x148c: 0x0b, 0x148d: 0x0c, 0x148e: 0x0d, 0x148f: 0x0e,
-	0x1490: 0x0f, 0x1491: 0x10, 0x1492: 0x11, 0x1493: 0x12, 0x1494: 0x13, 0x1495: 0x14, 0x1496: 0x15, 0x1497: 0x16,
-	0x1498: 0x17, 0x1499: 0x18, 0x149a: 0x19, 0x149b: 0x1a, 0x149c: 0x1b, 0x149d: 0x1c, 0x149e: 0x1d, 0x149f: 0x1e,
-	0x14a0: 0x01, 0x14a1: 0x4a, 0x14a2: 0x4b, 0x14a3: 0x4c, 0x14a4: 0x05,
-	0x14aa: 0x06, 0x14ad: 0x07, 0x14af: 0x4d,
-	0x14b0: 0x4f, 0x14b3: 0x15,
-	// Block 0x53, offset 0x14c0
-	0x14e0: 0x1f, 0x14e1: 0x20, 0x14e2: 0x21, 0x14e3: 0x22, 0x14e4: 0x261, 0x14e5: 0x24, 0x14e6: 0x25, 0x14e7: 0x26,
-	0x14e8: 0x27, 0x14e9: 0x28, 0x14ea: 0x29, 0x14eb: 0x2a, 0x14ec: 0x2b, 0x14ed: 0x2c, 0x14ee: 0x2d, 0x14ef: 0x2e,
-	0x14f0: 0x2f, 0x14f1: 0x30, 0x14f2: 0x31, 0x14f3: 0x32, 0x14f4: 0x33, 0x14f5: 0x34, 0x14f6: 0x35, 0x14f7: 0x36,
-	0x14f8: 0x37, 0x14f9: 0x38, 0x14fa: 0x39, 0x14fb: 0x3a, 0x14fc: 0x3b, 0x14fd: 0x3c, 0x14fe: 0x3d, 0x14ff: 0x3e,
-	// Block 0x54, offset 0x1500
-	0x1502: 0x01, 0x1503: 0x02, 0x1504: 0x03, 0x1505: 0x04, 0x1506: 0x05, 0x1507: 0x06,
-	0x1508: 0x07, 0x1509: 0x08, 0x150a: 0x09, 0x150b: 0x0a, 0x150c: 0x0b, 0x150d: 0x0c, 0x150e: 0x0d, 0x150f: 0x0e,
-	0x1510: 0x0f, 0x1511: 0x10, 0x1512: 0x11, 0x1513: 0x12, 0x1514: 0x13, 0x1515: 0x14, 0x1516: 0x15, 0x1517: 0x16,
-	0x1518: 0x17, 0x1519: 0x18, 0x151a: 0x19, 0x151b: 0x1a, 0x151c: 0x1b, 0x151d: 0x1c, 0x151e: 0x1d, 0x151f: 0x1e,
-	0x1520: 0x51, 0x1521: 0x02, 0x1522: 0x03, 0x1523: 0x04, 0x1524: 0x05,
-	0x152a: 0x06, 0x152d: 0x07, 0x152f: 0x08,
-	0x1530: 0x13, 0x1533: 0x15,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x3f, 0x1541: 0x40, 0x1542: 0x41, 0x1543: 0x42, 0x1544: 0x43, 0x1545: 0x44, 0x1546: 0x45, 0x1547: 0x46,
-	0x1548: 0x47, 0x1549: 0x48, 0x154a: 0x49, 0x154b: 0x4a, 0x154c: 0x4b, 0x154d: 0x4c, 0x154e: 0x4d, 0x154f: 0x4e,
-	0x1550: 0x4f, 0x1551: 0x50, 0x1552: 0x51, 0x1553: 0x52, 0x1554: 0x53, 0x1555: 0x54, 0x1556: 0x55, 0x1557: 0x56,
-	0x1558: 0x57, 0x1559: 0x58, 0x155a: 0x59, 0x155b: 0x5a, 0x155c: 0x5b, 0x155d: 0x5c, 0x155e: 0x5d, 0x155f: 0x5e,
-	0x1560: 0x5f, 0x1561: 0x60, 0x1562: 0x61, 0x1563: 0x62, 0x1564: 0x63, 0x1565: 0x64, 0x1566: 0x65, 0x1567: 0x66,
-	0x1568: 0x67, 0x1569: 0x68, 0x156a: 0x69, 0x156c: 0x6a, 0x156d: 0x6b, 0x156e: 0x6c, 0x156f: 0x6d,
-	0x1570: 0x6e, 0x1571: 0x6f, 0x1573: 0x70, 0x1574: 0x71, 0x1575: 0x72, 0x1576: 0x73, 0x1577: 0x74,
-	0x1578: 0x267, 0x1579: 0x1db, 0x157a: 0x77, 0x157b: 0x78, 0x157c: 0x79, 0x157d: 0x7a, 0x157e: 0x7b, 0x157f: 0x7c,
-	// Block 0x56, offset 0x1580
-	0x1582: 0x01, 0x1583: 0x02, 0x1584: 0x264, 0x1585: 0x265, 0x1586: 0x05, 0x1587: 0x266,
-	0x1588: 0x07, 0x1589: 0x08, 0x158a: 0x09, 0x158b: 0x0a, 0x158c: 0x0b, 0x158d: 0x0c, 0x158e: 0x0d, 0x158f: 0x0e,
-	0x1590: 0x0f, 0x1591: 0x10, 0x1592: 0x11, 0x1593: 0x12, 0x1594: 0x13, 0x1595: 0x14, 0x1596: 0x15, 0x1597: 0x16,
-	0x1598: 0x17, 0x1599: 0x18, 0x159a: 0x19, 0x159b: 0x1a, 0x159c: 0x1b, 0x159d: 0x1c, 0x159e: 0x1d, 0x159f: 0x1e,
-	0x15a0: 0x01, 0x15a1: 0x53, 0x15a2: 0x03, 0x15a3: 0x04, 0x15a4: 0x05,
-	0x15aa: 0x06, 0x15ad: 0x07, 0x15af: 0x08,
-	0x15b0: 0x13, 0x15b3: 0x15,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x3f, 0x15c1: 0x40, 0x15c2: 0x41, 0x15c3: 0x42, 0x15c4: 0x43, 0x15c5: 0x44, 0x15c6: 0x45, 0x15c7: 0x46,
-	0x15c8: 0x47, 0x15c9: 0x48, 0x15ca: 0x49, 0x15cb: 0x4a, 0x15cc: 0x4b, 0x15cd: 0x4c, 0x15ce: 0x4d, 0x15cf: 0x4e,
-	0x15d0: 0x4f, 0x15d1: 0x50, 0x15d2: 0x51, 0x15d3: 0x52, 0x15d4: 0x53, 0x15d5: 0x54, 0x15d6: 0x55, 0x15d7: 0x56,
-	0x15d8: 0x57, 0x15d9: 0x58, 0x15da: 0x59, 0x15db: 0x5a, 0x15dc: 0x5b, 0x15dd: 0x5c, 0x15de: 0x5d, 0x15df: 0x5e,
-	0x15e0: 0x5f, 0x15e1: 0x60, 0x15e2: 0x61, 0x15e3: 0x62, 0x15e4: 0x63, 0x15e5: 0x64, 0x15e6: 0x65, 0x15e7: 0x66,
-	0x15e8: 0x67, 0x15e9: 0x68, 0x15ea: 0x69, 0x15ec: 0x6a, 0x15ed: 0x6b, 0x15ee: 0x6c, 0x15ef: 0x6d,
-	0x15f0: 0x6e, 0x15f1: 0x6f, 0x15f3: 0x70, 0x15f4: 0x71, 0x15f5: 0x72, 0x15f6: 0x73, 0x15f7: 0x74,
-	0x15f8: 0x75, 0x15f9: 0x1c8, 0x15fa: 0x77, 0x15fb: 0x78, 0x15fc: 0x79, 0x15fd: 0x7a, 0x15fe: 0x7b, 0x15ff: 0x7c,
-	// Block 0x58, offset 0x1600
-	0x1602: 0x01, 0x1603: 0x26a, 0x1604: 0x03, 0x1605: 0x26b, 0x1606: 0x05, 0x1607: 0x26c,
-	0x1608: 0x26d, 0x1609: 0x08, 0x160a: 0x09, 0x160b: 0x0a, 0x160c: 0x0b, 0x160d: 0x0c, 0x160e: 0x0d, 0x160f: 0x0e,
-	0x1610: 0x0f, 0x1611: 0x10, 0x1612: 0x11, 0x1613: 0x12, 0x1614: 0x13, 0x1615: 0x14, 0x1616: 0x15, 0x1617: 0x16,
-	0x1618: 0x17, 0x1619: 0x18, 0x161a: 0x19, 0x161b: 0x1a, 0x161c: 0x1b, 0x161d: 0x1c, 0x161e: 0x1d, 0x161f: 0x1e,
-	0x1620: 0x01, 0x1621: 0x55, 0x1622: 0x03, 0x1623: 0x04, 0x1624: 0x05,
-	0x162a: 0x06, 0x162d: 0x07, 0x162f: 0x08,
-	0x1630: 0x13, 0x1633: 0x15,
-	// Block 0x59, offset 0x1640
-	0x1642: 0x01, 0x1643: 0x02, 0x1644: 0x03, 0x1645: 0x04, 0x1646: 0x05, 0x1647: 0x06,
-	0x1648: 0x07, 0x1649: 0x08, 0x164a: 0x09, 0x164b: 0x0a, 0x164c: 0x0b, 0x164d: 0x0c, 0x164e: 0x0d, 0x164f: 0x0e,
-	0x1650: 0x0f, 0x1651: 0x10, 0x1652: 0x11, 0x1653: 0x12, 0x1654: 0x26e, 0x1655: 0x14, 0x1656: 0x26f, 0x1657: 0x16,
-	0x1658: 0x17, 0x1659: 0x18, 0x165a: 0x19, 0x165b: 0x1a, 0x165c: 0x1b, 0x165d: 0x1c, 0x165e: 0x1d, 0x165f: 0x1e,
-	0x1660: 0x01, 0x1661: 0x02, 0x1662: 0x03, 0x1663: 0x04, 0x1664: 0x05,
-	0x166a: 0x06, 0x166d: 0x07, 0x166f: 0x08,
-	0x1670: 0x13, 0x1673: 0x15,
-	// Block 0x5a, offset 0x1680
-	0x1680: 0x3f, 0x1681: 0x40, 0x1682: 0x41, 0x1683: 0x42, 0x1684: 0x43, 0x1685: 0x44, 0x1686: 0x45, 0x1687: 0x46,
-	0x1688: 0x47, 0x1689: 0x48, 0x168a: 0x49, 0x168b: 0x4a, 0x168c: 0x4b, 0x168d: 0x4c, 0x168e: 0x4d, 0x168f: 0x4e,
-	0x1690: 0x4f, 0x1691: 0x50, 0x1692: 0x51, 0x1693: 0x52, 0x1694: 0x53, 0x1695: 0x54, 0x1696: 0x55, 0x1697: 0x56,
-	0x1698: 0x57, 0x1699: 0x58, 0x169a: 0x59, 0x169b: 0x5a, 0x169c: 0x5b, 0x169d: 0x5c, 0x169e: 0x5d, 0x169f: 0x5e,
-	0x16a0: 0x5f, 0x16a1: 0x60, 0x16a2: 0x61, 0x16a3: 0x62, 0x16a4: 0x63, 0x16a5: 0x64, 0x16a6: 0x65, 0x16a7: 0x66,
-	0x16a8: 0x67, 0x16a9: 0x68, 0x16aa: 0x69, 0x16ac: 0x6a, 0x16ad: 0x6b, 0x16ae: 0x6c, 0x16af: 0x6d,
-	0x16b0: 0x6e, 0x16b1: 0x6f, 0x16b3: 0x70, 0x16b4: 0x71, 0x16b5: 0x72, 0x16b6: 0x73, 0x16b7: 0x74,
-	0x16b8: 0x75, 0x16b9: 0x272, 0x16ba: 0x77, 0x16bb: 0x273, 0x16bc: 0x79, 0x16bd: 0x7a, 0x16be: 0x7b, 0x16bf: 0x7c,
-	// Block 0x5b, offset 0x16c0
-	0x16c2: 0x01, 0x16c3: 0x02, 0x16c4: 0x03, 0x16c5: 0x04, 0x16c6: 0x05, 0x16c7: 0x06,
-	0x16c8: 0x07, 0x16c9: 0x08, 0x16ca: 0x09, 0x16cb: 0x0a, 0x16cc: 0x0b, 0x16cd: 0x0c, 0x16ce: 0x0d, 0x16cf: 0x0e,
-	0x16d0: 0x0f, 0x16d1: 0x10, 0x16d2: 0x11, 0x16d3: 0x12, 0x16d4: 0x13, 0x16d5: 0x14, 0x16d6: 0x15, 0x16d7: 0x16,
-	0x16d8: 0x17, 0x16d9: 0x18, 0x16da: 0x19, 0x16db: 0x1a, 0x16dc: 0x1b, 0x16dd: 0x1c, 0x16de: 0x1d, 0x16df: 0x1e,
-	0x16e0: 0x01, 0x16e1: 0x58, 0x16e2: 0x03, 0x16e3: 0x04, 0x16e4: 0x05,
-	0x16ea: 0x06, 0x16ed: 0x07, 0x16ef: 0x08,
-	0x16f0: 0x13, 0x16f3: 0x15,
-	// Block 0x5c, offset 0x1700
-	0x1700: 0x3f, 0x1701: 0x40, 0x1702: 0x41, 0x1703: 0x42, 0x1704: 0x43, 0x1705: 0x44, 0x1706: 0x45, 0x1707: 0x46,
-	0x1708: 0x47, 0x1709: 0x48, 0x170a: 0x49, 0x170b: 0x4a, 0x170c: 0x4b, 0x170d: 0x4c, 0x170e: 0x4d, 0x170f: 0x4e,
-	0x1710: 0x4f, 0x1711: 0x50, 0x1712: 0x51, 0x1713: 0x52, 0x1714: 0x53, 0x1715: 0x54, 0x1716: 0x55, 0x1717: 0x56,
-	0x1718: 0x57, 0x1719: 0x58, 0x171a: 0x59, 0x171b: 0x5a, 0x171c: 0x5b, 0x171d: 0x5c, 0x171e: 0x5d, 0x171f: 0x5e,
-	0x1720: 0x5f, 0x1721: 0x60, 0x1722: 0x61, 0x1723: 0x62, 0x1724: 0x63, 0x1725: 0x64, 0x1726: 0x65, 0x1727: 0x66,
-	0x1728: 0x67, 0x1729: 0x68, 0x172a: 0x69, 0x172c: 0x6a, 0x172d: 0x6b, 0x172e: 0x6c, 0x172f: 0x6d,
-	0x1730: 0x6e, 0x1731: 0x6f, 0x1733: 0x70, 0x1734: 0x71, 0x1735: 0x72, 0x1736: 0x1e5, 0x1737: 0x74,
-	0x1738: 0x27a, 0x1739: 0x27b, 0x173a: 0x27c, 0x173b: 0x27d, 0x173c: 0x79, 0x173d: 0x7a, 0x173e: 0x7b, 0x173f: 0x7c,
-	// Block 0x5d, offset 0x1740
-	0x1742: 0x01, 0x1743: 0x276, 0x1744: 0x277, 0x1745: 0x04, 0x1746: 0x05, 0x1747: 0x278,
-	0x1748: 0x279, 0x1749: 0x08, 0x174a: 0x09, 0x174b: 0x0a, 0x174c: 0x0b, 0x174d: 0x0c, 0x174e: 0x0d, 0x174f: 0x0e,
-	0x1750: 0x0f, 0x1751: 0x10, 0x1752: 0x11, 0x1753: 0x12, 0x1754: 0x13, 0x1755: 0x14, 0x1756: 0x15, 0x1757: 0x16,
-	0x1758: 0x17, 0x1759: 0x18, 0x175a: 0x19, 0x175b: 0x1a, 0x175c: 0x1b, 0x175d: 0x1c, 0x175e: 0x1d, 0x175f: 0x1e,
-	0x1760: 0x01, 0x1761: 0x5a, 0x1762: 0x29, 0x1763: 0x04, 0x1764: 0x05,
-	0x176a: 0x06, 0x176d: 0x07, 0x176f: 0x08,
-	0x1770: 0x13, 0x1773: 0x15,
-	// Block 0x5e, offset 0x1780
-	0x1780: 0x27e, 0x1781: 0x27f, 0x1782: 0x280, 0x1783: 0x281, 0x1784: 0x282, 0x1785: 0x283, 0x1786: 0xc0, 0x1787: 0x284,
-	0x1788: 0x285, 0x1789: 0x286, 0x178a: 0xc4, 0x178b: 0x287, 0x178c: 0xc6, 0x178d: 0x288, 0x178e: 0xc8, 0x178f: 0x289,
-	// Block 0x5f, offset 0x17c0
-	0x17f7: 0xca,
-	0x17f8: 0x28a, 0x17f9: 0x28b, 0x17fa: 0x28c, 0x17fb: 0x28d, 0x17fc: 0x28e, 0x17fd: 0x28f, 0x17fe: 0x290, 0x17ff: 0x291,
-	// Block 0x60, offset 0x1800
-	0x1800: 0x292, 0x1801: 0x293, 0x1802: 0x294, 0x1803: 0x295, 0x1804: 0x296, 0x1805: 0x297, 0x1806: 0x298, 0x1807: 0x299,
-	0x1808: 0x29a, 0x1809: 0x29b, 0x180a: 0x29c, 0x180b: 0x29d, 0x180c: 0x29e, 0x180d: 0x29f, 0x180e: 0x2a0, 0x180f: 0x2a1,
-	0x1810: 0x2a2, 0x1811: 0x2a3, 0x1812: 0x2a4, 0x1813: 0x2a5, 0x1814: 0x2a6, 0x1815: 0x2a7, 0x1816: 0x2a8, 0x1817: 0x2a9,
-	0x1818: 0x2aa, 0x1819: 0x2ab, 0x181a: 0x2ac, 0x181b: 0x2ad, 0x181c: 0x2ae, 0x181d: 0x2af, 0x181e: 0x2b0, 0x181f: 0x2b1,
-	0x1820: 0x2b2, 0x1821: 0x2b3, 0x1822: 0x2b4, 0x1823: 0x2b5, 0x1824: 0x2b6, 0x1825: 0x2b7, 0x1826: 0x2b8, 0x1827: 0x2b9,
-	0x1828: 0x2ba, 0x1829: 0x2bb, 0x182a: 0x2bc, 0x182b: 0x2bd, 0x182c: 0x2be, 0x182d: 0x2bf, 0x182e: 0x2c0, 0x182f: 0x2c1,
-	0x1830: 0x2c2, 0x1831: 0x2c3, 0x1832: 0x2c4, 0x1833: 0x2c5, 0x1834: 0x2c6, 0x1835: 0x2c7, 0x1836: 0x2c8, 0x1837: 0x2c9,
-	0x1838: 0x2ca, 0x1839: 0x2cb, 0x183a: 0x2cc, 0x183b: 0x2cd, 0x183c: 0x2ce, 0x183d: 0x2cf, 0x183e: 0x2d0, 0x183f: 0x2d1,
-	// Block 0x61, offset 0x1840
-	0x1840: 0x2d2, 0x1841: 0x2d3, 0x1842: 0x2d4, 0x1843: 0x2d5, 0x1844: 0x2d6, 0x1845: 0x2d7, 0x1846: 0x2d8, 0x1847: 0x2d9,
-	0x1848: 0x2da, 0x1849: 0x2db, 0x184a: 0x2dc, 0x184b: 0x2dd, 0x184c: 0x2de, 0x184d: 0x2df, 0x184e: 0x2e0, 0x184f: 0x2e1,
-	0x1850: 0x2e2, 0x1851: 0x2e3, 0x1852: 0x2e4, 0x1853: 0x2e5, 0x1854: 0x2e6, 0x1855: 0x2e7, 0x1856: 0x2e8, 0x1857: 0x2e9,
-	0x1858: 0x2ea, 0x1859: 0x2eb, 0x185a: 0x2ec, 0x185b: 0x2ed, 0x185c: 0x2ee, 0x185d: 0x2ef, 0x185e: 0x2f0, 0x185f: 0x2f1,
-	0x1860: 0x2f2, 0x1861: 0x2f3, 0x1862: 0x2f4, 0x1863: 0x2f5, 0x1864: 0x2f6, 0x1865: 0x2f7, 0x1866: 0x2f8, 0x1867: 0x2f9,
-	0x1868: 0x2fa, 0x1869: 0x2fb, 0x186a: 0x2fc, 0x186b: 0x2fd, 0x186c: 0x2fe, 0x186d: 0x2ff, 0x186e: 0x300, 0x186f: 0x301,
-	0x1870: 0x302, 0x1871: 0x303, 0x1872: 0x304, 0x1873: 0x305, 0x1874: 0x306, 0x1875: 0x307, 0x1876: 0x308, 0x1877: 0x309,
-	0x1878: 0x30a, 0x1879: 0x30b, 0x187a: 0x30c, 0x187b: 0x30d, 0x187c: 0x30e, 0x187d: 0x30f, 0x187e: 0x310, 0x187f: 0x311,
-	// Block 0x62, offset 0x1880
-	0x1880: 0x312, 0x1881: 0x313, 0x1882: 0x314, 0x1883: 0x315, 0x1884: 0x316, 0x1885: 0x317, 0x1886: 0x318, 0x1887: 0x319,
-	0x1888: 0x31a, 0x1889: 0x31b, 0x188a: 0x31c, 0x188b: 0x31d, 0x188c: 0x31e, 0x188d: 0x31f, 0x188e: 0x320, 0x188f: 0x321,
-	0x1890: 0x322, 0x1891: 0x323, 0x1892: 0x324, 0x1893: 0x325, 0x1894: 0x326, 0x1895: 0x327, 0x1896: 0x328, 0x1897: 0x329,
-	0x1898: 0x32a, 0x1899: 0x32b, 0x189a: 0x32c, 0x189b: 0x32d, 0x189c: 0x32e, 0x189d: 0x32f, 0x189e: 0x330, 0x189f: 0x331,
-	0x18a0: 0x332, 0x18a1: 0x333, 0x18a2: 0x334, 0x18a3: 0x335, 0x18a4: 0x336, 0x18a5: 0x337, 0x18a6: 0x338, 0x18a7: 0x339,
-	0x18a8: 0x33a, 0x18a9: 0x33b, 0x18aa: 0x33c, 0x18ab: 0x33d, 0x18ac: 0x33e, 0x18ad: 0x33f, 0x18ae: 0x340, 0x18af: 0x341,
-	0x18b0: 0x342, 0x18b1: 0x343, 0x18b2: 0x344, 0x18b3: 0x345, 0x18b4: 0x346, 0x18b5: 0x347, 0x18b6: 0x348, 0x18b7: 0x349,
-	0x18b8: 0x34a, 0x18b9: 0x34b, 0x18ba: 0x34c, 0x18bc: 0x34d, 0x18bd: 0x34e, 0x18be: 0x34f, 0x18bf: 0x350,
-	// Block 0x63, offset 0x18c0
-	0x18c0: 0x351, 0x18c1: 0x352, 0x18c2: 0x353, 0x18c3: 0x354, 0x18c4: 0x355, 0x18c5: 0x356, 0x18c6: 0x357, 0x18c7: 0x358,
-	0x18c8: 0x359, 0x18c9: 0x35a, 0x18ca: 0x35b, 0x18cb: 0x35c, 0x18cc: 0x35d, 0x18cd: 0x35e, 0x18ce: 0x35f, 0x18cf: 0x360,
-	0x18d0: 0x361, 0x18d1: 0x362, 0x18d2: 0x363, 0x18d3: 0x364, 0x18d4: 0x365, 0x18d5: 0x366, 0x18d6: 0x367, 0x18d7: 0x368,
-	0x18d8: 0x369, 0x18d9: 0x36a, 0x18da: 0x36b, 0x18db: 0x36c, 0x18dc: 0x36d, 0x18dd: 0x36e, 0x18de: 0x36f, 0x18df: 0x370,
-	0x18e0: 0x371, 0x18e1: 0x372, 0x18e2: 0x373, 0x18e3: 0x374, 0x18e4: 0x375, 0x18e5: 0x376, 0x18e6: 0x377, 0x18e7: 0x378,
-	0x18e8: 0x379, 0x18e9: 0x37a, 0x18ea: 0x37b, 0x18eb: 0x37c, 0x18ec: 0x37d, 0x18ed: 0x37e, 0x18ee: 0x37f,
-	0x18f0: 0x380, 0x18f1: 0x381, 0x18f2: 0x382, 0x18f3: 0x383, 0x18f4: 0x384, 0x18f5: 0x385, 0x18f6: 0x386, 0x18f7: 0x387,
-	0x18f8: 0x388, 0x18f9: 0x389, 0x18fa: 0x38a, 0x18fb: 0x38b, 0x18fc: 0x38c, 0x18fd: 0x38d, 0x18fe: 0x38e, 0x18ff: 0x38f,
-	// Block 0x64, offset 0x1900
-	0x1900: 0x390, 0x1901: 0x391, 0x1902: 0x392, 0x1903: 0x393, 0x1904: 0x394, 0x1905: 0x395, 0x1906: 0x396, 0x1907: 0x397,
-	0x1908: 0x398, 0x1909: 0x399, 0x190a: 0x39a, 0x190b: 0x39b, 0x190c: 0x39c, 0x190d: 0x39d, 0x190e: 0x39e, 0x190f: 0x39f,
-	0x1910: 0x3a0, 0x1911: 0x3a1, 0x1912: 0x3a2, 0x1915: 0x3a3, 0x1916: 0x3a4, 0x1917: 0x3a5,
-	0x1918: 0x3a6, 0x1919: 0x3a7, 0x191a: 0x3a8, 0x191b: 0x3a9, 0x191c: 0x3aa, 0x191d: 0x3ab, 0x191e: 0x3ac, 0x191f: 0x3ad,
-	0x1920: 0x3ae, 0x1921: 0x3af, 0x1922: 0x3b0, 0x1923: 0x3b1, 0x1924: 0x3b2, 0x1925: 0x3b3, 0x1926: 0x3b4, 0x1927: 0x3b5,
-	0x1928: 0x3b6, 0x1929: 0x3b7, 0x192a: 0x3b8, 0x192b: 0x3b9, 0x192c: 0x3ba, 0x192d: 0x3bb, 0x192e: 0x3bc, 0x192f: 0x3bd,
-	0x1930: 0x3be, 0x1931: 0x3bf, 0x1933: 0x3c0, 0x1934: 0x3c1, 0x1935: 0x3c2, 0x1936: 0x3c3, 0x1937: 0x3c4,
-	0x1938: 0x3c5, 0x1939: 0x3c6, 0x193a: 0x3c7, 0x193b: 0x3c8, 0x193c: 0x3c9, 0x193d: 0x3ca, 0x193e: 0x3cb,
-	// Block 0x65, offset 0x1940
-	0x1964: 0x3cc, 0x1965: 0x3cd, 0x1966: 0x3ce, 0x1967: 0x3cf,
-	0x1968: 0x3d0, 0x1969: 0x3d1, 0x196a: 0x3d2, 0x196b: 0x3d3, 0x196c: 0x103, 0x196d: 0x104, 0x196e: 0x105, 0x196f: 0x106,
-	0x1970: 0x107, 0x1971: 0x108, 0x1972: 0x109, 0x1973: 0x10a, 0x1974: 0x10b, 0x1975: 0x10c, 0x1976: 0x10d, 0x1977: 0x10e,
-	0x1978: 0x10f, 0x1979: 0x110, 0x197a: 0x111, 0x197b: 0x112, 0x197c: 0x3d4, 0x197d: 0x3d5, 0x197e: 0x3d6, 0x197f: 0x3d7,
-	// Block 0x66, offset 0x1980
-	0x1980: 0x18b, 0x1981: 0x18c, 0x1982: 0x18d, 0x1983: 0x18e, 0x1984: 0x18f, 0x1985: 0x190, 0x1986: 0x191, 0x1987: 0x192,
-	0x1988: 0x193, 0x1989: 0x3d8, 0x198c: 0x195, 0x198d: 0x196, 0x198e: 0x197, 0x198f: 0x198,
-	0x1990: 0x199, 0x1991: 0x19a, 0x1992: 0x19b, 0x1993: 0x19c, 0x1994: 0x19d, 0x1995: 0x19e, 0x1997: 0x19f,
-	0x1998: 0x1a0, 0x1999: 0x1a1, 0x199a: 0x1a2, 0x199b: 0x1a3, 0x199c: 0x1a4, 0x199d: 0x1a5,
-	// Block 0x67, offset 0x19c0
-	0x19e0: 0x3d9, 0x19e1: 0x3da, 0x19e2: 0x3db, 0x19e3: 0x3dc, 0x19e4: 0x3dd, 0x19e5: 0x3de, 0x19e6: 0x3df, 0x19e7: 0x3e0,
-	0x19e8: 0x3e1,
-	// Block 0x68, offset 0x1a00
-	0x1a10: 0x09, 0x1a11: 0x0a, 0x1a12: 0x0b, 0x1a13: 0x0c, 0x1a16: 0x0d,
-	0x1a1b: 0x0e, 0x1a1d: 0x0f, 0x1a1e: 0x10, 0x1a1f: 0x64,
-	0x1a2f: 0x65,
-	// Block 0x69, offset 0x1a40
-	0x1a42: 0x01, 0x1a43: 0x02, 0x1a44: 0x03, 0x1a45: 0x04, 0x1a46: 0x05, 0x1a47: 0x06,
-	0x1a48: 0x07, 0x1a49: 0x08, 0x1a4a: 0x09, 0x1a4b: 0x0a, 0x1a4c: 0x0b, 0x1a4d: 0x0c, 0x1a4e: 0x0d, 0x1a4f: 0x0e,
-	0x1a50: 0x0f, 0x1a51: 0x10, 0x1a52: 0x11, 0x1a53: 0x12, 0x1a54: 0x13, 0x1a55: 0x14, 0x1a56: 0x15, 0x1a57: 0x16,
-	0x1a58: 0x17, 0x1a59: 0x18, 0x1a5a: 0x19, 0x1a5b: 0x1a, 0x1a5c: 0x1b, 0x1a5d: 0x1c, 0x1a5e: 0x1d, 0x1a5f: 0x1e,
-	0x1a60: 0x01, 0x1a61: 0x02, 0x1a62: 0x03, 0x1a63: 0x5c, 0x1a64: 0x5d, 0x1a65: 0x5e, 0x1a66: 0x5f, 0x1a67: 0x60,
-	0x1a68: 0x61, 0x1a69: 0x62, 0x1a6a: 0x06, 0x1a6d: 0x07, 0x1a6f: 0x63,
-	0x1a70: 0x66, 0x1a73: 0x15,
-	// Block 0x6a, offset 0x1a80
-	0x1a82: 0x01, 0x1a83: 0x02, 0x1a84: 0x03, 0x1a85: 0x04, 0x1a86: 0x05, 0x1a87: 0x06,
-	0x1a88: 0x07, 0x1a89: 0x08, 0x1a8a: 0x09, 0x1a8b: 0x0a, 0x1a8c: 0x0b, 0x1a8d: 0x0c, 0x1a8e: 0x0d, 0x1a8f: 0x0e,
-	0x1a90: 0x3e2, 0x1a91: 0x3e3, 0x1a92: 0x3e4, 0x1a93: 0x12, 0x1a94: 0x13, 0x1a95: 0x14, 0x1a96: 0x15, 0x1a97: 0x16,
-	0x1a98: 0x17, 0x1a99: 0x18, 0x1a9a: 0x19, 0x1a9b: 0x1a, 0x1a9c: 0x1b, 0x1a9d: 0x1c, 0x1a9e: 0x1d, 0x1a9f: 0x1e,
-	0x1aa0: 0x01, 0x1aa1: 0x02, 0x1aa2: 0x03, 0x1aa3: 0x04, 0x1aa4: 0x05,
-	0x1aaa: 0x06, 0x1aad: 0x07, 0x1aaf: 0x08,
-	0x1ab0: 0x13, 0x1ab3: 0x15,
-	// Block 0x6b, offset 0x1ac0
-	0x1ac2: 0x01, 0x1ac3: 0x1e0, 0x1ac4: 0x3e7, 0x1ac5: 0x1e2, 0x1ac6: 0x05, 0x1ac7: 0x1e3,
-	0x1ac8: 0x1e4, 0x1ac9: 0x08, 0x1aca: 0x09, 0x1acb: 0x0a, 0x1acc: 0x0b, 0x1acd: 0x0c, 0x1ace: 0x0d, 0x1acf: 0x0e,
-	0x1ad0: 0x0f, 0x1ad1: 0x10, 0x1ad2: 0x11, 0x1ad3: 0x12, 0x1ad4: 0x13, 0x1ad5: 0x14, 0x1ad6: 0x15, 0x1ad7: 0x16,
-	0x1ad8: 0x17, 0x1ad9: 0x18, 0x1ada: 0x19, 0x1adb: 0x1a, 0x1adc: 0x1b, 0x1add: 0x1c, 0x1ade: 0x1d, 0x1adf: 0x1e,
-	0x1ae0: 0x01, 0x1ae1: 0x28, 0x1ae2: 0x29, 0x1ae3: 0x04, 0x1ae4: 0x05,
-	0x1aea: 0x06, 0x1aed: 0x07, 0x1aef: 0x08,
-	0x1af0: 0x13, 0x1af3: 0x15,
-	// Block 0x6c, offset 0x1b00
-	0x1b00: 0x3f, 0x1b01: 0x40, 0x1b02: 0x41, 0x1b03: 0x42, 0x1b04: 0x43, 0x1b05: 0x44, 0x1b06: 0x45, 0x1b07: 0x46,
-	0x1b08: 0x47, 0x1b09: 0x48, 0x1b0a: 0x49, 0x1b0b: 0x4a, 0x1b0c: 0x4b, 0x1b0d: 0x4c, 0x1b0e: 0x4d, 0x1b0f: 0x4e,
-	0x1b10: 0x4f, 0x1b11: 0x50, 0x1b12: 0x51, 0x1b13: 0x52, 0x1b14: 0x53, 0x1b15: 0x54, 0x1b16: 0x55, 0x1b17: 0x56,
-	0x1b18: 0x57, 0x1b19: 0x58, 0x1b1a: 0x59, 0x1b1b: 0x5a, 0x1b1c: 0x5b, 0x1b1d: 0x5c, 0x1b1e: 0x3e8, 0x1b1f: 0x3e9,
-	0x1b20: 0x5f, 0x1b21: 0x60, 0x1b22: 0x61, 0x1b23: 0x62, 0x1b24: 0x63, 0x1b25: 0x64, 0x1b26: 0x65, 0x1b27: 0x66,
-	0x1b28: 0x67, 0x1b29: 0x68, 0x1b2a: 0x69, 0x1b2c: 0x6a, 0x1b2d: 0x6b, 0x1b2e: 0x6c, 0x1b2f: 0x6d,
-	0x1b30: 0x6e, 0x1b31: 0x6f, 0x1b33: 0x70, 0x1b34: 0x71, 0x1b35: 0x72, 0x1b36: 0x73, 0x1b37: 0x74,
-	0x1b38: 0x75, 0x1b39: 0x76, 0x1b3a: 0x77, 0x1b3b: 0x78, 0x1b3c: 0x79, 0x1b3d: 0x7a, 0x1b3e: 0x7b, 0x1b3f: 0x7c,
-	// Block 0x6d, offset 0x1b40
-	0x1b42: 0x01, 0x1b43: 0x02, 0x1b44: 0x03, 0x1b45: 0x04, 0x1b46: 0x05, 0x1b47: 0x06,
-	0x1b48: 0x07, 0x1b49: 0x08, 0x1b4a: 0x09, 0x1b4b: 0x0a, 0x1b4c: 0x0b, 0x1b4d: 0x0c, 0x1b4e: 0x0d, 0x1b4f: 0x0e,
-	0x1b50: 0x0f, 0x1b51: 0x10, 0x1b52: 0x11, 0x1b53: 0x12, 0x1b54: 0x13, 0x1b55: 0x14, 0x1b56: 0x15, 0x1b57: 0x16,
-	0x1b58: 0x17, 0x1b59: 0x18, 0x1b5a: 0x19, 0x1b5b: 0x1a, 0x1b5c: 0x1b, 0x1b5d: 0x1c, 0x1b5e: 0x1d, 0x1b5f: 0x1e,
-	0x1b60: 0x01, 0x1b61: 0x6a, 0x1b62: 0x03, 0x1b63: 0x04, 0x1b64: 0x05,
-	0x1b6a: 0x06, 0x1b6d: 0x07, 0x1b6f: 0x08,
-	0x1b70: 0x13, 0x1b73: 0x15,
-	// Block 0x6e, offset 0x1b80
-	0x1ba0: 0x1f, 0x1ba1: 0x20, 0x1ba2: 0x21, 0x1ba3: 0x22, 0x1ba4: 0x23, 0x1ba5: 0x24, 0x1ba6: 0x25, 0x1ba7: 0x26,
-	0x1ba8: 0x27, 0x1ba9: 0x28, 0x1baa: 0x29, 0x1bab: 0x2a, 0x1bac: 0x2b, 0x1bad: 0x2c, 0x1bae: 0x2d, 0x1baf: 0x2e,
-	0x1bb0: 0x2f, 0x1bb1: 0x30, 0x1bb2: 0x3ea, 0x1bb3: 0x3eb, 0x1bb4: 0x33, 0x1bb5: 0x34, 0x1bb6: 0x35, 0x1bb7: 0x36,
-	0x1bb8: 0x37, 0x1bb9: 0x38, 0x1bba: 0x39, 0x1bbb: 0x3a, 0x1bbc: 0x3b, 0x1bbd: 0x3c, 0x1bbe: 0x3d, 0x1bbf: 0x3e,
-	// Block 0x6f, offset 0x1bc0
-	0x1bc2: 0x01, 0x1bc3: 0x02, 0x1bc4: 0x03, 0x1bc5: 0x04, 0x1bc6: 0x05, 0x1bc7: 0x06,
-	0x1bc8: 0x07, 0x1bc9: 0x08, 0x1bca: 0x09, 0x1bcb: 0x0a, 0x1bcc: 0x0b, 0x1bcd: 0x0c, 0x1bce: 0x0d, 0x1bcf: 0x0e,
-	0x1bd0: 0x0f, 0x1bd1: 0x10, 0x1bd2: 0x11, 0x1bd3: 0x12, 0x1bd4: 0x13, 0x1bd5: 0x14, 0x1bd6: 0x15, 0x1bd7: 0x16,
-	0x1bd8: 0x17, 0x1bd9: 0x18, 0x1bda: 0x19, 0x1bdb: 0x1a, 0x1bdc: 0x1b, 0x1bdd: 0x1c, 0x1bde: 0x1d, 0x1bdf: 0x1e,
-	0x1be0: 0x6c, 0x1be1: 0x02, 0x1be2: 0x03, 0x1be3: 0x04, 0x1be4: 0x05,
-	0x1bea: 0x06, 0x1bed: 0x07, 0x1bef: 0x08,
-	0x1bf0: 0x13, 0x1bf3: 0x15,
-	// Block 0x70, offset 0x1c00
-	0x1c00: 0xba, 0x1c01: 0xbb, 0x1c02: 0xbc, 0x1c03: 0xbd, 0x1c04: 0xbe, 0x1c05: 0xbf, 0x1c06: 0xc0, 0x1c07: 0xc1,
-	0x1c08: 0x3ec, 0x1c09: 0x286, 0x1c0a: 0xc4, 0x1c0b: 0x287, 0x1c0c: 0xc6, 0x1c0d: 0x288, 0x1c0e: 0xc8, 0x1c0f: 0x289,
-	// Block 0x71, offset 0x1c40
-	0x1c77: 0xca,
-	0x1c78: 0x3ed, 0x1c79: 0x3ee, 0x1c7a: 0x3ef, 0x1c7b: 0x3f0, 0x1c7c: 0x3f1, 0x1c7d: 0x3f2, 0x1c7e: 0x3f3, 0x1c7f: 0x3f4,
-	// Block 0x72, offset 0x1c80
-	0x1c80: 0x3f5, 0x1c81: 0x3f6, 0x1c82: 0x3f7, 0x1c83: 0x3f8, 0x1c84: 0x3f9, 0x1c85: 0x3fa, 0x1c86: 0x3fb, 0x1c87: 0x3fc,
-	0x1c88: 0x3fd, 0x1c89: 0x3fe, 0x1c8a: 0x3ff, 0x1c8b: 0x400, 0x1c8c: 0x401, 0x1c8d: 0x402, 0x1c8e: 0x403, 0x1c8f: 0x404,
-	0x1c90: 0x405, 0x1c91: 0x406, 0x1c92: 0x407, 0x1c93: 0x408, 0x1c94: 0x409, 0x1c95: 0x40a, 0x1c96: 0x40b, 0x1c97: 0x40c,
-	0x1c98: 0x40d, 0x1c99: 0x40e, 0x1c9a: 0x40f, 0x1c9b: 0x410, 0x1c9c: 0x411, 0x1c9d: 0x412, 0x1c9e: 0x413, 0x1c9f: 0x414,
-	0x1ca0: 0x415, 0x1ca1: 0x416, 0x1ca2: 0x417, 0x1ca3: 0x418, 0x1ca4: 0x419, 0x1ca5: 0x41a, 0x1ca6: 0x41b, 0x1ca7: 0x41c,
-	0x1ca8: 0x41d, 0x1ca9: 0x41e, 0x1caa: 0x41f, 0x1cab: 0x420, 0x1cac: 0x421, 0x1cad: 0x422, 0x1cae: 0x423, 0x1caf: 0x424,
-	0x1cb0: 0x425, 0x1cb1: 0x426, 0x1cb2: 0x427, 0x1cb3: 0x428, 0x1cb4: 0x429, 0x1cb5: 0x42a, 0x1cb6: 0x42b, 0x1cb7: 0x42c,
-	0x1cb8: 0x42d, 0x1cb9: 0x42e, 0x1cba: 0x42f, 0x1cbb: 0x430, 0x1cbc: 0x431, 0x1cbd: 0x432, 0x1cbe: 0x433, 0x1cbf: 0x434,
-	// Block 0x73, offset 0x1cc0
-	0x1cc0: 0x435, 0x1cc1: 0x436, 0x1cc2: 0x437, 0x1cc3: 0x438, 0x1cc4: 0x439, 0x1cc5: 0x43a, 0x1cc6: 0x43b, 0x1cc7: 0x43c,
-	0x1cc8: 0x43d, 0x1cc9: 0x43e, 0x1cca: 0x43f, 0x1ccb: 0x440, 0x1ccc: 0x441, 0x1ccd: 0x442, 0x1cce: 0x443, 0x1ccf: 0x444,
-	0x1cd0: 0x445, 0x1cd1: 0x446, 0x1cd2: 0x447, 0x1cd3: 0x448, 0x1cd4: 0x449, 0x1cd5: 0x44a, 0x1cd6: 0x44b, 0x1cd7: 0x44c,
-	0x1cd8: 0x44d, 0x1cd9: 0x44e, 0x1cda: 0x44f, 0x1cdb: 0x450, 0x1cdc: 0x451, 0x1cdd: 0x452, 0x1cde: 0x453, 0x1cdf: 0x454,
-	0x1ce0: 0x455, 0x1ce1: 0x456, 0x1ce2: 0x457, 0x1ce3: 0x458, 0x1ce4: 0x459, 0x1ce5: 0x45a, 0x1ce6: 0x45b, 0x1ce7: 0x45c,
-	0x1ce8: 0x45d, 0x1ce9: 0x45e, 0x1cea: 0x45f, 0x1ceb: 0x460, 0x1cec: 0x461, 0x1ced: 0x462, 0x1cee: 0x463, 0x1cef: 0x464,
-	0x1cf0: 0x465, 0x1cf1: 0x466, 0x1cf2: 0x467, 0x1cf3: 0x468, 0x1cf4: 0x469, 0x1cf5: 0x46a, 0x1cf6: 0x46b, 0x1cf7: 0x46c,
-	0x1cf8: 0x46d, 0x1cf9: 0x46e, 0x1cfa: 0x46f, 0x1cfb: 0x470, 0x1cfc: 0x471, 0x1cfd: 0x472, 0x1cfe: 0x473, 0x1cff: 0x474,
-	// Block 0x74, offset 0x1d00
-	0x1d00: 0x475, 0x1d01: 0x476, 0x1d02: 0x477, 0x1d03: 0x478, 0x1d04: 0x479, 0x1d05: 0x47a, 0x1d06: 0x47b, 0x1d07: 0x47c,
-	0x1d08: 0x47d, 0x1d09: 0x47e, 0x1d0a: 0x47f, 0x1d0b: 0x480, 0x1d0c: 0x481, 0x1d0d: 0x482, 0x1d0e: 0x483, 0x1d0f: 0x484,
-	0x1d10: 0x485, 0x1d11: 0x486, 0x1d12: 0x487, 0x1d13: 0x488, 0x1d14: 0x489, 0x1d15: 0x48a, 0x1d16: 0x48b, 0x1d17: 0x48c,
-	0x1d18: 0x48d, 0x1d19: 0x48e, 0x1d1a: 0x48f, 0x1d1b: 0x490, 0x1d1c: 0x491, 0x1d1d: 0x492, 0x1d1e: 0x493, 0x1d1f: 0x494,
-	0x1d20: 0x495, 0x1d21: 0x496, 0x1d22: 0x497, 0x1d23: 0x498, 0x1d24: 0x499, 0x1d25: 0x49a, 0x1d26: 0x49b, 0x1d27: 0x49c,
-	0x1d28: 0x49d, 0x1d29: 0x49e, 0x1d2a: 0x49f, 0x1d2b: 0x4a0, 0x1d2c: 0x4a1, 0x1d2d: 0x4a2, 0x1d2e: 0x4a3, 0x1d2f: 0x4a4,
-	0x1d30: 0x4a5, 0x1d31: 0x4a6, 0x1d32: 0x4a7, 0x1d33: 0x4a8, 0x1d34: 0x4a9, 0x1d35: 0x4aa, 0x1d36: 0x4ab, 0x1d37: 0x4ac,
-	0x1d38: 0x4ad, 0x1d39: 0x4ae, 0x1d3a: 0x4af, 0x1d3c: 0x4b0, 0x1d3d: 0x4b1, 0x1d3e: 0x4b2, 0x1d3f: 0x4b3,
-	// Block 0x75, offset 0x1d40
-	0x1d40: 0x4b4, 0x1d41: 0x4b5, 0x1d42: 0x4b6, 0x1d43: 0x4b7, 0x1d44: 0x4b8, 0x1d45: 0x4b9, 0x1d46: 0x4ba, 0x1d47: 0x4bb,
-	0x1d48: 0x4bc, 0x1d49: 0x4bd, 0x1d4a: 0x4be, 0x1d4b: 0x4bf, 0x1d4c: 0x4c0, 0x1d4d: 0x4c1, 0x1d4e: 0x4c2, 0x1d4f: 0x4c3,
-	0x1d50: 0x4c4, 0x1d51: 0x4c5, 0x1d52: 0x4c6, 0x1d53: 0x4c7, 0x1d54: 0x4c8, 0x1d55: 0x4c9, 0x1d56: 0x4ca, 0x1d57: 0x4cb,
-	0x1d58: 0x4cc, 0x1d59: 0x4cd, 0x1d5a: 0x4ce, 0x1d5b: 0x4cf, 0x1d5c: 0x4d0, 0x1d5d: 0x4d1, 0x1d5e: 0x4d2, 0x1d5f: 0x4d3,
-	0x1d60: 0x4d4, 0x1d61: 0x4d5, 0x1d62: 0x4d6, 0x1d63: 0x4d7, 0x1d64: 0x4d8, 0x1d65: 0x4d9, 0x1d66: 0x4da, 0x1d67: 0x4db,
-	0x1d68: 0x4dc, 0x1d69: 0x4dd, 0x1d6a: 0x4de, 0x1d6b: 0x4df, 0x1d6c: 0x4e0, 0x1d6d: 0x4e1, 0x1d6e: 0x4e2,
-	0x1d70: 0x4e3, 0x1d71: 0x4e4, 0x1d72: 0x4e5, 0x1d73: 0x4e6, 0x1d74: 0x4e7, 0x1d75: 0x4e8, 0x1d76: 0x4e9, 0x1d77: 0x4ea,
-	0x1d78: 0x4eb, 0x1d79: 0x4ec, 0x1d7a: 0x4ed, 0x1d7b: 0x4ee, 0x1d7c: 0x4ef, 0x1d7d: 0x4f0, 0x1d7e: 0x4f1, 0x1d7f: 0x4f2,
-	// Block 0x76, offset 0x1d80
-	0x1d80: 0x4f3, 0x1d81: 0x4f4, 0x1d82: 0x4f5, 0x1d83: 0x4f6, 0x1d84: 0x4f7, 0x1d85: 0x4f8, 0x1d86: 0x4f9, 0x1d87: 0x4fa,
-	0x1d88: 0x4fb, 0x1d89: 0x4fc, 0x1d8a: 0x4fd, 0x1d8b: 0x4fe, 0x1d8c: 0x4ff, 0x1d8d: 0x500, 0x1d8e: 0x501, 0x1d8f: 0x502,
-	0x1d90: 0x503, 0x1d91: 0x504, 0x1d95: 0x505, 0x1d96: 0x506, 0x1d97: 0x507,
-	0x1d98: 0x508, 0x1d99: 0x509, 0x1d9a: 0x50a, 0x1d9b: 0x50b, 0x1d9c: 0x50c, 0x1d9d: 0x50d, 0x1d9e: 0x50e, 0x1d9f: 0x50f,
-	0x1da0: 0x510, 0x1da1: 0x511, 0x1da2: 0x512, 0x1da3: 0x513, 0x1da4: 0x514, 0x1da5: 0x515, 0x1da6: 0x516, 0x1da7: 0x517,
-	0x1da8: 0x518, 0x1da9: 0x519, 0x1daa: 0x51a, 0x1dab: 0x51b, 0x1dac: 0x51c, 0x1dad: 0x51d, 0x1dae: 0x51e, 0x1daf: 0x51f,
-	0x1db0: 0x520, 0x1db1: 0x521, 0x1db3: 0x522, 0x1db4: 0x523, 0x1db5: 0x524, 0x1db6: 0x525, 0x1db7: 0x526,
-	0x1db8: 0x527, 0x1db9: 0x528, 0x1dba: 0x529, 0x1dbb: 0x52a, 0x1dbc: 0x52b, 0x1dbd: 0x52c, 0x1dbe: 0x52d,
-	// Block 0x77, offset 0x1dc0
-	0x1de4: 0x52e, 0x1de5: 0x52f, 0x1de6: 0x530, 0x1de7: 0x531,
-	0x1de8: 0x532, 0x1de9: 0x533, 0x1dea: 0x534, 0x1deb: 0x535, 0x1dec: 0x103, 0x1ded: 0x104, 0x1dee: 0x105, 0x1def: 0x106,
-	0x1df0: 0x107, 0x1df1: 0x108, 0x1df2: 0x109, 0x1df3: 0x10a, 0x1df4: 0x10b, 0x1df5: 0x10c, 0x1df6: 0x10d, 0x1df7: 0x10e,
-	0x1df8: 0x10f, 0x1df9: 0x110, 0x1dfa: 0x111, 0x1dfb: 0x112, 0x1dfc: 0x113, 0x1dfd: 0x114, 0x1dfe: 0x115, 0x1dff: 0x116,
-	// Block 0x78, offset 0x1e00
-	0x1e00: 0x18b, 0x1e01: 0x18c, 0x1e02: 0x18d, 0x1e03: 0x18e, 0x1e04: 0x18f, 0x1e05: 0x190, 0x1e06: 0x191, 0x1e07: 0x192,
-	0x1e08: 0x193, 0x1e09: 0x536, 0x1e0c: 0x195, 0x1e0d: 0x196, 0x1e0e: 0x197, 0x1e0f: 0x198,
-	0x1e10: 0x199, 0x1e11: 0x19a, 0x1e12: 0x19b, 0x1e13: 0x19c, 0x1e14: 0x19d, 0x1e15: 0x19e, 0x1e17: 0x19f,
-	0x1e18: 0x1a0, 0x1e19: 0x1a1, 0x1e1a: 0x1a2, 0x1e1b: 0x1a3, 0x1e1c: 0x1a4, 0x1e1d: 0x1a5,
-	// Block 0x79, offset 0x1e40
-	0x1e60: 0x537, 0x1e61: 0x538, 0x1e62: 0x539, 0x1e63: 0x53a, 0x1e64: 0x53b, 0x1e65: 0x53c, 0x1e66: 0x53d, 0x1e67: 0x53e,
-	0x1e68: 0x53f,
-	// Block 0x7a, offset 0x1e80
-	0x1e90: 0x09, 0x1e91: 0x0a, 0x1e92: 0x0b, 0x1e93: 0x0c, 0x1e96: 0x0d,
-	0x1e9b: 0x0e, 0x1e9d: 0x0f, 0x1e9e: 0x10, 0x1e9f: 0x76,
-	0x1eaf: 0x77,
-	// Block 0x7b, offset 0x1ec0
-	0x1ec2: 0x01, 0x1ec3: 0x02, 0x1ec4: 0x03, 0x1ec5: 0x04, 0x1ec6: 0x05, 0x1ec7: 0x06,
-	0x1ec8: 0x07, 0x1ec9: 0x08, 0x1eca: 0x09, 0x1ecb: 0x0a, 0x1ecc: 0x0b, 0x1ecd: 0x0c, 0x1ece: 0x0d, 0x1ecf: 0x0e,
-	0x1ed0: 0x0f, 0x1ed1: 0x10, 0x1ed2: 0x11, 0x1ed3: 0x12, 0x1ed4: 0x13, 0x1ed5: 0x14, 0x1ed6: 0x15, 0x1ed7: 0x16,
-	0x1ed8: 0x17, 0x1ed9: 0x18, 0x1eda: 0x19, 0x1edb: 0x1a, 0x1edc: 0x1b, 0x1edd: 0x1c, 0x1ede: 0x1d, 0x1edf: 0x1e,
-	0x1ee0: 0x01, 0x1ee1: 0x02, 0x1ee2: 0x03, 0x1ee3: 0x6e, 0x1ee4: 0x6f, 0x1ee5: 0x70, 0x1ee6: 0x71, 0x1ee7: 0x72,
-	0x1ee8: 0x73, 0x1ee9: 0x74, 0x1eea: 0x06, 0x1eed: 0x07, 0x1eef: 0x75,
-	0x1ef0: 0x78, 0x1ef3: 0x15,
-	// Block 0x7c, offset 0x1f00
-	0x1f20: 0x1f, 0x1f21: 0x20, 0x1f22: 0x21, 0x1f23: 0x22, 0x1f24: 0x540, 0x1f25: 0x24, 0x1f26: 0x25, 0x1f27: 0x26,
-	0x1f28: 0x27, 0x1f29: 0x28, 0x1f2a: 0x29, 0x1f2b: 0x2a, 0x1f2c: 0x2b, 0x1f2d: 0x2c, 0x1f2e: 0x2d, 0x1f2f: 0x2e,
-	0x1f30: 0x2f, 0x1f31: 0x30, 0x1f32: 0x31, 0x1f33: 0x32, 0x1f34: 0x33, 0x1f35: 0x34, 0x1f36: 0x35, 0x1f37: 0x36,
-	0x1f38: 0x37, 0x1f39: 0x38, 0x1f3a: 0x39, 0x1f3b: 0x3a, 0x1f3c: 0x3b, 0x1f3d: 0x3c, 0x1f3e: 0x3d, 0x1f3f: 0x3e,
-	// Block 0x7d, offset 0x1f40
-	0x1f42: 0x01, 0x1f43: 0x02, 0x1f44: 0x03, 0x1f45: 0x04, 0x1f46: 0x05, 0x1f47: 0x06,
-	0x1f48: 0x07, 0x1f49: 0x08, 0x1f4a: 0x09, 0x1f4b: 0x0a, 0x1f4c: 0x0b, 0x1f4d: 0x0c, 0x1f4e: 0x0d, 0x1f4f: 0x0e,
-	0x1f50: 0x0f, 0x1f51: 0x10, 0x1f52: 0x11, 0x1f53: 0x12, 0x1f54: 0x13, 0x1f55: 0x14, 0x1f56: 0x15, 0x1f57: 0x16,
-	0x1f58: 0x17, 0x1f59: 0x18, 0x1f5a: 0x19, 0x1f5b: 0x1a, 0x1f5c: 0x1b, 0x1f5d: 0x1c, 0x1f5e: 0x1d, 0x1f5f: 0x1e,
-	0x1f60: 0x7a, 0x1f61: 0x02, 0x1f62: 0x03, 0x1f63: 0x04, 0x1f64: 0x05,
-	0x1f6a: 0x06, 0x1f6d: 0x07, 0x1f6f: 0x08,
-	0x1f70: 0x13, 0x1f73: 0x15,
-	// Block 0x7e, offset 0x1f80
-	0x1f82: 0x01, 0x1f83: 0x02, 0x1f84: 0x03, 0x1f85: 0x04, 0x1f86: 0x541, 0x1f87: 0x06,
-	0x1f88: 0x07, 0x1f89: 0x542, 0x1f8a: 0x09, 0x1f8b: 0x0a, 0x1f8c: 0x0b, 0x1f8d: 0x0c, 0x1f8e: 0x0d, 0x1f8f: 0x0e,
-	0x1f90: 0x0f, 0x1f91: 0x10, 0x1f92: 0x11, 0x1f93: 0x12, 0x1f94: 0x13, 0x1f95: 0x14, 0x1f96: 0x15, 0x1f97: 0x16,
-	0x1f98: 0x17, 0x1f99: 0x18, 0x1f9a: 0x19, 0x1f9b: 0x1a, 0x1f9c: 0x1b, 0x1f9d: 0x1c, 0x1f9e: 0x1d, 0x1f9f: 0x1e,
-	0x1fa0: 0x01, 0x1fa1: 0x02, 0x1fa2: 0x03, 0x1fa3: 0x04, 0x1fa4: 0x05,
-	0x1faa: 0x06, 0x1fad: 0x07, 0x1faf: 0x08,
-	0x1fb0: 0x13, 0x1fb3: 0x15,
-	// Block 0x7f, offset 0x1fc0
-	0x1fc0: 0x3f, 0x1fc1: 0x40, 0x1fc2: 0x41, 0x1fc3: 0x42, 0x1fc4: 0x43, 0x1fc5: 0x44, 0x1fc6: 0x45, 0x1fc7: 0x46,
-	0x1fc8: 0x47, 0x1fc9: 0x48, 0x1fca: 0x49, 0x1fcb: 0x4a, 0x1fcc: 0x4b, 0x1fcd: 0x4c, 0x1fce: 0x4d, 0x1fcf: 0x4e,
-	0x1fd0: 0x4f, 0x1fd1: 0x50, 0x1fd2: 0x51, 0x1fd3: 0x52, 0x1fd4: 0x53, 0x1fd5: 0x54, 0x1fd6: 0x55, 0x1fd7: 0x56,
-	0x1fd8: 0x57, 0x1fd9: 0x58, 0x1fda: 0x59, 0x1fdb: 0x5a, 0x1fdc: 0x5b, 0x1fdd: 0x5c, 0x1fde: 0x5d, 0x1fdf: 0x5e,
-	0x1fe0: 0x5f, 0x1fe1: 0x60, 0x1fe2: 0x61, 0x1fe3: 0x62, 0x1fe4: 0x63, 0x1fe5: 0x64, 0x1fe6: 0x65, 0x1fe7: 0x66,
-	0x1fe8: 0x67, 0x1fe9: 0x68, 0x1fea: 0x69, 0x1fec: 0x6a, 0x1fed: 0x6b, 0x1fee: 0x6c, 0x1fef: 0x6d,
-	0x1ff0: 0x6e, 0x1ff1: 0x6f, 0x1ff3: 0x70, 0x1ff4: 0x71, 0x1ff5: 0x72, 0x1ff6: 0x73, 0x1ff7: 0x74,
-	0x1ff8: 0x75, 0x1ff9: 0x54b, 0x1ffa: 0x54c, 0x1ffb: 0x54d, 0x1ffc: 0x79, 0x1ffd: 0x7a, 0x1ffe: 0x7b, 0x1fff: 0x7c,
-	// Block 0x80, offset 0x2000
-	0x2000: 0x7d, 0x2001: 0x7e, 0x2002: 0x7f, 0x2003: 0x80, 0x2004: 0x81, 0x2005: 0x82, 0x2006: 0x83, 0x2007: 0x84,
-	0x2008: 0x85, 0x2009: 0x86, 0x200a: 0x87, 0x200b: 0x88, 0x200c: 0x89, 0x200d: 0x8a, 0x200e: 0x8b, 0x200f: 0x8c,
-	0x2010: 0x8d, 0x2011: 0x8e, 0x2012: 0x54e, 0x2013: 0x90, 0x2014: 0x91, 0x2015: 0x92, 0x2016: 0x93, 0x2017: 0x94,
-	0x2018: 0x95, 0x2019: 0x96, 0x201a: 0x97, 0x201b: 0x98, 0x201c: 0x99, 0x201d: 0x9a, 0x201e: 0x9b, 0x201f: 0x9c,
-	0x2020: 0x9d, 0x2021: 0x9e, 0x2022: 0x9f, 0x2023: 0xa0, 0x2024: 0xa1, 0x2025: 0xa2, 0x2026: 0xa3, 0x2027: 0xa4,
-	0x2028: 0xa5, 0x2029: 0xa6, 0x202a: 0xa7, 0x202b: 0xa8, 0x202c: 0xa9, 0x202d: 0xaa,
-	0x2030: 0xab, 0x2031: 0xac, 0x2032: 0xad, 0x2033: 0xae, 0x2034: 0xaf, 0x2035: 0xb0, 0x2036: 0xb1, 0x2037: 0xb2,
-	0x2038: 0xb3, 0x203a: 0xb4, 0x203b: 0xb5, 0x203c: 0xb6, 0x203d: 0xb7, 0x203e: 0xb8, 0x203f: 0xb9,
-	// Block 0x81, offset 0x2040
-	0x2040: 0xba, 0x2041: 0xbb, 0x2042: 0xbc, 0x2043: 0xbd, 0x2044: 0xbe, 0x2045: 0xbf, 0x2046: 0xc0, 0x2047: 0xc1,
-	0x2048: 0xc2, 0x2049: 0xc3, 0x204a: 0xc4, 0x204b: 0xc5, 0x204c: 0xc6, 0x204d: 0xc7, 0x204e: 0xc8, 0x204f: 0x54f,
-	// Block 0x82, offset 0x2080
-	0x2080: 0x18b, 0x2081: 0x18c, 0x2082: 0x18d, 0x2083: 0x18e, 0x2084: 0x550, 0x2085: 0x190, 0x2086: 0x191, 0x2087: 0x192,
-	0x2088: 0x193, 0x2089: 0x194, 0x208c: 0x195, 0x208d: 0x196, 0x208e: 0x197, 0x208f: 0x198,
-	0x2090: 0x199, 0x2091: 0x19a, 0x2092: 0x19b, 0x2093: 0x19c, 0x2094: 0x19d, 0x2095: 0x19e, 0x2097: 0x19f,
-	0x2098: 0x1a0, 0x2099: 0x1a1, 0x209a: 0x1a2, 0x209b: 0x1a3, 0x209c: 0x1a4, 0x209d: 0x1a5,
-	// Block 0x83, offset 0x20c0
-	0x20d0: 0x09, 0x20d1: 0x0a, 0x20d2: 0x0b, 0x20d3: 0x0c, 0x20d6: 0x0d,
-	0x20db: 0x0e, 0x20dd: 0x0f, 0x20de: 0x10, 0x20df: 0x80,
-	0x20ef: 0x12,
-	// Block 0x84, offset 0x2100
-	0x2102: 0x01, 0x2103: 0x545, 0x2104: 0x546, 0x2105: 0x547, 0x2106: 0x05, 0x2107: 0x548,
-	0x2108: 0x549, 0x2109: 0x08, 0x210a: 0x09, 0x210b: 0x0a, 0x210c: 0x54a, 0x210d: 0x0c, 0x210e: 0x0d, 0x210f: 0x0e,
-	0x2110: 0x0f, 0x2111: 0x10, 0x2112: 0x11, 0x2113: 0x12, 0x2114: 0x13, 0x2115: 0x14, 0x2116: 0x15, 0x2117: 0x16,
-	0x2118: 0x17, 0x2119: 0x18, 0x211a: 0x19, 0x211b: 0x1a, 0x211c: 0x1b, 0x211d: 0x1c, 0x211e: 0x1d, 0x211f: 0x1e,
-	0x2120: 0x01, 0x2121: 0x7d, 0x2122: 0x7e, 0x2123: 0x7f, 0x2124: 0x05,
-	0x212a: 0x06, 0x212d: 0x07, 0x212f: 0x08,
-	0x2130: 0x81, 0x2133: 0x15,
-	// Block 0x85, offset 0x2140
-	0x2140: 0x3f, 0x2141: 0x40, 0x2142: 0x41, 0x2143: 0x42, 0x2144: 0x43, 0x2145: 0x44, 0x2146: 0x45, 0x2147: 0x46,
-	0x2148: 0x47, 0x2149: 0x48, 0x214a: 0x49, 0x214b: 0x4a, 0x214c: 0x4b, 0x214d: 0x4c, 0x214e: 0x4d, 0x214f: 0x4e,
-	0x2150: 0x4f, 0x2151: 0x50, 0x2152: 0x51, 0x2153: 0x52, 0x2154: 0x53, 0x2155: 0x54, 0x2156: 0x55, 0x2157: 0x56,
-	0x2158: 0x57, 0x2159: 0x58, 0x215a: 0x59, 0x215b: 0x5a, 0x215c: 0x5b, 0x215d: 0x5c, 0x215e: 0x5d, 0x215f: 0x5e,
-	0x2160: 0x5f, 0x2161: 0x60, 0x2162: 0x61, 0x2163: 0x62, 0x2164: 0x63, 0x2165: 0x64, 0x2166: 0x65, 0x2167: 0x66,
-	0x2168: 0x67, 0x2169: 0x68, 0x216a: 0x69, 0x216c: 0x6a, 0x216d: 0x6b, 0x216e: 0x6c, 0x216f: 0x6d,
-	0x2170: 0x6e, 0x2171: 0x6f, 0x2173: 0x70, 0x2174: 0x71, 0x2175: 0x72, 0x2176: 0x73, 0x2177: 0x74,
-	0x2178: 0x75, 0x2179: 0x555, 0x217a: 0x77, 0x217b: 0x78, 0x217c: 0x79, 0x217d: 0x7a, 0x217e: 0x7b, 0x217f: 0x7c,
-	// Block 0x86, offset 0x2180
-	0x2182: 0x01, 0x2183: 0x02, 0x2184: 0x553, 0x2185: 0x554, 0x2186: 0x05, 0x2187: 0x06,
-	0x2188: 0x07, 0x2189: 0x08, 0x218a: 0x09, 0x218b: 0x0a, 0x218c: 0x0b, 0x218d: 0x0c, 0x218e: 0x0d, 0x218f: 0x0e,
-	0x2190: 0x0f, 0x2191: 0x10, 0x2192: 0x11, 0x2193: 0x12, 0x2194: 0x13, 0x2195: 0x14, 0x2196: 0x15, 0x2197: 0x16,
-	0x2198: 0x17, 0x2199: 0x18, 0x219a: 0x19, 0x219b: 0x1a, 0x219c: 0x1b, 0x219d: 0x1c, 0x219e: 0x1d, 0x219f: 0x1e,
-	0x21a0: 0x01, 0x21a1: 0x83, 0x21a2: 0x03, 0x21a3: 0x04, 0x21a4: 0x05,
-	0x21aa: 0x06, 0x21ad: 0x07, 0x21af: 0x08,
-	0x21b0: 0x13, 0x21b3: 0x15,
-	// Block 0x87, offset 0x21c0
-	0x21e0: 0x1f, 0x21e1: 0x20, 0x21e2: 0x21, 0x21e3: 0x22, 0x21e4: 0x23, 0x21e5: 0x24, 0x21e6: 0x25, 0x21e7: 0x26,
-	0x21e8: 0x27, 0x21e9: 0x28, 0x21ea: 0x29, 0x21eb: 0x2a, 0x21ec: 0x2b, 0x21ed: 0x2c, 0x21ee: 0x2d, 0x21ef: 0x2e,
-	0x21f0: 0x2f, 0x21f1: 0x30, 0x21f2: 0x31, 0x21f3: 0x32, 0x21f4: 0x556, 0x21f5: 0x557, 0x21f6: 0x35, 0x21f7: 0x36,
-	0x21f8: 0x37, 0x21f9: 0x38, 0x21fa: 0x39, 0x21fb: 0x3a, 0x21fc: 0x3b, 0x21fd: 0x3c, 0x21fe: 0x3d, 0x21ff: 0x3e,
-	// Block 0x88, offset 0x2200
-	0x2202: 0x01, 0x2203: 0x02, 0x2204: 0x03, 0x2205: 0x04, 0x2206: 0x05, 0x2207: 0x06,
-	0x2208: 0x07, 0x2209: 0x08, 0x220a: 0x09, 0x220b: 0x0a, 0x220c: 0x0b, 0x220d: 0x0c, 0x220e: 0x0d, 0x220f: 0x0e,
-	0x2210: 0x0f, 0x2211: 0x10, 0x2212: 0x11, 0x2213: 0x12, 0x2214: 0x13, 0x2215: 0x14, 0x2216: 0x15, 0x2217: 0x16,
-	0x2218: 0x17, 0x2219: 0x18, 0x221a: 0x19, 0x221b: 0x1a, 0x221c: 0x1b, 0x221d: 0x1c, 0x221e: 0x1d, 0x221f: 0x1e,
-	0x2220: 0x85, 0x2221: 0x02, 0x2222: 0x03, 0x2223: 0x04, 0x2224: 0x05,
-	0x222a: 0x06, 0x222d: 0x07, 0x222f: 0x08,
-	0x2230: 0x13, 0x2233: 0x15,
-	// Block 0x89, offset 0x2240
-	0x2260: 0x1f, 0x2261: 0x20, 0x2262: 0x21, 0x2263: 0x22, 0x2264: 0x558, 0x2265: 0x24, 0x2266: 0x25, 0x2267: 0x26,
-	0x2268: 0x27, 0x2269: 0x28, 0x226a: 0x29, 0x226b: 0x2a, 0x226c: 0x2b, 0x226d: 0x2c, 0x226e: 0x2d, 0x226f: 0x2e,
-	0x2270: 0x2f, 0x2271: 0x30, 0x2272: 0x31, 0x2273: 0x32, 0x2274: 0x33, 0x2275: 0x34, 0x2276: 0x35, 0x2277: 0x36,
-	0x2278: 0x37, 0x2279: 0x38, 0x227a: 0x39, 0x227b: 0x3a, 0x227c: 0x3b, 0x227d: 0x3c, 0x227e: 0x3d, 0x227f: 0x3e,
-	// Block 0x8a, offset 0x2280
-	0x2282: 0x01, 0x2283: 0x02, 0x2284: 0x03, 0x2285: 0x04, 0x2286: 0x05, 0x2287: 0x06,
-	0x2288: 0x07, 0x2289: 0x08, 0x228a: 0x09, 0x228b: 0x0a, 0x228c: 0x0b, 0x228d: 0x0c, 0x228e: 0x0d, 0x228f: 0x0e,
-	0x2290: 0x0f, 0x2291: 0x10, 0x2292: 0x11, 0x2293: 0x12, 0x2294: 0x13, 0x2295: 0x14, 0x2296: 0x15, 0x2297: 0x16,
-	0x2298: 0x17, 0x2299: 0x18, 0x229a: 0x19, 0x229b: 0x1a, 0x229c: 0x1b, 0x229d: 0x1c, 0x229e: 0x1d, 0x229f: 0x1e,
-	0x22a0: 0x87, 0x22a1: 0x02, 0x22a2: 0x03, 0x22a3: 0x04, 0x22a4: 0x05,
-	0x22aa: 0x06, 0x22ad: 0x07, 0x22af: 0x08,
-	0x22b0: 0x13, 0x22b3: 0x15,
-	// Block 0x8b, offset 0x22c0
-	0x22c0: 0x7d, 0x22c1: 0x7e, 0x22c2: 0x7f, 0x22c3: 0x80, 0x22c4: 0x55d, 0x22c5: 0x82, 0x22c6: 0x83, 0x22c7: 0x84,
-	0x22c8: 0x85, 0x22c9: 0x86, 0x22ca: 0x87, 0x22cb: 0x88, 0x22cc: 0x89, 0x22cd: 0x8a, 0x22ce: 0x8b, 0x22cf: 0x8c,
-	0x22d0: 0x8d, 0x22d1: 0x8e, 0x22d2: 0x8f, 0x22d3: 0x90, 0x22d4: 0x91, 0x22d5: 0x92, 0x22d6: 0x93, 0x22d7: 0x94,
-	0x22d8: 0x95, 0x22d9: 0x96, 0x22da: 0x97, 0x22db: 0x98, 0x22dc: 0x99, 0x22dd: 0x9a, 0x22de: 0x9b, 0x22df: 0x9c,
-	0x22e0: 0x9d, 0x22e1: 0x9e, 0x22e2: 0x9f, 0x22e3: 0xa0, 0x22e4: 0xa1, 0x22e5: 0xa2, 0x22e6: 0xa3, 0x22e7: 0xa4,
-	0x22e8: 0xa5, 0x22e9: 0xa6, 0x22ea: 0xa7, 0x22eb: 0xa8, 0x22ec: 0xa9, 0x22ed: 0xaa,
-	0x22f0: 0xab, 0x22f1: 0xac, 0x22f2: 0xad, 0x22f3: 0xae, 0x22f4: 0xaf, 0x22f5: 0xb0, 0x22f6: 0xb1, 0x22f7: 0xb2,
-	0x22f8: 0xb3, 0x22fa: 0xb4, 0x22fb: 0xb5, 0x22fc: 0xb6, 0x22fd: 0xb7, 0x22fe: 0xb8, 0x22ff: 0xb9,
-	// Block 0x8c, offset 0x2300
-	0x2300: 0xcb, 0x2301: 0xcc, 0x2302: 0xcd, 0x2303: 0xce, 0x2304: 0xcf, 0x2305: 0xd0, 0x2306: 0xd1, 0x2307: 0xd2,
-	0x2308: 0xd3, 0x2309: 0xd4, 0x230a: 0xd5, 0x230b: 0xd6, 0x230c: 0xd7, 0x230d: 0xd8, 0x230e: 0xd9, 0x230f: 0xda,
-	0x2310: 0xdb, 0x2311: 0xdc, 0x2312: 0xdd, 0x2313: 0xde, 0x2314: 0xdf, 0x2315: 0xe0, 0x2316: 0xe1, 0x2317: 0xe2,
-	0x2318: 0xe3, 0x2319: 0xe4, 0x231a: 0xe5, 0x231b: 0xe6, 0x231c: 0xe7, 0x231d: 0xe8, 0x231e: 0xe9, 0x231f: 0x55e,
-	0x2320: 0xeb, 0x2321: 0xec, 0x2322: 0xed, 0x2323: 0xee, 0x2324: 0xef, 0x2325: 0xf0, 0x2326: 0xf1, 0x2327: 0xf2,
-	0x2328: 0xf3, 0x2329: 0xf4, 0x232a: 0xf5, 0x232b: 0xf6, 0x232c: 0xf7, 0x232f: 0xf8,
-	// Block 0x8d, offset 0x2340
-	0x2342: 0x01, 0x2343: 0x02, 0x2344: 0x55b, 0x2345: 0x55c, 0x2346: 0x05, 0x2347: 0x06,
-	0x2348: 0x07, 0x2349: 0x08, 0x234a: 0x09, 0x234b: 0x0a, 0x234c: 0x0b, 0x234d: 0x0c, 0x234e: 0x0d, 0x234f: 0x0e,
-	0x2350: 0x0f, 0x2351: 0x10, 0x2352: 0x11, 0x2353: 0x12, 0x2354: 0x13, 0x2355: 0x14, 0x2356: 0x15, 0x2357: 0x16,
-	0x2358: 0x17, 0x2359: 0x18, 0x235a: 0x19, 0x235b: 0x1a, 0x235c: 0x1b, 0x235d: 0x1c, 0x235e: 0x1d, 0x235f: 0x1e,
-	0x2360: 0x01, 0x2361: 0x02, 0x2362: 0x89, 0x2363: 0x04, 0x2364: 0x05,
-	0x236a: 0x8a, 0x236d: 0x07, 0x236f: 0x08,
-	0x2370: 0x13, 0x2373: 0x15,
-	// Block 0x8e, offset 0x2380
-	0x2380: 0x55f, 0x2381: 0x560, 0x2382: 0x561, 0x2383: 0x42, 0x2384: 0x43, 0x2385: 0x44, 0x2386: 0x45, 0x2387: 0x46,
-	0x2388: 0x47, 0x2389: 0x48, 0x238a: 0x49, 0x238b: 0x4a, 0x238c: 0x4b, 0x238d: 0x4c, 0x238e: 0x4d, 0x238f: 0x4e,
-	0x2390: 0x4f, 0x2391: 0x50, 0x2392: 0x51, 0x2393: 0x52, 0x2394: 0x53, 0x2395: 0x54, 0x2396: 0x55, 0x2397: 0x56,
-	0x2398: 0x57, 0x2399: 0x58, 0x239a: 0x59, 0x239b: 0x5a, 0x239c: 0x5b, 0x239d: 0x5c, 0x239e: 0x5d, 0x239f: 0x5e,
-	0x23a0: 0x5f, 0x23a1: 0x60, 0x23a2: 0x61, 0x23a3: 0x62, 0x23a4: 0x63, 0x23a5: 0x64, 0x23a6: 0x65, 0x23a7: 0x66,
-	0x23a8: 0x67, 0x23a9: 0x68, 0x23aa: 0x69, 0x23ac: 0x6a, 0x23ad: 0x6b, 0x23ae: 0x6c, 0x23af: 0x6d,
-	0x23b0: 0x6e, 0x23b1: 0x6f, 0x23b3: 0x70, 0x23b4: 0x71, 0x23b5: 0x72, 0x23b6: 0x73, 0x23b7: 0x74,
-	0x23b8: 0x75, 0x23b9: 0x76, 0x23ba: 0x77, 0x23bb: 0x78, 0x23bc: 0x79, 0x23bd: 0x7a, 0x23be: 0x7b, 0x23bf: 0x7c,
-	// Block 0x8f, offset 0x23c0
-	0x23c2: 0x01, 0x23c3: 0x02, 0x23c4: 0x03, 0x23c5: 0x04, 0x23c6: 0x05, 0x23c7: 0x06,
-	0x23c8: 0x07, 0x23c9: 0x08, 0x23ca: 0x09, 0x23cb: 0x0a, 0x23cc: 0x0b, 0x23cd: 0x0c, 0x23ce: 0x0d, 0x23cf: 0x0e,
-	0x23d0: 0x0f, 0x23d1: 0x10, 0x23d2: 0x11, 0x23d3: 0x12, 0x23d4: 0x13, 0x23d5: 0x14, 0x23d6: 0x15, 0x23d7: 0x16,
-	0x23d8: 0x17, 0x23d9: 0x18, 0x23da: 0x19, 0x23db: 0x1a, 0x23dc: 0x1b, 0x23dd: 0x1c, 0x23de: 0x1d, 0x23df: 0x1e,
-	0x23e0: 0x01, 0x23e1: 0x8c, 0x23e2: 0x03, 0x23e3: 0x04, 0x23e4: 0x05,
-	0x23ea: 0x06, 0x23ed: 0x07, 0x23ef: 0x08,
-	0x23f0: 0x13, 0x23f3: 0x15,
-	// Block 0x90, offset 0x2400
-	0x2400: 0x3f, 0x2401: 0x40, 0x2402: 0x41, 0x2403: 0x42, 0x2404: 0x43, 0x2405: 0x44, 0x2406: 0x45, 0x2407: 0x46,
-	0x2408: 0x47, 0x2409: 0x48, 0x240a: 0x49, 0x240b: 0x4a, 0x240c: 0x4b, 0x240d: 0x4c, 0x240e: 0x4d, 0x240f: 0x4e,
-	0x2410: 0x4f, 0x2411: 0x50, 0x2412: 0x51, 0x2413: 0x52, 0x2414: 0x53, 0x2415: 0x54, 0x2416: 0x55, 0x2417: 0x56,
-	0x2418: 0x57, 0x2419: 0x58, 0x241a: 0x59, 0x241b: 0x5a, 0x241c: 0x5b, 0x241d: 0x5c, 0x241e: 0x5d, 0x241f: 0x5e,
-	0x2420: 0x5f, 0x2421: 0x60, 0x2422: 0x61, 0x2423: 0x62, 0x2424: 0x63, 0x2425: 0x64, 0x2426: 0x65, 0x2427: 0x66,
-	0x2428: 0x67, 0x2429: 0x68, 0x242a: 0x69, 0x242c: 0x6a, 0x242d: 0x6b, 0x242e: 0x6c, 0x242f: 0x6d,
-	0x2430: 0x6e, 0x2431: 0x6f, 0x2433: 0x70, 0x2434: 0x71, 0x2435: 0x72, 0x2436: 0x73, 0x2437: 0x74,
-	0x2438: 0x75, 0x2439: 0x1db, 0x243a: 0x568, 0x243b: 0x569, 0x243c: 0x79, 0x243d: 0x7a, 0x243e: 0x7b, 0x243f: 0x7c,
-	// Block 0x91, offset 0x2440
-	0x2442: 0x01, 0x2443: 0x566, 0x2444: 0x03, 0x2445: 0x567, 0x2446: 0x05, 0x2447: 0x06,
-	0x2448: 0x07, 0x2449: 0x08, 0x244a: 0x09, 0x244b: 0x0a, 0x244c: 0x0b, 0x244d: 0x0c, 0x244e: 0x0d, 0x244f: 0x0e,
-	0x2450: 0x0f, 0x2451: 0x10, 0x2452: 0x11, 0x2453: 0x12, 0x2454: 0x13, 0x2455: 0x14, 0x2456: 0x15, 0x2457: 0x16,
-	0x2458: 0x17, 0x2459: 0x18, 0x245a: 0x19, 0x245b: 0x1a, 0x245c: 0x1b, 0x245d: 0x1c, 0x245e: 0x1d, 0x245f: 0x1e,
-	0x2460: 0x01, 0x2461: 0x8e, 0x2462: 0x03, 0x2463: 0x04, 0x2464: 0x05,
-	0x246a: 0x06, 0x246d: 0x07, 0x246f: 0x08,
-	0x2470: 0x13, 0x2473: 0x15,
-	// Block 0x92, offset 0x2480
-	0x24a0: 0x1f, 0x24a1: 0x20, 0x24a2: 0x21, 0x24a3: 0x22, 0x24a4: 0x23, 0x24a5: 0x24, 0x24a6: 0x25, 0x24a7: 0x26,
-	0x24a8: 0x27, 0x24a9: 0x28, 0x24aa: 0x29, 0x24ab: 0x2a, 0x24ac: 0x56c, 0x24ad: 0x56d, 0x24ae: 0x2d, 0x24af: 0x2e,
-	0x24b0: 0x2f, 0x24b1: 0x30, 0x24b2: 0x31, 0x24b3: 0x32, 0x24b4: 0x33, 0x24b5: 0x34, 0x24b6: 0x35, 0x24b7: 0x36,
-	0x24b8: 0x37, 0x24b9: 0x38, 0x24ba: 0x39, 0x24bb: 0x3a, 0x24bc: 0x3b, 0x24bd: 0x3c, 0x24be: 0x3d, 0x24bf: 0x3e,
-	// Block 0x93, offset 0x24c0
-	0x24c2: 0x01, 0x24c3: 0x02, 0x24c4: 0x03, 0x24c5: 0x04, 0x24c6: 0x05, 0x24c7: 0x06,
-	0x24c8: 0x07, 0x24c9: 0x08, 0x24ca: 0x09, 0x24cb: 0x0a, 0x24cc: 0x0b, 0x24cd: 0x0c, 0x24ce: 0x0d, 0x24cf: 0x0e,
-	0x24d0: 0x0f, 0x24d1: 0x10, 0x24d2: 0x11, 0x24d3: 0x12, 0x24d4: 0x13, 0x24d5: 0x14, 0x24d6: 0x15, 0x24d7: 0x16,
-	0x24d8: 0x17, 0x24d9: 0x18, 0x24da: 0x19, 0x24db: 0x1a, 0x24dc: 0x1b, 0x24dd: 0x1c, 0x24de: 0x1d, 0x24df: 0x1e,
-	0x24e0: 0x90, 0x24e1: 0x02, 0x24e2: 0x03, 0x24e3: 0x04, 0x24e4: 0x05,
-	0x24ea: 0x06, 0x24ed: 0x07, 0x24ef: 0x08,
-	0x24f0: 0x13, 0x24f3: 0x15,
-	// Block 0x94, offset 0x2500
-	0x2520: 0x1f, 0x2521: 0x20, 0x2522: 0x21, 0x2523: 0x22, 0x2524: 0x23, 0x2525: 0x24, 0x2526: 0x25, 0x2527: 0x26,
-	0x2528: 0x56e, 0x2529: 0x56f, 0x252a: 0x29, 0x252b: 0x2a, 0x252c: 0x2b, 0x252d: 0x2c, 0x252e: 0x2d, 0x252f: 0x2e,
-	0x2530: 0x2f, 0x2531: 0x30, 0x2532: 0x31, 0x2533: 0x32, 0x2534: 0x33, 0x2535: 0x34, 0x2536: 0x35, 0x2537: 0x36,
-	0x2538: 0x37, 0x2539: 0x38, 0x253a: 0x39, 0x253b: 0x3a, 0x253c: 0x3b, 0x253d: 0x3c, 0x253e: 0x3d, 0x253f: 0x3e,
-	// Block 0x95, offset 0x2540
-	0x2542: 0x01, 0x2543: 0x02, 0x2544: 0x03, 0x2545: 0x04, 0x2546: 0x05, 0x2547: 0x06,
-	0x2548: 0x07, 0x2549: 0x08, 0x254a: 0x09, 0x254b: 0x0a, 0x254c: 0x0b, 0x254d: 0x0c, 0x254e: 0x0d, 0x254f: 0x0e,
-	0x2550: 0x0f, 0x2551: 0x10, 0x2552: 0x11, 0x2553: 0x12, 0x2554: 0x13, 0x2555: 0x14, 0x2556: 0x15, 0x2557: 0x16,
-	0x2558: 0x17, 0x2559: 0x18, 0x255a: 0x19, 0x255b: 0x1a, 0x255c: 0x1b, 0x255d: 0x1c, 0x255e: 0x1d, 0x255f: 0x1e,
-	0x2560: 0x92, 0x2561: 0x02, 0x2562: 0x03, 0x2563: 0x04, 0x2564: 0x05,
-	0x256a: 0x06, 0x256d: 0x07, 0x256f: 0x08,
-	0x2570: 0x13, 0x2573: 0x15,
-	// Block 0x96, offset 0x2580
-	0x2580: 0x3f, 0x2581: 0x40, 0x2582: 0x41, 0x2583: 0x42, 0x2584: 0x43, 0x2585: 0x44, 0x2586: 0x45, 0x2587: 0x46,
-	0x2588: 0x47, 0x2589: 0x48, 0x258a: 0x49, 0x258b: 0x4a, 0x258c: 0x4b, 0x258d: 0x4c, 0x258e: 0x4d, 0x258f: 0x4e,
-	0x2590: 0x4f, 0x2591: 0x50, 0x2592: 0x51, 0x2593: 0x52, 0x2594: 0x53, 0x2595: 0x54, 0x2596: 0x55, 0x2597: 0x56,
-	0x2598: 0x57, 0x2599: 0x58, 0x259a: 0x59, 0x259b: 0x5a, 0x259c: 0x5b, 0x259d: 0x5c, 0x259e: 0x5d, 0x259f: 0x5e,
-	0x25a0: 0x5f, 0x25a1: 0x60, 0x25a2: 0x61, 0x25a3: 0x62, 0x25a4: 0x63, 0x25a5: 0x64, 0x25a6: 0x65, 0x25a7: 0x66,
-	0x25a8: 0x67, 0x25a9: 0x68, 0x25aa: 0x69, 0x25ac: 0x6a, 0x25ad: 0x6b, 0x25ae: 0x6c, 0x25af: 0x6d,
-	0x25b0: 0x6e, 0x25b1: 0x6f, 0x25b3: 0x70, 0x25b4: 0x71, 0x25b5: 0x72, 0x25b6: 0x73, 0x25b7: 0x74,
-	0x25b8: 0x575, 0x25b9: 0x576, 0x25ba: 0x77, 0x25bb: 0x577, 0x25bc: 0x79, 0x25bd: 0x7a, 0x25be: 0x7b, 0x25bf: 0x7c,
-	// Block 0x97, offset 0x25c0
-	0x25c2: 0x01, 0x25c3: 0x572, 0x25c4: 0x573, 0x25c5: 0x574, 0x25c6: 0x05, 0x25c7: 0x06,
-	0x25c8: 0x07, 0x25c9: 0x08, 0x25ca: 0x09, 0x25cb: 0x0a, 0x25cc: 0x0b, 0x25cd: 0x0c, 0x25ce: 0x0d, 0x25cf: 0x0e,
-	0x25d0: 0x0f, 0x25d1: 0x10, 0x25d2: 0x11, 0x25d3: 0x12, 0x25d4: 0x13, 0x25d5: 0x14, 0x25d6: 0x15, 0x25d7: 0x16,
-	0x25d8: 0x17, 0x25d9: 0x18, 0x25da: 0x19, 0x25db: 0x1a, 0x25dc: 0x1b, 0x25dd: 0x1c, 0x25de: 0x1d, 0x25df: 0x1e,
-	0x25e0: 0x01, 0x25e1: 0x94, 0x25e2: 0x03, 0x25e3: 0x04, 0x25e4: 0x05,
-	0x25ea: 0x06, 0x25ed: 0x07, 0x25ef: 0x08,
-	0x25f0: 0x13, 0x25f3: 0x15,
-	// Block 0x98, offset 0x2600
-	0x2600: 0x57c, 0x2601: 0x7e, 0x2602: 0x7f, 0x2603: 0x80, 0x2604: 0x81, 0x2605: 0x82, 0x2606: 0x83, 0x2607: 0x84,
-	0x2608: 0x85, 0x2609: 0x86, 0x260a: 0x87, 0x260b: 0x88, 0x260c: 0x89, 0x260d: 0x8a, 0x260e: 0x8b, 0x260f: 0x8c,
-	0x2610: 0x8d, 0x2611: 0x8e, 0x2612: 0x8f, 0x2613: 0x90, 0x2614: 0x91, 0x2615: 0x92, 0x2616: 0x93, 0x2617: 0x94,
-	0x2618: 0x95, 0x2619: 0x96, 0x261a: 0x97, 0x261b: 0x98, 0x261c: 0x99, 0x261d: 0x9a, 0x261e: 0x9b, 0x261f: 0x9c,
-	0x2620: 0x9d, 0x2621: 0x9e, 0x2622: 0x9f, 0x2623: 0xa0, 0x2624: 0xa1, 0x2625: 0xa2, 0x2626: 0xa3, 0x2627: 0xa4,
-	0x2628: 0xa5, 0x2629: 0xa6, 0x262a: 0xa7, 0x262b: 0xa8, 0x262c: 0xa9, 0x262d: 0xaa,
-	0x2630: 0xab, 0x2631: 0xac, 0x2632: 0xad, 0x2633: 0xae, 0x2634: 0xaf, 0x2635: 0xb0, 0x2636: 0xb1, 0x2637: 0xb2,
-	0x2638: 0xb3, 0x263a: 0xb4, 0x263b: 0xb5, 0x263c: 0xb6, 0x263d: 0xb7, 0x263e: 0xb8, 0x263f: 0xb9,
-	// Block 0x99, offset 0x2640
-	0x2664: 0xfb, 0x2665: 0xfc, 0x2666: 0xfd, 0x2667: 0xfe,
-	0x2668: 0xff, 0x2669: 0x100, 0x266a: 0x101, 0x266b: 0x102, 0x266c: 0x103, 0x266d: 0x104, 0x266e: 0x232, 0x266f: 0x57d,
-	0x2670: 0x233, 0x2671: 0x57e, 0x2672: 0x57f, 0x2673: 0x580, 0x2674: 0x581, 0x2675: 0x10c, 0x2676: 0x10d, 0x2677: 0x10e,
-	0x2678: 0x10f, 0x2679: 0x110, 0x267a: 0x111, 0x267b: 0x112, 0x267c: 0x113, 0x267d: 0x114, 0x267e: 0x115, 0x267f: 0x116,
-	// Block 0x9a, offset 0x2680
-	0x2682: 0x01, 0x2683: 0x02, 0x2684: 0x03, 0x2685: 0x04, 0x2686: 0x05, 0x2687: 0x06,
-	0x2688: 0x07, 0x2689: 0x08, 0x268a: 0x09, 0x268b: 0x0a, 0x268c: 0x0b, 0x268d: 0x0c, 0x268e: 0x0d, 0x268f: 0x0e,
-	0x2690: 0x0f, 0x2691: 0x10, 0x2692: 0x11, 0x2693: 0x12, 0x2694: 0x13, 0x2695: 0x14, 0x2696: 0x15, 0x2697: 0x16,
-	0x2698: 0x578, 0x2699: 0x579, 0x269a: 0x57a, 0x269b: 0x57b, 0x269c: 0x1b, 0x269d: 0x1c, 0x269e: 0x1d, 0x269f: 0x1e,
-	0x26a0: 0x01, 0x26a1: 0x02, 0x26a2: 0x96, 0x26a3: 0x04, 0x26a4: 0x05,
-	0x26aa: 0x06, 0x26ad: 0x07, 0x26af: 0x97,
-	0x26b0: 0x13, 0x26b3: 0x15,
-	// Block 0x9b, offset 0x26c0
-	0x26c0: 0x3f, 0x26c1: 0x40, 0x26c2: 0x41, 0x26c3: 0x42, 0x26c4: 0x43, 0x26c5: 0x44, 0x26c6: 0x45, 0x26c7: 0x46,
-	0x26c8: 0x47, 0x26c9: 0x48, 0x26ca: 0x49, 0x26cb: 0x4a, 0x26cc: 0x4b, 0x26cd: 0x4c, 0x26ce: 0x4d, 0x26cf: 0x4e,
-	0x26d0: 0x4f, 0x26d1: 0x50, 0x26d2: 0x51, 0x26d3: 0x52, 0x26d4: 0x53, 0x26d5: 0x54, 0x26d6: 0x55, 0x26d7: 0x56,
-	0x26d8: 0x57, 0x26d9: 0x58, 0x26da: 0x59, 0x26db: 0x5a, 0x26dc: 0x5b, 0x26dd: 0x5c, 0x26de: 0x5d, 0x26df: 0x5e,
-	0x26e0: 0x5f, 0x26e1: 0x60, 0x26e2: 0x61, 0x26e3: 0x62, 0x26e4: 0x63, 0x26e5: 0x64, 0x26e6: 0x65, 0x26e7: 0x66,
-	0x26e8: 0x67, 0x26e9: 0x68, 0x26ea: 0x69, 0x26ec: 0x6a, 0x26ed: 0x6b, 0x26ee: 0x6c, 0x26ef: 0x6d,
-	0x26f0: 0x6e, 0x26f1: 0x6f, 0x26f3: 0x70, 0x26f4: 0x71, 0x26f5: 0x72, 0x26f6: 0x73, 0x26f7: 0x74,
-	0x26f8: 0x75, 0x26f9: 0x76, 0x26fa: 0x588, 0x26fb: 0x78, 0x26fc: 0x79, 0x26fd: 0x7a, 0x26fe: 0x7b, 0x26ff: 0x7c,
-	// Block 0x9c, offset 0x2700
-	0x2702: 0x01, 0x2703: 0x584, 0x2704: 0x585, 0x2705: 0x586, 0x2706: 0x05, 0x2707: 0x06,
-	0x2708: 0x587, 0x2709: 0x08, 0x270a: 0x09, 0x270b: 0x0a, 0x270c: 0x0b, 0x270d: 0x0c, 0x270e: 0x0d, 0x270f: 0x0e,
-	0x2710: 0x0f, 0x2711: 0x10, 0x2712: 0x11, 0x2713: 0x12, 0x2714: 0x13, 0x2715: 0x14, 0x2716: 0x15, 0x2717: 0x16,
-	0x2718: 0x17, 0x2719: 0x18, 0x271a: 0x19, 0x271b: 0x1a, 0x271c: 0x1b, 0x271d: 0x1c, 0x271e: 0x1d, 0x271f: 0x1e,
-	0x2720: 0x01, 0x2721: 0x99, 0x2722: 0x03, 0x2723: 0x04, 0x2724: 0x05,
-	0x272a: 0x06, 0x272d: 0x07, 0x272f: 0x08,
-	0x2730: 0x13, 0x2733: 0x15,
-	// Block 0x9d, offset 0x2740
-	0x2740: 0x3f, 0x2741: 0x40, 0x2742: 0x41, 0x2743: 0x42, 0x2744: 0x43, 0x2745: 0x44, 0x2746: 0x45, 0x2747: 0x46,
-	0x2748: 0x47, 0x2749: 0x48, 0x274a: 0x49, 0x274b: 0x4a, 0x274c: 0x4b, 0x274d: 0x4c, 0x274e: 0x4d, 0x274f: 0x4e,
-	0x2750: 0x4f, 0x2751: 0x50, 0x2752: 0x51, 0x2753: 0x52, 0x2754: 0x53, 0x2755: 0x54, 0x2756: 0x55, 0x2757: 0x56,
-	0x2758: 0x57, 0x2759: 0x58, 0x275a: 0x59, 0x275b: 0x5a, 0x275c: 0x5b, 0x275d: 0x5c, 0x275e: 0x5d, 0x275f: 0x5e,
-	0x2760: 0x5f, 0x2761: 0x60, 0x2762: 0x61, 0x2763: 0x62, 0x2764: 0x63, 0x2765: 0x64, 0x2766: 0x65, 0x2767: 0x66,
-	0x2768: 0x67, 0x2769: 0x68, 0x276a: 0x69, 0x276c: 0x6a, 0x276d: 0x6b, 0x276e: 0x6c, 0x276f: 0x6d,
-	0x2770: 0x6e, 0x2771: 0x6f, 0x2773: 0x70, 0x2774: 0x71, 0x2775: 0x72, 0x2776: 0x1e5, 0x2777: 0x74,
-	0x2778: 0x75, 0x2779: 0x592, 0x277a: 0x593, 0x277b: 0x594, 0x277c: 0x79, 0x277d: 0x7a, 0x277e: 0x7b, 0x277f: 0x7c,
-	// Block 0x9e, offset 0x2780
-	0x2782: 0x01, 0x2783: 0x58b, 0x2784: 0x58c, 0x2785: 0x58d, 0x2786: 0x58e, 0x2787: 0x58f,
-	0x2788: 0x590, 0x2789: 0x08, 0x278a: 0x591, 0x278b: 0x0a, 0x278c: 0x0b, 0x278d: 0x0c, 0x278e: 0x0d, 0x278f: 0x0e,
-	0x2790: 0x0f, 0x2791: 0x10, 0x2792: 0x11, 0x2793: 0x12, 0x2794: 0x13, 0x2795: 0x14, 0x2796: 0x15, 0x2797: 0x16,
-	0x2798: 0x17, 0x2799: 0x18, 0x279a: 0x19, 0x279b: 0x1a, 0x279c: 0x1b, 0x279d: 0x1c, 0x279e: 0x1d, 0x279f: 0x1e,
-	0x27a0: 0x01, 0x27a1: 0x9b, 0x27a2: 0x45, 0x27a3: 0x04, 0x27a4: 0x05,
-	0x27aa: 0x06, 0x27ad: 0x07, 0x27af: 0x08,
-	0x27b0: 0x13, 0x27b3: 0x15,
-	// Block 0x9f, offset 0x27c0
-	0x27e0: 0x1f, 0x27e1: 0x20, 0x27e2: 0x21, 0x27e3: 0x22, 0x27e4: 0x23, 0x27e5: 0x24, 0x27e6: 0x25, 0x27e7: 0x26,
-	0x27e8: 0x27, 0x27e9: 0x28, 0x27ea: 0x29, 0x27eb: 0x2a, 0x27ec: 0x2b, 0x27ed: 0x2c, 0x27ee: 0x2d, 0x27ef: 0x2e,
-	0x27f0: 0x2f, 0x27f1: 0x30, 0x27f2: 0x31, 0x27f3: 0x32, 0x27f4: 0x33, 0x27f5: 0x34, 0x27f6: 0x595, 0x27f7: 0x36,
-	0x27f8: 0x37, 0x27f9: 0x38, 0x27fa: 0x39, 0x27fb: 0x3a, 0x27fc: 0x3b, 0x27fd: 0x3c, 0x27fe: 0x3d, 0x27ff: 0x3e,
-	// Block 0xa0, offset 0x2800
-	0x2802: 0x01, 0x2803: 0x02, 0x2804: 0x03, 0x2805: 0x04, 0x2806: 0x05, 0x2807: 0x06,
-	0x2808: 0x07, 0x2809: 0x08, 0x280a: 0x09, 0x280b: 0x0a, 0x280c: 0x0b, 0x280d: 0x0c, 0x280e: 0x0d, 0x280f: 0x0e,
-	0x2810: 0x0f, 0x2811: 0x10, 0x2812: 0x11, 0x2813: 0x12, 0x2814: 0x13, 0x2815: 0x14, 0x2816: 0x15, 0x2817: 0x16,
-	0x2818: 0x17, 0x2819: 0x18, 0x281a: 0x19, 0x281b: 0x1a, 0x281c: 0x1b, 0x281d: 0x1c, 0x281e: 0x1d, 0x281f: 0x1e,
-	0x2820: 0x9d, 0x2821: 0x02, 0x2822: 0x03, 0x2823: 0x04, 0x2824: 0x05,
-	0x282a: 0x06, 0x282d: 0x07, 0x282f: 0x08,
-	0x2830: 0x13, 0x2833: 0x15,
-	// Block 0xa1, offset 0x2840
-	0x2840: 0x3f, 0x2841: 0x40, 0x2842: 0x41, 0x2843: 0x42, 0x2844: 0x43, 0x2845: 0x44, 0x2846: 0x45, 0x2847: 0x46,
-	0x2848: 0x47, 0x2849: 0x48, 0x284a: 0x49, 0x284b: 0x4a, 0x284c: 0x4b, 0x284d: 0x4c, 0x284e: 0x4d, 0x284f: 0x4e,
-	0x2850: 0x4f, 0x2851: 0x50, 0x2852: 0x51, 0x2853: 0x52, 0x2854: 0x53, 0x2855: 0x54, 0x2856: 0x55, 0x2857: 0x56,
-	0x2858: 0x57, 0x2859: 0x58, 0x285a: 0x59, 0x285b: 0x5a, 0x285c: 0x5b, 0x285d: 0x5c, 0x285e: 0x5d, 0x285f: 0x5e,
-	0x2860: 0x5f, 0x2861: 0x60, 0x2862: 0x61, 0x2863: 0x62, 0x2864: 0x63, 0x2865: 0x64, 0x2866: 0x65, 0x2867: 0x66,
-	0x2868: 0x67, 0x2869: 0x68, 0x286a: 0x69, 0x286c: 0x6a, 0x286d: 0x6b, 0x286e: 0x6c, 0x286f: 0x6d,
-	0x2870: 0x6e, 0x2871: 0x6f, 0x2873: 0x70, 0x2874: 0x71, 0x2875: 0x72, 0x2876: 0x73, 0x2877: 0x74,
-	0x2878: 0x75, 0x2879: 0x1db, 0x287a: 0x77, 0x287b: 0x59a, 0x287c: 0x79, 0x287d: 0x7a, 0x287e: 0x7b, 0x287f: 0x7c,
-	// Block 0xa2, offset 0x2880
-	0x2882: 0x01, 0x2883: 0x598, 0x2884: 0x1d9, 0x2885: 0x1da, 0x2886: 0x05, 0x2887: 0x599,
-	0x2888: 0x07, 0x2889: 0x08, 0x288a: 0x09, 0x288b: 0x0a, 0x288c: 0x0b, 0x288d: 0x0c, 0x288e: 0x0d, 0x288f: 0x0e,
-	0x2890: 0x0f, 0x2891: 0x10, 0x2892: 0x11, 0x2893: 0x12, 0x2894: 0x13, 0x2895: 0x14, 0x2896: 0x15, 0x2897: 0x16,
-	0x2898: 0x17, 0x2899: 0x18, 0x289a: 0x19, 0x289b: 0x1a, 0x289c: 0x1b, 0x289d: 0x1c, 0x289e: 0x1d, 0x289f: 0x1e,
-	0x28a0: 0x01, 0x28a1: 0x9f, 0x28a2: 0x03, 0x28a3: 0x04, 0x28a4: 0x05,
-	0x28aa: 0x06, 0x28ad: 0x07, 0x28af: 0x08,
-	0x28b0: 0x13, 0x28b3: 0x15,
-	// Block 0xa3, offset 0x28c0
-	0x28c2: 0x01, 0x28c3: 0x02, 0x28c4: 0x59d, 0x28c5: 0x265, 0x28c6: 0x05, 0x28c7: 0x06,
-	0x28c8: 0x07, 0x28c9: 0x08, 0x28ca: 0x09, 0x28cb: 0x0a, 0x28cc: 0x0b, 0x28cd: 0x0c, 0x28ce: 0x0d, 0x28cf: 0x0e,
-	0x28d0: 0x0f, 0x28d1: 0x10, 0x28d2: 0x11, 0x28d3: 0x12, 0x28d4: 0x13, 0x28d5: 0x14, 0x28d6: 0x15, 0x28d7: 0x16,
-	0x28d8: 0x17, 0x28d9: 0x18, 0x28da: 0x19, 0x28db: 0x1a, 0x28dc: 0x1b, 0x28dd: 0x1c, 0x28de: 0x1d, 0x28df: 0x1e,
-	0x28e0: 0x01, 0x28e1: 0x53, 0x28e2: 0x03, 0x28e3: 0x04, 0x28e4: 0x05,
-	0x28ea: 0x06, 0x28ed: 0x07, 0x28ef: 0x08,
-	0x28f0: 0x13, 0x28f3: 0x15,
-	// Block 0xa4, offset 0x2900
-	0x2900: 0x3f, 0x2901: 0x40, 0x2902: 0x41, 0x2903: 0x42, 0x2904: 0x43, 0x2905: 0x44, 0x2906: 0x45, 0x2907: 0x46,
-	0x2908: 0x47, 0x2909: 0x48, 0x290a: 0x49, 0x290b: 0x4a, 0x290c: 0x4b, 0x290d: 0x4c, 0x290e: 0x4d, 0x290f: 0x4e,
-	0x2910: 0x4f, 0x2911: 0x50, 0x2912: 0x51, 0x2913: 0x52, 0x2914: 0x53, 0x2915: 0x54, 0x2916: 0x55, 0x2917: 0x56,
-	0x2918: 0x57, 0x2919: 0x58, 0x291a: 0x59, 0x291b: 0x5a, 0x291c: 0x5b, 0x291d: 0x5c, 0x291e: 0x5d, 0x291f: 0x5e,
-	0x2920: 0x5f, 0x2921: 0x60, 0x2922: 0x61, 0x2923: 0x62, 0x2924: 0x63, 0x2925: 0x64, 0x2926: 0x65, 0x2927: 0x66,
-	0x2928: 0x67, 0x2929: 0x68, 0x292a: 0x69, 0x292c: 0x6a, 0x292d: 0x6b, 0x292e: 0x6c, 0x292f: 0x6d,
-	0x2930: 0x6e, 0x2931: 0x6f, 0x2933: 0x70, 0x2934: 0x71, 0x2935: 0x72, 0x2936: 0x73, 0x2937: 0x74,
-	0x2938: 0x5a1, 0x2939: 0x76, 0x293a: 0x77, 0x293b: 0x78, 0x293c: 0x79, 0x293d: 0x7a, 0x293e: 0x7b, 0x293f: 0x7c,
-	// Block 0xa5, offset 0x2940
-	0x2942: 0x01, 0x2943: 0x5a0, 0x2944: 0x03, 0x2945: 0x04, 0x2946: 0x05, 0x2947: 0x06,
-	0x2948: 0x07, 0x2949: 0x08, 0x294a: 0x09, 0x294b: 0x0a, 0x294c: 0x0b, 0x294d: 0x0c, 0x294e: 0x0d, 0x294f: 0x0e,
-	0x2950: 0x0f, 0x2951: 0x10, 0x2952: 0x11, 0x2953: 0x12, 0x2954: 0x13, 0x2955: 0x14, 0x2956: 0x15, 0x2957: 0x16,
-	0x2958: 0x17, 0x2959: 0x18, 0x295a: 0x19, 0x295b: 0x1a, 0x295c: 0x1b, 0x295d: 0x1c, 0x295e: 0x1d, 0x295f: 0x1e,
-	0x2960: 0x01, 0x2961: 0xa2, 0x2962: 0x03, 0x2963: 0x04, 0x2964: 0x05,
-	0x296a: 0x06, 0x296d: 0x07, 0x296f: 0x08,
-	0x2970: 0x13, 0x2973: 0x15,
-	// Block 0xa6, offset 0x2980
-	0x2980: 0x3f, 0x2981: 0x40, 0x2982: 0x41, 0x2983: 0x42, 0x2984: 0x43, 0x2985: 0x44, 0x2986: 0x45, 0x2987: 0x46,
-	0x2988: 0x47, 0x2989: 0x48, 0x298a: 0x49, 0x298b: 0x4a, 0x298c: 0x4b, 0x298d: 0x4c, 0x298e: 0x4d, 0x298f: 0x4e,
-	0x2990: 0x4f, 0x2991: 0x50, 0x2992: 0x51, 0x2993: 0x52, 0x2994: 0x53, 0x2995: 0x54, 0x2996: 0x55, 0x2997: 0x56,
-	0x2998: 0x57, 0x2999: 0x58, 0x299a: 0x59, 0x299b: 0x5a, 0x299c: 0x5b, 0x299d: 0x5c, 0x299e: 0x5d, 0x299f: 0x5e,
-	0x29a0: 0x5f, 0x29a1: 0x60, 0x29a2: 0x61, 0x29a3: 0x62, 0x29a4: 0x63, 0x29a5: 0x64, 0x29a6: 0x65, 0x29a7: 0x66,
-	0x29a8: 0x67, 0x29a9: 0x68, 0x29aa: 0x69, 0x29ac: 0x6a, 0x29ad: 0x6b, 0x29ae: 0x6c, 0x29af: 0x6d,
-	0x29b0: 0x6e, 0x29b1: 0x6f, 0x29b3: 0x70, 0x29b4: 0x71, 0x29b5: 0x72, 0x29b6: 0x1e5, 0x29b7: 0x74,
-	0x29b8: 0x75, 0x29b9: 0x241, 0x29ba: 0x77, 0x29bb: 0x5a8, 0x29bc: 0x79, 0x29bd: 0x7a, 0x29be: 0x7b, 0x29bf: 0x7c,
-	// Block 0xa7, offset 0x29c0
-	0x29c2: 0x01, 0x29c3: 0x5a4, 0x29c4: 0x5a5, 0x29c5: 0x5a6, 0x29c6: 0x05, 0x29c7: 0x5a7,
-	0x29c8: 0x23f, 0x29c9: 0x08, 0x29ca: 0x09, 0x29cb: 0x0a, 0x29cc: 0x0b, 0x29cd: 0x0c, 0x29ce: 0x0d, 0x29cf: 0x0e,
-	0x29d0: 0x0f, 0x29d1: 0x10, 0x29d2: 0x11, 0x29d3: 0x12, 0x29d4: 0x13, 0x29d5: 0x14, 0x29d6: 0x15, 0x29d7: 0x16,
-	0x29d8: 0x17, 0x29d9: 0x18, 0x29da: 0x19, 0x29db: 0x1a, 0x29dc: 0x1b, 0x29dd: 0x1c, 0x29de: 0x1d, 0x29df: 0x1e,
-	0x29e0: 0x01, 0x29e1: 0xa4, 0x29e2: 0x45, 0x29e3: 0x04, 0x29e4: 0x05,
-	0x29ea: 0x06, 0x29ed: 0x07, 0x29ef: 0x08,
-	0x29f0: 0x13, 0x29f3: 0x15,
-	// Block 0xa8, offset 0x2a00
-	0x2a20: 0x1f, 0x2a21: 0x20, 0x2a22: 0x21, 0x2a23: 0x22, 0x2a24: 0x23, 0x2a25: 0x24, 0x2a26: 0x25, 0x2a27: 0x26,
-	0x2a28: 0x27, 0x2a29: 0x28, 0x2a2a: 0x29, 0x2a2b: 0x2a, 0x2a2c: 0x2b, 0x2a2d: 0x2c, 0x2a2e: 0x5a9, 0x2a2f: 0x2e,
-	0x2a30: 0x2f, 0x2a31: 0x30, 0x2a32: 0x31, 0x2a33: 0x32, 0x2a34: 0x33, 0x2a35: 0x34, 0x2a36: 0x35, 0x2a37: 0x36,
-	0x2a38: 0x37, 0x2a39: 0x38, 0x2a3a: 0x39, 0x2a3b: 0x3a, 0x2a3c: 0x3b, 0x2a3d: 0x3c, 0x2a3e: 0x3d, 0x2a3f: 0x3e,
-	// Block 0xa9, offset 0x2a40
-	0x2a42: 0x01, 0x2a43: 0x02, 0x2a44: 0x03, 0x2a45: 0x04, 0x2a46: 0x05, 0x2a47: 0x06,
-	0x2a48: 0x07, 0x2a49: 0x08, 0x2a4a: 0x09, 0x2a4b: 0x0a, 0x2a4c: 0x0b, 0x2a4d: 0x0c, 0x2a4e: 0x0d, 0x2a4f: 0x0e,
-	0x2a50: 0x0f, 0x2a51: 0x10, 0x2a52: 0x11, 0x2a53: 0x12, 0x2a54: 0x13, 0x2a55: 0x14, 0x2a56: 0x15, 0x2a57: 0x16,
-	0x2a58: 0x17, 0x2a59: 0x18, 0x2a5a: 0x19, 0x2a5b: 0x1a, 0x2a5c: 0x1b, 0x2a5d: 0x1c, 0x2a5e: 0x1d, 0x2a5f: 0x1e,
-	0x2a60: 0xa6, 0x2a61: 0x02, 0x2a62: 0x03, 0x2a63: 0x04, 0x2a64: 0x05,
-	0x2a6a: 0x06, 0x2a6d: 0x07, 0x2a6f: 0x08,
-	0x2a70: 0x13, 0x2a73: 0x15,
-	// Block 0xaa, offset 0x2a80
-	0x2aa0: 0x1f, 0x2aa1: 0x20, 0x2aa2: 0x21, 0x2aa3: 0x22, 0x2aa4: 0x23, 0x2aa5: 0x24, 0x2aa6: 0x25, 0x2aa7: 0x26,
-	0x2aa8: 0x27, 0x2aa9: 0x28, 0x2aaa: 0x29, 0x2aab: 0x2a, 0x2aac: 0x2b, 0x2aad: 0x2c, 0x2aae: 0x2d, 0x2aaf: 0x2e,
-	0x2ab0: 0x5aa, 0x2ab1: 0x30, 0x2ab2: 0x31, 0x2ab3: 0x32, 0x2ab4: 0x33, 0x2ab5: 0x34, 0x2ab6: 0x35, 0x2ab7: 0x36,
-	0x2ab8: 0x37, 0x2ab9: 0x38, 0x2aba: 0x39, 0x2abb: 0x3a, 0x2abc: 0x3b, 0x2abd: 0x3c, 0x2abe: 0x3d, 0x2abf: 0x3e,
-	// Block 0xab, offset 0x2ac0
-	0x2ac2: 0x01, 0x2ac3: 0x02, 0x2ac4: 0x03, 0x2ac5: 0x04, 0x2ac6: 0x05, 0x2ac7: 0x06,
-	0x2ac8: 0x07, 0x2ac9: 0x08, 0x2aca: 0x09, 0x2acb: 0x0a, 0x2acc: 0x0b, 0x2acd: 0x0c, 0x2ace: 0x0d, 0x2acf: 0x0e,
-	0x2ad0: 0x0f, 0x2ad1: 0x10, 0x2ad2: 0x11, 0x2ad3: 0x12, 0x2ad4: 0x13, 0x2ad5: 0x14, 0x2ad6: 0x15, 0x2ad7: 0x16,
-	0x2ad8: 0x17, 0x2ad9: 0x18, 0x2ada: 0x19, 0x2adb: 0x1a, 0x2adc: 0x1b, 0x2add: 0x1c, 0x2ade: 0x1d, 0x2adf: 0x1e,
-	0x2ae0: 0xa8, 0x2ae1: 0x02, 0x2ae2: 0x03, 0x2ae3: 0x04, 0x2ae4: 0x05,
-	0x2aea: 0x06, 0x2aed: 0x07, 0x2aef: 0x08,
-	0x2af0: 0x13, 0x2af3: 0x15,
-	// Block 0xac, offset 0x2b00
-	0x2b20: 0x1f, 0x2b21: 0x20, 0x2b22: 0x21, 0x2b23: 0x22, 0x2b24: 0x23, 0x2b25: 0x24, 0x2b26: 0x25, 0x2b27: 0x26,
-	0x2b28: 0x27, 0x2b29: 0x28, 0x2b2a: 0x29, 0x2b2b: 0x2a, 0x2b2c: 0x2b, 0x2b2d: 0x2c, 0x2b2e: 0x2d, 0x2b2f: 0x2e,
-	0x2b30: 0x2f, 0x2b31: 0x30, 0x2b32: 0x31, 0x2b33: 0x32, 0x2b34: 0x33, 0x2b35: 0x34, 0x2b36: 0x35, 0x2b37: 0x36,
-	0x2b38: 0x5ab, 0x2b39: 0x5ac, 0x2b3a: 0x39, 0x2b3b: 0x3a, 0x2b3c: 0x3b, 0x2b3d: 0x3c, 0x2b3e: 0x3d, 0x2b3f: 0x3e,
-	// Block 0xad, offset 0x2b40
-	0x2b42: 0x01, 0x2b43: 0x02, 0x2b44: 0x03, 0x2b45: 0x04, 0x2b46: 0x05, 0x2b47: 0x06,
-	0x2b48: 0x07, 0x2b49: 0x08, 0x2b4a: 0x09, 0x2b4b: 0x0a, 0x2b4c: 0x0b, 0x2b4d: 0x0c, 0x2b4e: 0x0d, 0x2b4f: 0x0e,
-	0x2b50: 0x0f, 0x2b51: 0x10, 0x2b52: 0x11, 0x2b53: 0x12, 0x2b54: 0x13, 0x2b55: 0x14, 0x2b56: 0x15, 0x2b57: 0x16,
-	0x2b58: 0x17, 0x2b59: 0x18, 0x2b5a: 0x19, 0x2b5b: 0x1a, 0x2b5c: 0x1b, 0x2b5d: 0x1c, 0x2b5e: 0x1d, 0x2b5f: 0x1e,
-	0x2b60: 0xaa, 0x2b61: 0x02, 0x2b62: 0x03, 0x2b63: 0x04, 0x2b64: 0x05,
-	0x2b6a: 0x06, 0x2b6d: 0x07, 0x2b6f: 0x08,
-	0x2b70: 0x13, 0x2b73: 0x15,
-	// Block 0xae, offset 0x2b80
-	0x2b80: 0x3f, 0x2b81: 0x40, 0x2b82: 0x41, 0x2b83: 0x42, 0x2b84: 0x43, 0x2b85: 0x44, 0x2b86: 0x45, 0x2b87: 0x46,
-	0x2b88: 0x47, 0x2b89: 0x48, 0x2b8a: 0x49, 0x2b8b: 0x4a, 0x2b8c: 0x4b, 0x2b8d: 0x4c, 0x2b8e: 0x4d, 0x2b8f: 0x4e,
-	0x2b90: 0x4f, 0x2b91: 0x50, 0x2b92: 0x51, 0x2b93: 0x52, 0x2b94: 0x53, 0x2b95: 0x54, 0x2b96: 0x55, 0x2b97: 0x56,
-	0x2b98: 0x57, 0x2b99: 0x58, 0x2b9a: 0x59, 0x2b9b: 0x5a, 0x2b9c: 0x5b, 0x2b9d: 0x5c, 0x2b9e: 0x5d, 0x2b9f: 0x5e,
-	0x2ba0: 0x5f, 0x2ba1: 0x60, 0x2ba2: 0x61, 0x2ba3: 0x62, 0x2ba4: 0x63, 0x2ba5: 0x64, 0x2ba6: 0x65, 0x2ba7: 0x66,
-	0x2ba8: 0x67, 0x2ba9: 0x68, 0x2baa: 0x69, 0x2bac: 0x6a, 0x2bad: 0x6b, 0x2bae: 0x6c, 0x2baf: 0x6d,
-	0x2bb0: 0x6e, 0x2bb1: 0x6f, 0x2bb3: 0x70, 0x2bb4: 0x71, 0x2bb5: 0x72, 0x2bb6: 0x73, 0x2bb7: 0x74,
-	0x2bb8: 0x5b5, 0x2bb9: 0x5b6, 0x2bba: 0x5b7, 0x2bbb: 0x5b8, 0x2bbc: 0x79, 0x2bbd: 0x7a, 0x2bbe: 0x7b, 0x2bbf: 0x7c,
-	// Block 0xaf, offset 0x2bc0
-	0x2bc2: 0x01, 0x2bc3: 0x5af, 0x2bc4: 0x5b0, 0x2bc5: 0x5b1, 0x2bc6: 0x05, 0x2bc7: 0x5b2,
-	0x2bc8: 0x5b3, 0x2bc9: 0x08, 0x2bca: 0x5b4, 0x2bcb: 0x0a, 0x2bcc: 0x0b, 0x2bcd: 0x0c, 0x2bce: 0x0d, 0x2bcf: 0x0e,
-	0x2bd0: 0x0f, 0x2bd1: 0x10, 0x2bd2: 0x11, 0x2bd3: 0x12, 0x2bd4: 0x13, 0x2bd5: 0x14, 0x2bd6: 0x15, 0x2bd7: 0x16,
-	0x2bd8: 0x17, 0x2bd9: 0x18, 0x2bda: 0x19, 0x2bdb: 0x1a, 0x2bdc: 0x1b, 0x2bdd: 0x1c, 0x2bde: 0x1d, 0x2bdf: 0x1e,
-	0x2be0: 0x01, 0x2be1: 0xac, 0x2be2: 0x03, 0x2be3: 0x04, 0x2be4: 0x05,
-	0x2bea: 0x06, 0x2bed: 0x07, 0x2bef: 0x08,
-	0x2bf0: 0x13, 0x2bf3: 0x15,
-	// Block 0xb0, offset 0x2c00
-	0x2c00: 0x3f, 0x2c01: 0x40, 0x2c02: 0x41, 0x2c03: 0x42, 0x2c04: 0x43, 0x2c05: 0x44, 0x2c06: 0x45, 0x2c07: 0x46,
-	0x2c08: 0x47, 0x2c09: 0x48, 0x2c0a: 0x49, 0x2c0b: 0x4a, 0x2c0c: 0x4b, 0x2c0d: 0x4c, 0x2c0e: 0x4d, 0x2c0f: 0x4e,
-	0x2c10: 0x4f, 0x2c11: 0x50, 0x2c12: 0x51, 0x2c13: 0x52, 0x2c14: 0x53, 0x2c15: 0x54, 0x2c16: 0x55, 0x2c17: 0x56,
-	0x2c18: 0x57, 0x2c19: 0x58, 0x2c1a: 0x59, 0x2c1b: 0x5a, 0x2c1c: 0x5b, 0x2c1d: 0x5c, 0x2c1e: 0x5d, 0x2c1f: 0x5e,
-	0x2c20: 0x5f, 0x2c21: 0x60, 0x2c22: 0x61, 0x2c23: 0x62, 0x2c24: 0x63, 0x2c25: 0x64, 0x2c26: 0x65, 0x2c27: 0x66,
-	0x2c28: 0x67, 0x2c29: 0x68, 0x2c2a: 0x69, 0x2c2c: 0x6a, 0x2c2d: 0x6b, 0x2c2e: 0x6c, 0x2c2f: 0x6d,
-	0x2c30: 0x6e, 0x2c31: 0x6f, 0x2c33: 0x70, 0x2c34: 0x71, 0x2c35: 0x72, 0x2c36: 0x73, 0x2c37: 0x74,
-	0x2c38: 0x1c7, 0x2c39: 0x1c8, 0x2c3a: 0x77, 0x2c3b: 0x1ca, 0x2c3c: 0x79, 0x2c3d: 0x7a, 0x2c3e: 0x7b, 0x2c3f: 0x7c,
-	// Block 0xb1, offset 0x2c40
-	0x2c40: 0x7d, 0x2c41: 0x7e, 0x2c42: 0x7f, 0x2c43: 0x80, 0x2c44: 0x81, 0x2c45: 0x5bb, 0x2c46: 0x83, 0x2c47: 0x84,
-	0x2c48: 0x85, 0x2c49: 0x86, 0x2c4a: 0x87, 0x2c4b: 0x88, 0x2c4c: 0x89, 0x2c4d: 0x8a, 0x2c4e: 0x8b, 0x2c4f: 0x8c,
-	0x2c50: 0x8d, 0x2c51: 0x8e, 0x2c52: 0x8f, 0x2c53: 0x90, 0x2c54: 0x91, 0x2c55: 0x92, 0x2c56: 0x93, 0x2c57: 0x94,
-	0x2c58: 0x95, 0x2c59: 0x96, 0x2c5a: 0x97, 0x2c5b: 0x98, 0x2c5c: 0x99, 0x2c5d: 0x9a, 0x2c5e: 0x9b, 0x2c5f: 0x9c,
-	0x2c60: 0x9d, 0x2c61: 0x9e, 0x2c62: 0x9f, 0x2c63: 0xa0, 0x2c64: 0xa1, 0x2c65: 0xa2, 0x2c66: 0xa3, 0x2c67: 0xa4,
-	0x2c68: 0xa5, 0x2c69: 0xa6, 0x2c6a: 0xa7, 0x2c6b: 0xa8, 0x2c6c: 0xa9, 0x2c6d: 0xaa,
-	0x2c70: 0xab, 0x2c71: 0xac, 0x2c72: 0xad, 0x2c73: 0xae, 0x2c74: 0xaf, 0x2c75: 0xb0, 0x2c76: 0xb1, 0x2c77: 0xb2,
-	0x2c78: 0xb3, 0x2c7a: 0xb4, 0x2c7b: 0xb5, 0x2c7c: 0xb6, 0x2c7d: 0xb7, 0x2c7e: 0xb8, 0x2c7f: 0xb9,
-	// Block 0xb2, offset 0x2c80
-	0x2c80: 0xba, 0x2c81: 0xbb, 0x2c82: 0xbc, 0x2c83: 0xbd, 0x2c84: 0xbe, 0x2c85: 0xbf, 0x2c86: 0xc0, 0x2c87: 0xc1,
-	0x2c88: 0xc2, 0x2c89: 0xc3, 0x2c8a: 0xc4, 0x2c8b: 0xc5, 0x2c8c: 0xc6, 0x2c8d: 0x1cd, 0x2c8e: 0xc8, 0x2c8f: 0xc9,
-	// Block 0xb3, offset 0x2cc0
-	0x2cc0: 0x18b, 0x2cc1: 0x18c, 0x2cc2: 0x18d, 0x2cc3: 0x18e, 0x2cc4: 0x5bc, 0x2cc5: 0x190, 0x2cc6: 0x191, 0x2cc7: 0x192,
-	0x2cc8: 0x193, 0x2cc9: 0x194, 0x2ccc: 0x195, 0x2ccd: 0x196, 0x2cce: 0x197, 0x2ccf: 0x198,
-	0x2cd0: 0x199, 0x2cd1: 0x19a, 0x2cd2: 0x19b, 0x2cd3: 0x19c, 0x2cd4: 0x19d, 0x2cd5: 0x19e, 0x2cd7: 0x19f,
-	0x2cd8: 0x1a0, 0x2cd9: 0x1a1, 0x2cda: 0x1a2, 0x2cdb: 0x1a3, 0x2cdc: 0x1a4, 0x2cdd: 0x1a5,
-	// Block 0xb4, offset 0x2d00
-	0x2d10: 0x09, 0x2d11: 0x0a, 0x2d12: 0x0b, 0x2d13: 0x0c, 0x2d16: 0x0d,
-	0x2d1b: 0x0e, 0x2d1d: 0x0f, 0x2d1e: 0x10, 0x2d1f: 0xb1,
-	0x2d2f: 0x12,
-	// Block 0xb5, offset 0x2d40
-	0x2d42: 0x01, 0x2d43: 0x1c0, 0x2d44: 0x1c1, 0x2d45: 0x1c2, 0x2d46: 0x05, 0x2d47: 0x1c4,
-	0x2d48: 0x1c5, 0x2d49: 0x08, 0x2d4a: 0x09, 0x2d4b: 0x0a, 0x2d4c: 0x0b, 0x2d4d: 0x0c, 0x2d4e: 0x0d, 0x2d4f: 0x0e,
-	0x2d50: 0x0f, 0x2d51: 0x10, 0x2d52: 0x11, 0x2d53: 0x12, 0x2d54: 0x13, 0x2d55: 0x14, 0x2d56: 0x15, 0x2d57: 0x16,
-	0x2d58: 0x17, 0x2d59: 0x18, 0x2d5a: 0x19, 0x2d5b: 0x1a, 0x2d5c: 0x1b, 0x2d5d: 0x1c, 0x2d5e: 0x1d, 0x2d5f: 0x1e,
-	0x2d60: 0x01, 0x2d61: 0xae, 0x2d62: 0xaf, 0x2d63: 0xb0, 0x2d64: 0x05,
-	0x2d6a: 0x06, 0x2d6d: 0x07, 0x2d6f: 0x08,
-	0x2d70: 0xb2, 0x2d73: 0x15,
-	// Block 0xb6, offset 0x2d80
-	0x2d82: 0x01, 0x2d83: 0x02, 0x2d84: 0x03, 0x2d85: 0x04, 0x2d86: 0x05, 0x2d87: 0x06,
-	0x2d88: 0x07, 0x2d89: 0x08, 0x2d8a: 0x09, 0x2d8b: 0x0a, 0x2d8c: 0x0b, 0x2d8d: 0x0c, 0x2d8e: 0x0d, 0x2d8f: 0x0e,
-	0x2d90: 0x0f, 0x2d91: 0x10, 0x2d92: 0x5bd, 0x2d93: 0x12, 0x2d94: 0x13, 0x2d95: 0x14, 0x2d96: 0x15, 0x2d97: 0x16,
-	0x2d98: 0x17, 0x2d99: 0x18, 0x2d9a: 0x19, 0x2d9b: 0x1a, 0x2d9c: 0x1b, 0x2d9d: 0x1c, 0x2d9e: 0x1d, 0x2d9f: 0x1e,
-	0x2da0: 0x01, 0x2da1: 0x02, 0x2da2: 0x03, 0x2da3: 0x04, 0x2da4: 0x05,
-	0x2daa: 0x06, 0x2dad: 0x07, 0x2daf: 0x08,
-	0x2db0: 0x13, 0x2db3: 0x15,
-	// Block 0xb7, offset 0x2dc0
-	0x2de4: 0xfb, 0x2de5: 0xfc, 0x2de6: 0xfd, 0x2de7: 0xfe,
-	0x2de8: 0xff, 0x2de9: 0x100, 0x2dea: 0x101, 0x2deb: 0x102, 0x2dec: 0x103, 0x2ded: 0x104, 0x2dee: 0x232, 0x2def: 0x106,
-	0x2df0: 0x5c2, 0x2df1: 0x5c3, 0x2df2: 0x5c4, 0x2df3: 0x5c5, 0x2df4: 0x5c6, 0x2df5: 0x10c, 0x2df6: 0x10d, 0x2df7: 0x10e,
-	0x2df8: 0x10f, 0x2df9: 0x110, 0x2dfa: 0x111, 0x2dfb: 0x5c7, 0x2dfc: 0x113, 0x2dfd: 0x114, 0x2dfe: 0x115, 0x2dff: 0x116,
-	// Block 0xb8, offset 0x2e00
-	0x2e02: 0x01, 0x2e03: 0x02, 0x2e04: 0x03, 0x2e05: 0x04, 0x2e06: 0x05, 0x2e07: 0x06,
-	0x2e08: 0x07, 0x2e09: 0x08, 0x2e0a: 0x09, 0x2e0b: 0x0a, 0x2e0c: 0x0b, 0x2e0d: 0x0c, 0x2e0e: 0x0d, 0x2e0f: 0x0e,
-	0x2e10: 0x0f, 0x2e11: 0x10, 0x2e12: 0x11, 0x2e13: 0x12, 0x2e14: 0x13, 0x2e15: 0x14, 0x2e16: 0x15, 0x2e17: 0x16,
-	0x2e18: 0x5be, 0x2e19: 0x5bf, 0x2e1a: 0x5c0, 0x2e1b: 0x5c1, 0x2e1c: 0x1b, 0x2e1d: 0x1c, 0x2e1e: 0x1d, 0x2e1f: 0x1e,
-	0x2e20: 0x01, 0x2e21: 0x02, 0x2e22: 0x03, 0x2e23: 0x04, 0x2e24: 0x05,
-	0x2e2a: 0x06, 0x2e2d: 0x07, 0x2e2f: 0xb5,
-	0x2e30: 0x13, 0x2e33: 0x15,
-	// Block 0xb9, offset 0x2e40
-	0x2e40: 0x3f, 0x2e41: 0x40, 0x2e42: 0x41, 0x2e43: 0x42, 0x2e44: 0x43, 0x2e45: 0x44, 0x2e46: 0x45, 0x2e47: 0x46,
-	0x2e48: 0x47, 0x2e49: 0x48, 0x2e4a: 0x49, 0x2e4b: 0x4a, 0x2e4c: 0x4b, 0x2e4d: 0x4c, 0x2e4e: 0x4d, 0x2e4f: 0x4e,
-	0x2e50: 0x4f, 0x2e51: 0x50, 0x2e52: 0x51, 0x2e53: 0x52, 0x2e54: 0x53, 0x2e55: 0x54, 0x2e56: 0x55, 0x2e57: 0x56,
-	0x2e58: 0x57, 0x2e59: 0x58, 0x2e5a: 0x59, 0x2e5b: 0x5a, 0x2e5c: 0x5b, 0x2e5d: 0x5c, 0x2e5e: 0x5d, 0x2e5f: 0x5e,
-	0x2e60: 0x5f, 0x2e61: 0x60, 0x2e62: 0x61, 0x2e63: 0x62, 0x2e64: 0x63, 0x2e65: 0x64, 0x2e66: 0x65, 0x2e67: 0x66,
-	0x2e68: 0x67, 0x2e69: 0x68, 0x2e6a: 0x69, 0x2e6c: 0x6a, 0x2e6d: 0x6b, 0x2e6e: 0x6c, 0x2e6f: 0x6d,
-	0x2e70: 0x6e, 0x2e71: 0x6f, 0x2e73: 0x70, 0x2e74: 0x71, 0x2e75: 0x72, 0x2e76: 0x73, 0x2e77: 0x74,
-	0x2e78: 0x5d4, 0x2e79: 0x5d5, 0x2e7a: 0x5d6, 0x2e7b: 0x5d7, 0x2e7c: 0x5d8, 0x2e7d: 0x5d9, 0x2e7e: 0x5da, 0x2e7f: 0x5db,
-	// Block 0xba, offset 0x2e80
-	0x2e82: 0x01, 0x2e83: 0x5ca, 0x2e84: 0x5cb, 0x2e85: 0x5cc, 0x2e86: 0x5cd, 0x2e87: 0x5ce,
-	0x2e88: 0x5cf, 0x2e89: 0x08, 0x2e8a: 0x09, 0x2e8b: 0x0a, 0x2e8c: 0x5d0, 0x2e8d: 0x5d1, 0x2e8e: 0x5d2, 0x2e8f: 0x5d3,
-	0x2e90: 0x0f, 0x2e91: 0x10, 0x2e92: 0x11, 0x2e93: 0x12, 0x2e94: 0x13, 0x2e95: 0x14, 0x2e96: 0x15, 0x2e97: 0x16,
-	0x2e98: 0x17, 0x2e99: 0x18, 0x2e9a: 0x19, 0x2e9b: 0x1a, 0x2e9c: 0x1b, 0x2e9d: 0x1c, 0x2e9e: 0x1d, 0x2e9f: 0x1e,
-	0x2ea0: 0x01, 0x2ea1: 0xb7, 0x2ea2: 0x03, 0x2ea3: 0x04, 0x2ea4: 0x05,
-	0x2eaa: 0x06, 0x2ead: 0x07, 0x2eaf: 0x08,
-	0x2eb0: 0x13, 0x2eb3: 0x15,
-	// Block 0xbb, offset 0x2ec0
-	0x2ec2: 0x01, 0x2ec3: 0x5de, 0x2ec4: 0x03, 0x2ec5: 0x04, 0x2ec6: 0x05, 0x2ec7: 0x06,
-	0x2ec8: 0x07, 0x2ec9: 0x08, 0x2eca: 0x09, 0x2ecb: 0x0a, 0x2ecc: 0x0b, 0x2ecd: 0x0c, 0x2ece: 0x0d, 0x2ecf: 0x0e,
-	0x2ed0: 0x0f, 0x2ed1: 0x10, 0x2ed2: 0x11, 0x2ed3: 0x12, 0x2ed4: 0x13, 0x2ed5: 0x14, 0x2ed6: 0x15, 0x2ed7: 0x16,
-	0x2ed8: 0x17, 0x2ed9: 0x18, 0x2eda: 0x19, 0x2edb: 0x1a, 0x2edc: 0x1b, 0x2edd: 0x1c, 0x2ede: 0x1d, 0x2edf: 0x1e,
-	0x2ee0: 0x01, 0x2ee1: 0x02, 0x2ee2: 0x03, 0x2ee3: 0x04, 0x2ee4: 0x05,
-	0x2eea: 0x06, 0x2eed: 0x07, 0x2eef: 0x08,
-	0x2ef0: 0x13, 0x2ef3: 0x15,
-	// Block 0xbc, offset 0x2f00
-	0x2f00: 0x3f, 0x2f01: 0x40, 0x2f02: 0x41, 0x2f03: 0x42, 0x2f04: 0x43, 0x2f05: 0x44, 0x2f06: 0x45, 0x2f07: 0x46,
-	0x2f08: 0x47, 0x2f09: 0x48, 0x2f0a: 0x49, 0x2f0b: 0x4a, 0x2f0c: 0x4b, 0x2f0d: 0x4c, 0x2f0e: 0x4d, 0x2f0f: 0x4e,
-	0x2f10: 0x4f, 0x2f11: 0x50, 0x2f12: 0x51, 0x2f13: 0x52, 0x2f14: 0x53, 0x2f15: 0x54, 0x2f16: 0x55, 0x2f17: 0x56,
-	0x2f18: 0x57, 0x2f19: 0x58, 0x2f1a: 0x59, 0x2f1b: 0x5a, 0x2f1c: 0x5b, 0x2f1d: 0x5c, 0x2f1e: 0x5d, 0x2f1f: 0x5e,
-	0x2f20: 0x5f, 0x2f21: 0x60, 0x2f22: 0x61, 0x2f23: 0x62, 0x2f24: 0x63, 0x2f25: 0x64, 0x2f26: 0x65, 0x2f27: 0x66,
-	0x2f28: 0x67, 0x2f29: 0x68, 0x2f2a: 0x69, 0x2f2c: 0x6a, 0x2f2d: 0x6b, 0x2f2e: 0x6c, 0x2f2f: 0x6d,
-	0x2f30: 0x6e, 0x2f31: 0x6f, 0x2f33: 0x70, 0x2f34: 0x71, 0x2f35: 0x72, 0x2f36: 0x73, 0x2f37: 0x74,
-	0x2f38: 0x75, 0x2f39: 0x5e1, 0x2f3a: 0x5e2, 0x2f3b: 0x5e3, 0x2f3c: 0x79, 0x2f3d: 0x7a, 0x2f3e: 0x7b, 0x2f3f: 0x7c,
-	// Block 0xbd, offset 0x2f40
-	0x2f42: 0x01, 0x2f43: 0x02, 0x2f44: 0x03, 0x2f45: 0x04, 0x2f46: 0x05, 0x2f47: 0x06,
-	0x2f48: 0x07, 0x2f49: 0x08, 0x2f4a: 0x09, 0x2f4b: 0x0a, 0x2f4c: 0x0b, 0x2f4d: 0x0c, 0x2f4e: 0x0d, 0x2f4f: 0x0e,
-	0x2f50: 0x0f, 0x2f51: 0x10, 0x2f52: 0x11, 0x2f53: 0x12, 0x2f54: 0x13, 0x2f55: 0x14, 0x2f56: 0x15, 0x2f57: 0x16,
-	0x2f58: 0x17, 0x2f59: 0x18, 0x2f5a: 0x19, 0x2f5b: 0x1a, 0x2f5c: 0x1b, 0x2f5d: 0x1c, 0x2f5e: 0x1d, 0x2f5f: 0x1e,
-	0x2f60: 0x01, 0x2f61: 0xba, 0x2f62: 0x03, 0x2f63: 0x04, 0x2f64: 0x05,
-	0x2f6a: 0x06, 0x2f6d: 0x07, 0x2f6f: 0x08,
-	0x2f70: 0x13, 0x2f73: 0x15,
-	// Block 0xbe, offset 0x2f80
-	0x2f80: 0x3f, 0x2f81: 0x40, 0x2f82: 0x41, 0x2f83: 0x42, 0x2f84: 0x43, 0x2f85: 0x44, 0x2f86: 0x45, 0x2f87: 0x46,
-	0x2f88: 0x47, 0x2f89: 0x48, 0x2f8a: 0x49, 0x2f8b: 0x4a, 0x2f8c: 0x4b, 0x2f8d: 0x4c, 0x2f8e: 0x4d, 0x2f8f: 0x4e,
-	0x2f90: 0x4f, 0x2f91: 0x50, 0x2f92: 0x51, 0x2f93: 0x52, 0x2f94: 0x53, 0x2f95: 0x54, 0x2f96: 0x55, 0x2f97: 0x56,
-	0x2f98: 0x57, 0x2f99: 0x58, 0x2f9a: 0x59, 0x2f9b: 0x5a, 0x2f9c: 0x5b, 0x2f9d: 0x5c, 0x2f9e: 0x5d, 0x2f9f: 0x5e,
-	0x2fa0: 0x5f, 0x2fa1: 0x60, 0x2fa2: 0x61, 0x2fa3: 0x62, 0x2fa4: 0x63, 0x2fa5: 0x64, 0x2fa6: 0x65, 0x2fa7: 0x66,
-	0x2fa8: 0x67, 0x2fa9: 0x68, 0x2faa: 0x69, 0x2fac: 0x6a, 0x2fad: 0x6b, 0x2fae: 0x6c, 0x2faf: 0x6d,
-	0x2fb0: 0x6e, 0x2fb1: 0x6f, 0x2fb3: 0x70, 0x2fb4: 0x71, 0x2fb5: 0x72, 0x2fb6: 0x73, 0x2fb7: 0x74,
-	0x2fb8: 0x5eb, 0x2fb9: 0x5ec, 0x2fba: 0x5ed, 0x2fbb: 0x5ee, 0x2fbc: 0x79, 0x2fbd: 0x7a, 0x2fbe: 0x7b, 0x2fbf: 0x7c,
-	// Block 0xbf, offset 0x2fc0
-	0x2fc0: 0x7d, 0x2fc1: 0x7e, 0x2fc2: 0x7f, 0x2fc3: 0x80, 0x2fc4: 0x81, 0x2fc5: 0x82, 0x2fc6: 0x83, 0x2fc7: 0x84,
-	0x2fc8: 0x85, 0x2fc9: 0x86, 0x2fca: 0x87, 0x2fcb: 0x88, 0x2fcc: 0x89, 0x2fcd: 0x8a, 0x2fce: 0x8b, 0x2fcf: 0x8c,
-	0x2fd0: 0x8d, 0x2fd1: 0x8e, 0x2fd2: 0x8f, 0x2fd3: 0x90, 0x2fd4: 0x91, 0x2fd5: 0x92, 0x2fd6: 0x93, 0x2fd7: 0x94,
-	0x2fd8: 0x95, 0x2fd9: 0x96, 0x2fda: 0x97, 0x2fdb: 0x98, 0x2fdc: 0x99, 0x2fdd: 0x9a, 0x2fde: 0x9b, 0x2fdf: 0x9c,
-	0x2fe0: 0x9d, 0x2fe1: 0x9e, 0x2fe2: 0x9f, 0x2fe3: 0xa0, 0x2fe4: 0xa1, 0x2fe5: 0xa2, 0x2fe6: 0xa3, 0x2fe7: 0xa4,
-	0x2fe8: 0xa5, 0x2fe9: 0xa6, 0x2fea: 0xa7, 0x2feb: 0xa8, 0x2fec: 0xa9, 0x2fed: 0xaa,
-	0x2ff0: 0xab, 0x2ff1: 0xac, 0x2ff2: 0xad, 0x2ff3: 0xae, 0x2ff4: 0xaf, 0x2ff5: 0xb0, 0x2ff6: 0xb1, 0x2ff7: 0xb2,
-	0x2ff8: 0xb3, 0x2ffa: 0x5ef, 0x2ffb: 0x5f0, 0x2ffc: 0x5f1, 0x2ffd: 0x5f2, 0x2ffe: 0x5f3, 0x2fff: 0x5f4,
-	// Block 0xc0, offset 0x3000
-	0x3000: 0x5f5, 0x3001: 0xbb, 0x3002: 0xbc, 0x3003: 0xbd, 0x3004: 0xbe, 0x3005: 0xbf, 0x3006: 0x5f6, 0x3007: 0xc1,
-	0x3008: 0x5f7, 0x3009: 0x5f8, 0x300a: 0x5f9, 0x300b: 0x5fa, 0x300c: 0xc6, 0x300d: 0x5fb, 0x300e: 0xc8, 0x300f: 0x5fc,
-	0x3010: 0x5fd, 0x3011: 0x5fe, 0x3012: 0x5ff, 0x3013: 0x600, 0x3014: 0x601, 0x3015: 0x602, 0x3016: 0x603, 0x3017: 0x604,
-	0x3018: 0x605, 0x3019: 0x606, 0x301a: 0x607, 0x301b: 0x608, 0x301c: 0x609, 0x301d: 0x60a, 0x301e: 0x60b, 0x301f: 0x60c,
-	0x3020: 0x60d, 0x3021: 0x60e, 0x3022: 0x60f, 0x3023: 0x610, 0x3024: 0x611, 0x3025: 0x612, 0x3026: 0x613, 0x3027: 0x614,
-	0x3028: 0x615, 0x3029: 0x616, 0x302a: 0x617, 0x302b: 0x618, 0x302c: 0x619, 0x302d: 0x61a, 0x302e: 0x61b, 0x302f: 0x61c,
-	0x3030: 0x61d, 0x3031: 0x61e, 0x3032: 0x61f, 0x3033: 0x620, 0x3034: 0x621, 0x3035: 0x622, 0x3036: 0x623, 0x3037: 0x624,
-	0x3038: 0x625, 0x3039: 0x626, 0x303a: 0x627, 0x303b: 0x628, 0x303c: 0x629, 0x303d: 0x62a, 0x303e: 0x62b, 0x303f: 0x62c,
-	// Block 0xc1, offset 0x3040
-	0x3040: 0x62d, 0x3041: 0x62e, 0x3042: 0x62f, 0x3043: 0x630, 0x3044: 0x631, 0x3045: 0x632, 0x3046: 0x633, 0x3047: 0x634,
-	0x3048: 0x635, 0x3049: 0x636, 0x304a: 0x637, 0x304b: 0x638, 0x304c: 0x639, 0x304d: 0x63a, 0x304e: 0x63b, 0x304f: 0x63c,
-	0x3050: 0x63d, 0x3051: 0x63e, 0x3052: 0x63f, 0x3053: 0x640, 0x3054: 0x641, 0x3055: 0x642, 0x3056: 0x643, 0x3057: 0x644,
-	0x3058: 0x645, 0x3059: 0x646, 0x305a: 0x647, 0x305b: 0x648, 0x305c: 0x649, 0x305d: 0x64a, 0x305e: 0x64b, 0x305f: 0x64c,
-	0x3060: 0x64d, 0x3061: 0x64e, 0x3062: 0x64f, 0x3063: 0x650, 0x3064: 0x651, 0x3065: 0x652, 0x3066: 0x653, 0x3067: 0x654,
-	0x3068: 0x655, 0x3069: 0x656, 0x306a: 0x657, 0x306b: 0x658, 0x306c: 0x659, 0x306d: 0x65a, 0x306e: 0x65b, 0x306f: 0x65c,
-	0x3070: 0x65d, 0x3071: 0x65e, 0x3072: 0x65f, 0x3073: 0x660, 0x3074: 0x661, 0x3075: 0x662, 0x3076: 0x663, 0x3077: 0xca,
-	0x3078: 0x664, 0x3079: 0x665, 0x307a: 0x666, 0x307b: 0x667, 0x307c: 0x668, 0x307d: 0x669, 0x307e: 0x66a, 0x307f: 0x66b,
-	// Block 0xc2, offset 0x3080
-	0x3080: 0x66c, 0x3081: 0x66d, 0x3082: 0x66e, 0x3083: 0x66f, 0x3084: 0x670, 0x3085: 0x671, 0x3086: 0x672, 0x3087: 0x673,
-	0x3088: 0x674, 0x3089: 0x675, 0x308a: 0x676, 0x308b: 0x677, 0x308c: 0x678, 0x308d: 0x679, 0x308e: 0x67a, 0x308f: 0x67b,
-	0x3090: 0x67c, 0x3091: 0x67d, 0x3092: 0x67e, 0x3093: 0x67f, 0x3094: 0x680, 0x3095: 0x681, 0x3096: 0x682, 0x3097: 0x683,
-	0x3098: 0x684, 0x3099: 0x685, 0x309a: 0x686, 0x309b: 0x687, 0x309c: 0x688, 0x309d: 0x689, 0x309e: 0x68a, 0x309f: 0x68b,
-	0x30a0: 0x68c, 0x30a1: 0x68d, 0x30a2: 0x68e, 0x30a3: 0x68f, 0x30a4: 0x690, 0x30a5: 0x691, 0x30a6: 0x692, 0x30a7: 0x693,
-	0x30a8: 0x694, 0x30a9: 0x695, 0x30aa: 0x696, 0x30ab: 0x697, 0x30ac: 0x698, 0x30ad: 0x699, 0x30ae: 0x69a, 0x30af: 0x69b,
-	0x30b0: 0x69c, 0x30b1: 0x69d, 0x30b2: 0x69e, 0x30b3: 0x69f, 0x30b4: 0x6a0, 0x30b5: 0x6a1, 0x30b6: 0x6a2, 0x30b7: 0x6a3,
-	0x30b8: 0x6a4, 0x30b9: 0x6a5, 0x30ba: 0x6a6, 0x30bb: 0x6a7, 0x30bc: 0x6a8, 0x30bd: 0x6a9, 0x30be: 0x6aa, 0x30bf: 0x6ab,
-	// Block 0xc3, offset 0x30c0
-	0x30c0: 0x6ac, 0x30c1: 0x6ad, 0x30c2: 0x6ae, 0x30c3: 0x6af, 0x30c4: 0x6b0, 0x30c5: 0x6b1, 0x30c6: 0x6b2, 0x30c7: 0x6b3,
-	0x30c8: 0x6b4, 0x30c9: 0x6b5, 0x30ca: 0x6b6, 0x30cb: 0x6b7, 0x30cc: 0x6b8, 0x30cd: 0x6b9, 0x30ce: 0x6ba, 0x30cf: 0x6bb,
-	0x30d0: 0x6bc, 0x30d1: 0x6bd, 0x30d2: 0x6be, 0x30d3: 0x6bf, 0x30d4: 0x6c0, 0x30d5: 0x6c1, 0x30d6: 0x6c2, 0x30d7: 0x6c3,
-	0x30d8: 0x6c4, 0x30d9: 0x6c5, 0x30da: 0x6c6, 0x30db: 0x6c7, 0x30dc: 0x6c8, 0x30dd: 0x6c9, 0x30de: 0x6ca, 0x30df: 0x6cb,
-	0x30e0: 0x6cc, 0x30e1: 0x6cd, 0x30e2: 0x6ce, 0x30e3: 0x6cf, 0x30e4: 0x6d0, 0x30e5: 0x6d1, 0x30e6: 0x6d2, 0x30e7: 0x6d3,
-	0x30e8: 0x6d4, 0x30e9: 0x6d5, 0x30ea: 0x6d6, 0x30eb: 0x6d7, 0x30ec: 0x6d8, 0x30ed: 0x6d9, 0x30ee: 0x6da, 0x30ef: 0x6db,
-	0x30f0: 0x6dc, 0x30f1: 0x6dd, 0x30f2: 0x6de, 0x30f3: 0x6df, 0x30f4: 0x6e0, 0x30f5: 0x6e1, 0x30f6: 0x6e2, 0x30f7: 0x6e3,
-	0x30f8: 0x6e4, 0x30f9: 0x6e5, 0x30fa: 0x6e6, 0x30fb: 0x6e7, 0x30fc: 0x6e8, 0x30fd: 0x6e9, 0x30fe: 0x6ea, 0x30ff: 0x6eb,
-	// Block 0xc4, offset 0x3100
-	0x3100: 0x6ec, 0x3101: 0x6ed, 0x3102: 0x6ee, 0x3103: 0x6ef, 0x3104: 0x6f0, 0x3105: 0x6f1, 0x3106: 0x6f2, 0x3107: 0x6f3,
-	0x3108: 0x6f4, 0x3109: 0x6f5, 0x310a: 0x6f6, 0x310b: 0x6f7, 0x310c: 0x6f8, 0x310d: 0x6f9, 0x310e: 0x6fa, 0x310f: 0x6fb,
-	0x3110: 0x6fc, 0x3111: 0x6fd, 0x3112: 0x6fe, 0x3113: 0x6ff, 0x3114: 0x700, 0x3115: 0x701, 0x3116: 0x702, 0x3117: 0x703,
-	0x3118: 0x704, 0x3119: 0x705, 0x311a: 0x706, 0x311b: 0x707, 0x311c: 0x708, 0x311d: 0x709, 0x311e: 0x70a, 0x311f: 0x70b,
-	0x3120: 0x70c, 0x3121: 0x70d, 0x3122: 0x70e, 0x3123: 0x70f, 0x3124: 0x710, 0x3125: 0x711, 0x3126: 0x712, 0x3127: 0x713,
-	0x3128: 0x714, 0x3129: 0x715, 0x312a: 0x716, 0x312b: 0x717, 0x312c: 0x718, 0x312d: 0x719, 0x312e: 0x71a, 0x312f: 0x71b,
-	0x3130: 0x71c, 0x3131: 0x71d, 0x3132: 0x71e, 0x3133: 0x71f, 0x3134: 0x720, 0x3135: 0x721, 0x3136: 0x722, 0x3137: 0x723,
-	0x3138: 0x724, 0x3139: 0x725, 0x313a: 0x726, 0x313b: 0x727, 0x313c: 0x728, 0x313d: 0x729, 0x313e: 0x72a, 0x313f: 0x72b,
-	// Block 0xc5, offset 0x3140
-	0x3140: 0x72c, 0x3141: 0x72d, 0x3142: 0x72e, 0x3143: 0x72f, 0x3144: 0x730, 0x3145: 0x731, 0x3146: 0x732, 0x3147: 0x733,
-	0x3148: 0x734, 0x3149: 0x735, 0x314a: 0x736, 0x314b: 0x737, 0x314c: 0x738, 0x314d: 0x739, 0x314e: 0x73a, 0x314f: 0x73b,
-	0x3150: 0x73c, 0x3151: 0x73d, 0x3152: 0x73e, 0x3153: 0x73f, 0x3154: 0x740, 0x3155: 0x741, 0x3156: 0x742, 0x3157: 0x743,
-	0x3158: 0x744, 0x3159: 0x745, 0x315a: 0x746, 0x315b: 0x747, 0x315c: 0x748, 0x315d: 0x749, 0x315e: 0x74a, 0x315f: 0x74b,
-	0x3160: 0x74c, 0x3161: 0x74d, 0x3162: 0x74e, 0x3163: 0x74f, 0x3164: 0x750, 0x3165: 0x751, 0x3166: 0x752, 0x3167: 0x753,
-	0x3168: 0x754, 0x3169: 0x755, 0x316a: 0x756, 0x316b: 0x757, 0x316c: 0x758, 0x316d: 0x759, 0x316e: 0x75a, 0x316f: 0x75b,
-	0x3170: 0x75c, 0x3171: 0x75d, 0x3172: 0x75e, 0x3173: 0x75f, 0x3174: 0x760, 0x3175: 0x761, 0x3176: 0x762, 0x3177: 0x763,
-	0x3178: 0x764, 0x3179: 0x765, 0x317a: 0x766, 0x317b: 0x767, 0x317c: 0x768, 0x317d: 0x769, 0x317e: 0x76a, 0x317f: 0x76b,
-	// Block 0xc6, offset 0x3180
-	0x3180: 0x76c, 0x3181: 0x76d, 0x3182: 0x76e, 0x3183: 0x76f, 0x3184: 0x770, 0x3185: 0x771, 0x3186: 0x772, 0x3187: 0x773,
-	0x3188: 0x774, 0x3189: 0x775, 0x318a: 0x776, 0x318b: 0x777, 0x318c: 0x778, 0x318d: 0x779, 0x318e: 0x77a, 0x318f: 0x77b,
-	0x3190: 0x77c, 0x3191: 0x77d, 0x3192: 0x77e, 0x3193: 0x77f, 0x3194: 0x780, 0x3195: 0x781, 0x3196: 0x782, 0x3197: 0x783,
-	0x3198: 0x784, 0x3199: 0x785, 0x319a: 0x786, 0x319b: 0x787, 0x319c: 0x788, 0x319d: 0x789, 0x319e: 0x78a, 0x319f: 0x78b,
-	0x31a0: 0x78c, 0x31a1: 0x78d, 0x31a2: 0x78e, 0x31a3: 0x78f, 0x31a4: 0x790, 0x31a5: 0x791, 0x31a6: 0x792, 0x31a7: 0x793,
-	0x31a8: 0x794, 0x31a9: 0x795, 0x31aa: 0x796, 0x31ab: 0x797, 0x31ac: 0x798, 0x31ad: 0x799, 0x31ae: 0x79a, 0x31af: 0x79b,
-	0x31b0: 0x79c, 0x31b1: 0x79d, 0x31b2: 0x79e, 0x31b3: 0x79f, 0x31b4: 0x7a0, 0x31b5: 0x7a1, 0x31b6: 0x7a2, 0x31b7: 0x7a3,
-	0x31b8: 0x7a4, 0x31b9: 0x7a5, 0x31ba: 0x7a6, 0x31bb: 0x7a7, 0x31bc: 0x7a8, 0x31bd: 0x7a9, 0x31be: 0x7aa, 0x31bf: 0x7ab,
-	// Block 0xc7, offset 0x31c0
-	0x31e4: 0x7ac, 0x31e5: 0x7ad, 0x31e6: 0x7ae, 0x31e7: 0x7af,
-	0x31e8: 0x7b0, 0x31e9: 0x7b1, 0x31ea: 0x7b2, 0x31eb: 0x7b3, 0x31ec: 0x103, 0x31ed: 0x104, 0x31ee: 0x105, 0x31ef: 0x106,
-	0x31f0: 0x107, 0x31f1: 0x108, 0x31f2: 0x109, 0x31f3: 0x10a, 0x31f4: 0x10b, 0x31f5: 0x10c, 0x31f6: 0x10d, 0x31f7: 0x10e,
-	0x31f8: 0x10f, 0x31f9: 0x110, 0x31fa: 0x111, 0x31fb: 0x112, 0x31fc: 0x113, 0x31fd: 0x114, 0x31fe: 0x115, 0x31ff: 0x116,
-	// Block 0xc8, offset 0x3200
-	0x3200: 0x18b, 0x3201: 0x18c, 0x3202: 0x18d, 0x3203: 0x18e, 0x3204: 0x18f, 0x3205: 0x190, 0x3206: 0x191, 0x3207: 0x192,
-	0x3208: 0x7b4, 0x3209: 0x7b5, 0x320c: 0x195, 0x320d: 0x196, 0x320e: 0x197, 0x320f: 0x198,
-	0x3210: 0x199, 0x3211: 0x19a, 0x3212: 0x19b, 0x3213: 0x19c, 0x3214: 0x19d, 0x3215: 0x19e, 0x3217: 0x19f,
-	0x3218: 0x1a0, 0x3219: 0x1a1, 0x321a: 0x1a2, 0x321b: 0x1a3, 0x321c: 0x1a4, 0x321d: 0x1a5,
-	// Block 0xc9, offset 0x3240
-	0x3240: 0x7b6, 0x3241: 0x7b7, 0x3242: 0x7b8, 0x3243: 0x7b9, 0x3244: 0x7ba, 0x3245: 0x7bb, 0x3246: 0x7bc, 0x3247: 0x7bd,
-	0x3248: 0x7be, 0x3249: 0x7bf, 0x324a: 0x7c0, 0x324b: 0x7c1, 0x324c: 0x7c2, 0x324d: 0x7c3, 0x324e: 0x7c4, 0x324f: 0x7c5,
-	0x3250: 0x7c6, 0x3251: 0x7c7, 0x3252: 0x7c8, 0x3253: 0x7c9, 0x3254: 0x7ca, 0x3255: 0x7cb, 0x3256: 0x7cc, 0x3257: 0x7cd,
-	0x3258: 0x7ce, 0x3259: 0x7cf, 0x325a: 0x7d0, 0x325b: 0x7d1, 0x325c: 0x7d2, 0x325d: 0x7d3, 0x325e: 0x7d4, 0x325f: 0x7d5,
-	0x3260: 0x7d6, 0x3261: 0x7d7, 0x3262: 0x7d8, 0x3263: 0x7d9, 0x3264: 0x7da, 0x3265: 0x7db, 0x3266: 0x7dc, 0x3267: 0x7dd,
-	0x3268: 0x7de, 0x3269: 0x7df, 0x326a: 0x7e0, 0x326b: 0x7e1, 0x326c: 0x7e2, 0x326d: 0x7e3, 0x326e: 0x7e4, 0x326f: 0x7e5,
-	0x3270: 0x7e6, 0x3271: 0x7e7, 0x3272: 0x7e8, 0x3273: 0x7e9, 0x3274: 0x7ea, 0x3275: 0x7eb, 0x3276: 0x7ec, 0x3277: 0x7ed,
-	0x3278: 0x7ee, 0x3279: 0x7ef, 0x327a: 0x7f0, 0x327b: 0x7f1, 0x327c: 0x7f2, 0x327d: 0x7f3, 0x327e: 0x7f4, 0x327f: 0x7f5,
-	// Block 0xca, offset 0x3280
-	0x3280: 0x7f6, 0x3281: 0x7f7, 0x3282: 0x7f8, 0x3283: 0x7f9, 0x3284: 0x7fa, 0x3285: 0x7fb, 0x3286: 0x7fc, 0x3287: 0x7fd,
-	0x3288: 0x7fe, 0x3289: 0x7ff, 0x328a: 0x800, 0x328b: 0x801, 0x328c: 0x802, 0x328d: 0x803, 0x328e: 0x804, 0x328f: 0x805,
-	0x3290: 0x806, 0x3291: 0x807, 0x3292: 0x808, 0x3293: 0x809, 0x3294: 0x80a, 0x3295: 0x80b, 0x3296: 0x80c, 0x3297: 0x80d,
-	0x3298: 0x80e, 0x3299: 0x80f, 0x329a: 0x810, 0x329b: 0x811, 0x329c: 0x812, 0x329d: 0x813, 0x329e: 0x814, 0x329f: 0x815,
-	0x32a0: 0x816, 0x32a1: 0x817, 0x32a2: 0x818, 0x32a3: 0x819, 0x32a4: 0x81a, 0x32a5: 0x81b, 0x32a6: 0x81c, 0x32a7: 0x81d,
-	0x32a8: 0x81e, 0x32a9: 0x81f, 0x32aa: 0x820, 0x32ab: 0x821, 0x32ac: 0x822, 0x32ad: 0x823, 0x32ae: 0x824, 0x32af: 0x825,
-	0x32b0: 0x826, 0x32b1: 0x827, 0x32b2: 0x828, 0x32b3: 0x829, 0x32b4: 0x82a, 0x32b5: 0x82b, 0x32b6: 0x82c, 0x32b7: 0x82d,
-	0x32b8: 0x82e, 0x32b9: 0x82f, 0x32ba: 0x830, 0x32bb: 0x831, 0x32bc: 0x832, 0x32bd: 0x833, 0x32be: 0x834, 0x32bf: 0x835,
-	// Block 0xcb, offset 0x32c0
-	0x32c0: 0x836, 0x32c1: 0x837, 0x32c2: 0x838, 0x32c3: 0x839, 0x32c4: 0x83a, 0x32c5: 0x83b, 0x32c6: 0x83c, 0x32c7: 0x83d,
-	0x32c8: 0x83e, 0x32c9: 0x83f, 0x32ca: 0x840, 0x32cb: 0x841, 0x32cc: 0x842, 0x32cd: 0x843, 0x32ce: 0x844, 0x32cf: 0x845,
-	0x32d0: 0x846, 0x32d1: 0x847, 0x32d2: 0x848, 0x32d3: 0x849, 0x32d4: 0x84a, 0x32d5: 0x84b, 0x32d6: 0x84c, 0x32d7: 0x84d,
-	0x32d8: 0x84e, 0x32d9: 0x84f, 0x32da: 0x850, 0x32db: 0x851, 0x32dc: 0x852, 0x32dd: 0x853, 0x32de: 0x854, 0x32df: 0x855,
-	0x32e0: 0x856, 0x32e1: 0x857, 0x32e2: 0x858, 0x32e3: 0x859, 0x32e4: 0x85a, 0x32e5: 0x85b, 0x32e6: 0x85c, 0x32e7: 0x85d,
-	0x32e8: 0x85e, 0x32e9: 0x85f, 0x32ea: 0x860, 0x32eb: 0x861, 0x32ec: 0x862, 0x32ed: 0x863, 0x32ee: 0x864, 0x32ef: 0x865,
-	0x32f0: 0x866, 0x32f1: 0x867, 0x32f2: 0x868, 0x32f3: 0x869, 0x32f4: 0x86a, 0x32f5: 0x86b, 0x32f6: 0x86c, 0x32f7: 0x86d,
-	0x32f8: 0x86e, 0x32f9: 0x86f, 0x32fa: 0x870, 0x32fb: 0x871, 0x32fc: 0x872, 0x32fd: 0x873, 0x32fe: 0x874, 0x32ff: 0x875,
-	// Block 0xcc, offset 0x3300
-	0x3300: 0x876, 0x3301: 0x877, 0x3302: 0x878, 0x3303: 0x879, 0x3304: 0x87a, 0x3305: 0x87b, 0x3306: 0x87c, 0x3307: 0x87d,
-	0x3308: 0x87e, 0x3309: 0x87f, 0x330a: 0x880, 0x330b: 0x881, 0x330c: 0x882, 0x330d: 0x883, 0x330e: 0x884, 0x330f: 0x885,
-	0x3310: 0x886, 0x3311: 0x887, 0x3312: 0x888, 0x3313: 0x889, 0x3314: 0x88a, 0x3315: 0x88b, 0x3316: 0x88c, 0x3317: 0x88d,
-	0x3318: 0x88e, 0x3319: 0x88f, 0x331a: 0x890, 0x331b: 0x891, 0x331c: 0x892, 0x331d: 0x893, 0x331e: 0x894, 0x331f: 0x895,
-	0x3320: 0x896, 0x3321: 0x897, 0x3322: 0x898, 0x3323: 0x899, 0x3324: 0x89a, 0x3325: 0x89b, 0x3326: 0x89c, 0x3327: 0x89d,
-	0x3328: 0x89e, 0x3329: 0x89f, 0x332a: 0x8a0, 0x332b: 0x8a1, 0x332c: 0x8a2, 0x332d: 0x8a3, 0x332e: 0x8a4, 0x332f: 0x8a5,
-	0x3330: 0x8a6, 0x3331: 0x8a7, 0x3332: 0x8a8, 0x3333: 0x8a9, 0x3334: 0x8aa, 0x3335: 0x8ab, 0x3336: 0x8ac, 0x3337: 0x8ad,
-	0x3338: 0x8ae, 0x3339: 0x8af, 0x333a: 0x8b0, 0x333b: 0x8b1, 0x333c: 0x8b2, 0x333d: 0x8b3, 0x333e: 0x8b4, 0x333f: 0x8b5,
-	// Block 0xcd, offset 0x3340
-	0x3340: 0x8b6, 0x3341: 0x8b7, 0x3342: 0x8b8, 0x3343: 0x8b9, 0x3344: 0x8ba, 0x3345: 0x8bb, 0x3346: 0x8bc, 0x3347: 0x8bd,
-	0x3348: 0x8be, 0x3349: 0x8bf, 0x334a: 0x8c0, 0x334b: 0x8c1, 0x334c: 0x8c2, 0x334d: 0x8c3, 0x334e: 0x8c4, 0x334f: 0x8c5,
-	0x3350: 0x8c6, 0x3351: 0x8c7, 0x3352: 0x8c8, 0x3353: 0x8c9, 0x3354: 0x8ca, 0x3355: 0x8cb, 0x3356: 0x8cc, 0x3357: 0x8cd,
-	0x3358: 0x8ce, 0x3359: 0x8cf, 0x335a: 0x8d0, 0x335b: 0x8d1, 0x335c: 0x8d2, 0x335d: 0x8d3, 0x335e: 0x8d4, 0x335f: 0x8d5,
-	0x3360: 0x8d6, 0x3361: 0x8d7, 0x3362: 0x8d8, 0x3363: 0x8d9, 0x3364: 0x8da, 0x3365: 0x8db, 0x3366: 0x8dc, 0x3367: 0x8dd,
-	0x3368: 0x8de, 0x3369: 0x8df, 0x336a: 0x8e0, 0x336b: 0x8e1, 0x336c: 0x8e2, 0x336d: 0x8e3, 0x336e: 0x8e4, 0x336f: 0x8e5,
-	0x3370: 0x8e6, 0x3371: 0x8e7, 0x3372: 0x8e8, 0x3373: 0x8e9, 0x3374: 0x8ea, 0x3375: 0x8eb, 0x3376: 0x8ec, 0x3377: 0x8ed,
-	0x3378: 0x8ee, 0x3379: 0x8ef, 0x337a: 0x8f0, 0x337b: 0x8f1, 0x337c: 0x8f2, 0x337d: 0x8f3, 0x337e: 0x8f4, 0x337f: 0x8f5,
-	// Block 0xce, offset 0x3380
-	0x3380: 0x8f6, 0x3381: 0x8f7, 0x3382: 0x8f8, 0x3383: 0x8f9, 0x3384: 0x8fa, 0x3385: 0x8fb, 0x3386: 0x8fc, 0x3387: 0x8fd,
-	0x3388: 0x8fe, 0x3389: 0x8ff, 0x338a: 0x900, 0x338b: 0x901, 0x338c: 0x902, 0x338d: 0x903, 0x338e: 0x904, 0x338f: 0x905,
-	0x3390: 0x906, 0x3391: 0x907, 0x3392: 0x908, 0x3393: 0x909, 0x3394: 0x90a, 0x3395: 0x90b, 0x3396: 0x90c, 0x3397: 0x90d,
-	0x3398: 0x90e, 0x3399: 0x90f, 0x339a: 0x910, 0x339b: 0x911, 0x339c: 0x912, 0x339d: 0x913, 0x339e: 0x914, 0x339f: 0x915,
-	0x33a0: 0x916, 0x33a1: 0x917, 0x33a2: 0x918, 0x33a3: 0x919, 0x33a4: 0x91a, 0x33a5: 0x91b, 0x33a6: 0x91c, 0x33a7: 0x91d,
-	0x33a8: 0x91e, 0x33a9: 0x91f, 0x33aa: 0x920, 0x33ab: 0x921, 0x33ac: 0x922, 0x33ad: 0x923, 0x33ae: 0x924, 0x33af: 0x925,
-	0x33b0: 0x926, 0x33b1: 0x927, 0x33b2: 0x928, 0x33b3: 0x929, 0x33b4: 0x92a, 0x33b5: 0x92b, 0x33b6: 0x92c, 0x33b7: 0x92d,
-	0x33b8: 0x92e, 0x33b9: 0x92f, 0x33ba: 0x930, 0x33bb: 0x931, 0x33bc: 0x932, 0x33bd: 0x933, 0x33be: 0x934, 0x33bf: 0x935,
-	// Block 0xcf, offset 0x33c0
-	0x33c0: 0x936, 0x33c1: 0x937, 0x33c2: 0x938, 0x33c3: 0x939, 0x33c4: 0x93a, 0x33c5: 0x93b, 0x33c6: 0x93c, 0x33c7: 0x93d,
-	0x33c8: 0x93e, 0x33c9: 0x93f, 0x33ca: 0x940, 0x33cb: 0x941, 0x33cc: 0x942, 0x33cd: 0x943, 0x33ce: 0x944, 0x33cf: 0x945,
-	0x33d0: 0x946, 0x33d1: 0x947, 0x33d2: 0x948, 0x33d3: 0x949, 0x33d4: 0x94a, 0x33d5: 0x94b, 0x33d6: 0x94c, 0x33d7: 0x94d,
-	0x33d8: 0x94e, 0x33d9: 0x94f, 0x33da: 0x950, 0x33db: 0x951, 0x33dc: 0x952, 0x33dd: 0x953, 0x33de: 0x954, 0x33df: 0x955,
-	0x33e0: 0x956, 0x33e1: 0x957, 0x33e2: 0x958, 0x33e3: 0x959, 0x33e4: 0x95a, 0x33e5: 0x95b, 0x33e6: 0x95c, 0x33e7: 0x95d,
-	0x33e8: 0x95e, 0x33e9: 0x95f, 0x33ea: 0x960, 0x33eb: 0x961, 0x33ec: 0x962, 0x33ed: 0x963, 0x33ee: 0x964, 0x33ef: 0x965,
-	0x33f0: 0x966, 0x33f1: 0x967, 0x33f2: 0x968, 0x33f3: 0x969, 0x33f4: 0x96a, 0x33f5: 0x96b, 0x33f6: 0x96c, 0x33f7: 0x96d,
-	0x33f8: 0x96e, 0x33f9: 0x96f, 0x33fa: 0x970, 0x33fb: 0x971, 0x33fc: 0x972, 0x33fd: 0x973, 0x33fe: 0x974, 0x33ff: 0x975,
-	// Block 0xd0, offset 0x3400
-	0x3400: 0x976, 0x3401: 0x977, 0x3402: 0x978, 0x3403: 0x979, 0x3404: 0x97a, 0x3405: 0x97b, 0x3406: 0x97c, 0x3407: 0x97d,
-	0x3408: 0x97e, 0x3409: 0x97f, 0x340a: 0x980, 0x340b: 0x981, 0x340c: 0x982, 0x340d: 0x983, 0x340e: 0x984, 0x340f: 0x985,
-	0x3410: 0x986, 0x3411: 0x987, 0x3412: 0x988, 0x3413: 0x989, 0x3414: 0x98a, 0x3415: 0x98b, 0x3416: 0x98c, 0x3417: 0x98d,
-	0x3418: 0x98e, 0x3419: 0x98f, 0x341a: 0x990, 0x341b: 0x991, 0x341c: 0x992, 0x341d: 0x993, 0x341e: 0x994, 0x341f: 0x995,
-	0x3420: 0x996, 0x3421: 0x997, 0x3422: 0x998, 0x3423: 0x999, 0x3424: 0x99a, 0x3425: 0x99b, 0x3426: 0x99c, 0x3427: 0x99d,
-	0x3428: 0x99e, 0x3429: 0x99f, 0x342a: 0x9a0, 0x342b: 0x9a1, 0x342c: 0x9a2, 0x342d: 0x9a3, 0x342e: 0x9a4, 0x342f: 0x9a5,
-	0x3430: 0x9a6, 0x3431: 0x9a7, 0x3432: 0x9a8, 0x3433: 0x9a9, 0x3434: 0x9aa, 0x3435: 0x9ab, 0x3436: 0x9ac, 0x3437: 0x9ad,
-	0x3438: 0x9ae, 0x3439: 0x9af, 0x343a: 0x9b0, 0x343b: 0x9b1, 0x343c: 0x9b2, 0x343d: 0x9b3, 0x343e: 0x9b4, 0x343f: 0x9b5,
-	// Block 0xd1, offset 0x3440
-	0x3440: 0x9b6, 0x3441: 0x9b7, 0x3442: 0x9b8, 0x3443: 0x9b9, 0x3444: 0x9ba, 0x3445: 0x9bb, 0x3446: 0x9bc, 0x3447: 0x9bd,
-	0x3448: 0x9be, 0x3449: 0x9bf, 0x344a: 0x9c0, 0x344b: 0x9c1, 0x344c: 0x9c2, 0x344d: 0x9c3, 0x344e: 0x9c4, 0x344f: 0x9c5,
-	0x3450: 0x9c6, 0x3451: 0x9c7, 0x3452: 0x9c8, 0x3453: 0x9c9, 0x3454: 0x9ca, 0x3455: 0x9cb, 0x3456: 0x9cc, 0x3457: 0x9cd,
-	0x3458: 0x9ce, 0x3459: 0x9cf, 0x345a: 0x9d0, 0x345b: 0x9d1, 0x345c: 0x9d2, 0x345d: 0x9d3, 0x345e: 0x9d4, 0x345f: 0x9d5,
-	0x3460: 0x9d6, 0x3461: 0x9d7, 0x3462: 0x9d8, 0x3463: 0x9d9, 0x3464: 0x9da, 0x3465: 0x9db, 0x3466: 0x9dc, 0x3467: 0x9dd,
-	0x3468: 0x9de, 0x3469: 0x9df, 0x346a: 0x9e0, 0x346b: 0x9e1, 0x346c: 0x9e2, 0x346d: 0x9e3, 0x346e: 0x9e4, 0x346f: 0x9e5,
-	0x3470: 0x9e6, 0x3471: 0x9e7, 0x3472: 0x9e8, 0x3473: 0x9e9, 0x3474: 0x9ea, 0x3475: 0x9eb, 0x3476: 0x9ec, 0x3477: 0x9ed,
-	0x3478: 0x9ee, 0x3479: 0x9ef, 0x347a: 0x9f0, 0x347b: 0x9f1, 0x347c: 0x9f2, 0x347d: 0x9f3, 0x347e: 0x9f4, 0x347f: 0x9f5,
-	// Block 0xd2, offset 0x3480
-	0x3480: 0x9f6, 0x3481: 0x9f7, 0x3482: 0x9f8, 0x3483: 0x9f9, 0x3484: 0x9fa, 0x3485: 0x9fb, 0x3486: 0x9fc, 0x3487: 0x9fd,
-	0x3488: 0x9fe, 0x3489: 0x9ff, 0x348a: 0xa00, 0x348b: 0xa01, 0x348c: 0xa02, 0x348d: 0xa03, 0x348e: 0xa04, 0x348f: 0xa05,
-	0x3490: 0xa06, 0x3491: 0xa07, 0x3492: 0xa08, 0x3493: 0xa09, 0x3494: 0xa0a, 0x3495: 0xa0b, 0x3496: 0xa0c, 0x3497: 0xa0d,
-	0x3498: 0xa0e, 0x3499: 0xa0f, 0x349a: 0xa10, 0x349b: 0xa11, 0x349c: 0xa12, 0x349d: 0xa13, 0x349e: 0xa14, 0x349f: 0xa15,
-	0x34a0: 0xa16, 0x34a1: 0xa17, 0x34a2: 0xa18, 0x34a3: 0xa19, 0x34a4: 0xa1a, 0x34a5: 0xa1b, 0x34a6: 0xa1c, 0x34a7: 0xa1d,
-	0x34a8: 0xa1e, 0x34a9: 0xa1f, 0x34aa: 0xa20, 0x34ab: 0xa21, 0x34ac: 0xa22, 0x34ad: 0xa23, 0x34ae: 0xa24, 0x34af: 0xa25,
-	0x34b0: 0xa26, 0x34b1: 0xa27, 0x34b2: 0xa28, 0x34b3: 0xa29, 0x34b4: 0xa2a, 0x34b5: 0xa2b, 0x34b6: 0xa2c, 0x34b7: 0xa2d,
-	0x34b8: 0xa2e, 0x34b9: 0xa2f, 0x34ba: 0xa30, 0x34bb: 0xa31, 0x34bc: 0xa32, 0x34bd: 0xa33, 0x34be: 0xa34, 0x34bf: 0xa35,
-	// Block 0xd3, offset 0x34c0
-	0x34c0: 0xa36, 0x34c1: 0xa37, 0x34c2: 0xa38, 0x34c3: 0xa39, 0x34c4: 0xa3a, 0x34c5: 0xa3b, 0x34c6: 0xa3c, 0x34c7: 0xa3d,
-	0x34c8: 0xa3e, 0x34c9: 0xa3f, 0x34ca: 0xa40, 0x34cb: 0xa41, 0x34cc: 0xa42, 0x34cd: 0xa43, 0x34ce: 0xa44, 0x34cf: 0xa45,
-	0x34d0: 0xa46, 0x34d1: 0xa47, 0x34d2: 0xa48, 0x34d3: 0xa49, 0x34d4: 0xa4a, 0x34d5: 0xa4b, 0x34d6: 0xa4c, 0x34d7: 0xa4d,
-	0x34d8: 0xa4e, 0x34d9: 0xa4f, 0x34da: 0xa50, 0x34db: 0xa51, 0x34de: 0xa52,
-	0x34e1: 0xa53, 0x34e2: 0xa54,
-	0x34e8: 0xa55, 0x34ea: 0xa56,
-	0x34fa: 0xa57, 0x34fb: 0xa58, 0x34fe: 0xa59,
-	// Block 0xd4, offset 0x3500
-	0x3501: 0xa5a, 0x3502: 0xa5b, 0x3503: 0xa5c, 0x3504: 0xa5d,
-	0x3508: 0xa5e, 0x350b: 0xa5f, 0x350c: 0xa60, 0x350d: 0xa61, 0x350f: 0xa62,
-	0x3510: 0xa63, 0x3512: 0xa64, 0x3513: 0xa65, 0x3514: 0xa66, 0x3517: 0xa67,
-	0x3518: 0xa68, 0x351a: 0xa69, 0x351b: 0xa6a,
-	// Block 0xd5, offset 0x3540
-	0x3560: 0xa6b, 0x3561: 0xa6c, 0x3562: 0xa6d, 0x3563: 0xa6e, 0x3564: 0xa6f, 0x3565: 0xa70, 0x3566: 0xa71, 0x3567: 0xa72,
-	0x3568: 0xa73,
-	// Block 0xd6, offset 0x3580
-	0x3590: 0x09, 0x3591: 0x0a, 0x3592: 0x0b, 0x3593: 0x0c, 0x3596: 0x0d,
-	0x359b: 0x0e, 0x359d: 0x0f, 0x359e: 0x10, 0x359f: 0xc6,
-	0x35a0: 0xc7, 0x35a1: 0xc8, 0x35a2: 0xc9, 0x35a3: 0xca, 0x35a4: 0xcb, 0x35a5: 0xcc, 0x35a6: 0xcd, 0x35a7: 0xce,
-	0x35a8: 0xcf, 0x35a9: 0xd0, 0x35aa: 0xd1, 0x35ab: 0xd2, 0x35af: 0xd3,
-	// Block 0xd7, offset 0x35c0
-	0x35c2: 0x01, 0x35c3: 0x5e6, 0x35c4: 0x5e7, 0x35c5: 0x5e8, 0x35c6: 0x05, 0x35c7: 0x5e9,
-	0x35c8: 0x5ea, 0x35c9: 0x08, 0x35ca: 0x09, 0x35cb: 0x0a, 0x35cc: 0x0b, 0x35cd: 0x0c, 0x35ce: 0x0d, 0x35cf: 0x0e,
-	0x35d0: 0x0f, 0x35d1: 0x10, 0x35d2: 0x11, 0x35d3: 0x12, 0x35d4: 0x13, 0x35d5: 0x14, 0x35d6: 0x15, 0x35d7: 0x16,
-	0x35d8: 0x17, 0x35d9: 0x18, 0x35da: 0x19, 0x35db: 0x1a, 0x35dc: 0x1b, 0x35dd: 0x1c, 0x35de: 0x1d, 0x35df: 0x1e,
-	0x35e0: 0x01, 0x35e1: 0xbc, 0x35e2: 0xbd, 0x35e3: 0xbe, 0x35e4: 0xbf, 0x35e5: 0xc0, 0x35e6: 0xc1, 0x35e7: 0xc2,
-	0x35e8: 0xc3, 0x35e9: 0xc4, 0x35ea: 0x06, 0x35ed: 0x07, 0x35ef: 0xc5,
-	0x35f0: 0xd4, 0x35f3: 0x15,
-}
-
-// mainCTEntries: 2490 entries, 9960 bytes
-var mainCTEntries = [2490]struct{ l, h, n, i uint8 }{
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xCD, 0x1, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x81, 0x81, 0, 1},
-	{0x81, 0x81, 0, 2},
-	{0xCC, 0x0, 1, 255},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8B, 0x8B, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8F, 0x8F, 0, 1},
-	{0xD9, 0x0, 1, 255},
-	{0x93, 0x95, 0, 1},
-	{0xD9, 0x0, 1, 255},
-	{0x94, 0x94, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xA7, 0x1, 1, 255},
-	{0xA6, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 2, 255},
-	{0xAD, 0x1, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x96, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x97, 0x97, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xAF, 0x1, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB1, 0x0, 1, 255},
-	{0x96, 0x96, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 1, 255},
-	{0x95, 0x95, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 2, 255},
-	{0x95, 0x96, 0, 3},
-	{0x82, 0x0, 1, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 1, 255},
-	{0x95, 0x95, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xB5, 0x1, 1, 255},
-	{0xB4, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB4, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 3, 255},
-	{0x9F, 0x9F, 0, 4},
-	{0x8F, 0x0, 1, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 255},
-	{0x8A, 0x8A, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 255},
-	{0x8A, 0x8A, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0x81, 0xAE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBB, 0xC, 1, 255},
-	{0xBA, 0x0, 12, 255},
-	{0xAD, 0xAE, 0, 26},
-	{0xAA, 0xAB, 0, 24},
-	{0xA7, 0xA7, 0, 23},
-	{0xA5, 0xA5, 0, 22},
-	{0xA1, 0xA3, 0, 19},
-	{0x99, 0x9F, 0, 12},
-	{0x94, 0x97, 0, 8},
-	{0x8D, 0x8D, 0, 7},
-	{0x8A, 0x8A, 0, 6},
-	{0x87, 0x88, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x81, 0x82, 0, 1},
-	{0x9C, 0x9F, 0, 28},
-	{0xE0, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0xEA, 0x0, 1, 255},
-	{0xAA, 0x0, 1, 255},
-	{0x80, 0xAF, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x7, 1, 255},
-	{0xBD, 0x0, 1, 255},
-	{0xB1, 0x0, 1, 255},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0x80, 0x81, 0, 4},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 1},
-	{0xF0, 0x0, 1, 255},
-	{0x91, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xA7, 0xA7, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xB5, 0xB5, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA7, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA7, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA6, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA7, 0xA7, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x68, 0x68, 0, 3},
-	{0x48, 0x48, 0, 2},
-	{0x8C, 0x8C, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0x68, 0x68, 0, 1},
-	{0x68, 0x68, 0, 2},
-	{0x48, 0x48, 0, 1},
-	{0x64, 0x64, 0, 1},
-	{0x64, 0x64, 0, 2},
-	{0x44, 0x44, 0, 1},
-	{0x66, 0x66, 0, 1},
-	{0x66, 0x66, 0, 2},
-	{0x46, 0x46, 0, 1},
-	{0x67, 0x67, 0, 1},
-	{0x67, 0x67, 0, 2},
-	{0x47, 0x47, 0, 1},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6C, 0x6C, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6C, 0x6C, 0, 4},
-	{0x4C, 0x4C, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x8B, 0x8B, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x61, 0x61, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x61, 0x61, 0, 4},
-	{0x41, 0x41, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA8, 0xA8, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0x90, 0x91, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 6, 255},
-	{0x98, 0x42, 1, 255},
-	{0x96, 0x31, 1, 255},
-	{0x94, 0x1B, 1, 255},
-	{0x84, 0x11, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x80, 0, 73},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0xBC, 0, 20},
-	{0xBA, 0xBA, 0, 19},
-	{0xB4, 0xB4, 0, 18},
-	{0xA6, 0xA6, 0, 17},
-	{0xA2, 0xA3, 0, 15},
-	{0xA0, 0xA0, 0, 14},
-	{0x9D, 0x9D, 0, 13},
-	{0x96, 0x96, 0, 12},
-	{0x91, 0x91, 0, 11},
-	{0x8C, 0x8C, 0, 10},
-	{0x8A, 0x8A, 0, 9},
-	{0x84, 0x84, 0, 8},
-	{0x82, 0x82, 0, 7},
-	{0xB1, 0xB2, 0, 21},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 8, 255},
-	{0xBC, 0xBC, 0, 30},
-	{0xB4, 0xB4, 0, 29},
-	{0xA2, 0xA2, 0, 28},
-	{0x93, 0x93, 0, 27},
-	{0x8C, 0x8C, 0, 26},
-	{0x8A, 0x8A, 0, 25},
-	{0x84, 0x84, 0, 24},
-	{0x82, 0x82, 0, 23},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x12, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBC, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 41},
-	{0xB4, 0xB4, 0, 40},
-	{0xA6, 0xA6, 0, 39},
-	{0xA2, 0xA3, 0, 37},
-	{0xA0, 0xA0, 0, 36},
-	{0x91, 0x91, 0, 35},
-	{0x8C, 0x8C, 0, 34},
-	{0x8A, 0x8A, 0, 33},
-	{0x84, 0x84, 0, 32},
-	{0x82, 0x82, 0, 31},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 5, 255},
-	{0xA2, 0xA2, 0, 5},
-	{0x93, 0x93, 0, 4},
-	{0x91, 0x91, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB2, 0, 42},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0xBC, 0, 57},
-	{0xBA, 0xBA, 0, 56},
-	{0xB4, 0xB4, 0, 55},
-	{0xA6, 0xA6, 0, 54},
-	{0xA2, 0xA3, 0, 52},
-	{0xA0, 0xA0, 0, 51},
-	{0x96, 0x96, 0, 50},
-	{0x93, 0x93, 0, 49},
-	{0x91, 0x91, 0, 48},
-	{0x8C, 0x8C, 0, 47},
-	{0x8A, 0x8A, 0, 46},
-	{0x84, 0x84, 0, 45},
-	{0x82, 0x82, 0, 44},
-	{0xB1, 0xB2, 0, 58},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x10, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 71},
-	{0xB4, 0xB4, 0, 70},
-	{0xB2, 0xB2, 0, 69},
-	{0xA6, 0xA6, 0, 68},
-	{0xA2, 0xA2, 0, 67},
-	{0xA0, 0xA0, 0, 66},
-	{0x9D, 0x9D, 0, 65},
-	{0x93, 0x93, 0, 64},
-	{0x8C, 0x8C, 0, 63},
-	{0x8A, 0x8A, 0, 62},
-	{0x84, 0x84, 0, 61},
-	{0x82, 0x82, 0, 60},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 1, 255},
-	{0x91, 0x91, 0, 6},
-	{0xB1, 0xB1, 0, 72},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xA6, 0x2E, 1, 255},
-	{0xA4, 0xA4, 0, 72},
-	{0xA3, 0x29, 1, 255},
-	{0xA2, 0x1C, 1, 255},
-	{0x9E, 0x9F, 0, 70},
-	{0x99, 0x99, 0, 69},
-	{0x91, 0xF, 1, 255},
-	{0x8F, 0x8F, 0, 68},
-	{0x85, 0x85, 0, 67},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x80, 0, 66},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xB, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBE, 0xBE, 0, 11},
-	{0xBC, 0xBC, 0, 10},
-	{0xBA, 0xBA, 0, 9},
-	{0xA2, 0xA2, 0, 8},
-	{0xA0, 0xA0, 0, 7},
-	{0x9D, 0x9D, 0, 6},
-	{0x98, 0x98, 0, 5},
-	{0x91, 0x91, 0, 4},
-	{0x8C, 0x8C, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB3, 0, 12},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBE, 0xBE, 0, 26},
-	{0xBC, 0xBC, 0, 25},
-	{0xBA, 0xBA, 0, 24},
-	{0xB4, 0xB4, 0, 23},
-	{0xA6, 0xA6, 0, 22},
-	{0xA2, 0xA3, 0, 20},
-	{0xA0, 0xA0, 0, 19},
-	{0x98, 0x98, 0, 18},
-	{0x8C, 0x8C, 0, 17},
-	{0x8A, 0x8A, 0, 16},
-	{0x82, 0x82, 0, 15},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 11, 255},
-	{0xB3, 0xB3, 0, 37},
-	{0xAB, 0xAB, 0, 36},
-	{0xA9, 0xA9, 0, 35},
-	{0xA3, 0xA3, 0, 34},
-	{0xA1, 0xA1, 0, 33},
-	{0x9F, 0x9F, 0, 32},
-	{0x99, 0x99, 0, 31},
-	{0x97, 0x97, 0, 30},
-	{0x94, 0x94, 0, 29},
-	{0x92, 0x92, 0, 28},
-	{0x90, 0x90, 0, 27},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 3, 255},
-	{0xA1, 0xA1, 0, 40},
-	{0x9F, 0x9F, 0, 39},
-	{0x95, 0x95, 0, 38},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 10, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 54},
-	{0xBC, 0xBC, 0, 53},
-	{0xBA, 0xBA, 0, 52},
-	{0xB4, 0xB4, 0, 51},
-	{0xB2, 0xB2, 0, 50},
-	{0xA2, 0xA3, 0, 48},
-	{0x98, 0x98, 0, 47},
-	{0x96, 0x96, 0, 46},
-	{0x91, 0x91, 0, 45},
-	{0x8C, 0x8C, 0, 44},
-	{0x8A, 0x8A, 0, 43},
-	{0x84, 0x84, 0, 42},
-	{0x82, 0x82, 0, 41},
-	{0xB2, 0xB3, 0, 64},
-	{0xAD, 0xAD, 0, 63},
-	{0xA9, 0xA9, 0, 62},
-	{0xA3, 0xA3, 0, 61},
-	{0xA1, 0xA1, 0, 60},
-	{0x9F, 0x9F, 0, 59},
-	{0x99, 0x99, 0, 58},
-	{0x94, 0x94, 0, 57},
-	{0x92, 0x92, 0, 56},
-	{0x90, 0x90, 0, 55},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 11, 255},
-	{0xAB, 0xAB, 0, 12},
-	{0xA8, 0xA9, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA3, 0xA3, 0, 8},
-	{0xA1, 0xA1, 0, 7},
-	{0x9F, 0x9F, 0, 6},
-	{0x99, 0x99, 0, 5},
-	{0x97, 0x97, 0, 4},
-	{0x94, 0x94, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 9, 255},
-	{0xB7, 0xB7, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA4, 0xA4, 0, 8},
-	{0xA1, 0xA1, 0, 7},
-	{0x9F, 0x9F, 0, 6},
-	{0x97, 0x97, 0, 5},
-	{0x94, 0x95, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 9, 255},
-	{0x9A, 0x9B, 0, 45},
-	{0x93, 0x1D, 1, 255},
-	{0x91, 0x11, 1, 255},
-	{0x90, 0x90, 0, 44},
-	{0x89, 0x89, 0, 43},
-	{0x86, 0x87, 0, 41},
-	{0x84, 0x8, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x81, 0x81, 0, 40},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x4, 1, 255},
-	{0xBD, 0x0, 4, 255},
-	{0xBC, 0xBC, 0, 5},
-	{0xBA, 0xBA, 0, 4},
-	{0xB4, 0xB4, 0, 3},
-	{0xA2, 0xA3, 0, 1},
-	{0xB1, 0xB2, 0, 6},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 7, 255},
-	{0xBC, 0xBC, 0, 15},
-	{0xA2, 0xA3, 0, 13},
-	{0xA0, 0xA0, 0, 12},
-	{0x93, 0x93, 0, 11},
-	{0x8C, 0x8C, 0, 10},
-	{0x8A, 0x8A, 0, 9},
-	{0x82, 0x82, 0, 8},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 10, 255},
-	{0xBC, 0xBC, 0, 25},
-	{0xBA, 0xBA, 0, 24},
-	{0xB4, 0xB4, 0, 23},
-	{0xA2, 0xA2, 0, 22},
-	{0xA0, 0xA0, 0, 21},
-	{0x93, 0x93, 0, 20},
-	{0x8C, 0x8C, 0, 19},
-	{0x8A, 0x8A, 0, 18},
-	{0x84, 0x84, 0, 17},
-	{0x82, 0x82, 0, 16},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 39},
-	{0xBC, 0xBC, 0, 38},
-	{0xBA, 0xBA, 0, 37},
-	{0xB4, 0xB4, 0, 36},
-	{0xA2, 0xA3, 0, 34},
-	{0xA0, 0xA0, 0, 33},
-	{0x98, 0x98, 0, 32},
-	{0x96, 0x96, 0, 31},
-	{0x93, 0x93, 0, 30},
-	{0x8C, 0x8C, 0, 29},
-	{0x8A, 0x8A, 0, 28},
-	{0x84, 0x84, 0, 27},
-	{0x82, 0x82, 0, 26},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 9, 255},
-	{0xA8, 0xA9, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA3, 0xA4, 0, 7},
-	{0xA1, 0xA1, 0, 6},
-	{0x9F, 0x9F, 0, 5},
-	{0x99, 0x99, 0, 4},
-	{0x94, 0x94, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 8, 255},
-	{0x9A, 0x9B, 0, 62},
-	{0x96, 0x29, 1, 255},
-	{0x95, 0x95, 0, 61},
-	{0x91, 0x14, 1, 255},
-	{0x90, 0x90, 0, 60},
-	{0x86, 0x87, 0, 58},
-	{0x82, 0x0, 1, 255},
-	{0x81, 0x81, 0, 57},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x10, 1, 255},
-	{0xBD, 0x0, 16, 255},
-	{0xBE, 0xBE, 0, 17},
-	{0xBC, 0xBC, 0, 16},
-	{0xBA, 0xBA, 0, 15},
-	{0xB4, 0xB4, 0, 14},
-	{0xB2, 0xB2, 0, 13},
-	{0xA6, 0xA6, 0, 12},
-	{0xA2, 0xA3, 0, 10},
-	{0xA0, 0xA0, 0, 9},
-	{0x98, 0x98, 0, 8},
-	{0x96, 0x96, 0, 7},
-	{0x93, 0x93, 0, 6},
-	{0x91, 0x91, 0, 5},
-	{0x8C, 0x8C, 0, 4},
-	{0x8A, 0x8A, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB2, 0, 18},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x11, 1, 255},
-	{0xBD, 0x0, 17, 255},
-	{0xBE, 0xBE, 0, 37},
-	{0xBC, 0xBC, 0, 36},
-	{0xBA, 0xBA, 0, 35},
-	{0xB4, 0xB4, 0, 34},
-	{0xB2, 0xB2, 0, 33},
-	{0xA6, 0xA6, 0, 32},
-	{0xA2, 0xA3, 0, 30},
-	{0xA0, 0xA0, 0, 29},
-	{0x9D, 0x9D, 0, 28},
-	{0x98, 0x98, 0, 27},
-	{0x96, 0x96, 0, 26},
-	{0x93, 0x93, 0, 25},
-	{0x91, 0x91, 0, 24},
-	{0x8C, 0x8C, 0, 23},
-	{0x8A, 0x8A, 0, 22},
-	{0x84, 0x84, 0, 21},
-	{0x82, 0x82, 0, 20},
-	{0xB2, 0xB2, 0, 38},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xF, 1, 255},
-	{0xBD, 0x0, 15, 255},
-	{0xBE, 0xBE, 0, 54},
-	{0xBC, 0xBC, 0, 53},
-	{0xBA, 0xBA, 0, 52},
-	{0xB4, 0xB4, 0, 51},
-	{0xB2, 0xB2, 0, 50},
-	{0xA2, 0xA3, 0, 48},
-	{0xA0, 0xA0, 0, 47},
-	{0x98, 0x98, 0, 46},
-	{0x96, 0x96, 0, 45},
-	{0x93, 0x93, 0, 44},
-	{0x91, 0x91, 0, 43},
-	{0x8C, 0x8C, 0, 42},
-	{0x8A, 0x8A, 0, 41},
-	{0x84, 0x84, 0, 40},
-	{0x82, 0x82, 0, 39},
-	{0xB1, 0xB2, 0, 55},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 10, 255},
-	{0xA6, 0x20, 1, 255},
-	{0xA4, 0xA4, 0, 52},
-	{0xA1, 0xA1, 0, 51},
-	{0x9E, 0x9F, 0, 49},
-	{0x99, 0x99, 0, 48},
-	{0x93, 0x11, 1, 255},
-	{0x91, 0x0, 1, 255},
-	{0x8F, 0x8F, 0, 47},
-	{0x89, 0x89, 0, 46},
-	{0x85, 0x85, 0, 45},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 15, 255},
-	{0xBE, 0xBE, 0, 16},
-	{0xBC, 0xBC, 0, 15},
-	{0xBA, 0xBA, 0, 14},
-	{0xB4, 0xB4, 0, 13},
-	{0xB2, 0xB2, 0, 12},
-	{0xA6, 0xA6, 0, 11},
-	{0xA2, 0xA3, 0, 9},
-	{0xA0, 0xA0, 0, 8},
-	{0x98, 0x98, 0, 7},
-	{0x96, 0x96, 0, 6},
-	{0x93, 0x93, 0, 5},
-	{0x8C, 0x8C, 0, 4},
-	{0x8A, 0x8A, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 29},
-	{0xBC, 0xBC, 0, 28},
-	{0xB4, 0xB4, 0, 27},
-	{0xA6, 0xA6, 0, 26},
-	{0xA0, 0xA0, 0, 25},
-	{0x9D, 0x9D, 0, 24},
-	{0x98, 0x98, 0, 23},
-	{0x93, 0x93, 0, 22},
-	{0x91, 0x91, 0, 21},
-	{0x8C, 0x8C, 0, 20},
-	{0x8A, 0x8A, 0, 19},
-	{0x84, 0x84, 0, 18},
-	{0x82, 0x82, 0, 17},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 14, 255},
-	{0xBC, 0xBC, 0, 44},
-	{0xBA, 0xBA, 0, 43},
-	{0xB4, 0xB4, 0, 42},
-	{0xB2, 0xB2, 0, 41},
-	{0xA6, 0xA6, 0, 40},
-	{0xA2, 0xA3, 0, 38},
-	{0xA0, 0xA0, 0, 37},
-	{0x96, 0x96, 0, 36},
-	{0x93, 0x93, 0, 35},
-	{0x91, 0x91, 0, 34},
-	{0x8C, 0x8C, 0, 33},
-	{0x8A, 0x8A, 0, 32},
-	{0x84, 0x84, 0, 31},
-	{0x82, 0x82, 0, 30},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0xA4, 0xA5, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x9, 1, 255},
-	{0xBD, 0x0, 3, 255},
-	{0xB5, 0xB5, 0, 6},
-	{0xB3, 0xB3, 0, 5},
-	{0xB1, 0x0, 1, 4},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0x80, 0x81, 0, 7},
-	{0x7A, 0x7A, 0, 1},
-	{0x7A, 0x7A, 0, 2},
-	{0x5A, 0x5A, 0, 1},
-	{0x62, 0x62, 0, 1},
-	{0x62, 0x62, 0, 2},
-	{0x42, 0x42, 0, 1},
-	{0x70, 0x70, 0, 1},
-	{0x70, 0x70, 0, 2},
-	{0x50, 0x50, 0, 1},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x59, 0x59, 0, 1},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x53, 0x53, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x67, 0x67, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x67, 0x67, 0, 3},
-	{0x47, 0x47, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xC5, 0x2, 1, 255},
-	{0x7A, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xBE, 0xBE, 0, 2},
-	{0xC5, 0x4, 1, 255},
-	{0x7A, 0x2, 1, 255},
-	{0x5A, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0xBD, 0xBE, 0, 3},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6A, 0x6A, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6A, 0x6A, 0, 4},
-	{0x4A, 0x4A, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0x6A, 0x6A, 0, 1},
-	{0x6A, 0x6A, 0, 2},
-	{0x4A, 0x4A, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x63, 0x0, 1, 255},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 4},
-	{0x63, 0x1, 1, 255},
-	{0x53, 0x53, 0, 3},
-	{0x43, 0x0, 1, 255},
-	{0x53, 0x53, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x7A, 0x2, 1, 4},
-	{0x64, 0x0, 1, 255},
-	{0x7A, 0x0, 1, 2},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 3},
-	{0x7A, 0x5, 1, 8},
-	{0x64, 0x3, 1, 255},
-	{0x5A, 0x2, 1, 7},
-	{0x44, 0x0, 1, 255},
-	{0x5A, 0x0, 1, 3},
-	{0x53, 0x53, 0, 1},
-	{0x53, 0x53, 0, 4},
-	{0x7A, 0x0, 1, 5},
-	{0x73, 0x73, 0, 2},
-	{0x73, 0x73, 0, 6},
-	{0x79, 0x79, 0, 2},
-	{0x67, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x67, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x47, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0xCE, 0x2, 1, 255},
-	{0xC2, 0x1, 1, 255},
-	{0x79, 0x79, 0, 4},
-	{0x6C, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0xB7, 0xB7, 0, 2},
-	{0x87, 0x87, 0, 3},
-	{0xCE, 0x3, 1, 255},
-	{0xC2, 0x2, 1, 255},
-	{0x79, 0x79, 0, 6},
-	{0x6C, 0x1, 1, 255},
-	{0x59, 0x59, 0, 5},
-	{0x4C, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0xB7, 0xB7, 0, 3},
-	{0x87, 0x87, 0, 4},
-	{0x79, 0x79, 0, 2},
-	{0x6E, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x6E, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x4E, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x7A, 0x7A, 0, 2},
-	{0x73, 0x0, 1, 255},
-	{0x7A, 0x7A, 0, 1},
-	{0x7A, 0x7A, 0, 4},
-	{0x73, 0x1, 1, 255},
-	{0x5A, 0x5A, 0, 3},
-	{0x53, 0x0, 1, 255},
-	{0x5A, 0x5A, 0, 1},
-	{0x7A, 0x7A, 0, 2},
-	{0x79, 0x79, 0, 2},
-	{0x74, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x74, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x54, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x7A, 0x0, 1, 255},
-	{0x73, 0x73, 0, 2},
-	{0x73, 0x73, 0, 1},
-	{0x7A, 0x1, 1, 255},
-	{0x73, 0x73, 0, 4},
-	{0x5A, 0x0, 1, 255},
-	{0x53, 0x53, 0, 3},
-	{0x53, 0x53, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0xD6, 0x0, 1, 255},
-	{0x82, 0x82, 0, 1},
-	{0x77, 0x77, 0, 3},
-	{0x68, 0x68, 0, 2},
-	{0x62, 0x62, 0, 1},
-	{0x77, 0x77, 0, 6},
-	{0x68, 0x68, 0, 5},
-	{0x62, 0x62, 0, 4},
-	{0x57, 0x57, 0, 3},
-	{0x48, 0x48, 0, 2},
-	{0x42, 0x42, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA3, 0xA3, 0, 1},
-	{0x77, 0x77, 0, 2},
-	{0x70, 0x70, 0, 1},
-	{0x77, 0x77, 0, 4},
-	{0x70, 0x70, 0, 3},
-	{0x57, 0x57, 0, 2},
-	{0x50, 0x50, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x79, 0x79, 0, 3},
-	{0x77, 0x77, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x79, 0x79, 0, 5},
-	{0x77, 0x77, 0, 4},
-	{0x59, 0x59, 0, 3},
-	{0x57, 0x57, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8A, 0x8A, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xBC, 0xBC, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBD, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x7, 1, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9D, 0x9D, 0, 3},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xBC, 0xBC, 0, 2},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBD, 0, 1},
-	{0xBC, 0xBD, 0, 3},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0xE, 1, 255},
-	{0x82, 0x0, 3, 255},
-	{0x9E, 0x9E, 0, 6},
-	{0x9D, 0x8, 1, 5},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 4},
-	{0xBC, 0xBC, 0, 7},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x8, 2, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 3},
-	{0xBC, 0xBD, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBD, 0x0, 1, 6},
-	{0xBC, 0xBE, 0, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 4},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 3},
-	{0xBC, 0xBE, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9E, 0, 1},
-	{0xBC, 0xBC, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBE, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x17, 1, 255},
-	{0x82, 0x0, 4, 255},
-	{0x9E, 0x9E, 0, 9},
-	{0x9D, 0x10, 1, 8},
-	{0x9A, 0x8, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 2},
-	{0xBC, 0xBC, 0, 6},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 7},
-	{0xBC, 0xBC, 0, 10},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x10, 2, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9A, 0x7, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 4},
-	{0xBC, 0xBD, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 6},
-	{0xBC, 0xBD, 0, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 2},
-	{0xBD, 0x0, 1, 9},
-	{0xBC, 0xBE, 0, 8},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 7},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x5, 1, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9E, 0x9E, 0, 3},
-	{0x9D, 0x0, 1, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBD, 0xBD, 0, 1},
-	{0x27, 0x27, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x86, 0x87, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x86, 0x86, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x87, 0x87, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA4, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x83, 0x83, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0xA8, 0xA8, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0xA8, 0xA8, 0, 2},
-	{0x84, 0x84, 0, 1},
-	{0xCE, 0x2, 1, 255},
-	{0xCC, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xA7, 0xA7, 0, 2},
-	{0x87, 0x87, 0, 3},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0x20, 0x20, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA4, 0x0, 1, 255},
-	{0x9E, 0x9E, 0, 1},
-	{0xCC, 0x1, 1, 255},
-	{0xC4, 0x0, 1, 255},
-	{0xA6, 0xA7, 0, 1},
-	{0x87, 0x87, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xB9, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0x0, 1, 3},
-	{0xB9, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x95, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0xBA, 0, 4},
-	{0xB9, 0x9, 1, 3},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBB, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAC, 0xAC, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x98, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xB9, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xAF, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB6, 0xB6, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 31, 255},
-	{0xB1, 0x5A, 1, 255},
-	{0x9F, 0x57, 1, 255},
-	{0x9E, 0x54, 1, 255},
-	{0x9C, 0x51, 1, 255},
-	{0x9B, 0x4E, 1, 255},
-	{0x9A, 0x4B, 1, 255},
-	{0x99, 0x48, 1, 255},
-	{0x98, 0x45, 1, 255},
-	{0x97, 0x42, 1, 255},
-	{0x96, 0x3F, 1, 255},
-	{0x95, 0x3C, 1, 255},
-	{0x94, 0x39, 1, 255},
-	{0x93, 0x36, 1, 255},
-	{0x92, 0x33, 1, 255},
-	{0x91, 0x30, 1, 255},
-	{0x90, 0x2D, 1, 255},
-	{0x8F, 0x2A, 1, 255},
-	{0x8E, 0x27, 1, 255},
-	{0x8D, 0x24, 1, 255},
-	{0x8C, 0x21, 1, 255},
-	{0x8B, 0x1E, 1, 255},
-	{0x8A, 0x1B, 1, 255},
-	{0x89, 0x18, 1, 255},
-	{0x87, 0x15, 1, 255},
-	{0x86, 0x12, 1, 255},
-	{0x85, 0xF, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 65},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 69},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 71},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 73},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 75},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 85},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 87},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 89},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 91},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 93},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 95},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 97},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 99},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 101},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 103},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 105},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 107},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 109},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 111},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 113},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 115},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 117},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 119},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 30, 255},
-	{0x9F, 0x57, 1, 255},
-	{0x9E, 0x54, 1, 255},
-	{0x9C, 0x51, 1, 255},
-	{0x9B, 0x4E, 1, 255},
-	{0x9A, 0x4B, 1, 255},
-	{0x99, 0x48, 1, 255},
-	{0x98, 0x45, 1, 255},
-	{0x97, 0x42, 1, 255},
-	{0x96, 0x3F, 1, 255},
-	{0x95, 0x3C, 1, 255},
-	{0x94, 0x39, 1, 255},
-	{0x93, 0x36, 1, 255},
-	{0x92, 0x33, 1, 255},
-	{0x91, 0x30, 1, 255},
-	{0x90, 0x2D, 1, 255},
-	{0x8F, 0x2A, 1, 255},
-	{0x8E, 0x27, 1, 255},
-	{0x8D, 0x24, 1, 255},
-	{0x8C, 0x21, 1, 255},
-	{0x8B, 0x1E, 1, 255},
-	{0x8A, 0x1B, 1, 255},
-	{0x89, 0x18, 1, 255},
-	{0x87, 0x15, 1, 255},
-	{0x86, 0x12, 1, 255},
-	{0x85, 0xF, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 19},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 36, 255},
-	{0xAC, 0xF7, 1, 197},
-	{0xAB, 0x69, 1, 196},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 131},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 133},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 135},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 137},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 139},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 140},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 142},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 144},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 146},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 147},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 149},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 151},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 153},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 155},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 157},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 159},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 161},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 163},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 165},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 167},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 169},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 171},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 173},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 175},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 177},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 179},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 181},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 183},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 185},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 187},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 188},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 190},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 192},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 193},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xBA, 0xBA, 0, 194},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 14},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 16},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 62},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xBA, 0xBA, 0, 195},
-	{0xA1, 0x6A, 1, 255},
-	{0xA0, 0x67, 1, 255},
-	{0x9F, 0x64, 1, 255},
-	{0x9E, 0x61, 1, 255},
-	{0x9D, 0x5E, 1, 255},
-	{0x9C, 0x5B, 1, 255},
-	{0x9B, 0x58, 1, 255},
-	{0x9A, 0x55, 1, 255},
-	{0x99, 0x52, 1, 255},
-	{0x98, 0x4F, 1, 255},
-	{0x97, 0x4C, 1, 255},
-	{0x96, 0x49, 1, 255},
-	{0x95, 0x46, 1, 255},
-	{0x94, 0x43, 1, 255},
-	{0x93, 0x40, 1, 255},
-	{0x92, 0x3D, 1, 255},
-	{0x91, 0x3A, 1, 255},
-	{0x90, 0x37, 1, 255},
-	{0x8F, 0x34, 1, 255},
-	{0x8E, 0x31, 1, 255},
-	{0x8D, 0x2E, 1, 255},
-	{0x8C, 0x2B, 1, 255},
-	{0x8B, 0x28, 1, 255},
-	{0x8A, 0x25, 1, 255},
-	{0x89, 0x22, 1, 255},
-	{0x88, 0x1F, 1, 255},
-	{0x87, 0x1C, 1, 255},
-	{0x86, 0x19, 1, 255},
-	{0x85, 0x16, 1, 255},
-	{0x84, 0x10, 1, 255},
-	{0x83, 0xD, 1, 255},
-	{0x82, 0xA, 1, 255},
-	{0x81, 0x7, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0x0, 1, 69},
-	{0xB9, 0xBA, 0, 68},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBB, 0xBB, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 70},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 72},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 74},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 76},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 84},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 86},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 88},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 90},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 92},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 94},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 96},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 98},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 100},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 102},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 104},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 106},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 108},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 110},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 112},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 114},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 116},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 118},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 120},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 122},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 124},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 125},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 127},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 129},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 130},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 36, 255},
-	{0xB6, 0xFE, 1, 134},
-	{0xAF, 0x71, 1, 133},
-	{0xA1, 0x6E, 1, 255},
-	{0xA0, 0x6B, 1, 255},
-	{0x9F, 0x68, 1, 255},
-	{0x9E, 0x65, 1, 255},
-	{0x9D, 0x62, 1, 255},
-	{0x9C, 0x5F, 1, 255},
-	{0x9B, 0x5C, 1, 255},
-	{0x9A, 0x59, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 68},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 70},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 72},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 74},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 76},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 84},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 86},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 88},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 90},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 92},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 94},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 96},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 98},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 100},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 102},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 104},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 106},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 108},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 110},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 112},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 114},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0x3, 1, 117},
-	{0xB9, 0xBA, 0, 116},
-	{0xB7, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 118},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 120},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 122},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 124},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 125},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 127},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 129},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 130},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 34, 255},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 14},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 16},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 62},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB7, 0xB8, 0, 131},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 34, 255},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 6},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 8},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 10},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 22},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 24},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 26},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 28},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 30},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 32},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 34},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 36},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 38},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 40},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 42},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 44},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 46},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 48},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 50},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 52},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 54},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 56},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 58},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xB6, 0x71, 1, 69},
-	{0xA1, 0x6E, 1, 255},
-	{0xA0, 0x6B, 1, 255},
-	{0x9F, 0x68, 1, 255},
-	{0x9E, 0x65, 1, 255},
-	{0x9D, 0x62, 1, 255},
-	{0x9C, 0x5F, 1, 255},
-	{0x9B, 0x5C, 1, 255},
-	{0x9A, 0x59, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 6},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 8},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 10},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 12},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 19},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 22},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 24},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 26},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 28},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 30},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 32},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 34},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 36},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 38},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 40},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 42},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 44},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 46},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 48},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 50},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0x3, 1, 53},
-	{0xB9, 0xBA, 0, 52},
-	{0xB7, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 54},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 56},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 58},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 60},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 65},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB7, 0xB8, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBE, 0xBE, 0, 3},
-	{0xBD, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAD, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x87, 0x87, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x86, 0x86, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA6, 0xA7, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8A, 0x8A, 0, 5},
-	{0x87, 0x88, 0, 3},
-	{0x83, 0x83, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x83, 0x83, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0xA8, 0xA8, 0, 5},
-	{0x8B, 0x8B, 0, 4},
-	{0x88, 0x88, 0, 3},
-	{0x82, 0x83, 0, 1},
-	{0x72, 0x72, 0, 1},
-	{0x72, 0x72, 0, 2},
-	{0x52, 0x52, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8B, 0x8B, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 3},
-	{0xE0, 0x0, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xB9, 0x1, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0x85, 0x85, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x84, 0x84, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xDA, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xDA, 0x1, 1, 255},
-	{0xD9, 0x0, 1, 255},
-	{0x94, 0x94, 0, 1},
-	{0xBE, 0xBE, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x9B, 0x9B, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x9B, 0x9B, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x61, 0x61, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x61, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xA4, 0xA4, 0, 1},
-	{0x65, 0x65, 0, 1},
-	{0x69, 0x69, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x6F, 0x6F, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x6F, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xB6, 0xB6, 0, 1},
-	{0x63, 0x0, 1, 255},
-	{0x68, 0x68, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x75, 0x75, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x75, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xBC, 0xBC, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8C, 0x8C, 0, 8},
-	{0x84, 0x84, 0, 7},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x81, 0, 5},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0x84, 0x84, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8C, 0x8C, 0, 9},
-	{0x88, 0x0, 1, 8},
-	{0x84, 0x84, 0, 7},
-	{0x80, 0x81, 0, 5},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-}
-
-// Total size of mainTable is 920988 bytes
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/chars.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/chars.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/chars.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/chars.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,937 +0,0 @@
-// Generated by running
-//  maketables -root=http://unicode.org/Public/UCA/6.0.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/2.0.1/core.zip
-// DO NOT EDIT
-
-package main
-
-type exemplarType int
-
-const (
-	exCharacters exemplarType = iota
-	exContractions
-	exPunctuation
-	exAuxiliary
-	exCurrency
-	exIndex
-	exN
-)
-
-var exemplarCharacters = map[string][exN]string{
-	"af": {
-		0: "a Ã¡ Ã¢ b c d e Ã© Ã¨ Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Ã¶ p q r s t u Ã» v w x y z",
-		3: "Ã¡ Ã  Ã¢ Ã¤ Ã£ Ã¦ Ã§ Ã© Ã¨ Ãª Ã« Ã­ Ã¬ Ã® Ã¯ Ã³ Ã² Ã´ Ã¶ Ãº Ã¹ Ã» Ã¼ Ã½",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"agq": {
-		0: "a Ã  Ã¢ ÇŽ Ä b c d e Ã¨ Ãª Ä› Ä“ É› É›Ì€ É›Ì‚ É›ÌŒ É›Ì„ f g h i Ã¬ Ã® Ç Ä« É¨ É¨Ì€ É¨Ì‚ É¨ÌŒ É¨Ì„ k l m n Å‹ o Ã² Ã´ Ç’ Å É” É”Ì€ É”Ì‚ É”ÌŒ É”Ì„ p s t u Ã¹ Ã» Ç” Å« Ê‰ Ê‰Ì€ Ê‰Ì‚ Ê‰ÌŒ Ê‰Ì„ v w y z Ê”",
-		3: "q r x",
-		5: "A B C D E Æ F G H I Æ— K L M N ÅŠ O Æ† P S T U É„ V W Y Z Ê”",
-	},
-	"ak": {
-		0: "a b d e É› f g h i k l m n o É” p r s t u w y",
-		3: "c j q v z",
-		5: "A B C D E Æ F G H I J K L M N O Æ† P Q R S T U V W X Y Z",
-	},
-	"am": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹¯ á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á— á˜ á™ áš",
-	},
-	"ar": {
-		0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ø¡ Ø¢ Ø£ Ø¤ Ø¥ Ø¦ Ø§ Ø¨ Øª Ø© Ø« Ø¬ Ø­ Ø® Ø¯ Ø° Ø± Ø² Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ùƒ Ù„ Ù… Ù† Ù‡ Ùˆ ÙŠ Ù‰",
-		3: "\u200c \u200d \u200e \u200f",
-	},
-	"as": {
-		0: "à¦… à¦† à¦‡ à¦ˆ à¦‰ à¦Š à¦‹ à¦ à¦ à¦“ à¦” à¦‚ à¦ à¦ƒ à¦• à¦– à¦— à¦˜ à¦™ à¦š à¦› à¦œ à¦ à¦ž à¦Ÿ à¦  à¦¡ à¦¡à¦¼ à§œ à¦¢ à¦¢à¦¼ à§ à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ à¦¯à¦¼ à§° à¦² à§± à¦¶ à¦· à¦¸ à¦¹ à¦¾ à¦¿ à§€ à§ à§‚ à§ƒ à§‡ à§ˆ à§‹ à§Œ à§",
-		3: "\u200c \u200d à§²",
-	},
-	"asa": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"az": {
-		0: "a b c Ã§ d e É™ f g ÄŸ h x Ä± i iÌ‡ j k q l m n o Ã¶ p r s ÅŸ t u Ã¼ v y z",
-		3: "w",
-	},
-	"az_Cyrl": {
-		0: "Ð° Ó™ Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ð¶ Ð· Ð¸ Ð¹ Ñ˜ Ðº Ò Ð» Ð¼ Ð½ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ„ Ñ… Ò» Ñ‡ Ò¹ Ñˆ Ñ‹",
-		3: "Ñ† Ñ‰ ÑŠ ÑŒ Ñ ÑŽ Ñ",
-	},
-	"bas": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ Ä aá·† aá·‡ b É“ c d e Ã© Ã¨ Ãª Ä› Ä“ eá·† eá·‡ É› É›Ì É›Ì€ É›Ì‚ É›ÌŒ É›Ì„ É›á·† É›á·‡ f g h i Ã­ Ã¬ Ã® Ç Ä« iá·† iá·‡ j k l m n Å„ Ç¹ Å‹ o Ã³ Ã² Ã´ Ç’ Å oá·† oá·‡ É” É”Ì É”Ì€ É”Ì‚ É”ÌŒ É”Ì„ É”á·† É”á·‡ p r s t u Ãº Ã¹ Ã» Ç” Å« uá·† uá·‡ v w y z",
-		3: "q x",
-		5: "A B Æ C D E Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"be": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ð´Ð¶ Ð´Ð· Ðµ Ñ‘ Ð¶ Ð· Ñ– Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñž Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"bem": {
-		0: "a b c e f g i j k l m n o p s sh t u w y",
-		3: "d h q r v x z",
-		5: "A B C E F G I J K L M N O P S SH T U W Y",
-	},
-	"bez": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w y z",
-		3: "x",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W Y Z",
-	},
-	"bg": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ ÑŒ ÑŽ Ñ",
-		3: "Ð°Ì€ Ñ Ñ Ð¾Ì€ ÑƒÌ€ ÑŠ Ñ£ ÑŽÌ€ ÑÌ€ Ñ«",
-	},
-	"bm": {
-		0: "a b c d e É› f g h i j k l m n É² Å‹ o É” p r s t u w y z",
-		3: "q v x",
-		5: "A B C D E Æ F G H I J K L M N Æ ÅŠ O Æ† P R S T U W Y Z",
-	},
-	"bn": {
-		0: "à§º à¦… à¦† à¦‡ à¦ˆ à¦‰ à¦Š à¦‹ à§  à¦Œ à§¡ à¦ à¦ à¦“ à¦” à¦¼ à¦‚ à¦ƒ à¦ à¦• à¦•à§à¦· à¦– à¦— à¦˜ à¦™ à¦š à¦› à¦œ à¦ à¦ž à¦Ÿ à¦  à¦¡ à¦¡à¦¼ à¦¢ à¦¢à¦¼ à¦£ à§Ž à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ à¦¯à¦¼ à¦° à¦² à¦¶ à¦· à¦¸ à¦¹ à¦½ à¦¾ à¦¿ à§€ à§ à§‚ à§ƒ à§„ à§¢ à§£ à§‡ à§ˆ à§‹ à§Œ à§ à§—",
-		3: "\u200c \u200d à§¸ à§¹ à§² à§³ à§° à§± à§´ à§µ à§¶ à§·",
-		4: "à§³",
-	},
-	"bo": {
-		0: "à½¾ à½¿ à½€ à½€à¾µ à¾ à¾à¾µ à½ à¾‘ à½‚ à½‚à¾· à¾’ à¾’à¾· à½„ à¾” à½… à¾• à½† à¾– à½‡ à¾— à½‰ à¾™ à½Š à¾š à½‹ à¾› à½Œ à½Œà¾· à¾œ à¾œà¾· à½Ž à¾ž à½ à¾Ÿ à½ à¾  à½‘ à½‘à¾· à¾¡ à¾¡à¾· à½“ à¾£ à½” à¾¤ à½• à¾¥ à½– à½–à¾· à¾¦ à¾¦à¾· à½˜ à¾¨ à½™ à¾© à½š à¾ª à½› à½›à¾· à¾« à¾«à¾· à½ à¾­ à¾º à½ž à¾® à½Ÿ à¾¯ à½  à¾° à½¡ à¾± à¾» à½¢ à½ª à¾² à¾¼ à½£ à¾³ à½¤ à¾´ à½¥ à¾µ à½¦ à¾¶ à½§ à¾· à½¨ à¾¸ à½² à½±à½² à¾€ à½±à¾€ à½´ à½±à½´ à¾²à¾€ à½· à¾³à¾€ à½¹ à½¹ à½º à½» à½¼ à½½ à¾„",
-		3: "à¼€",
-	},
-	"br": {
-		0: "a b ch cÊ¼h d e Ãª f g h i j k l m n Ã± o p r s t u Ã¹ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ c Ã§ Ã© Ã¨ Ä• Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ q Ãº Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z",
-	},
-	"brx": {
-		0: "à¤¼ à¤ à¤‚ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		5: "à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹",
-	},
-	"bs": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-	},
-	"byn": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ¨ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹° á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ¸ áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ áˆ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á—",
-	},
-	"ca": {
-		0: "a Ã  b c Ã§ d e Ã© Ã¨ f g h i Ã­ Ã¯ j k l Å€ m n o Ã³ Ã² p q r s t u Ãº Ã¼ v w x y z",
-		3: "Ã¡ Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ä« Ã± Âº Å Ã´ Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"cgg": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"chr": {
-		0: "áŽ  áŽ¡ áŽ¢ áŽ£ áŽ¤ áŽ¥ áŽ¦ áŽ§ áŽ¨ áŽ© áŽª áŽ« áŽ¬ áŽ­ áŽ® áŽ¯ áŽ° áŽ± áŽ² áŽ³ áŽ´ áŽµ áŽ¶ áŽ· áŽ¸ áŽ¹ áŽº áŽ» áŽ¼ áŽ½ áŽ¾ áŽ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á— á˜ á™ áš á› áœ á áž áŸ á  á¡ á¢ á£ á¤ á¥ á¦ á§ á¨ á© áª á« á¬ á­ á® á¯ á° á± á² á³ á´",
-		5: "áŽ  áŽ¦ áŽ­ áŽ³ áŽ¹ áŽ¾ á† áŒ á“ áœ á£ á© á¯",
-	},
-	"cs": {
-		0: "a Ã¡ b c Ä d Ä e Ã© Ä› f g h ch i Ã­ j k l m n Åˆ o Ã³ p q r Å™ s Å¡ t Å¥ u Ãº Å¯ v w x y Ã½ z Å¾",
-	},
-	"cy": {
-		0: "a Ã¡ Ã  Ã¢ Ã¤ b c ch d dd e Ã© Ã¨ Ãª Ã« f ff g ng h i Ã­ Ã¬ Ã® Ã¯ l ll m n o Ã³ Ã² Ã´ Ã¶ p ph r rh s t th u Ãº Ã¹ Ã» Ã¼ w áºƒ áº Åµ áº… y Ã½ á»³ Å· Ã¿",
-		3: "j k q v x z",
-	},
-	"da": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		2: "- â€ â€“ , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€² â€³ Â§",
-		3: "Ã¡ Ã© Ã¨ Ãª Ã« Ã¼ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"dav": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"de": {
-		0: "a Ã¤ b c d e f g h i j k l m n o Ã¶ p q r s ÃŸ t u Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€š \" â€œ â€ž Â« Â» ( ) [ ] { } @ * / & # Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"dje": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A B C D E F G H I J K L M N Æ ÅŠ O P Q R S T U W X Y Z",
-	},
-	"dua": {
-		0: "a Ã¡ b É“ c d É— e Ã© É› É›Ì f g i Ã­ j k l m n ny Å‹ o Ã³ É” É”Ì p r s t u Ãº Å« w y",
-		3: "h q v x z",
-		5: "A B Æ C D ÆŠ E Æ F G I J K L M N ÅŠ O Æ† P S T U W Y",
-	},
-	"dyo": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± Å‹ o Ã³ p q r s t u Ãº v w x y",
-		3: "z",
-		5: "A B C D E F G H I J K L M N Ã‘ ÅŠ O P Q R S T U V W X Y",
-	},
-	"dz": {
-		0: "à½€ à¾ à½ à¾‘ à½‚ à¾’ à½„ à¾” à½… à½† à½‡ à¾— à½‰ à¾™ à½ à¾Ÿ à½ à½‘ à¾¡ à½“ à¾£ à½” à¾¤ à½• à½– à¾¦ à½˜ à¾¨ à½™ à¾© à½š à½› à¾« à½ à¾­ à½ž à½Ÿ à½  à½¡ à¾± à½¢ à¾² à½£ à¾³ à½¤ à¾µ à½¦ à½§ à¾· à½¨ à½² à½´ à½º à½¼",
-		3: "à½Š à½‹ à½Œ à½Ž à½¥",
-	},
-	"ebu": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z",
-		5: "A B C D E F G H I Ä¨ J K L M N O P Q R S T U Å¨ V W X Y Z",
-	},
-	"ee": {
-		0: "a Ã¡ Ã  Ã£ b d É– e Ã© Ã¨ áº½ É› É›Ì É›Ì€ É›Ìƒ f Æ’ g É£ h i Ã­ Ã¬ Ä© k l m n Å‹ o Ã³ Ã² Ãµ É” É”Ì É”Ì€ É”Ìƒ p r s t u Ãº Ã¹ Å© v Ê‹ w x y z",
-		3: "c j q",
-		5: "A B C D Æ‰ E Æ F Æ‘ G Æ” H I J K L M N ÅŠ O Æ† P Q R S T U V Æ² W X Y Z",
-	},
-	"el": {
-		0: "Î± Î¬ Î² Î³ Î´ Îµ Î­ Î¶ Î· Î® Î¸ Î¹ Î¯ ÏŠ Î Îº Î» Î¼ Î½ Î¾ Î¿ ÏŒ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… Ï Ï‹ Î° Ï† Ï‡ Ïˆ Ï‰ ÏŽ",
-		2: "- â€ â€“ â€” , ; : ! . â€¦ \" ( ) [ ] @ * / \\ & Â§",
-		4: "Î± Î² Î³ Î´ Îµ Î¶ Î· Î¸ Î¹ Îº Î» Î¼ Î½ Î¾ Î¿ Ï€ Ï Ïƒ Ï„ Ï… Ï† Ï‡ Ïˆ Ï‰",
-		5: "Î‘ Î’ Î“ Î” Î• Î– Î— Î˜ Î™ Îš Î› Îœ Î Îž ÎŸ Î  Î¡ Î£ Î¤ Î¥ Î¦ Î§ Î¨ Î©",
-	},
-	"el_POLYTON": {
-		0: "Î± á¼€ á¼„ á¼‚ á¼† á¼ á¼… á¼ƒ á¼‡ Î¬ á½° á¾¶ Î² Î³ Î´ Îµ á¼ á¼” á¼’ á¼‘ á¼• á¼“ Î­ á½² Î¶ Î· á¼  á¼¤ á¼¢ á¼¦ á¼¡ á¼¥ á¼£ á¼§ Î® á½´ á¿† Î¸ Î¹ á¼° á¼´ á¼² á¼¶ á¼± á¼µ á¼³ á¼· Î¯ á½¶ á¿– ÏŠ Î á¿’ á¿— Îº Î» Î¼ Î½ Î¾ Î¿ á½„ á½‚ á½ƒ ÏŒ á½¸ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… á½ á½” á½’ á½– á½‘ á½• á½“ á½— Ï á½º á¿¦ Ï‹ Î° á¿¢ á¿§ Ï† Ï‡ Ïˆ Ï‰ á½¤ á½¢ á½¦ á½¥ á½£ á½§ ÏŽ á½¼ á¿¶",
-	},
-	"en": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"en_Dsrt": {
-		0: "ð¨ ð© ðª ð« ð¬ ð­ ð® ð¯ ð° ð± ð² ð³ ð´ ðµ ð¶ ð· ð¸ ð¹ ðº ð» ð¼ ð½ ð¾ ð¿ ð‘€ ð‘ ð‘‚ ð‘ƒ ð‘„ ð‘… ð‘† ð‘‡ ð‘ˆ ð‘‰ ð‘Š ð‘‹ ð‘Œ ð‘ ð‘Ž ð‘",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"en_GB": {
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"en_Shaw": {
-		0: "ð‘ ð‘‘ ð‘’ ð‘“ ð‘” ð‘• ð‘– ð‘— ð‘˜ ð‘™ ð‘š ð‘› ð‘œ ð‘ ð‘ž ð‘Ÿ ð‘  ð‘¡ ð‘¢ ð‘£ ð‘¤ ð‘¥ ð‘¦ ð‘§ ð‘¨ ð‘© ð‘ª ð‘« ð‘¬ ð‘­ ð‘® ð‘¯ ð‘° ð‘± ð‘² ð‘³ ð‘´ ð‘µ ð‘¶ ð‘· ð‘¸ ð‘¹ ð‘º ð‘» ð‘¼ ð‘½ ð‘¾ ð‘¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"eo": {
-		0: "a b c Ä‰ d e f g Ä h Ä¥ i j Äµ k l m n o p r s Å t u Å­ v z",
-		3: "q w x y",
-		5: "A B C Äˆ D E F G Äœ H Ä¤ I J Ä´ K L M N O P R S Åœ T U Å¬ V Z",
-	},
-	"es": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± o Ã³ p q r s t u Ãº Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! Â¡ ? Â¿ . â€¦ ' â€˜ â€™ \" â€œ â€ Â« Â» ( ) [ ] @ * / \\ & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Âº Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N Ã‘ O P Q R S T U V W X Y Z",
-	},
-	"et": {
-		0: "a b c d e f g h i j k l m n o p q r s Å¡ z Å¾ t u v w Ãµ Ã¤ Ã¶ Ã¼ x y",
-		3: "Ã¡ Ã  Ã¢ Ã¥ Ä Ã¦ Ã§ Ã© Ã¨ Ãª Ã« Ä“ Ã­ Ã¬ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Ã» Å«",
-		4: "a b c d e f g h i j k l m n o p q r s Å¡ z Å¾ t u v w Ãµ Ã¤ Ã¶ Ã¼ x y",
-		5: "A B C D E F G H I J K L M N O P Q R S Å  Z Å½ T U V Ã• Ã„ Ã– Ãœ X Y",
-	},
-	"eu": {
-		0: "a b c Ã§ d e f g h i j k l m n Ã± o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ewo": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ b d dz e Ã© Ã¨ Ãª Ä› Ç ÇÌ ÇÌ€ ÇÌ‚ ÇÌŒ É› É›Ì É›Ì€ É›Ì‚ É›ÌŒ f g h i Ã­ Ã¬ Ã® Ç k kp l m n Å„ Ç¹ ng nk Å‹ o Ã³ Ã² Ã´ Ç’ É” É”Ì É”Ì€ É”Ì‚ É”ÌŒ p r s t ts u Ãº Ã¹ Ã» Ç” v w y z",
-		3: "c j q x",
-		5: "A B D E ÆŽ Æ F G H I K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"fa": {
-		0: "Ù‹ Ù ÙŒ Ù‘ Ù” Ø¢ Ø§ Ø¡ Ø£ Ø¤ Ø¦ Ø¨ Ù¾ Øª Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Ø± Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ Ø© ÛŒ",
-		2: "- â€ ØŒ Ù« Ù¬ Ø› : ! ØŸ . â€¦ Â« Â» ( ) [ ] * / \\",
-		3: "\u200c \u200d \u200e \u200f ÙŽ Ù Ù Ù’ Ù– Ù° Û° Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹",
-		4: "ï·¼ a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "Ø¢ Ø§ Ø¨ Ù¾ Øª Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Ø± Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ ÛŒ",
-	},
-	"fa_AF": {
-		3: "Ù– Ù° \u200c \u200d Ù¼ Ú Ú… Ú‰ Ú“ Ú– Úš Ú« Ú¼ ÙŠ",
-	},
-	"ff": {
-		0: "a b É“ c d É— e f g h i j k l m n Ã± Å‹ o p r s t u w y Æ´",
-		3: "q v x z",
-		5: "A B Æ C D ÆŠ E F G H I J K L M N Ã‘ ÅŠ O P R S T U W Y Æ³",
-	},
-	"fi": {
-		0: "a b c d e f g h i j k l m n o p q r s Å¡ t u v w x y z Å¾ Ã¥ Ã¤ Ã¶",
-		3: "Ã¡ Ã  Ã¢ Ã£ Ä Ã§ Ä‘ Ã© Ã¨ Ã« Ç§ Ç¥ ÈŸ Ã­ Ã¯ Ç© Å„ Ã± Å‹ Ã´ Ãµ Å“ Å™ Å§ Ãº Ã¼ Ê’ Ç¯ Ã¦ Ã¸",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ã„ Ã–",
-	},
-	"fil": {
-		0: "a b c d e f g h i j k l m n Ã± ng o p q r s t u v w x y z",
-		3: "Ã¡ Ã  Ã¢ Ã© Ã¨ Ãª Ã­ Ã¬ Ã® Ã³ Ã² Ã´ Ãº Ã¹ Ã»",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"fo": {
-		0: "a Ã¡ b d Ã° e f g h i Ã­ j k l m n o Ã³ p r s t u Ãº v x y Ã½ Ã¦ Ã¸",
-		3: "c q w z",
-	},
-	"fr": {
-		0: "a Ã  Ã¢ Ã¦ b c Ã§ d e Ã© Ã¨ Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Å“ p q r s t u Ã¹ Ã» Ã¼ v w x y Ã¿ z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ â€™ Â« Â» ( ) [ ] @ * / & # â€  â€¡ Â§",
-		3: "Ã¡ Ã¥ Ã¤ Ã£ Ä Ä“ Ã­ Ã¬ Ä« Ã± Ã³ Ã² Ã¶ Ã¸ Ãº Ç”",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"fur": {
-		0: "a Ã  Ã¢ b c Ã§ d e Ã¨ Ãª f g h i Ã¬ Ã® j k l m n o Ã² Ã´ p q r s t u Ã¹ Ã» v w x y z",
-		3: "Ã¥ Ä Ã© Ã« ÄŸ Ã¯ Ã± Ã³ Å¡ Ã¼",
-	},
-	"ga": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ l m n o Ã³ p r s t u Ãº",
-		3: "á¸ƒ Ä‹ á¸‹ á¸Ÿ Ä¡ j k á¹ á¹— q á¹¡ á¹« v w x y z",
-	},
-	"gl": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± o Ã³ p q r s t u Ãº Ã¼ v w x y z",
-		5: "A B C D E F G H I J K L M N Ã‘ O P Q R S T U V W X Y Z",
-	},
-	"gsw": {
-		0: "a Ã¤ b c d e f g h i j k l m n o Ã¶ p q r s t u Ã¼ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"gu": {
-		0: "àª¼ à« àª‚ àª àªƒ àª… àª† àª‡ àªˆ àª‰ àªŠ àª‹ à«  àª àª àª àª‘ àª“ àª” àª• àª– àª— àª˜ àª™ àªš àª› àªœ àª àªž àªŸ àª  àª¡ àª¢ àª£ àª¤ àª¥ àª¦ àª§ àª¨ àªª àª« àª¬ àª­ àª® àª¯ àª° àª² àªµ àª¶ àª· àª¸ àª¹ àª³ àª½ àª¾ àª¿ à«€ à« à«‚ à«ƒ à«„ à«… à«‡ à«ˆ à«‰ à«‹ à«Œ à«",
-		3: "\u200c \u200d",
-		4: "àª° à«‚",
-		5: "àª… àª† àª‡ àªˆ àª‰ àªŠ àª‹ àª àª àª“ àª” àª• àª– àª— àª˜ àª™ àªš àª› àªœ àª àªž àªŸ àª  àª¡ àª¢ àª£ àª¤ àª¥ àª¦ àª§ àª¨ àªª àª« àª¬ àª­ àª® àª¯ àª° àª² àªµ àª¶ àª· àª¸ àª¹ àª³",
-	},
-	"guz": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"gv": {
-		0: "a b c Ã§ d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ha": {
-		0: "a b É“ c d É— e f g h i j k Æ™ l m n o r s sh t ts u w y Ê¼y z Ê¼",
-		3: "Ã¡ Ã  Ã¢ Ã© Ã¨ Ãª Ã­ Ã¬ Ã® Ã³ Ã² Ã´ p q rÌƒ Ãº Ã¹ Ã» v x Æ´",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"haw": {
-		0: "a Ä e Ä“ i Ä« o Å u Å« h k l m n p w Ê»",
-		3: "b c d f g j q r s t v x y z",
-	},
-	"he": {
-		0: "× ×‘ ×’ ×“ ×” ×• ×– ×— ×˜ ×™ ×› ×š ×œ ×ž × ×  ×Ÿ ×¡ ×¢ ×¤ ×£ ×¦ ×¥ ×§ ×¨ ×© ×ª",
-		3: "Ö½ ×„ \u200e \u200f Ö° Ö± Ö² Ö³ Ö´ Öµ Ö¶ Ö· Ö¸ Ö¹ Ö» ×‚ × Ö¼ Ö¿ Ö¾ ×³ ×´",
-		5: "× ×‘ ×’ ×“ ×” ×• ×– ×— ×˜ ×™ ×› ×œ ×ž ×  ×¡ ×¢ ×¤ ×¦ ×§ ×¨ ×© ×ª",
-	},
-	"hi": {
-		0: "à¤¼ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"hr": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C ÄŒ Ä† D DÅ½ Ä E F G H I J K L LJ M N NJ O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"hu": {
-		0: "a Ã¡ b c cs ccs d dz ddz dzs ddzs e Ã© f g gy ggy h i Ã­ j k l ly lly m n ny nny o Ã³ Ã¶ Å‘ p r s sz ssz t ty tty u Ãº Ã¼ Å± v z zs zzs",
-		2: "- â€“ , ; : ! ? . â€¦ ' â€™ \" â€ â€ž Â« Â» ( ) [ ] { } ã€ˆ ã€‰ @ * / & # â¸“ Â§ ~",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã² Å Ã´ Ã¸ Å Å“ q Ã¹ Å­ Ã» Å« w x y Ã¿",
-		5: "A Ã B C CS D DZ DZS E Ã‰ F G GY H I Ã J K L LY M N NY O Ã“ Ã– Å P Q R S SZ T TY U Ãš Ãœ Å° V W X Y Z ZS",
-	},
-	"hy": {
-		0: "ÖŠ Õ Õœ Õž Õš Õ› ÕŸ Õ¡ Õ¢ Õ£ Õ¤ Õ¥ Õ¦ Õ§ Õ¨ Õ© Õª Õ« Õ¬ Õ­ Õ® Õ¯ Õ° Õ± Õ² Õ³ Õ´ Õµ Õ¶ Õ· Õ¸ Õ¹ Õº Õ» Õ¼ Õ½ Õ¾ Õ¿ Ö€ Ö Ö‚ Öƒ Ö„ Ö‡ Ö… Ö†",
-	},
-	"ia": {
-		0: "a b c ch d e f g h i j k l m n o p ph q r s t u v w x y z",
-	},
-	"id": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ig": {
-		0: "a b ch d e áº¹ f g gb gh gw h i á»‹ j k kp kw l m n á¹… nw ny o á» p r s sh t u á»¥ v w y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ii": {
-		0: "ê€€ ê€€ ê€ ê€‚ ê€ƒ ê€„ ê€… ê€† ê€‡ ê€ˆ ê€‰ ê€Š ê€‹ ê€Œ ê€ ê€Ž ê€ ê€ ê€‘ ê€’ ê€“ ê€” ê€• ê€– ê€— ê€˜ ê€™ ê€š ê€› ê€œ ê€ ê€ž ê€Ÿ ê€  ê€¡ ê€¢ ê€£ ê€¤ ê€¥ ê€¦ ê€§ ê€¨ ê€© ê€ª ê€« ê€¬ ê€­ ê€® ê€¯ ê€° ê€± ê€² ê€³ ê€´ ê€µ ê€¶ ê€· ê€¸ ê€¹ ê€º ê€» ê€¼ ê€½ ê€¾ ê€¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‚€ ê‚ ê‚‚ ê‚ƒ ê‚„ ê‚… ê‚† ê‚‡ ê‚ˆ ê‚‰ ê‚Š ê‚‹ ê‚Œ ê‚ ê‚Ž ê‚ ê‚ ê‚‘ ê‚’ ê‚“ ê‚” ê‚• ê‚– ê‚— ê‚˜ ê‚™ ê‚š ê‚› ê‚œ ê‚ ê‚ž ê‚Ÿ ê‚  ê‚¡ ê‚¢ ê‚£ ê‚¤ ê‚¥ ê‚¦ ê‚§ ê‚¨ ê‚© ê‚ª ê‚« ê‚¬ ê‚­ ê‚® ê‚¯ ê‚° ê‚± ê‚² ê‚³ ê‚´ ê‚µ ê‚¶ ê‚· ê‚¸ ê‚¹ ê‚º ê‚» ê‚¼ ê‚½ ê‚¾ ê‚¿ êƒ€ êƒ êƒ‚ êƒƒ êƒ„ êƒ… êƒ† êƒ‡ êƒˆ êƒ‰ êƒŠ êƒ‹ êƒŒ êƒ êƒŽ êƒ êƒ êƒ‘ êƒ’ êƒ“ êƒ” êƒ• êƒ– êƒ— êƒ˜ êƒ™ êƒš êƒ› êƒœ êƒ êƒž êƒŸ êƒ  êƒ¡ êƒ¢ êƒ£ êƒ¤ êƒ¥ êƒ¦ êƒ§ êƒ¨ êƒ© êƒª êƒ« êƒ¬ êƒ­ êƒ® êƒ¯ êƒ° êƒ± êƒ² êƒ³ êƒ´ êƒµ êƒ¶ êƒ· êƒ¸ êƒ¹ êƒº êƒ» êƒ¼ êƒ½ êƒ¾ êƒ¿ ê„€ ê„ ê„‚ ê„ƒ ê„„ ê„… ê„† ê„‡ ê„ˆ ê„‰ ê„Š ê„‹ ê„Œ ê„ ê„Ž ê„ ê„ ê„‘ ê„’ ê„“ ê„” ê„• ê„– ê„— ê„˜ ê„™ ê„š ê„› ê„œ ê„ ê„ž ê„Ÿ ê„  ê„¡ ê„¢ ê„£ ê„¤ ê„¥ ê„¦ ê„§ ê„¨ ê„© ê„ª ê„« ê„¬ ê„­ ê„® ê„¯ ê„° ê„± ê„² ê„³ ê„´ ê„µ ê„¶ ê„· ê„¸ ê„¹ ê„º ê„» ê„¼ ê„½ ê„¾ ê„¿ ê…€ ê… ê…‚ ê…ƒ ê…„ ê…… ê…† ê…‡ ê…ˆ ê…‰ ê…Š ê…‹ ê…Œ ê… ê…Ž ê… ê… ê…‘ ê…’ ê…“ ê…” ê…• ê…– ê…— ê…˜ ê…™ ê…š ê…› ê…œ ê… ê…ž ê…Ÿ ê…  ê…¡ ê…¢ ê…£ ê…¤ ê…¥ ê…¦ ê…§ ê…¨ ê…© ê…ª ê…« ê…¬ ê…­ ê…® ê…¯ ê…° ê…± ê…² ê…³ ê…´ ê…µ ê…¶ ê…· ê…¸ ê…¹ ê…º ê…» ê…¼ ê…½ ê…¾ ê…¿ ê†€ ê† ê†‚ ê†ƒ ê†„ ê†… ê†† ê†‡ ê†ˆ ê†‰ ê†Š ê†‹ ê†Œ ê† ê†Ž ê† ê† ê†‘ ê†’ ê†“ ê†” ê†• ê†– ê†— ê†˜ ê†™ ê†š ê†› ê†œ ê† ê†ž ê†Ÿ ê†  ê†¡ ê†¢ ê†£ ê†¤ ê†¥ ê†¦ ê†§ ê†¨ ê†© ê†ª ê†« ê†¬ ê†­ ê†® ê†¯ ê†° ê†± ê†² ê†³ ê†´ ê†µ ê†¶ ê†· ê†¸ ê†¹ ê†º ê†» ê†¼ ê†½ ê†¾ ê†¿ ê‡€ ê‡ ê‡‚ ê‡ƒ ê‡„ ê‡… ê‡† ê‡‡ ê‡ˆ ê‡‰ ê‡Š ê‡‹ ê‡Œ ê‡ ê‡Ž ê‡ ê‡ ê‡‘ ê‡’ ê‡“ ê‡” ê‡• ê‡– ê‡— ê‡˜ ê‡™ ê‡š ê‡› ê‡œ ê‡ ê‡ž ê‡Ÿ ê‡  ê‡¡ ê‡¢ ê‡£ ê‡¤ ê‡¥ ê‡¦ ê‡§ ê‡¨ ê‡© ê‡ª ê‡« ê‡¬ ê‡­ ê‡® ê‡¯ ê‡° ê‡± ê‡² ê‡³ ê‡´ ê‡µ ê‡¶ ê‡· ê‡¸ ê‡¹ ê‡º ê‡» ê‡¼ ê‡½ ê‡¾ ê‡¿ êˆ€ êˆ êˆ‚ êˆƒ êˆ„ êˆ… êˆ† êˆ‡ êˆˆ êˆ‰ êˆŠ êˆ‹ êˆŒ êˆ êˆŽ êˆ êˆ êˆ‘ êˆ’ êˆ“ êˆ” êˆ• êˆ– êˆ— êˆ˜ êˆ™ êˆš êˆ› êˆœ êˆ êˆž êˆŸ êˆ  êˆ¡ êˆ¢ êˆ£ êˆ¤ êˆ¥ êˆ¦ êˆ§ êˆ¨ êˆ© êˆª êˆ« êˆ¬ êˆ­ êˆ® êˆ¯ êˆ° êˆ± êˆ² êˆ³ êˆ´ êˆµ êˆ¶ êˆ· êˆ¸ êˆ¹ êˆº êˆ» êˆ¼ êˆ½ êˆ¾ êˆ¿ ê‰€ ê‰ ê‰‚ ê‰ƒ ê‰„ ê‰… ê‰† ê‰‡ ê‰ˆ ê‰‰ ê‰Š ê‰‹ ê‰Œ ê‰ ê‰Ž ê‰ ê‰ ê‰‘ ê‰’ ê‰“ ê‰” ê‰• ê‰– ê‰— ê‰˜ ê‰™ ê‰š ê‰› ê‰œ ê‰ ê‰ž ê‰Ÿ ê‰  ê‰¡ ê‰¢ ê‰£ ê‰¤ ê‰¥ ê‰¦ ê‰§ ê‰¨ ê‰© ê‰ª ê‰« ê‰¬ ê‰­ ê‰® ê‰¯ ê‰° ê‰± ê‰² ê‰³ ê‰´ ê‰µ ê‰¶ ê‰· ê‰¸ ê‰¹ ê‰º ê‰» ê‰¼ ê‰½ ê‰¾ ê‰¿ êŠ€ êŠ êŠ‚ êŠƒ êŠ„ êŠ… êŠ† êŠ‡ êŠˆ êŠ‰ êŠŠ êŠ‹ êŠŒ êŠ êŠŽ êŠ êŠ êŠ‘ êŠ’ êŠ“ êŠ” êŠ• êŠ– êŠ— êŠ˜ êŠ™ êŠš êŠ› êŠœ êŠ êŠž êŠŸ êŠ  êŠ¡ êŠ¢ êŠ£ êŠ¤ êŠ¥ êŠ¦ êŠ§ êŠ¨ êŠ© êŠª êŠ« êŠ¬ êŠ­ êŠ® êŠ¯ êŠ° êŠ± êŠ² êŠ³ êŠ´ êŠµ êŠ¶ êŠ· êŠ¸ êŠ¹ êŠº êŠ» êŠ¼ êŠ½ êŠ¾ êŠ¿ ê‹€ ê‹ ê‹‚ ê‹ƒ ê‹„ ê‹… ê‹† ê‹‡ ê‹ˆ ê‹‰ ê‹Š ê‹‹ ê‹Œ ê‹ ê‹Ž ê‹ ê‹ ê‹‘ ê‹’ ê‹“ ê‹” ê‹• ê‹– ê‹— ê‹˜ ê‹™ ê‹š ê‹› ê‹œ ê‹ ê‹ž ê‹Ÿ ê‹  ê‹¡ ê‹¢ ê‹£ ê‹¤ ê‹¥ ê‹¦ ê‹§ ê‹¨ ê‹© ê‹ª ê‹« ê‹¬ ê‹­ ê‹® ê‹¯ ê‹° ê‹± ê‹² ê‹³ ê‹´ ê‹µ ê‹¶ ê‹· ê‹¸ ê‹¹ ê‹º ê‹» ê‹¼ ê‹½ ê‹¾ ê‹¿ êŒ€ êŒ êŒ‚ êŒƒ êŒ„ êŒ… êŒ† êŒ‡ êŒˆ êŒ‰ êŒŠ êŒ‹ êŒŒ êŒ êŒŽ êŒ êŒ êŒ‘ êŒ’ êŒ“ êŒ” êŒ• êŒ– êŒ— êŒ˜ êŒ™ êŒš êŒ› êŒœ êŒ êŒž êŒŸ êŒ  êŒ¡ êŒ¢ êŒ£ êŒ¤ êŒ¥ êŒ¦ êŒ§ êŒ¨ êŒ© êŒª êŒ« êŒ¬ êŒ­ êŒ® êŒ¯ êŒ° êŒ± êŒ² êŒ³ êŒ´ êŒµ êŒ¶ êŒ· êŒ¸ êŒ¹ êŒº êŒ» êŒ¼ êŒ½ êŒ¾ êŒ¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ êŽ€ êŽ êŽ‚ êŽƒ êŽ„ êŽ… êŽ† êŽ‡ êŽˆ êŽ‰ êŽŠ êŽ‹ êŽŒ êŽ êŽŽ êŽ êŽ êŽ‘ êŽ’ êŽ“ êŽ” êŽ• êŽ– êŽ— êŽ˜ êŽ™ êŽš êŽ› êŽœ êŽ êŽž êŽŸ êŽ  êŽ¡ êŽ¢ êŽ£ êŽ¤ êŽ¥ êŽ¦ êŽ§ êŽ¨ êŽ© êŽª êŽ« êŽ¬ êŽ­ êŽ® êŽ¯ êŽ° êŽ± êŽ² êŽ³ êŽ´ êŽµ êŽ¶ êŽ· êŽ¸ êŽ¹ êŽº êŽ» êŽ¼ êŽ½ êŽ¾ êŽ¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‘€ ê‘ ê‘‚ ê‘ƒ ê‘„ ê‘… ê‘† ê‘‡ ê‘ˆ ê‘‰ ê‘Š ê‘‹ ê‘Œ ê‘ ê‘Ž ê‘ ê‘ ê‘‘ ê‘’ ê‘“ ê‘” ê‘• ê‘– ê‘— ê‘˜ ê‘™ ê‘š ê‘› ê‘œ ê‘ ê‘ž ê‘Ÿ ê‘  ê‘¡ ê‘¢ ê‘£ ê‘¤ ê‘¥ ê‘¦ ê‘§ ê‘¨ ê‘© ê‘ª ê‘« ê‘¬ ê‘­ ê‘® ê‘¯ ê‘° ê‘± ê‘² ê‘³ ê‘´ ê‘µ ê‘¶ ê‘· ê‘¸ ê‘¹ ê‘º ê‘» ê‘¼ ê‘½ ê‘¾ ê‘¿ ê’€ ê’ ê’‚ ê’ƒ ê’„ ê’… ê’† ê’‡ ê’ˆ ê’‰ ê’Š ê’‹ ê’Œ",
-	},
-	"is": {
-		0: "a Ã¡ b d Ã° e Ã© f g h i Ã­ j k l m n o Ã³ p r s t u Ãº v y Ã½ Ã¾ Ã¦ Ã¶",
-		3: "c q w x z",
-	},
-	"it": {
-		0: "a Ã  b c d e Ã© Ã¨ f g h i Ã¬ j k l m n o Ã³ Ã² p q r s t u Ã¹ v w x y z",
-		2: "- â€” , ; : ! ? . â€¦ â€œ â€ ( ) [ ] { } @ /",
-		3: "Ã­ Ã¯ Ãº",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ja": {
-		0: "ã‚ž ã‚ ãƒ½ ãƒ¾ ã ã‚¡ ã‚ ã‚¢ ãƒ ã‚£ ã„ ã‚¤ ã… ã‚¥ ã† ã‚¦ ãƒ´ ã‡ ã‚§ ãˆ ã‚¨ ã‰ ã‚© ãŠ ã‚ª ãƒµ ã‹ ã‚« ãŒ ã‚¬ ã ã‚­ ãŽ ã‚® ã ã‚¯ ã ã‚° ãƒ¶ ã‘ ã‚± ã’ ã‚² ã“ ã‚³ ã” ã‚´ ã• ã‚µ ã– ã‚¶ ã— ã‚· ã˜ ã‚¸ ã™ ã‚¹ ãš ã‚º ã› ã‚» ãœ ã‚¼ ã ã‚½ ãž ã‚¾ ãŸ ã‚¿ ã  ãƒ€ ã¡ ãƒ ã¢ ãƒ‚ ã£ ãƒƒ ã¤ ãƒ„ ã¥ ãƒ… ã¦ ãƒ† ã§ ãƒ‡ ã¨ ãƒˆ ã© ãƒ‰ ãª ãƒŠ ã« ãƒ‹ ã¬ ãƒŒ ã­ ãƒ ã® ãƒŽ ã¯ ãƒ ã° ãƒ ã± ãƒ‘ ã² ãƒ’ ã³ ãƒ“ ã´ ãƒ” ãµ ãƒ• ã¶ ãƒ– ã· ãƒ— ã¸ ãƒ˜ ã¹ ãƒ™ ãº ãƒš ã» ãƒ› ã¼ ãƒœ ã½ ãƒ ã¾ ãƒž ã¿ ãƒŸ ã‚€ ãƒ  ã‚ ãƒ¡ ã‚‚ ãƒ¢ ã‚ƒ ãƒ£ ã‚„ ãƒ¤ ã‚… ãƒ¥ ã‚† ãƒ¦ ã‚‡ ãƒ§ ã‚ˆ ãƒ¨ ã‚‰ ãƒ© ã‚Š ãƒª ã‚‹ ãƒ« ã‚Œ ãƒ¬ ã‚ ãƒ­ ã‚Ž ãƒ® ã‚ ãƒ¯ ã‚ ãƒ° ã‚‘ ãƒ± ã‚’ ãƒ² ã‚“ ãƒ³ ä¸€ ä¸ ä¸ƒ ä¸‡ ä¸‡ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸ ä¸Ž ä¸” ä¸– ä¸˜ ä¸™ ä¸¡ ä¸¦ ä¸­ ä¸¸ ä¸¹ ä¸» ä¹… ä¹ ä¹— ä¹™ ä¹ ä¹± ä¹³ ä¹¾ äº€ äº† äºˆ äº‰ äº‹ äºŒ äº’ äº” äº• äºœ äº¡ äº¤ äº¨ äº« äº« äº¬ äº­ äºº ä» ä»Š ä»‹ ä» ä»• ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»® ä»° ä»² ä»¶ ä»» ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼š ä¼ ä¼¯ ä¼´ ä¼¸ ä¼º ä¼¼ ä½† ä½ ä½ ä½Ž ä½ ä½ ä½“ ä½• ä½™ ä½œ ä½³ ä½µ ä½¿ ä¾‹ ä¾ ä¾› ä¾ ä¾¡ ä¾® ä¾¯ ä¾µ ä¾¿ ä¿‚ ä¿ƒ ä¿Š ä¿— ä¿ ä¿¡ ä¿® ä¿³ ä¿µ ä¿¸ å€‰ å€‹ å€ å€’ å€™ å€Ÿ å€£ å€¤ å€« å€¹ å‰ å åœ å¥ å´ å´ åµ å¶ å½ å‚ å‚‘ å‚˜ å‚™ å‚¬ å‚µ å‚· å‚¾ åƒ åƒ åƒ• åƒš åƒ§ å„€ å„„ å„’ å„Ÿ å„ª å…ƒ å…ƒ å…„ å…… å…† å…ˆ å…‰ å…‹ å… å… å…š å…¥ å…¨ å…« å…« å…¬ å…­ å…± å…µ å…· å…¸ å…¼ å†… å†† å†Š å† å†’ å†— å†™ å†  å†¬ å†· å‡† å‡ å‡ å‡¡ å‡¦ å‡¶ å‡¸ å‡¸ å‡¹ å‡º åˆ€ åˆƒ åˆ† åˆ† åˆ‡ åˆˆ åˆŠ åˆ‘ åˆ— åˆ åˆ¤ åˆ¥ åˆ© åˆ° åˆ¶ åˆ¶ åˆ· åˆ¸ åˆº åˆ» å‰‡ å‰Š å‰ å‰– å‰› å‰£ å‰¤ å‰¯ å‰° å‰² å‰µ åŠ‡ åŠ› åŠŸ åŠ  åŠ£ åŠ© åŠª åŠ± åŠ´ åŠ¹ åŠ¾ å‹… å‹‡ å‹‰ å‹• å‹˜ å‹™ å‹ å‹Ÿ å‹¢ å‹¤ å‹§ å‹² å‹º åŒ åŒ… åŒ– åŒ— åŒ  åŒ¹ åŒ¹ åŒº åŒ» åŒ¿ å åƒ å‡ åˆ åŠ å‘ å‘ å’ å“ å” å— å˜ åš å  å° å± å³ å³ å´ åµ å¸ åŽ„ åŽ˜ åŽš åŽŸ åŽ³ åŽ» å‚ åˆ åŠ åŠ å‹ åŒ å åŽ å” å– å— å™ å£ å£ å¤ å¥ å« å¬ å¯ å° å² å³ å· å¸ å„ åˆ å‰ åŒ åŒ å åŽ å å å‘ å› åŸ å¦ å« å¸ å¹ å‘ˆ å‘ˆ å‘‰ å‘Š å‘¨ å‘³ å‘¼ å‘½ å’Œ å’² å“€ å“ å“¡ å“² å”† å”‡ å” å”¯ å”± å•† å• å•“ å–„ å–š å–œ å– å–ª å–« å–¶ å—£ å˜† å˜‰ å˜± å™¨ å™´ åš‡ å›š å›› å›ž å›  å›£ å›° å›² å›³ å›º å›½ åœ åœ’ åœŸ åœ§ åœ¨ åœ° å‚ å‡ åŠ å‘ åª åž‚ åž‹ åž£ åŸ‹ åŸŽ åŸŸ åŸ· åŸ¹ åŸº å € å ‚ å … å • å ¤ å ª å ± å ´ å¡€ å¡ å¡Š å¡‘ å¡” å¡— å¡š å¡© å¡¾ å¢ƒ å¢“ å¢— å¢œ å¢¨ å¢³ å¢¾ å£ å£‡ å£Š å£Œ å£« å£® å£° å£° å£± å£² å¤‰ å¤ å¤• å¤– å¤š å¤œ å¤¢ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¥‡ å¥‰ å¥ å¥‘ å¥” å¥¥ å¥¨ å¥ª å¥® å¥³ å¥´ å¥½ å¦‚ å¦‚ å¦ƒ å¦„ å¦Š å¦™ å¦¥ å¦¨ å¦¹ å¦» å§‰ å§‹ å§“ å§” å§« å§» å§¿ å¨ å¨˜ å¨  å¨¯ å©† å©š å©¦ å©¿ åª’ å« å«Œ å«¡ å¬¢ å­ å­” å­— å­˜ å­ å­£ å­¤ å­¦ å­« å®… å®‡ å®‡ å®ˆ å®‰ å®Œ å®— å®— å®˜ å®™ å®š å®œ å® å®Ÿ å®¢ å®¢ å®£ å®¤ å®® å®° å®³ å®³ å®´ å®µ å®¶ å®¹ å®¿ å¯‚ å¯„ å¯† å¯Œ å¯’ å¯› å¯ å¯Ÿ å¯¡ å¯§ å¯© å¯® å¯¸ å¯º å¯¾ å¯¿ å° å°‚ å°„ å°† å°‰ å°‰ å°Š å°‹ å°Ž å° å°‘ å°š å°± å°º å°¼ å°¼ å°½ å°¾ å°¿ å±€ å±… å±ˆ å±Š å±‹ å±• å±ž å±¤ å±¥ å±¯ å±± å² å²© å²¬ å²³ å²¸ å³  å³¡ å³° å³¶ å´‡ å´Ž å´© å· å·ž å·¡ å·£ å·¥ å·¥ å·¦ å·§ å·¨ å·® å·± å·» å¸‚ å¸ƒ å¸† å¸Œ å¸ å¸¥ å¸« å¸­ å¸¯ å¸° å¸³ å¸¸ å¸½ å¹… å¹• å¹£ å¹² å¹² å¹³ å¹´ å¹¸ å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ åº åºƒ åºŠ åº åº• åº— åºœ åº¦ åº§ åº« åº­ åº¶ åº¶ åº· åº¸ å»ƒ å»‰ å»Š å»¶ å»· å»º å¼ å¼Š å¼ å¼ å¼“ å¼“ å¼” å¼• å¼˜ å¼Ÿ å¼¦ å¼§ å¼± å¼µ å¼· å¼¾ å½“ å½¢ å½© å½« å½° å½± å½¹ å½¼ å¾€ å¾ å¾„ å¾… å¾‹ å¾Œ å¾ å¾’ å¾“ å¾— å¾¡ å¾© å¾ª å¾® å¾³ å¾´ å¾¹ å¿ƒ å¿… å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿œ å¿  å¿« å¿µ æ€’ æ€– æ€ æ€  æ€¥ æ€§ æ€ª æ‹ æ æ’ æ¥ æ¨ æ© æ­ æ¯ æµ æ‚” æ‚Ÿ æ‚  æ‚£ æ‚¦ æ‚© æ‚ª æ‚² æ‚¼ æƒ… æƒ‘ æƒœ æƒ¨ æƒ° æƒ³ æ„ æ„‰ æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…Œ æ…Ž æ…• æ…¢ æ…£ æ…¨ æ…® æ…° æ…¶ æ†‚ æ†Ž æ†¤ æ†© æ†² æ†¶ æ†¾ æ‡‡ æ‡ æ‡² æ‡¸ æˆ æˆ æˆ‘ æˆ’ æˆ¦ æˆ¯ æˆ¸ æˆ» æˆ¿ æ‰€ æ‰‡ æ‰‰ æ‰‹ æ‰ æ‰“ æ‰• æ‰± æ‰¶ æ‰¹ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ‘ æŠ• æŠ— æŠ˜ æŠœ æŠž æŠ« æŠ± æŠµ æŠ¹ æŠ¼ æŠ½ æ‹… æ‹ æ‹ æ‹’ æ‹“ æ‹˜ æ‹™ æ‹› æ‹ æ‹  æ‹¡ æ‹¬ æ‹· æ‹¾ æŒ æŒ‡ æŒ‘ æŒ™ æŒŸ æŒ¯ æŒ¿ æ• æœ æ¨ æ® æŽƒ æŽˆ æŽŒ æŽ’ æŽ˜ æŽ› æŽ¡ æŽ¢ æŽ¥ æŽ§ æŽ¨ æŽª æŽ² æ æ æš æ› æ¡ æ® æ´ æº æ æ¬ æ­ æº æ¾ æ‘‚ æ‘˜ æ‘© æ’ƒ æ’¤ æ’® æ’² æ“ æ“ æ“¦ æ“¬ æ”¯ æ”¹ æ”» æ”¾ æ”¿ æ•… æ• æ•‘ æ•— æ•™ æ•¢ æ•£ æ•¬ æ•° æ•´ æ•µ æ•· æ–‡ æ–‰ æ–Ž æ–— æ–™ æ–œ æ–¤ æ–¥ æ–­ æ–° æ–¹ æ–½ æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—§ æ—§ æ—¨ æ—© æ—¬ æ˜† æ˜‡ æ˜Œ æ˜Ž æ˜“ æ˜” æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ˜¼ æ™‚ æ™© æ™® æ™¯ æ™´ æ™¶ æš æš‡ æš‘ æš– æš— æš¦ æš« æš® æš´ æ›‡ æ›œ æ›² æ›´ æ›¸ æ›¹ æ›¿ æœ€ æœˆ æœ‰ æœ æœ• æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ± æœ´ æœº æœ½ æ‰ æ æ‘ æŸ æ¡ æ¥ æ¯ æ± æ¾ æ¿ æž æž— æžš æžœ æž æž  æž¢ æž¯ æž¶ æŸ„ æŸ æŸ“ æŸ” æŸ± æŸ³ æŸ» æ „ æ “ æ ¡ æ ª æ ¸ æ ¹ æ ¼ æ ½ æ¡ƒ æ¡ˆ æ¡‘ æ¡œ æ¡Ÿ æ¢… æ¢° æ£„ æ£‹ æ£’ æ£š æ£Ÿ æ£® æ£º æ¤ æ¤œ æ¥­ æ¥µ æ¥¼ æ¥½ æ¦‚ æ§‹ æ§˜ æ§½ æ¨™ æ¨¡ æ¨© æ¨ª æ¨¹ æ©‹ æ©Ÿ æ¬„ æ¬  æ¬¡ æ¬§ æ¬² æ¬º æ¬¾ æ­Œ æ­“ æ­¢ æ­£ æ­¦ æ­© æ­¯ æ­³ æ­´ æ­» æ®‰ æ®‰ æ®Š æ®‹ æ®– æ®´ æ®µ æ®º æ®» æ®¿ æ¯ æ¯Ž æ¯’ æ¯” æ¯› æ° æ°‘ æ°— æ°´ æ°· æ°¸ æ± æ±‚ æ±Ž æ±— æ±š æ±Ÿ æ±  æ±º æ±½ æ²ˆ æ²– æ²¡ æ²¢ æ²³ æ²¸ æ²¹ æ²» æ²¼ æ²¿ æ³ æ³‰ æ³Š æ³Œ æ³• æ³¡ æ³¡ æ³¢ æ³£ æ³¥ æ³¨ æ³° æ³³ æ´‹ æ´— æ´ž æ´¥ æ´ª æ´» æ´¾ æµ æµ„ æµ… æµœ æµ¦ æµª æµ® æµ´ æµ· æµ¸ æ¶ˆ æ¶™ æ¶¯ æ¶² æ¶¼ æ·‘ æ·¡ æ·± æ·· æ·» æ¸… æ¸‡ æ¸‡ æ¸ˆ æ¸‰ æ¸‹ æ¸“ æ¸› æ¸¡ æ¸¦ æ¸© æ¸¬ æ¸¯ æ¹– æ¹¯ æ¹¾ æ¹¾ æ¹¿ æº€ æº æº– æº æº¶ æ»… æ»‹ æ»‘ æ» æ»ž æ»´ æ¼ æ¼‚ æ¼† æ¼ æ¼” æ¼  æ¼¢ æ¼« æ¼¬ æ¼¸ æ½” æ½œ æ½Ÿ æ½¤ æ½® æ¾„ æ¿€ æ¿ æ¿ƒ æ¿« æ¿¯ ç€¬ ç« ç¯ ç° ç½ ç‚‰ ç‚Š ç‚Ž ç‚­ ç‚¹ ç‚º çƒˆ ç„¡ ç„¦ ç„¶ ç„¼ ç…™ ç…§ ç…© ç…® ç†Ÿ ç†± ç‡ƒ ç‡¥ çˆ† çˆµ çˆ¶ ç‰‡ ç‰ˆ ç‰™ ç‰› ç‰§ ç‰© ç‰² ç‰¹ çŠ  çŠ¬ çŠ¯ çŠ¶ ç‹‚ ç‹© ç‹¬ ç‹­ çŒ› çŒŸ çŒ« çŒ® çŒ¶ çŒ¿ ç„ ç£ ç² çŽ„ çŽ‡ çŽ‰ çŽ‹ ç ç  ç­ ç¾ çƒ ç† ç´ ç’° ç’½ ç“¶ ç”˜ ç”š ç”Ÿ ç”£ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”· ç”º ç”» ç•Œ ç•‘ ç•” ç•™ ç•œ ç• ç•¥ ç•ª ç•° ç•³ ç–Ž ç–‘ ç–« ç–² ç–¾ ç—… ç—‡ ç—˜ ç—› ç—¢ ç—´ ç™‚ ç™’ ç™– ç™º ç™» ç™½ ç™¾ çš„ çš† çš‡ çš® çš¿ ç›† ç›Š ç›— ç›› ç›Ÿ ç›£ ç›¤ ç›® ç›² ç›´ ç›¸ ç›¾ çœ çœ‹ çœŒ çœŸ çœ  çœº çœ¼ ç€ ç¡ ç£ çž¬ çŸ› çŸ¢ çŸ¥ çŸ­ çŸ¯ çŸ³ ç ‚ ç ” ç • ç ² ç ´ ç¡ ç¡« ç¡¬ ç¢ ç¢‘ ç¢º ç£ ç£¨ ç¤ ç¤Ž ç¤º ç¤¼ ç¤¾ ç¥ˆ ç¥‰ ç¥– ç¥š ç¥ ç¥ž ç¥¥ ç¥¨ ç¥­ ç¦ ç¦„ ç¦… ç¦ ç¦ ç¦Ž ç¦ ç§€ ç§ ç§‹ ç§‘ ç§’ ç§˜ ç§Ÿ ç§© ç§° ç§» ç¨‹ ç¨Ž ç¨š ç¨® ç¨² ç¨¼ ç¨¿ ç©€ ç©‚ ç© ç© ç©« ç©´ ç©¶ ç©º çª çªƒ çª’ çª“ çª® çª¯ ç«‹ ç«œ ç«  ç«¥ ç«¯ ç«¶ ç«¹ ç¬‘ ç¬› ç¬¦ ç¬¬ ç­† ç­‰ ç­‹ ç­’ ç­” ç­– ç®‡ ç®— ç®¡ ç®± ç¯€ ç¯„ ç¯‰ ç¯¤ ç°¡ ç°¿ ç± ç±³ ç²‰ ç²‹ ç²’ ç²— ç²˜ ç²› ç²§ ç²¾ ç³– ç³§ ç³¸ ç³» ç³¾ ç´€ ç´„ ç´… ç´‹ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´  ç´¡ ç´¢ ç´« ç´¯ ç´° ç´³ ç´¹ ç´º çµ‚ çµ„ çµŒ çµ çµž çµ¡ çµ¦ çµ± çµµ çµ¶ çµ¹ ç¶™ ç¶š ç¶­ ç¶± ç¶² ç¶¿ ç·Š ç· ç·‘ ç·’ ç·š ç·  ç·¨ ç·© ç·¯ ç·´ ç¸ ç¸„ ç¸› ç¸¦ ç¸« ç¸® ç¸¾ ç¹ ç¹Š ç¹” ç¹• ç¹­ ç¹° ç¼¶ ç½ª ç½® ç½° ç½² ç½· ç¾… ç¾Š ç¾Ž ç¾¤ ç¾© ç¾½ ç¿ ç¿Œ ç¿’ ç¿» ç¿¼ è€ è€ƒ è€… è€ è€• è€— è€³ è– èž è´ è· è‚‰ è‚Œ è‚– è‚ è‚¢ è‚¥ è‚© è‚ª è‚¯ è‚² è‚º èƒƒ èƒ† èƒŒ èƒŽ èƒž èƒ´ èƒ¸ èƒ½ è„‚ è„… è„ˆ è„š è„± è„³ è„¹ è… è…• è…° è…¸ è…¹ è†š è†œ è†¨ è‡“ è‡£ è‡¨ è‡ª è‡­ è‡³ è‡´ èˆˆ èˆŒ èˆŽ èˆ— èˆž èˆŸ èˆª èˆ¬ èˆ¶ èˆ¹ è‰‡ è‰¦ è‰¯ è‰² èŠ‹ èŠ èŠ± èŠ³ èŠ¸ èŠ½ è‹— è‹¥ è‹¦ è‹± èŒ‚ èŒŽ èŒ¶ è‰ è’ è˜ è· èŠ èŒ è“ èœ è¯ è½ è‘‰ è‘— è‘¬ è’¸ è“„ è”µ è–„ è–¦ è–ª è–ª è–« è–¬ è—© è—» è™ è™š è™œ è™ž è™« èšŠ èš• è›‡ è› è›® èž è¡€ è¡† è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ è¡¨ è¡° è¡· è¢‹ è¢« è£ è£‚ è£… è£ è£• è£œ è£¸ è£½ è¤‡ è¤ è¤’ è¥Ÿ è¥² è¥¿ è¦ è¦† è¦‡ è¦‹ è¦ è¦– è¦š è¦§ è¦ª è¦³ è§’ è§£ è§¦ è¨€ è¨‚ è¨ˆ è¨Ž è¨“ è¨— è¨˜ è¨Ÿ è¨ª è¨­ è¨± è¨³ è¨´ è¨º è¨¼ è© è©” è©• è©ž è©  è©¦ è©© è©° è©° è©± è©² è©³ èª‡ èª‰ èªŒ èª èª“ èª• èª˜ èªž èª  èª¤ èª¬ èª­ èª² èª¿ è«‡ è«‹ è«– è«­ è«® è«¸ è«¾ è¬€ è¬ è¬„ è¬™ è¬› è¬ è¬¡ è¬¹ è­˜ è­œ è­¦ è­° è­² è­· è°· è±† è±Š è±š è±¡ è±ª è² è²ž è²  è²  è²¡ è²¢ è²§ è²§ è²¨ è²© è²« è²¬ è²¯ è²´ è²· è²¸ è²» è²¿ è³€ è³ƒ è³„ è³‡ è³Š è³“ è³› è³œ è³ž è³  è³¢ è³¦ è³ª è³¼ è´ˆ èµ¤ èµ¦ èµ° èµ´ èµ· è¶… è¶Š è¶£ è¶³ è· è·¡ è·¯ è·³ è·µ è¸Š è¸ èº èº« è»Š è»Œ è» è»’ è»Ÿ è»¢ è»¸ è»½ è¼ƒ è¼‰ è¼ è¼© è¼ª è¼¸ è½„ è¾› è¾ž è¾± è¾² è¾º è¾¼ è¿… è¿Ž è¿‘ è¿” è¿« è¿­ è¿° è¿· è¿½ é€€ é€ é€ƒ é€† é€ é€ é€“ é€” é€š é€ é€Ÿ é€  é€£ é€® é€± é€² é€¸ é‚ é… é‡ éŠ é‹ é éŽ é“ é“ é” é• é  é£ é© é­ é® éµ é· é¸ éº é¿ é‚„ é‚¦ é‚ª é‚¸ éƒŠ éƒŽ éƒ¡ éƒ¨ éƒ­ éƒµ éƒ· éƒ½ é…Œ é… é…’ é…” é…¢ é…ª é…¬ é…µ é…· é…¸ é†œ é†¸ é‡ˆ é‡Œ é‡Œ é‡ é‡Ž é‡ é‡‘ é‡ é‡£ éˆ éˆ´ é‰„ é‰› é‰¢ é‰± éŠ€ éŠƒ éŠ… éŠ‘ éŠ˜ éŠ­ é‹­ é‹³ é‹¼ éŒ˜ éŒ  éŒ¬ éŒ¯ éŒ² é› éŽ– éŽ® é¡ é˜ é‘‘ é•· é–€ é–‰ é–‹ é–‘ é–“ é–¢ é–£ é–¥ é–² é—˜ é˜² é˜» é™„ é™ é™ é™› é™¢ é™¢ é™£ é™¤ é™¥ é™ª é™° é™³ é™µ é™¶ é™¸ é™º é™½ éš… éš† éšŠ éšŽ éš éš” éš› éšœ éš  éš£ éš· éš» é›„ é›„ é›… é›† é›‡ é›‰ é›Œ é›‘ é›¢ é›£ é›¨ é›ª é›° é›² é›¶ é›· é›» éœ€ éœ‡ éœŠ éœœ éœ§ éœ² é’ é™ éž é¢ é© é´ éŸ“ éŸ³ éŸ» éŸ¿ é ‚ é … é † é  é  é ‘ é ’ é ˜ é ­ é » é ¼ é¡Œ é¡ é¡” é¡• é¡˜ é¡ž é¡§ é¢¨ é£› é£Ÿ é£¢ é£¯ é£² é£¼ é£¼ é£½ é£¾ é¤Š é¤“ é¤¨ é¦– é¦™ é¦¬ é§„ é§„ é§… é§† é§ é¨Ž é¨’ é¨“ é¨° é©š éª¨ é«„ é«˜ é«ª é¬¼ é­‚ é­… é­” é­š é®® é¯¨ é³¥ é³´ é¶ éº— éº¦ éº» é»„ é»’ é»™ é¼“ é¼» é½¢",
-		3: "å…Œ æ‹¼ æ¥” éŒ„ é³¯",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"jmc": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"ka": {
-		0: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ± áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ² áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ³ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ´ áƒ¯ áƒ° áƒµ áƒ¶ áƒ· áƒ¸ áƒ¹ áƒº",
-		3: "â´€ â´ â´‚ â´ƒ â´„ â´… â´† â´¡ â´‡ â´ˆ â´‰ â´Š â´‹ â´Œ â´¢ â´ â´Ž â´ â´ â´‘ â´’ â´£ â´“ â´” â´• â´– â´— â´˜ â´™ â´š â´› â´œ â´ â´ž â´¤ â´Ÿ â´  â´¥",
-		4: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ¯ áƒ°",
-		5: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ¯ áƒ°",
-	},
-	"kab": {
-		0: "a b c Ä d á¸ e É› f g Ç§ É£ h á¸¥ i j k l m n p q r á¹› s á¹£ t á¹­ u w x y z áº“",
-		3: "o v",
-		5: "A B C ÄŒ D á¸Œ E Æ F G Ç¦ Æ” H á¸¤ I J K L M N P Q R á¹š S á¹¢ T á¹¬ U W X Y Z áº’",
-	},
-	"kam": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"kde": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"kea": {
-		0: "a b d dj e f g i j k l lh m n nh o p r s t tx u v x z",
-		3: "Ã¡ Ã  Ã¢ Ã£ c Ã§ Ã© Ãª h Ã­ Ã± Ã³ Ã´ q Ãº w y",
-		5: "A B D E F G H I J K L M N O P R S T U V X Z",
-	},
-	"khq": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A Ãƒ B C D E áº¼ F G H I J K L M N Æ ÅŠ O Ã• P Q R S Å  T U W X Y Z Å½",
-	},
-	"ki": {
-		0: "a b c d e g h i Ä© j k m n o r t u Å© w y",
-		3: "f l p q s v x z",
-		5: "A B C D E G H I J K M N O R T U W Y",
-	},
-	"kk": {
-		0: "Ð° Ó™ Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ò£ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò± Ò¯ Ñ„ Ñ… Ò» Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ Ñ– ÑŒ Ñ ÑŽ Ñ",
-		5: "Ð Ó˜ Ð‘ Ð’ Ð“ Ò’ Ð” Ð• Ð Ð– Ð— Ð˜ Ð™ Ðš Òš Ð› Ðœ Ð Ò¢ Ðž Ó¨ ÐŸ Ð  Ð¡ Ð¢ Ð£ Ò° Ò® Ð¤ Ð¥ Òº Ð¦ Ð§ Ð¨ Ð© Ðª Ð« Ð† Ð¬ Ð­ Ð® Ð¯",
-	},
-	"kl": {
-		0: "a Ã¡ Ã¢ Ã£ b c d e Ã© Ãª f g h i Ã­ Ã® Ä© j k l m n o Ã´ p q Ä¸ r s t u Ãº Ã» Å© v w x y z Ã¦ Ã¸ Ã¥",
-	},
-	"kln": {
-		0: "a b c d e g h i j k l m n o p r s t u w y",
-		3: "f q v x z",
-		5: "A B C D E G H I J K L M N O P R S T U W Y",
-	},
-	"km": {
-		0: "áŸŒ áŸŽ áŸ áŸ‘ áŸ áŸˆ áŸ‹ áŸ‰ áŸŠ áŸ áž€ áž áž‚ ážƒ áž„ áž… áž† áž‡ ážˆ áž‰ ážŠ áž‹ ážŒ áž ážŽ áž áž áž‘ áž’ áž“ áž” áž• áž– áž— áž˜ áž™ ážš áž« áž¬ áž› áž­ áž® ážœ ážŸ áž  áž¡ áž¢ áž¢áž¶ áž¥ áž¦ áž§ áž§áž€ ážª áž© áž¯ áž° áž± áž² áž³ áž¶ áž· áž¸ áž¹ ážº áž» áž¼ áž½ áž¾ áž¿ áŸ€ áŸ áŸ‚ áŸƒ áŸ„ áŸ… áŸ† áŸ‡ áŸ’",
-		3: "\u17b4 \u17b5 \u200b áž ážž",
-	},
-	"kn": {
-		0: "à²¼ à³¦ à³§ à³¨ à³© à³ª à³« à³¬ à³­ à³® à³¯ à²… à²† à²‡ à²ˆ à²‰ à²Š à²‹ à³  à²Œ à³¡ à²Ž à² à² à²’ à²“ à²” à²‚ à²ƒ à²• à²– à²— à²˜ à²™ à²š à²› à²œ à² à²ž à²Ÿ à²  à²¡ à²¢ à²£ à²¤ à²¥ à²¦ à²§ à²¨ à²ª à²« à²¬ à²­ à²® à²¯ à²° à²± à²² à²µ à²¶ à²· à²¸ à²¹ à²³ à³ž à²½ à²¾ à²¿ à³€ à³ à³‚ à³ƒ à³„ à³† à³‡ à³ˆ à³Š à³‹ à³Œ à³ à³• à³–",
-		4: "à²° à³‚",
-	},
-	"ko": {
-		0: "ê°€ ê°€ ê° ê°‚ ê°ƒ ê°„ ê°… ê°† ê°‡ ê°ˆ ê°‰ ê°Š ê°‹ ê°Œ ê° ê°Ž ê° ê° ê°‘ ê°’ ê°“ ê°” ê°• ê°– ê°— ê°˜ ê°™ ê°š ê°› ê°œ ê° ê°ž ê°Ÿ ê°  ê°¡ ê°¢ ê°£ ê°¤ ê°¥ ê°¦ ê°§ ê°¨ ê°© ê°ª ê°« ê°¬ ê°­ ê°® ê°¯ ê°° ê°± ê°² ê°³ ê°´ ê°µ ê°¶ ê°· ê°¸ ê°¹ ê°º ê°» ê°¼ ê°½ ê°¾ ê°¿ ê±€ ê± ê±‚ ê±ƒ ê±„ ê±… ê±† ê±‡ ê±ˆ ê±‰ ê±Š ê±‹ ê±Œ ê± ê±Ž ê± ê± ê±‘ ê±’ ê±“ ê±” ê±• ê±– ê±— ê±˜ ê±™ ê±š ê±› ê±œ ê± ê±ž ê±Ÿ ê±  ê±¡ ê±¢ ê±£ ê±¤ ê±¥ ê±¦ ê±§ ê±¨ ê±© ê±ª ê±« ê±¬ ê±­ ê±® ê±¯ ê±° ê±± ê±² ê±³ ê±´ ê±µ ê±¶ ê±· ê±¸ ê±¹ ê±º ê±» ê±¼ ê±½ ê±¾ ê±¿ ê²€ ê² ê²‚ ê²ƒ ê²„ ê²… ê²† ê²‡ ê²ˆ ê²‰ ê²Š ê²‹ ê²Œ ê² ê²Ž ê² ê² ê²‘ ê²’ ê²“ ê²” ê²• ê²– ê²— ê²˜ ê²™ ê²š ê²› ê²œ ê² ê²ž ê²Ÿ ê²  ê²¡ ê²¢ ê²£ ê²¤ ê²¥ ê²¦ ê²§ ê²¨ ê²© ê²ª ê²« ê²¬ ê²­ ê²® ê²¯ ê²° ê²± ê²² ê²³ ê²´ ê²µ ê²¶ ê²· ê²¸ ê²¹ ê²º ê²» ê²¼ ê²½ ê²¾ ê²¿ ê³€ ê³ ê³‚ ê³ƒ ê³„ ê³… ê³† ê³‡ ê³ˆ ê³‰ ê³Š ê³‹ ê³Œ ê³ ê³Ž ê³ ê³ ê³‘ ê³’ ê³“ ê³” ê³• ê³– ê³— ê³˜ ê³™ ê³š ê³› ê³œ ê³ ê³ž ê³Ÿ ê³  ê³¡ ê³¢ ê³£ ê³¤ ê³¥ ê³¦ ê³§ ê³¨ ê³© ê³ª ê³« ê³¬ ê³­ ê³® ê³¯ ê³° ê³± ê³² ê³³ ê³´ ê³µ ê³¶ ê³· ê³¸ ê³¹ ê³º ê³» ê³¼ ê³½ ê³¾ ê³¿ ê´€ ê´ ê´‚ ê´ƒ ê´„ ê´… ê´† ê´‡ ê´ˆ ê´‰ ê´Š ê´‹ ê´Œ ê´ ê´Ž ê´ ê´ ê´‘ ê´’ ê´“ ê´” ê´• ê´– ê´— ê´˜ ê´™ ê´š ê´› ê´œ ê´ ê´ž ê´Ÿ ê´  ê´¡ ê´¢ ê´£ ê´¤ ê´¥ ê´¦ ê´§ ê´¨ ê´© ê´ª ê´« ê´¬ ê´­ ê´® ê´¯ ê´° ê´± ê´² ê´³ ê´´ ê´µ ê´¶ ê´· ê´¸ ê´¹ ê´º ê´» ê´¼ ê´½ ê´¾ ê´¿ êµ€ êµ êµ‚ êµƒ êµ„ êµ… êµ† êµ‡ êµˆ êµ‰ êµŠ êµ‹ êµŒ êµ êµŽ êµ êµ êµ‘ êµ’ êµ“ êµ” êµ• êµ– êµ— êµ˜ êµ™ êµš êµ› êµœ êµ êµž êµŸ êµ  êµ¡ êµ¢ êµ£ êµ¤ êµ¥ êµ¦ êµ§ êµ¨ êµ© êµª êµ« êµ¬ êµ­ êµ® êµ¯ êµ° êµ± êµ² êµ³ êµ´ êµµ êµ¶ êµ· êµ¸ êµ¹ êµº êµ» êµ¼ êµ½ êµ¾ êµ¿ ê¶€ ê¶ ê¶‚ ê¶ƒ ê¶„ ê¶… ê¶† ê¶‡ ê¶ˆ ê¶‰ ê¶Š ê¶‹ ê¶Œ ê¶ ê¶Ž ê¶ ê¶ ê¶‘ ê¶’ ê¶“ ê¶” ê¶• ê¶– ê¶— ê¶˜ ê¶™ ê¶š ê¶› ê¶œ ê¶ ê¶ž ê¶Ÿ ê¶  ê¶¡ ê¶¢ ê¶£ ê¶¤ ê¶¥ ê¶¦ ê¶§ ê¶¨ ê¶© ê¶ª ê¶« ê¶¬ ê¶­ ê¶® ê¶¯ ê¶° ê¶± ê¶² ê¶³ ê¶´ ê¶µ ê¶¶ ê¶· ê¶¸ ê¶¹ ê¶º ê¶» ê¶¼ ê¶½ ê¶¾ ê¶¿ ê·€ ê· ê·‚ ê·ƒ ê·„ ê·… ê·† ê·‡ ê·ˆ ê·‰ ê·Š ê·‹ ê·Œ ê· ê·Ž ê· ê· ê·‘ ê·’ ê·“ ê·” ê·• ê·– ê·— ê·˜ ê·™ ê·š ê·› ê·œ ê· ê·ž ê·Ÿ ê·  ê·¡ ê·¢ ê·£ ê·¤ ê·¥ ê·¦ ê·§ ê·¨ ê·© ê·ª ê·« ê·¬ ê·­ ê·® ê·¯ ê·° ê·± ê·² ê·³ ê·´ ê·µ ê·¶ ê·· ê·¸ ê·¹ ê·º ê·» ê·¼ ê·½ ê·¾ ê·¿ ê¸€ ê¸ ê¸‚ ê¸ƒ ê¸„ ê¸… ê¸† ê¸‡ ê¸ˆ ê¸‰ ê¸Š ê¸‹ ê¸Œ ê¸ ê¸Ž ê¸ ê¸ ê¸‘ ê¸’ ê¸“ ê¸” ê¸• ê¸– ê¸— ê¸˜ ê¸™ ê¸š ê¸› ê¸œ ê¸ ê¸ž ê¸Ÿ ê¸  ê¸¡ ê¸¢ ê¸£ ê¸¤ ê¸¥ ê¸¦ ê¸§ ê¸¨ ê¸© ê¸ª ê¸« ê¸¬ ê¸­ ê¸® ê¸¯ ê¸° ê¸± ê¸² ê¸³ ê¸´ ê¸µ ê¸¶ ê¸· ê¸¸ ê¸¹ ê¸º ê¸» ê¸¼ ê¸½ ê¸¾ ê¸¿ ê¹€ ê¹ ê¹‚ ê¹ƒ ê¹„ ê¹… ê¹† ê¹‡ ê¹ˆ ê¹‰ ê¹Š ê¹‹ ê¹Œ ê¹ ê¹Ž ê¹ ê¹ ê¹‘ ê¹’ ê¹“ ê¹” ê¹• ê¹– ê¹— ê¹˜ ê¹™ ê¹š ê¹› ê¹œ ê¹ ê¹ž ê¹Ÿ ê¹  ê¹¡ ê¹¢ ê¹£ ê¹¤ ê¹¥ ê¹¦ ê¹§ ê¹¨ ê¹© ê¹ª ê¹« ê¹¬ ê¹­ ê¹® ê¹¯ ê¹° ê¹± ê¹² ê¹³ ê¹´ ê¹µ ê¹¶ ê¹· ê¹¸ ê¹¹ ê¹º ê¹» ê¹¼ ê¹½ ê¹¾ ê¹¿ êº€ êº êº‚ êºƒ êº„ êº… êº† êº‡ êºˆ êº‰ êºŠ êº‹ êºŒ êº êºŽ êº êº êº‘ êº’ êº“ êº” êº• êº– êº— êº˜ êº™ êºš êº› êºœ êº êºž êºŸ êº  êº¡ êº¢ êº£ êº¤ êº¥ êº¦ êº§ êº¨ êº© êºª êº« êº¬ êº­ êº® êº¯ êº° êº± êº² êº³ êº´ êºµ êº¶ êº· êº¸ êº¹ êºº êº» êº¼ êº½ êº¾ êº¿ ê»€ ê» ê»‚ ê»ƒ ê»„ ê»… ê»† ê»‡ ê»ˆ ê»‰ ê»Š ê»‹ ê»Œ ê» ê»Ž ê» ê» ê»‘ ê»’ ê»“ ê»” ê»• ê»– ê»— ê»˜ ê»™ ê»š ê»› ê»œ ê» ê»ž ê»Ÿ ê»  ê»¡ ê»¢ ê»£ ê»¤ ê»¥ ê»¦ ê»§ ê»¨ ê»© ê»ª ê»« ê»¬ ê»­ ê»® ê»¯ ê»° ê»± ê»² ê»³ ê»´ ê»µ ê»¶ ê»· ê»¸ ê»¹ ê»º ê»» ê»¼ ê»½ ê»¾ ê»¿ ê¼€ ê¼ ê¼‚ ê¼ƒ ê¼„ ê¼… ê¼† ê¼‡ ê¼ˆ ê¼‰ ê¼Š ê¼‹ ê¼Œ ê¼ ê¼Ž ê¼ ê¼ ê¼‘ ê¼’ ê¼“ ê¼” ê¼• ê¼– ê¼— ê¼˜ ê¼™ ê¼š ê¼› ê¼œ ê¼ ê¼ž ê¼Ÿ ê¼  ê¼¡ ê¼¢ ê¼£ ê¼¤ ê¼¥ ê¼¦ ê¼§ ê¼¨ ê¼© ê¼ª ê¼« ê¼¬ ê¼­ ê¼® ê¼¯ ê¼° ê¼± ê¼² ê¼³ ê¼´ ê¼µ ê¼¶ ê¼· ê¼¸ ê¼¹ ê¼º ê¼» ê¼¼ ê¼½ ê¼¾ ê¼¿ ê½€ ê½ ê½‚ ê½ƒ ê½„ ê½… ê½† ê½‡ ê½ˆ ê½‰ ê½Š ê½‹ ê½Œ ê½ ê½Ž ê½ ê½ ê½‘ ê½’ ê½“ ê½” ê½• ê½– ê½— ê½˜ ê½™ ê½š ê½› ê½œ ê½ ê½ž ê½Ÿ ê½  ê½¡ ê½¢ ê½£ ê½¤ ê½¥ ê½¦ ê½§ ê½¨ ê½© ê½ª ê½« ê½¬ ê½­ ê½® ê½¯ ê½° ê½± ê½² ê½³ ê½´ ê½µ ê½¶ ê½· ê½¸ ê½¹ ê½º ê½» ê½¼ ê½½ ê½¾ ê½¿ ê¾€ ê¾ ê¾‚ ê¾ƒ ê¾„ ê¾… ê¾† ê¾‡ ê¾ˆ ê¾‰ ê¾Š ê¾‹ ê¾Œ ê¾ ê¾Ž ê¾ ê¾ ê¾‘ ê¾’ ê¾“ ê¾” ê¾• ê¾– ê¾— ê¾˜ ê¾™ ê¾š ê¾› ê¾œ ê¾ ê¾ž ê¾Ÿ ê¾  ê¾¡ ê¾¢ ê¾£ ê¾¤ ê¾¥ ê¾¦ ê¾§ ê¾¨ ê¾© ê¾ª ê¾« ê¾¬ ê¾­ ê¾® ê¾¯ ê¾° ê¾± ê¾² ê¾³ ê¾´ ê¾µ ê¾¶ ê¾· ê¾¸ ê¾¹ ê¾º ê¾» ê¾¼ ê¾½ ê¾¾ ê¾¿ ê¿€ ê¿ ê¿‚ ê¿ƒ ê¿„ ê¿… ê¿† ê¿‡ ê¿ˆ ê¿‰ ê¿Š ê¿‹ ê¿Œ ê¿ ê¿Ž ê¿ ê¿ ê¿‘ ê¿’ ê¿“ ê¿” ê¿• ê¿– ê¿— ê¿˜ ê¿™ ê¿š ê¿› ê¿œ ê¿ ê¿ž ê¿Ÿ ê¿  ê¿¡ ê¿¢ ê¿£ ê¿¤ ê¿¥ ê¿¦ ê¿§ ê¿¨ ê¿© ê¿ª ê¿« ê¿¬ ê¿­ ê¿® ê¿¯ ê¿° ê¿± ê¿² ê¿³ ê¿´ ê¿µ ê¿¶ ê¿· ê¿¸ ê¿¹ ê¿º ê¿» ê¿¼ ê¿½ ê¿¾ ê¿¿ ë€€ ë€ ë€‚ ë€ƒ ë€„ ë€… ë€† ë€‡ ë€ˆ ë€‰ ë€Š ë€‹ ë€Œ ë€ ë€Ž ë€ ë€ ë€‘ ë€’ ë€“ ë€” ë€• ë€– ë€— ë€˜ ë€™ ë€š ë€› ë€œ ë€ ë€ž ë€Ÿ ë€  ë€¡ ë€¢ ë€£ ë€¤ ë€¥ ë€¦ ë€§ ë€¨ ë€© ë€ª ë€« ë€¬ ë€­ ë€® ë€¯ ë€° ë€± ë€² ë€³ ë€´ ë€µ ë€¶ ë€· ë€¸ ë€¹ ë€º ë€» ë€¼ ë€½ ë€¾ ë€¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‚€ ë‚ ë‚‚ ë‚ƒ ë‚„ ë‚… ë‚† ë‚‡ ë‚ˆ ë‚‰ ë‚Š ë‚‹ ë‚Œ ë‚ ë‚Ž ë‚ ë‚ ë‚‘ ë‚’ ë‚“ ë‚” ë‚• ë‚– ë‚— ë‚˜ ë‚™ ë‚š ë‚› ë‚œ ë‚ ë‚ž ë‚Ÿ ë‚  ë‚¡ ë‚¢ ë‚£ ë‚¤ ë‚¥ ë‚¦ ë‚§ ë‚¨ ë‚© ë‚ª ë‚« ë‚¬ ë‚­ ë‚® ë‚¯ ë‚° ë‚± ë‚² ë‚³ ë‚´ ë‚µ ë‚¶ ë‚· ë‚¸ ë‚¹ ë‚º ë‚» ë‚¼ ë‚½ ë‚¾ ë‚¿ ëƒ€ ëƒ ëƒ‚ ëƒƒ ëƒ„ ëƒ… ëƒ† ëƒ‡ ëƒˆ ëƒ‰ ëƒŠ ëƒ‹ ëƒŒ ëƒ ëƒŽ ëƒ ëƒ ëƒ‘ ëƒ’ ëƒ“ ëƒ” ëƒ• ëƒ– ëƒ— ëƒ˜ ëƒ™ ëƒš ëƒ› ëƒœ ëƒ ëƒž ëƒŸ ëƒ  ëƒ¡ ëƒ¢ ëƒ£ ëƒ¤ ëƒ¥ ëƒ¦ ëƒ§ ëƒ¨ ëƒ© ëƒª ëƒ« ëƒ¬ ëƒ­ ëƒ® ëƒ¯ ëƒ° ëƒ± ëƒ² ëƒ³ ëƒ´ ëƒµ ëƒ¶ ëƒ· ëƒ¸ ëƒ¹ ëƒº ëƒ» ëƒ¼ ëƒ½ ëƒ¾ ëƒ¿ ë„€ ë„ ë„‚ ë„ƒ ë„„ ë„… ë„† ë„‡ ë„ˆ ë„‰ ë„Š ë„‹ ë„Œ ë„ ë„Ž ë„ ë„ ë„‘ ë„’ ë„“ ë„” ë„• ë„– ë„— ë„˜ ë„™ ë„š ë„› ë„œ ë„ ë„ž ë„Ÿ ë„  ë„¡ ë„¢ ë„£ ë„¤ ë„¥ ë„¦ ë„§ ë„¨ ë„© ë„ª ë„« ë„¬ ë„­ ë„® ë„¯ ë„° ë„± ë„² ë„³ ë„´ ë„µ ë„¶ ë„· ë„¸ ë„¹ ë„º ë„» ë„¼ ë„½ ë„¾ ë„¿ ë…€ ë… ë…‚ ë…ƒ ë…„ ë…… ë…† ë…‡ ë…ˆ ë…‰ ë…Š ë…‹ ë…Œ ë… ë…Ž ë… ë… ë…‘ ë…’ ë…“ ë…” ë…• ë…– ë…— ë…˜ ë…™ ë…š ë…› ë…œ ë… ë…ž ë…Ÿ ë…  ë…¡ ë…¢ ë…£ ë…¤ ë…¥ ë…¦ ë…§ ë…¨ ë…© ë…ª ë…« ë…¬ ë…­ ë…® ë…¯ ë…° ë…± ë…² ë…³ ë…´ ë…µ ë…¶ ë…· ë…¸ ë…¹ ë…º ë…» ë…¼ ë…½ ë…¾ ë…¿ ë†€ ë† ë†‚ ë†ƒ ë†„ ë†… ë†† ë†‡ ë†ˆ ë†‰ ë†Š ë†‹ ë†Œ ë† ë†Ž ë† ë† ë†‘ ë†’ ë†“ ë†” ë†• ë†– ë†— ë†˜ ë†™ ë†š ë†› ë†œ ë† ë†ž ë†Ÿ ë†  ë†¡ ë†¢ ë†£ ë†¤ ë†¥ ë†¦ ë†§ ë†¨ ë†© ë†ª ë†« ë†¬ ë†­ ë†® ë†¯ ë†° ë†± ë†² ë†³ ë†´ ë†µ ë†¶ ë†· ë†¸ ë†¹ ë†º ë†» ë†¼ ë†½ ë†¾ ë†¿ ë‡€ ë‡ ë‡‚ ë‡ƒ ë‡„ ë‡… ë‡† ë‡‡ ë‡ˆ ë‡‰ ë‡Š ë‡‹ ë‡Œ ë‡ ë‡Ž ë‡ ë‡ ë‡‘ ë‡’ ë‡“ ë‡” ë‡• ë‡– ë‡— ë‡˜ ë‡™ ë‡š ë‡› ë‡œ ë‡ ë‡ž ë‡Ÿ ë‡  ë‡¡ ë‡¢ ë‡£ ë‡¤ ë‡¥ ë‡¦ ë‡§ ë‡¨ ë‡© ë‡ª ë‡« ë‡¬ ë‡­ ë‡® ë‡¯ ë‡° ë‡± ë‡² ë‡³ ë‡´ ë‡µ ë‡¶ ë‡· ë‡¸ ë‡¹ ë‡º ë‡» ë‡¼ ë‡½ ë‡¾ ë‡¿ ëˆ€ ëˆ ëˆ‚ ëˆƒ ëˆ„ ëˆ… ëˆ† ëˆ‡ ëˆˆ ëˆ‰ ëˆŠ ëˆ‹ ëˆŒ ëˆ ëˆŽ ëˆ ëˆ ëˆ‘ ëˆ’ ëˆ“ ëˆ” ëˆ• ëˆ– ëˆ— ëˆ˜ ëˆ™ ëˆš ëˆ› ëˆœ ëˆ ëˆž ëˆŸ ëˆ  ëˆ¡ ëˆ¢ ëˆ£ ëˆ¤ ëˆ¥ ëˆ¦ ëˆ§ ëˆ¨ ëˆ© ëˆª ëˆ« ëˆ¬ ëˆ­ ëˆ® ëˆ¯ ëˆ° ëˆ± ëˆ² ëˆ³ ëˆ´ ëˆµ ëˆ¶ ëˆ· ëˆ¸ ëˆ¹ ëˆº ëˆ» ëˆ¼ ëˆ½ ëˆ¾ ëˆ¿ ë‰€ ë‰ ë‰‚ ë‰ƒ ë‰„ ë‰… ë‰† ë‰‡ ë‰ˆ ë‰‰ ë‰Š ë‰‹ ë‰Œ ë‰ ë‰Ž ë‰ ë‰ ë‰‘ ë‰’ ë‰“ ë‰” ë‰• ë‰– ë‰— ë‰˜ ë‰™ ë‰š ë‰› ë‰œ ë‰ ë‰ž ë‰Ÿ ë‰  ë‰¡ ë‰¢ ë‰£ ë‰¤ ë‰¥ ë‰¦ ë‰§ ë‰¨ ë‰© ë‰ª ë‰« ë‰¬ ë‰­ ë‰® ë‰¯ ë‰° ë‰± ë‰² ë‰³ ë‰´ ë‰µ ë‰¶ ë‰· ë‰¸ ë‰¹ ë‰º ë‰» ë‰¼ ë‰½ ë‰¾ ë‰¿ ëŠ€ ëŠ ëŠ‚ ëŠƒ ëŠ„ ëŠ… ëŠ† ëŠ‡ ëŠˆ ëŠ‰ ëŠŠ ëŠ‹ ëŠŒ ëŠ ëŠŽ ëŠ ëŠ ëŠ‘ ëŠ’ ëŠ“ ëŠ” ëŠ• ëŠ– ëŠ— ëŠ˜ ëŠ™ ëŠš ëŠ› ëŠœ ëŠ ëŠž ëŠŸ ëŠ  ëŠ¡ ëŠ¢ ëŠ£ ëŠ¤ ëŠ¥ ëŠ¦ ëŠ§ ëŠ¨ ëŠ© ëŠª ëŠ« ëŠ¬ ëŠ­ ëŠ® ëŠ¯ ëŠ° ëŠ± ëŠ² ëŠ³ ëŠ´ ëŠµ ëŠ¶ ëŠ· ëŠ¸ ëŠ¹ ëŠº ëŠ» ëŠ¼ ëŠ½ ëŠ¾ ëŠ¿ ë‹€ ë‹ ë‹‚ ë‹ƒ ë‹„ ë‹… ë‹† ë‹‡ ë‹ˆ ë‹‰ ë‹Š ë‹‹ ë‹Œ ë‹ ë‹Ž ë‹ ë‹ ë‹‘ ë‹’ ë‹“ ë‹” ë‹• ë‹– ë‹— ë‹˜ ë‹™ ë‹š ë‹› ë‹œ ë‹ ë‹ž ë‹Ÿ ë‹  ë‹¡ ë‹¢ ë‹£ ë‹¤ ë‹¥ ë‹¦ ë‹§ ë‹¨ ë‹© ë‹ª ë‹« ë‹¬ ë‹­ ë‹® ë‹¯ ë‹° ë‹± ë‹² ë‹³ ë‹´ ë‹µ ë‹¶ ë‹· ë‹¸ ë‹¹ ë‹º ë‹» ë‹¼ ë‹½ ë‹¾ ë‹¿ ëŒ€ ëŒ ëŒ‚ ëŒƒ ëŒ„ ëŒ… ëŒ† ëŒ‡ ëŒˆ ëŒ‰ ëŒŠ ëŒ‹ ëŒŒ ëŒ ëŒŽ ëŒ ëŒ ëŒ‘ ëŒ’ ëŒ“ ëŒ” ëŒ• ëŒ– ëŒ— ëŒ˜ ëŒ™ ëŒš ëŒ› ëŒœ ëŒ ëŒž ëŒŸ ëŒ  ëŒ¡ ëŒ¢ ëŒ£ ëŒ¤ ëŒ¥ ëŒ¦ ëŒ§ ëŒ¨ ëŒ© ëŒª ëŒ« ëŒ¬ ëŒ­ ëŒ® ëŒ¯ ëŒ° ëŒ± ëŒ² ëŒ³ ëŒ´ ëŒµ ëŒ¶ ëŒ· ëŒ¸ ëŒ¹ ëŒº ëŒ» ëŒ¼ ëŒ½ ëŒ¾ ëŒ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëŽ€ ëŽ ëŽ‚ ëŽƒ ëŽ„ ëŽ… ëŽ† ëŽ‡ ëŽˆ ëŽ‰ ëŽŠ ëŽ‹ ëŽŒ ëŽ ëŽŽ ëŽ ëŽ ëŽ‘ ëŽ’ ëŽ“ ëŽ” ëŽ• ëŽ– ëŽ— ëŽ˜ ëŽ™ ëŽš ëŽ› ëŽœ ëŽ ëŽž ëŽŸ ëŽ  ëŽ¡ ëŽ¢ ëŽ£ ëŽ¤ ëŽ¥ ëŽ¦ ëŽ§ ëŽ¨ ëŽ© ëŽª ëŽ« ëŽ¬ ëŽ­ ëŽ® ëŽ¯ ëŽ° ëŽ± ëŽ² ëŽ³ ëŽ´ ëŽµ ëŽ¶ ëŽ· ëŽ¸ ëŽ¹ ëŽº ëŽ» ëŽ¼ ëŽ½ ëŽ¾ ëŽ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‘€ ë‘ ë‘‚ ë‘ƒ ë‘„ ë‘… ë‘† ë‘‡ ë‘ˆ ë‘‰ ë‘Š ë‘‹ ë‘Œ ë‘ ë‘Ž ë‘ ë‘ ë‘‘ ë‘’ ë‘“ ë‘” ë‘• ë‘– ë‘— ë‘˜ ë‘™ ë‘š ë‘› ë‘œ ë‘ ë‘ž ë‘Ÿ ë‘  ë‘¡ ë‘¢ ë‘£ ë‘¤ ë‘¥ ë‘¦ ë‘§ ë‘¨ ë‘© ë‘ª ë‘« ë‘¬ ë‘­ ë‘® ë‘¯ ë‘° ë‘± ë‘² ë‘³ ë‘´ ë‘µ ë‘¶ ë‘· ë‘¸ ë‘¹ ë‘º ë‘» ë‘¼ ë‘½ ë‘¾ ë‘¿ ë’€ ë’ ë’‚ ë’ƒ ë’„ ë’… ë’† ë’‡ ë’ˆ ë’‰ ë’Š ë’‹ ë’Œ ë’ ë’Ž ë’ ë’ ë’‘ ë’’ ë’“ ë’” ë’• ë’– ë’— ë’˜ ë’™ ë’š ë’› ë’œ ë’ ë’ž ë’Ÿ ë’  ë’¡ ë’¢ ë’£ ë’¤ ë’¥ ë’¦ ë’§ ë’¨ ë’© ë’ª ë’« ë’¬ ë’­ ë’® ë’¯ ë’° ë’± ë’² ë’³ ë’´ ë’µ ë’¶ ë’· ë’¸ ë’¹ ë’º ë’» ë’¼ ë’½ ë’¾ ë’¿ ë“€ ë“ ë“‚ ë“ƒ ë“„ ë“… ë“† ë“‡ ë“ˆ ë“‰ ë“Š ë“‹ ë“Œ ë“ ë“Ž ë“ ë“ ë“‘ ë“’ ë““ ë“” ë“• ë“– ë“— ë“˜ ë“™ ë“š ë“› ë“œ ë“ ë“ž ë“Ÿ ë“  ë“¡ ë“¢ ë“£ ë“¤ ë“¥ ë“¦ ë“§ ë“¨ ë“© ë“ª ë“« ë“¬ ë“­ ë“® ë“¯ ë“° ë“± ë“² ë“³ ë“´ ë“µ ë“¶ ë“· ë“¸ ë“¹ ë“º ë“» ë“¼ ë“½ ë“¾ ë“¿ ë”€ ë” ë”‚ ë”ƒ ë”„ ë”… ë”† ë”‡ ë”ˆ ë”‰ ë”Š ë”‹ ë”Œ ë” ë”Ž ë” ë” ë”‘ ë”’ ë”“ ë”” ë”• ë”– ë”— ë”˜ ë”™ ë”š ë”› ë”œ ë” ë”ž ë”Ÿ ë”  ë”¡ ë”¢ ë”£ ë”¤ ë”¥ ë”¦ ë”§ ë”¨ ë”© ë”ª ë”« ë”¬ ë”­ ë”® ë”¯ ë”° ë”± ë”² ë”³ ë”´ ë”µ ë”¶ ë”· ë”¸ ë”¹ ë”º ë”» ë”¼ ë”½ ë”¾ ë”¿ ë•€ ë• ë•‚ ë•ƒ ë•„ ë•… ë•† ë•‡ ë•ˆ ë•‰ ë•Š ë•‹ ë•Œ ë• ë•Ž ë• ë• ë•‘ ë•’ ë•“ ë•” ë•• ë•– ë•— ë•˜ ë•™ ë•š ë•› ë•œ ë• ë•ž ë•Ÿ ë•  ë•¡ ë•¢ ë•£ ë•¤ ë•¥ ë•¦ ë•§ ë•¨ ë•© ë•ª ë•« ë•¬ ë•­ ë•® ë•¯ ë•° ë•± ë•² ë•³ ë•´ ë•µ ë•¶ ë•· ë•¸ ë•¹ ë•º ë•» ë•¼ ë•½ ë•¾ ë•¿ ë–€ ë– ë–‚ ë–ƒ ë–„ ë–… ë–† ë–‡ ë–ˆ ë–‰ ë–Š ë–‹ ë–Œ ë– ë–Ž ë– ë– ë–‘ ë–’ ë–“ ë–” ë–• ë–– ë–— ë–˜ ë–™ ë–š ë–› ë–œ ë– ë–ž ë–Ÿ ë–  ë–¡ ë–¢ ë–£ ë–¤ ë–¥ ë–¦ ë–§ ë–¨ ë–© ë–ª ë–« ë–¬ ë–­ ë–® ë–¯ ë–° ë–± ë–² ë–³ ë–´ ë–µ ë–¶ ë–· ë–¸ ë–¹ ë–º ë–» ë–¼ ë–½ ë–¾ ë–¿ ë—€ ë— ë—‚ ë—ƒ ë—„ ë—… ë—† ë—‡ ë—ˆ ë—‰ ë—Š ë—‹ ë—Œ ë— ë—Ž ë— ë— ë—‘ ë—’ ë—“ ë—” ë—• ë—– ë—— ë—˜ ë—™ ë—š ë—› ë—œ ë— ë—ž ë—Ÿ ë—  ë—¡ ë—¢ ë—£ ë—¤ ë—¥ ë—¦ ë—§ ë—¨ ë—© ë—ª ë—« ë—¬ ë—­ ë—® ë—¯ ë—° ë—± ë—² ë—³ ë—´ ë—µ ë—¶ ë—· ë—¸ ë—¹ ë—º ë—» ë—¼ ë—½ ë—¾ ë—¿ ë˜€ ë˜ ë˜‚ ë˜ƒ ë˜„ ë˜… ë˜† ë˜‡ ë˜ˆ ë˜‰ ë˜Š ë˜‹ ë˜Œ ë˜ ë˜Ž ë˜ ë˜ ë˜‘ ë˜’ ë˜“ ë˜” ë˜• ë˜– ë˜— ë˜˜ ë˜™ ë˜š ë˜› ë˜œ ë˜ ë˜ž ë˜Ÿ ë˜  ë˜¡ ë˜¢ ë˜£ ë˜¤ ë˜¥ ë˜¦ ë˜§ ë˜¨ ë˜© ë˜ª ë˜« ë˜¬ ë˜­ ë˜® ë˜¯ ë˜° ë˜± ë˜² ë˜³ ë˜´ ë˜µ ë˜¶ ë˜· ë˜¸ ë˜¹ ë˜º ë˜» ë˜¼ ë˜½ ë˜¾ ë˜¿ ë™€ ë™ ë™‚ ë™ƒ ë™„ ë™… ë™† ë™‡ ë™ˆ ë™‰ ë™Š ë™‹ ë™Œ ë™ ë™Ž ë™ ë™ ë™‘ ë™’ ë™“ ë™” ë™• ë™– ë™— ë™˜ ë™™ ë™š ë™› ë™œ ë™ ë™ž ë™Ÿ ë™  ë™¡ ë™¢ ë™£ ë™¤ ë™¥ ë™¦ ë™§ ë™¨ ë™© ë™ª ë™« ë™¬ ë™­ ë™® ë™¯ ë™° ë™± ë™² ë™³ ë™´ ë™µ ë™¶ ë™· ë™¸ ë™¹ ë™º ë™» ë™¼ ë™½ ë™¾ ë™¿ ëš€ ëš ëš‚ ëšƒ ëš„ ëš… ëš† ëš‡ ëšˆ ëš‰ ëšŠ ëš‹ ëšŒ ëš ëšŽ ëš ëš ëš‘ ëš’ ëš“ ëš” ëš• ëš– ëš— ëš˜ ëš™ ëšš ëš› ëšœ ëš ëšž ëšŸ ëš  ëš¡ ëš¢ ëš£ ëš¤ ëš¥ ëš¦ ëš§ ëš¨ ëš© ëšª ëš« ëš¬ ëš­ ëš® ëš¯ ëš° ëš± ëš² ëš³ ëš´ ëšµ ëš¶ ëš· ëš¸ ëš¹ ëšº ëš» ëš¼ ëš½ ëš¾ ëš¿ ë›€ ë› ë›‚ ë›ƒ ë›„ ë›… ë›† ë›‡ ë›ˆ ë›‰ ë›Š ë›‹ ë›Œ ë› ë›Ž ë› ë› ë›‘ ë›’ ë›“ ë›” ë›• ë›– ë›— ë›˜ ë›™ ë›š ë›› ë›œ ë› ë›ž ë›Ÿ ë›  ë›¡ ë›¢ ë›£ ë›¤ ë›¥ ë›¦ ë›§ ë›¨ ë›© ë›ª ë›« ë›¬ ë›­ ë›® ë›¯ ë›° ë›± ë›² ë›³ ë›´ ë›µ ë›¶ ë›· ë›¸ ë›¹ ë›º ë›» ë›¼ ë›½ ë›¾ ë›¿ ëœ€ ëœ ëœ‚ ëœƒ ëœ„ ëœ… ëœ† ëœ‡ ëœˆ ëœ‰ ëœŠ ëœ‹ ëœŒ ëœ ëœŽ ëœ ëœ ëœ‘ ëœ’ ëœ“ ëœ” ëœ• ëœ– ëœ— ëœ˜ ëœ™ ëœš ëœ› ëœœ ëœ ëœž ëœŸ ëœ  ëœ¡ ëœ¢ ëœ£ ëœ¤ ëœ¥ ëœ¦ ëœ§ ëœ¨ ëœ© ëœª ëœ« ëœ¬ ëœ­ ëœ® ëœ¯ ëœ° ëœ± ëœ² ëœ³ ëœ´ ëœµ ëœ¶ ëœ· ëœ¸ ëœ¹ ëœº ëœ» ëœ¼ ëœ½ ëœ¾ ëœ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëž€ ëž ëž‚ ëžƒ ëž„ ëž… ëž† ëž‡ ëžˆ ëž‰ ëžŠ ëž‹ ëžŒ ëž ëžŽ ëž ëž ëž‘ ëž’ ëž“ ëž” ëž• ëž– ëž— ëž˜ ëž™ ëžš ëž› ëžœ ëž ëžž ëžŸ ëž  ëž¡ ëž¢ ëž£ ëž¤ ëž¥ ëž¦ ëž§ ëž¨ ëž© ëžª ëž« ëž¬ ëž­ ëž® ëž¯ ëž° ëž± ëž² ëž³ ëž´ ëžµ ëž¶ ëž· ëž¸ ëž¹ ëžº ëž» ëž¼ ëž½ ëž¾ ëž¿ ëŸ€ ëŸ ëŸ‚ ëŸƒ ëŸ„ ëŸ… ëŸ† ëŸ‡ ëŸˆ ëŸ‰ ëŸŠ ëŸ‹ ëŸŒ ëŸ ëŸŽ ëŸ ëŸ ëŸ‘ ëŸ’ ëŸ“ ëŸ” ëŸ• ëŸ– ëŸ— ëŸ˜ ëŸ™ ëŸš ëŸ› ëŸœ ëŸ ëŸž ëŸŸ ëŸ  ëŸ¡ ëŸ¢ ëŸ£ ëŸ¤ ëŸ¥ ëŸ¦ ëŸ§ ëŸ¨ ëŸ© ëŸª ëŸ« ëŸ¬ ëŸ­ ëŸ® ëŸ¯ ëŸ° ëŸ± ëŸ² ëŸ³ ëŸ´ ëŸµ ëŸ¶ ëŸ· ëŸ¸ ëŸ¹ ëŸº ëŸ» ëŸ¼ ëŸ½ ëŸ¾ ëŸ¿ ë € ë  ë ‚ ë ƒ ë „ ë … ë † ë ‡ ë ˆ ë ‰ ë Š ë ‹ ë Œ ë  ë Ž ë  ë  ë ‘ ë ’ ë “ ë ” ë • ë – ë — ë ˜ ë ™ ë š ë › ë œ ë  ë ž ë Ÿ ë   ë ¡ ë ¢ ë £ ë ¤ ë ¥ ë ¦ ë § ë ¨ ë © ë ª ë « ë ¬ ë ­ ë ® ë ¯ ë ° ë ± ë ² ë ³ ë ´ ë µ ë ¶ ë · ë ¸ ë ¹ ë º ë » ë ¼ ë ½ ë ¾ ë ¿ ë¡€ ë¡ ë¡‚ ë¡ƒ ë¡„ ë¡… ë¡† ë¡‡ ë¡ˆ ë¡‰ ë¡Š ë¡‹ ë¡Œ ë¡ ë¡Ž ë¡ ë¡ ë¡‘ ë¡’ ë¡“ ë¡” ë¡• ë¡– ë¡— ë¡˜ ë¡™ ë¡š ë¡› ë¡œ ë¡ ë¡ž ë¡Ÿ ë¡  ë¡¡ ë¡¢ ë¡£ ë¡¤ ë¡¥ ë¡¦ ë¡§ ë¡¨ ë¡© ë¡ª ë¡« ë¡¬ ë¡­ ë¡® ë¡¯ ë¡° ë¡± ë¡² ë¡³ ë¡´ ë¡µ ë¡¶ ë¡· ë¡¸ ë¡¹ ë¡º ë¡» ë¡¼ ë¡½ ë¡¾ ë¡¿ ë¢€ ë¢ ë¢‚ ë¢ƒ ë¢„ ë¢… ë¢† ë¢‡ ë¢ˆ ë¢‰ ë¢Š ë¢‹ ë¢Œ ë¢ ë¢Ž ë¢ ë¢ ë¢‘ ë¢’ ë¢“ ë¢” ë¢• ë¢– ë¢— ë¢˜ ë¢™ ë¢š ë¢› ë¢œ ë¢ ë¢ž ë¢Ÿ ë¢  ë¢¡ ë¢¢ ë¢£ ë¢¤ ë¢¥ ë¢¦ ë¢§ ë¢¨ ë¢© ë¢ª ë¢« ë¢¬ ë¢­ ë¢® ë¢¯ ë¢° ë¢± ë¢² ë¢³ ë¢´ ë¢µ ë¢¶ ë¢· ë¢¸ ë¢¹ ë¢º ë¢» ë¢¼ ë¢½ ë¢¾ ë¢¿ ë£€ ë£ ë£‚ ë£ƒ ë£„ ë£… ë£† ë£‡ ë£ˆ ë£‰ ë£Š ë£‹ ë£Œ ë£ ë£Ž ë£ ë£ ë£‘ ë£’ ë£“ ë£” ë£• ë£– ë£— ë£˜ ë£™ ë£š ë£› ë£œ ë£ ë£ž ë£Ÿ ë£  ë£¡ ë£¢ ë££ ë£¤ ë£¥ ë£¦ ë£§ ë£¨ ë£© ë£ª ë£« ë£¬ ë£­ ë£® ë£¯ ë£° ë£± ë£² ë£³ ë£´ ë£µ ë£¶ ë£· ë£¸ ë£¹ ë£º ë£» ë£¼ ë£½ ë£¾ ë£¿ ë¤€ ë¤ ë¤‚ ë¤ƒ ë¤„ ë¤… ë¤† ë¤‡ ë¤ˆ ë¤‰ ë¤Š ë¤‹ ë¤Œ ë¤ ë¤Ž ë¤ ë¤ ë¤‘ ë¤’ ë¤“ ë¤” ë¤• ë¤– ë¤— ë¤˜ ë¤™ ë¤š ë¤› ë¤œ ë¤ ë¤ž ë¤Ÿ ë¤  ë¤¡ ë¤¢ ë¤£ ë¤¤ ë¤¥ ë¤¦ ë¤§ ë¤¨ ë¤© ë¤ª ë¤« ë¤¬ ë¤­ ë¤® ë¤¯ ë¤° ë¤± ë¤² ë¤³ ë¤´ ë¤µ ë¤¶ ë¤· ë¤¸ ë¤¹ ë¤º ë¤» ë¤¼ ë¤½ ë¤¾ ë¤¿ ë¥€ ë¥ ë¥‚ ë¥ƒ ë¥„ ë¥… ë¥† ë¥‡ ë¥ˆ ë¥‰ ë¥Š ë¥‹ ë¥Œ ë¥ ë¥Ž ë¥ ë¥ ë¥‘ ë¥’ ë¥“ ë¥” ë¥• ë¥– ë¥— ë¥˜ ë¥™ ë¥š ë¥› ë¥œ ë¥ ë¥ž ë¥Ÿ ë¥  ë¥¡ ë¥¢ ë¥£ ë¥¤ ë¥¥ ë¥¦ ë¥§ ë¥¨ ë¥© ë¥ª ë¥« ë¥¬ ë¥­ ë¥® ë¥¯ ë¥° ë¥± ë¥² ë¥³ ë¥´ ë¥µ ë¥¶ ë¥· ë¥¸ ë¥¹ ë¥º ë¥» ë¥¼ ë¥½ ë¥¾ ë¥¿ ë¦€ ë¦ ë¦‚ ë¦ƒ ë¦„ ë¦… ë¦† ë¦‡ ë¦ˆ ë¦‰ ë¦Š ë¦‹ ë¦Œ ë¦ ë¦Ž ë¦ ë¦ ë¦‘ ë¦’ ë¦“ ë¦” ë¦• ë¦– ë¦— ë¦˜ ë¦™ ë¦š ë¦› ë¦œ ë¦ ë¦ž ë¦Ÿ ë¦  ë¦¡ ë¦¢ ë¦£ ë¦¤ ë¦¥ ë¦¦ ë¦§ ë¦¨ ë¦© ë¦ª ë¦« ë¦¬ ë¦­ ë¦® ë¦¯ ë¦° ë¦± ë¦² ë¦³ ë¦´ ë¦µ ë¦¶ ë¦· ë¦¸ ë¦¹ ë¦º ë¦» ë¦¼ ë¦½ ë¦¾ ë¦¿ ë§€ ë§ ë§‚ ë§ƒ ë§„ ë§… ë§† ë§‡ ë§ˆ ë§‰ ë§Š ë§‹ ë§Œ ë§ ë§Ž ë§ ë§ ë§‘ ë§’ ë§“ ë§” ë§• ë§– ë§— ë§˜ ë§™ ë§š ë§› ë§œ ë§ ë§ž ë§Ÿ ë§  ë§¡ ë§¢ ë§£ ë§¤ ë§¥ ë§¦ ë§§ ë§¨ ë§© ë§ª ë§« ë§¬ ë§­ ë§® ë§¯ ë§° ë§± ë§² ë§³ ë§´ ë§µ ë§¶ ë§· ë§¸ ë§¹ ë§º ë§» ë§¼ ë§½ ë§¾ ë§¿ ë¨€ ë¨ ë¨‚ ë¨ƒ ë¨„ ë¨… ë¨† ë¨‡ ë¨ˆ ë¨‰ ë¨Š ë¨‹ ë¨Œ ë¨ ë¨Ž ë¨ ë¨ ë¨‘ ë¨’ ë¨“ ë¨” ë¨• ë¨– ë¨— ë¨˜ ë¨™ ë¨š ë¨› ë¨œ ë¨ ë¨ž ë¨Ÿ ë¨  ë¨¡ ë¨¢ ë¨£ ë¨¤ ë¨¥ ë¨¦ ë¨§ ë¨¨ ë¨© ë¨ª ë¨« ë¨¬ ë¨­ ë¨® ë¨¯ ë¨° ë¨± ë¨² ë¨³ ë¨´ ë¨µ ë¨¶ ë¨· ë¨¸ ë¨¹ ë¨º ë¨» ë¨¼ ë¨½ ë¨¾ ë¨¿ ë©€ ë© ë©‚ ë©ƒ ë©„ ë©… ë©† ë©‡ ë©ˆ ë©‰ ë©Š ë©‹ ë©Œ ë© ë©Ž ë© ë© ë©‘ ë©’ ë©“ ë©” ë©• ë©– ë©— ë©˜ ë©™ ë©š ë©› ë©œ ë© ë©ž ë©Ÿ ë©  ë©¡ ë©¢ ë©£ ë©¤ ë©¥ ë©¦ ë©§ ë©¨ ë©© ë©ª ë©« ë©¬ ë©­ ë©® ë©¯ ë©° ë©± ë©² ë©³ ë©´ ë©µ ë©¶ ë©· ë©¸ ë©¹ ë©º ë©» ë©¼ ë©½ ë©¾ ë©¿ ëª€ ëª ëª‚ ëªƒ ëª„ ëª… ëª† ëª‡ ëªˆ ëª‰ ëªŠ ëª‹ ëªŒ ëª ëªŽ ëª ëª ëª‘ ëª’ ëª“ ëª” ëª• ëª– ëª— ëª˜ ëª™ ëªš ëª› ëªœ ëª ëªž ëªŸ ëª  ëª¡ ëª¢ ëª£ ëª¤ ëª¥ ëª¦ ëª§ ëª¨ ëª© ëªª ëª« ëª¬ ëª­ ëª® ëª¯ ëª° ëª± ëª² ëª³ ëª´ ëªµ ëª¶ ëª· ëª¸ ëª¹ ëªº ëª» ëª¼ ëª½ ëª¾ ëª¿ ë«€ ë« ë«‚ ë«ƒ ë«„ ë«… ë«† ë«‡ ë«ˆ ë«‰ ë«Š ë«‹ ë«Œ ë« ë«Ž ë« ë« ë«‘ ë«’ ë«“ ë«” ë«• ë«– ë«— ë«˜ ë«™ ë«š ë«› ë«œ ë« ë«ž ë«Ÿ ë«  ë«¡ ë«¢ ë«£ ë«¤ ë«¥ ë«¦ ë«§ ë«¨ ë«© ë«ª ë«« ë«¬ ë«­ ë«® ë«¯ ë«° ë«± ë«² ë«³ ë«´ ë«µ ë«¶ ë«· ë«¸ ë«¹ ë«º ë«» ë«¼ ë«½ ë«¾ ë«¿ ë¬€ ë¬ ë¬‚ ë¬ƒ ë¬„ ë¬… ë¬† ë¬‡ ë¬ˆ ë¬‰ ë¬Š ë¬‹ ë¬Œ ë¬ ë¬Ž ë¬ ë¬ ë¬‘ ë¬’ ë¬“ ë¬” ë¬• ë¬– ë¬— ë¬˜ ë¬™ ë¬š ë¬› ë¬œ ë¬ ë¬ž ë¬Ÿ ë¬  ë¬¡ ë¬¢ ë¬£ ë¬¤ ë¬¥ ë¬¦ ë¬§ ë¬¨ ë¬© ë¬ª ë¬« ë¬¬ ë¬­ ë¬® ë¬¯ ë¬° ë¬± ë¬² ë¬³ ë¬´ ë¬µ ë¬¶ ë¬· ë¬¸ ë¬¹ ë¬º ë¬» ë¬¼ ë¬½ ë¬¾ ë¬¿ ë­€ ë­ ë­‚ ë­ƒ ë­„ ë­… ë­† ë­‡ ë­ˆ ë­‰ ë­Š ë­‹ ë­Œ ë­ ë­Ž ë­ ë­ ë­‘ ë­’ ë­“ ë­” ë­• ë­– ë­— ë­˜ ë­™ ë­š ë­› ë­œ ë­ ë­ž ë­Ÿ ë­  ë­¡ ë­¢ ë­£ ë­¤ ë­¥ ë­¦ ë­§ ë­¨ ë­© ë­ª ë­« ë­¬ ë­­ ë­® ë­¯ ë­° ë­± ë­² ë­³ ë­´ ë­µ ë­¶ ë­· ë­¸ ë­¹ ë­º ë­» ë­¼ ë­½ ë­¾ ë­¿ ë®€ ë® ë®‚ ë®ƒ ë®„ ë®… ë®† ë®‡ ë®ˆ ë®‰ ë®Š ë®‹ ë®Œ ë® ë®Ž ë® ë® ë®‘ ë®’ ë®“ ë®” ë®• ë®– ë®— ë®˜ ë®™ ë®š ë®› ë®œ ë® ë®ž ë®Ÿ ë®  ë®¡ ë®¢ ë®£ ë®¤ ë®¥ ë®¦ ë®§ ë®¨ ë®© ë®ª ë®« ë®¬ ë®­ ë®® ë®¯ ë®° ë®± ë®² ë®³ ë®´ ë®µ ë®¶ ë®· ë®¸ ë®¹ ë®º ë®» ë®¼ ë®½ ë®¾ ë®¿ ë¯€ ë¯ ë¯‚ ë¯ƒ ë¯„ ë¯… ë¯† ë¯‡ ë¯ˆ ë¯‰ ë¯Š ë¯‹ ë¯Œ ë¯ ë¯Ž ë¯ ë¯ ë¯‘ ë¯’ ë¯“ ë¯” ë¯• ë¯– ë¯— ë¯˜ ë¯™ ë¯š ë¯› ë¯œ ë¯ ë¯ž ë¯Ÿ ë¯  ë¯¡ ë¯¢ ë¯£ ë¯¤ ë¯¥ ë¯¦ ë¯§ ë¯¨ ë¯© ë¯ª ë¯« ë¯¬ ë¯­ ë¯® ë¯¯ ë¯° ë¯± ë¯² ë¯³ ë¯´ ë¯µ ë¯¶ ë¯· ë¯¸ ë¯¹ ë¯º ë¯» ë¯¼ ë¯½ ë¯¾ ë¯¿ ë°€ ë° ë°‚ ë°ƒ ë°„ ë°… ë°† ë°‡ ë°ˆ ë°‰ ë°Š ë°‹ ë°Œ ë° ë°Ž ë° ë° ë°‘ ë°’ ë°“ ë°” ë°• ë°– ë°— ë°˜ ë°™ ë°š ë°› ë°œ ë° ë°ž ë°Ÿ ë°  ë°¡ ë°¢ ë°£ ë°¤ ë°¥ ë°¦ ë°§ ë°¨ ë°© ë°ª ë°« ë°¬ ë°­ ë°® ë°¯ ë°° ë°± ë°² ë°³ ë°´ ë°µ ë°¶ ë°· ë°¸ ë°¹ ë°º ë°» ë°¼ ë°½ ë°¾ ë°¿ ë±€ ë± ë±‚ ë±ƒ ë±„ ë±… ë±† ë±‡ ë±ˆ ë±‰ ë±Š ë±‹ ë±Œ ë± ë±Ž ë± ë± ë±‘ ë±’ ë±“ ë±” ë±• ë±– ë±— ë±˜ ë±™ ë±š ë±› ë±œ ë± ë±ž ë±Ÿ ë±  ë±¡ ë±¢ ë±£ ë±¤ ë±¥ ë±¦ ë±§ ë±¨ ë±© ë±ª ë±« ë±¬ ë±­ ë±® ë±¯ ë±° ë±± ë±² ë±³ ë±´ ë±µ ë±¶ ë±· ë±¸ ë±¹ ë±º ë±» ë±¼ ë±½ ë±¾ ë±¿ ë²€ ë² ë²‚ ë²ƒ ë²„ ë²… ë²† ë²‡ ë²ˆ ë²‰ ë²Š ë²‹ ë²Œ ë² ë²Ž ë² ë² ë²‘ ë²’ ë²“ ë²” ë²• ë²– ë²— ë²˜ ë²™ ë²š ë²› ë²œ ë² ë²ž ë²Ÿ ë²  ë²¡ ë²¢ ë²£ ë²¤ ë²¥ ë²¦ ë²§ ë²¨ ë²© ë²ª ë²« ë²¬ ë²­ ë²® ë²¯ ë²° ë²± ë²² ë²³ ë²´ ë²µ ë²¶ ë²· ë²¸ ë²¹ ë²º ë²» ë²¼ ë²½ ë²¾ ë²¿ ë³€ ë³ ë³‚ ë³ƒ ë³„ ë³… ë³† ë³‡ ë³ˆ ë³‰ ë³Š ë³‹ ë³Œ ë³ ë³Ž ë³ ë³ ë³‘ ë³’ ë³“ ë³” ë³• ë³– ë³— ë³˜ ë³™ ë³š ë³› ë³œ ë³ ë³ž ë³Ÿ ë³  ë³¡ ë³¢ ë³£ ë³¤ ë³¥ ë³¦ ë³§ ë³¨ ë³© ë³ª ë³« ë³¬ ë³­ ë³® ë³¯ ë³° ë³± ë³² ë³³ ë³´ ë³µ ë³¶ ë³· ë³¸ ë³¹ ë³º ë³» ë³¼ ë³½ ë³¾ ë³¿ ë´€ ë´ ë´‚ ë´ƒ ë´„ ë´… ë´† ë´‡ ë´ˆ ë´‰ ë´Š ë´‹ ë´Œ ë´ ë´Ž ë´ ë´ ë´‘ ë´’ ë´“ ë´” ë´• ë´– ë´— ë´˜ ë´™ ë´š ë´› ë´œ ë´ ë´ž ë´Ÿ ë´  ë´¡ ë´¢ ë´£ ë´¤ ë´¥ ë´¦ ë´§ ë´¨ ë´© ë´ª ë´« ë´¬ ë´­ ë´® ë´¯ ë´° ë´± ë´² ë´³ ë´´ ë´µ ë´¶ ë´· ë´¸ ë´¹ ë´º ë´» ë´¼ ë´½ ë´¾ ë´¿ ëµ€ ëµ ëµ‚ ëµƒ ëµ„ ëµ… ëµ† ëµ‡ ëµˆ ëµ‰ ëµŠ ëµ‹ ëµŒ ëµ ëµŽ ëµ ëµ ëµ‘ ëµ’ ëµ“ ëµ” ëµ• ëµ– ëµ— ëµ˜ ëµ™ ëµš ëµ› ëµœ ëµ ëµž ëµŸ ëµ  ëµ¡ ëµ¢ ëµ£ ëµ¤ ëµ¥ ëµ¦ ëµ§ ëµ¨ ëµ© ëµª ëµ« ëµ¬ ëµ­ ëµ® ëµ¯ ëµ° ëµ± ëµ² ëµ³ ëµ´ ëµµ ëµ¶ ëµ· ëµ¸ ëµ¹ ëµº ëµ» ëµ¼ ëµ½ ëµ¾ ëµ¿ ë¶€ ë¶ ë¶‚ ë¶ƒ ë¶„ ë¶… ë¶† ë¶‡ ë¶ˆ ë¶‰ ë¶Š ë¶‹ ë¶Œ ë¶ ë¶Ž ë¶ ë¶ ë¶‘ ë¶’ ë¶“ ë¶” ë¶• ë¶– ë¶— ë¶˜ ë¶™ ë¶š ë¶› ë¶œ ë¶ ë¶ž ë¶Ÿ ë¶  ë¶¡ ë¶¢ ë¶£ ë¶¤ ë¶¥ ë¶¦ ë¶§ ë¶¨ ë¶© ë¶ª ë¶« ë¶¬ ë¶­ ë¶® ë¶¯ ë¶° ë¶± ë¶² ë¶³ ë¶´ ë¶µ ë¶¶ ë¶· ë¶¸ ë¶¹ ë¶º ë¶» ë¶¼ ë¶½ ë¶¾ ë¶¿ ë·€ ë· ë·‚ ë·ƒ ë·„ ë·… ë·† ë·‡ ë·ˆ ë·‰ ë·Š ë·‹ ë·Œ ë· ë·Ž ë· ë· ë·‘ ë·’ ë·“ ë·” ë·• ë·– ë·— ë·˜ ë·™ ë·š ë·› ë·œ ë· ë·ž ë·Ÿ ë·  ë·¡ ë·¢ ë·£ ë·¤ ë·¥ ë·¦ ë·§ ë·¨ ë·© ë·ª ë·« ë·¬ ë·­ ë·® ë·¯ ë·° ë·± ë·² ë·³ ë·´ ë·µ ë·¶ ë·· ë·¸ ë·¹ ë·º ë·» ë·¼ ë·½ ë·¾ ë·¿ ë¸€ ë¸ ë¸‚ ë¸ƒ ë¸„ ë¸… ë¸† ë¸‡ ë¸ˆ ë¸‰ ë¸Š ë¸‹ ë¸Œ ë¸ ë¸Ž ë¸ ë¸ ë¸‘ ë¸’ ë¸“ ë¸” ë¸• ë¸– ë¸— ë¸˜ ë¸™ ë¸š ë¸› ë¸œ ë¸ ë¸ž ë¸Ÿ ë¸  ë¸¡ ë¸¢ ë¸£ ë¸¤ ë¸¥ ë¸¦ ë¸§ ë¸¨ ë¸© ë¸ª ë¸« ë¸¬ ë¸­ ë¸® ë¸¯ ë¸° ë¸± ë¸² ë¸³ ë¸´ ë¸µ ë¸¶ ë¸· ë¸¸ ë¸¹ ë¸º ë¸» ë¸¼ ë¸½ ë¸¾ ë¸¿ ë¹€ ë¹ ë¹‚ ë¹ƒ ë¹„ ë¹… ë¹† ë¹‡ ë¹ˆ ë¹‰ ë¹Š ë¹‹ ë¹Œ ë¹ ë¹Ž ë¹ ë¹ ë¹‘ ë¹’ ë¹“ ë¹” ë¹• ë¹– ë¹— ë¹˜ ë¹™ ë¹š ë¹› ë¹œ ë¹ ë¹ž ë¹Ÿ ë¹  ë¹¡ ë¹¢ ë¹£ ë¹¤ ë¹¥ ë¹¦ ë¹§ ë¹¨ ë¹© ë¹ª ë¹« ë¹¬ ë¹­ ë¹® ë¹¯ ë¹° ë¹± ë¹² ë¹³ ë¹´ ë¹µ ë¹¶ ë¹· ë¹¸ ë¹¹ ë¹º ë¹» ë¹¼ ë¹½ ë¹¾ ë¹¿ ëº€ ëº ëº‚ ëºƒ ëº„ ëº… ëº† ëº‡ ëºˆ ëº‰ ëºŠ ëº‹ ëºŒ ëº ëºŽ ëº ëº ëº‘ ëº’ ëº“ ëº” ëº• ëº– ëº— ëº˜ ëº™ ëºš ëº› ëºœ ëº ëºž ëºŸ ëº  ëº¡ ëº¢ ëº£ ëº¤ ëº¥ ëº¦ ëº§ ëº¨ ëº© ëºª ëº« ëº¬ ëº­ ëº® ëº¯ ëº° ëº± ëº² ëº³ ëº´ ëºµ ëº¶ ëº· ëº¸ ëº¹ ëºº ëº» ëº¼ ëº½ ëº¾ ëº¿ ë»€ ë» ë»‚ ë»ƒ ë»„ ë»… ë»† ë»‡ ë»ˆ ë»‰ ë»Š ë»‹ ë»Œ ë» ë»Ž ë» ë» ë»‘ ë»’ ë»“ ë»” ë»• ë»– ë»— ë»˜ ë»™ ë»š ë»› ë»œ ë» ë»ž ë»Ÿ ë»  ë»¡ ë»¢ ë»£ ë»¤ ë»¥ ë»¦ ë»§ ë»¨ ë»© ë»ª ë»« ë»¬ ë»­ ë»® ë»¯ ë»° ë»± ë»² ë»³ ë»´ ë»µ ë»¶ ë»· ë»¸ ë»¹ ë»º ë»» ë»¼ ë»½ ë»¾ ë»¿ ë¼€ ë¼ ë¼‚ ë¼ƒ ë¼„ ë¼… ë¼† ë¼‡ ë¼ˆ ë¼‰ ë¼Š ë¼‹ ë¼Œ ë¼ ë¼Ž ë¼ ë¼ ë¼‘ ë¼’ ë¼“ ë¼” ë¼• ë¼– ë¼— ë¼˜ ë¼™ ë¼š ë¼› ë¼œ ë¼ ë¼ž ë¼Ÿ ë¼  ë¼¡ ë¼¢ ë¼£ ë¼¤ ë¼¥ ë¼¦ ë¼§ ë¼¨ ë¼© ë¼ª ë¼« ë¼¬ ë¼­ ë¼® ë¼¯ ë¼° ë¼± ë¼² ë¼³ ë¼´ ë¼µ ë¼¶ ë¼· ë¼¸ ë¼¹ ë¼º ë¼» ë¼¼ ë¼½ ë¼¾ ë¼¿ ë½€ ë½ ë½‚ ë½ƒ ë½„ ë½… ë½† ë½‡ ë½ˆ ë½‰ ë½Š ë½‹ ë½Œ ë½ ë½Ž ë½ ë½ ë½‘ ë½’ ë½“ ë½” ë½• ë½– ë½— ë½˜ ë½™ ë½š ë½› ë½œ ë½ ë½ž ë½Ÿ ë½  ë½¡ ë½¢ ë½£ ë½¤ ë½¥ ë½¦ ë½§ ë½¨ ë½© ë½ª ë½« ë½¬ ë½­ ë½® ë½¯ ë½° ë½± ë½² ë½³ ë½´ ë½µ ë½¶ ë½· ë½¸ ë½¹ ë½º ë½» ë½¼ ë½½ ë½¾ ë½¿ ë¾€ ë¾ ë¾‚ ë¾ƒ ë¾„ ë¾… ë¾† ë¾‡ ë¾ˆ ë¾‰ ë¾Š ë¾‹ ë¾Œ ë¾ ë¾Ž ë¾ ë¾ ë¾‘ ë¾’ ë¾“ ë¾” ë¾• ë¾– ë¾— ë¾˜ ë¾™ ë¾š ë¾› ë¾œ ë¾ ë¾ž ë¾Ÿ ë¾  ë¾¡ ë¾¢ ë¾£ ë¾¤ ë¾¥ ë¾¦ ë¾§ ë¾¨ ë¾© ë¾ª ë¾« ë¾¬ ë¾­ ë¾® ë¾¯ ë¾° ë¾± ë¾² ë¾³ ë¾´ ë¾µ ë¾¶ ë¾· ë¾¸ ë¾¹ ë¾º ë¾» ë¾¼ ë¾½ ë¾¾ ë¾¿ ë¿€ ë¿ ë¿‚ ë¿ƒ ë¿„ ë¿… ë¿† ë¿‡ ë¿ˆ ë¿‰ ë¿Š ë¿‹ ë¿Œ ë¿ ë¿Ž ë¿ ë¿ ë¿‘ ë¿’ ë¿“ ë¿” ë¿• ë¿– ë¿— ë¿˜ ë¿™ ë¿š ë¿› ë¿œ ë¿ ë¿ž ë¿Ÿ ë¿  ë¿¡ ë¿¢ ë¿£ ë¿¤ ë¿¥ ë¿¦ ë¿§ ë¿¨ ë¿© ë¿ª ë¿« ë¿¬ ë¿­ ë¿® ë¿¯ ë¿° ë¿± ë¿² ë¿³ ë¿´ ë¿µ ë¿¶ ë¿· ë¿¸ ë¿¹ ë¿º ë¿» ë¿¼ ë¿½ ë¿¾ ë¿¿ ì€€ ì€ ì€‚ ì€ƒ ì€„ ì€… ì€† ì€‡ ì€ˆ ì€‰ ì€Š ì€‹ ì€Œ ì€ ì€Ž ì€ ì€ ì€‘ ì€’ ì€“ ì€” ì€• ì€– ì€— ì€˜ ì€™ ì€š ì€› ì€œ ì€ ì€ž ì€Ÿ ì€  ì€¡ ì€¢ ì€£ ì€¤ ì€¥ ì€¦ ì€§ ì€¨ ì€© ì€ª ì€« ì€¬ ì€­ ì€® ì€¯ ì€° ì€± ì€² ì€³ ì€´ ì€µ ì€¶ ì€· ì€¸ ì€¹ ì€º ì€» ì€¼ ì€½ ì€¾ ì€¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‚€ ì‚ ì‚‚ ì‚ƒ ì‚„ ì‚… ì‚† ì‚‡ ì‚ˆ ì‚‰ ì‚Š ì‚‹ ì‚Œ ì‚ ì‚Ž ì‚ ì‚ ì‚‘ ì‚’ ì‚“ ì‚” ì‚• ì‚– ì‚— ì‚˜ ì‚™ ì‚š ì‚› ì‚œ ì‚ ì‚ž ì‚Ÿ ì‚  ì‚¡ ì‚¢ ì‚£ ì‚¤ ì‚¥ ì‚¦ ì‚§ ì‚¨ ì‚© ì‚ª ì‚« ì‚¬ ì‚­ ì‚® ì‚¯ ì‚° ì‚± ì‚² ì‚³ ì‚´ ì‚µ ì‚¶ ì‚· ì‚¸ ì‚¹ ì‚º ì‚» ì‚¼ ì‚½ ì‚¾ ì‚¿ ìƒ€ ìƒ ìƒ‚ ìƒƒ ìƒ„ ìƒ… ìƒ† ìƒ‡ ìƒˆ ìƒ‰ ìƒŠ ìƒ‹ ìƒŒ ìƒ ìƒŽ ìƒ ìƒ ìƒ‘ ìƒ’ ìƒ“ ìƒ” ìƒ• ìƒ– ìƒ— ìƒ˜ ìƒ™ ìƒš ìƒ› ìƒœ ìƒ ìƒž ìƒŸ ìƒ  ìƒ¡ ìƒ¢ ìƒ£ ìƒ¤ ìƒ¥ ìƒ¦ ìƒ§ ìƒ¨ ìƒ© ìƒª ìƒ« ìƒ¬ ìƒ­ ìƒ® ìƒ¯ ìƒ° ìƒ± ìƒ² ìƒ³ ìƒ´ ìƒµ ìƒ¶ ìƒ· ìƒ¸ ìƒ¹ ìƒº ìƒ» ìƒ¼ ìƒ½ ìƒ¾ ìƒ¿ ì„€ ì„ ì„‚ ì„ƒ ì„„ ì„… ì„† ì„‡ ì„ˆ ì„‰ ì„Š ì„‹ ì„Œ ì„ ì„Ž ì„ ì„ ì„‘ ì„’ ì„“ ì„” ì„• ì„– ì„— ì„˜ ì„™ ì„š ì„› ì„œ ì„ ì„ž ì„Ÿ ì„  ì„¡ ì„¢ ì„£ ì„¤ ì„¥ ì„¦ ì„§ ì„¨ ì„© ì„ª ì„« ì„¬ ì„­ ì„® ì„¯ ì„° ì„± ì„² ì„³ ì„´ ì„µ ì„¶ ì„· ì„¸ ì„¹ ì„º ì„» ì„¼ ì„½ ì„¾ ì„¿ ì…€ ì… ì…‚ ì…ƒ ì…„ ì…… ì…† ì…‡ ì…ˆ ì…‰ ì…Š ì…‹ ì…Œ ì… ì…Ž ì… ì… ì…‘ ì…’ ì…“ ì…” ì…• ì…– ì…— ì…˜ ì…™ ì…š ì…› ì…œ ì… ì…ž ì…Ÿ ì…  ì…¡ ì…¢ ì…£ ì…¤ ì…¥ ì…¦ ì…§ ì…¨ ì…© ì…ª ì…« ì…¬ ì…­ ì…® ì…¯ ì…° ì…± ì…² ì…³ ì…´ ì…µ ì…¶ ì…· ì…¸ ì…¹ ì…º ì…» ì…¼ ì…½ ì…¾ ì…¿ ì†€ ì† ì†‚ ì†ƒ ì†„ ì†… ì†† ì†‡ ì†ˆ ì†‰ ì†Š ì†‹ ì†Œ ì† ì†Ž ì† ì† ì†‘ ì†’ ì†“ ì†” ì†• ì†– ì†— ì†˜ ì†™ ì†š ì†› ì†œ ì† ì†ž ì†Ÿ ì†  ì†¡ ì†¢ ì†£ ì†¤ ì†¥ ì†¦ ì†§ ì†¨ ì†© ì†ª ì†« ì†¬ ì†­ ì†® ì†¯ ì†° ì†± ì†² ì†³ ì†´ ì†µ ì†¶ ì†· ì†¸ ì†¹ ì†º ì†» ì†¼ ì†½ ì†¾ ì†¿ ì‡€ ì‡ ì‡‚ ì‡ƒ ì‡„ ì‡… ì‡† ì‡‡ ì‡ˆ ì‡‰ ì‡Š ì‡‹ ì‡Œ ì‡ ì‡Ž ì‡ ì‡ ì‡‘ ì‡’ ì‡“ ì‡” ì‡• ì‡– ì‡— ì‡˜ ì‡™ ì‡š ì‡› ì‡œ ì‡ ì‡ž ì‡Ÿ ì‡  ì‡¡ ì‡¢ ì‡£ ì‡¤ ì‡¥ ì‡¦ ì‡§ ì‡¨ ì‡© ì‡ª ì‡« ì‡¬ ì‡­ ì‡® ì‡¯ ì‡° ì‡± ì‡² ì‡³ ì‡´ ì‡µ ì‡¶ ì‡· ì‡¸ ì‡¹ ì‡º ì‡» ì‡¼ ì‡½ ì‡¾ ì‡¿ ìˆ€ ìˆ ìˆ‚ ìˆƒ ìˆ„ ìˆ… ìˆ† ìˆ‡ ìˆˆ ìˆ‰ ìˆŠ ìˆ‹ ìˆŒ ìˆ ìˆŽ ìˆ ìˆ ìˆ‘ ìˆ’ ìˆ“ ìˆ” ìˆ• ìˆ– ìˆ— ìˆ˜ ìˆ™ ìˆš ìˆ› ìˆœ ìˆ ìˆž ìˆŸ ìˆ  ìˆ¡ ìˆ¢ ìˆ£ ìˆ¤ ìˆ¥ ìˆ¦ ìˆ§ ìˆ¨ ìˆ© ìˆª ìˆ« ìˆ¬ ìˆ­ ìˆ® ìˆ¯ ìˆ° ìˆ± ìˆ² ìˆ³ ìˆ´ ìˆµ ìˆ¶ ìˆ· ìˆ¸ ìˆ¹ ìˆº ìˆ» ìˆ¼ ìˆ½ ìˆ¾ ìˆ¿ ì‰€ ì‰ ì‰‚ ì‰ƒ ì‰„ ì‰… ì‰† ì‰‡ ì‰ˆ ì‰‰ ì‰Š ì‰‹ ì‰Œ ì‰ ì‰Ž ì‰ ì‰ ì‰‘ ì‰’ ì‰“ ì‰” ì‰• ì‰– ì‰— ì‰˜ ì‰™ ì‰š ì‰› ì‰œ ì‰ ì‰ž ì‰Ÿ ì‰  ì‰¡ ì‰¢ ì‰£ ì‰¤ ì‰¥ ì‰¦ ì‰§ ì‰¨ ì‰© ì‰ª ì‰« ì‰¬ ì‰­ ì‰® ì‰¯ ì‰° ì‰± ì‰² ì‰³ ì‰´ ì‰µ ì‰¶ ì‰· ì‰¸ ì‰¹ ì‰º ì‰» ì‰¼ ì‰½ ì‰¾ ì‰¿ ìŠ€ ìŠ ìŠ‚ ìŠƒ ìŠ„ ìŠ… ìŠ† ìŠ‡ ìŠˆ ìŠ‰ ìŠŠ ìŠ‹ ìŠŒ ìŠ ìŠŽ ìŠ ìŠ ìŠ‘ ìŠ’ ìŠ“ ìŠ” ìŠ• ìŠ– ìŠ— ìŠ˜ ìŠ™ ìŠš ìŠ› ìŠœ ìŠ ìŠž ìŠŸ ìŠ  ìŠ¡ ìŠ¢ ìŠ£ ìŠ¤ ìŠ¥ ìŠ¦ ìŠ§ ìŠ¨ ìŠ© ìŠª ìŠ« ìŠ¬ ìŠ­ ìŠ® ìŠ¯ ìŠ° ìŠ± ìŠ² ìŠ³ ìŠ´ ìŠµ ìŠ¶ ìŠ· ìŠ¸ ìŠ¹ ìŠº ìŠ» ìŠ¼ ìŠ½ ìŠ¾ ìŠ¿ ì‹€ ì‹ ì‹‚ ì‹ƒ ì‹„ ì‹… ì‹† ì‹‡ ì‹ˆ ì‹‰ ì‹Š ì‹‹ ì‹Œ ì‹ ì‹Ž ì‹ ì‹ ì‹‘ ì‹’ ì‹“ ì‹” ì‹• ì‹– ì‹— ì‹˜ ì‹™ ì‹š ì‹› ì‹œ ì‹ ì‹ž ì‹Ÿ ì‹  ì‹¡ ì‹¢ ì‹£ ì‹¤ ì‹¥ ì‹¦ ì‹§ ì‹¨ ì‹© ì‹ª ì‹« ì‹¬ ì‹­ ì‹® ì‹¯ ì‹° ì‹± ì‹² ì‹³ ì‹´ ì‹µ ì‹¶ ì‹· ì‹¸ ì‹¹ ì‹º ì‹» ì‹¼ ì‹½ ì‹¾ ì‹¿ ìŒ€ ìŒ ìŒ‚ ìŒƒ ìŒ„ ìŒ… ìŒ† ìŒ‡ ìŒˆ ìŒ‰ ìŒŠ ìŒ‹ ìŒŒ ìŒ ìŒŽ ìŒ ìŒ ìŒ‘ ìŒ’ ìŒ“ ìŒ” ìŒ• ìŒ– ìŒ— ìŒ˜ ìŒ™ ìŒš ìŒ› ìŒœ ìŒ ìŒž ìŒŸ ìŒ  ìŒ¡ ìŒ¢ ìŒ£ ìŒ¤ ìŒ¥ ìŒ¦ ìŒ§ ìŒ¨ ìŒ© ìŒª ìŒ« ìŒ¬ ìŒ­ ìŒ® ìŒ¯ ìŒ° ìŒ± ìŒ² ìŒ³ ìŒ´ ìŒµ ìŒ¶ ìŒ· ìŒ¸ ìŒ¹ ìŒº ìŒ» ìŒ¼ ìŒ½ ìŒ¾ ìŒ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìŽ€ ìŽ ìŽ‚ ìŽƒ ìŽ„ ìŽ… ìŽ† ìŽ‡ ìŽˆ ìŽ‰ ìŽŠ ìŽ‹ ìŽŒ ìŽ ìŽŽ ìŽ ìŽ ìŽ‘ ìŽ’ ìŽ“ ìŽ” ìŽ• ìŽ– ìŽ— ìŽ˜ ìŽ™ ìŽš ìŽ› ìŽœ ìŽ ìŽž ìŽŸ ìŽ  ìŽ¡ ìŽ¢ ìŽ£ ìŽ¤ ìŽ¥ ìŽ¦ ìŽ§ ìŽ¨ ìŽ© ìŽª ìŽ« ìŽ¬ ìŽ­ ìŽ® ìŽ¯ ìŽ° ìŽ± ìŽ² ìŽ³ ìŽ´ ìŽµ ìŽ¶ ìŽ· ìŽ¸ ìŽ¹ ìŽº ìŽ» ìŽ¼ ìŽ½ ìŽ¾ ìŽ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‘€ ì‘ ì‘‚ ì‘ƒ ì‘„ ì‘… ì‘† ì‘‡ ì‘ˆ ì‘‰ ì‘Š ì‘‹ ì‘Œ ì‘ ì‘Ž ì‘ ì‘ ì‘‘ ì‘’ ì‘“ ì‘” ì‘• ì‘– ì‘— ì‘˜ ì‘™ ì‘š ì‘› ì‘œ ì‘ ì‘ž ì‘Ÿ ì‘  ì‘¡ ì‘¢ ì‘£ ì‘¤ ì‘¥ ì‘¦ ì‘§ ì‘¨ ì‘© ì‘ª ì‘« ì‘¬ ì‘­ ì‘® ì‘¯ ì‘° ì‘± ì‘² ì‘³ ì‘´ ì‘µ ì‘¶ ì‘· ì‘¸ ì‘¹ ì‘º ì‘» ì‘¼ ì‘½ ì‘¾ ì‘¿ ì’€ ì’ ì’‚ ì’ƒ ì’„ ì’… ì’† ì’‡ ì’ˆ ì’‰ ì’Š ì’‹ ì’Œ ì’ ì’Ž ì’ ì’ ì’‘ ì’’ ì’“ ì’” ì’• ì’– ì’— ì’˜ ì’™ ì’š ì’› ì’œ ì’ ì’ž ì’Ÿ ì’  ì’¡ ì’¢ ì’£ ì’¤ ì’¥ ì’¦ ì’§ ì’¨ ì’© ì’ª ì’« ì’¬ ì’­ ì’® ì’¯ ì’° ì’± ì’² ì’³ ì’´ ì’µ ì’¶ ì’· ì’¸ ì’¹ ì’º ì’» ì’¼ ì’½ ì’¾ ì’¿ ì“€ ì“ ì“‚ ì“ƒ ì“„ ì“… ì“† ì“‡ ì“ˆ ì“‰ ì“Š ì“‹ ì“Œ ì“ ì“Ž ì“ ì“ ì“‘ ì“’ ì““ ì“” ì“• ì“– ì“— ì“˜ ì“™ ì“š ì“› ì“œ ì“ ì“ž ì“Ÿ ì“  ì“¡ ì“¢ ì“£ ì“¤ ì“¥ ì“¦ ì“§ ì“¨ ì“© ì“ª ì“« ì“¬ ì“­ ì“® ì“¯ ì“° ì“± ì“² ì“³ ì“´ ì“µ ì“¶ ì“· ì“¸ ì“¹ ì“º ì“» ì“¼ ì“½ ì“¾ ì“¿ ì”€ ì” ì”‚ ì”ƒ ì”„ ì”… ì”† ì”‡ ì”ˆ ì”‰ ì”Š ì”‹ ì”Œ ì” ì”Ž ì” ì” ì”‘ ì”’ ì”“ ì”” ì”• ì”– ì”— ì”˜ ì”™ ì”š ì”› ì”œ ì” ì”ž ì”Ÿ ì”  ì”¡ ì”¢ ì”£ ì”¤ ì”¥ ì”¦ ì”§ ì”¨ ì”© ì”ª ì”« ì”¬ ì”­ ì”® ì”¯ ì”° ì”± ì”² ì”³ ì”´ ì”µ ì”¶ ì”· ì”¸ ì”¹ ì”º ì”» ì”¼ ì”½ ì”¾ ì”¿ ì•€ ì• ì•‚ ì•ƒ ì•„ ì•… ì•† ì•‡ ì•ˆ ì•‰ ì•Š ì•‹ ì•Œ ì• ì•Ž ì• ì• ì•‘ ì•’ ì•“ ì•” ì•• ì•– ì•— ì•˜ ì•™ ì•š ì•› ì•œ ì• ì•ž ì•Ÿ ì•  ì•¡ ì•¢ ì•£ ì•¤ ì•¥ ì•¦ ì•§ ì•¨ ì•© ì•ª ì•« ì•¬ ì•­ ì•® ì•¯ ì•° ì•± ì•² ì•³ ì•´ ì•µ ì•¶ ì•· ì•¸ ì•¹ ì•º ì•» ì•¼ ì•½ ì•¾ ì•¿ ì–€ ì– ì–‚ ì–ƒ ì–„ ì–… ì–† ì–‡ ì–ˆ ì–‰ ì–Š ì–‹ ì–Œ ì– ì–Ž ì– ì– ì–‘ ì–’ ì–“ ì–” ì–• ì–– ì–— ì–˜ ì–™ ì–š ì–› ì–œ ì– ì–ž ì–Ÿ ì–  ì–¡ ì–¢ ì–£ ì–¤ ì–¥ ì–¦ ì–§ ì–¨ ì–© ì–ª ì–« ì–¬ ì–­ ì–® ì–¯ ì–° ì–± ì–² ì–³ ì–´ ì–µ ì–¶ ì–· ì–¸ ì–¹ ì–º ì–» ì–¼ ì–½ ì–¾ ì–¿ ì—€ ì— ì—‚ ì—ƒ ì—„ ì—… ì—† ì—‡ ì—ˆ ì—‰ ì—Š ì—‹ ì—Œ ì— ì—Ž ì— ì— ì—‘ ì—’ ì—“ ì—” ì—• ì—– ì—— ì—˜ ì—™ ì—š ì—› ì—œ ì— ì—ž ì—Ÿ ì—  ì—¡ ì—¢ ì—£ ì—¤ ì—¥ ì—¦ ì—§ ì—¨ ì—© ì—ª ì—« ì—¬ ì—­ ì—® ì—¯ ì—° ì—± ì—² ì—³ ì—´ ì—µ ì—¶ ì—· ì—¸ ì—¹ ì—º ì—» ì—¼ ì—½ ì—¾ ì—¿ ì˜€ ì˜ ì˜‚ ì˜ƒ ì˜„ ì˜… ì˜† ì˜‡ ì˜ˆ ì˜‰ ì˜Š ì˜‹ ì˜Œ ì˜ ì˜Ž ì˜ ì˜ ì˜‘ ì˜’ ì˜“ ì˜” ì˜• ì˜– ì˜— ì˜˜ ì˜™ ì˜š ì˜› ì˜œ ì˜ ì˜ž ì˜Ÿ ì˜  ì˜¡ ì˜¢ ì˜£ ì˜¤ ì˜¥ ì˜¦ ì˜§ ì˜¨ ì˜© ì˜ª ì˜« ì˜¬ ì˜­ ì˜® ì˜¯ ì˜° ì˜± ì˜² ì˜³ ì˜´ ì˜µ ì˜¶ ì˜· ì˜¸ ì˜¹ ì˜º ì˜» ì˜¼ ì˜½ ì˜¾ ì˜¿ ì™€ ì™ ì™‚ ì™ƒ ì™„ ì™… ì™† ì™‡ ì™ˆ ì™‰ ì™Š ì™‹ ì™Œ ì™ ì™Ž ì™ ì™ ì™‘ ì™’ ì™“ ì™” ì™• ì™– ì™— ì™˜ ì™™ ì™š ì™› ì™œ ì™ ì™ž ì™Ÿ ì™  ì™¡ ì™¢ ì™£ ì™¤ ì™¥ ì™¦ ì™§ ì™¨ ì™© ì™ª ì™« ì™¬ ì™­ ì™® ì™¯ ì™° ì™± ì™² ì™³ ì™´ ì™µ ì™¶ ì™· ì™¸ ì™¹ ì™º ì™» ì™¼ ì™½ ì™¾ ì™¿ ìš€ ìš ìš‚ ìšƒ ìš„ ìš… ìš† ìš‡ ìšˆ ìš‰ ìšŠ ìš‹ ìšŒ ìš ìšŽ ìš ìš ìš‘ ìš’ ìš“ ìš” ìš• ìš– ìš— ìš˜ ìš™ ìšš ìš› ìšœ ìš ìšž ìšŸ ìš  ìš¡ ìš¢ ìš£ ìš¤ ìš¥ ìš¦ ìš§ ìš¨ ìš© ìšª ìš« ìš¬ ìš­ ìš® ìš¯ ìš° ìš± ìš² ìš³ ìš´ ìšµ ìš¶ ìš· ìš¸ ìš¹ ìšº ìš» ìš¼ ìš½ ìš¾ ìš¿ ì›€ ì› ì›‚ ì›ƒ ì›„ ì›… ì›† ì›‡ ì›ˆ ì›‰ ì›Š ì›‹ ì›Œ ì› ì›Ž ì› ì› ì›‘ ì›’ ì›“ ì›” ì›• ì›– ì›— ì›˜ ì›™ ì›š ì›› ì›œ ì› ì›ž ì›Ÿ ì›  ì›¡ ì›¢ ì›£ ì›¤ ì›¥ ì›¦ ì›§ ì›¨ ì›© ì›ª ì›« ì›¬ ì›­ ì›® ì›¯ ì›° ì›± ì›² ì›³ ì›´ ì›µ ì›¶ ì›· ì›¸ ì›¹ ì›º ì›» ì›¼ ì›½ ì›¾ ì›¿ ìœ€ ìœ ìœ‚ ìœƒ ìœ„ ìœ… ìœ† ìœ‡ ìœˆ ìœ‰ ìœŠ ìœ‹ ìœŒ ìœ ìœŽ ìœ ìœ ìœ‘ ìœ’ ìœ“ ìœ” ìœ• ìœ– ìœ— ìœ˜ ìœ™ ìœš ìœ› ìœœ ìœ ìœž ìœŸ ìœ  ìœ¡ ìœ¢ ìœ£ ìœ¤ ìœ¥ ìœ¦ ìœ§ ìœ¨ ìœ© ìœª ìœ« ìœ¬ ìœ­ ìœ® ìœ¯ ìœ° ìœ± ìœ² ìœ³ ìœ´ ìœµ ìœ¶ ìœ· ìœ¸ ìœ¹ ìœº ìœ» ìœ¼ ìœ½ ìœ¾ ìœ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìž€ ìž ìž‚ ìžƒ ìž„ ìž… ìž† ìž‡ ìžˆ ìž‰ ìžŠ ìž‹ ìžŒ ìž ìžŽ ìž ìž ìž‘ ìž’ ìž“ ìž” ìž• ìž– ìž— ìž˜ ìž™ ìžš ìž› ìžœ ìž ìžž ìžŸ ìž  ìž¡ ìž¢ ìž£ ìž¤ ìž¥ ìž¦ ìž§ ìž¨ ìž© ìžª ìž« ìž¬ ìž­ ìž® ìž¯ ìž° ìž± ìž² ìž³ ìž´ ìžµ ìž¶ ìž· ìž¸ ìž¹ ìžº ìž» ìž¼ ìž½ ìž¾ ìž¿ ìŸ€ ìŸ ìŸ‚ ìŸƒ ìŸ„ ìŸ… ìŸ† ìŸ‡ ìŸˆ ìŸ‰ ìŸŠ ìŸ‹ ìŸŒ ìŸ ìŸŽ ìŸ ìŸ ìŸ‘ ìŸ’ ìŸ“ ìŸ” ìŸ• ìŸ– ìŸ— ìŸ˜ ìŸ™ ìŸš ìŸ› ìŸœ ìŸ ìŸž ìŸŸ ìŸ  ìŸ¡ ìŸ¢ ìŸ£ ìŸ¤ ìŸ¥ ìŸ¦ ìŸ§ ìŸ¨ ìŸ© ìŸª ìŸ« ìŸ¬ ìŸ­ ìŸ® ìŸ¯ ìŸ° ìŸ± ìŸ² ìŸ³ ìŸ´ ìŸµ ìŸ¶ ìŸ· ìŸ¸ ìŸ¹ ìŸº ìŸ» ìŸ¼ ìŸ½ ìŸ¾ ìŸ¿ ì € ì  ì ‚ ì ƒ ì „ ì … ì † ì ‡ ì ˆ ì ‰ ì Š ì ‹ ì Œ ì  ì Ž ì  ì  ì ‘ ì ’ ì “ ì ” ì • ì – ì — ì ˜ ì ™ ì š ì › ì œ ì  ì ž ì Ÿ ì   ì ¡ ì ¢ ì £ ì ¤ ì ¥ ì ¦ ì § ì ¨ ì © ì ª ì « ì ¬ ì ­ ì ® ì ¯ ì ° ì ± ì ² ì ³ ì ´ ì µ ì ¶ ì · ì ¸ ì ¹ ì º ì » ì ¼ ì ½ ì ¾ ì ¿ ì¡€ ì¡ ì¡‚ ì¡ƒ ì¡„ ì¡… ì¡† ì¡‡ ì¡ˆ ì¡‰ ì¡Š ì¡‹ ì¡Œ ì¡ ì¡Ž ì¡ ì¡ ì¡‘ ì¡’ ì¡“ ì¡” ì¡• ì¡– ì¡— ì¡˜ ì¡™ ì¡š ì¡› ì¡œ ì¡ ì¡ž ì¡Ÿ ì¡  ì¡¡ ì¡¢ ì¡£ ì¡¤ ì¡¥ ì¡¦ ì¡§ ì¡¨ ì¡© ì¡ª ì¡« ì¡¬ ì¡­ ì¡® ì¡¯ ì¡° ì¡± ì¡² ì¡³ ì¡´ ì¡µ ì¡¶ ì¡· ì¡¸ ì¡¹ ì¡º ì¡» ì¡¼ ì¡½ ì¡¾ ì¡¿ ì¢€ ì¢ ì¢‚ ì¢ƒ ì¢„ ì¢… ì¢† ì¢‡ ì¢ˆ ì¢‰ ì¢Š ì¢‹ ì¢Œ ì¢ ì¢Ž ì¢ ì¢ ì¢‘ ì¢’ ì¢“ ì¢” ì¢• ì¢– ì¢— ì¢˜ ì¢™ ì¢š ì¢› ì¢œ ì¢ ì¢ž ì¢Ÿ ì¢  ì¢¡ ì¢¢ ì¢£ ì¢¤ ì¢¥ ì¢¦ ì¢§ ì¢¨ ì¢© ì¢ª ì¢« ì¢¬ ì¢­ ì¢® ì¢¯ ì¢° ì¢± ì¢² ì¢³ ì¢´ ì¢µ ì¢¶ ì¢· ì¢¸ ì¢¹ ì¢º ì¢» ì¢¼ ì¢½ ì¢¾ ì¢¿ ì£€ ì£ ì£‚ ì£ƒ ì£„ ì£… ì£† ì£‡ ì£ˆ ì£‰ ì£Š ì£‹ ì£Œ ì£ ì£Ž ì£ ì£ ì£‘ ì£’ ì£“ ì£” ì£• ì£– ì£— ì£˜ ì£™ ì£š ì£› ì£œ ì£ ì£ž ì£Ÿ ì£  ì£¡ ì£¢ ì££ ì£¤ ì£¥ ì£¦ ì£§ ì£¨ ì£© ì£ª ì£« ì£¬ ì£­ ì£® ì£¯ ì£° ì£± ì£² ì£³ ì£´ ì£µ ì£¶ ì£· ì£¸ ì£¹ ì£º ì£» ì£¼ ì£½ ì£¾ ì£¿ ì¤€ ì¤ ì¤‚ ì¤ƒ ì¤„ ì¤… ì¤† ì¤‡ ì¤ˆ ì¤‰ ì¤Š ì¤‹ ì¤Œ ì¤ ì¤Ž ì¤ ì¤ ì¤‘ ì¤’ ì¤“ ì¤” ì¤• ì¤– ì¤— ì¤˜ ì¤™ ì¤š ì¤› ì¤œ ì¤ ì¤ž ì¤Ÿ ì¤  ì¤¡ ì¤¢ ì¤£ ì¤¤ ì¤¥ ì¤¦ ì¤§ ì¤¨ ì¤© ì¤ª ì¤« ì¤¬ ì¤­ ì¤® ì¤¯ ì¤° ì¤± ì¤² ì¤³ ì¤´ ì¤µ ì¤¶ ì¤· ì¤¸ ì¤¹ ì¤º ì¤» ì¤¼ ì¤½ ì¤¾ ì¤¿ ì¥€ ì¥ ì¥‚ ì¥ƒ ì¥„ ì¥… ì¥† ì¥‡ ì¥ˆ ì¥‰ ì¥Š ì¥‹ ì¥Œ ì¥ ì¥Ž ì¥ ì¥ ì¥‘ ì¥’ ì¥“ ì¥” ì¥• ì¥– ì¥— ì¥˜ ì¥™ ì¥š ì¥› ì¥œ ì¥ ì¥ž ì¥Ÿ ì¥  ì¥¡ ì¥¢ ì¥£ ì¥¤ ì¥¥ ì¥¦ ì¥§ ì¥¨ ì¥© ì¥ª ì¥« ì¥¬ ì¥­ ì¥® ì¥¯ ì¥° ì¥± ì¥² ì¥³ ì¥´ ì¥µ ì¥¶ ì¥· ì¥¸ ì¥¹ ì¥º ì¥» ì¥¼ ì¥½ ì¥¾ ì¥¿ ì¦€ ì¦ ì¦‚ ì¦ƒ ì¦„ ì¦… ì¦† ì¦‡ ì¦ˆ ì¦‰ ì¦Š ì¦‹ ì¦Œ ì¦ ì¦Ž ì¦ ì¦ ì¦‘ ì¦’ ì¦“ ì¦” ì¦• ì¦– ì¦— ì¦˜ ì¦™ ì¦š ì¦› ì¦œ ì¦ ì¦ž ì¦Ÿ ì¦  ì¦¡ ì¦¢ ì¦£ ì¦¤ ì¦¥ ì¦¦ ì¦§ ì¦¨ ì¦© ì¦ª ì¦« ì¦¬ ì¦­ ì¦® ì¦¯ ì¦° ì¦± ì¦² ì¦³ ì¦´ ì¦µ ì¦¶ ì¦· ì¦¸ ì¦¹ ì¦º ì¦» ì¦¼ ì¦½ ì¦¾ ì¦¿ ì§€ ì§ ì§‚ ì§ƒ ì§„ ì§… ì§† ì§‡ ì§ˆ ì§‰ ì§Š ì§‹ ì§Œ ì§ ì§Ž ì§ ì§ ì§‘ ì§’ ì§“ ì§” ì§• ì§– ì§— ì§˜ ì§™ ì§š ì§› ì§œ ì§ ì§ž ì§Ÿ ì§  ì§¡ ì§¢ ì§£ ì§¤ ì§¥ ì§¦ ì§§ ì§¨ ì§© ì§ª ì§« ì§¬ ì§­ ì§® ì§¯ ì§° ì§± ì§² ì§³ ì§´ ì§µ ì§¶ ì§· ì§¸ ì§¹ ì§º ì§» ì§¼ ì§½ ì§¾ ì§¿ ì¨€ ì¨ ì¨‚ ì¨ƒ ì¨„ ì¨… ì¨† ì¨‡ ì¨ˆ ì¨‰ ì¨Š ì¨‹ ì¨Œ ì¨ ì¨Ž ì¨ ì¨ ì¨‘ ì¨’ ì¨“ ì¨” ì¨• ì¨– ì¨— ì¨˜ ì¨™ ì¨š ì¨› ì¨œ ì¨ ì¨ž ì¨Ÿ ì¨  ì¨¡ ì¨¢ ì¨£ ì¨¤ ì¨¥ ì¨¦ ì¨§ ì¨¨ ì¨© ì¨ª ì¨« ì¨¬ ì¨­ ì¨® ì¨¯ ì¨° ì¨± ì¨² ì¨³ ì¨´ ì¨µ ì¨¶ ì¨· ì¨¸ ì¨¹ ì¨º ì¨» ì¨¼ ì¨½ ì¨¾ ì¨¿ ì©€ ì© ì©‚ ì©ƒ ì©„ ì©… ì©† ì©‡ ì©ˆ ì©‰ ì©Š ì©‹ ì©Œ ì© ì©Ž ì© ì© ì©‘ ì©’ ì©“ ì©” ì©• ì©– ì©— ì©˜ ì©™ ì©š ì©› ì©œ ì© ì©ž ì©Ÿ ì©  ì©¡ ì©¢ ì©£ ì©¤ ì©¥ ì©¦ ì©§ ì©¨ ì©© ì©ª ì©« ì©¬ ì©­ ì©® ì©¯ ì©° ì©± ì©² ì©³ ì©´ ì©µ ì©¶ ì©· ì©¸ ì©¹ ì©º ì©» ì©¼ ì©½ ì©¾ ì©¿ ìª€ ìª ìª‚ ìªƒ ìª„ ìª… ìª† ìª‡ ìªˆ ìª‰ ìªŠ ìª‹ ìªŒ ìª ìªŽ ìª ìª ìª‘ ìª’ ìª“ ìª” ìª• ìª– ìª— ìª˜ ìª™ ìªš ìª› ìªœ ìª ìªž ìªŸ ìª  ìª¡ ìª¢ ìª£ ìª¤ ìª¥ ìª¦ ìª§ ìª¨ ìª© ìªª ìª« ìª¬ ìª­ ìª® ìª¯ ìª° ìª± ìª² ìª³ ìª´ ìªµ ìª¶ ìª· ìª¸ ìª¹ ìªº ìª» ìª¼ ìª½ ìª¾ ìª¿ ì«€ ì« ì«‚ ì«ƒ ì«„ ì«… ì«† ì«‡ ì«ˆ ì«‰ ì«Š ì«‹ ì«Œ ì« ì«Ž ì« ì« ì«‘ ì«’ ì«“ ì«” ì«• ì«– ì«— ì«˜ ì«™ ì«š ì«› ì«œ ì« ì«ž ì«Ÿ ì«  ì«¡ ì«¢ ì«£ ì«¤ ì«¥ ì«¦ ì«§ ì«¨ ì«© ì«ª ì«« ì«¬ ì«­ ì«® ì«¯ ì«° ì«± ì«² ì«³ ì«´ ì«µ ì«¶ ì«· ì«¸ ì«¹ ì«º ì«» ì«¼ ì«½ ì«¾ ì«¿ ì¬€ ì¬ ì¬‚ ì¬ƒ ì¬„ ì¬… ì¬† ì¬‡ ì¬ˆ ì¬‰ ì¬Š ì¬‹ ì¬Œ ì¬ ì¬Ž ì¬ ì¬ ì¬‘ ì¬’ ì¬“ ì¬” ì¬• ì¬– ì¬— ì¬˜ ì¬™ ì¬š ì¬› ì¬œ ì¬ ì¬ž ì¬Ÿ ì¬  ì¬¡ ì¬¢ ì¬£ ì¬¤ ì¬¥ ì¬¦ ì¬§ ì¬¨ ì¬© ì¬ª ì¬« ì¬¬ ì¬­ ì¬® ì¬¯ ì¬° ì¬± ì¬² ì¬³ ì¬´ ì¬µ ì¬¶ ì¬· ì¬¸ ì¬¹ ì¬º ì¬» ì¬¼ ì¬½ ì¬¾ ì¬¿ ì­€ ì­ ì­‚ ì­ƒ ì­„ ì­… ì­† ì­‡ ì­ˆ ì­‰ ì­Š ì­‹ ì­Œ ì­ ì­Ž ì­ ì­ ì­‘ ì­’ ì­“ ì­” ì­• ì­– ì­— ì­˜ ì­™ ì­š ì­› ì­œ ì­ ì­ž ì­Ÿ ì­  ì­¡ ì­¢ ì­£ ì­¤ ì­¥ ì­¦ ì­§ ì­¨ ì­© ì­ª ì­« ì­¬ ì­­ ì­® ì­¯ ì­° ì­± ì­² ì­³ ì­´ ì­µ ì­¶ ì­· ì­¸ ì­¹ ì­º ì­» ì­¼ ì­½ ì­¾ ì­¿ ì®€ ì® ì®‚ ì®ƒ ì®„ ì®… ì®† ì®‡ ì®ˆ ì®‰ ì®Š ì®‹ ì®Œ ì® ì®Ž ì® ì® ì®‘ ì®’ ì®“ ì®” ì®• ì®– ì®— ì®˜ ì®™ ì®š ì®› ì®œ ì® ì®ž ì®Ÿ ì®  ì®¡ ì®¢ ì®£ ì®¤ ì®¥ ì®¦ ì®§ ì®¨ ì®© ì®ª ì®« ì®¬ ì®­ ì®® ì®¯ ì®° ì®± ì®² ì®³ ì®´ ì®µ ì®¶ ì®· ì®¸ ì®¹ ì®º ì®» ì®¼ ì®½ ì®¾ ì®¿ ì¯€ ì¯ ì¯‚ ì¯ƒ ì¯„ ì¯… ì¯† ì¯‡ ì¯ˆ ì¯‰ ì¯Š ì¯‹ ì¯Œ ì¯ ì¯Ž ì¯ ì¯ ì¯‘ ì¯’ ì¯“ ì¯” ì¯• ì¯– ì¯— ì¯˜ ì¯™ ì¯š ì¯› ì¯œ ì¯ ì¯ž ì¯Ÿ ì¯  ì¯¡ ì¯¢ ì¯£ ì¯¤ ì¯¥ ì¯¦ ì¯§ ì¯¨ ì¯© ì¯ª ì¯« ì¯¬ ì¯­ ì¯® ì¯¯ ì¯° ì¯± ì¯² ì¯³ ì¯´ ì¯µ ì¯¶ ì¯· ì¯¸ ì¯¹ ì¯º ì¯» ì¯¼ ì¯½ ì¯¾ ì¯¿ ì°€ ì° ì°‚ ì°ƒ ì°„ ì°… ì°† ì°‡ ì°ˆ ì°‰ ì°Š ì°‹ ì°Œ ì° ì°Ž ì° ì° ì°‘ ì°’ ì°“ ì°” ì°• ì°– ì°— ì°˜ ì°™ ì°š ì°› ì°œ ì° ì°ž ì°Ÿ ì°  ì°¡ ì°¢ ì°£ ì°¤ ì°¥ ì°¦ ì°§ ì°¨ ì°© ì°ª ì°« ì°¬ ì°­ ì°® ì°¯ ì°° ì°± ì°² ì°³ ì°´ ì°µ ì°¶ ì°· ì°¸ ì°¹ ì°º ì°» ì°¼ ì°½ ì°¾ ì°¿ ì±€ ì± ì±‚ ì±ƒ ì±„ ì±… ì±† ì±‡ ì±ˆ ì±‰ ì±Š ì±‹ ì±Œ ì± ì±Ž ì± ì± ì±‘ ì±’ ì±“ ì±” ì±• ì±– ì±— ì±˜ ì±™ ì±š ì±› ì±œ ì± ì±ž ì±Ÿ ì±  ì±¡ ì±¢ ì±£ ì±¤ ì±¥ ì±¦ ì±§ ì±¨ ì±© ì±ª ì±« ì±¬ ì±­ ì±® ì±¯ ì±° ì±± ì±² ì±³ ì±´ ì±µ ì±¶ ì±· ì±¸ ì±¹ ì±º ì±» ì±¼ ì±½ ì±¾ ì±¿ ì²€ ì² ì²‚ ì²ƒ ì²„ ì²… ì²† ì²‡ ì²ˆ ì²‰ ì²Š ì²‹ ì²Œ ì² ì²Ž ì² ì² ì²‘ ì²’ ì²“ ì²” ì²• ì²– ì²— ì²˜ ì²™ ì²š ì²› ì²œ ì² ì²ž ì²Ÿ ì²  ì²¡ ì²¢ ì²£ ì²¤ ì²¥ ì²¦ ì²§ ì²¨ ì²© ì²ª ì²« ì²¬ ì²­ ì²® ì²¯ ì²° ì²± ì²² ì²³ ì²´ ì²µ ì²¶ ì²· ì²¸ ì²¹ ì²º ì²» ì²¼ ì²½ ì²¾ ì²¿ ì³€ ì³ ì³‚ ì³ƒ ì³„ ì³… ì³† ì³‡ ì³ˆ ì³‰ ì³Š ì³‹ ì³Œ ì³ ì³Ž ì³ ì³ ì³‘ ì³’ ì³“ ì³” ì³• ì³– ì³— ì³˜ ì³™ ì³š ì³› ì³œ ì³ ì³ž ì³Ÿ ì³  ì³¡ ì³¢ ì³£ ì³¤ ì³¥ ì³¦ ì³§ ì³¨ ì³© ì³ª ì³« ì³¬ ì³­ ì³® ì³¯ ì³° ì³± ì³² ì³³ ì³´ ì³µ ì³¶ ì³· ì³¸ ì³¹ ì³º ì³» ì³¼ ì³½ ì³¾ ì³¿ ì´€ ì´ ì´‚ ì´ƒ ì´„ ì´… ì´† ì´‡ ì´ˆ ì´‰ ì´Š ì´‹ ì´Œ ì´ ì´Ž ì´ ì´ ì´‘ ì´’ ì´“ ì´” ì´• ì´– ì´— ì´˜ ì´™ ì´š ì´› ì´œ ì´ ì´ž ì´Ÿ ì´  ì´¡ ì´¢ ì´£ ì´¤ ì´¥ ì´¦ ì´§ ì´¨ ì´© ì´ª ì´« ì´¬ ì´­ ì´® ì´¯ ì´° ì´± ì´² ì´³ ì´´ ì´µ ì´¶ ì´· ì´¸ ì´¹ ì´º ì´» ì´¼ ì´½ ì´¾ ì´¿ ìµ€ ìµ ìµ‚ ìµƒ ìµ„ ìµ… ìµ† ìµ‡ ìµˆ ìµ‰ ìµŠ ìµ‹ ìµŒ ìµ ìµŽ ìµ ìµ ìµ‘ ìµ’ ìµ“ ìµ” ìµ• ìµ– ìµ— ìµ˜ ìµ™ ìµš ìµ› ìµœ ìµ ìµž ìµŸ ìµ  ìµ¡ ìµ¢ ìµ£ ìµ¤ ìµ¥ ìµ¦ ìµ§ ìµ¨ ìµ© ìµª ìµ« ìµ¬ ìµ­ ìµ® ìµ¯ ìµ° ìµ± ìµ² ìµ³ ìµ´ ìµµ ìµ¶ ìµ· ìµ¸ ìµ¹ ìµº ìµ» ìµ¼ ìµ½ ìµ¾ ìµ¿ ì¶€ ì¶ ì¶‚ ì¶ƒ ì¶„ ì¶… ì¶† ì¶‡ ì¶ˆ ì¶‰ ì¶Š ì¶‹ ì¶Œ ì¶ ì¶Ž ì¶ ì¶ ì¶‘ ì¶’ ì¶“ ì¶” ì¶• ì¶– ì¶— ì¶˜ ì¶™ ì¶š ì¶› ì¶œ ì¶ ì¶ž ì¶Ÿ ì¶  ì¶¡ ì¶¢ ì¶£ ì¶¤ ì¶¥ ì¶¦ ì¶§ ì¶¨ ì¶© ì¶ª ì¶« ì¶¬ ì¶­ ì¶® ì¶¯ ì¶° ì¶± ì¶² ì¶³ ì¶´ ì¶µ ì¶¶ ì¶· ì¶¸ ì¶¹ ì¶º ì¶» ì¶¼ ì¶½ ì¶¾ ì¶¿ ì·€ ì· ì·‚ ì·ƒ ì·„ ì·… ì·† ì·‡ ì·ˆ ì·‰ ì·Š ì·‹ ì·Œ ì· ì·Ž ì· ì· ì·‘ ì·’ ì·“ ì·” ì·• ì·– ì·— ì·˜ ì·™ ì·š ì·› ì·œ ì· ì·ž ì·Ÿ ì·  ì·¡ ì·¢ ì·£ ì·¤ ì·¥ ì·¦ ì·§ ì·¨ ì·© ì·ª ì·« ì·¬ ì·­ ì·® ì·¯ ì·° ì·± ì·² ì·³ ì·´ ì·µ ì·¶ ì·· ì·¸ ì·¹ ì·º ì·» ì·¼ ì·½ ì·¾ ì·¿ ì¸€ ì¸ ì¸‚ ì¸ƒ ì¸„ ì¸… ì¸† ì¸‡ ì¸ˆ ì¸‰ ì¸Š ì¸‹ ì¸Œ ì¸ ì¸Ž ì¸ ì¸ ì¸‘ ì¸’ ì¸“ ì¸” ì¸• ì¸– ì¸— ì¸˜ ì¸™ ì¸š ì¸› ì¸œ ì¸ ì¸ž ì¸Ÿ ì¸  ì¸¡ ì¸¢ ì¸£ ì¸¤ ì¸¥ ì¸¦ ì¸§ ì¸¨ ì¸© ì¸ª ì¸« ì¸¬ ì¸­ ì¸® ì¸¯ ì¸° ì¸± ì¸² ì¸³ ì¸´ ì¸µ ì¸¶ ì¸· ì¸¸ ì¸¹ ì¸º ì¸» ì¸¼ ì¸½ ì¸¾ ì¸¿ ì¹€ ì¹ ì¹‚ ì¹ƒ ì¹„ ì¹… ì¹† ì¹‡ ì¹ˆ ì¹‰ ì¹Š ì¹‹ ì¹Œ ì¹ ì¹Ž ì¹ ì¹ ì¹‘ ì¹’ ì¹“ ì¹” ì¹• ì¹– ì¹— ì¹˜ ì¹™ ì¹š ì¹› ì¹œ ì¹ ì¹ž ì¹Ÿ ì¹  ì¹¡ ì¹¢ ì¹£ ì¹¤ ì¹¥ ì¹¦ ì¹§ ì¹¨ ì¹© ì¹ª ì¹« ì¹¬ ì¹­ ì¹® ì¹¯ ì¹° ì¹± ì¹² ì¹³ ì¹´ ì¹µ ì¹¶ ì¹· ì¹¸ ì¹¹ ì¹º ì¹» ì¹¼ ì¹½ ì¹¾ ì¹¿ ìº€ ìº ìº‚ ìºƒ ìº„ ìº… ìº† ìº‡ ìºˆ ìº‰ ìºŠ ìº‹ ìºŒ ìº ìºŽ ìº ìº ìº‘ ìº’ ìº“ ìº” ìº• ìº– ìº— ìº˜ ìº™ ìºš ìº› ìºœ ìº ìºž ìºŸ ìº  ìº¡ ìº¢ ìº£ ìº¤ ìº¥ ìº¦ ìº§ ìº¨ ìº© ìºª ìº« ìº¬ ìº­ ìº® ìº¯ ìº° ìº± ìº² ìº³ ìº´ ìºµ ìº¶ ìº· ìº¸ ìº¹ ìºº ìº» ìº¼ ìº½ ìº¾ ìº¿ ì»€ ì» ì»‚ ì»ƒ ì»„ ì»… ì»† ì»‡ ì»ˆ ì»‰ ì»Š ì»‹ ì»Œ ì» ì»Ž ì» ì» ì»‘ ì»’ ì»“ ì»” ì»• ì»– ì»— ì»˜ ì»™ ì»š ì»› ì»œ ì» ì»ž ì»Ÿ ì»  ì»¡ ì»¢ ì»£ ì»¤ ì»¥ ì»¦ ì»§ ì»¨ ì»© ì»ª ì»« ì»¬ ì»­ ì»® ì»¯ ì»° ì»± ì»² ì»³ ì»´ ì»µ ì»¶ ì»· ì»¸ ì»¹ ì»º ì»» ì»¼ ì»½ ì»¾ ì»¿ ì¼€ ì¼ ì¼‚ ì¼ƒ ì¼„ ì¼… ì¼† ì¼‡ ì¼ˆ ì¼‰ ì¼Š ì¼‹ ì¼Œ ì¼ ì¼Ž ì¼ ì¼ ì¼‘ ì¼’ ì¼“ ì¼” ì¼• ì¼– ì¼— ì¼˜ ì¼™ ì¼š ì¼› ì¼œ ì¼ ì¼ž ì¼Ÿ ì¼  ì¼¡ ì¼¢ ì¼£ ì¼¤ ì¼¥ ì¼¦ ì¼§ ì¼¨ ì¼© ì¼ª ì¼« ì¼¬ ì¼­ ì¼® ì¼¯ ì¼° ì¼± ì¼² ì¼³ ì¼´ ì¼µ ì¼¶ ì¼· ì¼¸ ì¼¹ ì¼º ì¼» ì¼¼ ì¼½ ì¼¾ ì¼¿ ì½€ ì½ ì½‚ ì½ƒ ì½„ ì½… ì½† ì½‡ ì½ˆ ì½‰ ì½Š ì½‹ ì½Œ ì½ ì½Ž ì½ ì½ ì½‘ ì½’ ì½“ ì½” ì½• ì½– ì½— ì½˜ ì½™ ì½š ì½› ì½œ ì½ ì½ž ì½Ÿ ì½  ì½¡ ì½¢ ì½£ ì½¤ ì½¥ ì½¦ ì½§ ì½¨ ì½© ì½ª ì½« ì½¬ ì½­ ì½® ì½¯ ì½° ì½± ì½² ì½³ ì½´ ì½µ ì½¶ ì½· ì½¸ ì½¹ ì½º ì½» ì½¼ ì½½ ì½¾ ì½¿ ì¾€ ì¾ ì¾‚ ì¾ƒ ì¾„ ì¾… ì¾† ì¾‡ ì¾ˆ ì¾‰ ì¾Š ì¾‹ ì¾Œ ì¾ ì¾Ž ì¾ ì¾ ì¾‘ ì¾’ ì¾“ ì¾” ì¾• ì¾– ì¾— ì¾˜ ì¾™ ì¾š ì¾› ì¾œ ì¾ ì¾ž ì¾Ÿ ì¾  ì¾¡ ì¾¢ ì¾£ ì¾¤ ì¾¥ ì¾¦ ì¾§ ì¾¨ ì¾© ì¾ª ì¾« ì¾¬ ì¾­ ì¾® ì¾¯ ì¾° ì¾± ì¾² ì¾³ ì¾´ ì¾µ ì¾¶ ì¾· ì¾¸ ì¾¹ ì¾º ì¾» ì¾¼ ì¾½ ì¾¾ ì¾¿ ì¿€ ì¿ ì¿‚ ì¿ƒ ì¿„ ì¿… ì¿† ì¿‡ ì¿ˆ ì¿‰ ì¿Š ì¿‹ ì¿Œ ì¿ ì¿Ž ì¿ ì¿ ì¿‘ ì¿’ ì¿“ ì¿” ì¿• ì¿– ì¿— ì¿˜ ì¿™ ì¿š ì¿› ì¿œ ì¿ ì¿ž ì¿Ÿ ì¿  ì¿¡ ì¿¢ ì¿£ ì¿¤ ì¿¥ ì¿¦ ì¿§ ì¿¨ ì¿© ì¿ª ì¿« ì¿¬ ì¿­ ì¿® ì¿¯ ì¿° ì¿± ì¿² ì¿³ ì¿´ ì¿µ ì¿¶ ì¿· ì¿¸ ì¿¹ ì¿º ì¿» ì¿¼ ì¿½ ì¿¾ ì¿¿ í€€ í€ í€‚ í€ƒ í€„ í€… í€† í€‡ í€ˆ í€‰ í€Š í€‹ í€Œ í€ í€Ž í€ í€ í€‘ í€’ í€“ í€” í€• í€– í€— í€˜ í€™ í€š í€› í€œ í€ í€ž í€Ÿ í€  í€¡ í€¢ í€£ í€¤ í€¥ í€¦ í€§ í€¨ í€© í€ª í€« í€¬ í€­ í€® í€¯ í€° í€± í€² í€³ í€´ í€µ í€¶ í€· í€¸ í€¹ í€º í€» í€¼ í€½ í€¾ í€¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‚€ í‚ í‚‚ í‚ƒ í‚„ í‚… í‚† í‚‡ í‚ˆ í‚‰ í‚Š í‚‹ í‚Œ í‚ í‚Ž í‚ í‚ í‚‘ í‚’ í‚“ í‚” í‚• í‚– í‚— í‚˜ í‚™ í‚š í‚› í‚œ í‚ í‚ž í‚Ÿ í‚  í‚¡ í‚¢ í‚£ í‚¤ í‚¥ í‚¦ í‚§ í‚¨ í‚© í‚ª í‚« í‚¬ í‚­ í‚® í‚¯ í‚° í‚± í‚² í‚³ í‚´ í‚µ í‚¶ í‚· í‚¸ í‚¹ í‚º í‚» í‚¼ í‚½ í‚¾ í‚¿ íƒ€ íƒ íƒ‚ íƒƒ íƒ„ íƒ… íƒ† íƒ‡ íƒˆ íƒ‰ íƒŠ íƒ‹ íƒŒ íƒ íƒŽ íƒ íƒ íƒ‘ íƒ’ íƒ“ íƒ” íƒ• íƒ– íƒ— íƒ˜ íƒ™ íƒš íƒ› íƒœ íƒ íƒž íƒŸ íƒ  íƒ¡ íƒ¢ íƒ£ íƒ¤ íƒ¥ íƒ¦ íƒ§ íƒ¨ íƒ© íƒª íƒ« íƒ¬ íƒ­ íƒ® íƒ¯ íƒ° íƒ± íƒ² íƒ³ íƒ´ íƒµ íƒ¶ íƒ· íƒ¸ íƒ¹ íƒº íƒ» íƒ¼ íƒ½ íƒ¾ íƒ¿ í„€ í„ í„‚ í„ƒ í„„ í„… í„† í„‡ í„ˆ í„‰ í„Š í„‹ í„Œ í„ í„Ž í„ í„ í„‘ í„’ í„“ í„” í„• í„– í„— í„˜ í„™ í„š í„› í„œ í„ í„ž í„Ÿ í„  í„¡ í„¢ í„£ í„¤ í„¥ í„¦ í„§ í„¨ í„© í„ª í„« í„¬ í„­ í„® í„¯ í„° í„± í„² í„³ í„´ í„µ í„¶ í„· í„¸ í„¹ í„º í„» í„¼ í„½ í„¾ í„¿ í…€ í… í…‚ í…ƒ í…„ í…… í…† í…‡ í…ˆ í…‰ í…Š í…‹ í…Œ í… í…Ž í… í… í…‘ í…’ í…“ í…” í…• í…– í…— í…˜ í…™ í…š í…› í…œ í… í…ž í…Ÿ í…  í…¡ í…¢ í…£ í…¤ í…¥ í…¦ í…§ í…¨ í…© í…ª í…« í…¬ í…­ í…® í…¯ í…° í…± í…² í…³ í…´ í…µ í…¶ í…· í…¸ í…¹ í…º í…» í…¼ í…½ í…¾ í…¿ í†€ í† í†‚ í†ƒ í†„ í†… í†† í†‡ í†ˆ í†‰ í†Š í†‹ í†Œ í† í†Ž í† í† í†‘ í†’ í†“ í†” í†• í†– í†— í†˜ í†™ í†š í†› í†œ í† í†ž í†Ÿ í†  í†¡ í†¢ í†£ í†¤ í†¥ í†¦ í†§ í†¨ í†© í†ª í†« í†¬ í†­ í†® í†¯ í†° í†± í†² í†³ í†´ í†µ í†¶ í†· í†¸ í†¹ í†º í†» í†¼ í†½ í†¾ í†¿ í‡€ í‡ í‡‚ í‡ƒ í‡„ í‡… í‡† í‡‡ í‡ˆ í‡‰ í‡Š í‡‹ í‡Œ í‡ í‡Ž í‡ í‡ í‡‘ í‡’ í‡“ í‡” í‡• í‡– í‡— í‡˜ í‡™ í‡š í‡› í‡œ í‡ í‡ž í‡Ÿ í‡  í‡¡ í‡¢ í‡£ í‡¤ í‡¥ í‡¦ í‡§ í‡¨ í‡© í‡ª í‡« í‡¬ í‡­ í‡® í‡¯ í‡° í‡± í‡² í‡³ í‡´ í‡µ í‡¶ í‡· í‡¸ í‡¹ í‡º í‡» í‡¼ í‡½ í‡¾ í‡¿ íˆ€ íˆ íˆ‚ íˆƒ íˆ„ íˆ… íˆ† íˆ‡ íˆˆ íˆ‰ íˆŠ íˆ‹ íˆŒ íˆ íˆŽ íˆ íˆ íˆ‘ íˆ’ íˆ“ íˆ” íˆ• íˆ– íˆ— íˆ˜ íˆ™ íˆš íˆ› íˆœ íˆ íˆž íˆŸ íˆ  íˆ¡ íˆ¢ íˆ£ íˆ¤ íˆ¥ íˆ¦ íˆ§ íˆ¨ íˆ© íˆª íˆ« íˆ¬ íˆ­ íˆ® íˆ¯ íˆ° íˆ± íˆ² íˆ³ íˆ´ íˆµ íˆ¶ íˆ· íˆ¸ íˆ¹ íˆº íˆ» íˆ¼ íˆ½ íˆ¾ íˆ¿ í‰€ í‰ í‰‚ í‰ƒ í‰„ í‰… í‰† í‰‡ í‰ˆ í‰‰ í‰Š í‰‹ í‰Œ í‰ í‰Ž í‰ í‰ í‰‘ í‰’ í‰“ í‰” í‰• í‰– í‰— í‰˜ í‰™ í‰š í‰› í‰œ í‰ í‰ž í‰Ÿ í‰  í‰¡ í‰¢ í‰£ í‰¤ í‰¥ í‰¦ í‰§ í‰¨ í‰© í‰ª í‰« í‰¬ í‰­ í‰® í‰¯ í‰° í‰± í‰² í‰³ í‰´ í‰µ í‰¶ í‰· í‰¸ í‰¹ í‰º í‰» í‰¼ í‰½ í‰¾ í‰¿ íŠ€ íŠ íŠ‚ íŠƒ íŠ„ íŠ… íŠ† íŠ‡ íŠˆ íŠ‰ íŠŠ íŠ‹ íŠŒ íŠ íŠŽ íŠ íŠ íŠ‘ íŠ’ íŠ“ íŠ” íŠ• íŠ– íŠ— íŠ˜ íŠ™ íŠš íŠ› íŠœ íŠ íŠž íŠŸ íŠ  íŠ¡ íŠ¢ íŠ£ íŠ¤ íŠ¥ íŠ¦ íŠ§ íŠ¨ íŠ© íŠª íŠ« íŠ¬ íŠ­ íŠ® íŠ¯ íŠ° íŠ± íŠ² íŠ³ íŠ´ íŠµ íŠ¶ íŠ· íŠ¸ íŠ¹ íŠº íŠ» íŠ¼ íŠ½ íŠ¾ íŠ¿ í‹€ í‹ í‹‚ í‹ƒ í‹„ í‹… í‹† í‹‡ í‹ˆ í‹‰ í‹Š í‹‹ í‹Œ í‹ í‹Ž í‹ í‹ í‹‘ í‹’ í‹“ í‹” í‹• í‹– í‹— í‹˜ í‹™ í‹š í‹› í‹œ í‹ í‹ž í‹Ÿ í‹  í‹¡ í‹¢ í‹£ í‹¤ í‹¥ í‹¦ í‹§ í‹¨ í‹© í‹ª í‹« í‹¬ í‹­ í‹® í‹¯ í‹° í‹± í‹² í‹³ í‹´ í‹µ í‹¶ í‹· í‹¸ í‹¹ í‹º í‹» í‹¼ í‹½ í‹¾ í‹¿ íŒ€ íŒ íŒ‚ íŒƒ íŒ„ íŒ… íŒ† íŒ‡ íŒˆ íŒ‰ íŒŠ íŒ‹ íŒŒ íŒ íŒŽ íŒ íŒ íŒ‘ íŒ’ íŒ“ íŒ” íŒ• íŒ– íŒ— íŒ˜ íŒ™ íŒš íŒ› íŒœ íŒ íŒž íŒŸ íŒ  íŒ¡ íŒ¢ íŒ£ íŒ¤ íŒ¥ íŒ¦ íŒ§ íŒ¨ íŒ© íŒª íŒ« íŒ¬ íŒ­ íŒ® íŒ¯ íŒ° íŒ± íŒ² íŒ³ íŒ´ íŒµ íŒ¶ íŒ· íŒ¸ íŒ¹ íŒº íŒ» íŒ¼ íŒ½ íŒ¾ íŒ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íŽ€ íŽ íŽ‚ íŽƒ íŽ„ íŽ… íŽ† íŽ‡ íŽˆ íŽ‰ íŽŠ íŽ‹ íŽŒ íŽ íŽŽ íŽ íŽ íŽ‘ íŽ’ íŽ“ íŽ” íŽ• íŽ– íŽ— íŽ˜ íŽ™ íŽš íŽ› íŽœ íŽ íŽž íŽŸ íŽ  íŽ¡ íŽ¢ íŽ£ íŽ¤ íŽ¥ íŽ¦ íŽ§ íŽ¨ íŽ© íŽª íŽ« íŽ¬ íŽ­ íŽ® íŽ¯ íŽ° íŽ± íŽ² íŽ³ íŽ´ íŽµ íŽ¶ íŽ· íŽ¸ íŽ¹ íŽº íŽ» íŽ¼ íŽ½ íŽ¾ íŽ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‘€ í‘ í‘‚ í‘ƒ í‘„ í‘… í‘† í‘‡ í‘ˆ í‘‰ í‘Š í‘‹ í‘Œ í‘ í‘Ž í‘ í‘ í‘‘ í‘’ í‘“ í‘” í‘• í‘– í‘— í‘˜ í‘™ í‘š í‘› í‘œ í‘ í‘ž í‘Ÿ í‘  í‘¡ í‘¢ í‘£ í‘¤ í‘¥ í‘¦ í‘§ í‘¨ í‘© í‘ª í‘« í‘¬ í‘­ í‘® í‘¯ í‘° í‘± í‘² í‘³ í‘´ í‘µ í‘¶ í‘· í‘¸ í‘¹ í‘º í‘» í‘¼ í‘½ í‘¾ í‘¿ í’€ í’ í’‚ í’ƒ í’„ í’… í’† í’‡ í’ˆ í’‰ í’Š í’‹ í’Œ í’ í’Ž í’ í’ í’‘ í’’ í’“ í’” í’• í’– í’— í’˜ í’™ í’š í’› í’œ í’ í’ž í’Ÿ í’  í’¡ í’¢ í’£ í’¤ í’¥ í’¦ í’§ í’¨ í’© í’ª í’« í’¬ í’­ í’® í’¯ í’° í’± í’² í’³ í’´ í’µ í’¶ í’· í’¸ í’¹ í’º í’» í’¼ í’½ í’¾ í’¿ í“€ í“ í“‚ í“ƒ í“„ í“… í“† í“‡ í“ˆ í“‰ í“Š í“‹ í“Œ í“ í“Ž í“ í“ í“‘ í“’ í““ í“” í“• í“– í“— í“˜ í“™ í“š í“› í“œ í“ í“ž í“Ÿ í“  í“¡ í“¢ í“£ í“¤ í“¥ í“¦ í“§ í“¨ í“© í“ª í“« í“¬ í“­ í“® í“¯ í“° í“± í“² í“³ í“´ í“µ í“¶ í“· í“¸ í“¹ í“º í“» í“¼ í“½ í“¾ í“¿ í”€ í” í”‚ í”ƒ í”„ í”… í”† í”‡ í”ˆ í”‰ í”Š í”‹ í”Œ í” í”Ž í” í” í”‘ í”’ í”“ í”” í”• í”– í”— í”˜ í”™ í”š í”› í”œ í” í”ž í”Ÿ í”  í”¡ í”¢ í”£ í”¤ í”¥ í”¦ í”§ í”¨ í”© í”ª í”« í”¬ í”­ í”® í”¯ í”° í”± í”² í”³ í”´ í”µ í”¶ í”· í”¸ í”¹ í”º í”» í”¼ í”½ í”¾ í”¿ í•€ í• í•‚ í•ƒ í•„ í•… í•† í•‡ í•ˆ í•‰ í•Š í•‹ í•Œ í• í•Ž í• í• í•‘ í•’ í•“ í•” í•• í•– í•— í•˜ í•™ í•š í•› í•œ í• í•ž í•Ÿ í•  í•¡ í•¢ í•£ í•¤ í•¥ í•¦ í•§ í•¨ í•© í•ª í•« í•¬ í•­ í•® í•¯ í•° í•± í•² í•³ í•´ í•µ í•¶ í•· í•¸ í•¹ í•º í•» í•¼ í•½ í•¾ í•¿ í–€ í– í–‚ í–ƒ í–„ í–… í–† í–‡ í–ˆ í–‰ í–Š í–‹ í–Œ í– í–Ž í– í– í–‘ í–’ í–“ í–” í–• í–– í–— í–˜ í–™ í–š í–› í–œ í– í–ž í–Ÿ í–  í–¡ í–¢ í–£ í–¤ í–¥ í–¦ í–§ í–¨ í–© í–ª í–« í–¬ í–­ í–® í–¯ í–° í–± í–² í–³ í–´ í–µ í–¶ í–· í–¸ í–¹ í–º í–» í–¼ í–½ í–¾ í–¿ í—€ í— í—‚ í—ƒ í—„ í—… í—† í—‡ í—ˆ í—‰ í—Š í—‹ í—Œ í— í—Ž í— í— í—‘ í—’ í—“ í—” í—• í—– í—— í—˜ í—™ í—š í—› í—œ í— í—ž í—Ÿ í—  í—¡ í—¢ í—£ í—¤ í—¥ í—¦ í—§ í—¨ í—© í—ª í—« í—¬ í—­ í—® í—¯ í—° í—± í—² í—³ í—´ í—µ í—¶ í—· í—¸ í—¹ í—º í—» í—¼ í—½ í—¾ í—¿ í˜€ í˜ í˜‚ í˜ƒ í˜„ í˜… í˜† í˜‡ í˜ˆ í˜‰ í˜Š í˜‹ í˜Œ í˜ í˜Ž í˜ í˜ í˜‘ í˜’ í˜“ í˜” í˜• í˜– í˜— í˜˜ í˜™ í˜š í˜› í˜œ í˜ í˜ž í˜Ÿ í˜  í˜¡ í˜¢ í˜£ í˜¤ í˜¥ í˜¦ í˜§ í˜¨ í˜© í˜ª í˜« í˜¬ í˜­ í˜® í˜¯ í˜° í˜± í˜² í˜³ í˜´ í˜µ í˜¶ í˜· í˜¸ í˜¹ í˜º í˜» í˜¼ í˜½ í˜¾ í˜¿ í™€ í™ í™‚ í™ƒ í™„ í™… í™† í™‡ í™ˆ í™‰ í™Š í™‹ í™Œ í™ í™Ž í™ í™ í™‘ í™’ í™“ í™” í™• í™– í™— í™˜ í™™ í™š í™› í™œ í™ í™ž í™Ÿ í™  í™¡ í™¢ í™£ í™¤ í™¥ í™¦ í™§ í™¨ í™© í™ª í™« í™¬ í™­ í™® í™¯ í™° í™± í™² í™³ í™´ í™µ í™¶ í™· í™¸ í™¹ í™º í™» í™¼ í™½ í™¾ í™¿ íš€ íš íš‚ íšƒ íš„ íš… íš† íš‡ íšˆ íš‰ íšŠ íš‹ íšŒ íš íšŽ íš íš íš‘ íš’ íš“ íš” íš• íš– íš— íš˜ íš™ íšš íš› íšœ íš íšž íšŸ íš  íš¡ íš¢ íš£ íš¤ íš¥ íš¦ íš§ íš¨ íš© íšª íš« íš¬ íš­ íš® íš¯ íš° íš± íš² íš³ íš´ íšµ íš¶ íš· íš¸ íš¹ íšº íš» íš¼ íš½ íš¾ íš¿ í›€ í› í›‚ í›ƒ í›„ í›… í›† í›‡ í›ˆ í›‰ í›Š í›‹ í›Œ í› í›Ž í› í› í›‘ í›’ í›“ í›” í›• í›– í›— í›˜ í›™ í›š í›› í›œ í› í›ž í›Ÿ í›  í›¡ í›¢ í›£ í›¤ í›¥ í›¦ í›§ í›¨ í›© í›ª í›« í›¬ í›­ í›® í›¯ í›° í›± í›² í›³ í›´ í›µ í›¶ í›· í›¸ í›¹ í›º í›» í›¼ í›½ í›¾ í›¿ íœ€ íœ íœ‚ íœƒ íœ„ íœ… íœ† íœ‡ íœˆ íœ‰ íœŠ íœ‹ íœŒ íœ íœŽ íœ íœ íœ‘ íœ’ íœ“ íœ” íœ• íœ– íœ— íœ˜ íœ™ íœš íœ› íœœ íœ íœž íœŸ íœ  íœ¡ íœ¢ íœ£ íœ¤ íœ¥ íœ¦ íœ§ íœ¨ íœ© íœª íœ« íœ¬ íœ­ íœ® íœ¯ íœ° íœ± íœ² íœ³ íœ´ íœµ íœ¶ íœ· íœ¸ íœ¹ íœº íœ» íœ¼ íœ½ íœ¾ íœ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íž€ íž íž‚ ížƒ íž„ íž… íž† íž‡ ížˆ íž‰ ížŠ íž‹ ížŒ íž ížŽ íž íž íž‘ íž’ íž“ íž” íž• íž– íž— íž˜ íž™ ížš íž› ížœ íž ížž ížŸ íž  íž¡ íž¢ íž£",
-		3: "ä¸˜ ä¸² ä¹ƒ ä¹… ä¹– ä¹ ä¹ž ä¹« ä¹¾ äº‚ äº˜ äº¤ äº¬ ä»‡ ä»Š ä»‹ ä»¶ ä»· ä¼ ä¼‹ ä¼Ž ä¼½ ä½³ ä½¶ ä¾ƒ ä¾† ä¾Š ä¾› ä¿‚ ä¿“ ä¿± å€‹ å€ž å€¦ å€¨ å‡ åˆ å¥ å‚€ å‚‘ å‚¾ åƒ… åƒ‘ åƒ¹ å„† å„‰ å„º å…‰ å…‹ å…¢ å…§ å…¬ å…± å…¶ å…· å…¼ å†€ å†  å‡± åˆŠ åˆ® åˆ¸ åˆ» å‰‹ å‰› åŠ‡ åŠ åŠ’ åŠŸ åŠ  åŠ¤ åŠ« å‹ å‹ å‹˜ å‹¤ å‹¸ å‹» å‹¾ åŒ¡ åŒ£ å€ å— å¦ å´ åµ å· å¿ åŽ¥ åŽ» åŠ å£ å¥ å© å« å¯ å„ å‰ å› å‘Š å‘± å‘µ å’Ž å’¬ å“¥ å“­ å•“ å–€ å–‡ å– å–« å–¬ å—œ å˜‰ å˜” å™¨ å›Š å›° å›º åœˆ åœ‹ åœ­ åœ» å‡ åŽ å‘ å¤ å° åµ åž¢ åŸº åŸ¼ å € å … å ˆ å ª å º å¡Š å¡ å¢ƒ å¢¾ å£™ å£ž å¤” å¥‡ å¥ˆ å¥Ž å¥‘ å¥¸ å¦“ å¦— å§‘ å§œ å§¦ å¨˜ å¨œ å« å¬Œ å­” å­£ å­¤ å® å®˜ å®¢ å®® å®¶ å¯„ å¯‡ å¯¡ å¯¬ å°» å±€ å±… å±† å±ˆ å² å²¡ å²¬ å´Ž å´‘ å´— åµŒ åµ å¶‡ å¶  å·¥ å·§ å·¨ å·± å·¾ å¹² å¹¹ å¹¾ åºš åº« åº· å»Š å» å»“ å»£ å»º å¼“ å¼º å½Š å¾‘ å¿Œ æ€¥ æ€ª æ€¯ æ æ æª æ­ æ‚¸ æ„† æ„Ÿ æ„§ æ„· æ„¾ æ…Š æ…£ æ…¤ æ…¨ æ…¶ æ…· æ†© æ†¬ æ†¾ æ‡ƒ æ‡‡ æ‡¦ æ‡¶ æ‡¼ æˆˆ æˆ’ æˆŸ æˆ¡ æ‰± æŠ€ æŠ‰ æ‹‰ æ‹ æ‹ æ‹’ æ‹˜ æ‹¬ æ‹® æ‹± æ‹³ æ‹· æ‹¿ æ æ® æ² æº æŽ˜ æŽ› æŽ§ æ€ æ† æ­ æ“Š æ“Ž æ“’ æ“š æ“§ æ”ª æ”· æ”¹ æ”» æ•… æ•Ž æ•‘ æ•¢ æ•¬ æ•² æ–› æ–¤ æ—— æ—£ æ˜† æ˜‘ æ™¯ æ™· æš‡ æš– æš  æš» æ›  æ›² æ›´ æ›· æœ— æœž æœŸ æœº æ† æž æ° æž æžœ æž¯ æž¶ æž¸ æŸ‘ æŸ© æŸ¬ æŸ¯ æ ¡ æ ¹ æ ¼ æ¡€ æ¡‚ æ¡” æ¡¿ æ¢ æ¢— æ¢° æ¢± æ£„ æ£‹ æ£ æ£˜ æ£¨ æ£º æ¥— æ¥  æ¥µ æ§ æ§‹ æ§ æ§¨ æ§ª æ§» æ§¿ æ¨‚ æ©„ æ©‹ æ©˜ æ©Ÿ æª„ æªŽ æª¢ æ«ƒ æ¬„ æ¬Š æ¬º æ¬¾ æ­Œ æ­ æ­¸ æ®¼ æ¯† æ¯¬ æ°£ æ±‚ æ±Ÿ æ±¨ æ±² æ±º æ±½ æ²‚ æ²½ æ´› æ´¸ æµª æ¶‡ æ·ƒ æ·‡ æ¸› æ¸  æ¸´ æ¹³ æº æºª æ»‘ æ»¾ æ¼‘ æ½” æ½° æ¾— æ¿€ æ¿« çŒ ç¸ ç‚… ç‚š ç‚¬ çƒ™ çƒ± ç…– çˆ› ç‰½ çŠ¬ ç‹‚ ç‹— ç‹¡ ç‹¼ ç— çŽ– çŽ˜ ç‚ ç ç– ç™ çž çª çƒ ç¦ ç¨ çª ç¯ ç´ ç‘¾ ç’‚ ç’Ÿ ç’£ ç’¥ ç“Š ç“˜ ç“œ ç”„ ç”˜ ç”² ç”· ç•‡ ç•Œ ç•¸ ç•º ç•¿ ç–† ç–¥ ç–³ ç—‚ ç—™ ç—¼ ç™Ž ç™© ç™¸ çš† çšŽ çš ç›– ç›£ çœ‹ çœ· ç¾ çž° çž¼ çž¿ çŸœ çŸ© çŸ¯ ç¡… ç¡¬ ç¢ ç¢£ ç£Ž ç£¬ ç£¯ ç£µ ç¥ ç¥‡ ç¥ˆ ç¥› ç¥º ç¦ ç¦½ ç§‘ ç¨ˆ ç¨¼ ç¨½ ç¨¿ ç©€ ç©¶ ç©¹ ç©º çª˜ çªŸ çª® çªº ç«… ç«Ÿ ç«­ ç«¶ ç«¿ ç­‹ ç­ ç­  ç®‡ ç®• ç® ç®¡ ç°¡ ç²³ ç³  ç³» ç³¾ ç´€ ç´ ç´˜ ç´š ç´º çµ… çµ çµž çµ¦ çµ³ çµ¹ çµ¿ ç¶“ ç¶± ç¶º ç·Š ç¹« ç¹­ ç¹¼ ç¼º ç½ ç½« ç¾… ç¾ˆ ç¾Œ ç¾” ç¾¤ ç¾¹ ç¿¹ è€ƒ è€† è€‰ è€• è€­ è€¿ è‚Œ è‚ è‚¡ è‚© è‚¯ è‚± èƒ› èƒ± è„š è„› è…” è…± è†ˆ è† è†  è‡˜ è‡¼ èˆ… èˆŠ èˆ¡ è‰® è‰± èŠŽ èŠ¥ èŠ© èŠ¹ è‹› è‹Ÿ è‹¦ è‹½ èŒ„ èŽ– è… èŠ èŒ è“ è« è° è½ è‘› è‘µ è“‹ è•Ž è•¨ è–‘ è— è— è—¿ è˜­ è˜¿ è™” èš£ è›Ÿ èŽ èžº è Ÿ è ± è¡— è¡¢ è¡² è¡¾ è¡¿ è¢ˆ è¢ž è¢´ è£™ è£¸ è¤ è¥ è¥Ÿ è¥¤ è¦‹ è¦ è¦¡ è¦² è¦º è§€ è§’ è¨ˆ è¨˜ è¨£ è¨¶ è©­ èª‡ èª¡ èª¥ èª² è«« è«¾ è¬™ è¬› è¬³ è¬¹ è­ è­¦ è­´ è°· è°¿ è±ˆ è²¢ è²« è²´ è³ˆ è³¼ èµ³ èµ· è· è· è·¨ è¸ž è¹‡ è¹¶ èº¬ è»€ è»Š è»Œ è» è»» è¼ƒ è¼• è½Ž è½Ÿ è¾œ è¿‘ è¿¦ è¿² é€‚ é€‘ é€• é€µ éŽ é£ é½ é‚ é‚£ é‚¯ é‚± éƒŠ éƒŽ éƒ¡ éƒ­ é…ª é†µ é‡‘ éˆ éˆž é‰€ é‰… é‰— é‰¤ éŠ¶ é‹¸ é‹¼ éŒ¡ éŒ¤ éŒ¦ éŒ® é‹ éµ éŽŒ éŽ§ é¡ é‘‘ é‘’ é‘› é–‹ é–“ é–˜ é–£ é–¨ é—• é—œ é™ éšŽ éš” éš™ é›‡ é›£ éž éž  éž¨ éž« é ƒ é ¸ é¡† é¡§ é£¢ é¤ƒ é¤¨ é¥‰ é¥‹ é¥‘ é§’ é§• é§± é¨Ž é¨ é¨« é©… é©• é©š é©¥ éª¨ é«˜ é¬¼ é­ é®« é¯¤ é¯¨ é±‡ é³© éµ‘ éµ  é·„ é·— é¸ž éº’ éº´ é»” é¼“ é¾• é¾œ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"kok": {
-		0: "à¤¼ à¥¦ à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤•à¤¼ à¤– à¤–à¤¼ à¤— à¤—à¤¼ à¤˜ à¤™ à¤š à¤› à¤œ à¤œà¤¼ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤¢à¤¼ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤«à¤¼ à¤¬ à¤­ à¤® à¤¯ à¤¯à¤¼ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-	},
-	"ksb": {
-		0: "a b c d e f g h i j k l m n o p s t u v w y z",
-		3: "q r x",
-		5: "A B C D E F G H I J K L M N O P S T U V W Y Z",
-	},
-	"ksf": {
-		0: "a Ã¡ b c d e Ã© Ç ÇÌ É› É›Ì f g h i Ã­ j k l m n Å‹ o Ã³ É” É”Ì p r s t u Ãº v w y z",
-		3: "q x",
-		5: "A B C D E ÆŽ Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"ksh": {
-		0: "a Ã¥ Ã¤ Ã¦ b c d e Ã« Ä— f g h i j k l m n o Ã¶ Å“ p q r s t u Å¯ Ã¼ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ ÄŸ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ä³ Ä± Å‚ Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-	},
-	"ku": {
-		0: "Ø¦ Ø§ Ø¨ Ù¾ Øª Ø¬ Ú† Ø­ Ø® Ø¯ Ø± Ø² Ú• Ú˜ Ø³ Ø´ Ø¹ Øº Ù Ú¤ Ù‚ Ú© Ú¯ Ù„ Úµ Ù… Ù† Ù‡ Ú¾ Ùˆ Û† ÛŒ ÛŽ",
-		3: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ø¡ Ø¢ Ø£ Ø¤ Ø¥ Ø¦ Ø§ Ø¨ Ø© Ø« Ø° Øµ Ø¶ Ø· Ø¸ Ùƒ Ù‰ ÙŠ",
-	},
-	"ku_Latn": {
-		0: "a b c Ã§ d e Ãª f g h i Ã® j k l m n o p q r s ÅŸ t u Ã» v w x y z",
-	},
-	"kw": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ky": {
-		0: "Ð° Ð± Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ ÓŠ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ… Ñ‡ Ñˆ ÑŠ Ñ‹ Ñ ÑŽ Ñ",
-		3: "Ð² Ñ„ Ñ† Ñ‰ ÑŒ",
-	},
-	"lag": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ É¨ j k l m n o Ã³ p q r s t u Ãº Ê‰ v w x y z",
-		5: "A B C D E F G H I Æ— J K L M N O P Q R S T U É„ V W X Y Z",
-	},
-	"lg": {
-		0: "a b c d e f g i j k l m n ny Å‹ o p r s t u v w y z",
-		3: "h q x",
-		5: "A B C D E F G I J K L M N ÅŠ O P R S T U V W Y Z",
-	},
-	"ln": {
-		0: "a Ã¡ Ã¢ ÇŽ b c d e Ã© Ãª Ä› É› É›Ì É›Ì‚ É›ÌŒ f g gb h i Ã­ Ã® Ç k l m mb mp n nd ng nk ns nt ny nz o Ã³ Ã´ Ç’ É” É”Ì É”Ì‚ É”ÌŒ p r s t u Ãº v w y z",
-		3: "j q x",
-		5: "A B C D E Æ F G Gb H I K L M Mb Mp N Nd Ng Nk Ns Nt Ny Nz O Æ† P R S T U V W Y Z",
-	},
-	"lo": {
-		0: "à»ˆ à»‰ à»Š à»‹ à»Œ à» à»† àº àº‚ àº„ àº‡ àºˆ àºª àºŠ àº àº” àº• àº– àº— àº™ àºš àº› àºœ àº àºž àºŸ àº¡ àº¢ àº£ àº¥ àº§ àº« à»œ à» àº­ àº® àº¯ àº° àº± àº² àº³ àº´ àºµ àº¶ àº· àº¸ àº¹ àº» àº¼ àº½ à»€ à» à»‚ à»ƒ à»„",
-		3: "\u200b à» à»‘ à»’ à»“ à»” à»• à»– à»— à»˜ à»™",
-	},
-	"lt": {
-		0: "a Ä… b c Ä d e Ä™ Ä— f g h i Ä¯ y j k l m n o p r s Å¡ t u Å³ Å« v z Å¾",
-		3: "iÌ‡Ì iÌ‡Ì€ iÌ‡Ìƒ iÌ‡ Ä¯Ì‡ jÌ‡ q w x",
-		4: "a Ä… b c Ä d e Ä™ Ä— f g h i Ä¯ y j k l m n o p r s Å¡ t u Å³ Å« v z Å¾",
-		5: "A Ä„ B C ÄŒ D E Ä˜ Ä– F G H I Ä® Y J K L M N O P R S Å  T U Å² Åª V Z Å½",
-	},
-	"lu": {
-		0: "a Ã¡ Ã  b c d e Ã© Ã¨ É› É›Ì É›Ì€ f h i Ã­ Ã¬ j k l m n ng ny o Ã³ Ã² É” É”Ì É”Ì€ p ph q s shi t u Ãº Ã¹ v w y z",
-		3: "g r x",
-		5: "A B C D E F H I J K L M N O P Q S T U V W Y Z",
-	},
-	"luo": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y",
-		3: "q x z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y",
-	},
-	"luy": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"lv": {
-		0: "a Ä b c Ä d e Ä“ f g Ä£ h i Ä« j k Ä· l Ä¼ m n Å† o p r s Å¡ t u Å« v z Å¾",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ â€š \" â€œ â€ â€ž ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "q w x y",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C ÄŒ D E F G Ä¢ H I J K Ä¶ L Ä» M N Å… O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"mas": {
-		0: "a Ã¡ Ã  Ã¢ Ä b c d e Ã© Ã¨ Ãª Ä“ É› g h i Ã­ Ã¬ Ã® Ä« É¨ j k l m n ny Å‹ o Ã³ Ã² Ã´ Å É” p r rr s sh t u Ãº Ã¹ Ã» Å« Ê‰ Ê‰Ì w wu y yi",
-		3: "f q v x z",
-		5: "A B C D E Æ G H I Æ— J K L M N ÅŠ O Æ† P R S T U É„ W Y",
-	},
-	"mer": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"mfe": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z",
-	},
-	"mg": {
-		0: "a Ã  Ã¢ b d e Ã© Ã¨ Ãª Ã« f g h i Ã¬ Ã® Ã¯ j k l m n Ã± o Ã´ p r s t v y z",
-		3: "c q u w x",
-		5: "A B D E F G H I J K L M N O P R S T V Y Z",
-	},
-	"mgh": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"mk": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ñ“ Ðµ Ð¶ Ð· Ñ• Ð¸ Ñ˜ Ðº Ð» Ñ™ Ð¼ Ð½ Ñš Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñœ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ ÑŸ Ñˆ",
-		3: "Ñ Ñ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ð” Ðƒ Ð• Ð– Ð— Ð… Ð˜ Ðˆ Ðš Ð› Ð‰ Ðœ Ð ÐŠ Ðž ÐŸ Ð  Ð¡ Ð¢ ÐŒ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð Ð¨",
-	},
-	"ml": {
-		0: "\u200c \u200d à´ƒ à´… à´† à´‡ à´ˆ à´‰ à´Š à´‹ àµ  à´Œ àµ¡ à´Ž à´ à´ à´’ à´“ à´” à´• à´– à´— à´˜ à´™ à´š à´› à´œ à´ à´ž à´Ÿ à´  à´¡ à´¢ à´£ à´¤ à´¥ à´¦ à´§ à´¨ à´ª à´« à´¬ à´­ à´® à´‚ à´¯ à´° à´² à´µ à´¶ à´· à´¸ à´¹ à´³ à´´ à´± à´¾ à´¿ àµ€ àµ àµ‚ àµƒ àµ† àµ‡ àµˆ àµŠ àµ‹ àµ— àµŒ àµ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"mn": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		3: "Ó™ Ò— ÓŠ Ò»",
-	},
-	"mn_Mong": {
-		0: "á  á ‘ á ’ á “ á ” á • á – á — á ˜ á ™ á   á ¡ á ¢ á £ á ¤ á ¥ á ¦ á § á ¨ á © á ª á « á ¬ á ­ á ® á ¯ á ° á ± á ² á ³ á ´ á µ á ¶ á · á ¸ á ¹ á º á » á ¼ á ½ á ¾ á ¿ á¡€ á¡ á¡‚",
-	},
-	"mr": {
-		0: "à¤¼ à¥¦ à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		4: "à¤° à¥",
-		5: "\u200d à¥ à¤‚ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¥… à¥",
-	},
-	"ms": {
-		0: "a ai au b c d dz e f g h i j k kh l m n ng ngg ny o p q r s sy t ts u ua v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"mt": {
-		0: "a Ã  b Ä‹ d e Ã¨ f Ä¡ g gÄ§ h Ä§ i Ã¬ j k l m n o Ã² p q r s t u Ã¹ v w x Å¼ z",
-		3: "c y",
-	},
-	"mua": {
-		0: "a Ã£ b É“ c d É— e Ã« Ç f g h i Ä© j k l m n Å‹ o Ãµ p r s t u v á¹½ w y z",
-		3: "q x",
-		5: "A B Æ C D ÆŠ E ÆŽ F G H I J K L M N ÅŠ O P R S T U V W Y Z",
-	},
-	"my": {
-		0: "á€€ á€ á€‚ á€ƒ á€„ á€… á€† á€‡ á€ˆ á€‰ á€Š á€‹ á€Œ á€ á€Ž á€ á€ á€‘ á€’ á€“ á€” á€• á€– á€— á€˜ á€™ á€š á€› á€œ á€ á€ž á€Ÿ á€  á€¡ á€£ á€¤ á€¥ á€¦ á€§ á€© á€ª á€¬ á€« á€­ á€® á€¯ á€° á€± á€² á€¶ á€¿ á€» á€¼ á€½ á€¾ á€¹ á€º á€· á€¸",
-		3: "á á‘ á€¨ á€¢ á’ á“ á” á• á– á— á˜ á™",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"naq": {
-		0: "a Ã¢ b c d e f g h i Ã® k m n o Ã´ p q r s t u Ã» w x y z Ç€ Ç Ç‚ Çƒ",
-		3: "j l v",
-		5: "A B C D E F G H I K M N O P Q R S T U W X Y Z",
-	},
-	"nb": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o Ã³ Ã² Ã´ p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		3: "Ã¡ ÇŽ Ã£ Ä Ã§ Ä‘ Ã¨ Ãª Ã­ Å„ Ã± Å‹ Å¡ Å§ Ã¼ Å¾ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"nd": {
-		0: "a b c d e f g h i j k l m n o p q s t u v w x y z",
-		3: "r",
-		5: "A B C D E F G H I J K L M N O P Q S T U V W X Y Z",
-	},
-	"ne": {
-		0: "à¤¼ à¤ à¤‚ à¤ƒ à¥ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-	},
-	"nl": {
-		0: "a Ã¡ Ã¤ b c d e Ã© Ã« f g h i Ã­ Ã¯ ij j k l m n o Ã³ Ã¶ p q r s t u Ãº Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¥ Ã£ Ã§ Ã± Ã´",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"nmg": {
-		0: "a Ã¡ Äƒ Ã¢ Ã¤ Ä b É“ c d e Ã© Ä• Ãª Ä“ Ç ÇÌ ÇÌ† ÇÌ‚ ÇÌ„ É› É›Ì É›Ì† É›Ì‚ É›Ì„ f g h i Ã­ Ä­ Ã® Ã¯ Ä« j k l m n Å„ Å‹ o Ã³ Å Ã´ Ã¶ Å É” É”Ì É”Ì† É”Ì‚ É”Ì„ p r Å• s t u Ãº Å­ Ã» Å« v w y",
-		3: "q x z",
-		5: "A B Æ C D E ÆŽ Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y",
-	},
-	"nn": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o Ã³ Ã² Ã´ p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		3: "Ã¡ ÇŽ Ä Ã§ Ä‘ Ã¨ Ãª Å„ Ã± Å‹ Å¡ Å§ Ã¼ Å¾ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"nso": {
-		0: "a b d e Ãª f g h i j k l m n o Ã´ p r s Å¡ t u w x y",
-		3: "c q v z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"nus": {
-		0: "a Ã¤ aÌ± b c d e Ã« eÌ± É› É›Ìˆ É›Ì± É›Ì±Ìˆ f g É£ h i Ã¯ iÌ± j k l m n Å‹ o Ã¶ oÌ± É” É”Ìˆ É”Ì± p q r s t u v w x y z",
-		5: "A B C D E Æ F G Æ” H I J K L M N ÅŠ O Æ† P Q R S T U V W X Y Z",
-	},
-	"nyn": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"om": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"or": {
-		0: "à¬¼ à¬… à¬† à¬‡ à¬ˆ à¬‰ à¬Š à¬‹ à¬ à¬ à¬“ à¬” à¬ à¬‚ à¬ƒ à¬• à¬– à¬— à¬˜ à¬™ à¬š à¬› à¬œ à¬ à¬ž à¬Ÿ à¬  à¬¡ à¬¡à¬¼ à¬¢ à¬¢à¬¼ à¬£ à¬¤ à¬¥ à¬¦ à¬§ à¬¨ à¬ª à¬« à¬¬ à¬­ à¬® à¬¯ à­Ÿ à¬° à¬² à¬³ à¬µ à­± à¬¶ à¬· à¬¸ à¬¹ à¬¾ à¬¿ à­€ à­ à­‚ à­ƒ à­‡ à­ˆ à­‹ à­Œ à­",
-		3: "\u200c \u200d",
-	},
-	"pa": {
-		0: "à©± à©° à¨¼ à©¦ à©§ à©¨ à©© à©ª à©« à©¬ à©­ à©® à©¯ à©´ à©³ à¨‰ à¨Š à¨“ à¨… à¨† à¨ à¨” à©² à¨‡ à¨ˆ à¨ à¨¸ à¨¸à¨¼ à¨¹ à¨• à¨– à¨–à¨¼ à¨— à¨—à¨¼ à¨˜ à¨™ à¨š à¨› à¨œ à¨œà¨¼ à¨ à¨ž à¨Ÿ à¨  à¨¡ à¨¢ à¨£ à¨¤ à¨¥ à¨¦ à¨§ à¨¨ à¨ª à¨« à¨«à¨¼ à¨¬ à¨­ à¨® à¨¯ à¨° à¨² à¨µ à©œ à© à¨¾ à¨¿ à©€ à© à©‚ à©‡ à©ˆ à©‹ à©Œ",
-		3: "\u200c \u200d à¨ƒ à¨‚ à¨ à¨²à¨¼",
-	},
-	"pa_Arab": {
-		0: "Ù Ø¡ Ø¢ Ø¤ Ø¦ Ø§ Ø¨ Ù¾ Øª Ø« Ù¹ Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Úˆ Ø± Ø² Ú‘ Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ù‡ Ú¾ Û Ùˆ ÛŒ Û’",
-		3: "Ø£ Ù» Ø© Ùº Ù¼ Ù½",
-	},
-	"pl": {
-		0: "a Ä… b c Ä‡ d e Ä™ f g h i j k l Å‚ m n Å„ o Ã³ p r s Å› t u w y z Åº Å¼",
-		3: "q v x",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ps": {
-		0: "ÙŽ Ù Ù Ù‹ Ù ÙŒ Ù‘ Ù’ Ù” Ù° Ø¢ Ø§ Ø£ Ø¡ Ø¨ Ù¾ Øª Ù¼ Ø« Ø¬ Ú Ú† Ú… Ø­ Ø® Ø¯ Ú‰ Ø° Ø± Ú“ Ø² Ú˜ Ú– Ø³ Ø´ Úš Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú« Ù„ Ù… Ù† Ú¼ Ù‡ Ø© Ùˆ Ø¤ ÛŒ ÙŠ Û Û Ø¦",
-		3: "\u200c \u200d",
-	},
-	"pt": {
-		0: "a Ã¡ Ã  Ã¢ Ã£ b c Ã§ d e Ã© Ãª f g h i Ã­ j k l m n o Ã³ Ã² Ã´ Ãµ p q r s t u Ãº v w x y z",
-		3: "Äƒ Ã¥ Ã¤ Ä Ã¦ Ã¨ Ä• Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Å Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"pt_PT": {
-		3: "Âª Äƒ Ã¥ Ã¤ Ä Ã¦ Ã¨ Ä• Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Âº Å Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-	},
-	"rn": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ro": {
-		0: "a Äƒ Ã¢ b c d e f g h i Ã® j k l m n o p r s È™ t È› u v x z",
-		3: "Ã¡ Ã  Ã¥ Ã¤ Ã§ Ã© Ã¨ Ãª Ã« Ã± Ã¶ q ÅŸ Å£ Ã¼ w y",
-		4: "a Äƒ Ã¢ b c d e f g h i Ã® j k l m n o p q r s È™ t È› u v w x y z",
-		5: "A Ä‚ Ã‚ B C D E F G H I ÃŽ J K L M N O P Q R S È˜ T Èš U V W X Y Z",
-	},
-	"rof": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"root": {
-		2: "- , ; : ! ? . ( ) [ ] { }",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"ru": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€š \" â€œ â€ž Â« Â» ( ) [ ] { } @ * / & # Â§",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ð” Ð• Ð Ð– Ð— Ð˜ Ð™ Ðš Ð› Ðœ Ð Ðž ÐŸ Ð  Ð¡ Ð¢ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð¨ Ð© Ð« Ð­ Ð® Ð¯",
-	},
-	"rw": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"rwk": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"sah": {
-		0: "Ð° Ð± Ð³ Ò• Ð´ Ð´ÑŒ Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð½ÑŒ Ò¥ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ… Ò» Ñ‡ Ñ‹ Ñ",
-		3: "Ð² Ðµ Ñ‘ Ð¶ Ð· Ñ„ Ñ† Ñˆ Ñ‰ ÑŠ ÑŒ ÑŽ Ñ",
-		5: "Ð Ð‘ Ð“ Ò” Ð” Ð”ÑŒ Ð˜ Ð™ Ðš Ð› Ðœ Ð ÐÑŒ Ò¤ Ðž Ó¨ ÐŸ Ð  Ð¡ Ð¢ Ð£ Ò® Ð¥ Òº Ð§ Ð« Ð­",
-	},
-	"saq": {
-		0: "a b c d e g h i j k l m n o p r s t u v w y",
-		3: "f q x z",
-		5: "A B C D E G H I J K L M N O P R S T U V W Y",
-	},
-	"sbp": {
-		0: "a b c d e f g h i j k l m n o p s t u v w y",
-		3: "q r x z",
-		5: "A B C D E F G H I J K L M N O P S T U V W Y",
-	},
-	"se": {
-		0: "a Ã¡ b c Ä d Ä‘ e f g h i j k l m n Å‹ o p r s Å¡ t Å§ u v z Å¾",
-		3: "Ã  Ã¥ Ã¤ Ã£ Ã¦ Ã§ Ã© Ã¨ Ã­ Å„ Ã± Ã³ Ã² Ã¶ Ã¸ q Ãº Ã¼ w x y",
-	},
-	"seh": {
-		0: "a Ã¡ Ã  Ã¢ Ã£ b c Ã§ d e Ã© Ãª f g h i Ã­ j k l m n o Ã³ Ã² Ã´ Ãµ p q r s t u Ãº v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ses": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A Ãƒ B C D E áº¼ F G H I J K L M N Æ ÅŠ O Ã• P Q R S Å  T U W X Y Z Å½",
-	},
-	"sg": {
-		0: "a Ã¢ Ã¤ b d e Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Ã¶ p r s t u Ã¹ Ã» Ã¼ v w y z",
-		3: "c q x",
-		5: "A B D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"shi": {
-		0: "a b c d á¸ e É› f g gÊ· É£ h á¸¥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z",
-		3: "o p v",
-		5: "A B C D á¸Œ E Æ F G GÊ· Æ” H á¸¤ I J K KÊ· L M N Q R á¹š S á¹¢ T á¹¬ U W X Y Z",
-	},
-	"shi_Tfng": {
-		0: "â´° â´± â´³ â´³âµ¯ â´· â´¹ â´» â´¼ â´½ â´½âµ¯ âµ€ âµƒ âµ„ âµ… âµ‡ âµ‰ âµŠ âµ âµŽ âµ âµ“ âµ” âµ• âµ– âµ™ âµš âµ› âµœ âµŸ âµ¡ âµ¢ âµ£ âµ¥",
-		5: "â´° â´± â´³ â´· â´¹ â´» â´¼ â´½ âµ€ âµƒ âµ„ âµ… âµ‡ âµ‰ âµŠ âµ âµŽ âµ âµ“ âµ” âµ• âµ– âµ™ âµš âµ› âµœ âµŸ âµ¡ âµ¢ âµ£ âµ¥",
-	},
-	"si": {
-		0: "à¶… à¶† à¶‡ à¶ˆ à¶‰ à¶Š à¶‹ à¶Œ à¶ à¶‘ à¶’ à¶“ à¶” à¶• à¶– à¶‚ à¶ƒ à¶š à¶› à¶œ à¶ à¶ž à¶Ÿ à¶  à¶¡ à¶¢ à¶£ à¶¥ à¶¤ à¶§ à¶¨ à¶© à¶ª à¶« à¶¬ à¶­ à¶® à¶¯ à¶° à¶± à¶³ à¶´ à¶µ à¶¶ à¶· à¶¸ à¶¹ à¶º à¶» à¶½ à·€ à· à·‚ à·ƒ à·„ à·… à·† à· à· à·‘ à·’ à·“ à·” à·– à·˜ à·² à·Ÿ à·™ à·š à·› à·œ à· à·ž à·Š",
-		3: "\u200b \u200c \u200d à¶Ž à¶ à¶ à¶¦ à·³",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "à¶… à¶† à¶‡ à¶ˆ à¶‰ à¶Š à¶‹ à¶Œ à¶ à¶‘ à¶’ à¶“ à¶” à¶• à¶– à¶š à¶› à¶œ à¶ à¶ž à¶Ÿ à¶  à¶¡ à¶¢ à¶£ à¶¥ à¶¤ à¶§ à¶¨ à¶© à¶ª à¶« à¶¬ à¶­ à¶® à¶¯ à¶° à¶± à¶³ à¶´ à¶µ à¶¶ à¶· à¶¸ à¶¹ à¶º à¶» à¶½ à·€ à· à·‚ à·ƒ à·„ à·… à·†",
-	},
-	"sk": {
-		0: "a Ã¡ Ã¤ b c Ä d Ä e Ã© f g h ch i Ã­ j k l Äº Ä¾ m n Åˆ o Ã³ Ã´ p q r Å• s Å¡ t Å¥ u Ãº v w x y Ã½ z Å¾",
-	},
-	"sl": {
-		0: "a b c Ä d e f g h i j k l m n o p r s Å¡ t u v z Å¾",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ä Ã¦ Ã§ Ä‡ Ä‘ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ q Ãº Ã¹ Å­ Ã» Ã¼ Å« w x y Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C ÄŒ Ä† D Ä E F G H I J K L M N O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"sn": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"so": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"sq": {
-		0: "a b c Ã§ d dh e Ã« f g gj h i j k l ll m n nj o p q r rr s sh t th u v x xh y z zh",
-		3: "w",
-	},
-	"sr": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ñ’ Ðµ Ð¶ Ð· Ð¸ Ñ˜ Ðº Ð» Ñ™ Ð¼ Ð½ Ñš Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñ› Ñƒ Ñ„ Ñ… Ñ† Ñ‡ ÑŸ Ñˆ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"sr_Latn": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-	},
-	"ss": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"st": {
-		0: "a b d e f g h i j k l m n o p q r s t u w y",
-		3: "c v x z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"sv": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o p q r s t u v w x y z Ã¥ Ã¤ Ã¶",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã¢ Ã£ Ä Ã§ Ã« Ã­ Ã® Ã¯ Ä« Ã± Ã³ Ãº Ã¿ Ã¼ Ã¦ Ã¸",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ã„ Ã–",
-	},
-	"sv_FI": {
-		3: "Ã£ Ã§ Ã« Ã­ Ã± Ã³ Å¡ Ã¿ Ã¼ Å¾",
-	},
-	"sw": {
-		0: "a b ch d e f g h i j k l m n o p r s t u v w y z",
-		3: "c q x",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"swc": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"ta": {
-		0: "à®… à®† à®‡ à®ˆ à®‰ à®Š à®Ž à® à® à®’ à®“ à®” à®ƒ à®• à®™ à®š à®ž à®Ÿ à®£ à®¤ à®¨ à®ª à®® à®¯ à®° à®² à®µ à®´ à®³ à®± à®© à®œ à®· à®¸ à®¹ à®¾ à®¿ à¯€ à¯ à¯‚ à¯† à¯‡ à¯ˆ à¯Š à¯‹ à¯Œ à¯",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"te": {
-		0: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Œ à±¡ à°Ž à° à° à°’ à°“ à°” à° à°‚ à°ƒ à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³ à°¾ à°¿ à±€ à± à±‚ à±ƒ à±„ à±† à±‡ à±ˆ à±Š à±‹ à±Œ à± à±• à±–",
-		3: "\u200c \u200d à±¦ à±§ à±¨ à±© à±ª à±« à±¬ à±­ à±® à±¯",
-		5: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Ž à° à° à°’ à°“ à°” à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³",
-	},
-	"teo": {
-		0: "a b c d e g h i j k l m n o p r s t u v w x y",
-		3: "f q z",
-		5: "A B C D E G H I J K L M N O P R S T U V W X Y",
-	},
-	"tg": {
-		0: "Ð° Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ó£ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ó¯ Ñ„ Ñ… Ò³ Ñ‡ Ò· Ñˆ ÑŠ Ñ ÑŽ Ñ",
-		3: "Ñ† Ñ‰ Ñ‹ ÑŒ",
-	},
-	"th": {
-		0: "à¹Ž à¹Œ à¹‡ à¹ˆ à¹‰ à¹Š à¹‹ à¸¯ à¹† à¸ à¸‚ à¸ƒ à¸„ à¸… à¸† à¸‡ à¸ˆ à¸‰ à¸Š à¸‹ à¸Œ à¸ à¸Ž à¸ à¸ à¸‘ à¸’ à¸“ à¸” à¸• à¸– à¸— à¸˜ à¸™ à¸š à¸› à¸œ à¸ à¸ž à¸Ÿ à¸  à¸¡ à¸¢ à¸£ à¸¤ à¸¥ à¸¦ à¸§ à¸¨ à¸© à¸ª à¸« à¸¬ à¸­ à¸® à¹ à¸° à¸± à¸² à¹… à¸³ à¸´ à¸µ à¸¶ à¸· à¸¸ à¸¹ à¹€ à¹ à¹‚ à¹ƒ à¹„ à¸º",
-		3: "\u200b",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ti": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹° á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á—",
-		3: "áŽ áŽ áŽ‘ áŽ’ áŽ“ áŽ” áŽ• áŽ– áŽ— áŽ˜ áŽ™ áˆ‡ â¶€ áŽ€ áŽ€ áŽ áŽ‚ áŽƒ â¶ â¶ â¶‚ â¶ƒ â¶„ á‰‡ áŽ„ áŽ„ áŽ… áŽ† áŽ‡ â¶… â¶… â¶† â¶‡ áŠ‡ â¶ˆ â¶ˆ â¶‰ â¶Š áŠ¯ á‹ â¶‹ á‹¯ â¶Œ á‹¸ á‹¸ á‹¹ á‹º á‹» á‹¼ á‹½ á‹¾ á‹¿ â¶ â¶Ž áŒ áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– â¶ â¶ â¶ â¶‘ á‡ áŽˆ áŽˆ áŽ‰ áŽŠ áŽ‹ áŽŒ áŽ áŽŽ áŽ â¶’ á˜ á˜ á™ áš â¶  â¶  â¶¡ â¶¢ â¶£ â¶¤ â¶¥ â¶¦ â¶¨ â¶¨ â¶© â¶ª â¶« â¶¬ â¶­ â¶® â¶° â¶° â¶± â¶² â¶³ â¶´ â¶µ â¶¶ â¶¸ â¶¸ â¶¹ â¶º â¶» â¶¼ â¶½ â¶¾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž",
-		5: "áˆ€ áˆˆ áˆ áˆ˜ áˆ  áˆ¨ áˆ° áˆ¸ á‰€ á‰ˆ á‰ á‰˜ á‰  á‰¨ á‰° á‰¸ áŠ€ áŠˆ áŠ áŠ˜ áŠ  áŠ¨ áŠ° áŠ¸ á‹€ á‹ˆ á‹ á‹˜ á‹  á‹¨ á‹° áŒ€ áŒˆ áŒ áŒ  áŒ¨ áŒ° áŒ¸ á€ áˆ á",
-	},
-	"tn": {
-		0: "a b d e Ãª f g h i j k l m n o Ã´ p r s t u w y",
-		3: "c q v x z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"to": {
-		0: "a Ä e Ä“ f h Ê» i Ä« k l m n ng o Å p s t u Å« v",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã¦ b c Ã§ d Ã¨ Ä• Ãª Ã« g Ã¬ Ä­ Ã® Ã¯ j Ã± Ã² Å Ã´ Ã¶ Ã¸ Å“ q r Ã¹ Å­ Ã» Ã¼ w x y Ã¿ z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A Ä€ B C D E Ä’ F G H Ê» I Äª J K L M N O ÅŒ P Q R S T U Åª V W X Y Z",
-	},
-	"tr": {
-		0: "a b c Ã§ d e f g ÄŸ h Ä± i iÌ‡ j k l m n o Ã¶ p r s ÅŸ t u Ã¼ v y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ä Ã¦ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ q Ãº Ã¹ Å­ Ã» Å« w x Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C Ã‡ D E F G H I Ä° J K L M N O Ã– P Q R S Åž T U Ãœ V W X Y Z",
-	},
-	"ts": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"twq": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n Å‹ É² o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-	},
-	"tzm": {
-		0: "a b c d á¸ e É› f g gÊ· É£ h á¸¥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z",
-		3: "o p v",
-		5: "A B C D á¸Œ E Æ F G Æ” H á¸¤ I J K L M N Q R á¹š S á¹¢ T á¹¬ U W X Y Z",
-	},
-	"uk": {
-		0: "Ê¼ Ð° Ð± Ð² Ð³ Ò‘ Ð´ Ðµ Ñ” Ð¶ Ð· Ð¸ Ñ– Ñ— Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŽ Ñ ÑŒ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ò Ð” Ð• Ð„ Ð– Ð— Ð˜ Ð† Ð‡ Ð™ Ðš Ð› Ðœ Ð Ðž ÐŸ Ð  Ð¡ Ð¢ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð¨ Ð© Ð® Ð¯",
-	},
-	"ur": {
-		0: "Ø§ Ø£ Ø¢ Ø¨ Ù¾ Øª Ù¹ Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Úˆ Ø° Ø± Ú‘ Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ùˆ Ø¤ Û Ú¾ Ø¡ ÛŒ Ø¦ Û’ Ù» Ø© Ùº Ù¼ Ù½ Ù‡ ÙŠ",
-	},
-	"uz": {
-		0: "Ð° Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñž Ñ„ Ñ… Ò³ Ñ‡ Ñˆ ÑŠ Ñ ÑŽ Ñ",
-		3: "Ñ† Ñ‰ Ñ‹ ÑŒ",
-	},
-	"uz_Arab": {
-		0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ù” Ù° Ø¡ Ø¢ Ø£ Ø¤ Ø¦ Ø§ Ø¨ Ù¾ Ø© Øª Ø« Ù¼ Ø¬ Ú† Ø­ Ø® Ú Ú… Ø¯ Ø° Ú‰ Ø± Ø² Ú“ Ú– Ú˜ Ø³ Ø´ Úš Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú« Ú¯ Ù„ Ù… Ù† Ú¼ Ù‡ Ùˆ Û‡ Û‰ ÙŠ ÛŒ Û Û",
-		3: "\u200c \u200d",
-	},
-	"uz_Latn": {
-		0: "a aÊ¼ b ch d e eÊ¼ f g gÊ¼ h i iÊ¼ j k l m n o oÊ¼ p q r s sh t u uÊ¼ v x y z",
-		3: "c w",
-		5: "A B CH D E F G GÊ¼ H I J K L M N O OÊ¼ P Q R S SH T U V X Y Z",
-	},
-	"vai": {
-		0: "ê˜  ê˜  ê˜¡ ê˜¢ ê˜£ ê˜¤ ê˜¥ ê˜¦ ê˜§ ê˜¨ ê˜© ê”€ ê”€ ê” ê”‚ ê”ƒ ê”„ ê”… ê”† ê”‡ ê”ˆ ê”‰ ê”Š ê”‹ ê”Œ ê˜“ ê” ê” ê”Ž ê” ê” ê”‘ ê”’ ê”“ ê”” ê”• ê”– ê”— ê”˜ ê”™ ê”š ê”› ê”œ ê” ê”ž ê˜” ê”Ÿ ê”Ÿ ê”  ê”¡ ê”¢ ê”£ ê”¤ ê”¥ ê”¦ ê”§ ê”¨ ê”© ê”ª ê”« ê”¬ ê”­ ê”® ê”¯ ê”° ê”± ê”² ê”³ ê˜• ê”´ ê”´ ê”µ ê”¶ ê”· ê”¸ ê”¹ ê”º ê”» ê”¼ ê”½ ê”¾ ê”¿ ê•€ ê• ê•‚ ê•ƒ ê•„ ê•… ê•† ê•‡ ê˜– ê•ˆ ê•ˆ ê•‰ ê•Š ê•‹ ê•Œ ê• ê•Ž ê• ê• ê•‘ ê•’ ê˜— ê•“ ê•“ ê•” ê•• ê•– ê•— ê•˜ ê˜ ê˜˜ ê•™ ê•š ê˜™ ê•› ê•› ê•œ ê• ê•ž ê•Ÿ ê•  ê˜š ê•¡ ê•¡ ê•¢ ê•£ ê•¤ ê•¥ ê•¦ ê•§ ê•¨ ê•© ê•ª ê˜‘ ê•« ê•« ê•¬ ê•­ ê•® ê˜ª ê•¯ ê•¯ ê•° ê•± ê•² ê•³ ê•´ ê•µ ê•¶ ê•· ê•¸ ê•¹ ê•º ê•» ê•¼ ê•½ ê•¾ ê•¿ ê–€ ê– ê–‚ ê–ƒ ê–„ ê–… ê˜› ê–† ê–‡ ê˜’ ê–ˆ ê–ˆ ê–‰ ê–Š ê–‹ ê–Œ ê– ê–Ž ê– ê– ê–‘ ê–’ ê–“ ê–” ê–• ê–– ê–— ê–˜ ê–™ ê–š ê–› ê–œ ê– ê–ž ê–Ÿ ê–  ê–¡ ê–¢ ê–£ ê–¤ ê–¥ ê–¦ ê–§ ê–¨ ê–© ê–ª ê–« ê–¬ ê–­ ê–® ê–¯ ê–° ê–± ê–² ê–³ ê–´ ê˜œ ê–µ ê–µ ê–¶ ê–· ê–¸ ê–¹ ê–º ê–» ê–¼ ê–½ ê–¾ ê–¿ ê—€ ê— ê—‚ ê—ƒ ê—„ ê—… ê—† ê—‡ ê—ˆ ê—‰ ê—Š ê—‹ ê˜ ê—Œ ê—Œ ê— ê—Ž ê— ê— ê—‘ ê˜« ê˜ž ê—’ ê—’ ê—“ ê—” ê—• ê—– ê—— ê—˜ ê˜Ÿ ê—™ ê—™ ê—š ê—› ê—œ ê— ê—ž ê—Ÿ ê—  ê—¡ ê—¢ ê—£ ê—¤ ê—¥ ê—¦ ê—§ ê—¨ ê—© ê—ª ê—« ê—¬ ê—­ ê—® ê—¯ ê—° ê—± ê—² ê—³ ê—´ ê—µ ê—¶ ê—· ê—¸ ê—¹ ê—º ê—» ê—¼ ê—½ ê—¾ ê—¿ ê˜€ ê˜ ê˜‚ ê˜ƒ ê˜„ ê˜… ê˜† ê˜‡ ê˜ˆ ê˜‰ ê˜Š ê˜‹ ê˜Œ",
-	},
-	"vai_Latn": {
-		0: "a Ã¡ Ã£ b É“ c d É— e Ã© áº½ É› É›Ì É›Ìƒ f g h i Ã­ Ä© j k l m n Å‹ o Ã³ Ãµ É” É”Ì É”Ìƒ p q r s t u Ãº Å© v w x y z",
-		5: "A B Æ C D ÆŠ E Æ F G H I J K L M N ÅŠ O Æ† P Q R S T U V W X Y Z",
-	},
-	"ve": {
-		0: "a b d á¸“ e f g h i k l á¸½ m n á¹… á¹‹ o p r s t á¹± u v w x y z",
-	},
-	"vi": {
-		0: "a Ã  áº£ Ã£ Ã¡ áº¡ Äƒ áº± áº³ áºµ áº¯ áº· Ã¢ áº§ áº© áº« áº¥ áº­ b c d Ä‘ e Ã¨ áº» áº½ Ã© áº¹ Ãª á» á»ƒ á»… áº¿ á»‡ f g h i Ã¬ á»‰ Ä© Ã­ á»‹ j k l m n o Ã² á» Ãµ Ã³ á» Ã´ á»“ á»• á»— á»‘ á»™ Æ¡ á» á»Ÿ á»¡ á»› á»£ p q r s t u Ã¹ á»§ Å© Ãº á»¥ Æ° á»« á»­ á»¯ á»© á»± v w x y á»³ á»· á»¹ Ã½ á»µ z",
-		4: "a b c d Ä‘ e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"vun": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"wae": {
-		0: "a Ã¡ Ã¤ Ã£ b c Ä d e Ã© f g h i Ã­ j k l m n o Ã³ Ã¶ Ãµ p q r s Å¡ t u Ãº Ã¼ Å© v w x y z",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã² Å Ã´ Ã¸ Å Å“ ÃŸ Ã¹ Å­ Ã» Å« Ã¿",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"wal": {
-		0: "áŸ áŽ áŽ áŽ‘ áŽ’ áŽ“ áŽ” áŽ• áŽ– áŽ— áŽ˜ áŽ™ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆ‡ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ â¶€ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áŽ€ áŽ€ áŽ áŽ‚ áŽƒ â¶ áˆ  áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ â¶‚ áˆ° áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· â¶ƒ áˆ¸ áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ â¶„ á‰€ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰‡ á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ áŽ„ áŽ„ áŽ… áŽ† áŽ‡ â¶… á‰¨ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· â¶† á‰¸ á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ â¶‡ áŠ€ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠ‡ áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— â¶ˆ áŠ˜ áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ â¶‰ áŠ  áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ â¶Š áŠ¨ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ¯ áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ â¶‹ á‹  á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹¯ á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· â¶Œ á‹¸ á‹¸ á‹¹ á‹º á‹» á‹¼ á‹½ á‹¾ á‹¿ â¶ áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ â¶Ž áŒˆ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ â¶ áŒ¨ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ â¶ áŒ° áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· â¶‘ áŒ¸ áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á áŽˆ áŽˆ áŽ‰ áŽŠ áŽ‹ á á á‘ á’ á“ á” á• á– á— áŽŒ áŽŒ áŽ áŽŽ áŽ â¶’ á˜ á˜ á™ áš â¶  â¶  â¶¡ â¶¢ â¶£ â¶¤ â¶¥ â¶¦ â¶¨ â¶¨ â¶© â¶ª â¶« â¶¬ â¶­ â¶® â¶° â¶° â¶± â¶² â¶³ â¶´ â¶µ â¶¶ â¶¸ â¶¸ â¶¹ â¶º â¶» â¶¼ â¶½ â¶¾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž",
-	},
-	"xh": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"xog": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"yav": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ Ä b c d e Ã© Ã¨ É› É›Ì É›Ì€ f h i Ã­ Ã¬ Ã® Ä« k l m mb n ny Å‹ Å‹g o Ã³ Ã² Ã´ Ç’ Å É” É”Ì É”Ì€ p s t u Ãº Ã¹ Ã» Ç” Å« v w y",
-		3: "g j q r x z",
-		5: "A B C D E Æ F H I K L M N ÅŠ O Æ† P S T U V W Y",
-	},
-	"yo": {
-		0: "a Ã¡ Ã  b d e Ã© Ã¨ áº¹ áº¹Ì áº¹Ì€ f g gb h i Ã­ Ã¬ j k l m n o Ã³ Ã² á» á»Ì á»Ì€ p r s á¹£ t u Ãº Ã¹ w y",
-		3: "c q v x z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"zh": {
-		0: "ä¸€ ä¸ ä¸ƒ ä¸‡ ä¸‡ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸Œ ä¸ ä¸Ž ä¸“ ä¸” ä¸– ä¸˜ ä¸˜ ä¸™ ä¸š ä¸œ ä¸ ä¸¢ ä¸¤ ä¸¥ ä¸§ ä¸ª ä¸­ ä¸° ä¸² ä¸´ ä¸¸ ä¸¸ ä¸¹ ä¸º ä¸» ä¸½ ä¸¾ ä¹ƒ ä¹… ä¹ˆ ä¹‰ ä¹‹ ä¹‹ ä¹Œ ä¹ ä¹Ž ä¹ ä¹ ä¹” ä¹– ä¹˜ ä¹™ ä¹ ä¹Ÿ ä¹Ÿ ä¹  ä¹¡ ä¹¦ ä¹° ä¹± ä¹¾ äº† äºˆ äº‰ äº‹ äºŒ äºŽ äº äº‘ äº’ äº” äº• äºš äº› äº¡ äº¤ äº¦ äº¨ äº« äº¬ äº® äº² äºº äº¿ äº¿ ä»€ ä» ä»… ä»‡ ä»Š ä»‹ ä» ä»Ž ä»” ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»ª ä»¬ ä»° ä»² ä»¶ ä»» ä»½ ä»¿ ä¼ ä¼Š ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼— ä¼™ ä¼š ä¼Ÿ ä¼  ä¼¤ ä¼¦ ä¼¯ ä¼° ä¼´ ä¼¸ ä¼¼ ä¼½ ä½† ä½ ä½ ä½Ž ä½ ä½ ä½‘ ä½“ ä½• ä½™ ä½› ä½œ ä½  ä½¤ ä½© ä½³ ä½¿ ä¾‹ ä¾› ä¾ ä¾  ä¾¦ ä¾¦ ä¾§ ä¾¨ ä¾¬ ä¾¯ ä¾µ ä¾¿ ä¿ƒ ä¿„ ä¿Š ä¿— ä¿ ä¿¡ ä¿© ä¿® ä¿± ä¿¾ å€ å€’ å€™ å€š å€Ÿ å€¦ å€¼ å€¾ å‡ åŒ å åš åœ å¥ å¶ å· å‚¨ å‚¬ å‚² å‚» åƒ åƒ§ å„’ å… å…ƒ å…ƒ å…„ å…… å…ˆ å…‰ å…‹ å… å…‘ å…” å…¥ å…¨ å…« å…« å…¬ å…­ å…® å…° å…± å…³ å…³ å…´ å…µ å…¶ å…· å…¸ å…¹ å…» å…» å…¼ å…½ å†… å†ˆ å† å†’ å†™ å†› å†œ å†  å†¬ å†° å†² å†· å‡† å‡Œ å‡ å‡  å‡¡ å‡¤ å‡­ å‡¯ å‡° å‡º å‡» å‡½ åˆ€ åˆ† åˆ‡ åˆŠ åˆ‘ åˆ’ åˆ— åˆ— åˆ˜ åˆ™ åˆš åˆ› åˆ åˆ¤ åˆ© åˆ« åˆ° åˆ¶ åˆ¶ åˆ· åˆ¸ åˆº åˆ» å‰‚ å‰ å‰‘ å‰§ å‰© å‰ª å‰¯ å‰² åŠ› åŠ åŠ åŠž åŠŸ åŠ  åŠ¡ åŠ£ åŠ¨ åŠ¨ åŠ© åŠª åŠ« åŠ± åŠ± åŠ² åŠ³ åŠ¿ å‹‡ å‹‰ å‹‹ å‹’ å‹¤ å‹¾ å‹¿ åŒ… åŒ† åŒˆ åŒ– åŒ— åŒ™ åŒ¹ åŒ¹ åŒº åŒ» å åƒ å‡ åˆ åŠ åŽ å å’ å“ å• å• å– å— åš å  å  å¡ å¢ å« å° å± å³ å· åŽ„ åŽ„ åŽ… åŽ† åŽ‰ åŽ‹ åŽ‹ åŽŒ åŽ åŽš åŽŸ åŽ» åŽ¿ å‚ åˆ åˆ å‰ åŠ å‹ åŒ å å‘ å” å– å– å— å˜ å™ å£ å£ å¤ å¥ å¦ å« å« å¬ å­ å¯ å° å² å³ å¶ å¶ å· å¸ å¹ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å“ å— å› å åŸ å¦ å§ å« åµ å¸ å¹ å» å¾ å‘€ å‘† å‘ˆ å‘Š å‘ å‘˜ å‘œ å‘¢ å‘¦ å‘¨ å‘³ å‘µ å‘¼ å‘½ å’Œ å’– å’¦ å’§ å’ª å’¬ å’¯ å’± å“€ å“ å“‡ å“‡ å“ˆ å“‰ å“ å“Ž å“Ÿ å“¥ å“¦ å“© å“ª å“­ å“² å”‰ å” å”¤ å”¬ å”® å”¯ å”± å”· å•† å•Š å•¡ å•¥ å•¦ å•ª å–€ å–‚ å–„ å–‡ å–Š å– å–” å–œ å– å–µ å–· å–» å—’ å—¨ å—¯ å˜‰ å˜› å˜´ å˜» å˜¿ å™¨ å›› å›ž å›  å›¢ å›­ å›° å›´ å›º å›½ å›¾ åœ† åœˆ åœŸ åœ£ åœ¨ åœ­ åœ° åœº åœ¾ å€ å‡ åŽ å å‘ å— åš åš å› åœ å¡ å¤ å¦ åª åž‚ åžƒ åž‹ åž’ åŸƒ åŸ‹ åŸŽ åŸ” åŸŸ åŸ¹ åŸº å ‚ å † å • å ¡ å ª å¡‘ å¡” å¡ž å¡« å¢ƒ å¢ž å¢¨ å£ å£¤ å£« å£® å£° å¤„ å¤‡ å¤ å¤ å¤• å¤– å¤š å¤œ å¤¥ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¤´ å¤· å¤· å¤¸ å¤¹ å¤º å¥‡ å¥‡ å¥ˆ å¥‰ å¥‹ å¥ å¥‘ å¥” å¥— å¥¥ å¥³ å¥´ å¥¶ å¥¹ å¥½ å¦‚ å¦‡ å¦ˆ å¦– å¦™ å¦¥ å¦¨ å¦® å¦¹ å¦» å§† å§Š å§‹ å§ å§‘ å§“ å§” å§¿ å¨ å¨ƒ å¨„ å¨˜ å¨œ å¨Ÿ å©† å©š åª’ å« å«Œ å«© å­ å­” å­• å­— å­— å­˜ å­™ å­œ å­ å­Ÿ å­£ å­¤ å­¦ å­© å® å®ƒ å®‡ å®‡ å®ˆ å®‰ å®‹ å®Œ å® å®— å®— å®˜ å®™ å®š å®› å®œ å® å®ž å®¡ å®¡ å®¢ å®£ å®¤ å®ª å®³ å®´ å®¶ å®¹ å®½ å®½ å®¾ å®¿ å¯‚ å¯„ å¯† å¯‡ å¯Œ å¯’ å¯ å¯ å¯ž å¯Ÿ å¯¡ å¯¨ å¯¸ å¯¹ å¯» å¯¼ å¯¿ å° å°„ å°† å°Š å° å°‘ å°” å°– å°˜ å°š å° å°¤ å°± å°º å°¼ å°¼ å°½ å°¾ å±€ å±€ å± å±‚ å±… å±‹ å± å±• å±ž å±  å±± å² å²‚ å²— å²˜ å²š å²› å²³ å²¸ å³¡ å³° å´‡ å´© å´´ å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·² å·´ å·· å¸ å¸ å¸‚ å¸ƒ å¸… å¸ˆ å¸Œ å¸ å¸• å¸ å¸¦ å¸­ å¸® å¸¸ å¸½ å¹… å¹• å¹² å¹² å¹³ å¹´ å¹¸ å¹» å¹» å¹¼ å¹½ å¹¿ åº† åºŠ åº åº“ åº“ åº” åº• åº— åº™ åºœ åºž åºŸ åº¦ åº§ åº­ åº· åº¸ å»‰ å»– å»¶ å»· å»º å¼€ å¼ƒ å¼„ å¼Š å¼ å¼• å¼— å¼˜ å¼Ÿ å¼  å¼¥ å¼¦ å¼¯ å¼± å¼¹ å½’ å½“ å½ å½¢ å½© å½¬ å½­ å½° å½± å½· å½¹ å½» å½¼ å¾€ å¾ å¾„ å¾… å¾ˆ å¾‹ å¾Œ å¾ å¾’ å¾— å¾ª å¾® å¾µ å¾· å¿ƒ å¿… å¿† å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿  å¿§ å¿« å¿µ å¿½ æ€€ æ€ æ€Ž æ€’ æ€• æ€– æ€ æ€¡ æ€¥ æ€§ æ€¨ æ€ª æ€» æ‹ æ æ¢ æ¨ æ© æ­ æ¯ æ° æ¶ æ¼ æ‚„ æ‚‰ æ‚” æ‚Ÿ æ‚  æ‚£ æ‚¨ æ‚² æƒ… æƒ‘ æƒœ æƒ  æƒ§ æƒ¨ æƒ¯ æƒ³ æƒ¹ æ„ æ„ˆ æ„‰ æ„ æ„š æ„Ÿ æ„§ æ…ˆ æ…Ž æ…• æ…¢ æ…§ æ…° æ†¾ æ‡‚ æ‡’ æˆˆ æˆ æˆ æˆ æˆ‘ æˆ’ æˆ– æˆ˜ æˆª æˆ´ æˆ¿ æˆ¿ æ‰€ æ‰ æ‰‡ æ‰‹ æ‰ æ‰Ž æ‰‘ æ‰“ æ‰˜ æ‰£ æ‰§ æ‰© æ‰« æ‰« æ‰¬ æ‰­ æ‰® æ‰¯ æ‰¹ æ‰¾ æ‰¾ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ‘ æŠ“ æŠ• æŠ— æŠ˜ æŠ¢ æŠ¤ æŠ¥ æŠ« æŠ¬ æŠ± æŠµ æŠ¹ æŠ½ æ‹… æ‹† æ‹‰ æ‹ æ‹’ æ‹” æ‹– æ‹˜ æ‹› æ‹œ æ‹Ÿ æ‹¥ æ‹¦ æ‹¨ æ‹© æ‹¬ æ‹³ æ‹· æ‹¼ æ‹¾ æ‹¿ æŒ æŒ‡ æŒ‰ æŒ‘ æŒ– æŒ æŒ¡ æŒ¤ æŒ¥ æŒª æŒ¯ æŒº æ‰ æ æ• æŸ æ¡ æ¢ æ· æŽˆ æŽ‰ æŽŒ æŽ’ æŽ¢ æŽ¥ æŽ§ æŽ§ æŽ¨ æŽ© æŽª æŽ¸ æ æ æ’ æ¡ æ´ æœ æž æ¬ æ­ æ‘„ æ‘† æ‘Š æ‘” æ‘˜ æ‘© æ‘¸ æ’’ æ’ž æ’­ æ“ æ“Ž æ“¦ æ”¯ æ”¶ æ”¹ æ”» æ”¾ æ”¿ æ•… æ•ˆ æ•Œ æ• æ•‘ æ•™ æ• æ•¢ æ•£ æ•¦ æ•¬ æ•° æ•² æ•´ æ–‡ æ–‹ æ– æ–— æ–™ æ–œ æ–¥ æ–­ æ–¯ æ–° æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—  æ—¢ æ—¥ æ—¥ æ—¦ æ—§ æ—¨ æ—© æ—­ æ—¶ æ—º æ˜‚ æ˜† æ˜Œ æ˜Ž æ˜ æ˜“ æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ˜¾ æ™ƒ æ™‹ æ™’ æ™“ æ™š æ™¨ æ™® æ™¯ æ™´ æ™¶ æ™º æš‚ æš‘ æš– æš— æš® æš´ æ›° æ›² æ›´ æ›¹ æ›¼ æ›¾ æ›¾ æ›¿ æœ€ æœˆ æœ‰ æœ‹ æœ æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ¯ æœ± æœµ æ€ æ‚ æƒ æ‰ æŽ æ æ‘ æœ æŸ æ¡ æ¥ æ¨ æ¯ æ° æ¾ æ¿ æž æž æž— æžœ æž æž¢ æžª æž« æž¶ æŸ æŸ æŸ“ æŸ” æŸ¥ æŸ¬ æŸ¯ æŸ³ æŸ´ æ ‡ æ ‹ æ  æ ‘ æ ¡ æ · æ · æ ¸ æ ¹ æ ¼ æ¡ƒ æ¡† æ¡ˆ æ¡Œ æ¡‘ æ¡£ æ¡¥ æ¢ æ¢… æ¢¦ æ¢¯ æ¢° æ¢µ æ£€ æ£‰ æ£‹ æ£’ æ£š æ£® æ¤… æ¤ æ¤° æ¥š æ¥¼ æ¦‚ æ¦œ æ¨¡ æ¨± æª€ æ¬  æ¬  æ¬¡ æ¬¢ æ¬£ æ¬§ æ¬² æ¬º æ¬¾ æ­‰ æ­Œ æ­¢ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­ª æ­» æ®Š æ®‹ æ®µ æ¯… æ¯ æ¯ æ¯’ æ¯” æ¯• æ¯› æ¯« æ° æ°‘ æ°› æ°´ æ°¸ æ±‚ æ±‰ æ±— æ± æ±Ÿ æ±Ÿ æ±  æ±¡ æ±¤ æ±ª æ±¶ æ±½ æ²ƒ æ²ˆ æ²‰ æ²™ æ²Ÿ æ²§ æ²³ æ²¹ æ²» æ²¿ æ³‰ æ³Š æ³• æ³› æ³¡ æ³¡ æ³¢ æ³£ æ³¥ æ³¨ æ³° æ³³ æ³½ æ´‹ æ´— æ´› æ´ž æ´¥ æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ… æµ‹ æµŽ æµ‘ æµ“ æµ¦ æµ© æµª æµ® æµ´ æµ· æ¶… æ¶ˆ æ¶‰ æ¶› æ¶¨ æ¶¯ æ¶² æ¶µ æ·‹ æ·‘ æ·˜ æ·¡ æ·± æ·· æ·» æ¸… æ¸ æ¸¡ æ¸£ æ¸© æ¸¯ æ¸´ æ¸¸ æ¹– æ¹¾ æº æºœ æºª æ»‹ æ»‘ æ»¡ æ»¥ æ»¨ æ»´ æ¼‚ æ¼ æ¼” æ¼  æ¼« æ½˜ æ½œ æ½® æ¾Ž æ¾³ æ¿€ çŒ ç« ç­ ç¯ ç° çµ ç¿ ç‚‰ ç‚Ž ç‚® ç‚¸ ç‚¹ çƒ‚ çƒˆ çƒ¤ çƒ¦ çƒ§ çƒ­ ç„¦ ç„¶ ç…Œ ç…ž ç…§ ç…® ç†Š ç†Ÿ ç‡ƒ ç‡• çˆ† çˆª çˆ¬ çˆ± çˆµ çˆµ çˆ¶ çˆ· çˆ¸ çˆ½ ç‰‡ ç‰ˆ ç‰Œ ç‰™ ç‰› ç‰¡ ç‰¢ ç‰§ ç‰© ç‰² ç‰µ ç‰¹ ç‰º çŠ¯ çŠ¶ çŠ¹ ç‹‚ ç‹ ç‹— ç‹  ç‹¬ ç‹® ç‹± ç‹¼ çŒ› çŒœ çŒ® çŽ„ çŽ‡ çŽ‰ çŽ‹ çŽ› çŽ© çŽ« çŽ¯ çŽ° çŽ² çŽ» ç€ çŠ ç ç  ç­ çƒ ç† çŠ çª ç³ ç´ ç¼ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘° ç‘¶ ç’ƒ ç“œ ç“¦ ç“¶ ç”˜ ç”š ç”œ ç”Ÿ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”µ ç”· ç”¸ ç”» ç•… ç•Œ ç•™ ç•¥ ç•ª ç–† ç– ç–‘ ç–— ç–¯ ç–² ç–¼ ç–¾ ç—… ç—• ç—› ç—´ ç™» ç™½ ç™¾ çš„ çš† çš‡ çš® ç›ˆ ç›Š ç›‘ ç›’ ç›– ç›˜ ç›› ç›Ÿ ç›® ç›´ ç›¸ ç›¼ ç›¾ çœ çœ‰ çœ‹ çœŸ çœ  çœ¼ ç› ç¡ ç£ çž§ çŸ› çŸ£ çŸ¥ çŸ­ çŸ³ çŸ¶ ç  ç ‚ ç  ç ” ç ´ ç¡€ ç¡• ç¡¬ ç¢ ç¢Ž ç¢— ç¢Ÿ ç¢§ ç¢° ç£ ç£… ç£¨ ç¤º ç¤¼ ç¤¾ ç¥– ç¥ ç¥ž ç¥¥ ç¥¨ ç¥¸ ç¦ ç¦… ç¦ ç§€ ç§ ç§‹ ç§ ç§‘ ç§’ ç§˜ ç§Ÿ ç§¤ ç§¦ ç§© ç§¯ ç§° ç§» ç¨€ ç¨‹ ç¨ ç¨£ ç¨³ ç¨¿ ç©† ç©¶ ç©· ç©¹ ç©º ç©¿ çª çª— çª ç«‹ ç«™ ç«ž ç«ž ç«Ÿ ç«  ç«¥ ç«¯ ç«¹ ç¬‘ ç¬” ç¬› ç¬¦ ç¬¨ ç¬¬ ç­‰ ç­‹ ç­” ç­– ç­¹ ç­¾ ç®€ ç®— ç®¡ ç®­ ç®± ç¯‡ ç¯® ç°¿ ç± ç±³ ç±» ç²‰ ç²’ ç²— ç²¤ ç²¹ ç²¾ ç³Š ç³• ç³– ç³Ÿ ç³» ç´  ç´¢ ç´§ ç´« ç´¯ ç¹ çº¢ çº¦ çº§ çºª çº¯ çº² çº³ çºµ çº· çº¸ çº½ ç»ƒ ç»„ ç»† ç»† ç»‡ ç»ˆ ç» ç» ç»“ ç»• ç»˜ ç»™ ç»œ ç»Ÿ ç»§ ç»© ç»ª ç»­ ç»´ ç»µ ç»¼ ç¼… ç¼“ ç¼– ç¼˜ ç¼  ç¼© ç¼´ ç¼¶ ç¼¸ ç¼º ç½ ç½• ç½— ç½š ç½¢ ç½ª ç½® ç½² ç¾Š ç¾Ž ç¾ž ç¾¤ ç¾¯ ç¾½ ç¿ ç¿… ç¿” ç¿˜ ç¿  ç¿° ç¿» ç¿¼ è€€ è€ è€ƒ è€… è€Œ è€ è€ è€— è€³ è€¶ èŠ èŒ è” èš èª è‚‰ è‚– è‚š è‚¡ è‚¤ è‚¥ è‚© è‚¯ è‚² èƒ èƒ† èƒŒ èƒŽ èƒ– èƒž èƒ¡ èƒ¶ èƒ¸ èƒ½ è„† è„‘ è„± è„¸ è…Š è… è…“ è…° è…¹ è…¾ è…¿ è‡‚ è‡£ è‡ª è‡­ è‡³ è‡´ èˆŒ èˆ èˆ’ èˆž èˆŸ èˆª èˆ¬ èˆ° èˆ¹ è‰¯ è‰² è‰º è‰¾ èŠ‚ èŠ’ èŠ èŠ¦ èŠ¬ èŠ­ èŠ± èŠ³ è‹ è‹ è‹— è‹¥ è‹¦ è‹± èŒ‚ èŒ¨ èŒ« èŒ¶ è‰ è’ è£ è¯ è· èŽ‰ èŽŽ èŽª èŽ« èŽ± èŽ² èŽ· èœ è© è² è„ è è¤ è¥ è§ è¨ è½ è‘— è‘› è‘¡ è’‚ è’‹ è’™ è“‰ è“ è“¬ è”‘ è”¡ è–„ è–ª è—‰ è— è—¤ è™Ž è™‘ è™« è™¹ è™½ è™¾ èš è›‡ è›‹ è›™ è›® èœ‚ èœœ è¶ èž èŸ¹ è ¢ è¡€ è¡Œ è¡— è¡¡ è¡£ è¡¥ è¡¨ è¢‹ è¢« è¢­ è£ è£‚ è£… è£• è£¤ è¥¿ è¦ è¦† è§ è§‚ è§„ è§† è§ˆ è§‰ è§’ è§£ è¨€ èª‰ èª“ è­¦ è®¡ è®¢ è®¤ è®¨ è®© è®­ è®­ è®® è®¯ è®° è®² è®· è®¸ è®º è®¾ è®¿ è¯ è¯„ è¯† è¯‰ è¯ è¯‘ è¯• è¯— è¯š è¯ è¯ž è¯¢ è¯¥ è¯¦ è¯­ è¯¯ è¯´ è¯· è¯¸ è¯º è¯» è¯¾ è° è°ƒ è°… è°ˆ è°Š è°‹ è°“ è°œ è°¢ è°¨ è°± è°· è±† è±¡ è±ª è²Œ è´ è´ è´ž è´Ÿ è´¡ è´¡ è´¢ è´£ è´¤ è´¥ è´§ è´§ è´¨ è´© è´ª è´­ è´¯ è´± è´´ è´µ è´¹ è´º è´¼ è´¾ èµ„ èµ‹ èµŒ èµ èµ èµ” èµ– èµš èµ› èµž èµ  èµ¢ èµ¤ èµ« èµ° èµµ èµ· è¶ è¶… è¶Š è¶‹ è¶£ è¶³ è·ƒ è·Œ è·‘ è· è·Ÿ è·¯ è·³ è¸ è¸¢ è¸© èº« èº² è½¦ è½¨ è½© è½¬ è½® è½® è½¯ è½° è½» è½½ è¾ƒ è¾… è¾† è¾ˆ è¾‰ è¾‘ è¾“ è¾› è¾ž è¾¨ è¾© è¾± è¾¹ è¾¾ è¿ è¿… è¿‡ è¿ˆ è¿Ž è¿ è¿‘ è¿” è¿˜ è¿™ è¿› è¿› è¿œ è¿ è¿ž è¿Ÿ è¿¦ è¿ª è¿« è¿° è¿· è¿½ é€€ é€ é€ƒ é€† é€‰ é€Š é€ é€ é€’ é€” é€š é€› é€ é€Ÿ é€  é€¢ é€¸ é€» é€¼ é‡ é é“ é— é­ é® éµ é¿ é‚€ é‚“ é‚£ é‚¦ é‚ª é‚® é‚± é‚» éƒŽ éƒ‘ éƒ¨ éƒ­ éƒ½ é„‚ é…‹ é… é…’ é…· é…¸ é†‰ é†’ é‡‡ é‡Š é‡Œ é‡Œ é‡ é‡Ž é‡ é‡‘ é’ˆ é’“ é’Ÿ é’¢ é’¦ é’± é’» é“ é“ƒ é“¢ é“­ é“¶ é”€ é” é”… é”‹ é”™ é”¡ é”¦ é”® é”º é•‡ é•œ é•­ é•¿ é—¨ é—ª é—­ é—® é—´ é—· é—¹ é—» é˜ é˜ é˜” é˜Ÿ é˜® é˜² é˜² é˜³ é˜´ é˜µ é˜¶ é˜» é˜¿ é™€ é™„ é™„ é™… é™† é™ˆ é™ é™ é™¢ é™¤ é™© é™ª é™µ é™µ é™¶ é™· éš† éš éš éš” éšœ éš¾ é›„ é›„ é›… é›† é›¨ é›ª é›¯ é›³ é›¶ é›· é›¾ éœ€ éœ‡ éœ éœ– éœ² éœ¸ éœ¹ é’ é– é™ éž é  é¢ é© é¼ éž‹ éž‘ éŸ¦ éŸ© éŸ³ é¡µ é¡¶ é¡¹ é¡¹ é¡º é¡» é¡½ é¡½ é¡¾ é¡¿ é¢„ é¢† é¢‡ é¢‘ é¢— é¢˜ é¢ é£Ž é£˜ é£™ é£ž é£Ÿ é¤ é¥­ é¥® é¥° é¥± é¥¼ é¦† é¦– é¦™ é¦¨ é©¬ é©± é©¶ é©» é©¾ éªŒ éª‘ éª— éªš éª¤ éª¨ é«˜ é¬¼ é­‚ é­… é­” é±¼ é² é²œ é¸Ÿ é¸£ é¸­ é¸¿ é¹… é¹¤ é¹° é¹¿ éº¦ éº» é»„ é»Ž é»‘ é»˜ é¼“ é¼  é¼» é½ é½¿ é¾„ é¾™ é¾Ÿ",
-		3: "ä¾£ å‚£ å‘ åŽ˜ å• å ¤ å¥Ž å·½ å½• æˆ· æ’¤ æ¥” æ¥  æ»• ç‘š ç”« ç›² ç¦„ ç²Ÿ çº¿ è„š é’¯ é“‚ é”‘ é•‘ é­",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"zh_Hant": {
-		0: "ä¸€ ä¸ ä¸ƒ ä¸ˆ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸Œ ä¸ ä¸” ä¸– ä¸˜ ä¸™ ä¸Ÿ ä¸¦ ä¸­ ä¸² ä¸¸ ä¸¹ ä¸» ä¹ƒ ä¹… ä¹ˆ ä¹‹ ä¹Ž ä¹ ä¹– ä¹˜ ä¹™ ä¹ ä¹Ÿ ä¹¾ äº‚ äº† äºˆ äº‹ äºŒ äºŽ äº‘ äº’ äº” äº• äº› äºž äº¡ äº¤ äº¦ äº¨ äº« äº¬ äº® äºº ä»€ ä» ä»‡ ä»Š ä»‹ ä» ä»” ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»° ä»² ä»¶ ä»» ä»½ ä¼ ä¼Š ä¼ ä¼ ä¼‘ ä¼™ ä¼¯ ä¼° ä¼´ ä¼¸ ä¼¼ ä¼½ ä½† ä½ˆ ä½ ä½ ä½Ž ä½ ä½” ä½• ä½™ ä½› ä½œ ä½  ä½© ä½³ ä½¿ ä¾† ä¾‹ ä¾› ä¾ ä¾¯ ä¾µ ä¾¿ ä¿‚ ä¿‚ ä¿ƒ ä¿„ ä¿Š ä¿— ä¿ ä¿  ä¿¡ ä¿® ä¿± ä¿¾ å€‹ å€ å€‘ å€’ å€™ å€š å€Ÿ å€« å€¼ å‡ å‰ å åš åœ å¥ å´ å´ åµ å¶ å· å‚‘ å‚™ å‚¢ å‚£ å‚² å‚³ å‚· å‚» å‚¾ åƒ… åƒ åƒ‘ åƒ§ åƒ¹ å„€ å„„ å„’ å„˜ å„ª å… å…ƒ å…ƒ å…„ å…… å…‡ å…‡ å…ˆ å…‰ å…‹ å… å…’ å…” å…¥ å…§ å…§ å…¨ å…© å…« å…« å…¬ å…­ å…® å…± å…µ å…µ å…¶ å…· å…¸ å…¼ å†Š å† å†’ å†  å†¬ å†° å†· å‡† å‡Œ å‡ å‡¡ å‡° å‡± å‡º å‡½ åˆ€ åˆ† åˆ‡ åˆŠ åˆ— åˆ åˆ¤ åˆ¥ åˆ© åˆª åˆ° åˆ¶ åˆ· åˆº åˆ» å‰‡ å‰ å‰› å‰© å‰ª å‰¯ å‰² å‰µ åŠƒ åŠ‡ åŠ‰ åŠ åŠ› åŠŸ åŠ  åŠ© åŠ© åŠª åŠ« å‹ å‹‡ å‹‰ å‹’ å‹• å‹™ å‹ å‹ž å‹¢ å‹¤ å‹µ å‹¸ å‹¿ åŒ… åŒˆ åŒ– åŒ— åŒ¹ å€ å åƒ å‡ åˆ åŠ å’ å’ å“ å” å— åš å¡ å° å± å³ å· å» åŽ„ åŽ˜ åŽš åŽŸ åŽ­ åŽ² åŽ» åƒ åˆ åŠ å‹ å å” å– å— å£ å£ å¤ å¥ å¦ å« å« å¬ å­ å¯ å° å² å³ å¸ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å› å å åž åŸ å¦ å§ å« å³ åµ å¸ å¹ å¾ å‘€ å‘‚ å‘† å‘Š å‘¢ å‘¨ å‘³ å‘µ å‘¼ å‘½ å’Œ å’– å’¦ å’§ å’ª å’¬ å’± å“€ å“ å“‡ å“‡ å“ˆ å“‰ å“Ž å“¡ å“¥ å“¦ å“© å“ª å“­ å“² å”‰ å” å”¬ å”® å”¯ å”± å”· å”¸ å•† å•Š å• å•Ÿ å•¡ å•¥ å•¦ å•ª å–€ å–‚ å–„ å–‡ å–Š å–” å–œ å– å–¬ å–® å–µ å—Ž å—š å—¨ å—¯ å˜† å˜‰ å˜— å˜› å˜´ å˜» å˜¿ å™¨ å™´ åš‡ åš´ å›‰ å›› å›ž å›  å›° å›º åœˆ åœ‹ åœ åœ’ åœ“ åœ– åœ˜ åœœ åœŸ åœ¨ åœ­ åœ° åœ¾ å€ å‡ åŽ å å¡ å¤ å¦ åª åž‚ åžƒ åž‹ åŸƒ åŸŽ åŸ” åŸŸ åŸ· åŸ¹ åŸº å ‚ å … å † å ¡ å ª å ± å ´ å¡Š å¡” å¡— å¡ž å¡« å¡µ å¢ƒ å¢ž å¢¨ å¢® å£ å£“ å£˜ å£ž å£¢ å£« å£¯ å£½ å¤ å¤• å¤– å¤š å¤œ å¤  å¤¢ å¤¥ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¤· å¤¸ å¤¾ å¥‡ å¥‡ å¥ˆ å¥‰ å¥Ž å¥ å¥‘ å¥” å¥— å¥§ å¥ª å¥® å¥³ å¥´ å¥¶ å¥¹ å¥½ å¦‚ å¦™ å¦¥ å¦¨ å¦® å¦³ å¦¹ å¦» å§† å§Š å§‹ å§ å§‘ å§“ å§” å§¿ å¨ å¨ƒ å¨˜ å© å©† å©š å©¦ åª’ åª½ å«Œ å«© å­ å­” å­— å­˜ å­ å­Ÿ å­£ å­¤ å­© å­« å­¸ å®ƒ å®… å®‡ å®‡ å®ˆ å®‰ å®‹ å®Œ å® å®— å®— å®˜ å®™ å®š å®› å®œ å®¢ å®¢ å®£ å®¤ å®® å®³ å®¶ å®¹ å®¿ å¯‚ å¯„ å¯† å¯Œ å¯’ å¯ž å¯Ÿ å¯¢ å¯¦ å¯¦ å¯§ å¯¨ å¯© å¯« å¯¬ å¯® å¯¶ å° å°„ å°‡ å°ˆ å°Š å°‹ å° å° å°Ž å° å°‘ å°– å°š å°¤ å°± å°º å°¼ å°¾ å±€ å± å±… å±† å±‹ å± å±• å±  å±¤ å±¬ å±± å²¡ å²© å²¸ å³° å³¶ å³½ å´‡ å´™ å´´ åµ å¶º å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·² å·´ å·· å¸‚ å¸ƒ å¸Œ å¸• å¸› å¸ å¸¥ å¸« å¸­ å¸³ å¸¶ å¸¸ å¸½ å¹… å¹• å¹£ å¹« å¹² å¹² å¹³ å¹´ å¹¸ å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ åº‡ åºŠ åº åº• åº— åºœ åº¦ åº§ åº« åº­ åº· åº¸ å»‰ å»– å»  å»¢ å»£ å»³ å»¶ å»· å»º å¼„ å¼ å¼• å¼— å¼˜ å¼Ÿ å¼¦ å¼± å¼µ å¼· å½ˆ å½Š å½Œ å½Ž å½ž å½¢ å½¥ å½© å½¬ å½­ å½° å½± å½¹ å½¼ å¾€ å¾ å¾… å¾ˆ å¾‹ å¾Œ å¾ å¾ å¾‘ å¾’ å¾— å¾ž å¾© å¾® å¾µ å¾· å¾¹ å¿ƒ å¿… å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿  å¿« å¿µ å¿½ æ€Ž æ€’ æ€• æ€– æ€ æ€¡ æ€¥ æ€§ æ€¨ æ€ª æ† æ æ¢ æ¥ æ¨ æ© æ­ æ¯ æ° æ‚… æ‚‰ æ‚” æ‚Ÿ æ‚  æ‚¨ æ‚² æ‚¶ æƒ… æƒ‘ æƒœ æƒ  æƒ¡ æƒ± æƒ³ æƒ¹ æ„ æ„ˆ æ„‰ æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…• æ…˜ æ…¢ æ…£ æ…§ æ…® æ…° æ…¶ æ…¾ æ†‚ æ† æ†‘ æ†² æ†¶ æ†¾ æ‡‚ æ‡‰ æ‡¶ æ‡· æ‡¼ æˆ€ æˆˆ æˆ æˆ æˆ‘ æˆ’ æˆ– æˆª æˆ° æˆ² æˆ´ æˆ¶ æˆ¿ æˆ¿ æ‰€ æ‰ æ‰‡ æ‰‹ æ‰ æ‰Ž æ‰“ æ‰˜ æ‰£ æ‰¥ æ‰­ æ‰¯ æ‰¹ æ‰¾ æ‰¾ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ“ æŠ• æŠ— æŠ˜ æŠ« æŠ¬ æŠ± æŠµ æŠ¹ æŠ½ æ‹† æ‹‰ æ‹‹ æ‹ æ‹’ æ‹” æ‹– æ‹› æ‹œ æ‹¬ æ‹³ æ‹¼ æ‹¾ æ‹¿ æŒ æŒ‡ æŒ‰ æŒ‘ æŒ– æŒª æŒ¯ æŒº æ æ• æ¨ æ² æ· æŽƒ æŽˆ æŽ‰ æŽŒ æŽ’ æŽ› æŽ¡ æŽ¢ æŽ¥ æŽ§ æŽ¨ æŽª æ æ æ’ æš æ› æ¡ æ® æ´ æ æ– æœ æž æ¬ æ­ æ¶ æ‘˜ æ‘© æ‘¸ æ’ æ’’ æ’ž æ’£ æ’¥ æ’­ æ’¾ æ’¿ æ“ æ“‡ æ“Š æ“‹ æ“ æ“Ž æ“” æ“š æ“  æ“¦ æ“¬ æ“´ æ“º æ“¾ æ” æ”¯ æ”¶ æ”¹ æ”» æ”¾ æ”¿ æ•… æ•ˆ æ• æ• æ•‘ æ•— æ•— æ•˜ æ•™ æ• æ•¢ æ•£ æ•¦ æ•¬ æ•´ æ•µ æ•¸ æ–‡ æ– æ–— æ–™ æ–¯ æ–° æ–· æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—¦ æ—© æ—­ æ—º æ˜‚ æ˜† æ˜‡ æ˜Œ æ˜Ž æ˜ æ˜“ æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ™‚ æ™‰ æ™’ æ™š æ™¨ æ™® æ™¯ æ™´ æ™¶ æ™º æš‘ æš– æš— æš« æš´ æ›† æ›‰ æ›° æ›² æ›´ æ›¸ æ›¼ æ›¾ æ›¾ æ›¿ æœ€ æœƒ æœˆ æœ‰ æœ‹ æœ æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ± æœµ æ‰ æŽ æ æ‘ æœ æŸ æ¯ æ¯ æ° æ± æ¾ æ¿ æž æž— æžœ æž æž¶ æŸ æŸ æŸ“ æŸ” æŸ¥ æŸ¬ æŸ¯ æŸ³ æŸ´ æ ¡ æ ¸ æ ¹ æ ¼ æ¡ƒ æ¡ˆ æ¡Œ æ¡‘ æ¢ æ¢… æ¢ æ¢¨ æ¢¯ æ¢° æ¢µ æ£„ æ£‰ æ£‹ æ£’ æ£š æ£® æ¤… æ¤ æ¤° æ¥Š æ¥“ æ¥š æ¥­ æ¥µ æ¦‚ æ¦œ æ¦® æ§‹ æ§ æ¨‚ æ¨“ æ¨™ æ¨ž æ¨¡ æ¨£ æ¨¹ æ©‹ æ©Ÿ æ©« æª€ æª” æª¢ æ¬„ æ¬Š æ¬¡ æ¬£ æ¬² æ¬º æ¬½ æ¬¾ æ­‰ æ­Œ æ­ æ­¡ æ­¡ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­² æ­· æ­¸ æ­» æ®Š æ®˜ æ®µ æ®º æ®¼ æ¯€ æ¯… æ¯ æ¯ æ¯’ æ¯” æ¯› æ¯« æ° æ°‘ æ°£ æ°´ æ°¸ æ±‚ æ±— æ± æ±Ÿ æ±Ÿ æ±  æ±¡ æ±ª æ±¶ æ±º æ±½ æ²ƒ æ²ˆ æ²‰ æ²’ æ²– æ²™ æ²³ æ²¹ æ²» æ²¿ æ³ æ³‰ æ³Š æ³• æ³¡ æ³¢ æ³¥ æ³¨ æ³° æ³³ æ´‹ æ´— æ´› æ´ž æ´© æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ¦ æµ© æµª æµ® æµ· æ¶‡ æ¶‡ æ¶ˆ æ¶‰ æ¶¯ æ¶² æ¶µ æ¶¼ æ·‘ æ·š æ·¡ æ·¨ æ·± æ·· æ·º æ¸… æ¸› æ¸¡ æ¸¬ æ¸¯ æ¸¸ æ¹– æ¹¯ æº æº– æº æºª æº« æ»„ æ»… æ»‹ æ»‘ æ»´ æ»¾ æ»¿ æ¼‚ æ¼ æ¼” æ¼  æ¼¢ æ¼« æ¼² æ¼¸ æ½” æ½˜ æ½› æ½® æ¾¤ æ¾³ æ¿€ æ¿ƒ æ¿Ÿ æ¿¤ æ¿« æ¿± çŒ ç£ ç« ç° ç½ ç‚Ž ç‚® ç‚¸ ç‚º çƒˆ çƒ çƒ¤ ç„¡ ç„¦ ç„¶ ç…™ ç…ž ç…§ ç…© ç†Š ç†Ÿ ç†± ç‡ƒ ç‡ˆ ç‡’ ç‡Ÿ çˆ† çˆ çˆ› çˆª çˆ¬ çˆ­ çˆµ çˆ¶ çˆ¸ çˆº çˆ½ çˆ¾ ç‰† ç‰† ç‰‡ ç‰ˆ ç‰Œ ç‰™ ç‰› ç‰  ç‰§ ç‰© ç‰² ç‰¹ ç‰½ çŠ§ çŠ¯ ç‹€ ç‹‚ ç‹ ç‹— ç‹  ç‹¼ çŒ› çŒœ çŒ¶ ç„ ç… çŽ ç¨ ç² ç¸ ç» çŽ„ çŽ‡ çŽ‰ çŽ‹ çŽ© çŽ« çŽ² çŽ» çŠ ç ç  ç­ ç¾ çƒ ç† ç‰ çª ç´ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘¤ ç‘ª ç‘° ç’° ç“œ ç“¦ ç“¶ ç”˜ ç”š ç”œ ç”Ÿ ç”¢ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”· ç”¸ ç•Œ ç•™ ç•¢ ç•¥ ç•ª ç•« ç•° ç•¶ ç–† ç– ç–‘ ç–¼ ç—… ç—• ç—› ç—´ ç˜‹ ç™‚ ç™¡ ç™» ç™» ç™¼ ç™½ ç™¾ çš„ çš† çš‡ çš® ç›ƒ ç›Š ç›› ç›œ ç›Ÿ ç›¡ ç›£ ç›¤ ç›§ ç›® ç›² ç›´ ç›¸ ç›¼ ç›¾ çœ çœ‰ çœ‹ çœŸ çœ  çœ¼ çœ¾ ç› ç¡ ç£ çž§ çž­ çŸ› çŸ£ çŸ¥ çŸ­ çŸ³ ç ‚ ç  ç ” ç ² ç ´ ç¡¬ ç¢Ž ç¢— ç¢Ÿ ç¢§ ç¢© ç¢° ç¢º ç¢¼ ç£ ç£¨ ç£¯ ç¤Ž ç¤™ ç¤º ç¤¾ ç¥• ç¥– ç¥ ç¥ž ç¥¥ ç¥¨ ç¦ ç¦ ç¦ ç¦ª ç¦® ç§€ ç§ ç§‹ ç§‘ ç§’ ç§˜ ç§Ÿ ç§¤ ç§¦ ç§» ç¨… ç¨‹ ç¨ ç¨® ç¨± ç¨¿ ç©† ç©Œ ç© ç©© ç©¶ ç©¹ ç©º ç©¿ çª çª— çª© çª® ç«‹ ç«™ ç«Ÿ ç«  ç«¥ ç«¯ ç«¶ ç«¹ ç¬‘ ç¬› ç¬¦ ç¬¨ ç¬¬ ç­† ç­‰ ç­‹ ç­” ç­– ç®€ ç®— ç®¡ ç®­ ç®± ç¯€ ç¯„ ç¯‡ ç¯‰ ç°¡ ç°« ç°½ ç°¿ ç±ƒ ç±Œ ç± ç±³ ç²‰ ç²— ç²µ ç²¾ ç³Š ç³• ç³Ÿ ç³» ç³¾ ç´€ ç´„ ç´… ç´ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´¢ ç´« ç´¯ ç´° ç´¹ çµ‚ çµ„ çµ çµ• çµ¡ çµ¦ çµ± çµ² ç¶“ ç¶œ ç¶  ç¶­ ç¶± ç¶² ç·Š ç·’ ç·š ç·£ ç·¨ ç·© ç·¬ ç·¯ ç·´ ç¸£ ç¸® ç¸± ç¸½ ç¸¾ ç¹ ç¹† ç¹” ç¹ž ç¹ª ç¹³ ç¹¼ çºŒ ç¼¸ ç¼º ç½• ç½ª ç½® ç½° ç½² ç½µ ç½· ç¾… ç¾Š ç¾Ž ç¾ž ç¾¤ ç¾© ç¾½ ç¿ ç¿’ ç¿” ç¿° ç¿¹ ç¿» ç¿¼ è€€ è€ è€ƒ è€… è€Œ è€ è€ è€— è€³ è€¶ èŠ è– èš èž è¯ è° è² è· è½ è‚‰ è‚š è‚¡ è‚¥ è‚© è‚¯ è‚² èƒŒ èƒŽ èƒ– èƒž èƒ¡ èƒ¸ èƒ½ è„† è„« è…“ è…” è…¦ è…° è…³ è…¿ è†½ è‡‰ è‡˜ è‡£ è‡¥ è‡¨ è‡ª è‡­ è‡³ è‡´ è‡º èˆ‡ èˆ‡ èˆˆ èˆ‰ èˆŠ èˆŒ èˆ èˆ’ èˆž èˆŸ èˆª èˆ¬ èˆ¹ è‰¦ è‰¯ è‰² è‰¾ èŠ èŠ¬ èŠ± èŠ³ è‹¥ è‹¦ è‹± èŒ… èŒ« èŒ² èŒ¶ è‰ è’ è· èŽ‰ èŽŠ èŽŽ èŽ« èœ è© è¯ è² è„ èŠ è¬ è½ è‘‰ è‘— è‘› è‘¡ è’‚ è’™ è’² è’¼ è“‹ è“® è”• è”¡ è”£ è•­ è–„ è–¦ è–© è–ª è—‰ è— è— è— è—¤ è—¥ è˜† è˜‡ è˜­ è™Ž è™• è™› è™Ÿ è™§ è›‹ è›™ èœ‚ èœœ è¶ èž èž¢ èŸ² èŸ¹ è  è » è¡€ è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ è¡¨ è¢‹ è¢« è£ è£‚ è£• è£œ è£ è£¡ è£½ è¤‡ è¤² è¥¿ è¦ è¦† è¦‹ è¦ è¦– è¦ª è¦º è¦½ è§€ è§’ è§£ è§¸ è¨€ è¨‚ è¨ˆ è¨Š è¨Ž è¨“ è¨— è¨˜ è¨¥ è¨ª è¨­ è¨± è¨´ è¨» è¨¼ è©• è©ž è©¢ è©¦ è©© è©± è©± è©² è©³ èª‡ èªŒ èª èª“ èª• èªž èª  èª¤ èªª èª° èª² èª¼ èª¿ è«‡ è«‹ è«’ è«– è«¸ è«º è«¾ è¬€ è¬‚ è¬› è¬ è­‰ è­˜ è­œ è­¦ è­¯ è­° è­· è­½ è®€ è®Š è®“ è®š è°· è±† è±ˆ è± è±¡ è±ª è±¬ è²Œ è²“ è² è²ž è²  è²  è²¡ è²¢ è²¨ è²ª è²ª è²« è²¬ è²´ è²· è²» è²¼ è³€ è³‡ è³ˆ è³“ è³œ è³ž è³¢ è³¢ è³£ è³¤ è³¦ è³ª è³­ è³´ è³º è³¼ è³½ è´ˆ è´Š è´ èµ¤ èµ« èµ° èµ· è¶… è¶Š è¶• è¶™ è¶£ è¶¨ è¶³ è·Œ è·Ž è·‘ è· è·Ÿ è·¡ è·¯ è·³ è¸ è¸¢ è¹Ÿ è¹¤ èº èº« èº² è»Š è»Œ è» è»’ è»Ÿ è¼ƒ è¼‰ è¼” è¼• è¼› è¼ è¼© è¼ª è¼¯ è¼¸ è½‰ è½Ÿ è¾› è¾¦ è¾¨ è¾­ è¾¯ è¾± è¾² è¿… è¿Ž è¿‘ è¿¦ è¿ª è¿« è¿° è¿´ è¿· è¿½ é€€ é€ é€ƒ é€† é€ é€ é€” é€™ é€™ é€š é€› é€ é€Ÿ é€  é€¢ é€£ é€± é€² é€¸ é€¼ é‡ éŠ é‹ é éŽ é“ é“ é” é• é™ éœ é  é© é­ é® é² é· é¸ éº é¿ é¿ é‚€ é‚ é‚„ é‚Š é‚ é‚£ é‚¦ é‚ª é‚± éƒŽ éƒ¨ éƒ­ éƒµ éƒ½ é„‚ é„‰ é„­ é„° é… é…’ é…· é…¸ é†‰ é†’ é†œ é†« é‡‡ é‡‹ é‡‹ é‡Œ é‡ é‡Ž é‡ é‡‘ é‡ é‡£ éˆ´ éŠ€ éŠ– éŠ˜ éŠ³ éŠ· é‹’ é‹¼ éŒ„ éŒ¢ éŒ¦ éŒ« éŒ¯ é‹ éµ é¾ éŽŠ éŽ– éŽ® é¡ é˜ éµ é‘‘ é•· é–€ é–ƒ é–‰ é–‹ é–’ é–“ é–£ é–± é—† é—Š é— é—œ é—¡ é˜² é˜» é˜¿ é™€ é™„ é™ é™ é™¢ é™¢ é™£ é™¤ é™ª é™° é™³ é™µ é™µ é™¶ é™· é™¸ é™½ éš† éšŠ éšŽ éš” éš› éšœ éš¨ éšª éš± éš» é›„ é›„ é›… é›† é›– é›™ é›œ é›ž é›¢ é›£ é›¨ é›ª é›² é›¶ é›· é›» éœ€ éœ‡ éœ éœ§ éœ² éœ¸ éœ¹ é‚ éˆ é’ é– éœ éž é  é¢ é© é¼ éž‹ éŸƒ éŸ‹ éŸ“ éŸ³ éŸ» éŸ¿ é  é ‚ é … é † é ˆ é  é ‘ é “ é — é ˜ é ­ é » é¡† é¡Œ é¡ é¡ é¡˜ é¡ž é¡§ é¡¯ é¢¨ é£„ é£› é£Ÿ é£¯ é£² é£½ é£¾ é¤… é¤Š é¤ é¤˜ é¤¨ é¦– é¦™ é¦¬ é§ é§• é§› é¨Ž é¨™ é¨· é©… é©— é©š éª¨ é«” é«˜ é«® é¬† é¬¥ é¬§ é¬± é¬¼ é­ é­‚ é­… é­” é­š é­¯ é®® é³¥ é³³ é³´ é´» éµ é·¹ é¹¿ éº— éº¥ éºµ éº» éº¼ é»ƒ é»Ž é»‘ é»˜ é»ž é»¨ é¼“ é¼  é¼» é½Š é½‹ é½’ é½¡ é¾ é¾œ",
-		3: "ä¼ ä¾¶ å…Œ å…¹ åˆ« å‹³ å‘ å  å¶ å ¤ å¢Ž å¥¥ å­œ å³‡ å·½ å½ æ¥” æ¸¾ ç‡¦ ç‹„ ç³ ç‘š ç”« ç¤ èŠ’ è‹— èŒ¨ èš© èœ€ éš´",
-		5: "ä¸€ ä¸ ä¸ˆ ä¸ ä¸” ä¸ž ä¸¦ ä¸² ä¹˜ ä¹¾ äº‚ äº­ å‚€ åƒŽ åƒµ å„ å„Ÿ å„³ å„· å„» å¢ åš´ å›Œ å›‘ å»³",
-	},
-	"zu": {
-		0: "a b bh c ch d dl dy e f g gc gq gx h hh hl i j k kh kl kp l m n nc ngc ngq ngx nhl nk nkc nkq nkx nq ntsh nx ny o p ph q qh r rh s sh t th tl ts tsh u v w x xh y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/col.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/col.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/col.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/col.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,95 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"exp/locale/collate"
-	"log"
-	"unicode/utf16"
-)
-
-// Input holds an input string in both UTF-8 and UTF-16 format.
-type Input struct {
-	index int // used for restoring to original random order
-	UTF8  []byte
-	UTF16 []uint16
-	key   []byte // used for sorting
-}
-
-func (i Input) String() string {
-	return string(i.UTF8)
-}
-
-func makeInput(s8 []byte, s16 []uint16) Input {
-	return Input{UTF8: s8, UTF16: s16}
-}
-
-func makeInputString(s string) Input {
-	return Input{
-		UTF8:  []byte(s),
-		UTF16: utf16.Encode([]rune(s)),
-	}
-}
-
-// Collator is an interface for architecture-specific implementations of collation.
-type Collator interface {
-	// Key generates a sort key for the given input.  Implemenations
-	// may return nil if a collator does not support sort keys.
-	Key(s Input) []byte
-
-	// Compare returns -1 if a < b, 1 if a > b and 0 if a == b.
-	Compare(a, b Input) int
-}
-
-// CollatorFactory creates a Collator for a given locale.
-type CollatorFactory struct {
-	name        string
-	makeFn      func(locale string) (Collator, error)
-	description string
-}
-
-var collators = []CollatorFactory{}
-
-// AddFactory registers f as a factory for an implementation of Collator.
-func AddFactory(f CollatorFactory) {
-	collators = append(collators, f)
-}
-
-func getCollator(name, locale string) Collator {
-	for _, f := range collators {
-		if f.name == name {
-			col, err := f.makeFn(locale)
-			if err != nil {
-				log.Fatal(err)
-			}
-			return col
-		}
-	}
-	log.Fatalf("collator of type %q not found", name)
-	return nil
-}
-
-// goCollator is an implemention of Collator using go's own collator.
-type goCollator struct {
-	c   *collate.Collator
-	buf collate.Buffer
-}
-
-func init() {
-	AddFactory(CollatorFactory{"go", newGoCollator, "Go's native collator implementation."})
-}
-
-func newGoCollator(locale string) (Collator, error) {
-	c := &goCollator{c: collate.New(locale)}
-	return c, nil
-}
-
-func (c *goCollator) Key(b Input) []byte {
-	return c.c.Key(&c.buf, b.UTF8)
-}
-
-func (c *goCollator) Compare(a, b Input) int {
-	return c.c.Compare(a.UTF8, b.UTF8)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,528 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"bytes"
-	"exp/norm"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"os"
-	"runtime/pprof"
-	"sort"
-	"strconv"
-	"strings"
-	"text/template"
-	"time"
-)
-
-var (
-	doNorm  = flag.Bool("norm", false, "normalize input strings")
-	cases   = flag.Bool("case", false, "generate case variants")
-	verbose = flag.Bool("verbose", false, "print results")
-	debug   = flag.Bool("debug", false, "output debug information")
-	locale  = flag.String("locale", "en_US", "the locale to use. May be a comma-separated list for some commands.")
-	col     = flag.String("col", "go", "collator to test")
-	gold    = flag.String("gold", "go", "collator used as the gold standard")
-	usecmp  = flag.Bool("usecmp", false,
-		`use comparison instead of sort keys when sorting.  Must be "test", "gold" or "both"`)
-	cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
-	exclude    = flag.String("exclude", "", "exclude errors that contain any of the characters")
-	limit      = flag.Int("limit", 5000000, "maximum number of samples to generate for one run")
-)
-
-func failOnError(err error) {
-	if err != nil {
-		log.Panic(err)
-	}
-}
-
-// Test holds test data for testing a locale-collator pair.
-// Test also provides functionality that is commonly used by the various commands.
-type Test struct {
-	ctxt    *Context
-	Name    string
-	Locale  string
-	ColName string
-
-	Col        Collator
-	UseCompare bool
-
-	Input    []Input
-	Duration time.Duration
-
-	start time.Time
-	msg   string
-	count int
-}
-
-func (t *Test) clear() {
-	t.Col = nil
-	t.Input = nil
-}
-
-const (
-	msgGeneratingInput = "generating input"
-	msgGeneratingKeys  = "generating keys"
-	msgSorting         = "sorting"
-)
-
-var lastLen = 0
-
-func (t *Test) SetStatus(msg string) {
-	if *debug || *verbose {
-		fmt.Printf("%s: %s...\n", t.Name, msg)
-	} else if t.ctxt.out != nil {
-		fmt.Fprint(t.ctxt.out, strings.Repeat(" ", lastLen))
-		fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen))
-		fmt.Fprint(t.ctxt.out, msg, "...")
-		lastLen = len(msg) + 3
-		fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen))
-	}
-}
-
-// Start is used by commands to signal the start of an operation.
-func (t *Test) Start(msg string) {
-	t.SetStatus(msg)
-	t.count = 0
-	t.msg = msg
-	t.start = time.Now()
-}
-
-// Stop is used by commands to signal the end of an operation.
-func (t *Test) Stop() (time.Duration, int) {
-	d := time.Now().Sub(t.start)
-	t.Duration += d
-	if *debug || *verbose {
-		fmt.Printf("%s: %s done. (%.3fs /%dK ops)\n", t.Name, t.msg, d.Seconds(), t.count/1000)
-	}
-	return d, t.count
-}
-
-// generateKeys generates sort keys for all the inputs.
-func (t *Test) generateKeys() {
-	for i, s := range t.Input {
-		b := t.Col.Key(s)
-		t.Input[i].key = b
-		if *debug {
-			fmt.Printf("%s (%X): %X\n", string(s.UTF8), s.UTF16, b)
-		}
-	}
-}
-
-// Sort sorts the inputs. It generates sort keys if this is required by the
-// chosen sort method.
-func (t *Test) Sort() (tkey, tsort time.Duration, nkey, nsort int) {
-	if *cpuprofile != "" {
-		f, err := os.Create(*cpuprofile)
-		failOnError(err)
-		pprof.StartCPUProfile(f)
-		defer pprof.StopCPUProfile()
-	}
-	if t.UseCompare || t.Col.Key(t.Input[0]) == nil {
-		t.Start(msgSorting)
-		sort.Sort(&testCompare{*t})
-		tsort, nsort = t.Stop()
-	} else {
-		t.Start(msgGeneratingKeys)
-		t.generateKeys()
-		t.count = len(t.Input)
-		tkey, nkey = t.Stop()
-		t.Start(msgSorting)
-		sort.Sort(t)
-		tsort, nsort = t.Stop()
-	}
-	return
-}
-
-func (t *Test) Swap(a, b int) {
-	t.Input[a], t.Input[b] = t.Input[b], t.Input[a]
-}
-
-func (t *Test) Less(a, b int) bool {
-	t.count++
-	return bytes.Compare(t.Input[a].key, t.Input[b].key) == -1
-}
-
-func (t Test) Len() int {
-	return len(t.Input)
-}
-
-type testCompare struct {
-	Test
-}
-
-func (t *testCompare) Less(a, b int) bool {
-	t.count++
-	return t.Col.Compare(t.Input[a], t.Input[b]) == -1
-}
-
-type testRestore struct {
-	Test
-}
-
-func (t *testRestore) Less(a, b int) bool {
-	return t.Input[a].index < t.Input[b].index
-}
-
-// GenerateInput generates input phrases for the locale tested by t.
-func (t *Test) GenerateInput() {
-	t.Input = nil
-	if t.ctxt.lastLocale != t.Locale {
-		gen := phraseGenerator{}
-		gen.init(t.Locale)
-		t.SetStatus(msgGeneratingInput)
-		t.ctxt.lastInput = nil // allow the previous value to be garbage collected.
-		t.Input = gen.generate(*doNorm)
-		t.ctxt.lastInput = t.Input
-		t.ctxt.lastLocale = t.Locale
-	} else {
-		t.Input = t.ctxt.lastInput
-		for i := range t.Input {
-			t.Input[i].key = nil
-		}
-		sort.Sort(&testRestore{*t})
-	}
-}
-
-// Context holds all tests and settings translated from command line options.
-type Context struct {
-	test []*Test
-	last *Test
-
-	lastLocale string
-	lastInput  []Input
-
-	out io.Writer
-}
-
-func (ts *Context) Printf(format string, a ...interface{}) {
-	ts.assertBuf()
-	fmt.Fprintf(ts.out, format, a...)
-}
-
-func (ts *Context) Print(a ...interface{}) {
-	ts.assertBuf()
-	fmt.Fprint(ts.out, a...)
-}
-
-// assertBuf sets up an io.Writer for ouput, if it doesn't already exist.
-// In debug and verbose mode, output is buffered so that the regular output
-// will not interfere with the additional output.  Otherwise, output is
-// written directly to stdout for a more responsive feel.
-func (ts *Context) assertBuf() {
-	if ts.out != nil {
-		return
-	}
-	if *debug || *verbose {
-		ts.out = &bytes.Buffer{}
-	} else {
-		ts.out = os.Stdout
-	}
-}
-
-// flush flushes the contents of ts.out to stdout, if it is not stdout already.
-func (ts *Context) flush() {
-	if ts.out != nil {
-		if _, ok := ts.out.(io.ReadCloser); !ok {
-			io.Copy(os.Stdout, ts.out.(io.Reader))
-		}
-	}
-}
-
-// parseTests creates all tests from command lines and returns
-// a Context to hold them.
-func parseTests() *Context {
-	ctxt := &Context{}
-	colls := strings.Split(*col, ",")
-	for _, loc := range strings.Split(*locale, ",") {
-		loc = strings.TrimSpace(loc)
-		for _, name := range colls {
-			name = strings.TrimSpace(name)
-			col := getCollator(name, loc)
-			ctxt.test = append(ctxt.test, &Test{
-				ctxt:       ctxt,
-				Locale:     loc,
-				ColName:    name,
-				UseCompare: *usecmp,
-				Col:        col,
-			})
-		}
-	}
-	return ctxt
-}
-
-func (c *Context) Len() int {
-	return len(c.test)
-}
-
-func (c *Context) Test(i int) *Test {
-	if c.last != nil {
-		c.last.clear()
-	}
-	c.last = c.test[i]
-	return c.last
-}
-
-func parseInput(args []string) []Input {
-	input := []Input{}
-	for _, s := range args {
-		rs := []rune{}
-		for len(s) > 0 {
-			var r rune
-			r, _, s, _ = strconv.UnquoteChar(s, '\'')
-			rs = append(rs, r)
-		}
-		s = string(rs)
-		if *doNorm {
-			s = norm.NFC.String(s)
-		}
-		input = append(input, makeInputString(s))
-	}
-	return input
-}
-
-// A Command is an implementation of a colcmp command.
-type Command struct {
-	Run   func(cmd *Context, args []string)
-	Usage string
-	Short string
-	Long  string
-}
-
-func (cmd Command) Name() string {
-	return strings.SplitN(cmd.Usage, " ", 2)[0]
-}
-
-var commands = []*Command{
-	cmdSort,
-	cmdBench,
-	cmdRegress,
-}
-
-const sortHelp = `
-Sort sorts a given list of strings.  Strings are separated by whitespace.
-`
-
-var cmdSort = &Command{
-	Run:   runSort,
-	Usage: "sort <string>*",
-	Short: "sort a given list of strings",
-	Long:  sortHelp,
-}
-
-func runSort(ctxt *Context, args []string) {
-	input := parseInput(args)
-	if len(input) == 0 {
-		log.Fatalf("Nothing to sort.")
-	}
-	if ctxt.Len() > 1 {
-		ctxt.Print("COLL  LOCALE RESULT\n")
-	}
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		t.Input = append(t.Input, input...)
-		t.Sort()
-		if ctxt.Len() > 1 {
-			ctxt.Printf("%-5s %-5s  ", t.ColName, t.Locale)
-		}
-		for _, s := range t.Input {
-			ctxt.Print(string(s.UTF8), " ")
-		}
-		ctxt.Print("\n")
-	}
-}
-
-const benchHelp = `
-Bench runs a benchmark for the given list of collator implementations.
-If no collator implementations are given, the go collator will be used.
-`
-
-var cmdBench = &Command{
-	Run:   runBench,
-	Usage: "bench",
-	Short: "benchmark a given list of collator implementations",
-	Long:  benchHelp,
-}
-
-func runBench(ctxt *Context, args []string) {
-	ctxt.Printf("%-7s %-5s %-6s %-24s %-24s %-5s %s\n", "LOCALE", "COLL", "N", "KEYS", "SORT", "AVGLN", "TOTAL")
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		ctxt.Printf("%-7s %-5s ", t.Locale, t.ColName)
-		t.GenerateInput()
-		ctxt.Printf("%-6s ", fmt.Sprintf("%dK", t.Len()/1000))
-		tkey, tsort, nkey, nsort := t.Sort()
-		p := func(dur time.Duration, n int) {
-			s := ""
-			if dur > 0 {
-				s = fmt.Sprintf("%6.3fs ", dur.Seconds())
-				if n > 0 {
-					s += fmt.Sprintf("%15s", fmt.Sprintf("(%4.2f ns/op)", float64(dur)/float64(n)))
-				}
-			}
-			ctxt.Printf("%-24s ", s)
-		}
-		p(tkey, nkey)
-		p(tsort, nsort)
-
-		total := 0
-		for _, s := range t.Input {
-			total += len(s.key)
-		}
-		ctxt.Printf("%-5d ", total/t.Len())
-		ctxt.Printf("%6.3fs\n", t.Duration.Seconds())
-		if *debug {
-			for _, s := range t.Input {
-				fmt.Print(string(s.UTF8), " ")
-			}
-			fmt.Println()
-		}
-	}
-}
-
-const regressHelp = `
-Regress runs a monkey test by comparing the results of randomly generated tests
-between two implementations of a collator. The user may optionally pass a list
-of strings to regress against instead of the default test set.
-`
-
-var cmdRegress = &Command{
-	Run:   runRegress,
-	Usage: "regress -gold=<col> -test=<col> [string]*",
-	Short: "run a monkey test between two collators",
-	Long:  regressHelp,
-}
-
-const failedKeyCompare = `
-%s:%d: incorrect comparison result for input:
-    a:   %q (%.4X)
-    key: %s
-    b:   %q (%.4X)
-    key: %s
-    Compare(a, b) = %d; want %d.
-
-  gold keys:
-	a:   %s
-	b:   %s
-`
-
-const failedCompare = `
-%s:%d: incorrect comparison result for input:
-    a:   %q (%.4X)
-    b:   %q (%.4X)
-    Compare(a, b) = %d; want %d.
-`
-
-func keyStr(b []byte) string {
-	buf := &bytes.Buffer{}
-	for _, v := range b {
-		fmt.Fprintf(buf, "%.2X ", v)
-	}
-	return buf.String()
-}
-
-func runRegress(ctxt *Context, args []string) {
-	input := parseInput(args)
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		if len(input) > 0 {
-			t.Input = append(t.Input, input...)
-		} else {
-			t.GenerateInput()
-		}
-		t.Sort()
-		count := 0
-		gold := getCollator(*gold, t.Locale)
-		for i := 1; i < len(t.Input); i++ {
-			ia := t.Input[i-1]
-			ib := t.Input[i]
-			if bytes.IndexAny(ib.UTF8, *exclude) != -1 {
-				i++
-				continue
-			}
-			if bytes.IndexAny(ia.UTF8, *exclude) != -1 {
-				continue
-			}
-			goldCmp := gold.Compare(ia, ib)
-			if cmp := bytes.Compare(ia.key, ib.key); cmp != goldCmp {
-				count++
-				a := string(ia.UTF8)
-				b := string(ib.UTF8)
-				fmt.Printf(failedKeyCompare, t.Locale, i-1, a, []rune(a), keyStr(ia.key), b, []rune(b), keyStr(ib.key), cmp, goldCmp, keyStr(gold.Key(ia)), keyStr(gold.Key(ib)))
-			} else if cmp := t.Col.Compare(ia, ib); cmp != goldCmp {
-				count++
-				a := string(ia.UTF8)
-				b := string(ib.UTF8)
-				fmt.Printf(failedCompare, t.Locale, i-1, a, []rune(a), b, []rune(b), cmp, goldCmp)
-			}
-		}
-		if count > 0 {
-			ctxt.Printf("Found %d inconsistencies in %d entries.\n", count, t.Len()-1)
-		}
-	}
-}
-
-const helpTemplate = `
-colcmp is a tool for testing and benchmarking collation
-
-Usage: colcmp command [arguments]
-
-The commands are:
-{{range .}}
-    {{.Name | printf "%-11s"}} {{.Short}}{{end}}
-
-Use "col help [topic]" for more information about that topic.
-`
-
-const detailedHelpTemplate = `
-Usage: colcmp {{.Usage}}
-
-{{.Long | trim}}
-`
-
-func runHelp(args []string) {
-	t := template.New("help")
-	t.Funcs(template.FuncMap{"trim": strings.TrimSpace})
-	if len(args) < 1 {
-		template.Must(t.Parse(helpTemplate))
-		failOnError(t.Execute(os.Stderr, &commands))
-	} else {
-		for _, cmd := range commands {
-			if cmd.Name() == args[0] {
-				template.Must(t.Parse(detailedHelpTemplate))
-				failOnError(t.Execute(os.Stderr, cmd))
-				os.Exit(0)
-			}
-		}
-		log.Fatalf("Unknown command %q. Run 'colcmp help'.", args[0])
-	}
-	os.Exit(0)
-}
-
-func main() {
-	flag.Parse()
-	log.SetFlags(0)
-
-	ctxt := parseTests()
-
-	if flag.NArg() < 1 {
-		runHelp(nil)
-	}
-	args := flag.Args()[1:]
-	if flag.Arg(0) == "help" {
-		runHelp(args)
-	}
-	for _, cmd := range commands {
-		if cmd.Name() == flag.Arg(0) {
-			cmd.Run(ctxt, args)
-			ctxt.flush()
-			return
-		}
-	}
-	runHelp(flag.Args())
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/darwin.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/darwin.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/darwin.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/darwin.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build darwin
-
-package main
-
-/*
-#cgo LDFLAGS: -framework CoreFoundation
-#include <CoreFoundation/CFBase.h>
-#include <CoreFoundation/CoreFoundation.h>
-*/
-import "C"
-import (
-	"unsafe"
-)
-
-func init() {
-	AddFactory(CollatorFactory{"osx", newOSX16Collator,
-		"OS X/Darwin collator, using native strings."})
-	AddFactory(CollatorFactory{"osx8", newOSX8Collator,
-		"OS X/Darwin collator for UTF-8."})
-}
-
-func osxUInt8P(s []byte) *C.UInt8 {
-	return (*C.UInt8)(unsafe.Pointer(&s[0]))
-}
-
-func osxCharP(s []uint16) *C.UniChar {
-	return (*C.UniChar)(unsafe.Pointer(&s[0]))
-}
-
-// osxCollator implements an Collator based on OS X's CoreFoundation.
-type osxCollator struct {
-	loc C.CFLocaleRef
-	opt C.CFStringCompareFlags
-}
-
-func (c *osxCollator) init(locale string) {
-	l := C.CFStringCreateWithBytes(
-		nil,
-		osxUInt8P([]byte(locale)),
-		C.CFIndex(len(locale)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-	)
-	c.loc = C.CFLocaleCreate(nil, l)
-}
-
-func newOSX8Collator(locale string) (Collator, error) {
-	c := &osx8Collator{}
-	c.init(locale)
-	return c, nil
-}
-
-func newOSX16Collator(locale string) (Collator, error) {
-	c := &osx16Collator{}
-	c.init(locale)
-	return c, nil
-}
-
-func (c osxCollator) Key(s Input) []byte {
-	return nil // sort keys not supported by OS X CoreFoundation
-}
-
-type osx8Collator struct {
-	osxCollator
-}
-
-type osx16Collator struct {
-	osxCollator
-}
-
-func (c osx16Collator) Compare(a, b Input) int {
-	sa := C.CFStringCreateWithCharactersNoCopy(
-		nil,
-		osxCharP(a.UTF16),
-		C.CFIndex(len(a.UTF16)),
-		C.kCFAllocatorNull,
-	)
-	sb := C.CFStringCreateWithCharactersNoCopy(
-		nil,
-		osxCharP(b.UTF16),
-		C.CFIndex(len(b.UTF16)),
-		C.kCFAllocatorNull,
-	)
-	_range := C.CFRangeMake(0, C.CFStringGetLength(sa))
-	return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc))
-}
-
-func (c osx8Collator) Compare(a, b Input) int {
-	sa := C.CFStringCreateWithBytesNoCopy(
-		nil,
-		osxUInt8P(a.UTF8),
-		C.CFIndex(len(a.UTF8)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-		C.kCFAllocatorNull,
-	)
-	sb := C.CFStringCreateWithBytesNoCopy(
-		nil,
-		osxUInt8P(b.UTF8),
-		C.CFIndex(len(b.UTF8)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-		C.kCFAllocatorNull,
-	)
-	_range := C.CFRangeMake(0, C.CFStringGetLength(sa))
-	return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/gen.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/gen.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/gen.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,179 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"exp/norm"
-	"math"
-	"math/rand"
-	"strings"
-	"unicode"
-	"unicode/utf16"
-	"unicode/utf8"
-)
-
-// parent computes the parent locale for the given locale.
-// It returns false if the parent is already root.
-func parent(locale string) (parent string, ok bool) {
-	if locale == "root" {
-		return "", false
-	}
-	if i := strings.LastIndex(locale, "_"); i != -1 {
-		return locale[:i], true
-	}
-	return "root", true
-}
-
-// rewriter is used to both unique strings and create variants of strings
-// to add to the test set.
-type rewriter struct {
-	seen     map[string]bool
-	addCases bool
-}
-
-func newRewriter() *rewriter {
-	return &rewriter{
-		seen: make(map[string]bool),
-	}
-}
-
-func (r *rewriter) insert(a []string, s string) []string {
-	if !r.seen[s] {
-		r.seen[s] = true
-		a = append(a, s)
-	}
-	return a
-}
-
-// rewrite takes a sequence of strings in, adds variants of the these strings
-// based on options and removes duplicates.
-func (r *rewriter) rewrite(ss []string) []string {
-	ns := []string{}
-	for _, s := range ss {
-		ns = r.insert(ns, s)
-		if r.addCases {
-			rs := []rune(s)
-			rn := rs[0]
-			for c := unicode.SimpleFold(rn); c != rn; c = unicode.SimpleFold(c) {
-				rs[0] = c
-				ns = r.insert(ns, string(rs))
-			}
-		}
-	}
-	return ns
-}
-
-// exemplarySet holds a parsed set of characters from the exemplarCharacters table.
-type exemplarySet struct {
-	typ       exemplarType
-	set       []string
-	charIndex int // cumulative total of phrases, including this set
-}
-
-type phraseGenerator struct {
-	sets [exN]exemplarySet
-	n    int
-}
-
-func (g *phraseGenerator) init(locale string) {
-	ec := exemplarCharacters
-	// get sets for locale or parent locale if the set is not defined.
-	for i := range g.sets {
-		for p, ok := locale, true; ok; p, ok = parent(p) {
-			if set, ok := ec[p]; ok && set[i] != "" {
-				g.sets[i].set = strings.Split(set[i], " ")
-				break
-			}
-		}
-	}
-	r := newRewriter()
-	r.addCases = *cases
-	for i := range g.sets {
-		g.sets[i].set = r.rewrite(g.sets[i].set)
-	}
-	// compute indexes
-	for i, set := range g.sets {
-		g.n += len(set.set)
-		g.sets[i].charIndex = g.n
-	}
-}
-
-// phrase returns the ith phrase, where i < g.n.
-func (g *phraseGenerator) phrase(i int) string {
-	for _, set := range g.sets {
-		if i < set.charIndex {
-			return set.set[i-(set.charIndex-len(set.set))]
-		}
-	}
-	panic("index out of range")
-}
-
-// generate generates inputs by combining all pairs of examplar strings.
-// If doNorm is true, all input strings are normalized to NFC.
-// TODO: allow other variations, statistical models, and random
-// trailing sequences.
-func (g *phraseGenerator) generate(doNorm bool) []Input {
-	const (
-		M         = 1024 * 1024
-		buf8Size  = 30 * M
-		buf16Size = 10 * M
-	)
-	// TODO: use a better way to limit the input size.
-	if sq := int(math.Sqrt(float64(*limit))); g.n > sq {
-		g.n = sq
-	}
-	size := g.n * g.n
-	a := make([]Input, 0, size)
-	buf8 := make([]byte, 0, buf8Size)
-	buf16 := make([]uint16, 0, buf16Size)
-
-	addInput := func(str string) {
-		buf8 = buf8[len(buf8):]
-		buf16 = buf16[len(buf16):]
-		if len(str) > cap(buf8) {
-			buf8 = make([]byte, 0, buf8Size)
-		}
-		if len(str) > cap(buf16) {
-			buf16 = make([]uint16, 0, buf16Size)
-		}
-		if doNorm {
-			buf8 = norm.NFC.AppendString(buf8, str)
-		} else {
-			buf8 = append(buf8, str...)
-		}
-		buf16 = appendUTF16(buf16, buf8)
-		a = append(a, makeInput(buf8, buf16))
-	}
-	for i := 0; i < g.n; i++ {
-		p1 := g.phrase(i)
-		addInput(p1)
-		for j := 0; j < g.n; j++ {
-			p2 := g.phrase(j)
-			addInput(p1 + p2)
-		}
-	}
-	// permutate
-	rnd := rand.New(rand.NewSource(int64(rand.Int())))
-	for i := range a {
-		j := i + rnd.Intn(len(a)-i)
-		a[i], a[j] = a[j], a[i]
-		a[i].index = i // allow restoring this order if input is used multiple times.
-	}
-	return a
-}
-
-func appendUTF16(buf []uint16, s []byte) []uint16 {
-	for len(s) > 0 {
-		r, sz := utf8.DecodeRune(s)
-		s = s[sz:]
-		r1, r2 := utf16.EncodeRune(r)
-		if r1 != 0xFFFD {
-			buf = append(buf, uint16(r1), uint16(r2))
-		} else {
-			buf = append(buf, uint16(r))
-		}
-	}
-	return buf
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/icu.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/icu.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/icu.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/icu.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,209 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build icu
-
-package main
-
-/*
-#cgo LDFLAGS: -licui18n -licuuc
-#include <stdlib.h>
-#include <unicode/ucol.h>
-#include <unicode/uiter.h>
-#include <unicode/utypes.h>
-*/
-import "C"
-import (
-	"fmt"
-	"log"
-	"unicode/utf16"
-	"unicode/utf8"
-	"unsafe"
-)
-
-func init() {
-	AddFactory(CollatorFactory{"icu", newUTF16,
-		"Main ICU collator, using native strings."})
-	AddFactory(CollatorFactory{"icu8", newUTF8iter,
-		"ICU collator using ICU iterators to process UTF8."})
-	AddFactory(CollatorFactory{"icu16", newUTF8conv,
-		"ICU collation by first converting UTF8 to UTF16."})
-}
-
-func icuCharP(s []byte) *C.char {
-	return (*C.char)(unsafe.Pointer(&s[0]))
-}
-
-func icuUInt8P(s []byte) *C.uint8_t {
-	return (*C.uint8_t)(unsafe.Pointer(&s[0]))
-}
-
-func icuUCharP(s []uint16) *C.UChar {
-	return (*C.UChar)(unsafe.Pointer(&s[0]))
-}
-func icuULen(s []uint16) C.int32_t {
-	return C.int32_t(len(s))
-}
-func icuSLen(s []byte) C.int32_t {
-	return C.int32_t(len(s))
-}
-
-// icuCollator implements a Collator based on ICU.
-type icuCollator struct {
-	loc    *C.char
-	col    *C.UCollator
-	keyBuf []byte
-}
-
-const growBufSize = 10 * 1024 * 1024
-
-func (c *icuCollator) init(locale string) error {
-	err := C.UErrorCode(0)
-	c.loc = C.CString(locale)
-	c.col = C.ucol_open(c.loc, &err)
-	if err > 0 {
-		return fmt.Errorf("failed opening collator for %q", locale)
-	} else if err < 0 {
-		loc := C.ucol_getLocaleByType(c.col, 0, &err)
-		fmt, ok := map[int]string{
-			-127: "warning: using default collator: %s",
-			-128: "warning: using fallback collator: %s",
-		}[int(err)]
-		if ok {
-			log.Printf(fmt, C.GoString(loc))
-		}
-	}
-	c.keyBuf = make([]byte, 0, growBufSize)
-	return nil
-}
-
-func (c *icuCollator) buf() (*C.uint8_t, C.int32_t) {
-	if len(c.keyBuf) == cap(c.keyBuf) {
-		c.keyBuf = make([]byte, 0, growBufSize)
-	}
-	b := c.keyBuf[len(c.keyBuf):cap(c.keyBuf)]
-	return icuUInt8P(b), icuSLen(b)
-}
-
-func (c *icuCollator) extendBuf(n C.int32_t) []byte {
-	end := len(c.keyBuf) + int(n)
-	if end > cap(c.keyBuf) {
-		if len(c.keyBuf) == 0 {
-			log.Fatalf("icuCollator: max string size exceeded: %v > %v", n, growBufSize)
-		}
-		c.keyBuf = make([]byte, 0, growBufSize)
-		return nil
-	}
-	b := c.keyBuf[len(c.keyBuf):end]
-	c.keyBuf = c.keyBuf[:end]
-	return b
-}
-
-func (c *icuCollator) Close() error {
-	C.ucol_close(c.col)
-	C.free(unsafe.Pointer(c.loc))
-	return nil
-}
-
-// icuUTF16 implements the Collator interface.
-type icuUTF16 struct {
-	icuCollator
-}
-
-func newUTF16(locale string) (Collator, error) {
-	c := &icuUTF16{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF16) Compare(a, b Input) int {
-	return int(C.ucol_strcoll(c.col, icuUCharP(a.UTF16), icuULen(a.UTF16), icuUCharP(b.UTF16), icuULen(b.UTF16)))
-}
-
-func (c *icuUTF16) Key(s Input) []byte {
-	bp, bn := c.buf()
-	n := C.ucol_getSortKey(c.col, icuUCharP(s.UTF16), icuULen(s.UTF16), bp, bn)
-	if b := c.extendBuf(n); b != nil {
-		return b
-	}
-	return c.Key(s)
-}
-
-// icuUTF8iter implements the Collator interface
-// This implementation wraps the UTF8 string in an iterator
-// which is passed to the collator.
-type icuUTF8iter struct {
-	icuCollator
-	a, b C.UCharIterator
-}
-
-func newUTF8iter(locale string) (Collator, error) {
-	c := &icuUTF8iter{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF8iter) Compare(a, b Input) int {
-	err := C.UErrorCode(0)
-	C.uiter_setUTF8(&c.a, icuCharP(a.UTF8), icuSLen(a.UTF8))
-	C.uiter_setUTF8(&c.b, icuCharP(b.UTF8), icuSLen(b.UTF8))
-	return int(C.ucol_strcollIter(c.col, &c.a, &c.b, &err))
-}
-
-func (c *icuUTF8iter) Key(s Input) []byte {
-	err := C.UErrorCode(0)
-	state := [2]C.uint32_t{}
-	C.uiter_setUTF8(&c.a, icuCharP(s.UTF8), icuSLen(s.UTF8))
-	bp, bn := c.buf()
-	n := C.ucol_nextSortKeyPart(c.col, &c.a, &(state[0]), bp, bn, &err)
-	if n >= bn {
-		// Force failure.
-		if c.extendBuf(n+1) != nil {
-			log.Fatal("expected extension to fail")
-		}
-		return c.Key(s)
-	}
-	return c.extendBuf(n)
-}
-
-// icuUTF8conv implementes the Collator interface.
-// This implentation first converts the give UTF8 string
-// to UTF16 and then calls the main ICU collation function.
-type icuUTF8conv struct {
-	icuCollator
-}
-
-func newUTF8conv(locale string) (Collator, error) {
-	c := &icuUTF8conv{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF8conv) Compare(sa, sb Input) int {
-	a := encodeUTF16(sa.UTF8)
-	b := encodeUTF16(sb.UTF8)
-	return int(C.ucol_strcoll(c.col, icuUCharP(a), icuULen(a), icuUCharP(b), icuULen(b)))
-}
-
-func (c *icuUTF8conv) Key(s Input) []byte {
-	a := encodeUTF16(s.UTF8)
-	bp, bn := c.buf()
-	n := C.ucol_getSortKey(c.col, icuUCharP(a), icuULen(a), bp, bn)
-	if b := c.extendBuf(n); b != nil {
-		return b
-	}
-	return c.Key(s)
-}
-
-func encodeUTF16(b []byte) []uint16 {
-	a := []uint16{}
-	for len(b) > 0 {
-		r, sz := utf8.DecodeRune(b)
-		b = b[sz:]
-		r1, r2 := utf16.EncodeRune(r)
-		if r1 != 0xFFFD {
-			a = append(a, uint16(r1), uint16(r2))
-		} else {
-			a = append(a, uint16(r))
-		}
-	}
-	return a
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie.go gcc-4.8.1/libgo/go/exp/locale/collate/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/trie.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,160 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// The trie in this file is used to associate the first full character
-// in an UTF-8 string to a collation element.
-// All but the last byte in a UTF-8 byte sequence are
-// used to lookup offsets in the index table to be used for the next byte.
-// The last byte is used to index into a table of collation elements.
-// For a full description, see exp/locale/collate/build/trie.go.
-
-package collate
-
-const blockSize = 64
-
-type trie struct {
-	index0  []uint16 // index for first byte (0xC0-0xFF)
-	values0 []uint32 // index for first byte (0x00-0x7F)
-	index   []uint16
-	values  []uint32
-}
-
-const (
-	t1 = 0x00 // 0000 0000
-	tx = 0x80 // 1000 0000
-	t2 = 0xC0 // 1100 0000
-	t3 = 0xE0 // 1110 0000
-	t4 = 0xF0 // 1111 0000
-	t5 = 0xF8 // 1111 1000
-	t6 = 0xFC // 1111 1100
-	te = 0xFE // 1111 1110
-)
-
-func (t *trie) lookupValue(n uint16, b byte) Elem {
-	return Elem(t.values[int(n)<<6+int(b)])
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookup(s []byte) (v Elem, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return Elem(t.values0[c0]), 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = int(i)<<6 + int(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// The body of lookupString is a verbatim copy of that of lookup.
-func (t *trie) lookupString(s string) (v Elem, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return Elem(t.values0[c0]), 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = int(i)<<6 + int(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie_test.go gcc-4.8.1/libgo/go/exp/locale/collate/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/locale/collate/trie_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,106 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-)
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-// Test cases for illegal runes.
-type trietest struct {
-	size  int
-	bytes []byte
-}
-
-var tests = []trietest{
-	// illegal runes
-	{1, []byte{0x80}},
-	{1, []byte{0xFF}},
-	{1, []byte{t2, tx - 1}},
-	{1, []byte{t2, t2}},
-	{2, []byte{t3, tx, tx - 1}},
-	{2, []byte{t3, tx, t2}},
-	{1, []byte{t3, tx - 1, tx}},
-	{3, []byte{t4, tx, tx, tx - 1}},
-	{3, []byte{t4, tx, tx, t2}},
-	{1, []byte{t4, t2, tx, tx - 1}},
-	{2, []byte{t4, tx, t2, tx - 1}},
-
-	// short runes
-	{0, []byte{t2}},
-	{0, []byte{t3, tx}},
-	{0, []byte{t4, tx, tx}},
-
-	// we only support UTF-8 up to utf8.UTFMax bytes (4 bytes)
-	{1, []byte{t5, tx, tx, tx, tx}},
-	{1, []byte{t6, tx, tx, tx, tx, tx}},
-}
-
-func TestLookupTrie(t *testing.T) {
-	for i, r := range testRunes {
-		b := []byte(string(r))
-		v, sz := testTrie.lookup(b)
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", r, v, i)
-		}
-		if sz != len(b) {
-			t.Errorf("lookup(%U): found size %d, expected %d", r, sz, len(b))
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testTrie.lookup(tt.bytes)
-		if int(v) != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-}
-
-// test data is taken from exp/collate/locale/build/trie_test.go
-var testValues = [832]uint32{
-	0x000c: 0x00000001,
-	0x007f: 0x00000002,
-	0x00c0: 0x00000003,
-	0x0100: 0x00000004,
-	0x0140: 0x0000000c, 0x0141: 0x0000000d, 0x0142: 0x0000000e,
-	0x0150: 0x0000000f,
-	0x0155: 0x00000010,
-	0x01bf: 0x00000005,
-	0x01c0: 0x00000006,
-	0x0219: 0x00000007,
-	0x027f: 0x00000008,
-	0x0280: 0x00000009,
-	0x02c1: 0x0000000a,
-	0x033f: 0x0000000b,
-}
-
-var testLookup = [640]uint16{
-	0x0e0: 0x05, 0x0e6: 0x06,
-	0x13f: 0x07,
-	0x140: 0x08, 0x144: 0x09,
-	0x190: 0x03,
-	0x1ff: 0x0a,
-	0x20f: 0x05,
-	0x242: 0x01, 0x244: 0x02,
-	0x248: 0x03,
-	0x25f: 0x04,
-	0x260: 0x01,
-	0x26f: 0x02,
-	0x270: 0x04, 0x274: 0x06,
-}
-
-var testTrie = trie{testLookup[6*blockSize:], testValues[:], testLookup[:], testValues[:]}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/composition.go gcc-4.8.1/libgo/go/exp/norm/composition.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/composition.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/composition.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,382 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "unicode/utf8"
-
-const (
-	maxCombiningChars = 30
-	maxBufferSize     = maxCombiningChars + 2 // +1 to hold starter +1 to hold CGJ
-	maxBackRunes      = maxCombiningChars - 1
-	maxNFCExpansion   = 3  // NFC(0x1D160)
-	maxNFKCExpansion  = 18 // NFKC(0xFDFA)
-
-	maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128
-)
-
-// reorderBuffer is used to normalize a single segment.  Characters inserted with
-// insert are decomposed and reordered based on CCC. The compose method can
-// be used to recombine characters.  Note that the byte buffer does not hold
-// the UTF-8 characters in order.  Only the rune array is maintained in sorted
-// order. flush writes the resulting segment to a byte array.
-type reorderBuffer struct {
-	rune  [maxBufferSize]Properties // Per character info.
-	byte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.
-	nrune int                       // Number of runeInfos.
-	nbyte uint8                     // Number or bytes.
-	f     formInfo
-
-	src      input
-	nsrc     int
-	tmpBytes input
-}
-
-func (rb *reorderBuffer) init(f Form, src []byte) {
-	rb.f = *formTable[f]
-	rb.src.setBytes(src)
-	rb.nsrc = len(src)
-}
-
-func (rb *reorderBuffer) initString(f Form, src string) {
-	rb.f = *formTable[f]
-	rb.src.setString(src)
-	rb.nsrc = len(src)
-}
-
-// reset discards all characters from the buffer.
-func (rb *reorderBuffer) reset() {
-	rb.nrune = 0
-	rb.nbyte = 0
-}
-
-// flush appends the normalized segment to out and resets rb.
-func (rb *reorderBuffer) flush(out []byte) []byte {
-	for i := 0; i < rb.nrune; i++ {
-		start := rb.rune[i].pos
-		end := start + rb.rune[i].size
-		out = append(out, rb.byte[start:end]...)
-	}
-	rb.reset()
-	return out
-}
-
-// flushCopy copies the normalized segment to buf and resets rb.
-// It returns the number of bytes written to buf.
-func (rb *reorderBuffer) flushCopy(buf []byte) int {
-	p := 0
-	for i := 0; i < rb.nrune; i++ {
-		runep := rb.rune[i]
-		p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])
-	}
-	rb.reset()
-	return p
-}
-
-// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.
-// It returns false if the buffer is not large enough to hold the rune.
-// It is used internally by insert and insertString only.
-func (rb *reorderBuffer) insertOrdered(info Properties) bool {
-	n := rb.nrune
-	if n >= maxCombiningChars+1 {
-		return false
-	}
-	b := rb.rune[:]
-	cc := info.ccc
-	if cc > 0 {
-		// Find insertion position + move elements to make room.
-		for ; n > 0; n-- {
-			if b[n-1].ccc <= cc {
-				break
-			}
-			b[n] = b[n-1]
-		}
-	}
-	rb.nrune += 1
-	pos := uint8(rb.nbyte)
-	rb.nbyte += utf8.UTFMax
-	info.pos = pos
-	b[n] = info
-	return true
-}
-
-// insert inserts the given rune in the buffer ordered by CCC.
-// It returns true if the buffer was large enough to hold the decomposed rune.
-func (rb *reorderBuffer) insert(src input, i int, info Properties) bool {
-	if rune := src.hangul(i); rune != 0 {
-		return rb.decomposeHangul(rune)
-	}
-	if info.hasDecomposition() {
-		return rb.insertDecomposed(info.Decomposition())
-	}
-	return rb.insertSingle(src, i, info)
-}
-
-// insertDecomposed inserts an entry in to the reorderBuffer for each rune
-// in dcomp.  dcomp must be a sequence of decomposed UTF-8-encoded runes.
-func (rb *reorderBuffer) insertDecomposed(dcomp []byte) bool {
-	saveNrune, saveNbyte := rb.nrune, rb.nbyte
-	rb.tmpBytes.setBytes(dcomp)
-	for i := 0; i < len(dcomp); {
-		info := rb.f.info(rb.tmpBytes, i)
-		pos := rb.nbyte
-		if !rb.insertOrdered(info) {
-			rb.nrune, rb.nbyte = saveNrune, saveNbyte
-			return false
-		}
-		i += copy(rb.byte[pos:], dcomp[i:i+int(info.size)])
-	}
-	return true
-}
-
-// insertSingle inserts an entry in the reorderBuffer for the rune at
-// position i. info is the runeInfo for the rune at position i.
-func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) bool {
-	// insertOrder changes nbyte
-	pos := rb.nbyte
-	if !rb.insertOrdered(info) {
-		return false
-	}
-	src.copySlice(rb.byte[pos:], i, i+int(info.size))
-	return true
-}
-
-// appendRune inserts a rune at the end of the buffer. It is used for Hangul.
-func (rb *reorderBuffer) appendRune(r rune) {
-	bn := rb.nbyte
-	sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
-	rb.nbyte += utf8.UTFMax
-	rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}
-	rb.nrune++
-}
-
-// assignRune sets a rune at position pos. It is used for Hangul and recomposition.
-func (rb *reorderBuffer) assignRune(pos int, r rune) {
-	bn := rb.rune[pos].pos
-	sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
-	rb.rune[pos] = Properties{pos: bn, size: uint8(sz)}
-}
-
-// runeAt returns the rune at position n. It is used for Hangul and recomposition.
-func (rb *reorderBuffer) runeAt(n int) rune {
-	inf := rb.rune[n]
-	r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])
-	return r
-}
-
-// bytesAt returns the UTF-8 encoding of the rune at position n.
-// It is used for Hangul and recomposition.
-func (rb *reorderBuffer) bytesAt(n int) []byte {
-	inf := rb.rune[n]
-	return rb.byte[inf.pos : int(inf.pos)+int(inf.size)]
-}
-
-// For Hangul we combine algorithmically, instead of using tables.
-const (
-	hangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80
-	hangulBase0 = 0xEA
-	hangulBase1 = 0xB0
-	hangulBase2 = 0x80
-
-	hangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4
-	hangulEnd0 = 0xED
-	hangulEnd1 = 0x9E
-	hangulEnd2 = 0xA4
-
-	jamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00
-	jamoLBase0 = 0xE1
-	jamoLBase1 = 0x84
-	jamoLEnd   = 0x1113
-	jamoVBase  = 0x1161
-	jamoVEnd   = 0x1176
-	jamoTBase  = 0x11A7
-	jamoTEnd   = 0x11C3
-
-	jamoTCount   = 28
-	jamoVCount   = 21
-	jamoVTCount  = 21 * 28
-	jamoLVTCount = 19 * 21 * 28
-)
-
-const hangulUTF8Size = 3
-
-func isHangul(b []byte) bool {
-	if len(b) < hangulUTF8Size {
-		return false
-	}
-	b0 := b[0]
-	if b0 < hangulBase0 {
-		return false
-	}
-	b1 := b[1]
-	switch {
-	case b0 == hangulBase0:
-		return b1 >= hangulBase1
-	case b0 < hangulEnd0:
-		return true
-	case b0 > hangulEnd0:
-		return false
-	case b1 < hangulEnd1:
-		return true
-	}
-	return b1 == hangulEnd1 && b[2] < hangulEnd2
-}
-
-func isHangulString(b string) bool {
-	if len(b) < hangulUTF8Size {
-		return false
-	}
-	b0 := b[0]
-	if b0 < hangulBase0 {
-		return false
-	}
-	b1 := b[1]
-	switch {
-	case b0 == hangulBase0:
-		return b1 >= hangulBase1
-	case b0 < hangulEnd0:
-		return true
-	case b0 > hangulEnd0:
-		return false
-	case b1 < hangulEnd1:
-		return true
-	}
-	return b1 == hangulEnd1 && b[2] < hangulEnd2
-}
-
-// Caller must ensure len(b) >= 2.
-func isJamoVT(b []byte) bool {
-	// True if (rune & 0xff00) == jamoLBase
-	return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1
-}
-
-func isHangulWithoutJamoT(b []byte) bool {
-	c, _ := utf8.DecodeRune(b)
-	c -= hangulBase
-	return c < jamoLVTCount && c%jamoTCount == 0
-}
-
-// decomposeHangul writes the decomposed Hangul to buf and returns the number
-// of bytes written.  len(buf) should be at least 9.
-func decomposeHangul(buf []byte, r rune) int {
-	const JamoUTF8Len = 3
-	r -= hangulBase
-	x := r % jamoTCount
-	r /= jamoTCount
-	utf8.EncodeRune(buf, jamoLBase+r/jamoVCount)
-	utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)
-	if x != 0 {
-		utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)
-		return 3 * JamoUTF8Len
-	}
-	return 2 * JamoUTF8Len
-}
-
-// decomposeHangul algorithmically decomposes a Hangul rune into
-// its Jamo components.
-// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.
-func (rb *reorderBuffer) decomposeHangul(r rune) bool {
-	b := rb.rune[:]
-	n := rb.nrune
-	if n+3 > len(b) {
-		return false
-	}
-	r -= hangulBase
-	x := r % jamoTCount
-	r /= jamoTCount
-	rb.appendRune(jamoLBase + r/jamoVCount)
-	rb.appendRune(jamoVBase + r%jamoVCount)
-	if x != 0 {
-		rb.appendRune(jamoTBase + x)
-	}
-	return true
-}
-
-// combineHangul algorithmically combines Jamo character components into Hangul.
-// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul.
-func (rb *reorderBuffer) combineHangul(s, i, k int) {
-	b := rb.rune[:]
-	bn := rb.nrune
-	for ; i < bn; i++ {
-		cccB := b[k-1].ccc
-		cccC := b[i].ccc
-		if cccB == 0 {
-			s = k - 1
-		}
-		if s != k-1 && cccB >= cccC {
-			// b[i] is blocked by greater-equal cccX below it
-			b[k] = b[i]
-			k++
-		} else {
-			l := rb.runeAt(s) // also used to compare to hangulBase
-			v := rb.runeAt(i) // also used to compare to jamoT
-			switch {
-			case jamoLBase <= l && l < jamoLEnd &&
-				jamoVBase <= v && v < jamoVEnd:
-				// 11xx plus 116x to LV
-				rb.assignRune(s, hangulBase+
-					(l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)
-			case hangulBase <= l && l < hangulEnd &&
-				jamoTBase < v && v < jamoTEnd &&
-				((l-hangulBase)%jamoTCount) == 0:
-				// ACxx plus 11Ax to LVT
-				rb.assignRune(s, l+v-jamoTBase)
-			default:
-				b[k] = b[i]
-				k++
-			}
-		}
-	}
-	rb.nrune = k
-}
-
-// compose recombines the runes in the buffer.
-// It should only be used to recompose a single segment, as it will not
-// handle alternations between Hangul and non-Hangul characters correctly.
-func (rb *reorderBuffer) compose() {
-	// UAX #15, section X5 , including Corrigendum #5
-	// "In any character sequence beginning with starter S, a character C is
-	//  blocked from S if and only if there is some character B between S
-	//  and C, and either B is a starter or it has the same or higher
-	//  combining class as C."
-	bn := rb.nrune
-	if bn == 0 {
-		return
-	}
-	k := 1
-	b := rb.rune[:]
-	for s, i := 0, 1; i < bn; i++ {
-		if isJamoVT(rb.bytesAt(i)) {
-			// Redo from start in Hangul mode. Necessary to support
-			// U+320E..U+321E in NFKC mode.
-			rb.combineHangul(s, i, k)
-			return
-		}
-		ii := b[i]
-		// We can only use combineForward as a filter if we later
-		// get the info for the combined character. This is more
-		// expensive than using the filter. Using combinesBackward()
-		// is safe.
-		if ii.combinesBackward() {
-			cccB := b[k-1].ccc
-			cccC := ii.ccc
-			blocked := false // b[i] blocked by starter or greater or equal CCC?
-			if cccB == 0 {
-				s = k - 1
-			} else {
-				blocked = s != k-1 && cccB >= cccC
-			}
-			if !blocked {
-				combined := combine(rb.runeAt(s), rb.runeAt(i))
-				if combined != 0 {
-					rb.assignRune(s, combined)
-					continue
-				}
-			}
-		}
-		b[k] = b[i]
-		k++
-	}
-	rb.nrune = k
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/composition_test.go gcc-4.8.1/libgo/go/exp/norm/composition_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/composition_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/composition_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,143 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "testing"
-
-// TestCase is used for most tests.
-type TestCase struct {
-	in  []rune
-	out []rune
-}
-
-type insertFunc func(rb *reorderBuffer, r rune) bool
-
-func insert(rb *reorderBuffer, r rune) bool {
-	src := inputString(string(r))
-	return rb.insert(src, 0, rb.f.info(src, 0))
-}
-
-func runTests(t *testing.T, name string, fm Form, f insertFunc, tests []TestCase) {
-	rb := reorderBuffer{}
-	rb.init(fm, nil)
-	for i, test := range tests {
-		rb.reset()
-		for j, rune := range test.in {
-			b := []byte(string(rune))
-			src := inputBytes(b)
-			if !rb.insert(src, 0, rb.f.info(src, 0)) {
-				t.Errorf("%s:%d: insert failed for rune %d", name, i, j)
-			}
-		}
-		if rb.f.composing {
-			rb.compose()
-		}
-		if rb.nrune != len(test.out) {
-			t.Errorf("%s:%d: length = %d; want %d", name, i, rb.nrune, len(test.out))
-			continue
-		}
-		for j, want := range test.out {
-			found := rune(rb.runeAt(j))
-			if found != want {
-				t.Errorf("%s:%d: runeAt(%d) = %U; want %U", name, i, j, found, want)
-			}
-		}
-	}
-}
-
-type flushFunc func(rb *reorderBuffer) []byte
-
-func testFlush(t *testing.T, name string, fn flushFunc) {
-	rb := reorderBuffer{}
-	rb.init(NFC, nil)
-	out := fn(&rb)
-	if len(out) != 0 {
-		t.Errorf("%s: wrote bytes on flush of empty buffer. (len(out) = %d)", name, len(out))
-	}
-
-	for _, r := range []rune("world!") {
-		insert(&rb, r)
-	}
-
-	out = []byte("Hello ")
-	out = rb.flush(out)
-	want := "Hello world!"
-	if string(out) != want {
-		t.Errorf(`%s: output after flush was "%s"; want "%s"`, name, string(out), want)
-	}
-	if rb.nrune != 0 {
-		t.Errorf("%s: non-null size of info buffer (rb.nrune == %d)", name, rb.nrune)
-	}
-	if rb.nbyte != 0 {
-		t.Errorf("%s: non-null size of byte buffer (rb.nbyte == %d)", name, rb.nbyte)
-	}
-}
-
-func flushF(rb *reorderBuffer) []byte {
-	out := make([]byte, 0)
-	return rb.flush(out)
-}
-
-func flushCopyF(rb *reorderBuffer) []byte {
-	out := make([]byte, maxByteBufferSize)
-	n := rb.flushCopy(out)
-	return out[:n]
-}
-
-func TestFlush(t *testing.T) {
-	testFlush(t, "flush", flushF)
-	testFlush(t, "flushCopy", flushCopyF)
-}
-
-var insertTests = []TestCase{
-	{[]rune{'a'}, []rune{'a'}},
-	{[]rune{0x300}, []rune{0x300}},
-	{[]rune{0x300, 0x316}, []rune{0x316, 0x300}}, // CCC(0x300)==230; CCC(0x316)==220
-	{[]rune{0x316, 0x300}, []rune{0x316, 0x300}},
-	{[]rune{0x41, 0x316, 0x300}, []rune{0x41, 0x316, 0x300}},
-	{[]rune{0x41, 0x300, 0x316}, []rune{0x41, 0x316, 0x300}},
-	{[]rune{0x300, 0x316, 0x41}, []rune{0x316, 0x300, 0x41}},
-	{[]rune{0x41, 0x300, 0x40, 0x316}, []rune{0x41, 0x300, 0x40, 0x316}},
-}
-
-func TestInsert(t *testing.T) {
-	runTests(t, "TestInsert", NFD, insert, insertTests)
-}
-
-var decompositionNFDTest = []TestCase{
-	{[]rune{0xC0}, []rune{0x41, 0x300}},
-	{[]rune{0xAC00}, []rune{0x1100, 0x1161}},
-	{[]rune{0x01C4}, []rune{0x01C4}},
-	{[]rune{0x320E}, []rune{0x320E}},
-	{[]rune("ìŒáº»ê³¼"), []rune{0x110B, 0x1173, 0x11B7, 0x65, 0x309, 0x1100, 0x116A}},
-}
-
-var decompositionNFKDTest = []TestCase{
-	{[]rune{0xC0}, []rune{0x41, 0x300}},
-	{[]rune{0xAC00}, []rune{0x1100, 0x1161}},
-	{[]rune{0x01C4}, []rune{0x44, 0x5A, 0x030C}},
-	{[]rune{0x320E}, []rune{0x28, 0x1100, 0x1161, 0x29}},
-}
-
-func TestDecomposition(t *testing.T) {
-	runTests(t, "TestDecompositionNFD", NFD, insert, decompositionNFDTest)
-	runTests(t, "TestDecompositionNFKD", NFKD, insert, decompositionNFKDTest)
-}
-
-var compositionTest = []TestCase{
-	{[]rune{0x41, 0x300}, []rune{0xC0}},
-	{[]rune{0x41, 0x316}, []rune{0x41, 0x316}},
-	{[]rune{0x41, 0x300, 0x35D}, []rune{0xC0, 0x35D}},
-	{[]rune{0x41, 0x316, 0x300}, []rune{0xC0, 0x316}},
-	// blocking starter
-	{[]rune{0x41, 0x316, 0x40, 0x300}, []rune{0x41, 0x316, 0x40, 0x300}},
-	{[]rune{0x1100, 0x1161}, []rune{0xAC00}},
-	// parenthesized Hangul, alternate between ASCII and Hangul.
-	{[]rune{0x28, 0x1100, 0x1161, 0x29}, []rune{0x28, 0xAC00, 0x29}},
-}
-
-func TestComposition(t *testing.T) {
-	runTests(t, "TestComposition", NFC, insert, compositionTest)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/example_iter_test.go gcc-4.8.1/libgo/go/exp/norm/example_iter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/example_iter_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/example_iter_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,81 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm_test
-
-import (
-	"bytes"
-	"exp/norm"
-	"fmt"
-	"unicode/utf8"
-)
-
-// EqualSimple uses a norm.Iter to compare two non-normalized
-// strings for equivalence.
-func EqualSimple(a, b string) bool {
-	var ia, ib norm.Iter
-	ia.InitString(norm.NFKD, a)
-	ib.InitString(norm.NFKD, b)
-	for !ia.Done() && !ib.Done() {
-		if !bytes.Equal(ia.Next(), ib.Next()) {
-			return false
-		}
-	}
-	return ia.Done() && ib.Done()
-}
-
-// FindPrefix finds the longest common prefix of ASCII characters
-// of a and b.
-func FindPrefix(a, b string) int {
-	i := 0
-	for ; i < len(a) && i < len(b) && a[i] < utf8.RuneSelf && a[i] == b[i]; i++ {
-	}
-	return i
-}
-
-// EqualOpt is like EqualSimple, but optimizes the special
-// case for ASCII characters.
-func EqualOpt(a, b string) bool {
-	n := FindPrefix(a, b)
-	a, b = a[n:], b[n:]
-	var ia, ib norm.Iter
-	ia.InitString(norm.NFKD, a)
-	ib.InitString(norm.NFKD, b)
-	for !ia.Done() && !ib.Done() {
-		if !bytes.Equal(ia.Next(), ib.Next()) {
-			return false
-		}
-		if n := int64(FindPrefix(a[ia.Pos():], b[ib.Pos():])); n != 0 {
-			ia.Seek(n, 1)
-			ib.Seek(n, 1)
-		}
-	}
-	return ia.Done() && ib.Done()
-}
-
-var compareTests = []struct{ a, b string }{
-	{"aaa", "aaa"},
-	{"aaa", "aab"},
-	{"a\u0300a", "\u00E0a"},
-	{"a\u0300\u0320b", "a\u0320\u0300b"},
-	{"\u1E0A\u0323", "\x44\u0323\u0307"},
-	// A character that decomposes into multiple segments
-	// spans several iterations.
-	{"\u3304", "\u30A4\u30CB\u30F3\u30AF\u3099"},
-}
-
-func ExampleIter() {
-	for i, t := range compareTests {
-		r0 := EqualSimple(t.a, t.b)
-		r1 := EqualOpt(t.a, t.b)
-		fmt.Printf("%d: %v %v\n", i, r0, r1)
-	}
-	// Output:
-	// 0: true true
-	// 1: false false
-	// 2: true true
-	// 3: true true
-	// 4: true true
-	// 5: true true
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/forminfo.go gcc-4.8.1/libgo/go/exp/norm/forminfo.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/forminfo.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/forminfo.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,229 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-// This file contains Form-specific logic and wrappers for data in tables.go.
-
-// Rune info is stored in a separate trie per composing form. A composing form
-// and its corresponding decomposing form share the same trie.  Each trie maps
-// a rune to a uint16. The values take two forms.  For v >= 0x8000:
-//   bits
-//   0..8:   ccc
-//   9..12:  qcInfo (see below). isYesD is always true (no decompostion).
-//   16:     1
-// For v < 0x8000, the respective rune has a decomposition and v is an index
-// into a byte array of UTF-8 decomposition sequences and additional info and
-// has the form:
-//    <header> <decomp_byte>* [<tccc> [<lccc>]]
-// The header contains the number of bytes in the decomposition (excluding this
-// length byte). The two most significant bits of this length byte correspond
-// to bit 2 and 3 of qcIfo (see below).  The byte sequence itself starts at v+1.
-// The byte sequence is followed by a trailing and leading CCC if the values
-// for these are not zero.  The value of v determines which ccc are appended
-// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,
-// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC
-// there is an additional leading ccc.
-
-const (
-	qcInfoMask      = 0xF  // to clear all but the relevant bits in a qcInfo
-	headerLenMask   = 0x3F // extract the length value from the header byte
-	headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte
-)
-
-// Properties provides access to normalization properties of a rune.
-type Properties struct {
-	pos   uint8  // start position in reorderBuffer; used in composition.go
-	size  uint8  // length of UTF-8 encoding of this rune
-	ccc   uint8  // leading canonical combining class (ccc if not decomposition)
-	tccc  uint8  // trailing canonical combining class (ccc if not decomposition)
-	flags qcInfo // quick check flags
-	index uint16
-}
-
-// functions dispatchable per form
-type lookupFunc func(b input, i int) Properties
-
-// formInfo holds Form-specific functions and tables.
-type formInfo struct {
-	form                     Form
-	composing, compatibility bool // form type
-	info                     lookupFunc
-	nextMain                 iterFunc
-}
-
-var formTable []*formInfo
-
-func init() {
-	formTable = make([]*formInfo, 4)
-
-	for i := range formTable {
-		f := &formInfo{}
-		formTable[i] = f
-		f.form = Form(i)
-		if Form(i) == NFKD || Form(i) == NFKC {
-			f.compatibility = true
-			f.info = lookupInfoNFKC
-		} else {
-			f.info = lookupInfoNFC
-		}
-		f.nextMain = nextDecomposed
-		if Form(i) == NFC || Form(i) == NFKC {
-			f.nextMain = nextComposed
-			f.composing = true
-		}
-	}
-}
-
-// We do not distinguish between boundaries for NFC, NFD, etc. to avoid
-// unexpected behavior for the user.  For example, in NFD, there is a boundary
-// after 'a'.  However, 'a' might combine with modifiers, so from the application's
-// perspective it is not a good boundary. We will therefore always use the
-// boundaries for the combining variants.
-
-// BoundaryBefore returns true if this rune starts a new segment and
-// cannot combine with any rune on the left.
-func (p Properties) BoundaryBefore() bool {
-	if p.ccc == 0 && !p.combinesBackward() {
-		return true
-	}
-	// We assume that the CCC of the first character in a decomposition
-	// is always non-zero if different from info.ccc and that we can return
-	// false at this point. This is verified by maketables.
-	return false
-}
-
-// BoundaryAfter returns true if this rune cannot combine with runes to the right
-// and always denotes the end of a segment.
-func (p Properties) BoundaryAfter() bool {
-	return p.isInert()
-}
-
-// We pack quick check data in 4 bits:
-//   0:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.
-//   1..2: NFC_QC Yes(00), No (10), or Maybe (11)
-//   3:    Combines forward  (0 == false, 1 == true)
-//
-// When all 4 bits are zero, the character is inert, meaning it is never
-// influenced by normalization.
-type qcInfo uint8
-
-func (p Properties) isYesC() bool { return p.flags&0x4 == 0 }
-func (p Properties) isYesD() bool { return p.flags&0x1 == 0 }
-
-func (p Properties) combinesForward() bool  { return p.flags&0x8 != 0 }
-func (p Properties) combinesBackward() bool { return p.flags&0x2 != 0 } // == isMaybe
-func (p Properties) hasDecomposition() bool { return p.flags&0x1 != 0 } // == isNoD
-
-func (p Properties) isInert() bool {
-	return p.flags&0xf == 0 && p.ccc == 0
-}
-
-func (p Properties) multiSegment() bool {
-	return p.index >= firstMulti && p.index < endMulti
-}
-
-// Decomposition returns the decomposition for the underlying rune
-// or nil if there is none.
-func (p Properties) Decomposition() []byte {
-	if p.index == 0 {
-		return nil
-	}
-	i := p.index
-	n := decomps[i] & headerLenMask
-	i++
-	return decomps[i : i+uint16(n)]
-}
-
-// Size returns the length of UTF-8 encoding of the rune.
-func (p Properties) Size() int {
-	return int(p.size)
-}
-
-// CCC returns the canonical combining class of the underlying rune.
-func (p Properties) CCC() uint8 {
-	if p.index > firstCCCZeroExcept {
-		return 0
-	}
-	return p.ccc
-}
-
-// LeadCCC returns the CCC of the first rune in the decomposition.
-// If there is no decomposition, LeadCCC equals CCC.
-func (p Properties) LeadCCC() uint8 {
-	return p.ccc
-}
-
-// TrailCCC returns the CCC of the last rune in the decomposition.
-// If there is no decomposition, TrailCCC equals CCC.
-func (p Properties) TrailCCC() uint8 {
-	return p.tccc
-}
-
-// Recomposition
-// We use 32-bit keys instead of 64-bit for the two codepoint keys.
-// This clips off the bits of three entries, but we know this will not
-// result in a collision. In the unlikely event that changes to
-// UnicodeData.txt introduce collisions, the compiler will catch it.
-// Note that the recomposition map for NFC and NFKC are identical.
-
-// combine returns the combined rune or 0 if it doesn't exist.
-func combine(a, b rune) rune {
-	key := uint32(uint16(a))<<16 + uint32(uint16(b))
-	return recompMap[key]
-}
-
-func lookupInfoNFC(b input, i int) Properties {
-	v, sz := b.charinfoNFC(i)
-	return compInfo(v, sz)
-}
-
-func lookupInfoNFKC(b input, i int) Properties {
-	v, sz := b.charinfoNFKC(i)
-	return compInfo(v, sz)
-}
-
-// Properties returns properties for the first rune in s.
-func (f Form) Properties(s []byte) Properties {
-	if f == NFC || f == NFD {
-		return compInfo(nfcTrie.lookup(s))
-	}
-	return compInfo(nfkcTrie.lookup(s))
-}
-
-// PropertiesString returns properties for the first rune in s.
-func (f Form) PropertiesString(s string) Properties {
-	if f == NFC || f == NFD {
-		return compInfo(nfcTrie.lookupString(s))
-	}
-	return compInfo(nfkcTrie.lookupString(s))
-}
-
-// compInfo converts the information contained in v and sz
-// to a Properties.  See the comment at the top of the file
-// for more information on the format.
-func compInfo(v uint16, sz int) Properties {
-	if v == 0 {
-		return Properties{size: uint8(sz)}
-	} else if v >= 0x8000 {
-		return Properties{
-			size:  uint8(sz),
-			ccc:   uint8(v),
-			tccc:  uint8(v),
-			flags: qcInfo(v>>8) & qcInfoMask,
-		}
-	}
-	// has decomposition
-	h := decomps[v]
-	f := (qcInfo(h&headerFlagsMask) >> 4) | 0x1
-	ri := Properties{size: uint8(sz), flags: f, index: v}
-	if v >= firstCCC {
-		v += uint16(h&headerLenMask) + 1
-		ri.tccc = decomps[v]
-		if v >= firstLeadingCCC {
-			ri.ccc = decomps[v+1]
-		}
-	}
-	return ri
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/input.go gcc-4.8.1/libgo/go/exp/norm/input.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/input.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/input.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,105 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "unicode/utf8"
-
-type input struct {
-	str   string
-	bytes []byte
-}
-
-func inputBytes(str []byte) input {
-	return input{bytes: str}
-}
-
-func inputString(str string) input {
-	return input{str: str}
-}
-
-func (in *input) setBytes(str []byte) {
-	in.str = ""
-	in.bytes = str
-}
-
-func (in *input) setString(str string) {
-	in.str = str
-	in.bytes = nil
-}
-
-func (in *input) _byte(p int) byte {
-	if in.bytes == nil {
-		return in.str[p]
-	}
-	return in.bytes[p]
-}
-
-func (in *input) skipASCII(p, max int) int {
-	if in.bytes == nil {
-		for ; p < max && in.str[p] < utf8.RuneSelf; p++ {
-		}
-	} else {
-		for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {
-		}
-	}
-	return p
-}
-
-func (in *input) skipNonStarter(p int) int {
-	if in.bytes == nil {
-		for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {
-		}
-	} else {
-		for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {
-		}
-	}
-	return p
-}
-
-func (in *input) appendSlice(buf []byte, b, e int) []byte {
-	if in.bytes != nil {
-		return append(buf, in.bytes[b:e]...)
-	}
-	for i := b; i < e; i++ {
-		buf = append(buf, in.str[i])
-	}
-	return buf
-}
-
-func (in *input) copySlice(buf []byte, b, e int) int {
-	if in.bytes == nil {
-		return copy(buf, in.str[b:e])
-	}
-	return copy(buf, in.bytes[b:e])
-}
-
-func (in *input) charinfoNFC(p int) (uint16, int) {
-	if in.bytes == nil {
-		return nfcTrie.lookupString(in.str[p:])
-	}
-	return nfcTrie.lookup(in.bytes[p:])
-}
-
-func (in *input) charinfoNFKC(p int) (uint16, int) {
-	if in.bytes == nil {
-		return nfkcTrie.lookupString(in.str[p:])
-	}
-	return nfkcTrie.lookup(in.bytes[p:])
-}
-
-func (in *input) hangul(p int) (r rune) {
-	if in.bytes == nil {
-		if !isHangulString(in.str[p:]) {
-			return 0
-		}
-		r, _ = utf8.DecodeRuneInString(in.str[p:])
-	} else {
-		if !isHangul(in.bytes[p:]) {
-			return 0
-		}
-		r, _ = utf8.DecodeRune(in.bytes[p:])
-	}
-	return r
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/iter.go gcc-4.8.1/libgo/go/exp/norm/iter.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/iter.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/iter.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,401 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"fmt"
-	"unicode/utf8"
-)
-
-const MaxSegmentSize = maxByteBufferSize
-
-// An Iter iterates over a string or byte slice, while normalizing it
-// to a given Form.
-type Iter struct {
-	rb     reorderBuffer
-	buf    [maxByteBufferSize]byte
-	info   Properties // first character saved from previous iteration
-	next   iterFunc   // implementation of next depends on form
-	asciiF iterFunc
-
-	p        int    // current position in input source
-	multiSeg []byte // remainder of multi-segment decomposition
-}
-
-type iterFunc func(*Iter) []byte
-
-// Init initializes i to iterate over src after normalizing it to Form f.
-func (i *Iter) Init(f Form, src []byte) {
-	i.p = 0
-	if len(src) == 0 {
-		i.setDone()
-		i.rb.nsrc = 0
-		return
-	}
-	i.multiSeg = nil
-	i.rb.init(f, src)
-	i.next = i.rb.f.nextMain
-	i.asciiF = nextASCIIBytes
-	i.info = i.rb.f.info(i.rb.src, i.p)
-}
-
-// InitString initializes i to iterate over src after normalizing it to Form f.
-func (i *Iter) InitString(f Form, src string) {
-	i.p = 0
-	if len(src) == 0 {
-		i.setDone()
-		i.rb.nsrc = 0
-		return
-	}
-	i.multiSeg = nil
-	i.rb.initString(f, src)
-	i.next = i.rb.f.nextMain
-	i.asciiF = nextASCIIString
-	i.info = i.rb.f.info(i.rb.src, i.p)
-}
-
-// Seek sets the segment to be returned by the next call to Next to start
-// at position p.  It is the responsibility of the caller to set p to the
-// start of a UTF8 rune.
-func (i *Iter) Seek(offset int64, whence int) (int64, error) {
-	var abs int64
-	switch whence {
-	case 0:
-		abs = offset
-	case 1:
-		abs = int64(i.p) + offset
-	case 2:
-		abs = int64(i.rb.nsrc) + offset
-	default:
-		return 0, fmt.Errorf("norm: invalid whence")
-	}
-	if abs < 0 {
-		return 0, fmt.Errorf("norm: negative position")
-	}
-	if int(abs) >= i.rb.nsrc {
-		i.setDone()
-		return int64(i.p), nil
-	}
-	i.p = int(abs)
-	i.multiSeg = nil
-	i.next = i.rb.f.nextMain
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	return abs, nil
-}
-
-// returnSlice returns a slice of the underlying input type as a byte slice.
-// If the underlying is of type []byte, it will simply return a slice.
-// If the underlying is of type string, it will copy the slice to the buffer
-// and return that.
-func (i *Iter) returnSlice(a, b int) []byte {
-	if i.rb.src.bytes == nil {
-		return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]
-	}
-	return i.rb.src.bytes[a:b]
-}
-
-// Pos returns the byte position at which the next call to Next will commence processing.
-func (i *Iter) Pos() int {
-	return i.p
-}
-
-func (i *Iter) setDone() {
-	i.next = nextDone
-	i.p = i.rb.nsrc
-}
-
-// Done returns true if there is no more input to process.
-func (i *Iter) Done() bool {
-	return i.p >= i.rb.nsrc
-}
-
-// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.
-// For any input a and b for which f(a) == f(b), subsequent calls
-// to Next will return the same segments.
-// Modifying runes are grouped together with the preceding starter, if such a starter exists.
-// Although not guaranteed, n will typically be the smallest possible n.
-func (i *Iter) Next() []byte {
-	return i.next(i)
-}
-
-func nextASCIIBytes(i *Iter) []byte {
-	p := i.p + 1
-	if p >= i.rb.nsrc {
-		i.setDone()
-		return i.rb.src.bytes[i.p:p]
-	}
-	if i.rb.src.bytes[p] < utf8.RuneSelf {
-		p0 := i.p
-		i.p = p
-		return i.rb.src.bytes[p0:p]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextASCIIString(i *Iter) []byte {
-	p := i.p + 1
-	if p >= i.rb.nsrc {
-		i.buf[0] = i.rb.src.str[i.p]
-		i.setDone()
-		return i.buf[:1]
-	}
-	if i.rb.src.str[p] < utf8.RuneSelf {
-		i.buf[0] = i.rb.src.str[i.p]
-		i.p = p
-		return i.buf[:1]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextHangul(i *Iter) []byte {
-	if r := i.rb.src.hangul(i.p); r != 0 {
-		i.p += hangulUTF8Size
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-		}
-		return i.buf[:decomposeHangul(i.buf[:], r)]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextDone(i *Iter) []byte {
-	return nil
-}
-
-// nextMulti is used for iterating over multi-segment decompositions
-// for decomposing normal forms.
-func nextMulti(i *Iter) []byte {
-	j := 0
-	d := i.multiSeg
-	// skip first rune
-	for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {
-	}
-	for j < len(d) {
-		info := i.rb.f.info(input{bytes: d}, j)
-		if info.ccc == 0 {
-			i.multiSeg = d[j:]
-			return d[:j]
-		}
-		j += int(info.size)
-	}
-	// treat last segment as normal decomposition
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-// nextMultiNorm is used for iterating over multi-segment decompositions
-// for composing normal forms.
-func nextMultiNorm(i *Iter) []byte {
-	j := 0
-	d := i.multiSeg
-	// skip first rune
-	for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {
-	}
-	for j < len(d) {
-		info := i.rb.f.info(input{bytes: d}, j)
-		if info.ccc == 0 {
-			i.multiSeg = d[j:]
-			return d[:j]
-		}
-		j += int(info.size)
-	}
-	i.multiSeg = nil
-	i.next = nextComposed
-	i.p++ // restore old valud of i.p. See nextComposed.
-	if i.p >= i.rb.nsrc {
-		i.setDone()
-	}
-	return d
-}
-
-// nextDecomposed is the implementation of Next for forms NFD and NFKD.
-func nextDecomposed(i *Iter) (next []byte) {
-	startp, outp := i.p, 0
-	inCopyStart, outCopyStart := i.p, 0
-	for {
-		if sz := int(i.info.size); sz <= 1 {
-			p := i.p
-			i.p++ // ASCII or illegal byte.  Either way, advance by 1.
-			if i.p >= i.rb.nsrc {
-				i.setDone()
-				return i.returnSlice(p, i.p)
-			} else if i.rb.src._byte(i.p) < utf8.RuneSelf {
-				i.next = i.asciiF
-				return i.returnSlice(p, i.p)
-			}
-			outp++
-		} else if d := i.info.Decomposition(); d != nil {
-			// Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.
-			// Case 1: there is a leftover to copy.  In this case the decomposition
-			// must begin with a modifier and should always be appended.
-			// Case 2: no leftover. Simply return d if followed by a ccc == 0 value.
-			p := outp + len(d)
-			if outp > 0 {
-				i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-				if p > len(i.buf) {
-					return i.buf[:outp]
-				}
-			} else if i.info.multiSegment() {
-				// outp must be 0 as multi-segment decompositions always
-				// start a new segment.
-				if i.multiSeg == nil {
-					i.multiSeg = d
-					i.next = nextMulti
-					return nextMulti(i)
-				}
-				// We are in the last segment.  Treat as normal decomposition.
-				d = i.multiSeg
-				i.multiSeg = nil
-				p = len(d)
-			}
-			prevCC := i.info.tccc
-			if i.p += sz; i.p >= i.rb.nsrc {
-				i.setDone()
-				i.info = Properties{} // Force BoundaryBefore to succeed.
-			} else {
-				i.info = i.rb.f.info(i.rb.src, i.p)
-			}
-			if i.info.BoundaryBefore() {
-				if outp > 0 {
-					copy(i.buf[outp:], d)
-					return i.buf[:p]
-				}
-				return d
-			}
-			copy(i.buf[outp:], d)
-			outp = p
-			inCopyStart, outCopyStart = i.p, outp
-			if i.info.ccc < prevCC {
-				goto doNorm
-			}
-			continue
-		} else if r := i.rb.src.hangul(i.p); r != 0 {
-			i.next = nextHangul
-			i.p += hangulUTF8Size
-			if i.p >= i.rb.nsrc {
-				i.setDone()
-			}
-			return i.buf[:decomposeHangul(i.buf[:], r)]
-		} else {
-			p := outp + sz
-			if p > len(i.buf) {
-				break
-			}
-			outp = p
-			i.p += sz
-		}
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		prevCC := i.info.tccc
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.BoundaryBefore() {
-			break
-		} else if i.info.ccc < prevCC {
-			goto doNorm
-		}
-	}
-	if outCopyStart == 0 {
-		return i.returnSlice(inCopyStart, i.p)
-	} else if inCopyStart < i.p {
-		i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-	}
-	return i.buf[:outp]
-doNorm:
-	// Insert what we have decomposed so far in the reorderBuffer.
-	// As we will only reorder, there will always be enough room.
-	i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-	if !i.rb.insertDecomposed(i.buf[0:outp]) {
-		// Start over to prevent decompositions from crossing segment boundaries.
-		// This is a rare occurrence.
-		i.p = startp
-		i.info = i.rb.f.info(i.rb.src, i.p)
-	}
-	for {
-		if !i.rb.insert(i.rb.src, i.p, i.info) {
-			break
-		}
-		if i.p += int(i.info.size); i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.ccc == 0 {
-			break
-		}
-	}
-	// new segment or too many combining characters: exit normalization
-	return i.buf[:i.rb.flushCopy(i.buf[:])]
-}
-
-// nextComposed is the implementation of Next for forms NFC and NFKC.
-func nextComposed(i *Iter) []byte {
-	outp, startp := 0, i.p
-	var prevCC uint8
-	for {
-		if !i.info.isYesC() {
-			goto doNorm
-		}
-		if cc := i.info.ccc; cc == 0 && outp > 0 {
-			break
-		} else if cc < prevCC {
-			goto doNorm
-		}
-		prevCC = i.info.tccc
-		sz := int(i.info.size)
-		if sz == 0 {
-			sz = 1 // illegal rune: copy byte-by-byte
-		}
-		p := outp + sz
-		if p > len(i.buf) {
-			break
-		}
-		outp = p
-		i.p += sz
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		} else if i.rb.src._byte(i.p) < utf8.RuneSelf {
-			i.next = i.asciiF
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-	}
-	return i.returnSlice(startp, i.p)
-doNorm:
-	multi := false
-	i.p = startp
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	for {
-		if !i.rb.insert(i.rb.src, i.p, i.info) {
-			break
-		}
-		multi = multi || i.info.multiSegment()
-		if i.p += int(i.info.size); i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.BoundaryBefore() {
-			break
-		}
-	}
-	i.rb.compose()
-	seg := i.buf[:i.rb.flushCopy(i.buf[:])]
-	if multi {
-		i.p-- // fake not being done yet
-		i.multiSeg = seg
-		i.next = nextMultiNorm
-		return nextMultiNorm(i)
-	}
-	return seg
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/iter_test.go gcc-4.8.1/libgo/go/exp/norm/iter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/iter_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/iter_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,188 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"strings"
-	"testing"
-)
-
-func doIterNorm(f Form, s string) []byte {
-	acc := []byte{}
-	i := Iter{}
-	i.InitString(f, s)
-	for !i.Done() {
-		acc = append(acc, i.Next()...)
-	}
-	return acc
-}
-
-func runIterTests(t *testing.T, name string, f Form, tests []AppendTest, norm bool) {
-	for i, test := range tests {
-		in := test.left + test.right
-		gold := test.out
-		if norm {
-			gold = string(f.AppendString(nil, test.out))
-		}
-		out := string(doIterNorm(f, in))
-		if len(out) != len(gold) {
-			const msg = "%s:%d: length is %d; want %d"
-			t.Errorf(msg, name, i, len(out), len(gold))
-		}
-		if out != gold {
-			// Find first rune that differs and show context.
-			ir := []rune(out)
-			ig := []rune(gold)
-			t.Errorf("\n%X != \n%X", ir, ig)
-			for j := 0; j < len(ir) && j < len(ig); j++ {
-				if ir[j] == ig[j] {
-					continue
-				}
-				if j -= 3; j < 0 {
-					j = 0
-				}
-				for e := j + 7; j < e && j < len(ir) && j < len(ig); j++ {
-					const msg = "%s:%d: runeAt(%d) = %U; want %U"
-					t.Errorf(msg, name, i, j, ir[j], ig[j])
-				}
-				break
-			}
-		}
-	}
-}
-
-func rep(r rune, n int) string {
-	return strings.Repeat(string(r), n)
-}
-
-const segSize = maxByteBufferSize
-
-var iterTests = []AppendTest{
-	{"", ascii, ascii},
-	{"", txt_all, txt_all},
-	{"", "a" + rep(0x0300, segSize/2), "a" + rep(0x0300, segSize/2)},
-}
-
-var iterTestsD = []AppendTest{
-	{ // segment overflow on unchanged character
-		"",
-		"a" + rep(0x0300, segSize/2) + "\u0316",
-		"a" + rep(0x0300, segSize/2-1) + "\u0316\u0300",
-	},
-	{ // segment overflow on unchanged character + start value
-		"",
-		"a" + rep(0x0300, segSize/2+maxCombiningChars+4) + "\u0316",
-		"a" + rep(0x0300, segSize/2+maxCombiningChars) + "\u0316" + rep(0x300, 4),
-	},
-	{ // segment overflow on decomposition
-		"",
-		"a" + rep(0x0300, segSize/2-1) + "\u0340",
-		"a" + rep(0x0300, segSize/2),
-	},
-	{ // segment overflow on decomposition + start value
-		"",
-		"a" + rep(0x0300, segSize/2-1) + "\u0340" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"a" + rep(0x0300, segSize/2-1) + rep(0x300, maxCombiningChars+1) + "\u0320" + rep(0x300, 4),
-	},
-	{ // start value after ASCII overflow
-		"",
-		rep('a', segSize) + rep(0x300, maxCombiningChars+2) + "\u0320",
-		rep('a', segSize) + rep(0x300, maxCombiningChars) + "\u0320\u0300\u0300",
-	},
-	{ // start value after Hangul overflow
-		"",
-		rep(0xAC00, segSize/6) + rep(0x300, maxCombiningChars+2) + "\u0320",
-		strings.Repeat("\u1100\u1161", segSize/6) + rep(0x300, maxCombiningChars+1) + "\u0320" + rep(0x300, 1),
-	},
-	{ // start value after cc=0
-		"",
-		"æ‚¨æ‚¨" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"æ‚¨æ‚¨" + rep(0x300, maxCombiningChars) + "\u0320" + rep(0x300, 4),
-	},
-	{ // start value after normalization
-		"",
-		"\u0300\u0320a" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"\u0320\u0300a" + rep(0x300, maxCombiningChars) + "\u0320" + rep(0x300, 4),
-	},
-}
-
-var iterTestsC = []AppendTest{
-	{ // ordering of non-composing combining characters
-		"",
-		"\u0305\u0316",
-		"\u0316\u0305",
-	},
-	{ // segment overflow
-		"",
-		"a" + rep(0x0305, segSize/2+4) + "\u0316",
-		"a" + rep(0x0305, segSize/2-1) + "\u0316" + rep(0x305, 5),
-	},
-}
-
-func TestIterNextD(t *testing.T) {
-	runIterTests(t, "IterNextD1", NFKD, appendTests, true)
-	runIterTests(t, "IterNextD2", NFKD, iterTests, true)
-	runIterTests(t, "IterNextD3", NFKD, iterTestsD, false)
-}
-
-func TestIterNextC(t *testing.T) {
-	runIterTests(t, "IterNextC1", NFKC, appendTests, true)
-	runIterTests(t, "IterNextC2", NFKC, iterTests, true)
-	runIterTests(t, "IterNextC3", NFKC, iterTestsC, false)
-}
-
-type SegmentTest struct {
-	in  string
-	out []string
-}
-
-var segmentTests = []SegmentTest{
-	{"\u1E0A\u0323a", []string{"\x44\u0323\u0307", "a", ""}},
-	{rep('a', segSize), append(strings.Split(rep('a', segSize), ""), "")},
-	{rep('a', segSize+2), append(strings.Split(rep('a', segSize+2), ""), "")},
-	{rep('a', segSize) + "\u0300aa",
-		append(strings.Split(rep('a', segSize-1), ""), "a\u0300", "a", "a", "")},
-}
-
-var segmentTestsK = []SegmentTest{
-	{"\u3332", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u3099", ""}},
-	// last segment of multi-segment decomposition needs normalization
-	{"\u3332\u093C", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u093C\u3099", ""}},
-	// Hangul and Jamo are grouped togeter.
-	{"\uAC00", []string{"\u1100\u1161", ""}},
-	{"\uAC01", []string{"\u1100\u1161\u11A8", ""}},
-	{"\u1100\u1161", []string{"\u1100\u1161", ""}},
-}
-
-// Note that, by design, segmentation is equal for composing and decomposing forms.
-func TestIterSegmentation(t *testing.T) {
-	segmentTest(t, "SegmentTestD", NFD, segmentTests)
-	segmentTest(t, "SegmentTestC", NFC, segmentTests)
-	segmentTest(t, "SegmentTestD", NFKD, segmentTestsK)
-	segmentTest(t, "SegmentTestC", NFKC, segmentTestsK)
-}
-
-func segmentTest(t *testing.T, name string, f Form, tests []SegmentTest) {
-	iter := Iter{}
-	for i, tt := range tests {
-		iter.InitString(f, tt.in)
-		for j, seg := range tt.out {
-			if seg == "" {
-				if !iter.Done() {
-					res := string(iter.Next())
-					t.Errorf(`%s:%d:%d: expected Done()==true, found segment "%s"`, name, i, j, res)
-				}
-				continue
-			}
-			if iter.Done() {
-				t.Errorf("%s:%d:%d: Done()==true, want false", name, i, j)
-			}
-			seg = f.String(seg)
-			if res := string(iter.Next()); res != seg {
-				t.Errorf(`%s:%d:%d" segment was "%s" (%d); want "%s" (%d) %X %X`, name, i, j, res, len(res), seg, len(seg), []rune(res), []rune(seg))
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/maketables.go gcc-4.8.1/libgo/go/exp/norm/maketables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/maketables.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/maketables.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,934 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Normalization table generator.
-// Data read from the web.
-// See forminfo.go for a description of the trie values associated with each rune.
-
-package main
-
-import (
-	"bufio"
-	"bytes"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"net/http"
-	"os"
-	"regexp"
-	"sort"
-	"strconv"
-	"strings"
-	"unicode"
-)
-
-func main() {
-	flag.Parse()
-	loadUnicodeData()
-	loadCompositionExclusions()
-	completeCharFields(FCanonical)
-	completeCharFields(FCompatibility)
-	verifyComputed()
-	printChars()
-	makeTables()
-	testDerived()
-}
-
-var url = flag.String("url",
-	"http://www.unicode.org/Public/"+unicode.Version+"/ucd/",
-	"URL of Unicode database directory")
-var tablelist = flag.String("tables",
-	"all",
-	"comma-separated list of which tables to generate; "+
-		"can be 'decomp', 'recomp', 'info' and 'all'")
-var test = flag.Bool("test",
-	false,
-	"test existing tables; can be used to compare web data with package data")
-var verbose = flag.Bool("verbose",
-	false,
-	"write data to stdout as it is parsed")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-var logger = log.New(os.Stderr, "", log.Lshortfile)
-
-// UnicodeData.txt has form:
-//	0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
-//	007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
-// See http://unicode.org/reports/tr44/ for full explanation
-// The fields:
-const (
-	FCodePoint = iota
-	FName
-	FGeneralCategory
-	FCanonicalCombiningClass
-	FBidiClass
-	FDecompMapping
-	FDecimalValue
-	FDigitValue
-	FNumericValue
-	FBidiMirrored
-	FUnicode1Name
-	FISOComment
-	FSimpleUppercaseMapping
-	FSimpleLowercaseMapping
-	FSimpleTitlecaseMapping
-	NumField
-
-	MaxChar = 0x10FFFF // anything above this shouldn't exist
-)
-
-// Quick Check properties of runes allow us to quickly
-// determine whether a rune may occur in a normal form.
-// For a given normal form, a rune may be guaranteed to occur
-// verbatim (QC=Yes), may or may not combine with another
-// rune (QC=Maybe), or may not occur (QC=No).
-type QCResult int
-
-const (
-	QCUnknown QCResult = iota
-	QCYes
-	QCNo
-	QCMaybe
-)
-
-func (r QCResult) String() string {
-	switch r {
-	case QCYes:
-		return "Yes"
-	case QCNo:
-		return "No"
-	case QCMaybe:
-		return "Maybe"
-	}
-	return "***UNKNOWN***"
-}
-
-const (
-	FCanonical     = iota // NFC or NFD
-	FCompatibility        // NFKC or NFKD
-	FNumberOfFormTypes
-)
-
-const (
-	MComposed   = iota // NFC or NFKC
-	MDecomposed        // NFD or NFKD
-	MNumberOfModes
-)
-
-// This contains only the properties we're interested in.
-type Char struct {
-	name          string
-	codePoint     rune  // if zero, this index is not a valid code point.
-	ccc           uint8 // canonical combining class
-	excludeInComp bool  // from CompositionExclusions.txt
-	compatDecomp  bool  // it has a compatibility expansion
-
-	forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility
-
-	state State
-}
-
-var chars = make([]Char, MaxChar+1)
-
-func (c Char) String() string {
-	buf := new(bytes.Buffer)
-
-	fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name)
-	fmt.Fprintf(buf, "  ccc: %v\n", c.ccc)
-	fmt.Fprintf(buf, "  excludeInComp: %v\n", c.excludeInComp)
-	fmt.Fprintf(buf, "  compatDecomp: %v\n", c.compatDecomp)
-	fmt.Fprintf(buf, "  state: %v\n", c.state)
-	fmt.Fprintf(buf, "  NFC:\n")
-	fmt.Fprint(buf, c.forms[FCanonical])
-	fmt.Fprintf(buf, "  NFKC:\n")
-	fmt.Fprint(buf, c.forms[FCompatibility])
-
-	return buf.String()
-}
-
-// In UnicodeData.txt, some ranges are marked like this:
-//	3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
-//	4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
-// parseCharacter keeps a state variable indicating the weirdness.
-type State int
-
-const (
-	SNormal State = iota // known to be zero for the type
-	SFirst
-	SLast
-	SMissing
-)
-
-var lastChar = rune('\u0000')
-
-func (c Char) isValid() bool {
-	return c.codePoint != 0 && c.state != SMissing
-}
-
-type FormInfo struct {
-	quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed
-	verified   [MNumberOfModes]bool     // index: MComposed or MDecomposed
-
-	combinesForward  bool // May combine with rune on the right
-	combinesBackward bool // May combine with rune on the left
-	isOneWay         bool // Never appears in result
-	inDecomp         bool // Some decompositions result in this char.
-	decomp           Decomposition
-	expandedDecomp   Decomposition
-}
-
-func (f FormInfo) String() string {
-	buf := bytes.NewBuffer(make([]byte, 0))
-
-	fmt.Fprintf(buf, "    quickCheck[C]: %v\n", f.quickCheck[MComposed])
-	fmt.Fprintf(buf, "    quickCheck[D]: %v\n", f.quickCheck[MDecomposed])
-	fmt.Fprintf(buf, "    cmbForward: %v\n", f.combinesForward)
-	fmt.Fprintf(buf, "    cmbBackward: %v\n", f.combinesBackward)
-	fmt.Fprintf(buf, "    isOneWay: %v\n", f.isOneWay)
-	fmt.Fprintf(buf, "    inDecomp: %v\n", f.inDecomp)
-	fmt.Fprintf(buf, "    decomposition: %X\n", f.decomp)
-	fmt.Fprintf(buf, "    expandedDecomp: %X\n", f.expandedDecomp)
-
-	return buf.String()
-}
-
-type Decomposition []rune
-
-func openReader(file string) (input io.ReadCloser) {
-	if *localFiles {
-		f, err := os.Open(file)
-		if err != nil {
-			logger.Fatal(err)
-		}
-		input = f
-	} else {
-		path := *url + file
-		resp, err := http.Get(path)
-		if err != nil {
-			logger.Fatal(err)
-		}
-		if resp.StatusCode != 200 {
-			logger.Fatal("bad GET status for "+file, resp.Status)
-		}
-		input = resp.Body
-	}
-	return
-}
-
-func parseDecomposition(s string, skipfirst bool) (a []rune, e error) {
-	decomp := strings.Split(s, " ")
-	if len(decomp) > 0 && skipfirst {
-		decomp = decomp[1:]
-	}
-	for _, d := range decomp {
-		point, err := strconv.ParseUint(d, 16, 64)
-		if err != nil {
-			return a, err
-		}
-		a = append(a, rune(point))
-	}
-	return a, nil
-}
-
-func parseCharacter(line string) {
-	field := strings.Split(line, ";")
-	if len(field) != NumField {
-		logger.Fatalf("%5s: %d fields (expected %d)\n", line, len(field), NumField)
-	}
-	x, err := strconv.ParseUint(field[FCodePoint], 16, 64)
-	point := int(x)
-	if err != nil {
-		logger.Fatalf("%.5s...: %s", line, err)
-	}
-	if point == 0 {
-		return // not interesting and we use 0 as unset
-	}
-	if point > MaxChar {
-		logger.Fatalf("%5s: Rune %X > MaxChar (%X)", line, point, MaxChar)
-		return
-	}
-	state := SNormal
-	switch {
-	case strings.Index(field[FName], ", First>") > 0:
-		state = SFirst
-	case strings.Index(field[FName], ", Last>") > 0:
-		state = SLast
-	}
-	firstChar := lastChar + 1
-	lastChar = rune(point)
-	if state != SLast {
-		firstChar = lastChar
-	}
-	x, err = strconv.ParseUint(field[FCanonicalCombiningClass], 10, 64)
-	if err != nil {
-		logger.Fatalf("%U: bad ccc field: %s", int(x), err)
-	}
-	ccc := uint8(x)
-	decmap := field[FDecompMapping]
-	exp, e := parseDecomposition(decmap, false)
-	isCompat := false
-	if e != nil {
-		if len(decmap) > 0 {
-			exp, e = parseDecomposition(decmap, true)
-			if e != nil {
-				logger.Fatalf(`%U: bad decomp |%v|: "%s"`, int(x), decmap, e)
-			}
-			isCompat = true
-		}
-	}
-	for i := firstChar; i <= lastChar; i++ {
-		char := &chars[i]
-		char.name = field[FName]
-		char.codePoint = i
-		char.forms[FCompatibility].decomp = exp
-		if !isCompat {
-			char.forms[FCanonical].decomp = exp
-		} else {
-			char.compatDecomp = true
-		}
-		if len(decmap) > 0 {
-			char.forms[FCompatibility].decomp = exp
-		}
-		char.ccc = ccc
-		char.state = SMissing
-		if i == lastChar {
-			char.state = state
-		}
-	}
-	return
-}
-
-func loadUnicodeData() {
-	f := openReader("UnicodeData.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		parseCharacter(line[0 : len(line)-1])
-	}
-}
-
-var singlePointRe = regexp.MustCompile(`^([0-9A-F]+) *$`)
-
-// CompositionExclusions.txt has form:
-// 0958    # ...
-// See http://unicode.org/reports/tr44/ for full explanation
-func parseExclusion(line string) int {
-	comment := strings.Index(line, "#")
-	if comment >= 0 {
-		line = line[0:comment]
-	}
-	if len(line) == 0 {
-		return 0
-	}
-	matches := singlePointRe.FindStringSubmatch(line)
-	if len(matches) != 2 {
-		logger.Fatalf("%s: %d matches (expected 1)\n", line, len(matches))
-	}
-	point, err := strconv.ParseUint(matches[1], 16, 64)
-	if err != nil {
-		logger.Fatalf("%.5s...: %s", line, err)
-	}
-	return int(point)
-}
-
-func loadCompositionExclusions() {
-	f := openReader("CompositionExclusions.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		point := parseExclusion(line[0 : len(line)-1])
-		if point == 0 {
-			continue
-		}
-		c := &chars[point]
-		if c.excludeInComp {
-			logger.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint)
-		}
-		c.excludeInComp = true
-	}
-}
-
-// hasCompatDecomp returns true if any of the recursive
-// decompositions contains a compatibility expansion.
-// In this case, the character may not occur in NFK*.
-func hasCompatDecomp(r rune) bool {
-	c := &chars[r]
-	if c.compatDecomp {
-		return true
-	}
-	for _, d := range c.forms[FCompatibility].decomp {
-		if hasCompatDecomp(d) {
-			return true
-		}
-	}
-	return false
-}
-
-// Hangul related constants.
-const (
-	HangulBase = 0xAC00
-	HangulEnd  = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28)
-
-	JamoLBase = 0x1100
-	JamoLEnd  = 0x1113
-	JamoVBase = 0x1161
-	JamoVEnd  = 0x1176
-	JamoTBase = 0x11A8
-	JamoTEnd  = 0x11C3
-)
-
-func isHangul(r rune) bool {
-	return HangulBase <= r && r < HangulEnd
-}
-
-func ccc(r rune) uint8 {
-	return chars[r].ccc
-}
-
-// Insert a rune in a buffer, ordered by Canonical Combining Class.
-func insertOrdered(b Decomposition, r rune) Decomposition {
-	n := len(b)
-	b = append(b, 0)
-	cc := ccc(r)
-	if cc > 0 {
-		// Use bubble sort.
-		for ; n > 0; n-- {
-			if ccc(b[n-1]) <= cc {
-				break
-			}
-			b[n] = b[n-1]
-		}
-	}
-	b[n] = r
-	return b
-}
-
-// Recursively decompose.
-func decomposeRecursive(form int, r rune, d Decomposition) Decomposition {
-	if isHangul(r) {
-		return d
-	}
-	dcomp := chars[r].forms[form].decomp
-	if len(dcomp) == 0 {
-		return insertOrdered(d, r)
-	}
-	for _, c := range dcomp {
-		d = decomposeRecursive(form, c, d)
-	}
-	return d
-}
-
-func completeCharFields(form int) {
-	// Phase 0: pre-expand decomposition.
-	for i := range chars {
-		f := &chars[i].forms[form]
-		if len(f.decomp) == 0 {
-			continue
-		}
-		exp := make(Decomposition, 0)
-		for _, c := range f.decomp {
-			exp = decomposeRecursive(form, c, exp)
-		}
-		f.expandedDecomp = exp
-	}
-
-	// Phase 1: composition exclusion, mark decomposition.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		// Marks script-specific exclusions and version restricted.
-		f.isOneWay = c.excludeInComp
-
-		// Singletons
-		f.isOneWay = f.isOneWay || len(f.decomp) == 1
-
-		// Non-starter decompositions
-		if len(f.decomp) > 1 {
-			chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0
-			f.isOneWay = f.isOneWay || chk
-		}
-
-		// Runes that decompose into more than two runes.
-		f.isOneWay = f.isOneWay || len(f.decomp) > 2
-
-		if form == FCompatibility {
-			f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint)
-		}
-
-		for _, r := range f.decomp {
-			chars[r].forms[form].inDecomp = true
-		}
-	}
-
-	// Phase 2: forward and backward combining.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		if !f.isOneWay && len(f.decomp) == 2 {
-			f0 := &chars[f.decomp[0]].forms[form]
-			f1 := &chars[f.decomp[1]].forms[form]
-			if !f0.isOneWay {
-				f0.combinesForward = true
-			}
-			if !f1.isOneWay {
-				f1.combinesBackward = true
-			}
-		}
-	}
-
-	// Phase 3: quick check values.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		switch {
-		case len(f.decomp) > 0:
-			f.quickCheck[MDecomposed] = QCNo
-		case isHangul(rune(i)):
-			f.quickCheck[MDecomposed] = QCNo
-		default:
-			f.quickCheck[MDecomposed] = QCYes
-		}
-		switch {
-		case f.isOneWay:
-			f.quickCheck[MComposed] = QCNo
-		case (i & 0xffff00) == JamoLBase:
-			f.quickCheck[MComposed] = QCYes
-			if JamoLBase <= i && i < JamoLEnd {
-				f.combinesForward = true
-			}
-			if JamoVBase <= i && i < JamoVEnd {
-				f.quickCheck[MComposed] = QCMaybe
-				f.combinesBackward = true
-				f.combinesForward = true
-			}
-			if JamoTBase <= i && i < JamoTEnd {
-				f.quickCheck[MComposed] = QCMaybe
-				f.combinesBackward = true
-			}
-		case !f.combinesBackward:
-			f.quickCheck[MComposed] = QCYes
-		default:
-			f.quickCheck[MComposed] = QCMaybe
-		}
-	}
-}
-
-func printBytes(b []byte, name string) {
-	fmt.Printf("// %s: %d bytes\n", name, len(b))
-	fmt.Printf("var %s = [...]byte {", name)
-	for i, c := range b {
-		switch {
-		case i%64 == 0:
-			fmt.Printf("\n// Bytes %x - %x\n", i, i+63)
-		case i%8 == 0:
-			fmt.Printf("\n")
-		}
-		fmt.Printf("0x%.2X, ", c)
-	}
-	fmt.Print("\n}\n\n")
-}
-
-// See forminfo.go for format.
-func makeEntry(f *FormInfo) uint16 {
-	e := uint16(0)
-	if f.combinesForward {
-		e |= 0x8
-	}
-	if f.quickCheck[MDecomposed] == QCNo {
-		e |= 0x1
-	}
-	switch f.quickCheck[MComposed] {
-	case QCYes:
-	case QCNo:
-		e |= 0x4
-	case QCMaybe:
-		e |= 0x6
-	default:
-		log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed])
-	}
-	return e
-}
-
-// decompSet keeps track of unique decompositions, grouped by whether
-// the decomposition is followed by a trailing and/or leading CCC.
-type decompSet [6]map[string]bool
-
-const (
-	normalDecomp = iota
-	firstMulti
-	firstCCC
-	endMulti
-	firstLeadingCCC
-	firstCCCZeroExcept
-	lastDecomp
-)
-
-var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "lastDecomp"}
-
-func makeDecompSet() decompSet {
-	m := decompSet{}
-	for i := range m {
-		m[i] = make(map[string]bool)
-	}
-	return m
-}
-func (m *decompSet) insert(key int, s string) {
-	m[key][s] = true
-}
-
-func printCharInfoTables() int {
-	mkstr := func(r rune, f *FormInfo) (int, string) {
-		d := f.expandedDecomp
-		s := string([]rune(d))
-		if max := 1 << 6; len(s) >= max {
-			const msg = "%U: too many bytes in decomposition: %d >= %d"
-			logger.Fatalf(msg, r, len(s), max)
-		}
-		head := uint8(len(s))
-		if f.quickCheck[MComposed] != QCYes {
-			head |= 0x40
-		}
-		if f.combinesForward {
-			head |= 0x80
-		}
-		s = string([]byte{head}) + s
-
-		lccc := ccc(d[0])
-		tccc := ccc(d[len(d)-1])
-		cc := ccc(r)
-		if cc != 0 && lccc == 0 && tccc == 0 {
-			logger.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc)
-		}
-		if tccc < lccc && lccc != 0 {
-			const msg = "%U: lccc (%d) must be <= tcc (%d)"
-			logger.Fatalf(msg, r, lccc, tccc)
-		}
-		index := normalDecomp
-		if tccc > 0 || lccc > 0 {
-			s += string([]byte{tccc})
-			index = endMulti
-			for _, r := range d[1:] {
-				if ccc(r) == 0 {
-					index = firstCCC
-				}
-			}
-			if lccc > 0 {
-				s += string([]byte{lccc})
-				if index == firstCCC {
-					logger.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r)
-				}
-				index = firstLeadingCCC
-			}
-			if cc != lccc {
-				if cc != 0 {
-					logger.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc)
-				}
-				index = firstCCCZeroExcept
-			}
-		} else if len(d) > 1 {
-			index = firstMulti
-		}
-		return index, s
-	}
-
-	decompSet := makeDecompSet()
-
-	// Store the uniqued decompositions in a byte buffer,
-	// preceded by their byte length.
-	for _, c := range chars {
-		for _, f := range c.forms {
-			if len(f.expandedDecomp) == 0 {
-				continue
-			}
-			if f.combinesBackward {
-				logger.Fatalf("%U: combinesBackward and decompose", c.codePoint)
-			}
-			index, s := mkstr(c.codePoint, &f)
-			decompSet.insert(index, s)
-		}
-	}
-
-	decompositions := bytes.NewBuffer(make([]byte, 0, 10000))
-	size := 0
-	positionMap := make(map[string]uint16)
-	decompositions.WriteString("\000")
-	fmt.Println("const (")
-	for i, m := range decompSet {
-		sa := []string{}
-		for s := range m {
-			sa = append(sa, s)
-		}
-		sort.Strings(sa)
-		for _, s := range sa {
-			p := decompositions.Len()
-			decompositions.WriteString(s)
-			positionMap[s] = uint16(p)
-		}
-		if cname[i] != "" {
-			fmt.Printf("%s = 0x%X\n", cname[i], decompositions.Len())
-		}
-	}
-	fmt.Println("maxDecomp = 0x8000")
-	fmt.Println(")")
-	b := decompositions.Bytes()
-	printBytes(b, "decomps")
-	size += len(b)
-
-	varnames := []string{"nfc", "nfkc"}
-	for i := 0; i < FNumberOfFormTypes; i++ {
-		trie := newNode()
-		for r, c := range chars {
-			f := c.forms[i]
-			d := f.expandedDecomp
-			if len(d) != 0 {
-				_, key := mkstr(c.codePoint, &f)
-				trie.insert(rune(r), positionMap[key])
-				if c.ccc != ccc(d[0]) {
-					// We assume the lead ccc of a decomposition !=0 in this case.
-					if ccc(d[0]) == 0 {
-						logger.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc)
-					}
-				}
-			} else if v := makeEntry(&f)<<8 | uint16(c.ccc); v != 0 {
-				trie.insert(c.codePoint, 0x8000|v)
-			}
-		}
-		size += trie.printTables(varnames[i])
-	}
-	return size
-}
-
-func contains(sa []string, s string) bool {
-	for _, a := range sa {
-		if a == s {
-			return true
-		}
-	}
-	return false
-}
-
-// Extract the version number from the URL.
-func version() string {
-	// From http://www.unicode.org/standard/versions/#Version_Numbering:
-	// for the later Unicode versions, data files are located in
-	// versioned directories.
-	fields := strings.Split(*url, "/")
-	for _, f := range fields {
-		if match, _ := regexp.MatchString(`[0-9]\.[0-9]\.[0-9]`, f); match {
-			return f
-		}
-	}
-	logger.Fatal("unknown version")
-	return "Unknown"
-}
-
-const fileHeader = `// Generated by running
-//	maketables --tables=%s --url=%s
-// DO NOT EDIT
-
-package norm
-
-`
-
-func makeTables() {
-	size := 0
-	if *tablelist == "" {
-		return
-	}
-	list := strings.Split(*tablelist, ",")
-	if *tablelist == "all" {
-		list = []string{"recomp", "info"}
-	}
-	fmt.Printf(fileHeader, *tablelist, *url)
-
-	fmt.Println("// Version is the Unicode edition from which the tables are derived.")
-	fmt.Printf("const Version = %q\n\n", version())
-
-	if contains(list, "info") {
-		size += printCharInfoTables()
-	}
-
-	if contains(list, "recomp") {
-		// Note that we use 32 bit keys, instead of 64 bit.
-		// This clips the bits of three entries, but we know
-		// this won't cause a collision. The compiler will catch
-		// any changes made to UnicodeData.txt that introduces
-		// a collision.
-		// Note that the recomposition map for NFC and NFKC
-		// are identical.
-
-		// Recomposition map
-		nrentries := 0
-		for _, c := range chars {
-			f := c.forms[FCanonical]
-			if !f.isOneWay && len(f.decomp) > 0 {
-				nrentries++
-			}
-		}
-		sz := nrentries * 8
-		size += sz
-		fmt.Printf("// recompMap: %d bytes (entries only)\n", sz)
-		fmt.Println("var recompMap = map[uint32]rune{")
-		for i, c := range chars {
-			f := c.forms[FCanonical]
-			d := f.decomp
-			if !f.isOneWay && len(d) > 0 {
-				key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1]))
-				fmt.Printf("0x%.8X: 0x%.4X,\n", key, i)
-			}
-		}
-		fmt.Printf("}\n\n")
-	}
-
-	fmt.Printf("// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size)
-}
-
-func printChars() {
-	if *verbose {
-		for _, c := range chars {
-			if !c.isValid() || c.state == SMissing {
-				continue
-			}
-			fmt.Println(c)
-		}
-	}
-}
-
-// verifyComputed does various consistency tests.
-func verifyComputed() {
-	for i, c := range chars {
-		for _, f := range c.forms {
-			isNo := (f.quickCheck[MDecomposed] == QCNo)
-			if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) {
-				log.Fatalf("%U: NF*D must be no if rune decomposes", i)
-			}
-
-			isMaybe := f.quickCheck[MComposed] == QCMaybe
-			if f.combinesBackward != isMaybe {
-				log.Fatalf("%U: NF*C must be maybe if combinesBackward", i)
-			}
-		}
-		nfc := c.forms[FCanonical]
-		nfkc := c.forms[FCompatibility]
-		if nfc.combinesBackward != nfkc.combinesBackward {
-			logger.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint)
-		}
-	}
-}
-
-var qcRe = regexp.MustCompile(`([0-9A-F\.]+) *; (NF.*_QC); ([YNM]) #.*`)
-
-// Use values in DerivedNormalizationProps.txt to compare against the
-// values we computed.
-// DerivedNormalizationProps.txt has form:
-// 00C0..00C5    ; NFD_QC; N # ...
-// 0374          ; NFD_QC; N # ...
-// See http://unicode.org/reports/tr44/ for full explanation
-func testDerived() {
-	if !*test {
-		return
-	}
-	f := openReader("DerivedNormalizationProps.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		qc := qcRe.FindStringSubmatch(line)
-		if qc == nil {
-			continue
-		}
-		rng := strings.Split(qc[1], "..")
-		i, err := strconv.ParseUint(rng[0], 16, 64)
-		if err != nil {
-			log.Fatal(err)
-		}
-		j := i
-		if len(rng) > 1 {
-			j, err = strconv.ParseUint(rng[1], 16, 64)
-			if err != nil {
-				log.Fatal(err)
-			}
-		}
-		var ftype, mode int
-		qt := strings.TrimSpace(qc[2])
-		switch qt {
-		case "NFC_QC":
-			ftype, mode = FCanonical, MComposed
-		case "NFD_QC":
-			ftype, mode = FCanonical, MDecomposed
-		case "NFKC_QC":
-			ftype, mode = FCompatibility, MComposed
-		case "NFKD_QC":
-			ftype, mode = FCompatibility, MDecomposed
-		default:
-			log.Fatalf(`Unexpected quick check type "%s"`, qt)
-		}
-		var qr QCResult
-		switch qc[3] {
-		case "Y":
-			qr = QCYes
-		case "N":
-			qr = QCNo
-		case "M":
-			qr = QCMaybe
-		default:
-			log.Fatalf(`Unexpected quick check value "%s"`, qc[3])
-		}
-		var lastFailed bool
-		// Verify current
-		for ; i <= j; i++ {
-			c := &chars[int(i)]
-			c.forms[ftype].verified[mode] = true
-			curqr := c.forms[ftype].quickCheck[mode]
-			if curqr != qr {
-				if !lastFailed {
-					logger.Printf("%s: %.4X..%.4X -- %s\n",
-						qt, int(i), int(j), line[0:50])
-				}
-				logger.Printf("%U: FAILED %s (was %v need %v)\n",
-					int(i), qt, curqr, qr)
-				lastFailed = true
-			}
-		}
-	}
-	// Any unspecified value must be QCYes. Verify this.
-	for i, c := range chars {
-		for j, fd := range c.forms {
-			for k, qr := range fd.quickCheck {
-				if !fd.verified[k] && qr != QCYes {
-					m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n"
-					logger.Printf(m, i, j, k, qr, c.name)
-				}
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/maketesttables.go gcc-4.8.1/libgo/go/exp/norm/maketesttables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/maketesttables.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/maketesttables.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Generate test data for trie code.
-
-package main
-
-import (
-	"fmt"
-)
-
-func main() {
-	printTestTables()
-}
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-const fileHeader = `// Generated by running
-//	maketesttables
-// DO NOT EDIT
-
-package norm
-
-`
-
-func printTestTables() {
-	fmt.Print(fileHeader)
-	fmt.Printf("var testRunes = %#v\n\n", testRunes)
-	t := newNode()
-	for i, r := range testRunes {
-		t.insert(r, uint16(i))
-	}
-	t.printTables("testdata")
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/norm_test.go gcc-4.8.1/libgo/go/exp/norm/norm_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/norm_test.go	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/norm_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm_test
-
-import (
-	"testing"
-)
-
-func TestPlaceHolder(t *testing.T) {
-	// Does nothing, just allows the Makefile to be canonical
-	// while waiting for the package itself to be written.
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normalize.go gcc-4.8.1/libgo/go/exp/norm/normalize.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normalize.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/normalize.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,478 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package norm contains types and functions for normalizing Unicode strings.
-package norm
-
-import "unicode/utf8"
-
-// A Form denotes a canonical representation of Unicode code points.
-// The Unicode-defined normalization and equivalence forms are:
-//
-//   NFC   Unicode Normalization Form C
-//   NFD   Unicode Normalization Form D
-//   NFKC  Unicode Normalization Form KC
-//   NFKD  Unicode Normalization Form KD
-//
-// For a Form f, this documentation uses the notation f(x) to mean
-// the bytes or string x converted to the given form.
-// A position n in x is called a boundary if conversion to the form can
-// proceed independently on both sides:
-//   f(x) == append(f(x[0:n]), f(x[n:])...)
-//
-// References: http://unicode.org/reports/tr15/ and
-// http://unicode.org/notes/tn5/.
-type Form int
-
-const (
-	NFC Form = iota
-	NFD
-	NFKC
-	NFKD
-)
-
-// Bytes returns f(b). May return b if f(b) = b.
-func (f Form) Bytes(b []byte) []byte {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	n := quickSpan(&rb, 0)
-	if n == len(b) {
-		return b
-	}
-	out := make([]byte, n, len(b))
-	copy(out, b[0:n])
-	return doAppend(&rb, out, n)
-}
-
-// String returns f(s).
-func (f Form) String(s string) string {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	n := quickSpan(&rb, 0)
-	if n == len(s) {
-		return s
-	}
-	out := make([]byte, n, len(s))
-	copy(out, s[0:n])
-	return string(doAppend(&rb, out, n))
-}
-
-// IsNormal returns true if b == f(b).
-func (f Form) IsNormal(b []byte) bool {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	bp := quickSpan(&rb, 0)
-	if bp == len(b) {
-		return true
-	}
-	for bp < len(b) {
-		decomposeSegment(&rb, bp)
-		if rb.f.composing {
-			rb.compose()
-		}
-		for i := 0; i < rb.nrune; i++ {
-			info := rb.rune[i]
-			if bp+int(info.size) > len(b) {
-				return false
-			}
-			p := info.pos
-			pe := p + info.size
-			for ; p < pe; p++ {
-				if b[bp] != rb.byte[p] {
-					return false
-				}
-				bp++
-			}
-		}
-		rb.reset()
-		bp = quickSpan(&rb, bp)
-	}
-	return true
-}
-
-// IsNormalString returns true if s == f(s).
-func (f Form) IsNormalString(s string) bool {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	bp := quickSpan(&rb, 0)
-	if bp == len(s) {
-		return true
-	}
-	for bp < len(s) {
-		decomposeSegment(&rb, bp)
-		if rb.f.composing {
-			rb.compose()
-		}
-		for i := 0; i < rb.nrune; i++ {
-			info := rb.rune[i]
-			if bp+int(info.size) > len(s) {
-				return false
-			}
-			p := info.pos
-			pe := p + info.size
-			for ; p < pe; p++ {
-				if s[bp] != rb.byte[p] {
-					return false
-				}
-				bp++
-			}
-		}
-		rb.reset()
-		bp = quickSpan(&rb, bp)
-	}
-	return true
-}
-
-// patchTail fixes a case where a rune may be incorrectly normalized
-// if it is followed by illegal continuation bytes. It returns the
-// patched buffer and whether there were trailing continuation bytes.
-func patchTail(rb *reorderBuffer, buf []byte) ([]byte, bool) {
-	info, p := lastRuneStart(&rb.f, buf)
-	if p == -1 || info.size == 0 {
-		return buf, false
-	}
-	end := p + int(info.size)
-	extra := len(buf) - end
-	if extra > 0 {
-		// Potentially allocating memory. However, this only
-		// happens with ill-formed UTF-8.
-		x := make([]byte, 0)
-		x = append(x, buf[len(buf)-extra:]...)
-		buf = decomposeToLastBoundary(rb, buf[:end])
-		if rb.f.composing {
-			rb.compose()
-		}
-		buf = rb.flush(buf)
-		return append(buf, x...), true
-	}
-	return buf, false
-}
-
-func appendQuick(rb *reorderBuffer, dst []byte, i int) ([]byte, int) {
-	if rb.nsrc == i {
-		return dst, i
-	}
-	end := quickSpan(rb, i)
-	return rb.src.appendSlice(dst, i, end), end
-}
-
-// Append returns f(append(out, b...)).
-// The buffer out must be nil, empty, or equal to f(out).
-func (f Form) Append(out []byte, src ...byte) []byte {
-	if len(src) == 0 {
-		return out
-	}
-	rb := reorderBuffer{}
-	rb.init(f, src)
-	return doAppend(&rb, out, 0)
-}
-
-func doAppend(rb *reorderBuffer, out []byte, p int) []byte {
-	src, n := rb.src, rb.nsrc
-	doMerge := len(out) > 0
-	if q := src.skipNonStarter(p); q > p {
-		// Move leading non-starters to destination.
-		out = src.appendSlice(out, p, q)
-		buf, endsInError := patchTail(rb, out)
-		if endsInError {
-			out = buf
-			doMerge = false // no need to merge, ends with illegal UTF-8
-		} else {
-			out = decomposeToLastBoundary(rb, buf) // force decomposition
-		}
-		p = q
-	}
-	fd := &rb.f
-	if doMerge {
-		var info Properties
-		if p < n {
-			info = fd.info(src, p)
-			if p == 0 && !info.BoundaryBefore() {
-				out = decomposeToLastBoundary(rb, out)
-			}
-		}
-		if info.size == 0 || info.BoundaryBefore() {
-			if fd.composing {
-				rb.compose()
-			}
-			out = rb.flush(out)
-			if info.size == 0 {
-				// Append incomplete UTF-8 encoding.
-				return src.appendSlice(out, p, n)
-			}
-		}
-	}
-	if rb.nrune == 0 {
-		out, p = appendQuick(rb, out, p)
-	}
-	for p < n {
-		p = decomposeSegment(rb, p)
-		if fd.composing {
-			rb.compose()
-		}
-		out = rb.flush(out)
-		out, p = appendQuick(rb, out, p)
-	}
-	return out
-}
-
-// AppendString returns f(append(out, []byte(s))).
-// The buffer out must be nil, empty, or equal to f(out).
-func (f Form) AppendString(out []byte, src string) []byte {
-	if len(src) == 0 {
-		return out
-	}
-	rb := reorderBuffer{}
-	rb.initString(f, src)
-	return doAppend(&rb, out, 0)
-}
-
-// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).
-// It is not guaranteed to return the largest such n.
-func (f Form) QuickSpan(b []byte) int {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	n := quickSpan(&rb, 0)
-	return n
-}
-
-func quickSpan(rb *reorderBuffer, i int) int {
-	var lastCC uint8
-	var nc int
-	lastSegStart := i
-	src, n := rb.src, rb.nsrc
-	for i < n {
-		if j := src.skipASCII(i, n); i != j {
-			i = j
-			lastSegStart = i - 1
-			lastCC = 0
-			nc = 0
-			continue
-		}
-		info := rb.f.info(src, i)
-		if info.size == 0 {
-			// include incomplete runes
-			return n
-		}
-		cc := info.ccc
-		if rb.f.composing {
-			if !info.isYesC() {
-				break
-			}
-		} else {
-			if !info.isYesD() {
-				break
-			}
-		}
-		if cc == 0 {
-			lastSegStart = i
-			nc = 0
-		} else {
-			if nc >= maxCombiningChars {
-				lastSegStart = i
-				lastCC = cc
-				nc = 1
-			} else {
-				if lastCC > cc {
-					return lastSegStart
-				}
-				nc++
-			}
-		}
-		lastCC = cc
-		i += int(info.size)
-	}
-	if i == n {
-		return n
-	}
-	if rb.f.composing {
-		return lastSegStart
-	}
-	return i
-}
-
-// QuickSpanString returns a boundary n such that b[0:n] == f(s[0:n]).
-// It is not guaranteed to return the largest such n.
-func (f Form) QuickSpanString(s string) int {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	return quickSpan(&rb, 0)
-}
-
-// FirstBoundary returns the position i of the first boundary in b
-// or -1 if b contains no boundary.
-func (f Form) FirstBoundary(b []byte) int {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	return firstBoundary(&rb)
-}
-
-func firstBoundary(rb *reorderBuffer) int {
-	src, nsrc := rb.src, rb.nsrc
-	i := src.skipNonStarter(0)
-	if i >= nsrc {
-		return -1
-	}
-	fd := &rb.f
-	info := fd.info(src, i)
-	for n := 0; info.size != 0 && !info.BoundaryBefore(); {
-		i += int(info.size)
-		if n++; n >= maxCombiningChars {
-			return i
-		}
-		if i >= nsrc {
-			if !info.BoundaryAfter() {
-				return -1
-			}
-			return nsrc
-		}
-		info = fd.info(src, i)
-	}
-	if info.size == 0 {
-		return -1
-	}
-	return i
-}
-
-// FirstBoundaryInString returns the position i of the first boundary in s
-// or -1 if s contains no boundary.
-func (f Form) FirstBoundaryInString(s string) int {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	return firstBoundary(&rb)
-}
-
-// LastBoundary returns the position i of the last boundary in b
-// or -1 if b contains no boundary.
-func (f Form) LastBoundary(b []byte) int {
-	return lastBoundary(formTable[f], b)
-}
-
-func lastBoundary(fd *formInfo, b []byte) int {
-	i := len(b)
-	info, p := lastRuneStart(fd, b)
-	if p == -1 {
-		return -1
-	}
-	if info.size == 0 { // ends with incomplete rune
-		if p == 0 { // starts with incomplete rune
-			return -1
-		}
-		i = p
-		info, p = lastRuneStart(fd, b[:i])
-		if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter
-			return i
-		}
-	}
-	if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8
-		return i
-	}
-	if info.BoundaryAfter() {
-		return i
-	}
-	i = p
-	for n := 0; i >= 0 && !info.BoundaryBefore(); {
-		info, p = lastRuneStart(fd, b[:i])
-		if n++; n >= maxCombiningChars {
-			return len(b)
-		}
-		if p+int(info.size) != i {
-			if p == -1 { // no boundary found
-				return -1
-			}
-			return i // boundary after an illegal UTF-8 encoding
-		}
-		i = p
-	}
-	return i
-}
-
-// decomposeSegment scans the first segment in src into rb.
-// It returns the number of bytes consumed from src.
-// TODO(mpvl): consider inserting U+034f (Combining Grapheme Joiner)
-// when we detect a sequence of 30+ non-starter chars.
-func decomposeSegment(rb *reorderBuffer, sp int) int {
-	// Force one character to be consumed.
-	info := rb.f.info(rb.src, sp)
-	if info.size == 0 {
-		return 0
-	}
-	for rb.insert(rb.src, sp, info) {
-		sp += int(info.size)
-		if sp >= rb.nsrc {
-			break
-		}
-		info = rb.f.info(rb.src, sp)
-		bound := info.BoundaryBefore()
-		if bound || info.size == 0 {
-			break
-		}
-	}
-	return sp
-}
-
-// lastRuneStart returns the runeInfo and position of the last
-// rune in buf or the zero runeInfo and -1 if no rune was found.
-func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {
-	p := len(buf) - 1
-	for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {
-	}
-	if p < 0 {
-		return Properties{}, -1
-	}
-	return fd.info(inputBytes(buf), p), p
-}
-
-// decomposeToLastBoundary finds an open segment at the end of the buffer
-// and scans it into rb. Returns the buffer minus the last segment.
-func decomposeToLastBoundary(rb *reorderBuffer, buf []byte) []byte {
-	fd := &rb.f
-	info, i := lastRuneStart(fd, buf)
-	if int(info.size) != len(buf)-i {
-		// illegal trailing continuation bytes
-		return buf
-	}
-	if info.BoundaryAfter() {
-		return buf
-	}
-	var add [maxBackRunes]Properties // stores runeInfo in reverse order
-	add[0] = info
-	padd := 1
-	n := 1
-	p := len(buf) - int(info.size)
-	for ; p >= 0 && !info.BoundaryBefore(); p -= int(info.size) {
-		info, i = lastRuneStart(fd, buf[:p])
-		if int(info.size) != p-i {
-			break
-		}
-		// Check that decomposition doesn't result in overflow.
-		if info.hasDecomposition() {
-			if isHangul(buf) {
-				i += int(info.size)
-				n++
-			} else {
-				dcomp := info.Decomposition()
-				for i := 0; i < len(dcomp); {
-					inf := rb.f.info(inputBytes(dcomp), i)
-					i += int(inf.size)
-					n++
-				}
-			}
-		} else {
-			n++
-		}
-		if n > maxBackRunes {
-			break
-		}
-		add[padd] = info
-		padd++
-	}
-	pp := p
-	for padd--; padd >= 0; padd-- {
-		info = add[padd]
-		rb.insert(inputBytes(buf), pp, info)
-		pp += int(info.size)
-	}
-	return buf[:p]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normalize_test.go gcc-4.8.1/libgo/go/exp/norm/normalize_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normalize_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/normalize_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,750 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"bytes"
-	"io"
-	"strings"
-	"testing"
-)
-
-type PositionTest struct {
-	input  string
-	pos    int
-	buffer string // expected contents of reorderBuffer, if applicable
-}
-
-type positionFunc func(rb *reorderBuffer, s string) int
-
-func runPosTests(t *testing.T, name string, f Form, fn positionFunc, tests []PositionTest) {
-	rb := reorderBuffer{}
-	rb.init(f, nil)
-	for i, test := range tests {
-		rb.reset()
-		rb.src = inputString(test.input)
-		rb.nsrc = len(test.input)
-		pos := fn(&rb, test.input)
-		if pos != test.pos {
-			t.Errorf("%s:%d: position is %d; want %d", name, i, pos, test.pos)
-		}
-		runes := []rune(test.buffer)
-		if rb.nrune != len(runes) {
-			t.Errorf("%s:%d: reorder buffer length is %d; want %d", name, i, rb.nrune, len(runes))
-			continue
-		}
-		for j, want := range runes {
-			found := rune(rb.runeAt(j))
-			if found != want {
-				t.Errorf("%s:%d: rune at %d is %U; want %U", name, i, j, found, want)
-			}
-		}
-	}
-}
-
-var decomposeSegmentTests = []PositionTest{
-	// illegal runes
-	{"\xC0", 0, ""},
-	{"\u00E0\x80", 2, "\u0061\u0300"},
-	// starter
-	{"a", 1, "a"},
-	{"ab", 1, "a"},
-	// starter + composing
-	{"a\u0300", 3, "a\u0300"},
-	{"a\u0300b", 3, "a\u0300"},
-	// with decomposition
-	{"\u00C0", 2, "A\u0300"},
-	{"\u00C0b", 2, "A\u0300"},
-	// long
-	{strings.Repeat("\u0300", 31), 62, strings.Repeat("\u0300", 31)},
-	// ends with incomplete UTF-8 encoding
-	{"\xCC", 0, ""},
-	{"\u0300\xCC", 2, "\u0300"},
-}
-
-func decomposeSegmentF(rb *reorderBuffer, s string) int {
-	rb.src = inputString(s)
-	rb.nsrc = len(s)
-	return decomposeSegment(rb, 0)
-}
-
-func TestDecomposeSegment(t *testing.T) {
-	runPosTests(t, "TestDecomposeSegment", NFC, decomposeSegmentF, decomposeSegmentTests)
-}
-
-var firstBoundaryTests = []PositionTest{
-	// no boundary
-	{"", -1, ""},
-	{"\u0300", -1, ""},
-	{"\x80\x80", -1, ""},
-	// illegal runes
-	{"\xff", 0, ""},
-	{"\u0300\xff", 2, ""},
-	{"\u0300\xc0\x80\x80", 2, ""},
-	// boundaries
-	{"a", 0, ""},
-	{"\u0300a", 2, ""},
-	// Hangul
-	{"\u1103\u1161", 0, ""},
-	{"\u110B\u1173\u11B7", 0, ""},
-	{"\u1161\u110B\u1173\u11B7", 3, ""},
-	{"\u1173\u11B7\u1103\u1161", 6, ""},
-	// too many combining characters.
-	{strings.Repeat("\u0300", maxCombiningChars-1), -1, ""},
-	{strings.Repeat("\u0300", maxCombiningChars), 60, ""},
-	{strings.Repeat("\u0300", maxCombiningChars+1), 60, ""},
-}
-
-func firstBoundaryF(rb *reorderBuffer, s string) int {
-	return rb.f.form.FirstBoundary([]byte(s))
-}
-
-func firstBoundaryStringF(rb *reorderBuffer, s string) int {
-	return rb.f.form.FirstBoundaryInString(s)
-}
-
-func TestFirstBoundary(t *testing.T) {
-	runPosTests(t, "TestFirstBoundary", NFC, firstBoundaryF, firstBoundaryTests)
-	runPosTests(t, "TestFirstBoundaryInString", NFC, firstBoundaryStringF, firstBoundaryTests)
-}
-
-var decomposeToLastTests = []PositionTest{
-	// ends with inert character
-	{"Hello!", 6, ""},
-	{"\u0632", 2, ""},
-	{"a\u0301\u0635", 5, ""},
-	// ends with non-inert starter
-	{"a", 0, "a"},
-	{"a\u0301a", 3, "a"},
-	{"a\u0301\u03B9", 3, "\u03B9"},
-	{"a\u0327", 0, "a\u0327"},
-	// illegal runes
-	{"\xFF", 1, ""},
-	{"aa\xFF", 3, ""},
-	{"\xC0\x80\x80", 3, ""},
-	{"\xCC\x80\x80", 3, ""},
-	// ends with incomplete UTF-8 encoding
-	{"a\xCC", 2, ""},
-	// ends with combining characters
-	{"\u0300\u0301", 0, "\u0300\u0301"},
-	{"a\u0300\u0301", 0, "a\u0300\u0301"},
-	{"a\u0301\u0308", 0, "a\u0301\u0308"},
-	{"a\u0308\u0301", 0, "a\u0308\u0301"},
-	{"aaaa\u0300\u0301", 3, "a\u0300\u0301"},
-	{"\u0300a\u0300\u0301", 2, "a\u0300\u0301"},
-	{"\u00C0", 0, "A\u0300"},
-	{"a\u00C0", 1, "A\u0300"},
-	// decomposing
-	{"a\u0300\uFDC0", 3, "\u0645\u062C\u064A"},
-	{"\uFDC0" + strings.Repeat("\u0300", 26), 0, "\u0645\u062C\u064A" + strings.Repeat("\u0300", 26)},
-	// Hangul
-	{"a\u1103", 1, "\u1103"},
-	{"a\u110B", 1, "\u110B"},
-	{"a\u110B\u1173", 1, "\u110B\u1173"},
-	// See comment in composition.go:compBoundaryAfter.
-	{"a\u110B\u1173\u11B7", 1, "\u110B\u1173\u11B7"},
-	{"a\uC73C", 1, "\u110B\u1173"},
-	{"ë‹¤ìŒ", 3, "\u110B\u1173\u11B7"},
-	{"ë‹¤", 0, "\u1103\u1161"},
-	{"\u1103\u1161\u110B\u1173\u11B7", 6, "\u110B\u1173\u11B7"},
-	{"\u110B\u1173\u11B7\u1103\u1161", 9, "\u1103\u1161"},
-	{"ë‹¤ìŒìŒ", 6, "\u110B\u1173\u11B7"},
-	{"ìŒë‹¤ë‹¤", 6, "\u1103\u1161"},
-	// buffer overflow
-	{"a" + strings.Repeat("\u0300", 30), 3, strings.Repeat("\u0300", 29)},
-	{"\uFDFA" + strings.Repeat("\u0300", 14), 3, strings.Repeat("\u0300", 14)},
-	// weird UTF-8
-	{"a\u0300\u11B7", 0, "a\u0300\u11B7"},
-}
-
-func decomposeToLast(rb *reorderBuffer, s string) int {
-	buf := decomposeToLastBoundary(rb, []byte(s))
-	return len(buf)
-}
-
-func TestDecomposeToLastBoundary(t *testing.T) {
-	runPosTests(t, "TestDecomposeToLastBoundary", NFKC, decomposeToLast, decomposeToLastTests)
-}
-
-var lastBoundaryTests = []PositionTest{
-	// ends with inert character
-	{"Hello!", 6, ""},
-	{"\u0632", 2, ""},
-	// ends with non-inert starter
-	{"a", 0, ""},
-	// illegal runes
-	{"\xff", 1, ""},
-	{"aa\xff", 3, ""},
-	{"a\xff\u0300", 1, ""},
-	{"\xc0\x80\x80", 3, ""},
-	{"\xc0\x80\x80\u0300", 3, ""},
-	// ends with incomplete UTF-8 encoding
-	{"\xCC", -1, ""},
-	{"\xE0\x80", -1, ""},
-	{"\xF0\x80\x80", -1, ""},
-	{"a\xCC", 0, ""},
-	{"\x80\xCC", 1, ""},
-	{"\xCC\xCC", 1, ""},
-	// ends with combining characters
-	{"a\u0300\u0301", 0, ""},
-	{"aaaa\u0300\u0301", 3, ""},
-	{"\u0300a\u0300\u0301", 2, ""},
-	{"\u00C0", 0, ""},
-	{"a\u00C0", 1, ""},
-	// decomposition may recombine
-	{"\u0226", 0, ""},
-	// no boundary
-	{"", -1, ""},
-	{"\u0300\u0301", -1, ""},
-	{"\u0300", -1, ""},
-	{"\x80\x80", -1, ""},
-	{"\x80\x80\u0301", -1, ""},
-	// Hangul
-	{"ë‹¤ìŒ", 3, ""},
-	{"ë‹¤", 0, ""},
-	{"\u1103\u1161\u110B\u1173\u11B7", 6, ""},
-	{"\u110B\u1173\u11B7\u1103\u1161", 9, ""},
-	// too many combining characters.
-	{strings.Repeat("\u0300", maxCombiningChars-1), -1, ""},
-	{strings.Repeat("\u0300", maxCombiningChars), 60, ""},
-	{strings.Repeat("\u0300", maxCombiningChars+1), 62, ""},
-}
-
-func lastBoundaryF(rb *reorderBuffer, s string) int {
-	return rb.f.form.LastBoundary([]byte(s))
-}
-
-func TestLastBoundary(t *testing.T) {
-	runPosTests(t, "TestLastBoundary", NFC, lastBoundaryF, lastBoundaryTests)
-}
-
-var quickSpanTests = []PositionTest{
-	{"", 0, ""},
-	// starters
-	{"a", 1, ""},
-	{"abc", 3, ""},
-	{"\u043Eb", 3, ""},
-	// incomplete last rune.
-	{"\xCC", 1, ""},
-	{"a\xCC", 2, ""},
-	// incorrectly ordered combining characters
-	{"\u0300\u0316", 0, ""},
-	{"\u0300\u0316cd", 0, ""},
-	// have a maximum number of combining characters.
-	{strings.Repeat("\u035D", 30) + "\u035B", 62, ""},
-	{"a" + strings.Repeat("\u035D", 30) + "\u035B", 63, ""},
-	{"ÆŸ" + strings.Repeat("\u035D", 30) + "\u035B", 64, ""},
-	{"aa" + strings.Repeat("\u035D", 30) + "\u035B", 64, ""},
-}
-
-var quickSpanNFDTests = []PositionTest{
-	// needs decomposing
-	{"\u00C0", 0, ""},
-	{"abc\u00C0", 3, ""},
-	// correctly ordered combining characters
-	{"\u0300", 2, ""},
-	{"ab\u0300", 4, ""},
-	{"ab\u0300cd", 6, ""},
-	{"\u0300cd", 4, ""},
-	{"\u0316\u0300", 4, ""},
-	{"ab\u0316\u0300", 6, ""},
-	{"ab\u0316\u0300cd", 8, ""},
-	{"ab\u0316\u0300\u00C0", 6, ""},
-	{"\u0316\u0300cd", 6, ""},
-	{"\u043E\u0308b", 5, ""},
-	// incorrectly ordered combining characters
-	{"ab\u0300\u0316", 1, ""}, // TODO: we could skip 'b' as well.
-	{"ab\u0300\u0316cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 0, ""},
-}
-
-var quickSpanNFCTests = []PositionTest{
-	// okay composed
-	{"\u00C0", 2, ""},
-	{"abc\u00C0", 5, ""},
-	// correctly ordered combining characters
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u00C0\u035D", 4, ""},
-	// we do not special case leading combining characters
-	{"\u0300cd", 0, ""},
-	{"\u0300", 0, ""},
-	{"\u0316\u0300", 0, ""},
-	{"\u0316\u0300cd", 0, ""},
-	// incorrectly ordered combining characters
-	{"ab\u0300\u0316", 1, ""},
-	{"ab\u0300\u0316cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 6, ""},
-}
-
-func doQuickSpan(rb *reorderBuffer, s string) int {
-	return rb.f.form.QuickSpan([]byte(s))
-}
-
-func doQuickSpanString(rb *reorderBuffer, s string) int {
-	return rb.f.form.QuickSpanString(s)
-}
-
-func TestQuickSpan(t *testing.T) {
-	runPosTests(t, "TestQuickSpanNFD1", NFD, doQuickSpan, quickSpanTests)
-	runPosTests(t, "TestQuickSpanNFD2", NFD, doQuickSpan, quickSpanNFDTests)
-	runPosTests(t, "TestQuickSpanNFC1", NFC, doQuickSpan, quickSpanTests)
-	runPosTests(t, "TestQuickSpanNFC2", NFC, doQuickSpan, quickSpanNFCTests)
-
-	runPosTests(t, "TestQuickSpanStringNFD1", NFD, doQuickSpanString, quickSpanTests)
-	runPosTests(t, "TestQuickSpanStringNFD2", NFD, doQuickSpanString, quickSpanNFDTests)
-	runPosTests(t, "TestQuickSpanStringNFC1", NFC, doQuickSpanString, quickSpanTests)
-	runPosTests(t, "TestQuickSpanStringNFC2", NFC, doQuickSpanString, quickSpanNFCTests)
-}
-
-var isNormalTests = []PositionTest{
-	{"", 1, ""},
-	// illegal runes
-	{"\xff", 1, ""},
-	// starters
-	{"a", 1, ""},
-	{"abc", 1, ""},
-	{"\u043Eb", 1, ""},
-	// incorrectly ordered combining characters
-	{"\u0300\u0316", 0, ""},
-	{"ab\u0300\u0316", 0, ""},
-	{"ab\u0300\u0316cd", 0, ""},
-	{"\u0300\u0316cd", 0, ""},
-}
-var isNormalNFDTests = []PositionTest{
-	// needs decomposing
-	{"\u00C0", 0, ""},
-	{"abc\u00C0", 0, ""},
-	// correctly ordered combining characters
-	{"\u0300", 1, ""},
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"\u0300cd", 1, ""},
-	{"\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u0316\u0300cd", 1, ""},
-	{"\u043E\u0308b", 1, ""},
-	// Hangul
-	{"ê°™ì€", 0, ""},
-}
-var isNormalNFCTests = []PositionTest{
-	// okay composed
-	{"\u00C0", 1, ""},
-	{"abc\u00C0", 1, ""},
-	// need reordering
-	{"a\u0300", 0, ""},
-	{"a\u0300cd", 0, ""},
-	{"a\u0316\u0300", 0, ""},
-	{"a\u0316\u0300cd", 0, ""},
-	// correctly ordered combining characters
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u00C0\u035D", 1, ""},
-	{"\u0300", 1, ""},
-	{"\u0316\u0300cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 1, ""},
-}
-
-func isNormalF(rb *reorderBuffer, s string) int {
-	if rb.f.form.IsNormal([]byte(s)) {
-		return 1
-	}
-	return 0
-}
-
-func TestIsNormal(t *testing.T) {
-	runPosTests(t, "TestIsNormalNFD1", NFD, isNormalF, isNormalTests)
-	runPosTests(t, "TestIsNormalNFD2", NFD, isNormalF, isNormalNFDTests)
-	runPosTests(t, "TestIsNormalNFC1", NFC, isNormalF, isNormalTests)
-	runPosTests(t, "TestIsNormalNFC2", NFC, isNormalF, isNormalNFCTests)
-}
-
-type AppendTest struct {
-	left  string
-	right string
-	out   string
-}
-
-type appendFunc func(f Form, out []byte, s string) []byte
-
-func runAppendTests(t *testing.T, name string, f Form, fn appendFunc, tests []AppendTest) {
-	for i, test := range tests {
-		out := []byte(test.left)
-		out = fn(f, out, test.right)
-		outs := string(out)
-		if len(outs) != len(test.out) {
-			t.Errorf("%s:%d: length is %d; want %d", name, i, len(outs), len(test.out))
-		}
-		if outs != test.out {
-			// Find first rune that differs and show context.
-			ir := []rune(outs)
-			ig := []rune(test.out)
-			for j := 0; j < len(ir) && j < len(ig); j++ {
-				if ir[j] == ig[j] {
-					continue
-				}
-				if j -= 3; j < 0 {
-					j = 0
-				}
-				for e := j + 7; j < e && j < len(ir) && j < len(ig); j++ {
-					t.Errorf("%s:%d: runeAt(%d) = %U; want %U", name, i, j, ir[j], ig[j])
-				}
-				break
-			}
-		}
-	}
-}
-
-var appendTests = []AppendTest{
-	// empty buffers
-	{"", "", ""},
-	{"a", "", "a"},
-	{"", "a", "a"},
-	{"", "\u0041\u0307\u0304", "\u01E0"},
-	// segment split across buffers
-	{"", "a\u0300b", "\u00E0b"},
-	{"a", "\u0300b", "\u00E0b"},
-	{"a", "\u0300\u0316", "\u00E0\u0316"},
-	{"a", "\u0316\u0300", "\u00E0\u0316"},
-	{"a", "\u0300a\u0300", "\u00E0\u00E0"},
-	{"a", "\u0300a\u0300a\u0300", "\u00E0\u00E0\u00E0"},
-	{"a", "\u0300aaa\u0300aaa\u0300", "\u00E0aa\u00E0aa\u00E0"},
-	{"a\u0300", "\u0327", "\u00E0\u0327"},
-	{"a\u0327", "\u0300", "\u00E0\u0327"},
-	{"a\u0316", "\u0300", "\u00E0\u0316"},
-	{"\u0041\u0307", "\u0304", "\u01E0"},
-	// Hangul
-	{"", "\u110B\u1173", "\uC73C"},
-	{"", "\u1103\u1161", "\uB2E4"},
-	{"", "\u110B\u1173\u11B7", "\uC74C"},
-	{"", "\u320E", "\x28\uAC00\x29"},
-	{"", "\x28\u1100\u1161\x29", "\x28\uAC00\x29"},
-	{"\u1103", "\u1161", "\uB2E4"},
-	{"\u110B", "\u1173\u11B7", "\uC74C"},
-	{"\u110B\u1173", "\u11B7", "\uC74C"},
-	{"\uC73C", "\u11B7", "\uC74C"},
-	// UTF-8 encoding split across buffers
-	{"a\xCC", "\x80", "\u00E0"},
-	{"a\xCC", "\x80b", "\u00E0b"},
-	{"a\xCC", "\x80a\u0300", "\u00E0\u00E0"},
-	{"a\xCC", "\x80\x80", "\u00E0\x80"},
-	{"a\xCC", "\x80\xCC", "\u00E0\xCC"},
-	{"a\u0316\xCC", "\x80a\u0316\u0300", "\u00E0\u0316\u00E0\u0316"},
-	// ending in incomplete UTF-8 encoding
-	{"", "\xCC", "\xCC"},
-	{"a", "\xCC", "a\xCC"},
-	{"a", "b\xCC", "ab\xCC"},
-	{"\u0226", "\xCC", "\u0226\xCC"},
-	// illegal runes
-	{"", "\x80", "\x80"},
-	{"", "\x80\x80\x80", "\x80\x80\x80"},
-	{"", "\xCC\x80\x80\x80", "\xCC\x80\x80\x80"},
-	{"", "a\x80", "a\x80"},
-	{"", "a\x80\x80\x80", "a\x80\x80\x80"},
-	{"", "a\x80\x80\x80\x80\x80\x80", "a\x80\x80\x80\x80\x80\x80"},
-	{"a", "\x80\x80\x80", "a\x80\x80\x80"},
-	// overflow
-	{"", strings.Repeat("\x80", 33), strings.Repeat("\x80", 33)},
-	{strings.Repeat("\x80", 33), "", strings.Repeat("\x80", 33)},
-	{strings.Repeat("\x80", 33), strings.Repeat("\x80", 33), strings.Repeat("\x80", 66)},
-	// overflow of combining characters
-	{strings.Repeat("\u0300", 33), "", strings.Repeat("\u0300", 33)},
-	// weird UTF-8
-	{"\u00E0\xE1", "\x86", "\u00E0\xE1\x86"},
-	{"a\u0300\u11B7", "\u0300", "\u00E0\u11B7\u0300"},
-	{"a\u0300\u11B7\u0300", "\u0300", "\u00E0\u11B7\u0300\u0300"},
-	{"\u0300", "\xF8\x80\x80\x80\x80\u0300", "\u0300\xF8\x80\x80\x80\x80\u0300"},
-	{"\u0300", "\xFC\x80\x80\x80\x80\x80\u0300", "\u0300\xFC\x80\x80\x80\x80\x80\u0300"},
-	{"\xF8\x80\x80\x80\x80\u0300", "\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"},
-	{"\xFC\x80\x80\x80\x80\x80\u0300", "\u0300", "\xFC\x80\x80\x80\x80\x80\u0300\u0300"},
-	{"\xF8\x80\x80\x80", "\x80\u0300\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"},
-}
-
-func appendF(f Form, out []byte, s string) []byte {
-	return f.Append(out, []byte(s)...)
-}
-
-func appendStringF(f Form, out []byte, s string) []byte {
-	return f.AppendString(out, s)
-}
-
-func bytesF(f Form, out []byte, s string) []byte {
-	buf := []byte{}
-	buf = append(buf, out...)
-	buf = append(buf, s...)
-	return f.Bytes(buf)
-}
-
-func stringF(f Form, out []byte, s string) []byte {
-	outs := string(out) + s
-	return []byte(f.String(outs))
-}
-
-func TestAppend(t *testing.T) {
-	runAppendTests(t, "TestAppend", NFKC, appendF, appendTests)
-	runAppendTests(t, "TestAppendString", NFKC, appendStringF, appendTests)
-	runAppendTests(t, "TestBytes", NFKC, bytesF, appendTests)
-	runAppendTests(t, "TestString", NFKC, stringF, appendTests)
-}
-
-func appendBench(f Form, in []byte) func() {
-	buf := make([]byte, 0, 4*len(in))
-	return func() {
-		f.Append(buf, in...)
-	}
-}
-
-func iterBench(f Form, in []byte) func() {
-	iter := Iter{}
-	return func() {
-		iter.Init(f, in)
-		for !iter.Done() {
-			iter.Next()
-		}
-	}
-}
-
-func readerBench(f Form, in []byte) func() {
-	buf := make([]byte, 4*len(in))
-	return func() {
-		r := f.Reader(bytes.NewReader(in))
-		var err error
-		for err == nil {
-			_, err = r.Read(buf)
-		}
-		if err != io.EOF {
-			panic("")
-		}
-	}
-}
-
-func writerBench(f Form, in []byte) func() {
-	buf := make([]byte, 0, 4*len(in))
-	return func() {
-		r := f.Writer(bytes.NewBuffer(buf))
-		if _, err := r.Write(in); err != nil {
-			panic("")
-		}
-	}
-}
-
-func appendBenchmarks(bm []func(), f Form, in []byte) []func() {
-	//bm = append(bm, appendBench(f, in))
-	bm = append(bm, iterBench(f, in))
-	//bm = append(bm, readerBench(f, in))
-	//bm = append(bm, writerBench(f, in))
-	return bm
-}
-
-func doFormBenchmark(b *testing.B, inf, f Form, s string) {
-	b.StopTimer()
-	in := inf.Bytes([]byte(s))
-	bm := appendBenchmarks(nil, f, in)
-	b.SetBytes(int64(len(in) * len(bm)))
-	b.StartTimer()
-	for i := 0; i < b.N; i++ {
-		for _, fn := range bm {
-			fn()
-		}
-	}
-}
-
-var ascii = strings.Repeat("There is nothing to change here! ", 500)
-
-func BenchmarkNormalizeAsciiNFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, ascii)
-}
-func BenchmarkNormalizeAsciiNFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, ascii)
-}
-func BenchmarkNormalizeAsciiNFKC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFKC, ascii)
-}
-func BenchmarkNormalizeAsciiNFKD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFKD, ascii)
-}
-
-func BenchmarkNormalizeNFC2NFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, txt_all)
-}
-func BenchmarkNormalizeNFC2NFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, txt_all)
-}
-func BenchmarkNormalizeNFD2NFC(b *testing.B) {
-	doFormBenchmark(b, NFD, NFC, txt_all)
-}
-func BenchmarkNormalizeNFD2NFD(b *testing.B) {
-	doFormBenchmark(b, NFD, NFD, txt_all)
-}
-
-// Hangul is often special-cased, so we test it separately.
-func BenchmarkNormalizeHangulNFC2NFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, txt_kr)
-}
-func BenchmarkNormalizeHangulNFC2NFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, txt_kr)
-}
-func BenchmarkNormalizeHangulNFD2NFC(b *testing.B) {
-	doFormBenchmark(b, NFD, NFC, txt_kr)
-}
-func BenchmarkNormalizeHangulNFD2NFD(b *testing.B) {
-	doFormBenchmark(b, NFD, NFD, txt_kr)
-}
-
-var forms = []Form{NFC, NFD, NFKC, NFKD}
-
-func doTextBenchmark(b *testing.B, s string) {
-	b.StopTimer()
-	in := []byte(s)
-	bm := []func(){}
-	for _, f := range forms {
-		bm = appendBenchmarks(bm, f, in)
-	}
-	b.SetBytes(int64(len(s) * len(bm)))
-	b.StartTimer()
-	for i := 0; i < b.N; i++ {
-		for _, f := range bm {
-			f()
-		}
-	}
-}
-
-func BenchmarkCanonicalOrdering(b *testing.B) {
-	doTextBenchmark(b, txt_canon)
-}
-func BenchmarkExtendedLatin(b *testing.B) {
-	doTextBenchmark(b, txt_vn)
-}
-func BenchmarkMiscTwoByteUtf8(b *testing.B) {
-	doTextBenchmark(b, twoByteUtf8)
-}
-func BenchmarkMiscThreeByteUtf8(b *testing.B) {
-	doTextBenchmark(b, threeByteUtf8)
-}
-func BenchmarkHangul(b *testing.B) {
-	doTextBenchmark(b, txt_kr)
-}
-func BenchmarkJapanese(b *testing.B) {
-	doTextBenchmark(b, txt_jp)
-}
-func BenchmarkChinese(b *testing.B) {
-	doTextBenchmark(b, txt_cn)
-}
-func BenchmarkOverflow(b *testing.B) {
-	doTextBenchmark(b, overflow)
-}
-
-var overflow = string(bytes.Repeat([]byte("\u035D"), 4096)) + "\u035B"
-
-// Tests sampled from the Canonical ordering tests (Part 2) of
-// http://unicode.org/Public/UNIDATA/NormalizationTest.txt
-const txt_canon = `\u0061\u0315\u0300\u05AE\u0300\u0062 \u0061\u0300\u0315\u0300\u05AE\u0062
-\u0061\u0302\u0315\u0300\u05AE\u0062 \u0061\u0307\u0315\u0300\u05AE\u0062
-\u0061\u0315\u0300\u05AE\u030A\u0062 \u0061\u059A\u0316\u302A\u031C\u0062
-\u0061\u032E\u059A\u0316\u302A\u0062 \u0061\u0338\u093C\u0334\u0062 
-\u0061\u059A\u0316\u302A\u0339       \u0061\u0341\u0315\u0300\u05AE\u0062
-\u0061\u0348\u059A\u0316\u302A\u0062 \u0061\u0361\u0345\u035D\u035C\u0062
-\u0061\u0366\u0315\u0300\u05AE\u0062 \u0061\u0315\u0300\u05AE\u0486\u0062
-\u0061\u05A4\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0613\u0062
-\u0061\u0315\u0300\u05AE\u0615\u0062 \u0061\u0617\u0315\u0300\u05AE\u0062
-\u0061\u0619\u0618\u064D\u064E\u0062 \u0061\u0315\u0300\u05AE\u0654\u0062
-\u0061\u0315\u0300\u05AE\u06DC\u0062 \u0061\u0733\u0315\u0300\u05AE\u0062
-\u0061\u0744\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0745\u0062
-\u0061\u09CD\u05B0\u094D\u3099\u0062 \u0061\u0E38\u0E48\u0E38\u0C56\u0062
-\u0061\u0EB8\u0E48\u0E38\u0E49\u0062 \u0061\u0F72\u0F71\u0EC8\u0F71\u0062
-\u0061\u1039\u05B0\u094D\u3099\u0062 \u0061\u05B0\u094D\u3099\u1A60\u0062
-\u0061\u3099\u093C\u0334\u1BE6\u0062 \u0061\u3099\u093C\u0334\u1C37\u0062
-\u0061\u1CD9\u059A\u0316\u302A\u0062 \u0061\u2DED\u0315\u0300\u05AE\u0062
-\u0061\u2DEF\u0315\u0300\u05AE\u0062 \u0061\u302D\u302E\u059A\u0316\u0062`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/
-const txt_vn = `Vá»›i cÃ¡c Ä‘iá»u kiá»‡n sau: Ghi nháº­n cÃ´ng cá»§a tÃ¡c giáº£. 
-Náº¿u báº¡n sá»­ dá»¥ng, chuyá»ƒn Ä‘á»•i, hoáº·c xÃ¢y dá»±ng dá»± Ã¡n tá»« 
-ná»™i dung Ä‘Æ°á»£c chia sáº» nÃ y, báº¡n pháº£i Ã¡p dá»¥ng giáº¥y phÃ©p nÃ y hoáº·c 
-má»™t giáº¥y phÃ©p khÃ¡c cÃ³ cÃ¡c Ä‘iá»u khoáº£n tÆ°Æ¡ng tá»± nhÆ° giáº¥y phÃ©p nÃ y
-cho dá»± Ã¡n cá»§a báº¡n. Hiá»ƒu ráº±ng: Miá»…n â€” Báº¥t ká»³ cÃ¡c Ä‘iá»u kiá»‡n nÃ o
-trÃªn Ä‘Ã¢y cÅ©ng cÃ³ thá»ƒ Ä‘Æ°á»£c miá»…n bá» náº¿u báº¡n Ä‘Æ°á»£c sá»± cho phÃ©p cá»§a
-ngÆ°á»i sá»Ÿ há»¯u báº£n quyá»n. Pháº¡m vi cÃ´ng chÃºng â€” Khi tÃ¡c pháº©m hoáº·c
-báº¥t ká»³ chÆ°Æ¡ng nÃ o cá»§a tÃ¡c pháº©m Ä‘Ã£ trong vÃ¹ng dÃ nh cho cÃ´ng
-chÃºng theo quy Ä‘á»‹nh cá»§a phÃ¡p luáº­t thÃ¬ tÃ¬nh tráº¡ng cá»§a nÃ³ khÃ´ng 
-bá»‹ áº£nh hÆ°á»Ÿng bá»Ÿi giáº¥y phÃ©p trong báº¥t ká»³ trÆ°á»ng há»£p nÃ o.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru
-const txt_ru = `ÐŸÑ€Ð¸ Ð¾Ð±ÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¼ ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ð¸ ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð¸Ñ… ÑƒÑÐ»Ð¾Ð²Ð¸Ð¹:
-Attribution â€” Ð’Ñ‹ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ (ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ
-Ð°Ð²Ñ‚Ð¾Ñ€Ð° Ð¸ Ð¸ÑÑ‚Ð¾Ñ‡Ð½Ð¸Ðº) Ð² Ð¿Ð¾Ñ€ÑÐ´ÐºÐµ, Ð¿Ñ€ÐµÐ´ÑƒÑÐ¼Ð¾Ñ‚Ñ€ÐµÐ½Ð½Ð¾Ð¼ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼ Ð¸Ð»Ð¸
-Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ð°Ñ€Ð¾Ð¼ (Ð½Ð¾ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ‚Ð°Ðº, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð½Ð¸ÐºÐ¾Ð¸Ð¼ Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð¼ Ð½Ðµ Ð¿Ð¾Ð´Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ²Ð°Ð»Ð¾ÑÑŒ,
-Ñ‡Ñ‚Ð¾ Ð¾Ð½Ð¸ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ‚ Ð²Ð°Ñ Ð¸Ð»Ð¸ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð²Ð°Ð¼Ð¸ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ).
-Î¥Ï€ÏŒ Ï„Î¹Ï‚ Î±ÎºÏŒÎ»Î¿Ï…Î¸ÎµÏ‚ Ï€ÏÎ¿Ï‹Ï€Î¿Î¸Î­ÏƒÎµÎ¹Ï‚:`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/
-const txt_gr = `Î‘Î½Î±Ï†Î¿ÏÎ¬ Î”Î·Î¼Î¹Î¿Ï…ÏÎ³Î¿Ï â€” Î˜Î± Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± ÎºÎ¬Î½ÎµÏ„Îµ Ï„Î·Î½ Î±Î½Î±Ï†Î¿ÏÎ¬ ÏƒÏ„Î¿ Î­ÏÎ³Î¿ Î¼Îµ Ï„Î¿Î½
-Ï„ÏÏŒÏ€Î¿ Ï€Î¿Ï… Î­Ï‡ÎµÎ¹ Î¿ÏÎ¹ÏƒÏ„ÎµÎ¯ Î±Ï€ÏŒ Ï„Î¿ Î´Î·Î¼Î¹Î¿Ï…ÏÎ³ÏŒ Î® Ï„Î¿ Ï‡Î¿ÏÎ·Î³Î¿ÏÎ½Ï„Î¿ Ï„Î·Î½ Î¬Î´ÎµÎ¹Î±
-(Ï‡Ï‰ÏÎ¯Ï‚ ÏŒÎ¼Ï‰Ï‚ Î½Î± ÎµÎ½Î½Î¿ÎµÎ¯Ï„Î±Î¹ Î¼Îµ Î¿Ï€Î¿Î¹Î¿Î½Î´Î®Ï€Î¿Ï„Îµ Ï„ÏÏŒÏ€Î¿ ÏŒÏ„Î¹ ÎµÎ³ÎºÏÎ¯Î½Î¿Ï…Î½ ÎµÏƒÎ¬Ï‚ Î®
-Ï„Î· Ï‡ÏÎ®ÏƒÎ· Ï„Î¿Ï… Î­ÏÎ³Î¿Ï… Î±Ï€ÏŒ ÎµÏƒÎ¬Ï‚). Î Î±ÏÏŒÎ¼Î¿Î¹Î± Î”Î¹Î±Î½Î¿Î¼Î® â€” Î•Î¬Î½ Î±Î»Î»Î¿Î¹ÏŽÏƒÎµÏ„Îµ,
-Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ Î® Î´Î·Î¼Î¹Î¿Ï…ÏÎ³Î®ÏƒÎµÏ„Îµ Ï€ÎµÏÎ±Î¹Ï„Î­ÏÏ‰ Î²Î±ÏƒÎ¹ÏƒÎ¼Î­Î½Î¿Î¹ ÏƒÏ„Î¿ Î­ÏÎ³Î¿ Î¸Î±
-Î¼Ï€Î¿ÏÎµÎ¯Ï„Îµ Î½Î± Î´Î¹Î±Î½Î­Î¼ÎµÏ„Îµ Ï„Î¿ Î­ÏÎ³Î¿ Ï€Î¿Ï… Î¸Î± Ï€ÏÎ¿ÎºÏÏˆÎµÎ¹ Î¼ÏŒÎ½Î¿ Î¼Îµ Ï„Î·Î½ Î¯Î´Î¹Î± Î®
-Ï€Î±ÏÏŒÎ¼Î¿Î¹Î± Î¬Î´ÎµÎ¹Î±.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/deed.ar
-const txt_ar = `Ø¨Ù…ÙˆØ¬Ø¨ Ø§Ù„Ø´Ø±ÙˆØ· Ø§Ù„ØªØ§Ù„ÙŠØ© Ù†Ø³Ø¨ Ø§Ù„Ù…ØµÙ†Ù â€” ÙŠØ¬Ø¨ Ø¹Ù„ÙŠÙƒ Ø£Ù†
-ØªÙ†Ø³Ø¨ Ø§Ù„Ø¹Ù…Ù„ Ø¨Ø§Ù„Ø·Ø±ÙŠÙ‚Ø© Ø§Ù„ØªÙŠ ØªØ­Ø¯Ø¯Ù‡Ø§ Ø§Ù„Ù…Ø¤Ù„Ù Ø£Ùˆ Ø§Ù„Ù…Ø±Ø®Øµ (ÙˆÙ„ÙƒÙ† Ù„ÙŠØ³ Ø¨Ø£ÙŠ Ø­Ø§Ù„ Ù…Ù†
-Ø§Ù„Ø£Ø­ÙˆØ§Ù„ Ø£Ù† ØªÙˆØ­ÙŠ ÙˆØªÙ‚ØªØ±Ø­ Ø¨ØªØ­ÙˆÙ„ Ø£Ùˆ Ø§Ø³ØªØ®Ø¯Ø§Ù…Ùƒ Ù„Ù„Ø¹Ù…Ù„).
-Ø§Ù„Ù…Ø´Ø§Ø±ÙƒØ© Ø¹Ù„Ù‰ Ù‚Ø¯Ù… Ø§Ù„Ù…Ø³Ø§ÙˆØ§Ø© â€” Ø¥Ø°Ø§ ÙƒÙ†Øª ÙŠØ¹Ø¯Ù„ ØŒ ÙˆØ§Ù„ØªØºÙŠÙŠØ± ØŒ Ø£Ùˆ Ø§Ù„Ø§Ø³ØªÙØ§Ø¯Ø©
-Ù…Ù† Ù‡Ø°Ø§ Ø§Ù„Ø¹Ù…Ù„ ØŒ Ù‚Ø¯ ÙŠÙ†ØªØ¬ Ø¹Ù† ØªÙˆØ²ÙŠØ¹ Ø§Ù„Ø¹Ù…Ù„ Ø¥Ù„Ø§ ÙÙŠ Ø¸Ù„ ØªØ´Ø§Ø¨Ù‡ Ø§Ùˆ ØªØ·Ø§Ø¨Ù‚ ÙÙ‰ ÙˆØ§Ø­Ø¯
-Ù„Ù‡Ø°Ø§ Ø§Ù„ØªØ±Ø®ÙŠØµ.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/1.0/il/
-const txt_il = `×‘×›×¤×•×£ ×œ×ª× ××™× ×”×‘××™×: ×™×™×—×•×¡ â€” ×¢×œ×™×š ×œ×™×™×—×¡ ××ª ×”×™×¦×™×¨×” (×œ×ª×ª ×§×¨×“×™×˜) ×‘××•×¤×Ÿ
-×”×ž×¦×•×™×™×Ÿ ×¢×œ-×™×“×™ ×”×™×•×¦×¨ ××• ×ž×¢× ×™×§ ×”×¨×™×©×™×•×Ÿ (××š ×œ× ×‘×©×•× ××•×¤×Ÿ ×”×ž×¨×ž×– ×¢×œ ×›×š
-×©×”× ×ª×•×ž×›×™× ×‘×š ××• ×‘×©×™×ž×•×© ×©×œ×š ×‘×™×¦×™×¨×”). ×©×™×ª×•×£ ×–×”×” â€” ×× ×ª×—×œ×™×˜/×™ ×œ×©× ×•×ª,
-×œ×¢×‘×“ ××• ×œ×™×¦×•×¨ ×™×¦×™×¨×” × ×’×–×¨×ª ×‘×”×¡×ª×ž×š ×¢×œ ×™×¦×™×¨×” ×–×•, ×ª×•×›×œ/×™ ×œ×”×¤×™×¥ ××ª ×™×¦×™×¨×ª×š
-×”×—×“×©×” ×¨×§ ×ª×—×ª ××•×ª×• ×”×¨×™×©×™×•×Ÿ ××• ×¨×™×©×™×•×Ÿ ×“×•×ž×” ×œ×¨×™×©×™×•×Ÿ ×–×”.`
-
-const twoByteUtf8 = txt_ru + txt_gr + txt_ar + txt_il
-
-// Taken from http://creativecommons.org/licenses/by-sa/2.0/kr/
-const txt_kr = `ë‹¤ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ í•©ë‹ˆë‹¤: ì €ìž‘ìží‘œì‹œ
-(Attribution) â€” ì €ìž‘ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ ë°©ë²•ìœ¼ë¡œ ì €ìž‘ë¬¼ì˜
-ì›ì €ìž‘ìžë¥¼ í‘œì‹œí•˜ì—¬ì•¼ í•©ë‹ˆë‹¤(ê·¸ëŸ¬ë‚˜ ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜
-ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ ì¶”ì²œí•œë‹¤ëŠ” ì˜ë¯¸ë¡œ í‘œì‹œí•´ì„œëŠ” ì•ˆë©ë‹ˆë‹¤). 
-ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ â€” ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ ë§Œë“  ì´ì°¨ì  ì €ìž‘ë¬¼ì—ëŠ” ë³¸
-ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ í•©ë‹ˆë‹¤.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/th/
-const txt_th = `à¸ à¸²à¸¢à¹ƒà¸•à¹‰à¹€à¸‡à¸·à¹ˆà¸­à¸™à¹„à¸‚ à¸”à¸±à¸‡à¸•à¹ˆà¸­à¹„à¸›à¸™à¸µà¹‰ : à¹à¸ªà¸”à¸‡à¸—à¸µà¹ˆà¸¡à¸² â€” à¸„à¸¸à¸“à¸•à¹‰à¸­à¸‡à¹à¸ªà¸”à¸‡à¸—à¸µà¹ˆ
-à¸¡à¸²à¸‚à¸­à¸‡à¸‡à¸²à¸™à¸”à¸±à¸‡à¸à¸¥à¹ˆà¸²à¸§ à¸•à¸²à¸¡à¸£à¸¹à¸›à¹à¸šà¸šà¸—à¸µà¹ˆà¸œà¸¹à¹‰à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸£à¸£à¸„à¹Œà¸«à¸£à¸·à¸­à¸œà¸¹à¹‰à¸­à¸™à¸¸à¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ
-à¹„à¸¡à¹ˆà¹ƒà¸Šà¹ˆà¹ƒà¸™à¸¥à¸±à¸à¸©à¸“à¸°à¸—à¸µà¹ˆà¸§à¹ˆà¸² à¸žà¸§à¸à¹€à¸‚à¸²à¸ªà¸™à¸±à¸šà¸ªà¸™à¸¸à¸™à¸„à¸¸à¸“à¸«à¸£à¸·à¸­à¸ªà¸™à¸±à¸šà¸ªà¸™à¸¸à¸™à¸à¸²à¸£à¸—à¸µà¹ˆ
-à¸„à¸¸à¸“à¸™à¸³à¸‡à¸²à¸™à¹„à¸›à¹ƒà¸Šà¹‰) à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”à¸µà¸¢à¸§à¸à¸±à¸™ â€” à¸«à¸²à¸à¸„à¸¸à¸“à¸”à¸±à¸”à¹à¸›à¸¥à¸‡ à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸¹à¸› à¸«à¸£à¸·
-à¸­à¸•à¹ˆà¸­à¹€à¸•à¸´à¸¡à¸‡à¸²à¸™à¸™à¸µà¹‰ à¸„à¸¸à¸“à¸•à¹‰à¸­à¸‡à¹ƒà¸Šà¹‰à¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”à¸µà¸¢à¸§à¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—à¸µà¹ˆà¹€à¸«à¸¡à¸·
-à¸­à¸™à¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—à¸µà¹ˆà¹ƒà¸Šà¹‰à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™`
-
-const threeByteUtf8 = txt_th
-
-// Taken from http://creativecommons.org/licenses/by-sa/2.0/jp/
-const txt_jp = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-è¡¨ç¤º â€” ã‚ãªãŸã¯åŽŸè‘—ä½œè€…ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’è¡¨ç¤ºã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ã€‚
-ç¶™æ‰¿ â€” ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“ã‚’æ”¹å¤‰ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€
-ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿
-é ’å¸ƒã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚`
-
-// http://creativecommons.org/licenses/by-sa/2.5/cn/
-const txt_cn = `æ‚¨å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€
-å¹¿æ’­æˆ–é€šè¿‡ä¿¡æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“
-å¯¹æœ¬ä½œå“è¿›è¡Œå•†ä¸šæ€§ä½¿ç”¨ æƒŸé¡»éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š
-ç½²å â€” æ‚¨å¿…é¡»æŒ‰ç…§ä½œè€…æˆ–è€…è®¸å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“è¿›è¡Œç½²åã€‚
-ç›¸åŒæ–¹å¼å…±äº« â€” å¦‚æžœæ‚¨æ”¹å˜ã€è½¬æ¢æœ¬ä½œå“æˆ–è€…ä»¥æœ¬ä½œå“ä¸ºåŸºç¡€è¿›è¡Œåˆ›ä½œï¼Œ
-æ‚¨åªèƒ½é‡‡ç”¨ä¸Žæœ¬åè®®ç›¸åŒçš„è®¸å¯åè®®å‘å¸ƒåŸºäºŽæœ¬ä½œå“çš„æ¼”ç»Žä½œå“ã€‚`
-
-const txt_cjk = txt_cn + txt_jp + txt_kr
-const txt_all = txt_vn + twoByteUtf8 + threeByteUtf8 + txt_cjk
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normregtest.go gcc-4.8.1/libgo/go/exp/norm/normregtest.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normregtest.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/normregtest.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,308 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-import (
-	"bufio"
-	"bytes"
-	"exp/norm"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"runtime"
-	"strconv"
-	"strings"
-	"time"
-	"unicode"
-	"unicode/utf8"
-)
-
-func main() {
-	flag.Parse()
-	loadTestData()
-	CharacterByCharacterTests()
-	StandardTests()
-	PerformanceTest()
-	if errorCount == 0 {
-		fmt.Println("PASS")
-	}
-}
-
-const file = "NormalizationTest.txt"
-
-var url = flag.String("url",
-	"http://www.unicode.org/Public/"+unicode.Version+"/ucd/"+file,
-	"URL of Unicode database directory")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-var logger = log.New(os.Stderr, "", log.Lshortfile)
-
-// This regression test runs the test set in NormalizationTest.txt
-// (taken from http://www.unicode.org/Public/<unicode.Version>/ucd/).
-//
-// NormalizationTest.txt has form:
-// @Part0 # Specific cases
-// #
-// 1E0A;1E0A;0044 0307;1E0A;0044 0307; # (á¸Š; á¸Š; Dâ—ŒÌ‡; á¸Š; Dâ—ŒÌ‡; ) LATIN CAPITAL LETTER D WITH DOT ABOVE
-// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # (á¸Œ; á¸Œ; Dâ—ŒÌ£; á¸Œ; Dâ—ŒÌ£; ) LATIN CAPITAL LETTER D WITH DOT BELOW
-//
-// Each test has 5 columns (c1, c2, c3, c4, c5), where
-// (c1, c2, c3, c4, c5) == (c1, NFC(c1), NFD(c1), NFKC(c1), NFKD(c1))
-//
-// CONFORMANCE:
-// 1. The following invariants must be true for all conformant implementations
-//
-//    NFC
-//      c2 ==  NFC(c1) ==  NFC(c2) ==  NFC(c3)
-//      c4 ==  NFC(c4) ==  NFC(c5)
-//
-//    NFD
-//      c3 ==  NFD(c1) ==  NFD(c2) ==  NFD(c3)
-//      c5 ==  NFD(c4) ==  NFD(c5)
-//
-//    NFKC
-//      c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
-//
-//    NFKD
-//      c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
-//
-// 2. For every code point X assigned in this version of Unicode that is not
-//    specifically listed in Part 1, the following invariants must be true
-//    for all conformant implementations:
-//
-//      X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
-//
-
-// Column types.
-const (
-	cRaw = iota
-	cNFC
-	cNFD
-	cNFKC
-	cNFKD
-	cMaxColumns
-)
-
-// Holds data from NormalizationTest.txt
-var part []Part
-
-type Part struct {
-	name   string
-	number int
-	tests  []Test
-}
-
-type Test struct {
-	name   string
-	partnr int
-	number int
-	r      rune                // used for character by character test
-	cols   [cMaxColumns]string // Each has 5 entries, see below.
-}
-
-func (t Test) Name() string {
-	if t.number < 0 {
-		return part[t.partnr].name
-	}
-	return fmt.Sprintf("%s:%d", part[t.partnr].name, t.number)
-}
-
-var partRe = regexp.MustCompile(`@Part(\d) # (.*)\n$`)
-var testRe = regexp.MustCompile(`^` + strings.Repeat(`([\dA-F ]+);`, 5) + ` # (.*)\n?$`)
-
-var counter int
-
-// Load the data form NormalizationTest.txt
-func loadTestData() {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		*url = "file://" + path.Join(pwd, file)
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(*url)
-	if err != nil {
-		logger.Fatal(err)
-	}
-	if resp.StatusCode != 200 {
-		logger.Fatal("bad GET status for "+file, resp.Status)
-	}
-	f := resp.Body
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		m := partRe.FindStringSubmatch(line)
-		if m != nil {
-			if len(m) < 3 {
-				logger.Fatal("Failed to parse Part: ", line)
-			}
-			i, err := strconv.Atoi(m[1])
-			if err != nil {
-				logger.Fatal(err)
-			}
-			name := m[2]
-			part = append(part, Part{name: name[:len(name)-1], number: i})
-			continue
-		}
-		m = testRe.FindStringSubmatch(line)
-		if m == nil || len(m) < 7 {
-			logger.Fatalf(`Failed to parse: "%s" result: %#v`, line, m)
-		}
-		test := Test{name: m[6], partnr: len(part) - 1, number: counter}
-		counter++
-		for j := 1; j < len(m)-1; j++ {
-			for _, split := range strings.Split(m[j], " ") {
-				r, err := strconv.ParseUint(split, 16, 64)
-				if err != nil {
-					logger.Fatal(err)
-				}
-				if test.r == 0 {
-					// save for CharacterByCharacterTests
-					test.r = rune(r)
-				}
-				var buf [utf8.UTFMax]byte
-				sz := utf8.EncodeRune(buf[:], rune(r))
-				test.cols[j-1] += string(buf[:sz])
-			}
-		}
-		part := &part[len(part)-1]
-		part.tests = append(part.tests, test)
-	}
-}
-
-var fstr = []string{"NFC", "NFD", "NFKC", "NFKD"}
-
-var errorCount int
-
-func cmpResult(t *Test, name string, f norm.Form, gold, test, result string) {
-	if gold != result {
-		errorCount++
-		if errorCount > 20 {
-			return
-		}
-		st, sr, sg := []rune(test), []rune(result), []rune(gold)
-		logger.Printf("%s:%s: %s(%X)=%X; want:%X: %s",
-			t.Name(), name, fstr[f], st, sr, sg, t.name)
-	}
-}
-
-func cmpIsNormal(t *Test, name string, f norm.Form, test string, result, want bool) {
-	if result != want {
-		errorCount++
-		if errorCount > 20 {
-			return
-		}
-		logger.Printf("%s:%s: %s(%X)=%v; want: %v", t.Name(), name, fstr[f], []rune(test), result, want)
-	}
-}
-
-func doTest(t *Test, f norm.Form, gold, test string) {
-	result := f.Bytes([]byte(test))
-	cmpResult(t, "Bytes", f, gold, test, string(result))
-	sresult := f.String(test)
-	cmpResult(t, "String", f, gold, test, sresult)
-	acc := []byte{}
-	i := norm.Iter{}
-	i.InitString(f, test)
-	for !i.Done() {
-		acc = append(acc, i.Next()...)
-	}
-	cmpResult(t, "Iter.Next", f, gold, test, string(acc))
-	for i := range test {
-		out := f.Append(f.Bytes([]byte(test[:i])), []byte(test[i:])...)
-		cmpResult(t, fmt.Sprintf(":Append:%d", i), f, gold, test, string(out))
-	}
-	cmpIsNormal(t, "IsNormal", f, test, f.IsNormal([]byte(test)), test == gold)
-}
-
-func doConformanceTests(t *Test, partn int) {
-	for i := 0; i <= 2; i++ {
-		doTest(t, norm.NFC, t.cols[1], t.cols[i])
-		doTest(t, norm.NFD, t.cols[2], t.cols[i])
-		doTest(t, norm.NFKC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFKD, t.cols[4], t.cols[i])
-	}
-	for i := 3; i <= 4; i++ {
-		doTest(t, norm.NFC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFD, t.cols[4], t.cols[i])
-		doTest(t, norm.NFKC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFKD, t.cols[4], t.cols[i])
-	}
-}
-
-func CharacterByCharacterTests() {
-	tests := part[1].tests
-	var last rune = 0
-	for i := 0; i <= len(tests); i++ { // last one is special case
-		var r rune
-		if i == len(tests) {
-			r = 0x2FA1E // Don't have to go to 0x10FFFF
-		} else {
-			r = tests[i].r
-		}
-		for last++; last < r; last++ {
-			// Check all characters that were not explicitly listed in the test.
-			t := &Test{partnr: 1, number: -1}
-			char := string(last)
-			doTest(t, norm.NFC, char, char)
-			doTest(t, norm.NFD, char, char)
-			doTest(t, norm.NFKC, char, char)
-			doTest(t, norm.NFKD, char, char)
-		}
-		if i < len(tests) {
-			doConformanceTests(&tests[i], 1)
-		}
-	}
-}
-
-func StandardTests() {
-	for _, j := range []int{0, 2, 3} {
-		for _, test := range part[j].tests {
-			doConformanceTests(&test, j)
-		}
-	}
-}
-
-// PerformanceTest verifies that normalization is O(n). If any of the
-// code does not properly check for maxCombiningChars, normalization
-// may exhibit O(n**2) behavior.
-func PerformanceTest() {
-	runtime.GOMAXPROCS(2)
-	success := make(chan bool, 1)
-	go func() {
-		buf := bytes.Repeat([]byte("\u035D"), 1024*1024)
-		buf = append(buf, "\u035B"...)
-		norm.NFC.Append(nil, buf...)
-		success <- true
-	}()
-	timeout := time.After(1 * time.Second)
-	select {
-	case <-success:
-		// test completed before the timeout
-	case <-timeout:
-		errorCount++
-		logger.Printf(`unexpectedly long time to complete PerformanceTest`)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/readwriter.go gcc-4.8.1/libgo/go/exp/norm/readwriter.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/readwriter.go	2012-01-25 20:56:26.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/readwriter.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,126 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "io"
-
-type normWriter struct {
-	rb  reorderBuffer
-	w   io.Writer
-	buf []byte
-}
-
-// Write implements the standard write interface.  If the last characters are
-// not at a normalization boundary, the bytes will be buffered for the next
-// write. The remaining bytes will be written on close.
-func (w *normWriter) Write(data []byte) (n int, err error) {
-	// Process data in pieces to keep w.buf size bounded.
-	const chunk = 4000
-
-	for len(data) > 0 {
-		// Normalize into w.buf.
-		m := len(data)
-		if m > chunk {
-			m = chunk
-		}
-		w.rb.src = inputBytes(data[:m])
-		w.rb.nsrc = m
-		w.buf = doAppend(&w.rb, w.buf, 0)
-		data = data[m:]
-		n += m
-
-		// Write out complete prefix, save remainder.
-		// Note that lastBoundary looks back at most 30 runes.
-		i := lastBoundary(&w.rb.f, w.buf)
-		if i == -1 {
-			i = 0
-		}
-		if i > 0 {
-			if _, err = w.w.Write(w.buf[:i]); err != nil {
-				break
-			}
-			bn := copy(w.buf, w.buf[i:])
-			w.buf = w.buf[:bn]
-		}
-	}
-	return n, err
-}
-
-// Close forces data that remains in the buffer to be written.
-func (w *normWriter) Close() error {
-	if len(w.buf) > 0 {
-		_, err := w.w.Write(w.buf)
-		if err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-// Writer returns a new writer that implements Write(b)
-// by writing f(b) to w.  The returned writer may use an
-// an internal buffer to maintain state across Write calls.
-// Calling its Close method writes any buffered data to w.
-func (f Form) Writer(w io.Writer) io.WriteCloser {
-	wr := &normWriter{rb: reorderBuffer{}, w: w}
-	wr.rb.init(f, nil)
-	return wr
-}
-
-type normReader struct {
-	rb           reorderBuffer
-	r            io.Reader
-	inbuf        []byte
-	outbuf       []byte
-	bufStart     int
-	lastBoundary int
-	err          error
-}
-
-// Read implements the standard read interface.
-func (r *normReader) Read(p []byte) (int, error) {
-	for {
-		if r.lastBoundary-r.bufStart > 0 {
-			n := copy(p, r.outbuf[r.bufStart:r.lastBoundary])
-			r.bufStart += n
-			if r.lastBoundary-r.bufStart > 0 {
-				return n, nil
-			}
-			return n, r.err
-		}
-		if r.err != nil {
-			return 0, r.err
-		}
-		outn := copy(r.outbuf, r.outbuf[r.lastBoundary:])
-		r.outbuf = r.outbuf[0:outn]
-		r.bufStart = 0
-
-		n, err := r.r.Read(r.inbuf)
-		r.rb.src = inputBytes(r.inbuf[0:n])
-		r.rb.nsrc, r.err = n, err
-		if n > 0 {
-			r.outbuf = doAppend(&r.rb, r.outbuf, 0)
-		}
-		if err == io.EOF {
-			r.lastBoundary = len(r.outbuf)
-		} else {
-			r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)
-			if r.lastBoundary == -1 {
-				r.lastBoundary = 0
-			}
-		}
-	}
-	panic("should not reach here")
-}
-
-// Reader returns a new reader that implements Read
-// by reading data from r and returning f(data).
-func (f Form) Reader(r io.Reader) io.Reader {
-	const chunk = 4000
-	buf := make([]byte, chunk)
-	rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}
-	rr.rb.init(f, buf)
-	return rr
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/readwriter_test.go gcc-4.8.1/libgo/go/exp/norm/readwriter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/readwriter_test.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/readwriter_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,68 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"bytes"
-	"fmt"
-	"strings"
-	"testing"
-)
-
-var ioTests = []AppendTest{
-	{"", strings.Repeat("a\u0316\u0300", 6), strings.Repeat("\u00E0\u0316", 6)},
-	{"", strings.Repeat("a\u0300\u0316", 4000), strings.Repeat("\u00E0\u0316", 4000)},
-	{"", strings.Repeat("\x80\x80", 4000), strings.Repeat("\x80\x80", 4000)},
-	{"", "\u0041\u0307\u0304", "\u01E0"},
-}
-
-var bufSizes = []int{1, 2, 3, 4, 5, 6, 7, 8, 100, 101, 102, 103, 4000, 4001, 4002, 4003}
-
-func readFunc(size int) appendFunc {
-	return func(f Form, out []byte, s string) []byte {
-		out = append(out, s...)
-		r := f.Reader(bytes.NewBuffer(out))
-		buf := make([]byte, size)
-		result := []byte{}
-		for n, err := 0, error(nil); err == nil; {
-			n, err = r.Read(buf)
-			result = append(result, buf[:n]...)
-		}
-		return result
-	}
-}
-
-func TestReader(t *testing.T) {
-	for _, s := range bufSizes {
-		name := fmt.Sprintf("TestReader%da", s)
-		runAppendTests(t, name, NFKC, readFunc(s), appendTests)
-		name = fmt.Sprintf("TestReader%db", s)
-		runAppendTests(t, name, NFKC, readFunc(s), ioTests)
-	}
-}
-
-func writeFunc(size int) appendFunc {
-	return func(f Form, out []byte, s string) []byte {
-		in := append(out, s...)
-		result := new(bytes.Buffer)
-		w := f.Writer(result)
-		buf := make([]byte, size)
-		for n := 0; len(in) > 0; in = in[n:] {
-			n = copy(buf, in)
-			_, _ = w.Write(buf[:n])
-		}
-		w.Close()
-		return result.Bytes()
-	}
-}
-
-func TestWriter(t *testing.T) {
-	for _, s := range bufSizes {
-		name := fmt.Sprintf("TestWriter%da", s)
-		runAppendTests(t, name, NFKC, writeFunc(s), appendTests)
-		name = fmt.Sprintf("TestWriter%db", s)
-		runAppendTests(t, name, NFKC, writeFunc(s), ioTests)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/tables.go gcc-4.8.1/libgo/go/exp/norm/tables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/tables.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/tables.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,6779 +0,0 @@
-// Generated by running
-//	maketables --tables=all --url=http://www.unicode.org/Public/6.2.0/ucd/
-// DO NOT EDIT
-
-package norm
-
-// Version is the Unicode edition from which the tables are derived.
-const Version = "6.2.0"
-
-const (
-	firstMulti         = 0x18CF
-	firstCCC           = 0x2E74
-	endMulti           = 0x2F4A
-	firstLeadingCCC    = 0x4994
-	firstCCCZeroExcept = 0x49AA
-	lastDecomp         = 0x49D1
-	maxDecomp          = 0x8000
-)
-
-// decomps: 18897 bytes
-var decomps = [...]byte{
-	// Bytes 0 - 3f
-	0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
-	0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
-	0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
-	0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
-	0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
-	0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
-	0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
-	0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
-	// Bytes 40 - 7f
-	0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
-	0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
-	0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
-	0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
-	0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
-	0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
-	0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
-	0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
-	// Bytes 80 - bf
-	0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
-	0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
-	0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
-	0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
-	0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
-	0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
-	0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
-	0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
-	// Bytes c0 - ff
-	0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
-	0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
-	0xB4, 0x42, 0xC2, 0xB7, 0x42, 0xC3, 0x86, 0x42,
-	0xC3, 0xB0, 0x42, 0xC4, 0xA6, 0x42, 0xC4, 0xA7,
-	0x42, 0xC4, 0xB1, 0x42, 0xC5, 0x8B, 0x42, 0xC5,
-	0x93, 0x42, 0xC6, 0x8E, 0x42, 0xC6, 0x90, 0x42,
-	0xC6, 0xAB, 0x42, 0xC8, 0xA2, 0x42, 0xC8, 0xB7,
-	0x42, 0xC9, 0x90, 0x42, 0xC9, 0x91, 0x42, 0xC9,
-	// Bytes 100 - 13f
-	0x92, 0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42,
-	0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C,
-	0x42, 0xC9, 0x9F, 0x42, 0xC9, 0xA1, 0x42, 0xC9,
-	0xA3, 0x42, 0xC9, 0xA5, 0x42, 0xC9, 0xA6, 0x42,
-	0xC9, 0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA,
-	0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
-	0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
-	0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
-	// Bytes 140 - 17f
-	0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
-	0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
-	0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
-	0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
-	0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
-	0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
-	0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
-	0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
-	// Bytes 180 - 1bf
-	0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
-	0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
-	0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
-	0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
-	0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
-	0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
-	0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
-	0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
-	// Bytes 1c0 - 1ff
-	0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
-	0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
-	0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
-	0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
-	0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
-	0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
-	0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
-	0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
-	// Bytes 200 - 23f
-	0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
-	0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
-	0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92,
-	0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7,
-	0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42,
-	0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA,
-	0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8,
-	0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42,
-	// Bytes 240 - 27f
-	0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD,
-	0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8,
-	0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42,
-	0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5,
-	0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8,
-	0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42,
-	0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83,
-	0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9,
-	// Bytes 280 - 2bf
-	0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42,
-	0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE,
-	0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9,
-	0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42,
-	0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80,
-	0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA,
-	0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42,
-	0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E,
-	// Bytes 2c0 - 2ff
-	0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA,
-	0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42,
-	0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF,
-	0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA,
-	0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42,
-	0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86,
-	0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB,
-	0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42,
-	// Bytes 300 - 33f
-	0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC,
-	0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84,
-	0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84,
-	0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84,
-	0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84,
-	0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84,
-	0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84,
-	0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84,
-	// Bytes 340 - 37f
-	0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84,
-	0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84,
-	0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84,
-	0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84,
-	0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84,
-	0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84,
-	0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84,
-	0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84,
-	// Bytes 380 - 3bf
-	0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84,
-	0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84,
-	0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84,
-	0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84,
-	0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85,
-	0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85,
-	0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85,
-	0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85,
-	// Bytes 3c0 - 3ff
-	0xA0, 0x43, 0xE1, 0x85, 0xA1, 0x43, 0xE1, 0x85,
-	0xA2, 0x43, 0xE1, 0x85, 0xA3, 0x43, 0xE1, 0x85,
-	0xA4, 0x43, 0xE1, 0x85, 0xA5, 0x43, 0xE1, 0x85,
-	0xA6, 0x43, 0xE1, 0x85, 0xA7, 0x43, 0xE1, 0x85,
-	0xA8, 0x43, 0xE1, 0x85, 0xA9, 0x43, 0xE1, 0x85,
-	0xAA, 0x43, 0xE1, 0x85, 0xAB, 0x43, 0xE1, 0x85,
-	0xAC, 0x43, 0xE1, 0x85, 0xAD, 0x43, 0xE1, 0x85,
-	0xAE, 0x43, 0xE1, 0x85, 0xAF, 0x43, 0xE1, 0x85,
-	// Bytes 400 - 43f
-	0xB0, 0x43, 0xE1, 0x85, 0xB1, 0x43, 0xE1, 0x85,
-	0xB2, 0x43, 0xE1, 0x85, 0xB3, 0x43, 0xE1, 0x85,
-	0xB4, 0x43, 0xE1, 0x85, 0xB5, 0x43, 0xE1, 0x86,
-	0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, 0xE1, 0x86,
-	0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, 0xE1, 0x86,
-	0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, 0xE1, 0x86,
-	0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, 0xE1, 0x86,
-	0xAA, 0x43, 0xE1, 0x86, 0xAC, 0x43, 0xE1, 0x86,
-	// Bytes 440 - 47f
-	0xAD, 0x43, 0xE1, 0x86, 0xB0, 0x43, 0xE1, 0x86,
-	0xB1, 0x43, 0xE1, 0x86, 0xB2, 0x43, 0xE1, 0x86,
-	0xB3, 0x43, 0xE1, 0x86, 0xB4, 0x43, 0xE1, 0x86,
-	0xB5, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87,
-	0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87,
-	0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87,
-	0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87,
-	0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87,
-	// Bytes 480 - 4bf
-	0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4,
-	0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4,
-	0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4,
-	0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5,
-	0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80,
-	0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80,
-	0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80,
-	0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86,
-	// Bytes 4c0 - 4ff
-	0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86,
-	0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88,
-	0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88,
-	0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94,
-	0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97,
-	0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6,
-	0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80,
-	0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80,
-	// Bytes 500 - 53f
-	0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80,
-	0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80,
-	0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80,
-	0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80,
-	0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80,
-	0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80,
-	0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80,
-	0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82,
-	// Bytes 540 - 57f
-	0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82,
-	0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82,
-	0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82,
-	0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82,
-	0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82,
-	0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82,
-	0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82,
-	0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82,
-	// Bytes 580 - 5bf
-	0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82,
-	0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83,
-	0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83,
-	0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83,
-	0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83,
-	0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83,
-	0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83,
-	0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83,
-	// Bytes 5c0 - 5ff
-	0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83,
-	0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83,
-	0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83,
-	0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83,
-	0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83,
-	0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83,
-	0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83,
-	0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83,
-	// Bytes 600 - 63f
-	0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83,
-	0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83,
-	0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83,
-	0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83,
-	0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92,
-	0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92,
-	0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94,
-	0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B,
-	// Bytes 640 - 67f
-	0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0,
-	0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1,
-	0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3,
-	0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4,
-	0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9,
-	0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC,
-	0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD,
-	0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0,
-	// Bytes 680 - 6bf
-	0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4,
-	0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA,
-	0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC,
-	0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80,
-	0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80,
-	0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82,
-	0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84,
-	0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88,
-	// Bytes 6c0 - 6ff
-	0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C,
-	0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D,
-	0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F,
-	0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91,
-	0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95,
-	0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95,
-	0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97,
-	0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A,
-	// Bytes 700 - 73f
-	0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6,
-	0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9,
-	0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA,
-	0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF,
-	0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3,
-	0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5,
-	0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8,
-	0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8,
-	// Bytes 740 - 77f
-	0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8,
-	0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8,
-	0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8,
-	0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8,
-	0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8,
-	0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8,
-	0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9,
-	0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9,
-	// Bytes 780 - 7bf
-	0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA,
-	0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA,
-	0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA,
-	0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA,
-	0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB,
-	0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB,
-	0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC,
-	0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE,
-	// Bytes 7c0 - 7ff
-	0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE,
-	0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE,
-	0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80,
-	0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81,
-	0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83,
-	0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83,
-	0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84,
-	0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85,
-	// Bytes 800 - 83f
-	0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85,
-	0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85,
-	0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85,
-	0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85,
-	0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85,
-	0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86,
-	0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86,
-	0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86,
-	// Bytes 840 - 87f
-	0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86,
-	0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86,
-	0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86,
-	0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87,
-	0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87,
-	0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87,
-	0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88,
-	0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88,
-	// Bytes 880 - 8bf
-	0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88,
-	0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88,
-	0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89,
-	0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89,
-	0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A,
-	0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A,
-	0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A,
-	0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B,
-	// Bytes 8c0 - 8ff
-	0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B,
-	0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B,
-	0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B,
-	0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C,
-	0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C,
-	0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C,
-	0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C,
-	0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D,
-	// Bytes 900 - 93f
-	0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D,
-	0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D,
-	0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D,
-	0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D,
-	0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D,
-	0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D,
-	0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E,
-	0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F,
-	// Bytes 940 - 97f
-	0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F,
-	0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F,
-	0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F,
-	0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F,
-	0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90,
-	0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90,
-	0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90,
-	0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90,
-	// Bytes 980 - 9bf
-	0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91,
-	0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92,
-	0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92,
-	0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94,
-	0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95,
-	0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95,
-	0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96,
-	0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96,
-	// Bytes 9c0 - 9ff
-	0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96,
-	0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97,
-	0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97,
-	0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99,
-	0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99,
-	0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B,
-	0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C,
-	0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C,
-	// Bytes a00 - a3f
-	0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E,
-	0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F,
-	0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0,
-	0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1,
-	0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1,
-	0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2,
-	0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3,
-	0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3,
-	// Bytes a40 - a7f
-	0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3,
-	0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3,
-	0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4,
-	0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4,
-	0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4,
-	0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4,
-	0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5,
-	0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5,
-	// Bytes a80 - abf
-	0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5,
-	0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7,
-	0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8,
-	0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9,
-	0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA,
-	0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC,
-	0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD,
-	0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD,
-	// Bytes ac0 - aff
-	0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE,
-	0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF,
-	0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF,
-	0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF,
-	0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF,
-	0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0,
-	0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0,
-	0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1,
-	// Bytes b00 - b3f
-	0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1,
-	0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1,
-	0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2,
-	0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4,
-	0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5,
-	0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5,
-	0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6,
-	0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7,
-	// Bytes b40 - b7f
-	0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7,
-	0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7,
-	0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7,
-	0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8,
-	0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9,
-	0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9,
-	0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9,
-	0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA,
-	// Bytes b80 - bbf
-	0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA,
-	0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB,
-	0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB,
-	0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB,
-	0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB,
-	0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC,
-	0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC,
-	0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD,
-	// Bytes bc0 - bff
-	0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD,
-	0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD,
-	0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD,
-	0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE,
-	0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE,
-	0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE,
-	0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF,
-	0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF,
-	// Bytes c00 - c3f
-	0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80,
-	0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81,
-	0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82,
-	0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83,
-	0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84,
-	0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85,
-	0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85,
-	0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85,
-	// Bytes c40 - c7f
-	0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86,
-	0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86,
-	0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86,
-	0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87,
-	0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88,
-	0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88,
-	0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88,
-	0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88,
-	// Bytes c80 - cbf
-	0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89,
-	0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A,
-	0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B,
-	0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B,
-	0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B,
-	0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C,
-	0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D,
-	0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D,
-	// Bytes cc0 - cff
-	0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E,
-	0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E,
-	0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F,
-	0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90,
-	0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91,
-	0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91,
-	0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92,
-	0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93,
-	// Bytes d00 - d3f
-	0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94,
-	0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95,
-	0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95,
-	0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96,
-	0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96,
-	0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96,
-	0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97,
-	0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97,
-	// Bytes d40 - d7f
-	0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98,
-	0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99,
-	0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A,
-	0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A,
-	0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B,
-	0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B,
-	0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C,
-	0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C,
-	// Bytes d80 - dbf
-	0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C,
-	0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C,
-	0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D,
-	0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D,
-	0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E,
-	0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F,
-	0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0,
-	0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0,
-	// Bytes dc0 - dff
-	0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2,
-	0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2,
-	0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4,
-	0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6,
-	0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8,
-	0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA,
-	0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB,
-	0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC,
-	// Bytes e00 - e3f
-	0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD,
-	0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD,
-	0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD,
-	0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE,
-	0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE,
-	0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE,
-	0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF,
-	0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF,
-	// Bytes e40 - e7f
-	0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0,
-	0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1,
-	0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2,
-	0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3,
-	0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3,
-	0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4,
-	0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4,
-	0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4,
-	// Bytes e80 - ebf
-	0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5,
-	0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5,
-	0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6,
-	0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7,
-	0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7,
-	0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8,
-	0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA,
-	0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA,
-	// Bytes ec0 - eff
-	0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB,
-	0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB,
-	0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC,
-	0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC,
-	0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF,
-	0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF,
-	0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80,
-	0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81,
-	// Bytes f00 - f3f
-	0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81,
-	0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81,
-	0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82,
-	0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83,
-	0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85,
-	0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85,
-	0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87,
-	0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88,
-	// Bytes f40 - f7f
-	0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88,
-	0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88,
-	0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88,
-	0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88,
-	0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89,
-	0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89,
-	0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89,
-	0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A,
-	// Bytes f80 - fbf
-	0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A,
-	0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B,
-	0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D,
-	0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E,
-	0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E,
-	0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E,
-	0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F,
-	0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90,
-	// Bytes fc0 - fff
-	0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91,
-	0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91,
-	0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92,
-	0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92,
-	0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93,
-	0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94,
-	0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94,
-	0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94,
-	// Bytes 1000 - 103f
-	0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94,
-	0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94,
-	0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94,
-	0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95,
-	0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96,
-	0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97,
-	0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98,
-	0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99,
-	// Bytes 1040 - 107f
-	0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99,
-	0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A,
-	0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B,
-	0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B,
-	0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B,
-	0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C,
-	0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C,
-	0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D,
-	// Bytes 1080 - 10bf
-	0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E,
-	0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F,
-	0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1,
-	0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2,
-	0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3,
-	0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3,
-	0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4,
-	0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4,
-	// Bytes 10c0 - 10ff
-	0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5,
-	0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5,
-	0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5,
-	0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5,
-	0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6,
-	0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6,
-	0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6,
-	0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7,
-	// Bytes 1100 - 113f
-	0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7,
-	0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9,
-	0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9,
-	0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9,
-	0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA,
-	0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB,
-	0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC,
-	0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF,
-	// Bytes 1140 - 117f
-	0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF,
-	0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1,
-	0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1,
-	0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2,
-	0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3,
-	0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3,
-	0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3,
-	0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4,
-	// Bytes 1180 - 11bf
-	0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4,
-	0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5,
-	0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6,
-	0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7,
-	0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8,
-	0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8,
-	0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9,
-	0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC,
-	// Bytes 11c0 - 11ff
-	0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD,
-	0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD,
-	0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE,
-	0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE,
-	0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF,
-	0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80,
-	0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80,
-	0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81,
-	// Bytes 1200 - 123f
-	0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81,
-	0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81,
-	0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82,
-	0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82,
-	0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84,
-	0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87,
-	0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87,
-	0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87,
-	// Bytes 1240 - 127f
-	0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87,
-	0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88,
-	0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88,
-	0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88,
-	0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89,
-	0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89,
-	0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A,
-	0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A,
-	// Bytes 1280 - 12bf
-	0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A,
-	0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B,
-	0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C,
-	0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C,
-	0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D,
-	0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E,
-	0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F,
-	0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F,
-	// Bytes 12c0 - 12ff
-	0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F,
-	0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F,
-	0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91,
-	0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93,
-	0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93,
-	0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94,
-	0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97,
-	0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98,
-	// Bytes 1300 - 133f
-	0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98,
-	0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99,
-	0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99,
-	0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99,
-	0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A,
-	0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B,
-	0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C,
-	0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D,
-	// Bytes 1340 - 137f
-	0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E,
-	0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0,
-	0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1,
-	0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1,
-	0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3,
-	0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3,
-	0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3,
-	0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3,
-	// Bytes 1380 - 13bf
-	0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5,
-	0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5,
-	0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6,
-	0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7,
-	0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8,
-	0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA,
-	0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB,
-	0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB,
-	// Bytes 13c0 - 13ff
-	0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB,
-	0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC,
-	0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD,
-	0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE,
-	0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1,
-	0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1,
-	0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2,
-	0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2,
-	// Bytes 1400 - 143f
-	0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3,
-	0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3,
-	0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3,
-	0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4,
-	0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5,
-	0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6,
-	0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7,
-	0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7,
-	// Bytes 1440 - 147f
-	0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB,
-	0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC,
-	0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC,
-	0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD,
-	0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE,
-	0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE,
-	0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80,
-	0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81,
-	// Bytes 1480 - 14bf
-	0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81,
-	0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82,
-	0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82,
-	0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83,
-	0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83,
-	0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84,
-	0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85,
-	0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, 0xE9, 0x86,
-	// Bytes 14c0 - 14ff
-	0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, 0xE9, 0x87,
-	0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, 0xE9, 0x87,
-	0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, 0xE9, 0x88,
-	0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, 0xE9, 0x89,
-	0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, 0xE9, 0x8B,
-	0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, 0xE9, 0x8D,
-	0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, 0xE9, 0x90,
-	0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, 0xE9, 0x96,
-	// Bytes 1500 - 153f
-	0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, 0xE9, 0x96,
-	0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, 0xE9, 0x98,
-	0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, 0xE9, 0x99,
-	0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, 0xE9, 0x99,
-	0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, 0xE9, 0x99,
-	0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, 0xE9, 0x9A,
-	0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, 0xE9, 0x9A,
-	0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, 0xE9, 0x9A,
-	// Bytes 1540 - 157f
-	0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, 0xE9, 0x9B,
-	0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, 0xE9, 0x9B,
-	0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, 0xE9, 0x9B,
-	0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, 0xE9, 0x9C,
-	0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, 0xE9, 0x9D,
-	0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, 0xE9, 0x9D,
-	0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, 0xE9, 0x9D,
-	0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, 0xE9, 0x9F,
-	// Bytes 1580 - 15bf
-	0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, 0xE9, 0x9F,
-	0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, 0xE9, 0x9F,
-	0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, 0xE9, 0xA0,
-	0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, 0xE9, 0xA0,
-	0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, 0xE9, 0xA0,
-	0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, 0xE9, 0xA2,
-	0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, 0xE9, 0xA3,
-	0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, 0xE9, 0xA3,
-	// Bytes 15c0 - 15ff
-	0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, 0xE9, 0xA4,
-	0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, 0xE9, 0xA6,
-	0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, 0xE9, 0xA6,
-	0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, 0xE9, 0xA7,
-	0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, 0xE9, 0xA7,
-	0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, 0xE9, 0xAA,
-	0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, 0xE9, 0xAB,
-	0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, 0xE9, 0xAC,
-	// Bytes 1600 - 163f
-	0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, 0xE9, 0xAC,
-	0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, 0xE9, 0xAD,
-	0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, 0xE9, 0xB1,
-	0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, 0xE9, 0xB3,
-	0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, 0xE9, 0xB5,
-	0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, 0xE9, 0xB7,
-	0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, 0xE9, 0xB9,
-	0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, 0xE9, 0xBA,
-	// Bytes 1640 - 167f
-	0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, 0xE9, 0xBA,
-	0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, 0xE9, 0xBB,
-	0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, 0xE9, 0xBB,
-	0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, 0xE9, 0xBB,
-	0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, 0xE9, 0xBB,
-	0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, 0xE9, 0xBC,
-	0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, 0xE9, 0xBC,
-	0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, 0xE9, 0xBC,
-	// Bytes 1680 - 16bf
-	0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, 0xE9, 0xBD,
-	0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, 0xE9, 0xBD,
-	0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, 0xE9, 0xBE,
-	0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, 0xE9, 0xBE,
-	0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, 0xEA, 0x9D,
-	0xAF, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0,
-	0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5,
-	0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0,
-	// Bytes 16c0 - 16ff
-	0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44,
-	0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8,
-	0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0,
-	0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8,
-	0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1,
-	0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44,
-	0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7,
-	0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0,
-	// Bytes 1700 - 173f
-	0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F,
-	0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2,
-	0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44,
-	0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC,
-	0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0,
-	0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8,
-	0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3,
-	0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44,
-	// Bytes 1740 - 177f
-	0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F,
-	0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0,
-	0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7,
-	0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3,
-	0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44,
-	0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB,
-	0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0,
-	0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3,
-	// Bytes 1780 - 17bf
-	0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4,
-	0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44,
-	0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0,
-	0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0,
-	0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1,
-	0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5,
-	0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44,
-	0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84,
-	// Bytes 17c0 - 17ff
-	0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0,
-	0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D,
-	0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5,
-	0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44,
-	0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA,
-	0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0,
-	0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90,
-	0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6,
-	// Bytes 1800 - 183f
-	0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44,
-	0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B,
-	0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0,
-	0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3,
-	0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6,
-	0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44,
-	0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0,
-	0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0,
-	// Bytes 1840 - 187f
-	0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC,
-	0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7,
-	0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44,
-	0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2,
-	0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0,
-	0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93,
-	0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8,
-	0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44,
-	// Bytes 1880 - 18bf
-	0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF,
-	0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0,
-	0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F,
-	0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9,
-	0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44,
-	0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC,
-	0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0,
-	0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E,
-	// Bytes 18c0 - 18ff
-	0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA,
-	0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x06,
-	0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x06, 0xE0,
-	0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x06, 0xE0, 0xAD,
-	0x87, 0xE0, 0xAC, 0xBE, 0x06, 0xE0, 0xAD, 0x87,
-	0xE0, 0xAD, 0x96, 0x06, 0xE0, 0xAD, 0x87, 0xE0,
-	0xAD, 0x97, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF,
-	0x97, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE,
-	// Bytes 1900 - 193f
-	0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x06,
-	0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x06, 0xE0,
-	0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x06, 0xE0, 0xB3,
-	0x86, 0xE0, 0xB3, 0x95, 0x06, 0xE0, 0xB3, 0x86,
-	0xE0, 0xB3, 0x96, 0x06, 0xE0, 0xB5, 0x86, 0xE0,
-	0xB4, 0xBE, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5,
-	0x97, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE,
-	0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x06,
-	// Bytes 1940 - 197f
-	0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x06, 0xE1,
-	0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC,
-	0x87, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x89,
-	0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x8B, 0xE1,
-	0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC,
-	0xB5, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5,
-	0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x06,
-	0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x06, 0xE1,
-	// Bytes 1980 - 19bf
-	0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC,
-	0xBF, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAD, 0x82,
-	0xE1, 0xAC, 0xB5, 0x08, 0xF0, 0x91, 0x84, 0xB1,
-	0xF0, 0x91, 0x84, 0xA7, 0x08, 0xF0, 0x91, 0x84,
-	0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x09, 0xE0, 0xB3,
-	0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x42,
-	0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E,
-	0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31,
-	// Bytes 19c0 - 19ff
-	0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42,
-	0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31, 0x33,
-	0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42, 0x31,
-	0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38, 0x42,
-	0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E,
-	0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42, 0x32,
-	0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34, 0x42,
-	0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32, 0x37,
-	// Bytes 1a00 - 1a3f
-	0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42, 0x33,
-	0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42,
-	0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33, 0x33,
-	0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42, 0x33,
-	0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38, 0x42,
-	0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E,
-	0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42, 0x34,
-	0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34, 0x42,
-	// Bytes 1a40 - 1a7f
-	0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34, 0x37,
-	0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42, 0x35,
-	0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42,
-	0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C,
-	0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38,
-	0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42,
-	0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F,
-	0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42, 0x43,
-	// Bytes 1a80 - 1abf
-	0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42,
-	0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47, 0x79,
-	0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42, 0x48,
-	0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42,
-	0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49, 0x56,
-	0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B,
-	0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42,
-	0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43,
-	// Bytes 1ac0 - 1aff
-	0x42, 0x4D, 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D,
-	0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42,
-	0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, 0x52,
-	0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, 0x53,
-	0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42,
-	0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49,
-	0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57,
-	0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, 0x42,
-	// Bytes 1b00 - 1b3f
-	0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42,
-	0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64,
-	0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42,
-	0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C,
-	0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69,
-	0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42,
-	0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41,
-	0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B,
-	// Bytes 1b40 - 1b7f
-	0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42,
-	0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D,
-	0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D,
-	0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42,
-	0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62,
-	0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D,
-	0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42,
-	0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57,
-	// Bytes 1b80 - 1bbf
-	0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E,
-	0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42,
-	0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, 0x57,
-	0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, 0x73,
-	0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, 0x42,
-	0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, 0x28,
-	0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, 0x28,
-	0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, 0x28,
-	// Bytes 1bc0 - 1bff
-	0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, 0x28,
-	0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, 0x28,
-	0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, 0x28,
-	0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, 0x28,
-	0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, 0x28,
-	0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, 0x28,
-	0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28,
-	0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28,
-	// Bytes 1c00 - 1c3f
-	0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28,
-	0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, 0x28,
-	0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, 0x28,
-	0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, 0x28,
-	0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, 0x28,
-	0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, 0x28,
-	0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28,
-	0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, 0x28,
-	// Bytes 1c40 - 1c7f
-	0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, 0x28,
-	0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, 0x28,
-	0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, 0x28,
-	0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28,
-	0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28,
-	0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28,
-	0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, 0x28,
-	0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, 0x28,
-	// Bytes 1c80 - 1cbf
-	0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, 0x28,
-	0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, 0x28,
-	0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, 0x28,
-	0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E,
-	0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31,
-	0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31,
-	0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31,
-	0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31,
-	// Bytes 1cc0 - 1cff
-	0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31,
-	0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A,
-	0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43,
-	0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, 0x47,
-	0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, 0x49,
-	0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C,
-	0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D,
-	0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50,
-	// Bytes 1d00 - 1d3f
-	0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, 0x50,
-	0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54,
-	0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, 0x58,
-	0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61,
-	0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62,
-	0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63,
-	0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63,
-	0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64,
-	// Bytes 1d40 - 1d7f
-	0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65,
-	0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, 0x66,
-	0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68,
-	0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B,
-	0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B,
-	0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B,
-	0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C,
-	0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D,
-	// Bytes 1d80 - 1dbf
-	0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D,
-	0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, 0x76,
-	0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2,
-	0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA,
-	0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE,
-	0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE,
-	0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE,
-	0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE,
-	// Bytes 1dc0 - 1dff
-	0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, 0x44,
-	0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, 0x32,
-	0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, 0x28,
-	0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, 0x29,
-	0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, 0x31,
-	0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, 0x44,
-	0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, 0x30,
-	0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31,
-	// Bytes 1e00 - 1e3f
-	0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5,
-	0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7,
-	0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44,
-	0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82,
-	0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33,
-	0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9,
-	0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6,
-	0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44,
-	// Bytes 1e40 - 1e7f
-	0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C,
-	0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36,
-	0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88,
-	0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6,
-	0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44,
-	0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97,
-	0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38,
-	0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5,
-	// Bytes 1e80 - 1ebf
-	0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7,
-	0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, 0x44,
-	0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61,
-	0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76,
-	0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82,
-	0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4,
-	0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44,
-	0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5,
-	// Bytes 1ec0 - 1eff
-	0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8,
-	0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC,
-	0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8,
-	0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44,
-	0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9,
-	0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8,
-	0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89,
-	0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA,
-	// Bytes 1f00 - 1f3f
-	0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44,
-	0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8,
-	0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8,
-	0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86,
-	0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA,
-	0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44,
-	0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8,
-	0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8,
-	// Bytes 1f40 - 1f7f
-	0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86,
-	0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB,
-	0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44,
-	0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9,
-	0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8,
-	0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC,
-	0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD,
-	0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44,
-	// Bytes 1f80 - 1fbf
-	0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8,
-	0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8,
-	0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A,
-	0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3,
-	0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44,
-	0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9,
-	0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8,
-	0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A,
-	// Bytes 1fc0 - 1fff
-	0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4,
-	0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44,
-	0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9,
-	0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8,
-	0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A,
-	0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5,
-	0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44,
-	0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9,
-	// Bytes 2000 - 203f
-	0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8,
-	0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD,
-	0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6,
-	0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44,
-	0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9,
-	0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8,
-	0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89,
-	0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8,
-	// Bytes 2040 - 207f
-	0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44,
-	0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9,
-	0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8,
-	0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85,
-	0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA,
-	0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44,
-	0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8,
-	0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9,
-	// Bytes 2080 - 20bf
-	0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A,
-	0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82,
-	0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44,
-	0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8,
-	0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9,
-	0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE,
-	0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83,
-	0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44,
-	// Bytes 20c0 - 20ff
-	0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8,
-	0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9,
-	0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE,
-	0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84,
-	0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44,
-	0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8,
-	0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9,
-	0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE,
-	// Bytes 2100 - 213f
-	0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85,
-	0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44,
-	0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8,
-	0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9,
-	0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2,
-	0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86,
-	0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44,
-	0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9,
-	// Bytes 2140 - 217f
-	0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9,
-	0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89,
-	0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88,
-	0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44,
-	0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8,
-	0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9,
-	0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85,
-	0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A,
-	// Bytes 2180 - 21bf
-	0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44,
-	0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9,
-	0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28,
-	0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29,
-	0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29,
-	// Bytes 21c0 - 21ff
-	0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29,
-	0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29,
-	0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28,
-	0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9,
-	// Bytes 2200 - 223f
-	0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29,
-	0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28,
-	0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC,
-	0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29,
-	0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28,
-	0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A,
-	0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29,
-	0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28,
-	// Bytes 2240 - 227f
-	0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91,
-	0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29,
-	0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28,
-	0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97,
-	0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29,
-	0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28,
-	0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0,
-	0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29,
-	// Bytes 2280 - 22bf
-	0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28,
-	0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B,
-	0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29,
-	0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28,
-	0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87,
-	0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29,
-	0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28,
-	0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87,
-	// Bytes 22c0 - 22ff
-	0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33,
-	0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31,
-	0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31,
-	0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6,
-	0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88,
-	0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	// Bytes 2300 - 233f
-	0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5,
-	// Bytes 2340 - 237f
-	0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32,
-	0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
-	0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81,
-	0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36,
-	0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31,
-	0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81,
-	// Bytes 2380 - 23bf
-	0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7,
-	0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7,
-	0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	// Bytes 23c0 - 23ff
-	0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6,
-	0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32,
-	0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81,
-	0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35,
-	0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33,
-	0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81,
-	0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35,
-	// Bytes 2400 - 243f
-	0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34,
-	0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81,
-	0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38,
-	0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41,
-	0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88,
-	0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73,
-	0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46,
-	0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D,
-	// Bytes 2440 - 247f
-	0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8,
-	0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC,
-	0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,
-	0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A,
-	0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
-	0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8,
-	0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA,
-	// Bytes 2480 - 24bf
-	0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8,
-	0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85,
-	0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
-	0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE,
-	0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46,
-	0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9,
-	// Bytes 24c0 - 24ff
-	0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85,
-	0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
-	0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A,
-	0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46,
-	0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
-	0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8,
-	0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE,
-	// Bytes 2500 - 253f
-	0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9,
-	0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC,
-	0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
-	0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8,
-	0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4,
-	0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
-	0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85,
-	0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9,
-	// Bytes 2540 - 257f
-	0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD,
-	0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
-	0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8,
-	0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5,
-	0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8,
-	0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD,
-	0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9,
-	0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD,
-	// Bytes 2580 - 25bf
-	0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46,
-	0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9,
-	0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9,
-	0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
-	0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,
-	0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89,
-	0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
-	// Bytes 25c0 - 25ff
-	0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
-	0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82,
-	0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9,
-	0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85,
-	0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9,
-	0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
-	0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
-	0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9,
-	// Bytes 2600 - 263f
-	0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84,
-	0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8,
-	0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD,
-	0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
-	0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85,
-	0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
-	0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,
-	0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85,
-	// Bytes 2640 - 267f
-	0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8,
-	0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
-	0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
-	0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85,
-	0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
-	0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9,
-	0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85,
-	0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9,
-	// Bytes 2680 - 26bf
-	0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC,
-	0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-	0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89,
-	0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46,
-	0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
-	0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9,
-	0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85,
-	// Bytes 26c0 - 26ff
-	0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8,
-	0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85,
-	0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46,
-	0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9,
-	0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A,
-	0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
-	0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-	// Bytes 2700 - 273f
-	0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE,
-	0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46,
-	0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9,
-	0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A,
-	0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
-	0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
-	0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
-	// Bytes 2740 - 277f
-	0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46,
-	0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9,
-	0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A,
-	0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0,
-	0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA,
-	0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1,
-	0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46,
-	// Bytes 2780 - 27bf
-	0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
-	0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD,
-	0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91,
-	0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0,
-	0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE,
-	0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5,
-	0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46,
-	0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,
-	// Bytes 27c0 - 27ff
-	0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
-	0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB,
-	0xE0, 0xBE, 0xB7, 0x46, 0xE1, 0x84, 0x80, 0xE1,
-	0x85, 0xA1, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85,
-	0xA1, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
-	0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x46,
-	0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x46, 0xE1,
-	0x84, 0x87, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84,
-	// Bytes 2800 - 283f
-	0x89, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84, 0x8B,
-	0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
-	0x85, 0xAE, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
-	0xA1, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
-	0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x46,
-	0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x46, 0xE1,
-	0x84, 0x91, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84,
-	0x92, 0xE1, 0x85, 0xA1, 0x46, 0xE2, 0x80, 0xB2,
-	// Bytes 2840 - 287f
-	0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2,
-	0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
-	0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
-	0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46,
-	0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3,
-	0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82,
-	0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3,
-	0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3,
-	// Bytes 2880 - 28bf
-	0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83,
-	0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3,
-	0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46,
-	0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3,
-	0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4,
-	0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3,
-	0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6,
-	0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92,
-	// Bytes 28c0 - 28ff
-	0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95,
-	0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80,
-	0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85,
-	0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1,
-	0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83,
-	0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
-	0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
-	0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
-	// Bytes 2900 - 293f
-	0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48,
-	0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29,
-	0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,
-	0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
-	0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1,
-	0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E,
-	0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
-	0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
-	// Bytes 2940 - 297f
-	0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
-	0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48,
-	0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29,
-	0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73,
-	0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8,
-	0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
-	0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3,
-	0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB,
-	// Bytes 2980 - 29bf
-	0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5,
-	0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8,
-	0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48,
-	0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF,
-	0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,
-	0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-	0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2,
-	0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88,
-	// Bytes 29c0 - 29ff
-	0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49,
-	0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88,
-	0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89,
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4,
-	0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
-	0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49,
-	0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80,
-	0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93,
-	// Bytes 2a00 - 2a3f
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,
-	0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
-	0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49,
-	0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80,
-	0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97,
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82,
-	0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,
-	// Bytes 2a40 - 2a7f
-	0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83,
-	0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3,
-	0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82,
-	0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49,
-	0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
-	0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB,
-	0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3,
-	// Bytes 2a80 - 2abf
-	0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82,
-	0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49,
-	0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,
-	0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
-	0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3,
-	0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83,
-	0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49,
-	0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	// Bytes 2ac0 - 2aff
-	0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
-	0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3,
-	0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
-	0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49,
-	0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-	0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
-	// Bytes 2b00 - 2b3f
-	0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49,
-	0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,
-	0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
-	0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49,
-	0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x88, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE,
-	// Bytes 2b40 - 2b7f
-	0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x4C, 0xE2,
-	0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-	0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
-	0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
-	0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
-	0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
-	0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	// Bytes 2b80 - 2bbf
-	0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
-	0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
-	0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
-	0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
-	0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
-	0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
-	// Bytes 2bc0 - 2bff
-	0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
-	0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
-	0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
-	0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
-	0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
-	0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
-	// Bytes 2c00 - 2c3f
-	0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
-	0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
-	0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
-	0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
-	0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
-	// Bytes 2c40 - 2c7f
-	0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
-	0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
-	0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
-	0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
-	0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
-	0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
-	// Bytes 2c80 - 2cbf
-	0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
-	0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
-	0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
-	0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
-	0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
-	0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
-	0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
-	0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
-	// Bytes 2cc0 - 2cff
-	0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE1, 0x84, 0x8E,
-	0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84,
-	0x80, 0xE1, 0x85, 0xA9, 0x4F, 0xE3, 0x82, 0xA2,
-	0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
-	0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
-	// Bytes 2d00 - 2d3f
-	0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
-	0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
-	0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
-	// Bytes 2d40 - 2d7f
-	0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
-	0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
-	0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
-	0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
-	0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
-	0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
-	// Bytes 2d80 - 2dbf
-	0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
-	0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
-	0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
-	0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
-	// Bytes 2dc0 - 2dff
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
-	0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
-	0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
-	0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
-	0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
-	0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
-	0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
-	// Bytes 2e00 - 2e3f
-	0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
-	0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
-	0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
-	0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
-	0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
-	0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
-	0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
-	// Bytes 2e40 - 2e7f
-	0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
-	0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
-	0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
-	0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
-	0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x86, 0xE0,
-	0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x86, 0xE0, 0xB7,
-	0x99, 0xE0, 0xB7, 0x8F, 0x09, 0xE0, 0xB7, 0x99,
-	0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x09, 0x44,
-	// Bytes 2e80 - 2ebf
-	0x44, 0x5A, 0xCC, 0x8C, 0xE6, 0x44, 0x44, 0x7A,
-	0xCC, 0x8C, 0xE6, 0x44, 0x64, 0x7A, 0xCC, 0x8C,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95,
-	0xDC, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
-	0xE3, 0x82, 0x99, 0x08, 0x4C, 0xE3, 0x82, 0xAD,
-	0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	// Bytes 2ec0 - 2eff
-	0x99, 0x08, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x08,
-	0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x88, 0xE3, 0x82, 0x99, 0x08, 0x4F, 0xE3,
-	0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x08, 0x4F,
-	0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
-	0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x08,
-	// Bytes 2f00 - 2f3f
-	0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
-	0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99,
-	0x08, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	0x99, 0x08, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82,
-	0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x88, 0xE3, 0x82, 0x99, 0x08, 0x52, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9,
-	// Bytes 2f40 - 2f7f
-	0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	0x99, 0x08, 0x03, 0x3C, 0xCC, 0xB8, 0x01, 0x03,
-	0x3D, 0xCC, 0xB8, 0x01, 0x03, 0x3E, 0xCC, 0xB8,
-	0x01, 0x03, 0x41, 0xCC, 0x80, 0xE6, 0x03, 0x41,
-	0xCC, 0x81, 0xE6, 0x03, 0x41, 0xCC, 0x83, 0xE6,
-	0x03, 0x41, 0xCC, 0x84, 0xE6, 0x03, 0x41, 0xCC,
-	0x89, 0xE6, 0x03, 0x41, 0xCC, 0x8C, 0xE6, 0x03,
-	0x41, 0xCC, 0x8F, 0xE6, 0x03, 0x41, 0xCC, 0x91,
-	// Bytes 2f80 - 2fbf
-	0xE6, 0x03, 0x41, 0xCC, 0xA5, 0xDC, 0x03, 0x41,
-	0xCC, 0xA8, 0xCA, 0x03, 0x42, 0xCC, 0x87, 0xE6,
-	0x03, 0x42, 0xCC, 0xA3, 0xDC, 0x03, 0x42, 0xCC,
-	0xB1, 0xDC, 0x03, 0x43, 0xCC, 0x81, 0xE6, 0x03,
-	0x43, 0xCC, 0x82, 0xE6, 0x03, 0x43, 0xCC, 0x87,
-	0xE6, 0x03, 0x43, 0xCC, 0x8C, 0xE6, 0x03, 0x44,
-	0xCC, 0x87, 0xE6, 0x03, 0x44, 0xCC, 0x8C, 0xE6,
-	0x03, 0x44, 0xCC, 0xA3, 0xDC, 0x03, 0x44, 0xCC,
-	// Bytes 2fc0 - 2fff
-	0xA7, 0xCA, 0x03, 0x44, 0xCC, 0xAD, 0xDC, 0x03,
-	0x44, 0xCC, 0xB1, 0xDC, 0x03, 0x45, 0xCC, 0x80,
-	0xE6, 0x03, 0x45, 0xCC, 0x81, 0xE6, 0x03, 0x45,
-	0xCC, 0x83, 0xE6, 0x03, 0x45, 0xCC, 0x86, 0xE6,
-	0x03, 0x45, 0xCC, 0x87, 0xE6, 0x03, 0x45, 0xCC,
-	0x88, 0xE6, 0x03, 0x45, 0xCC, 0x89, 0xE6, 0x03,
-	0x45, 0xCC, 0x8C, 0xE6, 0x03, 0x45, 0xCC, 0x8F,
-	0xE6, 0x03, 0x45, 0xCC, 0x91, 0xE6, 0x03, 0x45,
-	// Bytes 3000 - 303f
-	0xCC, 0xA8, 0xCA, 0x03, 0x45, 0xCC, 0xAD, 0xDC,
-	0x03, 0x45, 0xCC, 0xB0, 0xDC, 0x03, 0x46, 0xCC,
-	0x87, 0xE6, 0x03, 0x47, 0xCC, 0x81, 0xE6, 0x03,
-	0x47, 0xCC, 0x82, 0xE6, 0x03, 0x47, 0xCC, 0x84,
-	0xE6, 0x03, 0x47, 0xCC, 0x86, 0xE6, 0x03, 0x47,
-	0xCC, 0x87, 0xE6, 0x03, 0x47, 0xCC, 0x8C, 0xE6,
-	0x03, 0x47, 0xCC, 0xA7, 0xCA, 0x03, 0x48, 0xCC,
-	0x82, 0xE6, 0x03, 0x48, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 3040 - 307f
-	0x48, 0xCC, 0x88, 0xE6, 0x03, 0x48, 0xCC, 0x8C,
-	0xE6, 0x03, 0x48, 0xCC, 0xA3, 0xDC, 0x03, 0x48,
-	0xCC, 0xA7, 0xCA, 0x03, 0x48, 0xCC, 0xAE, 0xDC,
-	0x03, 0x49, 0xCC, 0x80, 0xE6, 0x03, 0x49, 0xCC,
-	0x81, 0xE6, 0x03, 0x49, 0xCC, 0x82, 0xE6, 0x03,
-	0x49, 0xCC, 0x83, 0xE6, 0x03, 0x49, 0xCC, 0x84,
-	0xE6, 0x03, 0x49, 0xCC, 0x86, 0xE6, 0x03, 0x49,
-	0xCC, 0x87, 0xE6, 0x03, 0x49, 0xCC, 0x89, 0xE6,
-	// Bytes 3080 - 30bf
-	0x03, 0x49, 0xCC, 0x8C, 0xE6, 0x03, 0x49, 0xCC,
-	0x8F, 0xE6, 0x03, 0x49, 0xCC, 0x91, 0xE6, 0x03,
-	0x49, 0xCC, 0xA3, 0xDC, 0x03, 0x49, 0xCC, 0xA8,
-	0xCA, 0x03, 0x49, 0xCC, 0xB0, 0xDC, 0x03, 0x4A,
-	0xCC, 0x82, 0xE6, 0x03, 0x4B, 0xCC, 0x81, 0xE6,
-	0x03, 0x4B, 0xCC, 0x8C, 0xE6, 0x03, 0x4B, 0xCC,
-	0xA3, 0xDC, 0x03, 0x4B, 0xCC, 0xA7, 0xCA, 0x03,
-	0x4B, 0xCC, 0xB1, 0xDC, 0x03, 0x4C, 0xCC, 0x81,
-	// Bytes 30c0 - 30ff
-	0xE6, 0x03, 0x4C, 0xCC, 0x8C, 0xE6, 0x03, 0x4C,
-	0xCC, 0xA7, 0xCA, 0x03, 0x4C, 0xCC, 0xAD, 0xDC,
-	0x03, 0x4C, 0xCC, 0xB1, 0xDC, 0x03, 0x4D, 0xCC,
-	0x81, 0xE6, 0x03, 0x4D, 0xCC, 0x87, 0xE6, 0x03,
-	0x4D, 0xCC, 0xA3, 0xDC, 0x03, 0x4E, 0xCC, 0x80,
-	0xE6, 0x03, 0x4E, 0xCC, 0x81, 0xE6, 0x03, 0x4E,
-	0xCC, 0x83, 0xE6, 0x03, 0x4E, 0xCC, 0x87, 0xE6,
-	0x03, 0x4E, 0xCC, 0x8C, 0xE6, 0x03, 0x4E, 0xCC,
-	// Bytes 3100 - 313f
-	0xA3, 0xDC, 0x03, 0x4E, 0xCC, 0xA7, 0xCA, 0x03,
-	0x4E, 0xCC, 0xAD, 0xDC, 0x03, 0x4E, 0xCC, 0xB1,
-	0xDC, 0x03, 0x4F, 0xCC, 0x80, 0xE6, 0x03, 0x4F,
-	0xCC, 0x81, 0xE6, 0x03, 0x4F, 0xCC, 0x86, 0xE6,
-	0x03, 0x4F, 0xCC, 0x89, 0xE6, 0x03, 0x4F, 0xCC,
-	0x8B, 0xE6, 0x03, 0x4F, 0xCC, 0x8C, 0xE6, 0x03,
-	0x4F, 0xCC, 0x8F, 0xE6, 0x03, 0x4F, 0xCC, 0x91,
-	0xE6, 0x03, 0x50, 0xCC, 0x81, 0xE6, 0x03, 0x50,
-	// Bytes 3140 - 317f
-	0xCC, 0x87, 0xE6, 0x03, 0x52, 0xCC, 0x81, 0xE6,
-	0x03, 0x52, 0xCC, 0x87, 0xE6, 0x03, 0x52, 0xCC,
-	0x8C, 0xE6, 0x03, 0x52, 0xCC, 0x8F, 0xE6, 0x03,
-	0x52, 0xCC, 0x91, 0xE6, 0x03, 0x52, 0xCC, 0xA7,
-	0xCA, 0x03, 0x52, 0xCC, 0xB1, 0xDC, 0x03, 0x53,
-	0xCC, 0x82, 0xE6, 0x03, 0x53, 0xCC, 0x87, 0xE6,
-	0x03, 0x53, 0xCC, 0xA6, 0xDC, 0x03, 0x53, 0xCC,
-	0xA7, 0xCA, 0x03, 0x54, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 3180 - 31bf
-	0x54, 0xCC, 0x8C, 0xE6, 0x03, 0x54, 0xCC, 0xA3,
-	0xDC, 0x03, 0x54, 0xCC, 0xA6, 0xDC, 0x03, 0x54,
-	0xCC, 0xA7, 0xCA, 0x03, 0x54, 0xCC, 0xAD, 0xDC,
-	0x03, 0x54, 0xCC, 0xB1, 0xDC, 0x03, 0x55, 0xCC,
-	0x80, 0xE6, 0x03, 0x55, 0xCC, 0x81, 0xE6, 0x03,
-	0x55, 0xCC, 0x82, 0xE6, 0x03, 0x55, 0xCC, 0x86,
-	0xE6, 0x03, 0x55, 0xCC, 0x89, 0xE6, 0x03, 0x55,
-	0xCC, 0x8A, 0xE6, 0x03, 0x55, 0xCC, 0x8B, 0xE6,
-	// Bytes 31c0 - 31ff
-	0x03, 0x55, 0xCC, 0x8C, 0xE6, 0x03, 0x55, 0xCC,
-	0x8F, 0xE6, 0x03, 0x55, 0xCC, 0x91, 0xE6, 0x03,
-	0x55, 0xCC, 0xA3, 0xDC, 0x03, 0x55, 0xCC, 0xA4,
-	0xDC, 0x03, 0x55, 0xCC, 0xA8, 0xCA, 0x03, 0x55,
-	0xCC, 0xAD, 0xDC, 0x03, 0x55, 0xCC, 0xB0, 0xDC,
-	0x03, 0x56, 0xCC, 0x83, 0xE6, 0x03, 0x56, 0xCC,
-	0xA3, 0xDC, 0x03, 0x57, 0xCC, 0x80, 0xE6, 0x03,
-	0x57, 0xCC, 0x81, 0xE6, 0x03, 0x57, 0xCC, 0x82,
-	// Bytes 3200 - 323f
-	0xE6, 0x03, 0x57, 0xCC, 0x87, 0xE6, 0x03, 0x57,
-	0xCC, 0x88, 0xE6, 0x03, 0x57, 0xCC, 0xA3, 0xDC,
-	0x03, 0x58, 0xCC, 0x87, 0xE6, 0x03, 0x58, 0xCC,
-	0x88, 0xE6, 0x03, 0x59, 0xCC, 0x80, 0xE6, 0x03,
-	0x59, 0xCC, 0x81, 0xE6, 0x03, 0x59, 0xCC, 0x82,
-	0xE6, 0x03, 0x59, 0xCC, 0x83, 0xE6, 0x03, 0x59,
-	0xCC, 0x84, 0xE6, 0x03, 0x59, 0xCC, 0x87, 0xE6,
-	0x03, 0x59, 0xCC, 0x88, 0xE6, 0x03, 0x59, 0xCC,
-	// Bytes 3240 - 327f
-	0x89, 0xE6, 0x03, 0x59, 0xCC, 0xA3, 0xDC, 0x03,
-	0x5A, 0xCC, 0x81, 0xE6, 0x03, 0x5A, 0xCC, 0x82,
-	0xE6, 0x03, 0x5A, 0xCC, 0x87, 0xE6, 0x03, 0x5A,
-	0xCC, 0x8C, 0xE6, 0x03, 0x5A, 0xCC, 0xA3, 0xDC,
-	0x03, 0x5A, 0xCC, 0xB1, 0xDC, 0x03, 0x61, 0xCC,
-	0x80, 0xE6, 0x03, 0x61, 0xCC, 0x81, 0xE6, 0x03,
-	0x61, 0xCC, 0x83, 0xE6, 0x03, 0x61, 0xCC, 0x84,
-	0xE6, 0x03, 0x61, 0xCC, 0x89, 0xE6, 0x03, 0x61,
-	// Bytes 3280 - 32bf
-	0xCC, 0x8C, 0xE6, 0x03, 0x61, 0xCC, 0x8F, 0xE6,
-	0x03, 0x61, 0xCC, 0x91, 0xE6, 0x03, 0x61, 0xCC,
-	0xA5, 0xDC, 0x03, 0x61, 0xCC, 0xA8, 0xCA, 0x03,
-	0x62, 0xCC, 0x87, 0xE6, 0x03, 0x62, 0xCC, 0xA3,
-	0xDC, 0x03, 0x62, 0xCC, 0xB1, 0xDC, 0x03, 0x63,
-	0xCC, 0x81, 0xE6, 0x03, 0x63, 0xCC, 0x82, 0xE6,
-	0x03, 0x63, 0xCC, 0x87, 0xE6, 0x03, 0x63, 0xCC,
-	0x8C, 0xE6, 0x03, 0x64, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 32c0 - 32ff
-	0x64, 0xCC, 0x8C, 0xE6, 0x03, 0x64, 0xCC, 0xA3,
-	0xDC, 0x03, 0x64, 0xCC, 0xA7, 0xCA, 0x03, 0x64,
-	0xCC, 0xAD, 0xDC, 0x03, 0x64, 0xCC, 0xB1, 0xDC,
-	0x03, 0x65, 0xCC, 0x80, 0xE6, 0x03, 0x65, 0xCC,
-	0x81, 0xE6, 0x03, 0x65, 0xCC, 0x83, 0xE6, 0x03,
-	0x65, 0xCC, 0x86, 0xE6, 0x03, 0x65, 0xCC, 0x87,
-	0xE6, 0x03, 0x65, 0xCC, 0x88, 0xE6, 0x03, 0x65,
-	0xCC, 0x89, 0xE6, 0x03, 0x65, 0xCC, 0x8C, 0xE6,
-	// Bytes 3300 - 333f
-	0x03, 0x65, 0xCC, 0x8F, 0xE6, 0x03, 0x65, 0xCC,
-	0x91, 0xE6, 0x03, 0x65, 0xCC, 0xA8, 0xCA, 0x03,
-	0x65, 0xCC, 0xAD, 0xDC, 0x03, 0x65, 0xCC, 0xB0,
-	0xDC, 0x03, 0x66, 0xCC, 0x87, 0xE6, 0x03, 0x67,
-	0xCC, 0x81, 0xE6, 0x03, 0x67, 0xCC, 0x82, 0xE6,
-	0x03, 0x67, 0xCC, 0x84, 0xE6, 0x03, 0x67, 0xCC,
-	0x86, 0xE6, 0x03, 0x67, 0xCC, 0x87, 0xE6, 0x03,
-	0x67, 0xCC, 0x8C, 0xE6, 0x03, 0x67, 0xCC, 0xA7,
-	// Bytes 3340 - 337f
-	0xCA, 0x03, 0x68, 0xCC, 0x82, 0xE6, 0x03, 0x68,
-	0xCC, 0x87, 0xE6, 0x03, 0x68, 0xCC, 0x88, 0xE6,
-	0x03, 0x68, 0xCC, 0x8C, 0xE6, 0x03, 0x68, 0xCC,
-	0xA3, 0xDC, 0x03, 0x68, 0xCC, 0xA7, 0xCA, 0x03,
-	0x68, 0xCC, 0xAE, 0xDC, 0x03, 0x68, 0xCC, 0xB1,
-	0xDC, 0x03, 0x69, 0xCC, 0x80, 0xE6, 0x03, 0x69,
-	0xCC, 0x81, 0xE6, 0x03, 0x69, 0xCC, 0x82, 0xE6,
-	0x03, 0x69, 0xCC, 0x83, 0xE6, 0x03, 0x69, 0xCC,
-	// Bytes 3380 - 33bf
-	0x84, 0xE6, 0x03, 0x69, 0xCC, 0x86, 0xE6, 0x03,
-	0x69, 0xCC, 0x89, 0xE6, 0x03, 0x69, 0xCC, 0x8C,
-	0xE6, 0x03, 0x69, 0xCC, 0x8F, 0xE6, 0x03, 0x69,
-	0xCC, 0x91, 0xE6, 0x03, 0x69, 0xCC, 0xA3, 0xDC,
-	0x03, 0x69, 0xCC, 0xA8, 0xCA, 0x03, 0x69, 0xCC,
-	0xB0, 0xDC, 0x03, 0x6A, 0xCC, 0x82, 0xE6, 0x03,
-	0x6A, 0xCC, 0x8C, 0xE6, 0x03, 0x6B, 0xCC, 0x81,
-	0xE6, 0x03, 0x6B, 0xCC, 0x8C, 0xE6, 0x03, 0x6B,
-	// Bytes 33c0 - 33ff
-	0xCC, 0xA3, 0xDC, 0x03, 0x6B, 0xCC, 0xA7, 0xCA,
-	0x03, 0x6B, 0xCC, 0xB1, 0xDC, 0x03, 0x6C, 0xCC,
-	0x81, 0xE6, 0x03, 0x6C, 0xCC, 0x8C, 0xE6, 0x03,
-	0x6C, 0xCC, 0xA7, 0xCA, 0x03, 0x6C, 0xCC, 0xAD,
-	0xDC, 0x03, 0x6C, 0xCC, 0xB1, 0xDC, 0x03, 0x6D,
-	0xCC, 0x81, 0xE6, 0x03, 0x6D, 0xCC, 0x87, 0xE6,
-	0x03, 0x6D, 0xCC, 0xA3, 0xDC, 0x03, 0x6E, 0xCC,
-	0x80, 0xE6, 0x03, 0x6E, 0xCC, 0x81, 0xE6, 0x03,
-	// Bytes 3400 - 343f
-	0x6E, 0xCC, 0x83, 0xE6, 0x03, 0x6E, 0xCC, 0x87,
-	0xE6, 0x03, 0x6E, 0xCC, 0x8C, 0xE6, 0x03, 0x6E,
-	0xCC, 0xA3, 0xDC, 0x03, 0x6E, 0xCC, 0xA7, 0xCA,
-	0x03, 0x6E, 0xCC, 0xAD, 0xDC, 0x03, 0x6E, 0xCC,
-	0xB1, 0xDC, 0x03, 0x6F, 0xCC, 0x80, 0xE6, 0x03,
-	0x6F, 0xCC, 0x81, 0xE6, 0x03, 0x6F, 0xCC, 0x86,
-	0xE6, 0x03, 0x6F, 0xCC, 0x89, 0xE6, 0x03, 0x6F,
-	0xCC, 0x8B, 0xE6, 0x03, 0x6F, 0xCC, 0x8C, 0xE6,
-	// Bytes 3440 - 347f
-	0x03, 0x6F, 0xCC, 0x8F, 0xE6, 0x03, 0x6F, 0xCC,
-	0x91, 0xE6, 0x03, 0x70, 0xCC, 0x81, 0xE6, 0x03,
-	0x70, 0xCC, 0x87, 0xE6, 0x03, 0x72, 0xCC, 0x81,
-	0xE6, 0x03, 0x72, 0xCC, 0x87, 0xE6, 0x03, 0x72,
-	0xCC, 0x8C, 0xE6, 0x03, 0x72, 0xCC, 0x8F, 0xE6,
-	0x03, 0x72, 0xCC, 0x91, 0xE6, 0x03, 0x72, 0xCC,
-	0xA7, 0xCA, 0x03, 0x72, 0xCC, 0xB1, 0xDC, 0x03,
-	0x73, 0xCC, 0x82, 0xE6, 0x03, 0x73, 0xCC, 0x87,
-	// Bytes 3480 - 34bf
-	0xE6, 0x03, 0x73, 0xCC, 0xA6, 0xDC, 0x03, 0x73,
-	0xCC, 0xA7, 0xCA, 0x03, 0x74, 0xCC, 0x87, 0xE6,
-	0x03, 0x74, 0xCC, 0x88, 0xE6, 0x03, 0x74, 0xCC,
-	0x8C, 0xE6, 0x03, 0x74, 0xCC, 0xA3, 0xDC, 0x03,
-	0x74, 0xCC, 0xA6, 0xDC, 0x03, 0x74, 0xCC, 0xA7,
-	0xCA, 0x03, 0x74, 0xCC, 0xAD, 0xDC, 0x03, 0x74,
-	0xCC, 0xB1, 0xDC, 0x03, 0x75, 0xCC, 0x80, 0xE6,
-	0x03, 0x75, 0xCC, 0x81, 0xE6, 0x03, 0x75, 0xCC,
-	// Bytes 34c0 - 34ff
-	0x82, 0xE6, 0x03, 0x75, 0xCC, 0x86, 0xE6, 0x03,
-	0x75, 0xCC, 0x89, 0xE6, 0x03, 0x75, 0xCC, 0x8A,
-	0xE6, 0x03, 0x75, 0xCC, 0x8B, 0xE6, 0x03, 0x75,
-	0xCC, 0x8C, 0xE6, 0x03, 0x75, 0xCC, 0x8F, 0xE6,
-	0x03, 0x75, 0xCC, 0x91, 0xE6, 0x03, 0x75, 0xCC,
-	0xA3, 0xDC, 0x03, 0x75, 0xCC, 0xA4, 0xDC, 0x03,
-	0x75, 0xCC, 0xA8, 0xCA, 0x03, 0x75, 0xCC, 0xAD,
-	0xDC, 0x03, 0x75, 0xCC, 0xB0, 0xDC, 0x03, 0x76,
-	// Bytes 3500 - 353f
-	0xCC, 0x83, 0xE6, 0x03, 0x76, 0xCC, 0xA3, 0xDC,
-	0x03, 0x77, 0xCC, 0x80, 0xE6, 0x03, 0x77, 0xCC,
-	0x81, 0xE6, 0x03, 0x77, 0xCC, 0x82, 0xE6, 0x03,
-	0x77, 0xCC, 0x87, 0xE6, 0x03, 0x77, 0xCC, 0x88,
-	0xE6, 0x03, 0x77, 0xCC, 0x8A, 0xE6, 0x03, 0x77,
-	0xCC, 0xA3, 0xDC, 0x03, 0x78, 0xCC, 0x87, 0xE6,
-	0x03, 0x78, 0xCC, 0x88, 0xE6, 0x03, 0x79, 0xCC,
-	0x80, 0xE6, 0x03, 0x79, 0xCC, 0x81, 0xE6, 0x03,
-	// Bytes 3540 - 357f
-	0x79, 0xCC, 0x82, 0xE6, 0x03, 0x79, 0xCC, 0x83,
-	0xE6, 0x03, 0x79, 0xCC, 0x84, 0xE6, 0x03, 0x79,
-	0xCC, 0x87, 0xE6, 0x03, 0x79, 0xCC, 0x88, 0xE6,
-	0x03, 0x79, 0xCC, 0x89, 0xE6, 0x03, 0x79, 0xCC,
-	0x8A, 0xE6, 0x03, 0x79, 0xCC, 0xA3, 0xDC, 0x03,
-	0x7A, 0xCC, 0x81, 0xE6, 0x03, 0x7A, 0xCC, 0x82,
-	0xE6, 0x03, 0x7A, 0xCC, 0x87, 0xE6, 0x03, 0x7A,
-	0xCC, 0x8C, 0xE6, 0x03, 0x7A, 0xCC, 0xA3, 0xDC,
-	// Bytes 3580 - 35bf
-	0x03, 0x7A, 0xCC, 0xB1, 0xDC, 0x04, 0xC2, 0xA8,
-	0xCC, 0x80, 0xE6, 0x04, 0xC2, 0xA8, 0xCC, 0x81,
-	0xE6, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xE6, 0x04,
-	0xC3, 0x86, 0xCC, 0x81, 0xE6, 0x04, 0xC3, 0x86,
-	0xCC, 0x84, 0xE6, 0x04, 0xC3, 0x98, 0xCC, 0x81,
-	0xE6, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xE6, 0x04,
-	0xC3, 0xA6, 0xCC, 0x84, 0xE6, 0x04, 0xC3, 0xB8,
-	0xCC, 0x81, 0xE6, 0x04, 0xC5, 0xBF, 0xCC, 0x87,
-	// Bytes 35c0 - 35ff
-	0xE6, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xE6, 0x04,
-	0xCA, 0x92, 0xCC, 0x8C, 0xE6, 0x04, 0xCE, 0x91,
-	0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x91, 0xCC, 0x81,
-	0xE6, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0x91, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0x91,
-	0xCD, 0x85, 0xF0, 0x04, 0xCE, 0x95, 0xCC, 0x80,
-	0xE6, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xE6, 0x04,
-	0xCE, 0x97, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x97,
-	// Bytes 3600 - 363f
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0x97, 0xCD, 0x85,
-	0xF0, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xE6, 0x04,
-	0xCE, 0x99, 0xCC, 0x81, 0xE6, 0x04, 0xCE, 0x99,
-	0xCC, 0x84, 0xE6, 0x04, 0xCE, 0x99, 0xCC, 0x86,
-	0xE6, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xE6, 0x04,
-	0xCE, 0x9F, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x9F,
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA1, 0xCC, 0x94,
-	0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xE6, 0x04,
-	// Bytes 3640 - 367f
-	0xCE, 0xA5, 0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA5,
-	0xCC, 0x84, 0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x86,
-	0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xE6, 0x04,
-	0xCE, 0xA9, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0xA9,
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA9, 0xCD, 0x85,
-	0xF0, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0xB1, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0xB1,
-	0xCD, 0x85, 0xF0, 0x04, 0xCE, 0xB5, 0xCC, 0x80,
-	// Bytes 3680 - 36bf
-	0xE6, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xE6, 0x04,
-	0xCE, 0xB7, 0xCD, 0x85, 0xF0, 0x04, 0xCE, 0xB9,
-	0xCC, 0x80, 0xE6, 0x04, 0xCE, 0xB9, 0xCC, 0x81,
-	0xE6, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0xB9, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0xB9,
-	0xCD, 0x82, 0xE6, 0x04, 0xCE, 0xBF, 0xCC, 0x80,
-	0xE6, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xE6, 0x04,
-	0xCF, 0x81, 0xCC, 0x93, 0xE6, 0x04, 0xCF, 0x81,
-	// Bytes 36c0 - 36ff
-	0xCC, 0x94, 0xE6, 0x04, 0xCF, 0x85, 0xCC, 0x80,
-	0xE6, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xE6, 0x04,
-	0xCF, 0x85, 0xCC, 0x84, 0xE6, 0x04, 0xCF, 0x85,
-	0xCC, 0x86, 0xE6, 0x04, 0xCF, 0x85, 0xCD, 0x82,
-	0xE6, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xF0, 0x04,
-	0xCF, 0x92, 0xCC, 0x81, 0xE6, 0x04, 0xCF, 0x92,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x86, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xE6, 0x04,
-	// Bytes 3700 - 373f
-	0xD0, 0x90, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x93,
-	0xCC, 0x81, 0xE6, 0x04, 0xD0, 0x95, 0xCC, 0x80,
-	0xE6, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0x95, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x96,
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0x96, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0x98, 0xCC, 0x80, 0xE6, 0x04, 0xD0, 0x98,
-	0xCC, 0x84, 0xE6, 0x04, 0xD0, 0x98, 0xCC, 0x86,
-	// Bytes 3740 - 377f
-	0xE6, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0x9A, 0xCC, 0x81, 0xE6, 0x04, 0xD0, 0x9E,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xA3, 0xCC, 0x84,
-	0xE6, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0xA3, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xA3,
-	0xCC, 0x8B, 0xE6, 0x04, 0xD0, 0xA7, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0xAD, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB0,
-	// Bytes 3780 - 37bf
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB0, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xE6, 0x04,
-	0xD0, 0xB5, 0xCC, 0x80, 0xE6, 0x04, 0xD0, 0xB5,
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB5, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0xB6, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB7,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB8, 0xCC, 0x80,
-	0xE6, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xE6, 0x04,
-	// Bytes 37c0 - 37ff
-	0xD0, 0xB8, 0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB8,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xBA, 0xCC, 0x81,
-	0xE6, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xE6, 0x04,
-	0xD1, 0x83, 0xCC, 0x84, 0xE6, 0x04, 0xD1, 0x83,
-	0xCC, 0x86, 0xE6, 0x04, 0xD1, 0x83, 0xCC, 0x88,
-	0xE6, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xE6, 0x04,
-	0xD1, 0x87, 0xCC, 0x88, 0xE6, 0x04, 0xD1, 0x8B,
-	0xCC, 0x88, 0xE6, 0x04, 0xD1, 0x8D, 0xCC, 0x88,
-	// Bytes 3800 - 383f
-	0xE6, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xE6, 0x04,
-	0xD1, 0xB4, 0xCC, 0x8F, 0xE6, 0x04, 0xD1, 0xB5,
-	0xCC, 0x8F, 0xE6, 0x04, 0xD3, 0x98, 0xCC, 0x88,
-	0xE6, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xE6, 0x04,
-	0xD3, 0xA8, 0xCC, 0x88, 0xE6, 0x04, 0xD3, 0xA9,
-	0xCC, 0x88, 0xE6, 0x04, 0xD8, 0xA7, 0xD9, 0x93,
-	0xE6, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xE6, 0x04,
-	0xD8, 0xA7, 0xD9, 0x95, 0xDC, 0x04, 0xD9, 0x88,
-	// Bytes 3840 - 387f
-	0xD9, 0x94, 0xE6, 0x04, 0xD9, 0x8A, 0xD9, 0x94,
-	0xE6, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xE6, 0x04,
-	0xDB, 0x92, 0xD9, 0x94, 0xE6, 0x04, 0xDB, 0x95,
-	0xD9, 0x94, 0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC,
-	0x80, 0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81,
-	0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xE6,
-	0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05,
-	0x41, 0xCC, 0x86, 0xCC, 0x80, 0xE6, 0x05, 0x41,
-	// Bytes 3880 - 38bf
-	0xCC, 0x86, 0xCC, 0x81, 0xE6, 0x05, 0x41, 0xCC,
-	0x86, 0xCC, 0x83, 0xE6, 0x05, 0x41, 0xCC, 0x86,
-	0xCC, 0x89, 0xE6, 0x05, 0x41, 0xCC, 0x87, 0xCC,
-	0x84, 0xE6, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84,
-	0xE6, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xE6,
-	0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05,
-	0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xE6, 0x05, 0x43,
-	0xCC, 0xA7, 0xCC, 0x81, 0xE6, 0x05, 0x45, 0xCC,
-	// Bytes 38c0 - 38ff
-	0x82, 0xCC, 0x80, 0xE6, 0x05, 0x45, 0xCC, 0x82,
-	0xCC, 0x81, 0xE6, 0x05, 0x45, 0xCC, 0x82, 0xCC,
-	0x83, 0xE6, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89,
-	0xE6, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xE6,
-	0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xE6, 0x05,
-	0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x45,
-	0xCC, 0xA7, 0xCC, 0x86, 0xE6, 0x05, 0x49, 0xCC,
-	0x88, 0xCC, 0x81, 0xE6, 0x05, 0x4C, 0xCC, 0xA3,
-	// Bytes 3900 - 393f
-	0xCC, 0x84, 0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC,
-	0x80, 0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81,
-	0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xE6,
-	0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05,
-	0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xE6, 0x05, 0x4F,
-	0xCC, 0x83, 0xCC, 0x84, 0xE6, 0x05, 0x4F, 0xCC,
-	0x83, 0xCC, 0x88, 0xE6, 0x05, 0x4F, 0xCC, 0x84,
-	0xCC, 0x80, 0xE6, 0x05, 0x4F, 0xCC, 0x84, 0xCC,
-	// Bytes 3940 - 397f
-	0x81, 0xE6, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84,
-	0xE6, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05,
-	0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x4F,
-	0xCC, 0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x4F, 0xCC,
-	0x9B, 0xCC, 0x89, 0xE6, 0x05, 0x4F, 0xCC, 0x9B,
-	0xCC, 0xA3, 0xDC, 0x05, 0x4F, 0xCC, 0xA3, 0xCC,
-	0x82, 0xE6, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84,
-	// Bytes 3980 - 39bf
-	0xE6, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xE6,
-	0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xE6, 0x05,
-	0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xE6, 0x05, 0x53,
-	0xCC, 0xA3, 0xCC, 0x87, 0xE6, 0x05, 0x55, 0xCC,
-	0x83, 0xCC, 0x81, 0xE6, 0x05, 0x55, 0xCC, 0x84,
-	0xCC, 0x88, 0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81,
-	0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	// Bytes 39c0 - 39ff
-	0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xE6, 0x05,
-	0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x55,
-	0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x55, 0xCC,
-	0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x55, 0xCC, 0x9B,
-	0xCC, 0x89, 0xE6, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
-	0xA3, 0xDC, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80,
-	0xE6, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xE6,
-	0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xE6, 0x05,
-	// Bytes 3a00 - 3a3f
-	0x61, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05, 0x61,
-	0xCC, 0x86, 0xCC, 0x80, 0xE6, 0x05, 0x61, 0xCC,
-	0x86, 0xCC, 0x81, 0xE6, 0x05, 0x61, 0xCC, 0x86,
-	0xCC, 0x83, 0xE6, 0x05, 0x61, 0xCC, 0x86, 0xCC,
-	0x89, 0xE6, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84,
-	0xE6, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xE6, 0x05,
-	0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x61,
-	// Bytes 3a40 - 3a7f
-	0xCC, 0xA3, 0xCC, 0x86, 0xE6, 0x05, 0x63, 0xCC,
-	0xA7, 0xCC, 0x81, 0xE6, 0x05, 0x65, 0xCC, 0x82,
-	0xCC, 0x80, 0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC,
-	0x81, 0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83,
-	0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xE6,
-	0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xE6, 0x05,
-	0x65, 0xCC, 0x84, 0xCC, 0x81, 0xE6, 0x05, 0x65,
-	0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x65, 0xCC,
-	// Bytes 3a80 - 3abf
-	0xA7, 0xCC, 0x86, 0xE6, 0x05, 0x69, 0xCC, 0x88,
-	0xCC, 0x81, 0xE6, 0x05, 0x6C, 0xCC, 0xA3, 0xCC,
-	0x84, 0xE6, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80,
-	0xE6, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xE6,
-	0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xE6, 0x05,
-	0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05, 0x6F,
-	0xCC, 0x83, 0xCC, 0x81, 0xE6, 0x05, 0x6F, 0xCC,
-	0x83, 0xCC, 0x84, 0xE6, 0x05, 0x6F, 0xCC, 0x83,
-	// Bytes 3ac0 - 3aff
-	0xCC, 0x88, 0xE6, 0x05, 0x6F, 0xCC, 0x84, 0xCC,
-	0x80, 0xE6, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81,
-	0xE6, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xE6,
-	0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xE6, 0x05,
-	0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x6F,
-	0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x6F, 0xCC,
-	0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x6F, 0xCC, 0x9B,
-	0xCC, 0x89, 0xE6, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
-	// Bytes 3b00 - 3b3f
-	0xA3, 0xDC, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82,
-	0xE6, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xE6,
-	0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xE6, 0x05,
-	0x73, 0xCC, 0x81, 0xCC, 0x87, 0xE6, 0x05, 0x73,
-	0xCC, 0x8C, 0xCC, 0x87, 0xE6, 0x05, 0x73, 0xCC,
-	0xA3, 0xCC, 0x87, 0xE6, 0x05, 0x75, 0xCC, 0x83,
-	0xCC, 0x81, 0xE6, 0x05, 0x75, 0xCC, 0x84, 0xCC,
-	0x88, 0xE6, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80,
-	// Bytes 3b40 - 3b7f
-	0xE6, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xE6,
-	0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xE6, 0x05,
-	0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xE6, 0x05, 0x75,
-	0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x75, 0xCC,
-	0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x75, 0xCC, 0x9B,
-	0xCC, 0x83, 0xE6, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
-	0x89, 0xE6, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3,
-	0xDC, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xE6,
-	// Bytes 3b80 - 3bbf
-	0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xE6, 0x05,
-	0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xE6, 0x05, 0xE1,
-	0xBF, 0xBE, 0xCC, 0x80, 0xE6, 0x05, 0xE1, 0xBF,
-	0xBE, 0xCC, 0x81, 0xE6, 0x05, 0xE1, 0xBF, 0xBE,
-	0xCD, 0x82, 0xE6, 0x05, 0xE2, 0x86, 0x90, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x01, 0x05,
-	// Bytes 3bc0 - 3bff
-	0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x87, 0x94, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88,
-	0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88, 0x88,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88, 0x8B, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	// Bytes 3c00 - 3c3f
-	0x89, 0x85, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89,
-	0x88, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0x8D,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xA1, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x89, 0xB6, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89,
-	// Bytes 3c40 - 3c7f
-	0xB7, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBA,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBB, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x8A, 0x86, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A,
-	0x87, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0x91,
-	// Bytes 3c80 - 3cbf
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0x92, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x8A, 0xB2, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A,
-	0xB3, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xB4,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xB5, 0xCC,
-	// Bytes 3cc0 - 3cff
-	0xB8, 0x01, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD,
-	// Bytes 3d00 - 3d3f
-	0x85, 0xF0, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC,
-	// Bytes 3d40 - 3d7f
-	0x81, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD,
-	// Bytes 3d80 - 3dbf
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
-	// Bytes 3dc0 - 3dff
-	0x81, 0xE6, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD,
-	// Bytes 3e00 - 3e3f
-	0x82, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC,
-	// Bytes 3e40 - 3e7f
-	0x81, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD,
-	0x82, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD,
-	// Bytes 3e80 - 3ebf
-	0x82, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD,
-	// Bytes 3ec0 - 3eff
-	0x85, 0xF0, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1,
-	0x96, 0x5B, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,
-	0x8A, 0x09, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82,
-	// Bytes 3f00 - 3f3f
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82,
-	// Bytes 3f40 - 3f7f
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82,
-	// Bytes 3f80 - 3fbf
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82,
-	// Bytes 3fc0 - 3fff
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82,
-	// Bytes 4000 - 403f
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	// Bytes 4040 - 407f
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	// Bytes 4080 - 40bf
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82,
-	0x99, 0x08, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
-	// Bytes 40c0 - 40ff
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC,
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	// Bytes 4100 - 413f
-	0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x97, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC,
-	// Bytes 4140 - 417f
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	// Bytes 4180 - 41bf
-	0x85, 0xF0, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD,
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	// Bytes 41c0 - 41ff
-	0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCF,
-	0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD,
-	// Bytes 4200 - 423f
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCF, 0x89, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCF,
-	0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0,
-	0x91, 0x82, 0xBA, 0x07, 0x08, 0xF0, 0x91, 0x82,
-	0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x07, 0x08, 0xF0,
-	0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x07,
-	// Bytes 4240 - 427f
-	0x43, 0x20, 0xCC, 0x81, 0xE6, 0x43, 0x20, 0xCC,
-	0x83, 0xE6, 0x43, 0x20, 0xCC, 0x84, 0xE6, 0x43,
-	0x20, 0xCC, 0x85, 0xE6, 0x43, 0x20, 0xCC, 0x86,
-	0xE6, 0x43, 0x20, 0xCC, 0x87, 0xE6, 0x43, 0x20,
-	0xCC, 0x88, 0xE6, 0x43, 0x20, 0xCC, 0x8A, 0xE6,
-	0x43, 0x20, 0xCC, 0x8B, 0xE6, 0x43, 0x20, 0xCC,
-	0x93, 0xE6, 0x43, 0x20, 0xCC, 0x94, 0xE6, 0x43,
-	0x20, 0xCC, 0xA7, 0xCA, 0x43, 0x20, 0xCC, 0xA8,
-	// Bytes 4280 - 42bf
-	0xCA, 0x43, 0x20, 0xCC, 0xB3, 0xDC, 0x43, 0x20,
-	0xCD, 0x82, 0xE6, 0x43, 0x20, 0xCD, 0x85, 0xF0,
-	0x43, 0x20, 0xD9, 0x8B, 0x1B, 0x43, 0x20, 0xD9,
-	0x8C, 0x1C, 0x43, 0x20, 0xD9, 0x8D, 0x1D, 0x43,
-	0x20, 0xD9, 0x8E, 0x1E, 0x43, 0x20, 0xD9, 0x8F,
-	0x1F, 0x43, 0x20, 0xD9, 0x90, 0x20, 0x43, 0x20,
-	0xD9, 0x91, 0x21, 0x43, 0x20, 0xD9, 0x92, 0x22,
-	0x43, 0x41, 0xCC, 0x8A, 0xE6, 0x43, 0x73, 0xCC,
-	// Bytes 42c0 - 42ff
-	0x87, 0xE6, 0x44, 0x20, 0xE3, 0x82, 0x99, 0x08,
-	0x44, 0x20, 0xE3, 0x82, 0x9A, 0x08, 0x44, 0xC2,
-	0xA8, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0x91, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0x95, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0x97, 0xCC, 0x81, 0xE6, 0x44, 0xCE,
-	0x99, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0x9F, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0xA5, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xE6, 0x44, 0xCE,
-	// Bytes 4300 - 433f
-	0xA9, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0xB1, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0xB5, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xE6, 0x44, 0xCE,
-	0xB9, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0xBF, 0xCC,
-	0x81, 0xE6, 0x44, 0xCF, 0x85, 0xCC, 0x81, 0xE6,
-	0x44, 0xCF, 0x89, 0xCC, 0x81, 0xE6, 0x44, 0xD7,
-	0x90, 0xD6, 0xB7, 0x11, 0x44, 0xD7, 0x90, 0xD6,
-	0xB8, 0x12, 0x44, 0xD7, 0x90, 0xD6, 0xBC, 0x15,
-	// Bytes 4340 - 437f
-	0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x91, 0xD6, 0xBF, 0x17, 0x44, 0xD7, 0x92, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x93, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x95, 0xD6, 0xB9, 0x13, 0x44, 0xD7, 0x95, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x96, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x99, 0xD6, 0xB4, 0x0E, 0x44, 0xD7, 0x99, 0xD6,
-	// Bytes 4380 - 43bf
-	0xBC, 0x15, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x9B, 0xD6, 0xBF, 0x17, 0x44, 0xD7, 0x9C, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0xA1, 0xD6, 0xBC, 0x15, 0x44, 0xD7, 0xA3, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x17, 0x44, 0xD7,
-	// Bytes 43c0 - 43ff
-	0xA6, 0xD6, 0xBC, 0x15, 0x44, 0xD7, 0xA7, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0xA9, 0xD7, 0x81, 0x18, 0x44, 0xD7, 0xA9, 0xD7,
-	0x82, 0x19, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x11, 0x44, 0xD8,
-	0xA7, 0xD9, 0x8B, 0x1B, 0x44, 0xD8, 0xA7, 0xD9,
-	0x93, 0xE6, 0x44, 0xD8, 0xA7, 0xD9, 0x94, 0xE6,
-	// Bytes 4400 - 443f
-	0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xDC, 0x44, 0xD8,
-	0xB0, 0xD9, 0xB0, 0x23, 0x44, 0xD8, 0xB1, 0xD9,
-	0xB0, 0x23, 0x44, 0xD9, 0x80, 0xD9, 0x8B, 0x1B,
-	0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x1E, 0x44, 0xD9,
-	0x80, 0xD9, 0x8F, 0x1F, 0x44, 0xD9, 0x80, 0xD9,
-	0x90, 0x20, 0x44, 0xD9, 0x80, 0xD9, 0x91, 0x21,
-	0x44, 0xD9, 0x80, 0xD9, 0x92, 0x22, 0x44, 0xD9,
-	0x87, 0xD9, 0xB0, 0x23, 0x44, 0xD9, 0x88, 0xD9,
-	// Bytes 4440 - 447f
-	0x94, 0xE6, 0x44, 0xD9, 0x89, 0xD9, 0xB0, 0x23,
-	0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xE6, 0x44, 0xDB,
-	0x92, 0xD9, 0x94, 0xE6, 0x44, 0xDB, 0x95, 0xD9,
-	0x94, 0xE6, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x80,
-	0xE6, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xE6,
-	0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xE6, 0x45,
-	0x20, 0xCC, 0x93, 0xCC, 0x80, 0xE6, 0x45, 0x20,
-	0xCC, 0x93, 0xCC, 0x81, 0xE6, 0x45, 0x20, 0xCC,
-	// Bytes 4480 - 44bf
-	0x93, 0xCD, 0x82, 0xE6, 0x45, 0x20, 0xCC, 0x94,
-	0xCC, 0x80, 0xE6, 0x45, 0x20, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x45, 0x20, 0xCC, 0x94, 0xCD, 0x82,
-	0xE6, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, 0x21,
-	0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x21, 0x45,
-	0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x21, 0x45, 0x20,
-	0xD9, 0x8F, 0xD9, 0x91, 0x21, 0x45, 0x20, 0xD9,
-	0x90, 0xD9, 0x91, 0x21, 0x45, 0x20, 0xD9, 0x91,
-	// Bytes 44c0 - 44ff
-	0xD9, 0xB0, 0x23, 0x45, 0xE2, 0xAB, 0x9D, 0xCC,
-	0xB8, 0x01, 0x46, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x46, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
-	0x81, 0x18, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
-	0x82, 0x19, 0x46, 0xD9, 0x80, 0xD9, 0x8E, 0xD9,
-	0x91, 0x21, 0x46, 0xD9, 0x80, 0xD9, 0x8F, 0xD9,
-	0x91, 0x21, 0x46, 0xD9, 0x80, 0xD9, 0x90, 0xD9,
-	// Bytes 4500 - 453f
-	0x91, 0x21, 0x46, 0xE0, 0xA4, 0x95, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x96, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x97, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4,
-	// Bytes 4540 - 457f
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x96, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x97, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8,
-	// Bytes 4580 - 45bf
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC,
-	0xBC, 0x07, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC,
-	0xBC, 0x07, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, 0xBE,
-	0x80, 0x82, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, 0xBE,
-	0x80, 0x82, 0x46, 0xE3, 0x83, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x48, 0xF0, 0x9D, 0x85, 0x97, 0xF0,
-	0x9D, 0x85, 0xA5, 0xD8, 0x48, 0xF0, 0x9D, 0x85,
-	// Bytes 45c0 - 45ff
-	0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xD8, 0x48, 0xF0,
-	0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xD8,
-	0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-	0xA5, 0xD8, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, 0xBD,
-	0xB1, 0xE0, 0xBE, 0x80, 0x82, 0x49, 0xE0, 0xBE,
-	0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x82,
-	0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xD8, 0x4C, 0xF0,
-	// Bytes 4600 - 463f
-	0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-	0x9D, 0x85, 0xAF, 0xD8, 0x4C, 0xF0, 0x9D, 0x85,
-	0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-	0xB0, 0xD8, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
-	0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, 0xD8,
-	0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xD8, 0x4C, 0xF0,
-	0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-	// Bytes 4640 - 467f
-	0x9D, 0x85, 0xAE, 0xD8, 0x4C, 0xF0, 0x9D, 0x86,
-	0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-	0xAF, 0xD8, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
-	0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xD8,
-	0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xD8, 0x83, 0x41,
-	0xCC, 0x82, 0xE6, 0x83, 0x41, 0xCC, 0x86, 0xE6,
-	0x83, 0x41, 0xCC, 0x87, 0xE6, 0x83, 0x41, 0xCC,
-	// Bytes 4680 - 46bf
-	0x88, 0xE6, 0x83, 0x41, 0xCC, 0x8A, 0xE6, 0x83,
-	0x41, 0xCC, 0xA3, 0xDC, 0x83, 0x43, 0xCC, 0xA7,
-	0xCA, 0x83, 0x45, 0xCC, 0x82, 0xE6, 0x83, 0x45,
-	0xCC, 0x84, 0xE6, 0x83, 0x45, 0xCC, 0xA3, 0xDC,
-	0x83, 0x45, 0xCC, 0xA7, 0xCA, 0x83, 0x49, 0xCC,
-	0x88, 0xE6, 0x83, 0x4C, 0xCC, 0xA3, 0xDC, 0x83,
-	0x4F, 0xCC, 0x82, 0xE6, 0x83, 0x4F, 0xCC, 0x83,
-	0xE6, 0x83, 0x4F, 0xCC, 0x84, 0xE6, 0x83, 0x4F,
-	// Bytes 46c0 - 46ff
-	0xCC, 0x87, 0xE6, 0x83, 0x4F, 0xCC, 0x88, 0xE6,
-	0x83, 0x4F, 0xCC, 0x9B, 0xD8, 0x83, 0x4F, 0xCC,
-	0xA3, 0xDC, 0x83, 0x4F, 0xCC, 0xA8, 0xCA, 0x83,
-	0x52, 0xCC, 0xA3, 0xDC, 0x83, 0x53, 0xCC, 0x81,
-	0xE6, 0x83, 0x53, 0xCC, 0x8C, 0xE6, 0x83, 0x53,
-	0xCC, 0xA3, 0xDC, 0x83, 0x55, 0xCC, 0x83, 0xE6,
-	0x83, 0x55, 0xCC, 0x84, 0xE6, 0x83, 0x55, 0xCC,
-	0x88, 0xE6, 0x83, 0x55, 0xCC, 0x9B, 0xD8, 0x83,
-	// Bytes 4700 - 473f
-	0x61, 0xCC, 0x82, 0xE6, 0x83, 0x61, 0xCC, 0x86,
-	0xE6, 0x83, 0x61, 0xCC, 0x87, 0xE6, 0x83, 0x61,
-	0xCC, 0x88, 0xE6, 0x83, 0x61, 0xCC, 0x8A, 0xE6,
-	0x83, 0x61, 0xCC, 0xA3, 0xDC, 0x83, 0x63, 0xCC,
-	0xA7, 0xCA, 0x83, 0x65, 0xCC, 0x82, 0xE6, 0x83,
-	0x65, 0xCC, 0x84, 0xE6, 0x83, 0x65, 0xCC, 0xA3,
-	0xDC, 0x83, 0x65, 0xCC, 0xA7, 0xCA, 0x83, 0x69,
-	0xCC, 0x88, 0xE6, 0x83, 0x6C, 0xCC, 0xA3, 0xDC,
-	// Bytes 4740 - 477f
-	0x83, 0x6F, 0xCC, 0x82, 0xE6, 0x83, 0x6F, 0xCC,
-	0x83, 0xE6, 0x83, 0x6F, 0xCC, 0x84, 0xE6, 0x83,
-	0x6F, 0xCC, 0x87, 0xE6, 0x83, 0x6F, 0xCC, 0x88,
-	0xE6, 0x83, 0x6F, 0xCC, 0x9B, 0xD8, 0x83, 0x6F,
-	0xCC, 0xA3, 0xDC, 0x83, 0x6F, 0xCC, 0xA8, 0xCA,
-	0x83, 0x72, 0xCC, 0xA3, 0xDC, 0x83, 0x73, 0xCC,
-	0x81, 0xE6, 0x83, 0x73, 0xCC, 0x8C, 0xE6, 0x83,
-	0x73, 0xCC, 0xA3, 0xDC, 0x83, 0x75, 0xCC, 0x83,
-	// Bytes 4780 - 47bf
-	0xE6, 0x83, 0x75, 0xCC, 0x84, 0xE6, 0x83, 0x75,
-	0xCC, 0x88, 0xE6, 0x83, 0x75, 0xCC, 0x9B, 0xD8,
-	0x84, 0xCE, 0x91, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x91, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0x95, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0x95, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0x97, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x97, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0x99, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0x99, 0xCC, 0x94, 0xE6,
-	// Bytes 47c0 - 47ff
-	0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x9F, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0xA5, 0xCC,
-	0x94, 0xE6, 0x84, 0xCE, 0xA9, 0xCC, 0x93, 0xE6,
-	0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xE6, 0x84, 0xCE,
-	0xB1, 0xCC, 0x80, 0xE6, 0x84, 0xCE, 0xB1, 0xCC,
-	0x81, 0xE6, 0x84, 0xCE, 0xB1, 0xCC, 0x93, 0xE6,
-	0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xE6, 0x84, 0xCE,
-	0xB1, 0xCD, 0x82, 0xE6, 0x84, 0xCE, 0xB5, 0xCC,
-	// Bytes 4800 - 483f
-	0x93, 0xE6, 0x84, 0xCE, 0xB5, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xE6, 0x84, 0xCE,
-	0xB7, 0xCC, 0x81, 0xE6, 0x84, 0xCE, 0xB7, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0xB7, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xE6, 0x84, 0xCE,
-	0xB9, 0xCC, 0x88, 0xE6, 0x84, 0xCE, 0xB9, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0xB9, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	// Bytes 4840 - 487f
-	0xBF, 0xCC, 0x94, 0xE6, 0x84, 0xCF, 0x85, 0xCC,
-	0x88, 0xE6, 0x84, 0xCF, 0x85, 0xCC, 0x93, 0xE6,
-	0x84, 0xCF, 0x85, 0xCC, 0x94, 0xE6, 0x84, 0xCF,
-	0x89, 0xCC, 0x80, 0xE6, 0x84, 0xCF, 0x89, 0xCC,
-	0x81, 0xE6, 0x84, 0xCF, 0x89, 0xCC, 0x93, 0xE6,
-	0x84, 0xCF, 0x89, 0xCC, 0x94, 0xE6, 0x84, 0xCF,
-	0x89, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	// Bytes 4880 - 48bf
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	// Bytes 48c0 - 48ff
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	// Bytes 4900 - 493f
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	// Bytes 4940 - 497f
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	// Bytes 4980 - 49bf
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x42, 0xCC, 0x80, 0xE6,
-	0xE6, 0x42, 0xCC, 0x81, 0xE6, 0xE6, 0x42, 0xCC,
-	0x93, 0xE6, 0xE6, 0x44, 0xCC, 0x88, 0xCC, 0x81,
-	0xE6, 0xE6, 0x43, 0xE3, 0x82, 0x99, 0x08, 0x08,
-	0x43, 0xE3, 0x82, 0x9A, 0x08, 0x08, 0x46, 0xE0,
-	0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x82, 0x81, 0x46,
-	// Bytes 49c0 - 49ff
-	0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0x84, 0x81,
-	0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x82,
-	0x81,
-}
-
-// nfcValues: 2944 entries, 5888 bytes
-// Block 2 is the null block.
-var nfcValues = [2944]uint16{
-	// Block 0x0, offset 0x0
-	0x003c: 0x8800, 0x003d: 0x8800, 0x003e: 0x8800,
-	// Block 0x1, offset 0x40
-	0x0041: 0x8800, 0x0042: 0x8800, 0x0043: 0x8800, 0x0044: 0x8800, 0x0045: 0x8800,
-	0x0046: 0x8800, 0x0047: 0x8800, 0x0048: 0x8800, 0x0049: 0x8800, 0x004a: 0x8800, 0x004b: 0x8800,
-	0x004c: 0x8800, 0x004d: 0x8800, 0x004e: 0x8800, 0x004f: 0x8800, 0x0050: 0x8800,
-	0x0052: 0x8800, 0x0053: 0x8800, 0x0054: 0x8800, 0x0055: 0x8800, 0x0056: 0x8800, 0x0057: 0x8800,
-	0x0058: 0x8800, 0x0059: 0x8800, 0x005a: 0x8800,
-	0x0061: 0x8800, 0x0062: 0x8800, 0x0063: 0x8800,
-	0x0064: 0x8800, 0x0065: 0x8800, 0x0066: 0x8800, 0x0067: 0x8800, 0x0068: 0x8800, 0x0069: 0x8800,
-	0x006a: 0x8800, 0x006b: 0x8800, 0x006c: 0x8800, 0x006d: 0x8800, 0x006e: 0x8800, 0x006f: 0x8800,
-	0x0070: 0x8800, 0x0072: 0x8800, 0x0073: 0x8800, 0x0074: 0x8800, 0x0075: 0x8800,
-	0x0076: 0x8800, 0x0077: 0x8800, 0x0078: 0x8800, 0x0079: 0x8800, 0x007a: 0x8800,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0x2f59, 0x00c1: 0x2f5e, 0x00c2: 0x466e, 0x00c3: 0x2f63, 0x00c4: 0x467d, 0x00c5: 0x4682,
-	0x00c6: 0x8800, 0x00c7: 0x468c, 0x00c8: 0x2fcc, 0x00c9: 0x2fd1, 0x00ca: 0x4691, 0x00cb: 0x2fe5,
-	0x00cc: 0x3058, 0x00cd: 0x305d, 0x00ce: 0x3062, 0x00cf: 0x46a5, 0x00d1: 0x30ee,
-	0x00d2: 0x3111, 0x00d3: 0x3116, 0x00d4: 0x46af, 0x00d5: 0x46b4, 0x00d6: 0x46c3,
-	0x00d8: 0x8800, 0x00d9: 0x319d, 0x00da: 0x31a2, 0x00db: 0x31a7, 0x00dc: 0x46f5, 0x00dd: 0x321f,
-	0x00e0: 0x3265, 0x00e1: 0x326a, 0x00e2: 0x46ff, 0x00e3: 0x326f,
-	0x00e4: 0x470e, 0x00e5: 0x4713, 0x00e6: 0x8800, 0x00e7: 0x471d, 0x00e8: 0x32d8, 0x00e9: 0x32dd,
-	0x00ea: 0x4722, 0x00eb: 0x32f1, 0x00ec: 0x3369, 0x00ed: 0x336e, 0x00ee: 0x3373, 0x00ef: 0x4736,
-	0x00f1: 0x33ff, 0x00f2: 0x3422, 0x00f3: 0x3427, 0x00f4: 0x4740, 0x00f5: 0x4745,
-	0x00f6: 0x4754, 0x00f8: 0x8800, 0x00f9: 0x34b3, 0x00fa: 0x34b8, 0x00fb: 0x34bd,
-	0x00fc: 0x4786, 0x00fd: 0x353a, 0x00ff: 0x3553,
-	// Block 0x4, offset 0x100
-	0x0100: 0x2f68, 0x0101: 0x3274, 0x0102: 0x4673, 0x0103: 0x4704, 0x0104: 0x2f86, 0x0105: 0x3292,
-	0x0106: 0x2f9a, 0x0107: 0x32a6, 0x0108: 0x2f9f, 0x0109: 0x32ab, 0x010a: 0x2fa4, 0x010b: 0x32b0,
-	0x010c: 0x2fa9, 0x010d: 0x32b5, 0x010e: 0x2fb3, 0x010f: 0x32bf,
-	0x0112: 0x4696, 0x0113: 0x4727, 0x0114: 0x2fdb, 0x0115: 0x32e7, 0x0116: 0x2fe0, 0x0117: 0x32ec,
-	0x0118: 0x2ffe, 0x0119: 0x330a, 0x011a: 0x2fef, 0x011b: 0x32fb, 0x011c: 0x3017, 0x011d: 0x3323,
-	0x011e: 0x3021, 0x011f: 0x332d, 0x0120: 0x3026, 0x0121: 0x3332, 0x0122: 0x3030, 0x0123: 0x333c,
-	0x0124: 0x3035, 0x0125: 0x3341, 0x0128: 0x3067, 0x0129: 0x3378,
-	0x012a: 0x306c, 0x012b: 0x337d, 0x012c: 0x3071, 0x012d: 0x3382, 0x012e: 0x3094, 0x012f: 0x33a0,
-	0x0130: 0x3076, 0x0134: 0x309e, 0x0135: 0x33aa,
-	0x0136: 0x30b2, 0x0137: 0x33c3, 0x0139: 0x30bc, 0x013a: 0x33cd, 0x013b: 0x30c6,
-	0x013c: 0x33d7, 0x013d: 0x30c1, 0x013e: 0x33d2,
-	// Block 0x5, offset 0x140
-	0x0143: 0x30e9, 0x0144: 0x33fa, 0x0145: 0x3102,
-	0x0146: 0x3413, 0x0147: 0x30f8, 0x0148: 0x3409,
-	0x014c: 0x46b9, 0x014d: 0x474a, 0x014e: 0x311b, 0x014f: 0x342c, 0x0150: 0x3125, 0x0151: 0x3436,
-	0x0154: 0x3143, 0x0155: 0x3454, 0x0156: 0x315c, 0x0157: 0x346d,
-	0x0158: 0x314d, 0x0159: 0x345e, 0x015a: 0x46dc, 0x015b: 0x476d, 0x015c: 0x3166, 0x015d: 0x3477,
-	0x015e: 0x3175, 0x015f: 0x3486, 0x0160: 0x46e1, 0x0161: 0x4772, 0x0162: 0x318e, 0x0163: 0x34a4,
-	0x0164: 0x317f, 0x0165: 0x3495, 0x0168: 0x46eb, 0x0169: 0x477c,
-	0x016a: 0x46f0, 0x016b: 0x4781, 0x016c: 0x31ac, 0x016d: 0x34c2, 0x016e: 0x31b6, 0x016f: 0x34cc,
-	0x0170: 0x31bb, 0x0171: 0x34d1, 0x0172: 0x31d9, 0x0173: 0x34ef, 0x0174: 0x31fc, 0x0175: 0x3512,
-	0x0176: 0x3224, 0x0177: 0x353f, 0x0178: 0x3238, 0x0179: 0x3247, 0x017a: 0x3567, 0x017b: 0x3251,
-	0x017c: 0x3571, 0x017d: 0x3256, 0x017e: 0x3576, 0x017f: 0x8800,
-	// Block 0x6, offset 0x180
-	0x018d: 0x2f72, 0x018e: 0x327e, 0x018f: 0x3080, 0x0190: 0x338c, 0x0191: 0x312a,
-	0x0192: 0x343b, 0x0193: 0x31c0, 0x0194: 0x34d6, 0x0195: 0x39b9, 0x0196: 0x3b48, 0x0197: 0x39b2,
-	0x0198: 0x3b41, 0x0199: 0x39c0, 0x019a: 0x3b4f, 0x019b: 0x39ab, 0x019c: 0x3b3a,
-	0x019e: 0x389a, 0x019f: 0x3a29, 0x01a0: 0x3893, 0x01a1: 0x3a22, 0x01a2: 0x359d, 0x01a3: 0x35af,
-	0x01a6: 0x302b, 0x01a7: 0x3337, 0x01a8: 0x30a8, 0x01a9: 0x33b9,
-	0x01aa: 0x46d2, 0x01ab: 0x4763, 0x01ac: 0x397a, 0x01ad: 0x3b09, 0x01ae: 0x35c1, 0x01af: 0x35c7,
-	0x01b0: 0x33af, 0x01b4: 0x3012, 0x01b5: 0x331e,
-	0x01b8: 0x30e4, 0x01b9: 0x33f5, 0x01ba: 0x38a1, 0x01bb: 0x3a30,
-	0x01bc: 0x3597, 0x01bd: 0x35a9, 0x01be: 0x35a3, 0x01bf: 0x35b5,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x2f77, 0x01c1: 0x3283, 0x01c2: 0x2f7c, 0x01c3: 0x3288, 0x01c4: 0x2ff4, 0x01c5: 0x3300,
-	0x01c6: 0x2ff9, 0x01c7: 0x3305, 0x01c8: 0x3085, 0x01c9: 0x3391, 0x01ca: 0x308a, 0x01cb: 0x3396,
-	0x01cc: 0x312f, 0x01cd: 0x3440, 0x01ce: 0x3134, 0x01cf: 0x3445, 0x01d0: 0x3152, 0x01d1: 0x3463,
-	0x01d2: 0x3157, 0x01d3: 0x3468, 0x01d4: 0x31c5, 0x01d5: 0x34db, 0x01d6: 0x31ca, 0x01d7: 0x34e0,
-	0x01d8: 0x3170, 0x01d9: 0x3481, 0x01da: 0x3189, 0x01db: 0x349f,
-	0x01de: 0x3044, 0x01df: 0x3350,
-	0x01e6: 0x4678, 0x01e7: 0x4709, 0x01e8: 0x46a0, 0x01e9: 0x4731,
-	0x01ea: 0x3949, 0x01eb: 0x3ad8, 0x01ec: 0x3926, 0x01ed: 0x3ab5, 0x01ee: 0x46be, 0x01ef: 0x474f,
-	0x01f0: 0x3942, 0x01f1: 0x3ad1, 0x01f2: 0x322e, 0x01f3: 0x3549,
-	// Block 0x8, offset 0x200
-	0x0200: 0x86e6, 0x0201: 0x86e6, 0x0202: 0x86e6, 0x0203: 0x86e6, 0x0204: 0x86e6, 0x0205: 0x80e6,
-	0x0206: 0x86e6, 0x0207: 0x86e6, 0x0208: 0x86e6, 0x0209: 0x86e6, 0x020a: 0x86e6, 0x020b: 0x86e6,
-	0x020c: 0x86e6, 0x020d: 0x80e6, 0x020e: 0x80e6, 0x020f: 0x86e6, 0x0210: 0x80e6, 0x0211: 0x86e6,
-	0x0212: 0x80e6, 0x0213: 0x86e6, 0x0214: 0x86e6, 0x0215: 0x80e8, 0x0216: 0x80dc, 0x0217: 0x80dc,
-	0x0218: 0x80dc, 0x0219: 0x80dc, 0x021a: 0x80e8, 0x021b: 0x86d8, 0x021c: 0x80dc, 0x021d: 0x80dc,
-	0x021e: 0x80dc, 0x021f: 0x80dc, 0x0220: 0x80dc, 0x0221: 0x80ca, 0x0222: 0x80ca, 0x0223: 0x86dc,
-	0x0224: 0x86dc, 0x0225: 0x86dc, 0x0226: 0x86dc, 0x0227: 0x86ca, 0x0228: 0x86ca, 0x0229: 0x80dc,
-	0x022a: 0x80dc, 0x022b: 0x80dc, 0x022c: 0x80dc, 0x022d: 0x86dc, 0x022e: 0x86dc, 0x022f: 0x80dc,
-	0x0230: 0x86dc, 0x0231: 0x86dc, 0x0232: 0x80dc, 0x0233: 0x80dc, 0x0234: 0x8001, 0x0235: 0x8001,
-	0x0236: 0x8001, 0x0237: 0x8001, 0x0238: 0x8601, 0x0239: 0x80dc, 0x023a: 0x80dc, 0x023b: 0x80dc,
-	0x023c: 0x80dc, 0x023d: 0x80e6, 0x023e: 0x80e6, 0x023f: 0x80e6,
-	// Block 0x9, offset 0x240
-	0x0240: 0x4994, 0x0241: 0x4999, 0x0242: 0x86e6, 0x0243: 0x499e, 0x0244: 0x49a3, 0x0245: 0x86f0,
-	0x0246: 0x80e6, 0x0247: 0x80dc, 0x0248: 0x80dc, 0x0249: 0x80dc, 0x024a: 0x80e6, 0x024b: 0x80e6,
-	0x024c: 0x80e6, 0x024d: 0x80dc, 0x024e: 0x80dc, 0x0250: 0x80e6, 0x0251: 0x80e6,
-	0x0252: 0x80e6, 0x0253: 0x80dc, 0x0254: 0x80dc, 0x0255: 0x80dc, 0x0256: 0x80dc, 0x0257: 0x80e6,
-	0x0258: 0x80e8, 0x0259: 0x80dc, 0x025a: 0x80dc, 0x025b: 0x80e6, 0x025c: 0x80e9, 0x025d: 0x80ea,
-	0x025e: 0x80ea, 0x025f: 0x80e9, 0x0260: 0x80ea, 0x0261: 0x80ea, 0x0262: 0x80e9, 0x0263: 0x80e6,
-	0x0264: 0x80e6, 0x0265: 0x80e6, 0x0266: 0x80e6, 0x0267: 0x80e6, 0x0268: 0x80e6, 0x0269: 0x80e6,
-	0x026a: 0x80e6, 0x026b: 0x80e6, 0x026c: 0x80e6, 0x026d: 0x80e6, 0x026e: 0x80e6, 0x026f: 0x80e6,
-	0x0274: 0x0170,
-	0x027e: 0x0037,
-	// Block 0xa, offset 0x280
-	0x0285: 0x358b,
-	0x0286: 0x35d3, 0x0287: 0x00d1, 0x0288: 0x35f1, 0x0289: 0x35fd, 0x028a: 0x360f,
-	0x028c: 0x362d, 0x028e: 0x363f, 0x028f: 0x365d, 0x0290: 0x3df2, 0x0291: 0x8800,
-	0x0295: 0x8800, 0x0297: 0x8800,
-	0x0299: 0x8800,
-	0x029f: 0x8800, 0x02a1: 0x8800,
-	0x02a5: 0x8800, 0x02a9: 0x8800,
-	0x02aa: 0x3621, 0x02ab: 0x3651, 0x02ac: 0x47e4, 0x02ad: 0x3681, 0x02ae: 0x480e, 0x02af: 0x3693,
-	0x02b0: 0x3e5a, 0x02b1: 0x8800, 0x02b5: 0x8800,
-	0x02b7: 0x8800, 0x02b9: 0x8800,
-	0x02bf: 0x8800,
-	// Block 0xb, offset 0x2c0
-	0x02c0: 0x370b, 0x02c1: 0x3717, 0x02c3: 0x3705,
-	0x02c6: 0x8800, 0x02c7: 0x36f3,
-	0x02cc: 0x3747, 0x02cd: 0x372f, 0x02ce: 0x3759, 0x02d0: 0x8800,
-	0x02d3: 0x8800, 0x02d5: 0x8800, 0x02d6: 0x8800, 0x02d7: 0x8800,
-	0x02d8: 0x8800, 0x02d9: 0x373b, 0x02da: 0x8800,
-	0x02de: 0x8800, 0x02e3: 0x8800,
-	0x02e7: 0x8800,
-	0x02eb: 0x8800, 0x02ed: 0x8800,
-	0x02f0: 0x8800, 0x02f3: 0x8800, 0x02f5: 0x8800,
-	0x02f6: 0x8800, 0x02f7: 0x8800, 0x02f8: 0x8800, 0x02f9: 0x37bf, 0x02fa: 0x8800,
-	0x02fe: 0x8800,
-	// Block 0xc, offset 0x300
-	0x0301: 0x371d, 0x0302: 0x37a1,
-	0x0310: 0x36f9, 0x0311: 0x377d,
-	0x0312: 0x36ff, 0x0313: 0x3783, 0x0316: 0x3711, 0x0317: 0x3795,
-	0x0318: 0x8800, 0x0319: 0x8800, 0x031a: 0x3813, 0x031b: 0x3819, 0x031c: 0x3723, 0x031d: 0x37a7,
-	0x031e: 0x3729, 0x031f: 0x37ad, 0x0322: 0x3735, 0x0323: 0x37b9,
-	0x0324: 0x3741, 0x0325: 0x37c5, 0x0326: 0x374d, 0x0327: 0x37d1, 0x0328: 0x8800, 0x0329: 0x8800,
-	0x032a: 0x381f, 0x032b: 0x3825, 0x032c: 0x3777, 0x032d: 0x37fb, 0x032e: 0x3753, 0x032f: 0x37d7,
-	0x0330: 0x375f, 0x0331: 0x37e3, 0x0332: 0x3765, 0x0333: 0x37e9, 0x0334: 0x376b, 0x0335: 0x37ef,
-	0x0338: 0x3771, 0x0339: 0x37f5,
-	// Block 0xd, offset 0x340
-	0x0351: 0x80dc,
-	0x0352: 0x80e6, 0x0353: 0x80e6, 0x0354: 0x80e6, 0x0355: 0x80e6, 0x0356: 0x80dc, 0x0357: 0x80e6,
-	0x0358: 0x80e6, 0x0359: 0x80e6, 0x035a: 0x80de, 0x035b: 0x80dc, 0x035c: 0x80e6, 0x035d: 0x80e6,
-	0x035e: 0x80e6, 0x035f: 0x80e6, 0x0360: 0x80e6, 0x0361: 0x80e6, 0x0362: 0x80dc, 0x0363: 0x80dc,
-	0x0364: 0x80dc, 0x0365: 0x80dc, 0x0366: 0x80dc, 0x0367: 0x80dc, 0x0368: 0x80e6, 0x0369: 0x80e6,
-	0x036a: 0x80dc, 0x036b: 0x80e6, 0x036c: 0x80e6, 0x036d: 0x80de, 0x036e: 0x80e4, 0x036f: 0x80e6,
-	0x0370: 0x800a, 0x0371: 0x800b, 0x0372: 0x800c, 0x0373: 0x800d, 0x0374: 0x800e, 0x0375: 0x800f,
-	0x0376: 0x8010, 0x0377: 0x8011, 0x0378: 0x8012, 0x0379: 0x8013, 0x037a: 0x8013, 0x037b: 0x8014,
-	0x037c: 0x8015, 0x037d: 0x8016, 0x037f: 0x8017,
-	// Block 0xe, offset 0x380
-	0x0388: 0x8800, 0x038a: 0x8800, 0x038b: 0x801b,
-	0x038c: 0x801c, 0x038d: 0x801d, 0x038e: 0x801e, 0x038f: 0x801f, 0x0390: 0x8020, 0x0391: 0x8021,
-	0x0392: 0x8022, 0x0393: 0x86e6, 0x0394: 0x86e6, 0x0395: 0x86dc, 0x0396: 0x80dc, 0x0397: 0x80e6,
-	0x0398: 0x80e6, 0x0399: 0x80e6, 0x039a: 0x80e6, 0x039b: 0x80e6, 0x039c: 0x80dc, 0x039d: 0x80e6,
-	0x039e: 0x80e6, 0x039f: 0x80dc,
-	0x03b0: 0x8023,
-	// Block 0xf, offset 0x3c0
-	0x03c5: 0x8800,
-	0x03c6: 0x1946, 0x03c7: 0x8800, 0x03c8: 0x194d, 0x03c9: 0x8800, 0x03ca: 0x1954, 0x03cb: 0x8800,
-	0x03cc: 0x195b, 0x03cd: 0x8800, 0x03ce: 0x1962, 0x03d1: 0x8800,
-	0x03d2: 0x1969,
-	0x03f4: 0x8007, 0x03f5: 0x8600,
-	0x03fa: 0x8800, 0x03fb: 0x1970,
-	0x03fc: 0x8800, 0x03fd: 0x1977, 0x03fe: 0x8800, 0x03ff: 0x8800,
-	// Block 0x10, offset 0x400
-	0x0400: 0x2f81, 0x0401: 0x328d, 0x0402: 0x2f8b, 0x0403: 0x3297, 0x0404: 0x2f90, 0x0405: 0x329c,
-	0x0406: 0x2f95, 0x0407: 0x32a1, 0x0408: 0x38b6, 0x0409: 0x3a45, 0x040a: 0x2fae, 0x040b: 0x32ba,
-	0x040c: 0x2fb8, 0x040d: 0x32c4, 0x040e: 0x2fc7, 0x040f: 0x32d3, 0x0410: 0x2fbd, 0x0411: 0x32c9,
-	0x0412: 0x2fc2, 0x0413: 0x32ce, 0x0414: 0x38d9, 0x0415: 0x3a68, 0x0416: 0x38e0, 0x0417: 0x3a6f,
-	0x0418: 0x3003, 0x0419: 0x330f, 0x041a: 0x3008, 0x041b: 0x3314, 0x041c: 0x38ee, 0x041d: 0x3a7d,
-	0x041e: 0x300d, 0x041f: 0x3319, 0x0420: 0x301c, 0x0421: 0x3328, 0x0422: 0x303a, 0x0423: 0x3346,
-	0x0424: 0x3049, 0x0425: 0x3355, 0x0426: 0x303f, 0x0427: 0x334b, 0x0428: 0x304e, 0x0429: 0x335a,
-	0x042a: 0x3053, 0x042b: 0x335f, 0x042c: 0x3099, 0x042d: 0x33a5, 0x042e: 0x38f5, 0x042f: 0x3a84,
-	0x0430: 0x30a3, 0x0431: 0x33b4, 0x0432: 0x30ad, 0x0433: 0x33be, 0x0434: 0x30b7, 0x0435: 0x33c8,
-	0x0436: 0x46aa, 0x0437: 0x473b, 0x0438: 0x38fc, 0x0439: 0x3a8b, 0x043a: 0x30d0, 0x043b: 0x33e1,
-	0x043c: 0x30cb, 0x043d: 0x33dc, 0x043e: 0x30d5, 0x043f: 0x33e6,
-	// Block 0x11, offset 0x440
-	0x0440: 0x30da, 0x0441: 0x33eb, 0x0442: 0x30df, 0x0443: 0x33f0, 0x0444: 0x30f3, 0x0445: 0x3404,
-	0x0446: 0x30fd, 0x0447: 0x340e, 0x0448: 0x310c, 0x0449: 0x341d, 0x044a: 0x3107, 0x044b: 0x3418,
-	0x044c: 0x391f, 0x044d: 0x3aae, 0x044e: 0x392d, 0x044f: 0x3abc, 0x0450: 0x3934, 0x0451: 0x3ac3,
-	0x0452: 0x393b, 0x0453: 0x3aca, 0x0454: 0x3139, 0x0455: 0x344a, 0x0456: 0x313e, 0x0457: 0x344f,
-	0x0458: 0x3148, 0x0459: 0x3459, 0x045a: 0x46d7, 0x045b: 0x4768, 0x045c: 0x3981, 0x045d: 0x3b10,
-	0x045e: 0x3161, 0x045f: 0x3472, 0x0460: 0x316b, 0x0461: 0x347c, 0x0462: 0x46e6, 0x0463: 0x4777,
-	0x0464: 0x3988, 0x0465: 0x3b17, 0x0466: 0x398f, 0x0467: 0x3b1e, 0x0468: 0x3996, 0x0469: 0x3b25,
-	0x046a: 0x317a, 0x046b: 0x348b, 0x046c: 0x3184, 0x046d: 0x349a, 0x046e: 0x3198, 0x046f: 0x34ae,
-	0x0470: 0x3193, 0x0471: 0x34a9, 0x0472: 0x31d4, 0x0473: 0x34ea, 0x0474: 0x31e3, 0x0475: 0x34f9,
-	0x0476: 0x31de, 0x0477: 0x34f4, 0x0478: 0x399d, 0x0479: 0x3b2c, 0x047a: 0x39a4, 0x047b: 0x3b33,
-	0x047c: 0x31e8, 0x047d: 0x34fe, 0x047e: 0x31ed, 0x047f: 0x3503,
-	// Block 0x12, offset 0x480
-	0x0480: 0x31f2, 0x0481: 0x3508, 0x0482: 0x31f7, 0x0483: 0x350d, 0x0484: 0x3206, 0x0485: 0x351c,
-	0x0486: 0x3201, 0x0487: 0x3517, 0x0488: 0x320b, 0x0489: 0x3526, 0x048a: 0x3210, 0x048b: 0x352b,
-	0x048c: 0x3215, 0x048d: 0x3530, 0x048e: 0x3233, 0x048f: 0x354e, 0x0490: 0x324c, 0x0491: 0x356c,
-	0x0492: 0x325b, 0x0493: 0x357b, 0x0494: 0x3260, 0x0495: 0x3580, 0x0496: 0x3364, 0x0497: 0x3490,
-	0x0498: 0x3521, 0x0499: 0x355d, 0x049b: 0x35bb,
-	0x04a0: 0x4687, 0x04a1: 0x4718, 0x04a2: 0x2f6d, 0x04a3: 0x3279,
-	0x04a4: 0x3862, 0x04a5: 0x39f1, 0x04a6: 0x385b, 0x04a7: 0x39ea, 0x04a8: 0x3870, 0x04a9: 0x39ff,
-	0x04aa: 0x3869, 0x04ab: 0x39f8, 0x04ac: 0x38a8, 0x04ad: 0x3a37, 0x04ae: 0x387e, 0x04af: 0x3a0d,
-	0x04b0: 0x3877, 0x04b1: 0x3a06, 0x04b2: 0x388c, 0x04b3: 0x3a1b, 0x04b4: 0x3885, 0x04b5: 0x3a14,
-	0x04b6: 0x38af, 0x04b7: 0x3a3e, 0x04b8: 0x469b, 0x04b9: 0x472c, 0x04ba: 0x2fea, 0x04bb: 0x32f6,
-	0x04bc: 0x2fd6, 0x04bd: 0x32e2, 0x04be: 0x38c4, 0x04bf: 0x3a53,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x38bd, 0x04c1: 0x3a4c, 0x04c2: 0x38d2, 0x04c3: 0x3a61, 0x04c4: 0x38cb, 0x04c5: 0x3a5a,
-	0x04c6: 0x38e7, 0x04c7: 0x3a76, 0x04c8: 0x307b, 0x04c9: 0x3387, 0x04ca: 0x308f, 0x04cb: 0x339b,
-	0x04cc: 0x46cd, 0x04cd: 0x475e, 0x04ce: 0x3120, 0x04cf: 0x3431, 0x04d0: 0x390a, 0x04d1: 0x3a99,
-	0x04d2: 0x3903, 0x04d3: 0x3a92, 0x04d4: 0x3918, 0x04d5: 0x3aa7, 0x04d6: 0x3911, 0x04d7: 0x3aa0,
-	0x04d8: 0x3973, 0x04d9: 0x3b02, 0x04da: 0x3957, 0x04db: 0x3ae6, 0x04dc: 0x3950, 0x04dd: 0x3adf,
-	0x04de: 0x3965, 0x04df: 0x3af4, 0x04e0: 0x395e, 0x04e1: 0x3aed, 0x04e2: 0x396c, 0x04e3: 0x3afb,
-	0x04e4: 0x31cf, 0x04e5: 0x34e5, 0x04e6: 0x31b1, 0x04e7: 0x34c7, 0x04e8: 0x39ce, 0x04e9: 0x3b5d,
-	0x04ea: 0x39c7, 0x04eb: 0x3b56, 0x04ec: 0x39dc, 0x04ed: 0x3b6b, 0x04ee: 0x39d5, 0x04ef: 0x3b64,
-	0x04f0: 0x39e3, 0x04f1: 0x3b72, 0x04f2: 0x321a, 0x04f3: 0x3535, 0x04f4: 0x3242, 0x04f5: 0x3562,
-	0x04f6: 0x323d, 0x04f7: 0x3558, 0x04f8: 0x3229, 0x04f9: 0x3544,
-	// Block 0x14, offset 0x500
-	0x0500: 0x47ea, 0x0501: 0x47f0, 0x0502: 0x4904, 0x0503: 0x491c, 0x0504: 0x490c, 0x0505: 0x4924,
-	0x0506: 0x4914, 0x0507: 0x492c, 0x0508: 0x4790, 0x0509: 0x4796, 0x050a: 0x4874, 0x050b: 0x488c,
-	0x050c: 0x487c, 0x050d: 0x4894, 0x050e: 0x4884, 0x050f: 0x489c, 0x0510: 0x47fc, 0x0511: 0x4802,
-	0x0512: 0x3da2, 0x0513: 0x3db2, 0x0514: 0x3daa, 0x0515: 0x3dba,
-	0x0518: 0x479c, 0x0519: 0x47a2, 0x051a: 0x3cd2, 0x051b: 0x3ce2, 0x051c: 0x3cda, 0x051d: 0x3cea,
-	0x0520: 0x4814, 0x0521: 0x481a, 0x0522: 0x4934, 0x0523: 0x494c,
-	0x0524: 0x493c, 0x0525: 0x4954, 0x0526: 0x4944, 0x0527: 0x495c, 0x0528: 0x47a8, 0x0529: 0x47ae,
-	0x052a: 0x48a4, 0x052b: 0x48bc, 0x052c: 0x48ac, 0x052d: 0x48c4, 0x052e: 0x48b4, 0x052f: 0x48cc,
-	0x0530: 0x482c, 0x0531: 0x4832, 0x0532: 0x3e02, 0x0533: 0x3e1a, 0x0534: 0x3e0a, 0x0535: 0x3e22,
-	0x0536: 0x3e12, 0x0537: 0x3e2a, 0x0538: 0x47b4, 0x0539: 0x47ba, 0x053a: 0x3d02, 0x053b: 0x3d1a,
-	0x053c: 0x3d0a, 0x053d: 0x3d22, 0x053e: 0x3d12, 0x053f: 0x3d2a,
-	// Block 0x15, offset 0x540
-	0x0540: 0x4838, 0x0541: 0x483e, 0x0542: 0x3e32, 0x0543: 0x3e42, 0x0544: 0x3e3a, 0x0545: 0x3e4a,
-	0x0548: 0x47c0, 0x0549: 0x47c6, 0x054a: 0x3d32, 0x054b: 0x3d42,
-	0x054c: 0x3d3a, 0x054d: 0x3d4a, 0x0550: 0x484a, 0x0551: 0x4850,
-	0x0552: 0x3e6a, 0x0553: 0x3e82, 0x0554: 0x3e72, 0x0555: 0x3e8a, 0x0556: 0x3e7a, 0x0557: 0x3e92,
-	0x0559: 0x47cc, 0x055b: 0x3d52, 0x055d: 0x3d5a,
-	0x055f: 0x3d62, 0x0560: 0x4862, 0x0561: 0x4868, 0x0562: 0x4964, 0x0563: 0x497c,
-	0x0564: 0x496c, 0x0565: 0x4984, 0x0566: 0x4974, 0x0567: 0x498c, 0x0568: 0x47d2, 0x0569: 0x47d8,
-	0x056a: 0x48d4, 0x056b: 0x48ec, 0x056c: 0x48dc, 0x056d: 0x48f4, 0x056e: 0x48e4, 0x056f: 0x48fc,
-	0x0570: 0x47de, 0x0571: 0x4304, 0x0572: 0x367b, 0x0573: 0x430a, 0x0574: 0x4808, 0x0575: 0x4310,
-	0x0576: 0x368d, 0x0577: 0x4316, 0x0578: 0x36ab, 0x0579: 0x431c, 0x057a: 0x36c3, 0x057b: 0x4322,
-	0x057c: 0x4856, 0x057d: 0x4328,
-	// Block 0x16, offset 0x580
-	0x0580: 0x3d8a, 0x0581: 0x3d92, 0x0582: 0x416e, 0x0583: 0x418c, 0x0584: 0x4178, 0x0585: 0x4196,
-	0x0586: 0x4182, 0x0587: 0x41a0, 0x0588: 0x3cc2, 0x0589: 0x3cca, 0x058a: 0x40ba, 0x058b: 0x40d8,
-	0x058c: 0x40c4, 0x058d: 0x40e2, 0x058e: 0x40ce, 0x058f: 0x40ec, 0x0590: 0x3dd2, 0x0591: 0x3dda,
-	0x0592: 0x41aa, 0x0593: 0x41c8, 0x0594: 0x41b4, 0x0595: 0x41d2, 0x0596: 0x41be, 0x0597: 0x41dc,
-	0x0598: 0x3cf2, 0x0599: 0x3cfa, 0x059a: 0x40f6, 0x059b: 0x4114, 0x059c: 0x4100, 0x059d: 0x411e,
-	0x059e: 0x410a, 0x059f: 0x4128, 0x05a0: 0x3eaa, 0x05a1: 0x3eb2, 0x05a2: 0x41e6, 0x05a3: 0x4204,
-	0x05a4: 0x41f0, 0x05a5: 0x420e, 0x05a6: 0x41fa, 0x05a7: 0x4218, 0x05a8: 0x3d6a, 0x05a9: 0x3d72,
-	0x05aa: 0x4132, 0x05ab: 0x4150, 0x05ac: 0x413c, 0x05ad: 0x415a, 0x05ae: 0x4146, 0x05af: 0x4164,
-	0x05b0: 0x366f, 0x05b1: 0x3669, 0x05b2: 0x3d7a, 0x05b3: 0x3675, 0x05b4: 0x3d82,
-	0x05b6: 0x47f6, 0x05b7: 0x3d9a, 0x05b8: 0x35df, 0x05b9: 0x35d9, 0x05ba: 0x35cd, 0x05bb: 0x42d4,
-	0x05bc: 0x35e5, 0x05be: 0x01d3, 0x05bf: 0x8800,
-	// Block 0x17, offset 0x5c0
-	0x05c1: 0x3591, 0x05c2: 0x3dc2, 0x05c3: 0x3687, 0x05c4: 0x3dca,
-	0x05c6: 0x4820, 0x05c7: 0x3de2, 0x05c8: 0x35eb, 0x05c9: 0x42da, 0x05ca: 0x35f7, 0x05cb: 0x42e0,
-	0x05cc: 0x3603, 0x05cd: 0x3b79, 0x05ce: 0x3b80, 0x05cf: 0x3b87, 0x05d0: 0x369f, 0x05d1: 0x3699,
-	0x05d2: 0x3dea, 0x05d3: 0x44ca, 0x05d6: 0x36a5, 0x05d7: 0x3dfa,
-	0x05d8: 0x361b, 0x05d9: 0x3615, 0x05da: 0x3609, 0x05db: 0x42e6, 0x05dd: 0x3b8e,
-	0x05de: 0x3b95, 0x05df: 0x3b9c, 0x05e0: 0x36d5, 0x05e1: 0x36cf, 0x05e2: 0x3e52, 0x05e3: 0x44d2,
-	0x05e4: 0x36b7, 0x05e5: 0x36bd, 0x05e6: 0x36db, 0x05e7: 0x3e62, 0x05e8: 0x364b, 0x05e9: 0x3645,
-	0x05ea: 0x3639, 0x05eb: 0x42f2, 0x05ec: 0x3633, 0x05ed: 0x3585, 0x05ee: 0x42ce, 0x05ef: 0x0081,
-	0x05f2: 0x3e9a, 0x05f3: 0x36e1, 0x05f4: 0x3ea2,
-	0x05f6: 0x486e, 0x05f7: 0x3eba, 0x05f8: 0x3627, 0x05f9: 0x42ec, 0x05fa: 0x3657, 0x05fb: 0x42fe,
-	0x05fc: 0x3663, 0x05fd: 0x00ce, 0x05fe: 0x8800,
-	// Block 0x18, offset 0x600
-	0x0601: 0x3bf0, 0x0603: 0x8800, 0x0604: 0x3bf7, 0x0605: 0x8800,
-	0x0607: 0x3bfe, 0x0608: 0x8800, 0x0609: 0x3c05,
-	0x060d: 0x8800,
-	0x0620: 0x2f4f, 0x0621: 0x8800, 0x0622: 0x3c13,
-	0x0624: 0x8800, 0x0625: 0x8800,
-	0x062d: 0x3c0c, 0x062e: 0x2f4a, 0x062f: 0x2f54,
-	0x0630: 0x3c1a, 0x0631: 0x3c21, 0x0632: 0x8800, 0x0633: 0x8800, 0x0634: 0x3c28, 0x0635: 0x3c2f,
-	0x0636: 0x8800, 0x0637: 0x8800, 0x0638: 0x3c36, 0x0639: 0x3c3d, 0x063a: 0x8800, 0x063b: 0x8800,
-	0x063c: 0x8800, 0x063d: 0x8800,
-	// Block 0x19, offset 0x640
-	0x0640: 0x3c44, 0x0641: 0x3c4b, 0x0642: 0x8800, 0x0643: 0x8800, 0x0644: 0x3c60, 0x0645: 0x3c67,
-	0x0646: 0x8800, 0x0647: 0x8800, 0x0648: 0x3c6e, 0x0649: 0x3c75,
-	0x0651: 0x8800,
-	0x0652: 0x8800,
-	0x0662: 0x8800,
-	0x0668: 0x8800, 0x0669: 0x8800,
-	0x066b: 0x8800, 0x066c: 0x3c8a, 0x066d: 0x3c91, 0x066e: 0x3c98, 0x066f: 0x3c9f,
-	0x0672: 0x8800, 0x0673: 0x8800, 0x0674: 0x8800, 0x0675: 0x8800,
-	// Block 0x1a, offset 0x680
-	0x0686: 0x8800, 0x068b: 0x8800,
-	0x068c: 0x3ef2, 0x068d: 0x8800, 0x068e: 0x3efa, 0x068f: 0x8800, 0x0690: 0x3f02, 0x0691: 0x8800,
-	0x0692: 0x3f0a, 0x0693: 0x8800, 0x0694: 0x3f12, 0x0695: 0x8800, 0x0696: 0x3f1a, 0x0697: 0x8800,
-	0x0698: 0x3f22, 0x0699: 0x8800, 0x069a: 0x3f2a, 0x069b: 0x8800, 0x069c: 0x3f32, 0x069d: 0x8800,
-	0x069e: 0x3f3a, 0x069f: 0x8800, 0x06a0: 0x3f42, 0x06a1: 0x8800, 0x06a2: 0x3f4a,
-	0x06a4: 0x8800, 0x06a5: 0x3f52, 0x06a6: 0x8800, 0x06a7: 0x3f5a, 0x06a8: 0x8800, 0x06a9: 0x3f62,
-	0x06af: 0x8800,
-	0x06b0: 0x3f6a, 0x06b1: 0x3f72, 0x06b2: 0x8800, 0x06b3: 0x3f7a, 0x06b4: 0x3f82, 0x06b5: 0x8800,
-	0x06b6: 0x3f8a, 0x06b7: 0x3f92, 0x06b8: 0x8800, 0x06b9: 0x3f9a, 0x06ba: 0x3fa2, 0x06bb: 0x8800,
-	0x06bc: 0x3faa, 0x06bd: 0x3fb2,
-	// Block 0x1b, offset 0x6c0
-	0x06d4: 0x3eea,
-	0x06d9: 0x8608, 0x06da: 0x8608, 0x06dd: 0x8800,
-	0x06de: 0x3fba,
-	0x06e6: 0x8800,
-	0x06eb: 0x8800, 0x06ec: 0x3fca, 0x06ed: 0x8800, 0x06ee: 0x3fd2, 0x06ef: 0x8800,
-	0x06f0: 0x3fda, 0x06f1: 0x8800, 0x06f2: 0x3fe2, 0x06f3: 0x8800, 0x06f4: 0x3fea, 0x06f5: 0x8800,
-	0x06f6: 0x3ff2, 0x06f7: 0x8800, 0x06f8: 0x3ffa, 0x06f9: 0x8800, 0x06fa: 0x4002, 0x06fb: 0x8800,
-	0x06fc: 0x400a, 0x06fd: 0x8800, 0x06fe: 0x4012, 0x06ff: 0x8800,
-	// Block 0x1c, offset 0x700
-	0x0700: 0x401a, 0x0701: 0x8800, 0x0702: 0x4022, 0x0704: 0x8800, 0x0705: 0x402a,
-	0x0706: 0x8800, 0x0707: 0x4032, 0x0708: 0x8800, 0x0709: 0x403a,
-	0x070f: 0x8800, 0x0710: 0x4042, 0x0711: 0x404a,
-	0x0712: 0x8800, 0x0713: 0x4052, 0x0714: 0x405a, 0x0715: 0x8800, 0x0716: 0x4062, 0x0717: 0x406a,
-	0x0718: 0x8800, 0x0719: 0x4072, 0x071a: 0x407a, 0x071b: 0x8800, 0x071c: 0x4082, 0x071d: 0x408a,
-	0x072f: 0x8800,
-	0x0730: 0x8800, 0x0731: 0x8800, 0x0732: 0x8800, 0x0734: 0x3fc2,
-	0x0737: 0x4092, 0x0738: 0x409a, 0x0739: 0x40a2, 0x073a: 0x40aa,
-	0x073d: 0x8800, 0x073e: 0x40b2,
-	// Block 0x1d, offset 0x740
-	0x0740: 0x13e9, 0x0741: 0x0d6d, 0x0742: 0x1445, 0x0743: 0x1411, 0x0744: 0x0ec9, 0x0745: 0x075d,
-	0x0746: 0x0951, 0x0747: 0x1699, 0x0748: 0x1699, 0x0749: 0x0a7d, 0x074a: 0x14cd, 0x074b: 0x09b5,
-	0x074c: 0x0a79, 0x074d: 0x0c61, 0x074e: 0x1041, 0x074f: 0x11d1, 0x0750: 0x1309, 0x0751: 0x1345,
-	0x0752: 0x1379, 0x0753: 0x148d, 0x0754: 0x0de5, 0x0755: 0x0e71, 0x0756: 0x0f1d, 0x0757: 0x0fb5,
-	0x0758: 0x12d1, 0x0759: 0x14b5, 0x075a: 0x15e1, 0x075b: 0x0781, 0x075c: 0x0925, 0x075d: 0x0df9,
-	0x075e: 0x0f41, 0x075f: 0x1305, 0x0760: 0x1631, 0x0761: 0x0b25, 0x0762: 0x0ee9, 0x0763: 0x12f5,
-	0x0764: 0x1389, 0x0765: 0x0c95, 0x0766: 0x122d, 0x0767: 0x1351, 0x0768: 0x0b91, 0x0769: 0x0d81,
-	0x076a: 0x0e89, 0x076b: 0x0f8d, 0x076c: 0x1499, 0x076d: 0x07c1, 0x076e: 0x0859, 0x076f: 0x08c5,
-	0x0770: 0x0cfd, 0x0771: 0x0df1, 0x0772: 0x0f3d, 0x0773: 0x1061, 0x0774: 0x11e9, 0x0775: 0x12fd,
-	0x0776: 0x1315, 0x0777: 0x1439, 0x0778: 0x155d, 0x0779: 0x1611, 0x077a: 0x162d, 0x077b: 0x109d,
-	0x077c: 0x10dd, 0x077d: 0x1195, 0x077e: 0x12b5, 0x077f: 0x14e9,
-	// Block 0x1e, offset 0x780
-	0x0780: 0x1639, 0x0781: 0x13bd, 0x0782: 0x0a39, 0x0783: 0x0bad, 0x0784: 0x114d, 0x0785: 0x120d,
-	0x0786: 0x0f71, 0x0787: 0x10a5, 0x0788: 0x1409, 0x0789: 0x1555, 0x078a: 0x0a35, 0x078b: 0x0b01,
-	0x078c: 0x0de9, 0x078d: 0x0e9d, 0x078e: 0x0ed1, 0x078f: 0x1185, 0x0790: 0x11ad, 0x0791: 0x1515,
-	0x0792: 0x08c1, 0x0793: 0x1219, 0x0794: 0x0865, 0x0795: 0x0861, 0x0796: 0x1109, 0x0797: 0x1199,
-	0x0798: 0x12cd, 0x0799: 0x151d, 0x079a: 0x13d9, 0x079b: 0x0c99, 0x079c: 0x0de5, 0x079d: 0x13c9,
-	0x079e: 0x0769, 0x079f: 0x0ad5, 0x07a0: 0x0c05, 0x07a1: 0x0fa1, 0x07a2: 0x1021, 0x07a3: 0x08e5,
-	0x07a4: 0x10ad, 0x07a5: 0x07d1, 0x07a6: 0x0be9, 0x07a7: 0x0749, 0x07a8: 0x0e5d, 0x07a9: 0x0d15,
-	0x07aa: 0x1181, 0x07ab: 0x0939, 0x07ac: 0x0a25, 0x07ad: 0x106d, 0x07ae: 0x12d5, 0x07af: 0x13ad,
-	0x07b0: 0x0e29, 0x07b1: 0x1469, 0x07b2: 0x0e55, 0x07b3: 0x0ca9, 0x07b4: 0x128d, 0x07b5: 0x0cc9,
-	0x07b6: 0x101d, 0x07b7: 0x079d, 0x07b8: 0x0819, 0x07b9: 0x085d, 0x07ba: 0x0dc5, 0x07bb: 0x116d,
-	0x07bc: 0x1265, 0x07bd: 0x13b9, 0x07be: 0x14c9, 0x07bf: 0x08cd,
-	// Block 0x1f, offset 0x7c0
-	0x07c0: 0x0981, 0x07c1: 0x0a89, 0x07c2: 0x0ba1, 0x07c3: 0x0d31, 0x07c4: 0x0eed, 0x07c5: 0x10b1,
-	0x07c6: 0x1505, 0x07c7: 0x15e9, 0x07c8: 0x163d, 0x07c9: 0x1655, 0x07ca: 0x08a9, 0x07cb: 0x0d65,
-	0x07cc: 0x0e15, 0x07cd: 0x145d, 0x07ce: 0x0b6d, 0x07cf: 0x0c49, 0x07d0: 0x0c65, 0x07d1: 0x0cf5,
-	0x07d2: 0x0edd, 0x07d3: 0x0f29, 0x07d4: 0x0fd9, 0x07d5: 0x10fd, 0x07d6: 0x11a1, 0x07d7: 0x1205,
-	0x07d8: 0x144d, 0x07d9: 0x12dd, 0x07da: 0x1475, 0x07db: 0x14ed, 0x07dc: 0x0881, 0x07dd: 0x08ad,
-	0x07de: 0x0995, 0x07df: 0x0f19, 0x07e0: 0x1365, 0x07e1: 0x13ad, 0x07e2: 0x0b8d, 0x07e3: 0x0bfd,
-	0x07e4: 0x0cc1, 0x07e5: 0x0e21, 0x07e6: 0x1149, 0x07e7: 0x0f95, 0x07e8: 0x07ad, 0x07e9: 0x09f1,
-	0x07ea: 0x0ad5, 0x07eb: 0x0b39, 0x07ec: 0x0c09, 0x07ed: 0x0fb1, 0x07ee: 0x0fcd, 0x07ef: 0x11dd,
-	0x07f0: 0x11fd, 0x07f1: 0x14d1, 0x07f2: 0x1551, 0x07f3: 0x1561, 0x07f4: 0x159d, 0x07f5: 0x07c5,
-	0x07f6: 0x10f1, 0x07f7: 0x14bd, 0x07f8: 0x1539, 0x07f9: 0x0c21, 0x07fa: 0x0789, 0x07fb: 0x07e9,
-	0x07fc: 0x0ad9, 0x07fd: 0x0af9, 0x07fe: 0x0d21, 0x07ff: 0x0de5,
-	// Block 0x20, offset 0x800
-	0x0800: 0x0f35, 0x0801: 0x103d, 0x0802: 0x12e9, 0x0803: 0x1489, 0x0804: 0x1691, 0x0805: 0x0d55,
-	0x0806: 0x1511, 0x0807: 0x08a5, 0x0808: 0x0da1, 0x0809: 0x0dad, 0x080a: 0x0e81, 0x080b: 0x0eb9,
-	0x080c: 0x0fbd, 0x080d: 0x1019, 0x080e: 0x1099, 0x080f: 0x117d, 0x0810: 0x15a9, 0x0811: 0x0821,
-	0x0812: 0x0c75, 0x0813: 0x1521, 0x0814: 0x07d9, 0x0815: 0x0b1d, 0x0816: 0x0ea1, 0x0817: 0x1451,
-	0x0818: 0x0bd9, 0x0819: 0x0c29, 0x081a: 0x0db5, 0x081b: 0x0fa1, 0x081c: 0x1529, 0x081d: 0x0889,
-	0x081e: 0x0971, 0x081f: 0x0b09, 0x0820: 0x0d45, 0x0821: 0x0d91, 0x0822: 0x0dd1, 0x0823: 0x0e65,
-	0x0824: 0x0fb9, 0x0825: 0x102d, 0x0826: 0x11c9, 0x0827: 0x1369, 0x0828: 0x1375, 0x0829: 0x14c5,
-	0x082a: 0x1545, 0x082b: 0x08f5, 0x082c: 0x0ebd, 0x082d: 0x0975, 0x082e: 0x0f39, 0x082f: 0x0fdd,
-	0x0830: 0x12f9, 0x0831: 0x152d, 0x0832: 0x1619, 0x0833: 0x1641, 0x0834: 0x0da9, 0x0835: 0x0e99,
-	0x0836: 0x1235, 0x0837: 0x1129, 0x0838: 0x1135, 0x0839: 0x1159, 0x083a: 0x0f89, 0x083b: 0x0f11,
-	0x083c: 0x13d5, 0x083d: 0x07a5, 0x083e: 0x129d, 0x083f: 0x088d,
-	// Block 0x21, offset 0x840
-	0x0840: 0x087d, 0x0841: 0x0b7d, 0x0842: 0x0c9d, 0x0843: 0x1165, 0x0844: 0x0ac5, 0x0845: 0x0e75,
-	0x0846: 0x0d61, 0x0847: 0x1459, 0x0848: 0x1359, 0x0849: 0x1519, 0x084a: 0x1395, 0x084b: 0x0b99,
-	0x084c: 0x07f9, 0x084d: 0x09cd, 0x0850: 0x0a21,
-	0x0852: 0x0d51, 0x0855: 0x0869, 0x0856: 0x0f91, 0x0857: 0x1055,
-	0x0858: 0x10b9, 0x0859: 0x10d5, 0x085a: 0x10d9, 0x085b: 0x10ed, 0x085c: 0x1569, 0x085d: 0x115d,
-	0x085e: 0x11e1, 0x0860: 0x1301, 0x0862: 0x13c5,
-	0x0865: 0x1479, 0x0866: 0x14a5,
-	0x086a: 0x15bd, 0x086b: 0x15c1, 0x086c: 0x15c5, 0x086d: 0x1629, 0x086e: 0x149d, 0x086f: 0x1535,
-	0x0870: 0x07c9, 0x0871: 0x07ed, 0x0872: 0x0801, 0x0873: 0x08bd, 0x0874: 0x08c9, 0x0875: 0x0909,
-	0x0876: 0x09bd, 0x0877: 0x09d9, 0x0878: 0x09e1, 0x0879: 0x0a1d, 0x087a: 0x0a29, 0x087b: 0x0b05,
-	0x087c: 0x0b0d, 0x087d: 0x0c15, 0x087e: 0x0c3d, 0x087f: 0x0c45,
-	// Block 0x22, offset 0x880
-	0x0880: 0x0c5d, 0x0881: 0x0d09, 0x0882: 0x0d39, 0x0883: 0x0d59, 0x0884: 0x0dc9, 0x0885: 0x0e8d,
-	0x0886: 0x0ea9, 0x0887: 0x0ed9, 0x0888: 0x0f2d, 0x0889: 0x0f4d, 0x088a: 0x0fc1, 0x088b: 0x10a1,
-	0x088c: 0x10bd, 0x088d: 0x10c5, 0x088e: 0x10c1, 0x088f: 0x10c9, 0x0890: 0x10cd, 0x0891: 0x10d1,
-	0x0892: 0x10e5, 0x0893: 0x10e9, 0x0894: 0x110d, 0x0895: 0x1121, 0x0896: 0x113d, 0x0897: 0x11a1,
-	0x0898: 0x11a9, 0x0899: 0x11b1, 0x089a: 0x11c5, 0x089b: 0x11ed, 0x089c: 0x123d, 0x089d: 0x1271,
-	0x089e: 0x1271, 0x089f: 0x12d9, 0x08a0: 0x1381, 0x08a1: 0x1399, 0x08a2: 0x13cd, 0x08a3: 0x13d1,
-	0x08a4: 0x1415, 0x08a5: 0x1419, 0x08a6: 0x1471, 0x08a7: 0x1479, 0x08a8: 0x1549, 0x08a9: 0x158d,
-	0x08aa: 0x15a5, 0x08ab: 0x0c0d, 0x08ac: 0x1780, 0x08ad: 0x1255,
-	0x08b0: 0x0751, 0x08b1: 0x0855, 0x08b2: 0x0815, 0x08b3: 0x07bd, 0x08b4: 0x07fd, 0x08b5: 0x0829,
-	0x08b6: 0x08b9, 0x08b7: 0x08d5, 0x08b8: 0x09bd, 0x08b9: 0x09a9, 0x08ba: 0x09b9, 0x08bb: 0x09d5,
-	0x08bc: 0x0a21, 0x08bd: 0x0a31, 0x08be: 0x0a75, 0x08bf: 0x0a81,
-	// Block 0x23, offset 0x8c0
-	0x08c0: 0x0a9d, 0x08c1: 0x0aad, 0x08c2: 0x0b95, 0x08c3: 0x0b9d, 0x08c4: 0x0bcd, 0x08c5: 0x0bed,
-	0x08c6: 0x0c1d, 0x08c7: 0x0c35, 0x08c8: 0x0c25, 0x08c9: 0x0c45, 0x08ca: 0x0c39, 0x08cb: 0x0c5d,
-	0x08cc: 0x0c79, 0x08cd: 0x0cd1, 0x08ce: 0x0cdd, 0x08cf: 0x0ce5, 0x08d0: 0x0d0d, 0x08d1: 0x0d51,
-	0x08d2: 0x0d81, 0x08d3: 0x0d85, 0x08d4: 0x0d99, 0x08d5: 0x0e19, 0x08d6: 0x0e29, 0x08d7: 0x0e81,
-	0x08d8: 0x0ecd, 0x08d9: 0x0ec5, 0x08da: 0x0ed9, 0x08db: 0x0ef5, 0x08dc: 0x0f2d, 0x08dd: 0x1085,
-	0x08de: 0x0f51, 0x08df: 0x0f85, 0x08e0: 0x0f91, 0x08e1: 0x0fd1, 0x08e2: 0x0fed, 0x08e3: 0x1011,
-	0x08e4: 0x1035, 0x08e5: 0x1039, 0x08e6: 0x1055, 0x08e7: 0x1059, 0x08e8: 0x1069, 0x08e9: 0x107d,
-	0x08ea: 0x1079, 0x08eb: 0x10a9, 0x08ec: 0x1125, 0x08ed: 0x113d, 0x08ee: 0x1155, 0x08ef: 0x118d,
-	0x08f0: 0x11a1, 0x08f1: 0x11bd, 0x08f2: 0x11ed, 0x08f3: 0x12a1, 0x08f4: 0x12c9, 0x08f5: 0x133d,
-	0x08f6: 0x1385, 0x08f7: 0x1391, 0x08f8: 0x1399, 0x08f9: 0x13b1, 0x08fa: 0x13c5, 0x08fb: 0x13b5,
-	0x08fc: 0x13cd, 0x08fd: 0x13c9, 0x08fe: 0x13c1, 0x08ff: 0x13d1,
-	// Block 0x24, offset 0x900
-	0x0900: 0x13dd, 0x0901: 0x1419, 0x0902: 0x1455, 0x0903: 0x1485, 0x0904: 0x14b9, 0x0905: 0x14d9,
-	0x0906: 0x1525, 0x0907: 0x1549, 0x0908: 0x1569, 0x0909: 0x157d, 0x090a: 0x158d, 0x090b: 0x1599,
-	0x090c: 0x15a5, 0x090d: 0x15f9, 0x090e: 0x1699, 0x090f: 0x1717, 0x0910: 0x1712, 0x0911: 0x1744,
-	0x0912: 0x0679, 0x0913: 0x06a1, 0x0914: 0x06a5, 0x0915: 0x17c6, 0x0916: 0x17f3, 0x0917: 0x186b,
-	0x0918: 0x1685, 0x0919: 0x1695,
-	// Block 0x25, offset 0x940
-	0x0940: 0x076d, 0x0941: 0x0765, 0x0942: 0x0775, 0x0943: 0x16a9, 0x0944: 0x07b9, 0x0945: 0x07c9,
-	0x0946: 0x07cd, 0x0947: 0x07d5, 0x0948: 0x07dd, 0x0949: 0x07e1, 0x094a: 0x07ed, 0x094b: 0x07e5,
-	0x094c: 0x0625, 0x094d: 0x16bd, 0x094e: 0x0801, 0x094f: 0x0805, 0x0950: 0x0809, 0x0951: 0x0825,
-	0x0952: 0x16ae, 0x0953: 0x0629, 0x0954: 0x0811, 0x0955: 0x0831, 0x0956: 0x16b8, 0x0957: 0x0841,
-	0x0958: 0x0849, 0x0959: 0x07a9, 0x095a: 0x0851, 0x095b: 0x0855, 0x095c: 0x1893, 0x095d: 0x0871,
-	0x095e: 0x0879, 0x095f: 0x0631, 0x0960: 0x0891, 0x0961: 0x0895, 0x0962: 0x089d, 0x0963: 0x08a1,
-	0x0964: 0x0635, 0x0965: 0x08b9, 0x0966: 0x08bd, 0x0967: 0x08c9, 0x0968: 0x08d5, 0x0969: 0x08d9,
-	0x096a: 0x08dd, 0x096b: 0x08e5, 0x096c: 0x0905, 0x096d: 0x0909, 0x096e: 0x0911, 0x096f: 0x0921,
-	0x0970: 0x0929, 0x0971: 0x092d, 0x0972: 0x092d, 0x0973: 0x092d, 0x0974: 0x16cc, 0x0975: 0x0f05,
-	0x0976: 0x0941, 0x0977: 0x0949, 0x0978: 0x16d1, 0x0979: 0x0955, 0x097a: 0x095d, 0x097b: 0x0965,
-	0x097c: 0x098d, 0x097d: 0x0979, 0x097e: 0x0985, 0x097f: 0x0989,
-	// Block 0x26, offset 0x980
-	0x0980: 0x0991, 0x0981: 0x0999, 0x0982: 0x099d, 0x0983: 0x09a5, 0x0984: 0x09ad, 0x0985: 0x09b1,
-	0x0986: 0x09b1, 0x0987: 0x09b9, 0x0988: 0x09c1, 0x0989: 0x09c5, 0x098a: 0x09d1, 0x098b: 0x09f5,
-	0x098c: 0x09d9, 0x098d: 0x09f9, 0x098e: 0x09dd, 0x098f: 0x09e5, 0x0990: 0x087d, 0x0991: 0x0a41,
-	0x0992: 0x0a09, 0x0993: 0x0a0d, 0x0994: 0x0a11, 0x0995: 0x0a05, 0x0996: 0x0a19, 0x0997: 0x0a15,
-	0x0998: 0x0a2d, 0x0999: 0x16d6, 0x099a: 0x0a49, 0x099b: 0x0a4d, 0x099c: 0x0a55, 0x099d: 0x0a61,
-	0x099e: 0x0a69, 0x099f: 0x0a85, 0x09a0: 0x16db, 0x09a1: 0x16e0, 0x09a2: 0x0a91, 0x09a3: 0x0a95,
-	0x09a4: 0x0a99, 0x09a5: 0x0a8d, 0x09a6: 0x0aa1, 0x09a7: 0x0639, 0x09a8: 0x063d, 0x09a9: 0x0aa9,
-	0x09aa: 0x0ab1, 0x09ab: 0x0ab1, 0x09ac: 0x16e5, 0x09ad: 0x0acd, 0x09ae: 0x0ad1, 0x09af: 0x0ad5,
-	0x09b0: 0x0add, 0x09b1: 0x16ea, 0x09b2: 0x0ae5, 0x09b3: 0x0ae9, 0x09b4: 0x0bc1, 0x09b5: 0x0af1,
-	0x09b6: 0x0641, 0x09b7: 0x0afd, 0x09b8: 0x0b0d, 0x09b9: 0x0b19, 0x09ba: 0x0b15, 0x09bb: 0x16f4,
-	0x09bc: 0x0b21, 0x09bd: 0x16f9, 0x09be: 0x0b2d, 0x09bf: 0x0b29,
-	// Block 0x27, offset 0x9c0
-	0x09c0: 0x0b31, 0x09c1: 0x0b41, 0x09c2: 0x0b45, 0x09c3: 0x0645, 0x09c4: 0x0b55, 0x09c5: 0x0b5d,
-	0x09c6: 0x0b61, 0x09c7: 0x0b65, 0x09c8: 0x0649, 0x09c9: 0x16fe, 0x09ca: 0x064d, 0x09cb: 0x0b81,
-	0x09cc: 0x0b85, 0x09cd: 0x0b89, 0x09ce: 0x0b91, 0x09cf: 0x18c5, 0x09d0: 0x0ba9, 0x09d1: 0x1708,
-	0x09d2: 0x1708, 0x09d3: 0x1249, 0x09d4: 0x0bb9, 0x09d5: 0x0bb9, 0x09d6: 0x0651, 0x09d7: 0x172b,
-	0x09d8: 0x17fd, 0x09d9: 0x0bc9, 0x09da: 0x0bd1, 0x09db: 0x0655, 0x09dc: 0x0be5, 0x09dd: 0x0bf5,
-	0x09de: 0x0bf9, 0x09df: 0x0c01, 0x09e0: 0x0c11, 0x09e1: 0x065d, 0x09e2: 0x0659, 0x09e3: 0x0c15,
-	0x09e4: 0x170d, 0x09e5: 0x0c19, 0x09e6: 0x0c2d, 0x09e7: 0x0c31, 0x09e8: 0x0c35, 0x09e9: 0x0c31,
-	0x09ea: 0x0c41, 0x09eb: 0x0c45, 0x09ec: 0x0c55, 0x09ed: 0x0c4d, 0x09ee: 0x0c51, 0x09ef: 0x0c59,
-	0x09f0: 0x0c5d, 0x09f1: 0x0c61, 0x09f2: 0x0c6d, 0x09f3: 0x0c71, 0x09f4: 0x0c89, 0x09f5: 0x0c91,
-	0x09f6: 0x0ca1, 0x09f7: 0x0cb5, 0x09f8: 0x171c, 0x09f9: 0x0cb1, 0x09fa: 0x0ca5, 0x09fb: 0x0cbd,
-	0x09fc: 0x0cc5, 0x09fd: 0x0cd9, 0x09fe: 0x1721, 0x09ff: 0x0ce1,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x0cd5, 0x0a01: 0x0ccd, 0x0a02: 0x0661, 0x0a03: 0x0ce9, 0x0a04: 0x0cf1, 0x0a05: 0x0cf9,
-	0x0a06: 0x0ced, 0x0a07: 0x0665, 0x0a08: 0x0d09, 0x0a09: 0x0d11, 0x0a0a: 0x1726, 0x0a0b: 0x0d3d,
-	0x0a0c: 0x0d71, 0x0a0d: 0x0d4d, 0x0a0e: 0x0671, 0x0a0f: 0x0d59, 0x0a10: 0x066d, 0x0a11: 0x0669,
-	0x0a12: 0x0835, 0x0a13: 0x0839, 0x0a14: 0x0d75, 0x0a15: 0x0d5d, 0x0a16: 0x121d, 0x0a17: 0x06d5,
-	0x0a18: 0x0d81, 0x0a19: 0x0d85, 0x0a1a: 0x0d89, 0x0a1b: 0x0d9d, 0x0a1c: 0x0d95, 0x0a1d: 0x173f,
-	0x0a1e: 0x0675, 0x0a1f: 0x0db1, 0x0a20: 0x0da5, 0x0a21: 0x0dc1, 0x0a22: 0x0dc9, 0x0a23: 0x1749,
-	0x0a24: 0x0dcd, 0x0a25: 0x0db9, 0x0a26: 0x0dd5, 0x0a27: 0x0679, 0x0a28: 0x0dd9, 0x0a29: 0x0ddd,
-	0x0a2a: 0x0de1, 0x0a2b: 0x0ded, 0x0a2c: 0x174e, 0x0a2d: 0x0df5, 0x0a2e: 0x067d, 0x0a2f: 0x0e01,
-	0x0a30: 0x1753, 0x0a31: 0x0e05, 0x0a32: 0x0681, 0x0a33: 0x0e11, 0x0a34: 0x0e1d, 0x0a35: 0x0e29,
-	0x0a36: 0x0e2d, 0x0a37: 0x1758, 0x0a38: 0x16ef, 0x0a39: 0x175d, 0x0a3a: 0x0e4d, 0x0a3b: 0x1762,
-	0x0a3c: 0x0e59, 0x0a3d: 0x0e61, 0x0a3e: 0x0e51, 0x0a3f: 0x0e6d,
-	// Block 0x29, offset 0xa40
-	0x0a40: 0x0e7d, 0x0a41: 0x0e8d, 0x0a42: 0x0e81, 0x0a43: 0x0e85, 0x0a44: 0x0e91, 0x0a45: 0x0e95,
-	0x0a46: 0x1767, 0x0a47: 0x0e79, 0x0a48: 0x0ead, 0x0a49: 0x0eb1, 0x0a4a: 0x0685, 0x0a4b: 0x0ec5,
-	0x0a4c: 0x0ec1, 0x0a4d: 0x176c, 0x0a4e: 0x0ea5, 0x0a4f: 0x0ee1, 0x0a50: 0x1771, 0x0a51: 0x1776,
-	0x0a52: 0x0ee5, 0x0a53: 0x0ef9, 0x0a54: 0x0ef5, 0x0a55: 0x0ef1, 0x0a56: 0x0689, 0x0a57: 0x0efd,
-	0x0a58: 0x0f0d, 0x0a59: 0x0f09, 0x0a5a: 0x0f15, 0x0a5b: 0x16b3, 0x0a5c: 0x0f25, 0x0a5d: 0x177b,
-	0x0a5e: 0x0f31, 0x0a5f: 0x1785, 0x0a60: 0x0f45, 0x0a61: 0x0f51, 0x0a62: 0x0f65, 0x0a63: 0x178a,
-	0x0a64: 0x0f79, 0x0a65: 0x0f7d, 0x0a66: 0x178f, 0x0a67: 0x1794, 0x0a68: 0x0f99, 0x0a69: 0x0fa9,
-	0x0a6a: 0x068d, 0x0a6b: 0x0fad, 0x0a6c: 0x0691, 0x0a6d: 0x0691, 0x0a6e: 0x0fc5, 0x0a6f: 0x0fc9,
-	0x0a70: 0x0fd1, 0x0a71: 0x0fd5, 0x0a72: 0x0fe1, 0x0a73: 0x0695, 0x0a74: 0x0ff9, 0x0a75: 0x1799,
-	0x0a76: 0x1015, 0x0a77: 0x179e, 0x0a78: 0x1021, 0x0a79: 0x1703, 0x0a7a: 0x1031, 0x0a7b: 0x17a3,
-	0x0a7c: 0x17a8, 0x0a7d: 0x17ad, 0x0a7e: 0x0699, 0x0a7f: 0x069d,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x1069, 0x0a81: 0x17b7, 0x0a82: 0x17b2, 0x0a83: 0x17bc, 0x0a84: 0x17c1, 0x0a85: 0x1071,
-	0x0a86: 0x1075, 0x0a87: 0x1075, 0x0a88: 0x107d, 0x0a89: 0x06a5, 0x0a8a: 0x1081, 0x0a8b: 0x06a9,
-	0x0a8c: 0x06ad, 0x0a8d: 0x17cb, 0x0a8e: 0x1095, 0x0a8f: 0x109d, 0x0a90: 0x10a9, 0x0a91: 0x06b1,
-	0x0a92: 0x17d0, 0x0a93: 0x10cd, 0x0a94: 0x17d5, 0x0a95: 0x17da, 0x0a96: 0x10ed, 0x0a97: 0x1105,
-	0x0a98: 0x06b5, 0x0a99: 0x110d, 0x0a9a: 0x1111, 0x0a9b: 0x1115, 0x0a9c: 0x17df, 0x0a9d: 0x17e4,
-	0x0a9e: 0x17e4, 0x0a9f: 0x112d, 0x0aa0: 0x06b9, 0x0aa1: 0x17e9, 0x0aa2: 0x1141, 0x0aa3: 0x1145,
-	0x0aa4: 0x06bd, 0x0aa5: 0x17ee, 0x0aa6: 0x1161, 0x0aa7: 0x06c1, 0x0aa8: 0x1171, 0x0aa9: 0x1169,
-	0x0aaa: 0x1179, 0x0aab: 0x17f8, 0x0aac: 0x1191, 0x0aad: 0x06c5, 0x0aae: 0x119d, 0x0aaf: 0x11a5,
-	0x0ab0: 0x11b5, 0x0ab1: 0x06c9, 0x0ab2: 0x1802, 0x0ab3: 0x1807, 0x0ab4: 0x06cd, 0x0ab5: 0x180c,
-	0x0ab6: 0x11cd, 0x0ab7: 0x1811, 0x0ab8: 0x11d9, 0x0ab9: 0x11e5, 0x0aba: 0x11ed, 0x0abb: 0x1816,
-	0x0abc: 0x181b, 0x0abd: 0x1201, 0x0abe: 0x1820, 0x0abf: 0x1209,
-	// Block 0x2b, offset 0xac0
-	0x0ac0: 0x1730, 0x0ac1: 0x06d1, 0x0ac2: 0x1221, 0x0ac3: 0x1225, 0x0ac4: 0x06d9, 0x0ac5: 0x1229,
-	0x0ac6: 0x0aa5, 0x0ac7: 0x1825, 0x0ac8: 0x182a, 0x0ac9: 0x1735, 0x0aca: 0x173a, 0x0acb: 0x1249,
-	0x0acc: 0x124d, 0x0acd: 0x1465, 0x0ace: 0x06dd, 0x0acf: 0x1279, 0x0ad0: 0x1275, 0x0ad1: 0x127d,
-	0x0ad2: 0x08b1, 0x0ad3: 0x1281, 0x0ad4: 0x1285, 0x0ad5: 0x1289, 0x0ad6: 0x1291, 0x0ad7: 0x182f,
-	0x0ad8: 0x128d, 0x0ad9: 0x1295, 0x0ada: 0x12a9, 0x0adb: 0x12ad, 0x0adc: 0x1299, 0x0add: 0x12b1,
-	0x0ade: 0x12c5, 0x0adf: 0x12d9, 0x0ae0: 0x12a5, 0x0ae1: 0x12b9, 0x0ae2: 0x12bd, 0x0ae3: 0x12c1,
-	0x0ae4: 0x1834, 0x0ae5: 0x183e, 0x0ae6: 0x1839, 0x0ae7: 0x06e1, 0x0ae8: 0x12e1, 0x0ae9: 0x12e5,
-	0x0aea: 0x12ed, 0x0aeb: 0x1852, 0x0aec: 0x12f1, 0x0aed: 0x1843, 0x0aee: 0x06e5, 0x0aef: 0x06e9,
-	0x0af0: 0x1848, 0x0af1: 0x184d, 0x0af2: 0x06ed, 0x0af3: 0x1311, 0x0af4: 0x1315, 0x0af5: 0x1319,
-	0x0af6: 0x131d, 0x0af7: 0x1329, 0x0af8: 0x1325, 0x0af9: 0x1331, 0x0afa: 0x132d, 0x0afb: 0x133d,
-	0x0afc: 0x1335, 0x0afd: 0x1339, 0x0afe: 0x1341, 0x0aff: 0x06f1,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x1349, 0x0b01: 0x134d, 0x0b02: 0x06f5, 0x0b03: 0x135d, 0x0b04: 0x1361, 0x0b05: 0x1857,
-	0x0b06: 0x136d, 0x0b07: 0x1371, 0x0b08: 0x06f9, 0x0b09: 0x137d, 0x0b0a: 0x062d, 0x0b0b: 0x185c,
-	0x0b0c: 0x1861, 0x0b0d: 0x06fd, 0x0b0e: 0x0701, 0x0b0f: 0x13a9, 0x0b10: 0x13c1, 0x0b11: 0x13dd,
-	0x0b12: 0x13ed, 0x0b13: 0x1866, 0x0b14: 0x1401, 0x0b15: 0x1405, 0x0b16: 0x141d, 0x0b17: 0x1429,
-	0x0b18: 0x1870, 0x0b19: 0x16c2, 0x0b1a: 0x1435, 0x0b1b: 0x1431, 0x0b1c: 0x143d, 0x0b1d: 0x16c7,
-	0x0b1e: 0x1449, 0x0b1f: 0x1455, 0x0b20: 0x1875, 0x0b21: 0x187a, 0x0b22: 0x1495, 0x0b23: 0x14a1,
-	0x0b24: 0x14a9, 0x0b25: 0x187f, 0x0b26: 0x14ad, 0x0b27: 0x14d5, 0x0b28: 0x14e1, 0x0b29: 0x14e5,
-	0x0b2a: 0x14dd, 0x0b2b: 0x14f1, 0x0b2c: 0x14f5, 0x0b2d: 0x1884, 0x0b2e: 0x1501, 0x0b2f: 0x0705,
-	0x0b30: 0x1509, 0x0b31: 0x1889, 0x0b32: 0x0709, 0x0b33: 0x1541, 0x0b34: 0x0b35, 0x0b35: 0x1559,
-	0x0b36: 0x188e, 0x0b37: 0x1898, 0x0b38: 0x070d, 0x0b39: 0x0711, 0x0b3a: 0x1581, 0x0b3b: 0x189d,
-	0x0b3c: 0x0715, 0x0b3d: 0x18a2, 0x0b3e: 0x1599, 0x0b3f: 0x1599,
-	// Block 0x2d, offset 0xb40
-	0x0b40: 0x15a1, 0x0b41: 0x18a7, 0x0b42: 0x15b9, 0x0b43: 0x0719, 0x0b44: 0x15c9, 0x0b45: 0x15d5,
-	0x0b46: 0x15dd, 0x0b47: 0x15e5, 0x0b48: 0x071d, 0x0b49: 0x18ac, 0x0b4a: 0x15f9, 0x0b4b: 0x1615,
-	0x0b4c: 0x1621, 0x0b4d: 0x0721, 0x0b4e: 0x0725, 0x0b4f: 0x1625, 0x0b50: 0x18b1, 0x0b51: 0x0729,
-	0x0b52: 0x18b6, 0x0b53: 0x18bb, 0x0b54: 0x18c0, 0x0b55: 0x1649, 0x0b56: 0x072d, 0x0b57: 0x165d,
-	0x0b58: 0x1665, 0x0b59: 0x1669, 0x0b5a: 0x1671, 0x0b5b: 0x1679, 0x0b5c: 0x1681, 0x0b5d: 0x18ca,
-}
-
-// nfcSparseOffset: 98 entries, 196 bytes
-var nfcSparseOffset = []uint16{0x0, 0x2, 0x6, 0x8, 0x13, 0x23, 0x25, 0x2a, 0x35, 0x44, 0x51, 0x59, 0x5d, 0x62, 0x64, 0x73, 0x7b, 0x82, 0x85, 0x8d, 0x91, 0x95, 0x97, 0x99, 0xa2, 0xa6, 0xad, 0xb2, 0xb5, 0xbf, 0xc1, 0xc8, 0xd0, 0xd3, 0xd5, 0xd7, 0xd9, 0xde, 0xed, 0xf9, 0xfb, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10b, 0x10d, 0x110, 0x113, 0x115, 0x118, 0x11b, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x139, 0x148, 0x14a, 0x158, 0x15b, 0x161, 0x167, 0x172, 0x176, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x186, 0x189, 0x18b, 0x18d, 0x18f, 0x192, 0x194, 0x196, 0x198, 0x19a, 0x1a0, 0x1a3, 0x1a5, 0x1a7, 0x1a9, 0x1b7, 0x1c0, 0x1c2, 0x1c4, 0x1ca, 0x1d2, 0x1d9, 0x1dc, 0x1e9, 0x1f3, 0x1f5}
-
-// nfcSparseValues: 503 entries, 2012 bytes
-var nfcSparseValues = [503]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	// Block 0x1, offset 0x2
-	{value: 0x0091, lo: 0x03},
-	{value: 0x46c8, lo: 0xa0, hi: 0xa1},
-	{value: 0x46fa, lo: 0xaf, hi: 0xb0},
-	{value: 0x8800, lo: 0xb7, hi: 0xb7},
-	// Block 0x2, offset 0x3
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	// Block 0x3, offset 0x4
-	{value: 0x0006, lo: 0x0a},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x85, hi: 0x85},
-	{value: 0x8800, lo: 0x89, hi: 0x89},
-	{value: 0x4826, lo: 0x8a, hi: 0x8a},
-	{value: 0x4844, lo: 0x8b, hi: 0x8b},
-	{value: 0x36b1, lo: 0x8c, hi: 0x8c},
-	{value: 0x36c9, lo: 0x8d, hi: 0x8d},
-	{value: 0x485c, lo: 0x8e, hi: 0x8e},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x36e7, lo: 0x93, hi: 0x94},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x0f},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x8800, lo: 0x8d, hi: 0x8d},
-	{value: 0x378f, lo: 0x90, hi: 0x90},
-	{value: 0x379b, lo: 0x91, hi: 0x91},
-	{value: 0x3789, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x96, hi: 0x96},
-	{value: 0x3801, lo: 0x97, hi: 0x97},
-	{value: 0x37cb, lo: 0x9c, hi: 0x9c},
-	{value: 0x37b3, lo: 0x9d, hi: 0x9d},
-	{value: 0x37dd, lo: 0x9e, hi: 0x9e},
-	{value: 0x8800, lo: 0xb4, hi: 0xb5},
-	{value: 0x3807, lo: 0xb6, hi: 0xb6},
-	{value: 0x380d, lo: 0xb7, hi: 0xb7},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x83, hi: 0x87},
-	// Block 0x6, offset 0x7
-	{value: 0x0001, lo: 0x04},
-	{value: 0x8018, lo: 0x81, hi: 0x82},
-	{value: 0x80e6, lo: 0x84, hi: 0x84},
-	{value: 0x80dc, lo: 0x85, hi: 0x85},
-	{value: 0x8012, lo: 0x87, hi: 0x87},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x0a},
-	{value: 0x80e6, lo: 0x90, hi: 0x97},
-	{value: 0x801e, lo: 0x98, hi: 0x98},
-	{value: 0x801f, lo: 0x99, hi: 0x99},
-	{value: 0x8020, lo: 0x9a, hi: 0x9a},
-	{value: 0x382b, lo: 0xa2, hi: 0xa2},
-	{value: 0x3831, lo: 0xa3, hi: 0xa3},
-	{value: 0x383d, lo: 0xa4, hi: 0xa4},
-	{value: 0x3837, lo: 0xa5, hi: 0xa5},
-	{value: 0x3843, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xa7, hi: 0xa7},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x3855, lo: 0x80, hi: 0x80},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x3849, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x384f, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x95, hi: 0x95},
-	{value: 0x80e6, lo: 0x96, hi: 0x9c},
-	{value: 0x80e6, lo: 0x9f, hi: 0xa2},
-	{value: 0x80dc, lo: 0xa3, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa4},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e6, lo: 0xab, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x8024, lo: 0x91, hi: 0x91},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80dc, lo: 0xb1, hi: 0xb1},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb5, hi: 0xb6},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb9},
-	{value: 0x80e6, lo: 0xba, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbc},
-	{value: 0x80e6, lo: 0xbd, hi: 0xbd},
-	{value: 0x80dc, lo: 0xbe, hi: 0xbe},
-	{value: 0x80e6, lo: 0xbf, hi: 0xbf},
-	// Block 0xa, offset 0xb
-	{value: 0x000a, lo: 0x07},
-	{value: 0x80e6, lo: 0x80, hi: 0x80},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x83},
-	{value: 0x80dc, lo: 0x84, hi: 0x85},
-	{value: 0x80dc, lo: 0x86, hi: 0x87},
-	{value: 0x80dc, lo: 0x88, hi: 0x89},
-	{value: 0x80e6, lo: 0x8a, hi: 0x8a},
-	// Block 0xb, offset 0xc
-	{value: 0x0000, lo: 0x03},
-	{value: 0x80e6, lo: 0xab, hi: 0xb1},
-	{value: 0x80dc, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb3},
-	// Block 0xc, offset 0xd
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80e6, lo: 0x96, hi: 0x99},
-	{value: 0x80e6, lo: 0x9b, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa5, hi: 0xa7},
-	{value: 0x80e6, lo: 0xa9, hi: 0xad},
-	// Block 0xd, offset 0xe
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x99, hi: 0x9b},
-	// Block 0xe, offset 0xf
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa5},
-	{value: 0x80dc, lo: 0xa6, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xa9, hi: 0xa9},
-	{value: 0x80e6, lo: 0xaa, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xaf},
-	{value: 0x801b, lo: 0xb0, hi: 0xb0},
-	{value: 0x801c, lo: 0xb1, hi: 0xb1},
-	{value: 0x801d, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb6, hi: 0xb6},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80dc, lo: 0xb9, hi: 0xba},
-	{value: 0x80e6, lo: 0xbb, hi: 0xbe},
-	// Block 0xf, offset 0x10
-	{value: 0x0000, lo: 0x07},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	{value: 0x3ec2, lo: 0xa9, hi: 0xa9},
-	{value: 0x8800, lo: 0xb0, hi: 0xb0},
-	{value: 0x3eca, lo: 0xb1, hi: 0xb1},
-	{value: 0x8800, lo: 0xb3, hi: 0xb3},
-	{value: 0x3ed2, lo: 0xb4, hi: 0xb4},
-	{value: 0x8607, lo: 0xbc, hi: 0xbc},
-	// Block 0x10, offset 0x11
-	{value: 0x0008, lo: 0x06},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x91, hi: 0x91},
-	{value: 0x80dc, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x93, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x94},
-	{value: 0x4502, lo: 0x98, hi: 0x9f},
-	// Block 0x11, offset 0x12
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x12, offset 0x13
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18cf, lo: 0x8b, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	{value: 0x4542, lo: 0x9c, hi: 0x9c},
-	{value: 0x454a, lo: 0x9d, hi: 0x9d},
-	{value: 0x4552, lo: 0x9f, hi: 0x9f},
-	// Block 0x13, offset 0x14
-	{value: 0x0000, lo: 0x03},
-	{value: 0x457a, lo: 0xb3, hi: 0xb3},
-	{value: 0x4582, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x14, offset 0x15
-	{value: 0x0008, lo: 0x03},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x455a, lo: 0x99, hi: 0x9b},
-	{value: 0x4572, lo: 0x9e, hi: 0x9e},
-	// Block 0x15, offset 0x16
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x16, offset 0x17
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	// Block 0x17, offset 0x18
-	{value: 0x0000, lo: 0x08},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18e4, lo: 0x88, hi: 0x88},
-	{value: 0x18dd, lo: 0x8b, hi: 0x8b},
-	{value: 0x18eb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x96, hi: 0x97},
-	{value: 0x458a, lo: 0x9c, hi: 0x9c},
-	{value: 0x4592, lo: 0x9d, hi: 0x9d},
-	// Block 0x18, offset 0x19
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x18f2, lo: 0x94, hi: 0x94},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x19, offset 0x1a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x18f9, lo: 0x8a, hi: 0x8a},
-	{value: 0x1907, lo: 0x8b, hi: 0x8b},
-	{value: 0x1900, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1a, offset 0x1b
-	{value: 0x0607, lo: 0x04},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x3eda, lo: 0x88, hi: 0x88},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8054, lo: 0x95, hi: 0x96},
-	// Block 0x1b, offset 0x1c
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8800, lo: 0xbf, hi: 0xbf},
-	// Block 0x1c, offset 0x1d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x190e, lo: 0x80, hi: 0x80},
-	{value: 0x8600, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x1915, lo: 0x87, hi: 0x87},
-	{value: 0x191c, lo: 0x88, hi: 0x88},
-	{value: 0x2e66, lo: 0x8a, hi: 0x8a},
-	{value: 0x19a5, lo: 0x8b, hi: 0x8b},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x95, hi: 0x96},
-	// Block 0x1d, offset 0x1e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x1e, offset 0x1f
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x1923, lo: 0x8a, hi: 0x8a},
-	{value: 0x1931, lo: 0x8b, hi: 0x8b},
-	{value: 0x192a, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1f, offset 0x20
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8609, lo: 0x8a, hi: 0x8a},
-	{value: 0x8600, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x3ee2, lo: 0x9a, hi: 0x9a},
-	{value: 0x2e6d, lo: 0x9c, hi: 0x9d},
-	{value: 0x1938, lo: 0x9e, hi: 0x9e},
-	{value: 0x8600, lo: 0x9f, hi: 0x9f},
-	// Block 0x20, offset 0x21
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8067, lo: 0xb8, hi: 0xb9},
-	{value: 0x8009, lo: 0xba, hi: 0xba},
-	// Block 0x21, offset 0x22
-	{value: 0x0000, lo: 0x01},
-	{value: 0x806b, lo: 0x88, hi: 0x8b},
-	// Block 0x22, offset 0x23
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8076, lo: 0xb8, hi: 0xb9},
-	// Block 0x23, offset 0x24
-	{value: 0x0000, lo: 0x01},
-	{value: 0x807a, lo: 0x88, hi: 0x8b},
-	// Block 0x24, offset 0x25
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80dc, lo: 0x98, hi: 0x99},
-	{value: 0x80dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb7},
-	{value: 0x80d8, lo: 0xb9, hi: 0xb9},
-	// Block 0x25, offset 0x26
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x2786, lo: 0x83, hi: 0x83},
-	{value: 0x278d, lo: 0x8d, hi: 0x8d},
-	{value: 0x2794, lo: 0x92, hi: 0x92},
-	{value: 0x279b, lo: 0x97, hi: 0x97},
-	{value: 0x27a2, lo: 0x9c, hi: 0x9c},
-	{value: 0x277f, lo: 0xa9, hi: 0xa9},
-	{value: 0x8081, lo: 0xb1, hi: 0xb1},
-	{value: 0x8082, lo: 0xb2, hi: 0xb2},
-	{value: 0x49b6, lo: 0xb3, hi: 0xb3},
-	{value: 0x8084, lo: 0xb4, hi: 0xb4},
-	{value: 0x49bf, lo: 0xb5, hi: 0xb5},
-	{value: 0x459a, lo: 0xb6, hi: 0xb6},
-	{value: 0x45a2, lo: 0xb8, hi: 0xb8},
-	{value: 0x8082, lo: 0xba, hi: 0xbd},
-	// Block 0x26, offset 0x27
-	{value: 0x0000, lo: 0x0b},
-	{value: 0x8082, lo: 0x80, hi: 0x80},
-	{value: 0x49c8, lo: 0x81, hi: 0x81},
-	{value: 0x80e6, lo: 0x82, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0x86, hi: 0x87},
-	{value: 0x27b0, lo: 0x93, hi: 0x93},
-	{value: 0x27b7, lo: 0x9d, hi: 0x9d},
-	{value: 0x27be, lo: 0xa2, hi: 0xa2},
-	{value: 0x27c5, lo: 0xa7, hi: 0xa7},
-	{value: 0x27cc, lo: 0xac, hi: 0xac},
-	{value: 0x27a9, lo: 0xb9, hi: 0xb9},
-	// Block 0x27, offset 0x28
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x86, hi: 0x86},
-	// Block 0x28, offset 0x29
-	{value: 0x0000, lo: 0x05},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x193f, lo: 0xa6, hi: 0xa6},
-	{value: 0x8600, lo: 0xae, hi: 0xae},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x29, offset 0x2a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	// Block 0x2a, offset 0x2b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x80, hi: 0x92},
-	// Block 0x2b, offset 0x2c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8e00, lo: 0xa1, hi: 0xb5},
-	// Block 0x2c, offset 0x2d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xa8, hi: 0xbf},
-	// Block 0x2d, offset 0x2e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0x80, hi: 0x82},
-	// Block 0x2e, offset 0x2f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9f},
-	// Block 0x2f, offset 0x30
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x94, hi: 0x94},
-	{value: 0x8009, lo: 0xb4, hi: 0xb4},
-	// Block 0x30, offset 0x31
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9d},
-	// Block 0x31, offset 0x32
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e4, lo: 0xa9, hi: 0xa9},
-	// Block 0x32, offset 0x33
-	{value: 0x0008, lo: 0x02},
-	{value: 0x80de, lo: 0xb9, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbb},
-	// Block 0x33, offset 0x34
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x97, hi: 0x97},
-	{value: 0x80dc, lo: 0x98, hi: 0x98},
-	// Block 0x34, offset 0x35
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8009, lo: 0xa0, hi: 0xa0},
-	{value: 0x80e6, lo: 0xb5, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x35, offset 0x36
-	{value: 0x0000, lo: 0x08},
-	{value: 0x197e, lo: 0x80, hi: 0x80},
-	{value: 0x1985, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x82, hi: 0x82},
-	{value: 0x198c, lo: 0x83, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xab, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xac},
-	{value: 0x80e6, lo: 0xad, hi: 0xb3},
-	// Block 0x36, offset 0x37
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xaa, hi: 0xab},
-	// Block 0x37, offset 0x38
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xa6, hi: 0xa6},
-	{value: 0x8009, lo: 0xb2, hi: 0xb3},
-	// Block 0x38, offset 0x39
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x39, offset 0x3a
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80e6, lo: 0x90, hi: 0x92},
-	{value: 0x8001, lo: 0x94, hi: 0x94},
-	{value: 0x80dc, lo: 0x95, hi: 0x99},
-	{value: 0x80e6, lo: 0x9a, hi: 0x9b},
-	{value: 0x80dc, lo: 0x9c, hi: 0x9f},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa0},
-	{value: 0x8001, lo: 0xa2, hi: 0xa8},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	{value: 0x80e6, lo: 0xb4, hi: 0xb4},
-	// Block 0x3a, offset 0x3b
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0x80, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x82},
-	{value: 0x80e6, lo: 0x83, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8a},
-	{value: 0x80e6, lo: 0x8b, hi: 0x8c},
-	{value: 0x80ea, lo: 0x8d, hi: 0x8d},
-	{value: 0x80d6, lo: 0x8e, hi: 0x8e},
-	{value: 0x80dc, lo: 0x8f, hi: 0x8f},
-	{value: 0x80ca, lo: 0x90, hi: 0x90},
-	{value: 0x80e6, lo: 0x91, hi: 0xa6},
-	{value: 0x80e9, lo: 0xbc, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbe},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x3b, offset 0x3c
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04a5, lo: 0x80, hi: 0x81},
-	// Block 0x3c, offset 0x3d
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x80e6, lo: 0x90, hi: 0x91},
-	{value: 0x8001, lo: 0x92, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x97},
-	{value: 0x8001, lo: 0x98, hi: 0x9a},
-	{value: 0x80e6, lo: 0x9b, hi: 0x9c},
-	{value: 0x80e6, lo: 0xa1, hi: 0xa1},
-	{value: 0x8001, lo: 0xa5, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa7},
-	{value: 0x80dc, lo: 0xa8, hi: 0xa8},
-	{value: 0x80e6, lo: 0xa9, hi: 0xa9},
-	{value: 0x8001, lo: 0xaa, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	// Block 0x3d, offset 0x3e
-	{value: 0x4261, lo: 0x02},
-	{value: 0x01b8, lo: 0xa6, hi: 0xa6},
-	{value: 0x0057, lo: 0xaa, hi: 0xab},
-	// Block 0x3e, offset 0x3f
-	{value: 0x0007, lo: 0x05},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	{value: 0x3ba3, lo: 0x9a, hi: 0x9b},
-	{value: 0x3bb1, lo: 0xae, hi: 0xae},
-	// Block 0x3f, offset 0x40
-	{value: 0x000e, lo: 0x05},
-	{value: 0x3bb8, lo: 0x8d, hi: 0x8e},
-	{value: 0x3bbf, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	// Block 0x40, offset 0x41
-	{value: 0x4c1e, lo: 0x0a},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x3bcd, lo: 0x84, hi: 0x84},
-	{value: 0x8800, lo: 0x88, hi: 0x88},
-	{value: 0x3bd4, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x3bdb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8800, lo: 0xa3, hi: 0xa3},
-	{value: 0x3be2, lo: 0xa4, hi: 0xa5},
-	{value: 0x3be9, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xbc, hi: 0xbc},
-	// Block 0x41, offset 0x42
-	{value: 0x0007, lo: 0x03},
-	{value: 0x3c52, lo: 0xa0, hi: 0xa1},
-	{value: 0x3c7c, lo: 0xa2, hi: 0xa3},
-	{value: 0x3ca6, lo: 0xaa, hi: 0xad},
-	// Block 0x42, offset 0x43
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04fd, lo: 0xa9, hi: 0xaa},
-	// Block 0x43, offset 0x44
-	{value: 0x0000, lo: 0x01},
-	{value: 0x44c3, lo: 0x9c, hi: 0x9c},
-	// Block 0x44, offset 0x45
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xaf, hi: 0xb1},
-	// Block 0x45, offset 0x46
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x46, offset 0x47
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xbf},
-	// Block 0x47, offset 0x48
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80da, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e4, lo: 0xab, hi: 0xab},
-	{value: 0x80e8, lo: 0xac, hi: 0xac},
-	{value: 0x80de, lo: 0xad, hi: 0xad},
-	{value: 0x80e0, lo: 0xae, hi: 0xaf},
-	// Block 0x48, offset 0x49
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0xaf, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb4, hi: 0xbd},
-	// Block 0x49, offset 0x4a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9f, hi: 0x9f},
-	// Block 0x4a, offset 0x4b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb1},
-	// Block 0x4b, offset 0x4c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x86, hi: 0x86},
-	// Block 0x4c, offset 0x4d
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xa0, hi: 0xb1},
-	// Block 0x4d, offset 0x4e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xab, hi: 0xad},
-	// Block 0x4e, offset 0x4f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x93, hi: 0x93},
-	// Block 0x4f, offset 0x50
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb3, hi: 0xb3},
-	// Block 0x50, offset 0x51
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x80, hi: 0x80},
-	// Block 0x51, offset 0x52
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbf},
-	// Block 0x52, offset 0x53
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	// Block 0x53, offset 0x54
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xad, hi: 0xad},
-	// Block 0x54, offset 0x55
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xbf},
-	// Block 0x55, offset 0x56
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xa3},
-	// Block 0x56, offset 0x57
-	{value: 0x0006, lo: 0x0d},
-	{value: 0x4376, lo: 0x9d, hi: 0x9d},
-	{value: 0x801a, lo: 0x9e, hi: 0x9e},
-	{value: 0x43e8, lo: 0x9f, hi: 0x9f},
-	{value: 0x43d6, lo: 0xaa, hi: 0xab},
-	{value: 0x44da, lo: 0xac, hi: 0xac},
-	{value: 0x44e2, lo: 0xad, hi: 0xad},
-	{value: 0x432e, lo: 0xae, hi: 0xb1},
-	{value: 0x434c, lo: 0xb2, hi: 0xb4},
-	{value: 0x4364, lo: 0xb5, hi: 0xb6},
-	{value: 0x4370, lo: 0xb8, hi: 0xb8},
-	{value: 0x437c, lo: 0xb9, hi: 0xbb},
-	{value: 0x4394, lo: 0xbc, hi: 0xbc},
-	{value: 0x439a, lo: 0xbe, hi: 0xbe},
-	// Block 0x57, offset 0x58
-	{value: 0x0006, lo: 0x08},
-	{value: 0x43a0, lo: 0x80, hi: 0x81},
-	{value: 0x43ac, lo: 0x83, hi: 0x84},
-	{value: 0x43be, lo: 0x86, hi: 0x89},
-	{value: 0x43e2, lo: 0x8a, hi: 0x8a},
-	{value: 0x435e, lo: 0x8b, hi: 0x8b},
-	{value: 0x4346, lo: 0x8c, hi: 0x8c},
-	{value: 0x438e, lo: 0x8d, hi: 0x8d},
-	{value: 0x43b8, lo: 0x8e, hi: 0x8e},
-	// Block 0x58, offset 0x59
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa6},
-	// Block 0x59, offset 0x5a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	// Block 0x5a, offset 0x5b
-	{value: 0x00db, lo: 0x05},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x8f, hi: 0x8f},
-	{value: 0x80e6, lo: 0xb8, hi: 0xb8},
-	{value: 0x8001, lo: 0xb9, hi: 0xba},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x5b, offset 0x5c
-	{value: 0x05fe, lo: 0x07},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x4222, lo: 0x9a, hi: 0x9a},
-	{value: 0x8800, lo: 0x9b, hi: 0x9b},
-	{value: 0x422c, lo: 0x9c, hi: 0x9c},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x4236, lo: 0xab, hi: 0xab},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x5c, offset 0x5d
-	{value: 0x0000, lo: 0x06},
-	{value: 0x80e6, lo: 0x80, hi: 0x82},
-	{value: 0x8600, lo: 0xa7, hi: 0xa7},
-	{value: 0x1993, lo: 0xae, hi: 0xae},
-	{value: 0x199c, lo: 0xaf, hi: 0xaf},
-	{value: 0x8800, lo: 0xb1, hi: 0xb2},
-	{value: 0x8009, lo: 0xb3, hi: 0xb4},
-	// Block 0x5d, offset 0x5e
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x5e, offset 0x5f
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x45b2, lo: 0x9e, hi: 0x9e},
-	{value: 0x45bc, lo: 0x9f, hi: 0x9f},
-	{value: 0x45f0, lo: 0xa0, hi: 0xa0},
-	{value: 0x45fe, lo: 0xa1, hi: 0xa1},
-	{value: 0x460c, lo: 0xa2, hi: 0xa2},
-	{value: 0x461a, lo: 0xa3, hi: 0xa3},
-	{value: 0x4628, lo: 0xa4, hi: 0xa4},
-	{value: 0x80d8, lo: 0xa5, hi: 0xa6},
-	{value: 0x8001, lo: 0xa7, hi: 0xa9},
-	{value: 0x80e2, lo: 0xad, hi: 0xad},
-	{value: 0x80d8, lo: 0xae, hi: 0xb2},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbf},
-	// Block 0x5f, offset 0x60
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80dc, lo: 0x80, hi: 0x82},
-	{value: 0x80e6, lo: 0x85, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8b},
-	{value: 0x80e6, lo: 0xaa, hi: 0xad},
-	{value: 0x45c6, lo: 0xbb, hi: 0xbb},
-	{value: 0x45d0, lo: 0xbc, hi: 0xbc},
-	{value: 0x4636, lo: 0xbd, hi: 0xbd},
-	{value: 0x4652, lo: 0xbe, hi: 0xbe},
-	{value: 0x4644, lo: 0xbf, hi: 0xbf},
-	// Block 0x60, offset 0x61
-	{value: 0x0000, lo: 0x01},
-	{value: 0x4660, lo: 0x80, hi: 0x80},
-	// Block 0x61, offset 0x62
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x82, hi: 0x84},
-}
-
-// nfcLookup: 1088 bytes
-// Block 0 is the null block.
-var nfcLookup = [1088]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x2c, 0x0c3: 0x01, 0x0c4: 0x02, 0x0c5: 0x03, 0x0c6: 0x2d, 0x0c7: 0x04,
-	0x0c8: 0x05, 0x0ca: 0x2e, 0x0cc: 0x06, 0x0cd: 0x07, 0x0ce: 0x08, 0x0cf: 0x2f,
-	0x0d0: 0x09, 0x0d1: 0x30, 0x0d2: 0x31, 0x0d3: 0x0a, 0x0d6: 0x0b, 0x0d7: 0x32,
-	0x0d8: 0x33, 0x0d9: 0x0c, 0x0db: 0x34, 0x0dc: 0x35, 0x0dd: 0x36, 0x0df: 0x37,
-	0x0e0: 0x02, 0x0e1: 0x03, 0x0e2: 0x04, 0x0e3: 0x05,
-	0x0ea: 0x06, 0x0eb: 0x07, 0x0ec: 0x07, 0x0ed: 0x08, 0x0ef: 0x09,
-	0x0f0: 0x0e,
-	// Block 0x4, offset 0x100
-	0x120: 0x38, 0x121: 0x39, 0x123: 0x3a, 0x124: 0x3b, 0x125: 0x3c, 0x126: 0x3d, 0x127: 0x3e,
-	0x128: 0x3f, 0x129: 0x40, 0x12a: 0x41, 0x12b: 0x42, 0x12c: 0x3d, 0x12d: 0x43, 0x12e: 0x44, 0x12f: 0x45,
-	0x131: 0x46, 0x132: 0x47, 0x133: 0x48, 0x134: 0x49, 0x135: 0x4a, 0x137: 0x4b,
-	0x138: 0x4c, 0x139: 0x4d, 0x13a: 0x4e, 0x13b: 0x4f, 0x13c: 0x50, 0x13d: 0x51, 0x13e: 0x52, 0x13f: 0x53,
-	// Block 0x5, offset 0x140
-	0x140: 0x54, 0x142: 0x55, 0x144: 0x56, 0x145: 0x57, 0x146: 0x58, 0x147: 0x59,
-	0x14d: 0x5a,
-	0x15c: 0x5b, 0x15f: 0x5c,
-	0x162: 0x5d, 0x164: 0x5e,
-	0x168: 0x5f, 0x169: 0x60, 0x16c: 0x0d, 0x16d: 0x61, 0x16e: 0x62, 0x16f: 0x63,
-	0x170: 0x64, 0x173: 0x65, 0x177: 0x66,
-	0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,
-	// Block 0x6, offset 0x180
-	0x180: 0x67, 0x183: 0x68, 0x184: 0x69, 0x186: 0x6a, 0x187: 0x6b,
-	0x188: 0x6c, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6d, 0x18c: 0x6e,
-	0x1ab: 0x6f,
-	0x1b3: 0x70, 0x1b5: 0x71, 0x1b7: 0x72,
-	// Block 0x7, offset 0x1c0
-	0x1c0: 0x73, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a,
-	// Block 0x8, offset 0x200
-	0x219: 0x74, 0x21a: 0x75, 0x21b: 0x76,
-	0x220: 0x77, 0x223: 0x78, 0x224: 0x79, 0x225: 0x7a, 0x226: 0x7b, 0x227: 0x7c,
-	0x22a: 0x7d, 0x22b: 0x7e, 0x22f: 0x7f,
-	0x230: 0x80, 0x231: 0x80, 0x232: 0x80, 0x233: 0x80, 0x234: 0x80, 0x235: 0x80, 0x236: 0x80, 0x237: 0x80,
-	0x238: 0x80, 0x239: 0x80, 0x23a: 0x80, 0x23b: 0x80, 0x23c: 0x80, 0x23d: 0x80, 0x23e: 0x80, 0x23f: 0x80,
-	// Block 0x9, offset 0x240
-	0x240: 0x80, 0x241: 0x80, 0x242: 0x80, 0x243: 0x80, 0x244: 0x80, 0x245: 0x80, 0x246: 0x80, 0x247: 0x80,
-	0x248: 0x80, 0x249: 0x80, 0x24a: 0x80, 0x24b: 0x80, 0x24c: 0x80, 0x24d: 0x80, 0x24e: 0x80, 0x24f: 0x80,
-	0x250: 0x80, 0x251: 0x80, 0x252: 0x80, 0x253: 0x80, 0x254: 0x80, 0x255: 0x80, 0x256: 0x80, 0x257: 0x80,
-	0x258: 0x80, 0x259: 0x80, 0x25a: 0x80, 0x25b: 0x80, 0x25c: 0x80, 0x25d: 0x80, 0x25e: 0x80, 0x25f: 0x80,
-	0x260: 0x80, 0x261: 0x80, 0x262: 0x80, 0x263: 0x80, 0x264: 0x80, 0x265: 0x80, 0x266: 0x80, 0x267: 0x80,
-	0x268: 0x80, 0x269: 0x80, 0x26a: 0x80, 0x26b: 0x80, 0x26c: 0x80, 0x26d: 0x80, 0x26e: 0x80, 0x26f: 0x80,
-	0x270: 0x80, 0x271: 0x80, 0x272: 0x80, 0x273: 0x80, 0x274: 0x80, 0x275: 0x80, 0x276: 0x80, 0x277: 0x80,
-	0x278: 0x80, 0x279: 0x80, 0x27a: 0x80, 0x27b: 0x80, 0x27c: 0x80, 0x27d: 0x80, 0x27e: 0x80, 0x27f: 0x80,
-	// Block 0xa, offset 0x280
-	0x280: 0x80, 0x281: 0x80, 0x282: 0x80, 0x283: 0x80, 0x284: 0x80, 0x285: 0x80, 0x286: 0x80, 0x287: 0x80,
-	0x288: 0x80, 0x289: 0x80, 0x28a: 0x80, 0x28b: 0x80, 0x28c: 0x80, 0x28d: 0x80, 0x28e: 0x80, 0x28f: 0x80,
-	0x290: 0x80, 0x291: 0x80, 0x292: 0x80, 0x293: 0x80, 0x294: 0x80, 0x295: 0x80, 0x296: 0x80, 0x297: 0x80,
-	0x298: 0x80, 0x299: 0x80, 0x29a: 0x80, 0x29b: 0x80, 0x29c: 0x80, 0x29d: 0x80, 0x29e: 0x81,
-	// Block 0xb, offset 0x2c0
-	0x2e4: 0x1b, 0x2e5: 0x1c, 0x2e6: 0x1d, 0x2e7: 0x1e,
-	0x2e8: 0x1f, 0x2e9: 0x20, 0x2ea: 0x21, 0x2eb: 0x22, 0x2ec: 0x82, 0x2ed: 0x83,
-	0x2f8: 0x84,
-	// Block 0xc, offset 0x300
-	0x307: 0x85,
-	0x328: 0x86,
-	// Block 0xd, offset 0x340
-	0x341: 0x77, 0x342: 0x87, 0x344: 0x88, 0x347: 0x7c,
-	0x35a: 0x89,
-	// Block 0xe, offset 0x380
-	0x385: 0x8a, 0x386: 0x8b, 0x387: 0x8c,
-	0x389: 0x8d,
-	// Block 0xf, offset 0x3c0
-	0x3e0: 0x23, 0x3e1: 0x24, 0x3e2: 0x25, 0x3e3: 0x26, 0x3e4: 0x27, 0x3e5: 0x28, 0x3e6: 0x29, 0x3e7: 0x2a,
-	0x3e8: 0x2b,
-	// Block 0x10, offset 0x400
-	0x410: 0x0a, 0x411: 0x0b,
-	0x41d: 0x0c,
-	0x42f: 0x0d,
-}
-
-var nfcTrie = trie{nfcLookup[:], nfcValues[:], nfcSparseValues[:], nfcSparseOffset[:], 44}
-
-// nfkcValues: 5760 entries, 11520 bytes
-// Block 2 is the null block.
-var nfkcValues = [5760]uint16{
-	// Block 0x0, offset 0x0
-	0x003c: 0x8800, 0x003d: 0x8800, 0x003e: 0x8800,
-	// Block 0x1, offset 0x40
-	0x0041: 0x8800, 0x0042: 0x8800, 0x0043: 0x8800, 0x0044: 0x8800, 0x0045: 0x8800,
-	0x0046: 0x8800, 0x0047: 0x8800, 0x0048: 0x8800, 0x0049: 0x8800, 0x004a: 0x8800, 0x004b: 0x8800,
-	0x004c: 0x8800, 0x004d: 0x8800, 0x004e: 0x8800, 0x004f: 0x8800, 0x0050: 0x8800,
-	0x0052: 0x8800, 0x0053: 0x8800, 0x0054: 0x8800, 0x0055: 0x8800, 0x0056: 0x8800, 0x0057: 0x8800,
-	0x0058: 0x8800, 0x0059: 0x8800, 0x005a: 0x8800,
-	0x0061: 0x8800, 0x0062: 0x8800, 0x0063: 0x8800,
-	0x0064: 0x8800, 0x0065: 0x8800, 0x0066: 0x8800, 0x0067: 0x8800, 0x0068: 0x8800, 0x0069: 0x8800,
-	0x006a: 0x8800, 0x006b: 0x8800, 0x006c: 0x8800, 0x006d: 0x8800, 0x006e: 0x8800, 0x006f: 0x8800,
-	0x0070: 0x8800, 0x0072: 0x8800, 0x0073: 0x8800, 0x0074: 0x8800, 0x0075: 0x8800,
-	0x0076: 0x8800, 0x0077: 0x8800, 0x0078: 0x8800, 0x0079: 0x8800, 0x007a: 0x8800,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0x2f59, 0x00c1: 0x2f5e, 0x00c2: 0x466e, 0x00c3: 0x2f63, 0x00c4: 0x467d, 0x00c5: 0x4682,
-	0x00c6: 0x8800, 0x00c7: 0x468c, 0x00c8: 0x2fcc, 0x00c9: 0x2fd1, 0x00ca: 0x4691, 0x00cb: 0x2fe5,
-	0x00cc: 0x3058, 0x00cd: 0x305d, 0x00ce: 0x3062, 0x00cf: 0x46a5, 0x00d1: 0x30ee,
-	0x00d2: 0x3111, 0x00d3: 0x3116, 0x00d4: 0x46af, 0x00d5: 0x46b4, 0x00d6: 0x46c3,
-	0x00d8: 0x8800, 0x00d9: 0x319d, 0x00da: 0x31a2, 0x00db: 0x31a7, 0x00dc: 0x46f5, 0x00dd: 0x321f,
-	0x00e0: 0x3265, 0x00e1: 0x326a, 0x00e2: 0x46ff, 0x00e3: 0x326f,
-	0x00e4: 0x470e, 0x00e5: 0x4713, 0x00e6: 0x8800, 0x00e7: 0x471d, 0x00e8: 0x32d8, 0x00e9: 0x32dd,
-	0x00ea: 0x4722, 0x00eb: 0x32f1, 0x00ec: 0x3369, 0x00ed: 0x336e, 0x00ee: 0x3373, 0x00ef: 0x4736,
-	0x00f1: 0x33ff, 0x00f2: 0x3422, 0x00f3: 0x3427, 0x00f4: 0x4740, 0x00f5: 0x4745,
-	0x00f6: 0x4754, 0x00f8: 0x8800, 0x00f9: 0x34b3, 0x00fa: 0x34b8, 0x00fb: 0x34bd,
-	0x00fc: 0x4786, 0x00fd: 0x353a, 0x00ff: 0x3553,
-	// Block 0x4, offset 0x100
-	0x0100: 0x2f68, 0x0101: 0x3274, 0x0102: 0x4673, 0x0103: 0x4704, 0x0104: 0x2f86, 0x0105: 0x3292,
-	0x0106: 0x2f9a, 0x0107: 0x32a6, 0x0108: 0x2f9f, 0x0109: 0x32ab, 0x010a: 0x2fa4, 0x010b: 0x32b0,
-	0x010c: 0x2fa9, 0x010d: 0x32b5, 0x010e: 0x2fb3, 0x010f: 0x32bf,
-	0x0112: 0x4696, 0x0113: 0x4727, 0x0114: 0x2fdb, 0x0115: 0x32e7, 0x0116: 0x2fe0, 0x0117: 0x32ec,
-	0x0118: 0x2ffe, 0x0119: 0x330a, 0x011a: 0x2fef, 0x011b: 0x32fb, 0x011c: 0x3017, 0x011d: 0x3323,
-	0x011e: 0x3021, 0x011f: 0x332d, 0x0120: 0x3026, 0x0121: 0x3332, 0x0122: 0x3030, 0x0123: 0x333c,
-	0x0124: 0x3035, 0x0125: 0x3341, 0x0128: 0x3067, 0x0129: 0x3378,
-	0x012a: 0x306c, 0x012b: 0x337d, 0x012c: 0x3071, 0x012d: 0x3382, 0x012e: 0x3094, 0x012f: 0x33a0,
-	0x0130: 0x3076, 0x0132: 0x1a9f, 0x0133: 0x1b29, 0x0134: 0x309e, 0x0135: 0x33aa,
-	0x0136: 0x30b2, 0x0137: 0x33c3, 0x0139: 0x30bc, 0x013a: 0x33cd, 0x013b: 0x30c6,
-	0x013c: 0x33d7, 0x013d: 0x30c1, 0x013e: 0x33d2, 0x013f: 0x1cee,
-	// Block 0x5, offset 0x140
-	0x0140: 0x1d76, 0x0143: 0x30e9, 0x0144: 0x33fa, 0x0145: 0x3102,
-	0x0146: 0x3413, 0x0147: 0x30f8, 0x0148: 0x3409, 0x0149: 0x1d9e,
-	0x014c: 0x46b9, 0x014d: 0x474a, 0x014e: 0x311b, 0x014f: 0x342c, 0x0150: 0x3125, 0x0151: 0x3436,
-	0x0154: 0x3143, 0x0155: 0x3454, 0x0156: 0x315c, 0x0157: 0x346d,
-	0x0158: 0x314d, 0x0159: 0x345e, 0x015a: 0x46dc, 0x015b: 0x476d, 0x015c: 0x3166, 0x015d: 0x3477,
-	0x015e: 0x3175, 0x015f: 0x3486, 0x0160: 0x46e1, 0x0161: 0x4772, 0x0162: 0x318e, 0x0163: 0x34a4,
-	0x0164: 0x317f, 0x0165: 0x3495, 0x0168: 0x46eb, 0x0169: 0x477c,
-	0x016a: 0x46f0, 0x016b: 0x4781, 0x016c: 0x31ac, 0x016d: 0x34c2, 0x016e: 0x31b6, 0x016f: 0x34cc,
-	0x0170: 0x31bb, 0x0171: 0x34d1, 0x0172: 0x31d9, 0x0173: 0x34ef, 0x0174: 0x31fc, 0x0175: 0x3512,
-	0x0176: 0x3224, 0x0177: 0x353f, 0x0178: 0x3238, 0x0179: 0x3247, 0x017a: 0x3567, 0x017b: 0x3251,
-	0x017c: 0x3571, 0x017d: 0x3256, 0x017e: 0x3576, 0x017f: 0x00a7,
-	// Block 0x6, offset 0x180
-	0x0184: 0x2e7f, 0x0185: 0x2e85,
-	0x0186: 0x2e8b, 0x0187: 0x1ab4, 0x0188: 0x1ab7, 0x0189: 0x1b4a, 0x018a: 0x1ac9, 0x018b: 0x1acc,
-	0x018c: 0x1b80, 0x018d: 0x2f72, 0x018e: 0x327e, 0x018f: 0x3080, 0x0190: 0x338c, 0x0191: 0x312a,
-	0x0192: 0x343b, 0x0193: 0x31c0, 0x0194: 0x34d6, 0x0195: 0x39b9, 0x0196: 0x3b48, 0x0197: 0x39b2,
-	0x0198: 0x3b41, 0x0199: 0x39c0, 0x019a: 0x3b4f, 0x019b: 0x39ab, 0x019c: 0x3b3a,
-	0x019e: 0x389a, 0x019f: 0x3a29, 0x01a0: 0x3893, 0x01a1: 0x3a22, 0x01a2: 0x359d, 0x01a3: 0x35af,
-	0x01a6: 0x302b, 0x01a7: 0x3337, 0x01a8: 0x30a8, 0x01a9: 0x33b9,
-	0x01aa: 0x46d2, 0x01ab: 0x4763, 0x01ac: 0x397a, 0x01ad: 0x3b09, 0x01ae: 0x35c1, 0x01af: 0x35c7,
-	0x01b0: 0x33af, 0x01b1: 0x1a84, 0x01b2: 0x1a87, 0x01b3: 0x1b11, 0x01b4: 0x3012, 0x01b5: 0x331e,
-	0x01b8: 0x30e4, 0x01b9: 0x33f5, 0x01ba: 0x38a1, 0x01bb: 0x3a30,
-	0x01bc: 0x3597, 0x01bd: 0x35a9, 0x01be: 0x35a3, 0x01bf: 0x35b5,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x2f77, 0x01c1: 0x3283, 0x01c2: 0x2f7c, 0x01c3: 0x3288, 0x01c4: 0x2ff4, 0x01c5: 0x3300,
-	0x01c6: 0x2ff9, 0x01c7: 0x3305, 0x01c8: 0x3085, 0x01c9: 0x3391, 0x01ca: 0x308a, 0x01cb: 0x3396,
-	0x01cc: 0x312f, 0x01cd: 0x3440, 0x01ce: 0x3134, 0x01cf: 0x3445, 0x01d0: 0x3152, 0x01d1: 0x3463,
-	0x01d2: 0x3157, 0x01d3: 0x3468, 0x01d4: 0x31c5, 0x01d5: 0x34db, 0x01d6: 0x31ca, 0x01d7: 0x34e0,
-	0x01d8: 0x3170, 0x01d9: 0x3481, 0x01da: 0x3189, 0x01db: 0x349f,
-	0x01de: 0x3044, 0x01df: 0x3350,
-	0x01e6: 0x4678, 0x01e7: 0x4709, 0x01e8: 0x46a0, 0x01e9: 0x4731,
-	0x01ea: 0x3949, 0x01eb: 0x3ad8, 0x01ec: 0x3926, 0x01ed: 0x3ab5, 0x01ee: 0x46be, 0x01ef: 0x474f,
-	0x01f0: 0x3942, 0x01f1: 0x3ad1, 0x01f2: 0x322e, 0x01f3: 0x3549,
-	// Block 0x8, offset 0x200
-	0x0200: 0x86e6, 0x0201: 0x86e6, 0x0202: 0x86e6, 0x0203: 0x86e6, 0x0204: 0x86e6, 0x0205: 0x80e6,
-	0x0206: 0x86e6, 0x0207: 0x86e6, 0x0208: 0x86e6, 0x0209: 0x86e6, 0x020a: 0x86e6, 0x020b: 0x86e6,
-	0x020c: 0x86e6, 0x020d: 0x80e6, 0x020e: 0x80e6, 0x020f: 0x86e6, 0x0210: 0x80e6, 0x0211: 0x86e6,
-	0x0212: 0x80e6, 0x0213: 0x86e6, 0x0214: 0x86e6, 0x0215: 0x80e8, 0x0216: 0x80dc, 0x0217: 0x80dc,
-	0x0218: 0x80dc, 0x0219: 0x80dc, 0x021a: 0x80e8, 0x021b: 0x86d8, 0x021c: 0x80dc, 0x021d: 0x80dc,
-	0x021e: 0x80dc, 0x021f: 0x80dc, 0x0220: 0x80dc, 0x0221: 0x80ca, 0x0222: 0x80ca, 0x0223: 0x86dc,
-	0x0224: 0x86dc, 0x0225: 0x86dc, 0x0226: 0x86dc, 0x0227: 0x86ca, 0x0228: 0x86ca, 0x0229: 0x80dc,
-	0x022a: 0x80dc, 0x022b: 0x80dc, 0x022c: 0x80dc, 0x022d: 0x86dc, 0x022e: 0x86dc, 0x022f: 0x80dc,
-	0x0230: 0x86dc, 0x0231: 0x86dc, 0x0232: 0x80dc, 0x0233: 0x80dc, 0x0234: 0x8001, 0x0235: 0x8001,
-	0x0236: 0x8001, 0x0237: 0x8001, 0x0238: 0x8601, 0x0239: 0x80dc, 0x023a: 0x80dc, 0x023b: 0x80dc,
-	0x023c: 0x80dc, 0x023d: 0x80e6, 0x023e: 0x80e6, 0x023f: 0x80e6,
-	// Block 0x9, offset 0x240
-	0x0240: 0x4994, 0x0241: 0x4999, 0x0242: 0x86e6, 0x0243: 0x499e, 0x0244: 0x49a3, 0x0245: 0x86f0,
-	0x0246: 0x80e6, 0x0247: 0x80dc, 0x0248: 0x80dc, 0x0249: 0x80dc, 0x024a: 0x80e6, 0x024b: 0x80e6,
-	0x024c: 0x80e6, 0x024d: 0x80dc, 0x024e: 0x80dc, 0x0250: 0x80e6, 0x0251: 0x80e6,
-	0x0252: 0x80e6, 0x0253: 0x80dc, 0x0254: 0x80dc, 0x0255: 0x80dc, 0x0256: 0x80dc, 0x0257: 0x80e6,
-	0x0258: 0x80e8, 0x0259: 0x80dc, 0x025a: 0x80dc, 0x025b: 0x80e6, 0x025c: 0x80e9, 0x025d: 0x80ea,
-	0x025e: 0x80ea, 0x025f: 0x80e9, 0x0260: 0x80ea, 0x0261: 0x80ea, 0x0262: 0x80e9, 0x0263: 0x80e6,
-	0x0264: 0x80e6, 0x0265: 0x80e6, 0x0266: 0x80e6, 0x0267: 0x80e6, 0x0268: 0x80e6, 0x0269: 0x80e6,
-	0x026a: 0x80e6, 0x026b: 0x80e6, 0x026c: 0x80e6, 0x026d: 0x80e6, 0x026e: 0x80e6, 0x026f: 0x80e6,
-	0x0274: 0x0170,
-	0x027a: 0x428b,
-	0x027e: 0x0037,
-	// Block 0xa, offset 0x280
-	0x0284: 0x4240, 0x0285: 0x4461,
-	0x0286: 0x35d3, 0x0287: 0x00d1, 0x0288: 0x35f1, 0x0289: 0x35fd, 0x028a: 0x360f,
-	0x028c: 0x362d, 0x028e: 0x363f, 0x028f: 0x365d, 0x0290: 0x3df2, 0x0291: 0x8800,
-	0x0295: 0x8800, 0x0297: 0x8800,
-	0x0299: 0x8800,
-	0x029f: 0x8800, 0x02a1: 0x8800,
-	0x02a5: 0x8800, 0x02a9: 0x8800,
-	0x02aa: 0x3621, 0x02ab: 0x3651, 0x02ac: 0x47e4, 0x02ad: 0x3681, 0x02ae: 0x480e, 0x02af: 0x3693,
-	0x02b0: 0x3e5a, 0x02b1: 0x8800, 0x02b5: 0x8800,
-	0x02b7: 0x8800, 0x02b9: 0x8800,
-	0x02bf: 0x8800,
-	// Block 0xb, offset 0x2c0
-	0x02c1: 0x8800, 0x02c5: 0x8800,
-	0x02c9: 0x8800, 0x02ca: 0x4826, 0x02cb: 0x4844,
-	0x02cc: 0x36b1, 0x02cd: 0x36c9, 0x02ce: 0x485c, 0x02d0: 0x01be, 0x02d1: 0x01d0,
-	0x02d2: 0x01ac, 0x02d3: 0x42f2, 0x02d4: 0x42f8, 0x02d5: 0x01fa, 0x02d6: 0x01e8,
-	0x02f0: 0x01d6, 0x02f1: 0x01eb, 0x02f2: 0x01ee, 0x02f4: 0x0188, 0x02f5: 0x01c7,
-	0x02f9: 0x01a6,
-	// Block 0xc, offset 0x300
-	0x0300: 0x370b, 0x0301: 0x3717, 0x0303: 0x3705,
-	0x0306: 0x8800, 0x0307: 0x36f3,
-	0x030c: 0x3747, 0x030d: 0x372f, 0x030e: 0x3759, 0x0310: 0x8800,
-	0x0313: 0x8800, 0x0315: 0x8800, 0x0316: 0x8800, 0x0317: 0x8800,
-	0x0318: 0x8800, 0x0319: 0x373b, 0x031a: 0x8800,
-	0x031e: 0x8800, 0x0323: 0x8800,
-	0x0327: 0x8800,
-	0x032b: 0x8800, 0x032d: 0x8800,
-	0x0330: 0x8800, 0x0333: 0x8800, 0x0335: 0x8800,
-	0x0336: 0x8800, 0x0337: 0x8800, 0x0338: 0x8800, 0x0339: 0x37bf, 0x033a: 0x8800,
-	0x033e: 0x8800,
-	// Block 0xd, offset 0x340
-	0x0341: 0x371d, 0x0342: 0x37a1,
-	0x0350: 0x36f9, 0x0351: 0x377d,
-	0x0352: 0x36ff, 0x0353: 0x3783, 0x0356: 0x3711, 0x0357: 0x3795,
-	0x0358: 0x8800, 0x0359: 0x8800, 0x035a: 0x3813, 0x035b: 0x3819, 0x035c: 0x3723, 0x035d: 0x37a7,
-	0x035e: 0x3729, 0x035f: 0x37ad, 0x0362: 0x3735, 0x0363: 0x37b9,
-	0x0364: 0x3741, 0x0365: 0x37c5, 0x0366: 0x374d, 0x0367: 0x37d1, 0x0368: 0x8800, 0x0369: 0x8800,
-	0x036a: 0x381f, 0x036b: 0x3825, 0x036c: 0x3777, 0x036d: 0x37fb, 0x036e: 0x3753, 0x036f: 0x37d7,
-	0x0370: 0x375f, 0x0371: 0x37e3, 0x0372: 0x3765, 0x0373: 0x37e9, 0x0374: 0x376b, 0x0375: 0x37ef,
-	0x0378: 0x3771, 0x0379: 0x37f5,
-	// Block 0xe, offset 0x380
-	0x0387: 0x1ea3,
-	0x0391: 0x80dc,
-	0x0392: 0x80e6, 0x0393: 0x80e6, 0x0394: 0x80e6, 0x0395: 0x80e6, 0x0396: 0x80dc, 0x0397: 0x80e6,
-	0x0398: 0x80e6, 0x0399: 0x80e6, 0x039a: 0x80de, 0x039b: 0x80dc, 0x039c: 0x80e6, 0x039d: 0x80e6,
-	0x039e: 0x80e6, 0x039f: 0x80e6, 0x03a0: 0x80e6, 0x03a1: 0x80e6, 0x03a2: 0x80dc, 0x03a3: 0x80dc,
-	0x03a4: 0x80dc, 0x03a5: 0x80dc, 0x03a6: 0x80dc, 0x03a7: 0x80dc, 0x03a8: 0x80e6, 0x03a9: 0x80e6,
-	0x03aa: 0x80dc, 0x03ab: 0x80e6, 0x03ac: 0x80e6, 0x03ad: 0x80de, 0x03ae: 0x80e4, 0x03af: 0x80e6,
-	0x03b0: 0x800a, 0x03b1: 0x800b, 0x03b2: 0x800c, 0x03b3: 0x800d, 0x03b4: 0x800e, 0x03b5: 0x800f,
-	0x03b6: 0x8010, 0x03b7: 0x8011, 0x03b8: 0x8012, 0x03b9: 0x8013, 0x03ba: 0x8013, 0x03bb: 0x8014,
-	0x03bc: 0x8015, 0x03bd: 0x8016, 0x03bf: 0x8017,
-	// Block 0xf, offset 0x3c0
-	0x03c8: 0x8800, 0x03ca: 0x8800, 0x03cb: 0x801b,
-	0x03cc: 0x801c, 0x03cd: 0x801d, 0x03ce: 0x801e, 0x03cf: 0x801f, 0x03d0: 0x8020, 0x03d1: 0x8021,
-	0x03d2: 0x8022, 0x03d3: 0x86e6, 0x03d4: 0x86e6, 0x03d5: 0x86dc, 0x03d6: 0x80dc, 0x03d7: 0x80e6,
-	0x03d8: 0x80e6, 0x03d9: 0x80e6, 0x03da: 0x80e6, 0x03db: 0x80e6, 0x03dc: 0x80dc, 0x03dd: 0x80e6,
-	0x03de: 0x80e6, 0x03df: 0x80dc,
-	0x03f0: 0x8023, 0x03f5: 0x1ec6,
-	0x03f6: 0x2155, 0x03f7: 0x2191, 0x03f8: 0x218c,
-	// Block 0x10, offset 0x400
-	0x0405: 0x8800,
-	0x0406: 0x1946, 0x0407: 0x8800, 0x0408: 0x194d, 0x0409: 0x8800, 0x040a: 0x1954, 0x040b: 0x8800,
-	0x040c: 0x195b, 0x040d: 0x8800, 0x040e: 0x1962, 0x0411: 0x8800,
-	0x0412: 0x1969,
-	0x0434: 0x8007, 0x0435: 0x8600,
-	0x043a: 0x8800, 0x043b: 0x1970,
-	0x043c: 0x8800, 0x043d: 0x1977, 0x043e: 0x8800, 0x043f: 0x8800,
-	// Block 0x11, offset 0x440
-	0x0440: 0x0069, 0x0441: 0x006b, 0x0442: 0x006f, 0x0443: 0x0083, 0x0444: 0x00f8, 0x0445: 0x00fb,
-	0x0446: 0x0485, 0x0447: 0x0085, 0x0448: 0x0089, 0x0449: 0x008b, 0x044a: 0x0107, 0x044b: 0x010a,
-	0x044c: 0x010d, 0x044d: 0x008f, 0x044f: 0x0097, 0x0450: 0x009b, 0x0451: 0x00e3,
-	0x0452: 0x009f, 0x0453: 0x0101, 0x0454: 0x0489, 0x0455: 0x048d, 0x0456: 0x00a1, 0x0457: 0x00a9,
-	0x0458: 0x00ab, 0x0459: 0x0495, 0x045a: 0x012b, 0x045b: 0x00ad, 0x045c: 0x0499, 0x045d: 0x01be,
-	0x045e: 0x01c1, 0x045f: 0x01c4, 0x0460: 0x01fa, 0x0461: 0x01fd, 0x0462: 0x0093, 0x0463: 0x00a5,
-	0x0464: 0x00ab, 0x0465: 0x00ad, 0x0466: 0x01be, 0x0467: 0x01c1, 0x0468: 0x01eb, 0x0469: 0x01fa,
-	0x046a: 0x01fd,
-	0x0478: 0x020c,
-	// Block 0x12, offset 0x480
-	0x049b: 0x00fe, 0x049c: 0x0087, 0x049d: 0x0104,
-	0x049e: 0x00d7, 0x049f: 0x010d, 0x04a0: 0x008d, 0x04a1: 0x0110, 0x04a2: 0x0113, 0x04a3: 0x0119,
-	0x04a4: 0x011f, 0x04a5: 0x0122, 0x04a6: 0x0125, 0x04a7: 0x049d, 0x04a8: 0x016a, 0x04a9: 0x0128,
-	0x04aa: 0x04a1, 0x04ab: 0x016d, 0x04ac: 0x0131, 0x04ad: 0x012e, 0x04ae: 0x0134, 0x04af: 0x0137,
-	0x04b0: 0x013a, 0x04b1: 0x013d, 0x04b2: 0x0140, 0x04b3: 0x014c, 0x04b4: 0x014f, 0x04b5: 0x00ef,
-	0x04b6: 0x0152, 0x04b7: 0x0155, 0x04b8: 0x0491, 0x04b9: 0x0158, 0x04ba: 0x015b, 0x04bb: 0x00b5,
-	0x04bc: 0x015e, 0x04bd: 0x0161, 0x04be: 0x0164, 0x04bf: 0x01d0,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x2f81, 0x04c1: 0x328d, 0x04c2: 0x2f8b, 0x04c3: 0x3297, 0x04c4: 0x2f90, 0x04c5: 0x329c,
-	0x04c6: 0x2f95, 0x04c7: 0x32a1, 0x04c8: 0x38b6, 0x04c9: 0x3a45, 0x04ca: 0x2fae, 0x04cb: 0x32ba,
-	0x04cc: 0x2fb8, 0x04cd: 0x32c4, 0x04ce: 0x2fc7, 0x04cf: 0x32d3, 0x04d0: 0x2fbd, 0x04d1: 0x32c9,
-	0x04d2: 0x2fc2, 0x04d3: 0x32ce, 0x04d4: 0x38d9, 0x04d5: 0x3a68, 0x04d6: 0x38e0, 0x04d7: 0x3a6f,
-	0x04d8: 0x3003, 0x04d9: 0x330f, 0x04da: 0x3008, 0x04db: 0x3314, 0x04dc: 0x38ee, 0x04dd: 0x3a7d,
-	0x04de: 0x300d, 0x04df: 0x3319, 0x04e0: 0x301c, 0x04e1: 0x3328, 0x04e2: 0x303a, 0x04e3: 0x3346,
-	0x04e4: 0x3049, 0x04e5: 0x3355, 0x04e6: 0x303f, 0x04e7: 0x334b, 0x04e8: 0x304e, 0x04e9: 0x335a,
-	0x04ea: 0x3053, 0x04eb: 0x335f, 0x04ec: 0x3099, 0x04ed: 0x33a5, 0x04ee: 0x38f5, 0x04ef: 0x3a84,
-	0x04f0: 0x30a3, 0x04f1: 0x33b4, 0x04f2: 0x30ad, 0x04f3: 0x33be, 0x04f4: 0x30b7, 0x04f5: 0x33c8,
-	0x04f6: 0x46aa, 0x04f7: 0x473b, 0x04f8: 0x38fc, 0x04f9: 0x3a8b, 0x04fa: 0x30d0, 0x04fb: 0x33e1,
-	0x04fc: 0x30cb, 0x04fd: 0x33dc, 0x04fe: 0x30d5, 0x04ff: 0x33e6,
-	// Block 0x14, offset 0x500
-	0x0500: 0x30da, 0x0501: 0x33eb, 0x0502: 0x30df, 0x0503: 0x33f0, 0x0504: 0x30f3, 0x0505: 0x3404,
-	0x0506: 0x30fd, 0x0507: 0x340e, 0x0508: 0x310c, 0x0509: 0x341d, 0x050a: 0x3107, 0x050b: 0x3418,
-	0x050c: 0x391f, 0x050d: 0x3aae, 0x050e: 0x392d, 0x050f: 0x3abc, 0x0510: 0x3934, 0x0511: 0x3ac3,
-	0x0512: 0x393b, 0x0513: 0x3aca, 0x0514: 0x3139, 0x0515: 0x344a, 0x0516: 0x313e, 0x0517: 0x344f,
-	0x0518: 0x3148, 0x0519: 0x3459, 0x051a: 0x46d7, 0x051b: 0x4768, 0x051c: 0x3981, 0x051d: 0x3b10,
-	0x051e: 0x3161, 0x051f: 0x3472, 0x0520: 0x316b, 0x0521: 0x347c, 0x0522: 0x46e6, 0x0523: 0x4777,
-	0x0524: 0x3988, 0x0525: 0x3b17, 0x0526: 0x398f, 0x0527: 0x3b1e, 0x0528: 0x3996, 0x0529: 0x3b25,
-	0x052a: 0x317a, 0x052b: 0x348b, 0x052c: 0x3184, 0x052d: 0x349a, 0x052e: 0x3198, 0x052f: 0x34ae,
-	0x0530: 0x3193, 0x0531: 0x34a9, 0x0532: 0x31d4, 0x0533: 0x34ea, 0x0534: 0x31e3, 0x0535: 0x34f9,
-	0x0536: 0x31de, 0x0537: 0x34f4, 0x0538: 0x399d, 0x0539: 0x3b2c, 0x053a: 0x39a4, 0x053b: 0x3b33,
-	0x053c: 0x31e8, 0x053d: 0x34fe, 0x053e: 0x31ed, 0x053f: 0x3503,
-	// Block 0x15, offset 0x540
-	0x0540: 0x31f2, 0x0541: 0x3508, 0x0542: 0x31f7, 0x0543: 0x350d, 0x0544: 0x3206, 0x0545: 0x351c,
-	0x0546: 0x3201, 0x0547: 0x3517, 0x0548: 0x320b, 0x0549: 0x3526, 0x054a: 0x3210, 0x054b: 0x352b,
-	0x054c: 0x3215, 0x054d: 0x3530, 0x054e: 0x3233, 0x054f: 0x354e, 0x0550: 0x324c, 0x0551: 0x356c,
-	0x0552: 0x325b, 0x0553: 0x357b, 0x0554: 0x3260, 0x0555: 0x3580, 0x0556: 0x3364, 0x0557: 0x3490,
-	0x0558: 0x3521, 0x0559: 0x355d, 0x055a: 0x1d22, 0x055b: 0x42bd,
-	0x0560: 0x4687, 0x0561: 0x4718, 0x0562: 0x2f6d, 0x0563: 0x3279,
-	0x0564: 0x3862, 0x0565: 0x39f1, 0x0566: 0x385b, 0x0567: 0x39ea, 0x0568: 0x3870, 0x0569: 0x39ff,
-	0x056a: 0x3869, 0x056b: 0x39f8, 0x056c: 0x38a8, 0x056d: 0x3a37, 0x056e: 0x387e, 0x056f: 0x3a0d,
-	0x0570: 0x3877, 0x0571: 0x3a06, 0x0572: 0x388c, 0x0573: 0x3a1b, 0x0574: 0x3885, 0x0575: 0x3a14,
-	0x0576: 0x38af, 0x0577: 0x3a3e, 0x0578: 0x469b, 0x0579: 0x472c, 0x057a: 0x2fea, 0x057b: 0x32f6,
-	0x057c: 0x2fd6, 0x057d: 0x32e2, 0x057e: 0x38c4, 0x057f: 0x3a53,
-	// Block 0x16, offset 0x580
-	0x0580: 0x38bd, 0x0581: 0x3a4c, 0x0582: 0x38d2, 0x0583: 0x3a61, 0x0584: 0x38cb, 0x0585: 0x3a5a,
-	0x0586: 0x38e7, 0x0587: 0x3a76, 0x0588: 0x307b, 0x0589: 0x3387, 0x058a: 0x308f, 0x058b: 0x339b,
-	0x058c: 0x46cd, 0x058d: 0x475e, 0x058e: 0x3120, 0x058f: 0x3431, 0x0590: 0x390a, 0x0591: 0x3a99,
-	0x0592: 0x3903, 0x0593: 0x3a92, 0x0594: 0x3918, 0x0595: 0x3aa7, 0x0596: 0x3911, 0x0597: 0x3aa0,
-	0x0598: 0x3973, 0x0599: 0x3b02, 0x059a: 0x3957, 0x059b: 0x3ae6, 0x059c: 0x3950, 0x059d: 0x3adf,
-	0x059e: 0x3965, 0x059f: 0x3af4, 0x05a0: 0x395e, 0x05a1: 0x3aed, 0x05a2: 0x396c, 0x05a3: 0x3afb,
-	0x05a4: 0x31cf, 0x05a5: 0x34e5, 0x05a6: 0x31b1, 0x05a7: 0x34c7, 0x05a8: 0x39ce, 0x05a9: 0x3b5d,
-	0x05aa: 0x39c7, 0x05ab: 0x3b56, 0x05ac: 0x39dc, 0x05ad: 0x3b6b, 0x05ae: 0x39d5, 0x05af: 0x3b64,
-	0x05b0: 0x39e3, 0x05b1: 0x3b72, 0x05b2: 0x321a, 0x05b3: 0x3535, 0x05b4: 0x3242, 0x05b5: 0x3562,
-	0x05b6: 0x323d, 0x05b7: 0x3558, 0x05b8: 0x3229, 0x05b9: 0x3544,
-	// Block 0x17, offset 0x5c0
-	0x05c0: 0x47ea, 0x05c1: 0x47f0, 0x05c2: 0x4904, 0x05c3: 0x491c, 0x05c4: 0x490c, 0x05c5: 0x4924,
-	0x05c6: 0x4914, 0x05c7: 0x492c, 0x05c8: 0x4790, 0x05c9: 0x4796, 0x05ca: 0x4874, 0x05cb: 0x488c,
-	0x05cc: 0x487c, 0x05cd: 0x4894, 0x05ce: 0x4884, 0x05cf: 0x489c, 0x05d0: 0x47fc, 0x05d1: 0x4802,
-	0x05d2: 0x3da2, 0x05d3: 0x3db2, 0x05d4: 0x3daa, 0x05d5: 0x3dba,
-	0x05d8: 0x479c, 0x05d9: 0x47a2, 0x05da: 0x3cd2, 0x05db: 0x3ce2, 0x05dc: 0x3cda, 0x05dd: 0x3cea,
-	0x05e0: 0x4814, 0x05e1: 0x481a, 0x05e2: 0x4934, 0x05e3: 0x494c,
-	0x05e4: 0x493c, 0x05e5: 0x4954, 0x05e6: 0x4944, 0x05e7: 0x495c, 0x05e8: 0x47a8, 0x05e9: 0x47ae,
-	0x05ea: 0x48a4, 0x05eb: 0x48bc, 0x05ec: 0x48ac, 0x05ed: 0x48c4, 0x05ee: 0x48b4, 0x05ef: 0x48cc,
-	0x05f0: 0x482c, 0x05f1: 0x4832, 0x05f2: 0x3e02, 0x05f3: 0x3e1a, 0x05f4: 0x3e0a, 0x05f5: 0x3e22,
-	0x05f6: 0x3e12, 0x05f7: 0x3e2a, 0x05f8: 0x47b4, 0x05f9: 0x47ba, 0x05fa: 0x3d02, 0x05fb: 0x3d1a,
-	0x05fc: 0x3d0a, 0x05fd: 0x3d22, 0x05fe: 0x3d12, 0x05ff: 0x3d2a,
-	// Block 0x18, offset 0x600
-	0x0600: 0x4838, 0x0601: 0x483e, 0x0602: 0x3e32, 0x0603: 0x3e42, 0x0604: 0x3e3a, 0x0605: 0x3e4a,
-	0x0608: 0x47c0, 0x0609: 0x47c6, 0x060a: 0x3d32, 0x060b: 0x3d42,
-	0x060c: 0x3d3a, 0x060d: 0x3d4a, 0x0610: 0x484a, 0x0611: 0x4850,
-	0x0612: 0x3e6a, 0x0613: 0x3e82, 0x0614: 0x3e72, 0x0615: 0x3e8a, 0x0616: 0x3e7a, 0x0617: 0x3e92,
-	0x0619: 0x47cc, 0x061b: 0x3d52, 0x061d: 0x3d5a,
-	0x061f: 0x3d62, 0x0620: 0x4862, 0x0621: 0x4868, 0x0622: 0x4964, 0x0623: 0x497c,
-	0x0624: 0x496c, 0x0625: 0x4984, 0x0626: 0x4974, 0x0627: 0x498c, 0x0628: 0x47d2, 0x0629: 0x47d8,
-	0x062a: 0x48d4, 0x062b: 0x48ec, 0x062c: 0x48dc, 0x062d: 0x48f4, 0x062e: 0x48e4, 0x062f: 0x48fc,
-	0x0630: 0x47de, 0x0631: 0x4304, 0x0632: 0x367b, 0x0633: 0x430a, 0x0634: 0x4808, 0x0635: 0x4310,
-	0x0636: 0x368d, 0x0637: 0x4316, 0x0638: 0x36ab, 0x0639: 0x431c, 0x063a: 0x36c3, 0x063b: 0x4322,
-	0x063c: 0x4856, 0x063d: 0x4328,
-	// Block 0x19, offset 0x640
-	0x0640: 0x3d8a, 0x0641: 0x3d92, 0x0642: 0x416e, 0x0643: 0x418c, 0x0644: 0x4178, 0x0645: 0x4196,
-	0x0646: 0x4182, 0x0647: 0x41a0, 0x0648: 0x3cc2, 0x0649: 0x3cca, 0x064a: 0x40ba, 0x064b: 0x40d8,
-	0x064c: 0x40c4, 0x064d: 0x40e2, 0x064e: 0x40ce, 0x064f: 0x40ec, 0x0650: 0x3dd2, 0x0651: 0x3dda,
-	0x0652: 0x41aa, 0x0653: 0x41c8, 0x0654: 0x41b4, 0x0655: 0x41d2, 0x0656: 0x41be, 0x0657: 0x41dc,
-	0x0658: 0x3cf2, 0x0659: 0x3cfa, 0x065a: 0x40f6, 0x065b: 0x4114, 0x065c: 0x4100, 0x065d: 0x411e,
-	0x065e: 0x410a, 0x065f: 0x4128, 0x0660: 0x3eaa, 0x0661: 0x3eb2, 0x0662: 0x41e6, 0x0663: 0x4204,
-	0x0664: 0x41f0, 0x0665: 0x420e, 0x0666: 0x41fa, 0x0667: 0x4218, 0x0668: 0x3d6a, 0x0669: 0x3d72,
-	0x066a: 0x4132, 0x066b: 0x4150, 0x066c: 0x413c, 0x066d: 0x415a, 0x066e: 0x4146, 0x066f: 0x4164,
-	0x0670: 0x366f, 0x0671: 0x3669, 0x0672: 0x3d7a, 0x0673: 0x3675, 0x0674: 0x3d82,
-	0x0676: 0x47f6, 0x0677: 0x3d9a, 0x0678: 0x35df, 0x0679: 0x35d9, 0x067a: 0x35cd, 0x067b: 0x42d4,
-	0x067c: 0x35e5, 0x067d: 0x426d, 0x067e: 0x01d3, 0x067f: 0x426d,
-	// Block 0x1a, offset 0x680
-	0x0680: 0x4286, 0x0681: 0x4468, 0x0682: 0x3dc2, 0x0683: 0x3687, 0x0684: 0x3dca,
-	0x0686: 0x4820, 0x0687: 0x3de2, 0x0688: 0x35eb, 0x0689: 0x42da, 0x068a: 0x35f7, 0x068b: 0x42e0,
-	0x068c: 0x3603, 0x068d: 0x446f, 0x068e: 0x4476, 0x068f: 0x447d, 0x0690: 0x369f, 0x0691: 0x3699,
-	0x0692: 0x3dea, 0x0693: 0x44ca, 0x0696: 0x36a5, 0x0697: 0x3dfa,
-	0x0698: 0x361b, 0x0699: 0x3615, 0x069a: 0x3609, 0x069b: 0x42e6, 0x069d: 0x4484,
-	0x069e: 0x448b, 0x069f: 0x4492, 0x06a0: 0x36d5, 0x06a1: 0x36cf, 0x06a2: 0x3e52, 0x06a3: 0x44d2,
-	0x06a4: 0x36b7, 0x06a5: 0x36bd, 0x06a6: 0x36db, 0x06a7: 0x3e62, 0x06a8: 0x364b, 0x06a9: 0x3645,
-	0x06aa: 0x3639, 0x06ab: 0x42f2, 0x06ac: 0x3633, 0x06ad: 0x445a, 0x06ae: 0x4461, 0x06af: 0x0081,
-	0x06b2: 0x3e9a, 0x06b3: 0x36e1, 0x06b4: 0x3ea2,
-	0x06b6: 0x486e, 0x06b7: 0x3eba, 0x06b8: 0x3627, 0x06b9: 0x42ec, 0x06ba: 0x3657, 0x06bb: 0x42fe,
-	0x06bc: 0x3663, 0x06bd: 0x4240, 0x06be: 0x4272,
-	// Block 0x1b, offset 0x6c0
-	0x06c0: 0x1d1a, 0x06c1: 0x1d1e, 0x06c2: 0x0047, 0x06c3: 0x1d96, 0x06c5: 0x1d2a,
-	0x06c6: 0x1d2e, 0x06c7: 0x00ec, 0x06c9: 0x1d9a, 0x06ca: 0x008f, 0x06cb: 0x0051,
-	0x06cc: 0x0051, 0x06cd: 0x0051, 0x06ce: 0x0091, 0x06cf: 0x00dd, 0x06d0: 0x0053, 0x06d1: 0x0053,
-	0x06d2: 0x0059, 0x06d3: 0x0099, 0x06d5: 0x005d, 0x06d6: 0x1acf,
-	0x06d9: 0x0061, 0x06da: 0x0063, 0x06db: 0x0065, 0x06dc: 0x0065, 0x06dd: 0x0065,
-	0x06e0: 0x1ae1, 0x06e1: 0x1d0a, 0x06e2: 0x1aea,
-	0x06e4: 0x0075, 0x06e6: 0x01b8, 0x06e8: 0x0075,
-	0x06ea: 0x0057, 0x06eb: 0x42b8, 0x06ec: 0x0045, 0x06ed: 0x0047, 0x06ef: 0x008b,
-	0x06f0: 0x004b, 0x06f1: 0x004d, 0x06f3: 0x005b, 0x06f4: 0x009f, 0x06f5: 0x020f,
-	0x06f6: 0x0212, 0x06f7: 0x0215, 0x06f8: 0x0218, 0x06f9: 0x0093, 0x06fb: 0x1cda,
-	0x06fc: 0x01e8, 0x06fd: 0x01c1, 0x06fe: 0x0179, 0x06ff: 0x01a0,
-	// Block 0x1c, offset 0x700
-	0x0700: 0x04d5, 0x0705: 0x0049,
-	0x0706: 0x0089, 0x0707: 0x008b, 0x0708: 0x0093, 0x0709: 0x0095,
-	0x0710: 0x2370, 0x0711: 0x237c,
-	0x0712: 0x2430, 0x0713: 0x2358, 0x0714: 0x23dc, 0x0715: 0x2364, 0x0716: 0x23e2, 0x0717: 0x23fa,
-	0x0718: 0x2406, 0x0719: 0x236a, 0x071a: 0x240c, 0x071b: 0x2376, 0x071c: 0x2400, 0x071d: 0x2412,
-	0x071e: 0x2418, 0x071f: 0x1dfe, 0x0720: 0x0053, 0x0721: 0x1a9c, 0x0722: 0x1ce6, 0x0723: 0x1aa5,
-	0x0724: 0x006d, 0x0725: 0x1aed, 0x0726: 0x1d12, 0x0727: 0x1e8a, 0x0728: 0x1aa8, 0x0729: 0x0071,
-	0x072a: 0x1af9, 0x072b: 0x1d16, 0x072c: 0x0059, 0x072d: 0x0047, 0x072e: 0x0049, 0x072f: 0x005b,
-	0x0730: 0x0093, 0x0731: 0x1b26, 0x0732: 0x1d5a, 0x0733: 0x1b2f, 0x0734: 0x00ad, 0x0735: 0x1ba4,
-	0x0736: 0x1d8e, 0x0737: 0x1e9e, 0x0738: 0x1b32, 0x0739: 0x00b1, 0x073a: 0x1ba7, 0x073b: 0x1d92,
-	0x073c: 0x0099, 0x073d: 0x0087, 0x073e: 0x0089, 0x073f: 0x009b,
-	// Block 0x1d, offset 0x740
-	0x0741: 0x3bf0, 0x0743: 0x8800, 0x0744: 0x3bf7, 0x0745: 0x8800,
-	0x0747: 0x3bfe, 0x0748: 0x8800, 0x0749: 0x3c05,
-	0x074d: 0x8800,
-	0x0760: 0x2f4f, 0x0761: 0x8800, 0x0762: 0x3c13,
-	0x0764: 0x8800, 0x0765: 0x8800,
-	0x076d: 0x3c0c, 0x076e: 0x2f4a, 0x076f: 0x2f54,
-	0x0770: 0x3c1a, 0x0771: 0x3c21, 0x0772: 0x8800, 0x0773: 0x8800, 0x0774: 0x3c28, 0x0775: 0x3c2f,
-	0x0776: 0x8800, 0x0777: 0x8800, 0x0778: 0x3c36, 0x0779: 0x3c3d, 0x077a: 0x8800, 0x077b: 0x8800,
-	0x077c: 0x8800, 0x077d: 0x8800,
-	// Block 0x1e, offset 0x780
-	0x0780: 0x3c44, 0x0781: 0x3c4b, 0x0782: 0x8800, 0x0783: 0x8800, 0x0784: 0x3c60, 0x0785: 0x3c67,
-	0x0786: 0x8800, 0x0787: 0x8800, 0x0788: 0x3c6e, 0x0789: 0x3c75,
-	0x0791: 0x8800,
-	0x0792: 0x8800,
-	0x07a2: 0x8800,
-	0x07a8: 0x8800, 0x07a9: 0x8800,
-	0x07ab: 0x8800, 0x07ac: 0x3c8a, 0x07ad: 0x3c91, 0x07ae: 0x3c98, 0x07af: 0x3c9f,
-	0x07b2: 0x8800, 0x07b3: 0x8800, 0x07b4: 0x8800, 0x07b5: 0x8800,
-	// Block 0x1f, offset 0x7c0
-	0x07e0: 0x0023, 0x07e1: 0x0025, 0x07e2: 0x0027, 0x07e3: 0x0029,
-	0x07e4: 0x002b, 0x07e5: 0x002d, 0x07e6: 0x002f, 0x07e7: 0x0031, 0x07e8: 0x0033, 0x07e9: 0x19c4,
-	0x07ea: 0x19c7, 0x07eb: 0x19ca, 0x07ec: 0x19cd, 0x07ed: 0x19d0, 0x07ee: 0x19d3, 0x07ef: 0x19d6,
-	0x07f0: 0x19d9, 0x07f1: 0x19dc, 0x07f2: 0x19df, 0x07f3: 0x19e8, 0x07f4: 0x1baa, 0x07f5: 0x1bae,
-	0x07f6: 0x1bb2, 0x07f7: 0x1bb6, 0x07f8: 0x1bba, 0x07f9: 0x1bbe, 0x07fa: 0x1bc2, 0x07fb: 0x1bc6,
-	0x07fc: 0x1bca, 0x07fd: 0x1dc2, 0x07fe: 0x1dc7, 0x07ff: 0x1dcc,
-	// Block 0x20, offset 0x800
-	0x0800: 0x1dd1, 0x0801: 0x1dd6, 0x0802: 0x1ddb, 0x0803: 0x1de0, 0x0804: 0x1de5, 0x0805: 0x1dea,
-	0x0806: 0x1def, 0x0807: 0x1df4, 0x0808: 0x19c1, 0x0809: 0x19e5, 0x080a: 0x1a09, 0x080b: 0x1a2d,
-	0x080c: 0x1a51, 0x080d: 0x1a5a, 0x080e: 0x1a60, 0x080f: 0x1a66, 0x0810: 0x1a6c, 0x0811: 0x1ca2,
-	0x0812: 0x1ca6, 0x0813: 0x1caa, 0x0814: 0x1cae, 0x0815: 0x1cb2, 0x0816: 0x1cb6, 0x0817: 0x1cba,
-	0x0818: 0x1cbe, 0x0819: 0x1cc2, 0x081a: 0x1cc6, 0x081b: 0x1cca, 0x081c: 0x1c36, 0x081d: 0x1c3a,
-	0x081e: 0x1c3e, 0x081f: 0x1c42, 0x0820: 0x1c46, 0x0821: 0x1c4a, 0x0822: 0x1c4e, 0x0823: 0x1c52,
-	0x0824: 0x1c56, 0x0825: 0x1c5a, 0x0826: 0x1c5e, 0x0827: 0x1c62, 0x0828: 0x1c66, 0x0829: 0x1c6a,
-	0x082a: 0x1c6e, 0x082b: 0x1c72, 0x082c: 0x1c76, 0x082d: 0x1c7a, 0x082e: 0x1c7e, 0x082f: 0x1c82,
-	0x0830: 0x1c86, 0x0831: 0x1c8a, 0x0832: 0x1c8e, 0x0833: 0x1c92, 0x0834: 0x1c96, 0x0835: 0x1c9a,
-	0x0836: 0x0043, 0x0837: 0x0045, 0x0838: 0x0047, 0x0839: 0x0049, 0x083a: 0x004b, 0x083b: 0x004d,
-	0x083c: 0x004f, 0x083d: 0x0051, 0x083e: 0x0053, 0x083f: 0x0055,
-	// Block 0x21, offset 0x840
-	0x0840: 0x0731, 0x0841: 0x0755, 0x0842: 0x0761, 0x0843: 0x0771, 0x0844: 0x0779, 0x0845: 0x0785,
-	0x0846: 0x078d, 0x0847: 0x0795, 0x0848: 0x07a1, 0x0849: 0x07f5, 0x084a: 0x080d, 0x084b: 0x081d,
-	0x084c: 0x082d, 0x084d: 0x083d, 0x084e: 0x084d, 0x084f: 0x086d, 0x0850: 0x0871, 0x0851: 0x0875,
-	0x0852: 0x08a9, 0x0853: 0x08d1, 0x0854: 0x08e1, 0x0855: 0x08e9, 0x0856: 0x08ed, 0x0857: 0x08f9,
-	0x0858: 0x0915, 0x0859: 0x0919, 0x085a: 0x0931, 0x085b: 0x0935, 0x085c: 0x093d, 0x085d: 0x094d,
-	0x085e: 0x09e9, 0x085f: 0x09fd, 0x0860: 0x0a3d, 0x0861: 0x0a51, 0x0862: 0x0a59, 0x0863: 0x0a5d,
-	0x0864: 0x0a6d, 0x0865: 0x0a89, 0x0866: 0x0ab5, 0x0867: 0x0ac1, 0x0868: 0x0ae1, 0x0869: 0x0aed,
-	0x086a: 0x0af1, 0x086b: 0x0af5, 0x086c: 0x0b0d, 0x086d: 0x0b11, 0x086e: 0x0b3d, 0x086f: 0x0b49,
-	0x0870: 0x0b51, 0x0871: 0x0b59, 0x0872: 0x0b69, 0x0873: 0x0b71, 0x0874: 0x0b79, 0x0875: 0x0ba5,
-	0x0876: 0x0ba9, 0x0877: 0x0bb1, 0x0878: 0x0bb5, 0x0879: 0x0bbd, 0x087a: 0x0bc5, 0x087b: 0x0bd5,
-	0x087c: 0x0bf1, 0x087d: 0x0c69, 0x087e: 0x0c7d, 0x087f: 0x0c81,
-	// Block 0x22, offset 0x880
-	0x0880: 0x0d01, 0x0881: 0x0d05, 0x0882: 0x0d19, 0x0883: 0x0d1d, 0x0884: 0x0d25, 0x0885: 0x0d2d,
-	0x0886: 0x0d35, 0x0887: 0x0d41, 0x0888: 0x0d69, 0x0889: 0x0d79, 0x088a: 0x0d8d, 0x088b: 0x0dfd,
-	0x088c: 0x0e09, 0x088d: 0x0e19, 0x088e: 0x0e25, 0x088f: 0x0e31, 0x0890: 0x0e39, 0x0891: 0x0e3d,
-	0x0892: 0x0e41, 0x0893: 0x0e45, 0x0894: 0x0e49, 0x0895: 0x0f01, 0x0896: 0x0f49, 0x0897: 0x0f55,
-	0x0898: 0x0f59, 0x0899: 0x0f5d, 0x089a: 0x0f61, 0x089b: 0x0f69, 0x089c: 0x0f6d, 0x089d: 0x0f81,
-	0x089e: 0x0f9d, 0x089f: 0x0fa5, 0x08a0: 0x0fe5, 0x08a1: 0x0fe9, 0x08a2: 0x0ff1, 0x08a3: 0x0ff5,
-	0x08a4: 0x0ffd, 0x08a5: 0x1001, 0x08a6: 0x1025, 0x08a7: 0x1029, 0x08a8: 0x1045, 0x08a9: 0x1049,
-	0x08aa: 0x104d, 0x08ab: 0x1051, 0x08ac: 0x1065, 0x08ad: 0x1089, 0x08ae: 0x108d, 0x08af: 0x1091,
-	0x08b0: 0x10b5, 0x08b1: 0x10f5, 0x08b2: 0x10f9, 0x08b3: 0x1119, 0x08b4: 0x1129, 0x08b5: 0x1131,
-	0x08b6: 0x1151, 0x08b7: 0x1175, 0x08b8: 0x11b9, 0x08b9: 0x11c1, 0x08ba: 0x11d5, 0x08bb: 0x11e1,
-	0x08bc: 0x11e9, 0x08bd: 0x11f1, 0x08be: 0x11f5, 0x08bf: 0x11f9,
-	// Block 0x23, offset 0x8c0
-	0x08c0: 0x1211, 0x08c1: 0x1215, 0x08c2: 0x1231, 0x08c3: 0x1239, 0x08c4: 0x1241, 0x08c5: 0x1245,
-	0x08c6: 0x1251, 0x08c7: 0x1259, 0x08c8: 0x125d, 0x08c9: 0x1261, 0x08ca: 0x1269, 0x08cb: 0x126d,
-	0x08cc: 0x130d, 0x08cd: 0x1321, 0x08ce: 0x1355, 0x08cf: 0x1359, 0x08d0: 0x1361, 0x08d1: 0x138d,
-	0x08d2: 0x1395, 0x08d3: 0x139d, 0x08d4: 0x13a5, 0x08d5: 0x13e1, 0x08d6: 0x13e5, 0x08d7: 0x13ed,
-	0x08d8: 0x13f1, 0x08d9: 0x13f5, 0x08da: 0x1421, 0x08db: 0x1425, 0x08dc: 0x142d, 0x08dd: 0x1441,
-	0x08de: 0x1445, 0x08df: 0x1461, 0x08e0: 0x1469, 0x08e1: 0x146d, 0x08e2: 0x1491, 0x08e3: 0x14b1,
-	0x08e4: 0x14c1, 0x08e5: 0x14c5, 0x08e6: 0x14cd, 0x08e7: 0x14f9, 0x08e8: 0x14fd, 0x08e9: 0x150d,
-	0x08ea: 0x1531, 0x08eb: 0x153d, 0x08ec: 0x154d, 0x08ed: 0x1565, 0x08ee: 0x156d, 0x08ef: 0x1571,
-	0x08f0: 0x1575, 0x08f1: 0x1579, 0x08f2: 0x1585, 0x08f3: 0x1589, 0x08f4: 0x1591, 0x08f5: 0x15ad,
-	0x08f6: 0x15b1, 0x08f7: 0x15b5, 0x08f8: 0x15cd, 0x08f9: 0x15d1, 0x08fa: 0x15d9, 0x08fb: 0x15ed,
-	0x08fc: 0x15f1, 0x08fd: 0x15f5, 0x08fe: 0x15fd, 0x08ff: 0x1601,
-	// Block 0x24, offset 0x900
-	0x0906: 0x8800, 0x090b: 0x8800,
-	0x090c: 0x3ef2, 0x090d: 0x8800, 0x090e: 0x3efa, 0x090f: 0x8800, 0x0910: 0x3f02, 0x0911: 0x8800,
-	0x0912: 0x3f0a, 0x0913: 0x8800, 0x0914: 0x3f12, 0x0915: 0x8800, 0x0916: 0x3f1a, 0x0917: 0x8800,
-	0x0918: 0x3f22, 0x0919: 0x8800, 0x091a: 0x3f2a, 0x091b: 0x8800, 0x091c: 0x3f32, 0x091d: 0x8800,
-	0x091e: 0x3f3a, 0x091f: 0x8800, 0x0920: 0x3f42, 0x0921: 0x8800, 0x0922: 0x3f4a,
-	0x0924: 0x8800, 0x0925: 0x3f52, 0x0926: 0x8800, 0x0927: 0x3f5a, 0x0928: 0x8800, 0x0929: 0x3f62,
-	0x092f: 0x8800,
-	0x0930: 0x3f6a, 0x0931: 0x3f72, 0x0932: 0x8800, 0x0933: 0x3f7a, 0x0934: 0x3f82, 0x0935: 0x8800,
-	0x0936: 0x3f8a, 0x0937: 0x3f92, 0x0938: 0x8800, 0x0939: 0x3f9a, 0x093a: 0x3fa2, 0x093b: 0x8800,
-	0x093c: 0x3faa, 0x093d: 0x3fb2,
-	// Block 0x25, offset 0x940
-	0x0954: 0x3eea,
-	0x0959: 0x8608, 0x095a: 0x8608, 0x095b: 0x42c2, 0x095c: 0x42c8, 0x095d: 0x8800,
-	0x095e: 0x3fba, 0x095f: 0x285f,
-	0x0966: 0x8800,
-	0x096b: 0x8800, 0x096c: 0x3fca, 0x096d: 0x8800, 0x096e: 0x3fd2, 0x096f: 0x8800,
-	0x0970: 0x3fda, 0x0971: 0x8800, 0x0972: 0x3fe2, 0x0973: 0x8800, 0x0974: 0x3fea, 0x0975: 0x8800,
-	0x0976: 0x3ff2, 0x0977: 0x8800, 0x0978: 0x3ffa, 0x0979: 0x8800, 0x097a: 0x4002, 0x097b: 0x8800,
-	0x097c: 0x400a, 0x097d: 0x8800, 0x097e: 0x4012, 0x097f: 0x8800,
-	// Block 0x26, offset 0x980
-	0x0980: 0x401a, 0x0981: 0x8800, 0x0982: 0x4022, 0x0984: 0x8800, 0x0985: 0x402a,
-	0x0986: 0x8800, 0x0987: 0x4032, 0x0988: 0x8800, 0x0989: 0x403a,
-	0x098f: 0x8800, 0x0990: 0x4042, 0x0991: 0x404a,
-	0x0992: 0x8800, 0x0993: 0x4052, 0x0994: 0x405a, 0x0995: 0x8800, 0x0996: 0x4062, 0x0997: 0x406a,
-	0x0998: 0x8800, 0x0999: 0x4072, 0x099a: 0x407a, 0x099b: 0x8800, 0x099c: 0x4082, 0x099d: 0x408a,
-	0x09af: 0x8800,
-	0x09b0: 0x8800, 0x09b1: 0x8800, 0x09b2: 0x8800, 0x09b4: 0x3fc2,
-	0x09b7: 0x4092, 0x09b8: 0x409a, 0x09b9: 0x40a2, 0x09ba: 0x40aa,
-	0x09bd: 0x8800, 0x09be: 0x40b2, 0x09bf: 0x2874,
-	// Block 0x27, offset 0x9c0
-	0x09c0: 0x03a9, 0x09c1: 0x03ad, 0x09c2: 0x047d, 0x09c3: 0x0481, 0x09c4: 0x03b1, 0x09c5: 0x03b5,
-	0x09c6: 0x03b9, 0x09c7: 0x0415, 0x09c8: 0x0419, 0x09c9: 0x041d, 0x09ca: 0x0421, 0x09cb: 0x0425,
-	0x09cc: 0x0429, 0x09cd: 0x042d, 0x09ce: 0x0431,
-	0x09d2: 0x0731, 0x09d3: 0x078d, 0x09d4: 0x073d, 0x09d5: 0x09ed, 0x09d6: 0x0741, 0x09d7: 0x0759,
-	0x09d8: 0x0745, 0x09d9: 0x1005, 0x09da: 0x0779, 0x09db: 0x074d, 0x09dc: 0x0735, 0x09dd: 0x0a71,
-	0x09de: 0x0a01, 0x09df: 0x07a1,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x2196, 0x0a01: 0x219c, 0x0a02: 0x21a2, 0x0a03: 0x21a8, 0x0a04: 0x21ae, 0x0a05: 0x21b4,
-	0x0a06: 0x21ba, 0x0a07: 0x21c0, 0x0a08: 0x21c6, 0x0a09: 0x21cc, 0x0a0a: 0x21d2, 0x0a0b: 0x21d8,
-	0x0a0c: 0x21de, 0x0a0d: 0x21e4, 0x0a0e: 0x28d1, 0x0a0f: 0x28da, 0x0a10: 0x28e3, 0x0a11: 0x28ec,
-	0x0a12: 0x28f5, 0x0a13: 0x28fe, 0x0a14: 0x2907, 0x0a15: 0x2910, 0x0a16: 0x2919, 0x0a17: 0x292b,
-	0x0a18: 0x2934, 0x0a19: 0x293d, 0x0a1a: 0x2946, 0x0a1b: 0x294f, 0x0a1c: 0x2922, 0x0a1d: 0x2d74,
-	0x0a1e: 0x2ca5, 0x0a20: 0x21ea, 0x0a21: 0x2202, 0x0a22: 0x21f6, 0x0a23: 0x224a,
-	0x0a24: 0x2208, 0x0a25: 0x2226, 0x0a26: 0x21f0, 0x0a27: 0x2220, 0x0a28: 0x21fc, 0x0a29: 0x2232,
-	0x0a2a: 0x2262, 0x0a2b: 0x2280, 0x0a2c: 0x227a, 0x0a2d: 0x226e, 0x0a2e: 0x22bc, 0x0a2f: 0x2250,
-	0x0a30: 0x225c, 0x0a31: 0x2274, 0x0a32: 0x2268, 0x0a33: 0x2292, 0x0a34: 0x223e, 0x0a35: 0x2286,
-	0x0a36: 0x22b0, 0x0a37: 0x2298, 0x0a38: 0x222c, 0x0a39: 0x220e, 0x0a3a: 0x2244, 0x0a3b: 0x2256,
-	0x0a3c: 0x228c, 0x0a3d: 0x2214, 0x0a3e: 0x22b6, 0x0a3f: 0x2238,
-	// Block 0x29, offset 0xa40
-	0x0a40: 0x229e, 0x0a41: 0x221a, 0x0a42: 0x22a4, 0x0a43: 0x22aa, 0x0a44: 0x09a1, 0x0a45: 0x0b75,
-	0x0a46: 0x0d19, 0x0a47: 0x1139,
-	0x0a50: 0x1d06, 0x0a51: 0x19eb,
-	0x0a52: 0x19ee, 0x0a53: 0x19f1, 0x0a54: 0x19f4, 0x0a55: 0x19f7, 0x0a56: 0x19fa, 0x0a57: 0x19fd,
-	0x0a58: 0x1a00, 0x0a59: 0x1a03, 0x0a5a: 0x1a0c, 0x0a5b: 0x1a0f, 0x0a5c: 0x1a12, 0x0a5d: 0x1a15,
-	0x0a5e: 0x1a18, 0x0a5f: 0x1a1b, 0x0a60: 0x030d, 0x0a61: 0x0315, 0x0a62: 0x0319, 0x0a63: 0x0321,
-	0x0a64: 0x0325, 0x0a65: 0x0329, 0x0a66: 0x0331, 0x0a67: 0x0339, 0x0a68: 0x033d, 0x0a69: 0x0345,
-	0x0a6a: 0x0349, 0x0a6b: 0x034d, 0x0a6c: 0x0351, 0x0a6d: 0x0355, 0x0a6e: 0x27d3, 0x0a6f: 0x27da,
-	0x0a70: 0x27e1, 0x0a71: 0x27e8, 0x0a72: 0x27ef, 0x0a73: 0x27f6, 0x0a74: 0x27fd, 0x0a75: 0x2804,
-	0x0a76: 0x2812, 0x0a77: 0x2819, 0x0a78: 0x2820, 0x0a79: 0x2827, 0x0a7a: 0x282e, 0x0a7b: 0x2835,
-	0x0a7c: 0x2cc4, 0x0a7d: 0x2b39, 0x0a7e: 0x280b,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x0731, 0x0a81: 0x078d, 0x0a82: 0x073d, 0x0a83: 0x09ed, 0x0a84: 0x0791, 0x0a85: 0x0821,
-	0x0a86: 0x0739, 0x0a87: 0x081d, 0x0a88: 0x077d, 0x0a89: 0x08f9, 0x0a8a: 0x0d79, 0x0a8b: 0x0f01,
-	0x0a8c: 0x0e49, 0x0a8d: 0x0d8d, 0x0a8e: 0x14cd, 0x0a8f: 0x09fd, 0x0a90: 0x0d41, 0x0a91: 0x0dbd,
-	0x0a92: 0x0d7d, 0x0a93: 0x10bd, 0x0a94: 0x096d, 0x0a95: 0x0f75, 0x0a96: 0x13f9, 0x0a97: 0x10d1,
-	0x0a98: 0x08b5, 0x0a99: 0x1101, 0x0a9a: 0x100d, 0x0a9b: 0x0a89, 0x0a9c: 0x1481, 0x0a9d: 0x07f1,
-	0x0a9e: 0x091d, 0x0a9f: 0x0e69, 0x0aa0: 0x1595, 0x0aa1: 0x07b5, 0x0aa2: 0x0845, 0x0aa3: 0x0e0d,
-	0x0aa4: 0x0741, 0x0aa5: 0x0759, 0x0aa6: 0x0745, 0x0aa7: 0x0b4d, 0x0aa8: 0x0961, 0x0aa9: 0x08f1,
-	0x0aaa: 0x0ac9, 0x0aab: 0x0abd, 0x0aac: 0x105d, 0x0aad: 0x07b1, 0x0aae: 0x140d, 0x0aaf: 0x090d,
-	0x0ab0: 0x0a65, 0x0ab1: 0x1a1e, 0x0ab2: 0x1a21, 0x0ab3: 0x1a24, 0x0ab4: 0x1a27, 0x0ab5: 0x1a30,
-	0x0ab6: 0x1a33, 0x0ab7: 0x1a36, 0x0ab8: 0x1a39, 0x0ab9: 0x1a3c, 0x0aba: 0x1a3f, 0x0abb: 0x1a42,
-	0x0abc: 0x1a45, 0x0abd: 0x1a48, 0x0abe: 0x1a4b, 0x0abf: 0x1a54,
-	// Block 0x2b, offset 0xac0
-	0x0ac0: 0x1e08, 0x0ac1: 0x1e17, 0x0ac2: 0x1e26, 0x0ac3: 0x1e35, 0x0ac4: 0x1e44, 0x0ac5: 0x1e53,
-	0x0ac6: 0x1e62, 0x0ac7: 0x1e71, 0x0ac8: 0x1e80, 0x0ac9: 0x22ce, 0x0aca: 0x22e0, 0x0acb: 0x22f2,
-	0x0acc: 0x1a96, 0x0acd: 0x1d46, 0x0ace: 0x1b14, 0x0acf: 0x1cea, 0x0ad0: 0x053d, 0x0ad1: 0x0545,
-	0x0ad2: 0x054d, 0x0ad3: 0x0555, 0x0ad4: 0x055d, 0x0ad5: 0x0561, 0x0ad6: 0x0565, 0x0ad7: 0x0569,
-	0x0ad8: 0x056d, 0x0ad9: 0x0571, 0x0ada: 0x0575, 0x0adb: 0x0579, 0x0adc: 0x057d, 0x0add: 0x0581,
-	0x0ade: 0x0585, 0x0adf: 0x0589, 0x0ae0: 0x058d, 0x0ae1: 0x0595, 0x0ae2: 0x0599, 0x0ae3: 0x059d,
-	0x0ae4: 0x05a1, 0x0ae5: 0x05a5, 0x0ae6: 0x05a9, 0x0ae7: 0x05ad, 0x0ae8: 0x05b1, 0x0ae9: 0x05b5,
-	0x0aea: 0x05b9, 0x0aeb: 0x05bd, 0x0aec: 0x05c1, 0x0aed: 0x05c5, 0x0aee: 0x05c9, 0x0aef: 0x05cd,
-	0x0af0: 0x05d1, 0x0af1: 0x05d5, 0x0af2: 0x05d9, 0x0af3: 0x05e1, 0x0af4: 0x05e9, 0x0af5: 0x05f1,
-	0x0af6: 0x05f5, 0x0af7: 0x05f9, 0x0af8: 0x05fd, 0x0af9: 0x0601, 0x0afa: 0x0605, 0x0afb: 0x0609,
-	0x0afc: 0x060d, 0x0afd: 0x0611, 0x0afe: 0x0615,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x2cd4, 0x0b01: 0x2b60, 0x0b02: 0x2ce4, 0x0b03: 0x2a2b, 0x0b04: 0x2ede, 0x0b05: 0x2a35,
-	0x0b06: 0x2a3f, 0x0b07: 0x2f22, 0x0b08: 0x2b6d, 0x0b09: 0x2a49, 0x0b0a: 0x2a53, 0x0b0b: 0x2a5d,
-	0x0b0c: 0x2b94, 0x0b0d: 0x2ba1, 0x0b0e: 0x2b7a, 0x0b0f: 0x2b87, 0x0b10: 0x2eb4, 0x0b11: 0x2bae,
-	0x0b12: 0x2bbb, 0x0b13: 0x2d86, 0x0b14: 0x2866, 0x0b15: 0x2d99, 0x0b16: 0x2dac, 0x0b17: 0x2cf4,
-	0x0b18: 0x2bc8, 0x0b19: 0x2dbf, 0x0b1a: 0x2dd2, 0x0b1b: 0x2bd5, 0x0b1c: 0x2a67, 0x0b1d: 0x2a71,
-	0x0b1e: 0x2ec2, 0x0b1f: 0x2be2, 0x0b20: 0x2d04, 0x0b21: 0x2eef, 0x0b22: 0x2a7b, 0x0b23: 0x2a85,
-	0x0b24: 0x2bef, 0x0b25: 0x2a8f, 0x0b26: 0x2a99, 0x0b27: 0x287b, 0x0b28: 0x2882, 0x0b29: 0x2aa3,
-	0x0b2a: 0x2aad, 0x0b2b: 0x2de5, 0x0b2c: 0x2bfc, 0x0b2d: 0x2d14, 0x0b2e: 0x2df8, 0x0b2f: 0x2c09,
-	0x0b30: 0x2ac1, 0x0b31: 0x2ab7, 0x0b32: 0x2f36, 0x0b33: 0x2c16, 0x0b34: 0x2e0b, 0x0b35: 0x2acb,
-	0x0b36: 0x2d24, 0x0b37: 0x2ad5, 0x0b38: 0x2c30, 0x0b39: 0x2adf, 0x0b3a: 0x2c3d, 0x0b3b: 0x2f00,
-	0x0b3c: 0x2c23, 0x0b3d: 0x2d34, 0x0b3e: 0x2c4a, 0x0b3f: 0x2889,
-	// Block 0x2d, offset 0xb40
-	0x0b40: 0x2f11, 0x0b41: 0x2ae9, 0x0b42: 0x2af3, 0x0b43: 0x2c57, 0x0b44: 0x2afd, 0x0b45: 0x2b07,
-	0x0b46: 0x2b11, 0x0b47: 0x2d44, 0x0b48: 0x2c64, 0x0b49: 0x2890, 0x0b4a: 0x2e1e, 0x0b4b: 0x2ea9,
-	0x0b4c: 0x2d54, 0x0b4d: 0x2c71, 0x0b4e: 0x2ed0, 0x0b4f: 0x2b1b, 0x0b50: 0x2b25, 0x0b51: 0x2c7e,
-	0x0b52: 0x2897, 0x0b53: 0x2c8b, 0x0b54: 0x2d64, 0x0b55: 0x289e, 0x0b56: 0x2e31, 0x0b57: 0x2b2f,
-	0x0b58: 0x1df9, 0x0b59: 0x1e0d, 0x0b5a: 0x1e1c, 0x0b5b: 0x1e2b, 0x0b5c: 0x1e3a, 0x0b5d: 0x1e49,
-	0x0b5e: 0x1e58, 0x0b5f: 0x1e67, 0x0b60: 0x1e76, 0x0b61: 0x1e85, 0x0b62: 0x22d4, 0x0b63: 0x22e6,
-	0x0b64: 0x22f8, 0x0b65: 0x2304, 0x0b66: 0x2310, 0x0b67: 0x231c, 0x0b68: 0x2328, 0x0b69: 0x2334,
-	0x0b6a: 0x2340, 0x0b6b: 0x234c, 0x0b6c: 0x2388, 0x0b6d: 0x2394, 0x0b6e: 0x23a0, 0x0b6f: 0x23ac,
-	0x0b70: 0x23b8, 0x0b71: 0x1d56, 0x0b72: 0x1b08, 0x0b73: 0x1a78, 0x0b74: 0x1d26, 0x0b75: 0x1b89,
-	0x0b76: 0x1b98, 0x0b77: 0x1b0e, 0x0b78: 0x1d3e, 0x0b79: 0x1d42, 0x0b7a: 0x1aa2, 0x0b7b: 0x28ac,
-	0x0b7c: 0x28ba, 0x0b7d: 0x28a5, 0x0b7e: 0x28b3, 0x0b7f: 0x2c98,
-	// Block 0x2e, offset 0xb80
-	0x0b80: 0x1b8c, 0x0b81: 0x1b74, 0x0b82: 0x1da2, 0x0b83: 0x1b5c, 0x0b84: 0x1b35, 0x0b85: 0x1aab,
-	0x0b86: 0x1aba, 0x0b87: 0x1a8a, 0x0b88: 0x1d32, 0x0b89: 0x1e94, 0x0b8a: 0x1b8f, 0x0b8b: 0x1b77,
-	0x0b8c: 0x1da6, 0x0b8d: 0x1db2, 0x0b8e: 0x1b68, 0x0b8f: 0x1b3e, 0x0b90: 0x1a99, 0x0b91: 0x1d5e,
-	0x0b92: 0x1cf2, 0x0b93: 0x1cde, 0x0b94: 0x1d0e, 0x0b95: 0x1db6, 0x0b96: 0x1b6b, 0x0b97: 0x1b0b,
-	0x0b98: 0x1b41, 0x0b99: 0x1b20, 0x0b9a: 0x1b83, 0x0b9b: 0x1dba, 0x0b9c: 0x1b6e, 0x0b9d: 0x1b02,
-	0x0b9e: 0x1b44, 0x0b9f: 0x1d7e, 0x0ba0: 0x1d36, 0x0ba1: 0x1b56, 0x0ba2: 0x1d66, 0x0ba3: 0x1d82,
-	0x0ba4: 0x1d3a, 0x0ba5: 0x1b59, 0x0ba6: 0x1d6a, 0x0ba7: 0x242a, 0x0ba8: 0x243e, 0x0ba9: 0x1ad8,
-	0x0baa: 0x1d62, 0x0bab: 0x1cf6, 0x0bac: 0x1ce2, 0x0bad: 0x1d8a, 0x0bae: 0x28c1, 0x0baf: 0x2958,
-	0x0bb0: 0x1b9b, 0x0bb1: 0x1b86, 0x0bb2: 0x1dbe, 0x0bb3: 0x1b71, 0x0bb4: 0x1b92, 0x0bb5: 0x1b7a,
-	0x0bb6: 0x1daa, 0x0bb7: 0x1b5f, 0x0bb8: 0x1b38, 0x0bb9: 0x1ac3, 0x0bba: 0x1b95, 0x0bbb: 0x1b7d,
-	0x0bbc: 0x1dae, 0x0bbd: 0x1b62, 0x0bbe: 0x1b3b, 0x0bbf: 0x1ac6,
-	// Block 0x2f, offset 0xbc0
-	0x0bc0: 0x1d6e, 0x0bc1: 0x1cfa, 0x0bc2: 0x1e8f, 0x0bc3: 0x1a7b, 0x0bc4: 0x1afc, 0x0bc5: 0x1aff,
-	0x0bc6: 0x2437, 0x0bc7: 0x1cd6, 0x0bc8: 0x1b05, 0x0bc9: 0x1a8d, 0x0bca: 0x1b23, 0x0bcb: 0x1a90,
-	0x0bcc: 0x1b2c, 0x0bcd: 0x1aae, 0x0bce: 0x1ab1, 0x0bcf: 0x1b47, 0x0bd0: 0x1b4d, 0x0bd1: 0x1b50,
-	0x0bd2: 0x1d72, 0x0bd3: 0x1b53, 0x0bd4: 0x1b65, 0x0bd5: 0x1d7a, 0x0bd6: 0x1d86, 0x0bd7: 0x1ad2,
-	0x0bd8: 0x1e99, 0x0bd9: 0x1cfe, 0x0bda: 0x1ad5, 0x0bdb: 0x1b9e, 0x0bdc: 0x1ae7, 0x0bdd: 0x1af6,
-	0x0bde: 0x2424, 0x0bdf: 0x241e, 0x0be0: 0x1e03, 0x0be1: 0x1e12, 0x0be2: 0x1e21, 0x0be3: 0x1e30,
-	0x0be4: 0x1e3f, 0x0be5: 0x1e4e, 0x0be6: 0x1e5d, 0x0be7: 0x1e6c, 0x0be8: 0x1e7b, 0x0be9: 0x22c8,
-	0x0bea: 0x22da, 0x0beb: 0x22ec, 0x0bec: 0x22fe, 0x0bed: 0x230a, 0x0bee: 0x2316, 0x0bef: 0x2322,
-	0x0bf0: 0x232e, 0x0bf1: 0x233a, 0x0bf2: 0x2346, 0x0bf3: 0x2382, 0x0bf4: 0x238e, 0x0bf5: 0x239a,
-	0x0bf6: 0x23a6, 0x0bf7: 0x23b2, 0x0bf8: 0x23be, 0x0bf9: 0x23c4, 0x0bfa: 0x23ca, 0x0bfb: 0x23d0,
-	0x0bfc: 0x23d6, 0x0bfd: 0x23e8, 0x0bfe: 0x23ee, 0x0bff: 0x1d52,
-	// Block 0x30, offset 0xc00
-	0x0c00: 0x13e9, 0x0c01: 0x0d6d, 0x0c02: 0x1445, 0x0c03: 0x1411, 0x0c04: 0x0ec9, 0x0c05: 0x075d,
-	0x0c06: 0x0951, 0x0c07: 0x1699, 0x0c08: 0x1699, 0x0c09: 0x0a7d, 0x0c0a: 0x14cd, 0x0c0b: 0x09b5,
-	0x0c0c: 0x0a79, 0x0c0d: 0x0c61, 0x0c0e: 0x1041, 0x0c0f: 0x11d1, 0x0c10: 0x1309, 0x0c11: 0x1345,
-	0x0c12: 0x1379, 0x0c13: 0x148d, 0x0c14: 0x0de5, 0x0c15: 0x0e71, 0x0c16: 0x0f1d, 0x0c17: 0x0fb5,
-	0x0c18: 0x12d1, 0x0c19: 0x14b5, 0x0c1a: 0x15e1, 0x0c1b: 0x0781, 0x0c1c: 0x0925, 0x0c1d: 0x0df9,
-	0x0c1e: 0x0f41, 0x0c1f: 0x1305, 0x0c20: 0x1631, 0x0c21: 0x0b25, 0x0c22: 0x0ee9, 0x0c23: 0x12f5,
-	0x0c24: 0x1389, 0x0c25: 0x0c95, 0x0c26: 0x122d, 0x0c27: 0x1351, 0x0c28: 0x0b91, 0x0c29: 0x0d81,
-	0x0c2a: 0x0e89, 0x0c2b: 0x0f8d, 0x0c2c: 0x1499, 0x0c2d: 0x07c1, 0x0c2e: 0x0859, 0x0c2f: 0x08c5,
-	0x0c30: 0x0cfd, 0x0c31: 0x0df1, 0x0c32: 0x0f3d, 0x0c33: 0x1061, 0x0c34: 0x11e9, 0x0c35: 0x12fd,
-	0x0c36: 0x1315, 0x0c37: 0x1439, 0x0c38: 0x155d, 0x0c39: 0x1611, 0x0c3a: 0x162d, 0x0c3b: 0x109d,
-	0x0c3c: 0x10dd, 0x0c3d: 0x1195, 0x0c3e: 0x12b5, 0x0c3f: 0x14e9,
-	// Block 0x31, offset 0xc40
-	0x0c40: 0x1639, 0x0c41: 0x13bd, 0x0c42: 0x0a39, 0x0c43: 0x0bad, 0x0c44: 0x114d, 0x0c45: 0x120d,
-	0x0c46: 0x0f71, 0x0c47: 0x10a5, 0x0c48: 0x1409, 0x0c49: 0x1555, 0x0c4a: 0x0a35, 0x0c4b: 0x0b01,
-	0x0c4c: 0x0de9, 0x0c4d: 0x0e9d, 0x0c4e: 0x0ed1, 0x0c4f: 0x1185, 0x0c50: 0x11ad, 0x0c51: 0x1515,
-	0x0c52: 0x08c1, 0x0c53: 0x1219, 0x0c54: 0x0865, 0x0c55: 0x0861, 0x0c56: 0x1109, 0x0c57: 0x1199,
-	0x0c58: 0x12cd, 0x0c59: 0x151d, 0x0c5a: 0x13d9, 0x0c5b: 0x0c99, 0x0c5c: 0x0de5, 0x0c5d: 0x13c9,
-	0x0c5e: 0x0769, 0x0c5f: 0x0ad5, 0x0c60: 0x0c05, 0x0c61: 0x0fa1, 0x0c62: 0x1021, 0x0c63: 0x08e5,
-	0x0c64: 0x10ad, 0x0c65: 0x07d1, 0x0c66: 0x0be9, 0x0c67: 0x0749, 0x0c68: 0x0e5d, 0x0c69: 0x0d15,
-	0x0c6a: 0x1181, 0x0c6b: 0x0939, 0x0c6c: 0x0a25, 0x0c6d: 0x106d, 0x0c6e: 0x12d5, 0x0c6f: 0x13ad,
-	0x0c70: 0x0e29, 0x0c71: 0x1469, 0x0c72: 0x0e55, 0x0c73: 0x0ca9, 0x0c74: 0x128d, 0x0c75: 0x0cc9,
-	0x0c76: 0x101d, 0x0c77: 0x079d, 0x0c78: 0x0819, 0x0c79: 0x085d, 0x0c7a: 0x0dc5, 0x0c7b: 0x116d,
-	0x0c7c: 0x1265, 0x0c7d: 0x13b9, 0x0c7e: 0x14c9, 0x0c7f: 0x08cd,
-	// Block 0x32, offset 0xc80
-	0x0c80: 0x0981, 0x0c81: 0x0a89, 0x0c82: 0x0ba1, 0x0c83: 0x0d31, 0x0c84: 0x0eed, 0x0c85: 0x10b1,
-	0x0c86: 0x1505, 0x0c87: 0x15e9, 0x0c88: 0x163d, 0x0c89: 0x1655, 0x0c8a: 0x08a9, 0x0c8b: 0x0d65,
-	0x0c8c: 0x0e15, 0x0c8d: 0x145d, 0x0c8e: 0x0b6d, 0x0c8f: 0x0c49, 0x0c90: 0x0c65, 0x0c91: 0x0cf5,
-	0x0c92: 0x0edd, 0x0c93: 0x0f29, 0x0c94: 0x0fd9, 0x0c95: 0x10fd, 0x0c96: 0x11a1, 0x0c97: 0x1205,
-	0x0c98: 0x144d, 0x0c99: 0x12dd, 0x0c9a: 0x1475, 0x0c9b: 0x14ed, 0x0c9c: 0x0881, 0x0c9d: 0x08ad,
-	0x0c9e: 0x0995, 0x0c9f: 0x0f19, 0x0ca0: 0x1365, 0x0ca1: 0x13ad, 0x0ca2: 0x0b8d, 0x0ca3: 0x0bfd,
-	0x0ca4: 0x0cc1, 0x0ca5: 0x0e21, 0x0ca6: 0x1149, 0x0ca7: 0x0f95, 0x0ca8: 0x07ad, 0x0ca9: 0x09f1,
-	0x0caa: 0x0ad5, 0x0cab: 0x0b39, 0x0cac: 0x0c09, 0x0cad: 0x0fb1, 0x0cae: 0x0fcd, 0x0caf: 0x11dd,
-	0x0cb0: 0x11fd, 0x0cb1: 0x14d1, 0x0cb2: 0x1551, 0x0cb3: 0x1561, 0x0cb4: 0x159d, 0x0cb5: 0x07c5,
-	0x0cb6: 0x10f1, 0x0cb7: 0x14bd, 0x0cb8: 0x1539, 0x0cb9: 0x0c21, 0x0cba: 0x0789, 0x0cbb: 0x07e9,
-	0x0cbc: 0x0ad9, 0x0cbd: 0x0af9, 0x0cbe: 0x0d21, 0x0cbf: 0x0de5,
-	// Block 0x33, offset 0xcc0
-	0x0cc0: 0x0f35, 0x0cc1: 0x103d, 0x0cc2: 0x12e9, 0x0cc3: 0x1489, 0x0cc4: 0x1691, 0x0cc5: 0x0d55,
-	0x0cc6: 0x1511, 0x0cc7: 0x08a5, 0x0cc8: 0x0da1, 0x0cc9: 0x0dad, 0x0cca: 0x0e81, 0x0ccb: 0x0eb9,
-	0x0ccc: 0x0fbd, 0x0ccd: 0x1019, 0x0cce: 0x1099, 0x0ccf: 0x117d, 0x0cd0: 0x15a9, 0x0cd1: 0x0821,
-	0x0cd2: 0x0c75, 0x0cd3: 0x1521, 0x0cd4: 0x07d9, 0x0cd5: 0x0b1d, 0x0cd6: 0x0ea1, 0x0cd7: 0x1451,
-	0x0cd8: 0x0bd9, 0x0cd9: 0x0c29, 0x0cda: 0x0db5, 0x0cdb: 0x0fa1, 0x0cdc: 0x1529, 0x0cdd: 0x0889,
-	0x0cde: 0x0971, 0x0cdf: 0x0b09, 0x0ce0: 0x0d45, 0x0ce1: 0x0d91, 0x0ce2: 0x0dd1, 0x0ce3: 0x0e65,
-	0x0ce4: 0x0fb9, 0x0ce5: 0x102d, 0x0ce6: 0x11c9, 0x0ce7: 0x1369, 0x0ce8: 0x1375, 0x0ce9: 0x14c5,
-	0x0cea: 0x1545, 0x0ceb: 0x08f5, 0x0cec: 0x0ebd, 0x0ced: 0x0975, 0x0cee: 0x0f39, 0x0cef: 0x0fdd,
-	0x0cf0: 0x12f9, 0x0cf1: 0x152d, 0x0cf2: 0x1619, 0x0cf3: 0x1641, 0x0cf4: 0x0da9, 0x0cf5: 0x0e99,
-	0x0cf6: 0x1235, 0x0cf7: 0x1129, 0x0cf8: 0x1135, 0x0cf9: 0x1159, 0x0cfa: 0x0f89, 0x0cfb: 0x0f11,
-	0x0cfc: 0x13d5, 0x0cfd: 0x07a5, 0x0cfe: 0x129d, 0x0cff: 0x088d,
-	// Block 0x34, offset 0xd00
-	0x0d00: 0x087d, 0x0d01: 0x0b7d, 0x0d02: 0x0c9d, 0x0d03: 0x1165, 0x0d04: 0x0ac5, 0x0d05: 0x0e75,
-	0x0d06: 0x0d61, 0x0d07: 0x1459, 0x0d08: 0x1359, 0x0d09: 0x1519, 0x0d0a: 0x1395, 0x0d0b: 0x0b99,
-	0x0d0c: 0x07f9, 0x0d0d: 0x09cd, 0x0d10: 0x0a21,
-	0x0d12: 0x0d51, 0x0d15: 0x0869, 0x0d16: 0x0f91, 0x0d17: 0x1055,
-	0x0d18: 0x10b9, 0x0d19: 0x10d5, 0x0d1a: 0x10d9, 0x0d1b: 0x10ed, 0x0d1c: 0x1569, 0x0d1d: 0x115d,
-	0x0d1e: 0x11e1, 0x0d20: 0x1301, 0x0d22: 0x13c5,
-	0x0d25: 0x1479, 0x0d26: 0x14a5,
-	0x0d2a: 0x15bd, 0x0d2b: 0x15c1, 0x0d2c: 0x15c5, 0x0d2d: 0x1629, 0x0d2e: 0x149d, 0x0d2f: 0x1535,
-	0x0d30: 0x07c9, 0x0d31: 0x07ed, 0x0d32: 0x0801, 0x0d33: 0x08bd, 0x0d34: 0x08c9, 0x0d35: 0x0909,
-	0x0d36: 0x09bd, 0x0d37: 0x09d9, 0x0d38: 0x09e1, 0x0d39: 0x0a1d, 0x0d3a: 0x0a29, 0x0d3b: 0x0b05,
-	0x0d3c: 0x0b0d, 0x0d3d: 0x0c15, 0x0d3e: 0x0c3d, 0x0d3f: 0x0c45,
-	// Block 0x35, offset 0xd40
-	0x0d40: 0x0c5d, 0x0d41: 0x0d09, 0x0d42: 0x0d39, 0x0d43: 0x0d59, 0x0d44: 0x0dc9, 0x0d45: 0x0e8d,
-	0x0d46: 0x0ea9, 0x0d47: 0x0ed9, 0x0d48: 0x0f2d, 0x0d49: 0x0f4d, 0x0d4a: 0x0fc1, 0x0d4b: 0x10a1,
-	0x0d4c: 0x10bd, 0x0d4d: 0x10c5, 0x0d4e: 0x10c1, 0x0d4f: 0x10c9, 0x0d50: 0x10cd, 0x0d51: 0x10d1,
-	0x0d52: 0x10e5, 0x0d53: 0x10e9, 0x0d54: 0x110d, 0x0d55: 0x1121, 0x0d56: 0x113d, 0x0d57: 0x11a1,
-	0x0d58: 0x11a9, 0x0d59: 0x11b1, 0x0d5a: 0x11c5, 0x0d5b: 0x11ed, 0x0d5c: 0x123d, 0x0d5d: 0x1271,
-	0x0d5e: 0x1271, 0x0d5f: 0x12d9, 0x0d60: 0x1381, 0x0d61: 0x1399, 0x0d62: 0x13cd, 0x0d63: 0x13d1,
-	0x0d64: 0x1415, 0x0d65: 0x1419, 0x0d66: 0x1471, 0x0d67: 0x1479, 0x0d68: 0x1549, 0x0d69: 0x158d,
-	0x0d6a: 0x15a5, 0x0d6b: 0x0c0d, 0x0d6c: 0x1780, 0x0d6d: 0x1255,
-	0x0d70: 0x0751, 0x0d71: 0x0855, 0x0d72: 0x0815, 0x0d73: 0x07bd, 0x0d74: 0x07fd, 0x0d75: 0x0829,
-	0x0d76: 0x08b9, 0x0d77: 0x08d5, 0x0d78: 0x09bd, 0x0d79: 0x09a9, 0x0d7a: 0x09b9, 0x0d7b: 0x09d5,
-	0x0d7c: 0x0a21, 0x0d7d: 0x0a31, 0x0d7e: 0x0a75, 0x0d7f: 0x0a81,
-	// Block 0x36, offset 0xd80
-	0x0d80: 0x0a9d, 0x0d81: 0x0aad, 0x0d82: 0x0b95, 0x0d83: 0x0b9d, 0x0d84: 0x0bcd, 0x0d85: 0x0bed,
-	0x0d86: 0x0c1d, 0x0d87: 0x0c35, 0x0d88: 0x0c25, 0x0d89: 0x0c45, 0x0d8a: 0x0c39, 0x0d8b: 0x0c5d,
-	0x0d8c: 0x0c79, 0x0d8d: 0x0cd1, 0x0d8e: 0x0cdd, 0x0d8f: 0x0ce5, 0x0d90: 0x0d0d, 0x0d91: 0x0d51,
-	0x0d92: 0x0d81, 0x0d93: 0x0d85, 0x0d94: 0x0d99, 0x0d95: 0x0e19, 0x0d96: 0x0e29, 0x0d97: 0x0e81,
-	0x0d98: 0x0ecd, 0x0d99: 0x0ec5, 0x0d9a: 0x0ed9, 0x0d9b: 0x0ef5, 0x0d9c: 0x0f2d, 0x0d9d: 0x1085,
-	0x0d9e: 0x0f51, 0x0d9f: 0x0f85, 0x0da0: 0x0f91, 0x0da1: 0x0fd1, 0x0da2: 0x0fed, 0x0da3: 0x1011,
-	0x0da4: 0x1035, 0x0da5: 0x1039, 0x0da6: 0x1055, 0x0da7: 0x1059, 0x0da8: 0x1069, 0x0da9: 0x107d,
-	0x0daa: 0x1079, 0x0dab: 0x10a9, 0x0dac: 0x1125, 0x0dad: 0x113d, 0x0dae: 0x1155, 0x0daf: 0x118d,
-	0x0db0: 0x11a1, 0x0db1: 0x11bd, 0x0db2: 0x11ed, 0x0db3: 0x12a1, 0x0db4: 0x12c9, 0x0db5: 0x133d,
-	0x0db6: 0x1385, 0x0db7: 0x1391, 0x0db8: 0x1399, 0x0db9: 0x13b1, 0x0dba: 0x13c5, 0x0dbb: 0x13b5,
-	0x0dbc: 0x13cd, 0x0dbd: 0x13c9, 0x0dbe: 0x13c1, 0x0dbf: 0x13d1,
-	// Block 0x37, offset 0xdc0
-	0x0dc0: 0x13dd, 0x0dc1: 0x1419, 0x0dc2: 0x1455, 0x0dc3: 0x1485, 0x0dc4: 0x14b9, 0x0dc5: 0x14d9,
-	0x0dc6: 0x1525, 0x0dc7: 0x1549, 0x0dc8: 0x1569, 0x0dc9: 0x157d, 0x0dca: 0x158d, 0x0dcb: 0x1599,
-	0x0dcc: 0x15a5, 0x0dcd: 0x15f9, 0x0dce: 0x1699, 0x0dcf: 0x1717, 0x0dd0: 0x1712, 0x0dd1: 0x1744,
-	0x0dd2: 0x0679, 0x0dd3: 0x06a1, 0x0dd4: 0x06a5, 0x0dd5: 0x17c6, 0x0dd6: 0x17f3, 0x0dd7: 0x186b,
-	0x0dd8: 0x1685, 0x0dd9: 0x1695,
-	// Block 0x38, offset 0xe00
-	0x0e00: 0x1b17, 0x0e01: 0x1b1a, 0x0e02: 0x1b1d, 0x0e03: 0x1d4a, 0x0e04: 0x1d4e, 0x0e05: 0x1ba1,
-	0x0e06: 0x1ba1,
-	0x0e13: 0x1eb7, 0x0e14: 0x1ea8, 0x0e15: 0x1ead, 0x0e16: 0x1ebc, 0x0e17: 0x1eb2,
-	0x0e1d: 0x4376,
-	0x0e1e: 0x801a, 0x0e1f: 0x43e8, 0x0e20: 0x0227, 0x0e21: 0x020f, 0x0e22: 0x0218, 0x0e23: 0x021b,
-	0x0e24: 0x021e, 0x0e25: 0x0221, 0x0e26: 0x0224, 0x0e27: 0x022a, 0x0e28: 0x022d, 0x0e29: 0x0017,
-	0x0e2a: 0x43d6, 0x0e2b: 0x43dc, 0x0e2c: 0x44da, 0x0e2d: 0x44e2, 0x0e2e: 0x432e, 0x0e2f: 0x4334,
-	0x0e30: 0x433a, 0x0e31: 0x4340, 0x0e32: 0x434c, 0x0e33: 0x4352, 0x0e34: 0x4358, 0x0e35: 0x4364,
-	0x0e36: 0x436a, 0x0e38: 0x4370, 0x0e39: 0x437c, 0x0e3a: 0x4382, 0x0e3b: 0x4388,
-	0x0e3c: 0x4394, 0x0e3e: 0x439a,
-	// Block 0x39, offset 0xe40
-	0x0e40: 0x43a0, 0x0e41: 0x43a6, 0x0e43: 0x43ac, 0x0e44: 0x43b2,
-	0x0e46: 0x43be, 0x0e47: 0x43c4, 0x0e48: 0x43ca, 0x0e49: 0x43d0, 0x0e4a: 0x43e2, 0x0e4b: 0x435e,
-	0x0e4c: 0x4346, 0x0e4d: 0x438e, 0x0e4e: 0x43b8, 0x0e4f: 0x1ec1, 0x0e50: 0x0293, 0x0e51: 0x0293,
-	0x0e52: 0x029c, 0x0e53: 0x029c, 0x0e54: 0x029c, 0x0e55: 0x029c, 0x0e56: 0x029f, 0x0e57: 0x029f,
-	0x0e58: 0x029f, 0x0e59: 0x029f, 0x0e5a: 0x02a5, 0x0e5b: 0x02a5, 0x0e5c: 0x02a5, 0x0e5d: 0x02a5,
-	0x0e5e: 0x0299, 0x0e5f: 0x0299, 0x0e60: 0x0299, 0x0e61: 0x0299, 0x0e62: 0x02a2, 0x0e63: 0x02a2,
-	0x0e64: 0x02a2, 0x0e65: 0x02a2, 0x0e66: 0x0296, 0x0e67: 0x0296, 0x0e68: 0x0296, 0x0e69: 0x0296,
-	0x0e6a: 0x02c9, 0x0e6b: 0x02c9, 0x0e6c: 0x02c9, 0x0e6d: 0x02c9, 0x0e6e: 0x02cc, 0x0e6f: 0x02cc,
-	0x0e70: 0x02cc, 0x0e71: 0x02cc, 0x0e72: 0x02ab, 0x0e73: 0x02ab, 0x0e74: 0x02ab, 0x0e75: 0x02ab,
-	0x0e76: 0x02a8, 0x0e77: 0x02a8, 0x0e78: 0x02a8, 0x0e79: 0x02a8, 0x0e7a: 0x02ae, 0x0e7b: 0x02ae,
-	0x0e7c: 0x02ae, 0x0e7d: 0x02ae, 0x0e7e: 0x02b1, 0x0e7f: 0x02b1,
-	// Block 0x3a, offset 0xe80
-	0x0e80: 0x02b1, 0x0e81: 0x02b1, 0x0e82: 0x02ba, 0x0e83: 0x02ba, 0x0e84: 0x02b7, 0x0e85: 0x02b7,
-	0x0e86: 0x02bd, 0x0e87: 0x02bd, 0x0e88: 0x02b4, 0x0e89: 0x02b4, 0x0e8a: 0x02c3, 0x0e8b: 0x02c3,
-	0x0e8c: 0x02c0, 0x0e8d: 0x02c0, 0x0e8e: 0x02cf, 0x0e8f: 0x02cf, 0x0e90: 0x02cf, 0x0e91: 0x02cf,
-	0x0e92: 0x02d5, 0x0e93: 0x02d5, 0x0e94: 0x02d5, 0x0e95: 0x02d5, 0x0e96: 0x02db, 0x0e97: 0x02db,
-	0x0e98: 0x02db, 0x0e99: 0x02db, 0x0e9a: 0x02d8, 0x0e9b: 0x02d8, 0x0e9c: 0x02d8, 0x0e9d: 0x02d8,
-	0x0e9e: 0x02de, 0x0e9f: 0x02de, 0x0ea0: 0x02e1, 0x0ea1: 0x02e1, 0x0ea2: 0x02e1, 0x0ea3: 0x02e1,
-	0x0ea4: 0x4454, 0x0ea5: 0x4454, 0x0ea6: 0x02e7, 0x0ea7: 0x02e7, 0x0ea8: 0x02e7, 0x0ea9: 0x02e7,
-	0x0eaa: 0x02e4, 0x0eab: 0x02e4, 0x0eac: 0x02e4, 0x0ead: 0x02e4, 0x0eae: 0x0302, 0x0eaf: 0x0302,
-	0x0eb0: 0x444e, 0x0eb1: 0x444e,
-	// Block 0x3b, offset 0xec0
-	0x0ed3: 0x02d2, 0x0ed4: 0x02d2, 0x0ed5: 0x02d2, 0x0ed6: 0x02d2, 0x0ed7: 0x02f0,
-	0x0ed8: 0x02f0, 0x0ed9: 0x02ed, 0x0eda: 0x02ed, 0x0edb: 0x02f3, 0x0edc: 0x02f3, 0x0edd: 0x2191,
-	0x0ede: 0x02f9, 0x0edf: 0x02f9, 0x0ee0: 0x02ea, 0x0ee1: 0x02ea, 0x0ee2: 0x02f6, 0x0ee3: 0x02f6,
-	0x0ee4: 0x02ff, 0x0ee5: 0x02ff, 0x0ee6: 0x02ff, 0x0ee7: 0x02ff, 0x0ee8: 0x0287, 0x0ee9: 0x0287,
-	0x0eea: 0x26ec, 0x0eeb: 0x26ec, 0x0eec: 0x275c, 0x0eed: 0x275c, 0x0eee: 0x272b, 0x0eef: 0x272b,
-	0x0ef0: 0x2747, 0x0ef1: 0x2747, 0x0ef2: 0x2740, 0x0ef3: 0x2740, 0x0ef4: 0x274e, 0x0ef5: 0x274e,
-	0x0ef6: 0x2755, 0x0ef7: 0x2755, 0x0ef8: 0x2755, 0x0ef9: 0x2732, 0x0efa: 0x2732, 0x0efb: 0x2732,
-	0x0efc: 0x02fc, 0x0efd: 0x02fc, 0x0efe: 0x02fc, 0x0eff: 0x02fc,
-	// Block 0x3c, offset 0xf00
-	0x0f00: 0x26f3, 0x0f01: 0x26fa, 0x0f02: 0x2716, 0x0f03: 0x2732, 0x0f04: 0x2739, 0x0f05: 0x1ecb,
-	0x0f06: 0x1ed0, 0x0f07: 0x1ed5, 0x0f08: 0x1ee4, 0x0f09: 0x1ef3, 0x0f0a: 0x1ef8, 0x0f0b: 0x1efd,
-	0x0f0c: 0x1f02, 0x0f0d: 0x1f07, 0x0f0e: 0x1f16, 0x0f0f: 0x1f25, 0x0f10: 0x1f2a, 0x0f11: 0x1f2f,
-	0x0f12: 0x1f3e, 0x0f13: 0x1f4d, 0x0f14: 0x1f52, 0x0f15: 0x1f57, 0x0f16: 0x1f5c, 0x0f17: 0x1f6b,
-	0x0f18: 0x1f70, 0x0f19: 0x1f7f, 0x0f1a: 0x1f84, 0x0f1b: 0x1f89, 0x0f1c: 0x1f98, 0x0f1d: 0x1f9d,
-	0x0f1e: 0x1fa2, 0x0f1f: 0x1fac, 0x0f20: 0x1fe8, 0x0f21: 0x1ff7, 0x0f22: 0x2006, 0x0f23: 0x200b,
-	0x0f24: 0x2010, 0x0f25: 0x201a, 0x0f26: 0x2029, 0x0f27: 0x202e, 0x0f28: 0x203d, 0x0f29: 0x2042,
-	0x0f2a: 0x2047, 0x0f2b: 0x2056, 0x0f2c: 0x205b, 0x0f2d: 0x206a, 0x0f2e: 0x206f, 0x0f2f: 0x2074,
-	0x0f30: 0x2079, 0x0f31: 0x207e, 0x0f32: 0x2083, 0x0f33: 0x2088, 0x0f34: 0x208d, 0x0f35: 0x2092,
-	0x0f36: 0x2097, 0x0f37: 0x209c, 0x0f38: 0x20a1, 0x0f39: 0x20a6, 0x0f3a: 0x20ab, 0x0f3b: 0x20b0,
-	0x0f3c: 0x20b5, 0x0f3d: 0x20ba, 0x0f3e: 0x20bf, 0x0f3f: 0x20c9,
-	// Block 0x3d, offset 0xf40
-	0x0f40: 0x20ce, 0x0f41: 0x20d3, 0x0f42: 0x20d8, 0x0f43: 0x20e2, 0x0f44: 0x20e7, 0x0f45: 0x20f1,
-	0x0f46: 0x20f6, 0x0f47: 0x20fb, 0x0f48: 0x2100, 0x0f49: 0x2105, 0x0f4a: 0x210a, 0x0f4b: 0x210f,
-	0x0f4c: 0x2114, 0x0f4d: 0x2119, 0x0f4e: 0x2128, 0x0f4f: 0x2137, 0x0f50: 0x213c, 0x0f51: 0x2141,
-	0x0f52: 0x2146, 0x0f53: 0x214b, 0x0f54: 0x2150, 0x0f55: 0x215a, 0x0f56: 0x215f, 0x0f57: 0x2164,
-	0x0f58: 0x2173, 0x0f59: 0x2182, 0x0f5a: 0x2187, 0x0f5b: 0x4406, 0x0f5c: 0x440c, 0x0f5d: 0x4442,
-	0x0f5e: 0x4499, 0x0f5f: 0x44a0, 0x0f60: 0x44a7, 0x0f61: 0x44ae, 0x0f62: 0x44b5, 0x0f63: 0x44bc,
-	0x0f64: 0x2708, 0x0f65: 0x270f, 0x0f66: 0x2716, 0x0f67: 0x271d, 0x0f68: 0x2732, 0x0f69: 0x2739,
-	0x0f6a: 0x1eda, 0x0f6b: 0x1edf, 0x0f6c: 0x1ee4, 0x0f6d: 0x1ee9, 0x0f6e: 0x1ef3, 0x0f6f: 0x1ef8,
-	0x0f70: 0x1f0c, 0x0f71: 0x1f11, 0x0f72: 0x1f16, 0x0f73: 0x1f1b, 0x0f74: 0x1f25, 0x0f75: 0x1f2a,
-	0x0f76: 0x1f34, 0x0f77: 0x1f39, 0x0f78: 0x1f3e, 0x0f79: 0x1f43, 0x0f7a: 0x1f4d, 0x0f7b: 0x1f52,
-	0x0f7c: 0x207e, 0x0f7d: 0x2083, 0x0f7e: 0x2092, 0x0f7f: 0x2097,
-	// Block 0x3e, offset 0xf80
-	0x0f80: 0x209c, 0x0f81: 0x20b0, 0x0f82: 0x20b5, 0x0f83: 0x20ba, 0x0f84: 0x20bf, 0x0f85: 0x20d8,
-	0x0f86: 0x20e2, 0x0f87: 0x20e7, 0x0f88: 0x20ec, 0x0f89: 0x2100, 0x0f8a: 0x211e, 0x0f8b: 0x2123,
-	0x0f8c: 0x2128, 0x0f8d: 0x212d, 0x0f8e: 0x2137, 0x0f8f: 0x213c, 0x0f90: 0x4442, 0x0f91: 0x2169,
-	0x0f92: 0x216e, 0x0f93: 0x2173, 0x0f94: 0x2178, 0x0f95: 0x2182, 0x0f96: 0x2187, 0x0f97: 0x26f3,
-	0x0f98: 0x26fa, 0x0f99: 0x2701, 0x0f9a: 0x2716, 0x0f9b: 0x2724, 0x0f9c: 0x1ecb, 0x0f9d: 0x1ed0,
-	0x0f9e: 0x1ed5, 0x0f9f: 0x1ee4, 0x0fa0: 0x1eee, 0x0fa1: 0x1efd, 0x0fa2: 0x1f02, 0x0fa3: 0x1f07,
-	0x0fa4: 0x1f16, 0x0fa5: 0x1f20, 0x0fa6: 0x1f3e, 0x0fa7: 0x1f57, 0x0fa8: 0x1f5c, 0x0fa9: 0x1f6b,
-	0x0faa: 0x1f70, 0x0fab: 0x1f7f, 0x0fac: 0x1f89, 0x0fad: 0x1f98, 0x0fae: 0x1f9d, 0x0faf: 0x1fa2,
-	0x0fb0: 0x1fac, 0x0fb1: 0x1fe8, 0x0fb2: 0x1fed, 0x0fb3: 0x1ff7, 0x0fb4: 0x2006, 0x0fb5: 0x200b,
-	0x0fb6: 0x2010, 0x0fb7: 0x201a, 0x0fb8: 0x2029, 0x0fb9: 0x203d, 0x0fba: 0x2042, 0x0fbb: 0x2047,
-	0x0fbc: 0x2056, 0x0fbd: 0x205b, 0x0fbe: 0x206a, 0x0fbf: 0x206f,
-	// Block 0x3f, offset 0xfc0
-	0x0fc0: 0x2074, 0x0fc1: 0x2079, 0x0fc2: 0x2088, 0x0fc3: 0x208d, 0x0fc4: 0x20a1, 0x0fc5: 0x20a6,
-	0x0fc6: 0x20ab, 0x0fc7: 0x20b0, 0x0fc8: 0x20b5, 0x0fc9: 0x20c9, 0x0fca: 0x20ce, 0x0fcb: 0x20d3,
-	0x0fcc: 0x20d8, 0x0fcd: 0x20dd, 0x0fce: 0x20f1, 0x0fcf: 0x20f6, 0x0fd0: 0x20fb, 0x0fd1: 0x2100,
-	0x0fd2: 0x210f, 0x0fd3: 0x2114, 0x0fd4: 0x2119, 0x0fd5: 0x2128, 0x0fd6: 0x2132, 0x0fd7: 0x2141,
-	0x0fd8: 0x2146, 0x0fd9: 0x4436, 0x0fda: 0x215a, 0x0fdb: 0x215f, 0x0fdc: 0x2164, 0x0fdd: 0x2173,
-	0x0fde: 0x217d, 0x0fdf: 0x2716, 0x0fe0: 0x2724, 0x0fe1: 0x1ee4, 0x0fe2: 0x1eee, 0x0fe3: 0x1f16,
-	0x0fe4: 0x1f20, 0x0fe5: 0x1f3e, 0x0fe6: 0x1f48, 0x0fe7: 0x1fac, 0x0fe8: 0x1fb1, 0x0fe9: 0x1fd4,
-	0x0fea: 0x1fd9, 0x0feb: 0x20b0, 0x0fec: 0x20b5, 0x0fed: 0x20d8, 0x0fee: 0x2128, 0x0fef: 0x2132,
-	0x0ff0: 0x2173, 0x0ff1: 0x217d, 0x0ff2: 0x44ea, 0x0ff3: 0x44f2, 0x0ff4: 0x44fa, 0x0ff5: 0x2033,
-	0x0ff6: 0x2038, 0x0ff7: 0x204c, 0x0ff8: 0x2051, 0x0ff9: 0x2060, 0x0ffa: 0x2065, 0x0ffb: 0x1fb6,
-	0x0ffc: 0x1fbb, 0x0ffd: 0x1fde, 0x0ffe: 0x1fe3, 0x0fff: 0x1f75,
-	// Block 0x40, offset 0x1000
-	0x1000: 0x1f7a, 0x1001: 0x1f61, 0x1002: 0x1f66, 0x1003: 0x1f8e, 0x1004: 0x1f93, 0x1005: 0x1ffc,
-	0x1006: 0x2001, 0x1007: 0x201f, 0x1008: 0x2024, 0x1009: 0x1fc0, 0x100a: 0x1fc5, 0x100b: 0x1fca,
-	0x100c: 0x1fd4, 0x100d: 0x1fcf, 0x100e: 0x1fa7, 0x100f: 0x1ff2, 0x1010: 0x2015, 0x1011: 0x2033,
-	0x1012: 0x2038, 0x1013: 0x204c, 0x1014: 0x2051, 0x1015: 0x2060, 0x1016: 0x2065, 0x1017: 0x1fb6,
-	0x1018: 0x1fbb, 0x1019: 0x1fde, 0x101a: 0x1fe3, 0x101b: 0x1f75, 0x101c: 0x1f7a, 0x101d: 0x1f61,
-	0x101e: 0x1f66, 0x101f: 0x1f8e, 0x1020: 0x1f93, 0x1021: 0x1ffc, 0x1022: 0x2001, 0x1023: 0x201f,
-	0x1024: 0x2024, 0x1025: 0x1fc0, 0x1026: 0x1fc5, 0x1027: 0x1fca, 0x1028: 0x1fd4, 0x1029: 0x1fcf,
-	0x102a: 0x1fa7, 0x102b: 0x1ff2, 0x102c: 0x2015, 0x102d: 0x1fc0, 0x102e: 0x1fc5, 0x102f: 0x1fca,
-	0x1030: 0x1fd4, 0x1031: 0x1fb1, 0x1032: 0x1fd9, 0x1033: 0x202e, 0x1034: 0x1f98, 0x1035: 0x1f9d,
-	0x1036: 0x1fa2, 0x1037: 0x1fc0, 0x1038: 0x1fc5, 0x1039: 0x1fca, 0x103a: 0x202e, 0x103b: 0x203d,
-	0x103c: 0x43ee, 0x103d: 0x43ee,
-	// Block 0x41, offset 0x1040
-	0x1050: 0x2453, 0x1051: 0x2468,
-	0x1052: 0x2468, 0x1053: 0x246f, 0x1054: 0x2476, 0x1055: 0x248b, 0x1056: 0x2492, 0x1057: 0x2499,
-	0x1058: 0x24bc, 0x1059: 0x24bc, 0x105a: 0x24df, 0x105b: 0x24d8, 0x105c: 0x24f4, 0x105d: 0x24e6,
-	0x105e: 0x24ed, 0x105f: 0x2510, 0x1060: 0x2510, 0x1061: 0x2509, 0x1062: 0x2517, 0x1063: 0x2517,
-	0x1064: 0x2541, 0x1065: 0x2541, 0x1066: 0x255d, 0x1067: 0x2525, 0x1068: 0x2525, 0x1069: 0x251e,
-	0x106a: 0x2533, 0x106b: 0x2533, 0x106c: 0x253a, 0x106d: 0x253a, 0x106e: 0x2564, 0x106f: 0x2572,
-	0x1070: 0x2572, 0x1071: 0x2579, 0x1072: 0x2579, 0x1073: 0x2580, 0x1074: 0x2587, 0x1075: 0x258e,
-	0x1076: 0x2595, 0x1077: 0x2595, 0x1078: 0x259c, 0x1079: 0x25aa, 0x107a: 0x25b8, 0x107b: 0x25b1,
-	0x107c: 0x25bf, 0x107d: 0x25bf, 0x107e: 0x25d4, 0x107f: 0x25db,
-	// Block 0x42, offset 0x1080
-	0x1080: 0x260c, 0x1081: 0x261a, 0x1082: 0x2613, 0x1083: 0x25f7, 0x1084: 0x25f7, 0x1085: 0x2621,
-	0x1086: 0x2621, 0x1087: 0x2628, 0x1088: 0x2628, 0x1089: 0x2652, 0x108a: 0x2659, 0x108b: 0x2660,
-	0x108c: 0x2636, 0x108d: 0x2644, 0x108e: 0x2667, 0x108f: 0x266e,
-	0x1092: 0x263d, 0x1093: 0x26c2, 0x1094: 0x26c9, 0x1095: 0x269f, 0x1096: 0x26a6, 0x1097: 0x268a,
-	0x1098: 0x268a, 0x1099: 0x2691, 0x109a: 0x26bb, 0x109b: 0x26b4, 0x109c: 0x26de, 0x109d: 0x26de,
-	0x109e: 0x244c, 0x109f: 0x2461, 0x10a0: 0x245a, 0x10a1: 0x2484, 0x10a2: 0x247d, 0x10a3: 0x24a7,
-	0x10a4: 0x24a0, 0x10a5: 0x24ca, 0x10a6: 0x24ae, 0x10a7: 0x24c3, 0x10a8: 0x24fb, 0x10a9: 0x2548,
-	0x10aa: 0x252c, 0x10ab: 0x256b, 0x10ac: 0x2605, 0x10ad: 0x262f, 0x10ae: 0x26d7, 0x10af: 0x26d0,
-	0x10b0: 0x26e5, 0x10b1: 0x267c, 0x10b2: 0x25e2, 0x10b3: 0x26ad, 0x10b4: 0x25d4, 0x10b5: 0x260c,
-	0x10b6: 0x25a3, 0x10b7: 0x25f0, 0x10b8: 0x2683, 0x10b9: 0x2675, 0x10ba: 0x25fe, 0x10bb: 0x25e9,
-	0x10bc: 0x25fe, 0x10bd: 0x2683, 0x10be: 0x24b5, 0x10bf: 0x24d1,
-	// Block 0x43, offset 0x10c0
-	0x10c0: 0x264b, 0x10c1: 0x25c6, 0x10c2: 0x2445, 0x10c3: 0x25e9, 0x10c4: 0x258e, 0x10c5: 0x255d,
-	0x10c6: 0x2502, 0x10c7: 0x2698,
-	0x10f0: 0x2556, 0x10f1: 0x25cd, 0x10f2: 0x296a, 0x10f3: 0x2961, 0x10f4: 0x2997, 0x10f5: 0x2985,
-	0x10f6: 0x2973, 0x10f7: 0x298e, 0x10f8: 0x29a0, 0x10f9: 0x254f, 0x10fa: 0x2e44, 0x10fb: 0x2cb4,
-	0x10fc: 0x297c,
-	// Block 0x44, offset 0x1100
-	0x1110: 0x0019, 0x1111: 0x04f5,
-	0x1112: 0x04f9, 0x1113: 0x0035, 0x1114: 0x0037, 0x1115: 0x0003, 0x1116: 0x003f, 0x1117: 0x0531,
-	0x1118: 0x0535, 0x1119: 0x1c9e,
-	0x1120: 0x80e6, 0x1121: 0x80e6, 0x1122: 0x80e6, 0x1123: 0x80e6,
-	0x1124: 0x80e6, 0x1125: 0x80e6, 0x1126: 0x80e6,
-	0x1130: 0x19b5, 0x1131: 0x04b5, 0x1132: 0x04b1, 0x1133: 0x007f, 0x1134: 0x007f, 0x1135: 0x0011,
-	0x1136: 0x0013, 0x1137: 0x00b7, 0x1138: 0x00bb, 0x1139: 0x0529, 0x113a: 0x052d, 0x113b: 0x051d,
-	0x113c: 0x0521, 0x113d: 0x0505, 0x113e: 0x0509, 0x113f: 0x04fd,
-	// Block 0x45, offset 0x1140
-	0x1140: 0x0501, 0x1141: 0x050d, 0x1142: 0x0511, 0x1143: 0x0515, 0x1144: 0x0519,
-	0x1147: 0x0077, 0x1148: 0x007b, 0x1149: 0x424f, 0x114a: 0x424f, 0x114b: 0x424f,
-	0x114c: 0x424f, 0x114d: 0x007f, 0x114e: 0x007f, 0x114f: 0x007f, 0x1150: 0x0019, 0x1151: 0x04f5,
-	0x1152: 0x001d, 0x1154: 0x0037, 0x1155: 0x0035, 0x1156: 0x003f, 0x1157: 0x0003,
-	0x1158: 0x04b5, 0x1159: 0x0011, 0x115a: 0x0013, 0x115b: 0x00b7, 0x115c: 0x00bb, 0x115d: 0x0529,
-	0x115e: 0x052d, 0x115f: 0x0007, 0x1160: 0x000d, 0x1161: 0x0015, 0x1162: 0x0017, 0x1163: 0x001b,
-	0x1164: 0x0039, 0x1165: 0x003d, 0x1166: 0x003b, 0x1168: 0x0079, 0x1169: 0x0009,
-	0x116a: 0x000b, 0x116b: 0x0041,
-	0x1170: 0x4290, 0x1171: 0x4412, 0x1172: 0x4295, 0x1174: 0x429a,
-	0x1176: 0x429f, 0x1177: 0x4418, 0x1178: 0x42a4, 0x1179: 0x441e, 0x117a: 0x42a9, 0x117b: 0x4424,
-	0x117c: 0x42ae, 0x117d: 0x442a, 0x117e: 0x42b3, 0x117f: 0x4430,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x0230, 0x1181: 0x43f4, 0x1182: 0x43f4, 0x1183: 0x43fa, 0x1184: 0x43fa, 0x1185: 0x443c,
-	0x1186: 0x443c, 0x1187: 0x4400, 0x1188: 0x4400, 0x1189: 0x4448, 0x118a: 0x4448, 0x118b: 0x4448,
-	0x118c: 0x4448, 0x118d: 0x0233, 0x118e: 0x0233, 0x118f: 0x0236, 0x1190: 0x0236, 0x1191: 0x0236,
-	0x1192: 0x0236, 0x1193: 0x0239, 0x1194: 0x0239, 0x1195: 0x023c, 0x1196: 0x023c, 0x1197: 0x023c,
-	0x1198: 0x023c, 0x1199: 0x023f, 0x119a: 0x023f, 0x119b: 0x023f, 0x119c: 0x023f, 0x119d: 0x0242,
-	0x119e: 0x0242, 0x119f: 0x0242, 0x11a0: 0x0242, 0x11a1: 0x0245, 0x11a2: 0x0245, 0x11a3: 0x0245,
-	0x11a4: 0x0245, 0x11a5: 0x0248, 0x11a6: 0x0248, 0x11a7: 0x0248, 0x11a8: 0x0248, 0x11a9: 0x024b,
-	0x11aa: 0x024b, 0x11ab: 0x024e, 0x11ac: 0x024e, 0x11ad: 0x0251, 0x11ae: 0x0251, 0x11af: 0x0254,
-	0x11b0: 0x0254, 0x11b1: 0x0257, 0x11b2: 0x0257, 0x11b3: 0x0257, 0x11b4: 0x0257, 0x11b5: 0x025a,
-	0x11b6: 0x025a, 0x11b7: 0x025a, 0x11b8: 0x025a, 0x11b9: 0x025d, 0x11ba: 0x025d, 0x11bb: 0x025d,
-	0x11bc: 0x025d, 0x11bd: 0x0260, 0x11be: 0x0260, 0x11bf: 0x0260,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x0260, 0x11c1: 0x0263, 0x11c2: 0x0263, 0x11c3: 0x0263, 0x11c4: 0x0263, 0x11c5: 0x0266,
-	0x11c6: 0x0266, 0x11c7: 0x0266, 0x11c8: 0x0266, 0x11c9: 0x0269, 0x11ca: 0x0269, 0x11cb: 0x0269,
-	0x11cc: 0x0269, 0x11cd: 0x026c, 0x11ce: 0x026c, 0x11cf: 0x026c, 0x11d0: 0x026c, 0x11d1: 0x026f,
-	0x11d2: 0x026f, 0x11d3: 0x026f, 0x11d4: 0x026f, 0x11d5: 0x0272, 0x11d6: 0x0272, 0x11d7: 0x0272,
-	0x11d8: 0x0272, 0x11d9: 0x0275, 0x11da: 0x0275, 0x11db: 0x0275, 0x11dc: 0x0275, 0x11dd: 0x0278,
-	0x11de: 0x0278, 0x11df: 0x0278, 0x11e0: 0x0278, 0x11e1: 0x027b, 0x11e2: 0x027b, 0x11e3: 0x027b,
-	0x11e4: 0x027b, 0x11e5: 0x027e, 0x11e6: 0x027e, 0x11e7: 0x027e, 0x11e8: 0x027e, 0x11e9: 0x0281,
-	0x11ea: 0x0281, 0x11eb: 0x0281, 0x11ec: 0x0281, 0x11ed: 0x0284, 0x11ee: 0x0284, 0x11ef: 0x0287,
-	0x11f0: 0x0287, 0x11f1: 0x028a, 0x11f2: 0x028a, 0x11f3: 0x028a, 0x11f4: 0x028a, 0x11f5: 0x2e91,
-	0x11f6: 0x2e91, 0x11f7: 0x2e99, 0x11f8: 0x2e99, 0x11f9: 0x2ea1, 0x11fa: 0x2ea1, 0x11fb: 0x20c4,
-	0x11fc: 0x20c4,
-	// Block 0x48, offset 0x1200
-	0x1200: 0x0081, 0x1201: 0x0083, 0x1202: 0x0085, 0x1203: 0x0087, 0x1204: 0x0089, 0x1205: 0x008b,
-	0x1206: 0x008d, 0x1207: 0x008f, 0x1208: 0x0091, 0x1209: 0x0093, 0x120a: 0x0095, 0x120b: 0x0097,
-	0x120c: 0x0099, 0x120d: 0x009b, 0x120e: 0x009d, 0x120f: 0x009f, 0x1210: 0x00a1, 0x1211: 0x00a3,
-	0x1212: 0x00a5, 0x1213: 0x00a7, 0x1214: 0x00a9, 0x1215: 0x00ab, 0x1216: 0x00ad, 0x1217: 0x00af,
-	0x1218: 0x00b1, 0x1219: 0x00b3, 0x121a: 0x00b5, 0x121b: 0x00b7, 0x121c: 0x00b9, 0x121d: 0x00bb,
-	0x121e: 0x00bd, 0x121f: 0x04e9, 0x1220: 0x04ed, 0x1221: 0x04f9, 0x1222: 0x050d, 0x1223: 0x0511,
-	0x1224: 0x04f5, 0x1225: 0x061d, 0x1226: 0x0615, 0x1227: 0x0539, 0x1228: 0x0541, 0x1229: 0x0549,
-	0x122a: 0x0551, 0x122b: 0x0559, 0x122c: 0x05dd, 0x122d: 0x05e5, 0x122e: 0x05ed, 0x122f: 0x0591,
-	0x1230: 0x0621, 0x1231: 0x053d, 0x1232: 0x0545, 0x1233: 0x054d, 0x1234: 0x0555, 0x1235: 0x055d,
-	0x1236: 0x0561, 0x1237: 0x0565, 0x1238: 0x0569, 0x1239: 0x056d, 0x123a: 0x0571, 0x123b: 0x0575,
-	0x123c: 0x0579, 0x123d: 0x057d, 0x123e: 0x0581, 0x123f: 0x0585,
-	// Block 0x49, offset 0x1240
-	0x1240: 0x0589, 0x1241: 0x058d, 0x1242: 0x0595, 0x1243: 0x0599, 0x1244: 0x059d, 0x1245: 0x05a1,
-	0x1246: 0x05a5, 0x1247: 0x05a9, 0x1248: 0x05ad, 0x1249: 0x05b1, 0x124a: 0x05b5, 0x124b: 0x05b9,
-	0x124c: 0x05bd, 0x124d: 0x05c1, 0x124e: 0x05c5, 0x124f: 0x05c9, 0x1250: 0x05cd, 0x1251: 0x05d1,
-	0x1252: 0x05d5, 0x1253: 0x05d9, 0x1254: 0x05e1, 0x1255: 0x05e9, 0x1256: 0x05f1, 0x1257: 0x05f5,
-	0x1258: 0x05f9, 0x1259: 0x05fd, 0x125a: 0x0601, 0x125b: 0x0605, 0x125c: 0x0609, 0x125d: 0x0619,
-	0x125e: 0x49aa, 0x125f: 0x49b0, 0x1260: 0x03bd, 0x1261: 0x030d, 0x1262: 0x0311, 0x1263: 0x0435,
-	0x1264: 0x0315, 0x1265: 0x0439, 0x1266: 0x043d, 0x1267: 0x0319, 0x1268: 0x031d, 0x1269: 0x0321,
-	0x126a: 0x0441, 0x126b: 0x0445, 0x126c: 0x0449, 0x126d: 0x044d, 0x126e: 0x0451, 0x126f: 0x0455,
-	0x1270: 0x0361, 0x1271: 0x0325, 0x1272: 0x0329, 0x1273: 0x032d, 0x1274: 0x0375, 0x1275: 0x0331,
-	0x1276: 0x0335, 0x1277: 0x0339, 0x1278: 0x033d, 0x1279: 0x0341, 0x127a: 0x0345, 0x127b: 0x0349,
-	0x127c: 0x034d, 0x127d: 0x0351, 0x127e: 0x0355,
-	// Block 0x4a, offset 0x1280
-	0x1280: 0x0063, 0x1281: 0x0065, 0x1282: 0x0067, 0x1283: 0x0069, 0x1284: 0x006b, 0x1285: 0x006d,
-	0x1286: 0x006f, 0x1287: 0x0071, 0x1288: 0x0073, 0x1289: 0x0075, 0x128a: 0x0083, 0x128b: 0x0085,
-	0x128c: 0x0087, 0x128d: 0x0089, 0x128e: 0x008b, 0x128f: 0x008d, 0x1290: 0x008f, 0x1291: 0x0091,
-	0x1292: 0x0093, 0x1293: 0x0095, 0x1294: 0x0097, 0x1295: 0x0099, 0x1296: 0x009b, 0x1297: 0x009d,
-	0x1298: 0x009f, 0x1299: 0x00a1, 0x129a: 0x00a3, 0x129b: 0x00a5, 0x129c: 0x00a7, 0x129d: 0x00a9,
-	0x129e: 0x00ab, 0x129f: 0x00ad, 0x12a0: 0x00af, 0x12a1: 0x00b1, 0x12a2: 0x00b3, 0x12a3: 0x00b5,
-	0x12a4: 0x00e0, 0x12a5: 0x00f5, 0x12a8: 0x0173, 0x12a9: 0x0176,
-	0x12aa: 0x0179, 0x12ab: 0x017c, 0x12ac: 0x017f, 0x12ad: 0x0182, 0x12ae: 0x0185, 0x12af: 0x0188,
-	0x12b0: 0x018b, 0x12b1: 0x018e, 0x12b2: 0x0191, 0x12b3: 0x0194, 0x12b4: 0x0197, 0x12b5: 0x019a,
-	0x12b6: 0x019d, 0x12b7: 0x01a0, 0x12b8: 0x01a3, 0x12b9: 0x0188, 0x12ba: 0x01a6, 0x12bb: 0x01a9,
-	0x12bc: 0x01ac, 0x12bd: 0x01af, 0x12be: 0x01b2, 0x12bf: 0x01b5,
-	// Block 0x4b, offset 0x12c0
-	0x12c0: 0x01fd, 0x12c1: 0x0200, 0x12c2: 0x0203, 0x12c3: 0x04cd, 0x12c4: 0x01c7, 0x12c5: 0x01d0,
-	0x12c6: 0x01d6, 0x12c7: 0x01fa, 0x12c8: 0x01eb, 0x12c9: 0x01e8, 0x12ca: 0x0206, 0x12cb: 0x0209,
-	0x12ce: 0x0021, 0x12cf: 0x0023, 0x12d0: 0x0025, 0x12d1: 0x0027,
-	0x12d2: 0x0029, 0x12d3: 0x002b, 0x12d4: 0x002d, 0x12d5: 0x002f, 0x12d6: 0x0031, 0x12d7: 0x0033,
-	0x12d8: 0x0021, 0x12d9: 0x0023, 0x12da: 0x0025, 0x12db: 0x0027, 0x12dc: 0x0029, 0x12dd: 0x002b,
-	0x12de: 0x002d, 0x12df: 0x002f, 0x12e0: 0x0031, 0x12e1: 0x0033, 0x12e2: 0x0021, 0x12e3: 0x0023,
-	0x12e4: 0x0025, 0x12e5: 0x0027, 0x12e6: 0x0029, 0x12e7: 0x002b, 0x12e8: 0x002d, 0x12e9: 0x002f,
-	0x12ea: 0x0031, 0x12eb: 0x0033, 0x12ec: 0x0021, 0x12ed: 0x0023, 0x12ee: 0x0025, 0x12ef: 0x0027,
-	0x12f0: 0x0029, 0x12f1: 0x002b, 0x12f2: 0x002d, 0x12f3: 0x002f, 0x12f4: 0x0031, 0x12f5: 0x0033,
-	0x12f6: 0x0021, 0x12f7: 0x0023, 0x12f8: 0x0025, 0x12f9: 0x0027, 0x12fa: 0x0029, 0x12fb: 0x002b,
-	0x12fc: 0x002d, 0x12fd: 0x002f, 0x12fe: 0x0031, 0x12ff: 0x0033,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x0233, 0x1301: 0x0236, 0x1302: 0x0242, 0x1303: 0x024b, 0x1305: 0x0284,
-	0x1306: 0x0254, 0x1307: 0x0245, 0x1308: 0x0263, 0x1309: 0x028a, 0x130a: 0x0275, 0x130b: 0x0278,
-	0x130c: 0x027b, 0x130d: 0x027e, 0x130e: 0x0257, 0x130f: 0x0269, 0x1310: 0x026f, 0x1311: 0x025d,
-	0x1312: 0x0272, 0x1313: 0x0251, 0x1314: 0x025a, 0x1315: 0x023c, 0x1316: 0x023f, 0x1317: 0x0248,
-	0x1318: 0x024e, 0x1319: 0x0260, 0x131a: 0x0266, 0x131b: 0x026c, 0x131c: 0x028d, 0x131d: 0x02de,
-	0x131e: 0x02c6, 0x131f: 0x0290, 0x1321: 0x0236, 0x1322: 0x0242,
-	0x1324: 0x0281, 0x1327: 0x0245, 0x1329: 0x028a,
-	0x132a: 0x0275, 0x132b: 0x0278, 0x132c: 0x027b, 0x132d: 0x027e, 0x132e: 0x0257, 0x132f: 0x0269,
-	0x1330: 0x026f, 0x1331: 0x025d, 0x1332: 0x0272, 0x1334: 0x025a, 0x1335: 0x023c,
-	0x1336: 0x023f, 0x1337: 0x0248, 0x1339: 0x0260, 0x133b: 0x026c,
-	// Block 0x4d, offset 0x1340
-	0x1342: 0x0242,
-	0x1347: 0x0245, 0x1349: 0x028a, 0x134b: 0x0278,
-	0x134d: 0x027e, 0x134e: 0x0257, 0x134f: 0x0269, 0x1351: 0x025d,
-	0x1352: 0x0272, 0x1354: 0x025a, 0x1357: 0x0248,
-	0x1359: 0x0260, 0x135b: 0x026c, 0x135d: 0x02de,
-	0x135f: 0x0290, 0x1361: 0x0236, 0x1362: 0x0242,
-	0x1364: 0x0281, 0x1367: 0x0245, 0x1368: 0x0263, 0x1369: 0x028a,
-	0x136a: 0x0275, 0x136c: 0x027b, 0x136d: 0x027e, 0x136e: 0x0257, 0x136f: 0x0269,
-	0x1370: 0x026f, 0x1371: 0x025d, 0x1372: 0x0272, 0x1374: 0x025a, 0x1375: 0x023c,
-	0x1376: 0x023f, 0x1377: 0x0248, 0x1379: 0x0260, 0x137a: 0x0266, 0x137b: 0x026c,
-	0x137c: 0x028d, 0x137e: 0x02c6,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0x0233, 0x1381: 0x0236, 0x1382: 0x0242, 0x1383: 0x024b, 0x1384: 0x0281, 0x1385: 0x0284,
-	0x1386: 0x0254, 0x1387: 0x0245, 0x1388: 0x0263, 0x1389: 0x028a, 0x138b: 0x0278,
-	0x138c: 0x027b, 0x138d: 0x027e, 0x138e: 0x0257, 0x138f: 0x0269, 0x1390: 0x026f, 0x1391: 0x025d,
-	0x1392: 0x0272, 0x1393: 0x0251, 0x1394: 0x025a, 0x1395: 0x023c, 0x1396: 0x023f, 0x1397: 0x0248,
-	0x1398: 0x024e, 0x1399: 0x0260, 0x139a: 0x0266, 0x139b: 0x026c,
-	0x13a1: 0x0236, 0x13a2: 0x0242, 0x13a3: 0x024b,
-	0x13a5: 0x0284, 0x13a6: 0x0254, 0x13a7: 0x0245, 0x13a8: 0x0263, 0x13a9: 0x028a,
-	0x13ab: 0x0278, 0x13ac: 0x027b, 0x13ad: 0x027e, 0x13ae: 0x0257, 0x13af: 0x0269,
-	0x13b0: 0x026f, 0x13b1: 0x025d, 0x13b2: 0x0272, 0x13b3: 0x0251, 0x13b4: 0x025a, 0x13b5: 0x023c,
-	0x13b6: 0x023f, 0x13b7: 0x0248, 0x13b8: 0x024e, 0x13b9: 0x0260, 0x13ba: 0x0266, 0x13bb: 0x026c,
-	// Block 0x4f, offset 0x13c0
-	0x13c0: 0x19bb, 0x13c1: 0x19b8, 0x13c2: 0x19be, 0x13c3: 0x19e2, 0x13c4: 0x1a06, 0x13c5: 0x1a2a,
-	0x13c6: 0x1a4e, 0x13c7: 0x1a57, 0x13c8: 0x1a5d, 0x13c9: 0x1a63, 0x13ca: 0x1a69,
-	0x13d0: 0x1bce, 0x13d1: 0x1bd2,
-	0x13d2: 0x1bd6, 0x13d3: 0x1bda, 0x13d4: 0x1bde, 0x13d5: 0x1be2, 0x13d6: 0x1be6, 0x13d7: 0x1bea,
-	0x13d8: 0x1bee, 0x13d9: 0x1bf2, 0x13da: 0x1bf6, 0x13db: 0x1bfa, 0x13dc: 0x1bfe, 0x13dd: 0x1c02,
-	0x13de: 0x1c06, 0x13df: 0x1c0a, 0x13e0: 0x1c0e, 0x13e1: 0x1c12, 0x13e2: 0x1c16, 0x13e3: 0x1c1a,
-	0x13e4: 0x1c1e, 0x13e5: 0x1c22, 0x13e6: 0x1c26, 0x13e7: 0x1c2a, 0x13e8: 0x1c2e, 0x13e9: 0x1c32,
-	0x13ea: 0x28c9, 0x13eb: 0x0047, 0x13ec: 0x0065, 0x13ed: 0x1a7e, 0x13ee: 0x1af3,
-	0x13f0: 0x0043, 0x13f1: 0x0045, 0x13f2: 0x0047, 0x13f3: 0x0049, 0x13f4: 0x004b, 0x13f5: 0x004d,
-	0x13f6: 0x004f, 0x13f7: 0x0051, 0x13f8: 0x0053, 0x13f9: 0x0055, 0x13fa: 0x0057, 0x13fb: 0x0059,
-	0x13fc: 0x005b, 0x13fd: 0x005d, 0x13fe: 0x005f, 0x13ff: 0x0061,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x2858, 0x1401: 0x286d, 0x1402: 0x0575,
-	0x1410: 0x0c81, 0x1411: 0x0ab9,
-	0x1412: 0x0945, 0x1413: 0x45aa, 0x1414: 0x078d, 0x1415: 0x0a61, 0x1416: 0x13a1, 0x1417: 0x0a71,
-	0x1418: 0x0799, 0x1419: 0x0d49, 0x141a: 0x0f21, 0x141b: 0x0d21, 0x141c: 0x0899, 0x141d: 0x0bdd,
-	0x141e: 0x0831, 0x141f: 0x0d29, 0x1420: 0x0885, 0x1421: 0x1189, 0x1422: 0x0ff5, 0x1423: 0x13fd,
-	0x1424: 0x0a45, 0x1425: 0x097d, 0x1426: 0x0ed5, 0x1427: 0x0c8d, 0x1428: 0x0cb9, 0x1429: 0x0731,
-	0x142a: 0x073d, 0x142b: 0x147d, 0x142c: 0x0b4d, 0x142d: 0x0759, 0x142e: 0x0961, 0x142f: 0x0cad,
-	0x1430: 0x1425, 0x1431: 0x0c85, 0x1432: 0x10e1, 0x1433: 0x111d, 0x1434: 0x0969, 0x1435: 0x0eb5,
-	0x1436: 0x0d7d, 0x1437: 0x0d79, 0x1438: 0x1009, 0x1439: 0x089d, 0x143a: 0x09c9,
-	// Block 0x51, offset 0x1440
-	0x1440: 0x076d, 0x1441: 0x0765, 0x1442: 0x0775, 0x1443: 0x16a9, 0x1444: 0x07b9, 0x1445: 0x07c9,
-	0x1446: 0x07cd, 0x1447: 0x07d5, 0x1448: 0x07dd, 0x1449: 0x07e1, 0x144a: 0x07ed, 0x144b: 0x07e5,
-	0x144c: 0x0625, 0x144d: 0x16bd, 0x144e: 0x0801, 0x144f: 0x0805, 0x1450: 0x0809, 0x1451: 0x0825,
-	0x1452: 0x16ae, 0x1453: 0x0629, 0x1454: 0x0811, 0x1455: 0x0831, 0x1456: 0x16b8, 0x1457: 0x0841,
-	0x1458: 0x0849, 0x1459: 0x07a9, 0x145a: 0x0851, 0x145b: 0x0855, 0x145c: 0x1893, 0x145d: 0x0871,
-	0x145e: 0x0879, 0x145f: 0x0631, 0x1460: 0x0891, 0x1461: 0x0895, 0x1462: 0x089d, 0x1463: 0x08a1,
-	0x1464: 0x0635, 0x1465: 0x08b9, 0x1466: 0x08bd, 0x1467: 0x08c9, 0x1468: 0x08d5, 0x1469: 0x08d9,
-	0x146a: 0x08dd, 0x146b: 0x08e5, 0x146c: 0x0905, 0x146d: 0x0909, 0x146e: 0x0911, 0x146f: 0x0921,
-	0x1470: 0x0929, 0x1471: 0x092d, 0x1472: 0x092d, 0x1473: 0x092d, 0x1474: 0x16cc, 0x1475: 0x0f05,
-	0x1476: 0x0941, 0x1477: 0x0949, 0x1478: 0x16d1, 0x1479: 0x0955, 0x147a: 0x095d, 0x147b: 0x0965,
-	0x147c: 0x098d, 0x147d: 0x0979, 0x147e: 0x0985, 0x147f: 0x0989,
-	// Block 0x52, offset 0x1480
-	0x1480: 0x0991, 0x1481: 0x0999, 0x1482: 0x099d, 0x1483: 0x09a5, 0x1484: 0x09ad, 0x1485: 0x09b1,
-	0x1486: 0x09b1, 0x1487: 0x09b9, 0x1488: 0x09c1, 0x1489: 0x09c5, 0x148a: 0x09d1, 0x148b: 0x09f5,
-	0x148c: 0x09d9, 0x148d: 0x09f9, 0x148e: 0x09dd, 0x148f: 0x09e5, 0x1490: 0x087d, 0x1491: 0x0a41,
-	0x1492: 0x0a09, 0x1493: 0x0a0d, 0x1494: 0x0a11, 0x1495: 0x0a05, 0x1496: 0x0a19, 0x1497: 0x0a15,
-	0x1498: 0x0a2d, 0x1499: 0x16d6, 0x149a: 0x0a49, 0x149b: 0x0a4d, 0x149c: 0x0a55, 0x149d: 0x0a61,
-	0x149e: 0x0a69, 0x149f: 0x0a85, 0x14a0: 0x16db, 0x14a1: 0x16e0, 0x14a2: 0x0a91, 0x14a3: 0x0a95,
-	0x14a4: 0x0a99, 0x14a5: 0x0a8d, 0x14a6: 0x0aa1, 0x14a7: 0x0639, 0x14a8: 0x063d, 0x14a9: 0x0aa9,
-	0x14aa: 0x0ab1, 0x14ab: 0x0ab1, 0x14ac: 0x16e5, 0x14ad: 0x0acd, 0x14ae: 0x0ad1, 0x14af: 0x0ad5,
-	0x14b0: 0x0add, 0x14b1: 0x16ea, 0x14b2: 0x0ae5, 0x14b3: 0x0ae9, 0x14b4: 0x0bc1, 0x14b5: 0x0af1,
-	0x14b6: 0x0641, 0x14b7: 0x0afd, 0x14b8: 0x0b0d, 0x14b9: 0x0b19, 0x14ba: 0x0b15, 0x14bb: 0x16f4,
-	0x14bc: 0x0b21, 0x14bd: 0x16f9, 0x14be: 0x0b2d, 0x14bf: 0x0b29,
-	// Block 0x53, offset 0x14c0
-	0x14c0: 0x0b31, 0x14c1: 0x0b41, 0x14c2: 0x0b45, 0x14c3: 0x0645, 0x14c4: 0x0b55, 0x14c5: 0x0b5d,
-	0x14c6: 0x0b61, 0x14c7: 0x0b65, 0x14c8: 0x0649, 0x14c9: 0x16fe, 0x14ca: 0x064d, 0x14cb: 0x0b81,
-	0x14cc: 0x0b85, 0x14cd: 0x0b89, 0x14ce: 0x0b91, 0x14cf: 0x18c5, 0x14d0: 0x0ba9, 0x14d1: 0x1708,
-	0x14d2: 0x1708, 0x14d3: 0x1249, 0x14d4: 0x0bb9, 0x14d5: 0x0bb9, 0x14d6: 0x0651, 0x14d7: 0x172b,
-	0x14d8: 0x17fd, 0x14d9: 0x0bc9, 0x14da: 0x0bd1, 0x14db: 0x0655, 0x14dc: 0x0be5, 0x14dd: 0x0bf5,
-	0x14de: 0x0bf9, 0x14df: 0x0c01, 0x14e0: 0x0c11, 0x14e1: 0x065d, 0x14e2: 0x0659, 0x14e3: 0x0c15,
-	0x14e4: 0x170d, 0x14e5: 0x0c19, 0x14e6: 0x0c2d, 0x14e7: 0x0c31, 0x14e8: 0x0c35, 0x14e9: 0x0c31,
-	0x14ea: 0x0c41, 0x14eb: 0x0c45, 0x14ec: 0x0c55, 0x14ed: 0x0c4d, 0x14ee: 0x0c51, 0x14ef: 0x0c59,
-	0x14f0: 0x0c5d, 0x14f1: 0x0c61, 0x14f2: 0x0c6d, 0x14f3: 0x0c71, 0x14f4: 0x0c89, 0x14f5: 0x0c91,
-	0x14f6: 0x0ca1, 0x14f7: 0x0cb5, 0x14f8: 0x171c, 0x14f9: 0x0cb1, 0x14fa: 0x0ca5, 0x14fb: 0x0cbd,
-	0x14fc: 0x0cc5, 0x14fd: 0x0cd9, 0x14fe: 0x1721, 0x14ff: 0x0ce1,
-	// Block 0x54, offset 0x1500
-	0x1500: 0x0cd5, 0x1501: 0x0ccd, 0x1502: 0x0661, 0x1503: 0x0ce9, 0x1504: 0x0cf1, 0x1505: 0x0cf9,
-	0x1506: 0x0ced, 0x1507: 0x0665, 0x1508: 0x0d09, 0x1509: 0x0d11, 0x150a: 0x1726, 0x150b: 0x0d3d,
-	0x150c: 0x0d71, 0x150d: 0x0d4d, 0x150e: 0x0671, 0x150f: 0x0d59, 0x1510: 0x066d, 0x1511: 0x0669,
-	0x1512: 0x0835, 0x1513: 0x0839, 0x1514: 0x0d75, 0x1515: 0x0d5d, 0x1516: 0x121d, 0x1517: 0x06d5,
-	0x1518: 0x0d81, 0x1519: 0x0d85, 0x151a: 0x0d89, 0x151b: 0x0d9d, 0x151c: 0x0d95, 0x151d: 0x173f,
-	0x151e: 0x0675, 0x151f: 0x0db1, 0x1520: 0x0da5, 0x1521: 0x0dc1, 0x1522: 0x0dc9, 0x1523: 0x1749,
-	0x1524: 0x0dcd, 0x1525: 0x0db9, 0x1526: 0x0dd5, 0x1527: 0x0679, 0x1528: 0x0dd9, 0x1529: 0x0ddd,
-	0x152a: 0x0de1, 0x152b: 0x0ded, 0x152c: 0x174e, 0x152d: 0x0df5, 0x152e: 0x067d, 0x152f: 0x0e01,
-	0x1530: 0x1753, 0x1531: 0x0e05, 0x1532: 0x0681, 0x1533: 0x0e11, 0x1534: 0x0e1d, 0x1535: 0x0e29,
-	0x1536: 0x0e2d, 0x1537: 0x1758, 0x1538: 0x16ef, 0x1539: 0x175d, 0x153a: 0x0e4d, 0x153b: 0x1762,
-	0x153c: 0x0e59, 0x153d: 0x0e61, 0x153e: 0x0e51, 0x153f: 0x0e6d,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x0e7d, 0x1541: 0x0e8d, 0x1542: 0x0e81, 0x1543: 0x0e85, 0x1544: 0x0e91, 0x1545: 0x0e95,
-	0x1546: 0x1767, 0x1547: 0x0e79, 0x1548: 0x0ead, 0x1549: 0x0eb1, 0x154a: 0x0685, 0x154b: 0x0ec5,
-	0x154c: 0x0ec1, 0x154d: 0x176c, 0x154e: 0x0ea5, 0x154f: 0x0ee1, 0x1550: 0x1771, 0x1551: 0x1776,
-	0x1552: 0x0ee5, 0x1553: 0x0ef9, 0x1554: 0x0ef5, 0x1555: 0x0ef1, 0x1556: 0x0689, 0x1557: 0x0efd,
-	0x1558: 0x0f0d, 0x1559: 0x0f09, 0x155a: 0x0f15, 0x155b: 0x16b3, 0x155c: 0x0f25, 0x155d: 0x177b,
-	0x155e: 0x0f31, 0x155f: 0x1785, 0x1560: 0x0f45, 0x1561: 0x0f51, 0x1562: 0x0f65, 0x1563: 0x178a,
-	0x1564: 0x0f79, 0x1565: 0x0f7d, 0x1566: 0x178f, 0x1567: 0x1794, 0x1568: 0x0f99, 0x1569: 0x0fa9,
-	0x156a: 0x068d, 0x156b: 0x0fad, 0x156c: 0x0691, 0x156d: 0x0691, 0x156e: 0x0fc5, 0x156f: 0x0fc9,
-	0x1570: 0x0fd1, 0x1571: 0x0fd5, 0x1572: 0x0fe1, 0x1573: 0x0695, 0x1574: 0x0ff9, 0x1575: 0x1799,
-	0x1576: 0x1015, 0x1577: 0x179e, 0x1578: 0x1021, 0x1579: 0x1703, 0x157a: 0x1031, 0x157b: 0x17a3,
-	0x157c: 0x17a8, 0x157d: 0x17ad, 0x157e: 0x0699, 0x157f: 0x069d,
-	// Block 0x56, offset 0x1580
-	0x1580: 0x1069, 0x1581: 0x17b7, 0x1582: 0x17b2, 0x1583: 0x17bc, 0x1584: 0x17c1, 0x1585: 0x1071,
-	0x1586: 0x1075, 0x1587: 0x1075, 0x1588: 0x107d, 0x1589: 0x06a5, 0x158a: 0x1081, 0x158b: 0x06a9,
-	0x158c: 0x06ad, 0x158d: 0x17cb, 0x158e: 0x1095, 0x158f: 0x109d, 0x1590: 0x10a9, 0x1591: 0x06b1,
-	0x1592: 0x17d0, 0x1593: 0x10cd, 0x1594: 0x17d5, 0x1595: 0x17da, 0x1596: 0x10ed, 0x1597: 0x1105,
-	0x1598: 0x06b5, 0x1599: 0x110d, 0x159a: 0x1111, 0x159b: 0x1115, 0x159c: 0x17df, 0x159d: 0x17e4,
-	0x159e: 0x17e4, 0x159f: 0x112d, 0x15a0: 0x06b9, 0x15a1: 0x17e9, 0x15a2: 0x1141, 0x15a3: 0x1145,
-	0x15a4: 0x06bd, 0x15a5: 0x17ee, 0x15a6: 0x1161, 0x15a7: 0x06c1, 0x15a8: 0x1171, 0x15a9: 0x1169,
-	0x15aa: 0x1179, 0x15ab: 0x17f8, 0x15ac: 0x1191, 0x15ad: 0x06c5, 0x15ae: 0x119d, 0x15af: 0x11a5,
-	0x15b0: 0x11b5, 0x15b1: 0x06c9, 0x15b2: 0x1802, 0x15b3: 0x1807, 0x15b4: 0x06cd, 0x15b5: 0x180c,
-	0x15b6: 0x11cd, 0x15b7: 0x1811, 0x15b8: 0x11d9, 0x15b9: 0x11e5, 0x15ba: 0x11ed, 0x15bb: 0x1816,
-	0x15bc: 0x181b, 0x15bd: 0x1201, 0x15be: 0x1820, 0x15bf: 0x1209,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x1730, 0x15c1: 0x06d1, 0x15c2: 0x1221, 0x15c3: 0x1225, 0x15c4: 0x06d9, 0x15c5: 0x1229,
-	0x15c6: 0x0aa5, 0x15c7: 0x1825, 0x15c8: 0x182a, 0x15c9: 0x1735, 0x15ca: 0x173a, 0x15cb: 0x1249,
-	0x15cc: 0x124d, 0x15cd: 0x1465, 0x15ce: 0x06dd, 0x15cf: 0x1279, 0x15d0: 0x1275, 0x15d1: 0x127d,
-	0x15d2: 0x08b1, 0x15d3: 0x1281, 0x15d4: 0x1285, 0x15d5: 0x1289, 0x15d6: 0x1291, 0x15d7: 0x182f,
-	0x15d8: 0x128d, 0x15d9: 0x1295, 0x15da: 0x12a9, 0x15db: 0x12ad, 0x15dc: 0x1299, 0x15dd: 0x12b1,
-	0x15de: 0x12c5, 0x15df: 0x12d9, 0x15e0: 0x12a5, 0x15e1: 0x12b9, 0x15e2: 0x12bd, 0x15e3: 0x12c1,
-	0x15e4: 0x1834, 0x15e5: 0x183e, 0x15e6: 0x1839, 0x15e7: 0x06e1, 0x15e8: 0x12e1, 0x15e9: 0x12e5,
-	0x15ea: 0x12ed, 0x15eb: 0x1852, 0x15ec: 0x12f1, 0x15ed: 0x1843, 0x15ee: 0x06e5, 0x15ef: 0x06e9,
-	0x15f0: 0x1848, 0x15f1: 0x184d, 0x15f2: 0x06ed, 0x15f3: 0x1311, 0x15f4: 0x1315, 0x15f5: 0x1319,
-	0x15f6: 0x131d, 0x15f7: 0x1329, 0x15f8: 0x1325, 0x15f9: 0x1331, 0x15fa: 0x132d, 0x15fb: 0x133d,
-	0x15fc: 0x1335, 0x15fd: 0x1339, 0x15fe: 0x1341, 0x15ff: 0x06f1,
-	// Block 0x58, offset 0x1600
-	0x1600: 0x1349, 0x1601: 0x134d, 0x1602: 0x06f5, 0x1603: 0x135d, 0x1604: 0x1361, 0x1605: 0x1857,
-	0x1606: 0x136d, 0x1607: 0x1371, 0x1608: 0x06f9, 0x1609: 0x137d, 0x160a: 0x062d, 0x160b: 0x185c,
-	0x160c: 0x1861, 0x160d: 0x06fd, 0x160e: 0x0701, 0x160f: 0x13a9, 0x1610: 0x13c1, 0x1611: 0x13dd,
-	0x1612: 0x13ed, 0x1613: 0x1866, 0x1614: 0x1401, 0x1615: 0x1405, 0x1616: 0x141d, 0x1617: 0x1429,
-	0x1618: 0x1870, 0x1619: 0x16c2, 0x161a: 0x1435, 0x161b: 0x1431, 0x161c: 0x143d, 0x161d: 0x16c7,
-	0x161e: 0x1449, 0x161f: 0x1455, 0x1620: 0x1875, 0x1621: 0x187a, 0x1622: 0x1495, 0x1623: 0x14a1,
-	0x1624: 0x14a9, 0x1625: 0x187f, 0x1626: 0x14ad, 0x1627: 0x14d5, 0x1628: 0x14e1, 0x1629: 0x14e5,
-	0x162a: 0x14dd, 0x162b: 0x14f1, 0x162c: 0x14f5, 0x162d: 0x1884, 0x162e: 0x1501, 0x162f: 0x0705,
-	0x1630: 0x1509, 0x1631: 0x1889, 0x1632: 0x0709, 0x1633: 0x1541, 0x1634: 0x0b35, 0x1635: 0x1559,
-	0x1636: 0x188e, 0x1637: 0x1898, 0x1638: 0x070d, 0x1639: 0x0711, 0x163a: 0x1581, 0x163b: 0x189d,
-	0x163c: 0x0715, 0x163d: 0x18a2, 0x163e: 0x1599, 0x163f: 0x1599,
-	// Block 0x59, offset 0x1640
-	0x1640: 0x15a1, 0x1641: 0x18a7, 0x1642: 0x15b9, 0x1643: 0x0719, 0x1644: 0x15c9, 0x1645: 0x15d5,
-	0x1646: 0x15dd, 0x1647: 0x15e5, 0x1648: 0x071d, 0x1649: 0x18ac, 0x164a: 0x15f9, 0x164b: 0x1615,
-	0x164c: 0x1621, 0x164d: 0x0721, 0x164e: 0x0725, 0x164f: 0x1625, 0x1650: 0x18b1, 0x1651: 0x0729,
-	0x1652: 0x18b6, 0x1653: 0x18bb, 0x1654: 0x18c0, 0x1655: 0x1649, 0x1656: 0x072d, 0x1657: 0x165d,
-	0x1658: 0x1665, 0x1659: 0x1669, 0x165a: 0x1671, 0x165b: 0x1679, 0x165c: 0x1681, 0x165d: 0x18ca,
-}
-
-// nfkcSparseOffset: 128 entries, 256 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x85, 0x8d, 0x94, 0x97, 0x9f, 0xa3, 0xa7, 0xa9, 0xab, 0xb4, 0xb8, 0xbf, 0xc4, 0xc7, 0xd1, 0xd3, 0xda, 0xe2, 0xe6, 0xe8, 0xeb, 0xef, 0xf5, 0x106, 0x112, 0x114, 0x11a, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12b, 0x12e, 0x130, 0x133, 0x136, 0x13a, 0x143, 0x145, 0x148, 0x14a, 0x154, 0x15f, 0x16e, 0x17c, 0x18a, 0x19a, 0x1a8, 0x1af, 0x1b5, 0x1c4, 0x1c8, 0x1ca, 0x1ce, 0x1d0, 0x1d3, 0x1d5, 0x1d8, 0x1da, 0x1dd, 0x1df, 0x1e1, 0x1e3, 0x1ef, 0x1f8, 0x1ff, 0x20c, 0x20f, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21c, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x233, 0x235, 0x244, 0x246, 0x24c, 0x254, 0x25b, 0x25e, 0x26b, 0x275, 0x277, 0x279, 0x27d, 0x282, 0x28e, 0x293, 0x29c, 0x2a2, 0x2a7, 0x2ab, 0x2b0, 0x2b4, 0x2c4, 0x2d2, 0x2e0, 0x2ee, 0x2f8, 0x2fa}
-
-// nfkcSparseValues: 772 entries, 3088 bytes
-var nfkcSparseValues = [772]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0002, lo: 0x0d},
-	{value: 0x0001, lo: 0xa0, hi: 0xa0},
-	{value: 0x425e, lo: 0xa8, hi: 0xa8},
-	{value: 0x0083, lo: 0xaa, hi: 0xaa},
-	{value: 0x424a, lo: 0xaf, hi: 0xaf},
-	{value: 0x0025, lo: 0xb2, hi: 0xb3},
-	{value: 0x4240, lo: 0xb4, hi: 0xb4},
-	{value: 0x01dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x4277, lo: 0xb8, hi: 0xb8},
-	{value: 0x0023, lo: 0xb9, hi: 0xb9},
-	{value: 0x009f, lo: 0xba, hi: 0xba},
-	{value: 0x235e, lo: 0xbc, hi: 0xbc},
-	{value: 0x2352, lo: 0xbd, hi: 0xbd},
-	{value: 0x23f4, lo: 0xbe, hi: 0xbe},
-	// Block 0x1, offset 0x2
-	{value: 0x0091, lo: 0x03},
-	{value: 0x46c8, lo: 0xa0, hi: 0xa1},
-	{value: 0x46fa, lo: 0xaf, hi: 0xb0},
-	{value: 0x8800, lo: 0xb7, hi: 0xb7},
-	// Block 0x2, offset 0x3
-	{value: 0x0003, lo: 0x08},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x0091, lo: 0xb0, hi: 0xb0},
-	{value: 0x011c, lo: 0xb1, hi: 0xb1},
-	{value: 0x0095, lo: 0xb2, hi: 0xb2},
-	{value: 0x00a5, lo: 0xb3, hi: 0xb3},
-	{value: 0x0143, lo: 0xb4, hi: 0xb6},
-	{value: 0x00af, lo: 0xb7, hi: 0xb7},
-	{value: 0x00b3, lo: 0xb8, hi: 0xb8},
-	// Block 0x3, offset 0x4
-	{value: 0x000a, lo: 0x09},
-	{value: 0x4254, lo: 0x98, hi: 0x98},
-	{value: 0x4259, lo: 0x99, hi: 0x9a},
-	{value: 0x427c, lo: 0x9b, hi: 0x9b},
-	{value: 0x4245, lo: 0x9c, hi: 0x9c},
-	{value: 0x4268, lo: 0x9d, hi: 0x9d},
-	{value: 0x0116, lo: 0xa0, hi: 0xa0},
-	{value: 0x0099, lo: 0xa1, hi: 0xa1},
-	{value: 0x00a7, lo: 0xa2, hi: 0xa3},
-	{value: 0x0167, lo: 0xa4, hi: 0xa4},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x0f},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x8800, lo: 0x8d, hi: 0x8d},
-	{value: 0x378f, lo: 0x90, hi: 0x90},
-	{value: 0x379b, lo: 0x91, hi: 0x91},
-	{value: 0x3789, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x96, hi: 0x96},
-	{value: 0x3801, lo: 0x97, hi: 0x97},
-	{value: 0x37cb, lo: 0x9c, hi: 0x9c},
-	{value: 0x37b3, lo: 0x9d, hi: 0x9d},
-	{value: 0x37dd, lo: 0x9e, hi: 0x9e},
-	{value: 0x8800, lo: 0xb4, hi: 0xb5},
-	{value: 0x3807, lo: 0xb6, hi: 0xb6},
-	{value: 0x380d, lo: 0xb7, hi: 0xb7},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x83, hi: 0x87},
-	// Block 0x6, offset 0x7
-	{value: 0x0001, lo: 0x04},
-	{value: 0x8018, lo: 0x81, hi: 0x82},
-	{value: 0x80e6, lo: 0x84, hi: 0x84},
-	{value: 0x80dc, lo: 0x85, hi: 0x85},
-	{value: 0x8012, lo: 0x87, hi: 0x87},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x0a},
-	{value: 0x80e6, lo: 0x90, hi: 0x97},
-	{value: 0x801e, lo: 0x98, hi: 0x98},
-	{value: 0x801f, lo: 0x99, hi: 0x99},
-	{value: 0x8020, lo: 0x9a, hi: 0x9a},
-	{value: 0x382b, lo: 0xa2, hi: 0xa2},
-	{value: 0x3831, lo: 0xa3, hi: 0xa3},
-	{value: 0x383d, lo: 0xa4, hi: 0xa4},
-	{value: 0x3837, lo: 0xa5, hi: 0xa5},
-	{value: 0x3843, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xa7, hi: 0xa7},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x3855, lo: 0x80, hi: 0x80},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x3849, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x384f, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x95, hi: 0x95},
-	{value: 0x80e6, lo: 0x96, hi: 0x9c},
-	{value: 0x80e6, lo: 0x9f, hi: 0xa2},
-	{value: 0x80dc, lo: 0xa3, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa4},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e6, lo: 0xab, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x8024, lo: 0x91, hi: 0x91},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80dc, lo: 0xb1, hi: 0xb1},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb5, hi: 0xb6},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb9},
-	{value: 0x80e6, lo: 0xba, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbc},
-	{value: 0x80e6, lo: 0xbd, hi: 0xbd},
-	{value: 0x80dc, lo: 0xbe, hi: 0xbe},
-	{value: 0x80e6, lo: 0xbf, hi: 0xbf},
-	// Block 0xa, offset 0xb
-	{value: 0x000a, lo: 0x07},
-	{value: 0x80e6, lo: 0x80, hi: 0x80},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x83},
-	{value: 0x80dc, lo: 0x84, hi: 0x85},
-	{value: 0x80dc, lo: 0x86, hi: 0x87},
-	{value: 0x80dc, lo: 0x88, hi: 0x89},
-	{value: 0x80e6, lo: 0x8a, hi: 0x8a},
-	// Block 0xb, offset 0xc
-	{value: 0x0000, lo: 0x03},
-	{value: 0x80e6, lo: 0xab, hi: 0xb1},
-	{value: 0x80dc, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb3},
-	// Block 0xc, offset 0xd
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80e6, lo: 0x96, hi: 0x99},
-	{value: 0x80e6, lo: 0x9b, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa5, hi: 0xa7},
-	{value: 0x80e6, lo: 0xa9, hi: 0xad},
-	// Block 0xd, offset 0xe
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x99, hi: 0x9b},
-	// Block 0xe, offset 0xf
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa5},
-	{value: 0x80dc, lo: 0xa6, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xa9, hi: 0xa9},
-	{value: 0x80e6, lo: 0xaa, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xaf},
-	{value: 0x801b, lo: 0xb0, hi: 0xb0},
-	{value: 0x801c, lo: 0xb1, hi: 0xb1},
-	{value: 0x801d, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb6, hi: 0xb6},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80dc, lo: 0xb9, hi: 0xba},
-	{value: 0x80e6, lo: 0xbb, hi: 0xbe},
-	// Block 0xf, offset 0x10
-	{value: 0x0000, lo: 0x07},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	{value: 0x3ec2, lo: 0xa9, hi: 0xa9},
-	{value: 0x8800, lo: 0xb0, hi: 0xb0},
-	{value: 0x3eca, lo: 0xb1, hi: 0xb1},
-	{value: 0x8800, lo: 0xb3, hi: 0xb3},
-	{value: 0x3ed2, lo: 0xb4, hi: 0xb4},
-	{value: 0x8607, lo: 0xbc, hi: 0xbc},
-	// Block 0x10, offset 0x11
-	{value: 0x0008, lo: 0x06},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x91, hi: 0x91},
-	{value: 0x80dc, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x93, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x94},
-	{value: 0x4502, lo: 0x98, hi: 0x9f},
-	// Block 0x11, offset 0x12
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x12, offset 0x13
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18cf, lo: 0x8b, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	{value: 0x4542, lo: 0x9c, hi: 0x9c},
-	{value: 0x454a, lo: 0x9d, hi: 0x9d},
-	{value: 0x4552, lo: 0x9f, hi: 0x9f},
-	// Block 0x13, offset 0x14
-	{value: 0x0000, lo: 0x03},
-	{value: 0x457a, lo: 0xb3, hi: 0xb3},
-	{value: 0x4582, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x14, offset 0x15
-	{value: 0x0008, lo: 0x03},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x455a, lo: 0x99, hi: 0x9b},
-	{value: 0x4572, lo: 0x9e, hi: 0x9e},
-	// Block 0x15, offset 0x16
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x16, offset 0x17
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	// Block 0x17, offset 0x18
-	{value: 0x0000, lo: 0x08},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18e4, lo: 0x88, hi: 0x88},
-	{value: 0x18dd, lo: 0x8b, hi: 0x8b},
-	{value: 0x18eb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x96, hi: 0x97},
-	{value: 0x458a, lo: 0x9c, hi: 0x9c},
-	{value: 0x4592, lo: 0x9d, hi: 0x9d},
-	// Block 0x18, offset 0x19
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x18f2, lo: 0x94, hi: 0x94},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x19, offset 0x1a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x18f9, lo: 0x8a, hi: 0x8a},
-	{value: 0x1907, lo: 0x8b, hi: 0x8b},
-	{value: 0x1900, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1a, offset 0x1b
-	{value: 0x0607, lo: 0x04},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x3eda, lo: 0x88, hi: 0x88},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8054, lo: 0x95, hi: 0x96},
-	// Block 0x1b, offset 0x1c
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8800, lo: 0xbf, hi: 0xbf},
-	// Block 0x1c, offset 0x1d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x190e, lo: 0x80, hi: 0x80},
-	{value: 0x8600, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x1915, lo: 0x87, hi: 0x87},
-	{value: 0x191c, lo: 0x88, hi: 0x88},
-	{value: 0x2e66, lo: 0x8a, hi: 0x8a},
-	{value: 0x19a5, lo: 0x8b, hi: 0x8b},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x95, hi: 0x96},
-	// Block 0x1d, offset 0x1e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x1e, offset 0x1f
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x1923, lo: 0x8a, hi: 0x8a},
-	{value: 0x1931, lo: 0x8b, hi: 0x8b},
-	{value: 0x192a, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1f, offset 0x20
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8609, lo: 0x8a, hi: 0x8a},
-	{value: 0x8600, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x3ee2, lo: 0x9a, hi: 0x9a},
-	{value: 0x2e6d, lo: 0x9c, hi: 0x9d},
-	{value: 0x1938, lo: 0x9e, hi: 0x9e},
-	{value: 0x8600, lo: 0x9f, hi: 0x9f},
-	// Block 0x20, offset 0x21
-	{value: 0x0000, lo: 0x03},
-	{value: 0x2763, lo: 0xb3, hi: 0xb3},
-	{value: 0x8067, lo: 0xb8, hi: 0xb9},
-	{value: 0x8009, lo: 0xba, hi: 0xba},
-	// Block 0x21, offset 0x22
-	{value: 0x0000, lo: 0x01},
-	{value: 0x806b, lo: 0x88, hi: 0x8b},
-	// Block 0x22, offset 0x23
-	{value: 0x0000, lo: 0x02},
-	{value: 0x2778, lo: 0xb3, hi: 0xb3},
-	{value: 0x8076, lo: 0xb8, hi: 0xb9},
-	// Block 0x23, offset 0x24
-	{value: 0x0000, lo: 0x03},
-	{value: 0x807a, lo: 0x88, hi: 0x8b},
-	{value: 0x276a, lo: 0x9c, hi: 0x9c},
-	{value: 0x2771, lo: 0x9d, hi: 0x9d},
-	// Block 0x24, offset 0x25
-	{value: 0x0000, lo: 0x05},
-	{value: 0x0305, lo: 0x8c, hi: 0x8c},
-	{value: 0x80dc, lo: 0x98, hi: 0x99},
-	{value: 0x80dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb7},
-	{value: 0x80d8, lo: 0xb9, hi: 0xb9},
-	// Block 0x25, offset 0x26
-	{value: 0x0000, lo: 0x10},
-	{value: 0x2786, lo: 0x83, hi: 0x83},
-	{value: 0x278d, lo: 0x8d, hi: 0x8d},
-	{value: 0x2794, lo: 0x92, hi: 0x92},
-	{value: 0x279b, lo: 0x97, hi: 0x97},
-	{value: 0x27a2, lo: 0x9c, hi: 0x9c},
-	{value: 0x277f, lo: 0xa9, hi: 0xa9},
-	{value: 0x8081, lo: 0xb1, hi: 0xb1},
-	{value: 0x8082, lo: 0xb2, hi: 0xb2},
-	{value: 0x49b6, lo: 0xb3, hi: 0xb3},
-	{value: 0x8084, lo: 0xb4, hi: 0xb4},
-	{value: 0x49bf, lo: 0xb5, hi: 0xb5},
-	{value: 0x459a, lo: 0xb6, hi: 0xb6},
-	{value: 0x45da, lo: 0xb7, hi: 0xb7},
-	{value: 0x45a2, lo: 0xb8, hi: 0xb8},
-	{value: 0x45e5, lo: 0xb9, hi: 0xb9},
-	{value: 0x8082, lo: 0xba, hi: 0xbd},
-	// Block 0x26, offset 0x27
-	{value: 0x0000, lo: 0x0b},
-	{value: 0x8082, lo: 0x80, hi: 0x80},
-	{value: 0x49c8, lo: 0x81, hi: 0x81},
-	{value: 0x80e6, lo: 0x82, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0x86, hi: 0x87},
-	{value: 0x27b0, lo: 0x93, hi: 0x93},
-	{value: 0x27b7, lo: 0x9d, hi: 0x9d},
-	{value: 0x27be, lo: 0xa2, hi: 0xa2},
-	{value: 0x27c5, lo: 0xa7, hi: 0xa7},
-	{value: 0x27cc, lo: 0xac, hi: 0xac},
-	{value: 0x27a9, lo: 0xb9, hi: 0xb9},
-	// Block 0x27, offset 0x28
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x86, hi: 0x86},
-	// Block 0x28, offset 0x29
-	{value: 0x0000, lo: 0x05},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x193f, lo: 0xa6, hi: 0xa6},
-	{value: 0x8600, lo: 0xae, hi: 0xae},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x29, offset 0x2a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	// Block 0x2a, offset 0x2b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0309, lo: 0xbc, hi: 0xbc},
-	// Block 0x2b, offset 0x2c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x80, hi: 0x92},
-	// Block 0x2c, offset 0x2d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8e00, lo: 0xa1, hi: 0xb5},
-	// Block 0x2d, offset 0x2e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xa8, hi: 0xbf},
-	// Block 0x2e, offset 0x2f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0x80, hi: 0x82},
-	// Block 0x2f, offset 0x30
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9f},
-	// Block 0x30, offset 0x31
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x94, hi: 0x94},
-	{value: 0x8009, lo: 0xb4, hi: 0xb4},
-	// Block 0x31, offset 0x32
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9d},
-	// Block 0x32, offset 0x33
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e4, lo: 0xa9, hi: 0xa9},
-	// Block 0x33, offset 0x34
-	{value: 0x0008, lo: 0x02},
-	{value: 0x80de, lo: 0xb9, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbb},
-	// Block 0x34, offset 0x35
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x97, hi: 0x97},
-	{value: 0x80dc, lo: 0x98, hi: 0x98},
-	// Block 0x35, offset 0x36
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8009, lo: 0xa0, hi: 0xa0},
-	{value: 0x80e6, lo: 0xb5, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x36, offset 0x37
-	{value: 0x0000, lo: 0x08},
-	{value: 0x197e, lo: 0x80, hi: 0x80},
-	{value: 0x1985, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x82, hi: 0x82},
-	{value: 0x198c, lo: 0x83, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xab, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xac},
-	{value: 0x80e6, lo: 0xad, hi: 0xb3},
-	// Block 0x37, offset 0x38
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xaa, hi: 0xab},
-	// Block 0x38, offset 0x39
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xa6, hi: 0xa6},
-	{value: 0x8009, lo: 0xb2, hi: 0xb3},
-	// Block 0x39, offset 0x3a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x3a, offset 0x3b
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80e6, lo: 0x90, hi: 0x92},
-	{value: 0x8001, lo: 0x94, hi: 0x94},
-	{value: 0x80dc, lo: 0x95, hi: 0x99},
-	{value: 0x80e6, lo: 0x9a, hi: 0x9b},
-	{value: 0x80dc, lo: 0x9c, hi: 0x9f},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa0},
-	{value: 0x8001, lo: 0xa2, hi: 0xa8},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	{value: 0x80e6, lo: 0xb4, hi: 0xb4},
-	// Block 0x3b, offset 0x3c
-	{value: 0x0002, lo: 0x0a},
-	{value: 0x0043, lo: 0xac, hi: 0xac},
-	{value: 0x00d4, lo: 0xad, hi: 0xad},
-	{value: 0x0045, lo: 0xae, hi: 0xae},
-	{value: 0x0049, lo: 0xb0, hi: 0xb1},
-	{value: 0x00e9, lo: 0xb2, hi: 0xb2},
-	{value: 0x004f, lo: 0xb3, hi: 0xba},
-	{value: 0x005f, lo: 0xbc, hi: 0xbc},
-	{value: 0x00f2, lo: 0xbd, hi: 0xbd},
-	{value: 0x0061, lo: 0xbe, hi: 0xbe},
-	{value: 0x0065, lo: 0xbf, hi: 0xbf},
-	// Block 0x3c, offset 0x3d
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0x80, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x82},
-	{value: 0x80e6, lo: 0x83, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8a},
-	{value: 0x80e6, lo: 0x8b, hi: 0x8c},
-	{value: 0x80ea, lo: 0x8d, hi: 0x8d},
-	{value: 0x80d6, lo: 0x8e, hi: 0x8e},
-	{value: 0x80dc, lo: 0x8f, hi: 0x8f},
-	{value: 0x80ca, lo: 0x90, hi: 0x90},
-	{value: 0x80e6, lo: 0x91, hi: 0xa6},
-	{value: 0x80e9, lo: 0xbc, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbe},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x3d, offset 0x3e
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x0001, lo: 0x80, hi: 0x8a},
-	{value: 0x04ad, lo: 0x91, hi: 0x91},
-	{value: 0x4281, lo: 0x97, hi: 0x97},
-	{value: 0x001d, lo: 0xa4, hi: 0xa4},
-	{value: 0x19b5, lo: 0xa5, hi: 0xa5},
-	{value: 0x1c9e, lo: 0xa6, hi: 0xa6},
-	{value: 0x0001, lo: 0xaf, hi: 0xaf},
-	{value: 0x283c, lo: 0xb3, hi: 0xb3},
-	{value: 0x29a9, lo: 0xb4, hi: 0xb4},
-	{value: 0x2843, lo: 0xb6, hi: 0xb6},
-	{value: 0x29b3, lo: 0xb7, hi: 0xb7},
-	{value: 0x19af, lo: 0xbc, hi: 0xbc},
-	{value: 0x424f, lo: 0xbe, hi: 0xbe},
-	// Block 0x3e, offset 0x3f
-	{value: 0x0002, lo: 0x0d},
-	{value: 0x1a75, lo: 0x87, hi: 0x87},
-	{value: 0x1a72, lo: 0x88, hi: 0x88},
-	{value: 0x19b2, lo: 0x89, hi: 0x89},
-	{value: 0x2b46, lo: 0x97, hi: 0x97},
-	{value: 0x0001, lo: 0x9f, hi: 0x9f},
-	{value: 0x0021, lo: 0xb0, hi: 0xb0},
-	{value: 0x0093, lo: 0xb1, hi: 0xb1},
-	{value: 0x0029, lo: 0xb4, hi: 0xb9},
-	{value: 0x0017, lo: 0xba, hi: 0xba},
-	{value: 0x04d9, lo: 0xbb, hi: 0xbb},
-	{value: 0x003b, lo: 0xbc, hi: 0xbc},
-	{value: 0x0011, lo: 0xbd, hi: 0xbe},
-	{value: 0x009d, lo: 0xbf, hi: 0xbf},
-	// Block 0x3f, offset 0x40
-	{value: 0x0002, lo: 0x0f},
-	{value: 0x0021, lo: 0x80, hi: 0x89},
-	{value: 0x0017, lo: 0x8a, hi: 0x8a},
-	{value: 0x04d9, lo: 0x8b, hi: 0x8b},
-	{value: 0x003b, lo: 0x8c, hi: 0x8c},
-	{value: 0x0011, lo: 0x8d, hi: 0x8e},
-	{value: 0x0083, lo: 0x90, hi: 0x90},
-	{value: 0x008b, lo: 0x91, hi: 0x91},
-	{value: 0x009f, lo: 0x92, hi: 0x92},
-	{value: 0x00b1, lo: 0x93, hi: 0x93},
-	{value: 0x0107, lo: 0x94, hi: 0x94},
-	{value: 0x0091, lo: 0x95, hi: 0x95},
-	{value: 0x0097, lo: 0x96, hi: 0x99},
-	{value: 0x00a1, lo: 0x9a, hi: 0x9a},
-	{value: 0x00a7, lo: 0x9b, hi: 0x9c},
-	{value: 0x1adb, lo: 0xa8, hi: 0xa8},
-	// Block 0x40, offset 0x41
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x80e6, lo: 0x90, hi: 0x91},
-	{value: 0x8001, lo: 0x92, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x97},
-	{value: 0x8001, lo: 0x98, hi: 0x9a},
-	{value: 0x80e6, lo: 0x9b, hi: 0x9c},
-	{value: 0x80e6, lo: 0xa1, hi: 0xa1},
-	{value: 0x8001, lo: 0xa5, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa7},
-	{value: 0x80dc, lo: 0xa8, hi: 0xa8},
-	{value: 0x80e6, lo: 0xa9, hi: 0xa9},
-	{value: 0x8001, lo: 0xaa, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	// Block 0x41, offset 0x42
-	{value: 0x0007, lo: 0x06},
-	{value: 0x22c2, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	{value: 0x3ba3, lo: 0x9a, hi: 0x9b},
-	{value: 0x3bb1, lo: 0xae, hi: 0xae},
-	// Block 0x42, offset 0x43
-	{value: 0x000e, lo: 0x05},
-	{value: 0x3bb8, lo: 0x8d, hi: 0x8e},
-	{value: 0x3bbf, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	// Block 0x43, offset 0x44
-	{value: 0x0173, lo: 0x0e},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x3bcd, lo: 0x84, hi: 0x84},
-	{value: 0x8800, lo: 0x88, hi: 0x88},
-	{value: 0x3bd4, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x3bdb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8800, lo: 0xa3, hi: 0xa3},
-	{value: 0x3be2, lo: 0xa4, hi: 0xa4},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x3be9, lo: 0xa6, hi: 0xa6},
-	{value: 0x284a, lo: 0xac, hi: 0xad},
-	{value: 0x2851, lo: 0xaf, hi: 0xaf},
-	{value: 0x29c7, lo: 0xb0, hi: 0xb0},
-	{value: 0x8800, lo: 0xbc, hi: 0xbc},
-	// Block 0x44, offset 0x45
-	{value: 0x0007, lo: 0x03},
-	{value: 0x3c52, lo: 0xa0, hi: 0xa1},
-	{value: 0x3c7c, lo: 0xa2, hi: 0xa3},
-	{value: 0x3ca6, lo: 0xaa, hi: 0xad},
-	// Block 0x45, offset 0x46
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04fd, lo: 0xa9, hi: 0xaa},
-	// Block 0x46, offset 0x47
-	{value: 0x0002, lo: 0x03},
-	{value: 0x0057, lo: 0x80, hi: 0x8f},
-	{value: 0x0083, lo: 0x90, hi: 0xa9},
-	{value: 0x0021, lo: 0xaa, hi: 0xaa},
-	// Block 0x47, offset 0x48
-	{value: 0x0000, lo: 0x01},
-	{value: 0x2b53, lo: 0x8c, hi: 0x8c},
-	// Block 0x48, offset 0x49
-	{value: 0x0263, lo: 0x02},
-	{value: 0x1cce, lo: 0xb4, hi: 0xb4},
-	{value: 0x1a6f, lo: 0xb5, hi: 0xb6},
-	// Block 0x49, offset 0x4a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x44c3, lo: 0x9c, hi: 0x9c},
-	// Block 0x4a, offset 0x4b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x0095, lo: 0xbc, hi: 0xbc},
-	{value: 0x006d, lo: 0xbd, hi: 0xbd},
-	// Block 0x4b, offset 0x4c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xaf, hi: 0xb1},
-	// Block 0x4c, offset 0x4d
-	{value: 0x0000, lo: 0x02},
-	{value: 0x04f1, lo: 0xaf, hi: 0xaf},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x4d, offset 0x4e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xbf},
-	// Block 0x4e, offset 0x4f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0e35, lo: 0x9f, hi: 0x9f},
-	// Block 0x4f, offset 0x50
-	{value: 0x0000, lo: 0x01},
-	{value: 0x169d, lo: 0xb3, hi: 0xb3},
-	// Block 0x50, offset 0x51
-	{value: 0x0004, lo: 0x0b},
-	{value: 0x1605, lo: 0x80, hi: 0x82},
-	{value: 0x161d, lo: 0x83, hi: 0x83},
-	{value: 0x1635, lo: 0x84, hi: 0x85},
-	{value: 0x1645, lo: 0x86, hi: 0x89},
-	{value: 0x1659, lo: 0x8a, hi: 0x8c},
-	{value: 0x166d, lo: 0x8d, hi: 0x8d},
-	{value: 0x1675, lo: 0x8e, hi: 0x8e},
-	{value: 0x167d, lo: 0x8f, hi: 0x90},
-	{value: 0x1689, lo: 0x91, hi: 0x93},
-	{value: 0x1699, lo: 0x94, hi: 0x94},
-	{value: 0x16a1, lo: 0x95, hi: 0x95},
-	// Block 0x51, offset 0x52
-	{value: 0x0004, lo: 0x08},
-	{value: 0x0001, lo: 0x80, hi: 0x80},
-	{value: 0x80da, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e4, lo: 0xab, hi: 0xac},
-	{value: 0x80de, lo: 0xad, hi: 0xad},
-	{value: 0x80e0, lo: 0xae, hi: 0xae},
-	{value: 0x80e0, lo: 0xaf, hi: 0xaf},
-	{value: 0x0525, lo: 0xb6, hi: 0xb6},
-	{value: 0x08f9, lo: 0xb8, hi: 0xba},
-	// Block 0x52, offset 0x53
-	{value: 0x0004, lo: 0x06},
-	{value: 0x030d, lo: 0xb1, hi: 0xb2},
-	{value: 0x0435, lo: 0xb3, hi: 0xb3},
-	{value: 0x0315, lo: 0xb4, hi: 0xb4},
-	{value: 0x0439, lo: 0xb5, hi: 0xb6},
-	{value: 0x0319, lo: 0xb7, hi: 0xb9},
-	{value: 0x0441, lo: 0xba, hi: 0xbf},
-	// Block 0x53, offset 0x54
-	{value: 0x0004, lo: 0x0c},
-	{value: 0x0361, lo: 0x80, hi: 0x80},
-	{value: 0x0325, lo: 0x81, hi: 0x83},
-	{value: 0x0375, lo: 0x84, hi: 0x84},
-	{value: 0x0331, lo: 0x85, hi: 0x8e},
-	{value: 0x03c1, lo: 0x8f, hi: 0xa3},
-	{value: 0x03bd, lo: 0xa4, hi: 0xa4},
-	{value: 0x0359, lo: 0xa5, hi: 0xa6},
-	{value: 0x0459, lo: 0xa7, hi: 0xad},
-	{value: 0x0365, lo: 0xae, hi: 0xae},
-	{value: 0x0475, lo: 0xaf, hi: 0xb0},
-	{value: 0x0369, lo: 0xb1, hi: 0xb3},
-	{value: 0x0379, lo: 0xb4, hi: 0xbf},
-	// Block 0x54, offset 0x55
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0xaf, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb4, hi: 0xbd},
-	// Block 0x55, offset 0x56
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9f, hi: 0x9f},
-	// Block 0x56, offset 0x57
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb1},
-	// Block 0x57, offset 0x58
-	{value: 0x0000, lo: 0x01},
-	{value: 0x16a5, lo: 0xb0, hi: 0xb0},
-	// Block 0x58, offset 0x59
-	{value: 0x000c, lo: 0x01},
-	{value: 0x00da, lo: 0xb8, hi: 0xb9},
-	// Block 0x59, offset 0x5a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x86, hi: 0x86},
-	// Block 0x5a, offset 0x5b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xa0, hi: 0xb1},
-	// Block 0x5b, offset 0x5c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xab, hi: 0xad},
-	// Block 0x5c, offset 0x5d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x93, hi: 0x93},
-	// Block 0x5d, offset 0x5e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb3, hi: 0xb3},
-	// Block 0x5e, offset 0x5f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x80, hi: 0x80},
-	// Block 0x5f, offset 0x60
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbf},
-	// Block 0x60, offset 0x61
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	// Block 0x61, offset 0x62
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xad, hi: 0xad},
-	// Block 0x62, offset 0x63
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xbf},
-	// Block 0x63, offset 0x64
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xa3},
-	// Block 0x64, offset 0x65
-	{value: 0x0002, lo: 0x01},
-	{value: 0x0003, lo: 0x81, hi: 0xbf},
-	// Block 0x65, offset 0x66
-	{value: 0x0004, lo: 0x0e},
-	{value: 0x03c1, lo: 0x82, hi: 0x87},
-	{value: 0x03d9, lo: 0x8a, hi: 0x8f},
-	{value: 0x03f1, lo: 0x92, hi: 0x97},
-	{value: 0x0409, lo: 0x9a, hi: 0x9c},
-	{value: 0x00bf, lo: 0xa0, hi: 0xa0},
-	{value: 0x00c2, lo: 0xa1, hi: 0xa1},
-	{value: 0x00cb, lo: 0xa2, hi: 0xa2},
-	{value: 0x424a, lo: 0xa3, hi: 0xa3},
-	{value: 0x00c8, lo: 0xa4, hi: 0xa4},
-	{value: 0x00c5, lo: 0xa5, hi: 0xa5},
-	{value: 0x04b9, lo: 0xa6, hi: 0xa6},
-	{value: 0x04dd, lo: 0xa8, hi: 0xa8},
-	{value: 0x04bd, lo: 0xa9, hi: 0xac},
-	{value: 0x04e1, lo: 0xad, hi: 0xae},
-	// Block 0x66, offset 0x67
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	// Block 0x67, offset 0x68
-	{value: 0x00db, lo: 0x05},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x8f, hi: 0x8f},
-	{value: 0x80e6, lo: 0xb8, hi: 0xb8},
-	{value: 0x8001, lo: 0xb9, hi: 0xba},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x68, offset 0x69
-	{value: 0x05fe, lo: 0x07},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x4222, lo: 0x9a, hi: 0x9a},
-	{value: 0x8800, lo: 0x9b, hi: 0x9b},
-	{value: 0x422c, lo: 0x9c, hi: 0x9c},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x4236, lo: 0xab, hi: 0xab},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x69, offset 0x6a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x80e6, lo: 0x80, hi: 0x82},
-	{value: 0x8600, lo: 0xa7, hi: 0xa7},
-	{value: 0x1993, lo: 0xae, hi: 0xae},
-	{value: 0x199c, lo: 0xaf, hi: 0xaf},
-	{value: 0x8800, lo: 0xb1, hi: 0xb2},
-	{value: 0x8009, lo: 0xb3, hi: 0xb4},
-	// Block 0x6a, offset 0x6b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x6b, offset 0x6c
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x45b2, lo: 0x9e, hi: 0x9e},
-	{value: 0x45bc, lo: 0x9f, hi: 0x9f},
-	{value: 0x45f0, lo: 0xa0, hi: 0xa0},
-	{value: 0x45fe, lo: 0xa1, hi: 0xa1},
-	{value: 0x460c, lo: 0xa2, hi: 0xa2},
-	{value: 0x461a, lo: 0xa3, hi: 0xa3},
-	{value: 0x4628, lo: 0xa4, hi: 0xa4},
-	{value: 0x80d8, lo: 0xa5, hi: 0xa6},
-	{value: 0x8001, lo: 0xa7, hi: 0xa9},
-	{value: 0x80e2, lo: 0xad, hi: 0xad},
-	{value: 0x80d8, lo: 0xae, hi: 0xb2},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbf},
-	// Block 0x6c, offset 0x6d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80dc, lo: 0x80, hi: 0x82},
-	{value: 0x80e6, lo: 0x85, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8b},
-	{value: 0x80e6, lo: 0xaa, hi: 0xad},
-	{value: 0x45c6, lo: 0xbb, hi: 0xbb},
-	{value: 0x45d0, lo: 0xbc, hi: 0xbc},
-	{value: 0x4636, lo: 0xbd, hi: 0xbd},
-	{value: 0x4652, lo: 0xbe, hi: 0xbe},
-	{value: 0x4644, lo: 0xbf, hi: 0xbf},
-	// Block 0x6d, offset 0x6e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x4660, lo: 0x80, hi: 0x80},
-	// Block 0x6e, offset 0x6f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x82, hi: 0x84},
-	// Block 0x6f, offset 0x70
-	{value: 0x0002, lo: 0x03},
-	{value: 0x0043, lo: 0x80, hi: 0x99},
-	{value: 0x0083, lo: 0x9a, hi: 0xb3},
-	{value: 0x0043, lo: 0xb4, hi: 0xbf},
-	// Block 0x70, offset 0x71
-	{value: 0x0002, lo: 0x04},
-	{value: 0x005b, lo: 0x80, hi: 0x8d},
-	{value: 0x0083, lo: 0x8e, hi: 0x94},
-	{value: 0x0093, lo: 0x96, hi: 0xa7},
-	{value: 0x0043, lo: 0xa8, hi: 0xbf},
-	// Block 0x71, offset 0x72
-	{value: 0x0002, lo: 0x0b},
-	{value: 0x0073, lo: 0x80, hi: 0x81},
-	{value: 0x0083, lo: 0x82, hi: 0x9b},
-	{value: 0x0043, lo: 0x9c, hi: 0x9c},
-	{value: 0x0047, lo: 0x9e, hi: 0x9f},
-	{value: 0x004f, lo: 0xa2, hi: 0xa2},
-	{value: 0x0055, lo: 0xa5, hi: 0xa6},
-	{value: 0x005d, lo: 0xa9, hi: 0xac},
-	{value: 0x0067, lo: 0xae, hi: 0xb5},
-	{value: 0x0083, lo: 0xb6, hi: 0xb9},
-	{value: 0x008d, lo: 0xbb, hi: 0xbb},
-	{value: 0x0091, lo: 0xbd, hi: 0xbf},
-	// Block 0x72, offset 0x73
-	{value: 0x0002, lo: 0x04},
-	{value: 0x0097, lo: 0x80, hi: 0x83},
-	{value: 0x00a1, lo: 0x85, hi: 0x8f},
-	{value: 0x0043, lo: 0x90, hi: 0xa9},
-	{value: 0x0083, lo: 0xaa, hi: 0xbf},
-	// Block 0x73, offset 0x74
-	{value: 0x0002, lo: 0x08},
-	{value: 0x00af, lo: 0x80, hi: 0x83},
-	{value: 0x0043, lo: 0x84, hi: 0x85},
-	{value: 0x0049, lo: 0x87, hi: 0x8a},
-	{value: 0x0055, lo: 0x8d, hi: 0x94},
-	{value: 0x0067, lo: 0x96, hi: 0x9c},
-	{value: 0x0083, lo: 0x9e, hi: 0xb7},
-	{value: 0x0043, lo: 0xb8, hi: 0xb9},
-	{value: 0x0049, lo: 0xbb, hi: 0xbe},
-	// Block 0x74, offset 0x75
-	{value: 0x0002, lo: 0x05},
-	{value: 0x0053, lo: 0x80, hi: 0x84},
-	{value: 0x005f, lo: 0x86, hi: 0x86},
-	{value: 0x0067, lo: 0x8a, hi: 0x90},
-	{value: 0x0083, lo: 0x92, hi: 0xab},
-	{value: 0x0043, lo: 0xac, hi: 0xbf},
-	// Block 0x75, offset 0x76
-	{value: 0x0002, lo: 0x04},
-	{value: 0x006b, lo: 0x80, hi: 0x85},
-	{value: 0x0083, lo: 0x86, hi: 0x9f},
-	{value: 0x0043, lo: 0xa0, hi: 0xb9},
-	{value: 0x0083, lo: 0xba, hi: 0xbf},
-	// Block 0x76, offset 0x77
-	{value: 0x0002, lo: 0x03},
-	{value: 0x008f, lo: 0x80, hi: 0x93},
-	{value: 0x0043, lo: 0x94, hi: 0xad},
-	{value: 0x0083, lo: 0xae, hi: 0xbf},
-	// Block 0x77, offset 0x78
-	{value: 0x0002, lo: 0x04},
-	{value: 0x00a7, lo: 0x80, hi: 0x87},
-	{value: 0x0043, lo: 0x88, hi: 0xa1},
-	{value: 0x0083, lo: 0xa2, hi: 0xbb},
-	{value: 0x0043, lo: 0xbc, hi: 0xbf},
-	// Block 0x78, offset 0x79
-	{value: 0x0002, lo: 0x03},
-	{value: 0x004b, lo: 0x80, hi: 0x95},
-	{value: 0x0083, lo: 0x96, hi: 0xaf},
-	{value: 0x0043, lo: 0xb0, hi: 0xbf},
-	// Block 0x79, offset 0x7a
-	{value: 0x0003, lo: 0x0f},
-	{value: 0x01b8, lo: 0x80, hi: 0x80},
-	{value: 0x04d1, lo: 0x81, hi: 0x81},
-	{value: 0x01bb, lo: 0x82, hi: 0x9a},
-	{value: 0x04cd, lo: 0x9b, hi: 0x9b},
-	{value: 0x01c7, lo: 0x9c, hi: 0x9c},
-	{value: 0x01d0, lo: 0x9d, hi: 0x9d},
-	{value: 0x01d6, lo: 0x9e, hi: 0x9e},
-	{value: 0x01fa, lo: 0x9f, hi: 0x9f},
-	{value: 0x01eb, lo: 0xa0, hi: 0xa0},
-	{value: 0x01e8, lo: 0xa1, hi: 0xa1},
-	{value: 0x0173, lo: 0xa2, hi: 0xb2},
-	{value: 0x0188, lo: 0xb3, hi: 0xb3},
-	{value: 0x01a6, lo: 0xb4, hi: 0xba},
-	{value: 0x04d1, lo: 0xbb, hi: 0xbb},
-	{value: 0x01bb, lo: 0xbc, hi: 0xbf},
-	// Block 0x7a, offset 0x7b
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01c7, lo: 0x80, hi: 0x94},
-	{value: 0x04cd, lo: 0x95, hi: 0x95},
-	{value: 0x01c7, lo: 0x96, hi: 0x96},
-	{value: 0x01d0, lo: 0x97, hi: 0x97},
-	{value: 0x01d6, lo: 0x98, hi: 0x98},
-	{value: 0x01fa, lo: 0x99, hi: 0x99},
-	{value: 0x01eb, lo: 0x9a, hi: 0x9a},
-	{value: 0x01e8, lo: 0x9b, hi: 0x9b},
-	{value: 0x0173, lo: 0x9c, hi: 0xac},
-	{value: 0x0188, lo: 0xad, hi: 0xad},
-	{value: 0x01a6, lo: 0xae, hi: 0xb4},
-	{value: 0x04d1, lo: 0xb5, hi: 0xb5},
-	{value: 0x01bb, lo: 0xb6, hi: 0xbf},
-	// Block 0x7b, offset 0x7c
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01d9, lo: 0x80, hi: 0x8e},
-	{value: 0x04cd, lo: 0x8f, hi: 0x8f},
-	{value: 0x01c7, lo: 0x90, hi: 0x90},
-	{value: 0x01d0, lo: 0x91, hi: 0x91},
-	{value: 0x01d6, lo: 0x92, hi: 0x92},
-	{value: 0x01fa, lo: 0x93, hi: 0x93},
-	{value: 0x01eb, lo: 0x94, hi: 0x94},
-	{value: 0x01e8, lo: 0x95, hi: 0x95},
-	{value: 0x0173, lo: 0x96, hi: 0xa6},
-	{value: 0x0188, lo: 0xa7, hi: 0xa7},
-	{value: 0x01a6, lo: 0xa8, hi: 0xae},
-	{value: 0x04d1, lo: 0xaf, hi: 0xaf},
-	{value: 0x01bb, lo: 0xb0, hi: 0xbf},
-	// Block 0x7c, offset 0x7d
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01eb, lo: 0x80, hi: 0x88},
-	{value: 0x04cd, lo: 0x89, hi: 0x89},
-	{value: 0x01c7, lo: 0x8a, hi: 0x8a},
-	{value: 0x01d0, lo: 0x8b, hi: 0x8b},
-	{value: 0x01d6, lo: 0x8c, hi: 0x8c},
-	{value: 0x01fa, lo: 0x8d, hi: 0x8d},
-	{value: 0x01eb, lo: 0x8e, hi: 0x8e},
-	{value: 0x01e8, lo: 0x8f, hi: 0x8f},
-	{value: 0x0173, lo: 0x90, hi: 0xa0},
-	{value: 0x0188, lo: 0xa1, hi: 0xa1},
-	{value: 0x01a6, lo: 0xa2, hi: 0xa8},
-	{value: 0x04d1, lo: 0xa9, hi: 0xa9},
-	{value: 0x01bb, lo: 0xaa, hi: 0xbf},
-	// Block 0x7d, offset 0x7e
-	{value: 0x0002, lo: 0x09},
-	{value: 0x0063, lo: 0x80, hi: 0x89},
-	{value: 0x1a93, lo: 0x8a, hi: 0x8a},
-	{value: 0x1ac3, lo: 0x8b, hi: 0x8b},
-	{value: 0x1ade, lo: 0x8c, hi: 0x8c},
-	{value: 0x1ae4, lo: 0x8d, hi: 0x8d},
-	{value: 0x1d02, lo: 0x8e, hi: 0x8e},
-	{value: 0x1af0, lo: 0x8f, hi: 0x8f},
-	{value: 0x1abd, lo: 0xaa, hi: 0xaa},
-	{value: 0x1ac0, lo: 0xab, hi: 0xab},
-	// Block 0x7e, offset 0x7f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x1a81, lo: 0x90, hi: 0x90},
-	// Block 0x7f, offset 0x80
-	{value: 0x0028, lo: 0x09},
-	{value: 0x2a0d, lo: 0x80, hi: 0x80},
-	{value: 0x29d1, lo: 0x81, hi: 0x81},
-	{value: 0x29db, lo: 0x82, hi: 0x82},
-	{value: 0x29ef, lo: 0x83, hi: 0x84},
-	{value: 0x29f9, lo: 0x85, hi: 0x86},
-	{value: 0x29e5, lo: 0x87, hi: 0x87},
-	{value: 0x2a03, lo: 0x88, hi: 0x88},
-	{value: 0x0be1, lo: 0x90, hi: 0x90},
-	{value: 0x0959, lo: 0x91, hi: 0x91},
-}
-
-// nfkcLookup: 1216 bytes
-// Block 0 is the null block.
-var nfkcLookup = [1216]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x58, 0x0c3: 0x01, 0x0c4: 0x02, 0x0c5: 0x03, 0x0c6: 0x59, 0x0c7: 0x04,
-	0x0c8: 0x05, 0x0ca: 0x5a, 0x0cb: 0x5b, 0x0cc: 0x06, 0x0cd: 0x07, 0x0ce: 0x08, 0x0cf: 0x09,
-	0x0d0: 0x0a, 0x0d1: 0x5c, 0x0d2: 0x5d, 0x0d3: 0x0b, 0x0d6: 0x0c, 0x0d7: 0x5e,
-	0x0d8: 0x5f, 0x0d9: 0x0d, 0x0db: 0x60, 0x0dc: 0x61, 0x0dd: 0x62, 0x0df: 0x63,
-	0x0e0: 0x02, 0x0e1: 0x03, 0x0e2: 0x04, 0x0e3: 0x05,
-	0x0ea: 0x06, 0x0eb: 0x07, 0x0ec: 0x07, 0x0ed: 0x08, 0x0ef: 0x09,
-	0x0f0: 0x10,
-	// Block 0x4, offset 0x100
-	0x120: 0x64, 0x121: 0x65, 0x123: 0x66, 0x124: 0x67, 0x125: 0x68, 0x126: 0x69, 0x127: 0x6a,
-	0x128: 0x6b, 0x129: 0x6c, 0x12a: 0x6d, 0x12b: 0x6e, 0x12c: 0x69, 0x12d: 0x6f, 0x12e: 0x70, 0x12f: 0x71,
-	0x131: 0x72, 0x132: 0x73, 0x133: 0x74, 0x134: 0x75, 0x135: 0x76, 0x137: 0x77,
-	0x138: 0x78, 0x139: 0x79, 0x13a: 0x7a, 0x13b: 0x7b, 0x13c: 0x7c, 0x13d: 0x7d, 0x13e: 0x7e, 0x13f: 0x7f,
-	// Block 0x5, offset 0x140
-	0x140: 0x80, 0x142: 0x81, 0x143: 0x82, 0x144: 0x83, 0x145: 0x84, 0x146: 0x85, 0x147: 0x86,
-	0x14d: 0x87,
-	0x15c: 0x88, 0x15f: 0x89,
-	0x162: 0x8a, 0x164: 0x8b,
-	0x168: 0x8c, 0x169: 0x8d, 0x16c: 0x0e, 0x16d: 0x8e, 0x16e: 0x8f, 0x16f: 0x90,
-	0x170: 0x91, 0x173: 0x92, 0x174: 0x93, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x94,
-	0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,
-	// Block 0x6, offset 0x180
-	0x180: 0x95, 0x181: 0x96, 0x182: 0x97, 0x183: 0x98, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x99, 0x187: 0x9a,
-	0x188: 0x9b, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9c, 0x18c: 0x9d,
-	0x191: 0x1d, 0x192: 0x1e, 0x193: 0x9e,
-	0x1a8: 0x9f, 0x1a9: 0xa0, 0x1ab: 0xa1,
-	0x1b1: 0xa2, 0x1b3: 0xa3, 0x1b5: 0xa4, 0x1b7: 0xa5,
-	0x1ba: 0xa6, 0x1bb: 0xa7, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xa8,
-	// Block 0x7, offset 0x1c0
-	0x1c0: 0xa9, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xaa, 0x1c5: 0xab, 0x1c6: 0x25,
-	0x1c8: 0x26, 0x1c9: 0x27, 0x1ca: 0x28, 0x1cb: 0x29, 0x1cc: 0x2a, 0x1cd: 0x2b, 0x1ce: 0x2c, 0x1cf: 0x2d,
-	// Block 0x8, offset 0x200
-	0x219: 0xac, 0x21a: 0xad, 0x21b: 0xae, 0x21d: 0xaf, 0x21f: 0xb0,
-	0x220: 0xb1, 0x223: 0xb2, 0x224: 0xb3, 0x225: 0xb4, 0x226: 0xb5, 0x227: 0xb6,
-	0x22a: 0xb7, 0x22b: 0xb8, 0x22f: 0xb9,
-	0x230: 0xba, 0x231: 0xba, 0x232: 0xba, 0x233: 0xba, 0x234: 0xba, 0x235: 0xba, 0x236: 0xba, 0x237: 0xba,
-	0x238: 0xba, 0x239: 0xba, 0x23a: 0xba, 0x23b: 0xba, 0x23c: 0xba, 0x23d: 0xba, 0x23e: 0xba, 0x23f: 0xba,
-	// Block 0x9, offset 0x240
-	0x240: 0xba, 0x241: 0xba, 0x242: 0xba, 0x243: 0xba, 0x244: 0xba, 0x245: 0xba, 0x246: 0xba, 0x247: 0xba,
-	0x248: 0xba, 0x249: 0xba, 0x24a: 0xba, 0x24b: 0xba, 0x24c: 0xba, 0x24d: 0xba, 0x24e: 0xba, 0x24f: 0xba,
-	0x250: 0xba, 0x251: 0xba, 0x252: 0xba, 0x253: 0xba, 0x254: 0xba, 0x255: 0xba, 0x256: 0xba, 0x257: 0xba,
-	0x258: 0xba, 0x259: 0xba, 0x25a: 0xba, 0x25b: 0xba, 0x25c: 0xba, 0x25d: 0xba, 0x25e: 0xba, 0x25f: 0xba,
-	0x260: 0xba, 0x261: 0xba, 0x262: 0xba, 0x263: 0xba, 0x264: 0xba, 0x265: 0xba, 0x266: 0xba, 0x267: 0xba,
-	0x268: 0xba, 0x269: 0xba, 0x26a: 0xba, 0x26b: 0xba, 0x26c: 0xba, 0x26d: 0xba, 0x26e: 0xba, 0x26f: 0xba,
-	0x270: 0xba, 0x271: 0xba, 0x272: 0xba, 0x273: 0xba, 0x274: 0xba, 0x275: 0xba, 0x276: 0xba, 0x277: 0xba,
-	0x278: 0xba, 0x279: 0xba, 0x27a: 0xba, 0x27b: 0xba, 0x27c: 0xba, 0x27d: 0xba, 0x27e: 0xba, 0x27f: 0xba,
-	// Block 0xa, offset 0x280
-	0x280: 0xba, 0x281: 0xba, 0x282: 0xba, 0x283: 0xba, 0x284: 0xba, 0x285: 0xba, 0x286: 0xba, 0x287: 0xba,
-	0x288: 0xba, 0x289: 0xba, 0x28a: 0xba, 0x28b: 0xba, 0x28c: 0xba, 0x28d: 0xba, 0x28e: 0xba, 0x28f: 0xba,
-	0x290: 0xba, 0x291: 0xba, 0x292: 0xba, 0x293: 0xba, 0x294: 0xba, 0x295: 0xba, 0x296: 0xba, 0x297: 0xba,
-	0x298: 0xba, 0x299: 0xba, 0x29a: 0xba, 0x29b: 0xba, 0x29c: 0xba, 0x29d: 0xba, 0x29e: 0xbb,
-	// Block 0xb, offset 0x2c0
-	0x2e4: 0x2e, 0x2e5: 0x2f, 0x2e6: 0x30, 0x2e7: 0x31,
-	0x2e8: 0x32, 0x2e9: 0x33, 0x2ea: 0x34, 0x2eb: 0x35, 0x2ec: 0x36, 0x2ed: 0x37, 0x2ee: 0x38, 0x2ef: 0x39,
-	0x2f0: 0x3a, 0x2f1: 0x3b, 0x2f2: 0x3c, 0x2f3: 0x3d, 0x2f4: 0x3e, 0x2f5: 0x3f, 0x2f6: 0x40, 0x2f7: 0x41,
-	0x2f8: 0x42, 0x2f9: 0x43, 0x2fa: 0x44, 0x2fb: 0x45, 0x2fc: 0xbc, 0x2fd: 0x46, 0x2fe: 0x47, 0x2ff: 0xbd,
-	// Block 0xc, offset 0x300
-	0x307: 0xbe,
-	0x328: 0xbf,
-	// Block 0xd, offset 0x340
-	0x341: 0xb1, 0x342: 0xc0, 0x344: 0xc1, 0x347: 0xb6,
-	0x35a: 0xc2,
-	// Block 0xe, offset 0x380
-	0x385: 0xc3, 0x386: 0xc4, 0x387: 0xc5,
-	0x389: 0xc6,
-	0x390: 0xc7, 0x391: 0xc8, 0x392: 0xc9, 0x393: 0xca, 0x394: 0xcb, 0x395: 0xcc, 0x396: 0xcd, 0x397: 0xce,
-	0x398: 0xcf, 0x399: 0xd0, 0x39a: 0x48, 0x39b: 0xd1, 0x39c: 0xd2, 0x39d: 0xd3, 0x39e: 0xd4, 0x39f: 0x49,
-	// Block 0xf, offset 0x3c0
-	0x3f8: 0x4a, 0x3f9: 0x4b, 0x3fa: 0x4c,
-	// Block 0x10, offset 0x400
-	0x404: 0x4d, 0x405: 0xd5, 0x406: 0xd6,
-	0x408: 0x4e, 0x409: 0xd7,
-	// Block 0x11, offset 0x440
-	0x460: 0x4f, 0x461: 0x50, 0x462: 0x51, 0x463: 0x52, 0x464: 0x53, 0x465: 0x54, 0x466: 0x55, 0x467: 0x56,
-	0x468: 0x57,
-	// Block 0x12, offset 0x480
-	0x490: 0x0a, 0x491: 0x0b,
-	0x49d: 0x0c, 0x49e: 0x0d, 0x49f: 0x0e,
-	0x4af: 0x0f,
-}
-
-var nfkcTrie = trie{nfkcLookup[:], nfkcValues[:], nfkcSparseValues[:], nfkcSparseOffset[:], 88}
-
-// recompMap: 7464 bytes (entries only)
-var recompMap = map[uint32]rune{
-	0x00410300: 0x00C0,
-	0x00410301: 0x00C1,
-	0x00410302: 0x00C2,
-	0x00410303: 0x00C3,
-	0x00410308: 0x00C4,
-	0x0041030A: 0x00C5,
-	0x00430327: 0x00C7,
-	0x00450300: 0x00C8,
-	0x00450301: 0x00C9,
-	0x00450302: 0x00CA,
-	0x00450308: 0x00CB,
-	0x00490300: 0x00CC,
-	0x00490301: 0x00CD,
-	0x00490302: 0x00CE,
-	0x00490308: 0x00CF,
-	0x004E0303: 0x00D1,
-	0x004F0300: 0x00D2,
-	0x004F0301: 0x00D3,
-	0x004F0302: 0x00D4,
-	0x004F0303: 0x00D5,
-	0x004F0308: 0x00D6,
-	0x00550300: 0x00D9,
-	0x00550301: 0x00DA,
-	0x00550302: 0x00DB,
-	0x00550308: 0x00DC,
-	0x00590301: 0x00DD,
-	0x00610300: 0x00E0,
-	0x00610301: 0x00E1,
-	0x00610302: 0x00E2,
-	0x00610303: 0x00E3,
-	0x00610308: 0x00E4,
-	0x0061030A: 0x00E5,
-	0x00630327: 0x00E7,
-	0x00650300: 0x00E8,
-	0x00650301: 0x00E9,
-	0x00650302: 0x00EA,
-	0x00650308: 0x00EB,
-	0x00690300: 0x00EC,
-	0x00690301: 0x00ED,
-	0x00690302: 0x00EE,
-	0x00690308: 0x00EF,
-	0x006E0303: 0x00F1,
-	0x006F0300: 0x00F2,
-	0x006F0301: 0x00F3,
-	0x006F0302: 0x00F4,
-	0x006F0303: 0x00F5,
-	0x006F0308: 0x00F6,
-	0x00750300: 0x00F9,
-	0x00750301: 0x00FA,
-	0x00750302: 0x00FB,
-	0x00750308: 0x00FC,
-	0x00790301: 0x00FD,
-	0x00790308: 0x00FF,
-	0x00410304: 0x0100,
-	0x00610304: 0x0101,
-	0x00410306: 0x0102,
-	0x00610306: 0x0103,
-	0x00410328: 0x0104,
-	0x00610328: 0x0105,
-	0x00430301: 0x0106,
-	0x00630301: 0x0107,
-	0x00430302: 0x0108,
-	0x00630302: 0x0109,
-	0x00430307: 0x010A,
-	0x00630307: 0x010B,
-	0x0043030C: 0x010C,
-	0x0063030C: 0x010D,
-	0x0044030C: 0x010E,
-	0x0064030C: 0x010F,
-	0x00450304: 0x0112,
-	0x00650304: 0x0113,
-	0x00450306: 0x0114,
-	0x00650306: 0x0115,
-	0x00450307: 0x0116,
-	0x00650307: 0x0117,
-	0x00450328: 0x0118,
-	0x00650328: 0x0119,
-	0x0045030C: 0x011A,
-	0x0065030C: 0x011B,
-	0x00470302: 0x011C,
-	0x00670302: 0x011D,
-	0x00470306: 0x011E,
-	0x00670306: 0x011F,
-	0x00470307: 0x0120,
-	0x00670307: 0x0121,
-	0x00470327: 0x0122,
-	0x00670327: 0x0123,
-	0x00480302: 0x0124,
-	0x00680302: 0x0125,
-	0x00490303: 0x0128,
-	0x00690303: 0x0129,
-	0x00490304: 0x012A,
-	0x00690304: 0x012B,
-	0x00490306: 0x012C,
-	0x00690306: 0x012D,
-	0x00490328: 0x012E,
-	0x00690328: 0x012F,
-	0x00490307: 0x0130,
-	0x004A0302: 0x0134,
-	0x006A0302: 0x0135,
-	0x004B0327: 0x0136,
-	0x006B0327: 0x0137,
-	0x004C0301: 0x0139,
-	0x006C0301: 0x013A,
-	0x004C0327: 0x013B,
-	0x006C0327: 0x013C,
-	0x004C030C: 0x013D,
-	0x006C030C: 0x013E,
-	0x004E0301: 0x0143,
-	0x006E0301: 0x0144,
-	0x004E0327: 0x0145,
-	0x006E0327: 0x0146,
-	0x004E030C: 0x0147,
-	0x006E030C: 0x0148,
-	0x004F0304: 0x014C,
-	0x006F0304: 0x014D,
-	0x004F0306: 0x014E,
-	0x006F0306: 0x014F,
-	0x004F030B: 0x0150,
-	0x006F030B: 0x0151,
-	0x00520301: 0x0154,
-	0x00720301: 0x0155,
-	0x00520327: 0x0156,
-	0x00720327: 0x0157,
-	0x0052030C: 0x0158,
-	0x0072030C: 0x0159,
-	0x00530301: 0x015A,
-	0x00730301: 0x015B,
-	0x00530302: 0x015C,
-	0x00730302: 0x015D,
-	0x00530327: 0x015E,
-	0x00730327: 0x015F,
-	0x0053030C: 0x0160,
-	0x0073030C: 0x0161,
-	0x00540327: 0x0162,
-	0x00740327: 0x0163,
-	0x0054030C: 0x0164,
-	0x0074030C: 0x0165,
-	0x00550303: 0x0168,
-	0x00750303: 0x0169,
-	0x00550304: 0x016A,
-	0x00750304: 0x016B,
-	0x00550306: 0x016C,
-	0x00750306: 0x016D,
-	0x0055030A: 0x016E,
-	0x0075030A: 0x016F,
-	0x0055030B: 0x0170,
-	0x0075030B: 0x0171,
-	0x00550328: 0x0172,
-	0x00750328: 0x0173,
-	0x00570302: 0x0174,
-	0x00770302: 0x0175,
-	0x00590302: 0x0176,
-	0x00790302: 0x0177,
-	0x00590308: 0x0178,
-	0x005A0301: 0x0179,
-	0x007A0301: 0x017A,
-	0x005A0307: 0x017B,
-	0x007A0307: 0x017C,
-	0x005A030C: 0x017D,
-	0x007A030C: 0x017E,
-	0x004F031B: 0x01A0,
-	0x006F031B: 0x01A1,
-	0x0055031B: 0x01AF,
-	0x0075031B: 0x01B0,
-	0x0041030C: 0x01CD,
-	0x0061030C: 0x01CE,
-	0x0049030C: 0x01CF,
-	0x0069030C: 0x01D0,
-	0x004F030C: 0x01D1,
-	0x006F030C: 0x01D2,
-	0x0055030C: 0x01D3,
-	0x0075030C: 0x01D4,
-	0x00DC0304: 0x01D5,
-	0x00FC0304: 0x01D6,
-	0x00DC0301: 0x01D7,
-	0x00FC0301: 0x01D8,
-	0x00DC030C: 0x01D9,
-	0x00FC030C: 0x01DA,
-	0x00DC0300: 0x01DB,
-	0x00FC0300: 0x01DC,
-	0x00C40304: 0x01DE,
-	0x00E40304: 0x01DF,
-	0x02260304: 0x01E0,
-	0x02270304: 0x01E1,
-	0x00C60304: 0x01E2,
-	0x00E60304: 0x01E3,
-	0x0047030C: 0x01E6,
-	0x0067030C: 0x01E7,
-	0x004B030C: 0x01E8,
-	0x006B030C: 0x01E9,
-	0x004F0328: 0x01EA,
-	0x006F0328: 0x01EB,
-	0x01EA0304: 0x01EC,
-	0x01EB0304: 0x01ED,
-	0x01B7030C: 0x01EE,
-	0x0292030C: 0x01EF,
-	0x006A030C: 0x01F0,
-	0x00470301: 0x01F4,
-	0x00670301: 0x01F5,
-	0x004E0300: 0x01F8,
-	0x006E0300: 0x01F9,
-	0x00C50301: 0x01FA,
-	0x00E50301: 0x01FB,
-	0x00C60301: 0x01FC,
-	0x00E60301: 0x01FD,
-	0x00D80301: 0x01FE,
-	0x00F80301: 0x01FF,
-	0x0041030F: 0x0200,
-	0x0061030F: 0x0201,
-	0x00410311: 0x0202,
-	0x00610311: 0x0203,
-	0x0045030F: 0x0204,
-	0x0065030F: 0x0205,
-	0x00450311: 0x0206,
-	0x00650311: 0x0207,
-	0x0049030F: 0x0208,
-	0x0069030F: 0x0209,
-	0x00490311: 0x020A,
-	0x00690311: 0x020B,
-	0x004F030F: 0x020C,
-	0x006F030F: 0x020D,
-	0x004F0311: 0x020E,
-	0x006F0311: 0x020F,
-	0x0052030F: 0x0210,
-	0x0072030F: 0x0211,
-	0x00520311: 0x0212,
-	0x00720311: 0x0213,
-	0x0055030F: 0x0214,
-	0x0075030F: 0x0215,
-	0x00550311: 0x0216,
-	0x00750311: 0x0217,
-	0x00530326: 0x0218,
-	0x00730326: 0x0219,
-	0x00540326: 0x021A,
-	0x00740326: 0x021B,
-	0x0048030C: 0x021E,
-	0x0068030C: 0x021F,
-	0x00410307: 0x0226,
-	0x00610307: 0x0227,
-	0x00450327: 0x0228,
-	0x00650327: 0x0229,
-	0x00D60304: 0x022A,
-	0x00F60304: 0x022B,
-	0x00D50304: 0x022C,
-	0x00F50304: 0x022D,
-	0x004F0307: 0x022E,
-	0x006F0307: 0x022F,
-	0x022E0304: 0x0230,
-	0x022F0304: 0x0231,
-	0x00590304: 0x0232,
-	0x00790304: 0x0233,
-	0x00A80301: 0x0385,
-	0x03910301: 0x0386,
-	0x03950301: 0x0388,
-	0x03970301: 0x0389,
-	0x03990301: 0x038A,
-	0x039F0301: 0x038C,
-	0x03A50301: 0x038E,
-	0x03A90301: 0x038F,
-	0x03CA0301: 0x0390,
-	0x03990308: 0x03AA,
-	0x03A50308: 0x03AB,
-	0x03B10301: 0x03AC,
-	0x03B50301: 0x03AD,
-	0x03B70301: 0x03AE,
-	0x03B90301: 0x03AF,
-	0x03CB0301: 0x03B0,
-	0x03B90308: 0x03CA,
-	0x03C50308: 0x03CB,
-	0x03BF0301: 0x03CC,
-	0x03C50301: 0x03CD,
-	0x03C90301: 0x03CE,
-	0x03D20301: 0x03D3,
-	0x03D20308: 0x03D4,
-	0x04150300: 0x0400,
-	0x04150308: 0x0401,
-	0x04130301: 0x0403,
-	0x04060308: 0x0407,
-	0x041A0301: 0x040C,
-	0x04180300: 0x040D,
-	0x04230306: 0x040E,
-	0x04180306: 0x0419,
-	0x04380306: 0x0439,
-	0x04350300: 0x0450,
-	0x04350308: 0x0451,
-	0x04330301: 0x0453,
-	0x04560308: 0x0457,
-	0x043A0301: 0x045C,
-	0x04380300: 0x045D,
-	0x04430306: 0x045E,
-	0x0474030F: 0x0476,
-	0x0475030F: 0x0477,
-	0x04160306: 0x04C1,
-	0x04360306: 0x04C2,
-	0x04100306: 0x04D0,
-	0x04300306: 0x04D1,
-	0x04100308: 0x04D2,
-	0x04300308: 0x04D3,
-	0x04150306: 0x04D6,
-	0x04350306: 0x04D7,
-	0x04D80308: 0x04DA,
-	0x04D90308: 0x04DB,
-	0x04160308: 0x04DC,
-	0x04360308: 0x04DD,
-	0x04170308: 0x04DE,
-	0x04370308: 0x04DF,
-	0x04180304: 0x04E2,
-	0x04380304: 0x04E3,
-	0x04180308: 0x04E4,
-	0x04380308: 0x04E5,
-	0x041E0308: 0x04E6,
-	0x043E0308: 0x04E7,
-	0x04E80308: 0x04EA,
-	0x04E90308: 0x04EB,
-	0x042D0308: 0x04EC,
-	0x044D0308: 0x04ED,
-	0x04230304: 0x04EE,
-	0x04430304: 0x04EF,
-	0x04230308: 0x04F0,
-	0x04430308: 0x04F1,
-	0x0423030B: 0x04F2,
-	0x0443030B: 0x04F3,
-	0x04270308: 0x04F4,
-	0x04470308: 0x04F5,
-	0x042B0308: 0x04F8,
-	0x044B0308: 0x04F9,
-	0x06270653: 0x0622,
-	0x06270654: 0x0623,
-	0x06480654: 0x0624,
-	0x06270655: 0x0625,
-	0x064A0654: 0x0626,
-	0x06D50654: 0x06C0,
-	0x06C10654: 0x06C2,
-	0x06D20654: 0x06D3,
-	0x0928093C: 0x0929,
-	0x0930093C: 0x0931,
-	0x0933093C: 0x0934,
-	0x09C709BE: 0x09CB,
-	0x09C709D7: 0x09CC,
-	0x0B470B56: 0x0B48,
-	0x0B470B3E: 0x0B4B,
-	0x0B470B57: 0x0B4C,
-	0x0B920BD7: 0x0B94,
-	0x0BC60BBE: 0x0BCA,
-	0x0BC70BBE: 0x0BCB,
-	0x0BC60BD7: 0x0BCC,
-	0x0C460C56: 0x0C48,
-	0x0CBF0CD5: 0x0CC0,
-	0x0CC60CD5: 0x0CC7,
-	0x0CC60CD6: 0x0CC8,
-	0x0CC60CC2: 0x0CCA,
-	0x0CCA0CD5: 0x0CCB,
-	0x0D460D3E: 0x0D4A,
-	0x0D470D3E: 0x0D4B,
-	0x0D460D57: 0x0D4C,
-	0x0DD90DCA: 0x0DDA,
-	0x0DD90DCF: 0x0DDC,
-	0x0DDC0DCA: 0x0DDD,
-	0x0DD90DDF: 0x0DDE,
-	0x1025102E: 0x1026,
-	0x1B051B35: 0x1B06,
-	0x1B071B35: 0x1B08,
-	0x1B091B35: 0x1B0A,
-	0x1B0B1B35: 0x1B0C,
-	0x1B0D1B35: 0x1B0E,
-	0x1B111B35: 0x1B12,
-	0x1B3A1B35: 0x1B3B,
-	0x1B3C1B35: 0x1B3D,
-	0x1B3E1B35: 0x1B40,
-	0x1B3F1B35: 0x1B41,
-	0x1B421B35: 0x1B43,
-	0x00410325: 0x1E00,
-	0x00610325: 0x1E01,
-	0x00420307: 0x1E02,
-	0x00620307: 0x1E03,
-	0x00420323: 0x1E04,
-	0x00620323: 0x1E05,
-	0x00420331: 0x1E06,
-	0x00620331: 0x1E07,
-	0x00C70301: 0x1E08,
-	0x00E70301: 0x1E09,
-	0x00440307: 0x1E0A,
-	0x00640307: 0x1E0B,
-	0x00440323: 0x1E0C,
-	0x00640323: 0x1E0D,
-	0x00440331: 0x1E0E,
-	0x00640331: 0x1E0F,
-	0x00440327: 0x1E10,
-	0x00640327: 0x1E11,
-	0x0044032D: 0x1E12,
-	0x0064032D: 0x1E13,
-	0x01120300: 0x1E14,
-	0x01130300: 0x1E15,
-	0x01120301: 0x1E16,
-	0x01130301: 0x1E17,
-	0x0045032D: 0x1E18,
-	0x0065032D: 0x1E19,
-	0x00450330: 0x1E1A,
-	0x00650330: 0x1E1B,
-	0x02280306: 0x1E1C,
-	0x02290306: 0x1E1D,
-	0x00460307: 0x1E1E,
-	0x00660307: 0x1E1F,
-	0x00470304: 0x1E20,
-	0x00670304: 0x1E21,
-	0x00480307: 0x1E22,
-	0x00680307: 0x1E23,
-	0x00480323: 0x1E24,
-	0x00680323: 0x1E25,
-	0x00480308: 0x1E26,
-	0x00680308: 0x1E27,
-	0x00480327: 0x1E28,
-	0x00680327: 0x1E29,
-	0x0048032E: 0x1E2A,
-	0x0068032E: 0x1E2B,
-	0x00490330: 0x1E2C,
-	0x00690330: 0x1E2D,
-	0x00CF0301: 0x1E2E,
-	0x00EF0301: 0x1E2F,
-	0x004B0301: 0x1E30,
-	0x006B0301: 0x1E31,
-	0x004B0323: 0x1E32,
-	0x006B0323: 0x1E33,
-	0x004B0331: 0x1E34,
-	0x006B0331: 0x1E35,
-	0x004C0323: 0x1E36,
-	0x006C0323: 0x1E37,
-	0x1E360304: 0x1E38,
-	0x1E370304: 0x1E39,
-	0x004C0331: 0x1E3A,
-	0x006C0331: 0x1E3B,
-	0x004C032D: 0x1E3C,
-	0x006C032D: 0x1E3D,
-	0x004D0301: 0x1E3E,
-	0x006D0301: 0x1E3F,
-	0x004D0307: 0x1E40,
-	0x006D0307: 0x1E41,
-	0x004D0323: 0x1E42,
-	0x006D0323: 0x1E43,
-	0x004E0307: 0x1E44,
-	0x006E0307: 0x1E45,
-	0x004E0323: 0x1E46,
-	0x006E0323: 0x1E47,
-	0x004E0331: 0x1E48,
-	0x006E0331: 0x1E49,
-	0x004E032D: 0x1E4A,
-	0x006E032D: 0x1E4B,
-	0x00D50301: 0x1E4C,
-	0x00F50301: 0x1E4D,
-	0x00D50308: 0x1E4E,
-	0x00F50308: 0x1E4F,
-	0x014C0300: 0x1E50,
-	0x014D0300: 0x1E51,
-	0x014C0301: 0x1E52,
-	0x014D0301: 0x1E53,
-	0x00500301: 0x1E54,
-	0x00700301: 0x1E55,
-	0x00500307: 0x1E56,
-	0x00700307: 0x1E57,
-	0x00520307: 0x1E58,
-	0x00720307: 0x1E59,
-	0x00520323: 0x1E5A,
-	0x00720323: 0x1E5B,
-	0x1E5A0304: 0x1E5C,
-	0x1E5B0304: 0x1E5D,
-	0x00520331: 0x1E5E,
-	0x00720331: 0x1E5F,
-	0x00530307: 0x1E60,
-	0x00730307: 0x1E61,
-	0x00530323: 0x1E62,
-	0x00730323: 0x1E63,
-	0x015A0307: 0x1E64,
-	0x015B0307: 0x1E65,
-	0x01600307: 0x1E66,
-	0x01610307: 0x1E67,
-	0x1E620307: 0x1E68,
-	0x1E630307: 0x1E69,
-	0x00540307: 0x1E6A,
-	0x00740307: 0x1E6B,
-	0x00540323: 0x1E6C,
-	0x00740323: 0x1E6D,
-	0x00540331: 0x1E6E,
-	0x00740331: 0x1E6F,
-	0x0054032D: 0x1E70,
-	0x0074032D: 0x1E71,
-	0x00550324: 0x1E72,
-	0x00750324: 0x1E73,
-	0x00550330: 0x1E74,
-	0x00750330: 0x1E75,
-	0x0055032D: 0x1E76,
-	0x0075032D: 0x1E77,
-	0x01680301: 0x1E78,
-	0x01690301: 0x1E79,
-	0x016A0308: 0x1E7A,
-	0x016B0308: 0x1E7B,
-	0x00560303: 0x1E7C,
-	0x00760303: 0x1E7D,
-	0x00560323: 0x1E7E,
-	0x00760323: 0x1E7F,
-	0x00570300: 0x1E80,
-	0x00770300: 0x1E81,
-	0x00570301: 0x1E82,
-	0x00770301: 0x1E83,
-	0x00570308: 0x1E84,
-	0x00770308: 0x1E85,
-	0x00570307: 0x1E86,
-	0x00770307: 0x1E87,
-	0x00570323: 0x1E88,
-	0x00770323: 0x1E89,
-	0x00580307: 0x1E8A,
-	0x00780307: 0x1E8B,
-	0x00580308: 0x1E8C,
-	0x00780308: 0x1E8D,
-	0x00590307: 0x1E8E,
-	0x00790307: 0x1E8F,
-	0x005A0302: 0x1E90,
-	0x007A0302: 0x1E91,
-	0x005A0323: 0x1E92,
-	0x007A0323: 0x1E93,
-	0x005A0331: 0x1E94,
-	0x007A0331: 0x1E95,
-	0x00680331: 0x1E96,
-	0x00740308: 0x1E97,
-	0x0077030A: 0x1E98,
-	0x0079030A: 0x1E99,
-	0x017F0307: 0x1E9B,
-	0x00410323: 0x1EA0,
-	0x00610323: 0x1EA1,
-	0x00410309: 0x1EA2,
-	0x00610309: 0x1EA3,
-	0x00C20301: 0x1EA4,
-	0x00E20301: 0x1EA5,
-	0x00C20300: 0x1EA6,
-	0x00E20300: 0x1EA7,
-	0x00C20309: 0x1EA8,
-	0x00E20309: 0x1EA9,
-	0x00C20303: 0x1EAA,
-	0x00E20303: 0x1EAB,
-	0x1EA00302: 0x1EAC,
-	0x1EA10302: 0x1EAD,
-	0x01020301: 0x1EAE,
-	0x01030301: 0x1EAF,
-	0x01020300: 0x1EB0,
-	0x01030300: 0x1EB1,
-	0x01020309: 0x1EB2,
-	0x01030309: 0x1EB3,
-	0x01020303: 0x1EB4,
-	0x01030303: 0x1EB5,
-	0x1EA00306: 0x1EB6,
-	0x1EA10306: 0x1EB7,
-	0x00450323: 0x1EB8,
-	0x00650323: 0x1EB9,
-	0x00450309: 0x1EBA,
-	0x00650309: 0x1EBB,
-	0x00450303: 0x1EBC,
-	0x00650303: 0x1EBD,
-	0x00CA0301: 0x1EBE,
-	0x00EA0301: 0x1EBF,
-	0x00CA0300: 0x1EC0,
-	0x00EA0300: 0x1EC1,
-	0x00CA0309: 0x1EC2,
-	0x00EA0309: 0x1EC3,
-	0x00CA0303: 0x1EC4,
-	0x00EA0303: 0x1EC5,
-	0x1EB80302: 0x1EC6,
-	0x1EB90302: 0x1EC7,
-	0x00490309: 0x1EC8,
-	0x00690309: 0x1EC9,
-	0x00490323: 0x1ECA,
-	0x00690323: 0x1ECB,
-	0x004F0323: 0x1ECC,
-	0x006F0323: 0x1ECD,
-	0x004F0309: 0x1ECE,
-	0x006F0309: 0x1ECF,
-	0x00D40301: 0x1ED0,
-	0x00F40301: 0x1ED1,
-	0x00D40300: 0x1ED2,
-	0x00F40300: 0x1ED3,
-	0x00D40309: 0x1ED4,
-	0x00F40309: 0x1ED5,
-	0x00D40303: 0x1ED6,
-	0x00F40303: 0x1ED7,
-	0x1ECC0302: 0x1ED8,
-	0x1ECD0302: 0x1ED9,
-	0x01A00301: 0x1EDA,
-	0x01A10301: 0x1EDB,
-	0x01A00300: 0x1EDC,
-	0x01A10300: 0x1EDD,
-	0x01A00309: 0x1EDE,
-	0x01A10309: 0x1EDF,
-	0x01A00303: 0x1EE0,
-	0x01A10303: 0x1EE1,
-	0x01A00323: 0x1EE2,
-	0x01A10323: 0x1EE3,
-	0x00550323: 0x1EE4,
-	0x00750323: 0x1EE5,
-	0x00550309: 0x1EE6,
-	0x00750309: 0x1EE7,
-	0x01AF0301: 0x1EE8,
-	0x01B00301: 0x1EE9,
-	0x01AF0300: 0x1EEA,
-	0x01B00300: 0x1EEB,
-	0x01AF0309: 0x1EEC,
-	0x01B00309: 0x1EED,
-	0x01AF0303: 0x1EEE,
-	0x01B00303: 0x1EEF,
-	0x01AF0323: 0x1EF0,
-	0x01B00323: 0x1EF1,
-	0x00590300: 0x1EF2,
-	0x00790300: 0x1EF3,
-	0x00590323: 0x1EF4,
-	0x00790323: 0x1EF5,
-	0x00590309: 0x1EF6,
-	0x00790309: 0x1EF7,
-	0x00590303: 0x1EF8,
-	0x00790303: 0x1EF9,
-	0x03B10313: 0x1F00,
-	0x03B10314: 0x1F01,
-	0x1F000300: 0x1F02,
-	0x1F010300: 0x1F03,
-	0x1F000301: 0x1F04,
-	0x1F010301: 0x1F05,
-	0x1F000342: 0x1F06,
-	0x1F010342: 0x1F07,
-	0x03910313: 0x1F08,
-	0x03910314: 0x1F09,
-	0x1F080300: 0x1F0A,
-	0x1F090300: 0x1F0B,
-	0x1F080301: 0x1F0C,
-	0x1F090301: 0x1F0D,
-	0x1F080342: 0x1F0E,
-	0x1F090342: 0x1F0F,
-	0x03B50313: 0x1F10,
-	0x03B50314: 0x1F11,
-	0x1F100300: 0x1F12,
-	0x1F110300: 0x1F13,
-	0x1F100301: 0x1F14,
-	0x1F110301: 0x1F15,
-	0x03950313: 0x1F18,
-	0x03950314: 0x1F19,
-	0x1F180300: 0x1F1A,
-	0x1F190300: 0x1F1B,
-	0x1F180301: 0x1F1C,
-	0x1F190301: 0x1F1D,
-	0x03B70313: 0x1F20,
-	0x03B70314: 0x1F21,
-	0x1F200300: 0x1F22,
-	0x1F210300: 0x1F23,
-	0x1F200301: 0x1F24,
-	0x1F210301: 0x1F25,
-	0x1F200342: 0x1F26,
-	0x1F210342: 0x1F27,
-	0x03970313: 0x1F28,
-	0x03970314: 0x1F29,
-	0x1F280300: 0x1F2A,
-	0x1F290300: 0x1F2B,
-	0x1F280301: 0x1F2C,
-	0x1F290301: 0x1F2D,
-	0x1F280342: 0x1F2E,
-	0x1F290342: 0x1F2F,
-	0x03B90313: 0x1F30,
-	0x03B90314: 0x1F31,
-	0x1F300300: 0x1F32,
-	0x1F310300: 0x1F33,
-	0x1F300301: 0x1F34,
-	0x1F310301: 0x1F35,
-	0x1F300342: 0x1F36,
-	0x1F310342: 0x1F37,
-	0x03990313: 0x1F38,
-	0x03990314: 0x1F39,
-	0x1F380300: 0x1F3A,
-	0x1F390300: 0x1F3B,
-	0x1F380301: 0x1F3C,
-	0x1F390301: 0x1F3D,
-	0x1F380342: 0x1F3E,
-	0x1F390342: 0x1F3F,
-	0x03BF0313: 0x1F40,
-	0x03BF0314: 0x1F41,
-	0x1F400300: 0x1F42,
-	0x1F410300: 0x1F43,
-	0x1F400301: 0x1F44,
-	0x1F410301: 0x1F45,
-	0x039F0313: 0x1F48,
-	0x039F0314: 0x1F49,
-	0x1F480300: 0x1F4A,
-	0x1F490300: 0x1F4B,
-	0x1F480301: 0x1F4C,
-	0x1F490301: 0x1F4D,
-	0x03C50313: 0x1F50,
-	0x03C50314: 0x1F51,
-	0x1F500300: 0x1F52,
-	0x1F510300: 0x1F53,
-	0x1F500301: 0x1F54,
-	0x1F510301: 0x1F55,
-	0x1F500342: 0x1F56,
-	0x1F510342: 0x1F57,
-	0x03A50314: 0x1F59,
-	0x1F590300: 0x1F5B,
-	0x1F590301: 0x1F5D,
-	0x1F590342: 0x1F5F,
-	0x03C90313: 0x1F60,
-	0x03C90314: 0x1F61,
-	0x1F600300: 0x1F62,
-	0x1F610300: 0x1F63,
-	0x1F600301: 0x1F64,
-	0x1F610301: 0x1F65,
-	0x1F600342: 0x1F66,
-	0x1F610342: 0x1F67,
-	0x03A90313: 0x1F68,
-	0x03A90314: 0x1F69,
-	0x1F680300: 0x1F6A,
-	0x1F690300: 0x1F6B,
-	0x1F680301: 0x1F6C,
-	0x1F690301: 0x1F6D,
-	0x1F680342: 0x1F6E,
-	0x1F690342: 0x1F6F,
-	0x03B10300: 0x1F70,
-	0x03B50300: 0x1F72,
-	0x03B70300: 0x1F74,
-	0x03B90300: 0x1F76,
-	0x03BF0300: 0x1F78,
-	0x03C50300: 0x1F7A,
-	0x03C90300: 0x1F7C,
-	0x1F000345: 0x1F80,
-	0x1F010345: 0x1F81,
-	0x1F020345: 0x1F82,
-	0x1F030345: 0x1F83,
-	0x1F040345: 0x1F84,
-	0x1F050345: 0x1F85,
-	0x1F060345: 0x1F86,
-	0x1F070345: 0x1F87,
-	0x1F080345: 0x1F88,
-	0x1F090345: 0x1F89,
-	0x1F0A0345: 0x1F8A,
-	0x1F0B0345: 0x1F8B,
-	0x1F0C0345: 0x1F8C,
-	0x1F0D0345: 0x1F8D,
-	0x1F0E0345: 0x1F8E,
-	0x1F0F0345: 0x1F8F,
-	0x1F200345: 0x1F90,
-	0x1F210345: 0x1F91,
-	0x1F220345: 0x1F92,
-	0x1F230345: 0x1F93,
-	0x1F240345: 0x1F94,
-	0x1F250345: 0x1F95,
-	0x1F260345: 0x1F96,
-	0x1F270345: 0x1F97,
-	0x1F280345: 0x1F98,
-	0x1F290345: 0x1F99,
-	0x1F2A0345: 0x1F9A,
-	0x1F2B0345: 0x1F9B,
-	0x1F2C0345: 0x1F9C,
-	0x1F2D0345: 0x1F9D,
-	0x1F2E0345: 0x1F9E,
-	0x1F2F0345: 0x1F9F,
-	0x1F600345: 0x1FA0,
-	0x1F610345: 0x1FA1,
-	0x1F620345: 0x1FA2,
-	0x1F630345: 0x1FA3,
-	0x1F640345: 0x1FA4,
-	0x1F650345: 0x1FA5,
-	0x1F660345: 0x1FA6,
-	0x1F670345: 0x1FA7,
-	0x1F680345: 0x1FA8,
-	0x1F690345: 0x1FA9,
-	0x1F6A0345: 0x1FAA,
-	0x1F6B0345: 0x1FAB,
-	0x1F6C0345: 0x1FAC,
-	0x1F6D0345: 0x1FAD,
-	0x1F6E0345: 0x1FAE,
-	0x1F6F0345: 0x1FAF,
-	0x03B10306: 0x1FB0,
-	0x03B10304: 0x1FB1,
-	0x1F700345: 0x1FB2,
-	0x03B10345: 0x1FB3,
-	0x03AC0345: 0x1FB4,
-	0x03B10342: 0x1FB6,
-	0x1FB60345: 0x1FB7,
-	0x03910306: 0x1FB8,
-	0x03910304: 0x1FB9,
-	0x03910300: 0x1FBA,
-	0x03910345: 0x1FBC,
-	0x00A80342: 0x1FC1,
-	0x1F740345: 0x1FC2,
-	0x03B70345: 0x1FC3,
-	0x03AE0345: 0x1FC4,
-	0x03B70342: 0x1FC6,
-	0x1FC60345: 0x1FC7,
-	0x03950300: 0x1FC8,
-	0x03970300: 0x1FCA,
-	0x03970345: 0x1FCC,
-	0x1FBF0300: 0x1FCD,
-	0x1FBF0301: 0x1FCE,
-	0x1FBF0342: 0x1FCF,
-	0x03B90306: 0x1FD0,
-	0x03B90304: 0x1FD1,
-	0x03CA0300: 0x1FD2,
-	0x03B90342: 0x1FD6,
-	0x03CA0342: 0x1FD7,
-	0x03990306: 0x1FD8,
-	0x03990304: 0x1FD9,
-	0x03990300: 0x1FDA,
-	0x1FFE0300: 0x1FDD,
-	0x1FFE0301: 0x1FDE,
-	0x1FFE0342: 0x1FDF,
-	0x03C50306: 0x1FE0,
-	0x03C50304: 0x1FE1,
-	0x03CB0300: 0x1FE2,
-	0x03C10313: 0x1FE4,
-	0x03C10314: 0x1FE5,
-	0x03C50342: 0x1FE6,
-	0x03CB0342: 0x1FE7,
-	0x03A50306: 0x1FE8,
-	0x03A50304: 0x1FE9,
-	0x03A50300: 0x1FEA,
-	0x03A10314: 0x1FEC,
-	0x00A80300: 0x1FED,
-	0x1F7C0345: 0x1FF2,
-	0x03C90345: 0x1FF3,
-	0x03CE0345: 0x1FF4,
-	0x03C90342: 0x1FF6,
-	0x1FF60345: 0x1FF7,
-	0x039F0300: 0x1FF8,
-	0x03A90300: 0x1FFA,
-	0x03A90345: 0x1FFC,
-	0x21900338: 0x219A,
-	0x21920338: 0x219B,
-	0x21940338: 0x21AE,
-	0x21D00338: 0x21CD,
-	0x21D40338: 0x21CE,
-	0x21D20338: 0x21CF,
-	0x22030338: 0x2204,
-	0x22080338: 0x2209,
-	0x220B0338: 0x220C,
-	0x22230338: 0x2224,
-	0x22250338: 0x2226,
-	0x223C0338: 0x2241,
-	0x22430338: 0x2244,
-	0x22450338: 0x2247,
-	0x22480338: 0x2249,
-	0x003D0338: 0x2260,
-	0x22610338: 0x2262,
-	0x224D0338: 0x226D,
-	0x003C0338: 0x226E,
-	0x003E0338: 0x226F,
-	0x22640338: 0x2270,
-	0x22650338: 0x2271,
-	0x22720338: 0x2274,
-	0x22730338: 0x2275,
-	0x22760338: 0x2278,
-	0x22770338: 0x2279,
-	0x227A0338: 0x2280,
-	0x227B0338: 0x2281,
-	0x22820338: 0x2284,
-	0x22830338: 0x2285,
-	0x22860338: 0x2288,
-	0x22870338: 0x2289,
-	0x22A20338: 0x22AC,
-	0x22A80338: 0x22AD,
-	0x22A90338: 0x22AE,
-	0x22AB0338: 0x22AF,
-	0x227C0338: 0x22E0,
-	0x227D0338: 0x22E1,
-	0x22910338: 0x22E2,
-	0x22920338: 0x22E3,
-	0x22B20338: 0x22EA,
-	0x22B30338: 0x22EB,
-	0x22B40338: 0x22EC,
-	0x22B50338: 0x22ED,
-	0x304B3099: 0x304C,
-	0x304D3099: 0x304E,
-	0x304F3099: 0x3050,
-	0x30513099: 0x3052,
-	0x30533099: 0x3054,
-	0x30553099: 0x3056,
-	0x30573099: 0x3058,
-	0x30593099: 0x305A,
-	0x305B3099: 0x305C,
-	0x305D3099: 0x305E,
-	0x305F3099: 0x3060,
-	0x30613099: 0x3062,
-	0x30643099: 0x3065,
-	0x30663099: 0x3067,
-	0x30683099: 0x3069,
-	0x306F3099: 0x3070,
-	0x306F309A: 0x3071,
-	0x30723099: 0x3073,
-	0x3072309A: 0x3074,
-	0x30753099: 0x3076,
-	0x3075309A: 0x3077,
-	0x30783099: 0x3079,
-	0x3078309A: 0x307A,
-	0x307B3099: 0x307C,
-	0x307B309A: 0x307D,
-	0x30463099: 0x3094,
-	0x309D3099: 0x309E,
-	0x30AB3099: 0x30AC,
-	0x30AD3099: 0x30AE,
-	0x30AF3099: 0x30B0,
-	0x30B13099: 0x30B2,
-	0x30B33099: 0x30B4,
-	0x30B53099: 0x30B6,
-	0x30B73099: 0x30B8,
-	0x30B93099: 0x30BA,
-	0x30BB3099: 0x30BC,
-	0x30BD3099: 0x30BE,
-	0x30BF3099: 0x30C0,
-	0x30C13099: 0x30C2,
-	0x30C43099: 0x30C5,
-	0x30C63099: 0x30C7,
-	0x30C83099: 0x30C9,
-	0x30CF3099: 0x30D0,
-	0x30CF309A: 0x30D1,
-	0x30D23099: 0x30D3,
-	0x30D2309A: 0x30D4,
-	0x30D53099: 0x30D6,
-	0x30D5309A: 0x30D7,
-	0x30D83099: 0x30D9,
-	0x30D8309A: 0x30DA,
-	0x30DB3099: 0x30DC,
-	0x30DB309A: 0x30DD,
-	0x30A63099: 0x30F4,
-	0x30EF3099: 0x30F7,
-	0x30F03099: 0x30F8,
-	0x30F13099: 0x30F9,
-	0x30F23099: 0x30FA,
-	0x30FD3099: 0x30FE,
-	0x109910BA: 0x1109A,
-	0x109B10BA: 0x1109C,
-	0x10A510BA: 0x110AB,
-	0x11311127: 0x1112E,
-	0x11321127: 0x1112F,
-}
-
-// Total size of tables: 50KB (51625 bytes)
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/trie.go gcc-4.8.1/libgo/go/exp/norm/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/trie.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/trie.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,232 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-type valueRange struct {
-	value  uint16 // header: value:stride
-	lo, hi byte   // header: lo:n
-}
-
-type trie struct {
-	index        []uint8
-	values       []uint16
-	sparse       []valueRange
-	sparseOffset []uint16
-	cutoff       uint8 // indices >= cutoff are sparse
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block
-// is a list of ranges with an accompanying value. Given a matching range r,
-// the value for b is by r.value + (b - r.lo) * stride.
-func (t *trie) lookupValue(n uint8, b byte) uint16 {
-	if n < t.cutoff {
-		return t.values[uint16(n)<<6+uint16(b)]
-	}
-	offset := t.sparseOffset[n-t.cutoff]
-	header := t.sparse[offset]
-	lo := offset + 1
-	hi := lo + uint16(header.lo)
-	for lo < hi {
-		m := lo + (hi-lo)/2
-		r := t.sparse[m]
-		if r.lo <= b && b <= r.hi {
-			return r.value + uint16(b-r.lo)*header.value
-		}
-		if b < r.lo {
-			hi = m
-		} else {
-			lo = m + 1
-		}
-	}
-	return 0
-}
-
-const (
-	t1 = 0x00 // 0000 0000
-	tx = 0x80 // 1000 0000
-	t2 = 0xC0 // 1100 0000
-	t3 = 0xE0 // 1110 0000
-	t4 = 0xF0 // 1111 0000
-	t5 = 0xF8 // 1111 1000
-	t6 = 0xFC // 1111 1100
-	te = 0xFE // 1111 1110
-)
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookup(s []byte) (v uint16, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return t.values[c0], 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = uint16(i)<<6 + uint16(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookupString(s string) (v uint16, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return t.values[c0], 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = uint16(i)<<6 + uint16(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must hold a full encoding.
-func (t *trie) lookupUnsafe(s []byte) uint16 {
-	c0 := s[0]
-	if c0 < tx {
-		return t.values[c0]
-	}
-	if c0 < t2 {
-		return 0
-	}
-	i := t.index[c0]
-	if c0 < t3 {
-		return t.lookupValue(i, s[1])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[1])]
-	if c0 < t4 {
-		return t.lookupValue(i, s[2])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[2])]
-	if c0 < t5 {
-		return t.lookupValue(i, s[3])
-	}
-	return 0
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must hold a full encoding.
-func (t *trie) lookupStringUnsafe(s string) uint16 {
-	c0 := s[0]
-	if c0 < tx {
-		return t.values[c0]
-	}
-	if c0 < t2 {
-		return 0
-	}
-	i := t.index[c0]
-	if c0 < t3 {
-		return t.lookupValue(i, s[1])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[1])]
-	if c0 < t4 {
-		return t.lookupValue(i, s[2])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[2])]
-	if c0 < t5 {
-		return t.lookupValue(i, s[3])
-	}
-	return 0
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/trie_test.go gcc-4.8.1/libgo/go/exp/norm/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/trie_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/trie_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,152 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"testing"
-	"unicode/utf8"
-)
-
-// Test data is located in triedata_test.go; generated by maketesttables.
-var testdata = testdataTrie
-
-type rangeTest struct {
-	block   uint8
-	lookup  byte
-	result  uint16
-	table   []valueRange
-	offsets []uint16
-}
-
-var range1Off = []uint16{0, 2}
-var range1 = []valueRange{
-	{0, 1, 0},
-	{1, 0x80, 0x80},
-	{0, 2, 0},
-	{1, 0x80, 0x80},
-	{9, 0xff, 0xff},
-}
-
-var rangeTests = []rangeTest{
-	{10, 0x80, 1, range1, range1Off},
-	{10, 0x00, 0, range1, range1Off},
-	{11, 0x80, 1, range1, range1Off},
-	{11, 0xff, 9, range1, range1Off},
-	{11, 0x00, 0, range1, range1Off},
-}
-
-func TestLookupSparse(t *testing.T) {
-	for i, test := range rangeTests {
-		n := trie{sparse: test.table, sparseOffset: test.offsets, cutoff: 10}
-		v := n.lookupValue(test.block, test.lookup)
-		if v != test.result {
-			t.Errorf("LookupSparse:%d: found %X; want %X", i, v, test.result)
-		}
-	}
-}
-
-// Test cases for illegal runes.
-type trietest struct {
-	size  int
-	bytes []byte
-}
-
-var tests = []trietest{
-	// illegal runes
-	{1, []byte{0x80}},
-	{1, []byte{0xFF}},
-	{1, []byte{t2, tx - 1}},
-	{1, []byte{t2, t2}},
-	{2, []byte{t3, tx, tx - 1}},
-	{2, []byte{t3, tx, t2}},
-	{1, []byte{t3, tx - 1, tx}},
-	{3, []byte{t4, tx, tx, tx - 1}},
-	{3, []byte{t4, tx, tx, t2}},
-	{1, []byte{t4, t2, tx, tx - 1}},
-	{2, []byte{t4, tx, t2, tx - 1}},
-
-	// short runes
-	{0, []byte{t2}},
-	{0, []byte{t3, tx}},
-	{0, []byte{t4, tx, tx}},
-
-	// we only support UTF-8 up to utf8.UTFMax bytes (4 bytes)
-	{1, []byte{t5, tx, tx, tx, tx}},
-	{1, []byte{t6, tx, tx, tx, tx, tx}},
-}
-
-func mkUTF8(r rune) ([]byte, int) {
-	var b [utf8.UTFMax]byte
-	sz := utf8.EncodeRune(b[:], r)
-	return b[:sz], sz
-}
-
-func TestLookup(t *testing.T) {
-	for i, tt := range testRunes {
-		b, szg := mkUTF8(tt)
-		v, szt := testdata.lookup(b)
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", tt, v, i)
-		}
-		if szt != szg {
-			t.Errorf("lookup(%U): found size %d, expected %d", tt, szt, szg)
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testdata.lookup(tt.bytes)
-		if v != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-	// Verify defaults.
-	if v, _ := testdata.lookup([]byte{0xC1, 0x8C}); v != 0 {
-		t.Errorf("lookup of non-existing rune should be 0; found %X", v)
-	}
-}
-
-func TestLookupUnsafe(t *testing.T) {
-	for i, tt := range testRunes {
-		b, _ := mkUTF8(tt)
-		v := testdata.lookupUnsafe(b)
-		if int(v) != i {
-			t.Errorf("lookupUnsafe(%U): found value %#x, expected %#x", i, v, i)
-		}
-	}
-}
-
-func TestLookupString(t *testing.T) {
-	for i, tt := range testRunes {
-		b, szg := mkUTF8(tt)
-		v, szt := testdata.lookupString(string(b))
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", i, v, i)
-		}
-		if szt != szg {
-			t.Errorf("lookup(%U): found size %d, expected %d", i, szt, szg)
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testdata.lookupString(string(tt.bytes))
-		if int(v) != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-}
-
-func TestLookupStringUnsafe(t *testing.T) {
-	for i, tt := range testRunes {
-		b, _ := mkUTF8(tt)
-		v := testdata.lookupStringUnsafe(string(b))
-		if int(v) != i {
-			t.Errorf("lookupUnsafe(%U): found value %#x, expected %#x", i, v, i)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/triedata_test.go gcc-4.8.1/libgo/go/exp/norm/triedata_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/triedata_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/triedata_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,85 +0,0 @@
-// Generated by running
-//	maketesttables
-// DO NOT EDIT
-
-package norm
-
-var testRunes = []int32{1, 12, 127, 128, 256, 2047, 2048, 2457, 65535, 65536, 65793, 1114111, 512, 513, 514, 528, 533}
-
-// testdataValues: 192 entries, 384 bytes
-// Block 2 is the null block.
-var testdataValues = [192]uint16{
-	// Block 0x0, offset 0x0
-	0x000c: 0x0001,
-	// Block 0x1, offset 0x40
-	0x007f: 0x0002,
-	// Block 0x2, offset 0x80
-}
-
-// testdataSparseOffset: 10 entries, 20 bytes
-var testdataSparseOffset = []uint16{0x0, 0x2, 0x4, 0x8, 0xa, 0xc, 0xe, 0x10, 0x12, 0x14}
-
-// testdataSparseValues: 22 entries, 88 bytes
-var testdataSparseValues = [22]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0003, lo: 0x80, hi: 0x80},
-	// Block 0x1, offset 0x2
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0004, lo: 0x80, hi: 0x80},
-	// Block 0x2, offset 0x3
-	{value: 0x0001, lo: 0x03},
-	{value: 0x000c, lo: 0x80, hi: 0x82},
-	{value: 0x000f, lo: 0x90, hi: 0x90},
-	{value: 0x0010, lo: 0x95, hi: 0x95},
-	// Block 0x3, offset 0x4
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0005, lo: 0xbf, hi: 0xbf},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0006, lo: 0x80, hi: 0x80},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0007, lo: 0x99, hi: 0x99},
-	// Block 0x6, offset 0x7
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0008, lo: 0xbf, hi: 0xbf},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0009, lo: 0x80, hi: 0x80},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x01},
-	{value: 0x000a, lo: 0x81, hi: 0x81},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x01},
-	{value: 0x000b, lo: 0xbf, hi: 0xbf},
-}
-
-// testdataLookup: 640 bytes
-// Block 0 is the null block.
-var testdataLookup = [640]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x01, 0x0c4: 0x02,
-	0x0c8: 0x03,
-	0x0df: 0x04,
-	0x0e0: 0x02,
-	0x0ef: 0x03,
-	0x0f0: 0x05, 0x0f4: 0x07,
-	// Block 0x4, offset 0x100
-	0x120: 0x05, 0x126: 0x06,
-	// Block 0x5, offset 0x140
-	0x17f: 0x07,
-	// Block 0x6, offset 0x180
-	0x180: 0x08, 0x184: 0x09,
-	// Block 0x7, offset 0x1c0
-	0x1d0: 0x04,
-	// Block 0x8, offset 0x200
-	0x23f: 0x0a,
-	// Block 0x9, offset 0x240
-	0x24f: 0x06,
-}
-
-var testdataTrie = trie{testdataLookup[:], testdataValues[:], testdataSparseValues[:], testdataSparseOffset[:], 1}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/triegen.go gcc-4.8.1/libgo/go/exp/norm/triegen.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/triegen.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/norm/triegen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,317 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Trie table generator.
-// Used by make*tables tools to generate a go file with trie data structures
-// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte
-// sequence are used to lookup offsets in the index table to be used for the
-// next byte. The last byte is used to index into a table with 16-bit values.
-
-package main
-
-import (
-	"fmt"
-	"hash/crc32"
-	"log"
-	"unicode/utf8"
-)
-
-const (
-	blockSize        = 64
-	blockOffset      = 2 // Subtract two blocks to compensate for the 0x80 added to continuation bytes.
-	maxSparseEntries = 16
-)
-
-// Intermediate trie structure
-type trieNode struct {
-	table [256]*trieNode
-	value int
-	b     byte
-	leaf  bool
-}
-
-func newNode() *trieNode {
-	return new(trieNode)
-}
-
-func (n trieNode) String() string {
-	s := fmt.Sprint("trieNode{table: { non-nil at index: ")
-	for i, v := range n.table {
-		if v != nil {
-			s += fmt.Sprintf("%d, ", i)
-		}
-	}
-	s += fmt.Sprintf("}, value:%#x, b:%#x leaf:%v}", n.value, n.b, n.leaf)
-	return s
-}
-
-func (n trieNode) isInternal() bool {
-	internal := true
-	for i := 0; i < 256; i++ {
-		if nn := n.table[i]; nn != nil {
-			if !internal && !nn.leaf {
-				log.Fatalf("triegen: isInternal: node contains both leaf and non-leaf children (%v)", n)
-			}
-			internal = internal && !nn.leaf
-		}
-	}
-	return internal
-}
-
-func (n trieNode) mostFrequentStride() int {
-	counts := make(map[int]int)
-	v := 0
-	for _, t := range n.table[0x80 : 0x80+blockSize] {
-		if t != nil {
-			if stride := t.value - v; v != 0 && stride >= 0 {
-				counts[stride]++
-			}
-			v = t.value
-		} else {
-			v = 0
-		}
-	}
-	var maxs, maxc int
-	for stride, cnt := range counts {
-		if cnt > maxc || (cnt == maxc && stride < maxs) {
-			maxs, maxc = stride, cnt
-		}
-	}
-	return maxs
-}
-
-func (n trieNode) countSparseEntries() int {
-	stride := n.mostFrequentStride()
-	var count, v int
-	for _, t := range n.table[0x80 : 0x80+blockSize] {
-		tv := 0
-		if t != nil {
-			tv = t.value
-		}
-		if tv-v != stride {
-			if tv != 0 {
-				count++
-			}
-		}
-		v = tv
-	}
-	return count
-}
-
-func (n *trieNode) insert(r rune, value uint16) {
-	var p [utf8.UTFMax]byte
-	sz := utf8.EncodeRune(p[:], r)
-
-	for i := 0; i < sz; i++ {
-		if n.leaf {
-			log.Fatalf("triegen: insert: node (%#v) should not be a leaf", n)
-		}
-		nn := n.table[p[i]]
-		if nn == nil {
-			nn = newNode()
-			nn.b = p[i]
-			n.table[p[i]] = nn
-		}
-		n = nn
-	}
-	n.value = int(value)
-	n.leaf = true
-}
-
-type nodeIndex struct {
-	lookupBlocks []*trieNode
-	valueBlocks  []*trieNode
-	sparseBlocks []*trieNode
-	sparseOffset []uint16
-	sparseCount  int
-
-	lookupBlockIdx map[uint32]int
-	valueBlockIdx  map[uint32]int
-}
-
-func newIndex() *nodeIndex {
-	index := &nodeIndex{}
-	index.lookupBlocks = make([]*trieNode, 0)
-	index.valueBlocks = make([]*trieNode, 0)
-	index.sparseBlocks = make([]*trieNode, 0)
-	index.sparseOffset = make([]uint16, 1)
-	index.lookupBlockIdx = make(map[uint32]int)
-	index.valueBlockIdx = make(map[uint32]int)
-	return index
-}
-
-func computeOffsets(index *nodeIndex, n *trieNode) int {
-	if n.leaf {
-		return n.value
-	}
-	hasher := crc32.New(crc32.MakeTable(crc32.IEEE))
-	// We only index continuation bytes.
-	for i := 0; i < blockSize; i++ {
-		v := 0
-		if nn := n.table[0x80+i]; nn != nil {
-			v = computeOffsets(index, nn)
-		}
-		hasher.Write([]byte{uint8(v >> 8), uint8(v)})
-	}
-	h := hasher.Sum32()
-	if n.isInternal() {
-		v, ok := index.lookupBlockIdx[h]
-		if !ok {
-			v = len(index.lookupBlocks) - blockOffset
-			index.lookupBlocks = append(index.lookupBlocks, n)
-			index.lookupBlockIdx[h] = v
-		}
-		n.value = v
-	} else {
-		v, ok := index.valueBlockIdx[h]
-		if !ok {
-			if c := n.countSparseEntries(); c > maxSparseEntries {
-				v = len(index.valueBlocks) - blockOffset
-				index.valueBlocks = append(index.valueBlocks, n)
-				index.valueBlockIdx[h] = v
-			} else {
-				v = -len(index.sparseOffset)
-				index.sparseBlocks = append(index.sparseBlocks, n)
-				index.sparseOffset = append(index.sparseOffset, uint16(index.sparseCount))
-				index.sparseCount += c + 1
-				index.valueBlockIdx[h] = v
-			}
-		}
-		n.value = v
-	}
-	return n.value
-}
-
-func printValueBlock(nr int, n *trieNode, offset int) {
-	boff := nr * blockSize
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	var printnewline bool
-	for i := 0; i < blockSize; i++ {
-		if i%6 == 0 {
-			printnewline = true
-		}
-		v := 0
-		if nn := n.table[i+offset]; nn != nil {
-			v = nn.value
-		}
-		if v != 0 {
-			if printnewline {
-				fmt.Printf("\n")
-				printnewline = false
-			}
-			fmt.Printf("%#04x:%#04x, ", boff+i, v)
-		}
-	}
-}
-
-func printSparseBlock(nr int, n *trieNode) {
-	boff := -n.value
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	v := 0
-	//stride := f(n)
-	stride := n.mostFrequentStride()
-	c := n.countSparseEntries()
-	fmt.Printf("\n{value:%#04x,lo:%#02x},", stride, uint8(c))
-	for i, nn := range n.table[0x80 : 0x80+blockSize] {
-		nv := 0
-		if nn != nil {
-			nv = nn.value
-		}
-		if nv-v != stride {
-			if v != 0 {
-				fmt.Printf(",hi:%#02x},", 0x80+i-1)
-			}
-			if nv != 0 {
-				fmt.Printf("\n{value:%#04x,lo:%#02x", nv, nn.b)
-			}
-		}
-		v = nv
-	}
-	if v != 0 {
-		fmt.Printf(",hi:%#02x},", 0x80+blockSize-1)
-	}
-}
-
-func printLookupBlock(nr int, n *trieNode, offset, cutoff int) {
-	boff := nr * blockSize
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	var printnewline bool
-	for i := 0; i < blockSize; i++ {
-		if i%8 == 0 {
-			printnewline = true
-		}
-		v := 0
-		if nn := n.table[i+offset]; nn != nil {
-			v = nn.value
-		}
-		if v != 0 {
-			if v < 0 {
-				v = -v - 1 + cutoff
-			}
-			if printnewline {
-				fmt.Printf("\n")
-				printnewline = false
-			}
-			fmt.Printf("%#03x:%#02x, ", boff+i, v)
-		}
-	}
-}
-
-// printTables returns the size in bytes of the generated tables.
-func (t *trieNode) printTables(name string) int {
-	index := newIndex()
-	// Values for 7-bit ASCII are stored in first two block, followed by nil block.
-	index.valueBlocks = append(index.valueBlocks, nil, nil, nil)
-	// First byte of multi-byte UTF-8 codepoints are indexed in 4th block.
-	index.lookupBlocks = append(index.lookupBlocks, nil, nil, nil, nil)
-	// Index starter bytes of multi-byte UTF-8.
-	for i := 0xC0; i < 0x100; i++ {
-		if t.table[i] != nil {
-			computeOffsets(index, t.table[i])
-		}
-	}
-
-	nv := len(index.valueBlocks) * blockSize
-	fmt.Printf("// %sValues: %d entries, %d bytes\n", name, nv, nv*2)
-	fmt.Printf("// Block 2 is the null block.\n")
-	fmt.Printf("var %sValues = [%d]uint16 {", name, nv)
-	printValueBlock(0, t, 0)
-	printValueBlock(1, t, 64)
-	printValueBlock(2, newNode(), 0)
-	for i := 3; i < len(index.valueBlocks); i++ {
-		printValueBlock(i, index.valueBlocks[i], 0x80)
-	}
-	fmt.Print("\n}\n\n")
-
-	ls := len(index.sparseBlocks)
-	fmt.Printf("// %sSparseOffset: %d entries, %d bytes\n", name, ls, ls*2)
-	fmt.Printf("var %sSparseOffset = %#v\n\n", name, index.sparseOffset[1:])
-
-	ns := index.sparseCount
-	fmt.Printf("// %sSparseValues: %d entries, %d bytes\n", name, ns, ns*4)
-	fmt.Printf("var %sSparseValues = [%d]valueRange {", name, ns)
-	for i, n := range index.sparseBlocks {
-		printSparseBlock(i, n)
-	}
-	fmt.Print("\n}\n\n")
-
-	cutoff := len(index.valueBlocks) - blockOffset
-	ni := len(index.lookupBlocks) * blockSize
-	fmt.Printf("// %sLookup: %d bytes\n", name, ni)
-	fmt.Printf("// Block 0 is the null block.\n")
-	fmt.Printf("var %sLookup = [%d]uint8 {", name, ni)
-	printLookupBlock(0, newNode(), 0, cutoff)
-	printLookupBlock(1, newNode(), 0, cutoff)
-	printLookupBlock(2, newNode(), 0, cutoff)
-	printLookupBlock(3, t, 0xC0, cutoff)
-	for i := 4; i < len(index.lookupBlocks); i++ {
-		printLookupBlock(i, index.lookupBlocks[i], 0x80, cutoff)
-	}
-	fmt.Print("\n}\n\n")
-	fmt.Printf("var %sTrie = trie{ %sLookup[:], %sValues[:], %sSparseValues[:], %sSparseOffset[:], %d}\n\n",
-		name, name, name, name, name, cutoff)
-	return nv*2 + ns*4 + ni + ls*2
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/blockopt.go gcc-4.8.1/libgo/go/exp/ssa/blockopt.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/blockopt.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/blockopt.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,186 +0,0 @@
-package ssa
-
-// Simple block optimisations to simplify the control flow graph.
-
-// TODO(adonovan): instead of creating several "unreachable" blocks
-// per function in the Builder, reuse a single one (e.g. at Blocks[1])
-// to reduce garbage.
-
-import (
-	"fmt"
-	"os"
-)
-
-// If true, perform sanity checking and show progress at each
-// successive iteration of optimizeBlocks.  Very verbose.
-const debugBlockOpt = false
-
-func hasPhi(b *BasicBlock) bool {
-	_, ok := b.Instrs[0].(*Phi)
-	return ok
-}
-
-// prune attempts to prune block b if it is unreachable (i.e. has no
-// predecessors other than itself), disconnecting it from the CFG.
-// The result is true if the optimisation was applied.  i is the block
-// index within the function.
-//
-func prune(f *Function, i int, b *BasicBlock) bool {
-	if i == 0 {
-		return false // don't prune entry block
-	}
-	if len(b.Preds) == 0 || len(b.Preds) == 1 && b.Preds[0] == b {
-		// Disconnect it from its successors.
-		for _, c := range b.Succs {
-			c.removePred(b)
-		}
-		if debugBlockOpt {
-			fmt.Fprintln(os.Stderr, "prune", b.Name)
-		}
-
-		// Delete b.
-		f.Blocks[i] = nil
-		return true
-	}
-	return false
-}
-
-// jumpThreading attempts to apply simple jump-threading to block b,
-// in which a->b->c become a->c if b is just a Jump.
-// The result is true if the optimisation was applied.
-// i is the block index within the function.
-//
-func jumpThreading(f *Function, i int, b *BasicBlock) bool {
-	if i == 0 {
-		return false // don't apply to entry block
-	}
-	if b.Instrs == nil {
-		fmt.Println("empty block ", b.Name)
-		return false
-	}
-	if _, ok := b.Instrs[0].(*Jump); !ok {
-		return false // not just a jump
-	}
-	c := b.Succs[0]
-	if c == b {
-		return false // don't apply to degenerate jump-to-self.
-	}
-	if hasPhi(c) {
-		return false // not sound without more effort
-	}
-	for j, a := range b.Preds {
-		a.replaceSucc(b, c)
-
-		// If a now has two edges to c, replace its degenerate If by Jump.
-		if len(a.Succs) == 2 && a.Succs[0] == c && a.Succs[1] == c {
-			jump := new(Jump)
-			jump.SetBlock(a)
-			a.Instrs[len(a.Instrs)-1] = jump
-			a.Succs = a.Succs[:1]
-			c.removePred(b)
-		} else {
-			if j == 0 {
-				c.replacePred(b, a)
-			} else {
-				c.Preds = append(c.Preds, a)
-			}
-		}
-
-		if debugBlockOpt {
-			fmt.Fprintln(os.Stderr, "jumpThreading", a.Name, b.Name, c.Name)
-		}
-	}
-	f.Blocks[i] = nil
-	return true
-}
-
-// fuseBlocks attempts to apply the block fusion optimisation to block
-// a, in which a->b becomes ab if len(a.Succs)==len(b.Preds)==1.
-// The result is true if the optimisation was applied.
-//
-func fuseBlocks(f *Function, a *BasicBlock) bool {
-	if len(a.Succs) != 1 {
-		return false
-	}
-	b := a.Succs[0]
-	if len(b.Preds) != 1 {
-		return false
-	}
-	// Eliminate jump at end of A, then copy all of B across.
-	a.Instrs = append(a.Instrs[:len(a.Instrs)-1], b.Instrs...)
-	for _, instr := range b.Instrs {
-		instr.SetBlock(a)
-	}
-
-	// A inherits B's successors
-	a.Succs = append(a.succs2[:0], b.Succs...)
-
-	// Fix up Preds links of all successors of B.
-	for _, c := range b.Succs {
-		c.replacePred(b, a)
-	}
-
-	if debugBlockOpt {
-		fmt.Fprintln(os.Stderr, "fuseBlocks", a.Name, b.Name)
-	}
-
-	// Make b unreachable.  Subsequent pruning will reclaim it.
-	b.Preds = nil
-	return true
-}
-
-// optimizeBlocks() performs some simple block optimizations on a
-// completed function: dead block elimination, block fusion, jump
-// threading.
-//
-func optimizeBlocks(f *Function) {
-	// Loop until no further progress.
-	changed := true
-	for changed {
-		changed = false
-
-		if debugBlockOpt {
-			f.DumpTo(os.Stderr)
-			MustSanityCheck(f, nil)
-		}
-
-		for i, b := range f.Blocks {
-			// f.Blocks will temporarily contain nils to indicate
-			// deleted blocks; we remove them at the end.
-			if b == nil {
-				continue
-			}
-
-			// Prune unreachable blocks (including all empty blocks).
-			if prune(f, i, b) {
-				changed = true
-				continue // (b was pruned)
-			}
-
-			// Fuse blocks.  b->c becomes bc.
-			if fuseBlocks(f, b) {
-				changed = true
-			}
-
-			// a->b->c becomes a->c if b contains only a Jump.
-			if jumpThreading(f, i, b) {
-				changed = true
-				continue // (b was disconnected)
-			}
-		}
-	}
-
-	// Eliminate nils from Blocks.
-	j := 0
-	for _, b := range f.Blocks {
-		if b != nil {
-			f.Blocks[j] = b
-			j++
-		}
-	}
-	// Nil out b.Blocks[j:] to aid GC.
-	for i := j; i < len(f.Blocks); i++ {
-		f.Blocks[i] = nil
-	}
-	f.Blocks = f.Blocks[:j]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/doc.go gcc-4.8.1/libgo/go/exp/ssa/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/doc.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/doc.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,113 +0,0 @@
-// Package ssa defines a representation of the elements of Go programs
-// (packages, types, functions, variables and constants) using a
-// static single-assignment (SSA) form intermediate representation
-// (IR) for the the bodies of functions.
-//
-// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE.
-//
-// For an introduction to SSA form, see
-// http://en.wikipedia.org/wiki/Static_single_assignment_form.
-// This page provides a broader reading list:
-// http://www.dcs.gla.ac.uk/~jsinger/ssa.html.
-//
-// The level of abstraction of the SSA form is intentionally close to
-// the source language to facilitate construction of source analysis
-// tools.  It is not primarily intended for machine code generation.
-//
-// All looping, branching and switching constructs are replaced with
-// unstructured control flow.  We may add higher-level control flow
-// primitives in the future to facilitate constant-time dispatch of
-// switch statements, for example.
-//
-// Builder encapsulates the tasks of type-checking (using go/types)
-// abstract syntax trees (as defined by go/ast) for the source files
-// comprising a Go program, and the conversion of each function from
-// Go ASTs to the SSA representation.
-//
-// By supplying an instance of the SourceLocator function prototype,
-// clients may control how the builder locates, loads and parses Go
-// sources files for imported packages.  This package provides
-// GorootLoader, which uses go/build to locate packages in the Go
-// source distribution, and go/parser to parse them.
-//
-// The builder initially builds a naive SSA form in which all local
-// variables are addresses of stack locations with explicit loads and
-// stores.  If desired, registerisation and Ï†-node insertion using
-// dominance and dataflow can be performed as a later pass to improve
-// the accuracy and performance of subsequent analyses; this pass is
-// not yet implemented.
-//
-// The program representation constructed by this package is fully
-// resolved internally, i.e. it does not rely on the names of Values,
-// Packages, Functions, Types or BasicBlocks for the correct
-// interpretation of the program.  Only the identities of objects and
-// the topology of the SSA and type graphs are semantically
-// significant.  (There is one exception: Ids, used to identify field
-// and method names, contain strings.)  Avoidance of name-based
-// operations simplifies the implementation of subsequent passes and
-// can make them very efficient.  Many objects are nonetheless named
-// to aid in debugging, but it is not essential that the names be
-// either accurate or unambiguous.  The public API exposes a number of
-// name-based maps for client convenience.
-//
-// Given a Go source package such as this:
-//
-//      package main
-//
-//      import "fmt"
-//
-//      const message = "Hello, World!"
-//
-//      func hello() {
-//              fmt.Println(message)
-//      }
-//
-// The SSA Builder creates a *Program containing a main *Package such
-// as this:
-//
-//      Package(Name: "main")
-//        Members:
-//          "message":          *Literal (Type: untyped string, Value: "Hello, World!")
-//          "initÂ·guard":       *Global (Type: *bool)
-//          "hello":            *Function (Type: func())
-//        Init:                 *Function (Type: func())
-//
-// The printed representation of the function main.hello is shown
-// below.  Within the function listing, the name of each BasicBlock
-// such as ".0.entry" is printed left-aligned, followed by the block's
-// instructions, i.e. implementations of Instruction.
-// For each instruction that defines an SSA virtual register
-// (i.e. implements Value), the type of that value is shown in the
-// right column.
-//
-//      # Name: main.hello
-//      # Declared at hello.go:7:6
-//      # Type: func()
-//      func hello():
-//      .0.entry:
-//              t0 = new [1]interface{}                                                 *[1]interface{}
-//              t1 = &t0[0:untyped integer]                                             *interface{}
-//              t2 = make interface interface{} <- string ("Hello, World!":string)      interface{}
-//              *t1 = t2
-//              t3 = slice t0[:]                                                        []interface{}
-//              t4 = fmt.Println(t3)                                                    (n int, err error)
-//              ret
-//
-// TODO(adonovan): demonstrate more features in the example:
-// parameters and control flow at the least.
-//
-// TODO(adonovan): Consider how token.Pos source location information
-// should be made available generally.  Currently it is only present in
-// Package, Function and CallCommon.
-//
-// TODO(adonovan): Provide an example skeleton application that loads
-// and dumps the SSA form of a program.  Accommodate package-at-a-time
-// vs. whole-program operation.
-//
-// TODO(adonovan): Consider the exceptional control-flow implications
-// of defer and recover().
-//
-// TODO(adonovan): build tables/functions that relate source variables
-// to SSA variables to assist user interfaces that make queries about
-// specific source entities.
-package ssa
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/func.go gcc-4.8.1/libgo/go/exp/ssa/func.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/func.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/func.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,428 +0,0 @@
-package ssa
-
-// This file implements the Function and BasicBlock types.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/types"
-	"io"
-	"os"
-)
-
-// Mode bits for additional diagnostics and checking.
-// TODO(adonovan): move these to builder.go once submitted.
-type BuilderMode uint
-
-const (
-	LogPackages          BuilderMode = 1 << iota // Dump package inventory to stderr
-	LogFunctions                                 // Dump function SSA code to stderr
-	LogSource                                    // Show source locations as SSA builder progresses
-	SanityCheckFunctions                         // Perform sanity checking of function bodies
-	UseGCImporter                                // Ignore SourceLoader; use gc-compiled object code for all imports
-)
-
-// addEdge adds a control-flow graph edge from from to to.
-func addEdge(from, to *BasicBlock) {
-	from.Succs = append(from.Succs, to)
-	to.Preds = append(to.Preds, from)
-}
-
-// emit appends an instruction to the current basic block.
-// If the instruction defines a Value, it is returned.
-//
-func (b *BasicBlock) emit(i Instruction) Value {
-	i.SetBlock(b)
-	b.Instrs = append(b.Instrs, i)
-	v, _ := i.(Value)
-	return v
-}
-
-// phis returns the prefix of b.Instrs containing all the block's Ï†-nodes.
-func (b *BasicBlock) phis() []Instruction {
-	for i, instr := range b.Instrs {
-		if _, ok := instr.(*Phi); !ok {
-			return b.Instrs[:i]
-		}
-	}
-	return nil // unreachable in well-formed blocks
-}
-
-// replacePred replaces all occurrences of p in b's predecessor list with q.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) replacePred(p, q *BasicBlock) {
-	for i, pred := range b.Preds {
-		if pred == p {
-			b.Preds[i] = q
-		}
-	}
-}
-
-// replaceSucc replaces all occurrences of p in b's successor list with q.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) replaceSucc(p, q *BasicBlock) {
-	for i, succ := range b.Succs {
-		if succ == p {
-			b.Succs[i] = q
-		}
-	}
-}
-
-// removePred removes all occurrences of p in b's
-// predecessor list and Ï†-nodes.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) removePred(p *BasicBlock) {
-	phis := b.phis()
-
-	// We must preserve edge order for Ï†-nodes.
-	j := 0
-	for i, pred := range b.Preds {
-		if pred != p {
-			b.Preds[j] = b.Preds[i]
-			// Strike out Ï†-edge too.
-			for _, instr := range phis {
-				phi := instr.(*Phi)
-				phi.Edges[j] = phi.Edges[i]
-			}
-			j++
-		}
-	}
-	// Nil out b.Preds[j:] and Ï†-edges[j:] to aid GC.
-	for i := j; i < len(b.Preds); i++ {
-		b.Preds[i] = nil
-		for _, instr := range phis {
-			instr.(*Phi).Edges[i] = nil
-		}
-	}
-	b.Preds = b.Preds[:j]
-	for _, instr := range phis {
-		phi := instr.(*Phi)
-		phi.Edges = phi.Edges[:j]
-	}
-}
-
-// Destinations associated with unlabelled for/switch/select stmts.
-// We push/pop one of these as we enter/leave each construct and for
-// each BranchStmt we scan for the innermost target of the right type.
-//
-type targets struct {
-	tail         *targets // rest of stack
-	_break       *BasicBlock
-	_continue    *BasicBlock
-	_fallthrough *BasicBlock
-}
-
-// Destinations associated with a labelled block.
-// We populate these as labels are encountered in forward gotos or
-// labelled statements.
-//
-type lblock struct {
-	_goto     *BasicBlock
-	_break    *BasicBlock
-	_continue *BasicBlock
-}
-
-// funcSyntax holds the syntax tree for the function declaration and body.
-type funcSyntax struct {
-	recvField    *ast.FieldList
-	paramFields  *ast.FieldList
-	resultFields *ast.FieldList
-	body         *ast.BlockStmt
-}
-
-// labelledBlock returns the branch target associated with the
-// specified label, creating it if needed.
-//
-func (f *Function) labelledBlock(label *ast.Ident) *lblock {
-	lb := f.lblocks[label.Obj]
-	if lb == nil {
-		lb = &lblock{_goto: f.newBasicBlock("label." + label.Name)}
-		f.lblocks[label.Obj] = lb
-	}
-	return lb
-}
-
-// addParam adds a (non-escaping) parameter to f.Params of the
-// specified name and type.
-//
-func (f *Function) addParam(name string, typ types.Type) *Parameter {
-	v := &Parameter{
-		Name_: name,
-		Type_: typ,
-	}
-	f.Params = append(f.Params, v)
-	return v
-}
-
-// addSpilledParam declares a parameter that is pre-spilled to the
-// stack; the function body will load/store the spilled location.
-// Subsequent registerization will eliminate spills where possible.
-//
-func (f *Function) addSpilledParam(obj types.Object) {
-	name := obj.GetName()
-	param := f.addParam(name, obj.GetType())
-	spill := &Alloc{
-		Name_: name + "~", // "~" means "spilled"
-		Type_: pointer(obj.GetType()),
-	}
-	f.objects[obj] = spill
-	f.Locals = append(f.Locals, spill)
-	f.emit(spill)
-	f.emit(&Store{Addr: spill, Val: param})
-}
-
-// start initializes the function prior to generating SSA code for its body.
-// Precondition: f.Type() already set.
-//
-// If f.syntax != nil, f is a Go source function and idents must be a
-// mapping from syntactic identifiers to their canonical type objects;
-// Otherwise, idents is ignored and the usual set-up for Go source
-// functions is skipped.
-//
-func (f *Function) start(mode BuilderMode, idents map[*ast.Ident]types.Object) {
-	if mode&LogSource != 0 {
-		fmt.Fprintf(os.Stderr, "build function %s @ %s\n", f.FullName(), f.Prog.Files.Position(f.Pos))
-	}
-	f.currentBlock = f.newBasicBlock("entry")
-	f.objects = make(map[types.Object]Value) // needed for some synthetics, e.g. init
-	if f.syntax == nil {
-		return // synthetic function; no syntax tree
-	}
-	f.lblocks = make(map[*ast.Object]*lblock)
-
-	// Receiver (at most one inner iteration).
-	if f.syntax.recvField != nil {
-		for _, field := range f.syntax.recvField.List {
-			for _, n := range field.Names {
-				f.addSpilledParam(idents[n])
-			}
-			if field.Names == nil {
-				f.addParam(f.Signature.Recv.Name, f.Signature.Recv.Type)
-			}
-		}
-	}
-
-	// Parameters.
-	if f.syntax.paramFields != nil {
-		for _, field := range f.syntax.paramFields.List {
-			for _, n := range field.Names {
-				f.addSpilledParam(idents[n])
-			}
-		}
-	}
-
-	// Results.
-	if f.syntax.resultFields != nil {
-		for _, field := range f.syntax.resultFields.List {
-			// Implicit "var" decl of locals for named results.
-			for _, n := range field.Names {
-				f.results = append(f.results, f.addNamedLocal(idents[n]))
-			}
-		}
-	}
-}
-
-// finish() finalizes the function after SSA code generation of its body.
-func (f *Function) finish(mode BuilderMode) {
-	f.objects = nil
-	f.results = nil
-	f.currentBlock = nil
-	f.lblocks = nil
-	f.syntax = nil
-
-	// Remove any f.Locals that are now heap-allocated.
-	j := 0
-	for _, l := range f.Locals {
-		if !l.Heap {
-			f.Locals[j] = l
-			j++
-		}
-	}
-	// Nil out f.Locals[j:] to aid GC.
-	for i := j; i < len(f.Locals); i++ {
-		f.Locals[i] = nil
-	}
-	f.Locals = f.Locals[:j]
-
-	// Ensure all value-defining Instructions have register names.
-	// (Non-Instruction Values are named at construction.)
-	tmp := 0
-	for _, b := range f.Blocks {
-		for _, instr := range b.Instrs {
-			switch instr := instr.(type) {
-			case *Alloc:
-				// Local Allocs may already be named.
-				if instr.Name_ == "" {
-					instr.Name_ = fmt.Sprintf("t%d", tmp)
-					tmp++
-				}
-			case Value:
-				instr.(interface {
-					setNum(int)
-				}).setNum(tmp)
-				tmp++
-			}
-		}
-	}
-	optimizeBlocks(f)
-
-	if mode&LogFunctions != 0 {
-		f.DumpTo(os.Stderr)
-	}
-	if mode&SanityCheckFunctions != 0 {
-		MustSanityCheck(f, nil)
-	}
-	if mode&LogSource != 0 {
-		fmt.Fprintf(os.Stderr, "build function %s done\n", f.FullName())
-	}
-}
-
-// addNamedLocal creates a local variable, adds it to function f and
-// returns it.  Its name and type are taken from obj.  Subsequent
-// calls to f.lookup(obj) will return the same local.
-//
-// Precondition: f.syntax != nil (i.e. a Go source function).
-//
-func (f *Function) addNamedLocal(obj types.Object) *Alloc {
-	l := f.addLocal(obj.GetType())
-	l.Name_ = obj.GetName()
-	f.objects[obj] = l
-	return l
-}
-
-// addLocal creates an anonymous local variable of type typ, adds it
-// to function f and returns it.
-//
-func (f *Function) addLocal(typ types.Type) *Alloc {
-	v := &Alloc{Type_: pointer(typ)}
-	f.Locals = append(f.Locals, v)
-	f.emit(v)
-	return v
-}
-
-// lookup returns the address of the named variable identified by obj
-// that is local to function f or one of its enclosing functions.
-// If escaping, the reference comes from a potentially escaping pointer
-// expression and the referent must be heap-allocated.
-//
-func (f *Function) lookup(obj types.Object, escaping bool) Value {
-	if v, ok := f.objects[obj]; ok {
-		if escaping {
-			// Walk up the chain of Captures.
-			x := v
-			for {
-				if c, ok := x.(*Capture); ok {
-					x = c.Outer
-				} else {
-					break
-				}
-			}
-			// By construction, all captures are ultimately Allocs in the
-			// naive SSA form.  Parameters are pre-spilled to the stack.
-			x.(*Alloc).Heap = true
-		}
-		return v // function-local var (address)
-	}
-
-	// Definition must be in an enclosing function;
-	// plumb it through intervening closures.
-	if f.Enclosing == nil {
-		panic("no Value for type.Object " + obj.GetName())
-	}
-	v := &Capture{f.Enclosing.lookup(obj, true)} // escaping
-	f.objects[obj] = v
-	f.FreeVars = append(f.FreeVars, v)
-	return v
-}
-
-// emit emits the specified instruction to function f, updating the
-// control-flow graph if required.
-//
-func (f *Function) emit(instr Instruction) Value {
-	return f.currentBlock.emit(instr)
-}
-
-// DumpTo prints to w a human readable "disassembly" of the SSA code of
-// all basic blocks of function f.
-//
-func (f *Function) DumpTo(w io.Writer) {
-	fmt.Fprintf(w, "# Name: %s\n", f.FullName())
-	fmt.Fprintf(w, "# Declared at %s\n", f.Prog.Files.Position(f.Pos))
-	fmt.Fprintf(w, "# Type: %s\n", f.Signature)
-
-	if f.Enclosing != nil {
-		fmt.Fprintf(w, "# Parent: %s\n", f.Enclosing.Name())
-	}
-
-	if f.FreeVars != nil {
-		io.WriteString(w, "# Free variables:\n")
-		for i, fv := range f.FreeVars {
-			fmt.Fprintf(w, "# % 3d:\t%s %s\n", i, fv.Name(), fv.Type())
-		}
-	}
-
-	params := f.Params
-	if f.Signature.Recv != nil {
-		fmt.Fprintf(w, "func (%s) %s(", params[0].Name(), f.Name())
-		params = params[1:]
-	} else {
-		fmt.Fprintf(w, "func %s(", f.Name())
-	}
-	for i, v := range params {
-		if i > 0 {
-			io.WriteString(w, ", ")
-		}
-		io.WriteString(w, v.Name())
-	}
-	io.WriteString(w, "):\n")
-
-	for _, b := range f.Blocks {
-		if b == nil {
-			// Corrupt CFG.
-			fmt.Fprintf(w, ".nil:\n")
-			continue
-		}
-		fmt.Fprintf(w, ".%s:\t\t\t\t\t\t\t       P:%d S:%d\n", b.Name, len(b.Preds), len(b.Succs))
-		if false { // CFG debugging
-			fmt.Fprintf(w, "\t# CFG: %s --> %s --> %s\n", blockNames(b.Preds), b.Name, blockNames(b.Succs))
-		}
-		for _, instr := range b.Instrs {
-			io.WriteString(w, "\t")
-			if v, ok := instr.(Value); ok {
-				l := 80 // for old time's sake.
-				// Left-align the instruction.
-				if name := v.Name(); name != "" {
-					n, _ := fmt.Fprintf(w, "%s = ", name)
-					l -= n
-				}
-				n, _ := io.WriteString(w, instr.String())
-				l -= n
-				// Right-align the type.
-				if t := v.Type(); t != nil {
-					fmt.Fprintf(w, "%*s", l-9, t)
-				}
-			} else {
-				io.WriteString(w, instr.String())
-			}
-			io.WriteString(w, "\n")
-		}
-	}
-	fmt.Fprintf(w, "\n")
-}
-
-// newBasicBlock adds to f a new basic block with a unique name and
-// returns it.  It does not automatically become the current block for
-// subsequent calls to emit.
-//
-func (f *Function) newBasicBlock(name string) *BasicBlock {
-	b := &BasicBlock{
-		Name: fmt.Sprintf("%d.%s", len(f.Blocks), name),
-		Func: f,
-	}
-	b.Succs = b.succs2[:0]
-	f.Blocks = append(f.Blocks, b)
-	return b
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/literal.go gcc-4.8.1/libgo/go/exp/ssa/literal.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/literal.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/literal.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,137 +0,0 @@
-package ssa
-
-// This file defines the Literal SSA value type.
-
-import (
-	"fmt"
-	"go/types"
-	"math/big"
-	"strconv"
-)
-
-// newLiteral returns a new literal of the specified value and type.
-// val must be valid according to the specification of Literal.Value.
-//
-func newLiteral(val interface{}, typ types.Type) *Literal {
-	// This constructor exists to provide a single place to
-	// insert logging/assertions during debugging.
-	return &Literal{typ, val}
-}
-
-// intLiteral returns an untyped integer literal that evaluates to i.
-func intLiteral(i int64) *Literal {
-	return newLiteral(i, types.Typ[types.UntypedInt])
-}
-
-// nilLiteral returns a nil literal of the specified (reference) type.
-func nilLiteral(typ types.Type) *Literal {
-	return newLiteral(types.NilType{}, typ)
-}
-
-func (l *Literal) Name() string {
-	var s string
-	switch x := l.Value.(type) {
-	case bool:
-		s = fmt.Sprintf("%v", l.Value)
-	case int64:
-		s = fmt.Sprintf("%d", l.Value)
-	case *big.Int:
-		s = x.String()
-	case *big.Rat:
-		s = x.FloatString(20)
-	case string:
-		if len(x) > 20 {
-			x = x[:17] + "..." // abbreviate
-		}
-		s = strconv.Quote(x)
-	case types.Complex:
-		r := x.Re.FloatString(20)
-		i := x.Im.FloatString(20)
-		s = fmt.Sprintf("%s+%si", r, i)
-	case types.NilType:
-		s = "nil"
-	default:
-		panic(fmt.Sprintf("unexpected literal value: %T", x))
-	}
-	return s + ":" + l.Type_.String()
-}
-
-func (l *Literal) Type() types.Type {
-	return l.Type_
-}
-
-// IsNil returns true if this literal represents a typed or untyped nil value.
-func (l *Literal) IsNil() bool {
-	_, ok := l.Value.(types.NilType)
-	return ok
-}
-
-// Int64 returns the numeric value of this literal truncated to fit
-// a signed 64-bit integer.
-//
-func (l *Literal) Int64() int64 {
-	switch x := l.Value.(type) {
-	case int64:
-		return x
-	case *big.Int:
-		return x.Int64()
-	case *big.Rat:
-		// TODO(adonovan): fix: is this the right rounding mode?
-		var q big.Int
-		return q.Quo(x.Num(), x.Denom()).Int64()
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Uint64 returns the numeric value of this literal truncated to fit
-// an unsigned 64-bit integer.
-//
-func (l *Literal) Uint64() uint64 {
-	switch x := l.Value.(type) {
-	case int64:
-		if x < 0 {
-			return 0
-		}
-		return uint64(x)
-	case *big.Int:
-		return x.Uint64()
-	case *big.Rat:
-		// TODO(adonovan): fix: is this right?
-		var q big.Int
-		return q.Quo(x.Num(), x.Denom()).Uint64()
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Float64 returns the numeric value of this literal truncated to fit
-// a float64.
-//
-func (l *Literal) Float64() float64 {
-	switch x := l.Value.(type) {
-	case int64:
-		return float64(x)
-	case *big.Int:
-		var r big.Rat
-		f, _ := r.SetInt(x).Float64()
-		return f
-	case *big.Rat:
-		f, _ := x.Float64()
-		return f
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Complex128 returns the complex value of this literal truncated to
-// fit a complex128.
-//
-func (l *Literal) Complex128() complex128 {
-	switch x := l.Value.(type) {
-	case int64, *big.Int, *big.Rat:
-		return complex(l.Float64(), 0)
-	case types.Complex:
-		re64, _ := x.Re.Float64()
-		im64, _ := x.Im.Float64()
-		return complex(re64, im64)
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/print.go gcc-4.8.1/libgo/go/exp/ssa/print.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/print.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/print.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,383 +0,0 @@
-package ssa
-
-// This file implements the String() methods for all Value and
-// Instruction types.
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/types"
-)
-
-func (id Id) String() string {
-	if id.Pkg == nil {
-		return id.Name
-	}
-	return fmt.Sprintf("%s/%s", id.Pkg.Path, id.Name)
-}
-
-// relName returns the name of v relative to i.
-// In most cases, this is identical to v.Name(), but for cross-package
-// references to Functions (including methods) and Globals, the
-// package-qualified FullName is used instead.
-//
-func relName(v Value, i Instruction) string {
-	switch v := v.(type) {
-	case *Global:
-		if v.Pkg == i.Block().Func.Pkg {
-			return v.Name()
-		}
-		return v.FullName()
-	case *Function:
-		if v.Pkg == nil || v.Pkg == i.Block().Func.Pkg {
-			return v.Name()
-		}
-		return v.FullName()
-	}
-	return v.Name()
-}
-
-// Value.String()
-//
-// This method is provided only for debugging.
-// It never appears in disassembly, which uses Value.Name().
-
-func (v *Literal) String() string {
-	return fmt.Sprintf("literal %s rep=%T", v.Name(), v.Value)
-}
-
-func (v *Parameter) String() string {
-	return fmt.Sprintf("parameter %s : %s", v.Name(), v.Type())
-}
-
-func (v *Capture) String() string {
-	return fmt.Sprintf("capture %s : %s", v.Name(), v.Type())
-}
-
-func (v *Global) String() string {
-	return fmt.Sprintf("global %s : %s", v.Name(), v.Type())
-}
-
-func (v *Builtin) String() string {
-	return fmt.Sprintf("builtin %s : %s", v.Name(), v.Type())
-}
-
-func (r *Function) String() string {
-	return fmt.Sprintf("function %s : %s", r.Name(), r.Type())
-}
-
-// FullName returns the name of this function qualified by the
-// package name, unless it is anonymous or synthetic.
-//
-// TODO(adonovan): move to func.go when it's submitted.
-//
-func (f *Function) FullName() string {
-	if f.Enclosing != nil || f.Pkg == nil {
-		return f.Name_ // anonymous or synthetic
-	}
-	return fmt.Sprintf("%s.%s", f.Pkg.ImportPath, f.Name_)
-}
-
-// FullName returns g's package-qualified name.
-func (g *Global) FullName() string {
-	return fmt.Sprintf("%s.%s", g.Pkg.ImportPath, g.Name_)
-}
-
-// Instruction.String()
-
-func (v *Alloc) String() string {
-	op := "local"
-	if v.Heap {
-		op = "new"
-	}
-	return fmt.Sprintf("%s %s", op, indirectType(v.Type()))
-}
-
-func (v *Phi) String() string {
-	var b bytes.Buffer
-	b.WriteString("phi [")
-	for i, edge := range v.Edges {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		// Be robust against malformed CFG.
-		blockname := "?"
-		if v.Block_ != nil && i < len(v.Block_.Preds) {
-			blockname = v.Block_.Preds[i].Name
-		}
-		b.WriteString(blockname)
-		b.WriteString(": ")
-		b.WriteString(relName(edge, v))
-	}
-	b.WriteString("]")
-	return b.String()
-}
-
-func printCall(v *CallCommon, prefix string, instr Instruction) string {
-	var b bytes.Buffer
-	b.WriteString(prefix)
-	if v.Func != nil {
-		b.WriteString(relName(v.Func, instr))
-	} else {
-		name := underlyingType(v.Recv.Type()).(*types.Interface).Methods[v.Method].Name
-		fmt.Fprintf(&b, "invoke %s.%s [#%d]", relName(v.Recv, instr), name, v.Method)
-	}
-	b.WriteString("(")
-	for i, arg := range v.Args {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		b.WriteString(relName(arg, instr))
-	}
-	if v.HasEllipsis {
-		b.WriteString("...")
-	}
-	b.WriteString(")")
-	return b.String()
-}
-
-func (v *Call) String() string {
-	return printCall(&v.CallCommon, "", v)
-}
-
-func (v *BinOp) String() string {
-	return fmt.Sprintf("%s %s %s", relName(v.X, v), v.Op.String(), relName(v.Y, v))
-}
-
-func (v *UnOp) String() string {
-	return fmt.Sprintf("%s%s%s", v.Op, relName(v.X, v), commaOk(v.CommaOk))
-}
-
-func (v *Conv) String() string {
-	return fmt.Sprintf("convert %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *ChangeInterface) String() string {
-	return fmt.Sprintf("change interface %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *MakeInterface) String() string {
-	return fmt.Sprintf("make interface %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *MakeClosure) String() string {
-	var b bytes.Buffer
-	fmt.Fprintf(&b, "make closure %s", relName(v.Fn, v))
-	if v.Bindings != nil {
-		b.WriteString(" [")
-		for i, c := range v.Bindings {
-			if i > 0 {
-				b.WriteString(", ")
-			}
-			b.WriteString(relName(c, v))
-		}
-		b.WriteString("]")
-	}
-	return b.String()
-}
-
-func (v *MakeSlice) String() string {
-	var b bytes.Buffer
-	b.WriteString("make slice ")
-	b.WriteString(v.Type().String())
-	b.WriteString(" ")
-	b.WriteString(relName(v.Len, v))
-	b.WriteString(" ")
-	b.WriteString(relName(v.Cap, v))
-	return b.String()
-}
-
-func (v *Slice) String() string {
-	var b bytes.Buffer
-	b.WriteString("slice ")
-	b.WriteString(relName(v.X, v))
-	b.WriteString("[")
-	if v.Low != nil {
-		b.WriteString(relName(v.Low, v))
-	}
-	b.WriteString(":")
-	if v.High != nil {
-		b.WriteString(relName(v.High, v))
-	}
-	b.WriteString("]")
-	return b.String()
-}
-
-func (v *MakeMap) String() string {
-	res := ""
-	if v.Reserve != nil {
-		res = relName(v.Reserve, v)
-	}
-	return fmt.Sprintf("make %s %s", v.Type(), res)
-}
-
-func (v *MakeChan) String() string {
-	return fmt.Sprintf("make %s %s", v.Type(), relName(v.Size, v))
-}
-
-func (v *FieldAddr) String() string {
-	fields := underlyingType(indirectType(v.X.Type())).(*types.Struct).Fields
-	// Be robust against a bad index.
-	name := "?"
-	if v.Field >= 0 && v.Field < len(fields) {
-		name = fields[v.Field].Name
-	}
-	return fmt.Sprintf("&%s.%s [#%d]", relName(v.X, v), name, v.Field)
-}
-
-func (v *Field) String() string {
-	fields := underlyingType(v.X.Type()).(*types.Struct).Fields
-	// Be robust against a bad index.
-	name := "?"
-	if v.Field >= 0 && v.Field < len(fields) {
-		name = fields[v.Field].Name
-	}
-	return fmt.Sprintf("%s.%s [#%d]", relName(v.X, v), name, v.Field)
-}
-
-func (v *IndexAddr) String() string {
-	return fmt.Sprintf("&%s[%s]", relName(v.X, v), relName(v.Index, v))
-}
-
-func (v *Index) String() string {
-	return fmt.Sprintf("%s[%s]", relName(v.X, v), relName(v.Index, v))
-}
-
-func (v *Lookup) String() string {
-	return fmt.Sprintf("%s[%s]%s", relName(v.X, v), relName(v.Index, v), commaOk(v.CommaOk))
-}
-
-func (v *Range) String() string {
-	return "range " + relName(v.X, v)
-}
-
-func (v *Next) String() string {
-	return "next " + relName(v.Iter, v)
-}
-
-func (v *TypeAssert) String() string {
-	return fmt.Sprintf("typeassert%s %s.(%s)", commaOk(v.CommaOk), relName(v.X, v), v.AssertedType)
-}
-
-func (v *Extract) String() string {
-	return fmt.Sprintf("extract %s #%d", relName(v.Tuple, v), v.Index)
-}
-
-func (s *Jump) String() string {
-	// Be robust against malformed CFG.
-	blockname := "?"
-	if s.Block_ != nil && len(s.Block_.Succs) == 1 {
-		blockname = s.Block_.Succs[0].Name
-	}
-	return fmt.Sprintf("jump %s", blockname)
-}
-
-func (s *If) String() string {
-	// Be robust against malformed CFG.
-	tblockname, fblockname := "?", "?"
-	if s.Block_ != nil && len(s.Block_.Succs) == 2 {
-		tblockname = s.Block_.Succs[0].Name
-		fblockname = s.Block_.Succs[1].Name
-	}
-	return fmt.Sprintf("if %s goto %s else %s", relName(s.Cond, s), tblockname, fblockname)
-}
-
-func (s *Go) String() string {
-	return printCall(&s.CallCommon, "go ", s)
-}
-
-func (s *Ret) String() string {
-	var b bytes.Buffer
-	b.WriteString("ret")
-	for i, r := range s.Results {
-		if i == 0 {
-			b.WriteString(" ")
-		} else {
-			b.WriteString(", ")
-		}
-		b.WriteString(relName(r, s))
-	}
-	return b.String()
-}
-
-func (s *Send) String() string {
-	return fmt.Sprintf("send %s <- %s", relName(s.Chan, s), relName(s.X, s))
-}
-
-func (s *Defer) String() string {
-	return printCall(&s.CallCommon, "defer ", s)
-}
-
-func (s *Select) String() string {
-	var b bytes.Buffer
-	for i, st := range s.States {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		if st.Dir == ast.RECV {
-			b.WriteString("<-")
-			b.WriteString(relName(st.Chan, s))
-		} else {
-			b.WriteString(relName(st.Chan, s))
-			b.WriteString("<-")
-			b.WriteString(relName(st.Send, s))
-		}
-	}
-	non := ""
-	if !s.Blocking {
-		non = "non"
-	}
-	return fmt.Sprintf("select %sblocking [%s]", non, b.String())
-}
-
-func (s *Store) String() string {
-	return fmt.Sprintf("*%s = %s", relName(s.Addr, s), relName(s.Val, s))
-}
-
-func (s *MapUpdate) String() string {
-	return fmt.Sprintf("%s[%s] = %s", relName(s.Map, s), relName(s.Key, s), relName(s.Value, s))
-}
-
-func (p *Package) String() string {
-	// TODO(adonovan): prettify output.
-	var b bytes.Buffer
-	fmt.Fprintf(&b, "Package %s at %s:\n", p.ImportPath, p.Prog.Files.File(p.Pos).Name())
-
-	// TODO(adonovan): make order deterministic.
-	maxname := 0
-	for name := range p.Members {
-		if l := len(name); l > maxname {
-			maxname = l
-		}
-	}
-
-	for name, mem := range p.Members {
-		switch mem := mem.(type) {
-		case *Literal:
-			fmt.Fprintf(&b, " const %-*s %s\n", maxname, name, mem.Name())
-
-		case *Function:
-			fmt.Fprintf(&b, " func  %-*s %s\n", maxname, name, mem.Type())
-
-		case *Type:
-			fmt.Fprintf(&b, " type  %-*s %s\n", maxname, name, mem.NamedType.Underlying)
-			// TODO(adonovan): make order deterministic.
-			for name, method := range mem.Methods {
-				fmt.Fprintf(&b, "       method %s %s\n", name, method.Signature)
-			}
-
-		case *Global:
-			fmt.Fprintf(&b, " var   %-*s %s\n", maxname, name, mem.Type())
-
-		}
-	}
-	return b.String()
-}
-
-func commaOk(x bool) string {
-	if x {
-		return ",ok"
-	}
-	return ""
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/sanity.go gcc-4.8.1/libgo/go/exp/ssa/sanity.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/sanity.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/sanity.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,263 +0,0 @@
-package ssa
-
-// An optional pass for sanity checking invariants of the SSA representation.
-// Currently it checks CFG invariants but little at the instruction level.
-
-import (
-	"bytes"
-	"fmt"
-	"io"
-	"os"
-)
-
-type sanity struct {
-	reporter io.Writer
-	fn       *Function
-	block    *BasicBlock
-	insane   bool
-}
-
-// SanityCheck performs integrity checking of the SSA representation
-// of the function fn and returns true if it was valid.  Diagnostics
-// are written to reporter if non-nil, os.Stderr otherwise.  Some
-// diagnostics are only warnings and do not imply a negative result.
-//
-// Sanity checking is intended to facilitate the debugging of code
-// transformation passes.
-//
-func SanityCheck(fn *Function, reporter io.Writer) bool {
-	if reporter == nil {
-		reporter = os.Stderr
-	}
-	return (&sanity{reporter: reporter}).checkFunction(fn)
-}
-
-// MustSanityCheck is like SanityCheck but panics instead of returning
-// a negative result.
-//
-func MustSanityCheck(fn *Function, reporter io.Writer) {
-	if !SanityCheck(fn, reporter) {
-		panic("SanityCheck failed")
-	}
-}
-
-// blockNames returns the names of the specified blocks as a
-// human-readable string.
-//
-func blockNames(blocks []*BasicBlock) string {
-	var buf bytes.Buffer
-	for i, b := range blocks {
-		if i > 0 {
-			io.WriteString(&buf, ", ")
-		}
-		io.WriteString(&buf, b.Name)
-	}
-	return buf.String()
-}
-
-func (s *sanity) diagnostic(prefix, format string, args ...interface{}) {
-	fmt.Fprintf(s.reporter, "%s: function %s", prefix, s.fn.FullName())
-	if s.block != nil {
-		fmt.Fprintf(s.reporter, ", block %s", s.block.Name)
-	}
-	io.WriteString(s.reporter, ": ")
-	fmt.Fprintf(s.reporter, format, args...)
-	io.WriteString(s.reporter, "\n")
-}
-
-func (s *sanity) errorf(format string, args ...interface{}) {
-	s.insane = true
-	s.diagnostic("Error", format, args...)
-}
-
-func (s *sanity) warnf(format string, args ...interface{}) {
-	s.diagnostic("Warning", format, args...)
-}
-
-// findDuplicate returns an arbitrary basic block that appeared more
-// than once in blocks, or nil if all were unique.
-func findDuplicate(blocks []*BasicBlock) *BasicBlock {
-	if len(blocks) < 2 {
-		return nil
-	}
-	if blocks[0] == blocks[1] {
-		return blocks[0]
-	}
-	// Slow path:
-	m := make(map[*BasicBlock]bool)
-	for _, b := range blocks {
-		if m[b] {
-			return b
-		}
-		m[b] = true
-	}
-	return nil
-}
-
-func (s *sanity) checkInstr(idx int, instr Instruction) {
-	switch instr := instr.(type) {
-	case *If, *Jump, *Ret:
-		s.errorf("control flow instruction not at end of block")
-	case *Phi:
-		if idx == 0 {
-			// It suffices to apply this check to just the first phi node.
-			if dup := findDuplicate(s.block.Preds); dup != nil {
-				s.errorf("phi node in block with duplicate predecessor %s", dup.Name)
-			}
-		} else {
-			prev := s.block.Instrs[idx-1]
-			if _, ok := prev.(*Phi); !ok {
-				s.errorf("Phi instruction follows a non-Phi: %T", prev)
-			}
-		}
-		if ne, np := len(instr.Edges), len(s.block.Preds); ne != np {
-			s.errorf("phi node has %d edges but %d predecessors", ne, np)
-		}
-
-	case *Alloc:
-	case *Call:
-	case *BinOp:
-	case *UnOp:
-	case *MakeClosure:
-	case *MakeChan:
-	case *MakeMap:
-	case *MakeSlice:
-	case *Slice:
-	case *Field:
-	case *FieldAddr:
-	case *IndexAddr:
-	case *Index:
-	case *Select:
-	case *Range:
-	case *TypeAssert:
-	case *Extract:
-	case *Go:
-	case *Defer:
-	case *Send:
-	case *Store:
-	case *MapUpdate:
-	case *Next:
-	case *Lookup:
-	case *Conv:
-	case *ChangeInterface:
-	case *MakeInterface:
-		// TODO(adonovan): implement checks.
-	default:
-		panic(fmt.Sprintf("Unknown instruction type: %T", instr))
-	}
-}
-
-func (s *sanity) checkFinalInstr(idx int, instr Instruction) {
-	switch instr.(type) {
-	case *If:
-		if nsuccs := len(s.block.Succs); nsuccs != 2 {
-			s.errorf("If-terminated block has %d successors; expected 2", nsuccs)
-			return
-		}
-		if s.block.Succs[0] == s.block.Succs[1] {
-			s.errorf("If-instruction has same True, False target blocks: %s", s.block.Succs[0].Name)
-			return
-		}
-
-	case *Jump:
-		if nsuccs := len(s.block.Succs); nsuccs != 1 {
-			s.errorf("Jump-terminated block has %d successors; expected 1", nsuccs)
-			return
-		}
-
-	case *Ret:
-		if nsuccs := len(s.block.Succs); nsuccs != 0 {
-			s.errorf("Ret-terminated block has %d successors; expected none", nsuccs)
-			return
-		}
-		// TODO(adonovan): check number and types of results
-
-	default:
-		s.errorf("non-control flow instruction at end of block")
-	}
-}
-
-func (s *sanity) checkBlock(b *BasicBlock, isEntry bool) {
-	s.block = b
-
-	// Check all blocks are reachable.
-	// (The entry block is always implicitly reachable.)
-	if !isEntry && len(b.Preds) == 0 {
-		s.warnf("unreachable block")
-		if b.Instrs == nil {
-			// Since this block is about to be pruned,
-			// tolerating transient problems in it
-			// simplifies other optimisations.
-			return
-		}
-	}
-
-	// Check predecessor and successor relations are dual.
-	for _, a := range b.Preds {
-		found := false
-		for _, bb := range a.Succs {
-			if bb == b {
-				found = true
-				break
-			}
-		}
-		if !found {
-			s.errorf("expected successor edge in predecessor %s; found only: %s", a.Name, blockNames(a.Succs))
-		}
-	}
-	for _, c := range b.Succs {
-		found := false
-		for _, bb := range c.Preds {
-			if bb == b {
-				found = true
-				break
-			}
-		}
-		if !found {
-			s.errorf("expected predecessor edge in successor %s; found only: %s", c.Name, blockNames(c.Preds))
-		}
-	}
-
-	// Check each instruction is sane.
-	n := len(b.Instrs)
-	if n == 0 {
-		s.errorf("basic block contains no instructions")
-	}
-	for j, instr := range b.Instrs {
-		if b2 := instr.Block(); b2 == nil {
-			s.errorf("nil Block() for instruction at index %d", j)
-			continue
-		} else if b2 != b {
-			s.errorf("wrong Block() (%s) for instruction at index %d ", b2.Name, j)
-			continue
-		}
-		if j < n-1 {
-			s.checkInstr(j, instr)
-		} else {
-			s.checkFinalInstr(j, instr)
-		}
-	}
-}
-
-func (s *sanity) checkFunction(fn *Function) bool {
-	// TODO(adonovan): check Function invariants:
-	// - check owning Package (if any) contains this function.
-	// - check params match signature
-	// - check locals are all !Heap
-	// - check transient fields are nil
-	// - check block labels are unique (warning)
-	s.fn = fn
-	if fn.Prog == nil {
-		s.errorf("nil Prog")
-	}
-	for i, b := range fn.Blocks {
-		if b == nil {
-			s.warnf("nil *BasicBlock at f.Blocks[%d]", i)
-			continue
-		}
-		s.checkBlock(b, i == 0)
-	}
-	s.block = nil
-	s.fn = nil
-	return !s.insane
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/ssa.go gcc-4.8.1/libgo/go/exp/ssa/ssa.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/ssa.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/ssa.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,1100 +0,0 @@
-package ssa
-
-// This package defines a high-level intermediate representation for
-// Go programs using static single-assignment (SSA) form.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-	"go/types"
-)
-
-// A Program is a partial or complete Go program converted to SSA form.
-// Each Builder creates and populates a single Program during its
-// lifetime.
-//
-// TODO(adonovan): synthetic methods for promoted methods and for
-// standalone interface methods do not belong to any package.  Make
-// them enumerable here.
-//
-// TODO(adonovan): MethodSets of types other than named types
-// (i.e. anon structs) are not currently accessible, nor are they
-// memoized.  Add a method: MethodSetForType() which looks in the
-// appropriate Package (for methods of named types) or in
-// Program.AnonStructMethods (for methods of anon structs).
-//
-type Program struct {
-	Files    *token.FileSet            // position information for the files of this Program
-	Packages map[string]*Package       // all loaded Packages, keyed by import path
-	Builtins map[types.Object]*Builtin // all built-in functions, keyed by typechecker objects.
-}
-
-// A Package is a single analyzed Go package, containing Members for
-// all package-level functions, variables, constants and types it
-// declares.  These may be accessed directly via Members, or via the
-// type-specific accessor methods Func, Type, Var and Const.
-//
-type Package struct {
-	Prog       *Program          // the owning program
-	Types      *types.Package    // the type checker's package object for this package.
-	ImportPath string            // e.g. "sync/atomic"
-	Pos        token.Pos         // position of an arbitrary file in the package
-	Members    map[string]Member // all exported and unexported members of the package
-	AnonFuncs  []*Function       // all anonymous functions in this package
-	Init       *Function         // the package's (concatenated) init function
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	files []*ast.File // the abstract syntax tree for the files of the package
-}
-
-// A Member is a member of a Go package, implemented by *Literal,
-// *Global, *Function, or *Type; they are created by package-level
-// const, var, func and type declarations respectively.
-//
-type Member interface {
-	Name() string      // the declared name of the package member
-	String() string    // human-readable information about the value
-	Type() types.Type  // the type of the package member
-	ImplementsMember() // dummy method to indicate the "implements" relation.
-}
-
-// An Id identifies the name of a field of a struct type, or the name
-// of a method of an interface or a named type.
-//
-// For exported names, i.e. those beginning with a Unicode upper-case
-// letter, a simple string is unambiguous.
-//
-// However, a method set or struct may contain multiple unexported
-// names with identical spelling that are logically distinct because
-// they originate in different packages.  Unexported names must
-// therefore be disambiguated by their package too.
-//
-// The Pkg field of an Id is therefore nil iff the name is exported.
-//
-// This type is suitable for use as a map key because the equivalence
-// relation == is consistent with identifier equality.
-type Id struct {
-	Pkg  *types.Package
-	Name string
-}
-
-// A MethodSet contains all the methods whose receiver is either T or
-// *T, for some named or struct type T.
-//
-// TODO(adonovan): the client is required to adapt T<=>*T, e.g. when
-// invoking an interface method.  (This could be simplified for the
-// client by having distinct method sets for T and *T, with the SSA
-// Builder generating wrappers as needed, but probably the client is
-// able to do a better job.)  Document the precise rules the client
-// must follow.
-//
-type MethodSet map[Id]*Function
-
-// A Type is a Member of a Package representing the name, underlying
-// type and method set of a named type declared at package scope.
-//
-// The method set contains only concrete methods; it is empty for
-// interface types.
-//
-type Type struct {
-	NamedType *types.NamedType
-	Methods   MethodSet
-}
-
-// An SSA value that can be referenced by an instruction.
-//
-// TODO(adonovan): add methods:
-// - Referrers() []*Instruction // all instructions that refer to this value.
-//
-type Value interface {
-	// Name returns the name of this value, and determines how
-	// this Value appears when used as an operand of an
-	// Instruction.
-	//
-	// This is the same as the source name for Parameters,
-	// Builtins, Functions, Captures, Globals and some Allocs.
-	// For literals, it is a representation of the literal's value
-	// and type.  For all other Values this is the name of the
-	// virtual register defined by the instruction.
-	//
-	// The name of an SSA Value is not semantically significant,
-	// and may not even be unique within a function.
-	Name() string
-
-	// If this value is an Instruction, String returns its
-	// disassembled form; otherwise it returns unspecified
-	// human-readable information about the Value, such as its
-	// kind, name and type.
-	String() string
-
-	// Type returns the type of this value.  Many instructions
-	// (e.g. IndexAddr) change the behaviour depending on the
-	// types of their operands.
-	//
-	// Documented type invariants below (e.g. "Alloc.Type()
-	// returns a *types.Pointer") refer to the underlying type in
-	// the case of NamedTypes.
-	Type() types.Type
-
-	// Dummy method to indicate the "implements" relation.
-	ImplementsValue()
-}
-
-// An Instruction is an SSA instruction that computes a new Value or
-// has some effect.
-//
-// An Instruction that defines a value (e.g. BinOp) also implements
-// the Value interface; an Instruction that only has an effect (e.g. Store)
-// does not.
-//
-// TODO(adonovan): add method:
-// - Operands() []Value  // all Values referenced by this instruction.
-//
-type Instruction interface {
-	// String returns the disassembled form of this value.  e.g.
-	//
-	// Examples of Instructions that define a Value:
-	// e.g.  "x + y"     (BinOp)
-	//       "len([])"   (Call)
-	// Note that the name of the Value is not printed.
-	//
-	// Examples of Instructions that do define (are) Values:
-	// e.g.  "ret x"     (Ret)
-	//       "*y = x"    (Store)
-	//
-	// (This separation is useful for some analyses which
-	// distinguish the operation from the value it
-	// defines. e.g. 'y = local int' is both an allocation of
-	// memory 'local int' and a definition of a pointer y.)
-	String() string
-
-	// Block returns the basic block to which this instruction
-	// belongs.
-	Block() *BasicBlock
-
-	// SetBlock sets the basic block to which this instruction
-	// belongs.
-	SetBlock(*BasicBlock)
-
-	// Dummy method to indicate the "implements" relation.
-	ImplementsInstruction()
-}
-
-// Function represents the parameters, results and code of a function
-// or method.
-//
-// If Blocks is nil, this indicates an external function for which no
-// Go source code is available.  In this case, Captures and Locals
-// will be nil too.  Clients performing whole-program analysis must
-// handle external functions specially.
-//
-// Functions are immutable values; they do not have addresses.
-//
-// Blocks[0] is the function entry point; block order is not otherwise
-// semantically significant, though it may affect the readability of
-// the disassembly.
-//
-// A nested function that refers to one or more lexically enclosing
-// local variables ("free variables") has Capture parameters.  Such
-// functions cannot be called directly but require a value created by
-// MakeClosure which, via its Bindings, supplies values for these
-// parameters.  Captures are always addresses.
-//
-// If the function is a method (Signature.Recv != nil) then the first
-// element of Params is the receiver parameter.
-//
-// Type() returns the function's Signature.
-//
-type Function struct {
-	Name_     string
-	Signature *types.Signature
-
-	Pos       token.Pos // location of the definition
-	Enclosing *Function // enclosing function if anon; nil if global
-	Pkg       *Package  // enclosing package; nil for some synthetic methods
-	Prog      *Program  // enclosing program
-	Params    []*Parameter
-	FreeVars  []*Capture // free variables whose values must be supplied by closure
-	Locals    []*Alloc
-	Blocks    []*BasicBlock // basic blocks of the function; nil => external
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	currentBlock *BasicBlock             // where to emit code
-	objects      map[types.Object]Value  // addresses of local variables
-	results      []*Alloc                // tuple of named results
-	syntax       *funcSyntax             // abstract syntax trees for Go source functions
-	targets      *targets                // linked stack of branch targets
-	lblocks      map[*ast.Object]*lblock // labelled blocks
-}
-
-// An SSA basic block.
-//
-// The final element of Instrs is always an explicit transfer of
-// control (If, Jump or Ret).
-//
-// A block may contain no Instructions only if it is unreachable,
-// i.e. Preds is nil.  Empty blocks are typically pruned.
-//
-// BasicBlocks and their Preds/Succs relation form a (possibly cyclic)
-// graph independent of the SSA Value graph.  It is illegal for
-// multiple edges to exist between the same pair of blocks.
-//
-// The order of Preds and Succs are significant (to Phi and If
-// instructions, respectively).
-//
-type BasicBlock struct {
-	Name         string         // label; no semantic significance
-	Func         *Function      // containing function
-	Instrs       []Instruction  // instructions in order
-	Preds, Succs []*BasicBlock  // predecessors and successors
-	succs2       [2]*BasicBlock // initial space for Succs.
-}
-
-// Pure values ----------------------------------------
-
-// A Capture is a pointer to a lexically enclosing local variable.
-//
-// The referent of a capture is an Alloc or another Capture and is
-// always considered potentially escaping, so Captures are always
-// addresses in the heap, and have pointer types.
-//
-type Capture struct {
-	Outer Value // the Value captured from the enclosing context.
-}
-
-// A Parameter represents an input parameter of a function.
-//
-type Parameter struct {
-	Name_ string
-	Type_ types.Type
-}
-
-// A Literal represents a literal nil, boolean, string or numeric
-// (integer, fraction or complex) value.
-//
-// A literal's underlying Type() can be a basic type, possibly one of
-// the "untyped" types.  A nil literal can have any reference type:
-// interface, map, channel, pointer, slice, or function---but not
-// "untyped nil".
-//
-// All source-level constant expressions are represented by a Literal
-// of equal type and value.
-//
-// Value holds the exact value of the literal, independent of its
-// Type(), using the same representation as package go/types uses for
-// constants.
-//
-// Example printed form:
-// 	42:int
-//	"hello":untyped string
-//	3+4i:MyComplex
-//
-type Literal struct {
-	Type_ types.Type
-	Value interface{}
-}
-
-// A Global is a named Value holding the address of a package-level
-// variable.
-//
-type Global struct {
-	Name_ string
-	Type_ types.Type
-	Pkg   *Package
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	spec *ast.ValueSpec // explained at buildGlobal
-}
-
-// A built-in function, e.g. len.
-//
-// Builtins are immutable values; they do not have addresses.
-//
-// Type() returns an inscrutable *types.builtin.  Built-in functions
-// may have polymorphic or variadic types that are not expressible in
-// Go's type system.
-//
-type Builtin struct {
-	Object *types.Func // canonical types.Universe object for this built-in
-}
-
-// Value-defining instructions  ----------------------------------------
-
-// The Alloc instruction reserves space for a value of the given type,
-// zero-initializes it, and yields its address.
-//
-// Alloc values are always addresses, and have pointer types, so the
-// type of the allocated space is actually indirect(Type()).
-//
-// If Heap is false, Alloc allocates space in the function's
-// activation record (frame); we refer to an Alloc(Heap=false) as a
-// "local" alloc.  Each local Alloc returns the same address each time
-// it is executed within the same activation; the space is
-// re-initialized to zero.
-//
-// If Heap is true, Alloc allocates space in the heap, and returns; we
-// refer to an Alloc(Heap=true) as a "new" alloc.  Each new Alloc
-// returns a different address each time it is executed.
-//
-// When Alloc is applied to a channel, map or slice type, it returns
-// the address of an uninitialized (nil) reference of that kind; store
-// the result of MakeSlice, MakeMap or MakeChan in that location to
-// instantiate these types.
-//
-// Example printed form:
-// 	t0 = local int
-// 	t1 = new int
-//
-type Alloc struct {
-	anInstruction
-	Name_ string
-	Type_ types.Type
-	Heap  bool
-}
-
-// Phi represents an SSA Ï†-node, which combines values that differ
-// across incoming control-flow edges and yields a new value.  Within
-// a block, all Ï†-nodes must appear before all non-Ï† nodes.
-//
-// Example printed form:
-// 	t2 = phi [0.start: t0, 1.if.then: t1, ...]
-//
-type Phi struct {
-	Register
-	Edges []Value // Edges[i] is value for Block().Preds[i]
-}
-
-// Call represents a function or method call.
-//
-// The Call instruction yields the function result, if there is
-// exactly one, or a tuple (empty or len>1) whose components are
-// accessed via Extract.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	t2 = println(t0, t1)
-// 	t4 = t3()
-// 	t7 = invoke t5.Println(...t6)
-//
-type Call struct {
-	Register
-	CallCommon
-}
-
-// BinOp yields the result of binary operation X Op Y.
-//
-// Example printed form:
-// 	t1 = t0 + 1:int
-//
-type BinOp struct {
-	Register
-	// One of:
-	// ADD SUB MUL QUO REM          + - * / %
-	// AND OR XOR SHL SHR AND_NOT   & | ^ << >> &~
-	// EQL LSS GTR NEQ LEQ GEQ      == != < <= < >=
-	Op   token.Token
-	X, Y Value
-}
-
-// UnOp yields the result of Op X.
-// ARROW is channel receive.
-// MUL is pointer indirection (load).
-//
-// If CommaOk and Op=ARROW, the result is a 2-tuple of the value above
-// and a boolean indicating the success of the receive.  The
-// components of the tuple are accessed using Extract.
-//
-// Example printed form:
-// 	t0 = *x
-// 	t2 = <-t1,ok
-//
-type UnOp struct {
-	Register
-	Op      token.Token // One of: NOT SUB ARROW MUL XOR ! - <- * ^
-	X       Value
-	CommaOk bool
-}
-
-// Conv yields the conversion of X to type Type().
-//
-// A conversion is one of the following kinds.  The behaviour of the
-// conversion operator may depend on both Type() and X.Type(), as well
-// as the dynamic value.
-//
-// A '+' indicates that a dynamic representation change may occur.
-// A '-' indicates that the conversion is a value-preserving change
-// to types only.
-//
-// 1. implicit conversions (arising from assignability rules):
-//    - adding/removing a name, same underlying types.
-//    - channel type restriction, possibly adding/removing a name.
-// 2. explicit conversions (in addition to the above):
-//    - changing a name, same underlying types.
-//    - between pointers to identical base types.
-//    + conversions between real numeric types.
-//    + conversions between complex numeric types.
-//    + integer/[]byte/[]rune -> string.
-//    + string -> []byte/[]rune.
-//
-// TODO(adonovan): split into two cases:
-// - rename value (ChangeType)
-// + value to type with different representation (Conv)
-//
-// Conversions of untyped string/number/bool constants to a specific
-// representation are eliminated during SSA construction.
-//
-// Example printed form:
-// 	t1 = convert interface{} <- int (t0)
-//
-type Conv struct {
-	Register
-	X Value
-}
-
-// ChangeInterface constructs a value of one interface type from a
-// value of another interface type known to be assignable to it.
-//
-// Example printed form:
-// 	t1 = change interface interface{} <- I (t0)
-//
-type ChangeInterface struct {
-	Register
-	X Value
-}
-
-// MakeInterface constructs an instance of an interface type from a
-// value and its method-set.
-//
-// To construct the zero value of an interface type T, use:
-// 	&Literal{types.nilType{}, T}
-//
-// Example printed form:
-// 	t1 = make interface interface{} <- int (42:int)
-//
-type MakeInterface struct {
-	Register
-	X       Value
-	Methods MethodSet // method set of (non-interface) X iff converting to interface
-}
-
-// A MakeClosure instruction yields an anonymous function value whose
-// code is Fn and whose lexical capture slots are populated by Bindings.
-//
-// By construction, all captured variables are addresses of variables
-// allocated with 'new', i.e. Alloc(Heap=true).
-//
-// Type() returns a *types.Signature.
-//
-// Example printed form:
-// 	t0 = make closure anon@1.2 [x y z]
-//
-type MakeClosure struct {
-	Register
-	Fn       *Function
-	Bindings []Value // values for each free variable in Fn.FreeVars
-}
-
-// The MakeMap instruction creates a new hash-table-based map object
-// and yields a value of kind map.
-//
-// Type() returns a *types.Map.
-//
-// Example printed form:
-// 	t1 = make map[string]int t0
-//
-type MakeMap struct {
-	Register
-	Reserve Value // initial space reservation; nil => default
-}
-
-// The MakeChan instruction creates a new channel object and yields a
-// value of kind chan.
-//
-// Type() returns a *types.Chan.
-//
-// Example printed form:
-// 	t0 = make chan int 0
-//
-type MakeChan struct {
-	Register
-	Size Value // int; size of buffer; zero => synchronous.
-}
-
-// MakeSlice yields a slice of length Len backed by a newly allocated
-// array of length Cap.
-//
-// Both Len and Cap must be non-nil Values of integer type.
-//
-// (Alloc(types.Array) followed by Slice will not suffice because
-// Alloc can only create arrays of statically known length.)
-//
-// Type() returns a *types.Slice.
-//
-// Example printed form:
-// 	t1 = make slice []string 1:int t0
-//
-type MakeSlice struct {
-	Register
-	Len Value
-	Cap Value
-}
-
-// Slice yields a slice of an existing string, slice or *array X
-// between optional integer bounds Low and High.
-//
-// Type() returns string if the type of X was string, otherwise a
-// *types.Slice with the same element type as X.
-//
-// Example printed form:
-// 	t1 = slice t0[1:]
-//
-type Slice struct {
-	Register
-	X         Value // slice, string, or *array
-	Low, High Value // either may be nil
-}
-
-// FieldAddr yields the address of Field of *struct  X.
-//
-// The field is identified by its index within the field list of the
-// struct type of X.
-//
-// Type() returns a *types.Pointer.
-//
-// Example printed form:
-// 	t1 = &t0.name [#1]
-//
-type FieldAddr struct {
-	Register
-	X     Value // *struct
-	Field int   // index into X.Type().(*types.Struct).Fields
-}
-
-// Field yields the Field of struct X.
-//
-// The field is identified by its index within the field list of the
-// struct type of X; by using numeric indices we avoid ambiguity of
-// package-local identifiers and permit compact representations.
-//
-// Example printed form:
-// 	t1 = t0.name [#1]
-//
-type Field struct {
-	Register
-	X     Value // struct
-	Field int   // index into X.Type().(*types.Struct).Fields
-}
-
-// IndexAddr yields the address of the element at index Index of
-// collection X.  Index is an integer expression.
-//
-// The elements of maps and strings are not addressable; use Lookup or
-// MapUpdate instead.
-//
-// Type() returns a *types.Pointer.
-//
-// Example printed form:
-// 	t2 = &t0[t1]
-//
-type IndexAddr struct {
-	Register
-	X     Value // slice or *array,
-	Index Value // numeric index
-}
-
-// Index yields element Index of array X.
-//
-// TODO(adonovan): permit X to have type slice.
-// Currently this requires IndexAddr followed by Load.
-//
-// Example printed form:
-// 	t2 = t0[t1]
-//
-type Index struct {
-	Register
-	X     Value // array
-	Index Value // integer index
-}
-
-// Lookup yields element Index of collection X, a map or string.
-// Index is an integer expression if X is a string or the appropriate
-// key type if X is a map.
-//
-// If CommaOk, the result is a 2-tuple of the value above and a
-// boolean indicating the result of a map membership test for the key.
-// The components of the tuple are accessed using Extract.
-//
-// Example printed form:
-// 	t2 = t0[t1]
-// 	t5 = t3[t4],ok
-//
-type Lookup struct {
-	Register
-	X       Value // string or map
-	Index   Value // numeric or key-typed index
-	CommaOk bool  // return a value,ok pair
-}
-
-// SelectState is a helper for Select.
-// It represents one goal state and its corresponding communication.
-//
-type SelectState struct {
-	Dir  ast.ChanDir // direction of case
-	Chan Value       // channel to use (for send or receive)
-	Send Value       // value to send (for send)
-}
-
-// Select tests whether (or blocks until) one or more of the specified
-// sent or received states is entered.
-//
-// It returns a triple (index int, recv ?, recvOk bool) whose
-// components, described below, must be accessed via the Extract
-// instruction.
-//
-// If Blocking, select waits until exactly one state holds, i.e. a
-// channel becomes ready for the designated operation of sending or
-// receiving; select chooses one among the ready states
-// pseudorandomly, performs the send or receive operation, and sets
-// 'index' to the index of the chosen channel.
-//
-// If !Blocking, select doesn't block if no states hold; instead it
-// returns immediately with index equal to -1.
-//
-// If the chosen channel was used for a receive, 'recv' is set to the
-// received value; Otherwise it is unspecified.  recv has no useful
-// type since it is conceptually the union of all possible received
-// values.
-//
-// The third component of the triple, recvOk, is a boolean whose value
-// is true iff the selected operation was a receive and the receive
-// successfully yielded a value.
-//
-// Example printed form:
-// 	t3 = select nonblocking [<-t0, t1<-t2, ...]
-// 	t4 = select blocking []
-//
-type Select struct {
-	Register
-	States   []SelectState
-	Blocking bool
-}
-
-// Range yields an iterator over the domain and range of X.
-// Elements are accessed via Next.
-//
-// Type() returns a *types.Result (tuple type).
-//
-// Example printed form:
-// 	t0 = range "hello":string
-//
-type Range struct {
-	Register
-	X Value // array, *array, slice, string, map or chan
-}
-
-// Next reads and advances the iterator Iter and returns a 3-tuple
-// value (ok, k, v).  If the iterator is not exhausted, ok is true and
-// k and v are the next elements of the domain and range,
-// respectively.  Otherwise ok is false and k and v are undefined.
-//
-// For channel iterators, k is the received value and v is always
-// undefined.
-//
-// Components of the tuple are accessed using Extract.
-//
-// Type() returns a *types.Result (tuple type).
-//
-// Example printed form:
-// 	t1 = next t0
-//
-type Next struct {
-	Register
-	Iter Value
-}
-
-// TypeAssert tests whether interface value X has type
-// AssertedType.
-//
-// If CommaOk: on success it returns a pair (v, true) where v is a
-// copy of value X; on failure it returns (z, false) where z is the
-// zero value of that type.  The components of the pair must be
-// accessed using the Extract instruction.
-//
-// If !CommaOk, on success it returns just the single value v; on
-// failure it panics.
-//
-// Type() reflects the actual type of the result, possibly a pair
-// (types.Result); AssertedType is the asserted type.
-//
-// Example printed form:
-// 	t1 = typeassert t0.(int)
-// 	t3 = typeassert,ok t2.(T)
-//
-type TypeAssert struct {
-	Register
-	X            Value
-	AssertedType types.Type
-	CommaOk      bool
-}
-
-// Extract yields component Index of Tuple.
-//
-// This is used to access the results of instructions with multiple
-// return values, such as Call, TypeAssert, Next, UnOp(ARROW) and
-// IndexExpr(Map).
-//
-// Example printed form:
-// 	t1 = extract t0 #1
-//
-type Extract struct {
-	Register
-	Tuple Value
-	Index int
-}
-
-// Instructions executed for effect.  They do not yield a value. --------------------
-
-// Jump transfers control to the sole successor of its owning block.
-//
-// A Jump instruction must be the last instruction of its containing
-// BasicBlock.
-//
-// Example printed form:
-// 	jump done
-//
-type Jump struct {
-	anInstruction
-}
-
-// The If instruction transfers control to one of the two successors
-// of its owning block, depending on the boolean Cond: the first if
-// true, the second if false.
-//
-// An If instruction must be the last instruction of its containing
-// BasicBlock.
-//
-// Example printed form:
-// 	if t0 goto done else body
-//
-type If struct {
-	anInstruction
-	Cond Value
-}
-
-// Ret returns values and control back to the calling function.
-//
-// len(Results) is always equal to the number of results in the
-// function's signature.  A source-level 'return' statement with no
-// operands in a multiple-return value function is desugared to make
-// the results explicit.
-//
-// If len(Results) > 1, Ret returns a tuple value with the specified
-// components which the caller must access using Extract instructions.
-//
-// There is no instruction to return a ready-made tuple like those
-// returned by a "value,ok"-mode TypeAssert, Lookup or UnOp(ARROW) or
-// a tail-call to a function with multiple result parameters.
-// TODO(adonovan): consider defining one; but: dis- and re-assembling
-// the tuple is unavoidable if assignability conversions are required
-// on the components.
-//
-// Ret must be the last instruction of its containing BasicBlock.
-// Such a block has no successors.
-//
-// Example printed form:
-// 	ret
-// 	ret nil:I, 2:int
-//
-type Ret struct {
-	anInstruction
-	Results []Value
-}
-
-// Go creates a new goroutine and calls the specified function
-// within it.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	go println(t0, t1)
-// 	go t3()
-// 	go invoke t5.Println(...t6)
-//
-type Go struct {
-	anInstruction
-	CallCommon
-}
-
-// Defer pushes the specified call onto a stack of functions
-// to be called immediately prior to returning from the
-// current function.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	defer println(t0, t1)
-// 	defer t3()
-// 	defer invoke t5.Println(...t6)
-//
-type Defer struct {
-	anInstruction
-	CallCommon
-}
-
-// Send sends X on channel Chan.
-//
-// Example printed form:
-// 	send t0 <- t1
-//
-type Send struct {
-	anInstruction
-	Chan, X Value
-}
-
-// Store stores Val at address Addr.
-// Stores can be of arbitrary types.
-//
-// Example printed form:
-// 	*x = y
-//
-type Store struct {
-	anInstruction
-	Addr Value
-	Val  Value
-}
-
-// MapUpdate updates the association of Map[Key] to Value.
-//
-// Example printed form:
-//	t0[t1] = t2
-//
-type MapUpdate struct {
-	anInstruction
-	Map   Value
-	Key   Value
-	Value Value
-}
-
-// Embeddable mix-ins used for common parts of other structs. --------------------
-
-// Register is a mix-in embedded by all SSA values that are also
-// instructions, i.e. virtual registers, and provides implementations
-// of the Value interface's Name() and Type() methods: the name is
-// simply a numbered register (e.g. "t0") and the type is the Type_
-// field.
-//
-// Temporary names are automatically assigned to each Register on
-// completion of building a function in SSA form.
-//
-// Clients must not assume that the 'id' value (and the Name() derived
-// from it) is unique within a function.  As always in this API,
-// semantics are determined only by identity; names exist only to
-// facilitate debugging.
-//
-type Register struct {
-	anInstruction
-	num   int        // "name" of virtual register, e.g. "t0".  Not guaranteed unique.
-	Type_ types.Type // type of virtual register
-}
-
-// AnInstruction is a mix-in embedded by all Instructions.
-// It provides the implementations of the Block and SetBlock methods.
-type anInstruction struct {
-	Block_ *BasicBlock // the basic block of this instruction
-}
-
-// CallCommon is a mix-in embedded by Go, Defer and Call to hold the
-// common parts of a function or method call.
-//
-// Each CallCommon exists in one of two modes, function call and
-// interface method invocation, or "call" and "invoke" for short.
-//
-// 1. "call" mode: when Recv is nil, a CallCommon represents an
-// ordinary function call of the value in Func.
-//
-// In the common case in which Func is a *Function, this indicates a
-// statically dispatched call to a package-level function, an
-// anonymous function, or a method of a named type.  Also statically
-// dispatched, but less common, Func may be a *MakeClosure, indicating
-// an immediately applied function literal with free variables.  Any
-// other Value of Func indicates a dynamically dispatched function
-// call.
-//
-// Args contains the arguments to the call.  If Func is a method,
-// Args[0] contains the receiver parameter.  Recv and Method are not
-// used in this mode.
-//
-// Example printed form:
-// 	t2 = println(t0, t1)
-// 	go t3()
-//	defer t5(...t6)
-//
-// 2. "invoke" mode: when Recv is non-nil, a CallCommon represents a
-// dynamically dispatched call to an interface method.  In this
-// mode, Recv is the interface value and Method is the index of the
-// method within the interface type of the receiver.
-//
-// Recv is implicitly supplied to the concrete method implementation
-// as the receiver parameter; in other words, Args[0] holds not the
-// receiver but the first true argument.  Func is not used in this
-// mode.
-//
-// Example printed form:
-// 	t1 = invoke t0.String()
-// 	go invoke t3.Run(t2)
-// 	defer invoke t4.Handle(...t5)
-//
-// In both modes, HasEllipsis is true iff the last element of Args is
-// a slice value containing zero or more arguments to a variadic
-// function.  (This is not semantically significant since the type of
-// the called function is sufficient to determine this, but it aids
-// readability of the printed form.)
-//
-type CallCommon struct {
-	Recv        Value     // receiver, iff interface method invocation
-	Method      int       // index of interface method within Recv.Type().(*types.Interface).Methods
-	Func        Value     // target of call, iff function call
-	Args        []Value   // actual parameters, including receiver in invoke mode
-	HasEllipsis bool      // true iff last Args is a slice  (needed?)
-	Pos         token.Pos // position of call expression
-}
-
-func (v *Builtin) Type() types.Type { return v.Object.GetType() }
-func (v *Builtin) Name() string     { return v.Object.GetName() }
-
-func (v *Capture) Type() types.Type { return v.Outer.Type() }
-func (v *Capture) Name() string     { return v.Outer.Name() }
-
-func (v *Global) Type() types.Type { return v.Type_ }
-func (v *Global) Name() string     { return v.Name_ }
-
-func (v *Function) Name() string     { return v.Name_ }
-func (v *Function) Type() types.Type { return v.Signature }
-
-func (v *Parameter) Type() types.Type { return v.Type_ }
-func (v *Parameter) Name() string     { return v.Name_ }
-
-func (v *Alloc) Type() types.Type { return v.Type_ }
-func (v *Alloc) Name() string     { return v.Name_ }
-
-func (v *Register) Type() types.Type       { return v.Type_ }
-func (v *Register) setType(typ types.Type) { v.Type_ = typ }
-func (v *Register) Name() string           { return fmt.Sprintf("t%d", v.num) }
-func (v *Register) setNum(num int)         { v.num = num }
-
-func (v *anInstruction) Block() *BasicBlock         { return v.Block_ }
-func (v *anInstruction) SetBlock(block *BasicBlock) { v.Block_ = block }
-
-func (ms *Type) Type() types.Type { return ms.NamedType }
-func (ms *Type) String() string   { return ms.Name() }
-func (ms *Type) Name() string     { return ms.NamedType.Obj.Name }
-
-func (p *Package) Name() string { return p.Types.Name }
-
-// Func returns the package-level function of the specified name,
-// or nil if not found.
-//
-func (p *Package) Func(name string) (f *Function) {
-	f, _ = p.Members[name].(*Function)
-	return
-}
-
-// Var returns the package-level variable of the specified name,
-// or nil if not found.
-//
-func (p *Package) Var(name string) (g *Global) {
-	g, _ = p.Members[name].(*Global)
-	return
-}
-
-// Const returns the package-level constant of the specified name,
-// or nil if not found.
-//
-func (p *Package) Const(name string) (l *Literal) {
-	l, _ = p.Members[name].(*Literal)
-	return
-}
-
-// Type returns the package-level type of the specified name,
-// or nil if not found.
-//
-func (p *Package) Type(name string) (t *Type) {
-	t, _ = p.Members[name].(*Type)
-	return
-}
-
-// "Implements" relation boilerplate.
-// Don't try to factor this using promotion and mix-ins: the long-hand
-// form serves as better documentation, including in godoc.
-
-func (*Alloc) ImplementsValue()           {}
-func (*BinOp) ImplementsValue()           {}
-func (*Builtin) ImplementsValue()         {}
-func (*Call) ImplementsValue()            {}
-func (*Capture) ImplementsValue()         {}
-func (*ChangeInterface) ImplementsValue() {}
-func (*Conv) ImplementsValue()            {}
-func (*Extract) ImplementsValue()         {}
-func (*Field) ImplementsValue()           {}
-func (*FieldAddr) ImplementsValue()       {}
-func (*Function) ImplementsValue()        {}
-func (*Global) ImplementsValue()          {}
-func (*Index) ImplementsValue()           {}
-func (*IndexAddr) ImplementsValue()       {}
-func (*Literal) ImplementsValue()         {}
-func (*Lookup) ImplementsValue()          {}
-func (*MakeChan) ImplementsValue()        {}
-func (*MakeClosure) ImplementsValue()     {}
-func (*MakeInterface) ImplementsValue()   {}
-func (*MakeMap) ImplementsValue()         {}
-func (*MakeSlice) ImplementsValue()       {}
-func (*Next) ImplementsValue()            {}
-func (*Parameter) ImplementsValue()       {}
-func (*Phi) ImplementsValue()             {}
-func (*Range) ImplementsValue()           {}
-func (*Select) ImplementsValue()          {}
-func (*Slice) ImplementsValue()           {}
-func (*TypeAssert) ImplementsValue()      {}
-func (*UnOp) ImplementsValue()            {}
-
-func (*Function) ImplementsMember() {}
-func (*Global) ImplementsMember()   {}
-func (*Literal) ImplementsMember()  {}
-func (*Type) ImplementsMember()     {}
-
-func (*Alloc) ImplementsInstruction()           {}
-func (*BinOp) ImplementsInstruction()           {}
-func (*Call) ImplementsInstruction()            {}
-func (*ChangeInterface) ImplementsInstruction() {}
-func (*Conv) ImplementsInstruction()            {}
-func (*Defer) ImplementsInstruction()           {}
-func (*Extract) ImplementsInstruction()         {}
-func (*Field) ImplementsInstruction()           {}
-func (*FieldAddr) ImplementsInstruction()       {}
-func (*Go) ImplementsInstruction()              {}
-func (*If) ImplementsInstruction()              {}
-func (*Index) ImplementsInstruction()           {}
-func (*IndexAddr) ImplementsInstruction()       {}
-func (*Jump) ImplementsInstruction()            {}
-func (*Lookup) ImplementsInstruction()          {}
-func (*MakeChan) ImplementsInstruction()        {}
-func (*MakeClosure) ImplementsInstruction()     {}
-func (*MakeInterface) ImplementsInstruction()   {}
-func (*MakeMap) ImplementsInstruction()         {}
-func (*MakeSlice) ImplementsInstruction()       {}
-func (*MapUpdate) ImplementsInstruction()       {}
-func (*Next) ImplementsInstruction()            {}
-func (*Phi) ImplementsInstruction()             {}
-func (*Range) ImplementsInstruction()           {}
-func (*Ret) ImplementsInstruction()             {}
-func (*Select) ImplementsInstruction()          {}
-func (*Send) ImplementsInstruction()            {}
-func (*Slice) ImplementsInstruction()           {}
-func (*Store) ImplementsInstruction()           {}
-func (*TypeAssert) ImplementsInstruction()      {}
-func (*UnOp) ImplementsInstruction()            {}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/util.go gcc-4.8.1/libgo/go/exp/ssa/util.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/util.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/ssa/util.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,172 +0,0 @@
-package ssa
-
-// This file defines a number of miscellaneous utility functions.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/types"
-)
-
-func unreachable() {
-	panic("unreachable")
-}
-
-//// AST utilities
-
-// noparens returns e with any enclosing parentheses stripped.
-func noparens(e ast.Expr) ast.Expr {
-	for {
-		p, ok := e.(*ast.ParenExpr)
-		if !ok {
-			break
-		}
-		e = p.X
-	}
-	return e
-}
-
-// isBlankIdent returns true iff e is an Ident with name "_".
-// They have no associated types.Object, and thus no type.
-//
-// TODO(gri): consider making typechecker not treat them differently.
-// It's one less thing for clients like us to worry about.
-//
-func isBlankIdent(e ast.Expr) bool {
-	id, ok := e.(*ast.Ident)
-	return ok && id.Name == "_"
-}
-
-//// Type utilities.  Some of these belong in go/types.
-
-// underlyingType returns the underlying type of typ.
-// TODO(gri): this is a copy of go/types.underlying; export that function.
-//
-func underlyingType(typ types.Type) types.Type {
-	if typ, ok := typ.(*types.NamedType); ok {
-		return typ.Underlying // underlying types are never NamedTypes
-	}
-	if typ == nil {
-		panic("underlyingType(nil)")
-	}
-	return typ
-}
-
-// isPointer returns true for types whose underlying type is a pointer.
-func isPointer(typ types.Type) bool {
-	if nt, ok := typ.(*types.NamedType); ok {
-		typ = nt.Underlying
-	}
-	_, ok := typ.(*types.Pointer)
-	return ok
-}
-
-// pointer(typ) returns the type that is a pointer to typ.
-func pointer(typ types.Type) *types.Pointer {
-	return &types.Pointer{Base: typ}
-}
-
-// indirect(typ) assumes that typ is a pointer type,
-// or named alias thereof, and returns its base type.
-// Panic ensures if it is not a pointer.
-//
-func indirectType(ptr types.Type) types.Type {
-	if v, ok := underlyingType(ptr).(*types.Pointer); ok {
-		return v.Base
-	}
-	// When debugging it is convenient to comment out this line
-	// and let it continue to print the (illegal) SSA form.
-	panic("indirect() of non-pointer type: " + ptr.String())
-	return nil
-}
-
-// deref returns a pointer's base type; otherwise it returns typ.
-func deref(typ types.Type) types.Type {
-	if typ, ok := underlyingType(typ).(*types.Pointer); ok {
-		return typ.Base
-	}
-	return typ
-}
-
-// methodIndex returns the method (and its index) named id within the
-// method table methods of named or interface type typ.  If not found,
-// panic ensues.
-//
-func methodIndex(typ types.Type, methods []*types.Method, id Id) (i int, m *types.Method) {
-	for i, m = range methods {
-		if IdFromQualifiedName(m.QualifiedName) == id {
-			return
-		}
-	}
-	panic(fmt.Sprint("method not found: ", id, " in interface ", typ))
-}
-
-// objKind returns the syntactic category of the named entity denoted by obj.
-func objKind(obj types.Object) ast.ObjKind {
-	switch obj.(type) {
-	case *types.Package:
-		return ast.Pkg
-	case *types.TypeName:
-		return ast.Typ
-	case *types.Const:
-		return ast.Con
-	case *types.Var:
-		return ast.Var
-	case *types.Func:
-		return ast.Fun
-	}
-	panic(fmt.Sprintf("unexpected Object type: %T", obj))
-}
-
-// DefaultType returns the default "typed" type for an "untyped" type;
-// it returns the incoming type for all other types. If there is no
-// corresponding untyped type, the result is types.Typ[types.Invalid].
-//
-// Exported to exp/ssa/interp.
-//
-// TODO(gri): this is a copy of go/types.defaultType; export that function.
-//
-func DefaultType(typ types.Type) types.Type {
-	if t, ok := typ.(*types.Basic); ok {
-		k := types.Invalid
-		switch t.Kind {
-		// case UntypedNil:
-		//      There is no default type for nil. For a good error message,
-		//      catch this case before calling this function.
-		case types.UntypedBool:
-			k = types.Bool
-		case types.UntypedInt:
-			k = types.Int
-		case types.UntypedRune:
-			k = types.Rune
-		case types.UntypedFloat:
-			k = types.Float64
-		case types.UntypedComplex:
-			k = types.Complex128
-		case types.UntypedString:
-			k = types.String
-		}
-		typ = types.Typ[k]
-	}
-	return typ
-}
-
-// makeId returns the Id (name, pkg) if the name is exported or
-// (name, nil) otherwise.
-//
-func makeId(name string, pkg *types.Package) (id Id) {
-	id.Name = name
-	if !ast.IsExported(name) {
-		id.Pkg = pkg
-	}
-	return
-}
-
-// IdFromQualifiedName returns the Id (qn.Name, qn.Pkg) if qn is an
-// exported name or (qn.Name, nil) otherwise.
-//
-// Exported to exp/ssa/interp.
-//
-func IdFromQualifiedName(qn types.QualifiedName) Id {
-	return makeId(qn.Name, qn.Pkg)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/utf8string/string.go gcc-4.8.1/libgo/go/exp/utf8string/string.go
--- gcc-4.8.1.orig/libgo/go/exp/utf8string/string.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/utf8string/string.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,203 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package utf8string provides an efficient way to index strings by rune rather than by byte.
-package utf8string
-
-import (
-	"errors"
-	"unicode/utf8"
-)
-
-// String wraps a regular string with a small structure that provides more
-// efficient indexing by code point index, as opposed to byte index.
-// Scanning incrementally forwards or backwards is O(1) per index operation
-// (although not as fast a range clause going forwards).  Random access is
-// O(N) in the length of the string, but the overhead is less than always
-// scanning from the beginning.
-// If the string is ASCII, random access is O(1).
-// Unlike the built-in string type, String has internal mutable state and
-// is not thread-safe.
-type String struct {
-	str      string
-	numRunes int
-	// If width > 0, the rune at runePos starts at bytePos and has the specified width.
-	width    int
-	bytePos  int
-	runePos  int
-	nonASCII int // byte index of the first non-ASCII rune.
-}
-
-// NewString returns a new UTF-8 string with the provided contents.
-func NewString(contents string) *String {
-	return new(String).Init(contents)
-}
-
-// Init initializes an existing String to hold the provided contents.
-// It returns a pointer to the initialized String.
-func (s *String) Init(contents string) *String {
-	s.str = contents
-	s.bytePos = 0
-	s.runePos = 0
-	for i := 0; i < len(contents); i++ {
-		if contents[i] >= utf8.RuneSelf {
-			// Not ASCII.
-			s.numRunes = utf8.RuneCountInString(contents)
-			_, s.width = utf8.DecodeRuneInString(contents)
-			s.nonASCII = i
-			return s
-		}
-	}
-	// ASCII is simple.  Also, the empty string is ASCII.
-	s.numRunes = len(contents)
-	s.width = 0
-	s.nonASCII = len(contents)
-	return s
-}
-
-// String returns the contents of the String.  This method also means the
-// String is directly printable by fmt.Print.
-func (s *String) String() string {
-	return s.str
-}
-
-// RuneCount returns the number of runes (Unicode code points) in the String.
-func (s *String) RuneCount() int {
-	return s.numRunes
-}
-
-// IsASCII returns a boolean indicating whether the String contains only ASCII bytes.
-func (s *String) IsASCII() bool {
-	return s.width == 0
-}
-
-// Slice returns the string sliced at rune positions [i:j].
-func (s *String) Slice(i, j int) string {
-	// ASCII is easy.  Let the compiler catch the indexing error if there is one.
-	if j < s.nonASCII {
-		return s.str[i:j]
-	}
-	if i < 0 || j > s.numRunes || i > j {
-		panic(sliceOutOfRange)
-	}
-	if i == j {
-		return ""
-	}
-	// For non-ASCII, after At(i), bytePos is always the position of the indexed character.
-	var low, high int
-	switch {
-	case i < s.nonASCII:
-		low = i
-	case i == s.numRunes:
-		low = len(s.str)
-	default:
-		s.At(i)
-		low = s.bytePos
-	}
-	switch {
-	case j == s.numRunes:
-		high = len(s.str)
-	default:
-		s.At(j)
-		high = s.bytePos
-	}
-	return s.str[low:high]
-}
-
-// At returns the rune with index i in the String.  The sequence of runes is the same
-// as iterating over the contents with a "for range" clause.
-func (s *String) At(i int) rune {
-	// ASCII is easy.  Let the compiler catch the indexing error if there is one.
-	if i < s.nonASCII {
-		return rune(s.str[i])
-	}
-
-	// Now we do need to know the index is valid.
-	if i < 0 || i >= s.numRunes {
-		panic(outOfRange)
-	}
-
-	var r rune
-
-	// Five easy common cases: within 1 spot of bytePos/runePos, or the beginning, or the end.
-	// With these cases, all scans from beginning or end work in O(1) time per rune.
-	switch {
-
-	case i == s.runePos-1: // backing up one rune
-		r, s.width = utf8.DecodeLastRuneInString(s.str[0:s.bytePos])
-		s.runePos = i
-		s.bytePos -= s.width
-		return r
-	case i == s.runePos+1: // moving ahead one rune
-		s.runePos = i
-		s.bytePos += s.width
-		fallthrough
-	case i == s.runePos:
-		r, s.width = utf8.DecodeRuneInString(s.str[s.bytePos:])
-		return r
-	case i == 0: // start of string
-		r, s.width = utf8.DecodeRuneInString(s.str)
-		s.runePos = 0
-		s.bytePos = 0
-		return r
-
-	case i == s.numRunes-1: // last rune in string
-		r, s.width = utf8.DecodeLastRuneInString(s.str)
-		s.runePos = i
-		s.bytePos = len(s.str) - s.width
-		return r
-	}
-
-	// We need to do a linear scan.  There are three places to start from:
-	// 1) The beginning
-	// 2) bytePos/runePos.
-	// 3) The end
-	// Choose the closest in rune count, scanning backwards if necessary.
-	forward := true
-	if i < s.runePos {
-		// Between beginning and pos.  Which is closer?
-		// Since both i and runePos are guaranteed >= nonASCII, that's the
-		// lowest location we need to start from.
-		if i < (s.runePos-s.nonASCII)/2 {
-			// Scan forward from beginning
-			s.bytePos, s.runePos = s.nonASCII, s.nonASCII
-		} else {
-			// Scan backwards from where we are
-			forward = false
-		}
-	} else {
-		// Between pos and end.  Which is closer?
-		if i-s.runePos < (s.numRunes-s.runePos)/2 {
-			// Scan forward from pos
-		} else {
-			// Scan backwards from end
-			s.bytePos, s.runePos = len(s.str), s.numRunes
-			forward = false
-		}
-	}
-	if forward {
-		// TODO: Is it much faster to use a range loop for this scan?
-		for {
-			r, s.width = utf8.DecodeRuneInString(s.str[s.bytePos:])
-			if s.runePos == i {
-				break
-			}
-			s.runePos++
-			s.bytePos += s.width
-		}
-	} else {
-		for {
-			r, s.width = utf8.DecodeLastRuneInString(s.str[0:s.bytePos])
-			s.runePos--
-			s.bytePos -= s.width
-			if s.runePos == i {
-				break
-			}
-		}
-	}
-	return r
-}
-
-var outOfRange = errors.New("utf8.String: index out of range")
-var sliceOutOfRange = errors.New("utf8.String: slice index out of range")
diff -Naur gcc-4.8.1.orig/libgo/go/exp/utf8string/string_test.go gcc-4.8.1/libgo/go/exp/utf8string/string_test.go
--- gcc-4.8.1.orig/libgo/go/exp/utf8string/string_test.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/utf8string/string_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,123 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package utf8string
-
-import (
-	"math/rand"
-	"testing"
-	"unicode/utf8"
-)
-
-var testStrings = []string{
-	"",
-	"abcd",
-	"â˜ºâ˜»â˜¹",
-	"æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©",
-	"æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©",
-	"\x80\x80\x80\x80",
-}
-
-func TestScanForwards(t *testing.T) {
-	for _, s := range testStrings {
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for i, expect := range runes {
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func TestScanBackwards(t *testing.T) {
-	for _, s := range testStrings {
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for i := len(runes) - 1; i >= 0; i-- {
-			expect := runes[i]
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func randCount() int {
-	if testing.Short() {
-		return 100
-	}
-	return 100000
-}
-
-func TestRandomAccess(t *testing.T) {
-	for _, s := range testStrings {
-		if len(s) == 0 {
-			continue
-		}
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for j := 0; j < randCount(); j++ {
-			i := rand.Intn(len(runes))
-			expect := runes[i]
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func TestRandomSliceAccess(t *testing.T) {
-	for _, s := range testStrings {
-		if len(s) == 0 || s[0] == '\x80' { // the bad-UTF-8 string fools this simple test
-			continue
-		}
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for k := 0; k < randCount(); k++ {
-			i := rand.Intn(len(runes))
-			j := rand.Intn(len(runes) + 1)
-			if i > j { // include empty strings
-				continue
-			}
-			expect := string(runes[i:j])
-			got := str.Slice(i, j)
-			if got != expect {
-				t.Errorf("%s[%d:%d]: expected %q got %q", s, i, j, expect, got)
-			}
-		}
-	}
-}
-
-func TestLimitSliceAccess(t *testing.T) {
-	for _, s := range testStrings {
-		str := NewString(s)
-		if str.Slice(0, 0) != "" {
-			t.Error("failure with empty slice at beginning")
-		}
-		nr := utf8.RuneCountInString(s)
-		if str.Slice(nr, nr) != "" {
-			t.Error("failure with empty slice at end")
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify.go gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify.go
--- gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify.go	2012-01-13 05:11:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,572 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-// Package winfsnotify allows the user to receive
-// file system event notifications on Windows.
-package winfsnotify
-
-import (
-	"errors"
-	"fmt"
-	"os"
-	"path/filepath"
-	"runtime"
-	"syscall"
-	"unsafe"
-)
-
-// Event is the type of the notification messages
-// received on the watcher's Event channel.
-type Event struct {
-	Mask   uint32 // Mask of events
-	Cookie uint32 // Unique cookie associating related events (for rename)
-	Name   string // File name (optional)
-}
-
-const (
-	opAddWatch = iota
-	opRemoveWatch
-)
-
-const (
-	provisional uint64 = 1 << (32 + iota)
-)
-
-type input struct {
-	op    int
-	path  string
-	flags uint32
-	reply chan error
-}
-
-type inode struct {
-	handle syscall.Handle
-	volume uint32
-	index  uint64
-}
-
-type watch struct {
-	ov     syscall.Overlapped
-	ino    *inode            // i-number
-	path   string            // Directory path
-	mask   uint64            // Directory itself is being watched with these notify flags
-	names  map[string]uint64 // Map of names being watched and their notify flags
-	rename string            // Remembers the old name while renaming a file
-	buf    [4096]byte
-}
-
-type indexMap map[uint64]*watch
-type watchMap map[uint32]indexMap
-
-// A Watcher waits for and receives event notifications
-// for a specific set of files and directories.
-type Watcher struct {
-	port     syscall.Handle // Handle to completion port
-	watches  watchMap       // Map of watches (key: i-number)
-	input    chan *input    // Inputs to the reader are sent on this channel
-	Event    chan *Event    // Events are returned on this channel
-	Error    chan error     // Errors are sent on this channel
-	isClosed bool           // Set to true when Close() is first called
-	quit     chan chan<- error
-	cookie   uint32
-}
-
-// NewWatcher creates and returns a Watcher.
-func NewWatcher() (*Watcher, error) {
-	port, e := syscall.CreateIoCompletionPort(syscall.InvalidHandle, 0, 0, 0)
-	if e != nil {
-		return nil, os.NewSyscallError("CreateIoCompletionPort", e)
-	}
-	w := &Watcher{
-		port:    port,
-		watches: make(watchMap),
-		input:   make(chan *input, 1),
-		Event:   make(chan *Event, 50),
-		Error:   make(chan error),
-		quit:    make(chan chan<- error, 1),
-	}
-	go w.readEvents()
-	return w, nil
-}
-
-// Close closes a Watcher.
-// It sends a message to the reader goroutine to quit and removes all watches
-// associated with the watcher.
-func (w *Watcher) Close() error {
-	if w.isClosed {
-		return nil
-	}
-	w.isClosed = true
-
-	// Send "quit" message to the reader goroutine
-	ch := make(chan error)
-	w.quit <- ch
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-ch
-}
-
-// AddWatch adds path to the watched file set.
-func (w *Watcher) AddWatch(path string, flags uint32) error {
-	if w.isClosed {
-		return errors.New("watcher already closed")
-	}
-	in := &input{
-		op:    opAddWatch,
-		path:  filepath.Clean(path),
-		flags: flags,
-		reply: make(chan error),
-	}
-	w.input <- in
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-in.reply
-}
-
-// Watch adds path to the watched file set, watching all events.
-func (w *Watcher) Watch(path string) error {
-	return w.AddWatch(path, FS_ALL_EVENTS)
-}
-
-// RemoveWatch removes path from the watched file set.
-func (w *Watcher) RemoveWatch(path string) error {
-	in := &input{
-		op:    opRemoveWatch,
-		path:  filepath.Clean(path),
-		reply: make(chan error),
-	}
-	w.input <- in
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-in.reply
-}
-
-func (w *Watcher) wakeupReader() error {
-	e := syscall.PostQueuedCompletionStatus(w.port, 0, 0, nil)
-	if e != nil {
-		return os.NewSyscallError("PostQueuedCompletionStatus", e)
-	}
-	return nil
-}
-
-func getDir(pathname string) (dir string, err error) {
-	attr, e := syscall.GetFileAttributes(syscall.StringToUTF16Ptr(pathname))
-	if e != nil {
-		return "", os.NewSyscallError("GetFileAttributes", e)
-	}
-	if attr&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
-		dir = pathname
-	} else {
-		dir, _ = filepath.Split(pathname)
-		dir = filepath.Clean(dir)
-	}
-	return
-}
-
-func getIno(path string) (ino *inode, err error) {
-	h, e := syscall.CreateFile(syscall.StringToUTF16Ptr(path),
-		syscall.FILE_LIST_DIRECTORY,
-		syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE,
-		nil, syscall.OPEN_EXISTING,
-		syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED, 0)
-	if e != nil {
-		return nil, os.NewSyscallError("CreateFile", e)
-	}
-	var fi syscall.ByHandleFileInformation
-	if e = syscall.GetFileInformationByHandle(h, &fi); e != nil {
-		syscall.CloseHandle(h)
-		return nil, os.NewSyscallError("GetFileInformationByHandle", e)
-	}
-	ino = &inode{
-		handle: h,
-		volume: fi.VolumeSerialNumber,
-		index:  uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow),
-	}
-	return ino, nil
-}
-
-// Must run within the I/O thread.
-func (m watchMap) get(ino *inode) *watch {
-	if i := m[ino.volume]; i != nil {
-		return i[ino.index]
-	}
-	return nil
-}
-
-// Must run within the I/O thread.
-func (m watchMap) set(ino *inode, watch *watch) {
-	i := m[ino.volume]
-	if i == nil {
-		i = make(indexMap)
-		m[ino.volume] = i
-	}
-	i[ino.index] = watch
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) addWatch(pathname string, flags uint64) error {
-	dir, err := getDir(pathname)
-	if err != nil {
-		return err
-	}
-	if flags&FS_ONLYDIR != 0 && pathname != dir {
-		return nil
-	}
-	ino, err := getIno(dir)
-	if err != nil {
-		return err
-	}
-	watchEntry := w.watches.get(ino)
-	if watchEntry == nil {
-		if _, e := syscall.CreateIoCompletionPort(ino.handle, w.port, 0, 0); e != nil {
-			syscall.CloseHandle(ino.handle)
-			return os.NewSyscallError("CreateIoCompletionPort", e)
-		}
-		watchEntry = &watch{
-			ino:   ino,
-			path:  dir,
-			names: make(map[string]uint64),
-		}
-		w.watches.set(ino, watchEntry)
-		flags |= provisional
-	} else {
-		syscall.CloseHandle(ino.handle)
-	}
-	if pathname == dir {
-		watchEntry.mask |= flags
-	} else {
-		watchEntry.names[filepath.Base(pathname)] |= flags
-	}
-	if err = w.startRead(watchEntry); err != nil {
-		return err
-	}
-	if pathname == dir {
-		watchEntry.mask &= ^provisional
-	} else {
-		watchEntry.names[filepath.Base(pathname)] &= ^provisional
-	}
-	return nil
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) removeWatch(pathname string) error {
-	dir, err := getDir(pathname)
-	if err != nil {
-		return err
-	}
-	ino, err := getIno(dir)
-	if err != nil {
-		return err
-	}
-	watch := w.watches.get(ino)
-	if watch == nil {
-		return fmt.Errorf("can't remove non-existent watch for: %s", pathname)
-	}
-	if pathname == dir {
-		w.sendEvent(watch.path, watch.mask&FS_IGNORED)
-		watch.mask = 0
-	} else {
-		name := filepath.Base(pathname)
-		w.sendEvent(watch.path+"/"+name, watch.names[name]&FS_IGNORED)
-		delete(watch.names, name)
-	}
-	return w.startRead(watch)
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) deleteWatch(watch *watch) {
-	for name, mask := range watch.names {
-		if mask&provisional == 0 {
-			w.sendEvent(watch.path+"/"+name, mask&FS_IGNORED)
-		}
-		delete(watch.names, name)
-	}
-	if watch.mask != 0 {
-		if watch.mask&provisional == 0 {
-			w.sendEvent(watch.path, watch.mask&FS_IGNORED)
-		}
-		watch.mask = 0
-	}
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) startRead(watch *watch) error {
-	if e := syscall.CancelIo(watch.ino.handle); e != nil {
-		w.Error <- os.NewSyscallError("CancelIo", e)
-		w.deleteWatch(watch)
-	}
-	mask := toWindowsFlags(watch.mask)
-	for _, m := range watch.names {
-		mask |= toWindowsFlags(m)
-	}
-	if mask == 0 {
-		if e := syscall.CloseHandle(watch.ino.handle); e != nil {
-			w.Error <- os.NewSyscallError("CloseHandle", e)
-		}
-		delete(w.watches[watch.ino.volume], watch.ino.index)
-		return nil
-	}
-	e := syscall.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0],
-		uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0)
-	if e != nil {
-		err := os.NewSyscallError("ReadDirectoryChanges", e)
-		if e == syscall.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 {
-			// Watched directory was probably removed
-			if w.sendEvent(watch.path, watch.mask&FS_DELETE_SELF) {
-				if watch.mask&FS_ONESHOT != 0 {
-					watch.mask = 0
-				}
-			}
-			err = nil
-		}
-		w.deleteWatch(watch)
-		w.startRead(watch)
-		return err
-	}
-	return nil
-}
-
-// readEvents reads from the I/O completion port, converts the
-// received events into Event objects and sends them via the Event channel.
-// Entry point to the I/O thread.
-func (w *Watcher) readEvents() {
-	var (
-		n, key uint32
-		ov     *syscall.Overlapped
-	)
-	runtime.LockOSThread()
-
-	for {
-		e := syscall.GetQueuedCompletionStatus(w.port, &n, &key, &ov, syscall.INFINITE)
-		watch := (*watch)(unsafe.Pointer(ov))
-
-		if watch == nil {
-			select {
-			case ch := <-w.quit:
-				for _, index := range w.watches {
-					for _, watch := range index {
-						w.deleteWatch(watch)
-						w.startRead(watch)
-					}
-				}
-				var err error
-				if e := syscall.CloseHandle(w.port); e != nil {
-					err = os.NewSyscallError("CloseHandle", e)
-				}
-				close(w.Event)
-				close(w.Error)
-				ch <- err
-				return
-			case in := <-w.input:
-				switch in.op {
-				case opAddWatch:
-					in.reply <- w.addWatch(in.path, uint64(in.flags))
-				case opRemoveWatch:
-					in.reply <- w.removeWatch(in.path)
-				}
-			default:
-			}
-			continue
-		}
-
-		switch e {
-		case syscall.ERROR_ACCESS_DENIED:
-			// Watched directory was probably removed
-			w.sendEvent(watch.path, watch.mask&FS_DELETE_SELF)
-			w.deleteWatch(watch)
-			w.startRead(watch)
-			continue
-		case syscall.ERROR_OPERATION_ABORTED:
-			// CancelIo was called on this handle
-			continue
-		default:
-			w.Error <- os.NewSyscallError("GetQueuedCompletionPort", e)
-			continue
-		case nil:
-		}
-
-		var offset uint32
-		for {
-			if n == 0 {
-				w.Event <- &Event{Mask: FS_Q_OVERFLOW}
-				w.Error <- errors.New("short read in readEvents()")
-				break
-			}
-
-			// Point "raw" to the event in the buffer
-			raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset]))
-			buf := (*[syscall.MAX_PATH]uint16)(unsafe.Pointer(&raw.FileName))
-			name := syscall.UTF16ToString(buf[:raw.FileNameLength/2])
-			fullname := watch.path + "/" + name
-
-			var mask uint64
-			switch raw.Action {
-			case syscall.FILE_ACTION_REMOVED:
-				mask = FS_DELETE_SELF
-			case syscall.FILE_ACTION_MODIFIED:
-				mask = FS_MODIFY
-			case syscall.FILE_ACTION_RENAMED_OLD_NAME:
-				watch.rename = name
-			case syscall.FILE_ACTION_RENAMED_NEW_NAME:
-				if watch.names[watch.rename] != 0 {
-					watch.names[name] |= watch.names[watch.rename]
-					delete(watch.names, watch.rename)
-					mask = FS_MOVE_SELF
-				}
-			}
-
-			sendNameEvent := func() {
-				if w.sendEvent(fullname, watch.names[name]&mask) {
-					if watch.names[name]&FS_ONESHOT != 0 {
-						delete(watch.names, name)
-					}
-				}
-			}
-			if raw.Action != syscall.FILE_ACTION_RENAMED_NEW_NAME {
-				sendNameEvent()
-			}
-			if raw.Action == syscall.FILE_ACTION_REMOVED {
-				w.sendEvent(fullname, watch.names[name]&FS_IGNORED)
-				delete(watch.names, name)
-			}
-			if w.sendEvent(fullname, watch.mask&toFSnotifyFlags(raw.Action)) {
-				if watch.mask&FS_ONESHOT != 0 {
-					watch.mask = 0
-				}
-			}
-			if raw.Action == syscall.FILE_ACTION_RENAMED_NEW_NAME {
-				fullname = watch.path + "/" + watch.rename
-				sendNameEvent()
-			}
-
-			// Move to the next event in the buffer
-			if raw.NextEntryOffset == 0 {
-				break
-			}
-			offset += raw.NextEntryOffset
-		}
-
-		if err := w.startRead(watch); err != nil {
-			w.Error <- err
-		}
-	}
-}
-
-func (w *Watcher) sendEvent(name string, mask uint64) bool {
-	if mask == 0 {
-		return false
-	}
-	event := &Event{Mask: uint32(mask), Name: name}
-	if mask&FS_MOVE != 0 {
-		if mask&FS_MOVED_FROM != 0 {
-			w.cookie++
-		}
-		event.Cookie = w.cookie
-	}
-	select {
-	case ch := <-w.quit:
-		w.quit <- ch
-	case w.Event <- event:
-	}
-	return true
-}
-
-// String formats the event e in the form
-// "filename: 0xEventMask = FS_ACCESS|FS_ATTRIB_|..."
-func (e *Event) String() string {
-	var events string
-	m := e.Mask
-	for _, b := range eventBits {
-		if m&b.Value != 0 {
-			m &^= b.Value
-			events += "|" + b.Name
-		}
-	}
-	if m != 0 {
-		events += fmt.Sprintf("|%#x", m)
-	}
-	if len(events) > 0 {
-		events = " == " + events[1:]
-	}
-	return fmt.Sprintf("%q: %#x%s", e.Name, e.Mask, events)
-}
-
-func toWindowsFlags(mask uint64) uint32 {
-	var m uint32
-	if mask&FS_ACCESS != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS
-	}
-	if mask&FS_MODIFY != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_LAST_WRITE
-	}
-	if mask&FS_ATTRIB != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES
-	}
-	if mask&(FS_MOVE|FS_CREATE|FS_DELETE) != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_FILE_NAME | syscall.FILE_NOTIFY_CHANGE_DIR_NAME
-	}
-	return m
-}
-
-func toFSnotifyFlags(action uint32) uint64 {
-	switch action {
-	case syscall.FILE_ACTION_ADDED:
-		return FS_CREATE
-	case syscall.FILE_ACTION_REMOVED:
-		return FS_DELETE
-	case syscall.FILE_ACTION_MODIFIED:
-		return FS_MODIFY
-	case syscall.FILE_ACTION_RENAMED_OLD_NAME:
-		return FS_MOVED_FROM
-	case syscall.FILE_ACTION_RENAMED_NEW_NAME:
-		return FS_MOVED_TO
-	}
-	return 0
-}
-
-const (
-	// Options for AddWatch
-	FS_ONESHOT = 0x80000000
-	FS_ONLYDIR = 0x1000000
-
-	// Events
-	FS_ACCESS      = 0x1
-	FS_ALL_EVENTS  = 0xfff
-	FS_ATTRIB      = 0x4
-	FS_CLOSE       = 0x18
-	FS_CREATE      = 0x100
-	FS_DELETE      = 0x200
-	FS_DELETE_SELF = 0x400
-	FS_MODIFY      = 0x2
-	FS_MOVE        = 0xc0
-	FS_MOVED_FROM  = 0x40
-	FS_MOVED_TO    = 0x80
-	FS_MOVE_SELF   = 0x800
-
-	// Special events
-	FS_IGNORED    = 0x8000
-	FS_Q_OVERFLOW = 0x4000
-)
-
-var eventBits = []struct {
-	Value uint32
-	Name  string
-}{
-	{FS_ACCESS, "FS_ACCESS"},
-	{FS_ATTRIB, "FS_ATTRIB"},
-	{FS_CREATE, "FS_CREATE"},
-	{FS_DELETE, "FS_DELETE"},
-	{FS_DELETE_SELF, "FS_DELETE_SELF"},
-	{FS_MODIFY, "FS_MODIFY"},
-	{FS_MOVED_FROM, "FS_MOVED_FROM"},
-	{FS_MOVED_TO, "FS_MOVED_TO"},
-	{FS_MOVE_SELF, "FS_MOVE_SELF"},
-	{FS_IGNORED, "FS_IGNORED"},
-	{FS_Q_OVERFLOW, "FS_Q_OVERFLOW"},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify_test.go gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify_test.go
--- gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,130 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package winfsnotify
-
-import (
-	"io/ioutil"
-	"os"
-	"sync/atomic"
-	"testing"
-	"time"
-)
-
-func expect(t *testing.T, eventstream <-chan *Event, name string, mask uint32) {
-	t.Logf(`expected: "%s": 0x%x`, name, mask)
-	select {
-	case event := <-eventstream:
-		if event == nil {
-			t.Fatal("nil event received")
-		}
-		t.Logf("received: %s", event)
-		if event.Name != name || event.Mask != mask {
-			t.Fatal("did not receive expected event")
-		}
-	case <-time.After(1 * time.Second):
-		t.Fatal("timed out waiting for event")
-	}
-}
-
-func TestNotifyEvents(t *testing.T) {
-	watcher, err := NewWatcher()
-	if err != nil {
-		t.Fatalf("NewWatcher() failed: %s", err)
-	}
-
-	testDir := "TestNotifyEvents.testdirectory"
-	testFile := testDir + "/TestNotifyEvents.testfile"
-	testFile2 := testFile + ".new"
-	const mask = FS_ALL_EVENTS & ^(FS_ATTRIB|FS_CLOSE) | FS_IGNORED
-
-	// Add a watch for testDir
-	os.RemoveAll(testDir)
-	if err = os.Mkdir(testDir, 0777); err != nil {
-		t.Fatalf("Failed to create test directory: %s", err)
-	}
-	defer os.RemoveAll(testDir)
-	err = watcher.AddWatch(testDir, mask)
-	if err != nil {
-		t.Fatalf("Watcher.Watch() failed: %s", err)
-	}
-
-	// Receive errors on the error channel on a separate goroutine
-	go func() {
-		for err := range watcher.Error {
-			t.Fatalf("error received: %s", err)
-		}
-	}()
-
-	// Create a file
-	file, err := os.Create(testFile)
-	if err != nil {
-		t.Fatalf("creating test file failed: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_CREATE)
-
-	err = watcher.AddWatch(testFile, mask)
-	if err != nil {
-		t.Fatalf("Watcher.Watch() failed: %s", err)
-	}
-
-	if _, err = file.WriteString("hello, world"); err != nil {
-		t.Fatalf("failed to write to test file: %s", err)
-	}
-	if err = file.Close(); err != nil {
-		t.Fatalf("failed to close test file: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_MODIFY)
-	expect(t, watcher.Event, testFile, FS_MODIFY)
-
-	if err = os.Rename(testFile, testFile2); err != nil {
-		t.Fatalf("failed to rename test file: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_MOVED_FROM)
-	expect(t, watcher.Event, testFile2, FS_MOVED_TO)
-	expect(t, watcher.Event, testFile, FS_MOVE_SELF)
-
-	if err = os.RemoveAll(testDir); err != nil {
-		t.Fatalf("failed to remove test directory: %s", err)
-	}
-	expect(t, watcher.Event, testFile2, FS_DELETE_SELF)
-	expect(t, watcher.Event, testFile2, FS_IGNORED)
-	expect(t, watcher.Event, testFile2, FS_DELETE)
-	expect(t, watcher.Event, testDir, FS_DELETE_SELF)
-	expect(t, watcher.Event, testDir, FS_IGNORED)
-
-	t.Log("calling Close()")
-	if err = watcher.Close(); err != nil {
-		t.Fatalf("failed to close watcher: %s", err)
-	}
-}
-
-func TestNotifyClose(t *testing.T) {
-	watcher, _ := NewWatcher()
-	watcher.Close()
-
-	var done int32
-	go func() {
-		watcher.Close()
-		atomic.StoreInt32(&done, 1)
-	}()
-
-	time.Sleep(50 * time.Millisecond)
-	if atomic.LoadInt32(&done) == 0 {
-		t.Fatal("double Close() test failed: second Close() call didn't return")
-	}
-
-	dir, err := ioutil.TempDir("", "wininotify")
-	if err != nil {
-		t.Fatalf("TempDir failed: %s", err)
-	}
-	defer os.RemoveAll(dir)
-
-	err = watcher.Watch(dir)
-	if err == nil {
-		t.Fatal("expected error on Watch() after Close(), got nil")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/doc.go gcc-4.8.1/libgo/go/fmt/doc.go
--- gcc-4.8.1.orig/libgo/go/fmt/doc.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/fmt/doc.go	2013-10-01 16:06:44.148554281 +0000
@@ -74,7 +74,8 @@
 		-	pad with spaces on the right rather than the left (left-justify the field)
 		#	alternate format: add leading 0 for octal (%#o), 0x for hex (%#x);
 			0X for hex (%#X); suppress 0x for %p (%#p);
-			print a raw (backquoted) string if possible for %q (%#q);
+			for %q, print a raw (backquoted) string if strconv.CanBackquote
+			returns true;
 			write e.g. U+0078 'x' if the character is printable for %U (%#U).
 		' '	(space) leave a space for elided sign in numbers (% d);
 			put spaces between bytes printing strings or slices in hex (% x, % X)
@@ -137,6 +138,16 @@
 	by a single character (the verb) and end with a parenthesized
 	description.
 
+	If an Error or String method triggers a panic when called by a
+	print routine, the fmt package reformats the error message
+	from the panic, decorating it with an indication that it came
+	through the fmt package.  For example, if a String method
+	calls panic("bad"), the resulting formatted message will look
+	like
+		%s(PANIC=bad)
+
+	The %s just shows the print verb in use when the failure
+	occurred.
 
 	Scanning
 
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go gcc-4.8.1/libgo/go/fmt/fmt_test.go
--- gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/fmt/fmt_test.go	2013-10-01 16:06:44.148554281 +0000
@@ -9,7 +9,7 @@
 	. "fmt"
 	"io"
 	"math"
-	"runtime" // for the malloc count test only
+	"runtime"
 	"strings"
 	"testing"
 	"time"
@@ -105,6 +105,9 @@
 	return "String(p)"
 }
 
+var barray = [5]renamedUint8{1, 2, 3, 4, 5}
+var bslice = barray[:]
+
 var b byte
 
 var fmttests = []struct {
@@ -176,6 +179,8 @@
 	{"%.3q", "æ—¥æœ¬èªžæ—¥æœ¬èªž", `"æ—¥æœ¬èªž"`},
 	{"%.3q", []byte("æ—¥æœ¬èªžæ—¥æœ¬èªž"), `"æ—¥æœ¬èªž"`},
 	{"%10.1q", "æ—¥æœ¬èªžæ—¥æœ¬èªž", `       "æ—¥"`},
+	{"%10v", nil, "     <nil>"},
+	{"%-10v", nil, "<nil>     "},
 
 	// integers
 	{"%d", 12345, "12345"},
@@ -332,14 +337,18 @@
 	// arrays
 	{"%v", array, "[1 2 3 4 5]"},
 	{"%v", iarray, "[1 hello 2.5 <nil>]"},
+	{"%v", barray, "[1 2 3 4 5]"},
 	{"%v", &array, "&[1 2 3 4 5]"},
 	{"%v", &iarray, "&[1 hello 2.5 <nil>]"},
+	{"%v", &barray, "&[1 2 3 4 5]"},
 
 	// slices
 	{"%v", slice, "[1 2 3 4 5]"},
 	{"%v", islice, "[1 hello 2.5 <nil>]"},
+	{"%v", bslice, "[1 2 3 4 5]"},
 	{"%v", &slice, "&[1 2 3 4 5]"},
 	{"%v", &islice, "&[1 hello 2.5 <nil>]"},
+	{"%v", &bslice, "&[1 2 3 4 5]"},
 
 	// complexes with %v
 	{"%v", 1 + 2i, "(1+2i)"},
@@ -382,6 +391,8 @@
 	{"%#v", map[int]byte(nil), `map[int]uint8(nil)`},
 	{"%#v", map[int]byte{}, `map[int]uint8{}`},
 	{"%#v", "foo", `"foo"`},
+	{"%#v", barray, `[5]fmt_test.renamedUint8{0x1, 0x2, 0x3, 0x4, 0x5}`},
+	{"%#v", bslice, `[]fmt_test.renamedUint8{0x1, 0x2, 0x3, 0x4, 0x5}`},
 
 	// slices with other formats
 	{"%#x", []int{1, 2, 15}, `[0x1 0x2 0xf]`},
@@ -407,6 +418,9 @@
 	{"%x", renamedString("thing"), "7468696e67"},
 	{"%d", renamedBytes([]byte{1, 2, 15}), `[1 2 15]`},
 	{"%q", renamedBytes([]byte("hello")), `"hello"`},
+	{"%x", []renamedUint8{'a', 'b', 'c'}, "616263"},
+	{"%s", []renamedUint8{'h', 'e', 'l', 'l', 'o'}, "hello"},
+	{"%q", []renamedUint8{'h', 'e', 'l', 'l', 'o'}, `"hello"`},
 	{"%v", renamedFloat32(22), "22"},
 	{"%v", renamedFloat64(33), "33"},
 	{"%v", renamedComplex64(3 + 4i), "(3+4i)"},
@@ -426,6 +440,8 @@
 	{"%T", renamedComplex128(4 - 3i), "fmt_test.renamedComplex128"},
 	{"%T", intVal, "int"},
 	{"%6T", &intVal, "  *int"},
+	{"%10T", nil, "     <nil>"},
+	{"%-10T", nil, "<nil>     "},
 
 	// %p
 	{"p0=%p", new(int), "p0=0xPTR"},
@@ -481,6 +497,9 @@
 	// causing +2+0i and +3+0i instead of 2+0i and 3+0i.
 	{"%v", []complex64{1, 2, 3}, "[(1+0i) (2+0i) (3+0i)]"},
 	{"%v", []complex128{1, 2, 3}, "[(1+0i) (2+0i) (3+0i)]"},
+
+	// Incomplete format specification caused crash.
+	{"%.", 3, "%!.(int=3)"},
 }
 
 func TestSprintf(t *testing.T) {
@@ -588,19 +607,13 @@
 var _ bytes.Buffer
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		mallocs := testing.AllocsPerRun(100, mt.fn)
+		if got, max := mallocs, float64(mt.count); got > max {
+			t.Errorf("%s: got %v allocs, want <=%v", mt.desc, got, max)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/print.go gcc-4.8.1/libgo/go/fmt/print.go
--- gcc-4.8.1.orig/libgo/go/fmt/print.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/fmt/print.go	2013-10-01 16:06:44.148554281 +0000
@@ -47,7 +47,7 @@
 }
 
 // Formatter is the interface implemented by values with a custom formatter.
-// The implementation of Format may call Sprintf or Fprintf(f) etc.
+// The implementation of Format may call Sprint(f) or Fprint(f) etc.
 // to generate its output.
 type Formatter interface {
 	Format(f State, c rune)
@@ -56,7 +56,8 @@
 // Stringer is implemented by any value that has a String method,
 // which defines the ``native'' format for that value.
 // The String method is used to print values passed as an operand
-// to a %s or %v format or to an unformatted printer such as Print.
+// to any format that accepts a string or to an unformatted printer
+// such as Print.
 type Stringer interface {
 	String() string
 }
@@ -545,10 +546,15 @@
 	}
 }
 
-func (p *pp) fmtBytes(v []byte, verb rune, goSyntax bool, depth int) {
+func (p *pp) fmtBytes(v []byte, verb rune, goSyntax bool, typ reflect.Type, depth int) {
 	if verb == 'v' || verb == 'd' {
 		if goSyntax {
-			p.buf.Write(bytesBytes)
+			if typ == nil {
+				p.buf.Write(bytesBytes)
+			} else {
+				p.buf.WriteString(typ.String())
+				p.buf.WriteByte('{')
+			}
 		} else {
 			p.buf.WriteByte('[')
 		}
@@ -724,7 +730,7 @@
 
 	if field == nil {
 		if verb == 'T' || verb == 'v' {
-			p.buf.Write(nilAngleBytes)
+			p.fmt.pad(nilAngleBytes)
 		} else {
 			p.badVerb(verb)
 		}
@@ -793,7 +799,7 @@
 		p.fmtString(f, verb, goSyntax)
 		wasString = verb == 's' || verb == 'v'
 	case []byte:
-		p.fmtBytes(f, verb, goSyntax, depth)
+		p.fmtBytes(f, verb, goSyntax, nil, depth)
 		wasString = verb == 's'
 	default:
 		// Restore flags in case handleMethods finds a Formatter.
@@ -939,19 +945,22 @@
 		}
 	case reflect.Array, reflect.Slice:
 		// Byte slices are special.
-		if f.Type().Elem().Kind() == reflect.Uint8 {
-			// We know it's a slice of bytes, but we also know it does not have static type
-			// []byte, or it would have been caught above.  Therefore we cannot convert
-			// it directly in the (slightly) obvious way: f.Interface().([]byte); it doesn't have
-			// that type, and we can't write an expression of the right type and do a
-			// conversion because we don't have a static way to write the right type.
-			// So we build a slice by hand.  This is a rare case but it would be nice
-			// if reflection could help a little more.
-			bytes := make([]byte, f.Len())
-			for i := range bytes {
-				bytes[i] = byte(f.Index(i).Uint())
+		if typ := f.Type(); typ.Elem().Kind() == reflect.Uint8 {
+			var bytes []byte
+			if f.Kind() == reflect.Slice {
+				bytes = f.Bytes()
+			} else if f.CanAddr() {
+				bytes = f.Slice(0, f.Len()).Bytes()
+			} else {
+				// We have an array, but we cannot Slice() a non-addressable array,
+				// so we build a slice by hand. This is a rare case but it would be nice
+				// if reflection could help a little more.
+				bytes = make([]byte, f.Len())
+				for i := range bytes {
+					bytes[i] = byte(f.Index(i).Uint())
+				}
 			}
-			p.fmtBytes(bytes, verb, goSyntax, depth)
+			p.fmtBytes(bytes, verb, goSyntax, typ, depth)
 			wasString = verb == 's'
 			break
 		}
@@ -1063,7 +1072,7 @@
 			p.fmt.wid, p.fmt.widPresent, i = parsenum(format, i, end)
 		}
 		// do we have precision?
-		if i < end && format[i] == '.' {
+		if i+1 < end && format[i] == '.' {
 			if format[i+1] == '*' {
 				p.fmt.prec, p.fmt.precPresent, i, fieldnum = intFromArg(a, end, i+1, fieldnum)
 				if !p.fmt.precPresent {
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter.go gcc-4.8.1/libgo/go/go/ast/filter.go
--- gcc-4.8.1.orig/libgo/go/go/ast/filter.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/ast/filter.go	2013-10-01 16:06:44.148554281 +0000
@@ -284,6 +284,27 @@
 	FilterImportDuplicates
 )
 
+// nameOf returns the function (foo) or method name (foo.bar) for
+// the given function declaration. If the AST is incorrect for the
+// receiver, it assumes a function instead.
+//
+func nameOf(f *FuncDecl) string {
+	if r := f.Recv; r != nil && len(r.List) == 1 {
+		// looks like a correct receiver declaration
+		t := r.List[0].Type
+		// dereference pointer receiver types
+		if p, _ := t.(*StarExpr); p != nil {
+			t = p.X
+		}
+		// the receiver type must be a type name
+		if p, _ := t.(*Ident); p != nil {
+			return p.Name + "." + f.Name.Name
+		}
+		// otherwise assume a function instead
+	}
+	return f.Name.Name
+}
+
 // separator is an empty //-style comment that is interspersed between
 // different comment groups when they are concatenated into a single group
 //
@@ -348,7 +369,7 @@
 	var decls []Decl
 	if ndecls > 0 {
 		decls = make([]Decl, ndecls)
-		funcs := make(map[string]int) // map of global function name -> decls index
+		funcs := make(map[string]int) // map of func name -> decls index
 		i := 0                        // current index
 		n := 0                        // number of filtered entries
 		for _, filename := range filenames {
@@ -365,7 +386,7 @@
 					//            entities (const, type, vars) if
 					//            multiple declarations are common.
 					if f, isFun := d.(*FuncDecl); isFun {
-						name := f.Name.Name
+						name := nameOf(f)
 						if j, exists := funcs[name]; exists {
 							// function declared already
 							if decls[j] != nil && decls[j].(*FuncDecl).Doc == nil {
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go gcc-4.8.1/libgo/go/go/ast/filter_test.go
--- gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/ast/filter_test.go	2013-10-01 16:06:44.148554281 +0000
@@ -0,0 +1,86 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// To avoid a cyclic dependency with go/parser, this file is in a separate package.
+
+package ast_test
+
+import (
+	"bytes"
+	"go/ast"
+	"go/format"
+	"go/parser"
+	"go/token"
+	"testing"
+)
+
+const input = `package p
+
+type t1 struct{}
+type t2 struct{}
+
+func f1() {}
+func f1() {}
+func f2() {}
+
+func (*t1) f1() {}
+func (t1) f1() {}
+func (t1) f2() {}
+
+func (t2) f1() {}
+func (t2) f2() {}
+func (x *t2) f2() {}
+`
+
+// Calling ast.MergePackageFiles with ast.FilterFuncDuplicates
+// keeps a duplicate entry with attached documentation in favor
+// of one without, and it favors duplicate entries appearing
+// later in the source over ones appearing earlier. This is why
+// (*t2).f2 is kept and t2.f2 is eliminated in this test case.
+//
+const golden = `package p
+
+type t1 struct{}
+type t2 struct{}
+
+func f1() {}
+func f2() {}
+
+func (t1) f1() {}
+func (t1) f2() {}
+
+func (t2) f1() {}
+
+func (x *t2) f2() {}
+`
+
+func TestFilterDuplicates(t *testing.T) {
+	// parse input
+	fset := token.NewFileSet()
+	file, err := parser.ParseFile(fset, "", input, 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// create package
+	files := map[string]*ast.File{"": file}
+	pkg, err := ast.NewPackage(fset, files, nil, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// filter
+	merged := ast.MergePackageFiles(pkg, ast.FilterFuncDuplicates)
+
+	// pretty-print
+	var buf bytes.Buffer
+	if err := format.Node(&buf, fset, merged); err != nil {
+		t.Fatal(err)
+	}
+	output := buf.String()
+
+	if output != golden {
+		t.Errorf("incorrect output:\n%s", output)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/print.go gcc-4.8.1/libgo/go/go/ast/print.go
--- gcc-4.8.1.orig/libgo/go/go/ast/print.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/ast/print.go	2013-10-01 16:06:44.148554281 +0000
@@ -34,7 +34,7 @@
 //
 // A non-nil FieldFilter f may be provided to control the output:
 // struct fields for which f(fieldname, fieldvalue) is true are
-// are printed; all others are filtered from the output. Unexported
+// printed; all others are filtered from the output. Unexported
 // struct fields are never printed.
 //
 func Fprint(w io.Writer, fset *token.FileSet, x interface{}, f FieldFilter) (err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/build.go gcc-4.8.1/libgo/go/go/build/build.go
--- gcc-4.8.1.orig/libgo/go/go/build/build.go	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/build/build.go	2013-10-01 16:06:44.148554281 +0000
@@ -27,15 +27,31 @@
 
 // A Context specifies the supporting context for a build.
 type Context struct {
-	GOARCH      string   // target architecture
-	GOOS        string   // target operating system
-	GOROOT      string   // Go root
-	GOPATH      string   // Go path
-	CgoEnabled  bool     // whether cgo can be used
-	BuildTags   []string // additional tags to recognize in +build lines
-	InstallTag  string   // package install directory suffix
-	UseAllFiles bool     // use files regardless of +build lines, file names
-	Compiler    string   // compiler to assume when computing target paths
+	GOARCH      string // target architecture
+	GOOS        string // target operating system
+	GOROOT      string // Go root
+	GOPATH      string // Go path
+	CgoEnabled  bool   // whether cgo can be used
+	UseAllFiles bool   // use files regardless of +build lines, file names
+	Compiler    string // compiler to assume when computing target paths
+
+	// The build and release tags specify build constraints
+	// that should be considered satisfied when processing +build lines.
+	// Clients creating a new context may customize BuildTags, which
+	// defaults to empty, but it is usually an error to customize ReleaseTags,
+	// which defaults to the list of Go releases the current release is compatible with.
+	// In addition to the BuildTags and ReleaseTags, build constraints
+	// consider the values of GOARCH and GOOS as satisfied tags.
+	BuildTags   []string
+	ReleaseTags []string
+
+	// The install suffix specifies a suffix to use in the name of the installation
+	// directory. By default it is empty, but custom builds that need to keep
+	// their outputs separate can set InstallSuffix to do so. For example, when
+	// using the race detector, the go command uses InstallSuffix = "race", so
+	// that on a Linux/386 system, packages are written to a directory named
+	// "linux_386_race" instead of the usual "linux_386".
+	InstallSuffix string
 
 	// By default, Import uses the operating system's file system calls
 	// to read directories and files.  To read from other sources,
@@ -117,12 +133,27 @@
 		return f(root, dir)
 	}
 
-	if p, err := filepath.EvalSymlinks(root); err == nil {
-		root = p
+	// Try using paths we received.
+	if rel, ok = hasSubdir(root, dir); ok {
+		return
 	}
-	if p, err := filepath.EvalSymlinks(dir); err == nil {
-		dir = p
+
+	// Try expanding symlinks and comparing
+	// expanded against unexpanded and
+	// expanded against expanded.
+	rootSym, _ := filepath.EvalSymlinks(root)
+	dirSym, _ := filepath.EvalSymlinks(dir)
+
+	if rel, ok = hasSubdir(rootSym, dir); ok {
+		return
 	}
+	if rel, ok = hasSubdir(root, dirSym); ok {
+		return
+	}
+	return hasSubdir(rootSym, dirSym)
+}
+
+func hasSubdir(root, dir string) (rel string, ok bool) {
 	const sep = string(filepath.Separator)
 	root = filepath.Clean(root)
 	if !strings.HasSuffix(root, sep) {
@@ -181,6 +212,21 @@
 			// Do not get confused by this common mistake.
 			continue
 		}
+		if strings.HasPrefix(p, "~") {
+			// Path segments starting with ~ on Unix are almost always
+			// users who have incorrectly quoted ~ while setting GOPATH,
+			// preventing it from expanding to $HOME.
+			// The situation is made more confusing by the fact that
+			// bash allows quoted ~ in $PATH (most shells do not).
+			// Do not get confused by this, and do not try to use the path.
+			// It does not exist, and printing errors about it confuses
+			// those users even more, because they think "sure ~ exists!".
+			// The go command diagnoses this situation and prints a
+			// useful error.
+			// On Windows, ~ is used in short names, such as c:\progra~1
+			// for c:\program files.
+			continue
+		}
 		all = append(all, p)
 	}
 	return all
@@ -216,11 +262,13 @@
 	"darwin/amd64":  true,
 	"freebsd/386":   true,
 	"freebsd/amd64": true,
+	"freebsd/arm":   true,
 	"linux/386":     true,
 	"linux/amd64":   true,
 	"linux/arm":     true,
 	"netbsd/386":    true,
 	"netbsd/amd64":  true,
+	"netbsd/arm":    true,
 	"openbsd/386":   true,
 	"openbsd/amd64": true,
 	"windows/386":   true,
@@ -236,13 +284,30 @@
 	c.GOPATH = envOr("GOPATH", "")
 	c.Compiler = runtime.Compiler
 
+	// Each major Go release in the Go 1.x series should add a tag here.
+	// Old tags should not be removed. That is, the go1.x tag is present
+	// in all releases >= Go 1.x. Code that requires Go 1.x or later should
+	// say "+build go1.x", and code that should only be built before Go 1.x
+	// (perhaps it is the stub to use in that case) should say "+build !go1.x".
+	//
+	// When we reach Go 1.3 the line will read
+	//	c.ReleaseTags = []string{"go1.1", "go1.2", "go1.3"}
+	// and so on.
+	c.ReleaseTags = []string{"go1.1"}
+
 	switch os.Getenv("CGO_ENABLED") {
 	case "1":
 		c.CgoEnabled = true
 	case "0":
 		c.CgoEnabled = false
 	default:
-		c.CgoEnabled = cgoEnabled[c.GOOS+"/"+c.GOARCH]
+		// golang.org/issue/5141
+		// cgo should be disabled for cross compilation builds
+		if runtime.GOARCH == c.GOARCH && runtime.GOOS == c.GOOS {
+			c.CgoEnabled = cgoEnabled[c.GOOS+"/"+c.GOARCH]
+			break
+		}
+		c.CgoEnabled = false
 	}
 
 	return c
@@ -284,14 +349,15 @@
 	PkgObj     string // installed .a file
 
 	// Source files
-	GoFiles      []string // .go source files (excluding CgoFiles, TestGoFiles, XTestGoFiles)
-	CgoFiles     []string // .go source files that import "C"
-	CFiles       []string // .c source files
-	HFiles       []string // .h source files
-	SFiles       []string // .s source files
-	SysoFiles    []string // .syso system object files to add to archive
-	SwigFiles    []string // .swig files
-	SwigCXXFiles []string // .swigcxx files
+	GoFiles        []string // .go source files (excluding CgoFiles, TestGoFiles, XTestGoFiles)
+	CgoFiles       []string // .go source files that import "C"
+	IgnoredGoFiles []string // .go source files ignored for this build
+	CFiles         []string // .c source files
+	HFiles         []string // .h source files
+	SFiles         []string // .s source files
+	SysoFiles      []string // .syso system object files to add to archive
+	SwigFiles      []string // .swig files
+	SwigCXXFiles   []string // .swigcxx files
 
 	// Cgo directives
 	CgoPkgConfig []string // Cgo pkg-config directives
@@ -365,11 +431,11 @@
 		dir, elem := pathpkg.Split(p.ImportPath)
 		pkga = "pkg/gccgo/" + dir + "lib" + elem + ".a"
 	case "gc":
-		tag := ""
-		if ctxt.InstallTag != "" {
-			tag = "_" + ctxt.InstallTag
+		suffix := ""
+		if ctxt.InstallSuffix != "" {
+			suffix = "_" + ctxt.InstallSuffix
 		}
-		pkga = "pkg/" + ctxt.GOOS + "_" + ctxt.GOARCH + tag + "/" + p.ImportPath + ".a"
+		pkga = "pkg/" + ctxt.GOOS + "_" + ctxt.GOARCH + suffix + "/" + p.ImportPath + ".a"
 	default:
 		// Save error for end of function.
 		pkgerr = fmt.Errorf("import %q: unknown compiler %q", path, ctxt.Compiler)
@@ -426,7 +492,7 @@
 			return p, fmt.Errorf("import %q: cannot import absolute path", path)
 		}
 
-		// tried records the location of unsucsessful package lookups
+		// tried records the location of unsuccessful package lookups
 		var tried struct {
 			goroot string
 			gopath []string
@@ -519,15 +585,20 @@
 			strings.HasPrefix(name, ".") {
 			continue
 		}
-		if !ctxt.UseAllFiles && !ctxt.goodOSArchFile(name) {
-			continue
-		}
 
 		i := strings.LastIndex(name, ".")
 		if i < 0 {
 			i = len(name)
 		}
 		ext := name[i:]
+
+		if !ctxt.UseAllFiles && !ctxt.goodOSArchFile(name) {
+			if ext == ".go" {
+				p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
+			}
+			continue
+		}
+
 		switch ext {
 		case ".go", ".c", ".s", ".h", ".S", ".swig", ".swigcxx":
 			// tentatively okay - read to make sure
@@ -561,6 +632,9 @@
 
 		// Look for +build comments to accept or reject the file.
 		if !ctxt.UseAllFiles && !ctxt.shouldBuild(data) {
+			if ext == ".go" {
+				p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
+			}
 			continue
 		}
 
@@ -593,6 +667,7 @@
 
 		pkg := pf.Name.Name
 		if pkg == "documentation" {
+			p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
 			continue
 		}
 
@@ -929,8 +1004,8 @@
 //	!cgo (if cgo is disabled)
 //	ctxt.Compiler
 //	!ctxt.Compiler
-//	tag (if tag is listed in ctxt.BuildTags)
-//	!tag (if tag is not listed in ctxt.BuildTags)
+//	tag (if tag is listed in ctxt.BuildTags or ctxt.ReleaseTags)
+//	!tag (if tag is not listed in ctxt.BuildTags or ctxt.ReleaseTags)
 //	a comma-separated list of any of these
 //
 func (ctxt *Context) match(name string) bool {
@@ -948,10 +1023,10 @@
 		return len(name) > 1 && !ctxt.match(name[1:])
 	}
 
-	// Tags must be letters, digits, underscores.
+	// Tags must be letters, digits, underscores or dots.
 	// Unlike in Go identifiers, all digits are fine (e.g., "386").
 	for _, c := range name {
-		if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' {
+		if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' && c != '.' {
 			return false
 		}
 	}
@@ -969,6 +1044,11 @@
 		if tag == name {
 			return true
 		}
+	}
+	for _, tag := range ctxt.ReleaseTags {
+		if tag == name {
+			return true
+		}
 	}
 
 	return false
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/deps_test.go gcc-4.8.1/libgo/go/go/build/deps_test.go
--- gcc-4.8.1.orig/libgo/go/go/build/deps_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/build/deps_test.go	2013-10-01 16:06:44.148554281 +0000
@@ -5,10 +5,9 @@
 // This file exercises the import parser but also checks that
 // some low-level packages do not have new dependencies added.
 
-package build_test
+package build
 
 import (
-	"go/build"
 	"sort"
 	"testing"
 )
@@ -48,7 +47,7 @@
 	"math":          {"unsafe"},
 	"math/cmplx":    {"math"},
 	"math/rand":     {"L0", "math"},
-	"sort":          {"math"},
+	"sort":          {},
 	"strconv":       {"L0", "unicode/utf8", "math"},
 	"unicode/utf16": {},
 	"unicode/utf8":  {},
@@ -142,7 +141,7 @@
 	// Packages used by testing must be low-level (L2+fmt).
 	"regexp":         {"L2", "regexp/syntax"},
 	"regexp/syntax":  {"L2"},
-	"runtime/debug":  {"L2", "fmt", "io/ioutil", "os"},
+	"runtime/debug":  {"L2", "fmt", "io/ioutil", "os", "time"},
 	"runtime/pprof":  {"L2", "fmt", "text/tabwriter"},
 	"text/tabwriter": {"L2"},
 
@@ -306,7 +305,7 @@
 	},
 	"crypto/x509": {
 		"L4", "CRYPTO-MATH", "OS", "CGO",
-		"crypto/x509/pkix", "encoding/pem", "encoding/hex", "syscall",
+		"crypto/x509/pkix", "encoding/pem", "encoding/hex", "net", "syscall",
 	},
 	"crypto/x509/pkix": {"L4", "CRYPTO-MATH"},
 
@@ -382,7 +381,7 @@
 	}
 	sort.Strings(all)
 
-	ctxt := build.Default
+	ctxt := Default
 	test := func(mustImport bool) {
 		for _, pkg := range all {
 			if isMacro(pkg) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/doc.go gcc-4.8.1/libgo/go/go/build/doc.go
--- gcc-4.8.1.orig/libgo/go/go/build/doc.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/build/doc.go	2013-10-01 16:06:44.148554281 +0000
@@ -91,14 +91,22 @@
 //
 //	- the target operating system, as spelled by runtime.GOOS
 //	- the target architecture, as spelled by runtime.GOARCH
-//	- the compiler being used, currently either "gc" or "gccgo"
+//	- the compiler being used, either "gc" or "gccgo"
 //	- "cgo", if ctxt.CgoEnabled is true
+//	- "go1.1", from Go version 1.1 onward
 //	- any additional words listed in ctxt.BuildTags
 //
 // If a file's name, after stripping the extension and a possible _test suffix,
-// matches *_GOOS, *_GOARCH, or *_GOOS_GOARCH for any known operating
-// system and architecture values, then the file is considered to have an implicit
-// build constraint requiring those terms.
+// matches any of the following patterns:
+//	*_GOOS
+// 	*_GOARCH
+// 	*_GOOS_GOARCH
+// (example: source_windows_amd64.go) or the literals:
+//	GOOS
+// 	GOARCH
+// (example: windows.go) where GOOS and GOARCH represent any known operating
+// system and architecture values respectively, then the file is considered to
+// have an implicit build constraint requiring those terms.
 //
 // To keep a file from being considered for the build:
 //
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/doc.go gcc-4.8.1/libgo/go/go/doc/doc.go
--- gcc-4.8.1.orig/libgo/go/go/doc/doc.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/doc.go	2013-10-01 16:06:44.148554281 +0000
@@ -17,7 +17,10 @@
 	ImportPath string
 	Imports    []string
 	Filenames  []string
-	Bugs       []string
+	Notes      map[string][]*Note
+	// DEPRECATED. For backward compatibility Bugs is still populated,
+	// but all new code should use Notes instead.
+	Bugs []string
 
 	// declarations
 	Consts []*Value
@@ -61,6 +64,16 @@
 	Level int    // embedding level; 0 means not embedded
 }
 
+// A Note represents a marked comment starting with "MARKER(uid): note body".
+// Any note with a marker of 2 or more upper case [A-Z] letters and a uid of
+// at least one character is recognized. The ":" following the uid is optional.
+// Notes are collected in the Package.Notes map indexed by the notes marker.
+type Note struct {
+	Pos, End token.Pos // position range of the comment containing the marker
+	UID      string    // uid found with the marker
+	Body     string    // note body text
+}
+
 // Mode values control the operation of New.
 type Mode int
 
@@ -88,7 +101,8 @@
 		ImportPath: importPath,
 		Imports:    sortedKeys(r.imports),
 		Filenames:  r.filenames,
-		Bugs:       r.bugs,
+		Notes:      r.notes,
+		Bugs:       noteBodies(r.notes["BUG"]),
 		Consts:     sortedValues(r.values, token.CONST),
 		Types:      sortedTypes(r.types, mode&AllMethods != 0),
 		Vars:       sortedValues(r.values, token.VAR),
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example.go gcc-4.8.1/libgo/go/go/doc/example.go
--- gcc-4.8.1.orig/libgo/go/go/doc/example.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/example.go	2013-10-01 16:06:44.148554281 +0000
@@ -18,6 +18,7 @@
 	"unicode/utf8"
 )
 
+// An Example represents an example function found in a source files.
 type Example struct {
 	Name        string // name of the item being exemplified
 	Doc         string // example function doc string
@@ -26,8 +27,11 @@
 	Comments    []*ast.CommentGroup
 	Output      string // expected output
 	EmptyOutput bool   // expect empty output
+	Order       int    // original source code order
 }
 
+// Examples returns the examples found in the files, sorted by Name field.
+// The Order fields record the order in which the examples were encountered.
 func Examples(files ...*ast.File) []*Example {
 	var list []*Example
 	for _, file := range files {
@@ -65,6 +69,7 @@
 				Comments:    file.Comments,
 				Output:      output,
 				EmptyOutput: output == "" && hasOutput,
+				Order:       len(flist),
 			})
 		}
 		if !hasTests && numDecl > 1 && len(flist) == 1 {
@@ -161,6 +166,13 @@
 			ast.Inspect(e.X, inspectFunc)
 			return false
 		}
+		// For key value expressions, only inspect the value
+		// as the key should be resolved by the type of the
+		// composite literal.
+		if e, ok := n.(*ast.KeyValueExpr); ok {
+			ast.Inspect(e.Value, inspectFunc)
+			return false
+		}
 		if id, ok := n.(*ast.Ident); ok {
 			if id.Obj == nil {
 				unresolved[id.Name] = true
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example_test.go gcc-4.8.1/libgo/go/go/doc/example_test.go
--- gcc-4.8.1.orig/libgo/go/go/doc/example_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/example_test.go	2013-10-01 16:06:44.148554281 +0000
@@ -18,6 +18,7 @@
 package foo_test
 
 import (
+	"flag"
 	"fmt"
 	"log"
 	"os/exec"
@@ -35,6 +36,38 @@
 	}
 	fmt.Printf("The date is %s\n", out)
 }
+
+func ExampleKeyValue() {
+	v := struct {
+		a string
+		b int
+	}{
+		a: "A",
+		b: 1,
+	}
+	fmt.Print(v)
+	// Output: a: "A", b: 1
+}
+
+func ExampleKeyValueImport() {
+	f := flag.Flag{
+		Name: "play",
+	}
+	fmt.Print(f)
+	// Output: Name: "play"
+}
+
+var keyValueTopDecl = struct {
+	a string
+	b int
+}{
+	a: "B",
+	b: 2,
+}
+
+func ExampleKeyValueTopDecl() {
+	fmt.Print(keyValueTopDecl)
+}
 `
 
 var exampleTestCases = []struct {
@@ -49,6 +82,20 @@
 		Name: "Import",
 		Play: exampleImportPlay,
 	},
+	{
+		Name:   "KeyValue",
+		Play:   exampleKeyValuePlay,
+		Output: "a: \"A\", b: 1\n",
+	},
+	{
+		Name:   "KeyValueImport",
+		Play:   exampleKeyValueImportPlay,
+		Output: "Name: \"play\"\n",
+	},
+	{
+		Name: "KeyValueTopDecl",
+		Play: "<nil>",
+	},
 }
 
 const exampleHelloPlay = `package main
@@ -78,6 +125,39 @@
 }
 `
 
+const exampleKeyValuePlay = `package main
+
+import (
+	"fmt"
+)
+
+func main() {
+	v := struct {
+		a string
+		b int
+	}{
+		a: "A",
+		b: 1,
+	}
+	fmt.Print(v)
+}
+`
+
+const exampleKeyValueImportPlay = `package main
+
+import (
+	"flag"
+	"fmt"
+)
+
+func main() {
+	f := flag.Flag{
+		Name: "play",
+	}
+	fmt.Print(f)
+}
+`
+
 func TestExamples(t *testing.T) {
 	fs := token.NewFileSet()
 	file, err := parser.ParseFile(fs, "test.go", strings.NewReader(exampleTestFile), parser.ParseComments)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/filter.go gcc-4.8.1/libgo/go/go/doc/filter.go
--- gcc-4.8.1.orig/libgo/go/go/doc/filter.go	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/filter.go	2013-10-01 16:06:44.148554281 +0000
@@ -94,7 +94,7 @@
 }
 
 // Filter eliminates documentation for names that don't pass through the filter f.
-// TODO: Recognize "Type.Method" as a name.
+// TODO(gri): Recognize "Type.Method" as a name.
 //
 func (p *Package) Filter(f Filter) {
 	p.Consts = filterValues(p.Consts, f)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/reader.go gcc-4.8.1/libgo/go/go/doc/reader.go
--- gcc-4.8.1.orig/libgo/go/go/doc/reader.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/reader.go	2013-10-01 16:06:44.152554280 +0000
@@ -148,7 +148,7 @@
 	// package properties
 	doc       string // package documentation, if any
 	filenames []string
-	bugs      []string
+	notes     map[string][]*Note
 
 	// declarations
 	imports map[string]int
@@ -400,10 +400,57 @@
 }
 
 var (
-	bug_markers = regexp.MustCompile("^/[/*][ \t]*BUG\\(.*\\):[ \t]*") // BUG(uid):
-	bug_content = regexp.MustCompile("[^ \n\r\t]+")                    // at least one non-whitespace char
+	noteMarker    = `([A-Z][A-Z]+)\(([^)]+)\):?`                    // MARKER(uid), MARKER at least 2 chars, uid at least 1 char
+	noteMarkerRx  = regexp.MustCompile(`^[ \t]*` + noteMarker)      // MARKER(uid) at text start
+	noteCommentRx = regexp.MustCompile(`^/[/*][ \t]*` + noteMarker) // MARKER(uid) at comment start
 )
 
+// readNote collects a single note from a sequence of comments.
+//
+func (r *reader) readNote(list []*ast.Comment) {
+	text := (&ast.CommentGroup{List: list}).Text()
+	if m := noteMarkerRx.FindStringSubmatchIndex(text); m != nil {
+		// The note body starts after the marker.
+		// We remove any formatting so that we don't
+		// get spurious line breaks/indentation when
+		// showing the TODO body.
+		body := clean(text[m[1]:])
+		if body != "" {
+			marker := text[m[2]:m[3]]
+			r.notes[marker] = append(r.notes[marker], &Note{
+				Pos:  list[0].Pos(),
+				End:  list[len(list)-1].End(),
+				UID:  text[m[4]:m[5]],
+				Body: body,
+			})
+		}
+	}
+}
+
+// readNotes extracts notes from comments.
+// A note must start at the beginning of a comment with "MARKER(uid):"
+// and is followed by the note body (e.g., "// BUG(gri): fix this").
+// The note ends at the end of the comment group or at the start of
+// another note in the same comment group, whichever comes first.
+//
+func (r *reader) readNotes(comments []*ast.CommentGroup) {
+	for _, group := range comments {
+		i := -1 // comment index of most recent note start, valid if >= 0
+		list := group.List
+		for j, c := range list {
+			if noteCommentRx.MatchString(c.Text) {
+				if i >= 0 {
+					r.readNote(list[i:j])
+				}
+				i = j
+			}
+		}
+		if i >= 0 {
+			r.readNote(list[i:])
+		}
+	}
+}
+
 // readFile adds the AST for a source file to the reader.
 //
 func (r *reader) readFile(src *ast.File) {
@@ -469,19 +516,8 @@
 		}
 	}
 
-	// collect BUG(...) comments
-	for _, c := range src.Comments {
-		text := c.List[0].Text
-		if m := bug_markers.FindStringIndex(text); m != nil {
-			// found a BUG comment; maybe empty
-			if btxt := text[m[1]:]; bug_content.MatchString(btxt) {
-				// non-empty BUG comment; collect comment without BUG prefix
-				list := append([]*ast.Comment(nil), c.List...) // make a copy
-				list[0].Text = text[m[1]:]
-				r.bugs = append(r.bugs, (&ast.CommentGroup{List: list}).Text())
-			}
-		}
-	}
+	// collect MARKER(...): annotations
+	r.readNotes(src.Comments)
 	src.Comments = nil // consumed unassociated comments - remove from AST
 }
 
@@ -492,6 +528,7 @@
 	r.mode = mode
 	r.types = make(map[string]*namedType)
 	r.funcs = make(methodSet)
+	r.notes = make(map[string][]*Note)
 
 	// sort package files before reading them so that the
 	// result does not depend on map iteration order
@@ -522,10 +559,13 @@
 
 	// copy existing receiver field and set new type
 	newField := *f.Decl.Recv.List[0]
+	origPos := newField.Type.Pos()
 	_, origRecvIsPtr := newField.Type.(*ast.StarExpr)
-	var typ ast.Expr = ast.NewIdent(recvTypeName)
+	newIdent := &ast.Ident{NamePos: origPos, Name: recvTypeName}
+	var typ ast.Expr = newIdent
 	if !embeddedIsPtr && origRecvIsPtr {
-		typ = &ast.StarExpr{X: typ}
+		newIdent.NamePos++ // '*' is one character
+		typ = &ast.StarExpr{Star: origPos, X: newIdent}
 	}
 	newField.Type = typ
 
@@ -750,6 +790,17 @@
 	return list
 }
 
+// noteBodies returns a list of note body strings given a list of notes.
+// This is only used to populate the deprecated Package.Bugs field.
+//
+func noteBodies(notes []*Note) []string {
+	var list []string
+	for _, n := range notes {
+		list = append(list, n.Body)
+	}
+	return list
+}
+
 // ----------------------------------------------------------------------------
 // Predeclared identifiers
 
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden	2013-10-01 16:06:44.152554280 +0000
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden	2012-02-01 19:26:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden	2013-10-01 16:06:44.152554280 +0000
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden	2013-10-01 16:06:44.152554280 +0000
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go gcc-4.8.1/libgo/go/go/doc/testdata/a0.go
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a0.go	2013-10-01 16:06:44.152554280 +0000
@@ -6,3 +6,35 @@
 package a
 
 //BUG(uid): bug0
+
+//TODO(uid): todo0
+
+// A note with some spaces after it, should be ignored (watch out for
+// emacs modes that remove trailing whitespace).
+//NOTE(uid):
+
+// SECBUG(uid): sec hole 0
+// need to fix asap
+
+// Multiple notes may be in the same comment group and should be
+// recognized individually. Notes may start in the middle of a
+// comment group as long as they start at the beginning of an
+// individual comment.
+//
+// NOTE(foo): 1 of 4 - this is the first line of note 1
+// - note 1 continues on this 2nd line
+// - note 1 continues on this 3rd line
+// NOTE(foo): 2 of 4
+// NOTE(bar): 3 of 4
+/* NOTE(bar): 4 of 4 */
+// - this is the last line of note 4
+//
+//
+
+// NOTE(bam): This note which contains a (parenthesized) subphrase
+//            must appear in its entirety.
+
+// NOTE(xxx) The ':' after the marker and uid is optional.
+
+// NOTE(): NO uid - should not show up.
+// NOTE()  NO uid - should not show up.
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go gcc-4.8.1/libgo/go/go/doc/testdata/a1.go
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a1.go	2013-10-01 16:06:44.152554280 +0000
@@ -6,3 +6,7 @@
 package a
 
 //BUG(uid): bug1
+
+//TODO(uid): todo1
+
+//TODO(): ignored
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt gcc-4.8.1/libgo/go/go/doc/testdata/template.txt
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/doc/testdata/template.txt	2013-10-01 16:06:44.152554280 +0000
@@ -60,6 +60,9 @@
 {{end}}{{end}}{{end}}{{/*
 
 */}}{{with .Bugs}}
-BUGS
+BUGS .Bugs is now deprecated, please use .Notes instead
 {{range .}}	{{synopsis .}}
-{{end}}{{end}}
\ No newline at end of file
+{{end}}{{end}}{{with .Notes}}{{range $marker, $content := .}}
+{{$marker}}S
+{{range $content}}	{{synopsis .Body}} (uid: {{.UID}})
+{{end}}{{end}}{{end}}
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/go/format/format.go gcc-4.8.1/libgo/go/go/format/format.go
--- gcc-4.8.1.orig/libgo/go/go/format/format.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/format/format.go	2013-10-01 16:06:44.152554280 +0000
@@ -69,15 +69,14 @@
 	return config.Fprint(dst, fset, node)
 }
 
-// Source formats src in canonical gofmt style and writes the result to dst
-// or returns an I/O or syntax error. src is expected to be a syntactically
+// Source formats src in canonical gofmt style and returns the result
+// or an (I/O or syntax) error. src is expected to be a syntactically
 // correct Go source file, or a list of Go declarations or statements.
 //
 // If src is a partial source file, the leading and trailing space of src
 // is applied to the result (such that it has the same leading and trailing
-// space as src), and the formatted src is indented by the same amount as
-// the first line of src containing code. Imports are not sorted for partial
-// source files.
+// space as src), and the result is indented by the same amount as the first
+// line of src containing code. Imports are not sorted for partial source files.
 //
 func Source(src []byte) ([]byte, error) {
 	fset := token.NewFileSet()
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/error_test.go gcc-4.8.1/libgo/go/go/parser/error_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/error_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/parser/error_test.go	2013-10-01 16:06:44.152554280 +0000
@@ -89,8 +89,6 @@
 			prev = pos
 		}
 	}
-
-	panic("unreachable")
 }
 
 // compareErrors compares the map of expected error messages with the list
@@ -139,12 +137,13 @@
 		return
 	}
 
-	_, err = ParseFile(fsetErrs, filename, src, DeclarationErrors)
+	_, err = ParseFile(fsetErrs, filename, src, DeclarationErrors|AllErrors)
 	found, ok := err.(scanner.ErrorList)
 	if err != nil && !ok {
 		t.Error(err)
 		return
 	}
+	found.RemoveMultiples()
 
 	// we are expecting the following errors
 	// (collect these after parsing a file so that it is found in the file set)
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/interface.go gcc-4.8.1/libgo/go/go/parser/interface.go
--- gcc-4.8.1.orig/libgo/go/go/parser/interface.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/parser/interface.go	2013-10-01 16:06:44.152554280 +0000
@@ -52,12 +52,13 @@
 type Mode uint
 
 const (
-	PackageClauseOnly Mode = 1 << iota // parsing stops after package clause
-	ImportsOnly                        // parsing stops after import declarations
-	ParseComments                      // parse comments and add them to AST
-	Trace                              // print a trace of parsed productions
-	DeclarationErrors                  // report declaration errors
-	SpuriousErrors                     // report all (not just the first) errors per line
+	PackageClauseOnly Mode             = 1 << iota // stop parsing after package clause
+	ImportsOnly                                    // stop parsing after import declarations
+	ParseComments                                  // parse comments and add them to AST
+	Trace                                          // print a trace of parsed productions
+	DeclarationErrors                              // report declaration errors
+	SpuriousErrors                                 // same as AllErrors, for backward-compatibility
+	AllErrors         = SpuriousErrors             // report all errors (not just the first 10 on different lines)
 )
 
 // ParseFile parses the source code of a single Go source file and returns
@@ -79,35 +80,39 @@
 // representing the fragments of erroneous source code). Multiple errors
 // are returned via a scanner.ErrorList which is sorted by file position.
 //
-func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode) (*ast.File, error) {
+func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode) (f *ast.File, err error) {
 	// get source
 	text, err := readSource(filename, src)
 	if err != nil {
 		return nil, err
 	}
 
-	// parse source
 	var p parser
-	p.init(fset, filename, text, mode)
-	f := p.parseFile()
-	if f == nil {
-		// source is not a valid Go source file - satisfy
-		// ParseFile API and return a valid (but) empty
-		// *ast.File
-		f = &ast.File{
-			Name:  new(ast.Ident),
-			Scope: ast.NewScope(nil),
+	defer func() {
+		if e := recover(); e != nil {
+			_ = e.(bailout) // re-panics if it's not a bailout
+		}
+
+		// set result values
+		if f == nil {
+			// source is not a valid Go source file - satisfy
+			// ParseFile API and return a valid (but) empty
+			// *ast.File
+			f = &ast.File{
+				Name:  new(ast.Ident),
+				Scope: ast.NewScope(nil),
+			}
 		}
-	}
 
-	// sort errors
-	if p.mode&SpuriousErrors == 0 {
-		p.errors.RemoveMultiples()
-	} else {
 		p.errors.Sort()
-	}
+		err = p.errors.Err()
+	}()
+
+	// parse source
+	p.init(fset, filename, text, mode)
+	f = p.parseFile()
 
-	return f, p.errors.Err()
+	return
 }
 
 // ParseDir calls ParseFile for the files in the directory specified by path and
@@ -157,16 +162,27 @@
 }
 
 // ParseExpr is a convenience function for obtaining the AST of an expression x.
-// The position information recorded in the AST is undefined.
+// The position information recorded in the AST is undefined. The filename used
+// in error messages is the empty string.
 //
 func ParseExpr(x string) (ast.Expr, error) {
-	// parse x within the context of a complete package for correct scopes;
-	// use //line directive for correct positions in error messages and put
-	// x alone on a separate line (handles line comments), followed by a ';'
-	// to force an error if the expression is incomplete
-	file, err := ParseFile(token.NewFileSet(), "", "package p;func _(){_=\n//line :1\n"+x+"\n;}", 0)
-	if err != nil {
-		return nil, err
+	var p parser
+	p.init(token.NewFileSet(), "", []byte(x), 0)
+
+	// Set up pkg-level scopes to avoid nil-pointer errors.
+	// This is not needed for a correct expression x as the
+	// parser will be ok with a nil topScope, but be cautious
+	// in case of an erroneous x.
+	p.openScope()
+	p.pkgScope = p.topScope
+	e := p.parseRhsOrType()
+	p.closeScope()
+	assert(p.topScope == nil, "unbalanced scopes")
+
+	if p.errors.Len() > 0 {
+		p.errors.Sort()
+		return nil, p.errors.Err()
 	}
-	return file.Decls[0].(*ast.FuncDecl).Body.List[0].(*ast.AssignStmt).Rhs[0], nil
+
+	return e, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser.go gcc-4.8.1/libgo/go/go/parser/parser.go
--- gcc-4.8.1.orig/libgo/go/go/parser/parser.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/parser/parser.go	2013-10-01 16:06:44.152554280 +0000
@@ -48,7 +48,8 @@
 	syncCnt int       // number of calls to syncXXX without progress
 
 	// Non-syntactic parser control
-	exprLev int // < 0: in control clause, >= 0: in expression
+	exprLev int  // < 0: in control clause, >= 0: in expression
+	inRhs   bool // if set, the parser is parsing a rhs expression
 
 	// Ordinary identifier scopes
 	pkgScope   *ast.Scope        // pkgScope.Outer == nil
@@ -340,8 +341,26 @@
 	}
 }
 
+// A bailout panic is raised to indicate early termination.
+type bailout struct{}
+
 func (p *parser) error(pos token.Pos, msg string) {
-	p.errors.Add(p.file.Position(pos), msg)
+	epos := p.file.Position(pos)
+
+	// If AllErrors is not set, discard errors reported on the same line
+	// as the last recorded error and stop parsing if there are more than
+	// 10 errors.
+	if p.mode&AllErrors == 0 {
+		n := len(p.errors)
+		if n > 0 && p.errors[n-1].Pos.Line == epos.Line {
+			return // discard - likely a spurious error
+		}
+		if n > 10 {
+			panic(bailout{})
+		}
+	}
+
+	p.errors.Add(epos, msg)
 }
 
 func (p *parser) errorExpected(pos token.Pos, msg string) {
@@ -521,6 +540,8 @@
 }
 
 func (p *parser) parseLhsList() []ast.Expr {
+	old := p.inRhs
+	p.inRhs = false
 	list := p.parseExprList(true)
 	switch p.tok {
 	case token.DEFINE:
@@ -542,11 +563,16 @@
 			p.resolve(x)
 		}
 	}
+	p.inRhs = old
 	return list
 }
 
 func (p *parser) parseRhsList() []ast.Expr {
-	return p.parseExprList(false)
+	old := p.inRhs
+	p.inRhs = true
+	list := p.parseExprList(false)
+	p.inRhs = old
+	return list
 }
 
 // ----------------------------------------------------------------------------
@@ -1211,11 +1237,11 @@
 	// In the former case we are done, and in the latter case we don't
 	// care because the type checker will do a separate field lookup.
 	//
-	// If the key does not resolve, it must a) be defined at the top-
-	// level in another file of the same package or be undeclared, or
-	// b) it is a struct field. In the former case, the type checker
-	// can do a top-level lookup, and in the latter case it will do a
-	// separate field lookup.
+	// If the key does not resolve, it a) must be defined at the top
+	// level in another file of the same package, the universe scope, or be
+	// undeclared; or b) it is a struct field. In the former case, the type
+	// checker can do a top-level lookup, and in the latter case it will do
+	// a separate field lookup.
 	x := p.checkExpr(p.parseExpr(keyOk))
 	if keyOk {
 		if p.tok == token.COLON {
@@ -1487,6 +1513,14 @@
 	return p.parsePrimaryExpr(lhs)
 }
 
+func (p *parser) tokPrec() (token.Token, int) {
+	tok := p.tok
+	if p.inRhs && tok == token.ASSIGN {
+		tok = token.EQL
+	}
+	return tok, tok.Precedence()
+}
+
 // If lhs is set and the result is an identifier, it is not resolved.
 func (p *parser) parseBinaryExpr(lhs bool, prec1 int) ast.Expr {
 	if p.trace {
@@ -1494,10 +1528,13 @@
 	}
 
 	x := p.parseUnaryExpr(lhs)
-	for prec := p.tok.Precedence(); prec >= prec1; prec-- {
-		for p.tok.Precedence() == prec {
-			pos, op := p.pos, p.tok
-			p.next()
+	for _, prec := p.tokPrec(); prec >= prec1; prec-- {
+		for {
+			op, oprec := p.tokPrec()
+			if oprec != prec {
+				break
+			}
+			pos := p.expect(op)
 			if lhs {
 				p.resolve(x)
 				lhs = false
@@ -1523,11 +1560,19 @@
 }
 
 func (p *parser) parseRhs() ast.Expr {
-	return p.checkExpr(p.parseExpr(false))
+	old := p.inRhs
+	p.inRhs = true
+	x := p.checkExpr(p.parseExpr(false))
+	p.inRhs = old
+	return x
 }
 
 func (p *parser) parseRhsOrType() ast.Expr {
-	return p.checkExprOrType(p.parseExpr(false))
+	old := p.inRhs
+	p.inRhs = true
+	x := p.checkExprOrType(p.parseExpr(false))
+	p.inRhs = old
+	return x
 }
 
 // ----------------------------------------------------------------------------
@@ -2073,7 +2118,7 @@
 // ----------------------------------------------------------------------------
 // Declarations
 
-type parseSpecFunction func(p *parser, doc *ast.CommentGroup, keyword token.Token, iota int) ast.Spec
+type parseSpecFunction func(doc *ast.CommentGroup, keyword token.Token, iota int) ast.Spec
 
 func isValidImport(lit string) bool {
 	const illegalChars = `!"#$%&'()*,:;<=>?[\]^{|}` + "`\uFFFD"
@@ -2192,12 +2237,12 @@
 		lparen = p.pos
 		p.next()
 		for iota := 0; p.tok != token.RPAREN && p.tok != token.EOF; iota++ {
-			list = append(list, f(p, p.leadComment, keyword, iota))
+			list = append(list, f(p.leadComment, keyword, iota))
 		}
 		rparen = p.expect(token.RPAREN)
 		p.expectSemi()
 	} else {
-		list = append(list, f(p, nil, keyword, 0))
+		list = append(list, f(nil, keyword, 0))
 	}
 
 	return &ast.GenDecl{
@@ -2298,10 +2343,10 @@
 	var f parseSpecFunction
 	switch p.tok {
 	case token.CONST, token.VAR:
-		f = (*parser).parseValueSpec
+		f = p.parseValueSpec
 
 	case token.TYPE:
-		f = (*parser).parseTypeSpec
+		f = p.parseTypeSpec
 
 	case token.FUNC:
 		return p.parseFuncDecl()
@@ -2353,7 +2398,7 @@
 	if p.mode&PackageClauseOnly == 0 {
 		// import decls
 		for p.tok == token.IMPORT {
-			decls = append(decls, p.parseGenDecl(token.IMPORT, (*parser).parseImportSpec))
+			decls = append(decls, p.parseGenDecl(token.IMPORT, p.parseImportSpec))
 		}
 
 		if p.mode&ImportsOnly == 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go gcc-4.8.1/libgo/go/go/parser/parser_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/parser/parser_test.go	2013-10-01 16:06:44.152554280 +0000
@@ -68,7 +68,7 @@
 
 func TestParseExpr(t *testing.T) {
 	// just kicking the tires:
-	// a valid expression
+	// a valid arithmetic expression
 	src := "a + b"
 	x, err := ParseExpr(src)
 	if err != nil {
@@ -79,6 +79,17 @@
 		t.Errorf("ParseExpr(%s): got %T, expected *ast.BinaryExpr", src, x)
 	}
 
+	// a valid type expression
+	src = "struct{x *int}"
+	x, err = ParseExpr(src)
+	if err != nil {
+		t.Fatalf("ParseExpr(%s): %v", src, err)
+	}
+	// sanity check
+	if _, ok := x.(*ast.StructType); !ok {
+		t.Errorf("ParseExpr(%s): got %T, expected *ast.StructType", src, x)
+	}
+
 	// an invalid expression
 	src = "a + *"
 	_, err = ParseExpr(src)
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/short_test.go gcc-4.8.1/libgo/go/go/parser/short_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/short_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/parser/short_test.go	2013-10-01 16:06:44.152554280 +0000
@@ -71,6 +71,9 @@
 	`package p; func f() { _ = (<-<- /* ERROR "expected 'chan'" */ chan int)(nil) };`,
 	`package p; func f() { _ = (<-chan<-chan<-chan<-chan<-chan<- /* ERROR "expected channel type" */ int)(nil) };`,
 	`package p; func f() { var t []int; t /* ERROR "expected identifier on left side of :=" */ [0] := 0 };`,
+	`package p; func f() { if x := g(); x = /* ERROR "expected '=='" */ 0 {}};`,
+	`package p; func f() { _ = x = /* ERROR "expected '=='" */ 0 {}};`,
+	`package p; func f() { _ = 1 == func()int { var x bool; x = x = /* ERROR "expected '=='" */ true; return x }() };`,
 }
 
 func TestInvalid(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/nodes.go gcc-4.8.1/libgo/go/go/printer/nodes.go
--- gcc-4.8.1.orig/libgo/go/go/printer/nodes.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/printer/nodes.go	2013-10-01 16:06:44.152554280 +0000
@@ -271,12 +271,12 @@
 			// if there are multiple parameter names for this par
 			// or the type is on a separate line)
 			var parLineBeg int
-			var parLineEnd = p.lineFor(par.Type.Pos())
 			if len(par.Names) > 0 {
 				parLineBeg = p.lineFor(par.Names[0].Pos())
 			} else {
-				parLineBeg = parLineEnd
+				parLineBeg = p.lineFor(par.Type.Pos())
 			}
+			var parLineEnd = p.lineFor(par.Type.End())
 			// separating "," if needed
 			needsLinebreak := 0 < prevLine && prevLine < parLineBeg
 			if i > 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/printer.go gcc-4.8.1/libgo/go/go/printer/printer.go
--- gcc-4.8.1.orig/libgo/go/go/printer/printer.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/printer/printer.go	2013-10-01 16:06:44.152554280 +0000
@@ -395,35 +395,6 @@
 	}
 }
 
-// Split comment text into lines
-// (using strings.Split(text, "\n") is significantly slower for
-// this specific purpose, as measured with: go test -bench=Print)
-//
-func split(text string) []string {
-	// count lines (comment text never ends in a newline)
-	n := 1
-	for i := 0; i < len(text); i++ {
-		if text[i] == '\n' {
-			n++
-		}
-	}
-
-	// split
-	lines := make([]string, n)
-	n = 0
-	i := 0
-	for j := 0; j < len(text); j++ {
-		if text[j] == '\n' {
-			lines[n] = text[i:j] // exclude newline
-			i = j + 1            // discard newline
-			n++
-		}
-	}
-	lines[n] = text[i:]
-
-	return lines
-}
-
 // Returns true if s contains only white space
 // (only tabs and blanks can appear in the printer's context).
 //
@@ -551,9 +522,7 @@
 			}
 			// Shorten the computed common prefix by the length of
 			// suffix, if it is found as suffix of the prefix.
-			if strings.HasSuffix(prefix, string(suffix)) {
-				prefix = prefix[0 : len(prefix)-len(suffix)]
-			}
+			prefix = strings.TrimSuffix(prefix, string(suffix))
 		}
 	}
 
@@ -618,7 +587,7 @@
 
 	// for /*-style comments, print line by line and let the
 	// write function take care of the proper indentation
-	lines := split(text)
+	lines := strings.Split(text, "\n")
 
 	// The comment started in the first column but is going
 	// to be indented. For an idempotent result, add indentation
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden
--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden	2013-10-01 16:06:44.152554280 +0000
@@ -912,3 +912,28 @@
 func _(x chan<- (chan int))
 func _(x chan<- (chan int))
 func _(x chan<- (chan int))
+
+// don't introduce comma after last parameter if the closing ) is on the same line
+// even if the parameter type itself is multi-line (test cases from issue 4533)
+func _(...interface{})
+func _(...interface {
+	m()
+	n()
+})	// no extra comma between } and )
+
+func (t *T) _(...interface{})
+func (t *T) _(...interface {
+	m()
+	n()
+})	// no extra comma between } and )
+
+func _(interface{})
+func _(interface {
+	m()
+})	// no extra comma between } and )
+
+func _(struct{})
+func _(struct {
+	x	int
+	y	int
+})	// no extra comma between } and )
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input
--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input	2013-10-01 16:06:44.152554280 +0000
@@ -921,3 +921,28 @@
 func _(x chan<-(chan int))
 func _(x (chan<-(chan int)))
 func _(x ((((chan<-(chan int))))))
+
+// don't introduce comma after last parameter if the closing ) is on the same line
+// even if the parameter type itself is multi-line (test cases from issue 4533)
+func _(...interface{})
+func _(...interface {
+	m()
+	n()
+}) // no extra comma between } and )
+
+func (t *T) _(...interface{})
+func (t *T) _(...interface {
+	m()
+	n()
+}) // no extra comma between } and )
+
+func _(interface{})
+func _(interface {
+	m()
+}) // no extra comma between } and )
+
+func _(struct{})
+func _(struct {
+	x int
+	y int
+}) // no extra comma between } and )
diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go gcc-4.8.1/libgo/go/go/scanner/scanner.go
--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/scanner/scanner.go	2013-10-01 16:06:44.152554280 +0000
@@ -48,6 +48,8 @@
 	ErrorCount int // number of errors encountered
 }
 
+const bom = 0xFEFF // byte order mark, only permitted as very first character
+
 // Read the next Unicode char into s.ch.
 // s.ch < 0 means end-of-file.
 //
@@ -67,6 +69,8 @@
 			r, w = utf8.DecodeRune(s.src[s.rdOffset:])
 			if r == utf8.RuneError && w == 1 {
 				s.error(s.offset, "illegal UTF-8 encoding")
+			} else if r == bom && s.offset > 0 {
+				s.error(s.offset, "illegal byte order mark")
 			}
 		}
 		s.rdOffset += w
@@ -125,8 +129,8 @@
 	s.ErrorCount = 0
 
 	s.next()
-	if s.ch == '\uFEFF' {
-		s.next() // ignore BOM
+	if s.ch == bom {
+		s.next() // ignore BOM at file beginning
 	}
 }
 
@@ -713,7 +717,10 @@
 		case '|':
 			tok = s.switch3(token.OR, token.OR_ASSIGN, '|', token.LOR)
 		default:
-			s.error(s.file.Offset(pos), fmt.Sprintf("illegal character %#U", ch))
+			// next reports unexpected BOMs - don't repeat
+			if ch != bom {
+				s.error(s.file.Offset(pos), fmt.Sprintf("illegal character %#U", ch))
+			}
 			insertSemi = s.insertSemi // preserve insertSemi info
 			tok = token.ILLEGAL
 			lit = string(ch)
diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go gcc-4.8.1/libgo/go/go/scanner/scanner_test.go
--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/scanner/scanner_test.go	2013-10-01 16:06:44.152554280 +0000
@@ -695,7 +695,10 @@
 	{"0X", token.INT, 0, "illegal hexadecimal number"},
 	{"\"abc\x00def\"", token.STRING, 4, "illegal character NUL"},
 	{"\"abc\x80def\"", token.STRING, 4, "illegal UTF-8 encoding"},
-	{"\ufeff\ufeff", token.ILLEGAL, 3, "illegal character U+FEFF"}, // only first BOM is ignored
+	{"\ufeff\ufeff", token.ILLEGAL, 3, "illegal byte order mark"},            // only first BOM is ignored
+	{"//\ufeff", token.COMMENT, 2, "illegal byte order mark"},                // only first BOM is ignored
+	{"'\ufeff" + `'`, token.CHAR, 1, "illegal byte order mark"},              // only first BOM is ignored
+	{`"` + "abc\ufeffdef" + `"`, token.STRING, 4, "illegal byte order mark"}, // only first BOM is ignored
 }
 
 func TestScanErrors(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/token/token.go gcc-4.8.1/libgo/go/go/token/token.go
--- gcc-4.8.1.orig/libgo/go/go/token/token.go	2012-01-25 20:56:26.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/token/token.go	2013-10-01 16:06:44.152554280 +0000
@@ -243,8 +243,8 @@
 // A set of constants for precedence-based expression parsing.
 // Non-operators have lowest precedence, followed by operators
 // starting with precedence 1 up to unary operators. The highest
-// precedence corresponds serves as "catch-all" precedence for
-// selector, indexing, and other operator and delimiter tokens.
+// precedence serves as "catch-all" precedence for selector,
+// indexing, and other operator and delimiter tokens.
 //
 const (
 	LowestPrec  = 0 // non-operators
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/api.go gcc-4.8.1/libgo/go/go/types/api.go
--- gcc-4.8.1.orig/libgo/go/go/types/api.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/api.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,96 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package types declares the data structures for representing
-// Go types and implements typechecking of package files.
-//
-// WARNING: THE TYPES API IS SUBJECT TO CHANGE.
-//
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// A Context specifies the supporting context for type checking.
-type Context struct {
-	IntSize int64 // size in bytes of int and uint values
-	PtrSize int64 // size in bytes of pointers
-
-	// If Error is not nil, it is called with each error found
-	// during type checking. Most error messages have accurate
-	// position information; those error strings are formatted
-	// filename:line:column: message.
-	Error func(err error)
-
-	// If Ident is not nil, it is called for each identifier id
-	// denoting an Object in the files provided to Check, and
-	// obj is the denoted object.
-	// Ident is not called for fields and methods in struct or
-	// interface types or composite literals, or for blank (_)
-	// or dot (.) identifiers in dot-imports.
-	// TODO(gri) Consider making Fields and Methods ordinary
-	// Objects - than we could lift this restriction.
-	Ident func(id *ast.Ident, obj Object)
-
-	// If Expr is not nil, it is called for each expression x that is
-	// type-checked: typ is the expression type, and val is the value
-	// if x is constant, val is nil otherwise.
-	//
-	// Constants are represented as follows:
-	//
-	//	bool     ->  bool
-	//	numeric  ->  int64, *big.Int, *big.Rat, Complex
-	//	string   ->  string
-	//	nil      ->  NilType
-	//
-	// Constant values are normalized, that is, they are represented
-	// using the "smallest" possible type that can represent the value.
-	// For instance, 1.0 is represented as an int64 because it can be
-	// represented accurately as an int64.
-	Expr func(x ast.Expr, typ Type, val interface{})
-
-	// If Import is not nil, it is used instead of GcImport.
-	Import Importer
-}
-
-// An Importer resolves import paths to Package objects.
-// The imports map records the packages already imported,
-// indexed by package id (canonical import path).
-// An Importer must determine the canonical import path and
-// check the map to see if it is already present in the imports map.
-// If so, the Importer can return the map entry.  Otherwise, the
-// Importer should load the package data for the given path into
-// a new *Package, record pkg in the imports map, and then
-// return pkg.
-type Importer func(imports map[string]*Package, path string) (pkg *Package, err error)
-
-// Default is the default context for type checking.
-var Default = Context{
-	// TODO(gri) Perhaps this should depend on GOARCH?
-	IntSize: 8,
-	PtrSize: 8,
-}
-
-// Check resolves and typechecks a set of package files within the given
-// context. The package files' ASTs are augmented by assigning types to
-// ast.Objects. If there are no errors, Check returns the package, otherwise
-// it returns the first error. If the context's Error handler is nil,
-// Check terminates as soon as the first error is encountered.
-//
-// CAUTION: At the moment, the returned *ast.Package only contains the package
-//          name and scope - the other fields are not set up. The returned
-//          *Package contains the name and imports (but no scope yet). Once
-//          we have the scope moved from *ast.Scope to *Scope, only *Package
-//          will be returned.
-//
-func (ctxt *Context) Check(fset *token.FileSet, files []*ast.File) (*Package, error) {
-	return check(ctxt, fset, files)
-}
-
-// Check is shorthand for Default.Check.
-func Check(fset *token.FileSet, files []*ast.File) (*Package, error) {
-	return Default.Check(fset, files)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/builtins.go gcc-4.8.1/libgo/go/go/types/builtins.go
--- gcc-4.8.1.orig/libgo/go/go/types/builtins.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/builtins.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,457 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of builtin function calls.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// builtin typechecks a built-in call. The built-in type is bin, and iota is the current
-// value of iota or -1 if iota doesn't have a value in the current context. The result
-// of the call is returned via x. If the call has type errors, the returned x is marked
-// as invalid (x.mode == invalid).
-//
-func (check *checker) builtin(x *operand, call *ast.CallExpr, bin *builtin, iota int) {
-	args := call.Args
-	id := bin.id
-
-	// declare before goto's
-	var arg0 ast.Expr // first argument, if present
-
-	// check argument count
-	n := len(args)
-	msg := ""
-	if n < bin.nargs {
-		msg = "not enough"
-	} else if !bin.isVariadic && n > bin.nargs {
-		msg = "too many"
-	}
-	if msg != "" {
-		check.invalidOp(call.Pos(), msg+" arguments for %s (expected %d, found %d)", call, bin.nargs, n)
-		goto Error
-	}
-
-	// common case: evaluate first argument if present;
-	// if it is an expression, x has the expression value
-	if n > 0 {
-		arg0 = args[0]
-		switch id {
-		case _Make, _New, _Trace:
-			// respective cases below do the work
-		default:
-			// argument must be an expression
-			check.expr(x, arg0, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-		}
-	}
-
-	switch id {
-	case _Append:
-		if _, ok := underlying(x.typ).(*Slice); !ok {
-			check.invalidArg(x.pos(), "%s is not a typed slice", x)
-			goto Error
-		}
-		resultTyp := x.typ
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-			// TODO(gri) check assignability
-		}
-		x.mode = value
-		x.typ = resultTyp
-
-	case _Cap, _Len:
-		mode := invalid
-		var val interface{}
-		switch typ := implicitDeref(underlying(x.typ)).(type) {
-		case *Basic:
-			if isString(typ) && id == _Len {
-				if x.mode == constant {
-					mode = constant
-					val = int64(len(x.val.(string)))
-				} else {
-					mode = value
-				}
-			}
-
-		case *Array:
-			mode = value
-			if !containsCallsOrReceives(arg0) {
-				mode = constant
-				val = typ.Len
-			}
-
-		case *Slice, *Chan:
-			mode = value
-
-		case *Map:
-			if id == _Len {
-				mode = value
-			}
-		}
-
-		if mode == invalid {
-			check.invalidArg(x.pos(), "%s for %s", x, bin.name)
-			goto Error
-		}
-		x.mode = mode
-		x.typ = Typ[Int]
-		x.val = val
-
-	case _Close:
-		ch, ok := underlying(x.typ).(*Chan)
-		if !ok {
-			check.invalidArg(x.pos(), "%s is not a channel", x)
-			goto Error
-		}
-		if ch.Dir&ast.SEND == 0 {
-			check.invalidArg(x.pos(), "%s must not be a receive-only channel", x)
-			goto Error
-		}
-		x.mode = novalue
-
-	case _Complex:
-		if !check.complexArg(x) {
-			goto Error
-		}
-
-		var y operand
-		check.expr(&y, args[1], nil, iota)
-		if y.mode == invalid {
-			goto Error
-		}
-		if !check.complexArg(&y) {
-			goto Error
-		}
-
-		check.convertUntyped(x, y.typ)
-		if x.mode == invalid {
-			goto Error
-		}
-		check.convertUntyped(&y, x.typ)
-		if y.mode == invalid {
-			goto Error
-		}
-
-		if !IsIdentical(x.typ, y.typ) {
-			check.invalidArg(x.pos(), "mismatched types %s and %s", x.typ, y.typ)
-			goto Error
-		}
-
-		typ := underlying(x.typ).(*Basic)
-		if x.mode == constant && y.mode == constant {
-			x.val = binaryOpConst(x.val, toImagConst(y.val), token.ADD, typ)
-		} else {
-			x.mode = value
-		}
-
-		switch typ.Kind {
-		case Float32:
-			x.typ = Typ[Complex64]
-		case Float64:
-			x.typ = Typ[Complex128]
-		case UntypedInt, UntypedRune, UntypedFloat:
-			x.typ = Typ[UntypedComplex]
-		default:
-			check.invalidArg(x.pos(), "float32 or float64 arguments expected")
-			goto Error
-		}
-
-	case _Copy:
-		var y operand
-		check.expr(&y, args[1], nil, iota)
-		if y.mode == invalid {
-			goto Error
-		}
-
-		var dst, src Type
-		if t, ok := underlying(x.typ).(*Slice); ok {
-			dst = t.Elt
-		}
-		switch t := underlying(y.typ).(type) {
-		case *Basic:
-			if isString(y.typ) {
-				src = Typ[Byte]
-			}
-		case *Slice:
-			src = t.Elt
-		}
-
-		if dst == nil || src == nil {
-			check.invalidArg(x.pos(), "copy expects slice arguments; found %s and %s", x, &y)
-			goto Error
-		}
-
-		if !IsIdentical(dst, src) {
-			check.invalidArg(x.pos(), "arguments to copy %s and %s have different element types %s and %s", x, &y, dst, src)
-			goto Error
-		}
-
-		x.mode = value
-		x.typ = Typ[Int]
-
-	case _Delete:
-		m, ok := underlying(x.typ).(*Map)
-		if !ok {
-			check.invalidArg(x.pos(), "%s is not a map", x)
-			goto Error
-		}
-		check.expr(x, args[1], nil, iota)
-		if x.mode == invalid {
-			goto Error
-		}
-		if !x.isAssignable(m.Key) {
-			check.invalidArg(x.pos(), "%s is not assignable to %s", x, m.Key)
-			goto Error
-		}
-		x.mode = novalue
-
-	case _Imag, _Real:
-		if !isComplex(x.typ) {
-			check.invalidArg(x.pos(), "%s must be a complex number", x)
-			goto Error
-		}
-		if x.mode == constant {
-			// nothing to do for x.val == 0
-			if !isZeroConst(x.val) {
-				c := x.val.(Complex)
-				if id == _Real {
-					x.val = c.Re
-				} else {
-					x.val = c.Im
-				}
-			}
-		} else {
-			x.mode = value
-		}
-		k := Invalid
-		switch underlying(x.typ).(*Basic).Kind {
-		case Complex64:
-			k = Float32
-		case Complex128:
-			k = Float64
-		case UntypedComplex:
-			k = UntypedFloat
-		default:
-			unreachable()
-		}
-		x.typ = Typ[k]
-
-	case _Make:
-		resultTyp := check.typ(arg0, false)
-		if resultTyp == Typ[Invalid] {
-			goto Error
-		}
-		var min int // minimum number of arguments
-		switch underlying(resultTyp).(type) {
-		case *Slice:
-			min = 2
-		case *Map, *Chan:
-			min = 1
-		default:
-			check.invalidArg(arg0.Pos(), "cannot make %s; type must be slice, map, or channel", arg0)
-			goto Error
-		}
-		if n := len(args); n < min || min+1 < n {
-			check.errorf(call.Pos(), "%s expects %d or %d arguments; found %d", call, min, min+1, n)
-			goto Error
-		}
-		var sizes []interface{} // constant integer arguments, if any
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, iota)
-			if x.isInteger() {
-				if x.mode == constant {
-					if isNegConst(x.val) {
-						check.invalidArg(x.pos(), "%s must not be negative", x)
-						// safe to continue
-					} else {
-						sizes = append(sizes, x.val) // x.val >= 0
-					}
-				}
-			} else {
-				check.invalidArg(x.pos(), "%s must be an integer", x)
-				// safe to continue
-			}
-		}
-		if len(sizes) == 2 && compareConst(sizes[0], sizes[1], token.GTR) {
-			check.invalidArg(args[1].Pos(), "length and capacity swapped")
-			// safe to continue
-		}
-		x.mode = variable
-		x.typ = resultTyp
-
-	case _New:
-		resultTyp := check.typ(arg0, false)
-		if resultTyp == Typ[Invalid] {
-			goto Error
-		}
-		x.mode = variable
-		x.typ = &Pointer{Base: resultTyp}
-
-	case _Panic, _Print, _Println:
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, -1)
-		}
-		x.mode = novalue
-
-	case _Recover:
-		x.mode = value
-		x.typ = new(Interface)
-
-	case _Alignof:
-		x.mode = constant
-		x.typ = Typ[Uintptr]
-		// For now we return 1 always as it satisfies the spec's alignment guarantees.
-		// TODO(gri) Extend typechecker API so that platform-specific values can be
-		//           provided.
-		x.val = int64(1)
-
-	case _Offsetof:
-		if _, ok := unparen(x.expr).(*ast.SelectorExpr); !ok {
-			check.invalidArg(x.pos(), "%s is not a selector", x)
-			goto Error
-		}
-		x.mode = constant
-		x.typ = Typ[Uintptr]
-		// because of the size guarantees for basic types (> 0 for some),
-		// returning 0 is only correct if two distinct non-zero size
-		// structs can have the same address (the spec permits that)
-		x.val = int64(0)
-
-	case _Sizeof:
-		x.mode = constant
-		x.val = sizeof(check.ctxt, x.typ)
-		x.typ = Typ[Uintptr]
-
-	case _Assert:
-		// assert(pred) causes a typechecker error if pred is false.
-		// The result of assert is the value of pred if there is no error.
-		// Note: assert is only available in self-test mode.
-		if x.mode != constant || !isBoolean(x.typ) {
-			check.invalidArg(x.pos(), "%s is not a boolean constant", x)
-			goto Error
-		}
-		pred, ok := x.val.(bool)
-		if !ok {
-			check.errorf(x.pos(), "internal error: value of %s should be a boolean constant", x)
-			goto Error
-		}
-		if !pred {
-			check.errorf(call.Pos(), "%s failed", call)
-			// compile-time assertion failure - safe to continue
-		}
-
-	case _Trace:
-		// trace(x, y, z, ...) dumps the positions, expressions, and
-		// values of its arguments. The result of trace is the value
-		// of the first argument.
-		// Note: trace is only available in self-test mode.
-		if len(args) == 0 {
-			check.dump("%s: trace() without arguments", call.Pos())
-			x.mode = novalue
-			x.expr = call
-			return
-		}
-		var t operand
-		x1 := x
-		for _, arg := range args {
-			check.rawExpr(x1, arg, nil, iota, true) // permit trace for types, e.g.: new(trace(T))
-			check.dump("%s: %s", x1.pos(), x1)
-			x1 = &t // use incoming x only for first argument
-		}
-
-	default:
-		check.invalidAST(call.Pos(), "unknown builtin id %d", id)
-		goto Error
-	}
-
-	x.expr = call
-	return
-
-Error:
-	x.mode = invalid
-	x.expr = call
-}
-
-// implicitDeref returns A if typ is of the form *A and A is an array;
-// otherwise it returns typ.
-//
-func implicitDeref(typ Type) Type {
-	if p, ok := typ.(*Pointer); ok {
-		if a, ok := underlying(p.Base).(*Array); ok {
-			return a
-		}
-	}
-	return typ
-}
-
-// containsCallsOrReceives returns true if the expression x contains
-// function calls or channel receives; it returns false otherwise.
-//
-func containsCallsOrReceives(x ast.Expr) bool {
-	res := false
-	ast.Inspect(x, func(x ast.Node) bool {
-		switch x := x.(type) {
-		case *ast.CallExpr:
-			res = true
-			return false
-		case *ast.UnaryExpr:
-			if x.Op == token.ARROW {
-				res = true
-				return false
-			}
-		}
-		return true
-	})
-	return res
-}
-
-// unparen removes any parentheses surrounding an expression and returns
-// the naked expression.
-//
-func unparen(x ast.Expr) ast.Expr {
-	if p, ok := x.(*ast.ParenExpr); ok {
-		return unparen(p.X)
-	}
-	return x
-}
-
-func (check *checker) complexArg(x *operand) bool {
-	t, _ := underlying(x.typ).(*Basic)
-	if t != nil && (t.Info&IsFloat != 0 || t.Kind == UntypedInt || t.Kind == UntypedRune) {
-		return true
-	}
-	check.invalidArg(x.pos(), "%s must be a float32, float64, or an untyped non-complex numeric constant", x)
-	return false
-}
-
-func sizeof(ctxt *Context, typ Type) int64 {
-	switch typ := underlying(typ).(type) {
-	case *Basic:
-		switch typ.Kind {
-		case Int, Uint:
-			return ctxt.IntSize
-		case Uintptr:
-			return ctxt.PtrSize
-		}
-		return typ.Size
-	case *Array:
-		return sizeof(ctxt, typ.Elt) * typ.Len
-	case *Struct:
-		var size int64
-		for _, f := range typ.Fields {
-			size += sizeof(ctxt, f.Type)
-		}
-		return size
-	}
-	return ctxt.PtrSize // good enough
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/check.go gcc-4.8.1/libgo/go/go/types/check.go
--- gcc-4.8.1.orig/libgo/go/go/types/check.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/check.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,454 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements the Check function, which typechecks a package.
-
-package types
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// enable for debugging
-const trace = false
-
-type checker struct {
-	ctxt  *Context
-	fset  *token.FileSet
-	files []*ast.File
-
-	// lazily initialized
-	pkg       *Package                          // current package
-	firsterr  error                             // first error encountered
-	idents    map[*ast.Ident]Object             // maps identifiers to their unique object
-	objects   map[*ast.Object]Object            // maps *ast.Objects to their unique object
-	initspecs map[*ast.ValueSpec]*ast.ValueSpec // "inherited" type and initialization expressions for constant declarations
-	methods   map[*TypeName]*Scope              // maps type names to associated methods
-	funclist  []function                        // list of functions/methods with correct signatures and non-empty bodies
-	funcsig   *Signature                        // signature of currently typechecked function
-	pos       []token.Pos                       // stack of expr positions; debugging support, used if trace is set
-}
-
-func (check *checker) register(id *ast.Ident, obj Object) {
-	// When an expression is evaluated more than once (happens
-	// in rare cases, e.g. for statement expressions, see
-	// comment in stmt.go), the object has been registered
-	// before. Don't do anything in that case.
-	if alt := check.idents[id]; alt != nil {
-		assert(alt == obj)
-		return
-	}
-	check.idents[id] = obj
-	if f := check.ctxt.Ident; f != nil {
-		f(id, obj)
-	}
-}
-
-// lookup returns the unique Object denoted by the identifier.
-// For identifiers without assigned *ast.Object, it uses the
-// checker.idents map; for identifiers with an *ast.Object it
-// uses the checker.objects map.
-//
-// TODO(gri) Once identifier resolution is done entirely by
-//           the typechecker, only the idents map is needed.
-//
-func (check *checker) lookup(ident *ast.Ident) Object {
-	obj := check.idents[ident]
-	astObj := ident.Obj
-
-	if obj != nil {
-		assert(astObj == nil || check.objects[astObj] == nil || check.objects[astObj] == obj)
-		return obj
-	}
-
-	if astObj == nil {
-		return nil
-	}
-
-	if obj = check.objects[astObj]; obj == nil {
-		obj = newObj(astObj)
-		check.objects[astObj] = obj
-	}
-	check.register(ident, obj)
-
-	return obj
-}
-
-type function struct {
-	obj  *Func // for debugging/tracing only
-	sig  *Signature
-	body *ast.BlockStmt
-}
-
-// later adds a function with non-empty body to the list of functions
-// that need to be processed after all package-level declarations
-// are typechecked.
-//
-func (check *checker) later(f *Func, sig *Signature, body *ast.BlockStmt) {
-	// functions implemented elsewhere (say in assembly) have no body
-	if body != nil {
-		check.funclist = append(check.funclist, function{f, sig, body})
-	}
-}
-
-func (check *checker) declareIdent(scope *Scope, ident *ast.Ident, obj Object) {
-	assert(check.lookup(ident) == nil) // identifier already declared or resolved
-	check.register(ident, obj)
-	if ident.Name != "_" {
-		if alt := scope.Insert(obj); alt != nil {
-			prevDecl := ""
-			if pos := alt.GetPos(); pos.IsValid() {
-				prevDecl = fmt.Sprintf("\n\tprevious declaration at %s", check.fset.Position(pos))
-			}
-			check.errorf(ident.Pos(), fmt.Sprintf("%s redeclared in this block%s", ident.Name, prevDecl))
-		}
-	}
-}
-
-func (check *checker) valueSpec(pos token.Pos, obj Object, lhs []*ast.Ident, spec *ast.ValueSpec, iota int) {
-	if len(lhs) == 0 {
-		check.invalidAST(pos, "missing lhs in declaration")
-		return
-	}
-
-	// determine type for all of lhs, if any
-	// (but only set it for the object we typecheck!)
-	var typ Type
-	if spec.Type != nil {
-		typ = check.typ(spec.Type, false)
-	}
-
-	// len(lhs) > 0
-	rhs := spec.Values
-	if len(lhs) == len(rhs) {
-		// check only lhs and rhs corresponding to obj
-		var l, r ast.Expr
-		for i, name := range lhs {
-			if check.lookup(name) == obj {
-				l = lhs[i]
-				r = rhs[i]
-				break
-			}
-		}
-		assert(l != nil)
-		switch obj := obj.(type) {
-		case *Const:
-			obj.Type = typ
-		case *Var:
-			obj.Type = typ
-		default:
-			unreachable()
-		}
-		check.assign1to1(l, r, nil, true, iota)
-		return
-	}
-
-	// there must be a type or initialization expressions
-	if typ == nil && len(rhs) == 0 {
-		check.invalidAST(pos, "missing type or initialization expression")
-		typ = Typ[Invalid]
-	}
-
-	// if we have a type, mark all of lhs
-	if typ != nil {
-		for _, name := range lhs {
-			switch obj := check.lookup(name).(type) {
-			case *Const:
-				obj.Type = typ
-			case *Var:
-				obj.Type = typ
-			default:
-				unreachable()
-			}
-		}
-	}
-
-	// check initial values, if any
-	if len(rhs) > 0 {
-		// TODO(gri) should try to avoid this conversion
-		lhx := make([]ast.Expr, len(lhs))
-		for i, e := range lhs {
-			lhx[i] = e
-		}
-		check.assignNtoM(lhx, rhs, true, iota)
-	}
-}
-
-// object typechecks an object by assigning it a type.
-//
-func (check *checker) object(obj Object, cycleOk bool) {
-	switch obj := obj.(type) {
-	case *Package:
-		// nothing to do
-	case *Const:
-		if obj.Type != nil {
-			return // already checked
-		}
-		// The obj.Val field for constants is initialized to its respective
-		// iota value by the parser.
-		// The object's fields can be in one of the following states:
-		// Type != nil  =>  the constant value is Val
-		// Type == nil  =>  the constant is not typechecked yet, and Val can be:
-		// Val  is int  =>  Val is the value of iota for this declaration
-		// Val  == nil  =>  the object's expression is being evaluated
-		if obj.Val == nil {
-			check.errorf(obj.GetPos(), "illegal cycle in initialization of %s", obj.Name)
-			obj.Type = Typ[Invalid]
-			return
-		}
-		spec := obj.spec
-		iota := obj.Val.(int)
-		obj.Val = nil // mark obj as "visited" for cycle detection
-		// determine spec for type and initialization expressions
-		init := spec
-		if len(init.Values) == 0 {
-			init = check.initspecs[spec]
-		}
-		check.valueSpec(spec.Pos(), obj, spec.Names, init, iota)
-
-	case *Var:
-		if obj.Type != nil {
-			return // already checked
-		}
-		if obj.visited {
-			check.errorf(obj.GetPos(), "illegal cycle in initialization of %s", obj.Name)
-			obj.Type = Typ[Invalid]
-			return
-		}
-		spec := obj.decl.(*ast.ValueSpec)
-		obj.visited = true
-		check.valueSpec(spec.Pos(), obj, spec.Names, spec, 0)
-
-	case *TypeName:
-		if obj.Type != nil {
-			return // already checked
-		}
-		typ := &NamedType{Obj: obj}
-		obj.Type = typ // "mark" object so recursion terminates
-		typ.Underlying = underlying(check.typ(obj.spec.Type, cycleOk))
-		// typecheck associated method signatures
-		if scope := check.methods[obj]; scope != nil {
-			switch t := typ.Underlying.(type) {
-			case *Struct:
-				// struct fields must not conflict with methods
-				for _, f := range t.Fields {
-					if m := scope.Lookup(f.Name); m != nil {
-						check.errorf(m.GetPos(), "type %s has both field and method named %s", obj.Name, f.Name)
-						// ok to continue
-					}
-				}
-			case *Interface:
-				// methods cannot be associated with an interface type
-				for _, m := range scope.Entries {
-					recv := m.(*Func).decl.Recv.List[0].Type
-					check.errorf(recv.Pos(), "invalid receiver type %s (%s is an interface type)", obj.Name, obj.Name)
-					// ok to continue
-				}
-			}
-			// typecheck method signatures
-			var methods []*Method
-			for _, obj := range scope.Entries {
-				m := obj.(*Func)
-				sig := check.typ(m.decl.Type, cycleOk).(*Signature)
-				params, _ := check.collectParams(m.decl.Recv, false)
-				sig.Recv = params[0] // the parser/assocMethod ensure there is exactly one parameter
-				m.Type = sig
-				methods = append(methods, &Method{QualifiedName{check.pkg, m.Name}, sig})
-				check.later(m, sig, m.decl.Body)
-			}
-			typ.Methods = methods
-			delete(check.methods, obj) // we don't need this scope anymore
-		}
-
-	case *Func:
-		if obj.Type != nil {
-			return // already checked
-		}
-		fdecl := obj.decl
-		// methods are typechecked when their receivers are typechecked
-		if fdecl.Recv == nil {
-			sig := check.typ(fdecl.Type, cycleOk).(*Signature)
-			if obj.Name == "init" && (len(sig.Params) != 0 || len(sig.Results) != 0) {
-				check.errorf(fdecl.Pos(), "func init must have no arguments and no return values")
-				// ok to continue
-			}
-			obj.Type = sig
-			check.later(obj, sig, fdecl.Body)
-		}
-
-	default:
-		unreachable()
-	}
-}
-
-// assocInitvals associates "inherited" initialization expressions
-// with the corresponding *ast.ValueSpec in the check.initspecs map
-// for constant declarations without explicit initialization expressions.
-//
-func (check *checker) assocInitvals(decl *ast.GenDecl) {
-	var last *ast.ValueSpec
-	for _, s := range decl.Specs {
-		if s, ok := s.(*ast.ValueSpec); ok {
-			if len(s.Values) > 0 {
-				last = s
-			} else {
-				check.initspecs[s] = last
-			}
-		}
-	}
-	if last == nil {
-		check.invalidAST(decl.Pos(), "no initialization values provided")
-	}
-}
-
-// assocMethod associates a method declaration with the respective
-// receiver base type. meth.Recv must exist.
-//
-func (check *checker) assocMethod(meth *ast.FuncDecl) {
-	// The receiver type is one of the following (enforced by parser):
-	// - *ast.Ident
-	// - *ast.StarExpr{*ast.Ident}
-	// - *ast.BadExpr (parser error)
-	typ := meth.Recv.List[0].Type
-	if ptr, ok := typ.(*ast.StarExpr); ok {
-		typ = ptr.X
-	}
-	// determine receiver base type name
-	ident, ok := typ.(*ast.Ident)
-	if !ok {
-		// not an identifier - parser reported error already
-		return // ignore this method
-	}
-	// determine receiver base type object
-	var tname *TypeName
-	if obj := check.lookup(ident); obj != nil {
-		obj, ok := obj.(*TypeName)
-		if !ok {
-			check.errorf(ident.Pos(), "%s is not a type", ident.Name)
-			return // ignore this method
-		}
-		if obj.spec == nil {
-			check.errorf(ident.Pos(), "cannot define method on non-local type %s", ident.Name)
-			return // ignore this method
-		}
-		tname = obj
-	} else {
-		// identifier not declared/resolved - parser reported error already
-		return // ignore this method
-	}
-	// declare method in receiver base type scope
-	scope := check.methods[tname]
-	if scope == nil {
-		scope = new(Scope)
-		check.methods[tname] = scope
-	}
-	check.declareIdent(scope, meth.Name, &Func{Name: meth.Name.Name, decl: meth})
-}
-
-func (check *checker) decl(decl ast.Decl) {
-	switch d := decl.(type) {
-	case *ast.BadDecl:
-		// ignore
-	case *ast.GenDecl:
-		for _, spec := range d.Specs {
-			switch s := spec.(type) {
-			case *ast.ImportSpec:
-				// nothing to do (handled by check.resolve)
-			case *ast.ValueSpec:
-				for _, name := range s.Names {
-					check.object(check.lookup(name), false)
-				}
-			case *ast.TypeSpec:
-				check.object(check.lookup(s.Name), false)
-			default:
-				check.invalidAST(s.Pos(), "unknown ast.Spec node %T", s)
-			}
-		}
-	case *ast.FuncDecl:
-		// methods are checked when their respective base types are checked
-		if d.Recv != nil {
-			return
-		}
-		obj := check.lookup(d.Name)
-		// Initialization functions don't have an object associated with them
-		// since they are not in any scope. Create a dummy object for them.
-		if d.Name.Name == "init" {
-			assert(obj == nil) // all other functions should have an object
-			obj = &Func{Name: d.Name.Name, decl: d}
-			check.register(d.Name, obj)
-		}
-		check.object(obj, false)
-	default:
-		check.invalidAST(d.Pos(), "unknown ast.Decl node %T", d)
-	}
-}
-
-// A bailout panic is raised to indicate early termination.
-type bailout struct{}
-
-func check(ctxt *Context, fset *token.FileSet, files []*ast.File) (pkg *Package, err error) {
-	// initialize checker
-	check := checker{
-		ctxt:      ctxt,
-		fset:      fset,
-		files:     files,
-		idents:    make(map[*ast.Ident]Object),
-		objects:   make(map[*ast.Object]Object),
-		initspecs: make(map[*ast.ValueSpec]*ast.ValueSpec),
-		methods:   make(map[*TypeName]*Scope),
-	}
-
-	// handle panics
-	defer func() {
-		switch p := recover().(type) {
-		case nil, bailout:
-			// normal return or early exit
-			err = check.firsterr
-		default:
-			// unexpected panic: don't crash clients
-			panic(p) // enable for debugging
-			// TODO(gri) add a test case for this scenario
-			err = fmt.Errorf("types internal error: %v", p)
-		}
-	}()
-
-	// resolve identifiers
-	imp := ctxt.Import
-	if imp == nil {
-		imp = GcImport
-	}
-	pkg, methods := check.resolve(imp)
-	check.pkg = pkg
-
-	// associate methods with types
-	for _, m := range methods {
-		check.assocMethod(m)
-	}
-
-	// typecheck all declarations
-	for _, f := range check.files {
-		for _, d := range f.Decls {
-			check.decl(d)
-		}
-	}
-
-	// typecheck all function/method bodies
-	// (funclist may grow when checking statements - do not use range clause!)
-	for i := 0; i < len(check.funclist); i++ {
-		f := check.funclist[i]
-		if trace {
-			s := "<function literal>"
-			if f.obj != nil {
-				s = f.obj.Name
-			}
-			fmt.Println("---", s)
-		}
-		check.funcsig = f.sig
-		check.stmtList(f.body.List)
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/check_test.go gcc-4.8.1/libgo/go/go/types/check_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/check_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/check_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,262 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements a typechecker test harness. The packages specified
-// in tests are typechecked. Error messages reported by the typechecker are
-// compared against the error messages expected in the test files.
-//
-// Expected errors are indicated in the test files by putting a comment
-// of the form /* ERROR "rx" */ immediately following an offending token.
-// The harness will verify that an error matching the regular expression
-// rx is reported at that source position. Consecutive comments may be
-// used to indicate multiple errors for the same token position.
-//
-// For instance, the following test file indicates that a "not declared"
-// error should be reported for the undeclared variable x:
-//
-//	package p
-//	func f() {
-//		_ = x /* ERROR "not declared" */ + 1
-//	}
-
-package types
-
-import (
-	"flag"
-	"fmt"
-	"go/ast"
-	"go/parser"
-	"go/scanner"
-	"go/token"
-	"io/ioutil"
-	"os"
-	"regexp"
-	"testing"
-)
-
-var listErrors = flag.Bool("list", false, "list errors")
-
-// The test filenames do not end in .go so that they are invisible
-// to gofmt since they contain comments that must not change their
-// positions relative to surrounding tokens.
-
-var tests = []struct {
-	name  string
-	files []string
-}{
-	{"decls0", []string{"testdata/decls0.src"}},
-	{"decls1", []string{"testdata/decls1.src"}},
-	{"decls2", []string{"testdata/decls2a.src", "testdata/decls2b.src"}},
-	{"decls3", []string{"testdata/decls3.src"}},
-	{"const0", []string{"testdata/const0.src"}},
-	{"expr0", []string{"testdata/expr0.src"}},
-	{"expr1", []string{"testdata/expr1.src"}},
-	{"expr2", []string{"testdata/expr2.src"}},
-	{"expr3", []string{"testdata/expr3.src"}},
-	{"builtins", []string{"testdata/builtins.src"}},
-	{"conversions", []string{"testdata/conversions.src"}},
-	{"stmt0", []string{"testdata/stmt0.src"}},
-}
-
-var fset = token.NewFileSet()
-
-func getFile(filename string) (file *token.File) {
-	fset.Iterate(func(f *token.File) bool {
-		if f.Name() == filename {
-			file = f
-			return false // end iteration
-		}
-		return true
-	})
-	return file
-}
-
-// Positioned errors are of the form filename:line:column: message .
-var posMsgRx = regexp.MustCompile(`^(.*:[0-9]+:[0-9]+): *(.*)`)
-
-// splitError splits an error's error message into a position string
-// and the actual error message. If there's no position information,
-// pos is the empty string, and msg is the entire error message.
-//
-func splitError(err error) (pos, msg string) {
-	msg = err.Error()
-	if m := posMsgRx.FindStringSubmatch(msg); len(m) == 3 {
-		pos = m[1]
-		msg = m[2]
-	}
-	return
-}
-
-func parseFiles(t *testing.T, testname string, filenames []string) ([]*ast.File, []error) {
-	var files []*ast.File
-	var errlist []error
-	for _, filename := range filenames {
-		file, err := parser.ParseFile(fset, filename, nil, parser.DeclarationErrors)
-		if file == nil {
-			t.Fatalf("%s: could not parse file %s", testname, filename)
-		}
-		files = append(files, file)
-		if err != nil {
-			if list, _ := err.(scanner.ErrorList); len(list) > 0 {
-				for _, err := range list {
-					errlist = append(errlist, err)
-				}
-			} else {
-				errlist = append(errlist, err)
-			}
-		}
-	}
-	return files, errlist
-}
-
-// ERROR comments must be of the form /* ERROR "rx" */ and rx is
-// a regular expression that matches the expected error message.
-//
-var errRx = regexp.MustCompile(`^/\* *ERROR *"([^"]*)" *\*/$`)
-
-// errMap collects the regular expressions of ERROR comments found
-// in files and returns them as a map of error positions to error messages.
-//
-func errMap(t *testing.T, testname string, files []*ast.File) map[string][]string {
-	errmap := make(map[string][]string)
-
-	for _, file := range files {
-		filename := fset.Position(file.Package).Filename
-		src, err := ioutil.ReadFile(filename)
-		if err != nil {
-			t.Fatalf("%s: could not read %s", testname, filename)
-		}
-
-		var s scanner.Scanner
-		// file was parsed already - do not add it again to the file
-		// set otherwise the position information returned here will
-		// not match the position information collected by the parser
-		s.Init(getFile(filename), src, nil, scanner.ScanComments)
-		var prev string // position string of last non-comment, non-semicolon token
-
-	scanFile:
-		for {
-			pos, tok, lit := s.Scan()
-			switch tok {
-			case token.EOF:
-				break scanFile
-			case token.COMMENT:
-				s := errRx.FindStringSubmatch(lit)
-				if len(s) == 2 {
-					errmap[prev] = append(errmap[prev], string(s[1]))
-				}
-			case token.SEMICOLON:
-				// ignore automatically inserted semicolon
-				if lit == "\n" {
-					continue scanFile
-				}
-				fallthrough
-			default:
-				prev = fset.Position(pos).String()
-			}
-		}
-	}
-
-	return errmap
-}
-
-func eliminate(t *testing.T, errmap map[string][]string, errlist []error) {
-	for _, err := range errlist {
-		pos, msg := splitError(err)
-		list := errmap[pos]
-		index := -1 // list index of matching message, if any
-		// we expect one of the messages in list to match the error at pos
-		for i, msg := range list {
-			rx, err := regexp.Compile(msg)
-			if err != nil {
-				t.Errorf("%s: %v", pos, err)
-				continue
-			}
-			if rx.MatchString(msg) {
-				index = i
-				break
-			}
-		}
-		if index >= 0 {
-			// eliminate from list
-			if n := len(list) - 1; n > 0 {
-				// not the last entry - swap in last element and shorten list by 1
-				list[index] = list[n]
-				errmap[pos] = list[:n]
-			} else {
-				// last entry - remove list from map
-				delete(errmap, pos)
-			}
-		} else {
-			t.Errorf("%s: no error expected: %q", pos, msg)
-		}
-
-	}
-}
-
-func checkFiles(t *testing.T, testname string, testfiles []string) {
-	// parse files and collect parser errors
-	files, errlist := parseFiles(t, testname, testfiles)
-
-	// typecheck and collect typechecker errors
-	ctxt := Default
-	ctxt.Error = func(err error) { errlist = append(errlist, err) }
-	ctxt.Check(fset, files)
-
-	if *listErrors {
-		t.Errorf("--- %s: %d errors found:", testname, len(errlist))
-		for _, err := range errlist {
-			t.Error(err)
-		}
-		return
-	}
-
-	// match and eliminate errors
-	// we are expecting the following errors
-	// (collect these after parsing the files so that
-	// they are found in the file set)
-	errmap := errMap(t, testname, files)
-	eliminate(t, errmap, errlist)
-
-	// there should be no expected errors left
-	if len(errmap) > 0 {
-		t.Errorf("--- %s: %d source positions with expected (but not reported) errors:", testname, len(errmap))
-		for pos, list := range errmap {
-			for _, rx := range list {
-				t.Errorf("%s: %q", pos, rx)
-			}
-		}
-	}
-}
-
-var testBuiltinsDeclared = false
-
-func TestCheck(t *testing.T) {
-	// Does not work with gccgo, because it requires reading gc
-	// import files.
-	return
-
-	// Declare builtins for testing.
-	// Not done in an init func to avoid an init race with
-	// the construction of the Universe var.
-	if !testBuiltinsDeclared {
-		testBuiltinsDeclared = true
-		def(&Func{Name: "assert", Type: &builtin{_Assert, "assert", 1, false, true}})
-		def(&Func{Name: "trace", Type: &builtin{_Trace, "trace", 0, true, true}})
-	}
-
-	// For easy debugging w/o changing the testing code,
-	// if there is a local test file, only test that file.
-	const testfile = "testdata/test.go"
-	if fi, err := os.Stat(testfile); err == nil && !fi.IsDir() {
-		fmt.Printf("WARNING: Testing only %s (remove it to run all tests)\n", testfile)
-		checkFiles(t, testfile, []string{testfile})
-		return
-	}
-
-	// Otherwise, run all the tests.
-	for _, test := range tests {
-		checkFiles(t, test.name, test.files)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/const.go gcc-4.8.1/libgo/go/go/types/const.go
--- gcc-4.8.1.orig/libgo/go/go/types/const.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/const.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,734 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements operations on constant values.
-
-package types
-
-import (
-	"fmt"
-	"go/token"
-	"math/big"
-	"strconv"
-)
-
-// TODO(gri) At the moment, constants are different types
-// passed around as interface{} values. Consider introducing
-// a Const type and use methods instead of xConst functions.
-
-// Representation of constant values.
-//
-// bool     ->  bool (true, false)
-// numeric  ->  int64, *big.Int, *big.Rat, Complex (ordered by increasing data structure "size")
-// string   ->  string
-// nil      ->  NilType (nilConst)
-//
-// Numeric constants are normalized after each operation such
-// that they are represented by the "smallest" data structure
-// required to represent the constant, independent of actual
-// type. Non-numeric constants are always normalized.
-
-// Representation of complex numbers.
-type Complex struct {
-	Re, Im *big.Rat
-}
-
-func (c Complex) String() string {
-	if c.Re.Sign() == 0 {
-		return fmt.Sprintf("%si", c.Im)
-	}
-	// normalized complex values always have an imaginary part
-	return fmt.Sprintf("(%s + %si)", c.Re, c.Im)
-}
-
-// Representation of nil.
-type NilType struct{}
-
-func (NilType) String() string {
-	return "nil"
-}
-
-// Implementation-specific constants.
-// TODO(gri) These need to go elsewhere.
-const (
-	intBits = 32
-	ptrBits = 64
-)
-
-// Frequently used values.
-var (
-	nilConst  = NilType{}
-	zeroConst = int64(0)
-)
-
-// int64 bounds
-var (
-	minInt64 = big.NewInt(-1 << 63)
-	maxInt64 = big.NewInt(1<<63 - 1)
-)
-
-// normalizeIntConst returns the smallest constant representation
-// for the specific value of x; either an int64 or a *big.Int value.
-//
-func normalizeIntConst(x *big.Int) interface{} {
-	if minInt64.Cmp(x) <= 0 && x.Cmp(maxInt64) <= 0 {
-		return x.Int64()
-	}
-	return x
-}
-
-// normalizeRatConst returns the smallest constant representation
-// for the specific value of x; either an int64, *big.Int,
-// or *big.Rat value.
-//
-func normalizeRatConst(x *big.Rat) interface{} {
-	if x.IsInt() {
-		return normalizeIntConst(x.Num())
-	}
-	return x
-}
-
-// newComplex returns the smallest constant representation
-// for the specific value re + im*i; either an int64, *big.Int,
-// *big.Rat, or complex value.
-//
-func newComplex(re, im *big.Rat) interface{} {
-	if im.Sign() == 0 {
-		return normalizeRatConst(re)
-	}
-	return Complex{re, im}
-}
-
-// makeRuneConst returns the int64 code point for the rune literal
-// lit. The result is nil if lit is not a correct rune literal.
-//
-func makeRuneConst(lit string) interface{} {
-	if n := len(lit); n >= 2 {
-		if code, _, _, err := strconv.UnquoteChar(lit[1:n-1], '\''); err == nil {
-			return int64(code)
-		}
-	}
-	return nil
-}
-
-// makeRuneConst returns the smallest integer constant representation
-// (int64, *big.Int) for the integer literal lit. The result is nil if
-// lit is not a correct integer literal.
-//
-func makeIntConst(lit string) interface{} {
-	if x, err := strconv.ParseInt(lit, 0, 64); err == nil {
-		return x
-	}
-	if x, ok := new(big.Int).SetString(lit, 0); ok {
-		return x
-	}
-	return nil
-}
-
-// makeFloatConst returns the smallest floating-point constant representation
-// (int64, *big.Int, *big.Rat) for the floating-point literal lit. The result
-// is nil if lit is not a correct floating-point literal.
-//
-func makeFloatConst(lit string) interface{} {
-	if x, ok := new(big.Rat).SetString(lit); ok {
-		return normalizeRatConst(x)
-	}
-	return nil
-}
-
-// makeComplexConst returns the complex constant representation (Complex) for
-// the imaginary literal lit. The result is nil if lit is not a correct imaginary
-// literal.
-//
-func makeComplexConst(lit string) interface{} {
-	n := len(lit)
-	if n > 0 && lit[n-1] == 'i' {
-		if im, ok := new(big.Rat).SetString(lit[0 : n-1]); ok {
-			return newComplex(big.NewRat(0, 1), im)
-		}
-	}
-	return nil
-}
-
-// makeStringConst returns the string constant representation (string) for
-// the string literal lit. The result is nil if lit is not a correct string
-// literal.
-//
-func makeStringConst(lit string) interface{} {
-	if s, err := strconv.Unquote(lit); err == nil {
-		return s
-	}
-	return nil
-}
-
-// toImagConst returns the constant Complex(0, x) for a non-complex x.
-func toImagConst(x interface{}) interface{} {
-	var im *big.Rat
-	switch x := x.(type) {
-	case int64:
-		im = big.NewRat(x, 1)
-	case *big.Int:
-		im = new(big.Rat).SetFrac(x, int1)
-	case *big.Rat:
-		im = x
-	default:
-		unreachable()
-	}
-	return Complex{rat0, im}
-}
-
-// isZeroConst reports whether the value of constant x is 0.
-// x must be normalized.
-//
-func isZeroConst(x interface{}) bool {
-	i, ok := x.(int64) // good enough since constants are normalized
-	return ok && i == 0
-}
-
-// isNegConst reports whether the value of constant x is < 0.
-// x must be a non-complex numeric value.
-//
-func isNegConst(x interface{}) bool {
-	switch x := x.(type) {
-	case int64:
-		return x < 0
-	case *big.Int:
-		return x.Sign() < 0
-	case *big.Rat:
-		return x.Sign() < 0
-	}
-	unreachable()
-	return false
-}
-
-// isRepresentableConst reports whether the value of constant x can
-// be represented as a value of the basic type Typ[as] without loss
-// of precision.
-//
-func isRepresentableConst(x interface{}, as BasicKind) bool {
-	switch x := x.(type) {
-	case bool:
-		return as == Bool || as == UntypedBool
-
-	case int64:
-		switch as {
-		case Int:
-			return -1<<(intBits-1) <= x && x <= 1<<(intBits-1)-1
-		case Int8:
-			return -1<<(8-1) <= x && x <= 1<<(8-1)-1
-		case Int16:
-			return -1<<(16-1) <= x && x <= 1<<(16-1)-1
-		case Int32, UntypedRune:
-			return -1<<(32-1) <= x && x <= 1<<(32-1)-1
-		case Int64:
-			return true
-		case Uint:
-			return 0 <= x && x <= 1<<intBits-1
-		case Uint8:
-			return 0 <= x && x <= 1<<8-1
-		case Uint16:
-			return 0 <= x && x <= 1<<16-1
-		case Uint32:
-			return 0 <= x && x <= 1<<32-1
-		case Uint64:
-			return 0 <= x
-		case Uintptr:
-			assert(ptrBits == 64)
-			return 0 <= x
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedInt, UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case *big.Int:
-		switch as {
-		case Uint:
-			return x.Sign() >= 0 && x.BitLen() <= intBits
-		case Uint64:
-			return x.Sign() >= 0 && x.BitLen() <= 64
-		case Uintptr:
-			return x.Sign() >= 0 && x.BitLen() <= ptrBits
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedInt, UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case *big.Rat:
-		switch as {
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case Complex:
-		switch as {
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedComplex:
-			return true
-		}
-
-	case string:
-		return as == String || as == UntypedString
-
-	case NilType:
-		return as == UntypedNil || as == UnsafePointer
-
-	default:
-		unreachable()
-	}
-
-	return false
-}
-
-var (
-	int1 = big.NewInt(1)
-	rat0 = big.NewRat(0, 1)
-)
-
-// complexity returns a measure of representation complexity for constant x.
-func complexity(x interface{}) int {
-	switch x.(type) {
-	case bool, string, NilType:
-		return 1
-	case int64:
-		return 2
-	case *big.Int:
-		return 3
-	case *big.Rat:
-		return 4
-	case Complex:
-		return 5
-	}
-	unreachable()
-	return 0
-}
-
-// matchConst returns the matching representation (same type) with the
-// smallest complexity for two constant values x and y. They must be
-// of the same "kind" (boolean, numeric, string, or NilType).
-//
-func matchConst(x, y interface{}) (_, _ interface{}) {
-	if complexity(x) > complexity(y) {
-		y, x = matchConst(y, x)
-		return x, y
-	}
-	// complexity(x) <= complexity(y)
-
-	switch x := x.(type) {
-	case bool, Complex, string, NilType:
-		return x, y
-
-	case int64:
-		switch y := y.(type) {
-		case int64:
-			return x, y
-		case *big.Int:
-			return big.NewInt(x), y
-		case *big.Rat:
-			return big.NewRat(x, 1), y
-		case Complex:
-			return Complex{big.NewRat(x, 1), rat0}, y
-		}
-
-	case *big.Int:
-		switch y := y.(type) {
-		case *big.Int:
-			return x, y
-		case *big.Rat:
-			return new(big.Rat).SetFrac(x, int1), y
-		case Complex:
-			return Complex{new(big.Rat).SetFrac(x, int1), rat0}, y
-		}
-
-	case *big.Rat:
-		switch y := y.(type) {
-		case *big.Rat:
-			return x, y
-		case Complex:
-			return Complex{x, rat0}, y
-		}
-	}
-
-	unreachable()
-	return nil, nil
-}
-
-// is32bit reports whether x can be represented using 32 bits.
-func is32bit(x int64) bool {
-	return -1<<31 <= x && x <= 1<<31-1
-}
-
-// is63bit reports whether x can be represented using 63 bits.
-func is63bit(x int64) bool {
-	return -1<<62 <= x && x <= 1<<62-1
-}
-
-// unaryOpConst returns the result of the constant evaluation op x where x is of the given type.
-func unaryOpConst(x interface{}, op token.Token, typ *Basic) interface{} {
-	switch op {
-	case token.ADD:
-		return x // nothing to do
-	case token.SUB:
-		switch x := x.(type) {
-		case int64:
-			if z := -x; z != x {
-				return z // no overflow
-			}
-			// overflow - need to convert to big.Int
-			return normalizeIntConst(new(big.Int).Neg(big.NewInt(x)))
-		case *big.Int:
-			return normalizeIntConst(new(big.Int).Neg(x))
-		case *big.Rat:
-			return normalizeRatConst(new(big.Rat).Neg(x))
-		case Complex:
-			return newComplex(new(big.Rat).Neg(x.Re), new(big.Rat).Neg(x.Im))
-		}
-	case token.XOR:
-		var z big.Int
-		switch x := x.(type) {
-		case int64:
-			z.Not(big.NewInt(x))
-		case *big.Int:
-			z.Not(x)
-		default:
-			unreachable()
-		}
-		// For unsigned types, the result will be negative and
-		// thus "too large": We must limit the result size to
-		// the type's size.
-		if typ.Info&IsUnsigned != 0 {
-			s := uint(typ.Size) * 8
-			if s == 0 {
-				// platform-specific type
-				// TODO(gri) this needs to be factored out
-				switch typ.Kind {
-				case Uint:
-					s = intBits
-				case Uintptr:
-					s = ptrBits
-				default:
-					unreachable()
-				}
-			}
-			// z &^= (-1)<<s
-			z.AndNot(&z, new(big.Int).Lsh(big.NewInt(-1), s))
-		}
-		return normalizeIntConst(&z)
-	case token.NOT:
-		return !x.(bool)
-	}
-	unreachable()
-	return nil
-}
-
-// binaryOpConst returns the result of the constant evaluation x op y;
-// both operands must be of the same constant "kind" (boolean, numeric, or string).
-// If typ is an integer type, division (op == token.QUO) is using integer division
-// (and the result is guaranteed to be integer) rather than floating-point
-// division. Division by zero leads to a run-time panic.
-//
-func binaryOpConst(x, y interface{}, op token.Token, typ *Basic) interface{} {
-	x, y = matchConst(x, y)
-
-	switch x := x.(type) {
-	case bool:
-		y := y.(bool)
-		switch op {
-		case token.LAND:
-			return x && y
-		case token.LOR:
-			return x || y
-		}
-
-	case int64:
-		y := y.(int64)
-		switch op {
-		case token.ADD:
-			// TODO(gri) can do better than this
-			if is63bit(x) && is63bit(y) {
-				return x + y
-			}
-			return normalizeIntConst(new(big.Int).Add(big.NewInt(x), big.NewInt(y)))
-		case token.SUB:
-			// TODO(gri) can do better than this
-			if is63bit(x) && is63bit(y) {
-				return x - y
-			}
-			return normalizeIntConst(new(big.Int).Sub(big.NewInt(x), big.NewInt(y)))
-		case token.MUL:
-			// TODO(gri) can do better than this
-			if is32bit(x) && is32bit(y) {
-				return x * y
-			}
-			return normalizeIntConst(new(big.Int).Mul(big.NewInt(x), big.NewInt(y)))
-		case token.REM:
-			return x % y
-		case token.QUO:
-			if typ.Info&IsInteger != 0 {
-				return x / y
-			}
-			return normalizeRatConst(new(big.Rat).SetFrac(big.NewInt(x), big.NewInt(y)))
-		case token.AND:
-			return x & y
-		case token.OR:
-			return x | y
-		case token.XOR:
-			return x ^ y
-		case token.AND_NOT:
-			return x &^ y
-		}
-
-	case *big.Int:
-		y := y.(*big.Int)
-		var z big.Int
-		switch op {
-		case token.ADD:
-			z.Add(x, y)
-		case token.SUB:
-			z.Sub(x, y)
-		case token.MUL:
-			z.Mul(x, y)
-		case token.REM:
-			z.Rem(x, y)
-		case token.QUO:
-			if typ.Info&IsInteger != 0 {
-				z.Quo(x, y)
-			} else {
-				return normalizeRatConst(new(big.Rat).SetFrac(x, y))
-			}
-		case token.AND:
-			z.And(x, y)
-		case token.OR:
-			z.Or(x, y)
-		case token.XOR:
-			z.Xor(x, y)
-		case token.AND_NOT:
-			z.AndNot(x, y)
-		default:
-			unreachable()
-		}
-		return normalizeIntConst(&z)
-
-	case *big.Rat:
-		y := y.(*big.Rat)
-		var z big.Rat
-		switch op {
-		case token.ADD:
-			z.Add(x, y)
-		case token.SUB:
-			z.Sub(x, y)
-		case token.MUL:
-			z.Mul(x, y)
-		case token.QUO:
-			z.Quo(x, y)
-		default:
-			unreachable()
-		}
-		return normalizeRatConst(&z)
-
-	case Complex:
-		y := y.(Complex)
-		a, b := x.Re, x.Im
-		c, d := y.Re, y.Im
-		var re, im big.Rat
-		switch op {
-		case token.ADD:
-			// (a+c) + i(b+d)
-			re.Add(a, c)
-			im.Add(b, d)
-		case token.SUB:
-			// (a-c) + i(b-d)
-			re.Sub(a, c)
-			im.Sub(b, d)
-		case token.MUL:
-			// (ac-bd) + i(bc+ad)
-			var ac, bd, bc, ad big.Rat
-			ac.Mul(a, c)
-			bd.Mul(b, d)
-			bc.Mul(b, c)
-			ad.Mul(a, d)
-			re.Sub(&ac, &bd)
-			im.Add(&bc, &ad)
-		case token.QUO:
-			// (ac+bd)/s + i(bc-ad)/s, with s = cc + dd
-			var ac, bd, bc, ad, s big.Rat
-			ac.Mul(a, c)
-			bd.Mul(b, d)
-			bc.Mul(b, c)
-			ad.Mul(a, d)
-			s.Add(c.Mul(c, c), d.Mul(d, d))
-			re.Add(&ac, &bd)
-			re.Quo(&re, &s)
-			im.Sub(&bc, &ad)
-			im.Quo(&im, &s)
-		default:
-			unreachable()
-		}
-		return newComplex(&re, &im)
-
-	case string:
-		if op == token.ADD {
-			return x + y.(string)
-		}
-	}
-
-	unreachable()
-	return nil
-}
-
-// shiftConst returns the result of the constant evaluation x op s
-// where op is token.SHL or token.SHR (<< or >>). x must be an
-// integer constant.
-//
-func shiftConst(x interface{}, s uint, op token.Token) interface{} {
-	switch x := x.(type) {
-	case int64:
-		switch op {
-		case token.SHL:
-			z := big.NewInt(x)
-			return normalizeIntConst(z.Lsh(z, s))
-		case token.SHR:
-			return x >> s
-		}
-
-	case *big.Int:
-		var z big.Int
-		switch op {
-		case token.SHL:
-			return normalizeIntConst(z.Lsh(x, s))
-		case token.SHR:
-			return normalizeIntConst(z.Rsh(x, s))
-		}
-	}
-
-	unreachable()
-	return nil
-}
-
-// compareConst returns the result of the constant comparison x op y;
-// both operands must be of the same "kind" (boolean, numeric, string,
-// or NilType).
-//
-func compareConst(x, y interface{}, op token.Token) (z bool) {
-	x, y = matchConst(x, y)
-
-	// x == y  =>  x == y
-	// x != y  =>  x != y
-	// x >  y  =>  y <  x
-	// x >= y  =>  u <= x
-	swap := false
-	switch op {
-	case token.GTR:
-		swap = true
-		op = token.LSS
-	case token.GEQ:
-		swap = true
-		op = token.LEQ
-	}
-
-	// x == y  =>    x == y
-	// x != y  =>  !(x == y)
-	// x <  y  =>    x <  y
-	// x <= y  =>  !(y <  x)
-	negate := false
-	switch op {
-	case token.NEQ:
-		negate = true
-		op = token.EQL
-	case token.LEQ:
-		swap = !swap
-		negate = true
-		op = token.LSS
-	}
-
-	if negate {
-		defer func() { z = !z }()
-	}
-
-	if swap {
-		x, y = y, x
-	}
-
-	switch x := x.(type) {
-	case bool:
-		if op == token.EQL {
-			return x == y.(bool)
-		}
-
-	case int64:
-		y := y.(int64)
-		switch op {
-		case token.EQL:
-			return x == y
-		case token.LSS:
-			return x < y
-		}
-
-	case *big.Int:
-		s := x.Cmp(y.(*big.Int))
-		switch op {
-		case token.EQL:
-			return s == 0
-		case token.LSS:
-			return s < 0
-		}
-
-	case *big.Rat:
-		s := x.Cmp(y.(*big.Rat))
-		switch op {
-		case token.EQL:
-			return s == 0
-		case token.LSS:
-			return s < 0
-		}
-
-	case Complex:
-		y := y.(Complex)
-		if op == token.EQL {
-			return x.Re.Cmp(y.Re) == 0 && x.Im.Cmp(y.Im) == 0
-		}
-
-	case string:
-		y := y.(string)
-		switch op {
-		case token.EQL:
-			return x == y
-		case token.LSS:
-			return x < y
-		}
-
-	case NilType:
-		if op == token.EQL {
-			return x == y.(NilType)
-		}
-	}
-
-	fmt.Printf("x = %s (%T), y = %s (%T)\n", x, x, y, y)
-	unreachable()
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/conversions.go gcc-4.8.1/libgo/go/go/types/conversions.go
--- gcc-4.8.1.orig/libgo/go/go/types/conversions.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/conversions.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,128 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of conversions.
-
-package types
-
-import (
-	"go/ast"
-)
-
-// conversion typechecks the type conversion conv to type typ. iota is the current
-// value of iota or -1 if iota doesn't have a value in the current context. The result
-// of the conversion is returned via x. If the conversion has type errors, the returned
-// x is marked as invalid (x.mode == invalid).
-//
-func (check *checker) conversion(x *operand, conv *ast.CallExpr, typ Type, iota int) {
-	// all conversions have one argument
-	if len(conv.Args) != 1 {
-		check.invalidOp(conv.Pos(), "%s conversion requires exactly one argument", conv)
-		goto Error
-	}
-
-	// evaluate argument
-	check.expr(x, conv.Args[0], nil, iota)
-	if x.mode == invalid {
-		goto Error
-	}
-
-	if x.mode == constant && isConstType(typ) {
-		// constant conversion
-		// TODO(gri) implement this
-	} else {
-		// non-constant conversion
-		if !x.isConvertible(typ) {
-			check.invalidOp(conv.Pos(), "cannot convert %s to %s", x, typ)
-			goto Error
-		}
-		x.mode = value
-	}
-
-	x.expr = conv
-	x.typ = typ
-	return
-
-Error:
-	x.mode = invalid
-}
-
-func (x *operand) isConvertible(T Type) bool {
-	// "x is assignable to T"
-	if x.isAssignable(T) {
-		return true
-	}
-
-	// "x's type and T have identical underlying types"
-	V := x.typ
-	Vu := underlying(V)
-	Tu := underlying(T)
-	if IsIdentical(Vu, Tu) {
-		return true
-	}
-
-	// "x's type and T are unnamed pointer types and their pointer base types have identical underlying types"
-	if V, ok := V.(*Pointer); ok {
-		if T, ok := T.(*Pointer); ok {
-			if IsIdentical(underlying(V.Base), underlying(T.Base)) {
-				return true
-			}
-		}
-	}
-
-	// "x's type and T are both integer or floating point types"
-	if (isInteger(V) || isFloat(V)) && (isInteger(T) || isFloat(T)) {
-		return true
-	}
-
-	// "x's type and T are both complex types"
-	if isComplex(V) && isComplex(T) {
-		return true
-	}
-
-	// "x is an integer or a slice of bytes or runes and T is a string type"
-	if (isInteger(V) || isBytesOrRunes(Vu)) && isString(T) {
-		return true
-	}
-
-	// "x is a string and T is a slice of bytes or runes"
-	if isString(V) && isBytesOrRunes(Tu) {
-		return true
-	}
-
-	// package unsafe:
-	// "any pointer or value of underlying type uintptr can be converted into a unsafe.Pointer"
-	if (isPointer(Vu) || isUintptr(Vu)) && isUnsafePointer(T) {
-		return true
-	}
-	// "and vice versa"
-	if isUnsafePointer(V) && (isPointer(Tu) || isUintptr(Tu)) {
-		return true
-	}
-
-	return false
-}
-
-func isUintptr(typ Type) bool {
-	t, ok := typ.(*Basic)
-	return ok && t.Kind == Uintptr
-}
-
-func isUnsafePointer(typ Type) bool {
-	t, ok := typ.(*Basic)
-	return ok && t.Kind == UnsafePointer
-}
-
-func isPointer(typ Type) bool {
-	_, ok := typ.(*Pointer)
-	return ok
-}
-
-func isBytesOrRunes(typ Type) bool {
-	if s, ok := typ.(*Slice); ok {
-		t, ok := underlying(s.Elt).(*Basic)
-		return ok && (t.Kind == Byte || t.Kind == Rune)
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/errors.go gcc-4.8.1/libgo/go/go/types/errors.go
--- gcc-4.8.1.orig/libgo/go/go/types/errors.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/errors.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,331 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements various error reporters.
-
-package types
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// TODO(gri) eventually assert and unimplemented should disappear.
-func assert(p bool) {
-	if !p {
-		panic("assertion failed")
-	}
-}
-
-func unreachable() {
-	panic("unreachable")
-}
-
-func (check *checker) printTrace(format string, args []interface{}) {
-	const dots = ".  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  "
-	n := len(check.pos) - 1
-	i := 3 * n
-	for i > len(dots) {
-		fmt.Print(dots)
-		i -= len(dots)
-	}
-	// i <= len(dots)
-	fmt.Printf("%s:\t", check.fset.Position(check.pos[n]))
-	fmt.Print(dots[0:i])
-	fmt.Println(check.formatMsg(format, args))
-}
-
-func (check *checker) trace(pos token.Pos, format string, args ...interface{}) {
-	check.pos = append(check.pos, pos)
-	check.printTrace(format, args)
-}
-
-func (check *checker) untrace(format string, args ...interface{}) {
-	if len(format) > 0 {
-		check.printTrace(format, args)
-	}
-	check.pos = check.pos[:len(check.pos)-1]
-}
-
-func (check *checker) formatMsg(format string, args []interface{}) string {
-	for i, arg := range args {
-		switch a := arg.(type) {
-		case token.Pos:
-			args[i] = check.fset.Position(a)
-		case ast.Expr:
-			args[i] = exprString(a)
-		case Type:
-			args[i] = typeString(a)
-		case operand:
-			panic("internal error: should always pass *operand")
-		}
-	}
-	return fmt.Sprintf(format, args...)
-}
-
-// dump is only needed for debugging
-func (check *checker) dump(format string, args ...interface{}) {
-	fmt.Println(check.formatMsg(format, args))
-}
-
-func (check *checker) err(err error) {
-	if check.firsterr == nil {
-		check.firsterr = err
-	}
-	f := check.ctxt.Error
-	if f == nil {
-		panic(bailout{}) // report only first error
-	}
-	f(err)
-}
-
-func (check *checker) errorf(pos token.Pos, format string, args ...interface{}) {
-	check.err(fmt.Errorf("%s: %s", check.fset.Position(pos), check.formatMsg(format, args)))
-}
-
-func (check *checker) invalidAST(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid AST: "+format, args...)
-}
-
-func (check *checker) invalidArg(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid argument: "+format, args...)
-}
-
-func (check *checker) invalidOp(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid operation: "+format, args...)
-}
-
-// exprString returns a (simplified) string representation for an expression.
-func exprString(expr ast.Expr) string {
-	var buf bytes.Buffer
-	writeExpr(&buf, expr)
-	return buf.String()
-}
-
-// TODO(gri) Need to merge with typeString since some expressions are types (try: ([]int)(a))
-func writeExpr(buf *bytes.Buffer, expr ast.Expr) {
-	switch x := expr.(type) {
-	case *ast.Ident:
-		buf.WriteString(x.Name)
-
-	case *ast.BasicLit:
-		buf.WriteString(x.Value)
-
-	case *ast.FuncLit:
-		buf.WriteString("(func literal)")
-
-	case *ast.CompositeLit:
-		buf.WriteString("(composite literal)")
-
-	case *ast.ParenExpr:
-		buf.WriteByte('(')
-		writeExpr(buf, x.X)
-		buf.WriteByte(')')
-
-	case *ast.SelectorExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('.')
-		buf.WriteString(x.Sel.Name)
-
-	case *ast.IndexExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('[')
-		writeExpr(buf, x.Index)
-		buf.WriteByte(']')
-
-	case *ast.SliceExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('[')
-		if x.Low != nil {
-			writeExpr(buf, x.Low)
-		}
-		buf.WriteByte(':')
-		if x.High != nil {
-			writeExpr(buf, x.High)
-		}
-		buf.WriteByte(']')
-
-	case *ast.TypeAssertExpr:
-		writeExpr(buf, x.X)
-		buf.WriteString(".(...)")
-
-	case *ast.CallExpr:
-		writeExpr(buf, x.Fun)
-		buf.WriteByte('(')
-		for i, arg := range x.Args {
-			if i > 0 {
-				buf.WriteString(", ")
-			}
-			writeExpr(buf, arg)
-		}
-		buf.WriteByte(')')
-
-	case *ast.StarExpr:
-		buf.WriteByte('*')
-		writeExpr(buf, x.X)
-
-	case *ast.UnaryExpr:
-		buf.WriteString(x.Op.String())
-		writeExpr(buf, x.X)
-
-	case *ast.BinaryExpr:
-		// The AST preserves source-level parentheses so there is
-		// no need to introduce parentheses here for correctness.
-		writeExpr(buf, x.X)
-		buf.WriteByte(' ')
-		buf.WriteString(x.Op.String())
-		buf.WriteByte(' ')
-		writeExpr(buf, x.Y)
-
-	default:
-		fmt.Fprintf(buf, "<expr %T>", x)
-	}
-}
-
-// typeString returns a string representation for typ.
-func typeString(typ Type) string {
-	var buf bytes.Buffer
-	writeType(&buf, typ)
-	return buf.String()
-}
-
-func writeParams(buf *bytes.Buffer, params []*Var, isVariadic bool) {
-	buf.WriteByte('(')
-	for i, par := range params {
-		if i > 0 {
-			buf.WriteString(", ")
-		}
-		if par.Name != "" {
-			buf.WriteString(par.Name)
-			buf.WriteByte(' ')
-		}
-		if isVariadic && i == len(params)-1 {
-			buf.WriteString("...")
-		}
-		writeType(buf, par.Type)
-	}
-	buf.WriteByte(')')
-}
-
-func writeSignature(buf *bytes.Buffer, sig *Signature) {
-	writeParams(buf, sig.Params, sig.IsVariadic)
-	if len(sig.Results) == 0 {
-		// no result
-		return
-	}
-
-	buf.WriteByte(' ')
-	if len(sig.Results) == 1 && sig.Results[0].Name == "" {
-		// single unnamed result
-		writeType(buf, sig.Results[0].Type.(Type))
-		return
-	}
-
-	// multiple or named result(s)
-	writeParams(buf, sig.Results, false)
-}
-
-func writeType(buf *bytes.Buffer, typ Type) {
-	switch t := typ.(type) {
-	case nil:
-		buf.WriteString("<nil>")
-
-	case *Basic:
-		buf.WriteString(t.Name)
-
-	case *Array:
-		fmt.Fprintf(buf, "[%d]", t.Len)
-		writeType(buf, t.Elt)
-
-	case *Slice:
-		buf.WriteString("[]")
-		writeType(buf, t.Elt)
-
-	case *Struct:
-		buf.WriteString("struct{")
-		for i, f := range t.Fields {
-			if i > 0 {
-				buf.WriteString("; ")
-			}
-			if !f.IsAnonymous {
-				buf.WriteString(f.Name)
-				buf.WriteByte(' ')
-			}
-			writeType(buf, f.Type)
-			if f.Tag != "" {
-				fmt.Fprintf(buf, " %q", f.Tag)
-			}
-		}
-		buf.WriteByte('}')
-
-	case *Pointer:
-		buf.WriteByte('*')
-		writeType(buf, t.Base)
-
-	case *Result:
-		writeParams(buf, t.Values, false)
-
-	case *Signature:
-		buf.WriteString("func")
-		writeSignature(buf, t)
-
-	case *builtin:
-		fmt.Fprintf(buf, "<type of %s>", t.name)
-
-	case *Interface:
-		buf.WriteString("interface{")
-		for i, m := range t.Methods {
-			if i > 0 {
-				buf.WriteString("; ")
-			}
-			buf.WriteString(m.Name)
-			writeSignature(buf, m.Type)
-		}
-		buf.WriteByte('}')
-
-	case *Map:
-		buf.WriteString("map[")
-		writeType(buf, t.Key)
-		buf.WriteByte(']')
-		writeType(buf, t.Elt)
-
-	case *Chan:
-		var s string
-		switch t.Dir {
-		case ast.SEND:
-			s = "chan<- "
-		case ast.RECV:
-			s = "<-chan "
-		default:
-			s = "chan "
-		}
-		buf.WriteString(s)
-		writeType(buf, t.Elt)
-
-	case *NamedType:
-		s := "<NamedType w/o object>"
-		if t.Obj != nil {
-			s = t.Obj.GetName()
-		}
-		buf.WriteString(s)
-
-	default:
-		fmt.Fprintf(buf, "<type %T>", t)
-	}
-}
-
-func (t *Array) String() string     { return typeString(t) }
-func (t *Basic) String() string     { return typeString(t) }
-func (t *Chan) String() string      { return typeString(t) }
-func (t *Interface) String() string { return typeString(t) }
-func (t *Map) String() string       { return typeString(t) }
-func (t *NamedType) String() string { return typeString(t) }
-func (t *Pointer) String() string   { return typeString(t) }
-func (t *Result) String() string    { return typeString(t) }
-func (t *Signature) String() string { return typeString(t) }
-func (t *Slice) String() string     { return typeString(t) }
-func (t *Struct) String() string    { return typeString(t) }
-func (t *builtin) String() string   { return typeString(t) }
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/exportdata.go gcc-4.8.1/libgo/go/go/types/exportdata.go
--- gcc-4.8.1.orig/libgo/go/go/types/exportdata.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/exportdata.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements FindGcExportData.
-
-package types
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"io"
-	"strconv"
-	"strings"
-)
-
-func readGopackHeader(r *bufio.Reader) (name string, size int, err error) {
-	// See $GOROOT/include/ar.h.
-	hdr := make([]byte, 16+12+6+6+8+10+2)
-	_, err = io.ReadFull(r, hdr)
-	if err != nil {
-		return
-	}
-	// leave for debugging
-	if false {
-		fmt.Printf("header: %s", hdr)
-	}
-	s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10]))
-	size, err = strconv.Atoi(s)
-	if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' {
-		err = errors.New("invalid archive header")
-		return
-	}
-	name = strings.TrimSpace(string(hdr[:16]))
-	return
-}
-
-// FindGcExportData positions the reader r at the beginning of the
-// export data section of an underlying GC-created object/archive
-// file by reading from it. The reader must be positioned at the
-// start of the file before calling this function.
-//
-func FindGcExportData(r *bufio.Reader) (err error) {
-	// Read first line to make sure this is an object file.
-	line, err := r.ReadSlice('\n')
-	if err != nil {
-		return
-	}
-	if string(line) == "!<arch>\n" {
-		// Archive file.  Scan to __.PKGDEF, which should
-		// be second archive entry.
-		var name string
-		var size int
-
-		// First entry should be __.GOSYMDEF.
-		// Older archives used __.SYMDEF, so allow that too.
-		// Read and discard.
-		if name, size, err = readGopackHeader(r); err != nil {
-			return
-		}
-		if name != "__.SYMDEF" && name != "__.GOSYMDEF" {
-			err = errors.New("go archive does not begin with __.SYMDEF or __.GOSYMDEF")
-			return
-		}
-		const block = 4096
-		tmp := make([]byte, block)
-		for size > 0 {
-			n := size
-			if n > block {
-				n = block
-			}
-			if _, err = io.ReadFull(r, tmp[:n]); err != nil {
-				return
-			}
-			size -= n
-		}
-
-		// Second entry should be __.PKGDEF.
-		if name, size, err = readGopackHeader(r); err != nil {
-			return
-		}
-		if name != "__.PKGDEF" {
-			err = errors.New("go archive is missing __.PKGDEF")
-			return
-		}
-
-		// Read first line of __.PKGDEF data, so that line
-		// is once again the first line of the input.
-		if line, err = r.ReadSlice('\n'); err != nil {
-			return
-		}
-	}
-
-	// Now at __.PKGDEF in archive or still at beginning of file.
-	// Either way, line should begin with "go object ".
-	if !strings.HasPrefix(string(line), "go object ") {
-		err = errors.New("not a go object file")
-		return
-	}
-
-	// Skip over object header to export data.
-	// Begins after first line with $$.
-	for line[0] != '$' {
-		if line, err = r.ReadSlice('\n'); err != nil {
-			return
-		}
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/expr.go gcc-4.8.1/libgo/go/go/types/expr.go
--- gcc-4.8.1.orig/libgo/go/go/types/expr.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/expr.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,1334 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of expressions.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-	"strconv"
-)
-
-// TODO(gri) Cleanups
-// - don't print error messages referring to invalid types (they are likely spurious errors)
-// - simplify invalid handling: maybe just use Typ[Invalid] as marker, get rid of invalid Mode for values?
-// - rethink error handling: should all callers check if x.mode == valid after making a call?
-// - at the moment, iota is passed around almost everywhere - in many places we know it cannot be used
-// - use "" or "_" consistently for anonymous identifiers? (e.g. reeceivers that have no name)
-
-// TODO(gri) API issues
-// - clients need access to builtins type information
-// - API tests are missing (e.g., identifiers should be handled as expressions in callbacks)
-
-func (check *checker) collectParams(list *ast.FieldList, variadicOk bool) (params []*Var, isVariadic bool) {
-	if list == nil {
-		return
-	}
-	var last *Var
-	for i, field := range list.List {
-		ftype := field.Type
-		if t, _ := ftype.(*ast.Ellipsis); t != nil {
-			ftype = t.Elt
-			if variadicOk && i == len(list.List)-1 {
-				isVariadic = true
-			} else {
-				check.invalidAST(field.Pos(), "... not permitted")
-				// ok to continue
-			}
-		}
-		// the parser ensures that f.Tag is nil and we don't
-		// care if a constructed AST contains a non-nil tag
-		typ := check.typ(ftype, true)
-		if len(field.Names) > 0 {
-			// named parameter
-			for _, name := range field.Names {
-				par := check.lookup(name).(*Var)
-				par.Type = typ
-				last = par
-				copy := *par
-				params = append(params, &copy)
-			}
-		} else {
-			// anonymous parameter
-			par := &Var{Type: typ}
-			last = nil // not accessible inside function
-			params = append(params, par)
-		}
-	}
-	// For a variadic function, change the last parameter's object type
-	// from T to []T (this is the type used inside the function), but
-	// keep the params list unchanged (this is the externally visible type).
-	if isVariadic && last != nil {
-		last.Type = &Slice{Elt: last.Type}
-	}
-	return
-}
-
-func (check *checker) collectMethods(list *ast.FieldList) (methods []*Method) {
-	if list == nil {
-		return
-	}
-	for _, f := range list.List {
-		typ := check.typ(f.Type, len(f.Names) > 0) // cycles are not ok for embedded interfaces
-		// the parser ensures that f.Tag is nil and we don't
-		// care if a constructed AST contains a non-nil tag
-		if len(f.Names) > 0 {
-			// methods (the parser ensures that there's only one
-			// and we don't care if a constructed AST has more)
-			sig, ok := typ.(*Signature)
-			if !ok {
-				check.invalidAST(f.Type.Pos(), "%s is not a method signature", typ)
-				continue
-			}
-			for _, name := range f.Names {
-				methods = append(methods, &Method{QualifiedName{check.pkg, name.Name}, sig})
-			}
-		} else {
-			// embedded interface
-			utyp := underlying(typ)
-			if ityp, ok := utyp.(*Interface); ok {
-				methods = append(methods, ityp.Methods...)
-			} else if utyp != Typ[Invalid] {
-				// if utyp is invalid, don't complain (the root cause was reported before)
-				check.errorf(f.Type.Pos(), "%s is not an interface type", typ)
-			}
-		}
-	}
-	// Check for double declarations.
-	// The parser inserts methods into an interface-local scope, so local
-	// double declarations are reported by the parser already. We need to
-	// check again for conflicts due to embedded interfaces. This will lead
-	// to a 2nd error message if the double declaration was reported before
-	// by the parser.
-	// TODO(gri) clean this up a bit
-	seen := make(map[string]bool)
-	for _, m := range methods {
-		if seen[m.Name] {
-			check.errorf(list.Pos(), "multiple methods named %s", m.Name)
-			return // keep multiple entries, lookup will only return the first entry
-		}
-		seen[m.Name] = true
-	}
-	return
-}
-
-func (check *checker) tag(t *ast.BasicLit) string {
-	if t != nil {
-		if t.Kind == token.STRING {
-			if val, err := strconv.Unquote(t.Value); err == nil {
-				return val
-			}
-		}
-		check.invalidAST(t.Pos(), "incorrect tag syntax: %q", t.Value)
-	}
-	return ""
-}
-
-func (check *checker) collectFields(list *ast.FieldList, cycleOk bool) (fields []*Field) {
-	if list == nil {
-		return
-	}
-	for _, f := range list.List {
-		typ := check.typ(f.Type, cycleOk)
-		tag := check.tag(f.Tag)
-		if len(f.Names) > 0 {
-			// named fields
-			for _, name := range f.Names {
-				fields = append(fields, &Field{QualifiedName{check.pkg, name.Name}, typ, tag, false})
-			}
-		} else {
-			// anonymous field
-			switch t := deref(typ).(type) {
-			case *Basic:
-				fields = append(fields, &Field{QualifiedName{check.pkg, t.Name}, typ, tag, true})
-			case *NamedType:
-				fields = append(fields, &Field{QualifiedName{check.pkg, t.Obj.GetName()}, typ, tag, true})
-			default:
-				if typ != Typ[Invalid] {
-					check.invalidAST(f.Type.Pos(), "anonymous field type %s must be named", typ)
-				}
-			}
-		}
-	}
-	return
-}
-
-type opPredicates map[token.Token]func(Type) bool
-
-var unaryOpPredicates = opPredicates{
-	token.ADD: isNumeric,
-	token.SUB: isNumeric,
-	token.XOR: isInteger,
-	token.NOT: isBoolean,
-}
-
-func (check *checker) op(m opPredicates, x *operand, op token.Token) bool {
-	if pred := m[op]; pred != nil {
-		if !pred(x.typ) {
-			check.invalidOp(x.pos(), "operator %s not defined for %s", op, x)
-			return false
-		}
-	} else {
-		check.invalidAST(x.pos(), "unknown operator %s", op)
-		return false
-	}
-	return true
-}
-
-func (check *checker) unary(x *operand, op token.Token) {
-	switch op {
-	case token.AND:
-		// spec: "As an exception to the addressability
-		// requirement x may also be a composite literal."
-		if _, ok := unparen(x.expr).(*ast.CompositeLit); ok {
-			x.mode = variable
-		}
-		if x.mode != variable {
-			check.invalidOp(x.pos(), "cannot take address of %s", x)
-			goto Error
-		}
-		x.typ = &Pointer{Base: x.typ}
-		return
-
-	case token.ARROW:
-		typ, ok := underlying(x.typ).(*Chan)
-		if !ok {
-			check.invalidOp(x.pos(), "cannot receive from non-channel %s", x)
-			goto Error
-		}
-		if typ.Dir&ast.RECV == 0 {
-			check.invalidOp(x.pos(), "cannot receive from send-only channel %s", x)
-			goto Error
-		}
-		x.mode = valueok
-		x.typ = typ.Elt
-		return
-	}
-
-	if !check.op(unaryOpPredicates, x, op) {
-		goto Error
-	}
-
-	if x.mode == constant {
-		typ := underlying(x.typ).(*Basic)
-		x.val = unaryOpConst(x.val, op, typ)
-		// Typed constants must be representable in
-		// their type after each constant operation.
-		check.isRepresentable(x, typ)
-		return
-	}
-
-	x.mode = value
-	// x.typ remains unchanged
-	return
-
-Error:
-	x.mode = invalid
-}
-
-func isShift(op token.Token) bool {
-	return op == token.SHL || op == token.SHR
-}
-
-func isComparison(op token.Token) bool {
-	// Note: tokens are not ordered well to make this much easier
-	switch op {
-	case token.EQL, token.NEQ, token.LSS, token.LEQ, token.GTR, token.GEQ:
-		return true
-	}
-	return false
-}
-
-// isRepresentable checks that a constant operand is representable in the given type.
-func (check *checker) isRepresentable(x *operand, typ *Basic) {
-	if x.mode != constant || isUntyped(typ) {
-		return
-	}
-
-	if !isRepresentableConst(x.val, typ.Kind) {
-		var msg string
-		if isNumeric(x.typ) && isNumeric(typ) {
-			msg = "%s overflows %s"
-		} else {
-			msg = "cannot convert %s to %s"
-		}
-		check.errorf(x.pos(), msg, x, typ)
-		x.mode = invalid
-	}
-}
-
-// convertUntyped attempts to set the type of an untyped value to the target type.
-func (check *checker) convertUntyped(x *operand, target Type) {
-	if x.mode == invalid || !isUntyped(x.typ) {
-		return
-	}
-
-	// TODO(gri) Sloppy code - clean up. This function is central
-	//           to assignment and expression checking.
-
-	if isUntyped(target) {
-		// both x and target are untyped
-		xkind := x.typ.(*Basic).Kind
-		tkind := target.(*Basic).Kind
-		if isNumeric(x.typ) && isNumeric(target) {
-			if xkind < tkind {
-				x.typ = target
-			}
-		} else if xkind != tkind {
-			goto Error
-		}
-		return
-	}
-
-	// typed target
-	switch t := underlying(target).(type) {
-	case *Basic:
-		check.isRepresentable(x, t)
-	case *Interface:
-		if !x.isNil() && len(t.Methods) > 0 /* empty interfaces are ok */ {
-			goto Error
-		}
-	case *Pointer, *Signature, *Slice, *Map, *Chan:
-		if !x.isNil() {
-			goto Error
-		}
-	default:
-		unreachable()
-	}
-
-	x.typ = target
-	return
-
-Error:
-	check.errorf(x.pos(), "cannot convert %s to %s", x, target)
-	x.mode = invalid
-}
-
-func (check *checker) comparison(x, y *operand, op token.Token) {
-	// TODO(gri) deal with interface vs non-interface comparison
-
-	valid := false
-	if x.isAssignable(y.typ) || y.isAssignable(x.typ) {
-		switch op {
-		case token.EQL, token.NEQ:
-			valid = isComparable(x.typ) ||
-				x.isNil() && hasNil(y.typ) ||
-				y.isNil() && hasNil(x.typ)
-		case token.LSS, token.LEQ, token.GTR, token.GEQ:
-			valid = isOrdered(x.typ)
-		default:
-			unreachable()
-		}
-	}
-
-	if !valid {
-		check.invalidOp(x.pos(), "cannot compare %s %s %s", x, op, y)
-		x.mode = invalid
-		return
-	}
-
-	if x.mode == constant && y.mode == constant {
-		x.val = compareConst(x.val, y.val, op)
-	} else {
-		x.mode = value
-	}
-
-	x.typ = Typ[UntypedBool]
-}
-
-// untyped lhs shift operands convert to the hint type
-func (check *checker) shift(x, y *operand, op token.Token, hint Type) {
-	// spec: "The right operand in a shift expression must have unsigned
-	// integer type or be an untyped constant that can be converted to
-	// unsigned integer type."
-	switch {
-	case isInteger(y.typ) && isUnsigned(y.typ):
-		// nothing to do
-	case y.mode == constant && isUntyped(y.typ) && isRepresentableConst(y.val, UntypedInt):
-		y.typ = Typ[UntypedInt]
-	default:
-		check.invalidOp(y.pos(), "shift count %s must be unsigned integer", y)
-		x.mode = invalid
-		return
-	}
-
-	// spec: "If the left operand of a non-constant shift expression is
-	// an untyped constant, the type of the constant is what it would be
-	// if the shift expression were replaced by its left operand alone;
-	// the type is int if it cannot be determined from the context (for
-	// instance, if the shift expression is an operand in a comparison
-	// against an untyped constant)".
-	if x.mode == constant && isUntyped(x.typ) {
-		if y.mode == constant {
-			// constant shift - accept values of any (untyped) type
-			// as long as the value is representable as an integer
-			if x.mode == constant && isUntyped(x.typ) {
-				if isRepresentableConst(x.val, UntypedInt) {
-					x.typ = Typ[UntypedInt]
-				}
-			}
-		} else {
-			// non-constant shift
-			if hint == nil {
-				// TODO(gri) need to check for x.isNil (see other uses of defaultType)
-				hint = defaultType(x.typ)
-			}
-			check.convertUntyped(x, hint)
-			if x.mode == invalid {
-				return
-			}
-		}
-	}
-
-	if !isInteger(x.typ) {
-		check.invalidOp(x.pos(), "shifted operand %s must be integer", x)
-		x.mode = invalid
-		return
-	}
-
-	if y.mode == constant {
-		const stupidShift = 1024
-		s, ok := y.val.(int64)
-		if !ok || s < 0 || s >= stupidShift {
-			check.invalidOp(y.pos(), "%s: stupid shift", y)
-			x.mode = invalid
-			return
-		}
-		if x.mode == constant {
-			x.val = shiftConst(x.val, uint(s), op)
-			return
-		}
-	}
-
-	x.mode = value
-	// x.typ is already set
-}
-
-var binaryOpPredicates = opPredicates{
-	token.ADD: func(typ Type) bool { return isNumeric(typ) || isString(typ) },
-	token.SUB: isNumeric,
-	token.MUL: isNumeric,
-	token.QUO: isNumeric,
-	token.REM: isInteger,
-
-	token.AND:     isInteger,
-	token.OR:      isInteger,
-	token.XOR:     isInteger,
-	token.AND_NOT: isInteger,
-
-	token.LAND: isBoolean,
-	token.LOR:  isBoolean,
-}
-
-func (check *checker) binary(x, y *operand, op token.Token, hint Type) {
-	if isShift(op) {
-		check.shift(x, y, op, hint)
-		return
-	}
-
-	check.convertUntyped(x, y.typ)
-	if x.mode == invalid {
-		return
-	}
-	check.convertUntyped(y, x.typ)
-	if y.mode == invalid {
-		x.mode = invalid
-		return
-	}
-
-	if isComparison(op) {
-		check.comparison(x, y, op)
-		return
-	}
-
-	if !IsIdentical(x.typ, y.typ) {
-		check.invalidOp(x.pos(), "mismatched types %s and %s", x.typ, y.typ)
-		x.mode = invalid
-		return
-	}
-
-	if !check.op(binaryOpPredicates, x, op) {
-		x.mode = invalid
-		return
-	}
-
-	if (op == token.QUO || op == token.REM) && y.mode == constant && isZeroConst(y.val) {
-		check.invalidOp(y.pos(), "division by zero")
-		x.mode = invalid
-		return
-	}
-
-	if x.mode == constant && y.mode == constant {
-		typ := underlying(x.typ).(*Basic)
-		x.val = binaryOpConst(x.val, y.val, op, typ)
-		// Typed constants must be representable in
-		// their type after each constant operation.
-		check.isRepresentable(x, typ)
-		return
-	}
-
-	x.mode = value
-	// x.typ is unchanged
-}
-
-// index checks an index expression for validity. If length >= 0, it is the upper
-// bound for the index. The result is a valid index >= 0, or a negative value.
-//
-func (check *checker) index(index ast.Expr, length int64, iota int) int64 {
-	var x operand
-
-	check.expr(&x, index, nil, iota)
-	if !x.isInteger() {
-		check.errorf(x.pos(), "index %s must be integer", &x)
-		return -1
-	}
-	if x.mode != constant {
-		return -1 // we cannot check more
-	}
-	// The spec doesn't require int64 indices, but perhaps it should.
-	i, ok := x.val.(int64)
-	if !ok {
-		check.errorf(x.pos(), "stupid index %s", &x)
-		return -1
-	}
-	if i < 0 {
-		check.errorf(x.pos(), "index %s must not be negative", &x)
-		return -1
-	}
-	if length >= 0 && i >= length {
-		check.errorf(x.pos(), "index %s is out of bounds (>= %d)", &x, length)
-		return -1
-	}
-
-	return i
-}
-
-// compositeLitKey resolves unresolved composite literal keys.
-// For details, see comment in go/parser/parser.go, method parseElement.
-func (check *checker) compositeLitKey(key ast.Expr) {
-	if ident, ok := key.(*ast.Ident); ok && ident.Obj == nil {
-		if obj := check.pkg.Scope.Lookup(ident.Name); obj != nil {
-			check.register(ident, obj)
-		} else {
-			check.errorf(ident.Pos(), "undeclared name: %s", ident.Name)
-		}
-	}
-}
-
-// indexElts checks the elements (elts) of an array or slice composite literal
-// against the literal's element type (typ), and the element indices against
-// the literal length if known (length >= 0). It returns the length of the
-// literal (maximum index value + 1).
-//
-func (check *checker) indexedElts(elts []ast.Expr, typ Type, length int64, iota int) int64 {
-	visited := make(map[int64]bool, len(elts))
-	var index, max int64
-	for _, e := range elts {
-		// determine and check index
-		validIndex := false
-		eval := e
-		if kv, _ := e.(*ast.KeyValueExpr); kv != nil {
-			check.compositeLitKey(kv.Key)
-			if i := check.index(kv.Key, length, iota); i >= 0 {
-				index = i
-				validIndex = true
-			}
-			eval = kv.Value
-		} else if length >= 0 && index >= length {
-			check.errorf(e.Pos(), "index %d is out of bounds (>= %d)", index, length)
-		} else {
-			validIndex = true
-		}
-
-		// if we have a valid index, check for duplicate entries
-		if validIndex {
-			if visited[index] {
-				check.errorf(e.Pos(), "duplicate index %d in array or slice literal", index)
-			}
-			visited[index] = true
-		}
-		index++
-		if index > max {
-			max = index
-		}
-
-		// check element against composite literal element type
-		var x operand
-		check.expr(&x, eval, typ, iota)
-		if !x.isAssignable(typ) {
-			check.errorf(x.pos(), "cannot use %s as %s value in array or slice literal", &x, typ)
-		}
-	}
-	return max
-}
-
-// argument typechecks passing an argument arg (if arg != nil) or
-// x (if arg == nil) to the i'th parameter of the given signature.
-// If passSlice is set, the argument is followed by ... in the call.
-//
-func (check *checker) argument(sig *Signature, i int, arg ast.Expr, x *operand, passSlice bool) {
-	// determine parameter
-	var par *Var
-	n := len(sig.Params)
-	if i < n {
-		par = sig.Params[i]
-	} else if sig.IsVariadic {
-		par = sig.Params[n-1]
-	} else {
-		check.errorf(arg.Pos(), "too many arguments")
-		return
-	}
-
-	// determine argument
-	var z operand
-	z.mode = variable
-	z.expr = nil // TODO(gri) can we do better here? (for good error messages)
-	z.typ = par.Type
-
-	if arg != nil {
-		check.expr(x, arg, z.typ, -1)
-	}
-	if x.mode == invalid {
-		return // ignore this argument
-	}
-
-	// check last argument of the form x...
-	if passSlice {
-		if i+1 != n {
-			check.errorf(x.pos(), "can only use ... with matching parameter")
-			return // ignore this argument
-		}
-		// spec: "If the final argument is assignable to a slice type []T,
-		// it may be passed unchanged as the value for a ...T parameter if
-		// the argument is followed by ..."
-		z.typ = &Slice{Elt: z.typ} // change final parameter type to []T
-	}
-
-	check.assignOperand(&z, x)
-}
-
-var emptyResult Result
-
-func (check *checker) callExpr(x *operand) {
-	var typ Type
-	var val interface{}
-	switch x.mode {
-	case invalid:
-		return // nothing to do
-	case novalue:
-		typ = &emptyResult
-	case constant:
-		typ = x.typ
-		val = x.val
-	default:
-		typ = x.typ
-	}
-	check.ctxt.Expr(x.expr, typ, val)
-}
-
-// rawExpr typechecks expression e and initializes x with the expression
-// value or type. If an error occurred, x.mode is set to invalid.
-// A hint != nil is used as operand type for untyped shifted operands;
-// iota >= 0 indicates that the expression is part of a constant declaration.
-// cycleOk indicates whether it is ok for a type expression to refer to itself.
-//
-func (check *checker) rawExpr(x *operand, e ast.Expr, hint Type, iota int, cycleOk bool) {
-	if trace {
-		c := ""
-		if cycleOk {
-			c = " â¨"
-		}
-		check.trace(e.Pos(), "%s (%s, %d%s)", e, typeString(hint), iota, c)
-		defer check.untrace("=> %s", x)
-	}
-
-	if check.ctxt.Expr != nil {
-		defer check.callExpr(x)
-	}
-
-	switch e := e.(type) {
-	case *ast.BadExpr:
-		goto Error // error was reported before
-
-	case *ast.Ident:
-		if e.Name == "_" {
-			check.invalidOp(e.Pos(), "cannot use _ as value or type")
-			goto Error
-		}
-		obj := check.lookup(e)
-		if obj == nil {
-			goto Error // error was reported before
-		}
-		check.object(obj, cycleOk)
-		switch obj := obj.(type) {
-		case *Package:
-			check.errorf(e.Pos(), "use of package %s not in selector", obj.Name)
-			goto Error
-		case *Const:
-			if obj.Val == nil {
-				goto Error // cycle detected
-			}
-			x.mode = constant
-			if obj == universeIota {
-				if iota < 0 {
-					check.invalidAST(e.Pos(), "cannot use iota outside constant declaration")
-					goto Error
-				}
-				x.val = int64(iota)
-			} else {
-				x.val = obj.Val
-			}
-		case *TypeName:
-			x.mode = typexpr
-			if !cycleOk && underlying(obj.Type) == nil {
-				check.errorf(obj.spec.Pos(), "illegal cycle in declaration of %s", obj.Name)
-				x.expr = e
-				x.typ = Typ[Invalid]
-				return // don't goto Error - need x.mode == typexpr
-			}
-		case *Var:
-			x.mode = variable
-		case *Func:
-			x.mode = value
-		default:
-			unreachable()
-		}
-		x.typ = obj.GetType()
-
-	case *ast.Ellipsis:
-		// ellipses are handled explicitly where they are legal
-		// (array composite literals and parameter lists)
-		check.errorf(e.Pos(), "invalid use of '...'")
-		goto Error
-
-	case *ast.BasicLit:
-		x.setConst(e.Kind, e.Value)
-		if x.mode == invalid {
-			check.invalidAST(e.Pos(), "invalid literal %v", e.Value)
-			goto Error
-		}
-
-	case *ast.FuncLit:
-		if sig, ok := check.typ(e.Type, false).(*Signature); ok {
-			x.mode = value
-			x.typ = sig
-			check.later(nil, sig, e.Body)
-		} else {
-			check.invalidAST(e.Pos(), "invalid function literal %s", e)
-			goto Error
-		}
-
-	case *ast.CompositeLit:
-		typ := hint
-		openArray := false
-		if e.Type != nil {
-			// [...]T array types may only appear with composite literals.
-			// Check for them here so we don't have to handle ... in general.
-			typ = nil
-			if atyp, _ := e.Type.(*ast.ArrayType); atyp != nil && atyp.Len != nil {
-				if ellip, _ := atyp.Len.(*ast.Ellipsis); ellip != nil && ellip.Elt == nil {
-					// We have an "open" [...]T array type.
-					// Create a new ArrayType with unknown length (-1)
-					// and finish setting it up after analyzing the literal.
-					typ = &Array{Len: -1, Elt: check.typ(atyp.Elt, cycleOk)}
-					openArray = true
-				}
-			}
-			if typ == nil {
-				typ = check.typ(e.Type, false)
-			}
-		}
-		if typ == nil {
-			check.errorf(e.Pos(), "missing type in composite literal")
-			goto Error
-		}
-
-		switch utyp := underlying(deref(typ)).(type) {
-		case *Struct:
-			if len(e.Elts) == 0 {
-				break
-			}
-			fields := utyp.Fields
-			if _, ok := e.Elts[0].(*ast.KeyValueExpr); ok {
-				// all elements must have keys
-				visited := make([]bool, len(fields))
-				for _, e := range e.Elts {
-					kv, _ := e.(*ast.KeyValueExpr)
-					if kv == nil {
-						check.errorf(e.Pos(), "mixture of field:value and value elements in struct literal")
-						continue
-					}
-					key, _ := kv.Key.(*ast.Ident)
-					if key == nil {
-						check.errorf(kv.Pos(), "invalid field name %s in struct literal", kv.Key)
-						continue
-					}
-					i := utyp.fieldIndex(key.Name)
-					if i < 0 {
-						check.errorf(kv.Pos(), "unknown field %s in struct literal", key.Name)
-						continue
-					}
-					// 0 <= i < len(fields)
-					if visited[i] {
-						check.errorf(kv.Pos(), "duplicate field name %s in struct literal", key.Name)
-						continue
-					}
-					visited[i] = true
-					check.expr(x, kv.Value, nil, iota)
-					etyp := fields[i].Type
-					if !x.isAssignable(etyp) {
-						check.errorf(x.pos(), "cannot use %s as %s value in struct literal", x, etyp)
-						continue
-					}
-				}
-			} else {
-				// no element must have a key
-				for i, e := range e.Elts {
-					if kv, _ := e.(*ast.KeyValueExpr); kv != nil {
-						check.errorf(kv.Pos(), "mixture of field:value and value elements in struct literal")
-						continue
-					}
-					check.expr(x, e, nil, iota)
-					if i >= len(fields) {
-						check.errorf(x.pos(), "too many values in struct literal")
-						break // cannot continue
-					}
-					// i < len(fields)
-					etyp := fields[i].Type
-					if !x.isAssignable(etyp) {
-						check.errorf(x.pos(), "cannot use %s as %s value in struct literal", x, etyp)
-						continue
-					}
-				}
-				if len(e.Elts) < len(fields) {
-					check.errorf(e.Rbrace, "too few values in struct literal")
-					// ok to continue
-				}
-			}
-
-		case *Array:
-			n := check.indexedElts(e.Elts, utyp.Elt, utyp.Len, iota)
-			// if we have an "open" [...]T array, set the length now that we know it
-			if openArray {
-				utyp.Len = n
-			}
-
-		case *Slice:
-			check.indexedElts(e.Elts, utyp.Elt, -1, iota)
-
-		case *Map:
-			visited := make(map[interface{}]bool, len(e.Elts))
-			for _, e := range e.Elts {
-				kv, _ := e.(*ast.KeyValueExpr)
-				if kv == nil {
-					check.errorf(e.Pos(), "missing key in map literal")
-					continue
-				}
-				check.compositeLitKey(kv.Key)
-				check.expr(x, kv.Key, nil, iota)
-				if !x.isAssignable(utyp.Key) {
-					check.errorf(x.pos(), "cannot use %s as %s key in map literal", x, utyp.Key)
-					continue
-				}
-				if x.mode == constant {
-					if visited[x.val] {
-						check.errorf(x.pos(), "duplicate key %s in map literal", x.val)
-						continue
-					}
-					visited[x.val] = true
-				}
-				check.expr(x, kv.Value, utyp.Elt, iota)
-				if !x.isAssignable(utyp.Elt) {
-					check.errorf(x.pos(), "cannot use %s as %s value in map literal", x, utyp.Elt)
-					continue
-				}
-			}
-
-		default:
-			check.errorf(e.Pos(), "%s is not a valid composite literal type", typ)
-			goto Error
-		}
-
-		x.mode = value
-		x.typ = typ
-
-	case *ast.ParenExpr:
-		check.rawExpr(x, e.X, hint, iota, cycleOk)
-
-	case *ast.SelectorExpr:
-		sel := e.Sel.Name
-		// If the identifier refers to a package, handle everything here
-		// so we don't need a "package" mode for operands: package names
-		// can only appear in qualified identifiers which are mapped to
-		// selector expressions.
-		if ident, ok := e.X.(*ast.Ident); ok {
-			if pkg, ok := check.lookup(ident).(*Package); ok {
-				exp := pkg.Scope.Lookup(sel)
-				if exp == nil {
-					check.errorf(e.Sel.Pos(), "cannot refer to unexported %s", sel)
-					goto Error
-				}
-				check.register(e.Sel, exp)
-				// Simplified version of the code for *ast.Idents:
-				// - imported packages use types.Scope and types.Objects
-				// - imported objects are always fully initialized
-				switch exp := exp.(type) {
-				case *Const:
-					assert(exp.Val != nil)
-					x.mode = constant
-					x.typ = exp.Type
-					x.val = exp.Val
-				case *TypeName:
-					x.mode = typexpr
-					x.typ = exp.Type
-				case *Var:
-					x.mode = variable
-					x.typ = exp.Type
-				case *Func:
-					x.mode = value
-					x.typ = exp.Type
-				default:
-					unreachable()
-				}
-				x.expr = e
-				return
-			}
-		}
-
-		check.exprOrType(x, e.X, nil, iota, false)
-		if x.mode == invalid {
-			goto Error
-		}
-		mode, typ := lookupField(x.typ, QualifiedName{check.pkg, sel})
-		if mode == invalid {
-			check.invalidOp(e.Pos(), "%s has no single field or method %s", x, sel)
-			goto Error
-		}
-		if x.mode == typexpr {
-			// method expression
-			sig, ok := typ.(*Signature)
-			if !ok {
-				check.invalidOp(e.Pos(), "%s has no method %s", x, sel)
-				goto Error
-			}
-			// the receiver type becomes the type of the first function
-			// argument of the method expression's function type
-			// TODO(gri) at the moment, method sets don't correctly track
-			// pointer vs non-pointer receivers => typechecker is too lenient
-			x.mode = value
-			x.typ = &Signature{
-				Params:     append([]*Var{{Type: x.typ}}, sig.Params...),
-				Results:    sig.Results,
-				IsVariadic: sig.IsVariadic,
-			}
-		} else {
-			// regular selector
-			x.mode = mode
-			x.typ = typ
-		}
-
-	case *ast.IndexExpr:
-		check.expr(x, e.X, hint, iota)
-
-		valid := false
-		length := int64(-1) // valid if >= 0
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				valid = true
-				if x.mode == constant {
-					length = int64(len(x.val.(string)))
-				}
-				// an indexed string always yields a byte value
-				// (not a constant) even if the string and the
-				// index are constant
-				x.mode = value
-				x.typ = Typ[Byte]
-			}
-
-		case *Array:
-			valid = true
-			length = typ.Len
-			if x.mode != variable {
-				x.mode = value
-			}
-			x.typ = typ.Elt
-
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				valid = true
-				length = typ.Len
-				x.mode = variable
-				x.typ = typ.Elt
-			}
-
-		case *Slice:
-			valid = true
-			x.mode = variable
-			x.typ = typ.Elt
-
-		case *Map:
-			var key operand
-			check.expr(&key, e.Index, nil, iota)
-			if key.mode == invalid || !key.isAssignable(typ.Key) {
-				check.invalidOp(x.pos(), "cannot use %s as map index of type %s", &key, typ.Key)
-				goto Error
-			}
-			x.mode = valueok
-			x.typ = typ.Elt
-			x.expr = e
-			return
-		}
-
-		if !valid {
-			check.invalidOp(x.pos(), "cannot index %s", x)
-			goto Error
-		}
-
-		if e.Index == nil {
-			check.invalidAST(e.Pos(), "missing index expression for %s", x)
-			return
-		}
-
-		check.index(e.Index, length, iota)
-		// ok to continue
-
-	case *ast.SliceExpr:
-		check.expr(x, e.X, hint, iota)
-
-		valid := false
-		length := int64(-1) // valid if >= 0
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				valid = true
-				if x.mode == constant {
-					length = int64(len(x.val.(string))) + 1 // +1 for slice
-				}
-				// a sliced string always yields a string value
-				// of the same type as the original string (not
-				// a constant) even if the string and the indices
-				// are constant
-				x.mode = value
-				// x.typ doesn't change
-			}
-
-		case *Array:
-			valid = true
-			length = typ.Len + 1 // +1 for slice
-			if x.mode != variable {
-				check.invalidOp(x.pos(), "cannot slice %s (value not addressable)", x)
-				goto Error
-			}
-			x.typ = &Slice{Elt: typ.Elt}
-
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				valid = true
-				length = typ.Len + 1 // +1 for slice
-				x.mode = variable
-				x.typ = &Slice{Elt: typ.Elt}
-			}
-
-		case *Slice:
-			valid = true
-			x.mode = variable
-			// x.typ doesn't change
-		}
-
-		if !valid {
-			check.invalidOp(x.pos(), "cannot slice %s", x)
-			goto Error
-		}
-
-		lo := int64(0)
-		if e.Low != nil {
-			lo = check.index(e.Low, length, iota)
-		}
-
-		hi := int64(-1)
-		if e.High != nil {
-			hi = check.index(e.High, length, iota)
-		} else if length >= 0 {
-			hi = length
-		}
-
-		if lo >= 0 && hi >= 0 && lo > hi {
-			check.errorf(e.Low.Pos(), "inverted slice range: %d > %d", lo, hi)
-			// ok to continue
-		}
-
-	case *ast.TypeAssertExpr:
-		check.expr(x, e.X, hint, iota)
-		if x.mode == invalid {
-			goto Error
-		}
-		var T *Interface
-		if T, _ = underlying(x.typ).(*Interface); T == nil {
-			check.invalidOp(x.pos(), "%s is not an interface", x)
-			goto Error
-		}
-		// x.(type) expressions are handled explicitly in type switches
-		if e.Type == nil {
-			check.errorf(e.Pos(), "use of .(type) outside type switch")
-			goto Error
-		}
-		typ := check.typ(e.Type, false)
-		if typ == Typ[Invalid] {
-			goto Error
-		}
-		if method, wrongType := missingMethod(typ, T); method != nil {
-			var msg string
-			if wrongType {
-				msg = "%s cannot have dynamic type %s (wrong type for method %s)"
-			} else {
-				msg = "%s cannot have dynamic type %s (missing method %s)"
-			}
-			check.errorf(e.Type.Pos(), msg, x, typ, method.Name)
-			// ok to continue
-		}
-		x.mode = valueok
-		x.expr = e
-		x.typ = typ
-
-	case *ast.CallExpr:
-		check.exprOrType(x, e.Fun, nil, iota, false)
-		if x.mode == invalid {
-			goto Error
-		} else if x.mode == typexpr {
-			check.conversion(x, e, x.typ, iota)
-		} else if sig, ok := underlying(x.typ).(*Signature); ok {
-			// check parameters
-
-			// If we have a trailing ... at the end of the parameter
-			// list, the last argument must match the parameter type
-			// []T of a variadic function parameter x ...T.
-			passSlice := false
-			if e.Ellipsis.IsValid() {
-				if sig.IsVariadic {
-					passSlice = true
-				} else {
-					check.errorf(e.Ellipsis, "cannot use ... in call to %s", e.Fun)
-					// ok to continue
-				}
-			}
-
-			// If we have a single argument that is a function call
-			// we need to handle it separately. Determine if this
-			// is the case without checking the argument.
-			var call *ast.CallExpr
-			if len(e.Args) == 1 {
-				call, _ = unparen(e.Args[0]).(*ast.CallExpr)
-			}
-
-			n := 0 // parameter count
-			if call != nil {
-				// We have a single argument that is a function call.
-				check.expr(x, call, nil, -1)
-				if x.mode == invalid {
-					goto Error // TODO(gri): we can do better
-				}
-				if t, _ := x.typ.(*Result); t != nil {
-					// multiple result values
-					n = len(t.Values)
-					for i, obj := range t.Values {
-						x.mode = value
-						x.expr = nil // TODO(gri) can we do better here? (for good error messages)
-						x.typ = obj.Type
-						check.argument(sig, i, nil, x, passSlice && i+1 == n)
-					}
-				} else {
-					// single result value
-					n = 1
-					check.argument(sig, 0, nil, x, passSlice)
-				}
-
-			} else {
-				// We don't have a single argument or it is not a function call.
-				n = len(e.Args)
-				for i, arg := range e.Args {
-					check.argument(sig, i, arg, x, passSlice && i+1 == n)
-				}
-			}
-
-			// determine if we have enough arguments
-			if sig.IsVariadic {
-				// a variadic function accepts an "empty"
-				// last argument: count one extra
-				n++
-			}
-			if n < len(sig.Params) {
-				check.errorf(e.Fun.Pos(), "too few arguments in call to %s", e.Fun)
-				// ok to continue
-			}
-
-			// determine result
-			switch len(sig.Results) {
-			case 0:
-				x.mode = novalue
-			case 1:
-				x.mode = value
-				x.typ = sig.Results[0].Type
-			default:
-				x.mode = value
-				x.typ = &Result{Values: sig.Results}
-			}
-
-		} else if bin, ok := x.typ.(*builtin); ok {
-			check.builtin(x, e, bin, iota)
-
-		} else {
-			check.invalidOp(x.pos(), "cannot call non-function %s", x)
-			goto Error
-		}
-
-	case *ast.StarExpr:
-		check.exprOrType(x, e.X, hint, iota, true)
-		switch x.mode {
-		case invalid:
-			goto Error
-		case typexpr:
-			x.typ = &Pointer{Base: x.typ}
-		default:
-			if typ, ok := x.typ.(*Pointer); ok {
-				x.mode = variable
-				x.typ = typ.Base
-			} else {
-				check.invalidOp(x.pos(), "cannot indirect %s", x)
-				goto Error
-			}
-		}
-
-	case *ast.UnaryExpr:
-		check.expr(x, e.X, hint, iota)
-		check.unary(x, e.Op)
-
-	case *ast.BinaryExpr:
-		var y operand
-		check.expr(x, e.X, hint, iota)
-		check.expr(&y, e.Y, hint, iota)
-		check.binary(x, &y, e.Op, hint)
-
-	case *ast.KeyValueExpr:
-		// key:value expressions are handled in composite literals
-		check.invalidAST(e.Pos(), "no key:value expected")
-		goto Error
-
-	case *ast.ArrayType:
-		if e.Len != nil {
-			check.expr(x, e.Len, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-			if x.mode != constant {
-				if x.mode != invalid {
-					check.errorf(x.pos(), "array length %s must be constant", x)
-				}
-				goto Error
-			}
-			n, ok := x.val.(int64)
-			if !ok || n < 0 {
-				check.errorf(x.pos(), "invalid array length %s", x)
-				goto Error
-			}
-			x.typ = &Array{Len: n, Elt: check.typ(e.Elt, cycleOk)}
-		} else {
-			x.typ = &Slice{Elt: check.typ(e.Elt, true)}
-		}
-		x.mode = typexpr
-
-	case *ast.StructType:
-		x.mode = typexpr
-		x.typ = &Struct{Fields: check.collectFields(e.Fields, cycleOk)}
-
-	case *ast.FuncType:
-		params, isVariadic := check.collectParams(e.Params, true)
-		results, _ := check.collectParams(e.Results, false)
-		x.mode = typexpr
-		x.typ = &Signature{Recv: nil, Params: params, Results: results, IsVariadic: isVariadic}
-
-	case *ast.InterfaceType:
-		x.mode = typexpr
-		x.typ = &Interface{Methods: check.collectMethods(e.Methods)}
-
-	case *ast.MapType:
-		x.mode = typexpr
-		x.typ = &Map{Key: check.typ(e.Key, true), Elt: check.typ(e.Value, true)}
-
-	case *ast.ChanType:
-		x.mode = typexpr
-		x.typ = &Chan{Dir: e.Dir, Elt: check.typ(e.Value, true)}
-
-	default:
-		check.dump("e = %s", e)
-		unreachable()
-	}
-
-	// everything went well
-	x.expr = e
-	return
-
-Error:
-	x.mode = invalid
-	x.expr = e
-}
-
-// exprOrType is like rawExpr but reports an error if e doesn't represents a value or type.
-func (check *checker) exprOrType(x *operand, e ast.Expr, hint Type, iota int, cycleOk bool) {
-	check.rawExpr(x, e, hint, iota, cycleOk)
-	if x.mode == novalue {
-		check.errorf(x.pos(), "%s used as value or type", x)
-		x.mode = invalid
-	}
-}
-
-// expr is like rawExpr but reports an error if e doesn't represents a value.
-func (check *checker) expr(x *operand, e ast.Expr, hint Type, iota int) {
-	check.rawExpr(x, e, hint, iota, false)
-	switch x.mode {
-	case novalue:
-		check.errorf(x.pos(), "%s used as value", x)
-		x.mode = invalid
-	case typexpr:
-		check.errorf(x.pos(), "%s is not an expression", x)
-		x.mode = invalid
-	}
-}
-
-func (check *checker) rawTyp(e ast.Expr, cycleOk, nilOk bool) Type {
-	var x operand
-	check.rawExpr(&x, e, nil, -1, cycleOk)
-	switch x.mode {
-	case invalid:
-		// ignore - error reported before
-	case novalue:
-		check.errorf(x.pos(), "%s used as type", &x)
-	case typexpr:
-		return x.typ
-	case constant:
-		if nilOk && x.isNil() {
-			return nil
-		}
-		fallthrough
-	default:
-		check.errorf(x.pos(), "%s is not a type", &x)
-	}
-	return Typ[Invalid]
-}
-
-// typOrNil is like rawExpr but reports an error if e doesn't represents a type or the predeclared value nil.
-// It returns e's type, nil, or Typ[Invalid] if an error occurred.
-//
-func (check *checker) typOrNil(e ast.Expr, cycleOk bool) Type {
-	return check.rawTyp(e, cycleOk, true)
-}
-
-// typ is like rawExpr but reports an error if e doesn't represents a type.
-// It returns e's type, or Typ[Invalid] if an error occurred.
-//
-func (check *checker) typ(e ast.Expr, cycleOk bool) Type {
-	return check.rawTyp(e, cycleOk, false)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/gcimporter.go gcc-4.8.1/libgo/go/go/types/gcimporter.go
--- gcc-4.8.1.orig/libgo/go/go/types/gcimporter.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/gcimporter.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,908 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements an Importer for gc-generated object files.
-
-package types
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"go/ast"
-	"go/build"
-	"go/token"
-	"io"
-	"math/big"
-	"os"
-	"path/filepath"
-	"strconv"
-	"strings"
-	"text/scanner"
-)
-
-var pkgExts = [...]string{".a", ".5", ".6", ".8"}
-
-// FindPkg returns the filename and unique package id for an import
-// path based on package information provided by build.Import (using
-// the build.Default build.Context).
-// If no file was found, an empty filename is returned.
-//
-func FindPkg(path, srcDir string) (filename, id string) {
-	if len(path) == 0 {
-		return
-	}
-
-	id = path
-	var noext string
-	switch {
-	default:
-		// "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x"
-		// Don't require the source files to be present.
-		bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary)
-		if bp.PkgObj == "" {
-			return
-		}
-		noext = bp.PkgObj
-		if strings.HasSuffix(noext, ".a") {
-			noext = noext[:len(noext)-len(".a")]
-		}
-
-	case build.IsLocalImport(path):
-		// "./x" -> "/this/directory/x.ext", "/this/directory/x"
-		noext = filepath.Join(srcDir, path)
-		id = noext
-
-	case filepath.IsAbs(path):
-		// for completeness only - go/build.Import
-		// does not support absolute imports
-		// "/x" -> "/x.ext", "/x"
-		noext = path
-	}
-
-	// try extensions
-	for _, ext := range pkgExts {
-		filename = noext + ext
-		if f, err := os.Stat(filename); err == nil && !f.IsDir() {
-			return
-		}
-	}
-
-	filename = "" // not found
-	return
-}
-
-// GcImportData imports a package by reading the gc-generated export data,
-// adds the corresponding package object to the imports map indexed by id,
-// and returns the object.
-//
-// The imports map must contains all packages already imported. The data
-// reader position must be the beginning of the export data section. The
-// filename is only used in error messages.
-//
-// If imports[id] contains the completely imported package, that package
-// can be used directly, and there is no need to call this function (but
-// there is also no harm but for extra time used).
-//
-func GcImportData(imports map[string]*Package, filename, id string, data *bufio.Reader) (pkg *Package, err error) {
-	// support for gcParser error handling
-	defer func() {
-		if r := recover(); r != nil {
-			err = r.(importError) // will re-panic if r is not an importError
-		}
-	}()
-
-	var p gcParser
-	p.init(filename, id, data, imports)
-	pkg = p.parseExport()
-
-	return
-}
-
-// GcImport imports a gc-generated package given its import path, adds the
-// corresponding package object to the imports map, and returns the object.
-// Local import paths are interpreted relative to the current working directory.
-// The imports map must contains all packages already imported.
-// GcImport satisfies the ast.Importer signature.
-//
-func GcImport(imports map[string]*Package, path string) (pkg *Package, err error) {
-	if path == "unsafe" {
-		return Unsafe, nil
-	}
-
-	srcDir, err := os.Getwd()
-	if err != nil {
-		return
-	}
-	filename, id := FindPkg(path, srcDir)
-	if filename == "" {
-		err = errors.New("can't find import: " + id)
-		return
-	}
-
-	// no need to re-import if the package was imported completely before
-	if pkg = imports[id]; pkg != nil && pkg.Complete {
-		return
-	}
-
-	// open file
-	f, err := os.Open(filename)
-	if err != nil {
-		return
-	}
-	defer func() {
-		f.Close()
-		if err != nil {
-			// Add file name to error.
-			err = fmt.Errorf("reading export data: %s: %v", filename, err)
-		}
-	}()
-
-	buf := bufio.NewReader(f)
-	if err = FindGcExportData(buf); err != nil {
-		return
-	}
-
-	pkg, err = GcImportData(imports, filename, id, buf)
-
-	return
-}
-
-// ----------------------------------------------------------------------------
-// gcParser
-
-// gcParser parses the exports inside a gc compiler-produced
-// object/archive file and populates its scope with the results.
-type gcParser struct {
-	scanner scanner.Scanner
-	tok     rune                // current token
-	lit     string              // literal string; only valid for Ident, Int, String tokens
-	id      string              // package id of imported package
-	imports map[string]*Package // package id -> package object
-}
-
-func (p *gcParser) init(filename, id string, src io.Reader, imports map[string]*Package) {
-	p.scanner.Init(src)
-	p.scanner.Error = func(_ *scanner.Scanner, msg string) { p.error(msg) }
-	p.scanner.Mode = scanner.ScanIdents | scanner.ScanInts | scanner.ScanChars | scanner.ScanStrings | scanner.ScanComments | scanner.SkipComments
-	p.scanner.Whitespace = 1<<'\t' | 1<<' '
-	p.scanner.Filename = filename // for good error messages
-	p.next()
-	p.id = id
-	p.imports = imports
-}
-
-func (p *gcParser) next() {
-	p.tok = p.scanner.Scan()
-	switch p.tok {
-	case scanner.Ident, scanner.Int, scanner.Char, scanner.String, 'Â·':
-		p.lit = p.scanner.TokenText()
-	default:
-		p.lit = ""
-	}
-	// leave for debugging
-	if false {
-		fmt.Printf("%s: %q -> %q\n", scanner.TokenString(p.tok), p.scanner.TokenText(), p.lit)
-	}
-}
-
-func declConst(scope *Scope, name string) *Const {
-	// the constant may have been imported before - if it exists
-	// already in the respective scope, return that constant
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Const)
-	}
-	// otherwise create a new constant and insert it into the scope
-	obj := &Const{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-func declTypeName(scope *Scope, name string) *TypeName {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*TypeName)
-	}
-	obj := &TypeName{Name: name}
-	// a named type may be referred to before the underlying type
-	// is known - set it up
-	obj.Type = &NamedType{Obj: obj}
-	scope.Insert(obj)
-	return obj
-}
-
-func declVar(scope *Scope, name string) *Var {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Var)
-	}
-	obj := &Var{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-func declFunc(scope *Scope, name string) *Func {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Func)
-	}
-	obj := &Func{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-// ----------------------------------------------------------------------------
-// Error handling
-
-// Internal errors are boxed as importErrors.
-type importError struct {
-	pos scanner.Position
-	err error
-}
-
-func (e importError) Error() string {
-	return fmt.Sprintf("import error %s (byte offset = %d): %s", e.pos, e.pos.Offset, e.err)
-}
-
-func (p *gcParser) error(err interface{}) {
-	if s, ok := err.(string); ok {
-		err = errors.New(s)
-	}
-	// panic with a runtime.Error if err is not an error
-	panic(importError{p.scanner.Pos(), err.(error)})
-}
-
-func (p *gcParser) errorf(format string, args ...interface{}) {
-	p.error(fmt.Sprintf(format, args...))
-}
-
-func (p *gcParser) expect(tok rune) string {
-	lit := p.lit
-	if p.tok != tok {
-		p.errorf("expected %s, got %s (%s)", scanner.TokenString(tok), scanner.TokenString(p.tok), lit)
-	}
-	p.next()
-	return lit
-}
-
-func (p *gcParser) expectSpecial(tok string) {
-	sep := 'x' // not white space
-	i := 0
-	for i < len(tok) && p.tok == rune(tok[i]) && sep > ' ' {
-		sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
-		p.next()
-		i++
-	}
-	if i < len(tok) {
-		p.errorf("expected %q, got %q", tok, tok[0:i])
-	}
-}
-
-func (p *gcParser) expectKeyword(keyword string) {
-	lit := p.expect(scanner.Ident)
-	if lit != keyword {
-		p.errorf("expected keyword %s, got %q", keyword, lit)
-	}
-}
-
-// ----------------------------------------------------------------------------
-// Import declarations
-
-// ImportPath = string_lit .
-//
-func (p *gcParser) parsePkgId() *Package {
-	id, err := strconv.Unquote(p.expect(scanner.String))
-	if err != nil {
-		p.error(err)
-	}
-
-	switch id {
-	case "":
-		// id == "" stands for the imported package id
-		// (only known at time of package installation)
-		id = p.id
-	case "unsafe":
-		// package unsafe is not in the imports map - handle explicitly
-		return Unsafe
-	}
-
-	pkg := p.imports[id]
-	if pkg == nil {
-		pkg = &Package{Scope: new(Scope)}
-		p.imports[id] = pkg
-	}
-
-	return pkg
-}
-
-// dotIdentifier = ( ident | 'Â·' ) { ident | int | 'Â·' } .
-func (p *gcParser) parseDotIdent() string {
-	ident := ""
-	if p.tok != scanner.Int {
-		sep := 'x' // not white space
-		for (p.tok == scanner.Ident || p.tok == scanner.Int || p.tok == 'Â·') && sep > ' ' {
-			ident += p.lit
-			sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
-			p.next()
-		}
-	}
-	if ident == "" {
-		p.expect(scanner.Ident) // use expect() for error handling
-	}
-	return ident
-}
-
-// ExportedName = "@" ImportPath "." dotIdentifier .
-//
-func (p *gcParser) parseExportedName() (*Package, string) {
-	p.expect('@')
-	pkg := p.parsePkgId()
-	p.expect('.')
-	name := p.parseDotIdent()
-	return pkg, name
-}
-
-// ----------------------------------------------------------------------------
-// Types
-
-// BasicType = identifier .
-//
-func (p *gcParser) parseBasicType() Type {
-	id := p.expect(scanner.Ident)
-	obj := Universe.Lookup(id)
-	if obj, ok := obj.(*TypeName); ok {
-		return obj.Type
-	}
-	p.errorf("not a basic type: %s", id)
-	return nil
-}
-
-// ArrayType = "[" int_lit "]" Type .
-//
-func (p *gcParser) parseArrayType() Type {
-	// "[" already consumed and lookahead known not to be "]"
-	lit := p.expect(scanner.Int)
-	p.expect(']')
-	elt := p.parseType()
-	n, err := strconv.ParseInt(lit, 10, 64)
-	if err != nil {
-		p.error(err)
-	}
-	return &Array{Len: n, Elt: elt}
-}
-
-// MapType = "map" "[" Type "]" Type .
-//
-func (p *gcParser) parseMapType() Type {
-	p.expectKeyword("map")
-	p.expect('[')
-	key := p.parseType()
-	p.expect(']')
-	elt := p.parseType()
-	return &Map{Key: key, Elt: elt}
-}
-
-// Name = identifier | "?" | ExportedName  .
-//
-func (p *gcParser) parseName() (pkg *Package, name string) {
-	switch p.tok {
-	case scanner.Ident:
-		name = p.lit
-		p.next()
-	case '?':
-		// anonymous
-		p.next()
-	case '@':
-		// exported name prefixed with package path
-		pkg, name = p.parseExportedName()
-	default:
-		p.error("name expected")
-	}
-	return
-}
-
-// Field = Name Type [ string_lit ] .
-//
-func (p *gcParser) parseField() *Field {
-	var f Field
-	f.Pkg, f.Name = p.parseName()
-	f.Type = p.parseType()
-	if p.tok == scanner.String {
-		f.Tag = p.expect(scanner.String)
-	}
-	if f.Name == "" {
-		// anonymous field - typ must be T or *T and T must be a type name
-		if typ, ok := deref(f.Type).(*NamedType); ok && typ.Obj != nil {
-			f.Name = typ.Obj.GetName()
-			f.IsAnonymous = true
-		} else {
-			p.errorf("anonymous field expected")
-		}
-	}
-	return &f
-}
-
-// StructType = "struct" "{" [ FieldList ] "}" .
-// FieldList  = Field { ";" Field } .
-//
-func (p *gcParser) parseStructType() Type {
-	var fields []*Field
-
-	p.expectKeyword("struct")
-	p.expect('{')
-	for p.tok != '}' {
-		if len(fields) > 0 {
-			p.expect(';')
-		}
-		fields = append(fields, p.parseField())
-	}
-	p.expect('}')
-
-	return &Struct{Fields: fields}
-}
-
-// Parameter = ( identifier | "?" ) [ "..." ] Type [ string_lit ] .
-//
-func (p *gcParser) parseParameter() (par *Var, isVariadic bool) {
-	_, name := p.parseName()
-	if name == "" {
-		name = "_" // cannot access unnamed identifiers
-	}
-	if p.tok == '.' {
-		p.expectSpecial("...")
-		isVariadic = true
-	}
-	typ := p.parseType()
-	// ignore argument tag (e.g. "noescape")
-	if p.tok == scanner.String {
-		p.next()
-	}
-	par = &Var{Name: name, Type: typ}
-	return
-}
-
-// Parameters    = "(" [ ParameterList ] ")" .
-// ParameterList = { Parameter "," } Parameter .
-//
-func (p *gcParser) parseParameters() (list []*Var, isVariadic bool) {
-	p.expect('(')
-	for p.tok != ')' {
-		if len(list) > 0 {
-			p.expect(',')
-		}
-		par, variadic := p.parseParameter()
-		list = append(list, par)
-		if variadic {
-			if isVariadic {
-				p.error("... not on final argument")
-			}
-			isVariadic = true
-		}
-	}
-	p.expect(')')
-
-	return
-}
-
-// Signature = Parameters [ Result ] .
-// Result    = Type | Parameters .
-//
-func (p *gcParser) parseSignature() *Signature {
-	params, isVariadic := p.parseParameters()
-
-	// optional result type
-	var results []*Var
-	switch p.tok {
-	case scanner.Ident, '[', '*', '<', '@':
-		// single, unnamed result
-		results = []*Var{{Type: p.parseType()}}
-	case '(':
-		// named or multiple result(s)
-		var variadic bool
-		results, variadic = p.parseParameters()
-		if variadic {
-			p.error("... not permitted on result type")
-		}
-	}
-
-	return &Signature{Params: params, Results: results, IsVariadic: isVariadic}
-}
-
-// InterfaceType = "interface" "{" [ MethodList ] "}" .
-// MethodList    = Method { ";" Method } .
-// Method        = Name Signature .
-//
-// The methods of embedded interfaces are always "inlined"
-// by the compiler and thus embedded interfaces are never
-// visible in the export data.
-//
-func (p *gcParser) parseInterfaceType() Type {
-	var methods []*Method
-
-	p.expectKeyword("interface")
-	p.expect('{')
-	for p.tok != '}' {
-		if len(methods) > 0 {
-			p.expect(';')
-		}
-		pkg, name := p.parseName()
-		typ := p.parseSignature()
-		methods = append(methods, &Method{QualifiedName{pkg, name}, typ})
-	}
-	p.expect('}')
-
-	return &Interface{Methods: methods}
-}
-
-// ChanType = ( "chan" [ "<-" ] | "<-" "chan" ) Type .
-//
-func (p *gcParser) parseChanType() Type {
-	dir := ast.SEND | ast.RECV
-	if p.tok == scanner.Ident {
-		p.expectKeyword("chan")
-		if p.tok == '<' {
-			p.expectSpecial("<-")
-			dir = ast.SEND
-		}
-	} else {
-		p.expectSpecial("<-")
-		p.expectKeyword("chan")
-		dir = ast.RECV
-	}
-	elt := p.parseType()
-	return &Chan{Dir: dir, Elt: elt}
-}
-
-// Type =
-//	BasicType | TypeName | ArrayType | SliceType | StructType |
-//      PointerType | FuncType | InterfaceType | MapType | ChanType |
-//      "(" Type ")" .
-//
-// BasicType   = ident .
-// TypeName    = ExportedName .
-// SliceType   = "[" "]" Type .
-// PointerType = "*" Type .
-// FuncType    = "func" Signature .
-//
-func (p *gcParser) parseType() Type {
-	switch p.tok {
-	case scanner.Ident:
-		switch p.lit {
-		default:
-			return p.parseBasicType()
-		case "struct":
-			return p.parseStructType()
-		case "func":
-			// FuncType
-			p.next()
-			return p.parseSignature()
-		case "interface":
-			return p.parseInterfaceType()
-		case "map":
-			return p.parseMapType()
-		case "chan":
-			return p.parseChanType()
-		}
-	case '@':
-		// TypeName
-		pkg, name := p.parseExportedName()
-		return declTypeName(pkg.Scope, name).Type
-	case '[':
-		p.next() // look ahead
-		if p.tok == ']' {
-			// SliceType
-			p.next()
-			return &Slice{Elt: p.parseType()}
-		}
-		return p.parseArrayType()
-	case '*':
-		// PointerType
-		p.next()
-		return &Pointer{Base: p.parseType()}
-	case '<':
-		return p.parseChanType()
-	case '(':
-		// "(" Type ")"
-		p.next()
-		typ := p.parseType()
-		p.expect(')')
-		return typ
-	}
-	p.errorf("expected type, got %s (%q)", scanner.TokenString(p.tok), p.lit)
-	return nil
-}
-
-// ----------------------------------------------------------------------------
-// Declarations
-
-// ImportDecl = "import" identifier string_lit .
-//
-func (p *gcParser) parseImportDecl() {
-	p.expectKeyword("import")
-	// The identifier has no semantic meaning in the import data.
-	// It exists so that error messages can print the real package
-	// name: binary.ByteOrder instead of "encoding/binary".ByteOrder.
-	name := p.expect(scanner.Ident)
-	pkg := p.parsePkgId()
-	assert(pkg.Name == "" || pkg.Name == name)
-	pkg.Name = name
-}
-
-// int_lit = [ "+" | "-" ] { "0" ... "9" } .
-//
-func (p *gcParser) parseInt() (neg bool, val string) {
-	switch p.tok {
-	case '-':
-		neg = true
-		fallthrough
-	case '+':
-		p.next()
-	}
-	val = p.expect(scanner.Int)
-	return
-}
-
-// number = int_lit [ "p" int_lit ] .
-//
-func (p *gcParser) parseNumber() (x operand) {
-	x.mode = constant
-
-	// mantissa
-	neg, val := p.parseInt()
-	mant, ok := new(big.Int).SetString(val, 0)
-	assert(ok)
-	if neg {
-		mant.Neg(mant)
-	}
-
-	if p.lit == "p" {
-		// exponent (base 2)
-		p.next()
-		neg, val = p.parseInt()
-		exp64, err := strconv.ParseUint(val, 10, 0)
-		if err != nil {
-			p.error(err)
-		}
-		exp := uint(exp64)
-		if neg {
-			denom := big.NewInt(1)
-			denom.Lsh(denom, exp)
-			x.typ = Typ[UntypedFloat]
-			x.val = normalizeRatConst(new(big.Rat).SetFrac(mant, denom))
-			return
-		}
-		if exp > 0 {
-			mant.Lsh(mant, exp)
-		}
-		x.typ = Typ[UntypedFloat]
-		x.val = normalizeIntConst(mant)
-		return
-	}
-
-	x.typ = Typ[UntypedInt]
-	x.val = normalizeIntConst(mant)
-	return
-}
-
-// ConstDecl   = "const" ExportedName [ Type ] "=" Literal .
-// Literal     = bool_lit | int_lit | float_lit | complex_lit | rune_lit | string_lit .
-// bool_lit    = "true" | "false" .
-// complex_lit = "(" float_lit "+" float_lit "i" ")" .
-// rune_lit    = "(" int_lit "+" int_lit ")" .
-// string_lit  = `"` { unicode_char } `"` .
-//
-func (p *gcParser) parseConstDecl() {
-	p.expectKeyword("const")
-	pkg, name := p.parseExportedName()
-	obj := declConst(pkg.Scope, name)
-	var x operand
-	if p.tok != '=' {
-		obj.Type = p.parseType()
-	}
-	p.expect('=')
-	switch p.tok {
-	case scanner.Ident:
-		// bool_lit
-		if p.lit != "true" && p.lit != "false" {
-			p.error("expected true or false")
-		}
-		x.typ = Typ[UntypedBool]
-		x.val = p.lit == "true"
-		p.next()
-
-	case '-', scanner.Int:
-		// int_lit
-		x = p.parseNumber()
-
-	case '(':
-		// complex_lit or rune_lit
-		p.next()
-		if p.tok == scanner.Char {
-			p.next()
-			p.expect('+')
-			x = p.parseNumber()
-			x.typ = Typ[UntypedRune]
-			p.expect(')')
-			break
-		}
-		re := p.parseNumber()
-		p.expect('+')
-		im := p.parseNumber()
-		p.expectKeyword("i")
-		p.expect(')')
-		x.typ = Typ[UntypedComplex]
-		// TODO(gri) fix this
-		_, _ = re, im
-		x.val = zeroConst
-
-	case scanner.Char:
-		// rune_lit
-		x.setConst(token.CHAR, p.lit)
-		p.next()
-
-	case scanner.String:
-		// string_lit
-		x.setConst(token.STRING, p.lit)
-		p.next()
-
-	default:
-		p.errorf("expected literal got %s", scanner.TokenString(p.tok))
-	}
-	if obj.Type == nil {
-		obj.Type = x.typ
-	}
-	assert(x.val != nil)
-	obj.Val = x.val
-}
-
-// TypeDecl = "type" ExportedName Type .
-//
-func (p *gcParser) parseTypeDecl() {
-	p.expectKeyword("type")
-	pkg, name := p.parseExportedName()
-	obj := declTypeName(pkg.Scope, name)
-
-	// The type object may have been imported before and thus already
-	// have a type associated with it. We still need to parse the type
-	// structure, but throw it away if the object already has a type.
-	// This ensures that all imports refer to the same type object for
-	// a given type declaration.
-	typ := p.parseType()
-
-	if name := obj.Type.(*NamedType); name.Underlying == nil {
-		name.Underlying = typ
-	}
-}
-
-// VarDecl = "var" ExportedName Type .
-//
-func (p *gcParser) parseVarDecl() {
-	p.expectKeyword("var")
-	pkg, name := p.parseExportedName()
-	obj := declVar(pkg.Scope, name)
-	obj.Type = p.parseType()
-}
-
-// Func = Signature [ Body ] .
-// Body = "{" ... "}" .
-//
-func (p *gcParser) parseFunc() *Signature {
-	sig := p.parseSignature()
-	if p.tok == '{' {
-		p.next()
-		for i := 1; i > 0; p.next() {
-			switch p.tok {
-			case '{':
-				i++
-			case '}':
-				i--
-			}
-		}
-	}
-	return sig
-}
-
-// MethodDecl = "func" Receiver Name Func .
-// Receiver   = "(" ( identifier | "?" ) [ "*" ] ExportedName ")" .
-//
-func (p *gcParser) parseMethodDecl() {
-	// "func" already consumed
-	p.expect('(')
-	recv, _ := p.parseParameter() // receiver
-	p.expect(')')
-
-	// determine receiver base type object
-	typ := recv.Type
-	if ptr, ok := typ.(*Pointer); ok {
-		typ = ptr.Base
-	}
-	base := typ.(*NamedType)
-
-	// parse method name, signature, and possibly inlined body
-	pkg, name := p.parseName() // unexported method names in imports are qualified with their package.
-	sig := p.parseFunc()
-	sig.Recv = recv
-
-	// add method to type unless type was imported before
-	// and method exists already
-	// TODO(gri) investigate if this can be avoided
-	for _, m := range base.Methods {
-		if m.Name == name {
-			return // method was added before
-		}
-	}
-	base.Methods = append(base.Methods, &Method{QualifiedName{pkg, name}, sig})
-}
-
-// FuncDecl = "func" ExportedName Func .
-//
-func (p *gcParser) parseFuncDecl() {
-	// "func" already consumed
-	pkg, name := p.parseExportedName()
-	typ := p.parseFunc()
-	declFunc(pkg.Scope, name).Type = typ
-}
-
-// Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" .
-//
-func (p *gcParser) parseDecl() {
-	switch p.lit {
-	case "import":
-		p.parseImportDecl()
-	case "const":
-		p.parseConstDecl()
-	case "type":
-		p.parseTypeDecl()
-	case "var":
-		p.parseVarDecl()
-	case "func":
-		p.next() // look ahead
-		if p.tok == '(' {
-			p.parseMethodDecl()
-		} else {
-			p.parseFuncDecl()
-		}
-	}
-	p.expect('\n')
-}
-
-// ----------------------------------------------------------------------------
-// Export
-
-// Export        = "PackageClause { Decl } "$$" .
-// PackageClause = "package" identifier [ "safe" ] "\n" .
-//
-func (p *gcParser) parseExport() *Package {
-	p.expectKeyword("package")
-	name := p.expect(scanner.Ident)
-	if p.tok != '\n' {
-		// A package is safe if it was compiled with the -u flag,
-		// which disables the unsafe package.
-		// TODO(gri) remember "safe" package
-		p.expectKeyword("safe")
-	}
-	p.expect('\n')
-
-	pkg := p.imports[p.id]
-	if pkg == nil {
-		pkg = &Package{Name: name, Scope: new(Scope)}
-		p.imports[p.id] = pkg
-	}
-
-	for p.tok != '$' && p.tok != scanner.EOF {
-		p.parseDecl()
-	}
-
-	if ch := p.scanner.Peek(); p.tok != '$' || ch != '$' {
-		// don't call next()/expect() since reading past the
-		// export data may cause scanner errors (e.g. NUL chars)
-		p.errorf("expected '$$', got %s %c", scanner.TokenString(p.tok), ch)
-	}
-
-	if n := p.scanner.ErrorCount; n != 0 {
-		p.errorf("expected no scanner errors, got %d", n)
-	}
-
-	// package was imported completely and without errors
-	pkg.Complete = true
-
-	return pkg
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/gcimporter_test.go gcc-4.8.1/libgo/go/go/types/gcimporter_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/gcimporter_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/gcimporter_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,180 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/build"
-	"io/ioutil"
-	"os"
-	"os/exec"
-	"path/filepath"
-	"runtime"
-	"strings"
-	"testing"
-	"time"
-)
-
-var gcPath string // Go compiler path
-
-func init() {
-	// determine compiler
-	var gc string
-	switch runtime.GOARCH {
-	case "386":
-		gc = "8g"
-	case "amd64":
-		gc = "6g"
-	case "arm":
-		gc = "5g"
-	default:
-		gcPath = "unknown-GOARCH-compiler"
-		return
-	}
-	gcPath = filepath.Join(build.ToolDir, gc)
-}
-
-func compile(t *testing.T, dirname, filename string) string {
-	cmd := exec.Command(gcPath, filename)
-	cmd.Dir = dirname
-	out, err := cmd.CombinedOutput()
-	if err != nil {
-		t.Logf("%s", out)
-		t.Fatalf("%s %s failed: %s", gcPath, filename, err)
-	}
-	archCh, _ := build.ArchChar(runtime.GOARCH)
-	// filename should end with ".go"
-	return filepath.Join(dirname, filename[:len(filename)-2]+archCh)
-}
-
-// Use the same global imports map for all tests. The effect is
-// as if all tested packages were imported into a single package.
-var imports = make(map[string]*Package)
-
-func testPath(t *testing.T, path string) bool {
-	t0 := time.Now()
-	_, err := GcImport(imports, path)
-	if err != nil {
-		t.Errorf("testPath(%s): %s", path, err)
-		return false
-	}
-	t.Logf("testPath(%s): %v", path, time.Since(t0))
-	return true
-}
-
-const maxTime = 30 * time.Second
-
-func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
-	dirname := filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH, dir)
-	list, err := ioutil.ReadDir(dirname)
-	if err != nil {
-		t.Fatalf("testDir(%s): %s", dirname, err)
-	}
-	for _, f := range list {
-		if time.Now().After(endTime) {
-			t.Log("testing time used up")
-			return
-		}
-		switch {
-		case !f.IsDir():
-			// try extensions
-			for _, ext := range pkgExts {
-				if strings.HasSuffix(f.Name(), ext) {
-					name := f.Name()[0 : len(f.Name())-len(ext)] // remove extension
-					if testPath(t, filepath.Join(dir, name)) {
-						nimports++
-					}
-				}
-			}
-		case f.IsDir():
-			nimports += testDir(t, filepath.Join(dir, f.Name()), endTime)
-		}
-	}
-	return
-}
-
-func TestGcImport(t *testing.T) {
-	// On cross-compile builds, the path will not exist.
-	// Need to use GOHOSTOS, which is not available.
-	if _, err := os.Stat(gcPath); err != nil {
-		t.Skipf("skipping test: %v", err)
-	}
-
-	if outFn := compile(t, "testdata", "exports.go"); outFn != "" {
-		defer os.Remove(outFn)
-	}
-
-	nimports := 0
-	if testPath(t, "./testdata/exports") {
-		nimports++
-	}
-	nimports += testDir(t, "", time.Now().Add(maxTime)) // installed packages
-	t.Logf("tested %d imports", nimports)
-}
-
-var importedObjectTests = []struct {
-	name string
-	kind ast.ObjKind
-	typ  string
-}{
-	{"unsafe.Pointer", ast.Typ, "Pointer"},
-	{"math.Pi", ast.Con, "untyped float"},
-	{"io.Reader", ast.Typ, "interface{Read(p []byte) (n int, err error)}"},
-	{"io.ReadWriter", ast.Typ, "interface{Read(p []byte) (n int, err error); Write(p []byte) (n int, err error)}"},
-	{"math.Sin", ast.Fun, "func(xÂ·2 float64) (_ float64)"},
-	// TODO(gri) add more tests
-}
-
-func TestGcImportedTypes(t *testing.T) {
-	// This package does not yet know how to read gccgo export data.
-	if runtime.Compiler == "gccgo" {
-		return
-	}
-	for _, test := range importedObjectTests {
-		s := strings.Split(test.name, ".")
-		if len(s) != 2 {
-			t.Fatal("inconsistent test data")
-		}
-		importPath := s[0]
-		objName := s[1]
-
-		pkg, err := GcImport(imports, importPath)
-		if err != nil {
-			t.Error(err)
-			continue
-		}
-
-		obj := pkg.Scope.Lookup(objName)
-
-		// TODO(gri) should define an accessor on Object
-		var kind ast.ObjKind
-		var typ Type
-		switch obj := obj.(type) {
-		case *Const:
-			kind = ast.Con
-			typ = obj.Type
-		case *TypeName:
-			kind = ast.Typ
-			typ = obj.Type
-		case *Var:
-			kind = ast.Var
-			typ = obj.Type
-		case *Func:
-			kind = ast.Fun
-			typ = obj.Type
-		default:
-			unreachable()
-		}
-
-		if kind != test.kind {
-			t.Errorf("%s: got kind = %q; want %q", test.name, kind, test.kind)
-		}
-
-		str := typeString(underlying(typ))
-		if str != test.typ {
-			t.Errorf("%s: got type = %q; want %q", test.name, typ, test.typ)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/objects.go gcc-4.8.1/libgo/go/go/types/objects.go
--- gcc-4.8.1.orig/libgo/go/go/types/objects.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/objects.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,155 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// An Object describes a named language entity such as a package,
-// constant, type, variable, function (incl. methods), or label.
-// All objects implement the Object interface.
-//
-type Object interface {
-	GetName() string
-	GetType() Type
-	GetPos() token.Pos
-
-	anObject()
-}
-
-// A Package represents the contents (objects) of a Go package.
-type Package struct {
-	Name     string
-	Path     string              // import path, "" for current (non-imported) package
-	Scope    *Scope              // package-level scope
-	Imports  map[string]*Package // map of import paths to imported packages
-	Complete bool                // if set, this package was imported completely
-
-	spec *ast.ImportSpec
-}
-
-// A Const represents a declared constant.
-type Const struct {
-	Name string
-	Type Type
-	Val  interface{}
-
-	spec *ast.ValueSpec
-}
-
-// A TypeName represents a declared type.
-type TypeName struct {
-	Name string
-	Type Type // *NamedType or *Basic
-
-	spec *ast.TypeSpec
-}
-
-// A Variable represents a declared variable (including function parameters and results).
-type Var struct {
-	Name string
-	Type Type
-
-	visited bool // for initialization cycle detection
-	decl    interface{}
-}
-
-// A Func represents a declared function.
-type Func struct {
-	Name string
-	Type Type // *Signature or *Builtin
-
-	decl *ast.FuncDecl
-}
-
-func (obj *Package) GetName() string  { return obj.Name }
-func (obj *Const) GetName() string    { return obj.Name }
-func (obj *TypeName) GetName() string { return obj.Name }
-func (obj *Var) GetName() string      { return obj.Name }
-func (obj *Func) GetName() string     { return obj.Name }
-
-func (obj *Package) GetType() Type  { return Typ[Invalid] }
-func (obj *Const) GetType() Type    { return obj.Type }
-func (obj *TypeName) GetType() Type { return obj.Type }
-func (obj *Var) GetType() Type      { return obj.Type }
-func (obj *Func) GetType() Type     { return obj.Type }
-
-func (obj *Package) GetPos() token.Pos { return obj.spec.Pos() }
-func (obj *Const) GetPos() token.Pos {
-	for _, n := range obj.spec.Names {
-		if n.Name == obj.Name {
-			return n.Pos()
-		}
-	}
-	return token.NoPos
-}
-func (obj *TypeName) GetPos() token.Pos { return obj.spec.Pos() }
-func (obj *Var) GetPos() token.Pos {
-	switch d := obj.decl.(type) {
-	case *ast.Field:
-		for _, n := range d.Names {
-			if n.Name == obj.Name {
-				return n.Pos()
-			}
-		}
-	case *ast.ValueSpec:
-		for _, n := range d.Names {
-			if n.Name == obj.Name {
-				return n.Pos()
-			}
-		}
-	case *ast.AssignStmt:
-		for _, x := range d.Lhs {
-			if ident, isIdent := x.(*ast.Ident); isIdent && ident.Name == obj.Name {
-				return ident.Pos()
-			}
-		}
-	}
-	return token.NoPos
-}
-func (obj *Func) GetPos() token.Pos { return obj.decl.Name.Pos() }
-
-func (*Package) anObject()  {}
-func (*Const) anObject()    {}
-func (*TypeName) anObject() {}
-func (*Var) anObject()      {}
-func (*Func) anObject()     {}
-
-// newObj returns a new Object for a given *ast.Object.
-// It does not canonicalize them (it always returns a new one).
-// For canonicalization, see check.lookup.
-//
-// TODO(gri) Once we do identifier resolution completely in
-//           in the typechecker, this functionality can go.
-//
-func newObj(astObj *ast.Object) Object {
-	name := astObj.Name
-	typ, _ := astObj.Type.(Type)
-	switch astObj.Kind {
-	case ast.Bad:
-		// ignore
-	case ast.Pkg:
-		unreachable()
-	case ast.Con:
-		return &Const{Name: name, Type: typ, Val: astObj.Data, spec: astObj.Decl.(*ast.ValueSpec)}
-	case ast.Typ:
-		return &TypeName{Name: name, Type: typ, spec: astObj.Decl.(*ast.TypeSpec)}
-	case ast.Var:
-		switch astObj.Decl.(type) {
-		case *ast.Field, *ast.ValueSpec, *ast.AssignStmt: // these are ok
-		default:
-			unreachable()
-		}
-		return &Var{Name: name, Type: typ, decl: astObj.Decl}
-	case ast.Fun:
-		return &Func{Name: name, Type: typ, decl: astObj.Decl.(*ast.FuncDecl)}
-	case ast.Lbl:
-		unreachable() // for now
-	}
-	unreachable()
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/operand.go gcc-4.8.1/libgo/go/go/types/operand.go
--- gcc-4.8.1.orig/libgo/go/go/types/operand.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/operand.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,393 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file defines operands and associated operations.
-
-package types
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// An operandMode specifies the (addressing) mode of an operand.
-type operandMode int
-
-const (
-	invalid  operandMode = iota // operand is invalid (due to an earlier error) - ignore
-	novalue                     // operand represents no value (result of a function call w/o result)
-	typexpr                     // operand is a type
-	constant                    // operand is a constant; the operand's typ is a Basic type
-	variable                    // operand is an addressable variable
-	value                       // operand is a computed value
-	valueok                     // like mode == value, but operand may be used in a comma,ok expression
-)
-
-var operandModeString = [...]string{
-	invalid:  "invalid",
-	novalue:  "no value",
-	typexpr:  "type",
-	constant: "constant",
-	variable: "variable",
-	value:    "value",
-	valueok:  "value,ok",
-}
-
-// An operand represents an intermediate value during type checking.
-// Operands have an (addressing) mode, the expression evaluating to
-// the operand, the operand's type, and for constants a constant value.
-//
-type operand struct {
-	mode operandMode
-	expr ast.Expr
-	typ  Type
-	val  interface{}
-}
-
-// pos returns the position of the expression corresponding to x.
-// If x is invalid the position is token.NoPos.
-//
-func (x *operand) pos() token.Pos {
-	// x.expr may not be set if x is invalid
-	if x.expr == nil {
-		return token.NoPos
-	}
-	return x.expr.Pos()
-}
-
-func (x *operand) String() string {
-	if x.mode == invalid {
-		return "invalid operand"
-	}
-	var buf bytes.Buffer
-	if x.expr != nil {
-		buf.WriteString(exprString(x.expr))
-		buf.WriteString(" (")
-	}
-	buf.WriteString(operandModeString[x.mode])
-	if x.mode == constant {
-		format := " %v"
-		if isString(x.typ) {
-			format = " %q"
-		}
-		fmt.Fprintf(&buf, format, x.val)
-	}
-	if x.mode != novalue && (x.mode != constant || !isUntyped(x.typ)) {
-		fmt.Fprintf(&buf, " of type %s", typeString(x.typ))
-	}
-	if x.expr != nil {
-		buf.WriteByte(')')
-	}
-	return buf.String()
-}
-
-// setConst sets x to the untyped constant for literal lit.
-func (x *operand) setConst(tok token.Token, lit string) {
-	x.mode = invalid
-
-	var kind BasicKind
-	var val interface{}
-	switch tok {
-	case token.INT:
-		kind = UntypedInt
-		val = makeIntConst(lit)
-
-	case token.FLOAT:
-		kind = UntypedFloat
-		val = makeFloatConst(lit)
-
-	case token.IMAG:
-		kind = UntypedComplex
-		val = makeComplexConst(lit)
-
-	case token.CHAR:
-		kind = UntypedRune
-		val = makeRuneConst(lit)
-
-	case token.STRING:
-		kind = UntypedString
-		val = makeStringConst(lit)
-	}
-
-	if val != nil {
-		x.mode = constant
-		x.typ = Typ[kind]
-		x.val = val
-	}
-}
-
-// isNil reports whether x is the predeclared nil constant.
-func (x *operand) isNil() bool {
-	return x.mode == constant && x.val == nilConst
-}
-
-// TODO(gri) The functions operand.isAssignable, checker.convertUntyped,
-//           checker.isRepresentable, and checker.assignOperand are
-//           overlapping in functionality. Need to simplify and clean up.
-
-// isAssignable reports whether x is assignable to a variable of type T.
-func (x *operand) isAssignable(T Type) bool {
-	if x.mode == invalid || T == Typ[Invalid] {
-		return true // avoid spurious errors
-	}
-
-	V := x.typ
-
-	// x's type is identical to T
-	if IsIdentical(V, T) {
-		return true
-	}
-
-	Vu := underlying(V)
-	Tu := underlying(T)
-
-	// x's type V and T have identical underlying types
-	// and at least one of V or T is not a named type
-	if IsIdentical(Vu, Tu) {
-		return !isNamed(V) || !isNamed(T)
-	}
-
-	// T is an interface type and x implements T
-	if Ti, ok := Tu.(*Interface); ok {
-		if m, _ := missingMethod(x.typ, Ti); m == nil {
-			return true
-		}
-	}
-
-	// x is a bidirectional channel value, T is a channel
-	// type, x's type V and T have identical element types,
-	// and at least one of V or T is not a named type
-	if Vc, ok := Vu.(*Chan); ok && Vc.Dir == ast.SEND|ast.RECV {
-		if Tc, ok := Tu.(*Chan); ok && IsIdentical(Vc.Elt, Tc.Elt) {
-			return !isNamed(V) || !isNamed(T)
-		}
-	}
-
-	// x is the predeclared identifier nil and T is a pointer,
-	// function, slice, map, channel, or interface type
-	if x.isNil() {
-		switch t := Tu.(type) {
-		case *Basic:
-			if t.Kind == UnsafePointer {
-				return true
-			}
-		case *Pointer, *Signature, *Slice, *Map, *Chan, *Interface:
-			return true
-		}
-		return false
-	}
-
-	// x is an untyped constant representable by a value of type T
-	// TODO(gri) This is borrowing from checker.convertUntyped and
-	//           checker.isRepresentable. Need to clean up.
-	if isUntyped(Vu) {
-		switch t := Tu.(type) {
-		case *Basic:
-			if x.mode == constant {
-				return isRepresentableConst(x.val, t.Kind)
-			}
-			// The result of a comparison is an untyped boolean,
-			// but may not be a constant.
-			if Vb, _ := Vu.(*Basic); Vb != nil {
-				return Vb.Kind == UntypedBool && isBoolean(Tu)
-			}
-		case *Interface:
-			return x.isNil() || len(t.Methods) == 0
-		case *Pointer, *Signature, *Slice, *Map, *Chan:
-			return x.isNil()
-		}
-	}
-
-	return false
-}
-
-// isInteger reports whether x is a (typed or untyped) integer value.
-func (x *operand) isInteger() bool {
-	return x.mode == invalid ||
-		isInteger(x.typ) ||
-		x.mode == constant && isRepresentableConst(x.val, UntypedInt)
-}
-
-type lookupResult struct {
-	mode operandMode
-	typ  Type
-}
-
-type embeddedType struct {
-	typ       *NamedType
-	multiples bool // if set, typ is embedded multiple times at the same level
-}
-
-// lookupFieldBreadthFirst searches all types in list for a single entry (field
-// or method) of the given name from the given package. If such a field is found,
-// the result describes the field mode and type; otherwise the result mode is invalid.
-// (This function is similar in structure to FieldByNameFunc in reflect/type.go)
-//
-func lookupFieldBreadthFirst(list []embeddedType, name QualifiedName) (res lookupResult) {
-	// visited records the types that have been searched already.
-	visited := make(map[*NamedType]bool)
-
-	// embedded types of the next lower level
-	var next []embeddedType
-
-	// potentialMatch is invoked every time a match is found.
-	potentialMatch := func(multiples bool, mode operandMode, typ Type) bool {
-		if multiples || res.mode != invalid {
-			// name appeared already at this level - annihilate
-			res.mode = invalid
-			return false
-		}
-		// first appearance of name
-		res.mode = mode
-		res.typ = typ
-		return true
-	}
-
-	// Search the current level if there is any work to do and collect
-	// embedded types of the next lower level in the next list.
-	for len(list) > 0 {
-		// The res.mode indicates whether we have found a match already
-		// on this level (mode != invalid), or not (mode == invalid).
-		assert(res.mode == invalid)
-
-		// start with empty next list (don't waste underlying array)
-		next = next[:0]
-
-		// look for name in all types at this level
-		for _, e := range list {
-			typ := e.typ
-			if visited[typ] {
-				continue
-			}
-			visited[typ] = true
-
-			// look for a matching attached method
-			for _, m := range typ.Methods {
-				if name.IsSame(m.QualifiedName) {
-					assert(m.Type != nil)
-					if !potentialMatch(e.multiples, value, m.Type) {
-						return // name collision
-					}
-				}
-			}
-
-			switch t := typ.Underlying.(type) {
-			case *Struct:
-				// look for a matching field and collect embedded types
-				for _, f := range t.Fields {
-					if name.IsSame(f.QualifiedName) {
-						assert(f.Type != nil)
-						if !potentialMatch(e.multiples, variable, f.Type) {
-							return // name collision
-						}
-						continue
-					}
-					// Collect embedded struct fields for searching the next
-					// lower level, but only if we have not seen a match yet
-					// (if we have a match it is either the desired field or
-					// we have a name collision on the same level; in either
-					// case we don't need to look further).
-					// Embedded fields are always of the form T or *T where
-					// T is a named type. If typ appeared multiple times at
-					// this level, f.Type appears multiple times at the next
-					// level.
-					if f.IsAnonymous && res.mode == invalid {
-						next = append(next, embeddedType{deref(f.Type).(*NamedType), e.multiples})
-					}
-				}
-
-			case *Interface:
-				// look for a matching method
-				for _, m := range t.Methods {
-					if name.IsSame(m.QualifiedName) {
-						assert(m.Type != nil)
-						if !potentialMatch(e.multiples, value, m.Type) {
-							return // name collision
-						}
-					}
-				}
-			}
-		}
-
-		if res.mode != invalid {
-			// we found a single match on this level
-			return
-		}
-
-		// No match and no collision so far.
-		// Compute the list to search for the next level.
-		list = list[:0] // don't waste underlying array
-		for _, e := range next {
-			// Instead of adding the same type multiple times, look for
-			// it in the list and mark it as multiple if it was added
-			// before.
-			// We use a sequential search (instead of a map for next)
-			// because the lists tend to be small, can easily be reused,
-			// and explicit search appears to be faster in this case.
-			if alt := findType(list, e.typ); alt != nil {
-				alt.multiples = true
-			} else {
-				list = append(list, e)
-			}
-		}
-
-	}
-
-	return
-}
-
-func findType(list []embeddedType, typ *NamedType) *embeddedType {
-	for i := range list {
-		if p := &list[i]; p.typ == typ {
-			return p
-		}
-	}
-	return nil
-}
-
-func lookupField(typ Type, name QualifiedName) (operandMode, Type) {
-	typ = deref(typ)
-
-	if t, ok := typ.(*NamedType); ok {
-		for _, m := range t.Methods {
-			if name.IsSame(m.QualifiedName) {
-				assert(m.Type != nil)
-				return value, m.Type
-			}
-		}
-		typ = t.Underlying
-	}
-
-	switch t := typ.(type) {
-	case *Struct:
-		var next []embeddedType
-		for _, f := range t.Fields {
-			if name.IsSame(f.QualifiedName) {
-				return variable, f.Type
-			}
-			if f.IsAnonymous {
-				// Possible optimization: If the embedded type
-				// is a pointer to the current type we could
-				// ignore it.
-				next = append(next, embeddedType{typ: deref(f.Type).(*NamedType)})
-			}
-		}
-		if len(next) > 0 {
-			res := lookupFieldBreadthFirst(next, name)
-			return res.mode, res.typ
-		}
-
-	case *Interface:
-		for _, m := range t.Methods {
-			if name.IsSame(m.QualifiedName) {
-				return value, m.Type
-			}
-		}
-	}
-
-	// not found
-	return invalid, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/predicates.go gcc-4.8.1/libgo/go/go/types/predicates.go
--- gcc-4.8.1.orig/libgo/go/go/types/predicates.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/predicates.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,303 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements commonly used type predicates.
-
-package types
-
-func isNamed(typ Type) bool {
-	if _, ok := typ.(*Basic); ok {
-		return ok
-	}
-	_, ok := typ.(*NamedType)
-	return ok
-}
-
-func isBoolean(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsBoolean != 0
-}
-
-func isInteger(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsInteger != 0
-}
-
-func isUnsigned(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsUnsigned != 0
-}
-
-func isFloat(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsFloat != 0
-}
-
-func isComplex(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsComplex != 0
-}
-
-func isNumeric(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsNumeric != 0
-}
-
-func isString(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsString != 0
-}
-
-func isUntyped(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsUntyped != 0
-}
-
-func isOrdered(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsOrdered != 0
-}
-
-func isConstType(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsConstType != 0
-}
-
-func isComparable(typ Type) bool {
-	switch t := underlying(typ).(type) {
-	case *Basic:
-		return t.Kind != Invalid && t.Kind != UntypedNil
-	case *Pointer, *Interface, *Chan:
-		// assumes types are equal for pointers and channels
-		return true
-	case *Struct:
-		for _, f := range t.Fields {
-			if !isComparable(f.Type) {
-				return false
-			}
-		}
-		return true
-	case *Array:
-		return isComparable(t.Elt)
-	}
-	return false
-}
-
-func hasNil(typ Type) bool {
-	switch underlying(typ).(type) {
-	case *Slice, *Pointer, *Signature, *Interface, *Map, *Chan:
-		return true
-	}
-	return false
-}
-
-// IsIdentical returns true if x and y are identical.
-func IsIdentical(x, y Type) bool {
-	if x == y {
-		return true
-	}
-
-	switch x := x.(type) {
-	case *Basic:
-		// Basic types are singletons except for the rune and byte
-		// aliases, thus we cannot solely rely on the x == y check
-		// above.
-		if y, ok := y.(*Basic); ok {
-			return x.Kind == y.Kind
-		}
-
-	case *Array:
-		// Two array types are identical if they have identical element types
-		// and the same array length.
-		if y, ok := y.(*Array); ok {
-			return x.Len == y.Len && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Slice:
-		// Two slice types are identical if they have identical element types.
-		if y, ok := y.(*Slice); ok {
-			return IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Struct:
-		// Two struct types are identical if they have the same sequence of fields,
-		// and if corresponding fields have the same names, and identical types,
-		// and identical tags. Two anonymous fields are considered to have the same
-		// name. Lower-case field names from different packages are always different.
-		if y, ok := y.(*Struct); ok {
-			if len(x.Fields) == len(y.Fields) {
-				for i, f := range x.Fields {
-					g := y.Fields[i]
-					if !f.QualifiedName.IsSame(g.QualifiedName) ||
-						!IsIdentical(f.Type, g.Type) ||
-						f.Tag != g.Tag ||
-						f.IsAnonymous != g.IsAnonymous {
-						return false
-					}
-				}
-				return true
-			}
-		}
-
-	case *Pointer:
-		// Two pointer types are identical if they have identical base types.
-		if y, ok := y.(*Pointer); ok {
-			return IsIdentical(x.Base, y.Base)
-		}
-
-	case *Signature:
-		// Two function types are identical if they have the same number of parameters
-		// and result values, corresponding parameter and result types are identical,
-		// and either both functions are variadic or neither is. Parameter and result
-		// names are not required to match.
-		if y, ok := y.(*Signature); ok {
-			return identicalTypes(x.Params, y.Params) &&
-				identicalTypes(x.Results, y.Results) &&
-				x.IsVariadic == y.IsVariadic
-		}
-
-	case *Interface:
-		// Two interface types are identical if they have the same set of methods with
-		// the same names and identical function types. Lower-case method names from
-		// different packages are always different. The order of the methods is irrelevant.
-		if y, ok := y.(*Interface); ok {
-			return identicalMethods(x.Methods, y.Methods) // methods are sorted
-		}
-
-	case *Map:
-		// Two map types are identical if they have identical key and value types.
-		if y, ok := y.(*Map); ok {
-			return IsIdentical(x.Key, y.Key) && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Chan:
-		// Two channel types are identical if they have identical value types
-		// and the same direction.
-		if y, ok := y.(*Chan); ok {
-			return x.Dir == y.Dir && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *NamedType:
-		// Two named types are identical if their type names originate
-		// in the same type declaration.
-		if y, ok := y.(*NamedType); ok {
-			return x.Obj == y.Obj
-		}
-	}
-
-	return false
-}
-
-// identicalTypes returns true if both lists a and b have the
-// same length and corresponding objects have identical types.
-func identicalTypes(a, b []*Var) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	for i, x := range a {
-		y := b[i]
-		if !IsIdentical(x.Type, y.Type) {
-			return false
-		}
-	}
-	return true
-}
-
-// identicalMethods returns true if both lists a and b have the
-// same length and corresponding methods have identical types.
-// TODO(gri) make this more efficient
-func identicalMethods(a, b []*Method) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	m := make(map[QualifiedName]*Method)
-	for _, x := range a {
-		assert(m[x.QualifiedName] == nil) // method list must not have duplicate entries
-		m[x.QualifiedName] = x
-	}
-	for _, y := range b {
-		if x := m[y.QualifiedName]; x == nil || !IsIdentical(x.Type, y.Type) {
-			return false
-		}
-	}
-	return true
-}
-
-// underlying returns the underlying type of typ.
-func underlying(typ Type) Type {
-	// Basic types are representing themselves directly even though they are named.
-	if typ, ok := typ.(*NamedType); ok {
-		return typ.Underlying // underlying types are never NamedTypes
-	}
-	return typ
-}
-
-// deref returns a pointer's base type; otherwise it returns typ.
-func deref(typ Type) Type {
-	if typ, ok := underlying(typ).(*Pointer); ok {
-		return typ.Base
-	}
-	return typ
-}
-
-// defaultType returns the default "typed" type for an "untyped" type;
-// it returns the incoming type for all other types. If there is no
-// corresponding untyped type, the result is Typ[Invalid].
-//
-func defaultType(typ Type) Type {
-	if t, ok := typ.(*Basic); ok {
-		k := Invalid
-		switch t.Kind {
-		// case UntypedNil:
-		//      There is no default type for nil. For a good error message,
-		//      catch this case before calling this function.
-		case UntypedBool:
-			k = Bool
-		case UntypedInt:
-			k = Int
-		case UntypedRune:
-			k = Rune
-		case UntypedFloat:
-			k = Float64
-		case UntypedComplex:
-			k = Complex128
-		case UntypedString:
-			k = String
-		}
-		typ = Typ[k]
-	}
-	return typ
-}
-
-// missingMethod returns (nil, false) if typ implements T, otherwise
-// it returns the first missing method required by T and whether it
-// is missing or simply has the wrong type.
-//
-func missingMethod(typ Type, T *Interface) (method *Method, wrongType bool) {
-	// TODO(gri): this needs to correctly compare method names (taking package into account)
-	// TODO(gri): distinguish pointer and non-pointer receivers
-	// an interface type implements T if it has no methods with conflicting signatures
-	// Note: This is stronger than the current spec. Should the spec require this?
-	if ityp, _ := underlying(typ).(*Interface); ityp != nil {
-		for _, m := range T.Methods {
-			mode, sig := lookupField(ityp, m.QualifiedName) // TODO(gri) no need to go via lookupField
-			if mode != invalid && !IsIdentical(sig, m.Type) {
-				return m, true
-			}
-		}
-		return
-	}
-
-	// a concrete type implements T if it implements all methods of T.
-	for _, m := range T.Methods {
-		mode, sig := lookupField(typ, m.QualifiedName)
-		if mode == invalid {
-			return m, false
-		}
-		if !IsIdentical(sig, m.Type) {
-			return m, true
-		}
-	}
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/resolve.go gcc-4.8.1/libgo/go/go/types/resolve.go
--- gcc-4.8.1.orig/libgo/go/go/types/resolve.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/resolve.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,177 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-	"strconv"
-)
-
-func (check *checker) declareObj(scope, altScope *Scope, obj Object) {
-	alt := scope.Insert(obj)
-	if alt == nil && altScope != nil {
-		// see if there is a conflicting declaration in altScope
-		alt = altScope.Lookup(obj.GetName())
-	}
-	if alt != nil {
-		prevDecl := ""
-		if pos := alt.GetPos(); pos.IsValid() {
-			prevDecl = fmt.Sprintf("\n\tprevious declaration at %s", check.fset.Position(pos))
-		}
-		check.errorf(obj.GetPos(), fmt.Sprintf("%s redeclared in this block%s", obj.GetName(), prevDecl))
-	}
-}
-
-func (check *checker) resolveIdent(scope *Scope, ident *ast.Ident) bool {
-	for ; scope != nil; scope = scope.Outer {
-		if obj := scope.Lookup(ident.Name); obj != nil {
-			check.register(ident, obj)
-			return true
-		}
-	}
-	return false
-}
-
-func (check *checker) resolve(importer Importer) (pkg *Package, methods []*ast.FuncDecl) {
-	pkg = &Package{Scope: &Scope{Outer: Universe}, Imports: make(map[string]*Package)}
-
-	// complete package scope
-	i := 0
-	for _, file := range check.files {
-		// package names must match
-		switch name := file.Name.Name; {
-		case pkg.Name == "":
-			pkg.Name = name
-		case name != pkg.Name:
-			check.errorf(file.Package, "package %s; expected %s", name, pkg.Name)
-			continue // ignore this file
-		}
-
-		// keep this file
-		check.files[i] = file
-		i++
-
-		// the package identifier denotes the current package
-		check.register(file.Name, pkg)
-
-		// insert top-level file objects in package scope
-		// (the parser took care of declaration errors)
-		for _, decl := range file.Decls {
-			switch d := decl.(type) {
-			case *ast.BadDecl:
-				// ignore
-			case *ast.GenDecl:
-				if d.Tok == token.CONST {
-					check.assocInitvals(d)
-				}
-				for _, spec := range d.Specs {
-					switch s := spec.(type) {
-					case *ast.ImportSpec:
-						// handled separately below
-					case *ast.ValueSpec:
-						for _, name := range s.Names {
-							if name.Name == "_" {
-								continue
-							}
-							pkg.Scope.Insert(check.lookup(name))
-						}
-					case *ast.TypeSpec:
-						if s.Name.Name == "_" {
-							continue
-						}
-						pkg.Scope.Insert(check.lookup(s.Name))
-					default:
-						check.invalidAST(s.Pos(), "unknown ast.Spec node %T", s)
-					}
-				}
-			case *ast.FuncDecl:
-				if d.Recv != nil {
-					// collect method
-					methods = append(methods, d)
-					continue
-				}
-				if d.Name.Name == "_" || d.Name.Name == "init" {
-					continue // blank (_) and init functions are inaccessible
-				}
-				pkg.Scope.Insert(check.lookup(d.Name))
-			default:
-				check.invalidAST(d.Pos(), "unknown ast.Decl node %T", d)
-			}
-		}
-	}
-	check.files = check.files[0:i]
-
-	// complete file scopes with imports and resolve identifiers
-	for _, file := range check.files {
-		// build file scope by processing all imports
-		importErrors := false
-		fileScope := &Scope{Outer: pkg.Scope}
-		for _, spec := range file.Imports {
-			if importer == nil {
-				importErrors = true
-				continue
-			}
-			path, _ := strconv.Unquote(spec.Path.Value)
-			imp, err := importer(pkg.Imports, path)
-			if err != nil {
-				check.errorf(spec.Path.Pos(), "could not import %s (%s)", path, err)
-				importErrors = true
-				continue
-			}
-			// TODO(gri) If a local package name != "." is provided,
-			// global identifier resolution could proceed even if the
-			// import failed. Consider adjusting the logic here a bit.
-
-			// local name overrides imported package name
-			name := imp.Name
-			if spec.Name != nil {
-				name = spec.Name.Name
-			}
-
-			// add import to file scope
-			if name == "." {
-				// merge imported scope with file scope
-				for _, obj := range imp.Scope.Entries {
-					check.declareObj(fileScope, pkg.Scope, obj)
-				}
-				// TODO(gri) consider registering the "." identifier
-				// if we have Context.Ident callbacks for say blank
-				// (_) identifiers
-				// check.register(spec.Name, pkg)
-			} else if name != "_" {
-				// declare imported package object in file scope
-				// (do not re-use imp in the file scope but create
-				// a new object instead; the Decl field is different
-				// for different files)
-				obj := &Package{Name: name, Scope: imp.Scope, spec: spec}
-				check.declareObj(fileScope, pkg.Scope, obj)
-			}
-		}
-
-		// resolve identifiers
-		if importErrors {
-			// don't use the universe scope without correct imports
-			// (objects in the universe may be shadowed by imports;
-			// with missing imports, identifiers might get resolved
-			// incorrectly to universe objects)
-			pkg.Scope.Outer = nil
-		}
-		i := 0
-		for _, ident := range file.Unresolved {
-			if !check.resolveIdent(fileScope, ident) {
-				check.errorf(ident.Pos(), "undeclared name: %s", ident.Name)
-				file.Unresolved[i] = ident
-				i++
-			}
-
-		}
-		file.Unresolved = file.Unresolved[0:i]
-		pkg.Scope.Outer = Universe // reset outer scope (is nil if there were importErrors)
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/resolver_test.go gcc-4.8.1/libgo/go/go/types/resolver_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/resolver_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/resolver_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,171 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/parser"
-	"go/token"
-	"testing"
-)
-
-var sources = []string{
-	`
-	package p
-	import "fmt"
-	import "math"
-	const pi = math.Pi
-	func sin(x float64) float64 {
-		return math.Sin(x)
-	}
-	var Println = fmt.Println
-	`,
-	`
-	package p
-	import "fmt"
-	func f() string {
-		_ = "foo"
-		return fmt.Sprintf("%d", g())
-	}
-	func g() (x int) { return }
-	`,
-	`
-	package p
-	import . "go/parser"
-	import "sync"
-	func g() Mode { return ImportsOnly }
-	var _, x int = 1, 2
-	func init() {}
-	type T struct{ sync.Mutex; a, b, c int}
-	type I interface{ m() }
-	var _ = T{a: 1, b: 2, c: 3}
-	func (_ T) m() {}
-	`,
-}
-
-var pkgnames = []string{
-	"fmt",
-	"math",
-}
-
-func TestResolveQualifiedIdents(t *testing.T) {
-	// Does not work with gccgo, because it requires reading gc
-	// import files.
-	return
-
-	// parse package files
-	fset := token.NewFileSet()
-	var files []*ast.File
-	for _, src := range sources {
-		f, err := parser.ParseFile(fset, "", src, parser.DeclarationErrors)
-		if err != nil {
-			t.Fatal(err)
-		}
-		files = append(files, f)
-	}
-
-	// resolve and type-check package AST
-	idents := make(map[*ast.Ident]Object)
-	ctxt := Default
-	ctxt.Ident = func(id *ast.Ident, obj Object) { idents[id] = obj }
-	pkg, err := ctxt.Check(fset, files)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	// check that all packages were imported
-	for _, name := range pkgnames {
-		if pkg.Imports[name] == nil {
-			t.Errorf("package %s not imported", name)
-		}
-	}
-
-	// check that there are no top-level unresolved identifiers
-	for _, f := range files {
-		for _, x := range f.Unresolved {
-			t.Errorf("%s: unresolved global identifier %s", fset.Position(x.Pos()), x.Name)
-		}
-	}
-
-	// check that qualified identifiers are resolved
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			if s, ok := n.(*ast.SelectorExpr); ok {
-				if x, ok := s.X.(*ast.Ident); ok {
-					obj := idents[x]
-					if obj == nil {
-						t.Errorf("%s: unresolved qualified identifier %s", fset.Position(x.Pos()), x.Name)
-						return false
-					}
-					if _, ok := obj.(*Package); ok && idents[s.Sel] == nil {
-						t.Errorf("%s: unresolved selector %s", fset.Position(s.Sel.Pos()), s.Sel.Name)
-						return false
-					}
-					return false
-				}
-				return false
-			}
-			return true
-		})
-	}
-
-	// Currently, the Check API doesn't call Ident for fields, methods, and composite literal keys.
-	// Introduce them artifically so that we can run the check below.
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			switch x := n.(type) {
-			case *ast.StructType:
-				for _, list := range x.Fields.List {
-					for _, f := range list.Names {
-						assert(idents[f] == nil)
-						idents[f] = &Var{Name: f.Name}
-					}
-				}
-			case *ast.InterfaceType:
-				for _, list := range x.Methods.List {
-					for _, f := range list.Names {
-						assert(idents[f] == nil)
-						idents[f] = &Func{Name: f.Name}
-					}
-				}
-			case *ast.CompositeLit:
-				for _, e := range x.Elts {
-					if kv, ok := e.(*ast.KeyValueExpr); ok {
-						if k, ok := kv.Key.(*ast.Ident); ok {
-							assert(idents[k] == nil)
-							idents[k] = &Var{Name: k.Name}
-						}
-					}
-				}
-			}
-			return true
-		})
-	}
-
-	// check that each identifier in the source is enumerated by the Context.Ident callback
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			if x, ok := n.(*ast.Ident); ok && x.Name != "_" && x.Name != "." {
-				obj := idents[x]
-				if obj == nil {
-					t.Errorf("%s: unresolved identifier %s", fset.Position(x.Pos()), x.Name)
-				} else {
-					delete(idents, x)
-				}
-				return false
-			}
-			return true
-		})
-	}
-
-	// TODO(gri) enable code below
-	// At the moment, the type checker introduces artifical identifiers which are not
-	// present in the source. Once it doesn't do that anymore, enable the checks below.
-	/*
-		for x := range idents {
-			t.Errorf("%s: identifier %s not present in source", fset.Position(x.Pos()), x.Name)
-		}
-	*/
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/scope.go gcc-4.8.1/libgo/go/go/types/scope.go
--- gcc-4.8.1.orig/libgo/go/go/types/scope.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/scope.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-// A Scope maintains the set of named language entities declared
-// in the scope and a link to the immediately surrounding (outer)
-// scope.
-//
-type Scope struct {
-	Outer   *Scope
-	Entries []Object          // scope entries in insertion order
-	large   map[string]Object // for fast lookup - only used for larger scopes
-}
-
-// Lookup returns the object with the given name if it is
-// found in scope s, otherwise it returns nil. Outer scopes
-// are ignored.
-//
-func (s *Scope) Lookup(name string) Object {
-	if s.large != nil {
-		return s.large[name]
-	}
-	for _, obj := range s.Entries {
-		if obj.GetName() == name {
-			return obj
-		}
-	}
-	return nil
-}
-
-// Insert attempts to insert an object obj into scope s.
-// If s already contains an object with the same name,
-// Insert leaves s unchanged and returns that object.
-// Otherwise it inserts obj and returns nil.
-//
-func (s *Scope) Insert(obj Object) Object {
-	name := obj.GetName()
-	if alt := s.Lookup(name); alt != nil {
-		return alt
-	}
-	s.Entries = append(s.Entries, obj)
-
-	// If the scope size reaches a threshold, use a map for faster lookups.
-	const threshold = 20
-	if len(s.Entries) > threshold {
-		if s.large == nil {
-			m := make(map[string]Object, len(s.Entries))
-			for _, obj := range s.Entries {
-				m[obj.GetName()] = obj
-			}
-			s.large = m
-		}
-		s.large[name] = obj
-	}
-
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/stmt.go gcc-4.8.1/libgo/go/go/types/stmt.go
--- gcc-4.8.1.orig/libgo/go/go/types/stmt.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/stmt.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,721 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of statements.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-func (check *checker) assignOperand(z, x *operand) {
-	if t, ok := x.typ.(*Result); ok {
-		// TODO(gri) elsewhere we use "assignment count mismatch" (consolidate)
-		check.errorf(x.pos(), "%d-valued expression %s used as single value", len(t.Values), x)
-		x.mode = invalid
-		return
-	}
-
-	check.convertUntyped(x, z.typ)
-
-	if !x.isAssignable(z.typ) {
-		check.errorf(x.pos(), "cannot assign %s to %s", x, z)
-		x.mode = invalid
-	}
-}
-
-// assign1to1 typechecks a single assignment of the form lhs = rhs (if rhs != nil),
-// or lhs = x (if rhs == nil). If decl is set, the lhs operand must be an identifier.
-// If its type is not set, it is deduced from the type or value of x. If lhs has a
-// type it is used as a hint when evaluating rhs, if present.
-//
-func (check *checker) assign1to1(lhs, rhs ast.Expr, x *operand, decl bool, iota int) {
-	ident, _ := lhs.(*ast.Ident)
-	if x == nil {
-		assert(rhs != nil)
-		x = new(operand)
-	}
-
-	if ident != nil && ident.Name == "_" {
-		// anything can be assigned to a blank identifier - check rhs only, if present
-		if rhs != nil {
-			check.expr(x, rhs, nil, iota)
-		}
-		return
-	}
-
-	if !decl {
-		// regular assignment - start with lhs to obtain a type hint
-		var z operand
-		check.expr(&z, lhs, nil, -1)
-		if z.mode == invalid {
-			z.typ = nil // so we can proceed with rhs
-		}
-
-		if rhs != nil {
-			check.expr(x, rhs, z.typ, -1)
-			if x.mode == invalid {
-				return
-			}
-		}
-
-		check.assignOperand(&z, x)
-		if x.mode != invalid && z.mode == constant {
-			check.errorf(x.pos(), "cannot assign %s to %s", x, &z)
-		}
-		return
-	}
-
-	// declaration - lhs must be an identifier
-	if ident == nil {
-		check.errorf(lhs.Pos(), "cannot declare %s", lhs)
-		return
-	}
-
-	// lhs may or may not be typed yet
-	obj := check.lookup(ident)
-	var typ Type
-	if t := obj.GetType(); t != nil {
-		typ = t
-	}
-
-	if rhs != nil {
-		check.expr(x, rhs, typ, iota)
-		// continue even if x.mode == invalid
-	}
-
-	if typ == nil {
-		// determine lhs type from rhs expression;
-		// for variables, convert untyped types to
-		// default types
-		typ = Typ[Invalid]
-		if x.mode != invalid {
-			typ = x.typ
-			if _, ok := obj.(*Var); ok && isUntyped(typ) {
-				if x.isNil() {
-					check.errorf(x.pos(), "use of untyped nil")
-					x.mode = invalid
-				} else {
-					typ = defaultType(typ)
-				}
-			}
-		}
-		switch obj := obj.(type) {
-		case *Const:
-			obj.Type = typ
-		case *Var:
-			obj.Type = typ
-		default:
-			unreachable()
-		}
-	}
-
-	if x.mode != invalid {
-		var z operand
-		switch obj.(type) {
-		case *Const:
-			z.mode = constant
-		case *Var:
-			z.mode = variable
-		default:
-			unreachable()
-		}
-		z.expr = ident
-		z.typ = typ
-		check.assignOperand(&z, x)
-	}
-
-	// for constants, set their value
-	if obj, ok := obj.(*Const); ok {
-		assert(obj.Val == nil)
-		if x.mode != invalid {
-			if x.mode == constant {
-				if isConstType(x.typ) {
-					obj.Val = x.val
-				} else {
-					check.errorf(x.pos(), "%s has invalid constant type", x)
-				}
-			} else {
-				check.errorf(x.pos(), "%s is not constant", x)
-			}
-		}
-		if obj.Val == nil {
-			// set the constant to its type's zero value to reduce spurious errors
-			switch typ := underlying(obj.Type); {
-			case typ == Typ[Invalid]:
-				// ignore
-			case isBoolean(typ):
-				obj.Val = false
-			case isNumeric(typ):
-				obj.Val = int64(0)
-			case isString(typ):
-				obj.Val = ""
-			case hasNil(typ):
-				obj.Val = nilConst
-			default:
-				// in all other cases just prevent use of the constant
-				// TODO(gri) re-evaluate this code
-				obj.Val = nilConst
-			}
-		}
-	}
-}
-
-// assignNtoM typechecks a general assignment. If decl is set, the lhs operands
-// must be identifiers. If their types are not set, they are deduced from the
-// types of the corresponding rhs expressions. iota >= 0 indicates that the
-// "assignment" is part of a constant/variable declaration.
-// Precondition: len(lhs) > 0 .
-//
-func (check *checker) assignNtoM(lhs, rhs []ast.Expr, decl bool, iota int) {
-	assert(len(lhs) > 0)
-
-	if len(lhs) == len(rhs) {
-		for i, e := range rhs {
-			check.assign1to1(lhs[i], e, nil, decl, iota)
-		}
-		return
-	}
-
-	if len(rhs) == 1 {
-		// len(lhs) > 1, therefore a correct rhs expression
-		// cannot be a shift and we don't need a type hint;
-		// ok to evaluate rhs first
-		var x operand
-		check.expr(&x, rhs[0], nil, iota)
-		if x.mode == invalid {
-			return
-		}
-
-		if t, ok := x.typ.(*Result); ok && len(lhs) == len(t.Values) {
-			// function result
-			x.mode = value
-			for i, obj := range t.Values {
-				x.expr = nil // TODO(gri) should do better here
-				x.typ = obj.Type
-				check.assign1to1(lhs[i], nil, &x, decl, iota)
-			}
-			return
-		}
-
-		if x.mode == valueok && len(lhs) == 2 {
-			// comma-ok expression
-			x.mode = value
-			check.assign1to1(lhs[0], nil, &x, decl, iota)
-
-			x.mode = value
-			x.typ = Typ[UntypedBool]
-			check.assign1to1(lhs[1], nil, &x, decl, iota)
-			return
-		}
-	}
-
-	check.errorf(lhs[0].Pos(), "assignment count mismatch: %d = %d", len(lhs), len(rhs))
-
-	// avoid checking the same declaration over and over
-	// again for each lhs identifier that has no type yet
-	if iota >= 0 {
-		// declaration
-		for _, e := range lhs {
-			if name, ok := e.(*ast.Ident); ok {
-				switch obj := check.lookup(name).(type) {
-				case *Const:
-					obj.Type = Typ[Invalid]
-				case *Var:
-					obj.Type = Typ[Invalid]
-				default:
-					unreachable()
-				}
-			}
-		}
-	}
-}
-
-func (check *checker) optionalStmt(s ast.Stmt) {
-	if s != nil {
-		check.stmt(s)
-	}
-}
-
-func (check *checker) stmtList(list []ast.Stmt) {
-	for _, s := range list {
-		check.stmt(s)
-	}
-}
-
-func (check *checker) call(call *ast.CallExpr) {
-	var x operand
-	check.rawExpr(&x, call, nil, -1, false) // don't check if value is used
-	// TODO(gri) If a builtin is called, the builtin must be valid in statement context.
-}
-
-func (check *checker) multipleDefaults(list []ast.Stmt) {
-	var first ast.Stmt
-	for _, s := range list {
-		var d ast.Stmt
-		switch c := s.(type) {
-		case *ast.CaseClause:
-			if len(c.List) == 0 {
-				d = s
-			}
-		case *ast.CommClause:
-			if c.Comm == nil {
-				d = s
-			}
-		default:
-			check.invalidAST(s.Pos(), "case/communication clause expected")
-		}
-		if d != nil {
-			if first != nil {
-				check.errorf(d.Pos(), "multiple defaults (first at %s)", first.Pos())
-			} else {
-				first = d
-			}
-		}
-	}
-}
-
-// stmt typechecks statement s.
-func (check *checker) stmt(s ast.Stmt) {
-	switch s := s.(type) {
-	case *ast.BadStmt, *ast.EmptyStmt:
-		// ignore
-
-	case *ast.DeclStmt:
-		d, _ := s.Decl.(*ast.GenDecl)
-		if d == nil || (d.Tok != token.CONST && d.Tok != token.TYPE && d.Tok != token.VAR) {
-			check.invalidAST(token.NoPos, "const, type, or var declaration expected")
-			return
-		}
-		if d.Tok == token.CONST {
-			check.assocInitvals(d)
-		}
-		check.decl(d)
-
-	case *ast.LabeledStmt:
-		// TODO(gri) anything to do with label itself?
-		check.stmt(s.Stmt)
-
-	case *ast.ExprStmt:
-		var x operand
-		used := false
-		switch e := unparen(s.X).(type) {
-		case *ast.CallExpr:
-			// function calls are permitted
-			used = true
-			// but some builtins are excluded
-			// (Caution: This evaluates e.Fun twice, once here and once
-			//           below as part of s.X. This has consequences for
-			//           check.register. Perhaps this can be avoided.)
-			check.expr(&x, e.Fun, nil, -1)
-			if x.mode != invalid {
-				if b, ok := x.typ.(*builtin); ok && !b.isStatement {
-					used = false
-				}
-			}
-		case *ast.UnaryExpr:
-			// receive operations are permitted
-			if e.Op == token.ARROW {
-				used = true
-			}
-		}
-		if !used {
-			check.errorf(s.Pos(), "%s not used", s.X)
-			// ok to continue
-		}
-		check.rawExpr(&x, s.X, nil, -1, false)
-		if x.mode == typexpr {
-			check.errorf(x.pos(), "%s is not an expression", &x)
-		}
-
-	case *ast.SendStmt:
-		var ch, x operand
-		check.expr(&ch, s.Chan, nil, -1)
-		check.expr(&x, s.Value, nil, -1)
-		if ch.mode == invalid || x.mode == invalid {
-			return
-		}
-		if tch, ok := underlying(ch.typ).(*Chan); !ok || tch.Dir&ast.SEND == 0 || !x.isAssignable(tch.Elt) {
-			check.invalidOp(ch.pos(), "cannot send %s to channel %s", &x, &ch)
-		}
-
-	case *ast.IncDecStmt:
-		var op token.Token
-		switch s.Tok {
-		case token.INC:
-			op = token.ADD
-		case token.DEC:
-			op = token.SUB
-		default:
-			check.invalidAST(s.TokPos, "unknown inc/dec operation %s", s.Tok)
-			return
-		}
-		var x, y operand
-		check.expr(&x, s.X, nil, -1)
-		check.expr(&y, &ast.BasicLit{ValuePos: x.pos(), Kind: token.INT, Value: "1"}, nil, -1) // use x's position
-		check.binary(&x, &y, op, nil)
-		check.assign1to1(s.X, nil, &x, false, -1)
-
-	case *ast.AssignStmt:
-		switch s.Tok {
-		case token.ASSIGN, token.DEFINE:
-			if len(s.Lhs) == 0 {
-				check.invalidAST(s.Pos(), "missing lhs in assignment")
-				return
-			}
-			check.assignNtoM(s.Lhs, s.Rhs, s.Tok == token.DEFINE, -1)
-		default:
-			// assignment operations
-			if len(s.Lhs) != 1 || len(s.Rhs) != 1 {
-				check.errorf(s.TokPos, "assignment operation %s requires single-valued expressions", s.Tok)
-				return
-			}
-			// TODO(gri) make this conversion more efficient
-			var op token.Token
-			switch s.Tok {
-			case token.ADD_ASSIGN:
-				op = token.ADD
-			case token.SUB_ASSIGN:
-				op = token.SUB
-			case token.MUL_ASSIGN:
-				op = token.MUL
-			case token.QUO_ASSIGN:
-				op = token.QUO
-			case token.REM_ASSIGN:
-				op = token.REM
-			case token.AND_ASSIGN:
-				op = token.AND
-			case token.OR_ASSIGN:
-				op = token.OR
-			case token.XOR_ASSIGN:
-				op = token.XOR
-			case token.SHL_ASSIGN:
-				op = token.SHL
-			case token.SHR_ASSIGN:
-				op = token.SHR
-			case token.AND_NOT_ASSIGN:
-				op = token.AND_NOT
-			default:
-				check.invalidAST(s.TokPos, "unknown assignment operation %s", s.Tok)
-				return
-			}
-			var x, y operand
-			check.expr(&x, s.Lhs[0], nil, -1)
-			if x.mode == invalid {
-				return
-			}
-			check.expr(&y, s.Rhs[0], nil, -1)
-			if y.mode == invalid {
-				return
-			}
-			check.binary(&x, &y, op, x.typ)
-			check.assign1to1(s.Lhs[0], nil, &x, false, -1)
-		}
-
-	case *ast.GoStmt:
-		check.call(s.Call)
-
-	case *ast.DeferStmt:
-		check.call(s.Call)
-
-	case *ast.ReturnStmt:
-		sig := check.funcsig
-		if n := len(sig.Results); n > 0 {
-			// TODO(gri) should not have to compute lhs, named every single time - clean this up
-			lhs := make([]ast.Expr, n)
-			named := false // if set, function has named results
-			for i, res := range sig.Results {
-				if len(res.Name) > 0 {
-					// a blank (_) result parameter is a named result
-					named = true
-				}
-				name := ast.NewIdent(res.Name)
-				name.NamePos = s.Pos()
-				check.register(name, &Var{Name: res.Name, Type: res.Type})
-				lhs[i] = name
-			}
-			if len(s.Results) > 0 || !named {
-				// TODO(gri) assignNtoM should perhaps not require len(lhs) > 0
-				check.assignNtoM(lhs, s.Results, false, -1)
-			}
-		} else if len(s.Results) > 0 {
-			check.errorf(s.Pos(), "no result values expected")
-		}
-
-	case *ast.BranchStmt:
-		// TODO(gri) implement this
-
-	case *ast.BlockStmt:
-		check.stmtList(s.List)
-
-	case *ast.IfStmt:
-		check.optionalStmt(s.Init)
-		var x operand
-		check.expr(&x, s.Cond, nil, -1)
-		if !isBoolean(x.typ) {
-			check.errorf(s.Cond.Pos(), "non-boolean condition in if statement")
-		}
-		check.stmt(s.Body)
-		check.optionalStmt(s.Else)
-
-	case *ast.SwitchStmt:
-		check.optionalStmt(s.Init)
-		var x operand
-		tag := s.Tag
-		if tag == nil {
-			// use fake true tag value and position it at the opening { of the switch
-			ident := &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
-			check.register(ident, Universe.Lookup("true"))
-			tag = ident
-		}
-		check.expr(&x, tag, nil, -1)
-
-		check.multipleDefaults(s.Body.List)
-		seen := make(map[interface{}]token.Pos)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CaseClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			if x.mode != invalid {
-				for _, expr := range clause.List {
-					x := x // copy of x (don't modify original)
-					var y operand
-					check.expr(&y, expr, nil, -1)
-					if y.mode == invalid {
-						continue // error reported before
-					}
-					// If we have a constant case value, it must appear only
-					// once in the switch statement. Determine if there is a
-					// duplicate entry, but only report an error if there are
-					// no other errors.
-					var dupl token.Pos
-					var yy operand
-					if y.mode == constant {
-						// TODO(gri) This code doesn't work correctly for
-						//           large integer, floating point, or
-						//           complex values - the respective struct
-						//           comparisons are shallow. Need to use a
-						//           hash function to index the map.
-						dupl = seen[y.val]
-						seen[y.val] = y.pos()
-						yy = y // remember y
-					}
-					// TODO(gri) The convertUntyped call pair below appears in other places. Factor!
-					// Order matters: By comparing y against x, error positions are at the case values.
-					check.convertUntyped(&y, x.typ)
-					if y.mode == invalid {
-						continue // error reported before
-					}
-					check.convertUntyped(&x, y.typ)
-					if x.mode == invalid {
-						continue // error reported before
-					}
-					check.comparison(&y, &x, token.EQL)
-					if y.mode != invalid && dupl.IsValid() {
-						check.errorf(yy.pos(), "%s is duplicate case (previous at %s)",
-							&yy, check.fset.Position(dupl))
-					}
-				}
-			}
-			check.stmtList(clause.Body)
-		}
-
-	case *ast.TypeSwitchStmt:
-		check.optionalStmt(s.Init)
-
-		// A type switch guard must be of the form:
-		//
-		//     TypeSwitchGuard = [ identifier ":=" ] PrimaryExpr "." "(" "type" ")" .
-		//
-		// The parser is checking syntactic correctness;
-		// remaining syntactic errors are considered AST errors here.
-		// TODO(gri) better factoring of error handling (invalid ASTs)
-		//
-		var lhs *Var // lhs variable or nil
-		var rhs ast.Expr
-		switch guard := s.Assign.(type) {
-		case *ast.ExprStmt:
-			rhs = guard.X
-		case *ast.AssignStmt:
-			if len(guard.Lhs) != 1 || guard.Tok != token.DEFINE || len(guard.Rhs) != 1 {
-				check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-				return
-			}
-			ident, _ := guard.Lhs[0].(*ast.Ident)
-			if ident == nil {
-				check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-				return
-			}
-			lhs = check.lookup(ident).(*Var)
-			rhs = guard.Rhs[0]
-		default:
-			check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-			return
-		}
-
-		// rhs must be of the form: expr.(type) and expr must be an interface
-		expr, _ := rhs.(*ast.TypeAssertExpr)
-		if expr == nil || expr.Type != nil {
-			check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-			return
-		}
-		var x operand
-		check.expr(&x, expr.X, nil, -1)
-		if x.mode == invalid {
-			return
-		}
-		var T *Interface
-		if T, _ = underlying(x.typ).(*Interface); T == nil {
-			check.errorf(x.pos(), "%s is not an interface", &x)
-			return
-		}
-
-		check.multipleDefaults(s.Body.List)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CaseClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			// Check each type in this type switch case.
-			var typ Type
-			for _, expr := range clause.List {
-				typ = check.typOrNil(expr, false)
-				if typ != nil && typ != Typ[Invalid] {
-					if method, wrongType := missingMethod(typ, T); method != nil {
-						var msg string
-						if wrongType {
-							msg = "%s cannot have dynamic type %s (wrong type for method %s)"
-						} else {
-							msg = "%s cannot have dynamic type %s (missing method %s)"
-						}
-						check.errorf(expr.Pos(), msg, &x, typ, method.Name)
-						// ok to continue
-					}
-				}
-			}
-			// If lhs exists, set its type for each clause.
-			if lhs != nil {
-				// In clauses with a case listing exactly one type, the variable has that type;
-				// otherwise, the variable has the type of the expression in the TypeSwitchGuard.
-				if len(clause.List) != 1 || typ == nil {
-					typ = x.typ
-				}
-				lhs.Type = typ
-			}
-			check.stmtList(clause.Body)
-		}
-
-		// There is only one object (lhs) associated with a lhs identifier, but that object
-		// assumes different types for different clauses. Set it back to the type of the
-		// TypeSwitchGuard expression so that that variable always has a valid type.
-		if lhs != nil {
-			lhs.Type = x.typ
-		}
-
-	case *ast.SelectStmt:
-		check.multipleDefaults(s.Body.List)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CommClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			check.optionalStmt(clause.Comm) // TODO(gri) check correctness of c.Comm (must be Send/RecvStmt)
-			check.stmtList(clause.Body)
-		}
-
-	case *ast.ForStmt:
-		check.optionalStmt(s.Init)
-		if s.Cond != nil {
-			var x operand
-			check.expr(&x, s.Cond, nil, -1)
-			if !isBoolean(x.typ) {
-				check.errorf(s.Cond.Pos(), "non-boolean condition in for statement")
-			}
-		}
-		check.optionalStmt(s.Post)
-		check.stmt(s.Body)
-
-	case *ast.RangeStmt:
-		// check expression to iterate over
-		decl := s.Tok == token.DEFINE
-		var x operand
-		check.expr(&x, s.X, nil, -1)
-		if x.mode == invalid {
-			// if we don't have a declaration, we can still check the loop's body
-			if !decl {
-				check.stmt(s.Body)
-			}
-			return
-		}
-
-		// determine key/value types
-		var key, val Type
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				key = Typ[UntypedInt]
-				val = Typ[UntypedRune]
-			}
-		case *Array:
-			key = Typ[UntypedInt]
-			val = typ.Elt
-		case *Slice:
-			key = Typ[UntypedInt]
-			val = typ.Elt
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				key = Typ[UntypedInt]
-				val = typ.Elt
-			}
-		case *Map:
-			key = typ.Key
-			val = typ.Elt
-		case *Chan:
-			key = typ.Elt
-			if typ.Dir&ast.RECV == 0 {
-				check.errorf(x.pos(), "cannot range over send-only channel %s", &x)
-				// ok to continue
-			}
-			if s.Value != nil {
-				check.errorf(s.Value.Pos(), "iteration over %s permits only one iteration variable", &x)
-				// ok to continue
-			}
-		}
-
-		if key == nil {
-			check.errorf(x.pos(), "cannot range over %s", &x)
-			// if we don't have a declaration, we can still check the loop's body
-			if !decl {
-				check.stmt(s.Body)
-			}
-			return
-		}
-
-		// check assignment to/declaration of iteration variables
-		// TODO(gri) The error messages/positions are not great here,
-		//           they refer to the expression in the range clause.
-		//           Should give better messages w/o too much code
-		//           duplication (assignment checking).
-		x.mode = value
-		if s.Key != nil {
-			x.typ = key
-			check.assign1to1(s.Key, nil, &x, decl, -1)
-		} else {
-			check.invalidAST(s.Pos(), "range clause requires index iteration variable")
-			// ok to continue
-		}
-		if s.Value != nil {
-			x.typ = val
-			check.assign1to1(s.Value, nil, &x, decl, -1)
-		}
-
-		check.stmt(s.Body)
-
-	default:
-		check.errorf(s.Pos(), "invalid statement")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/testdata/exports.go gcc-4.8.1/libgo/go/go/types/testdata/exports.go
--- gcc-4.8.1.orig/libgo/go/go/types/testdata/exports.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/testdata/exports.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,89 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file is used to generate an object file which
-// serves as test file for gcimporter_test.go.
-
-package exports
-
-import (
-	"go/ast"
-)
-
-// Issue 3682: Correctly read dotted identifiers from export data.
-const init1 = 0
-
-func init() {}
-
-const (
-	C0 int = 0
-	C1     = 3.14159265
-	C2     = 2.718281828i
-	C3     = -123.456e-789
-	C4     = +123.456E+789
-	C5     = 1234i
-	C6     = "foo\n"
-	C7     = `bar\n`
-)
-
-type (
-	T1  int
-	T2  [10]int
-	T3  []int
-	T4  *int
-	T5  chan int
-	T6a chan<- int
-	T6b chan (<-chan int)
-	T6c chan<- (chan int)
-	T7  <-chan *ast.File
-	T8  struct{}
-	T9  struct {
-		a    int
-		b, c float32
-		d    []string `go:"tag"`
-	}
-	T10 struct {
-		T8
-		T9
-		_ *T10
-	}
-	T11 map[int]string
-	T12 interface{}
-	T13 interface {
-		m1()
-		m2(int) float32
-	}
-	T14 interface {
-		T12
-		T13
-		m3(x ...struct{}) []T9
-	}
-	T15 func()
-	T16 func(int)
-	T17 func(x int)
-	T18 func() float32
-	T19 func() (x float32)
-	T20 func(...interface{})
-	T21 struct{ next *T21 }
-	T22 struct{ link *T23 }
-	T23 struct{ link *T22 }
-	T24 *T24
-	T25 *T26
-	T26 *T27
-	T27 *T25
-	T28 func(T28) T28
-)
-
-var (
-	V0 int
-	V1 = -991.0
-)
-
-func F1()         {}
-func F2(x int)    {}
-func F3() int     { return 0 }
-func F4() float32 { return 0 }
-func F5(a, b, c int, u, v, w struct{ x, y T1 }, more ...interface{}) (p, q, r chan<- T10)
-
-func (p *T1) M1()
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/types.go gcc-4.8.1/libgo/go/go/types/types.go
--- gcc-4.8.1.orig/libgo/go/go/types/types.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/types.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,232 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import "go/ast"
-
-// All types implement the Type interface.
-type Type interface {
-	String() string
-	aType()
-}
-
-// BasicKind describes the kind of basic type.
-type BasicKind int
-
-const (
-	Invalid BasicKind = iota // type is invalid
-
-	// predeclared types
-	Bool
-	Int
-	Int8
-	Int16
-	Int32
-	Int64
-	Uint
-	Uint8
-	Uint16
-	Uint32
-	Uint64
-	Uintptr
-	Float32
-	Float64
-	Complex64
-	Complex128
-	String
-	UnsafePointer
-
-	// types for untyped values
-	UntypedBool
-	UntypedInt
-	UntypedRune
-	UntypedFloat
-	UntypedComplex
-	UntypedString
-	UntypedNil
-
-	// aliases
-	Byte = Uint8
-	Rune = Int32
-)
-
-// BasicInfo is a set of flags describing properties of a basic type.
-type BasicInfo int
-
-// Properties of basic types.
-const (
-	IsBoolean BasicInfo = 1 << iota
-	IsInteger
-	IsUnsigned
-	IsFloat
-	IsComplex
-	IsString
-	IsUntyped
-
-	IsOrdered   = IsInteger | IsFloat | IsString
-	IsNumeric   = IsInteger | IsFloat | IsComplex
-	IsConstType = IsBoolean | IsNumeric | IsString
-)
-
-// A Basic represents a basic type.
-type Basic struct {
-	Kind BasicKind
-	Info BasicInfo
-	Size int64
-	Name string
-}
-
-// An Array represents an array type [Len]Elt.
-type Array struct {
-	Len int64
-	Elt Type
-}
-
-// A Slice represents a slice type []Elt.
-type Slice struct {
-	Elt Type
-}
-
-// A QualifiedName is a name qualified with the package that declared the name.
-type QualifiedName struct {
-	Pkg  *Package // nil only for predeclared error.Error
-	Name string   // unqualified type name for anonymous fields
-}
-
-// IsSame reports whether p and q are the same.
-func (p QualifiedName) IsSame(q QualifiedName) bool {
-	// spec:
-	// "Two identifiers are different if they are spelled differently,
-	// or if they appear in different packages and are not exported.
-	// Otherwise, they are the same."
-	if p.Name != q.Name {
-		return false
-	}
-	// p.Name == q.Name
-	return ast.IsExported(p.Name) || p.Pkg == q.Pkg
-}
-
-// A Field represents a field of a struct.
-type Field struct {
-	QualifiedName
-	Type        Type
-	Tag         string
-	IsAnonymous bool
-}
-
-// A Struct represents a struct type struct{...}.
-type Struct struct {
-	Fields []*Field
-}
-
-func (typ *Struct) fieldIndex(name string) int {
-	for i, f := range typ.Fields {
-		if f.Name == name {
-			return i
-		}
-	}
-	return -1
-}
-
-// A Pointer represents a pointer type *Base.
-type Pointer struct {
-	Base Type
-}
-
-// A Result represents a (multi-value) function call result.
-type Result struct {
-	Values []*Var // Signature.Results of the function called
-}
-
-// A Signature represents a user-defined function type func(...) (...).
-type Signature struct {
-	Recv       *Var   // nil if not a method
-	Params     []*Var // (incoming) parameters from left to right; or nil
-	Results    []*Var // (outgoing) results from left to right; or nil
-	IsVariadic bool   // true if the last parameter's type is of the form ...T
-}
-
-// builtinId is an id of a builtin function.
-type builtinId int
-
-// Predeclared builtin functions.
-const (
-	// Universe scope
-	_Append builtinId = iota
-	_Cap
-	_Close
-	_Complex
-	_Copy
-	_Delete
-	_Imag
-	_Len
-	_Make
-	_New
-	_Panic
-	_Print
-	_Println
-	_Real
-	_Recover
-
-	// Unsafe package
-	_Alignof
-	_Offsetof
-	_Sizeof
-
-	// Testing support
-	_Assert
-	_Trace
-)
-
-// A builtin represents the type of a built-in function.
-type builtin struct {
-	id          builtinId
-	name        string
-	nargs       int // number of arguments (minimum if variadic)
-	isVariadic  bool
-	isStatement bool // true if the built-in is valid as an expression statement
-}
-
-// A Method represents a method.
-type Method struct {
-	QualifiedName
-	Type *Signature
-}
-
-// An Interface represents an interface type interface{...}.
-type Interface struct {
-	Methods []*Method // TODO(gri) consider keeping them in sorted order
-}
-
-// A Map represents a map type map[Key]Elt.
-type Map struct {
-	Key, Elt Type
-}
-
-// A Chan represents a channel type chan Elt, <-chan Elt, or chan<-Elt.
-type Chan struct {
-	Dir ast.ChanDir
-	Elt Type
-}
-
-// A NamedType represents a named type as declared in a type declaration.
-type NamedType struct {
-	Obj        *TypeName // corresponding declared object
-	Underlying Type      // nil if not fully declared yet; never a *NamedType
-	Methods    []*Method // TODO(gri) consider keeping them in sorted order
-}
-
-func (*Basic) aType()     {}
-func (*Array) aType()     {}
-func (*Slice) aType()     {}
-func (*Struct) aType()    {}
-func (*Pointer) aType()   {}
-func (*Result) aType()    {}
-func (*Signature) aType() {}
-func (*builtin) aType()   {}
-func (*Interface) aType() {}
-func (*Map) aType()       {}
-func (*Chan) aType()      {}
-func (*NamedType) aType() {}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/types_test.go gcc-4.8.1/libgo/go/go/types/types_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/types_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/types_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,171 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file contains tests verifying the types associated with an AST after
-// type checking.
-
-package types
-
-import (
-	"go/ast"
-	"go/parser"
-	"testing"
-)
-
-const filename = "<src>"
-
-func makePkg(t *testing.T, src string) (*Package, error) {
-	file, err := parser.ParseFile(fset, filename, src, parser.DeclarationErrors)
-	if err != nil {
-		return nil, err
-	}
-	pkg, err := Check(fset, []*ast.File{file})
-	return pkg, err
-}
-
-type testEntry struct {
-	src, str string
-}
-
-// dup returns a testEntry where both src and str are the same.
-func dup(s string) testEntry {
-	return testEntry{s, s}
-}
-
-var testTypes = []testEntry{
-	// basic types
-	dup("int"),
-	dup("float32"),
-	dup("string"),
-
-	// arrays
-	dup("[10]int"),
-
-	// slices
-	dup("[]int"),
-	dup("[][]int"),
-
-	// structs
-	dup("struct{}"),
-	dup("struct{x int}"),
-	{`struct {
-		x, y int
-		z float32 "foo"
-	}`, `struct{x int; y int; z float32 "foo"}`},
-	{`struct {
-		string
-		elems []T
-	}`, `struct{string; elems []T}`},
-
-	// pointers
-	dup("*int"),
-	dup("***struct{}"),
-	dup("*struct{a int; b float32}"),
-
-	// functions
-	dup("func()"),
-	dup("func(x int)"),
-	{"func(x, y int)", "func(x int, y int)"},
-	{"func(x, y int, z string)", "func(x int, y int, z string)"},
-	dup("func(int)"),
-	{"func(int, string, byte)", "func(int, string, byte)"},
-
-	dup("func() int"),
-	{"func() (string)", "func() string"},
-	dup("func() (u int)"),
-	{"func() (u, v int, w string)", "func() (u int, v int, w string)"},
-
-	dup("func(int) string"),
-	dup("func(x int) string"),
-	dup("func(x int) (u string)"),
-	{"func(x, y int) (u string)", "func(x int, y int) (u string)"},
-
-	dup("func(...int) string"),
-	dup("func(x ...int) string"),
-	dup("func(x ...int) (u string)"),
-	{"func(x, y ...int) (u string)", "func(x int, y ...int) (u string)"},
-
-	// interfaces
-	dup("interface{}"),
-	dup("interface{m()}"),
-	dup(`interface{m(int) float32; String() string}`),
-	// TODO(gri) add test for interface w/ anonymous field
-
-	// maps
-	dup("map[string]int"),
-	{"map[struct{x, y int}][]byte", "map[struct{x int; y int}][]byte"},
-
-	// channels
-	dup("chan int"),
-	dup("chan<- func()"),
-	dup("<-chan []func() int"),
-}
-
-func TestTypes(t *testing.T) {
-	for _, test := range testTypes {
-		src := "package p; type T " + test.src
-		pkg, err := makePkg(t, src)
-		if err != nil {
-			t.Errorf("%s: %s", src, err)
-			continue
-		}
-		typ := underlying(pkg.Scope.Lookup("T").GetType())
-		str := typeString(typ)
-		if str != test.str {
-			t.Errorf("%s: got %s, want %s", test.src, str, test.str)
-		}
-	}
-}
-
-var testExprs = []testEntry{
-	// basic type literals
-	dup("x"),
-	dup("true"),
-	dup("42"),
-	dup("3.1415"),
-	dup("2.71828i"),
-	dup(`'a'`),
-	dup(`"foo"`),
-	dup("`bar`"),
-
-	// arbitrary expressions
-	dup("&x"),
-	dup("*&x"),
-	dup("(x)"),
-	dup("x + y"),
-	dup("x + y * 10"),
-	dup("t.foo"),
-	dup("s[0]"),
-	dup("s[x:y]"),
-	dup("s[:y]"),
-	dup("s[x:]"),
-	dup("s[:]"),
-	dup("f(1, 2.3)"),
-	dup("-f(10, 20)"),
-	dup("f(x + y, +3.1415)"),
-	{"func(a, b int) {}", "(func literal)"},
-	{"func(a, b int) []int {}(1, 2)[x]", "(func literal)(1, 2)[x]"},
-	{"[]int{1, 2, 3}", "(composite literal)"},
-	{"[]int{1, 2, 3}[x:]", "(composite literal)[x:]"},
-	{"i.([]string)", "i.(...)"},
-}
-
-func TestExprs(t *testing.T) {
-	for _, test := range testExprs {
-		src := "package p; var _ = " + test.src + "; var (x, y int; s []string; f func(int, float32) int; i interface{}; t interface { foo() })"
-		file, err := parser.ParseFile(fset, filename, src, parser.DeclarationErrors)
-		if err != nil {
-			t.Errorf("%s: %s", src, err)
-			continue
-		}
-		// TODO(gri) writing the code below w/o the decl variable will
-		//           cause a 386 compiler error (out of fixed registers)
-		decl := file.Decls[0].(*ast.GenDecl)
-		expr := decl.Specs[0].(*ast.ValueSpec).Values[0]
-		str := exprString(expr)
-		if str != test.str {
-			t.Errorf("%s: got %s, want %s", test.src, str, test.str)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/universe.go gcc-4.8.1/libgo/go/go/types/universe.go
--- gcc-4.8.1.orig/libgo/go/go/types/universe.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/go/types/universe.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,137 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements the universe and unsafe package scopes.
-
-package types
-
-import (
-	"go/ast"
-	"strings"
-)
-
-var (
-	Universe     *Scope
-	Unsafe       *Package
-	universeIota *Const
-)
-
-// Predeclared types, indexed by BasicKind.
-var Typ = [...]*Basic{
-	Invalid: {Invalid, 0, 0, "invalid type"},
-
-	Bool:          {Bool, IsBoolean, 1, "bool"},
-	Int:           {Int, IsInteger, 0, "int"},
-	Int8:          {Int8, IsInteger, 1, "int8"},
-	Int16:         {Int16, IsInteger, 2, "int16"},
-	Int32:         {Int32, IsInteger, 4, "int32"},
-	Int64:         {Int64, IsInteger, 8, "int64"},
-	Uint:          {Uint, IsInteger | IsUnsigned, 0, "uint"},
-	Uint8:         {Uint8, IsInteger | IsUnsigned, 1, "uint8"},
-	Uint16:        {Uint16, IsInteger | IsUnsigned, 2, "uint16"},
-	Uint32:        {Uint32, IsInteger | IsUnsigned, 4, "uint32"},
-	Uint64:        {Uint64, IsInteger | IsUnsigned, 8, "uint64"},
-	Uintptr:       {Uintptr, IsInteger | IsUnsigned, 0, "uintptr"},
-	Float32:       {Float32, IsFloat, 4, "float32"},
-	Float64:       {Float64, IsFloat, 8, "float64"},
-	Complex64:     {Complex64, IsComplex, 8, "complex64"},
-	Complex128:    {Complex128, IsComplex, 16, "complex128"},
-	String:        {String, IsString, 0, "string"},
-	UnsafePointer: {UnsafePointer, 0, 0, "Pointer"},
-
-	UntypedBool:    {UntypedBool, IsBoolean | IsUntyped, 0, "untyped boolean"},
-	UntypedInt:     {UntypedInt, IsInteger | IsUntyped, 0, "untyped integer"},
-	UntypedRune:    {UntypedRune, IsInteger | IsUntyped, 0, "untyped rune"},
-	UntypedFloat:   {UntypedFloat, IsFloat | IsUntyped, 0, "untyped float"},
-	UntypedComplex: {UntypedComplex, IsComplex | IsUntyped, 0, "untyped complex"},
-	UntypedString:  {UntypedString, IsString | IsUntyped, 0, "untyped string"},
-	UntypedNil:     {UntypedNil, IsUntyped, 0, "untyped nil"},
-}
-
-var aliases = [...]*Basic{
-	{Byte, IsInteger | IsUnsigned, 1, "byte"},
-	{Rune, IsInteger, 4, "rune"},
-}
-
-var predeclaredConstants = [...]*Const{
-	{"true", Typ[UntypedBool], true, nil},
-	{"false", Typ[UntypedBool], false, nil},
-	{"iota", Typ[UntypedInt], zeroConst, nil},
-	{"nil", Typ[UntypedNil], nilConst, nil},
-}
-
-var predeclaredFunctions = [...]*builtin{
-	{_Append, "append", 1, true, false},
-	{_Cap, "cap", 1, false, false},
-	{_Close, "close", 1, false, true},
-	{_Complex, "complex", 2, false, false},
-	{_Copy, "copy", 2, false, true},
-	{_Delete, "delete", 2, false, true},
-	{_Imag, "imag", 1, false, false},
-	{_Len, "len", 1, false, false},
-	{_Make, "make", 1, true, false},
-	{_New, "new", 1, false, false},
-	{_Panic, "panic", 1, false, true},
-	{_Print, "print", 1, true, true},
-	{_Println, "println", 1, true, true},
-	{_Real, "real", 1, false, false},
-	{_Recover, "recover", 0, false, true},
-
-	{_Alignof, "Alignof", 1, false, false},
-	{_Offsetof, "Offsetof", 1, false, false},
-	{_Sizeof, "Sizeof", 1, false, false},
-}
-
-func init() {
-	Universe = new(Scope)
-	Unsafe = &Package{Name: "unsafe", Scope: new(Scope)}
-
-	// predeclared types
-	for _, t := range Typ {
-		def(&TypeName{Name: t.Name, Type: t})
-	}
-	for _, t := range aliases {
-		def(&TypeName{Name: t.Name, Type: t})
-	}
-
-	// error type
-	{
-		// Error has a nil package in its qualified name since it is in no package
-		err := &Method{QualifiedName{nil, "Error"}, &Signature{Results: []*Var{{Name: "", Type: Typ[String]}}}}
-		def(&TypeName{Name: "error", Type: &NamedType{Underlying: &Interface{Methods: []*Method{err}}}})
-	}
-
-	for _, c := range predeclaredConstants {
-		def(c)
-	}
-
-	for _, f := range predeclaredFunctions {
-		def(&Func{Name: f.name, Type: f})
-	}
-
-	universeIota = Universe.Lookup("iota").(*Const)
-}
-
-// Objects with names containing blanks are internal and not entered into
-// a scope. Objects with exported names are inserted in the unsafe package
-// scope; other objects are inserted in the universe scope.
-//
-func def(obj Object) {
-	name := obj.GetName()
-	if strings.Index(name, " ") >= 0 {
-		return // nothing to do
-	}
-	// fix Obj link for named types
-	if typ, ok := obj.GetType().(*NamedType); ok {
-		typ.Obj = obj.(*TypeName)
-	}
-	// exported identifiers go into package unsafe
-	scope := Universe
-	if ast.IsExported(name) {
-		scope = Unsafe.Scope
-	}
-	if scope.Insert(obj) != nil {
-		panic("internal error: double declaration")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/doc.go gcc-4.8.1/libgo/go/html/template/doc.go
--- gcc-4.8.1.orig/libgo/go/html/template/doc.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/html/template/doc.go	2013-10-01 16:06:44.160554280 +0000
@@ -119,7 +119,7 @@
 Non-string values can be used in JavaScript contexts.
 If {{.}} is
 
-  []struct{A,B string}{ "foo", "bar" }
+  struct{A,B string}{ "foo", "bar" }
 
 in the escaped template
 
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/template.go gcc-4.8.1/libgo/go/html/template/template.go
--- gcc-4.8.1.orig/libgo/go/html/template/template.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/html/template/template.go	2013-10-01 16:06:44.160554280 +0000
@@ -45,18 +45,24 @@
 	return m
 }
 
-// Execute applies a parsed template to the specified data object,
-// writing the output to wr.
-func (t *Template) Execute(wr io.Writer, data interface{}) (err error) {
+// escape escapes all associated templates.
+func (t *Template) escape() error {
 	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
 	if !t.escaped {
-		if err = escapeTemplates(t, t.Name()); err != nil {
-			t.escaped = true
+		if err := escapeTemplates(t, t.Name()); err != nil {
+			return err
 		}
+		t.escaped = true
 	}
-	t.nameSpace.mu.Unlock()
-	if err != nil {
-		return
+	return nil
+}
+
+// Execute applies a parsed template to the specified data object,
+// writing the output to wr.
+func (t *Template) Execute(wr io.Writer, data interface{}) error {
+	if err := t.escape(); err != nil {
+		return err
 	}
 	return t.text.Execute(wr, data)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/transition.go gcc-4.8.1/libgo/go/html/template/transition.go
--- gcc-4.8.1.orig/libgo/go/html/template/transition.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/html/template/transition.go	2013-10-01 16:06:44.160554280 +0000
@@ -71,7 +71,6 @@
 		}
 		k = j
 	}
-	panic("unreachable")
 }
 
 var elementContentType = [...]state{
@@ -430,7 +429,6 @@
 		}
 		k = i + 1
 	}
-	panic("unreachable")
 }
 
 // tCSSStr is the context transition function for the CSS string and URL states.
@@ -471,7 +469,6 @@
 		c, _ = tURL(c, decodeCSS(s[:i+1]))
 		k = i + 1
 	}
-	panic("unreachable")
 }
 
 // tError is the context transition function for the error state.
diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader.go gcc-4.8.1/libgo/go/image/gif/reader.go
--- gcc-4.8.1.orig/libgo/go/image/gif/reader.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/gif/reader.go	2013-10-01 16:06:44.160554280 +0000
@@ -17,6 +17,11 @@
 	"io"
 )
 
+var (
+	errNotEnough = errors.New("gif: not enough image data")
+	errTooMuch   = errors.New("gif: too much image data")
+)
+
 // If the io.Reader does not also have ReadByte, then decode will introduce its own buffering.
 type reader interface {
 	io.Reader
@@ -89,29 +94,35 @@
 // comprises (n, (n bytes)) blocks, with 1 <= n <= 255.  It is the
 // reader given to the LZW decoder, which is thus immune to the
 // blocking.  After the LZW decoder completes, there will be a 0-byte
-// block remaining (0, ()), but under normal execution blockReader
-// doesn't consume it, so it is handled in decode.
+// block remaining (0, ()), which is consumed when checking that the
+// blockReader is exhausted.
 type blockReader struct {
 	r     reader
 	slice []byte
+	err   error
 	tmp   [256]byte
 }
 
 func (b *blockReader) Read(p []byte) (int, error) {
+	if b.err != nil {
+		return 0, b.err
+	}
 	if len(p) == 0 {
 		return 0, nil
 	}
 	if len(b.slice) == 0 {
-		blockLen, err := b.r.ReadByte()
-		if err != nil {
-			return 0, err
+		var blockLen uint8
+		blockLen, b.err = b.r.ReadByte()
+		if b.err != nil {
+			return 0, b.err
 		}
 		if blockLen == 0 {
-			return 0, io.EOF
+			b.err = io.EOF
+			return 0, b.err
 		}
 		b.slice = b.tmp[0:blockLen]
-		if _, err = io.ReadFull(b.r, b.slice); err != nil {
-			return 0, err
+		if _, b.err = io.ReadFull(b.r, b.slice); b.err != nil {
+			return 0, b.err
 		}
 	}
 	n := copy(p, b.slice)
@@ -142,35 +153,33 @@
 		}
 	}
 
-Loop:
-	for err == nil {
-		var c byte
-		c, err = d.r.ReadByte()
-		if err == io.EOF {
-			break
+	for {
+		c, err := d.r.ReadByte()
+		if err != nil {
+			return err
 		}
 		switch c {
 		case sExtension:
-			err = d.readExtension()
+			if err = d.readExtension(); err != nil {
+				return err
+			}
 
 		case sImageDescriptor:
-			var m *image.Paletted
-			m, err = d.newImageFromDescriptor()
+			m, err := d.newImageFromDescriptor()
 			if err != nil {
-				break
+				return err
 			}
 			if d.imageFields&fColorMapFollows != 0 {
 				m.Palette, err = d.readColorMap()
 				if err != nil {
-					break
+					return err
 				}
 				// TODO: do we set transparency in this map too? That would be
 				// d.setTransparency(m.Palette)
 			} else {
 				m.Palette = d.globalColorMap
 			}
-			var litWidth uint8
-			litWidth, err = d.r.ReadByte()
+			litWidth, err := d.r.ReadByte()
 			if err != nil {
 				return err
 			}
@@ -178,18 +187,27 @@
 				return fmt.Errorf("gif: pixel size in decode out of range: %d", litWidth)
 			}
 			// A wonderfully Go-like piece of magic.
-			lzwr := lzw.NewReader(&blockReader{r: d.r}, lzw.LSB, int(litWidth))
+			br := &blockReader{r: d.r}
+			lzwr := lzw.NewReader(br, lzw.LSB, int(litWidth))
 			if _, err = io.ReadFull(lzwr, m.Pix); err != nil {
-				break
+				if err != io.ErrUnexpectedEOF {
+					return err
+				}
+				return errNotEnough
 			}
-
-			// There should be a "0" block remaining; drain that.
-			c, err = d.r.ReadByte()
-			if err != nil {
-				return err
+			// Both lzwr and br should be exhausted. Reading from them
+			// should yield (0, io.EOF).
+			if n, err := lzwr.Read(d.tmp[:1]); n != 0 || err != io.EOF {
+				if err != nil {
+					return err
+				}
+				return errTooMuch
 			}
-			if c != 0 {
-				return errors.New("gif: extra data after image")
+			if n, err := br.Read(d.tmp[:1]); n != 0 || err != io.EOF {
+				if err != nil {
+					return err
+				}
+				return errTooMuch
 			}
 
 			// Undo the interlacing if necessary.
@@ -202,19 +220,15 @@
 			d.delayTime = 0 // TODO: is this correct, or should we hold on to the value?
 
 		case sTrailer:
-			break Loop
+			if len(d.image) == 0 {
+				return io.ErrUnexpectedEOF
+			}
+			return nil
 
 		default:
-			err = fmt.Errorf("gif: unknown block type: 0x%.2x", c)
+			return fmt.Errorf("gif: unknown block type: 0x%.2x", c)
 		}
 	}
-	if err != nil {
-		return err
-	}
-	if len(d.image) == 0 {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
 }
 
 func (d *decoder) readHeaderAndScreenDescriptor() error {
@@ -304,7 +318,6 @@
 			return err
 		}
 	}
-	panic("unreachable")
 }
 
 func (d *decoder) readGraphicControl() error {
@@ -335,7 +348,15 @@
 	width := int(d.tmp[4]) + int(d.tmp[5])<<8
 	height := int(d.tmp[6]) + int(d.tmp[7])<<8
 	d.imageFields = d.tmp[8]
-	return image.NewPaletted(image.Rect(left, top, left+width, top+height), nil), nil
+
+	// The GIF89a spec, Section 20 (Image Descriptor) says:
+	// "Each image must fit within the boundaries of the Logical
+	// Screen, as defined in the Logical Screen Descriptor."
+	bounds := image.Rect(left, top, left+width, top+height)
+	if bounds != bounds.Intersect(image.Rect(0, 0, d.width, d.height)) {
+		return nil, errors.New("gif: frame bounds larger than image bounds")
+	}
+	return image.NewPaletted(bounds, nil), nil
 }
 
 func (d *decoder) readBlock() (int, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go gcc-4.8.1/libgo/go/image/gif/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/gif/reader_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -0,0 +1,138 @@
+package gif
+
+import (
+	"bytes"
+	"compress/lzw"
+	"image"
+	"image/color"
+	"reflect"
+	"testing"
+)
+
+func TestDecode(t *testing.T) {
+	// header and trailer are parts of a valid 2x1 GIF image.
+	const (
+		header = "GIF89a" +
+			"\x02\x00\x01\x00" + // width=2, height=1
+			"\x80\x00\x00" + // headerFields=(a color map of 2 pixels), backgroundIndex, aspect
+			"\x10\x20\x30\x40\x50\x60" // the color map, also known as a palette
+		trailer = "\x3b"
+	)
+
+	// lzwEncode returns an LZW encoding (with 2-bit literals) of n zeroes.
+	lzwEncode := func(n int) []byte {
+		b := &bytes.Buffer{}
+		w := lzw.NewWriter(b, lzw.LSB, 2)
+		w.Write(make([]byte, n))
+		w.Close()
+		return b.Bytes()
+	}
+
+	testCases := []struct {
+		nPix    int  // The number of pixels in the image data.
+		extra   bool // Whether to write an extra block after the LZW-encoded data.
+		wantErr error
+	}{
+		{0, false, errNotEnough},
+		{1, false, errNotEnough},
+		{2, false, nil},
+		{2, true, errTooMuch},
+		{3, false, errTooMuch},
+	}
+	for _, tc := range testCases {
+		b := &bytes.Buffer{}
+		b.WriteString(header)
+		// Write an image with bounds 2x1 but tc.nPix pixels. If tc.nPix != 2
+		// then this should result in an invalid GIF image. First, write a
+		// magic 0x2c (image descriptor) byte, bounds=(0,0)-(2,1), a flags
+		// byte, and 2-bit LZW literals.
+		b.WriteString("\x2c\x00\x00\x00\x00\x02\x00\x01\x00\x00\x02")
+		if tc.nPix > 0 {
+			enc := lzwEncode(tc.nPix)
+			if len(enc) > 0xff {
+				t.Errorf("nPix=%d, extra=%t: compressed length %d is too large", tc.nPix, tc.extra, len(enc))
+				continue
+			}
+			b.WriteByte(byte(len(enc)))
+			b.Write(enc)
+		}
+		if tc.extra {
+			b.WriteString("\x01\x02") // A 1-byte payload with an 0x02 byte.
+		}
+		b.WriteByte(0x00) // An empty block signifies the end of the image data.
+		b.WriteString(trailer)
+
+		got, err := Decode(b)
+		if err != tc.wantErr {
+			t.Errorf("nPix=%d, extra=%t\ngot  %v\nwant %v", tc.nPix, tc.extra, err, tc.wantErr)
+		}
+
+		if tc.wantErr != nil {
+			continue
+		}
+		want := &image.Paletted{
+			Pix:    []uint8{0, 0},
+			Stride: 2,
+			Rect:   image.Rect(0, 0, 2, 1),
+			Palette: color.Palette{
+				color.RGBA{0x10, 0x20, 0x30, 0xff},
+				color.RGBA{0x40, 0x50, 0x60, 0xff},
+			},
+		}
+		if !reflect.DeepEqual(got, want) {
+			t.Errorf("nPix=%d, extra=%t\ngot  %v\nwant %v", tc.nPix, tc.extra, got, want)
+		}
+	}
+}
+
+// testGIF is a simple GIF that we can modify to test different scenarios.
+var testGIF = []byte{
+	'G', 'I', 'F', '8', '9', 'a',
+	1, 0, 1, 0, // w=1, h=1 (6)
+	128, 0, 0, // headerFields, bg, aspect (10)
+	0, 0, 0, 1, 1, 1, // color map and graphics control (13)
+	0x21, 0xf9, 0x04, 0x00, 0x00, 0x00, 0xff, 0x00, // (19)
+	// frame 1 (0,0 - 1,1)
+	0x2c,
+	0x00, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x01, 0x00, // (32)
+	0x00,
+	0x02, 0x02, 0x4c, 0x01, 0x00, // lzw pixels
+	// trailer
+	0x3b,
+}
+
+func try(t *testing.T, b []byte, want string) {
+	_, err := DecodeAll(bytes.NewReader(b))
+	var got string
+	if err != nil {
+		got = err.Error()
+	}
+	if got != want {
+		t.Fatalf("got %v, want %v", got, want)
+	}
+}
+
+func TestBounds(t *testing.T) {
+	// make a local copy of testGIF
+	gif := make([]byte, len(testGIF))
+	copy(gif, testGIF)
+	// Make the bounds too big, just by one.
+	gif[32] = 2
+	want := "gif: frame bounds larger than image bounds"
+	try(t, gif, want)
+
+	// Make the bounds too small; does not trigger bounds
+	// check, but now there's too much data.
+	gif[32] = 0
+	want = "gif: too much image data"
+	try(t, gif, want)
+	gif[32] = 1
+
+	// Make the bounds really big, expect an error.
+	want = "gif: frame bounds larger than image bounds"
+	for i := 0; i < 4; i++ {
+		gif[32+i] = 0xff
+	}
+	try(t, gif, want)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go gcc-4.8.1/libgo/go/image/jpeg/reader.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/jpeg/reader.go	2013-10-01 16:06:44.160554280 +0000
@@ -245,10 +245,38 @@
 		if err != nil {
 			return nil, err
 		}
-		if d.tmp[0] != 0xff {
-			return nil, FormatError("missing 0xff marker start")
+		for d.tmp[0] != 0xff {
+			// Strictly speaking, this is a format error. However, libjpeg is
+			// liberal in what it accepts. As of version 9, next_marker in
+			// jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and
+			// continues to decode the stream. Even before next_marker sees
+			// extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many
+			// bytes as it can, possibly past the end of a scan's data. It
+			// effectively puts back any markers that it overscanned (e.g. an
+			// "\xff\xd9" EOI marker), but it does not put back non-marker data,
+			// and thus it can silently ignore a small number of extraneous
+			// non-marker bytes before next_marker has a chance to see them (and
+			// print a warning).
+			//
+			// We are therefore also liberal in what we accept. Extraneous data
+			// is silently ignored.
+			//
+			// This is similar to, but not exactly the same as, the restart
+			// mechanism within a scan (the RST[0-7] markers).
+			//
+			// Note that extraneous 0xff bytes in e.g. SOS data are escaped as
+			// "\xff\x00", and so are detected a little further down below.
+			d.tmp[0] = d.tmp[1]
+			d.tmp[1], err = d.r.ReadByte()
+			if err != nil {
+				return nil, err
+			}
 		}
 		marker := d.tmp[1]
+		if marker == 0 {
+			// Treat "\xff\x00" as extraneous data.
+			continue
+		}
 		for marker == 0xff {
 			// Section B.1.1.2 says, "Any marker may optionally be preceded by any
 			// number of fill bytes, which are bytes assigned code X'FF'".
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go gcc-4.8.1/libgo/go/image/jpeg/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/jpeg/reader_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -8,8 +8,11 @@
 	"bytes"
 	"fmt"
 	"image"
+	"image/color"
 	"io/ioutil"
+	"math/rand"
 	"os"
+	"strings"
 	"testing"
 )
 
@@ -131,6 +134,66 @@
 	return s.String()
 }
 
+func TestExtraneousData(t *testing.T) {
+	// Encode a 1x1 red image.
+	src := image.NewRGBA(image.Rect(0, 0, 1, 1))
+	src.Set(0, 0, color.RGBA{0xff, 0x00, 0x00, 0xff})
+	buf := new(bytes.Buffer)
+	if err := Encode(buf, src, nil); err != nil {
+		t.Fatalf("encode: %v", err)
+	}
+	enc := buf.String()
+	// Sanity check that the encoded JPEG is long enough, that it ends in a
+	// "\xff\xd9" EOI marker, and that it contains a "\xff\xda" SOS marker
+	// somewhere in the final 64 bytes.
+	if len(enc) < 64 {
+		t.Fatalf("encoded JPEG is too short: %d bytes", len(enc))
+	}
+	if got, want := enc[len(enc)-2:], "\xff\xd9"; got != want {
+		t.Fatalf("encoded JPEG ends with %q, want %q", got, want)
+	}
+	if s := enc[len(enc)-64:]; !strings.Contains(s, "\xff\xda") {
+		t.Fatalf("encoded JPEG does not contain a SOS marker (ff da) near the end: % x", s)
+	}
+	// Test that adding some random junk between the SOS marker and the
+	// EOI marker does not affect the decoding.
+	rnd := rand.New(rand.NewSource(1))
+	for i, nerr := 0, 0; i < 1000 && nerr < 10; i++ {
+		buf.Reset()
+		// Write all but the trailing "\xff\xd9" EOI marker.
+		buf.WriteString(enc[:len(enc)-2])
+		// Write some random extraneous data.
+		for n := rnd.Intn(10); n > 0; n-- {
+			if x := byte(rnd.Intn(256)); x != 0xff {
+				buf.WriteByte(x)
+			} else {
+				// The JPEG format escapes a SOS 0xff data byte as "\xff\x00".
+				buf.WriteString("\xff\x00")
+			}
+		}
+		// Write the "\xff\xd9" EOI marker.
+		buf.WriteString("\xff\xd9")
+
+		// Check that we can still decode the resultant image.
+		got, err := Decode(buf)
+		if err != nil {
+			t.Errorf("could not decode image #%d: %v", i, err)
+			nerr++
+			continue
+		}
+		if got.Bounds() != src.Bounds() {
+			t.Errorf("image #%d, bounds differ: %v and %v", i, got.Bounds(), src.Bounds())
+			nerr++
+			continue
+		}
+		if averageDelta(got, src) > 2<<8 {
+			t.Errorf("image #%d changed too much after a round trip", i)
+			nerr++
+			continue
+		}
+	}
+}
+
 func benchmarkDecode(b *testing.B, filename string) {
 	b.StopTimer()
 	data, err := ioutil.ReadFile(filename)
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go gcc-4.8.1/libgo/go/image/jpeg/scan.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/jpeg/scan.go	2013-10-01 16:06:44.160554280 +0000
@@ -109,9 +109,11 @@
 	myy := (d.height + 8*v0 - 1) / (8 * v0)
 	if d.img1 == nil && d.img3 == nil {
 		d.makeImg(h0, v0, mxx, myy)
-		if d.progressive {
-			for i := 0; i < nComp; i++ {
-				compIndex := scan[i].compIndex
+	}
+	if d.progressive {
+		for i := 0; i < nComp; i++ {
+			compIndex := scan[i].compIndex
+			if d.progCoeffs[compIndex] == nil {
 				d.progCoeffs[compIndex] = make([]block, mxx*myy*d.comp[compIndex].h*d.comp[compIndex].v)
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go gcc-4.8.1/libgo/go/image/jpeg/writer_test.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/jpeg/writer_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -148,29 +148,38 @@
 			t.Error(tc.filename, err)
 			continue
 		}
-		// Compute the average delta in RGB space.
-		b := m0.Bounds()
-		var sum, n int64
-		for y := b.Min.Y; y < b.Max.Y; y++ {
-			for x := b.Min.X; x < b.Max.X; x++ {
-				c0 := m0.At(x, y)
-				c1 := m1.At(x, y)
-				r0, g0, b0, _ := c0.RGBA()
-				r1, g1, b1, _ := c1.RGBA()
-				sum += delta(r0, r1)
-				sum += delta(g0, g1)
-				sum += delta(b0, b1)
-				n += 3
-			}
+		if m0.Bounds() != m1.Bounds() {
+			t.Errorf("%s, bounds differ: %v and %v", tc.filename, m0.Bounds(), m1.Bounds())
+			continue
 		}
 		// Compare the average delta to the tolerance level.
-		if sum/n > tc.tolerance {
+		if averageDelta(m0, m1) > tc.tolerance {
 			t.Errorf("%s, quality=%d: average delta is too high", tc.filename, tc.quality)
 			continue
 		}
 	}
 }
 
+// averageDelta returns the average delta in RGB space. The two images must
+// have the same bounds.
+func averageDelta(m0, m1 image.Image) int64 {
+	b := m0.Bounds()
+	var sum, n int64
+	for y := b.Min.Y; y < b.Max.Y; y++ {
+		for x := b.Min.X; x < b.Max.X; x++ {
+			c0 := m0.At(x, y)
+			c1 := m1.At(x, y)
+			r0, g0, b0, _ := c0.RGBA()
+			r1, g1, b1, _ := c1.RGBA()
+			sum += delta(r0, r1)
+			sum += delta(g0, g1)
+			sum += delta(b0, b1)
+			n += 3
+		}
+	}
+	return sum / n
+}
+
 func BenchmarkEncode(b *testing.B) {
 	b.StopTimer()
 	img := image.NewRGBA(image.Rect(0, 0, 640, 480))
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader.go gcc-4.8.1/libgo/go/image/png/reader.go
--- gcc-4.8.1.orig/libgo/go/image/png/reader.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/png/reader.go	2013-10-01 16:06:44.160554280 +0000
@@ -652,10 +652,11 @@
 			}
 			return image.Config{}, err
 		}
-		if d.stage == dsSeenIHDR && d.cb != cbP8 {
+		paletted := d.cb == cbP8 || d.cb == cbP4 || d.cb == cbP2 || d.cb == cbP1
+		if d.stage == dsSeenIHDR && !paletted {
 			break
 		}
-		if d.stage == dsSeenPLTE && d.cb == cbP8 {
+		if d.stage == dsSeenPLTE && paletted {
 			break
 		}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader_test.go gcc-4.8.1/libgo/go/image/png/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/png/reader_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/png/reader_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -38,6 +38,14 @@
 	"basn6a16",
 }
 
+var filenamesPaletted = []string{
+	"basn3p01",
+	"basn3p02",
+	"basn3p04",
+	"basn3p08",
+	"basn3p08-trns",
+}
+
 var filenamesShort = []string{
 	"basn0g01",
 	"basn0g04-31",
@@ -208,7 +216,7 @@
 		}
 
 		piper, pipew := io.Pipe()
-		pb := bufio.NewReader(piper)
+		pb := bufio.NewScanner(piper)
 		go sng(pipew, fn, img)
 		defer piper.Close()
 
@@ -219,7 +227,7 @@
 			continue
 		}
 		defer sf.Close()
-		sb := bufio.NewReader(sf)
+		sb := bufio.NewScanner(sf)
 		if err != nil {
 			t.Error(fn, err)
 			continue
@@ -227,24 +235,28 @@
 
 		// Compare the two, in SNG format, line by line.
 		for {
-			ps, perr := pb.ReadString('\n')
-			ss, serr := sb.ReadString('\n')
-			if perr == io.EOF && serr == io.EOF {
+			pdone := pb.Scan()
+			sdone := sb.Scan()
+			if pdone && sdone {
 				break
 			}
-			if perr != nil {
-				t.Error(fn, perr)
-				break
-			}
-			if serr != nil {
-				t.Error(fn, serr)
+			if pdone || sdone {
+				t.Errorf("%s: Different sizes", fn)
 				break
 			}
+			ps := pb.Text()
+			ss := sb.Text()
 			if ps != ss {
 				t.Errorf("%s: Mismatch\n%sversus\n%s\n", fn, ps, ss)
 				break
 			}
 		}
+		if pb.Err() != nil {
+			t.Error(fn, pb.Err())
+		}
+		if sb.Err() != nil {
+			t.Error(fn, sb.Err())
+		}
 	}
 }
 
@@ -273,6 +285,31 @@
 		}
 	}
 }
+
+func TestPalettedDecodeConfig(t *testing.T) {
+	for _, fn := range filenamesPaletted {
+		f, err := os.Open("testdata/pngsuite/" + fn + ".png")
+		if err != nil {
+			t.Errorf("%s: open failed: %v", fn, err)
+			continue
+		}
+		defer f.Close()
+		cfg, err := DecodeConfig(f)
+		if err != nil {
+			t.Errorf("%s: %v", fn, err)
+			continue
+		}
+		pal, ok := cfg.ColorModel.(color.Palette)
+		if !ok {
+			t.Errorf("%s: expected paletted color model", fn)
+			continue
+		}
+		if pal == nil {
+			t.Errorf("%s: palette not initialized", fn)
+			continue
+		}
+	}
+}
 
 func benchmarkDecode(b *testing.B, filename string, bytesPerPixel int) {
 	b.StopTimer()
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/writer.go gcc-4.8.1/libgo/go/image/png/writer.go
--- gcc-4.8.1.orig/libgo/go/image/png/writer.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/image/png/writer.go	2013-10-01 16:06:44.160554280 +0000
@@ -436,7 +436,7 @@
 	// also rejected.
 	mw, mh := int64(m.Bounds().Dx()), int64(m.Bounds().Dy())
 	if mw <= 0 || mh <= 0 || mw >= 1<<32 || mh >= 1<<32 {
-		return FormatError("invalid image size: " + strconv.FormatInt(mw, 10) + "x" + strconv.FormatInt(mw, 10))
+		return FormatError("invalid image size: " + strconv.FormatInt(mw, 10) + "x" + strconv.FormatInt(mh, 10))
 	}
 
 	var e encoder
diff -Naur gcc-4.8.1.orig/libgo/go/io/io.go gcc-4.8.1/libgo/go/io/io.go
--- gcc-4.8.1.orig/libgo/go/io/io.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/io/io.go	2013-10-01 16:06:44.160554280 +0000
@@ -34,6 +34,11 @@
 // middle of reading a fixed-size block or data structure.
 var ErrUnexpectedEOF = errors.New("unexpected EOF")
 
+// ErrNoProgress is returned by some clients of an io.Reader when
+// many calls to Read have failed to return any data or error,
+// usually the sign of a broken io.Reader implementation.
+var ErrNoProgress = errors.New("multiple Read calls return no data or error")
+
 // Reader is the interface that wraps the basic Read method.
 //
 // Read reads up to len(p) bytes into p.  It returns the number of bytes
@@ -55,6 +60,10 @@
 // considering the error err.  Doing so correctly handles I/O errors
 // that happen after reading some bytes and also both of the
 // allowed EOF behaviors.
+//
+// Implementations of Read are discouraged from returning a
+// zero byte count with a nil error, and callers should treat
+// that situation as a no-op.
 type Reader interface {
 	Read(p []byte) (n int, err error)
 }
@@ -70,6 +79,9 @@
 }
 
 // Closer is the interface that wraps the basic Close method.
+//
+// The behavior of Close after the first call is undefined.
+// Specific implementations may document their own behavior.
 type Closer interface {
 	Close() error
 }
@@ -262,6 +274,7 @@
 // If an EOF happens after reading fewer than min bytes,
 // ReadAtLeast returns ErrUnexpectedEOF.
 // If min is greater than the length of buf, ReadAtLeast returns ErrShortBuffer.
+// On return, n >= min if and only if err == nil.
 func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) {
 	if len(buf) < min {
 		return 0, ErrShortBuffer
@@ -271,12 +284,10 @@
 		nn, err = r.Read(buf[n:])
 		n += nn
 	}
-	if err == EOF {
-		if n >= min {
-			err = nil
-		} else if n > 0 {
-			err = ErrUnexpectedEOF
-		}
+	if n >= min {
+		err = nil
+	} else if n > 0 && err == EOF {
+		err = ErrUnexpectedEOF
 	}
 	return
 }
@@ -286,56 +297,28 @@
 // The error is EOF only if no bytes were read.
 // If an EOF happens after reading some but not all the bytes,
 // ReadFull returns ErrUnexpectedEOF.
+// On return, n == len(buf) if and only if err == nil.
 func ReadFull(r Reader, buf []byte) (n int, err error) {
 	return ReadAtLeast(r, buf, len(buf))
 }
 
 // CopyN copies n bytes (or until an error) from src to dst.
 // It returns the number of bytes copied and the earliest
-// error encountered while copying.  Because Read can
-// return the full amount requested as well as an error
-// (including EOF), so can CopyN.
+// error encountered while copying.
+// On return, written == n if and only if err == nil.
 //
 // If dst implements the ReaderFrom interface,
 // the copy is implemented using it.
 func CopyN(dst Writer, src Reader, n int64) (written int64, err error) {
-	// If the writer has a ReadFrom method, use it to do the copy.
-	// Avoids a buffer allocation and a copy.
-	if rt, ok := dst.(ReaderFrom); ok {
-		written, err = rt.ReadFrom(LimitReader(src, n))
-		if written < n && err == nil {
-			// rt stopped early; must have been EOF.
-			err = EOF
-		}
-		return
+	written, err = Copy(dst, LimitReader(src, n))
+	if written == n {
+		return n, nil
 	}
-	buf := make([]byte, 32*1024)
-	for written < n {
-		l := len(buf)
-		if d := n - written; d < int64(l) {
-			l = int(d)
-		}
-		nr, er := src.Read(buf[0:l])
-		if nr > 0 {
-			nw, ew := dst.Write(buf[0:nr])
-			if nw > 0 {
-				written += int64(nw)
-			}
-			if ew != nil {
-				err = ew
-				break
-			}
-			if nr != nw {
-				err = ErrShortWrite
-				break
-			}
-		}
-		if er != nil {
-			err = er
-			break
-		}
+	if written < n && err == nil {
+		// src stopped early; must have been EOF.
+		err = EOF
 	}
-	return written, err
+	return
 }
 
 // Copy copies from src to dst until either EOF is reached
diff -Naur gcc-4.8.1.orig/libgo/go/io/io_test.go gcc-4.8.1/libgo/go/io/io_test.go
--- gcc-4.8.1.orig/libgo/go/io/io_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/io/io_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -6,6 +6,8 @@
 
 import (
 	"bytes"
+	"errors"
+	"fmt"
 	. "io"
 	"strings"
 	"testing"
@@ -88,6 +90,12 @@
 	return w.w.Write(p)
 }
 
+type wantedAndErrReader struct{}
+
+func (wantedAndErrReader) Read(p []byte) (int, error) {
+	return len(p), errors.New("wantedAndErrReader error")
+}
+
 func TestCopyNEOF(t *testing.T) {
 	// Test that EOF behavior is the same regardless of whether
 	// argument to CopyN has ReadFrom.
@@ -113,6 +121,16 @@
 	if n != 3 || err != EOF {
 		t.Errorf("CopyN(bytes.Buffer, foo, 4) = %d, %v; want 3, EOF", n, err)
 	}
+
+	n, err = CopyN(b, wantedAndErrReader{}, 5)
+	if n != 5 || err != nil {
+		t.Errorf("CopyN(bytes.Buffer, wantedAndErrReader, 5) = %d, %v; want 5, nil", n, err)
+	}
+
+	n, err = CopyN(&noReadFrom{b}, wantedAndErrReader{}, 5)
+	if n != 5 || err != nil {
+		t.Errorf("CopyN(noReadFrom, wantedAndErrReader, 5) = %d, %v; want 5, nil", n, err)
+	}
 }
 
 func TestReadAtLeast(t *testing.T) {
@@ -120,22 +138,30 @@
 	testReadAtLeast(t, &rb)
 }
 
-// A version of bytes.Buffer that returns n > 0, EOF on Read
+// A version of bytes.Buffer that returns n > 0, err on Read
 // when the input is exhausted.
-type dataAndEOFBuffer struct {
+type dataAndErrorBuffer struct {
+	err error
 	bytes.Buffer
 }
 
-func (r *dataAndEOFBuffer) Read(p []byte) (n int, err error) {
+func (r *dataAndErrorBuffer) Read(p []byte) (n int, err error) {
 	n, err = r.Buffer.Read(p)
 	if n > 0 && r.Buffer.Len() == 0 && err == nil {
-		err = EOF
+		err = r.err
 	}
 	return
 }
 
 func TestReadAtLeastWithDataAndEOF(t *testing.T) {
-	var rb dataAndEOFBuffer
+	var rb dataAndErrorBuffer
+	rb.err = EOF
+	testReadAtLeast(t, &rb)
+}
+
+func TestReadAtLeastWithDataAndError(t *testing.T) {
+	var rb dataAndErrorBuffer
+	rb.err = fmt.Errorf("fake error")
 	testReadAtLeast(t, &rb)
 }
 
@@ -169,8 +195,12 @@
 	}
 	rb.Write([]byte("4"))
 	n, err = ReadAtLeast(rb, buf, 2)
-	if err != ErrUnexpectedEOF {
-		t.Errorf("expected ErrUnexpectedEOF, got %v", err)
+	want := ErrUnexpectedEOF
+	if rb, ok := rb.(*dataAndErrorBuffer); ok && rb.err != EOF {
+		want = rb.err
+	}
+	if err != want {
+		t.Errorf("expected %v, got %v", want, err)
 	}
 	if n != 1 {
 		t.Errorf("expected to have read 1 bytes, got %v", n)
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go gcc-4.8.1/libgo/go/io/ioutil/ioutil.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil.go	2013-10-01 16:06:44.160554280 +0000
@@ -144,7 +144,6 @@
 			return
 		}
 	}
-	panic("unreachable")
 }
 
 // Discard is an io.Writer on which all Write calls succeed
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go	2012-01-23 23:55:31.000000000 +0000
+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package ioutil_test
+package ioutil
 
 import (
-	. "io/ioutil"
 	"os"
 	"testing"
 )
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go	2011-03-24 23:46:17.000000000 +0000
+++ gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go	2013-10-01 16:06:44.160554280 +0000
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package ioutil_test
+package ioutil
 
 import (
-	. "io/ioutil"
 	"os"
 	"path/filepath"
 	"regexp"
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go gcc-4.8.1/libgo/go/log/syslog/syslog.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/log/syslog/syslog.go	2013-10-01 16:06:44.164554280 +0000
@@ -6,7 +6,11 @@
 
 // Package syslog provides a simple interface to the system log
 // service. It can send messages to the syslog daemon using UNIX
-// domain sockets, UDP, or TCP connections.
+// domain sockets, UDP or TCP.
+//
+// Only one call to Dial is necessary. On write failures,
+// the syslog client will attempt to reconnect to the server
+// and write again.
 package syslog
 
 import (
@@ -15,6 +19,8 @@
 	"log"
 	"net"
 	"os"
+	"strings"
+	"sync"
 	"time"
 )
 
@@ -78,11 +84,15 @@
 	priority Priority
 	tag      string
 	hostname string
-	conn     serverConn
+	network  string
+	raddr    string
+
+	mu   sync.Mutex // guards conn
+	conn serverConn
 }
 
 type serverConn interface {
-	writeString(p Priority, hostname, tag, s string) (int, error)
+	writeString(p Priority, hostname, tag, s, nl string) error
 	close() error
 }
 
@@ -101,7 +111,7 @@
 // address raddr on the network net.  Each write to the returned
 // writer sends a log message with the given facility, severity and
 // tag.
-func Dial(network, raddr string, priority Priority, tag string) (w *Writer, err error) {
+func Dial(network, raddr string, priority Priority, tag string) (*Writer, error) {
 	if priority < 0 || priority > LOG_LOCAL7|LOG_DEBUG {
 		return nil, errors.New("log/syslog: invalid priority")
 	}
@@ -109,113 +119,165 @@
 	if tag == "" {
 		tag = os.Args[0]
 	}
-
 	hostname, _ := os.Hostname()
 
-	var conn serverConn
-	if network == "" {
-		conn, err = unixSyslog()
-		if hostname == "" {
-			hostname = "localhost"
-		}
-	} else {
-		var c net.Conn
-		c, err = net.Dial(network, raddr)
-		conn = netConn{c}
-		if hostname == "" {
-			hostname = c.LocalAddr().String()
-		}
+	w := &Writer{
+		priority: priority,
+		tag:      tag,
+		hostname: hostname,
+		network:  network,
+		raddr:    raddr,
 	}
+
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	err := w.connect()
 	if err != nil {
 		return nil, err
 	}
+	return w, err
+}
+
+// connect makes a connection to the syslog server.
+// It must be called with w.mu held.
+func (w *Writer) connect() (err error) {
+	if w.conn != nil {
+		// ignore err from close, it makes sense to continue anyway
+		w.conn.close()
+		w.conn = nil
+	}
 
-	return &Writer{priority: priority, tag: tag, hostname: hostname, conn: conn}, nil
+	if w.network == "" {
+		w.conn, err = unixSyslog()
+		if w.hostname == "" {
+			w.hostname = "localhost"
+		}
+	} else {
+		var c net.Conn
+		c, err = net.Dial(w.network, w.raddr)
+		if err == nil {
+			w.conn = netConn{c}
+			if w.hostname == "" {
+				w.hostname = c.LocalAddr().String()
+			}
+		}
+	}
+	return
 }
 
 // Write sends a log message to the syslog daemon.
 func (w *Writer) Write(b []byte) (int, error) {
-	return w.writeString(w.priority, string(b))
+	return w.writeAndRetry(w.priority, string(b))
 }
 
-func (w *Writer) Close() error { return w.conn.close() }
+// Close closes a connection to the syslog daemon.
+func (w *Writer) Close() error {
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	if w.conn != nil {
+		err := w.conn.close()
+		w.conn = nil
+		return err
+	}
+	return nil
+}
 
 // Emerg logs a message with severity LOG_EMERG, ignoring the severity
 // passed to New.
 func (w *Writer) Emerg(m string) (err error) {
-	_, err = w.writeString(LOG_EMERG, m)
+	_, err = w.writeAndRetry(LOG_EMERG, m)
 	return err
 }
 
 // Alert logs a message with severity LOG_ALERT, ignoring the severity
 // passed to New.
 func (w *Writer) Alert(m string) (err error) {
-	_, err = w.writeString(LOG_ALERT, m)
+	_, err = w.writeAndRetry(LOG_ALERT, m)
 	return err
 }
 
 // Crit logs a message with severity LOG_CRIT, ignoring the severity
 // passed to New.
 func (w *Writer) Crit(m string) (err error) {
-	_, err = w.writeString(LOG_CRIT, m)
+	_, err = w.writeAndRetry(LOG_CRIT, m)
 	return err
 }
 
 // Err logs a message with severity LOG_ERR, ignoring the severity
 // passed to New.
 func (w *Writer) Err(m string) (err error) {
-	_, err = w.writeString(LOG_ERR, m)
+	_, err = w.writeAndRetry(LOG_ERR, m)
 	return err
 }
 
 // Wanring logs a message with severity LOG_WARNING, ignoring the
 // severity passed to New.
 func (w *Writer) Warning(m string) (err error) {
-	_, err = w.writeString(LOG_WARNING, m)
+	_, err = w.writeAndRetry(LOG_WARNING, m)
 	return err
 }
 
 // Notice logs a message with severity LOG_NOTICE, ignoring the
 // severity passed to New.
 func (w *Writer) Notice(m string) (err error) {
-	_, err = w.writeString(LOG_NOTICE, m)
+	_, err = w.writeAndRetry(LOG_NOTICE, m)
 	return err
 }
 
 // Info logs a message with severity LOG_INFO, ignoring the severity
 // passed to New.
 func (w *Writer) Info(m string) (err error) {
-	_, err = w.writeString(LOG_INFO, m)
+	_, err = w.writeAndRetry(LOG_INFO, m)
 	return err
 }
 
 // Debug logs a message with severity LOG_DEBUG, ignoring the severity
 // passed to New.
 func (w *Writer) Debug(m string) (err error) {
-	_, err = w.writeString(LOG_DEBUG, m)
+	_, err = w.writeAndRetry(LOG_DEBUG, m)
 	return err
 }
 
-func (w *Writer) writeString(p Priority, s string) (int, error) {
-	return w.conn.writeString((w.priority&facilityMask)|(p&severityMask),
-		w.hostname, w.tag, s)
+func (w *Writer) writeAndRetry(p Priority, s string) (int, error) {
+	pr := (w.priority & facilityMask) | (p & severityMask)
+
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	if w.conn != nil {
+		if n, err := w.write(pr, s); err == nil {
+			return n, err
+		}
+	}
+	if err := w.connect(); err != nil {
+		return 0, err
+	}
+	return w.write(pr, s)
 }
 
-// writeString: generates and writes a syslog formatted string. The
+// write generates and writes a syslog formatted string. The
 // format is as follows: <PRI>TIMESTAMP HOSTNAME TAG[PID]: MSG
-func (n netConn) writeString(p Priority, hostname, tag, msg string) (int, error) {
+func (w *Writer) write(p Priority, msg string) (int, error) {
+	// ensure it ends in a \n
 	nl := ""
-	if len(msg) == 0 || msg[len(msg)-1] != '\n' {
+	if !strings.HasSuffix(msg, "\n") {
 		nl = "\n"
 	}
-	timestamp := time.Now().Format(time.RFC3339)
-	if _, err := fmt.Fprintf(n.conn, "<%d>%s %s %s[%d]: %s%s", p, timestamp, hostname,
-		tag, os.Getpid(), msg, nl); err != nil {
-		return 0, err
-	}
+
+	w.conn.writeString(p, w.hostname, w.tag, msg, nl)
 	return len(msg), nil
 }
 
+func (n netConn) writeString(p Priority, hostname, tag, msg, nl string) error {
+	timestamp := time.Now().Format(time.RFC3339)
+	_, err := fmt.Fprintf(n.conn, "<%d>%s %s %s[%d]: %s%s",
+		p, timestamp, hostname,
+		tag, os.Getpid(), msg, nl)
+	return err
+}
+
 func (n netConn) close() error {
 	return n.conn.Close()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go	2012-12-17 21:07:27.000000000 +0000
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go	2013-10-01 16:06:44.164554280 +0000
@@ -23,17 +23,17 @@
 
 func syslog_c(int, *byte)
 
-func (libcConn) writeString(p Priority, hostname, tag, msg string) (int, error) {
+func (libcConn) writeString(p Priority, hostname, tag, msg, nl string) error {
 	timestamp := time.Now().Format(time.RFC3339)
-	log := fmt.Sprintf("%s %s %s[%d]: %s", timestamp, hostname, tag, os.Getpid(), msg)
+	log := fmt.Sprintf("%s %s %s[%d]: %s%s", timestamp, hostname, tag, os.Getpid(), msg, nl)
 	buf, err := syscall.BytePtrFromString(log)
 	if err != nil {
-		return 0, err
+		return err
 	}
 	syscall.Entersyscall()
 	syslog_c(int(p), buf)
 	syscall.Exitsyscall()
-	return len(msg), nil
+	return nil
 }
 
 func (libcConn) close() error {
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go gcc-4.8.1/libgo/go/log/syslog/syslog_test.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_test.go	2013-10-01 16:06:44.164554280 +0000
@@ -7,38 +7,169 @@
 package syslog
 
 import (
+	"bufio"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"log"
 	"net"
 	"os"
+	"sync"
 	"testing"
 	"time"
 )
 
-var serverAddr string
-
-func runSyslog(c net.PacketConn, done chan<- string) {
+func runPktSyslog(c net.PacketConn, done chan<- string) {
 	var buf [4096]byte
 	var rcvd string
+	ct := 0
 	for {
+		var n int
+		var err error
+
 		c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-		n, _, err := c.ReadFrom(buf[:])
+		n, _, err = c.ReadFrom(buf[:])
 		rcvd += string(buf[:n])
 		if err != nil {
+			if oe, ok := err.(*net.OpError); ok {
+				if ct < 3 && oe.Temporary() {
+					ct++
+					continue
+				}
+			}
 			break
 		}
 	}
+	c.Close()
 	done <- rcvd
 }
 
-func startServer(done chan<- string) {
-	c, e := net.ListenPacket("udp", "127.0.0.1:0")
-	if e != nil {
-		log.Fatalf("net.ListenPacket failed udp :0 %v", e)
+var crashy = false
+
+func runStreamSyslog(l net.Listener, done chan<- string, wg *sync.WaitGroup) {
+	for {
+		var c net.Conn
+		var err error
+		if c, err = l.Accept(); err != nil {
+			return
+		}
+		wg.Add(1)
+		go func(c net.Conn) {
+			defer wg.Done()
+			c.SetReadDeadline(time.Now().Add(5 * time.Second))
+			b := bufio.NewReader(c)
+			for ct := 1; !crashy || ct&7 != 0; ct++ {
+				s, err := b.ReadString('\n')
+				if err != nil {
+					break
+				}
+				done <- s
+			}
+			c.Close()
+		}(c)
+	}
+}
+
+func startServer(n, la string, done chan<- string) (addr string, sock io.Closer, wg *sync.WaitGroup) {
+	if n == "udp" || n == "tcp" {
+		la = "127.0.0.1:0"
+	} else {
+		// unix and unixgram: choose an address if none given
+		if la == "" {
+			// use ioutil.TempFile to get a name that is unique
+			f, err := ioutil.TempFile("", "syslogtest")
+			if err != nil {
+				log.Fatal("TempFile: ", err)
+			}
+			f.Close()
+			la = f.Name()
+		}
+		os.Remove(la)
+	}
+
+	wg = new(sync.WaitGroup)
+	if n == "udp" || n == "unixgram" {
+		l, e := net.ListenPacket(n, la)
+		if e != nil {
+			log.Fatalf("startServer failed: %v", e)
+		}
+		addr = l.LocalAddr().String()
+		sock = l
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			runPktSyslog(l, done)
+		}()
+	} else {
+		l, e := net.Listen(n, la)
+		if e != nil {
+			log.Fatalf("startServer failed: %v", e)
+		}
+		addr = l.Addr().String()
+		sock = l
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			runStreamSyslog(l, done, wg)
+		}()
+	}
+	return
+}
+
+func TestWithSimulated(t *testing.T) {
+	msg := "Test 123"
+	transport := []string{"unix", "unixgram", "udp", "tcp"}
+
+	for _, tr := range transport {
+		done := make(chan string)
+		addr, _, _ := startServer(tr, "", done)
+		if tr == "unix" || tr == "unixgram" {
+			defer os.Remove(addr)
+		}
+		s, err := Dial(tr, addr, LOG_INFO|LOG_USER, "syslog_test")
+		if err != nil {
+			t.Fatalf("Dial() failed: %v", err)
+		}
+		err = s.Info(msg)
+		if err != nil {
+			t.Fatalf("log failed: %v", err)
+		}
+		check(t, msg, <-done)
+		s.Close()
+	}
+}
+
+func TestFlap(t *testing.T) {
+	net := "unix"
+	done := make(chan string)
+	addr, sock, _ := startServer(net, "", done)
+	defer os.Remove(addr)
+	defer sock.Close()
+
+	s, err := Dial(net, addr, LOG_INFO|LOG_USER, "syslog_test")
+	if err != nil {
+		t.Fatalf("Dial() failed: %v", err)
+	}
+	msg := "Moo 2"
+	err = s.Info(msg)
+	if err != nil {
+		t.Fatalf("log failed: %v", err)
+	}
+	check(t, msg, <-done)
+
+	// restart the server
+	_, sock2, _ := startServer(net, addr, done)
+	defer sock2.Close()
+
+	// and try retransmitting
+	msg = "Moo 3"
+	err = s.Info(msg)
+	if err != nil {
+		t.Fatalf("log failed: %v", err)
 	}
-	serverAddr = c.LocalAddr().String()
-	go runSyslog(c, done)
+	check(t, msg, <-done)
+
+	s.Close()
 }
 
 func TestNew(t *testing.T) {
@@ -49,7 +180,8 @@
 		// Depends on syslog daemon running, and sometimes it's not.
 		t.Skip("skipping syslog test during -short")
 	}
-	s, err := New(LOG_INFO|LOG_USER, "")
+
+	s, err := New(LOG_INFO|LOG_USER, "the_tag")
 	if err != nil {
 		t.Fatalf("New() failed: %s", err)
 	}
@@ -86,24 +218,15 @@
 	l.Close()
 }
 
-func TestUDPDial(t *testing.T) {
-	done := make(chan string)
-	startServer(done)
-	l, err := Dial("udp", serverAddr, LOG_USER|LOG_INFO, "syslog_test")
-	if err != nil {
-		t.Fatalf("syslog.Dial() failed: %s", err)
-	}
-	msg := "udp test"
-	l.Info(msg)
-	expected := fmt.Sprintf("<%d>", LOG_USER+LOG_INFO) + "%s %s syslog_test[%d]: udp test\n"
-	rcvd := <-done
-	var parsedHostname, timestamp string
-	var pid int
+func check(t *testing.T, in, out string) {
+	tmpl := fmt.Sprintf("<%d>%%s %%s syslog_test[%%d]: %s\n", LOG_USER+LOG_INFO, in)
 	if hostname, err := os.Hostname(); err != nil {
-		t.Fatalf("Error retrieving hostname")
+		t.Error("Error retrieving hostname")
 	} else {
-		if n, err := fmt.Sscanf(rcvd, expected, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
-			t.Fatalf("'%q', didn't match '%q' (%d, %s)", rcvd, expected, n, err)
+		var parsedHostname, timestamp string
+		var pid int
+		if n, err := fmt.Sscanf(out, tmpl, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
+			t.Errorf("Got %q, does not match template %q (%d %s)", out, tmpl, n, err)
 		}
 	}
 }
@@ -126,24 +249,100 @@
 	} else {
 		for _, test := range tests {
 			done := make(chan string)
-			startServer(done)
-			l, err := Dial("udp", serverAddr, test.pri, test.pre)
+			addr, sock, _ := startServer("udp", "", done)
+			defer sock.Close()
+			l, err := Dial("udp", addr, test.pri, test.pre)
 			if err != nil {
-				t.Fatalf("syslog.Dial() failed: %s", err)
+				t.Fatalf("syslog.Dial() failed: %v", err)
 			}
 			_, err = io.WriteString(l, test.msg)
 			if err != nil {
-				t.Fatalf("WriteString() failed: %s", err)
+				t.Fatalf("WriteString() failed: %v", err)
 			}
 			rcvd := <-done
 			test.exp = fmt.Sprintf("<%d>", test.pri) + test.exp
 			var parsedHostname, timestamp string
 			var pid int
-			if n, err := fmt.Sscanf(rcvd, test.exp, &timestamp, &parsedHostname,
-				&pid); n != 3 || err != nil || hostname != parsedHostname {
-				t.Fatalf("'%q', didn't match '%q' (%d %s)", rcvd, test.exp,
-					n, err)
+			if n, err := fmt.Sscanf(rcvd, test.exp, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
+				t.Errorf("s.Info() = '%q', didn't match '%q' (%d %s)", rcvd, test.exp, n, err)
+			}
+		}
+	}
+}
+
+func TestConcurrentWrite(t *testing.T) {
+	addr, sock, _ := startServer("udp", "", make(chan string))
+	defer sock.Close()
+	w, err := Dial("udp", addr, LOG_USER|LOG_ERR, "how's it going?")
+	if err != nil {
+		t.Fatalf("syslog.Dial() failed: %v", err)
+	}
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			err := w.Info("test")
+			if err != nil {
+				t.Errorf("Info() failed: %v", err)
+				return
+			}
+			wg.Done()
+		}()
+	}
+	wg.Wait()
+}
+
+func TestConcurrentReconnect(t *testing.T) {
+	crashy = true
+	defer func() { crashy = false }()
+
+	net := "unix"
+	done := make(chan string)
+	addr, sock, srvWG := startServer(net, "", done)
+	defer os.Remove(addr)
+
+	// count all the messages arriving
+	count := make(chan int)
+	go func() {
+		ct := 0
+		for _ = range done {
+			ct++
+			// we are looking for 500 out of 1000 events
+			// here because lots of log messages are lost
+			// in buffers (kernel and/or bufio)
+			if ct > 500 {
+				break
 			}
 		}
+		count <- ct
+	}()
+
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			w, err := Dial(net, addr, LOG_USER|LOG_ERR, "tag")
+			if err != nil {
+				t.Fatalf("syslog.Dial() failed: %v", err)
+			}
+			for i := 0; i < 100; i++ {
+				err := w.Info("test")
+				if err != nil {
+					t.Errorf("Info() failed: %v", err)
+					return
+				}
+			}
+			wg.Done()
+		}()
+	}
+	wg.Wait()
+	sock.Close()
+	srvWG.Wait()
+	close(done)
+
+	select {
+	case <-count:
+	case <-time.After(100 * time.Millisecond):
+		t.Error("timeout in concurrent reconnect")
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go	2013-10-01 16:06:44.164554280 +0000
@@ -17,11 +17,9 @@
 func unixSyslog() (conn serverConn, err error) {
 	logTypes := []string{"unixgram", "unix"}
 	logPaths := []string{"/dev/log", "/var/run/syslog"}
-	var raddr string
 	for _, network := range logTypes {
 		for _, path := range logPaths {
-			raddr = path
-			conn, err := net.Dial(network, raddr)
+			conn, err := net.Dial(network, path)
 			if err != nil {
 				continue
 			} else {
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/int.go gcc-4.8.1/libgo/go/math/big/int.go
--- gcc-4.8.1.orig/libgo/go/math/big/int.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/big/int.go	2013-10-01 16:06:44.164554280 +0000
@@ -53,7 +53,7 @@
 
 // SetUint64 sets z to x and returns z.
 func (z *Int) SetUint64(x uint64) *Int {
-	z.abs = z.abs.setUint64(uint64(x))
+	z.abs = z.abs.setUint64(x)
 	z.neg = false
 	return z
 }
@@ -513,13 +513,7 @@
 // Int64 returns the int64 representation of x.
 // If x cannot be represented in an int64, the result is undefined.
 func (x *Int) Int64() int64 {
-	if len(x.abs) == 0 {
-		return 0
-	}
-	v := int64(x.abs[0])
-	if _W == 32 && len(x.abs) > 1 {
-		v |= int64(x.abs[1]) << 32
-	}
+	v := int64(x.Uint64())
 	if x.neg {
 		v = -v
 	}
@@ -527,7 +521,7 @@
 }
 
 // Uint64 returns the uint64 representation of x.
-// If x cannot be represented in an uint64, the result is undefined.
+// If x cannot be represented in a uint64, the result is undefined.
 func (x *Int) Uint64() uint64 {
 	if len(x.abs) == 0 {
 		return 0
@@ -795,8 +789,8 @@
 }
 
 // SetBit sets z to x, with x's i'th bit set to b (0 or 1).
-// That is, if bit is 1 SetBit sets z = x | (1 << i);
-// if bit is 0 it sets z = x &^ (1 << i). If bit is not 0 or 1,
+// That is, if b is 1 SetBit sets z = x | (1 << i);
+// if b is 0 SetBit sets z = x &^ (1 << i). If b is not 0 or 1,
 // SetBit will panic.
 func (z *Int) SetBit(x *Int, i int, b uint) *Int {
 	if i < 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/nat.go gcc-4.8.1/libgo/go/math/big/nat.go
--- gcc-4.8.1.orig/libgo/go/math/big/nat.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/big/nat.go	2013-10-01 16:06:44.164554280 +0000
@@ -1021,8 +1021,6 @@
 	default:
 		panic("unknown word size")
 	}
-
-	return 0
 }
 
 // trailingZeroBits returns the number of consecutive least significant zero
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat.go gcc-4.8.1/libgo/go/math/big/rat.go
--- gcc-4.8.1.orig/libgo/go/math/big/rat.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/big/rat.go	2013-10-01 16:06:44.164554280 +0000
@@ -163,16 +163,16 @@
 	return
 }
 
-// Float64 returns the nearest float64 value to z.
-// If z is exactly representable as a float64, Float64 returns exact=true.
-// If z is negative, so too is f, even if f==0.
-func (z *Rat) Float64() (f float64, exact bool) {
-	b := z.b.abs
+// Float64 returns the nearest float64 value for x and a bool indicating
+// whether f represents x exactly. The sign of f always matches the sign
+// of x, even if f == 0.
+func (x *Rat) Float64() (f float64, exact bool) {
+	b := x.b.abs
 	if len(b) == 0 {
 		b = b.set(natOne) // materialize denominator
 	}
-	f, exact = quotToFloat(z.a.abs, b)
-	if z.a.neg {
+	f, exact = quotToFloat(x.a.abs, b)
+	if x.a.neg {
 		f = -f
 	}
 	return
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat_test.go gcc-4.8.1/libgo/go/math/big/rat_test.go
--- gcc-4.8.1.orig/libgo/go/math/big/rat_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/big/rat_test.go	2013-10-01 16:06:44.164554280 +0000
@@ -500,12 +500,10 @@
 	}
 }
 
-// Test inputs to Rat.SetString.  The optional prefix "slow:" skips
-// checks found to be slow for certain large rationals.
+// Test inputs to Rat.SetString.  The prefix "long:" causes the test
+// to be skipped in --test.short mode.  (The threshold is about 500us.)
 var float64inputs = []string{
-	//
 	// Constants plundered from strconv/testfp.txt.
-	//
 
 	// Table 1: Stress Inputs for Conversion to 53-bit Binary, < 1/2 ULP
 	"5e+125",
@@ -583,9 +581,7 @@
 	"75224575729e-45",
 	"459926601011e+15",
 
-	//
 	// Constants plundered from strconv/atof_test.go.
-	//
 
 	"0",
 	"1",
@@ -630,8 +626,8 @@
 	"-1e310",
 	"1e400",
 	"-1e400",
-	"1e400000",
-	"-1e400000",
+	"long:1e400000",
+	"long:-1e400000",
 
 	// denormalized
 	"1e-305",
@@ -649,10 +645,10 @@
 	"2e-324",
 	// way too small
 	"1e-350",
-	"slow:1e-400000",
+	"long:1e-400000",
 	// way too small, negative
 	"-1e-350",
-	"slow:-1e-400000",
+	"long:-1e-400000",
 
 	// try to overflow exponent
 	// [Disabled: too slow and memory-hungry with rationals.]
@@ -672,7 +668,7 @@
 
 	// A different kind of very large number.
 	"22.222222222222222",
-	"2." + strings.Repeat("2", 4000) + "e+1",
+	"long:2." + strings.Repeat("2", 4000) + "e+1",
 
 	// Exactly halfway between 1 and math.Nextafter(1, 2).
 	// Round to even (down).
@@ -682,7 +678,7 @@
 	// Slightly higher; round up.
 	"1.00000000000000011102230246251565404236316680908203126",
 	// Slightly higher, but you have to read all the way to the end.
-	"slow:1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1",
+	"long:1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1",
 
 	// Smallest denormal, 2^(-1022-52)
 	"4.940656458412465441765687928682213723651e-324",
@@ -705,9 +701,11 @@
 
 func TestFloat64SpecialCases(t *testing.T) {
 	for _, input := range float64inputs {
-		slow := strings.HasPrefix(input, "slow:")
-		if slow {
-			input = input[len("slow:"):]
+		if strings.HasPrefix(input, "long:") {
+			if testing.Short() {
+				continue
+			}
+			input = input[len("long:"):]
 		}
 
 		r, ok := new(Rat).SetString(input)
@@ -732,11 +730,11 @@
 			case f == 0 && r.Num().BitLen() == 0:
 				// Ok: Rat(0) is equivalent to both +/- float64(0).
 			default:
-				t.Errorf("strconv.ParseFloat(%q) = %g (%b), want %g (%b); delta=%g", input, e, e, f, f, f-e)
+				t.Errorf("strconv.ParseFloat(%q) = %g (%b), want %g (%b); delta = %g", input, e, e, f, f, f-e)
 			}
 		}
 
-		if !isFinite(f) || slow {
+		if !isFinite(f) {
 			continue
 		}
 
@@ -751,7 +749,7 @@
 
 		// 4. Check exactness using slow algorithm.
 		if wasExact := new(Rat).SetFloat64(f).Cmp(r) == 0; wasExact != exact {
-			t.Errorf("Rat.SetString(%q).Float64().exact = %b, want %b", input, exact, wasExact)
+			t.Errorf("Rat.SetString(%q).Float64().exact = %t, want %t", input, exact, wasExact)
 		}
 	}
 }
@@ -769,8 +767,11 @@
 		9,
 		11,
 	}
-	const winc, einc = 5, 100 // quick test (<1s)
-	//const winc, einc = 1, 1 // soak test (~75s)
+	var winc, einc = uint64(1), int(1) // soak test (~75s on x86-64)
+	if testing.Short() {
+		winc, einc = 10, 500 // quick test (~12ms on x86-64)
+	}
+
 	for _, sign := range "+-" {
 		for _, a := range add {
 			for wid := uint64(0); wid < 60; wid += winc {
@@ -790,7 +791,7 @@
 
 					if !checkIsBestApprox(t, f, r) {
 						// Append context information.
-						t.Errorf("(input was mantissa %#x, exp %d; f=%g (%b); f~%g; r=%v)",
+						t.Errorf("(input was mantissa %#x, exp %d; f = %g (%b); f ~ %g; r = %v)",
 							b, exp, f, f, math.Ldexp(float64(b), exp), r)
 					}
 
@@ -825,7 +826,7 @@
 	}
 	f2, exact := r.Float64()
 	if f != f2 || !exact {
-		t.Errorf("Rat.SetFloat64(%g).Float64() = %g (%b), %v, want %g (%b), %v; delta=%b",
+		t.Errorf("Rat.SetFloat64(%g).Float64() = %g (%b), %v, want %g (%b), %v; delta = %b",
 			f, f2, f2, exact, f, f, true, f2-f)
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/math/hypot.go gcc-4.8.1/libgo/go/math/hypot.go
--- gcc-4.8.1.orig/libgo/go/math/hypot.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/hypot.go	2013-10-01 16:06:44.164554280 +0000
@@ -12,8 +12,10 @@
 // unnecessary overflow and underflow.
 //
 // Special cases are:
-//	Hypot(p, q) = +Inf if p or q is infinite
-//	Hypot(p, q) = NaN if p or q is NaN
+//	Hypot(Â±Inf, q) = +Inf
+//	Hypot(p, Â±Inf) = +Inf
+//	Hypot(NaN, q) = NaN
+//	Hypot(p, NaN) = NaN
 func Hypot(p, q float64) float64 {
 	return hypot(p, q)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/exp.go gcc-4.8.1/libgo/go/math/rand/exp.go
--- gcc-4.8.1.orig/libgo/go/math/rand/exp.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/rand/exp.go	2013-10-01 16:06:44.164554280 +0000
@@ -43,7 +43,6 @@
 			return x
 		}
 	}
-	panic("unreachable")
 }
 
 var ke = [256]uint32{
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/normal.go gcc-4.8.1/libgo/go/math/rand/normal.go
--- gcc-4.8.1.orig/libgo/go/math/rand/normal.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/rand/normal.go	2013-10-01 16:06:44.164554280 +0000
@@ -63,7 +63,6 @@
 			return x
 		}
 	}
-	panic("unreachable")
 }
 
 var kn = [128]uint32{
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/zipf.go gcc-4.8.1/libgo/go/math/rand/zipf.go
--- gcc-4.8.1.orig/libgo/go/math/rand/zipf.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/rand/zipf.go	2013-10-01 16:06:44.164554280 +0000
@@ -34,7 +34,6 @@
 
 // NewZipf returns a Zipf generating variates p(k) on [0, imax]
 // proportional to (v+k)**(-s) where s>1 and k>=0, and v>=1.
-//
 func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf {
 	z := new(Zipf)
 	if s <= 1.0 || v < 1 {
@@ -52,9 +51,12 @@
 	return z
 }
 
-// Uint64 returns a value drawn from the Zipf distributed described
+// Uint64 returns a value drawn from the Zipf distribution described
 // by the Zipf object.
 func (z *Zipf) Uint64() uint64 {
+	if z == nil {
+		panic("rand: nil Zipf")
+	}
 	k := 0.0
 
 	for {
diff -Naur gcc-4.8.1.orig/libgo/go/math/sqrt.go gcc-4.8.1/libgo/go/math/sqrt.go
--- gcc-4.8.1.orig/libgo/go/math/sqrt.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/sqrt.go	2013-10-01 16:06:44.164554280 +0000
@@ -4,14 +4,6 @@
 
 package math
 
-// Sqrt returns the square root of x.
-//
-// Special cases are:
-//	Sqrt(+Inf) = +Inf
-//	Sqrt(Â±0) = Â±0
-//	Sqrt(x < 0) = NaN
-//	Sqrt(NaN) = NaN
-
 //extern sqrt
 func libc_sqrt(float64) float64
 
diff -Naur gcc-4.8.1.orig/libgo/go/math/tanh.go gcc-4.8.1/libgo/go/math/tanh.go
--- gcc-4.8.1.orig/libgo/go/math/tanh.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/math/tanh.go	2013-10-01 16:06:44.164554280 +0000
@@ -65,7 +65,7 @@
 	4.84406305325125486048E3,
 }
 
-// Tanh computes the hyperbolic tangent of x.
+// Tanh returns the hyperbolic tangent of x.
 //
 // Special cases are:
 //	Tanh(Â±0) = Â±0
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go gcc-4.8.1/libgo/go/mime/multipart/multipart.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/mime/multipart/multipart.go	2013-10-01 16:06:44.164554280 +0000
@@ -28,7 +28,12 @@
 type Part struct {
 	// The headers of the body, if any, with the keys canonicalized
 	// in the same fashion that the Go http.Request headers are.
-	// i.e. "foo-bar" changes case to "Foo-Bar"
+	// For example, "foo-bar" changes case to "Foo-Bar"
+	//
+	// As a special case, if the "Content-Transfer-Encoding" header
+	// has a value of "quoted-printable", that header is instead
+	// hidden from this map and the body is transparently decoded
+	// during Read calls.
 	Header textproto.MIMEHeader
 
 	buffer    *bytes.Buffer
@@ -265,11 +270,10 @@
 
 		return nil, fmt.Errorf("multipart: unexpected line in Next(): %q", line)
 	}
-	panic("unreachable")
 }
 
 // isFinalBoundary returns whether line is the final boundary line
-// indiciating that all parts are over.
+// indicating that all parts are over.
 // It matches `^--boundary--[ \t]*(\r\n)?$`
 func (mr *Reader) isFinalBoundary(line []byte) bool {
 	if !bytes.HasPrefix(line, mr.dashBoundaryDash) {
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go	2013-10-01 16:06:44.164554280 +0000
@@ -3,6 +3,10 @@
 // license that can be found in the LICENSE file.
 
 // The file define a quoted-printable decoder, as specified in RFC 2045.
+// Deviations:
+// 1. in addition to "=\r\n", "=\n" is also treated as soft line break.
+// 2. it will pass through a '\r' or '\n' not preceded by '=', consistent
+//    with other broken QP encoders & decoders.
 
 package multipart
 
@@ -57,6 +61,12 @@
 	return false
 }
 
+var (
+	crlf       = []byte("\r\n")
+	lf         = []byte("\n")
+	softSuffix = []byte("=")
+)
+
 func (q *qpReader) Read(p []byte) (n int, err error) {
 	for len(p) > 0 {
 		if len(q.line) == 0 {
@@ -64,15 +74,29 @@
 				return n, q.rerr
 			}
 			q.line, q.rerr = q.br.ReadSlice('\n')
-			q.line = bytes.TrimRightFunc(q.line, isQPDiscardWhitespace)
-			continue
-		}
-		if len(q.line) == 1 && q.line[0] == '=' {
-			// Soft newline; skipped.
-			q.line = nil
+
+			// Does the line end in CRLF instead of just LF?
+			hasLF := bytes.HasSuffix(q.line, lf)
+			hasCR := bytes.HasSuffix(q.line, crlf)
+			wholeLine := q.line
+			q.line = bytes.TrimRightFunc(wholeLine, isQPDiscardWhitespace)
+			if bytes.HasSuffix(q.line, softSuffix) {
+				rightStripped := wholeLine[len(q.line):]
+				q.line = q.line[:len(q.line)-1]
+				if !bytes.HasPrefix(rightStripped, lf) && !bytes.HasPrefix(rightStripped, crlf) {
+					q.rerr = fmt.Errorf("multipart: invalid bytes after =: %q", rightStripped)
+				}
+			} else if hasLF {
+				if hasCR {
+					q.line = append(q.line, '\r', '\n')
+				} else {
+					q.line = append(q.line, '\n')
+				}
+			}
 			continue
 		}
 		b := q.line[0]
+
 		switch {
 		case b == '=':
 			b, err = q.readHexByte(q.line[1:])
@@ -80,7 +104,9 @@
 				return n, err
 			}
 			q.line = q.line[2:] // 2 of the 3; other 1 is done below
-		case b != '\t' && (b < ' ' || b > '~'):
+		case b == '\t' || b == '\r' || b == '\n':
+			break
+		case b < ' ' || b > '~':
 			return n, fmt.Errorf("multipart: invalid unescaped byte 0x%02x in quoted-printable body", b)
 		}
 		p[0] = b
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go	2013-10-01 16:06:44.164554280 +0000
@@ -5,11 +5,18 @@
 package multipart
 
 import (
+	"bufio"
 	"bytes"
+	"errors"
+	"flag"
 	"fmt"
 	"io"
+	"os/exec"
+	"regexp"
+	"sort"
 	"strings"
 	"testing"
+	"time"
 )
 
 func TestQuotedPrintable(t *testing.T) {
@@ -17,15 +24,44 @@
 		in, want string
 		err      interface{}
 	}{
+		{in: "", want: ""},
 		{in: "foo bar", want: "foo bar"},
 		{in: "foo bar=3D", want: "foo bar="},
+		{in: "foo bar=\n", want: "foo bar"},
+		{in: "foo bar\n", want: "foo bar\n"}, // somewhat lax.
 		{in: "foo bar=0", want: "foo bar", err: io.ErrUnexpectedEOF},
 		{in: "foo bar=ab", want: "foo bar", err: "multipart: invalid quoted-printable hex byte 0x61"},
 		{in: "foo bar=0D=0A", want: "foo bar\r\n"},
-		{in: "foo bar=\r\n baz", want: "foo bar baz"},
+		{in: " A B        \r\n C ", want: " A B\r\n C"},
+		{in: " A B =\r\n C ", want: " A B  C"},
+		{in: " A B =\n C ", want: " A B  C"}, // lax. treating LF as CRLF
 		{in: "foo=\nbar", want: "foobar"},
 		{in: "foo\x00bar", want: "foo", err: "multipart: invalid unescaped byte 0x00 in quoted-printable body"},
 		{in: "foo bar\xff", want: "foo bar", err: "multipart: invalid unescaped byte 0xff in quoted-printable body"},
+
+		// Equal sign.
+		{in: "=3D30\n", want: "=30\n"},
+		{in: "=00=FF0=\n", want: "\x00\xff0"},
+
+		// Trailing whitespace
+		{in: "foo  \n", want: "foo\n"},
+		{in: "foo  \n\nfoo =\n\nfoo=20\n\n", want: "foo\n\nfoo \nfoo \n\n"},
+
+		// Tests that we allow bare \n and \r through, despite it being strictly
+		// not permitted per RFC 2045, Section 6.7 Page 22 bullet (4).
+		{in: "foo\nbar", want: "foo\nbar"},
+		{in: "foo\rbar", want: "foo\rbar"},
+		{in: "foo\r\nbar", want: "foo\r\nbar"},
+
+		// Different types of soft line-breaks.
+		{in: "foo=\r\nbar", want: "foobar"},
+		{in: "foo=\nbar", want: "foobar"},
+		{in: "foo=\rbar", want: "foo", err: "multipart: invalid quoted-printable hex byte 0x0d"},
+		{in: "foo=\r\r\r \nbar", want: "foo", err: `multipart: invalid bytes after =: "\r\r\r \n"`},
+
+		// Example from RFC 2045:
+		{in: "Now's the time =\n" + "for all folk to come=\n" + " to the aid of their country.",
+			want: "Now's the time for all folk to come to the aid of their country."},
 	}
 	for _, tt := range tests {
 		var buf bytes.Buffer
@@ -50,3 +86,119 @@
 	}
 
 }
+
+func everySequence(base, alpha string, length int, fn func(string)) {
+	if len(base) == length {
+		fn(base)
+		return
+	}
+	for i := 0; i < len(alpha); i++ {
+		everySequence(base+alpha[i:i+1], alpha, length, fn)
+	}
+}
+
+var useQprint = flag.Bool("qprint", false, "Compare against the 'qprint' program.")
+
+var badSoftRx = regexp.MustCompile(`=([^\r\n]+?\n)|([^\r\n]+$)|(\r$)|(\r[^\n]+\n)|( \r\n)`)
+
+func TestQPExhaustive(t *testing.T) {
+	if *useQprint {
+		_, err := exec.LookPath("qprint")
+		if err != nil {
+			t.Fatalf("Error looking for qprint: %v", err)
+		}
+	}
+
+	var buf bytes.Buffer
+	res := make(map[string]int)
+	everySequence("", "0A \r\n=", 6, func(s string) {
+		if strings.HasSuffix(s, "=") || strings.Contains(s, "==") {
+			return
+		}
+		buf.Reset()
+		_, err := io.Copy(&buf, newQuotedPrintableReader(strings.NewReader(s)))
+		if err != nil {
+			errStr := err.Error()
+			if strings.Contains(errStr, "invalid bytes after =:") {
+				errStr = "invalid bytes after ="
+			}
+			res[errStr]++
+			if strings.Contains(errStr, "invalid quoted-printable hex byte ") {
+				if strings.HasSuffix(errStr, "0x20") && (strings.Contains(s, "=0 ") || strings.Contains(s, "=A ") || strings.Contains(s, "= ")) {
+					return
+				}
+				if strings.HasSuffix(errStr, "0x3d") && (strings.Contains(s, "=0=") || strings.Contains(s, "=A=")) {
+					return
+				}
+				if strings.HasSuffix(errStr, "0x0a") || strings.HasSuffix(errStr, "0x0d") {
+					// bunch of cases; since whitespace at the end of of a line before \n is removed.
+					return
+				}
+			}
+			if strings.Contains(errStr, "unexpected EOF") {
+				return
+			}
+			if errStr == "invalid bytes after =" && badSoftRx.MatchString(s) {
+				return
+			}
+			t.Errorf("decode(%q) = %v", s, err)
+			return
+		}
+		if *useQprint {
+			cmd := exec.Command("qprint", "-d")
+			cmd.Stdin = strings.NewReader(s)
+			stderr, err := cmd.StderrPipe()
+			if err != nil {
+				panic(err)
+			}
+			qpres := make(chan interface{}, 2)
+			go func() {
+				br := bufio.NewReader(stderr)
+				s, _ := br.ReadString('\n')
+				if s != "" {
+					qpres <- errors.New(s)
+					if cmd.Process != nil {
+						// It can get stuck on invalid input, like:
+						// echo -n "0000= " | qprint -d
+						cmd.Process.Kill()
+					}
+				}
+			}()
+			go func() {
+				want, err := cmd.Output()
+				if err == nil {
+					qpres <- want
+				}
+			}()
+			select {
+			case got := <-qpres:
+				if want, ok := got.([]byte); ok {
+					if string(want) != buf.String() {
+						t.Errorf("go decode(%q) = %q; qprint = %q", s, want, buf.String())
+					}
+				} else {
+					t.Logf("qprint -d(%q) = %v", s, got)
+				}
+			case <-time.After(5 * time.Second):
+				t.Logf("qprint timeout on %q", s)
+			}
+		}
+		res["OK"]++
+	})
+	var outcomes []string
+	for k, v := range res {
+		outcomes = append(outcomes, fmt.Sprintf("%v: %d", k, v))
+	}
+	sort.Strings(outcomes)
+	got := strings.Join(outcomes, "\n")
+	want := `OK: 21576
+invalid bytes after =: 3397
+multipart: invalid quoted-printable hex byte 0x0a: 1400
+multipart: invalid quoted-printable hex byte 0x0d: 2700
+multipart: invalid quoted-printable hex byte 0x20: 2490
+multipart: invalid quoted-printable hex byte 0x3d: 440
+unexpected EOF: 3122`
+	if got != want {
+		t.Errorf("Got:\n%s\nWant:\n%s", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_unix.go gcc-4.8.1/libgo/go/mime/type_unix.go
--- gcc-4.8.1.orig/libgo/go/mime/type_unix.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/mime/type_unix.go	2013-10-01 16:06:44.168554280 +0000
@@ -23,15 +23,11 @@
 	if err != nil {
 		return
 	}
+	defer f.Close()
 
-	reader := bufio.NewReader(f)
-	for {
-		line, err := reader.ReadString('\n')
-		if err != nil {
-			f.Close()
-			return
-		}
-		fields := strings.Fields(line)
+	scanner := bufio.NewScanner(f)
+	for scanner.Scan() {
+		fields := strings.Fields(scanner.Text())
 		if len(fields) <= 1 || fields[0][0] == '#' {
 			continue
 		}
@@ -43,6 +39,9 @@
 			setExtensionType("."+ext, mimeType)
 		}
 	}
+	if err := scanner.Err(); err != nil {
+		panic(err)
+	}
 }
 
 func initMime() {
diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_windows.go gcc-4.8.1/libgo/go/mime/type_windows.go
--- gcc-4.8.1.orig/libgo/go/mime/type_windows.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/mime/type_windows.go	2013-10-01 16:06:44.168554280 +0000
@@ -58,7 +58,6 @@
 
 func initMimeForTests() map[string]string {
 	return map[string]string{
-		".bmp": "image/bmp",
 		".png": "image/png",
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/cgo_unix.go gcc-4.8.1/libgo/go/net/cgo_unix.go
--- gcc-4.8.1.orig/libgo/go/net/cgo_unix.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/cgo_unix.go	2013-10-01 16:06:44.168554280 +0000
@@ -103,6 +103,7 @@
 	var hints syscall.Addrinfo
 
 	hints.Ai_flags = int32(cgoAddrInfoFlags())
+	hints.Ai_socktype = syscall.SOCK_STREAM
 
 	h := syscall.StringBytePtr(name)
 	syscall.Entersyscall()
@@ -130,7 +131,7 @@
 		}
 	}
 	for r := res; r != nil; r = r.Ai_next {
-		// Everything comes back twice, once for UDP and once for TCP.
+		// We only asked for SOCK_STREAM, but check anyhow.
 		if r.Ai_socktype != syscall.SOCK_STREAM {
 			continue
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/conn_test.go gcc-4.8.1/libgo/go/net/conn_test.go
--- gcc-4.8.1.orig/libgo/go/net/conn_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/conn_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"net"
 	"os"
 	"runtime"
 	"testing"
@@ -14,13 +16,18 @@
 
 var connTests = []struct {
 	net  string
-	addr string
+	addr func() string
 }{
-	{"tcp", "127.0.0.1:0"},
-	{"unix", "/tmp/gotest.net1"},
-	{"unixpacket", "/tmp/gotest.net2"},
+	{"tcp", func() string { return "127.0.0.1:0" }},
+	{"unix", testUnixAddr},
+	{"unixpacket", testUnixAddr},
 }
 
+// someTimeout is used just to test that net.Conn implementations
+// don't explode when their SetFooDeadline methods are called.
+// It isn't actually used for testing timeouts.
+const someTimeout = 10 * time.Second
+
 func TestConnAndListener(t *testing.T) {
 	for _, tt := range connTests {
 		switch tt.net {
@@ -32,74 +39,77 @@
 			if tt.net == "unixpacket" && runtime.GOOS != "linux" {
 				continue
 			}
-			os.Remove(tt.addr)
 		}
 
-		ln, err := net.Listen(tt.net, tt.addr)
+		addr := tt.addr()
+		ln, err := Listen(tt.net, addr)
 		if err != nil {
-			t.Errorf("net.Listen failed: %v", err)
-			return
+			t.Fatalf("Listen failed: %v", err)
 		}
-		ln.Addr()
-		defer func(ln net.Listener, net, addr string) {
+		defer func(ln Listener, net, addr string) {
 			ln.Close()
 			switch net {
 			case "unix", "unixpacket":
 				os.Remove(addr)
 			}
-		}(ln, tt.net, tt.addr)
+		}(ln, tt.net, addr)
+		ln.Addr()
 
 		done := make(chan int)
 		go transponder(t, ln, done)
 
-		c, err := net.Dial(tt.net, ln.Addr().String())
+		c, err := Dial(tt.net, ln.Addr().String())
 		if err != nil {
-			t.Errorf("net.Dial failed: %v", err)
-			return
+			t.Fatalf("Dial failed: %v", err)
 		}
+		defer c.Close()
 		c.LocalAddr()
 		c.RemoteAddr()
-		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-		c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-		c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c.Close()
+		c.SetDeadline(time.Now().Add(someTimeout))
+		c.SetReadDeadline(time.Now().Add(someTimeout))
+		c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 		if _, err := c.Write([]byte("CONN TEST")); err != nil {
-			t.Errorf("net.Conn.Write failed: %v", err)
-			return
+			t.Fatalf("Conn.Write failed: %v", err)
 		}
 		rb := make([]byte, 128)
 		if _, err := c.Read(rb); err != nil {
-			t.Errorf("net.Conn.Read failed: %v", err)
+			t.Fatalf("Conn.Read failed: %v", err)
 		}
 
 		<-done
 	}
 }
 
-func transponder(t *testing.T, ln net.Listener, done chan<- int) {
+func transponder(t *testing.T, ln Listener, done chan<- int) {
 	defer func() { done <- 1 }()
 
+	switch ln := ln.(type) {
+	case *TCPListener:
+		ln.SetDeadline(time.Now().Add(someTimeout))
+	case *UnixListener:
+		ln.SetDeadline(time.Now().Add(someTimeout))
+	}
 	c, err := ln.Accept()
 	if err != nil {
-		t.Errorf("net.Listener.Accept failed: %v", err)
+		t.Errorf("Listener.Accept failed: %v", err)
 		return
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 	b := make([]byte, 128)
 	n, err := c.Read(b)
 	if err != nil {
-		t.Errorf("net.Conn.Read failed: %v", err)
+		t.Errorf("Conn.Read failed: %v", err)
 		return
 	}
 	if _, err := c.Write(b[:n]); err != nil {
-		t.Errorf("net.Conn.Write failed: %v", err)
+		t.Errorf("Conn.Write failed: %v", err)
 		return
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial.go gcc-4.8.1/libgo/go/net/dial.go
--- gcc-4.8.1.orig/libgo/go/net/dial.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/dial.go	2013-10-01 16:06:44.168554280 +0000
@@ -5,10 +5,55 @@
 package net
 
 import (
+	"errors"
 	"time"
 )
 
-func parseDialNetwork(net string) (afnet string, proto int, err error) {
+// A Dialer contains options for connecting to an address.
+//
+// The zero value for each field is equivalent to dialing
+// without that option. Dialing with the zero value of Dialer
+// is therefore equivalent to just calling the Dial function.
+type Dialer struct {
+	// Timeout is the maximum amount of time a dial will wait for
+	// a connect to complete. If Deadline is also set, it may fail
+	// earlier.
+	//
+	// The default is no timeout.
+	//
+	// With or without a timeout, the operating system may impose
+	// its own earlier timeout. For instance, TCP timeouts are
+	// often around 3 minutes.
+	Timeout time.Duration
+
+	// Deadline is the absolute point in time after which dials
+	// will fail. If Timeout is set, it may fail earlier.
+	// Zero means no deadline, or dependent on the operating system
+	// as with the Timeout option.
+	Deadline time.Time
+
+	// LocalAddr is the local address to use when dialing an
+	// address. The address must be of a compatible type for the
+	// network being dialed.
+	// If nil, a local address is automatically chosen.
+	LocalAddr Addr
+}
+
+// Return either now+Timeout or Deadline, whichever comes first.
+// Or zero, if neither is set.
+func (d *Dialer) deadline() time.Time {
+	if d.Timeout == 0 {
+		return d.Deadline
+	}
+	timeoutDeadline := time.Now().Add(d.Timeout)
+	if d.Deadline.IsZero() || timeoutDeadline.Before(d.Deadline) {
+		return timeoutDeadline
+	} else {
+		return d.Deadline
+	}
+}
+
+func parseNetwork(net string) (afnet string, proto int, err error) {
 	i := last(net, ':')
 	if i < 0 { // no colon
 		switch net {
@@ -37,74 +82,89 @@
 	return "", 0, UnknownNetworkError(net)
 }
 
-func resolveNetAddr(op, net, addr string, deadline time.Time) (afnet string, a Addr, err error) {
-	afnet, _, err = parseDialNetwork(net)
+func resolveAddr(op, net, addr string, deadline time.Time) (Addr, error) {
+	afnet, _, err := parseNetwork(net)
 	if err != nil {
-		return "", nil, &OpError{op, net, nil, err}
+		return nil, &OpError{op, net, nil, err}
 	}
 	if op == "dial" && addr == "" {
-		return "", nil, &OpError{op, net, nil, errMissingAddress}
-	}
-	a, err = resolveAfnetAddr(afnet, addr, deadline)
-	return
-}
-
-func resolveAfnetAddr(afnet, addr string, deadline time.Time) (Addr, error) {
-	if addr == "" {
-		return nil, nil
+		return nil, &OpError{op, net, nil, errMissingAddress}
 	}
 	switch afnet {
-	case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6", "ip", "ip4", "ip6":
-		return resolveInternetAddr(afnet, addr, deadline)
 	case "unix", "unixgram", "unixpacket":
 		return ResolveUnixAddr(afnet, addr)
 	}
-	return nil, nil
+	return resolveInternetAddr(afnet, addr, deadline)
 }
 
-// Dial connects to the address addr on the network net.
+// Dial connects to the address on the named network.
 //
 // Known networks are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only),
 // "udp", "udp4" (IPv4-only), "udp6" (IPv6-only), "ip", "ip4"
-// (IPv4-only), "ip6" (IPv6-only), "unix" and "unixpacket".
+// (IPv4-only), "ip6" (IPv6-only), "unix", "unixgram" and
+// "unixpacket".
 //
 // For TCP and UDP networks, addresses have the form host:port.
-// If host is a literal IPv6 address, it must be enclosed
-// in square brackets.  The functions JoinHostPort and SplitHostPort
-// manipulate addresses in this form.
+// If host is a literal IPv6 address or host name, it must be enclosed
+// in square brackets as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
+// The functions JoinHostPort and SplitHostPort manipulate addresses
+// in this form.
 //
 // Examples:
 //	Dial("tcp", "12.34.56.78:80")
-//	Dial("tcp", "google.com:80")
-//	Dial("tcp", "[de:ad:be:ef::ca:fe]:80")
-//
-// For IP networks, net must be "ip", "ip4" or "ip6" followed
-// by a colon and a protocol number or name.
+//	Dial("tcp", "google.com:http")
+//	Dial("tcp", "[2001:db8::1]:http")
+//	Dial("tcp", "[fe80::1%lo0]:80")
+//
+// For IP networks, the network must be "ip", "ip4" or "ip6" followed
+// by a colon and a protocol number or name and the addr must be a
+// literal IP address.
 //
 // Examples:
 //	Dial("ip4:1", "127.0.0.1")
 //	Dial("ip6:ospf", "::1")
 //
-func Dial(net, addr string) (Conn, error) {
-	_, addri, err := resolveNetAddr("dial", net, addr, noDeadline)
-	if err != nil {
-		return nil, err
-	}
-	return dialAddr(net, addr, addri, noDeadline)
+// For Unix networks, the address must be a file system path.
+func Dial(network, address string) (Conn, error) {
+	var d Dialer
+	return d.Dial(network, address)
 }
 
-func dialAddr(net, addr string, addri Addr, deadline time.Time) (c Conn, err error) {
-	switch ra := addri.(type) {
+// DialTimeout acts like Dial but takes a timeout.
+// The timeout includes name resolution, if required.
+func DialTimeout(network, address string, timeout time.Duration) (Conn, error) {
+	d := Dialer{Timeout: timeout}
+	return d.Dial(network, address)
+}
+
+// Dial connects to the address on the named network.
+//
+// See func Dial for a description of the network and address
+// parameters.
+func (d *Dialer) Dial(network, address string) (Conn, error) {
+	return resolveAndDial(network, address, d.LocalAddr, d.deadline())
+}
+
+func dial(net, addr string, la, ra Addr, deadline time.Time) (c Conn, err error) {
+	if la != nil && la.Network() != ra.Network() {
+		return nil, &OpError{"dial", net, ra, errors.New("mismatched local addr type " + la.Network())}
+	}
+	switch ra := ra.(type) {
 	case *TCPAddr:
-		c, err = dialTCP(net, nil, ra, deadline)
+		la, _ := la.(*TCPAddr)
+		c, err = dialTCP(net, la, ra, deadline)
 	case *UDPAddr:
-		c, err = dialUDP(net, nil, ra, deadline)
+		la, _ := la.(*UDPAddr)
+		c, err = dialUDP(net, la, ra, deadline)
 	case *IPAddr:
-		c, err = dialIP(net, nil, ra, deadline)
+		la, _ := la.(*IPAddr)
+		c, err = dialIP(net, la, ra, deadline)
 	case *UnixAddr:
-		c, err = dialUnix(net, nil, ra, deadline)
+		la, _ := la.(*UnixAddr)
+		c, err = dialUnix(net, la, ra, deadline)
 	default:
-		err = &OpError{"dial", net + " " + addr, nil, UnknownNetworkError(net)}
+		err = &OpError{"dial", net + " " + addr, ra, UnknownNetworkError(net)}
 	}
 	if err != nil {
 		return nil, err
@@ -112,59 +172,6 @@
 	return
 }
 
-// DialTimeout acts like Dial but takes a timeout.
-// The timeout includes name resolution, if required.
-func DialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
-	return dialTimeout(net, addr, timeout)
-}
-
-// dialTimeoutRace is the old implementation of DialTimeout, still used
-// on operating systems where the deadline hasn't been pushed down
-// into the pollserver.
-// TODO: fix this on plan9.
-func dialTimeoutRace(net, addr string, timeout time.Duration) (Conn, error) {
-	t := time.NewTimer(timeout)
-	defer t.Stop()
-	type pair struct {
-		Conn
-		error
-	}
-	ch := make(chan pair, 1)
-	resolvedAddr := make(chan Addr, 1)
-	go func() {
-		_, addri, err := resolveNetAddr("dial", net, addr, noDeadline)
-		if err != nil {
-			ch <- pair{nil, err}
-			return
-		}
-		resolvedAddr <- addri // in case we need it for OpError
-		c, err := dialAddr(net, addr, addri, noDeadline)
-		ch <- pair{c, err}
-	}()
-	select {
-	case <-t.C:
-		// Try to use the real Addr in our OpError, if we resolved it
-		// before the timeout. Otherwise we just use stringAddr.
-		var addri Addr
-		select {
-		case a := <-resolvedAddr:
-			addri = a
-		default:
-			addri = &stringAddr{net, addr}
-		}
-		err := &OpError{
-			Op:   "dial",
-			Net:  net,
-			Addr: addri,
-			Err:  &timeoutError{},
-		}
-		return nil, err
-	case p := <-ch:
-		return p.Conn, p.error
-	}
-	panic("unreachable")
-}
-
 type stringAddr struct {
 	net, addr string
 }
@@ -173,56 +180,38 @@
 func (a stringAddr) String() string  { return a.addr }
 
 // Listen announces on the local network address laddr.
-// The network string net must be a stream-oriented network:
-// "tcp", "tcp4", "tcp6", "unix" or "unixpacket".
+// The network net must be a stream-oriented network: "tcp", "tcp4",
+// "tcp6", "unix" or "unixpacket".
+// See Dial for the syntax of laddr.
 func Listen(net, laddr string) (Listener, error) {
-	afnet, a, err := resolveNetAddr("listen", net, laddr, noDeadline)
+	la, err := resolveAddr("listen", net, laddr, noDeadline)
 	if err != nil {
 		return nil, err
 	}
-	switch afnet {
-	case "tcp", "tcp4", "tcp6":
-		var la *TCPAddr
-		if a != nil {
-			la = a.(*TCPAddr)
-		}
+	switch la := la.(type) {
+	case *TCPAddr:
 		return ListenTCP(net, la)
-	case "unix", "unixpacket":
-		var la *UnixAddr
-		if a != nil {
-			la = a.(*UnixAddr)
-		}
+	case *UnixAddr:
 		return ListenUnix(net, la)
 	}
 	return nil, UnknownNetworkError(net)
 }
 
 // ListenPacket announces on the local network address laddr.
-// The network string net must be a packet-oriented network:
-// "udp", "udp4", "udp6", "ip", "ip4", "ip6" or "unixgram".
+// The network net must be a packet-oriented network: "udp", "udp4",
+// "udp6", "ip", "ip4", "ip6" or "unixgram".
+// See Dial for the syntax of laddr.
 func ListenPacket(net, laddr string) (PacketConn, error) {
-	afnet, a, err := resolveNetAddr("listen", net, laddr, noDeadline)
+	la, err := resolveAddr("listen", net, laddr, noDeadline)
 	if err != nil {
 		return nil, err
 	}
-	switch afnet {
-	case "udp", "udp4", "udp6":
-		var la *UDPAddr
-		if a != nil {
-			la = a.(*UDPAddr)
-		}
+	switch la := la.(type) {
+	case *UDPAddr:
 		return ListenUDP(net, la)
-	case "ip", "ip4", "ip6":
-		var la *IPAddr
-		if a != nil {
-			la = a.(*IPAddr)
-		}
+	case *IPAddr:
 		return ListenIP(net, la)
-	case "unixgram":
-		var la *UnixAddr
-		if a != nil {
-			la = a.(*UnixAddr)
-		}
+	case *UnixAddr:
 		return ListenUnixgram(net, la)
 	}
 	return nil, UnknownNetworkError(net)
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_gen.go gcc-4.8.1/libgo/go/net/dial_gen.go
--- gcc-4.8.1.orig/libgo/go/net/dial_gen.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/dial_gen.go	2013-10-01 16:06:44.168554280 +0000
@@ -0,0 +1,73 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows plan9
+
+package net
+
+import (
+	"time"
+)
+
+var testingIssue5349 bool // used during tests
+
+// resolveAndDialChannel is the simple pure-Go implementation of
+// resolveAndDial, still used on operating systems where the deadline
+// hasn't been pushed down into the pollserver. (Plan 9 and some old
+// versions of Windows)
+func resolveAndDialChannel(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
+	var timeout time.Duration
+	if !deadline.IsZero() {
+		timeout = deadline.Sub(time.Now())
+	}
+	if timeout <= 0 {
+		ra, err := resolveAddr("dial", net, addr, noDeadline)
+		if err != nil {
+			return nil, err
+		}
+		return dial(net, addr, localAddr, ra, noDeadline)
+	}
+	t := time.NewTimer(timeout)
+	defer t.Stop()
+	type pair struct {
+		Conn
+		error
+	}
+	ch := make(chan pair, 1)
+	resolvedAddr := make(chan Addr, 1)
+	go func() {
+		if testingIssue5349 {
+			time.Sleep(time.Millisecond)
+		}
+		ra, err := resolveAddr("dial", net, addr, noDeadline)
+		if err != nil {
+			ch <- pair{nil, err}
+			return
+		}
+		resolvedAddr <- ra // in case we need it for OpError
+		c, err := dial(net, addr, localAddr, ra, noDeadline)
+		ch <- pair{c, err}
+	}()
+	select {
+	case <-t.C:
+		// Try to use the real Addr in our OpError, if we resolved it
+		// before the timeout. Otherwise we just use stringAddr.
+		var ra Addr
+		select {
+		case a := <-resolvedAddr:
+			ra = a
+		default:
+			ra = &stringAddr{net, addr}
+		}
+		err := &OpError{
+			Op:   "dial",
+			Net:  net,
+			Addr: ra,
+			Err:  &timeoutError{},
+		}
+		return nil, err
+	case p := <-ch:
+		return p.Conn, p.error
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_test.go gcc-4.8.1/libgo/go/net/dial_test.go
--- gcc-4.8.1.orig/libgo/go/net/dial_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/dial_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -9,6 +9,7 @@
 	"fmt"
 	"io"
 	"os"
+	"reflect"
 	"regexp"
 	"runtime"
 	"testing"
@@ -27,12 +28,18 @@
 }
 
 func TestDialTimeout(t *testing.T) {
+	origBacklog := listenerBacklog
+	defer func() {
+		listenerBacklog = origBacklog
+	}()
+	listenerBacklog = 1
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
 	errc := make(chan error)
 
-	numConns := listenerBacklog + 10
+	numConns := listenerBacklog + 100
 
 	// TODO(bradfitz): It's hard to test this in a portable
 	// way. This is unfortunate, but works for now.
@@ -223,6 +230,31 @@
 	}
 }
 
+var invalidDialAndListenArgTests = []struct {
+	net  string
+	addr string
+	err  error
+}{
+	{"foo", "bar", &OpError{Op: "dial", Net: "foo", Addr: nil, Err: UnknownNetworkError("foo")}},
+	{"baz", "", &OpError{Op: "listen", Net: "baz", Addr: nil, Err: UnknownNetworkError("baz")}},
+	{"tcp", "", &OpError{Op: "dial", Net: "tcp", Addr: nil, Err: errMissingAddress}},
+}
+
+func TestInvalidDialAndListenArgs(t *testing.T) {
+	for _, tt := range invalidDialAndListenArgTests {
+		var err error
+		switch tt.err.(*OpError).Op {
+		case "dial":
+			_, err = Dial(tt.net, tt.addr)
+		case "listen":
+			_, err = Listen(tt.net, tt.addr)
+		}
+		if !reflect.DeepEqual(tt.err, err) {
+			t.Fatalf("got %#v; expected %#v", err, tt.err)
+		}
+	}
+}
+
 func TestDialTimeoutFDLeak(t *testing.T) {
 	if runtime.GOOS != "linux" {
 		// TODO(bradfitz): test on other platforms
@@ -298,3 +330,80 @@
 	// All tests using this should be skipped anyway, but:
 	panic("numFDs not implemented on " + runtime.GOOS)
 }
+
+var testPoller = flag.Bool("poller", false, "platform supports runtime-integrated poller")
+
+// Assert that a failed Dial attempt does not leak
+// runtime.PollDesc structures
+func TestDialFailPDLeak(t *testing.T) {
+	if !*testPoller {
+		t.Skip("test disabled; use -poller to enable")
+	}
+
+	const loops = 10
+	const count = 20000
+	var old runtime.MemStats // used by sysdelta
+	runtime.ReadMemStats(&old)
+	sysdelta := func() uint64 {
+		var new runtime.MemStats
+		runtime.ReadMemStats(&new)
+		delta := old.Sys - new.Sys
+		old = new
+		return delta
+	}
+	d := &Dialer{Timeout: time.Nanosecond} // don't bother TCP with handshaking
+	failcount := 0
+	for i := 0; i < loops; i++ {
+		for i := 0; i < count; i++ {
+			conn, err := d.Dial("tcp", "127.0.0.1:1")
+			if err == nil {
+				t.Error("dial should not succeed")
+				conn.Close()
+				t.FailNow()
+			}
+		}
+		if delta := sysdelta(); delta > 0 {
+			failcount++
+		}
+		// there are always some allocations on the first loop
+		if failcount > 3 {
+			t.Error("detected possible memory leak in runtime")
+			t.FailNow()
+		}
+	}
+}
+
+func TestDialer(t *testing.T) {
+	ln, err := Listen("tcp4", "127.0.0.1:0")
+	if err != nil {
+		t.Fatalf("Listen failed: %v", err)
+	}
+	defer ln.Close()
+	ch := make(chan error, 1)
+	go func() {
+		var err error
+		c, err := ln.Accept()
+		if err != nil {
+			ch <- fmt.Errorf("Accept failed: %v", err)
+			return
+		}
+		defer c.Close()
+		ch <- nil
+	}()
+
+	laddr, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	if err != nil {
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
+	}
+	d := &Dialer{LocalAddr: laddr}
+	c, err := d.Dial("tcp4", ln.Addr().String())
+	if err != nil {
+		t.Fatalf("Dial failed: %v", err)
+	}
+	defer c.Close()
+	c.Read(make([]byte, 1))
+	err = <-ch
+	if err != nil {
+		t.Error(err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_bsd.go gcc-4.8.1/libgo/go/net/fd_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/fd_bsd.go	2013-02-06 22:40:18.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_bsd.go	2013-10-01 16:06:44.168554280 +0000
@@ -33,6 +33,8 @@
 	return p, nil
 }
 
+// First return value is whether the pollServer should be woken up.
+// This version always returns false.
 func (p *pollster) AddFD(fd int, mode int, repeat bool) (bool, error) {
 	// pollServer is locked.
 
@@ -64,6 +66,8 @@
 	return false, nil
 }
 
+// Return value is whether the pollServer should be woken up.
+// This version always returns false.
 func (p *pollster) DelFD(fd int, mode int) bool {
 	// pollServer is locked.
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_linux.go gcc-4.8.1/libgo/go/net/fd_linux.go
--- gcc-4.8.1.orig/libgo/go/net/fd_linux.go	2013-02-06 22:40:18.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_linux.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,188 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Waiting for FDs via epoll(7).
-
-package net
-
-import (
-	"os"
-	"syscall"
-)
-
-const (
-	readFlags  = syscall.EPOLLIN | syscall.EPOLLRDHUP
-	writeFlags = syscall.EPOLLOUT
-)
-
-type pollster struct {
-	epfd int
-
-	// Events we're already waiting for
-	// Must hold pollServer lock
-	events map[int]uint32
-
-	// An event buffer for EpollWait.
-	// Used without a lock, may only be used by WaitFD.
-	waitEventBuf [10]syscall.EpollEvent
-	waitEvents   []syscall.EpollEvent
-
-	// An event buffer for EpollCtl, to avoid a malloc.
-	// Must hold pollServer lock.
-	ctlEvent syscall.EpollEvent
-}
-
-func newpollster() (p *pollster, err error) {
-	p = new(pollster)
-	if p.epfd, err = syscall.EpollCreate1(syscall.EPOLL_CLOEXEC); err != nil {
-		if err != syscall.ENOSYS {
-			return nil, os.NewSyscallError("epoll_create1", err)
-		}
-		// The arg to epoll_create is a hint to the kernel
-		// about the number of FDs we will care about.
-		// We don't know, and since 2.6.8 the kernel ignores it anyhow.
-		if p.epfd, err = syscall.EpollCreate(16); err != nil {
-			return nil, os.NewSyscallError("epoll_create", err)
-		}
-		syscall.CloseOnExec(p.epfd)
-	}
-	p.events = make(map[int]uint32)
-	return p, nil
-}
-
-func (p *pollster) AddFD(fd int, mode int, repeat bool) (bool, error) {
-	// pollServer is locked.
-
-	var already bool
-	p.ctlEvent.Fd = int32(fd)
-	p.ctlEvent.Events, already = p.events[fd]
-	if !repeat {
-		p.ctlEvent.Events |= syscall.EPOLLONESHOT
-	}
-	if mode == 'r' {
-		p.ctlEvent.Events |= readFlags
-	} else {
-		p.ctlEvent.Events |= writeFlags
-	}
-
-	var op int
-	if already {
-		op = syscall.EPOLL_CTL_MOD
-	} else {
-		op = syscall.EPOLL_CTL_ADD
-	}
-	if err := syscall.EpollCtl(p.epfd, op, fd, &p.ctlEvent); err != nil {
-		return false, os.NewSyscallError("epoll_ctl", err)
-	}
-	p.events[fd] = p.ctlEvent.Events
-	return false, nil
-}
-
-func (p *pollster) StopWaiting(fd int, bits uint) {
-	// pollServer is locked.
-
-	events, already := p.events[fd]
-	if !already {
-		// The fd returned by the kernel may have been
-		// cancelled already; return silently.
-		return
-	}
-
-	// If syscall.EPOLLONESHOT is not set, the wait
-	// is a repeating wait, so don't change it.
-	if events&syscall.EPOLLONESHOT == 0 {
-		return
-	}
-
-	// Disable the given bits.
-	// If we're still waiting for other events, modify the fd
-	// event in the kernel.  Otherwise, delete it.
-	events &= ^uint32(bits)
-	if int32(events)&^syscall.EPOLLONESHOT != 0 {
-		p.ctlEvent.Fd = int32(fd)
-		p.ctlEvent.Events = events
-		if err := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_MOD, fd, &p.ctlEvent); err != nil {
-			print("Epoll modify fd=", fd, ": ", err.Error(), "\n")
-		}
-		p.events[fd] = events
-	} else {
-		if err := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_DEL, fd, nil); err != nil {
-			print("Epoll delete fd=", fd, ": ", err.Error(), "\n")
-		}
-		delete(p.events, fd)
-	}
-}
-
-func (p *pollster) DelFD(fd int, mode int) bool {
-	// pollServer is locked.
-
-	if mode == 'r' {
-		p.StopWaiting(fd, readFlags)
-	} else {
-		p.StopWaiting(fd, writeFlags)
-	}
-
-	// Discard any queued up events.
-	i := 0
-	for i < len(p.waitEvents) {
-		if fd == int(p.waitEvents[i].Fd) {
-			copy(p.waitEvents[i:], p.waitEvents[i+1:])
-			p.waitEvents = p.waitEvents[:len(p.waitEvents)-1]
-		} else {
-			i++
-		}
-	}
-	return false
-}
-
-func (p *pollster) WaitFD(s *pollServer, nsec int64) (fd int, mode int, err error) {
-	for len(p.waitEvents) == 0 {
-		var msec int = -1
-		if nsec > 0 {
-			msec = int((nsec + 1e6 - 1) / 1e6)
-		}
-
-		s.Unlock()
-		n, err := syscall.EpollWait(p.epfd, p.waitEventBuf[0:], msec)
-		s.Lock()
-
-		if err != nil {
-			if err == syscall.EAGAIN || err == syscall.EINTR {
-				continue
-			}
-			return -1, 0, os.NewSyscallError("epoll_wait", err)
-		}
-		if n == 0 {
-			return -1, 0, nil
-		}
-		p.waitEvents = p.waitEventBuf[0:n]
-	}
-
-	ev := &p.waitEvents[0]
-	p.waitEvents = p.waitEvents[1:]
-
-	fd = int(ev.Fd)
-
-	if ev.Events&writeFlags != 0 {
-		p.StopWaiting(fd, writeFlags)
-		return fd, 'w', nil
-	}
-	if ev.Events&readFlags != 0 {
-		p.StopWaiting(fd, readFlags)
-		return fd, 'r', nil
-	}
-
-	// Other events are error conditions - wake whoever is waiting.
-	events, _ := p.events[fd]
-	if events&writeFlags != 0 {
-		p.StopWaiting(fd, writeFlags)
-		return fd, 'w', nil
-	}
-	p.StopWaiting(fd, readFlags)
-	return fd, 'r', nil
-}
-
-func (p *pollster) Close() error {
-	return os.NewSyscallError("close", syscall.Close(p.epfd))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_plan9.go gcc-4.8.1/libgo/go/net/fd_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/fd_plan9.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_plan9.go	2013-10-01 16:06:44.168554280 +0000
@@ -23,28 +23,22 @@
 func sysInit() {
 }
 
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
 	// On plan9, use the relatively inefficient
 	// goroutine-racing implementation.
-	return dialTimeoutRace(net, addr, timeout)
+	return resolveAndDialChannel(net, addr, localAddr, deadline)
 }
 
-func newFD(proto, name string, ctl *os.File, laddr, raddr Addr) *netFD {
-	return &netFD{proto, name, "/net/" + proto + "/" + name, ctl, nil, laddr, raddr}
+func newFD(proto, name string, ctl, data *os.File, laddr, raddr Addr) *netFD {
+	return &netFD{proto, name, "/net/" + proto + "/" + name, ctl, data, laddr, raddr}
 }
 
 func (fd *netFD) ok() bool { return fd != nil && fd.ctl != nil }
 
 func (fd *netFD) Read(b []byte) (n int, err error) {
-	if !fd.ok() {
+	if !fd.ok() || fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if fd.data == nil {
-		fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-	}
 	n, err = fd.data.Read(b)
 	if fd.proto == "udp" && err == io.EOF {
 		n = 0
@@ -54,15 +48,9 @@
 }
 
 func (fd *netFD) Write(b []byte) (n int, err error) {
-	if !fd.ok() {
+	if !fd.ok() || fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if fd.data == nil {
-		fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-	}
 	return fd.data.Write(b)
 }
 
@@ -85,19 +73,39 @@
 		return syscall.EINVAL
 	}
 	err := fd.ctl.Close()
-	if err != nil {
-		return err
-	}
 	if fd.data != nil {
-		err = fd.data.Close()
+		if err1 := fd.data.Close(); err1 != nil && err == nil {
+			err = err1
+		}
 	}
 	fd.ctl = nil
 	fd.data = nil
 	return err
 }
 
+// This method is only called via Conn.
 func (fd *netFD) dup() (*os.File, error) {
-	return nil, syscall.EPLAN9
+	if !fd.ok() || fd.data == nil {
+		return nil, syscall.EINVAL
+	}
+	return fd.file(fd.data, fd.dir+"/data")
+}
+
+func (l *TCPListener) dup() (*os.File, error) {
+	if !l.fd.ok() {
+		return nil, syscall.EINVAL
+	}
+	return l.fd.file(l.fd.ctl, l.fd.dir+"/ctl")
+}
+
+func (fd *netFD) file(f *os.File, s string) (*os.File, error) {
+	syscall.ForkLock.RLock()
+	dfd, err := syscall.Dup(int(f.Fd()), -1)
+	syscall.ForkLock.RUnlock()
+	if err != nil {
+		return nil, &OpError{"dup", s, fd.laddr, err}
+	}
+	return os.NewFile(uintptr(dfd), s), nil
 }
 
 func setDeadline(fd *netFD, t time.Time) error {
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go gcc-4.8.1/libgo/go/net/fd_poll_runtime.go
--- gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_poll_runtime.go	2013-10-01 16:06:44.168554280 +0000
@@ -0,0 +1,119 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin linux
+
+package net
+
+import (
+	"sync"
+	"syscall"
+	"time"
+)
+
+func runtime_pollServerInit()
+func runtime_pollOpen(fd int) (uintptr, int)
+func runtime_pollClose(ctx uintptr)
+func runtime_pollWait(ctx uintptr, mode int) int
+func runtime_pollReset(ctx uintptr, mode int) int
+func runtime_pollSetDeadline(ctx uintptr, d int64, mode int)
+func runtime_pollUnblock(ctx uintptr)
+
+var canCancelIO = true // used for testing current package
+
+type pollDesc struct {
+	runtimeCtx uintptr
+}
+
+var serverInit sync.Once
+
+func sysInit() {
+}
+
+func (pd *pollDesc) Init(fd *netFD) error {
+	serverInit.Do(runtime_pollServerInit)
+	ctx, errno := runtime_pollOpen(fd.sysfd)
+	if errno != 0 {
+		return syscall.Errno(errno)
+	}
+	pd.runtimeCtx = ctx
+	return nil
+}
+
+func (pd *pollDesc) Close() {
+	runtime_pollClose(pd.runtimeCtx)
+}
+
+func (pd *pollDesc) Lock() {
+}
+
+func (pd *pollDesc) Unlock() {
+}
+
+func (pd *pollDesc) Wakeup() {
+}
+
+// Evict evicts fd from the pending list, unblocking any I/O running on fd.
+// Return value is whether the pollServer should be woken up.
+func (pd *pollDesc) Evict() bool {
+	runtime_pollUnblock(pd.runtimeCtx)
+	return false
+}
+
+func (pd *pollDesc) PrepareRead() error {
+	res := runtime_pollReset(pd.runtimeCtx, 'r')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) PrepareWrite() error {
+	res := runtime_pollReset(pd.runtimeCtx, 'w')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) WaitRead() error {
+	res := runtime_pollWait(pd.runtimeCtx, 'r')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) WaitWrite() error {
+	res := runtime_pollWait(pd.runtimeCtx, 'w')
+	return convertErr(res)
+}
+
+func convertErr(res int) error {
+	switch res {
+	case 0:
+		return nil
+	case 1:
+		return errClosing
+	case 2:
+		return errTimeout
+	}
+	panic("unreachable")
+}
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'r')
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'w')
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'r'+'w')
+}
+
+func setDeadlineImpl(fd *netFD, t time.Time, mode int) error {
+	d := t.UnixNano()
+	if t.IsZero() {
+		d = 0
+	}
+	if err := fd.incref(false); err != nil {
+		return err
+	}
+	runtime_pollSetDeadline(fd.pd.runtimeCtx, d, mode)
+	fd.decref()
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go gcc-4.8.1/libgo/go/net/fd_poll_unix.go
--- gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_poll_unix.go	2013-10-01 16:06:44.168554280 +0000
@@ -0,0 +1,360 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build freebsd netbsd openbsd
+
+package net
+
+import (
+	"os"
+	"runtime"
+	"sync"
+	"syscall"
+	"time"
+)
+
+// A pollServer helps FDs determine when to retry a non-blocking
+// read or write after they get EAGAIN.  When an FD needs to wait,
+// call s.WaitRead() or s.WaitWrite() to pass the request to the poll server.
+// When the pollServer finds that i/o on FD should be possible
+// again, it will send on fd.cr/fd.cw to wake any waiting goroutines.
+//
+// To avoid races in closing, all fd operations are locked and
+// refcounted. when netFD.Close() is called, it calls syscall.Shutdown
+// and sets a closing flag. Only when the last reference is removed
+// will the fd be closed.
+
+type pollServer struct {
+	pr, pw     *os.File
+	poll       *pollster // low-level OS hooks
+	sync.Mutex           // controls pending and deadline
+	pending    map[int]*pollDesc
+	deadline   int64 // next deadline (nsec since 1970)
+}
+
+// A pollDesc contains netFD state related to pollServer.
+type pollDesc struct {
+	// immutable after Init()
+	pollServer *pollServer
+	sysfd      int
+	cr, cw     chan error
+
+	// mutable, protected by pollServer mutex
+	closing  bool
+	ncr, ncw int
+
+	// mutable, safe for concurrent access
+	rdeadline, wdeadline deadline
+}
+
+func newPollServer() (s *pollServer, err error) {
+	s = new(pollServer)
+	if s.pr, s.pw, err = os.Pipe(); err != nil {
+		return nil, err
+	}
+	if err = syscall.SetNonblock(int(s.pr.Fd()), true); err != nil {
+		goto Errno
+	}
+	if err = syscall.SetNonblock(int(s.pw.Fd()), true); err != nil {
+		goto Errno
+	}
+	if s.poll, err = newpollster(); err != nil {
+		goto Error
+	}
+	if _, err = s.poll.AddFD(int(s.pr.Fd()), 'r', true); err != nil {
+		s.poll.Close()
+		goto Error
+	}
+	s.pending = make(map[int]*pollDesc)
+	go s.Run()
+	return s, nil
+
+Errno:
+	err = &os.PathError{
+		Op:   "setnonblock",
+		Path: s.pr.Name(),
+		Err:  err,
+	}
+Error:
+	s.pr.Close()
+	s.pw.Close()
+	return nil, err
+}
+
+func (s *pollServer) AddFD(pd *pollDesc, mode int) error {
+	s.Lock()
+	intfd := pd.sysfd
+	if intfd < 0 || pd.closing {
+		// fd closed underfoot
+		s.Unlock()
+		return errClosing
+	}
+
+	var t int64
+	key := intfd << 1
+	if mode == 'r' {
+		pd.ncr++
+		t = pd.rdeadline.value()
+	} else {
+		pd.ncw++
+		key++
+		t = pd.wdeadline.value()
+	}
+	s.pending[key] = pd
+	doWakeup := false
+	if t > 0 && (s.deadline == 0 || t < s.deadline) {
+		s.deadline = t
+		doWakeup = true
+	}
+
+	wake, err := s.poll.AddFD(intfd, mode, false)
+	s.Unlock()
+	if err != nil {
+		return err
+	}
+	if wake || doWakeup {
+		s.Wakeup()
+	}
+	return nil
+}
+
+// Evict evicts pd from the pending list, unblocking
+// any I/O running on pd.  The caller must have locked
+// pollserver.
+// Return value is whether the pollServer should be woken up.
+func (s *pollServer) Evict(pd *pollDesc) bool {
+	pd.closing = true
+	doWakeup := false
+	if s.pending[pd.sysfd<<1] == pd {
+		s.WakeFD(pd, 'r', errClosing)
+		if s.poll.DelFD(pd.sysfd, 'r') {
+			doWakeup = true
+		}
+		delete(s.pending, pd.sysfd<<1)
+	}
+	if s.pending[pd.sysfd<<1|1] == pd {
+		s.WakeFD(pd, 'w', errClosing)
+		if s.poll.DelFD(pd.sysfd, 'w') {
+			doWakeup = true
+		}
+		delete(s.pending, pd.sysfd<<1|1)
+	}
+	return doWakeup
+}
+
+var wakeupbuf [1]byte
+
+func (s *pollServer) Wakeup() { s.pw.Write(wakeupbuf[0:]) }
+
+func (s *pollServer) LookupFD(fd int, mode int) *pollDesc {
+	key := fd << 1
+	if mode == 'w' {
+		key++
+	}
+	netfd, ok := s.pending[key]
+	if !ok {
+		return nil
+	}
+	delete(s.pending, key)
+	return netfd
+}
+
+func (s *pollServer) WakeFD(pd *pollDesc, mode int, err error) {
+	if mode == 'r' {
+		for pd.ncr > 0 {
+			pd.ncr--
+			pd.cr <- err
+		}
+	} else {
+		for pd.ncw > 0 {
+			pd.ncw--
+			pd.cw <- err
+		}
+	}
+}
+
+func (s *pollServer) CheckDeadlines() {
+	now := time.Now().UnixNano()
+	// TODO(rsc): This will need to be handled more efficiently,
+	// probably with a heap indexed by wakeup time.
+
+	var nextDeadline int64
+	for key, pd := range s.pending {
+		var t int64
+		var mode int
+		if key&1 == 0 {
+			mode = 'r'
+		} else {
+			mode = 'w'
+		}
+		if mode == 'r' {
+			t = pd.rdeadline.value()
+		} else {
+			t = pd.wdeadline.value()
+		}
+		if t > 0 {
+			if t <= now {
+				delete(s.pending, key)
+				s.poll.DelFD(pd.sysfd, mode)
+				s.WakeFD(pd, mode, errTimeout)
+			} else if nextDeadline == 0 || t < nextDeadline {
+				nextDeadline = t
+			}
+		}
+	}
+	s.deadline = nextDeadline
+}
+
+func (s *pollServer) Run() {
+	var scratch [100]byte
+	s.Lock()
+	defer s.Unlock()
+	for {
+		var timeout int64 // nsec to wait for or 0 for none
+		if s.deadline > 0 {
+			timeout = s.deadline - time.Now().UnixNano()
+			if timeout <= 0 {
+				s.CheckDeadlines()
+				continue
+			}
+		}
+		fd, mode, err := s.poll.WaitFD(s, timeout)
+		if err != nil {
+			print("pollServer WaitFD: ", err.Error(), "\n")
+			return
+		}
+		if fd < 0 {
+			// Timeout happened.
+			s.CheckDeadlines()
+			continue
+		}
+		if fd == int(s.pr.Fd()) {
+			// Drain our wakeup pipe (we could loop here,
+			// but it's unlikely that there are more than
+			// len(scratch) wakeup calls).
+			s.pr.Read(scratch[0:])
+			s.CheckDeadlines()
+		} else {
+			pd := s.LookupFD(fd, mode)
+			if pd == nil {
+				// This can happen because the WaitFD runs without
+				// holding s's lock, so there might be a pending wakeup
+				// for an fd that has been evicted.  No harm done.
+				continue
+			}
+			s.WakeFD(pd, mode, nil)
+		}
+	}
+}
+
+func (pd *pollDesc) Close() {
+}
+
+func (pd *pollDesc) Lock() {
+	pd.pollServer.Lock()
+}
+
+func (pd *pollDesc) Unlock() {
+	pd.pollServer.Unlock()
+}
+
+func (pd *pollDesc) Wakeup() {
+	pd.pollServer.Wakeup()
+}
+
+func (pd *pollDesc) PrepareRead() error {
+	if pd.rdeadline.expired() {
+		return errTimeout
+	}
+	return nil
+}
+
+func (pd *pollDesc) PrepareWrite() error {
+	if pd.wdeadline.expired() {
+		return errTimeout
+	}
+	return nil
+}
+
+func (pd *pollDesc) WaitRead() error {
+	err := pd.pollServer.AddFD(pd, 'r')
+	if err == nil {
+		err = <-pd.cr
+	}
+	return err
+}
+
+func (pd *pollDesc) WaitWrite() error {
+	err := pd.pollServer.AddFD(pd, 'w')
+	if err == nil {
+		err = <-pd.cw
+	}
+	return err
+}
+
+func (pd *pollDesc) Evict() bool {
+	return pd.pollServer.Evict(pd)
+}
+
+// Spread network FDs over several pollServers.
+
+var pollMaxN int
+var pollservers []*pollServer
+var startServersOnce []func()
+
+var canCancelIO = true // used for testing current package
+
+func sysInit() {
+	pollMaxN = runtime.NumCPU()
+	if pollMaxN > 8 {
+		pollMaxN = 8 // No improvement then.
+	}
+	pollservers = make([]*pollServer, pollMaxN)
+	startServersOnce = make([]func(), pollMaxN)
+	for i := 0; i < pollMaxN; i++ {
+		k := i
+		once := new(sync.Once)
+		startServersOnce[i] = func() { once.Do(func() { startServer(k) }) }
+	}
+}
+
+func startServer(k int) {
+	p, err := newPollServer()
+	if err != nil {
+		panic(err)
+	}
+	pollservers[k] = p
+}
+
+func (pd *pollDesc) Init(fd *netFD) error {
+	pollN := runtime.GOMAXPROCS(0)
+	if pollN > pollMaxN {
+		pollN = pollMaxN
+	}
+	k := fd.sysfd % pollN
+	startServersOnce[k]()
+	pd.sysfd = fd.sysfd
+	pd.pollServer = pollservers[k]
+	pd.cr = make(chan error, 1)
+	pd.cw = make(chan error, 1)
+	return nil
+}
+
+// TODO(dfc) these unused error returns could be removed
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	fd.pd.rdeadline.setTime(t)
+	return nil
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	fd.pd.wdeadline.setTime(t)
+	return nil
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	setReadDeadline(fd, t)
+	setWriteDeadline(fd, t)
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix.go gcc-4.8.1/libgo/go/net/fd_unix.go
--- gcc-4.8.1.orig/libgo/go/net/fd_unix.go	2013-02-06 22:40:18.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_unix.go	2013-10-01 16:06:44.168554280 +0000
@@ -9,7 +9,6 @@
 import (
 	"io"
 	"os"
-	"runtime"
 	"sync"
 	"syscall"
 	"time"
@@ -21,7 +20,7 @@
 	sysmu  sync.Mutex
 	sysref int
 
-	// must lock both sysmu and pollserver to write
+	// must lock both sysmu and pollDesc to write
 	// can lock either to read
 	closing bool
 
@@ -31,8 +30,6 @@
 	sotype      int
 	isConnected bool
 	sysfile     *os.File
-	cr          chan error
-	cw          chan error
 	net         string
 	laddr       Addr
 	raddr       Addr
@@ -40,269 +37,16 @@
 	// serialize access to Read and Write methods
 	rio, wio sync.Mutex
 
-	// read and write deadlines
-	rdeadline, wdeadline deadline
-
-	// owned by fd wait server
-	ncr, ncw int
-
 	// wait server
-	pollServer *pollServer
+	pd pollDesc
 }
 
-// A pollServer helps FDs determine when to retry a non-blocking
-// read or write after they get EAGAIN.  When an FD needs to wait,
-// call s.WaitRead() or s.WaitWrite() to pass the request to the poll server.
-// When the pollServer finds that i/o on FD should be possible
-// again, it will send on fd.cr/fd.cw to wake any waiting goroutines.
-//
-// To avoid races in closing, all fd operations are locked and
-// refcounted. when netFD.Close() is called, it calls syscall.Shutdown
-// and sets a closing flag. Only when the last reference is removed
-// will the fd be closed.
-
-type pollServer struct {
-	pr, pw     *os.File
-	poll       *pollster // low-level OS hooks
-	sync.Mutex           // controls pending and deadline
-	pending    map[int]*netFD
-	deadline   int64 // next deadline (nsec since 1970)
-}
-
-func (s *pollServer) AddFD(fd *netFD, mode int) error {
-	s.Lock()
-	intfd := fd.sysfd
-	if intfd < 0 || fd.closing {
-		// fd closed underfoot
-		s.Unlock()
-		return errClosing
-	}
-
-	var t int64
-	key := intfd << 1
-	if mode == 'r' {
-		fd.ncr++
-		t = fd.rdeadline.value()
-	} else {
-		fd.ncw++
-		key++
-		t = fd.wdeadline.value()
-	}
-	s.pending[key] = fd
-	doWakeup := false
-	if t > 0 && (s.deadline == 0 || t < s.deadline) {
-		s.deadline = t
-		doWakeup = true
-	}
-
-	wake, err := s.poll.AddFD(intfd, mode, false)
-	s.Unlock()
-	if err != nil {
-		return &OpError{"addfd", fd.net, fd.laddr, err}
-	}
-	if wake || doWakeup {
-		s.Wakeup()
-	}
-	return nil
-}
-
-// Evict evicts fd from the pending list, unblocking
-// any I/O running on fd.  The caller must have locked
-// pollserver.
-func (s *pollServer) Evict(fd *netFD) {
-	doWakeup := false
-	if s.pending[fd.sysfd<<1] == fd {
-		s.WakeFD(fd, 'r', errClosing)
-		if s.poll.DelFD(fd.sysfd, 'r') {
-			doWakeup = true
-		}
-		delete(s.pending, fd.sysfd<<1)
-	}
-	if s.pending[fd.sysfd<<1|1] == fd {
-		s.WakeFD(fd, 'w', errClosing)
-		if s.poll.DelFD(fd.sysfd, 'w') {
-			doWakeup = true
-		}
-		delete(s.pending, fd.sysfd<<1|1)
-	}
-	if doWakeup {
-		s.Wakeup()
-	}
-}
-
-var wakeupbuf [1]byte
-
-func (s *pollServer) Wakeup() { s.pw.Write(wakeupbuf[0:]) }
-
-func (s *pollServer) LookupFD(fd int, mode int) *netFD {
-	key := fd << 1
-	if mode == 'w' {
-		key++
-	}
-	netfd, ok := s.pending[key]
-	if !ok {
-		return nil
-	}
-	delete(s.pending, key)
-	return netfd
-}
-
-func (s *pollServer) WakeFD(fd *netFD, mode int, err error) {
-	if mode == 'r' {
-		for fd.ncr > 0 {
-			fd.ncr--
-			fd.cr <- err
-		}
-	} else {
-		for fd.ncw > 0 {
-			fd.ncw--
-			fd.cw <- err
-		}
-	}
-}
-
-func (s *pollServer) CheckDeadlines() {
-	now := time.Now().UnixNano()
-	// TODO(rsc): This will need to be handled more efficiently,
-	// probably with a heap indexed by wakeup time.
-
-	var nextDeadline int64
-	for key, fd := range s.pending {
-		var t int64
-		var mode int
-		if key&1 == 0 {
-			mode = 'r'
-		} else {
-			mode = 'w'
-		}
-		if mode == 'r' {
-			t = fd.rdeadline.value()
-		} else {
-			t = fd.wdeadline.value()
-		}
-		if t > 0 {
-			if t <= now {
-				delete(s.pending, key)
-				if mode == 'r' {
-					s.poll.DelFD(fd.sysfd, mode)
-				} else {
-					s.poll.DelFD(fd.sysfd, mode)
-				}
-				s.WakeFD(fd, mode, errTimeout)
-			} else if nextDeadline == 0 || t < nextDeadline {
-				nextDeadline = t
-			}
-		}
-	}
-	s.deadline = nextDeadline
-}
-
-func (s *pollServer) Run() {
-	var scratch [100]byte
-	s.Lock()
-	defer s.Unlock()
-	for {
-		var timeout int64 // nsec to wait for or 0 for none
-		if s.deadline > 0 {
-			timeout = s.deadline - time.Now().UnixNano()
-			if timeout <= 0 {
-				s.CheckDeadlines()
-				continue
-			}
-		}
-		fd, mode, err := s.poll.WaitFD(s, timeout)
-		if err != nil {
-			print("pollServer WaitFD: ", err.Error(), "\n")
-			return
-		}
-		if fd < 0 {
-			// Timeout happened.
-			s.CheckDeadlines()
-			continue
-		}
-		if fd == int(s.pr.Fd()) {
-			// Drain our wakeup pipe (we could loop here,
-			// but it's unlikely that there are more than
-			// len(scratch) wakeup calls).
-			s.pr.Read(scratch[0:])
-			s.CheckDeadlines()
-		} else {
-			netfd := s.LookupFD(fd, mode)
-			if netfd == nil {
-				// This can happen because the WaitFD runs without
-				// holding s's lock, so there might be a pending wakeup
-				// for an fd that has been evicted.  No harm done.
-				continue
-			}
-			s.WakeFD(netfd, mode, nil)
-		}
-	}
-}
-
-func (s *pollServer) WaitRead(fd *netFD) error {
-	err := s.AddFD(fd, 'r')
-	if err == nil {
-		err = <-fd.cr
-	}
-	return err
-}
-
-func (s *pollServer) WaitWrite(fd *netFD) error {
-	err := s.AddFD(fd, 'w')
-	if err == nil {
-		err = <-fd.cw
-	}
-	return err
-}
-
-// Network FD methods.
-// Spread network FDs over several pollServers.
-
-var pollMaxN int
-var pollservers []*pollServer
-var startServersOnce []func()
-
-var canCancelIO = true // used for testing current package
-
-func sysInit() {
-	pollMaxN = runtime.NumCPU()
-	if pollMaxN > 8 {
-		pollMaxN = 8 // No improvement then.
-	}
-	pollservers = make([]*pollServer, pollMaxN)
-	startServersOnce = make([]func(), pollMaxN)
-	for i := 0; i < pollMaxN; i++ {
-		k := i
-		once := new(sync.Once)
-		startServersOnce[i] = func() { once.Do(func() { startServer(k) }) }
-	}
-}
-
-func startServer(k int) {
-	p, err := newPollServer()
-	if err != nil {
-		panic(err)
-	}
-	pollservers[k] = p
-}
-
-func server(fd int) *pollServer {
-	pollN := runtime.GOMAXPROCS(0)
-	if pollN > pollMaxN {
-		pollN = pollMaxN
-	}
-	k := fd % pollN
-	startServersOnce[k]()
-	return pollservers[k]
-}
-
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
-	deadline := time.Now().Add(timeout)
-	_, addri, err := resolveNetAddr("dial", net, addr, deadline)
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
+	ra, err := resolveAddr("dial", net, addr, deadline)
 	if err != nil {
 		return nil, err
 	}
-	return dialAddr(net, addr, addri, deadline)
+	return dial(net, addr, localAddr, ra, deadline)
 }
 
 func newFD(fd, family, sotype int, net string) (*netFD, error) {
@@ -312,9 +56,9 @@
 		sotype: sotype,
 		net:    net,
 	}
-	netfd.cr = make(chan error, 1)
-	netfd.cw = make(chan error, 1)
-	netfd.pollServer = server(fd)
+	if err := netfd.pd.Init(netfd); err != nil {
+		return nil, err
+	}
 	return netfd, nil
 }
 
@@ -335,26 +79,29 @@
 	return fd.net + ":" + ls + "->" + rs
 }
 
-func (fd *netFD) connect(ra syscall.Sockaddr) error {
-	err := syscall.Connect(fd.sysfd, ra)
-	if err == syscall.EINPROGRESS {
-		if err = fd.pollServer.WaitWrite(fd); err != nil {
-			return err
+func (fd *netFD) connect(la, ra syscall.Sockaddr) error {
+	fd.wio.Lock()
+	defer fd.wio.Unlock()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return err
+	}
+	for {
+		err := syscall.Connect(fd.sysfd, ra)
+		if err == nil || err == syscall.EISCONN {
+			break
 		}
-		var e int
-		e, err = syscall.GetsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_ERROR)
-		if err != nil {
-			return os.NewSyscallError("getsockopt", err)
+		if err != syscall.EINPROGRESS && err != syscall.EALREADY && err != syscall.EINTR {
+			return err
 		}
-		if e != 0 {
-			err = syscall.Errno(e)
+		if err = fd.pd.WaitWrite(); err != nil {
+			return err
 		}
 	}
-	return err
+	return nil
 }
 
 // Add a reference to this fd.
-// If closing==true, pollserver must be locked; mark the fd as closing.
+// If closing==true, pollDesc must be locked; mark the fd as closing.
 // Returns an error if the fd cannot be used.
 func (fd *netFD) incref(closing bool) error {
 	fd.sysmu.Lock()
@@ -375,28 +122,38 @@
 func (fd *netFD) decref() {
 	fd.sysmu.Lock()
 	fd.sysref--
-	if fd.closing && fd.sysref == 0 && fd.sysfile != nil {
-		fd.sysfile.Close()
-		fd.sysfile = nil
+	if fd.closing && fd.sysref == 0 {
+		// Poller may want to unregister fd in readiness notification mechanism,
+		// so this must be executed before sysfile.Close().
+		fd.pd.Close()
+		if fd.sysfile != nil {
+			fd.sysfile.Close()
+			fd.sysfile = nil
+		} else {
+			closesocket(fd.sysfd)
+		}
 		fd.sysfd = -1
 	}
 	fd.sysmu.Unlock()
 }
 
 func (fd *netFD) Close() error {
-	fd.pollServer.Lock() // needed for both fd.incref(true) and pollserver.Evict
+	fd.pd.Lock() // needed for both fd.incref(true) and pollDesc.Evict
 	if err := fd.incref(true); err != nil {
-		fd.pollServer.Unlock()
+		fd.pd.Unlock()
 		return err
 	}
 	// Unblock any I/O.  Once it all unblocks and returns,
 	// so that it cannot be referring to fd.sysfd anymore,
 	// the final decref will close fd.sysfd.  This should happen
 	// fairly quickly, since all the I/O is non-blocking, and any
-	// attempts to block in the pollserver will return errClosing.
-	fd.pollServer.Evict(fd)
-	fd.pollServer.Unlock()
+	// attempts to block in the pollDesc will return errClosing.
+	doWakeup := fd.pd.Evict()
+	fd.pd.Unlock()
 	fd.decref()
+	if doWakeup {
+		fd.pd.Wakeup()
+	}
 	return nil
 }
 
@@ -427,16 +184,15 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, &OpError{"read", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, err = syscall.Read(int(fd.sysfd), p)
 		if err != nil {
 			n = 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -457,16 +213,15 @@
 		return 0, nil, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, nil, &OpError{"read", fd.net, fd.laddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, sa, err = syscall.Recvfrom(fd.sysfd, p, 0)
 		if err != nil {
 			n = 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -487,16 +242,15 @@
 		return 0, 0, 0, nil, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, 0, 0, nil, &OpError{"read", fd.net, fd.laddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, oobn, flags, sa, err = syscall.Recvmsg(fd.sysfd, p, oob, 0)
 		if err != nil {
 			// TODO(dfc) should n and oobn be set to 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -524,11 +278,10 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		var n int
 		n, err = syscall.Write(int(fd.sysfd), p[nn:])
 		if n > 0 {
@@ -538,7 +291,7 @@
 			break
 		}
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -564,14 +317,13 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		err = syscall.Sendto(fd.sysfd, p, 0, sa)
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -592,14 +344,13 @@
 		return 0, 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		err = syscall.Sendmsg(fd.sysfd, p, oob, sa, 0)
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -615,6 +366,8 @@
 }
 
 func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (netfd *netFD, err error) {
+	fd.rio.Lock()
+	defer fd.rio.Unlock()
 	if err := fd.incref(false); err != nil {
 		return nil, err
 	}
@@ -622,11 +375,14 @@
 
 	var s int
 	var rsa syscall.Sockaddr
+	if err = fd.pd.PrepareRead(); err != nil {
+		return nil, &OpError{"accept", fd.net, fd.laddr, err}
+	}
 	for {
 		s, rsa, err = accept(fd.sysfd)
 		if err != nil {
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			} else if err == syscall.ECONNABORTED {
@@ -659,6 +415,9 @@
 	syscall.ForkLock.RUnlock()
 
 	// We want blocking mode for the new fd, hence the double negative.
+	// This also puts the old fd into blocking mode, meaning that
+	// I/O will block the thread instead of letting us use the epoll server.
+	// Everything will still work, just with more threads.
 	if err = syscall.SetNonblock(ns, false); err != nil {
 		return nil, &OpError{"setnonblock", fd.net, fd.laddr, err}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go gcc-4.8.1/libgo/go/net/fd_unix_test.go
--- gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_unix_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -12,54 +12,6 @@
 	"testing"
 )
 
-// Issue 3590. netFd.AddFD should return an error
-// from the underlying pollster rather than panicing.
-func TestAddFDReturnsError(t *testing.T) {
-	ln := newLocalListener(t).(*TCPListener)
-	defer ln.Close()
-	connected := make(chan bool)
-	go func() {
-		for {
-			c, err := ln.Accept()
-			if err != nil {
-				return
-			}
-			connected <- true
-			defer c.Close()
-		}
-	}()
-
-	c, err := DialTCP("tcp", nil, ln.Addr().(*TCPAddr))
-	if err != nil {
-		t.Fatal(err)
-	}
-	defer c.Close()
-	<-connected
-
-	// replace c's pollServer with a closed version.
-	ps, err := newPollServer()
-	if err != nil {
-		t.Fatal(err)
-	}
-	ps.poll.Close()
-	c.conn.fd.pollServer = ps
-
-	var b [1]byte
-	_, err = c.Read(b[:])
-	if err, ok := err.(*OpError); ok {
-		if err.Op == "addfd" {
-			return
-		}
-		if err, ok := err.Err.(*OpError); ok {
-			// the err is sometimes wrapped by another OpError
-			if err.Op == "addfd" {
-				return
-			}
-		}
-	}
-	t.Error("unexpected error:", err)
-}
-
 var chkReadErrTests = []struct {
 	n        int
 	err      error
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_windows.go gcc-4.8.1/libgo/go/net/fd_windows.go
--- gcc-4.8.1.orig/libgo/go/net/fd_windows.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/fd_windows.go	2013-10-01 16:06:44.168554280 +0000
@@ -37,6 +37,7 @@
 	}
 	canCancelIO = syscall.LoadCancelIoEx() == nil
 	if syscall.LoadGetAddrInfo() == nil {
+		lookupPort = newLookupPort
 		lookupIP = newLookupIP
 	}
 }
@@ -53,18 +54,17 @@
 	return syscall.LoadConnectEx() == nil
 }
 
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
 	if !canUseConnectEx(net) {
 		// Use the relatively inefficient goroutine-racing
 		// implementation of DialTimeout.
-		return dialTimeoutRace(net, addr, timeout)
+		return resolveAndDialChannel(net, addr, localAddr, deadline)
 	}
-	deadline := time.Now().Add(timeout)
-	_, addri, err := resolveNetAddr("dial", net, addr, deadline)
+	ra, err := resolveAddr("dial", net, addr, deadline)
 	if err != nil {
 		return nil, err
 	}
-	return dialAddr(net, addr, addri, deadline)
+	return dial(net, addr, localAddr, ra, deadline)
 }
 
 // Interface for all IO operations.
@@ -137,12 +137,18 @@
 	iocp syscall.Handle
 }
 
+func runtime_blockingSyscallHint()
+
 func (s *resultSrv) Run() {
 	var o *syscall.Overlapped
 	var key uint32
 	var r ioResult
 	for {
-		r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, syscall.INFINITE)
+		r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, 0)
+		if r.err == syscall.Errno(syscall.WAIT_TIMEOUT) && o == nil {
+			runtime_blockingSyscallHint()
+			r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, syscall.INFINITE)
+		}
 		switch {
 		case r.err == nil:
 			// Dequeued successfully completed IO packet.
@@ -358,22 +364,23 @@
 	return "ConnectEx"
 }
 
-func (fd *netFD) connect(ra syscall.Sockaddr) error {
+func (fd *netFD) connect(la, ra syscall.Sockaddr) error {
 	if !canUseConnectEx(fd.net) {
 		return syscall.Connect(fd.sysfd, ra)
 	}
 	// ConnectEx windows API requires an unconnected, previously bound socket.
-	var la syscall.Sockaddr
-	switch ra.(type) {
-	case *syscall.SockaddrInet4:
-		la = &syscall.SockaddrInet4{}
-	case *syscall.SockaddrInet6:
-		la = &syscall.SockaddrInet6{}
-	default:
-		panic("unexpected type in connect")
-	}
-	if err := syscall.Bind(fd.sysfd, la); err != nil {
-		return err
+	if la == nil {
+		switch ra.(type) {
+		case *syscall.SockaddrInet4:
+			la = &syscall.SockaddrInet4{}
+		case *syscall.SockaddrInet6:
+			la = &syscall.SockaddrInet6{}
+		default:
+			panic("unexpected type in connect")
+		}
+		if err := syscall.Bind(fd.sysfd, la); err != nil {
+			return err
+		}
 	}
 	// Call ConnectEx API.
 	var o connectOp
@@ -618,15 +625,10 @@
 	defer fd.decref()
 
 	// Get new socket.
-	// See ../syscall/exec_unix.go for description of ForkLock.
-	syscall.ForkLock.RLock()
-	s, err := syscall.Socket(fd.family, fd.sotype, 0)
+	s, err := sysSocket(fd.family, fd.sotype, 0)
 	if err != nil {
-		syscall.ForkLock.RUnlock()
 		return nil, &OpError{"socket", fd.net, fd.laddr, err}
 	}
-	syscall.CloseOnExec(s)
-	syscall.ForkLock.RUnlock()
 
 	// Associate our new socket with IOCP.
 	onceStartServer.Do(startServer)
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_plan9.go gcc-4.8.1/libgo/go/net/file_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/file_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/file_plan9.go	2013-10-01 16:06:44.168554280 +0000
@@ -5,16 +5,139 @@
 package net
 
 import (
+	"errors"
+	"io"
 	"os"
 	"syscall"
 )
 
+func (fd *netFD) status(ln int) (string, error) {
+	if !fd.ok() {
+		return "", syscall.EINVAL
+	}
+
+	status, err := os.Open(fd.dir + "/status")
+	if err != nil {
+		return "", err
+	}
+	defer status.Close()
+	buf := make([]byte, ln)
+	n, err := io.ReadFull(status, buf[:])
+	if err != nil {
+		return "", err
+	}
+	return string(buf[:n]), nil
+}
+
+func newFileFD(f *os.File) (net *netFD, err error) {
+	var ctl *os.File
+	close := func(fd int) {
+		if err != nil {
+			syscall.Close(fd)
+		}
+	}
+
+	path, err := syscall.Fd2path(int(f.Fd()))
+	if err != nil {
+		return nil, os.NewSyscallError("fd2path", err)
+	}
+	comp := splitAtBytes(path, "/")
+	n := len(comp)
+	if n < 3 || comp[0] != "net" {
+		return nil, syscall.EPLAN9
+	}
+
+	name := comp[2]
+	switch file := comp[n-1]; file {
+	case "ctl", "clone":
+		syscall.ForkLock.RLock()
+		fd, err := syscall.Dup(int(f.Fd()), -1)
+		syscall.ForkLock.RUnlock()
+		if err != nil {
+			return nil, os.NewSyscallError("dup", err)
+		}
+		defer close(fd)
+
+		dir := "/net/" + comp[n-2]
+		ctl = os.NewFile(uintptr(fd), dir+"/"+file)
+		ctl.Seek(0, 0)
+		var buf [16]byte
+		n, err := ctl.Read(buf[:])
+		if err != nil {
+			return nil, err
+		}
+		name = string(buf[:n])
+	default:
+		if len(comp) < 4 {
+			return nil, errors.New("could not find control file for connection")
+		}
+		dir := "/net/" + comp[1] + "/" + name
+		ctl, err = os.OpenFile(dir+"/ctl", os.O_RDWR, 0)
+		if err != nil {
+			return nil, err
+		}
+		defer close(int(ctl.Fd()))
+	}
+	dir := "/net/" + comp[1] + "/" + name
+	laddr, err := readPlan9Addr(comp[1], dir+"/local")
+	if err != nil {
+		return nil, err
+	}
+	return newFD(comp[1], name, ctl, nil, laddr, nil), nil
+}
+
+func newFileConn(f *os.File) (c Conn, err error) {
+	fd, err := newFileFD(f)
+	if err != nil {
+		return nil, err
+	}
+	if !fd.ok() {
+		return nil, syscall.EINVAL
+	}
+
+	fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
+	if err != nil {
+		return nil, err
+	}
+
+	switch fd.laddr.(type) {
+	case *TCPAddr:
+		return newTCPConn(fd), nil
+	case *UDPAddr:
+		return newUDPConn(fd), nil
+	}
+	return nil, syscall.EPLAN9
+}
+
+func newFileListener(f *os.File) (l Listener, err error) {
+	fd, err := newFileFD(f)
+	if err != nil {
+		return nil, err
+	}
+	switch fd.laddr.(type) {
+	case *TCPAddr:
+	default:
+		return nil, syscall.EPLAN9
+	}
+
+	// check that file corresponds to a listener
+	s, err := fd.status(len("Listen"))
+	if err != nil {
+		return nil, err
+	}
+	if s != "Listen" {
+		return nil, errors.New("file does not represent a listener")
+	}
+
+	return &TCPListener{fd}, nil
+}
+
 // FileConn returns a copy of the network connection corresponding to
 // the open file f.  It is the caller's responsibility to close f when
 // finished.  Closing c does not affect f, and closing f does not
 // affect c.
 func FileConn(f *os.File) (c Conn, err error) {
-	return nil, syscall.EPLAN9
+	return newFileConn(f)
 }
 
 // FileListener returns a copy of the network listener corresponding
@@ -22,7 +145,7 @@
 // when finished.  Closing l does not affect f, and closing f does not
 // affect l.
 func FileListener(f *os.File) (l Listener, err error) {
-	return nil, syscall.EPLAN9
+	return newFileListener(f)
 }
 
 // FilePacketConn returns a copy of the packet network connection
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_test.go gcc-4.8.1/libgo/go/net/file_test.go
--- gcc-4.8.1.orig/libgo/go/net/file_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/file_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -89,7 +89,7 @@
 
 func TestFileListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
+	case "windows":
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_windows.go gcc-4.8.1/libgo/go/net/file_windows.go
--- gcc-4.8.1.orig/libgo/go/net/file_windows.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/file_windows.go	2013-10-01 16:06:44.168554280 +0000
@@ -9,16 +9,28 @@
 	"syscall"
 )
 
+// FileConn returns a copy of the network connection corresponding to
+// the open file f.  It is the caller's responsibility to close f when
+// finished.  Closing c does not affect f, and closing f does not
+// affect c.
 func FileConn(f *os.File) (c Conn, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FileConn", syscall.EWINDOWS)
 }
 
+// FileListener returns a copy of the network listener corresponding
+// to the open file f.  It is the caller's responsibility to close l
+// when finished.  Closing l does not affect f, and closing f does not
+// affect l.
 func FileListener(f *os.File) (l Listener, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FileListener", syscall.EWINDOWS)
 }
 
+// FilePacketConn returns a copy of the packet network connection
+// corresponding to the open file f.  It is the caller's
+// responsibility to close f when finished.  Closing c does not affect
+// f, and closing f does not affect c.
 func FilePacketConn(f *os.File) (c PacketConn, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FilePacketConn", syscall.EWINDOWS)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go gcc-4.8.1/libgo/go/net/http/cgi/host_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cgi/host_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -19,7 +19,6 @@
 	"runtime"
 	"strconv"
 	"strings"
-	"syscall"
 	"testing"
 	"time"
 )
@@ -340,11 +339,7 @@
 	}
 
 	childRunning := func() bool {
-		p, err := os.FindProcess(pid)
-		if err != nil {
-			return false
-		}
-		return p.Signal(syscall.Signal(0)) == nil
+		return isProcessRunning(t, pid)
 	}
 
 	if !childRunning() {
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -0,0 +1,21 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !plan9
+
+package cgi
+
+import (
+	"os"
+	"syscall"
+	"testing"
+)
+
+func isProcessRunning(t *testing.T, pid int) bool {
+	p, err := os.FindProcess(pid)
+	if err != nil {
+		return false
+	}
+	return p.Signal(syscall.Signal(0)) == nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi	2013-10-01 16:06:44.168554280 +0000
@@ -24,7 +24,8 @@
 print "\r\n";
 
 if ($params->{"bigresponse"}) {
-    for (1..1024) {
+    # 17 MB, for OS X: golang.org/issue/4958
+    for (1..(17 * 1024)) {
         print "A" x 1024, "\r\n";
     }
     exit 0;
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client.go gcc-4.8.1/libgo/go/net/http/client.go
--- gcc-4.8.1.orig/libgo/go/net/http/client.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/client.go	2013-10-01 16:06:44.168554280 +0000
@@ -19,12 +19,16 @@
 	"strings"
 )
 
-// A Client is an HTTP client. Its zero value (DefaultClient) is a usable client
-// that uses DefaultTransport.
+// A Client is an HTTP client. Its zero value (DefaultClient) is a
+// usable client that uses DefaultTransport.
 //
-// The Client's Transport typically has internal state (cached
-// TCP connections), so Clients should be reused instead of created as
+// The Client's Transport typically has internal state (cached TCP
+// connections), so Clients should be reused instead of created as
 // needed. Clients are safe for concurrent use by multiple goroutines.
+//
+// A Client is higher-level than a RoundTripper (such as Transport)
+// and additionally handles HTTP details such as cookies and
+// redirects.
 type Client struct {
 	// Transport specifies the mechanism by which individual
 	// HTTP requests are made.
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client_test.go gcc-4.8.1/libgo/go/net/http/client_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/client_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/client_test.go	2013-10-01 16:06:44.168554280 +0000
@@ -51,10 +51,10 @@
 			return b, err
 		}
 	}
-	panic("unreachable")
 }
 
 func TestClient(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(robotsTxtHandler)
 	defer ts.Close()
 
@@ -72,6 +72,7 @@
 }
 
 func TestClientHead(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(robotsTxtHandler)
 	defer ts.Close()
 
@@ -94,6 +95,7 @@
 }
 
 func TestGetRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 	url := "http://dummy.faketld/"
@@ -110,6 +112,7 @@
 }
 
 func TestPostRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 
@@ -136,6 +139,7 @@
 }
 
 func TestPostFormRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 
@@ -176,7 +180,8 @@
 	}
 }
 
-func TestRedirects(t *testing.T) {
+func TestClientRedirects(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		n, _ := strconv.Atoi(r.FormValue("n"))
@@ -223,6 +228,7 @@
 	if err != nil {
 		t.Fatalf("Get error: %v", err)
 	}
+	res.Body.Close()
 	finalUrl := res.Request.URL.String()
 	if e, g := "<nil>", fmt.Sprintf("%v", err); e != g {
 		t.Errorf("with custom client, expected error %q, got %q", e, g)
@@ -242,12 +248,14 @@
 	if res == nil {
 		t.Fatalf("Expected a non-nil Response on CheckRedirect failure (http://golang.org/issue/3795)")
 	}
+	res.Body.Close()
 	if res.Header.Get("Location") == "" {
 		t.Errorf("no Location header in Response")
 	}
 }
 
 func TestPostRedirects(t *testing.T) {
+	defer afterTest(t)
 	var log struct {
 		sync.Mutex
 		bytes.Buffer
@@ -265,6 +273,7 @@
 			w.WriteHeader(code)
 		}
 	}))
+	defer ts.Close()
 	tests := []struct {
 		suffix string
 		want   int // response code
@@ -364,6 +373,7 @@
 }
 
 func TestRedirectCookiesOnRequest(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(echoCookiesRedirectHandler)
 	defer ts.Close()
@@ -381,6 +391,7 @@
 }
 
 func TestRedirectCookiesJar(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(echoCookiesRedirectHandler)
 	defer ts.Close()
@@ -393,6 +404,7 @@
 	if err != nil {
 		t.Fatalf("Get: %v", err)
 	}
+	resp.Body.Close()
 	matchReturnedCookies(t, expectedCookies, resp.Cookies())
 }
 
@@ -416,6 +428,7 @@
 }
 
 func TestJarCalls(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		pathSuffix := r.RequestURI[1:]
 		if r.RequestURI == "/nosetcookie" {
@@ -479,6 +492,7 @@
 }
 
 func TestStreamingGet(t *testing.T) {
+	defer afterTest(t)
 	say := make(chan string)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.(Flusher).Flush()
@@ -529,6 +543,7 @@
 // TestClientWrites verifies that client requests are buffered and we
 // don't send a TCP packet per line of the http request + body.
 func TestClientWrites(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 	}))
 	defer ts.Close()
@@ -562,6 +577,7 @@
 }
 
 func TestClientInsecureTransport(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Write([]byte("Hello"))
 	}))
@@ -576,15 +592,20 @@
 				InsecureSkipVerify: insecure,
 			},
 		}
+		defer tr.CloseIdleConnections()
 		c := &Client{Transport: tr}
-		_, err := c.Get(ts.URL)
+		res, err := c.Get(ts.URL)
 		if (err == nil) != insecure {
 			t.Errorf("insecure=%v: got unexpected err=%v", insecure, err)
 		}
+		if res != nil {
+			res.Body.Close()
+		}
 	}
 }
 
 func TestClientErrorWithRequestURI(t *testing.T) {
+	defer afterTest(t)
 	req, _ := NewRequest("GET", "http://localhost:1234/", nil)
 	req.RequestURI = "/this/field/is/illegal/and/should/error/"
 	_, err := DefaultClient.Do(req)
@@ -613,6 +634,7 @@
 }
 
 func TestClientWithCorrectTLSServerName(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.TLS.ServerName != "127.0.0.1" {
 			t.Errorf("expected client to set ServerName 127.0.0.1, got: %q", r.TLS.ServerName)
@@ -627,6 +649,7 @@
 }
 
 func TestClientWithIncorrectTLSServerName(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	defer ts.Close()
 
@@ -644,6 +667,7 @@
 
 // Verify Response.ContentLength is populated. http://golang.org/issue/4126
 func TestClientHeadContentLength(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if v := r.FormValue("cl"); v != "" {
 			w.Header().Set("Content-Length", v)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go	2013-10-01 16:06:44.172554280 +0000
@@ -0,0 +1,497 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
+package cookiejar
+
+import (
+	"errors"
+	"fmt"
+	"net"
+	"net/http"
+	"net/url"
+	"sort"
+	"strings"
+	"sync"
+	"time"
+)
+
+// PublicSuffixList provides the public suffix of a domain. For example:
+//      - the public suffix of "example.com" is "com",
+//      - the public suffix of "foo1.foo2.foo3.co.uk" is "co.uk", and
+//      - the public suffix of "bar.pvt.k12.ma.us" is "pvt.k12.ma.us".
+//
+// Implementations of PublicSuffixList must be safe for concurrent use by
+// multiple goroutines.
+//
+// An implementation that always returns "" is valid and may be useful for
+// testing but it is not secure: it means that the HTTP server for foo.com can
+// set a cookie for bar.com.
+//
+// A public suffix list implementation is in the package
+// code.google.com/p/go.net/publicsuffix.
+type PublicSuffixList interface {
+	// PublicSuffix returns the public suffix of domain.
+	//
+	// TODO: specify which of the caller and callee is responsible for IP
+	// addresses, for leading and trailing dots, for case sensitivity, and
+	// for IDN/Punycode.
+	PublicSuffix(domain string) string
+
+	// String returns a description of the source of this public suffix
+	// list. The description will typically contain something like a time
+	// stamp or version number.
+	String() string
+}
+
+// Options are the options for creating a new Jar.
+type Options struct {
+	// PublicSuffixList is the public suffix list that determines whether
+	// an HTTP server can set a cookie for a domain.
+	//
+	// A nil value is valid and may be useful for testing but it is not
+	// secure: it means that the HTTP server for foo.co.uk can set a cookie
+	// for bar.co.uk.
+	PublicSuffixList PublicSuffixList
+}
+
+// Jar implements the http.CookieJar interface from the net/http package.
+type Jar struct {
+	psList PublicSuffixList
+
+	// mu locks the remaining fields.
+	mu sync.Mutex
+
+	// entries is a set of entries, keyed by their eTLD+1 and subkeyed by
+	// their name/domain/path.
+	entries map[string]map[string]entry
+
+	// nextSeqNum is the next sequence number assigned to a new cookie
+	// created SetCookies.
+	nextSeqNum uint64
+}
+
+// New returns a new cookie jar. A nil *Options is equivalent to a zero
+// Options.
+func New(o *Options) (*Jar, error) {
+	jar := &Jar{
+		entries: make(map[string]map[string]entry),
+	}
+	if o != nil {
+		jar.psList = o.PublicSuffixList
+	}
+	return jar, nil
+}
+
+// entry is the internal representation of a cookie.
+//
+// This struct type is not used outside of this package per se, but the exported
+// fields are those of RFC 6265.
+type entry struct {
+	Name       string
+	Value      string
+	Domain     string
+	Path       string
+	Secure     bool
+	HttpOnly   bool
+	Persistent bool
+	HostOnly   bool
+	Expires    time.Time
+	Creation   time.Time
+	LastAccess time.Time
+
+	// seqNum is a sequence number so that Cookies returns cookies in a
+	// deterministic order, even for cookies that have equal Path length and
+	// equal Creation time. This simplifies testing.
+	seqNum uint64
+}
+
+// Id returns the domain;path;name triple of e as an id.
+func (e *entry) id() string {
+	return fmt.Sprintf("%s;%s;%s", e.Domain, e.Path, e.Name)
+}
+
+// shouldSend determines whether e's cookie qualifies to be included in a
+// request to host/path. It is the caller's responsibility to check if the
+// cookie is expired.
+func (e *entry) shouldSend(https bool, host, path string) bool {
+	return e.domainMatch(host) && e.pathMatch(path) && (https || !e.Secure)
+}
+
+// domainMatch implements "domain-match" of RFC 6265 section 5.1.3.
+func (e *entry) domainMatch(host string) bool {
+	if e.Domain == host {
+		return true
+	}
+	return !e.HostOnly && hasDotSuffix(host, e.Domain)
+}
+
+// pathMatch implements "path-match" according to RFC 6265 section 5.1.4.
+func (e *entry) pathMatch(requestPath string) bool {
+	if requestPath == e.Path {
+		return true
+	}
+	if strings.HasPrefix(requestPath, e.Path) {
+		if e.Path[len(e.Path)-1] == '/' {
+			return true // The "/any/" matches "/any/path" case.
+		} else if requestPath[len(e.Path)] == '/' {
+			return true // The "/any" matches "/any/path" case.
+		}
+	}
+	return false
+}
+
+// hasDotSuffix returns whether s ends in "."+suffix.
+func hasDotSuffix(s, suffix string) bool {
+	return len(s) > len(suffix) && s[len(s)-len(suffix)-1] == '.' && s[len(s)-len(suffix):] == suffix
+}
+
+// byPathLength is a []entry sort.Interface that sorts according to RFC 6265
+// section 5.4 point 2: by longest path and then by earliest creation time.
+type byPathLength []entry
+
+func (s byPathLength) Len() int { return len(s) }
+
+func (s byPathLength) Less(i, j int) bool {
+	if len(s[i].Path) != len(s[j].Path) {
+		return len(s[i].Path) > len(s[j].Path)
+	}
+	if !s[i].Creation.Equal(s[j].Creation) {
+		return s[i].Creation.Before(s[j].Creation)
+	}
+	return s[i].seqNum < s[j].seqNum
+}
+
+func (s byPathLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+
+// Cookies implements the Cookies method of the http.CookieJar interface.
+//
+// It returns an empty slice if the URL's scheme is not HTTP or HTTPS.
+func (j *Jar) Cookies(u *url.URL) (cookies []*http.Cookie) {
+	return j.cookies(u, time.Now())
+}
+
+// cookies is like Cookies but takes the current time as a parameter.
+func (j *Jar) cookies(u *url.URL, now time.Time) (cookies []*http.Cookie) {
+	if u.Scheme != "http" && u.Scheme != "https" {
+		return cookies
+	}
+	host, err := canonicalHost(u.Host)
+	if err != nil {
+		return cookies
+	}
+	key := jarKey(host, j.psList)
+
+	j.mu.Lock()
+	defer j.mu.Unlock()
+
+	submap := j.entries[key]
+	if submap == nil {
+		return cookies
+	}
+
+	https := u.Scheme == "https"
+	path := u.Path
+	if path == "" {
+		path = "/"
+	}
+
+	modified := false
+	var selected []entry
+	for id, e := range submap {
+		if e.Persistent && !e.Expires.After(now) {
+			delete(submap, id)
+			modified = true
+			continue
+		}
+		if !e.shouldSend(https, host, path) {
+			continue
+		}
+		e.LastAccess = now
+		submap[id] = e
+		selected = append(selected, e)
+		modified = true
+	}
+	if modified {
+		if len(submap) == 0 {
+			delete(j.entries, key)
+		} else {
+			j.entries[key] = submap
+		}
+	}
+
+	sort.Sort(byPathLength(selected))
+	for _, e := range selected {
+		cookies = append(cookies, &http.Cookie{Name: e.Name, Value: e.Value})
+	}
+
+	return cookies
+}
+
+// SetCookies implements the SetCookies method of the http.CookieJar interface.
+//
+// It does nothing if the URL's scheme is not HTTP or HTTPS.
+func (j *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
+	j.setCookies(u, cookies, time.Now())
+}
+
+// setCookies is like SetCookies but takes the current time as parameter.
+func (j *Jar) setCookies(u *url.URL, cookies []*http.Cookie, now time.Time) {
+	if len(cookies) == 0 {
+		return
+	}
+	if u.Scheme != "http" && u.Scheme != "https" {
+		return
+	}
+	host, err := canonicalHost(u.Host)
+	if err != nil {
+		return
+	}
+	key := jarKey(host, j.psList)
+	defPath := defaultPath(u.Path)
+
+	j.mu.Lock()
+	defer j.mu.Unlock()
+
+	submap := j.entries[key]
+
+	modified := false
+	for _, cookie := range cookies {
+		e, remove, err := j.newEntry(cookie, now, defPath, host)
+		if err != nil {
+			continue
+		}
+		id := e.id()
+		if remove {
+			if submap != nil {
+				if _, ok := submap[id]; ok {
+					delete(submap, id)
+					modified = true
+				}
+			}
+			continue
+		}
+		if submap == nil {
+			submap = make(map[string]entry)
+		}
+
+		if old, ok := submap[id]; ok {
+			e.Creation = old.Creation
+			e.seqNum = old.seqNum
+		} else {
+			e.Creation = now
+			e.seqNum = j.nextSeqNum
+			j.nextSeqNum++
+		}
+		e.LastAccess = now
+		submap[id] = e
+		modified = true
+	}
+
+	if modified {
+		if len(submap) == 0 {
+			delete(j.entries, key)
+		} else {
+			j.entries[key] = submap
+		}
+	}
+}
+
+// canonicalHost strips port from host if present and returns the canonicalized
+// host name.
+func canonicalHost(host string) (string, error) {
+	var err error
+	host = strings.ToLower(host)
+	if hasPort(host) {
+		host, _, err = net.SplitHostPort(host)
+		if err != nil {
+			return "", err
+		}
+	}
+	if strings.HasSuffix(host, ".") {
+		// Strip trailing dot from fully qualified domain names.
+		host = host[:len(host)-1]
+	}
+	return toASCII(host)
+}
+
+// hasPort returns whether host contains a port number. host may be a host
+// name, an IPv4 or an IPv6 address.
+func hasPort(host string) bool {
+	colons := strings.Count(host, ":")
+	if colons == 0 {
+		return false
+	}
+	if colons == 1 {
+		return true
+	}
+	return host[0] == '[' && strings.Contains(host, "]:")
+}
+
+// jarKey returns the key to use for a jar.
+func jarKey(host string, psl PublicSuffixList) string {
+	if isIP(host) {
+		return host
+	}
+
+	var i int
+	if psl == nil {
+		i = strings.LastIndex(host, ".")
+		if i == -1 {
+			return host
+		}
+	} else {
+		suffix := psl.PublicSuffix(host)
+		if suffix == host {
+			return host
+		}
+		i = len(host) - len(suffix)
+		if i <= 0 || host[i-1] != '.' {
+			// The provided public suffix list psl is broken.
+			// Storing cookies under host is a safe stopgap.
+			return host
+		}
+	}
+	prevDot := strings.LastIndex(host[:i-1], ".")
+	return host[prevDot+1:]
+}
+
+// isIP returns whether host is an IP address.
+func isIP(host string) bool {
+	return net.ParseIP(host) != nil
+}
+
+// defaultPath returns the directory part of an URL's path according to
+// RFC 6265 section 5.1.4.
+func defaultPath(path string) string {
+	if len(path) == 0 || path[0] != '/' {
+		return "/" // Path is empty or malformed.
+	}
+
+	i := strings.LastIndex(path, "/") // Path starts with "/", so i != -1.
+	if i == 0 {
+		return "/" // Path has the form "/abc".
+	}
+	return path[:i] // Path is either of form "/abc/xyz" or "/abc/xyz/".
+}
+
+// newEntry creates an entry from a http.Cookie c. now is the current time and
+// is compared to c.Expires to determine deletion of c. defPath and host are the
+// default-path and the canonical host name of the URL c was received from.
+//
+// remove is whether the jar should delete this cookie, as it has already
+// expired with respect to now. In this case, e may be incomplete, but it will
+// be valid to call e.id (which depends on e's Name, Domain and Path).
+//
+// A malformed c.Domain will result in an error.
+func (j *Jar) newEntry(c *http.Cookie, now time.Time, defPath, host string) (e entry, remove bool, err error) {
+	e.Name = c.Name
+
+	if c.Path == "" || c.Path[0] != '/' {
+		e.Path = defPath
+	} else {
+		e.Path = c.Path
+	}
+
+	e.Domain, e.HostOnly, err = j.domainAndType(host, c.Domain)
+	if err != nil {
+		return e, false, err
+	}
+
+	// MaxAge takes precedence over Expires.
+	if c.MaxAge < 0 {
+		return e, true, nil
+	} else if c.MaxAge > 0 {
+		e.Expires = now.Add(time.Duration(c.MaxAge) * time.Second)
+		e.Persistent = true
+	} else {
+		if c.Expires.IsZero() {
+			e.Expires = endOfTime
+			e.Persistent = false
+		} else {
+			if !c.Expires.After(now) {
+				return e, true, nil
+			}
+			e.Expires = c.Expires
+			e.Persistent = true
+		}
+	}
+
+	e.Value = c.Value
+	e.Secure = c.Secure
+	e.HttpOnly = c.HttpOnly
+
+	return e, false, nil
+}
+
+var (
+	errIllegalDomain   = errors.New("cookiejar: illegal cookie domain attribute")
+	errMalformedDomain = errors.New("cookiejar: malformed cookie domain attribute")
+	errNoHostname      = errors.New("cookiejar: no host name available (IP only)")
+)
+
+// endOfTime is the time when session (non-persistent) cookies expire.
+// This instant is representable in most date/time formats (not just
+// Go's time.Time) and should be far enough in the future.
+var endOfTime = time.Date(9999, 12, 31, 23, 59, 59, 0, time.UTC)
+
+// domainAndType determines the cookie's domain and hostOnly attribute.
+func (j *Jar) domainAndType(host, domain string) (string, bool, error) {
+	if domain == "" {
+		// No domain attribute in the SetCookie header indicates a
+		// host cookie.
+		return host, true, nil
+	}
+
+	if isIP(host) {
+		// According to RFC 6265 domain-matching includes not being
+		// an IP address.
+		// TODO: This might be relaxed as in common browsers.
+		return "", false, errNoHostname
+	}
+
+	// From here on: If the cookie is valid, it is a domain cookie (with
+	// the one exception of a public suffix below).
+	// See RFC 6265 section 5.2.3.
+	if domain[0] == '.' {
+		domain = domain[1:]
+	}
+
+	if len(domain) == 0 || domain[0] == '.' {
+		// Received either "Domain=." or "Domain=..some.thing",
+		// both are illegal.
+		return "", false, errMalformedDomain
+	}
+	domain = strings.ToLower(domain)
+
+	if domain[len(domain)-1] == '.' {
+		// We received stuff like "Domain=www.example.com.".
+		// Browsers do handle such stuff (actually differently) but
+		// RFC 6265 seems to be clear here (e.g. section 4.1.2.3) in
+		// requiring a reject.  4.1.2.3 is not normative, but
+		// "Domain Matching" (5.1.3) and "Canonicalized Host Names"
+		// (5.1.2) are.
+		return "", false, errMalformedDomain
+	}
+
+	// See RFC 6265 section 5.3 #5.
+	if j.psList != nil {
+		if ps := j.psList.PublicSuffix(domain); ps != "" && !hasDotSuffix(domain, ps) {
+			if host == domain {
+				// This is the one exception in which a cookie
+				// with a domain attribute is a host cookie.
+				return host, true, nil
+			}
+			return "", false, errIllegalDomain
+		}
+	}
+
+	// The domain must domain-match host: www.mycompany.com cannot
+	// set cookies for .ourcompetitors.com.
+	if host != domain && !hasDotSuffix(host, domain) {
+		return "", false, errIllegalDomain
+	}
+
+	return domain, false, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -0,0 +1,1267 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+import (
+	"fmt"
+	"net/http"
+	"net/url"
+	"sort"
+	"strings"
+	"testing"
+	"time"
+)
+
+// tNow is the synthetic current time used as now during testing.
+var tNow = time.Date(2013, 1, 1, 12, 0, 0, 0, time.UTC)
+
+// testPSL implements PublicSuffixList with just two rules: "co.uk"
+// and the default rule "*".
+type testPSL struct{}
+
+func (testPSL) String() string {
+	return "testPSL"
+}
+func (testPSL) PublicSuffix(d string) string {
+	if d == "co.uk" || strings.HasSuffix(d, ".co.uk") {
+		return "co.uk"
+	}
+	return d[strings.LastIndex(d, ".")+1:]
+}
+
+// newTestJar creates an empty Jar with testPSL as the public suffix list.
+func newTestJar() *Jar {
+	jar, err := New(&Options{PublicSuffixList: testPSL{}})
+	if err != nil {
+		panic(err)
+	}
+	return jar
+}
+
+var hasDotSuffixTests = [...]struct {
+	s, suffix string
+}{
+	{"", ""},
+	{"", "."},
+	{"", "x"},
+	{".", ""},
+	{".", "."},
+	{".", ".."},
+	{".", "x"},
+	{".", "x."},
+	{".", ".x"},
+	{".", ".x."},
+	{"x", ""},
+	{"x", "."},
+	{"x", ".."},
+	{"x", "x"},
+	{"x", "x."},
+	{"x", ".x"},
+	{"x", ".x."},
+	{".x", ""},
+	{".x", "."},
+	{".x", ".."},
+	{".x", "x"},
+	{".x", "x."},
+	{".x", ".x"},
+	{".x", ".x."},
+	{"x.", ""},
+	{"x.", "."},
+	{"x.", ".."},
+	{"x.", "x"},
+	{"x.", "x."},
+	{"x.", ".x"},
+	{"x.", ".x."},
+	{"com", ""},
+	{"com", "m"},
+	{"com", "om"},
+	{"com", "com"},
+	{"com", ".com"},
+	{"com", "x.com"},
+	{"com", "xcom"},
+	{"com", "xorg"},
+	{"com", "org"},
+	{"com", "rg"},
+	{"foo.com", ""},
+	{"foo.com", "m"},
+	{"foo.com", "om"},
+	{"foo.com", "com"},
+	{"foo.com", ".com"},
+	{"foo.com", "o.com"},
+	{"foo.com", "oo.com"},
+	{"foo.com", "foo.com"},
+	{"foo.com", ".foo.com"},
+	{"foo.com", "x.foo.com"},
+	{"foo.com", "xfoo.com"},
+	{"foo.com", "xfoo.org"},
+	{"foo.com", "foo.org"},
+	{"foo.com", "oo.org"},
+	{"foo.com", "o.org"},
+	{"foo.com", ".org"},
+	{"foo.com", "org"},
+	{"foo.com", "rg"},
+}
+
+func TestHasDotSuffix(t *testing.T) {
+	for _, tc := range hasDotSuffixTests {
+		got := hasDotSuffix(tc.s, tc.suffix)
+		want := strings.HasSuffix(tc.s, "."+tc.suffix)
+		if got != want {
+			t.Errorf("s=%q, suffix=%q: got %v, want %v", tc.s, tc.suffix, got, want)
+		}
+	}
+}
+
+var canonicalHostTests = map[string]string{
+	"www.example.com":         "www.example.com",
+	"WWW.EXAMPLE.COM":         "www.example.com",
+	"wWw.eXAmple.CoM":         "www.example.com",
+	"www.example.com:80":      "www.example.com",
+	"192.168.0.10":            "192.168.0.10",
+	"192.168.0.5:8080":        "192.168.0.5",
+	"2001:4860:0:2001::68":    "2001:4860:0:2001::68",
+	"[2001:4860:0:::68]:8080": "2001:4860:0:::68",
+	"www.bÃ¼cher.de":           "www.xn--bcher-kva.de",
+	"www.example.com.":        "www.example.com",
+	"[bad.unmatched.bracket:": "error",
+}
+
+func TestCanonicalHost(t *testing.T) {
+	for h, want := range canonicalHostTests {
+		got, err := canonicalHost(h)
+		if want == "error" {
+			if err == nil {
+				t.Errorf("%q: got nil error, want non-nil", h)
+			}
+			continue
+		}
+		if err != nil {
+			t.Errorf("%q: %v", h, err)
+			continue
+		}
+		if got != want {
+			t.Errorf("%q: got %q, want %q", h, got, want)
+			continue
+		}
+	}
+}
+
+var hasPortTests = map[string]bool{
+	"www.example.com":      false,
+	"www.example.com:80":   true,
+	"127.0.0.1":            false,
+	"127.0.0.1:8080":       true,
+	"2001:4860:0:2001::68": false,
+	"[2001::0:::68]:80":    true,
+}
+
+func TestHasPort(t *testing.T) {
+	for host, want := range hasPortTests {
+		if got := hasPort(host); got != want {
+			t.Errorf("%q: got %t, want %t", host, got, want)
+		}
+	}
+}
+
+var jarKeyTests = map[string]string{
+	"foo.www.example.com": "example.com",
+	"www.example.com":     "example.com",
+	"example.com":         "example.com",
+	"com":                 "com",
+	"foo.www.bbc.co.uk":   "bbc.co.uk",
+	"www.bbc.co.uk":       "bbc.co.uk",
+	"bbc.co.uk":           "bbc.co.uk",
+	"co.uk":               "co.uk",
+	"uk":                  "uk",
+	"192.168.0.5":         "192.168.0.5",
+}
+
+func TestJarKey(t *testing.T) {
+	for host, want := range jarKeyTests {
+		if got := jarKey(host, testPSL{}); got != want {
+			t.Errorf("%q: got %q, want %q", host, got, want)
+		}
+	}
+}
+
+var jarKeyNilPSLTests = map[string]string{
+	"foo.www.example.com": "example.com",
+	"www.example.com":     "example.com",
+	"example.com":         "example.com",
+	"com":                 "com",
+	"foo.www.bbc.co.uk":   "co.uk",
+	"www.bbc.co.uk":       "co.uk",
+	"bbc.co.uk":           "co.uk",
+	"co.uk":               "co.uk",
+	"uk":                  "uk",
+	"192.168.0.5":         "192.168.0.5",
+}
+
+func TestJarKeyNilPSL(t *testing.T) {
+	for host, want := range jarKeyNilPSLTests {
+		if got := jarKey(host, nil); got != want {
+			t.Errorf("%q: got %q, want %q", host, got, want)
+		}
+	}
+}
+
+var isIPTests = map[string]bool{
+	"127.0.0.1":            true,
+	"1.2.3.4":              true,
+	"2001:4860:0:2001::68": true,
+	"example.com":          false,
+	"1.1.1.300":            false,
+	"www.foo.bar.net":      false,
+	"123.foo.bar.net":      false,
+}
+
+func TestIsIP(t *testing.T) {
+	for host, want := range isIPTests {
+		if got := isIP(host); got != want {
+			t.Errorf("%q: got %t, want %t", host, got, want)
+		}
+	}
+}
+
+var defaultPathTests = map[string]string{
+	"/":           "/",
+	"/abc":        "/",
+	"/abc/":       "/abc",
+	"/abc/xyz":    "/abc",
+	"/abc/xyz/":   "/abc/xyz",
+	"/a/b/c.html": "/a/b",
+	"":            "/",
+	"strange":     "/",
+	"//":          "/",
+	"/a//b":       "/a/",
+	"/a/./b":      "/a/.",
+	"/a/../b":     "/a/..",
+}
+
+func TestDefaultPath(t *testing.T) {
+	for path, want := range defaultPathTests {
+		if got := defaultPath(path); got != want {
+			t.Errorf("%q: got %q, want %q", path, got, want)
+		}
+	}
+}
+
+var domainAndTypeTests = [...]struct {
+	host         string // host Set-Cookie header was received from
+	domain       string // domain attribute in Set-Cookie header
+	wantDomain   string // expected domain of cookie
+	wantHostOnly bool   // expected host-cookie flag
+	wantErr      error  // expected error
+}{
+	{"www.example.com", "", "www.example.com", true, nil},
+	{"127.0.0.1", "", "127.0.0.1", true, nil},
+	{"2001:4860:0:2001::68", "", "2001:4860:0:2001::68", true, nil},
+	{"www.example.com", "example.com", "example.com", false, nil},
+	{"www.example.com", ".example.com", "example.com", false, nil},
+	{"www.example.com", "www.example.com", "www.example.com", false, nil},
+	{"www.example.com", ".www.example.com", "www.example.com", false, nil},
+	{"foo.sso.example.com", "sso.example.com", "sso.example.com", false, nil},
+	{"bar.co.uk", "bar.co.uk", "bar.co.uk", false, nil},
+	{"foo.bar.co.uk", ".bar.co.uk", "bar.co.uk", false, nil},
+	{"127.0.0.1", "127.0.0.1", "", false, errNoHostname},
+	{"2001:4860:0:2001::68", "2001:4860:0:2001::68", "2001:4860:0:2001::68", false, errNoHostname},
+	{"www.example.com", ".", "", false, errMalformedDomain},
+	{"www.example.com", "..", "", false, errMalformedDomain},
+	{"www.example.com", "other.com", "", false, errIllegalDomain},
+	{"www.example.com", "com", "", false, errIllegalDomain},
+	{"www.example.com", ".com", "", false, errIllegalDomain},
+	{"foo.bar.co.uk", ".co.uk", "", false, errIllegalDomain},
+	{"127.www.0.0.1", "127.0.0.1", "", false, errIllegalDomain},
+	{"com", "", "com", true, nil},
+	{"com", "com", "com", true, nil},
+	{"com", ".com", "com", true, nil},
+	{"co.uk", "", "co.uk", true, nil},
+	{"co.uk", "co.uk", "co.uk", true, nil},
+	{"co.uk", ".co.uk", "co.uk", true, nil},
+}
+
+func TestDomainAndType(t *testing.T) {
+	jar := newTestJar()
+	for _, tc := range domainAndTypeTests {
+		domain, hostOnly, err := jar.domainAndType(tc.host, tc.domain)
+		if err != tc.wantErr {
+			t.Errorf("%q/%q: got %q error, want %q",
+				tc.host, tc.domain, err, tc.wantErr)
+			continue
+		}
+		if err != nil {
+			continue
+		}
+		if domain != tc.wantDomain || hostOnly != tc.wantHostOnly {
+			t.Errorf("%q/%q: got %q/%t want %q/%t",
+				tc.host, tc.domain, domain, hostOnly,
+				tc.wantDomain, tc.wantHostOnly)
+		}
+	}
+}
+
+// expiresIn creates an expires attribute delta seconds from tNow.
+func expiresIn(delta int) string {
+	t := tNow.Add(time.Duration(delta) * time.Second)
+	return "expires=" + t.Format(time.RFC1123)
+}
+
+// mustParseURL parses s to an URL and panics on error.
+func mustParseURL(s string) *url.URL {
+	u, err := url.Parse(s)
+	if err != nil || u.Scheme == "" || u.Host == "" {
+		panic(fmt.Sprintf("Unable to parse URL %s.", s))
+	}
+	return u
+}
+
+// jarTest encapsulates the following actions on a jar:
+//   1. Perform SetCookies with fromURL and the cookies from setCookies.
+//      (Done at time tNow + 0 ms.)
+//   2. Check that the entries in the jar matches content.
+//      (Done at time tNow + 1001 ms.)
+//   3. For each query in tests: Check that Cookies with toURL yields the
+//      cookies in want.
+//      (Query n done at tNow + (n+2)*1001 ms.)
+type jarTest struct {
+	description string   // The description of what this test is supposed to test
+	fromURL     string   // The full URL of the request from which Set-Cookie headers where received
+	setCookies  []string // All the cookies received from fromURL
+	content     string   // The whole (non-expired) content of the jar
+	queries     []query  // Queries to test the Jar.Cookies method
+}
+
+// query contains one test of the cookies returned from Jar.Cookies.
+type query struct {
+	toURL string // the URL in the Cookies call
+	want  string // the expected list of cookies (order matters)
+}
+
+// run runs the jarTest.
+func (test jarTest) run(t *testing.T, jar *Jar) {
+	now := tNow
+
+	// Populate jar with cookies.
+	setCookies := make([]*http.Cookie, len(test.setCookies))
+	for i, cs := range test.setCookies {
+		cookies := (&http.Response{Header: http.Header{"Set-Cookie": {cs}}}).Cookies()
+		if len(cookies) != 1 {
+			panic(fmt.Sprintf("Wrong cookie line %q: %#v", cs, cookies))
+		}
+		setCookies[i] = cookies[0]
+	}
+	jar.setCookies(mustParseURL(test.fromURL), setCookies, now)
+	now = now.Add(1001 * time.Millisecond)
+
+	// Serialize non-expired entries in the form "name1=val1 name2=val2".
+	var cs []string
+	for _, submap := range jar.entries {
+		for _, cookie := range submap {
+			if !cookie.Expires.After(now) {
+				continue
+			}
+			cs = append(cs, cookie.Name+"="+cookie.Value)
+		}
+	}
+	sort.Strings(cs)
+	got := strings.Join(cs, " ")
+
+	// Make sure jar content matches our expectations.
+	if got != test.content {
+		t.Errorf("Test %q Content\ngot  %q\nwant %q",
+			test.description, got, test.content)
+	}
+
+	// Test different calls to Cookies.
+	for i, query := range test.queries {
+		now = now.Add(1001 * time.Millisecond)
+		var s []string
+		for _, c := range jar.cookies(mustParseURL(query.toURL), now) {
+			s = append(s, c.Name+"="+c.Value)
+		}
+		if got := strings.Join(s, " "); got != query.want {
+			t.Errorf("Test %q #%d\ngot  %q\nwant %q", test.description, i, got, query.want)
+		}
+	}
+}
+
+// basicsTests contains fundamental tests. Each jarTest has to be performed on
+// a fresh, empty Jar.
+var basicsTests = [...]jarTest{
+	{
+		"Retrieval of a plain host cookie.",
+		"http://www.host.test/",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", "A=a"},
+			{"http://www.host.test/", "A=a"},
+			{"http://www.host.test/some/path", "A=a"},
+			{"https://www.host.test", "A=a"},
+			{"https://www.host.test/", "A=a"},
+			{"https://www.host.test/some/path", "A=a"},
+			{"ftp://www.host.test", ""},
+			{"ftp://www.host.test/", ""},
+			{"ftp://www.host.test/some/path", ""},
+			{"http://www.other.org", ""},
+			{"http://sibling.host.test", ""},
+			{"http://deep.www.host.test", ""},
+		},
+	},
+	{
+		"Secure cookies are not returned to http.",
+		"http://www.host.test/",
+		[]string{"A=a; secure"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some/path", ""},
+			{"https://www.host.test", "A=a"},
+			{"https://www.host.test/", "A=a"},
+			{"https://www.host.test/some/path", "A=a"},
+		},
+	},
+	{
+		"Explicit path.",
+		"http://www.host.test/",
+		[]string{"A=a; path=/some/path"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #1: path is a directory.",
+		"http://www.host.test/some/path/",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #2: path is not a directory.",
+		"http://www.host.test/some/path/index.html",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #3: no path in URL at all.",
+		"http://www.host.test",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", "A=a"},
+			{"http://www.host.test/", "A=a"},
+			{"http://www.host.test/some/path", "A=a"},
+		},
+	},
+	{
+		"Cookies are sorted by path length.",
+		"http://www.host.test/",
+		[]string{
+			"A=a; path=/foo/bar",
+			"B=b; path=/foo/bar/baz/qux",
+			"C=c; path=/foo/bar/baz",
+			"D=d; path=/foo"},
+		"A=a B=b C=c D=d",
+		[]query{
+			{"http://www.host.test/foo/bar/baz/qux", "B=b C=c A=a D=d"},
+			{"http://www.host.test/foo/bar/baz/", "C=c A=a D=d"},
+			{"http://www.host.test/foo/bar", "A=a D=d"},
+		},
+	},
+	{
+		"Creation time determines sorting on same length paths.",
+		"http://www.host.test/",
+		[]string{
+			"A=a; path=/foo/bar",
+			"X=x; path=/foo/bar",
+			"Y=y; path=/foo/bar/baz/qux",
+			"B=b; path=/foo/bar/baz/qux",
+			"C=c; path=/foo/bar/baz",
+			"W=w; path=/foo/bar/baz",
+			"Z=z; path=/foo",
+			"D=d; path=/foo"},
+		"A=a B=b C=c D=d W=w X=x Y=y Z=z",
+		[]query{
+			{"http://www.host.test/foo/bar/baz/qux", "Y=y B=b C=c W=w A=a X=x Z=z D=d"},
+			{"http://www.host.test/foo/bar/baz/", "C=c W=w A=a X=x Z=z D=d"},
+			{"http://www.host.test/foo/bar", "A=a X=x Z=z D=d"},
+		},
+	},
+	{
+		"Sorting of same-name cookies.",
+		"http://www.host.test/",
+		[]string{
+			"A=1; path=/",
+			"A=2; path=/path",
+			"A=3; path=/quux",
+			"A=4; path=/path/foo",
+			"A=5; domain=.host.test; path=/path",
+			"A=6; domain=.host.test; path=/quux",
+			"A=7; domain=.host.test; path=/path/foo",
+		},
+		"A=1 A=2 A=3 A=4 A=5 A=6 A=7",
+		[]query{
+			{"http://www.host.test/path", "A=2 A=5 A=1"},
+			{"http://www.host.test/path/foo", "A=4 A=7 A=2 A=5 A=1"},
+		},
+	},
+	{
+		"Disallow domain cookie on public suffix.",
+		"http://www.bbc.co.uk",
+		[]string{
+			"a=1",
+			"b=2; domain=co.uk",
+		},
+		"a=1",
+		[]query{{"http://www.bbc.co.uk", "a=1"}},
+	},
+	{
+		"Host cookie on IP.",
+		"http://192.168.0.10",
+		[]string{"a=1"},
+		"a=1",
+		[]query{{"http://192.168.0.10", "a=1"}},
+	},
+	{
+		"Port is ignored #1.",
+		"http://www.host.test/",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://www.host.test:8080/", "a=1"},
+		},
+	},
+	{
+		"Port is ignored #2.",
+		"http://www.host.test:8080/",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://www.host.test:8080/", "a=1"},
+			{"http://www.host.test:1234/", "a=1"},
+		},
+	},
+}
+
+func TestBasics(t *testing.T) {
+	for _, test := range basicsTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
+
+// updateAndDeleteTests contains jarTests which must be performed on the same
+// Jar.
+var updateAndDeleteTests = [...]jarTest{
+	{
+		"Set initial cookies.",
+		"http://www.host.test",
+		[]string{
+			"a=1",
+			"b=2; secure",
+			"c=3; httponly",
+			"d=4; secure; httponly"},
+		"a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://www.host.test", "a=1 c=3"},
+			{"https://www.host.test", "a=1 b=2 c=3 d=4"},
+		},
+	},
+	{
+		"Update value via http.",
+		"http://www.host.test",
+		[]string{
+			"a=w",
+			"b=x; secure",
+			"c=y; httponly",
+			"d=z; secure; httponly"},
+		"a=w b=x c=y d=z",
+		[]query{
+			{"http://www.host.test", "a=w c=y"},
+			{"https://www.host.test", "a=w b=x c=y d=z"},
+		},
+	},
+	{
+		"Clear Secure flag from a http.",
+		"http://www.host.test/",
+		[]string{
+			"b=xx",
+			"d=zz; httponly"},
+		"a=w b=xx c=y d=zz",
+		[]query{{"http://www.host.test", "a=w b=xx c=y d=zz"}},
+	},
+	{
+		"Delete all.",
+		"http://www.host.test/",
+		[]string{
+			"a=1; max-Age=-1",                    // delete via MaxAge
+			"b=2; " + expiresIn(-10),             // delete via Expires
+			"c=2; max-age=-1; " + expiresIn(-10), // delete via both
+			"d=4; max-age=-1; " + expiresIn(10)}, // MaxAge takes precedence
+		"",
+		[]query{{"http://www.host.test", ""}},
+	},
+	{
+		"Refill #1.",
+		"http://www.host.test",
+		[]string{
+			"A=1",
+			"A=2; path=/foo",
+			"A=3; domain=.host.test",
+			"A=4; path=/foo; domain=.host.test"},
+		"A=1 A=2 A=3 A=4",
+		[]query{{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"}},
+	},
+	{
+		"Refill #2.",
+		"http://www.google.com",
+		[]string{
+			"A=6",
+			"A=7; path=/foo",
+			"A=8; domain=.google.com",
+			"A=9; path=/foo; domain=.google.com"},
+		"A=1 A=2 A=3 A=4 A=6 A=7 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"},
+			{"http://www.google.com/foo", "A=7 A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A7.",
+		"http://www.google.com",
+		[]string{"A=; path=/foo; max-age=-1"},
+		"A=1 A=2 A=3 A=4 A=6 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A4.",
+		"http://www.host.test",
+		[]string{"A=; path=/foo; domain=host.test; max-age=-1"},
+		"A=1 A=2 A=3 A=6 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A6.",
+		"http://www.google.com",
+		[]string{"A=; max-age=-1"},
+		"A=1 A=2 A=3 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"Delete A3.",
+		"http://www.host.test",
+		[]string{"A=; domain=host.test; max-age=-1"},
+		"A=1 A=2 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"No cross-domain delete.",
+		"http://www.host.test",
+		[]string{
+			"A=; domain=google.com; max-age=-1",
+			"A=; path=/foo; domain=google.com; max-age=-1"},
+		"A=1 A=2 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"Delete A8 and A9.",
+		"http://www.google.com",
+		[]string{
+			"A=; domain=google.com; max-age=-1",
+			"A=; path=/foo; domain=google.com; max-age=-1"},
+		"A=1 A=2",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", ""},
+		},
+	},
+}
+
+func TestUpdateAndDelete(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range updateAndDeleteTests {
+		test.run(t, jar)
+	}
+}
+
+func TestExpiration(t *testing.T) {
+	jar := newTestJar()
+	jarTest{
+		"Expiration.",
+		"http://www.host.test",
+		[]string{
+			"a=1",
+			"b=2; max-age=3",
+			"c=3; " + expiresIn(3),
+			"d=4; max-age=5",
+			"e=5; " + expiresIn(5),
+			"f=6; max-age=100",
+		},
+		"a=1 b=2 c=3 d=4 e=5 f=6", // executed at t0 + 1001 ms
+		[]query{
+			{"http://www.host.test", "a=1 b=2 c=3 d=4 e=5 f=6"}, // t0 + 2002 ms
+			{"http://www.host.test", "a=1 d=4 e=5 f=6"},         // t0 + 3003 ms
+			{"http://www.host.test", "a=1 d=4 e=5 f=6"},         // t0 + 4004 ms
+			{"http://www.host.test", "a=1 f=6"},                 // t0 + 5005 ms
+			{"http://www.host.test", "a=1 f=6"},                 // t0 + 6006 ms
+		},
+	}.run(t, jar)
+}
+
+//
+// Tests derived from Chromium's cookie_store_unittest.h.
+//
+
+// See http://src.chromium.org/viewvc/chrome/trunk/src/net/cookies/cookie_store_unittest.h?revision=159685&content-type=text/plain
+// Some of the original tests are in a bad condition (e.g.
+// DomainWithTrailingDotTest) or are not RFC 6265 conforming (e.g.
+// TestNonDottedAndTLD #1 and #6) and have not been ported.
+
+// chromiumBasicsTests contains fundamental tests. Each jarTest has to be
+// performed on a fresh, empty Jar.
+var chromiumBasicsTests = [...]jarTest{
+	{
+		"DomainWithTrailingDotTest.",
+		"http://www.google.com/",
+		[]string{
+			"a=1; domain=.www.google.com.",
+			"b=2; domain=.www.google.com.."},
+		"",
+		[]query{
+			{"http://www.google.com", ""},
+		},
+	},
+	{
+		"ValidSubdomainTest #1.",
+		"http://a.b.c.d.com",
+		[]string{
+			"a=1; domain=.a.b.c.d.com",
+			"b=2; domain=.b.c.d.com",
+			"c=3; domain=.c.d.com",
+			"d=4; domain=.d.com"},
+		"a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://a.b.c.d.com", "a=1 b=2 c=3 d=4"},
+			{"http://b.c.d.com", "b=2 c=3 d=4"},
+			{"http://c.d.com", "c=3 d=4"},
+			{"http://d.com", "d=4"},
+		},
+	},
+	{
+		"ValidSubdomainTest #2.",
+		"http://a.b.c.d.com",
+		[]string{
+			"a=1; domain=.a.b.c.d.com",
+			"b=2; domain=.b.c.d.com",
+			"c=3; domain=.c.d.com",
+			"d=4; domain=.d.com",
+			"X=bcd; domain=.b.c.d.com",
+			"X=cd; domain=.c.d.com"},
+		"X=bcd X=cd a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://b.c.d.com", "b=2 c=3 d=4 X=bcd X=cd"},
+			{"http://c.d.com", "c=3 d=4 X=cd"},
+		},
+	},
+	{
+		"InvalidDomainTest #1.",
+		"http://foo.bar.com",
+		[]string{
+			"a=1; domain=.yo.foo.bar.com",
+			"b=2; domain=.foo.com",
+			"c=3; domain=.bar.foo.com",
+			"d=4; domain=.foo.bar.com.net",
+			"e=5; domain=ar.com",
+			"f=6; domain=.",
+			"g=7; domain=/",
+			"h=8; domain=http://foo.bar.com",
+			"i=9; domain=..foo.bar.com",
+			"j=10; domain=..bar.com",
+			"k=11; domain=.foo.bar.com?blah",
+			"l=12; domain=.foo.bar.com/blah",
+			"m=12; domain=.foo.bar.com:80",
+			"n=14; domain=.foo.bar.com:",
+			"o=15; domain=.foo.bar.com#sup",
+		},
+		"", // Jar is empty.
+		[]query{{"http://foo.bar.com", ""}},
+	},
+	{
+		"InvalidDomainTest #2.",
+		"http://foo.com.com",
+		[]string{"a=1; domain=.foo.com.com.com"},
+		"",
+		[]query{{"http://foo.bar.com", ""}},
+	},
+	{
+		"DomainWithoutLeadingDotTest #1.",
+		"http://manage.hosted.filefront.com",
+		[]string{"a=1; domain=filefront.com"},
+		"a=1",
+		[]query{{"http://www.filefront.com", "a=1"}},
+	},
+	{
+		"DomainWithoutLeadingDotTest #2.",
+		"http://www.google.com",
+		[]string{"a=1; domain=www.google.com"},
+		"a=1",
+		[]query{
+			{"http://www.google.com", "a=1"},
+			{"http://sub.www.google.com", "a=1"},
+			{"http://something-else.com", ""},
+		},
+	},
+	{
+		"CaseInsensitiveDomainTest.",
+		"http://www.google.com",
+		[]string{
+			"a=1; domain=.GOOGLE.COM",
+			"b=2; domain=.www.gOOgLE.coM"},
+		"a=1 b=2",
+		[]query{{"http://www.google.com", "a=1 b=2"}},
+	},
+	{
+		"TestIpAddress #1.",
+		"http://1.2.3.4/foo",
+		[]string{"a=1; path=/"},
+		"a=1",
+		[]query{{"http://1.2.3.4/foo", "a=1"}},
+	},
+	{
+		"TestIpAddress #2.",
+		"http://1.2.3.4/foo",
+		[]string{
+			"a=1; domain=.1.2.3.4",
+			"b=2; domain=.3.4"},
+		"",
+		[]query{{"http://1.2.3.4/foo", ""}},
+	},
+	{
+		"TestIpAddress #3.",
+		"http://1.2.3.4/foo",
+		[]string{"a=1; domain=1.2.3.4"},
+		"",
+		[]query{{"http://1.2.3.4/foo", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #2.",
+		"http://com./index.html",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://com./index.html", "a=1"},
+			{"http://no-cookies.com./index.html", ""},
+		},
+	},
+	{
+		"TestNonDottedAndTLD #3.",
+		"http://a.b",
+		[]string{
+			"a=1; domain=.b",
+			"b=2; domain=b"},
+		"",
+		[]query{{"http://bar.foo", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #4.",
+		"http://google.com",
+		[]string{
+			"a=1; domain=.com",
+			"b=2; domain=com"},
+		"",
+		[]query{{"http://google.com", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #5.",
+		"http://google.co.uk",
+		[]string{
+			"a=1; domain=.co.uk",
+			"b=2; domain=.uk"},
+		"",
+		[]query{
+			{"http://google.co.uk", ""},
+			{"http://else.co.com", ""},
+			{"http://else.uk", ""},
+		},
+	},
+	{
+		"TestHostEndsWithDot.",
+		"http://www.google.com",
+		[]string{
+			"a=1",
+			"b=2; domain=.www.google.com."},
+		"a=1",
+		[]query{{"http://www.google.com", "a=1"}},
+	},
+	{
+		"PathTest",
+		"http://www.google.izzle",
+		[]string{"a=1; path=/wee"},
+		"a=1",
+		[]query{
+			{"http://www.google.izzle/wee", "a=1"},
+			{"http://www.google.izzle/wee/", "a=1"},
+			{"http://www.google.izzle/wee/war", "a=1"},
+			{"http://www.google.izzle/wee/war/more/more", "a=1"},
+			{"http://www.google.izzle/weehee", ""},
+			{"http://www.google.izzle/", ""},
+		},
+	},
+}
+
+func TestChromiumBasics(t *testing.T) {
+	for _, test := range chromiumBasicsTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
+
+// chromiumDomainTests contains jarTests which must be executed all on the
+// same Jar.
+var chromiumDomainTests = [...]jarTest{
+	{
+		"Fill #1.",
+		"http://www.google.izzle",
+		[]string{"A=B"},
+		"A=B",
+		[]query{{"http://www.google.izzle", "A=B"}},
+	},
+	{
+		"Fill #2.",
+		"http://www.google.izzle",
+		[]string{"C=D; domain=.google.izzle"},
+		"A=B C=D",
+		[]query{{"http://www.google.izzle", "A=B C=D"}},
+	},
+	{
+		"Verify A is a host cookie and not accessible from subdomain.",
+		"http://unused.nil",
+		[]string{},
+		"A=B C=D",
+		[]query{{"http://foo.www.google.izzle", "C=D"}},
+	},
+	{
+		"Verify domain cookies are found on proper domain.",
+		"http://www.google.izzle",
+		[]string{"E=F; domain=.www.google.izzle"},
+		"A=B C=D E=F",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F"}},
+	},
+	{
+		"Leading dots in domain attributes are optional.",
+		"http://www.google.izzle",
+		[]string{"G=H; domain=www.google.izzle"},
+		"A=B C=D E=F G=H",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F G=H"}},
+	},
+	{
+		"Verify domain enforcement works #1.",
+		"http://www.google.izzle",
+		[]string{"K=L; domain=.bar.www.google.izzle"},
+		"A=B C=D E=F G=H",
+		[]query{{"http://bar.www.google.izzle", "C=D E=F G=H"}},
+	},
+	{
+		"Verify domain enforcement works #2.",
+		"http://unused.nil",
+		[]string{},
+		"A=B C=D E=F G=H",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F G=H"}},
+	},
+}
+
+func TestChromiumDomain(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range chromiumDomainTests {
+		test.run(t, jar)
+	}
+
+}
+
+// chromiumDeletionTests must be performed all on the same Jar.
+var chromiumDeletionTests = [...]jarTest{
+	{
+		"Create session cookie a1.",
+		"http://www.google.com",
+		[]string{"a=1"},
+		"a=1",
+		[]query{{"http://www.google.com", "a=1"}},
+	},
+	{
+		"Delete sc a1 via MaxAge.",
+		"http://www.google.com",
+		[]string{"a=1; max-age=-1"},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create session cookie b2.",
+		"http://www.google.com",
+		[]string{"b=2"},
+		"b=2",
+		[]query{{"http://www.google.com", "b=2"}},
+	},
+	{
+		"Delete sc b2 via Expires.",
+		"http://www.google.com",
+		[]string{"b=2; " + expiresIn(-10)},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create persistent cookie c3.",
+		"http://www.google.com",
+		[]string{"c=3; max-age=3600"},
+		"c=3",
+		[]query{{"http://www.google.com", "c=3"}},
+	},
+	{
+		"Delete pc c3 via MaxAge.",
+		"http://www.google.com",
+		[]string{"c=3; max-age=-1"},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create persistent cookie d4.",
+		"http://www.google.com",
+		[]string{"d=4; max-age=3600"},
+		"d=4",
+		[]query{{"http://www.google.com", "d=4"}},
+	},
+	{
+		"Delete pc d4 via Expires.",
+		"http://www.google.com",
+		[]string{"d=4; " + expiresIn(-10)},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+}
+
+func TestChromiumDeletion(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range chromiumDeletionTests {
+		test.run(t, jar)
+	}
+}
+
+// domainHandlingTests tests and documents the rules for domain handling.
+// Each test must be performed on an empty new Jar.
+var domainHandlingTests = [...]jarTest{
+	{
+		"Host cookie",
+		"http://www.host.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", ""},
+			{"http://bar.host.test", ""},
+			{"http://foo.www.host.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie #1",
+		"http://www.host.test",
+		[]string{"a=1; domain=host.test"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", "a=1"},
+			{"http://bar.host.test", "a=1"},
+			{"http://foo.www.host.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie #2",
+		"http://www.host.test",
+		[]string{"a=1; domain=.host.test"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", "a=1"},
+			{"http://bar.host.test", "a=1"},
+			{"http://foo.www.host.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on IDNA domain #1",
+		"http://www.bÃ¼cher.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", ""},
+			{"http://xn--bcher-kva.test", ""},
+			{"http://bar.bÃ¼cher.test", ""},
+			{"http://bar.xn--bcher-kva.test", ""},
+			{"http://foo.www.bÃ¼cher.test", ""},
+			{"http://foo.www.xn--bcher-kva.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on IDNA domain #2",
+		"http://www.xn--bcher-kva.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", ""},
+			{"http://xn--bcher-kva.test", ""},
+			{"http://bar.bÃ¼cher.test", ""},
+			{"http://bar.xn--bcher-kva.test", ""},
+			{"http://foo.www.bÃ¼cher.test", ""},
+			{"http://foo.www.xn--bcher-kva.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie on IDNA domain #1",
+		"http://www.bÃ¼cher.test",
+		[]string{"a=1; domain=xn--bcher-kva.test"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", "a=1"},
+			{"http://xn--bcher-kva.test", "a=1"},
+			{"http://bar.bÃ¼cher.test", "a=1"},
+			{"http://bar.xn--bcher-kva.test", "a=1"},
+			{"http://foo.www.bÃ¼cher.test", "a=1"},
+			{"http://foo.www.xn--bcher-kva.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie on IDNA domain #2",
+		"http://www.xn--bcher-kva.test",
+		[]string{"a=1; domain=xn--bcher-kva.test"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", "a=1"},
+			{"http://xn--bcher-kva.test", "a=1"},
+			{"http://bar.bÃ¼cher.test", "a=1"},
+			{"http://bar.xn--bcher-kva.test", "a=1"},
+			{"http://foo.www.bÃ¼cher.test", "a=1"},
+			{"http://foo.www.xn--bcher-kva.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on TLD.",
+		"http://com",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://com", "a=1"},
+			{"http://any.com", ""},
+			{"http://any.test", ""},
+		},
+	},
+	{
+		"Domain cookie on TLD becomes a host cookie.",
+		"http://com",
+		[]string{"a=1; domain=com"},
+		"a=1",
+		[]query{
+			{"http://com", "a=1"},
+			{"http://any.com", ""},
+			{"http://any.test", ""},
+		},
+	},
+	{
+		"Host cookie on public suffix.",
+		"http://co.uk",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://co.uk", "a=1"},
+			{"http://uk", ""},
+			{"http://some.co.uk", ""},
+			{"http://foo.some.co.uk", ""},
+			{"http://any.uk", ""},
+		},
+	},
+	{
+		"Domain cookie on public suffix is ignored.",
+		"http://some.co.uk",
+		[]string{"a=1; domain=co.uk"},
+		"",
+		[]query{
+			{"http://co.uk", ""},
+			{"http://uk", ""},
+			{"http://some.co.uk", ""},
+			{"http://foo.some.co.uk", ""},
+			{"http://any.uk", ""},
+		},
+	},
+}
+
+func TestDomainHandling(t *testing.T) {
+	for _, test := range domainHandlingTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go	2013-10-01 16:06:44.172554280 +0000
@@ -0,0 +1,159 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+// This file implements the Punycode algorithm from RFC 3492.
+
+import (
+	"fmt"
+	"strings"
+	"unicode/utf8"
+)
+
+// These parameter values are specified in section 5.
+//
+// All computation is done with int32s, so that overflow behavior is identical
+// regardless of whether int is 32-bit or 64-bit.
+const (
+	base        int32 = 36
+	damp        int32 = 700
+	initialBias int32 = 72
+	initialN    int32 = 128
+	skew        int32 = 38
+	tmax        int32 = 26
+	tmin        int32 = 1
+)
+
+// encode encodes a string as specified in section 6.3 and prepends prefix to
+// the result.
+//
+// The "while h < length(input)" line in the specification becomes "for
+// remaining != 0" in the Go code, because len(s) in Go is in bytes, not runes.
+func encode(prefix, s string) (string, error) {
+	output := make([]byte, len(prefix), len(prefix)+1+2*len(s))
+	copy(output, prefix)
+	delta, n, bias := int32(0), initialN, initialBias
+	b, remaining := int32(0), int32(0)
+	for _, r := range s {
+		if r < 0x80 {
+			b++
+			output = append(output, byte(r))
+		} else {
+			remaining++
+		}
+	}
+	h := b
+	if b > 0 {
+		output = append(output, '-')
+	}
+	for remaining != 0 {
+		m := int32(0x7fffffff)
+		for _, r := range s {
+			if m > r && r >= n {
+				m = r
+			}
+		}
+		delta += (m - n) * (h + 1)
+		if delta < 0 {
+			return "", fmt.Errorf("cookiejar: invalid label %q", s)
+		}
+		n = m
+		for _, r := range s {
+			if r < n {
+				delta++
+				if delta < 0 {
+					return "", fmt.Errorf("cookiejar: invalid label %q", s)
+				}
+				continue
+			}
+			if r > n {
+				continue
+			}
+			q := delta
+			for k := base; ; k += base {
+				t := k - bias
+				if t < tmin {
+					t = tmin
+				} else if t > tmax {
+					t = tmax
+				}
+				if q < t {
+					break
+				}
+				output = append(output, encodeDigit(t+(q-t)%(base-t)))
+				q = (q - t) / (base - t)
+			}
+			output = append(output, encodeDigit(q))
+			bias = adapt(delta, h+1, h == b)
+			delta = 0
+			h++
+			remaining--
+		}
+		delta++
+		n++
+	}
+	return string(output), nil
+}
+
+func encodeDigit(digit int32) byte {
+	switch {
+	case 0 <= digit && digit < 26:
+		return byte(digit + 'a')
+	case 26 <= digit && digit < 36:
+		return byte(digit + ('0' - 26))
+	}
+	panic("cookiejar: internal error in punycode encoding")
+}
+
+// adapt is the bias adaptation function specified in section 6.1.
+func adapt(delta, numPoints int32, firstTime bool) int32 {
+	if firstTime {
+		delta /= damp
+	} else {
+		delta /= 2
+	}
+	delta += delta / numPoints
+	k := int32(0)
+	for delta > ((base-tmin)*tmax)/2 {
+		delta /= base - tmin
+		k += base
+	}
+	return k + (base-tmin+1)*delta/(delta+skew)
+}
+
+// Strictly speaking, the remaining code below deals with IDNA (RFC 5890 and
+// friends) and not Punycode (RFC 3492) per se.
+
+// acePrefix is the ASCII Compatible Encoding prefix.
+const acePrefix = "xn--"
+
+// toASCII converts a domain or domain label to its ASCII form. For example,
+// toASCII("bÃ¼cher.example.com") is "xn--bcher-kva.example.com", and
+// toASCII("golang") is "golang".
+func toASCII(s string) (string, error) {
+	if ascii(s) {
+		return s, nil
+	}
+	labels := strings.Split(s, ".")
+	for i, label := range labels {
+		if !ascii(label) {
+			a, err := encode(acePrefix, label)
+			if err != nil {
+				return "", err
+			}
+			labels[i] = a
+		}
+	}
+	return strings.Join(labels, "."), nil
+}
+
+func ascii(s string) bool {
+	for i := 0; i < len(s); i++ {
+		if s[i] >= utf8.RuneSelf {
+			return false
+		}
+	}
+	return true
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -0,0 +1,161 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+import (
+	"testing"
+)
+
+var punycodeTestCases = [...]struct {
+	s, encoded string
+}{
+	{"", ""},
+	{"-", "--"},
+	{"-a", "-a-"},
+	{"-a-", "-a--"},
+	{"a", "a-"},
+	{"a-", "a--"},
+	{"a-b", "a-b-"},
+	{"books", "books-"},
+	{"bÃ¼cher", "bcher-kva"},
+	{"Helloä¸–ç•Œ", "Hello-ck1hg65u"},
+	{"Ã¼", "tda"},
+	{"Ã¼Ã½", "tdac"},
+
+	// The test cases below come from RFC 3492 section 7.1 with Errata 3026.
+	{
+		// (A) Arabic (Egyptian).
+		"\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" +
+			"\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F",
+		"egbpdaj6bu4bxfgehfvwxn",
+	},
+	{
+		// (B) Chinese (simplified).
+		"\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587",
+		"ihqwcrb4cv8a8dqg056pqjye",
+	},
+	{
+		// (C) Chinese (traditional).
+		"\u4ED6\u5011\u7232\u4EC0\u9EBD\u4E0D\u8AAA\u4E2D\u6587",
+		"ihqwctvzc91f659drss3x8bo0yb",
+	},
+	{
+		// (D) Czech.
+		"\u0050\u0072\u006F\u010D\u0070\u0072\u006F\u0073\u0074" +
+			"\u011B\u006E\u0065\u006D\u006C\u0075\u0076\u00ED\u010D" +
+			"\u0065\u0073\u006B\u0079",
+		"Proprostnemluvesky-uyb24dma41a",
+	},
+	{
+		// (E) Hebrew.
+		"\u05DC\u05DE\u05D4\u05D4\u05DD\u05E4\u05E9\u05D5\u05D8" +
+			"\u05DC\u05D0\u05DE\u05D3\u05D1\u05E8\u05D9\u05DD\u05E2" +
+			"\u05D1\u05E8\u05D9\u05EA",
+		"4dbcagdahymbxekheh6e0a7fei0b",
+	},
+	{
+		// (F) Hindi (Devanagari).
+		"\u092F\u0939\u0932\u094B\u0917\u0939\u093F\u0928\u094D" +
+			"\u0926\u0940\u0915\u094D\u092F\u094B\u0902\u0928\u0939" +
+			"\u0940\u0902\u092C\u094B\u0932\u0938\u0915\u0924\u0947" +
+			"\u0939\u0948\u0902",
+		"i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd",
+	},
+	{
+		// (G) Japanese (kanji and hiragana).
+		"\u306A\u305C\u307F\u3093\u306A\u65E5\u672C\u8A9E\u3092" +
+			"\u8A71\u3057\u3066\u304F\u308C\u306A\u3044\u306E\u304B",
+		"n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa",
+	},
+	{
+		// (H) Korean (Hangul syllables).
+		"\uC138\uACC4\uC758\uBAA8\uB4E0\uC0AC\uB78C\uB4E4\uC774" +
+			"\uD55C\uAD6D\uC5B4\uB97C\uC774\uD574\uD55C\uB2E4\uBA74" +
+			"\uC5BC\uB9C8\uB098\uC88B\uC744\uAE4C",
+		"989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5j" +
+			"psd879ccm6fea98c",
+	},
+	{
+		// (I) Russian (Cyrillic).
+		"\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E" +
+			"\u043D\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440" +
+			"\u044F\u0442\u043F\u043E\u0440\u0443\u0441\u0441\u043A" +
+			"\u0438",
+		"b1abfaaepdrnnbgefbadotcwatmq2g4l",
+	},
+	{
+		// (J) Spanish.
+		"\u0050\u006F\u0072\u0071\u0075\u00E9\u006E\u006F\u0070" +
+			"\u0075\u0065\u0064\u0065\u006E\u0073\u0069\u006D\u0070" +
+			"\u006C\u0065\u006D\u0065\u006E\u0074\u0065\u0068\u0061" +
+			"\u0062\u006C\u0061\u0072\u0065\u006E\u0045\u0073\u0070" +
+			"\u0061\u00F1\u006F\u006C",
+		"PorqunopuedensimplementehablarenEspaol-fmd56a",
+	},
+	{
+		// (K) Vietnamese.
+		"\u0054\u1EA1\u0069\u0073\u0061\u006F\u0068\u1ECD\u006B" +
+			"\u0068\u00F4\u006E\u0067\u0074\u0068\u1EC3\u0063\u0068" +
+			"\u1EC9\u006E\u00F3\u0069\u0074\u0069\u1EBF\u006E\u0067" +
+			"\u0056\u0069\u1EC7\u0074",
+		"TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g",
+	},
+	{
+		// (L) 3<nen>B<gumi><kinpachi><sensei>.
+		"\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F",
+		"3B-ww4c5e180e575a65lsy2b",
+	},
+	{
+		// (M) <amuro><namie>-with-SUPER-MONKEYS.
+		"\u5B89\u5BA4\u5948\u7F8E\u6075\u002D\u0077\u0069\u0074" +
+			"\u0068\u002D\u0053\u0055\u0050\u0045\u0052\u002D\u004D" +
+			"\u004F\u004E\u004B\u0045\u0059\u0053",
+		"-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n",
+	},
+	{
+		// (N) Hello-Another-Way-<sorezore><no><basho>.
+		"\u0048\u0065\u006C\u006C\u006F\u002D\u0041\u006E\u006F" +
+			"\u0074\u0068\u0065\u0072\u002D\u0057\u0061\u0079\u002D" +
+			"\u305D\u308C\u305E\u308C\u306E\u5834\u6240",
+		"Hello-Another-Way--fc4qua05auwb3674vfr0b",
+	},
+	{
+		// (O) <hitotsu><yane><no><shita>2.
+		"\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032",
+		"2-u9tlzr9756bt3uc0v",
+	},
+	{
+		// (P) Maji<de>Koi<suru>5<byou><mae>
+		"\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059" +
+			"\u308B\u0035\u79D2\u524D",
+		"MajiKoi5-783gue6qz075azm5e",
+	},
+	{
+		// (Q) <pafii>de<runba>
+		"\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0",
+		"de-jg4avhby1noc0d",
+	},
+	{
+		// (R) <sono><supiido><de>
+		"\u305D\u306E\u30B9\u30D4\u30FC\u30C9\u3067",
+		"d9juau41awczczp",
+	},
+	{
+		// (S) -> $1.00 <-
+		"\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020" +
+			"\u003C\u002D",
+		"-> $1.00 <--",
+	},
+}
+
+func TestPunycode(t *testing.T) {
+	for _, tc := range punycodeTestCases {
+		if got, err := encode("", tc.s); err != nil {
+			t.Errorf(`encode("", %q): %v`, tc.s, err)
+		} else if got != tc.encoded {
+			t.Errorf(`encode("", %q): got %q, want %q`, tc.s, got, tc.encoded)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/example_test.go gcc-4.8.1/libgo/go/net/http/example_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/example_test.go	2012-10-03 05:27:36.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/example_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -51,6 +51,20 @@
 }
 
 func ExampleFileServer() {
-	// we use StripPrefix so that /tmpfiles/somefile will access /tmp/somefile
+	// Simple static webserver:
+	log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc"))))
+}
+
+func ExampleFileServer_stripPrefix() {
+	// To serve a directory on disk (/tmp) under an alternate URL
+	// path (/tmpfiles/), use StripPrefix to modify the request
+	// URL's path before the FileServer sees it:
+	http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
+}
+
+func ExampleStripPrefix() {
+	// To serve a directory on disk (/tmp) under an alternate URL
+	// path (/tmpfiles/), use StripPrefix to modify the request
+	// URL's path before the FileServer sees it:
 	http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/export_test.go gcc-4.8.1/libgo/go/net/http/export_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/export_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/export_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -16,10 +16,16 @@
 	return newLoggingConn(baseName, c)
 }
 
+func (t *Transport) NumPendingRequestsForTesting() int {
+	t.reqMu.Lock()
+	defer t.reqMu.Unlock()
+	return len(t.reqConn)
+}
+
 func (t *Transport) IdleConnKeysForTesting() (keys []string) {
 	keys = make([]string, 0)
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return
 	}
@@ -30,8 +36,8 @@
 }
 
 func (t *Transport) IdleConnCountForTesting(cacheKey string) int {
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return 0
 	}
@@ -48,3 +54,5 @@
 	}
 	return &timeoutHandler{handler, f, ""}
 }
+
+var DefaultUserAgent = defaultUserAgent
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go gcc-4.8.1/libgo/go/net/http/fcgi/child.go
--- gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/fcgi/child.go	2013-10-01 16:06:44.172554280 +0000
@@ -10,10 +10,12 @@
 	"errors"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"net"
 	"net/http"
 	"net/http/cgi"
 	"os"
+	"strings"
 	"time"
 )
 
@@ -152,20 +154,23 @@
 
 var errCloseConn = errors.New("fcgi: connection should be closed")
 
+var emptyBody = ioutil.NopCloser(strings.NewReader(""))
+
 func (c *child) handleRecord(rec *record) error {
 	req, ok := c.requests[rec.h.Id]
 	if !ok && rec.h.Type != typeBeginRequest && rec.h.Type != typeGetValues {
 		// The spec says to ignore unknown request IDs.
 		return nil
 	}
-	if ok && rec.h.Type == typeBeginRequest {
-		// The server is trying to begin a request with the same ID
-		// as an in-progress request. This is an error.
-		return errors.New("fcgi: received ID that is already in-flight")
-	}
 
 	switch rec.h.Type {
 	case typeBeginRequest:
+		if req != nil {
+			// The server is trying to begin a request with the same ID
+			// as an in-progress request. This is an error.
+			return errors.New("fcgi: received ID that is already in-flight")
+		}
+
 		var br beginRequest
 		if err := br.read(rec.content()); err != nil {
 			return err
@@ -175,6 +180,7 @@
 			return nil
 		}
 		c.requests[rec.h.Id] = newRequest(rec.h.Id, br.flags)
+		return nil
 	case typeParams:
 		// NOTE(eds): Technically a key-value pair can straddle the boundary
 		// between two packets. We buffer until we've received all parameters.
@@ -183,6 +189,7 @@
 			return nil
 		}
 		req.parseParams()
+		return nil
 	case typeStdin:
 		content := rec.content()
 		if req.pw == nil {
@@ -191,6 +198,8 @@
 				// body could be an io.LimitReader, but it shouldn't matter
 				// as long as both sides are behaving.
 				body, req.pw = io.Pipe()
+			} else {
+				body = emptyBody
 			}
 			go c.serveRequest(req, body)
 		}
@@ -201,24 +210,29 @@
 		} else if req.pw != nil {
 			req.pw.Close()
 		}
+		return nil
 	case typeGetValues:
 		values := map[string]string{"FCGI_MPXS_CONNS": "1"}
 		c.conn.writePairs(typeGetValuesResult, 0, values)
+		return nil
 	case typeData:
 		// If the filter role is implemented, read the data stream here.
+		return nil
 	case typeAbortRequest:
+		println("abort")
 		delete(c.requests, rec.h.Id)
 		c.conn.writeEndRequest(rec.h.Id, 0, statusRequestComplete)
 		if !req.keepConn {
 			// connection will close upon return
 			return errCloseConn
 		}
+		return nil
 	default:
 		b := make([]byte, 8)
 		b[0] = byte(rec.h.Type)
 		c.conn.writeRecord(typeUnknownType, 0, b)
+		return nil
 	}
-	return nil
 }
 
 func (c *child) serveRequest(req *request, body io.ReadCloser) {
@@ -232,11 +246,19 @@
 		httpReq.Body = body
 		c.handler.ServeHTTP(r, httpReq)
 	}
-	if body != nil {
-		body.Close()
-	}
 	r.Close()
 	c.conn.writeEndRequest(req.reqId, 0, statusRequestComplete)
+
+	// Consume the entire body, so the host isn't still writing to
+	// us when we close the socket below in the !keepConn case,
+	// otherwise we'd send a RST. (golang.org/issue/4183)
+	// TODO(bradfitz): also bound this copy in time. Or send
+	// some sort of abort request to the host, so the host
+	// can properly cut off the client sending all the data.
+	// For now just bound it a little and
+	io.CopyN(ioutil.Discard, body, 100<<20)
+	body.Close()
+
 	if !req.keepConn {
 		c.conn.Close()
 	}
@@ -267,5 +289,4 @@
 		c := newChild(rw, handler)
 		go c.serve()
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go gcc-4.8.1/libgo/go/net/http/filetransport_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go	2011-12-12 18:45:08.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/filetransport_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -2,11 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package http_test
+package http
 
 import (
 	"io/ioutil"
-	"net/http"
 	"os"
 	"path/filepath"
 	"testing"
@@ -32,9 +31,9 @@
 	defer os.Remove(dname)
 	defer os.Remove(fname)
 
-	tr := &http.Transport{}
-	tr.RegisterProtocol("file", http.NewFileTransport(http.Dir(dname)))
-	c := &http.Client{Transport: tr}
+	tr := &Transport{}
+	tr.RegisterProtocol("file", NewFileTransport(Dir(dname)))
+	c := &Client{Transport: tr}
 
 	fooURLs := []string{"file:///foo.txt", "file://../foo.txt"}
 	for _, urlstr := range fooURLs {
@@ -62,4 +61,5 @@
 	if res.StatusCode != 404 {
 		t.Errorf("for %s, StatusCode = %d, want 404", badURL, res.StatusCode)
 	}
+	res.Body.Close()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fs_test.go gcc-4.8.1/libgo/go/net/http/fs_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/fs_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/fs_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -54,6 +54,7 @@
 }
 
 func TestServeFile(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "testdata/file")
 	}))
@@ -169,6 +170,7 @@
 }
 
 func TestFSRedirect(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(StripPrefix("/test", FileServer(Dir("."))))
 	defer ts.Close()
 
@@ -193,6 +195,7 @@
 }
 
 func TestFileServerCleans(t *testing.T) {
+	defer afterTest(t)
 	ch := make(chan string, 1)
 	fs := FileServer(&testFileSystem{func(name string) (File, error) {
 		ch <- name
@@ -224,6 +227,7 @@
 }
 
 func TestFileServerImplicitLeadingSlash(t *testing.T) {
+	defer afterTest(t)
 	tempDir, err := ioutil.TempDir("", "")
 	if err != nil {
 		t.Fatalf("TempDir: %v", err)
@@ -302,6 +306,7 @@
 }
 
 func TestServeFileContentType(t *testing.T) {
+	defer afterTest(t)
 	const ctype = "icecream/chocolate"
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.FormValue("override") == "1" {
@@ -318,12 +323,14 @@
 		if h := resp.Header.Get("Content-Type"); h != want {
 			t.Errorf("Content-Type mismatch: got %q, want %q", h, want)
 		}
+		resp.Body.Close()
 	}
 	get("0", "text/plain; charset=utf-8")
 	get("1", ctype)
 }
 
 func TestServeFileMimeType(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "testdata/style.css")
 	}))
@@ -332,6 +339,7 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	resp.Body.Close()
 	want := "text/css; charset=utf-8"
 	if h := resp.Header.Get("Content-Type"); h != want {
 		t.Errorf("Content-Type mismatch: got %q, want %q", h, want)
@@ -339,6 +347,7 @@
 }
 
 func TestServeFileFromCWD(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "fs_test.go")
 	}))
@@ -354,6 +363,7 @@
 }
 
 func TestServeFileWithContentEncoding(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Content-Encoding", "foo")
 		ServeFile(w, r, "testdata/file")
@@ -363,12 +373,14 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	resp.Body.Close()
 	if g, e := resp.ContentLength, int64(-1); g != e {
 		t.Errorf("Content-Length mismatch: got %d, want %d", g, e)
 	}
 }
 
 func TestServeIndexHtml(t *testing.T) {
+	defer afterTest(t)
 	const want = "index.html says hello\n"
 	ts := httptest.NewServer(FileServer(Dir(".")))
 	defer ts.Close()
@@ -390,6 +402,7 @@
 }
 
 func TestFileServerZeroByte(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(FileServer(Dir(".")))
 	defer ts.Close()
 
@@ -458,6 +471,7 @@
 }
 
 func TestDirectoryIfNotModified(t *testing.T) {
+	defer afterTest(t)
 	const indexContents = "I am a fake index.html file"
 	fileMod := time.Unix(1000000000, 0).UTC()
 	fileModStr := fileMod.Format(TimeFormat)
@@ -531,6 +545,7 @@
 }
 
 func TestServeContent(t *testing.T) {
+	defer afterTest(t)
 	type serveParam struct {
 		name        string
 		modtime     time.Time
@@ -663,6 +678,7 @@
 
 // verifies that sendfile is being used on Linux
 func TestLinuxSendfile(t *testing.T) {
+	defer afterTest(t)
 	if runtime.GOOS != "linux" {
 		t.Skip("skipping; linux-only test")
 	}
@@ -680,8 +696,13 @@
 	}
 	defer ln.Close()
 
+	trace := "trace=sendfile"
+	if runtime.GOARCH != "alpha" {
+		trace = trace + ",sendfile64"
+	}
+
 	var buf bytes.Buffer
-	child := exec.Command("strace", "-f", "-e!sigaltstack", os.Args[0], "-test.run=TestLinuxSendfileChild")
+	child := exec.Command("strace", "-f", "-q", "-e", trace, os.Args[0], "-test.run=TestLinuxSendfileChild")
 	child.ExtraFiles = append(child.ExtraFiles, lnf)
 	child.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
 	child.Stdout = &buf
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header.go gcc-4.8.1/libgo/go/net/http/header.go
--- gcc-4.8.1.orig/libgo/go/net/http/header.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/header.go	2013-10-01 16:06:44.172554280 +0000
@@ -103,21 +103,41 @@
 	values []string
 }
 
-type byKey []keyValues
+// A headerSorter implements sort.Interface by sorting a []keyValues
+// by key. It's used as a pointer, so it can fit in a sort.Interface
+// interface value without allocation.
+type headerSorter struct {
+	kvs []keyValues
+}
+
+func (s *headerSorter) Len() int           { return len(s.kvs) }
+func (s *headerSorter) Swap(i, j int)      { s.kvs[i], s.kvs[j] = s.kvs[j], s.kvs[i] }
+func (s *headerSorter) Less(i, j int) bool { return s.kvs[i].key < s.kvs[j].key }
 
-func (s byKey) Len() int           { return len(s) }
-func (s byKey) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
-func (s byKey) Less(i, j int) bool { return s[i].key < s[j].key }
+// TODO: convert this to a sync.Cache (issue 4720)
+var headerSorterCache = make(chan *headerSorter, 8)
 
-func (h Header) sortedKeyValues(exclude map[string]bool) []keyValues {
-	kvs := make([]keyValues, 0, len(h))
+// sortedKeyValues returns h's keys sorted in the returned kvs
+// slice. The headerSorter used to sort is also returned, for possible
+// return to headerSorterCache.
+func (h Header) sortedKeyValues(exclude map[string]bool) (kvs []keyValues, hs *headerSorter) {
+	select {
+	case hs = <-headerSorterCache:
+	default:
+		hs = new(headerSorter)
+	}
+	if cap(hs.kvs) < len(h) {
+		hs.kvs = make([]keyValues, 0, len(h))
+	}
+	kvs = hs.kvs[:0]
 	for k, vv := range h {
 		if !exclude[k] {
 			kvs = append(kvs, keyValues{k, vv})
 		}
 	}
-	sort.Sort(byKey(kvs))
-	return kvs
+	hs.kvs = kvs
+	sort.Sort(hs)
+	return kvs, hs
 }
 
 // WriteSubset writes a header in wire format.
@@ -127,7 +147,8 @@
 	if !ok {
 		ws = stringWriter{w}
 	}
-	for _, kv := range h.sortedKeyValues(exclude) {
+	kvs, sorter := h.sortedKeyValues(exclude)
+	for _, kv := range kvs {
 		for _, v := range kv.values {
 			v = headerNewlineToSpace.Replace(v)
 			v = textproto.TrimString(v)
@@ -138,6 +159,10 @@
 			}
 		}
 	}
+	select {
+	case headerSorterCache <- sorter:
+	default:
+	}
 	return nil
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header_test.go gcc-4.8.1/libgo/go/net/http/header_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/header_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/header_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -175,38 +175,33 @@
 	}
 }
 
-func BenchmarkHeaderWriteSubset(b *testing.B) {
-	doHeaderWriteSubset(b.N, b)
+var testHeader = Header{
+	"Content-Length": {"123"},
+	"Content-Type":   {"text/plain"},
+	"Date":           {"some date at some time Z"},
+	"Server":         {DefaultUserAgent},
 }
 
-func TestHeaderWriteSubsetMallocs(t *testing.T) {
-	doHeaderWriteSubset(100, t)
-}
+var buf bytes.Buffer
 
-type errorfer interface {
-	Errorf(string, ...interface{})
+func BenchmarkHeaderWriteSubset(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		buf.Reset()
+		testHeader.WriteSubset(&buf, nil)
+	}
 }
 
-func doHeaderWriteSubset(n int, t errorfer) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
-	h := Header(map[string][]string{
-		"Content-Length": {"123"},
-		"Content-Type":   {"text/plain"},
-		"Date":           {"some date at some time Z"},
-		"Server":         {"Go http package"},
-	})
-	var buf bytes.Buffer
-	var m0 runtime.MemStats
-	runtime.ReadMemStats(&m0)
-	for i := 0; i < n; i++ {
-		buf.Reset()
-		h.WriteSubset(&buf, nil)
+func TestHeaderWriteSubsetMallocs(t *testing.T) {
+	t.Skip("Skipping alloc count test on gccgo")
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
 	}
-	var m1 runtime.MemStats
-	runtime.ReadMemStats(&m1)
-	if mallocs := m1.Mallocs - m0.Mallocs; n >= 100 && mallocs >= uint64(n) {
-		// TODO(bradfitz,rsc): once we can sort without allocating,
-		// make this an error.  See http://golang.org/issue/3761
-		// t.Errorf("did %d mallocs (>= %d iterations); should have avoided mallocs", mallocs, n)
+	n := testing.AllocsPerRun(100, func() {
+		buf.Reset()
+		testHeader.WriteSubset(&buf, nil)
+	})
+	if n > 0 {
+		t.Errorf("mallocs = %d; want 0", n)
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go gcc-4.8.1/libgo/go/net/http/httptest/server.go
--- gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/httptest/server.go	2013-10-01 16:06:44.172554280 +0000
@@ -21,7 +21,11 @@
 type Server struct {
 	URL      string // base URL of form http://ipaddr:port with no trailing slash
 	Listener net.Listener
-	TLS      *tls.Config // nil if not using TLS
+
+	// TLS is the optional TLS configuration, populated with a new config
+	// after TLS is started. If set on an unstarted server before StartTLS
+	// is called, existing fields are copied into the new config.
+	TLS *tls.Config
 
 	// Config may be changed after calling NewUnstartedServer and
 	// before Start or StartTLS.
@@ -119,9 +123,16 @@
 		panic(fmt.Sprintf("httptest: NewTLSServer: %v", err))
 	}
 
-	s.TLS = &tls.Config{
-		NextProtos:   []string{"http/1.1"},
-		Certificates: []tls.Certificate{cert},
+	existingConfig := s.TLS
+	s.TLS = new(tls.Config)
+	if existingConfig != nil {
+		*s.TLS = *existingConfig
+	}
+	if s.TLS.NextProtos == nil {
+		s.TLS.NextProtos = []string{"http/1.1"}
+	}
+	if len(s.TLS.Certificates) == 0 {
+		s.TLS.Certificates = []tls.Certificate{cert}
 	}
 	tlsListener := tls.NewListener(s.Listener, s.TLS)
 
@@ -189,28 +200,29 @@
 	h.h.ServeHTTP(w, r)
 }
 
-// localhostCert is a PEM-encoded TLS cert with SAN DNS names
+// localhostCert is a PEM-encoded TLS cert with SAN IPs
 // "127.0.0.1" and "[::1]", expiring at the last second of 2049 (the end
 // of ASN.1 time).
+// generated from src/pkg/crypto/tls:
+// go run generate_cert.go  --rsa-bits 512 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
 var localhostCert = []byte(`-----BEGIN CERTIFICATE-----
-MIIBTTCB+qADAgECAgEAMAsGCSqGSIb3DQEBBTAAMB4XDTcwMDEwMTAwMDAwMFoX
-DTQ5MTIzMTIzNTk1OVowADBaMAsGCSqGSIb3DQEBAQNLADBIAkEAsuA5mAFMj6Q7
-qoBzcvKzIq4kzuT5epSp2AkcQfyBHm7K13Ws7u+0b5Vb9gqTf5cAiIKcrtrXVqkL
-8i1UQF6AzwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCACQwEgYDVR0TAQH/BAgwBgEB
-/wIBATANBgNVHQ4EBgQEAQIDBDAPBgNVHSMECDAGgAQBAgMEMBsGA1UdEQQUMBKC
-CTEyNy4wLjAuMYIFWzo6MV0wCwYJKoZIhvcNAQEFA0EAj1Jsn/h2KHy7dgqutZNB
-nCGlNN+8vw263Bax9MklR85Ti6a0VWSvp/fDQZUADvmFTDkcXeA24pqmdUxeQDWw
-Pg==
+MIIBdzCCASOgAwIBAgIBADALBgkqhkiG9w0BAQUwEjEQMA4GA1UEChMHQWNtZSBD
+bzAeFw03MDAxMDEwMDAwMDBaFw00OTEyMzEyMzU5NTlaMBIxEDAOBgNVBAoTB0Fj
+bWUgQ28wWjALBgkqhkiG9w0BAQEDSwAwSAJBAN55NcYKZeInyTuhcCwFMhDHCmwa
+IUSdtXdcbItRB/yfXGBhiex00IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEA
+AaNoMGYwDgYDVR0PAQH/BAQDAgCkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud
+EwEB/wQFMAMBAf8wLgYDVR0RBCcwJYILZXhhbXBsZS5jb22HBH8AAAGHEAAAAAAA
+AAAAAAAAAAAAAAEwCwYJKoZIhvcNAQEFA0EAAoQn/ytgqpiLcZu9XKbCJsJcvkgk
+Se6AbGXgSlq+ZCEVo0qIwSgeBqmsJxUu7NCSOwVJLYNEBO2DtIxoYVk+MA==
 -----END CERTIFICATE-----`)
 
 // localhostKey is the private key for localhostCert.
 var localhostKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
-MIIBPQIBAAJBALLgOZgBTI+kO6qAc3LysyKuJM7k+XqUqdgJHEH8gR5uytd1rO7v
-tG+VW/YKk3+XAIiCnK7a11apC/ItVEBegM8CAwEAAQJBAI5sxq7naeR9ahyqRkJi
-SIv2iMxLuPEHaezf5CYOPWjSjBPyVhyRevkhtqEjF/WkgL7C2nWpYHsUcBDBQVF0
-3KECIQDtEGB2ulnkZAahl3WuJziXGLB+p8Wgx7wzSM6bHu1c6QIhAMEp++CaS+SJ
-/TrU0zwY/fW4SvQeb49BPZUF3oqR8Xz3AiEA1rAJHBzBgdOQKdE3ksMUPcnvNJSN
-poCcELmz2clVXtkCIQCLytuLV38XHToTipR4yMl6O+6arzAjZ56uq7m7ZRV0TwIh
-AM65XAOw8Dsg9Kq78aYXiOEDc5DL0sbFUu/SlmRcCg93
------END RSA PRIVATE KEY-----
-`)
+MIIBPAIBAAJBAN55NcYKZeInyTuhcCwFMhDHCmwaIUSdtXdcbItRB/yfXGBhiex0
+0IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEAAQJBAQdUx66rfh8sYsgfdcvV
+NoafYpnEcB5s4m/vSVe6SU7dCK6eYec9f9wpT353ljhDUHq3EbmE4foNzJngh35d
+AekCIQDhRQG5Li0Wj8TM4obOnnXUXf1jRv0UkzE9AHWLG5q3AwIhAPzSjpYUDjVW
+MCUXgckTpKCuGwbJk7424Nb8bLzf3kllAiA5mUBgjfr/WtFSJdWcPQ4Zt9KTMNKD
+EUO0ukpTwEIl6wIhAMbGqZK3zAAFdq8DD2jPx+UJXnh0rnOkZBzDtJ6/iN69AiEA
+1Aq8MJgTaYsDQWyU/hDq5YkDJc9e9DSCvUIzqxQWMQE=
+-----END RSA PRIVATE KEY-----`)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go	2013-10-01 16:06:44.172554280 +0000
@@ -68,7 +68,7 @@
 
 		WantDumpOut: "GET /foo HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Accept-Encoding: gzip\r\n\r\n",
 	},
 
@@ -80,7 +80,7 @@
 
 		WantDumpOut: "GET /foo HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Accept-Encoding: gzip\r\n\r\n",
 	},
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go	2013-10-01 16:06:44.172554280 +0000
@@ -81,6 +81,19 @@
 	}
 }
 
+// Hop-by-hop headers. These are removed when sent to the backend.
+// http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
+var hopHeaders = []string{
+	"Connection",
+	"Keep-Alive",
+	"Proxy-Authenticate",
+	"Proxy-Authorization",
+	"Te", // canonicalized version of "TE"
+	"Trailers",
+	"Transfer-Encoding",
+	"Upgrade",
+}
+
 func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
 	transport := p.Transport
 	if transport == nil {
@@ -96,14 +109,21 @@
 	outreq.ProtoMinor = 1
 	outreq.Close = false
 
-	// Remove the connection header to the backend.  We want a
-	// persistent connection, regardless of what the client sent
-	// to us.  This is modifying the same underlying map from req
-	// (shallow copied above) so we only copy it if necessary.
-	if outreq.Header.Get("Connection") != "" {
-		outreq.Header = make(http.Header)
-		copyHeader(outreq.Header, req.Header)
-		outreq.Header.Del("Connection")
+	// Remove hop-by-hop headers to the backend.  Especially
+	// important is "Connection" because we want a persistent
+	// connection, regardless of what the client sent to us.  This
+	// is modifying the same underlying map from req (shallow
+	// copied above) so we only copy it if necessary.
+	copiedHeaders := false
+	for _, h := range hopHeaders {
+		if outreq.Header.Get(h) != "" {
+			if !copiedHeaders {
+				outreq.Header = make(http.Header)
+				copyHeader(outreq.Header, req.Header)
+				copiedHeaders = true
+			}
+			outreq.Header.Del(h)
+		}
 	}
 
 	if clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil {
@@ -182,7 +202,6 @@
 			m.lk.Unlock()
 		}
 	}
-	panic("unreached")
 }
 
 func (m *maxLatencyWriter) stop() { m.done <- true }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -29,6 +29,9 @@
 		if c := r.Header.Get("Connection"); c != "" {
 			t.Errorf("handler got Connection header value %q", c)
 		}
+		if c := r.Header.Get("Upgrade"); c != "" {
+			t.Errorf("handler got Upgrade header value %q", c)
+		}
 		if g, e := r.Host, "some-name"; g != e {
 			t.Errorf("backend got Host header %q, want %q", g, e)
 		}
@@ -49,6 +52,7 @@
 	getReq, _ := http.NewRequest("GET", frontend.URL, nil)
 	getReq.Host = "some-name"
 	getReq.Header.Set("Connection", "close")
+	getReq.Header.Set("Upgrade", "foo")
 	getReq.Close = true
 	res, err := http.DefaultClient.Do(getReq)
 	if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/jar.go gcc-4.8.1/libgo/go/net/http/jar.go
--- gcc-4.8.1.orig/libgo/go/net/http/jar.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/jar.go	2013-10-01 16:06:44.176554280 +0000
@@ -12,6 +12,8 @@
 //
 // Implementations of CookieJar must be safe for concurrent use by multiple
 // goroutines.
+//
+// The net/http/cookiejar package provides a CookieJar implementation.
 type CookieJar interface {
 	// SetCookies handles the receipt of the cookies in a reply for the
 	// given URL.  It may or may not choose to save the cookies, depending
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/npn_test.go gcc-4.8.1/libgo/go/net/http/npn_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/npn_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/npn_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -0,0 +1,118 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http_test
+
+import (
+	"bufio"
+	"crypto/tls"
+	"fmt"
+	"io"
+	"io/ioutil"
+	. "net/http"
+	"net/http/httptest"
+	"strings"
+	"testing"
+)
+
+func TestNextProtoUpgrade(t *testing.T) {
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		fmt.Fprintf(w, "path=%s,proto=", r.URL.Path)
+		if r.TLS != nil {
+			w.Write([]byte(r.TLS.NegotiatedProtocol))
+		}
+		if r.RemoteAddr == "" {
+			t.Error("request with no RemoteAddr")
+		}
+		if r.Body == nil {
+			t.Errorf("request with nil Body")
+		}
+	}))
+	ts.TLS = &tls.Config{
+		NextProtos: []string{"unhandled-proto", "tls-0.9"},
+	}
+	ts.Config.TLSNextProto = map[string]func(*Server, *tls.Conn, Handler){
+		"tls-0.9": handleTLSProtocol09,
+	}
+	ts.StartTLS()
+	defer ts.Close()
+
+	tr := newTLSTransport(t, ts)
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	// Normal request, without NPN.
+	{
+		res, err := c.Get(ts.URL)
+		if err != nil {
+			t.Fatal(err)
+		}
+		body, err := ioutil.ReadAll(res.Body)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if want := "path=/,proto="; string(body) != want {
+			t.Errorf("plain request = %q; want %q", body, want)
+		}
+	}
+
+	// Request to an advertised but unhandled NPN protocol.
+	// Server will hang up.
+	{
+		tr.CloseIdleConnections()
+		tr.TLSClientConfig.NextProtos = []string{"unhandled-proto"}
+		_, err := c.Get(ts.URL)
+		if err == nil {
+			t.Errorf("expected error on unhandled-proto request")
+		}
+	}
+
+	// Request using the "tls-0.9" protocol, which we register here.
+	// It is HTTP/0.9 over TLS.
+	{
+		tlsConfig := newTLSTransport(t, ts).TLSClientConfig
+		tlsConfig.NextProtos = []string{"tls-0.9"}
+		conn, err := tls.Dial("tcp", ts.Listener.Addr().String(), tlsConfig)
+		if err != nil {
+			t.Fatal(err)
+		}
+		conn.Write([]byte("GET /foo\n"))
+		body, err := ioutil.ReadAll(conn)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if want := "path=/foo,proto=tls-0.9"; string(body) != want {
+			t.Errorf("plain request = %q; want %q", body, want)
+		}
+	}
+}
+
+// handleTLSProtocol09 implements the HTTP/0.9 protocol over TLS, for the
+// TestNextProtoUpgrade test.
+func handleTLSProtocol09(srv *Server, conn *tls.Conn, h Handler) {
+	br := bufio.NewReader(conn)
+	line, err := br.ReadString('\n')
+	if err != nil {
+		return
+	}
+	line = strings.TrimSpace(line)
+	path := strings.TrimPrefix(line, "GET ")
+	if path == line {
+		return
+	}
+	req, _ := NewRequest("GET", path, nil)
+	req.Proto = "HTTP/0.9"
+	req.ProtoMajor = 0
+	req.ProtoMinor = 9
+	rw := &http09Writer{conn, make(Header)}
+	h.ServeHTTP(rw, req)
+}
+
+type http09Writer struct {
+	io.Writer
+	h Header
+}
+
+func (w http09Writer) Header() Header  { return w.h }
+func (w http09Writer) WriteHeader(int) {} // no headers
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go gcc-4.8.1/libgo/go/net/http/pprof/pprof.go
--- gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/pprof/pprof.go	2013-10-01 16:06:44.176554280 +0000
@@ -172,7 +172,7 @@
 // listing the available profiles.
 func Index(w http.ResponseWriter, r *http.Request) {
 	if strings.HasPrefix(r.URL.Path, "/debug/pprof/") {
-		name := r.URL.Path[len("/debug/pprof/"):]
+		name := strings.TrimPrefix(r.URL.Path, "/debug/pprof/")
 		if name != "" {
 			handler(name).ServeHTTP(w, r)
 			return
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request.go gcc-4.8.1/libgo/go/net/http/request.go
--- gcc-4.8.1.orig/libgo/go/net/http/request.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/request.go	2013-10-01 16:06:44.176554280 +0000
@@ -48,7 +48,7 @@
 	ErrUnexpectedTrailer    = &ProtocolError{"trailer header without chunked transfer encoding"}
 	ErrMissingContentLength = &ProtocolError{"missing ContentLength in HEAD response"}
 	ErrNotMultipart         = &ProtocolError{"request Content-Type isn't multipart/form-data"}
-	ErrMissingBoundary      = &ProtocolError{"no multipart boundary param Content-Type"}
+	ErrMissingBoundary      = &ProtocolError{"no multipart boundary param in Content-Type"}
 )
 
 type badStringError struct {
@@ -283,7 +283,7 @@
 	return def
 }
 
-const defaultUserAgent = "Go http package"
+const defaultUserAgent = "Go 1.1 package http"
 
 // Write writes an HTTP/1.1 request -- header and body -- in wire format.
 // This method consults the following fields of the request:
@@ -467,10 +467,42 @@
 	r.Header.Set("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte(s)))
 }
 
+// parseRequestLine parses "GET /foo HTTP/1.1" into its three parts.
+func parseRequestLine(line string) (method, requestURI, proto string, ok bool) {
+	s1 := strings.Index(line, " ")
+	s2 := strings.Index(line[s1+1:], " ")
+	if s1 < 0 || s2 < 0 {
+		return
+	}
+	s2 += s1 + 1
+	return line[:s1], line[s1+1 : s2], line[s2+1:], true
+}
+
+// TODO(bradfitz): use a sync.Cache when available
+var textprotoReaderCache = make(chan *textproto.Reader, 4)
+
+func newTextprotoReader(br *bufio.Reader) *textproto.Reader {
+	select {
+	case r := <-textprotoReaderCache:
+		r.R = br
+		return r
+	default:
+		return textproto.NewReader(br)
+	}
+}
+
+func putTextprotoReader(r *textproto.Reader) {
+	r.R = nil
+	select {
+	case textprotoReaderCache <- r:
+	default:
+	}
+}
+
 // ReadRequest reads and parses a request from b.
 func ReadRequest(b *bufio.Reader) (req *Request, err error) {
 
-	tp := textproto.NewReader(b)
+	tp := newTextprotoReader(b)
 	req = new(Request)
 
 	// First line: GET /index.html HTTP/1.0
@@ -479,18 +511,18 @@
 		return nil, err
 	}
 	defer func() {
+		putTextprotoReader(tp)
 		if err == io.EOF {
 			err = io.ErrUnexpectedEOF
 		}
 	}()
 
-	var f []string
-	if f = strings.SplitN(s, " ", 3); len(f) < 3 {
+	var ok bool
+	req.Method, req.RequestURI, req.Proto, ok = parseRequestLine(s)
+	if !ok {
 		return nil, &badStringError{"malformed HTTP request", s}
 	}
-	req.Method, req.RequestURI, req.Proto = f[0], f[1], f[2]
 	rawurl := req.RequestURI
-	var ok bool
 	if req.ProtoMajor, req.ProtoMinor, ok = ParseHTTPVersion(req.Proto); !ok {
 		return nil, &badStringError{"malformed HTTP version", req.Proto}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request_test.go gcc-4.8.1/libgo/go/net/http/request_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/request_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/request_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -262,7 +262,39 @@
 			t.Fatal(err)
 		}
 		if req.ContentLength != tt.want {
-			t.Errorf("ContentLength(%#T) = %d; want %d", tt.r, req.ContentLength, tt.want)
+			t.Errorf("ContentLength(%T) = %d; want %d", tt.r, req.ContentLength, tt.want)
+		}
+	}
+}
+
+var parseHTTPVersionTests = []struct {
+	vers         string
+	major, minor int
+	ok           bool
+}{
+	{"HTTP/0.9", 0, 9, true},
+	{"HTTP/1.0", 1, 0, true},
+	{"HTTP/1.1", 1, 1, true},
+	{"HTTP/3.14", 3, 14, true},
+
+	{"HTTP", 0, 0, false},
+	{"HTTP/one.one", 0, 0, false},
+	{"HTTP/1.1/", 0, 0, false},
+	{"HTTP/-1,0", 0, 0, false},
+	{"HTTP/0,-1", 0, 0, false},
+	{"HTTP/", 0, 0, false},
+	{"HTTP/1,1", 0, 0, false},
+}
+
+func TestParseHTTPVersion(t *testing.T) {
+	for _, tt := range parseHTTPVersionTests {
+		major, minor, ok := ParseHTTPVersion(tt.vers)
+		if ok != tt.ok || major != tt.major || minor != tt.minor {
+			type version struct {
+				major, minor int
+				ok           bool
+			}
+			t.Errorf("failed to parse %q, expected: %#v, got %#v", tt.vers, version{tt.major, tt.minor, tt.ok}, version{major, minor, ok})
 		}
 	}
 }
@@ -289,7 +321,7 @@
 	want := []string{
 		"GET / HTTP/1.1\r\n",
 		"Host: foo.com\r\n",
-		"User-Agent: Go http package\r\n",
+		"User-Agent: " + DefaultUserAgent + "\r\n",
 		"\r\n",
 	}
 	if !reflect.DeepEqual(got, want) {
@@ -401,3 +433,81 @@
 ` + textbValue + `
 --MyBoundary--
 `
+
+func benchmarkReadRequest(b *testing.B, request string) {
+	request = request + "\n"                             // final \n
+	request = strings.Replace(request, "\n", "\r\n", -1) // expand \n to \r\n
+	b.SetBytes(int64(len(request)))
+	r := bufio.NewReader(&infiniteReader{buf: []byte(request)})
+	b.ReportAllocs()
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, err := ReadRequest(r)
+		if err != nil {
+			b.Fatalf("failed to read request: %v", err)
+		}
+	}
+}
+
+// infiniteReader satisfies Read requests as if the contents of buf
+// loop indefinitely.
+type infiniteReader struct {
+	buf    []byte
+	offset int
+}
+
+func (r *infiniteReader) Read(b []byte) (int, error) {
+	n := copy(b, r.buf[r.offset:])
+	r.offset = (r.offset + n) % len(r.buf)
+	return n, nil
+}
+
+func BenchmarkReadRequestChrome(b *testing.B) {
+	// https://github.com/felixge/node-http-perf/blob/master/fixtures/get.http
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+Connection: keep-alive
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+Cookie: __utma=1.1978842379.1323102373.1323102373.1323102373.1; EPi:NumberOfVisits=1,2012-02-28T13:42:18; CrmSession=5b707226b9563e1bc69084d07a107c98; plushContainerWidth=100%25; plushNoTopMenu=0; hudson_auto_refresh=false
+`)
+}
+
+func BenchmarkReadRequestCurl(b *testing.B) {
+	// curl http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+User-Agent: curl/7.27.0
+Host: localhost:8080
+Accept: */*
+`)
+}
+
+func BenchmarkReadRequestApachebench(b *testing.B) {
+	// ab -n 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.0
+Host: localhost:8080
+User-Agent: ApacheBench/2.3
+Accept: */*
+`)
+}
+
+func BenchmarkReadRequestSiege(b *testing.B) {
+	// siege -r 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+Accept: */*
+Accept-Encoding: gzip
+User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
+Connection: keep-alive
+`)
+}
+
+func BenchmarkReadRequestWrk(b *testing.B) {
+	// wrk -t 1 -r 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+`)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go gcc-4.8.1/libgo/go/net/http/requestwrite_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/requestwrite_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -93,13 +93,13 @@
 
 		WantWrite: "GET /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 
 		WantProxy: "GET http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 	},
@@ -123,14 +123,14 @@
 
 		WantWrite: "POST /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 
 		WantProxy: "POST http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
@@ -156,7 +156,7 @@
 
 		WantWrite: "POST /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
@@ -164,7 +164,7 @@
 
 		WantProxy: "POST http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
@@ -187,14 +187,14 @@
 
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
 			"abcdef",
 
 		WantProxy: "POST http://example.com/ HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
 			"abcdef",
@@ -210,7 +210,7 @@
 
 		WantWrite: "GET /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"\r\n",
 	},
 
@@ -232,13 +232,13 @@
 		// Also, nginx expects it for POST and PUT.
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 0\r\n" +
 			"\r\n",
 
 		WantProxy: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 0\r\n" +
 			"\r\n",
 	},
@@ -258,13 +258,13 @@
 
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("x") + chunk(""),
 
 		WantProxy: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("x") + chunk(""),
 	},
@@ -325,9 +325,96 @@
 
 		WantWrite: "GET /foo HTTP/1.1\r\n" +
 			"Host: \r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"X-Foo: X-Bar\r\n\r\n",
 	},
+
+	// If no Request.Host and no Request.URL.Host, we send
+	// an empty Host header, and don't use
+	// Request.Header["Host"]. This is just testing that
+	// we don't change Go 1.0 behavior.
+	{
+		Req: Request{
+			Method: "GET",
+			Host:   "",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "",
+				Path:   "/search",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header: Header{
+				"Host": []string{"bad.example.com"},
+			},
+		},
+
+		WantWrite: "GET /search HTTP/1.1\r\n" +
+			"Host: \r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Opaque test #1 from golang.org/issue/4860
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "www.google.com",
+				Opaque: "/%2F/%2F/",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header:     Header{},
+		},
+
+		WantWrite: "GET /%2F/%2F/ HTTP/1.1\r\n" +
+			"Host: www.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Opaque test #2 from golang.org/issue/4860
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "x.google.com",
+				Opaque: "//y.google.com/%2F/%2F/",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header:     Header{},
+		},
+
+		WantWrite: "GET http://y.google.com/%2F/%2F/ HTTP/1.1\r\n" +
+			"Host: x.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Testing custom case in header keys. Issue 5022.
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "www.google.com",
+				Path:   "/",
+			},
+			Proto:      "HTTP/1.1",
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header: Header{
+				"ALL-CAPS": {"x"},
+			},
+		},
+
+		WantWrite: "GET / HTTP/1.1\r\n" +
+			"Host: www.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
+			"ALL-CAPS: x\r\n" +
+			"\r\n",
+	},
 }
 
 func TestRequestWrite(t *testing.T) {
@@ -411,7 +498,7 @@
 	}
 	expected := "POST / HTTP/1.1\r\n" +
 		"Host: foo.com\r\n" +
-		"User-Agent: Go http package\r\n" +
+		"User-Agent: Go 1.1 package http\r\n" +
 		"Transfer-Encoding: chunked\r\n\r\n" +
 		// TODO: currently we don't buffer before chunking, so we get a
 		// single "m" chunk before the other chunks, as this was the 1-byte
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response.go gcc-4.8.1/libgo/go/net/http/response.go
--- gcc-4.8.1.orig/libgo/go/net/http/response.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/response.go	2013-10-01 16:06:44.176554280 +0000
@@ -46,6 +46,9 @@
 	// The http Client and Transport guarantee that Body is always
 	// non-nil, even on responses without a body or responses with
 	// a zero-lengthed body.
+	//
+	// The Body is automatically dechunked if the server replied
+	// with a "chunked" Transfer-Encoding.
 	Body io.ReadCloser
 
 	// ContentLength records the length of the associated content.  The
@@ -198,9 +201,7 @@
 	}
 	protoMajor, protoMinor := strconv.Itoa(r.ProtoMajor), strconv.Itoa(r.ProtoMinor)
 	statusCode := strconv.Itoa(r.StatusCode) + " "
-	if strings.HasPrefix(text, statusCode) {
-		text = text[len(statusCode):]
-	}
+	text = strings.TrimPrefix(text, statusCode)
 	io.WriteString(w, "HTTP/"+protoMajor+"."+protoMinor+" "+statusCode+text+"\r\n")
 
 	// Process Body,ContentLength,Close,Trailer
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response_test.go gcc-4.8.1/libgo/go/net/http/response_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/response_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/response_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -112,8 +112,8 @@
 			ProtoMinor: 0,
 			Request:    dummyReq("GET"),
 			Header: Header{
-				"Connection":     {"close"}, // TODO(rsc): Delete?
-				"Content-Length": {"10"},    // TODO(rsc): Delete?
+				"Connection":     {"close"},
+				"Content-Length": {"10"},
 			},
 			Close:         true,
 			ContentLength: 10,
@@ -157,7 +157,7 @@
 			"Content-Length: 10\r\n" +
 			"\r\n" +
 			"0a\r\n" +
-			"Body here\n" +
+			"Body here\n\r\n" +
 			"0\r\n" +
 			"\r\n",
 
@@ -170,7 +170,7 @@
 			Request:          dummyReq("GET"),
 			Header:           Header{},
 			Close:            false,
-			ContentLength:    -1, // TODO(rsc): Fix?
+			ContentLength:    -1,
 			TransferEncoding: []string{"chunked"},
 		},
 
@@ -324,16 +324,37 @@
 
 		"",
 	},
+
+	// golang.org/issue/4767: don't special-case multipart/byteranges responses
+	{
+		`HTTP/1.1 206 Partial Content
+Connection: close
+Content-Type: multipart/byteranges; boundary=18a75608c8f47cef
+
+some body`,
+		Response{
+			Status:     "206 Partial Content",
+			StatusCode: 206,
+			Proto:      "HTTP/1.1",
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Request:    dummyReq("GET"),
+			Header: Header{
+				"Content-Type": []string{"multipart/byteranges; boundary=18a75608c8f47cef"},
+			},
+			Close:         true,
+			ContentLength: -1,
+		},
+
+		"some body",
+	},
 }
 
 func TestReadResponse(t *testing.T) {
-	for i := range respTests {
-		tt := &respTests[i]
-		var braw bytes.Buffer
-		braw.WriteString(tt.Raw)
-		resp, err := ReadResponse(bufio.NewReader(&braw), tt.Resp.Request)
+	for i, tt := range respTests {
+		resp, err := ReadResponse(bufio.NewReader(strings.NewReader(tt.Raw)), tt.Resp.Request)
 		if err != nil {
-			t.Errorf("#%d: %s", i, err)
+			t.Errorf("#%d: %v", i, err)
 			continue
 		}
 		rbody := resp.Body
@@ -341,7 +362,11 @@
 		diff(t, fmt.Sprintf("#%d Response", i), resp, &tt.Resp)
 		var bout bytes.Buffer
 		if rbody != nil {
-			io.Copy(&bout, rbody)
+			_, err = io.Copy(&bout, rbody)
+			if err != nil {
+				t.Errorf("#%d: %v", i, err)
+				continue
+			}
 			rbody.Close()
 		}
 		body := bout.String()
@@ -351,6 +376,22 @@
 	}
 }
 
+func TestWriteResponse(t *testing.T) {
+	for i, tt := range respTests {
+		resp, err := ReadResponse(bufio.NewReader(strings.NewReader(tt.Raw)), tt.Resp.Request)
+		if err != nil {
+			t.Errorf("#%d: %v", i, err)
+			continue
+		}
+		bout := bytes.NewBuffer(nil)
+		err = resp.Write(bout)
+		if err != nil {
+			t.Errorf("#%d: %v", i, err)
+			continue
+		}
+	}
+}
+
 var readResponseCloseInMiddleTests = []struct {
 	chunked, compressed bool
 }{
@@ -425,7 +466,7 @@
 		if test.compressed {
 			gzReader, err := gzip.NewReader(resp.Body)
 			checkErr(err, "gzip.NewReader")
-			resp.Body = &readFirstCloseBoth{gzReader, resp.Body}
+			resp.Body = &readerAndCloser{gzReader, resp.Body}
 		}
 
 		rbuf := make([]byte, 2500)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/serve_test.go gcc-4.8.1/libgo/go/net/http/serve_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/serve_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/serve_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -10,6 +10,7 @@
 	"bufio"
 	"bytes"
 	"crypto/tls"
+	"errors"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -64,10 +65,39 @@
 	return string(a)
 }
 
+type noopConn struct{}
+
+func (noopConn) LocalAddr() net.Addr                { return dummyAddr("local-addr") }
+func (noopConn) RemoteAddr() net.Addr               { return dummyAddr("remote-addr") }
+func (noopConn) SetDeadline(t time.Time) error      { return nil }
+func (noopConn) SetReadDeadline(t time.Time) error  { return nil }
+func (noopConn) SetWriteDeadline(t time.Time) error { return nil }
+
+type rwTestConn struct {
+	io.Reader
+	io.Writer
+	noopConn
+
+	closeFunc func() error // called if non-nil
+	closec    chan bool    // else, if non-nil, send value to it on close
+}
+
+func (c *rwTestConn) Close() error {
+	if c.closeFunc != nil {
+		return c.closeFunc()
+	}
+	select {
+	case c.closec <- true:
+	default:
+	}
+	return nil
+}
+
 type testConn struct {
 	readBuf  bytes.Buffer
 	writeBuf bytes.Buffer
 	closec   chan bool // if non-nil, send value to it on close
+	noopConn
 }
 
 func (c *testConn) Read(b []byte) (int, error) {
@@ -86,26 +116,6 @@
 	return nil
 }
 
-func (c *testConn) LocalAddr() net.Addr {
-	return dummyAddr("local-addr")
-}
-
-func (c *testConn) RemoteAddr() net.Addr {
-	return dummyAddr("remote-addr")
-}
-
-func (c *testConn) SetDeadline(t time.Time) error {
-	return nil
-}
-
-func (c *testConn) SetReadDeadline(t time.Time) error {
-	return nil
-}
-
-func (c *testConn) SetWriteDeadline(t time.Time) error {
-	return nil
-}
-
 func TestConsumingBodyOnNextConn(t *testing.T) {
 	conn := new(testConn)
 	for i := 0; i < 2; i++ {
@@ -184,6 +194,7 @@
 }
 
 func TestHostHandlers(t *testing.T) {
+	defer afterTest(t)
 	mux := NewServeMux()
 	for _, h := range handlers {
 		mux.Handle(h.pattern, stringHandler(h.msg))
@@ -256,28 +267,22 @@
 }
 
 func TestServerTimeouts(t *testing.T) {
-	// TODO(bradfitz): convert this to use httptest.Server
-	l, err := net.Listen("tcp", "127.0.0.1:0")
-	if err != nil {
-		t.Fatalf("listen error: %v", err)
-	}
-	addr, _ := l.Addr().(*net.TCPAddr)
-
+	defer afterTest(t)
 	reqNum := 0
-	handler := HandlerFunc(func(res ResponseWriter, req *Request) {
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(res ResponseWriter, req *Request) {
 		reqNum++
 		fmt.Fprintf(res, "req=%d", reqNum)
-	})
-
-	server := &Server{Handler: handler, ReadTimeout: 250 * time.Millisecond, WriteTimeout: 250 * time.Millisecond}
-	go server.Serve(l)
-
-	url := fmt.Sprintf("http://%s/", addr)
+	}))
+	ts.Config.ReadTimeout = 250 * time.Millisecond
+	ts.Config.WriteTimeout = 250 * time.Millisecond
+	ts.Start()
+	defer ts.Close()
 
 	// Hit the HTTP server successfully.
 	tr := &Transport{DisableKeepAlives: true} // they interfere with this test
+	defer tr.CloseIdleConnections()
 	c := &Client{Transport: tr}
-	r, err := c.Get(url)
+	r, err := c.Get(ts.URL)
 	if err != nil {
 		t.Fatalf("http Get #1: %v", err)
 	}
@@ -290,13 +295,13 @@
 
 	// Slow client that should timeout.
 	t1 := time.Now()
-	conn, err := net.Dial("tcp", addr.String())
+	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
 	if err != nil {
 		t.Fatalf("Dial: %v", err)
 	}
 	buf := make([]byte, 1)
 	n, err := conn.Read(buf)
-	latency := time.Now().Sub(t1)
+	latency := time.Since(t1)
 	if n != 0 || err != io.EOF {
 		t.Errorf("Read = %v, %v, wanted %v, %v", n, err, 0, io.EOF)
 	}
@@ -307,7 +312,7 @@
 	// Hit the HTTP server successfully again, verifying that the
 	// previous slow connection didn't run our handler.  (that we
 	// get "req=2", not "req=3")
-	r, err = Get(url)
+	r, err = Get(ts.URL)
 	if err != nil {
 		t.Fatalf("http Get #2: %v", err)
 	}
@@ -317,11 +322,87 @@
 		t.Errorf("Get #2 got %q, want %q", string(got), expected)
 	}
 
-	l.Close()
+	if !testing.Short() {
+		conn, err := net.Dial("tcp", ts.Listener.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial: %v", err)
+		}
+		defer conn.Close()
+		go io.Copy(ioutil.Discard, conn)
+		for i := 0; i < 5; i++ {
+			_, err := conn.Write([]byte("GET / HTTP/1.1\r\nHost: foo\r\n\r\n"))
+			if err != nil {
+				t.Fatalf("on write %d: %v", i, err)
+			}
+			time.Sleep(ts.Config.ReadTimeout / 2)
+		}
+	}
+}
+
+// golang.org/issue/4741 -- setting only a write timeout that triggers
+// shouldn't cause a handler to block forever on reads (next HTTP
+// request) that will never happen.
+func TestOnlyWriteTimeout(t *testing.T) {
+	defer afterTest(t)
+	var conn net.Conn
+	var afterTimeoutErrc = make(chan error, 1)
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, req *Request) {
+		buf := make([]byte, 512<<10)
+		_, err := w.Write(buf)
+		if err != nil {
+			t.Errorf("handler Write error: %v", err)
+			return
+		}
+		conn.SetWriteDeadline(time.Now().Add(-30 * time.Second))
+		_, err = w.Write(buf)
+		afterTimeoutErrc <- err
+	}))
+	ts.Listener = trackLastConnListener{ts.Listener, &conn}
+	ts.Start()
+	defer ts.Close()
+
+	tr := &Transport{DisableKeepAlives: false}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	errc := make(chan error)
+	go func() {
+		res, err := c.Get(ts.URL)
+		if err != nil {
+			errc <- err
+			return
+		}
+		_, err = io.Copy(ioutil.Discard, res.Body)
+		errc <- err
+	}()
+	select {
+	case err := <-errc:
+		if err == nil {
+			t.Errorf("expected an error from Get request")
+		}
+	case <-time.After(5 * time.Second):
+		t.Fatal("timeout waiting for Get error")
+	}
+	if err := <-afterTimeoutErrc; err == nil {
+		t.Error("expected write error after timeout")
+	}
+}
+
+// trackLastConnListener tracks the last net.Conn that was accepted.
+type trackLastConnListener struct {
+	net.Listener
+	last *net.Conn // destination
+}
+
+func (l trackLastConnListener) Accept() (c net.Conn, err error) {
+	c, err = l.Listener.Accept()
+	*l.last = c
+	return
 }
 
 // TestIdentityResponse verifies that a handler can unset
 func TestIdentityResponse(t *testing.T) {
+	defer afterTest(t)
 	handler := HandlerFunc(func(rw ResponseWriter, req *Request) {
 		rw.Header().Set("Content-Length", "3")
 		rw.Header().Set("Transfer-Encoding", req.FormValue("te"))
@@ -367,10 +448,12 @@
 
 	// Verify that ErrContentLength is returned
 	url := ts.URL + "/?overwrite=1"
-	_, err := Get(url)
+	res, err := Get(url)
 	if err != nil {
 		t.Fatalf("error with Get of %s: %v", url, err)
 	}
+	res.Body.Close()
+
 	// Verify that the connection is closed when the declared Content-Length
 	// is larger than what the handler wrote.
 	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
@@ -395,6 +478,7 @@
 }
 
 func testTCPConnectionCloses(t *testing.T, req string, h Handler) {
+	defer afterTest(t)
 	s := httptest.NewServer(h)
 	defer s.Close()
 
@@ -465,6 +549,7 @@
 }
 
 func TestSetsRemoteAddr(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		fmt.Fprintf(w, "%s", r.RemoteAddr)
 	}))
@@ -485,6 +570,7 @@
 }
 
 func TestChunkedResponseHeaders(t *testing.T) {
+	defer afterTest(t)
 	log.SetOutput(ioutil.Discard) // is noisy otherwise
 	defer log.SetOutput(os.Stderr)
 
@@ -499,6 +585,7 @@
 	if err != nil {
 		t.Fatalf("Get error: %v", err)
 	}
+	defer res.Body.Close()
 	if g, e := res.ContentLength, int64(-1); g != e {
 		t.Errorf("expected ContentLength of %d; got %d", e, g)
 	}
@@ -514,6 +601,7 @@
 // chunking in their response headers and aren't allowed to produce
 // output.
 func Test304Responses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.WriteHeader(StatusNotModified)
 		_, err := w.Write([]byte("illegal body"))
@@ -543,6 +631,7 @@
 // allowed to produce output, and don't set a Content-Type since
 // the real type of the body data cannot be inferred.
 func TestHeadResponses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		_, err := w.Write([]byte("Ignored body"))
 		if err != ErrBodyNotAllowed {
@@ -577,6 +666,7 @@
 }
 
 func TestTLSHandshakeTimeout(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	ts.Config.ReadTimeout = 250 * time.Millisecond
 	ts.StartTLS()
@@ -596,6 +686,7 @@
 }
 
 func TestTLSServer(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.TLS != nil {
 			w.Header().Set("X-TLS-Set", "true")
@@ -678,6 +769,7 @@
 // Tests that the server responds to the "Expect" request header
 // correctly.
 func TestServerExpect(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		// Note using r.FormValue("readbody") because for POST
 		// requests that would read from r.Body, which we only
@@ -815,6 +907,7 @@
 }
 
 func TestTimeoutHandler(t *testing.T) {
+	defer afterTest(t)
 	sendHi := make(chan bool, 1)
 	writeErrors := make(chan error, 1)
 	sayHi := HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -889,6 +982,7 @@
 // the previous request's body, which is not optimal for zero-lengthed bodies,
 // as the client would then see http.ErrBodyReadAfterClose and not 0, io.EOF.
 func TestZeroLengthPostAndResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, r *Request) {
 		all, err := ioutil.ReadAll(r.Body)
 		if err != nil {
@@ -939,6 +1033,7 @@
 }
 
 func testHandlerPanic(t *testing.T, withHijack bool, panicValue interface{}) {
+	defer afterTest(t)
 	// Unlike the other tests that set the log output to ioutil.Discard
 	// to quiet the output, this test uses a pipe.  The pipe serves three
 	// purposes:
@@ -958,6 +1053,7 @@
 	pr, pw := io.Pipe()
 	log.SetOutput(pw)
 	defer log.SetOutput(os.Stderr)
+	defer pw.Close()
 
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if withHijack {
@@ -979,7 +1075,7 @@
 		buf := make([]byte, 4<<10)
 		_, err := pr.Read(buf)
 		pr.Close()
-		if err != nil {
+		if err != nil && err != io.EOF {
 			t.Error(err)
 		}
 		done <- true
@@ -1003,6 +1099,7 @@
 }
 
 func TestNoDate(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header()["Date"] = nil
 	}))
@@ -1018,6 +1115,7 @@
 }
 
 func TestStripPrefix(t *testing.T) {
+	defer afterTest(t)
 	h := HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("X-Path", r.URL.Path)
 	})
@@ -1031,6 +1129,7 @@
 	if g, e := res.Header.Get("X-Path"), "/bar"; g != e {
 		t.Errorf("test 1: got %s, want %s", g, e)
 	}
+	res.Body.Close()
 
 	res, err = Get(ts.URL + "/bar")
 	if err != nil {
@@ -1039,9 +1138,11 @@
 	if g, e := res.StatusCode, 404; g != e {
 		t.Errorf("test 2: got status %v, want %v", g, e)
 	}
+	res.Body.Close()
 }
 
 func TestRequestLimit(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		t.Fatalf("didn't expect to get request in Handler")
 	}))
@@ -1058,6 +1159,7 @@
 		// we do support it (at least currently), so we expect a response below.
 		t.Fatalf("Do: %v", err)
 	}
+	defer res.Body.Close()
 	if res.StatusCode != 413 {
 		t.Fatalf("expected 413 response status; got: %d %s", res.StatusCode, res.Status)
 	}
@@ -1084,6 +1186,7 @@
 }
 
 func TestRequestBodyLimit(t *testing.T) {
+	defer afterTest(t)
 	const limit = 1 << 20
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		r.Body = MaxBytesReader(w, r.Body, limit)
@@ -1120,6 +1223,7 @@
 // TestClientWriteShutdown tests that if the client shuts down the write
 // side of their TCP connection, the server doesn't send a 400 Bad Request.
 func TestClientWriteShutdown(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	defer ts.Close()
 	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
@@ -1174,6 +1278,7 @@
 // closing the TCP connection, causing the client to get a RST.
 // See http://golang.org/issue/3595
 func TestServerGracefulClose(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		Error(w, "bye", StatusUnauthorized)
 	}))
@@ -1216,6 +1321,7 @@
 }
 
 func TestCaseSensitiveMethod(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "get" {
 			t.Errorf(`Got method %q; want "get"`, r.Method)
@@ -1264,6 +1370,7 @@
 }
 
 func TestCloseNotifier(t *testing.T) {
+	defer afterTest(t)
 	gotReq := make(chan bool, 1)
 	sawClose := make(chan bool, 1)
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
@@ -1299,6 +1406,31 @@
 	ts.Close()
 }
 
+func TestCloseNotifierChanLeak(t *testing.T) {
+	defer afterTest(t)
+	req := []byte(strings.Replace(`GET / HTTP/1.0
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	for i := 0; i < 20; i++ {
+		var output bytes.Buffer
+		conn := &rwTestConn{
+			Reader: bytes.NewReader(req),
+			Writer: &output,
+			closec: make(chan bool, 1),
+		}
+		ln := &oneConnListener{conn: conn}
+		handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+			// Ignore the return value and never read from
+			// it, testing that we don't leak goroutines
+			// on the sending side:
+			_ = rw.(CloseNotifier).CloseNotify()
+		})
+		go Serve(ln, handler)
+		<-conn.closec
+	}
+}
+
 func TestOptions(t *testing.T) {
 	uric := make(chan string, 2) // only expect 1, but leave space for 2
 	mux := NewServeMux()
@@ -1351,6 +1483,198 @@
 	}
 }
 
+// Tests regarding the ordering of Write, WriteHeader, Header, and
+// Flush calls.  In Go 1.0, rw.WriteHeader immediately flushed the
+// (*response).header to the wire. In Go 1.1, the actual wire flush is
+// delayed, so we could maybe tack on a Content-Length and better
+// Content-Type after we see more (or all) of the output. To preserve
+// compatibility with Go 1, we need to be careful to track which
+// headers were live at the time of WriteHeader, so we write the same
+// ones, even if the handler modifies them (~erroneously) after the
+// first Write.
+func TestHeaderToWire(t *testing.T) {
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+
+	tests := []struct {
+		name    string
+		handler func(ResponseWriter, *Request)
+		check   func(output string) error
+	}{
+		{
+			name: "write without Header",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("hello world"))
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Length:") {
+					return errors.New("no content-length")
+				}
+				if !strings.Contains(got, "Content-Type: text/plain") {
+					return errors.New("no content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "Header mutation before write",
+			handler: func(rw ResponseWriter, r *Request) {
+				h := rw.Header()
+				h.Set("Content-Type", "some/type")
+				rw.Write([]byte("hello world"))
+				h.Set("Too-Late", "bogus")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Length:") {
+					return errors.New("no content-length")
+				}
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-type")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("don't want too-late header")
+				}
+				return nil
+			},
+		},
+		{
+			name: "write then useless Header mutation",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("hello world"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				return nil
+			},
+		},
+		{
+			name: "flush then write",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.(Flusher).Flush()
+				rw.Write([]byte("post-flush"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Transfer-Encoding: chunked") {
+					return errors.New("not chunked")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				return nil
+			},
+		},
+		{
+			name: "header then flush",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Content-Type", "some/type")
+				rw.(Flusher).Flush()
+				rw.Write([]byte("post-flush"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Transfer-Encoding: chunked") {
+					return errors.New("not chunked")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "sniff-on-first-write content-type",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("<html><head></head><body>some html</body></html>"))
+				rw.Header().Set("Content-Type", "x/wrong")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: text/html") {
+					return errors.New("wrong content-length; want html")
+				}
+				return nil
+			},
+		},
+		{
+			name: "explicit content-type wins",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Content-Type", "some/type")
+				rw.Write([]byte("<html><head></head><body>some html</body></html>"))
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-length; want html")
+				}
+				return nil
+			},
+		},
+		{
+			name: "empty handler",
+			handler: func(rw ResponseWriter, r *Request) {
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: text/plain") {
+					return errors.New("wrong content-length; want text/plain")
+				}
+				if !strings.Contains(got, "Content-Length: 0") {
+					return errors.New("want 0 content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "only Header, no write",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Some-Header", "some-value")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Some-Header") {
+					return errors.New("didn't get header")
+				}
+				return nil
+			},
+		},
+		{
+			name: "WriteHeader call",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.WriteHeader(404)
+				rw.Header().Set("Too-Late", "some-value")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "404") {
+					return errors.New("wrong status")
+				}
+				if strings.Contains(got, "Some-Header") {
+					return errors.New("shouldn't have seen Too-Late")
+				}
+				return nil
+			},
+		},
+	}
+	for _, tc := range tests {
+		var output bytes.Buffer
+		conn := &rwTestConn{
+			Reader: bytes.NewReader(req),
+			Writer: &output,
+			closec: make(chan bool, 1),
+		}
+		ln := &oneConnListener{conn: conn}
+		go Serve(ln, HandlerFunc(tc.handler))
+		<-conn.closec
+		if err := tc.check(output.String()); err != nil {
+			t.Errorf("%s: %v\nGot response:\n%s", tc.name, err, output.Bytes())
+		}
+	}
+}
+
 // goTimeout runs f, failing t if f takes more than ns to complete.
 func goTimeout(t *testing.T, d time.Duration, f func()) {
 	ch := make(chan bool, 2)
@@ -1524,3 +1848,179 @@
 		b.Errorf("Test failure: %v, with output: %s", err, out)
 	}
 }
+
+func BenchmarkServerFakeConnNoKeepAlive(b *testing.B) {
+	b.ReportAllocs()
+	req := []byte(strings.Replace(`GET / HTTP/1.0
+Host: golang.org
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &testConn{
+		// testConn.Close will not push into the channel
+		// if it's full.
+		closec: make(chan bool, 1),
+	}
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		rw.Header().Set("Content-Type", "text/html; charset=utf-8")
+		rw.Write(res)
+	})
+	ln := new(oneConnListener)
+	for i := 0; i < b.N; i++ {
+		conn.readBuf.Reset()
+		conn.writeBuf.Reset()
+		conn.readBuf.Write(req)
+		ln.conn = conn
+		Serve(ln, handler)
+		<-conn.closec
+	}
+}
+
+// repeatReader reads content count times, then EOFs.
+type repeatReader struct {
+	content []byte
+	count   int
+	off     int
+}
+
+func (r *repeatReader) Read(p []byte) (n int, err error) {
+	if r.count <= 0 {
+		return 0, io.EOF
+	}
+	n = copy(p, r.content[r.off:])
+	r.off += n
+	if r.off == len(r.content) {
+		r.count--
+		r.off = 0
+	}
+	return
+}
+
+func BenchmarkServerFakeConnWithKeepAlive(b *testing.B) {
+	b.ReportAllocs()
+
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		rw.Header().Set("Content-Type", "text/html; charset=utf-8")
+		rw.Write(res)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
+
+// same as above, but representing the most simple possible request
+// and handler. Notably: the handler does not call rw.Header().
+func BenchmarkServerFakeConnWithKeepAliveLite(b *testing.B) {
+	b.ReportAllocs()
+
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		rw.Write(res)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
+
+const someResponse = "<html>some response</html>"
+
+// A Response that's just no bigger than 2KB, the buffer-before-chunking threshold.
+var response = bytes.Repeat([]byte(someResponse), 2<<10/len(someResponse))
+
+// Both Content-Type and Content-Length set. Should be no buffering.
+func BenchmarkServerHandlerTypeLen(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Type", "text/html")
+		w.Header().Set("Content-Length", strconv.Itoa(len(response)))
+		w.Write(response)
+	}))
+}
+
+// A Content-Type is set, but no length. No sniffing, but will count the Content-Length.
+func BenchmarkServerHandlerNoLen(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Type", "text/html")
+		w.Write(response)
+	}))
+}
+
+// A Content-Length is set, but the Content-Type will be sniffed.
+func BenchmarkServerHandlerNoType(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Length", strconv.Itoa(len(response)))
+		w.Write(response)
+	}))
+}
+
+// Neither a Content-Type or Content-Length, so sniffed and counted.
+func BenchmarkServerHandlerNoHeader(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Write(response)
+	}))
+}
+
+func benchmarkHandler(b *testing.B, h Handler) {
+	b.ReportAllocs()
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		h.ServeHTTP(rw, r)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server.go gcc-4.8.1/libgo/go/net/http/server.go
--- gcc-4.8.1.orig/libgo/go/net/http/server.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/server.go	2013-10-01 16:06:44.176554280 +0000
@@ -4,9 +4,6 @@
 
 // HTTP server.  See RFC 2616.
 
-// TODO(rsc):
-//	logging
-
 package http
 
 import (
@@ -109,9 +106,11 @@
 	remoteAddr string               // network address of remote side
 	server     *Server              // the Server on which the connection arrived
 	rwc        net.Conn             // i/o connection
-	sr         switchReader         // where the LimitReader reads from; usually the rwc
+	sr         liveSwitchReader     // where the LimitReader reads from; usually the rwc
 	lr         *io.LimitedReader    // io.LimitReader(sr)
 	buf        *bufio.ReadWriter    // buffered(lr,rwc), reading from bufio->limitReader->sr->rwc
+	bufswr     *switchReader        // the *switchReader io.Reader source of buf
+	bufsww     *switchWriter        // the *switchWriter io.Writer dest of buf
 	tlsState   *tls.ConnectionState // or nil when not using TLS
 
 	mu           sync.Mutex // guards the following
@@ -147,7 +146,7 @@
 	c.mu.Lock()
 	defer c.mu.Unlock()
 	if c.closeNotifyc == nil {
-		c.closeNotifyc = make(chan bool)
+		c.closeNotifyc = make(chan bool, 1)
 		if c.hijackedv {
 			// to obey the function signature, even though
 			// it'll never receive a value.
@@ -180,12 +179,26 @@
 	c.clientGone = true
 }
 
+// A switchReader can have its Reader changed at runtime.
+// It's not safe for concurrent Reads and switches.
 type switchReader struct {
+	io.Reader
+}
+
+// A switchWriter can have its Writer changed at runtime.
+// It's not safe for concurrent Writes and switches.
+type switchWriter struct {
+	io.Writer
+}
+
+// A liveSwitchReader is a switchReader that's safe for concurrent
+// reads and switches, if its mutex is held.
+type liveSwitchReader struct {
 	sync.Mutex
 	r io.Reader
 }
 
-func (sr *switchReader) Read(p []byte) (n int, err error) {
+func (sr *liveSwitchReader) Read(p []byte) (n int, err error) {
 	sr.Lock()
 	r := sr.r
 	sr.Unlock()
@@ -206,15 +219,28 @@
 //
 // See the comment above (*response).Write for the entire write flow.
 type chunkWriter struct {
-	res         *response
-	header      Header // a deep copy of r.Header, once WriteHeader is called
-	wroteHeader bool   // whether the header's been sent
+	res *response
+
+	// header is either nil or a deep clone of res.handlerHeader
+	// at the time of res.WriteHeader, if res.WriteHeader is
+	// called and extra buffering is being done to calculate
+	// Content-Type and/or Content-Length.
+	header Header
+
+	// wroteHeader tells whether the header's been written to "the
+	// wire" (or rather: w.conn.buf). this is unlike
+	// (*response).wroteHeader, which tells only whether it was
+	// logically written.
+	wroteHeader bool
 
 	// set by the writeHeader method:
 	chunking bool // using chunked transfer encoding for reply body
 }
 
-var crlf = []byte("\r\n")
+var (
+	crlf       = []byte("\r\n")
+	colonSpace = []byte(": ")
+)
 
 func (cw *chunkWriter) Write(p []byte) (n int, err error) {
 	if !cw.wroteHeader {
@@ -223,6 +249,7 @@
 	if cw.chunking {
 		_, err = fmt.Fprintf(cw.res.conn.buf, "%x\r\n", len(p))
 		if err != nil {
+			cw.res.conn.rwc.Close()
 			return
 		}
 	}
@@ -230,6 +257,9 @@
 	if cw.chunking && err == nil {
 		_, err = cw.res.conn.buf.Write(crlf)
 	}
+	if err != nil {
+		cw.res.conn.rwc.Close()
+	}
 	return
 }
 
@@ -260,13 +290,15 @@
 	wroteContinue bool     // 100 Continue response was written
 
 	w  *bufio.Writer // buffers output in chunks to chunkWriter
-	cw *chunkWriter
+	cw chunkWriter
+	sw *switchWriter // of the bufio.Writer, for return to putBufioWriter
 
 	// handlerHeader is the Header that Handlers get access to,
 	// which may be retained and mutated even after WriteHeader.
 	// handlerHeader is copied into cw.header at WriteHeader
 	// time, and privately mutated thereafter.
 	handlerHeader Header
+	calledHeader  bool // handler accessed handlerHeader via Header
 
 	written       int64 // number of bytes written in body
 	contentLength int64 // explicitly-declared Content-Length; or -1
@@ -358,14 +390,98 @@
 	if debugServerConnections {
 		c.rwc = newLoggingConn("server", c.rwc)
 	}
-	c.sr = switchReader{r: c.rwc}
+	c.sr = liveSwitchReader{r: c.rwc}
 	c.lr = io.LimitReader(&c.sr, noLimit).(*io.LimitedReader)
-	br := bufio.NewReader(c.lr)
-	bw := bufio.NewWriter(c.rwc)
+	br, sr := newBufioReader(c.lr)
+	bw, sw := newBufioWriterSize(c.rwc, 4<<10)
 	c.buf = bufio.NewReadWriter(br, bw)
+	c.bufswr = sr
+	c.bufsww = sw
 	return c, nil
 }
 
+// TODO: remove this, if issue 5100 is fixed
+type bufioReaderPair struct {
+	br *bufio.Reader
+	sr *switchReader // from which the bufio.Reader is reading
+}
+
+// TODO: remove this, if issue 5100 is fixed
+type bufioWriterPair struct {
+	bw *bufio.Writer
+	sw *switchWriter // to which the bufio.Writer is writing
+}
+
+// TODO: use a sync.Cache instead
+var (
+	bufioReaderCache   = make(chan bufioReaderPair, 4)
+	bufioWriterCache2k = make(chan bufioWriterPair, 4)
+	bufioWriterCache4k = make(chan bufioWriterPair, 4)
+)
+
+func bufioWriterCache(size int) chan bufioWriterPair {
+	switch size {
+	case 2 << 10:
+		return bufioWriterCache2k
+	case 4 << 10:
+		return bufioWriterCache4k
+	}
+	return nil
+}
+
+func newBufioReader(r io.Reader) (*bufio.Reader, *switchReader) {
+	select {
+	case p := <-bufioReaderCache:
+		p.sr.Reader = r
+		return p.br, p.sr
+	default:
+		sr := &switchReader{r}
+		return bufio.NewReader(sr), sr
+	}
+}
+
+func putBufioReader(br *bufio.Reader, sr *switchReader) {
+	if n := br.Buffered(); n > 0 {
+		io.CopyN(ioutil.Discard, br, int64(n))
+	}
+	br.Read(nil) // clears br.err
+	sr.Reader = nil
+	select {
+	case bufioReaderCache <- bufioReaderPair{br, sr}:
+	default:
+	}
+}
+
+func newBufioWriterSize(w io.Writer, size int) (*bufio.Writer, *switchWriter) {
+	select {
+	case p := <-bufioWriterCache(size):
+		p.sw.Writer = w
+		return p.bw, p.sw
+	default:
+		sw := &switchWriter{w}
+		return bufio.NewWriterSize(sw, size), sw
+	}
+}
+
+func putBufioWriter(bw *bufio.Writer, sw *switchWriter) {
+	if bw.Buffered() > 0 {
+		// It must have failed to flush to its target
+		// earlier. We can't reuse this bufio.Writer.
+		return
+	}
+	if err := bw.Flush(); err != nil {
+		// Its sticky error field is set, which is returned by
+		// Flush even when there's no data buffered.  This
+		// bufio Writer is dead to us.  Don't reuse it.
+		return
+	}
+	sw.Writer = nil
+	select {
+	case bufioWriterCache(bw.Available()) <- bufioWriterPair{bw, sw}:
+	default:
+	}
+}
+
 // DefaultMaxHeaderBytes is the maximum permitted size of the headers
 // in an HTTP request.
 // This can be overridden by setting Server.MaxHeaderBytes.
@@ -416,6 +532,16 @@
 	if c.hijacked() {
 		return nil, ErrHijacked
 	}
+
+	if d := c.server.ReadTimeout; d != 0 {
+		c.rwc.SetReadDeadline(time.Now().Add(d))
+	}
+	if d := c.server.WriteTimeout; d != 0 {
+		defer func() {
+			c.rwc.SetWriteDeadline(time.Now().Add(d))
+		}()
+	}
+
 	c.lr.N = int64(c.server.maxHeaderBytes()) + 4096 /* bufio slop */
 	var req *Request
 	if req, err = ReadRequest(c.buf.Reader); err != nil {
@@ -434,14 +560,20 @@
 		req:           req,
 		handlerHeader: make(Header),
 		contentLength: -1,
-		cw:            new(chunkWriter),
 	}
 	w.cw.res = w
-	w.w = bufio.NewWriterSize(w.cw, bufferBeforeChunkingSize)
+	w.w, w.sw = newBufioWriterSize(&w.cw, bufferBeforeChunkingSize)
 	return w, nil
 }
 
 func (w *response) Header() Header {
+	if w.cw.header == nil && w.wroteHeader && !w.cw.wroteHeader {
+		// Accessing the header between logically writing it
+		// and physically writing it means we need to allocate
+		// a clone to snapshot the logically written state.
+		w.cw.header = w.handlerHeader.clone()
+	}
+	w.calledHeader = true
 	return w.handlerHeader
 }
 
@@ -468,15 +600,48 @@
 	w.wroteHeader = true
 	w.status = code
 
-	w.cw.header = w.handlerHeader.clone()
+	if w.calledHeader && w.cw.header == nil {
+		w.cw.header = w.handlerHeader.clone()
+	}
 
-	if cl := w.cw.header.get("Content-Length"); cl != "" {
+	if cl := w.handlerHeader.get("Content-Length"); cl != "" {
 		v, err := strconv.ParseInt(cl, 10, 64)
 		if err == nil && v >= 0 {
 			w.contentLength = v
 		} else {
 			log.Printf("http: invalid Content-Length of %q", cl)
-			w.cw.header.Del("Content-Length")
+			w.handlerHeader.Del("Content-Length")
+		}
+	}
+}
+
+// extraHeader is the set of headers sometimes added by chunkWriter.writeHeader.
+// This type is used to avoid extra allocations from cloning and/or populating
+// the response Header map and all its 1-element slices.
+type extraHeader struct {
+	contentType      string
+	contentLength    string
+	connection       string
+	date             string
+	transferEncoding string
+}
+
+// Sorted the same as extraHeader.Write's loop.
+var extraHeaderKeys = [][]byte{
+	[]byte("Content-Type"), []byte("Content-Length"),
+	[]byte("Connection"), []byte("Date"), []byte("Transfer-Encoding"),
+}
+
+// The value receiver, despite copying 5 strings to the stack,
+// prevents an extra allocation. The escape analysis isn't smart
+// enough to realize this doesn't mutate h.
+func (h extraHeader) Write(w io.Writer) {
+	for i, v := range []string{h.contentType, h.contentLength, h.connection, h.date, h.transferEncoding} {
+		if v != "" {
+			w.Write(extraHeaderKeys[i])
+			w.Write(colonSpace)
+			io.WriteString(w, v)
+			w.Write(crlf)
 		}
 	}
 }
@@ -496,23 +661,47 @@
 	cw.wroteHeader = true
 
 	w := cw.res
-	code := w.status
-	done := w.handlerDone
+
+	// header is written out to w.conn.buf below. Depending on the
+	// state of the handler, we either own the map or not. If we
+	// don't own it, the exclude map is created lazily for
+	// WriteSubset to remove headers. The setHeader struct holds
+	// headers we need to add.
+	header := cw.header
+	owned := header != nil
+	if !owned {
+		header = w.handlerHeader
+	}
+	var excludeHeader map[string]bool
+	delHeader := func(key string) {
+		if owned {
+			header.Del(key)
+			return
+		}
+		if _, ok := header[key]; !ok {
+			return
+		}
+		if excludeHeader == nil {
+			excludeHeader = make(map[string]bool)
+		}
+		excludeHeader[key] = true
+	}
+	var setHeader extraHeader
 
 	// If the handler is done but never sent a Content-Length
 	// response header and this is our first (and last) write, set
 	// it, even to zero. This helps HTTP/1.0 clients keep their
 	// "keep-alive" connections alive.
-	if done && cw.header.get("Content-Length") == "" && w.req.Method != "HEAD" {
+	if w.handlerDone && header.get("Content-Length") == "" && w.req.Method != "HEAD" {
 		w.contentLength = int64(len(p))
-		cw.header.Set("Content-Length", strconv.Itoa(len(p)))
+		setHeader.contentLength = strconv.Itoa(len(p))
 	}
 
 	// If this was an HTTP/1.0 request with keep-alive and we sent a
 	// Content-Length back, we can make this a keep-alive response ...
 	if w.req.wantsHttp10KeepAlive() {
-		sentLength := cw.header.get("Content-Length") != ""
-		if sentLength && cw.header.get("Connection") == "keep-alive" {
+		sentLength := header.get("Content-Length") != ""
+		if sentLength && header.get("Connection") == "keep-alive" {
 			w.closeAfterReply = false
 		}
 	}
@@ -521,15 +710,15 @@
 	hasCL := w.contentLength != -1
 
 	if w.req.wantsHttp10KeepAlive() && (w.req.Method == "HEAD" || hasCL) {
-		_, connectionHeaderSet := cw.header["Connection"]
+		_, connectionHeaderSet := header["Connection"]
 		if !connectionHeaderSet {
-			cw.header.Set("Connection", "keep-alive")
+			setHeader.connection = "keep-alive"
 		}
 	} else if !w.req.ProtoAtLeast(1, 1) || w.req.wantsClose() {
 		w.closeAfterReply = true
 	}
 
-	if cw.header.get("Connection") == "close" {
+	if header.get("Connection") == "close" {
 		w.closeAfterReply = true
 	}
 
@@ -543,49 +732,49 @@
 			n, _ := io.CopyN(ioutil.Discard, w.req.Body, maxPostHandlerReadBytes+1)
 			if n >= maxPostHandlerReadBytes {
 				w.requestTooLarge()
-				cw.header.Set("Connection", "close")
+				delHeader("Connection")
+				setHeader.connection = "close"
 			} else {
 				w.req.Body.Close()
 			}
 		}
 	}
 
+	code := w.status
 	if code == StatusNotModified {
 		// Must not have body.
-		for _, header := range []string{"Content-Type", "Content-Length", "Transfer-Encoding"} {
-			// RFC 2616 section 10.3.5: "the response MUST NOT include other entity-headers"
-			if cw.header.get(header) != "" {
-				cw.header.Del(header)
-			}
+		// RFC 2616 section 10.3.5: "the response MUST NOT include other entity-headers"
+		for _, k := range []string{"Content-Type", "Content-Length", "Transfer-Encoding"} {
+			delHeader(k)
 		}
 	} else {
 		// If no content type, apply sniffing algorithm to body.
-		if cw.header.get("Content-Type") == "" && w.req.Method != "HEAD" {
-			cw.header.Set("Content-Type", DetectContentType(p))
+		if header.get("Content-Type") == "" && w.req.Method != "HEAD" {
+			setHeader.contentType = DetectContentType(p)
 		}
 	}
 
-	if _, ok := cw.header["Date"]; !ok {
-		cw.header.Set("Date", time.Now().UTC().Format(TimeFormat))
+	if _, ok := header["Date"]; !ok {
+		setHeader.date = time.Now().UTC().Format(TimeFormat)
 	}
 
-	te := cw.header.get("Transfer-Encoding")
+	te := header.get("Transfer-Encoding")
 	hasTE := te != ""
 	if hasCL && hasTE && te != "identity" {
 		// TODO: return an error if WriteHeader gets a return parameter
 		// For now just ignore the Content-Length.
 		log.Printf("http: WriteHeader called with both Transfer-Encoding of %q and a Content-Length of %d",
 			te, w.contentLength)
-		cw.header.Del("Content-Length")
+		delHeader("Content-Length")
 		hasCL = false
 	}
 
 	if w.req.Method == "HEAD" || code == StatusNotModified {
 		// do nothing
 	} else if code == StatusNoContent {
-		cw.header.Del("Transfer-Encoding")
+		delHeader("Transfer-Encoding")
 	} else if hasCL {
-		cw.header.Del("Transfer-Encoding")
+		delHeader("Transfer-Encoding")
 	} else if w.req.ProtoAtLeast(1, 1) {
 		// HTTP/1.1 or greater: use chunked transfer encoding
 		// to avoid closing the connection at EOF.
@@ -593,29 +782,63 @@
 		// might have set.  Deal with that as need arises once we have a valid
 		// use case.
 		cw.chunking = true
-		cw.header.Set("Transfer-Encoding", "chunked")
+		setHeader.transferEncoding = "chunked"
 	} else {
 		// HTTP version < 1.1: cannot do chunked transfer
 		// encoding and we don't know the Content-Length so
 		// signal EOF by closing connection.
 		w.closeAfterReply = true
-		cw.header.Del("Transfer-Encoding") // in case already set
+		delHeader("Transfer-Encoding") // in case already set
 	}
 
 	// Cannot use Content-Length with non-identity Transfer-Encoding.
 	if cw.chunking {
-		cw.header.Del("Content-Length")
+		delHeader("Content-Length")
 	}
 	if !w.req.ProtoAtLeast(1, 0) {
 		return
 	}
 
 	if w.closeAfterReply && !hasToken(cw.header.get("Connection"), "close") {
-		cw.header.Set("Connection", "close")
+		delHeader("Connection")
+		setHeader.connection = "close"
 	}
 
+	io.WriteString(w.conn.buf, statusLine(w.req, code))
+	cw.header.WriteSubset(w.conn.buf, excludeHeader)
+	setHeader.Write(w.conn.buf)
+	w.conn.buf.Write(crlf)
+}
+
+// statusLines is a cache of Status-Line strings, keyed by code (for
+// HTTP/1.1) or negative code (for HTTP/1.0). This is faster than a
+// map keyed by struct of two fields. This map's max size is bounded
+// by 2*len(statusText), two protocol types for each known official
+// status code in the statusText map.
+var (
+	statusMu    sync.RWMutex
+	statusLines = make(map[int]string)
+)
+
+// statusLine returns a response Status-Line (RFC 2616 Section 6.1)
+// for the given request and response status code.
+func statusLine(req *Request, code int) string {
+	// Fast path:
+	key := code
+	proto11 := req.ProtoAtLeast(1, 1)
+	if !proto11 {
+		key = -key
+	}
+	statusMu.RLock()
+	line, ok := statusLines[key]
+	statusMu.RUnlock()
+	if ok {
+		return line
+	}
+
+	// Slow path:
 	proto := "HTTP/1.0"
-	if w.req.ProtoAtLeast(1, 1) {
+	if proto11 {
 		proto = "HTTP/1.1"
 	}
 	codestring := strconv.Itoa(code)
@@ -623,9 +846,13 @@
 	if !ok {
 		text = "status code " + codestring
 	}
-	io.WriteString(w.conn.buf, proto+" "+codestring+" "+text+"\r\n")
-	cw.header.Write(w.conn.buf)
-	w.conn.buf.Write(crlf)
+	line = proto + " " + codestring + " " + text + "\r\n"
+	if ok {
+		statusMu.Lock()
+		defer statusMu.Unlock()
+		statusLines[key] = line
+	}
+	return line
 }
 
 // bodyAllowed returns true if a Write is allowed for this response type.
@@ -641,7 +868,7 @@
 //
 // Handler starts. No header has been sent. The handler can either
 // write a header, or just start writing.  Writing before sending a header
-// sends an implicity empty 200 OK header.
+// sends an implicitly empty 200 OK header.
 //
 // If the handler didn't declare a Content-Length up front, we either
 // go into chunking mode or, if the handler finishes running before
@@ -699,6 +926,7 @@
 	}
 
 	w.w.Flush()
+	putBufioWriter(w.w, w.sw)
 	w.cw.close()
 	w.conn.buf.Flush()
 
@@ -728,6 +956,15 @@
 func (c *conn) finalFlush() {
 	if c.buf != nil {
 		c.buf.Flush()
+
+		// Steal the bufio.Reader (~4KB worth of memory) and its associated
+		// reader for a future connection.
+		putBufioReader(c.buf.Reader, c.bufswr)
+
+		// Steal the bufio.Writer (~4KB worth of memory) and its associated
+		// writer for a future connection.
+		putBufioWriter(c.buf.Writer, c.bufsww)
+
 		c.buf = nil
 	}
 }
@@ -764,6 +1001,18 @@
 	time.Sleep(rstAvoidanceDelay)
 }
 
+// validNPN returns whether the proto is not a blacklisted Next
+// Protocol Negotiation protocol.  Empty and built-in protocol types
+// are blacklisted and can't be overridden with alternate
+// implementations.
+func validNPN(proto string) bool {
+	switch proto {
+	case "", "http/1.1", "http/1.0":
+		return false
+	}
+	return true
+}
+
 // Serve a new connection.
 func (c *conn) serve() {
 	defer func() {
@@ -779,11 +1028,24 @@
 	}()
 
 	if tlsConn, ok := c.rwc.(*tls.Conn); ok {
+		if d := c.server.ReadTimeout; d != 0 {
+			c.rwc.SetReadDeadline(time.Now().Add(d))
+		}
+		if d := c.server.WriteTimeout; d != 0 {
+			c.rwc.SetWriteDeadline(time.Now().Add(d))
+		}
 		if err := tlsConn.Handshake(); err != nil {
 			return
 		}
 		c.tlsState = new(tls.ConnectionState)
 		*c.tlsState = tlsConn.ConnectionState()
+		if proto := c.tlsState.NegotiatedProtocol; validNPN(proto) {
+			if fn := c.server.TLSNextProto[proto]; fn != nil {
+				h := initNPNRequest{tlsConn, serverHandler{c.server}}
+				fn(c.server, tlsConn, h)
+			}
+			return
+		}
 	}
 
 	for {
@@ -826,20 +1088,12 @@
 			break
 		}
 
-		handler := c.server.Handler
-		if handler == nil {
-			handler = DefaultServeMux
-		}
-		if req.RequestURI == "*" && req.Method == "OPTIONS" {
-			handler = globalOptionsHandler{}
-		}
-
 		// HTTP cannot have multiple simultaneous active requests.[*]
 		// Until the server replies to this request, it can't read another,
 		// so we might as well run the handler in this goroutine.
 		// [*] Not strictly true: HTTP pipelining.  We could let them all process
 		// in parallel even if their responses need to be serialized.
-		handler.ServeHTTP(w, w.req)
+		serverHandler{c.server}.ServeHTTP(w, w.req)
 		if c.hijacked() {
 			return
 		}
@@ -917,13 +1171,16 @@
 // request for a path that doesn't begin with prefix by
 // replying with an HTTP 404 not found error.
 func StripPrefix(prefix string, h Handler) Handler {
+	if prefix == "" {
+		return h
+	}
 	return HandlerFunc(func(w ResponseWriter, r *Request) {
-		if !strings.HasPrefix(r.URL.Path, prefix) {
+		if p := strings.TrimPrefix(r.URL.Path, prefix); len(p) < len(r.URL.Path) {
+			r.URL.Path = p
+			h.ServeHTTP(w, r)
+		} else {
 			NotFound(w, r)
-			return
 		}
-		r.URL.Path = r.URL.Path[len(prefix):]
-		h.ServeHTTP(w, r)
 	})
 }
 
@@ -965,9 +1222,9 @@
 			}
 
 			// clean up but preserve trailing slash
-			trailing := urlStr[len(urlStr)-1] == '/'
+			trailing := strings.HasSuffix(urlStr, "/")
 			urlStr = path.Clean(urlStr)
-			if trailing && urlStr[len(urlStr)-1] != '/' {
+			if trailing && !strings.HasSuffix(urlStr, "/") {
 				urlStr += "/"
 			}
 			urlStr += query
@@ -1232,6 +1489,32 @@
 	WriteTimeout   time.Duration // maximum duration before timing out write of the response
 	MaxHeaderBytes int           // maximum size of request headers, DefaultMaxHeaderBytes if 0
 	TLSConfig      *tls.Config   // optional TLS config, used by ListenAndServeTLS
+
+	// TLSNextProto optionally specifies a function to take over
+	// ownership of the provided TLS connection when an NPN
+	// protocol upgrade has occurred.  The map key is the protocol
+	// name negotiated. The Handler argument should be used to
+	// handle HTTP requests and will initialize the Request's TLS
+	// and RemoteAddr if not already set.  The connection is
+	// automatically closed when the function returns.
+	TLSNextProto map[string]func(*Server, *tls.Conn, Handler)
+}
+
+// serverHandler delegates to either the server's Handler or
+// DefaultServeMux and also handles "OPTIONS *" requests.
+type serverHandler struct {
+	srv *Server
+}
+
+func (sh serverHandler) ServeHTTP(rw ResponseWriter, req *Request) {
+	handler := sh.srv.Handler
+	if handler == nil {
+		handler = DefaultServeMux
+	}
+	if req.RequestURI == "*" && req.Method == "OPTIONS" {
+		handler = globalOptionsHandler{}
+	}
+	handler.ServeHTTP(rw, req)
 }
 
 // ListenAndServe listens on the TCP network address srv.Addr and then
@@ -1274,19 +1557,12 @@
 			return e
 		}
 		tempDelay = 0
-		if srv.ReadTimeout != 0 {
-			rw.SetReadDeadline(time.Now().Add(srv.ReadTimeout))
-		}
-		if srv.WriteTimeout != 0 {
-			rw.SetWriteDeadline(time.Now().Add(srv.WriteTimeout))
-		}
 		c, err := srv.newConn(rw)
 		if err != nil {
 			continue
 		}
 		go c.serve()
 	}
-	panic("not reached")
 }
 
 // ListenAndServe listens on the TCP network address addr
@@ -1425,7 +1701,7 @@
 }
 
 func (h *timeoutHandler) ServeHTTP(w ResponseWriter, r *Request) {
-	done := make(chan bool)
+	done := make(chan bool, 1)
 	tw := &timeoutWriter{w: w}
 	go func() {
 		h.handler.ServeHTTP(tw, r)
@@ -1494,6 +1770,31 @@
 	}
 }
 
+// eofReader is a non-nil io.ReadCloser that always returns EOF.
+var eofReader = ioutil.NopCloser(strings.NewReader(""))
+
+// initNPNRequest is an HTTP handler that initializes certain
+// uninitialized fields in its *Request. Such partially-initialized
+// Requests come from NPN protocol handlers.
+type initNPNRequest struct {
+	c *tls.Conn
+	h serverHandler
+}
+
+func (h initNPNRequest) ServeHTTP(rw ResponseWriter, req *Request) {
+	if req.TLS == nil {
+		req.TLS = &tls.ConnectionState{}
+		*req.TLS = h.c.ConnectionState()
+	}
+	if req.Body == nil {
+		req.Body = eofReader
+	}
+	if req.RemoteAddr == "" {
+		req.RemoteAddr = h.c.RemoteAddr().String()
+	}
+	h.h.ServeHTTP(rw, req)
+}
+
 // loggingConn is used for debugging.
 type loggingConn struct {
 	name string
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server_test.go gcc-4.8.1/libgo/go/net/http/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/server_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/server_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -2,9 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package http
+package http_test
 
 import (
+	. "net/http"
+	"net/http/httptest"
 	"net/url"
 	"testing"
 )
@@ -76,20 +78,27 @@
 			},
 		}
 		h, pattern := mux.Handler(r)
-		cs := &codeSaver{h: Header{}}
-		h.ServeHTTP(cs, r)
-		if pattern != tt.pattern || cs.code != tt.code {
-			t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, cs.code, pattern, tt.code, tt.pattern)
+		rr := httptest.NewRecorder()
+		h.ServeHTTP(rr, r)
+		if pattern != tt.pattern || rr.Code != tt.code {
+			t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, rr.Code, pattern, tt.code, tt.pattern)
 		}
 	}
 }
 
-// A codeSaver is a ResponseWriter that saves the code passed to WriteHeader.
-type codeSaver struct {
-	h    Header
-	code int
+func TestServerRedirect(t *testing.T) {
+	// This used to crash. It's not valid input (bad path), but it
+	// shouldn't crash.
+	rr := httptest.NewRecorder()
+	req := &Request{
+		Method: "GET",
+		URL: &url.URL{
+			Scheme: "http",
+			Path:   "not-empty-but-no-leading-slash", // bogus
+		},
+	}
+	Redirect(rr, req, "", 304)
+	if rr.Code != 304 {
+		t.Errorf("Code = %d; want 304", rr.Code)
+	}
 }
-
-func (cs *codeSaver) Header() Header              { return cs.h }
-func (cs *codeSaver) Write(p []byte) (int, error) { return len(p), nil }
-func (cs *codeSaver) WriteHeader(code int)        { cs.code = code }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go gcc-4.8.1/libgo/go/net/http/sniff_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/sniff_test.go	2013-10-01 16:06:44.176554280 +0000
@@ -54,6 +54,7 @@
 }
 
 func TestServerContentType(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		i, _ := strconv.Atoi(r.FormValue("i"))
 		tt := sniffTests[i]
@@ -84,6 +85,8 @@
 }
 
 func TestContentTypeWithCopy(t *testing.T) {
+	defer afterTest(t)
+
 	const (
 		input    = "\n<html>\n\t<head>\n"
 		expected = "text/html; charset=utf-8"
@@ -116,6 +119,7 @@
 }
 
 func TestSniffWriteSize(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		size, _ := strconv.Atoi(r.FormValue("size"))
 		written, err := io.WriteString(w, strings.Repeat("a", size))
@@ -133,6 +137,11 @@
 		if err != nil {
 			t.Fatalf("size %d: %v", size, err)
 		}
-		res.Body.Close()
+		if _, err := io.Copy(ioutil.Discard, res.Body); err != nil {
+			t.Fatalf("size %d: io.Copy of body = %v", size, err)
+		}
+		if err := res.Body.Close(); err != nil {
+			t.Fatalf("size %d: body Close = %v", size, err)
+		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/status.go gcc-4.8.1/libgo/go/net/http/status.go
--- gcc-4.8.1.orig/libgo/go/net/http/status.go	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/status.go	2013-10-01 16:06:44.176554280 +0000
@@ -51,6 +51,13 @@
 	StatusServiceUnavailable      = 503
 	StatusGatewayTimeout          = 504
 	StatusHTTPVersionNotSupported = 505
+
+	// New HTTP status codes from RFC 6585. Not exported yet in Go 1.1.
+	// See discussion at https://codereview.appspot.com/7678043/
+	statusPreconditionRequired          = 428
+	statusTooManyRequests               = 429
+	statusRequestHeaderFieldsTooLarge   = 431
+	statusNetworkAuthenticationRequired = 511
 )
 
 var statusText = map[int]string{
@@ -99,6 +106,11 @@
 	StatusServiceUnavailable:      "Service Unavailable",
 	StatusGatewayTimeout:          "Gateway Timeout",
 	StatusHTTPVersionNotSupported: "HTTP Version Not Supported",
+
+	statusPreconditionRequired:          "Precondition Required",
+	statusTooManyRequests:               "Too Many Requests",
+	statusRequestHeaderFieldsTooLarge:   "Request Header Fields Too Large",
+	statusNetworkAuthenticationRequired: "Network Authentication Required",
 }
 
 // StatusText returns a text for the HTTP status code. It returns the empty
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transfer.go gcc-4.8.1/libgo/go/net/http/transfer.go
--- gcc-4.8.1.orig/libgo/go/net/http/transfer.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/transfer.go	2013-10-01 16:06:44.176554280 +0000
@@ -194,10 +194,11 @@
 			ncopy, err = io.Copy(w, t.Body)
 		} else {
 			ncopy, err = io.Copy(w, io.LimitReader(t.Body, t.ContentLength))
-			nextra, err := io.Copy(ioutil.Discard, t.Body)
 			if err != nil {
 				return err
 			}
+			var nextra int64
+			nextra, err = io.Copy(ioutil.Discard, t.Body)
 			ncopy += nextra
 		}
 		if err != nil {
@@ -208,7 +209,7 @@
 		}
 	}
 
-	if t.ContentLength != -1 && t.ContentLength != ncopy {
+	if !t.ResponseToHEAD && t.ContentLength != -1 && t.ContentLength != ncopy {
 		return fmt.Errorf("http: Request.ContentLength=%d with Body length %d",
 			t.ContentLength, ncopy)
 	}
@@ -326,9 +327,14 @@
 	// or close connection when finished, since multipart is not supported yet
 	switch {
 	case chunked(t.TransferEncoding):
-		t.Body = &body{Reader: newChunkedReader(r), hdr: msg, r: r, closing: t.Close}
-	case realLength >= 0:
-		// TODO: limit the Content-Length. This is an easy DoS vector.
+		if noBodyExpected(t.RequestMethod) {
+			t.Body = &body{Reader: eofReader, closing: t.Close}
+		} else {
+			t.Body = &body{Reader: newChunkedReader(r), hdr: msg, r: r, closing: t.Close}
+		}
+	case realLength == 0:
+		t.Body = &body{Reader: eofReader, closing: t.Close}
+	case realLength > 0:
 		t.Body = &body{Reader: io.LimitReader(r, realLength), closing: t.Close}
 	default:
 		// realLength < 0, i.e. "Content-Length" not mentioned in header
@@ -337,7 +343,7 @@
 			t.Body = &body{Reader: r, closing: t.Close}
 		} else {
 			// Persistent connection (i.e. HTTP/1.1)
-			t.Body = &body{Reader: io.LimitReader(r, 0), closing: t.Close}
+			t.Body = &body{Reader: eofReader, closing: t.Close}
 		}
 	}
 
@@ -449,13 +455,6 @@
 		return 0, nil
 	}
 
-	// Logic based on media type. The purpose of the following code is just
-	// to detect whether the unsupported "multipart/byteranges" is being
-	// used. A proper Content-Type parser is needed in the future.
-	if strings.Contains(strings.ToLower(header.get("Content-Type")), "multipart/byteranges") {
-		return -1, ErrNotSupported
-	}
-
 	// Body-EOF logic based on other methods (like closing, or chunked coding)
 	return -1, nil
 }
@@ -614,30 +613,26 @@
 	if b.closed {
 		return nil
 	}
-	defer func() {
-		b.closed = true
-	}()
-	if b.hdr == nil && b.closing {
+	var err error
+	switch {
+	case b.hdr == nil && b.closing:
 		// no trailer and closing the connection next.
 		// no point in reading to EOF.
-		return nil
-	}
-
-	// In a server request, don't continue reading from the client
-	// if we've already hit the maximum body size set by the
-	// handler. If this is set, that also means the TCP connection
-	// is about to be closed, so getting to the next HTTP request
-	// in the stream is not necessary.
-	if b.res != nil && b.res.requestBodyLimitHit {
-		return nil
-	}
-
-	// Fully consume the body, which will also lead to us reading
-	// the trailer headers after the body, if present.
-	if _, err := io.Copy(ioutil.Discard, b); err != nil {
-		return err
+	case b.res != nil && b.res.requestBodyLimitHit:
+		// In a server request, don't continue reading from the client
+		// if we've already hit the maximum body size set by the
+		// handler. If this is set, that also means the TCP connection
+		// is about to be closed, so getting to the next HTTP request
+		// in the stream is not necessary.
+	case b.Reader == eofReader:
+		// Nothing to read. No need to io.Copy from it.
+	default:
+		// Fully consume the body, which will also lead to us reading
+		// the trailer headers after the body, if present.
+		_, err = io.Copy(ioutil.Discard, b)
 	}
-	return nil
+	b.closed = true
+	return err
 }
 
 // parseContentLength trims whitespace from s and returns -1 if no value
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport.go gcc-4.8.1/libgo/go/net/http/transport.go
--- gcc-4.8.1.orig/libgo/go/net/http/transport.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/transport.go	2013-10-01 16:06:44.176554280 +0000
@@ -17,7 +17,6 @@
 	"errors"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"log"
 	"net"
 	"net/url"
@@ -42,14 +41,13 @@
 // https, and http proxies (for either http or https with CONNECT).
 // Transport can also cache connections for future re-use.
 type Transport struct {
-	idleLk   sync.Mutex
-	idleConn map[string][]*persistConn
-	altLk    sync.RWMutex
-	altProto map[string]RoundTripper // nil or map of URI scheme => RoundTripper
-
-	// TODO: tunable on global max cached connections
-	// TODO: tunable on timeout on cached connections
-	// TODO: optional pipelining
+	idleMu     sync.Mutex
+	idleConn   map[string][]*persistConn
+	idleConnCh map[string]chan *persistConn
+	reqMu      sync.Mutex
+	reqConn    map[*Request]*persistConn
+	altMu      sync.RWMutex
+	altProto   map[string]RoundTripper // nil or map of URI scheme => RoundTripper
 
 	// Proxy specifies a function to return a proxy for a given
 	// Request. If the function returns a non-nil error, the
@@ -60,19 +58,39 @@
 	// Dial specifies the dial function for creating TCP
 	// connections.
 	// If Dial is nil, net.Dial is used.
-	Dial func(net, addr string) (c net.Conn, err error)
+	Dial func(network, addr string) (net.Conn, error)
 
 	// TLSClientConfig specifies the TLS configuration to use with
 	// tls.Client. If nil, the default configuration is used.
 	TLSClientConfig *tls.Config
 
-	DisableKeepAlives  bool
+	// DisableKeepAlives, if true, prevents re-use of TCP connections
+	// between different HTTP requests.
+	DisableKeepAlives bool
+
+	// DisableCompression, if true, prevents the Transport from
+	// requesting compression with an "Accept-Encoding: gzip"
+	// request header when the Request contains no existing
+	// Accept-Encoding value. If the Transport requests gzip on
+	// its own and gets a gzipped response, it's transparently
+	// decoded in the Response.Body. However, if the user
+	// explicitly requested gzip it is not automatically
+	// uncompressed.
 	DisableCompression bool
 
 	// MaxIdleConnsPerHost, if non-zero, controls the maximum idle
 	// (keep-alive) to keep per-host.  If zero,
 	// DefaultMaxIdleConnsPerHost is used.
 	MaxIdleConnsPerHost int
+
+	// ResponseHeaderTimeout, if non-zero, specifies the amount of
+	// time to wait for a server's response headers after fully
+	// writing the request (including its body, if any). This
+	// time does not include the time to read the response body.
+	ResponseHeaderTimeout time.Duration
+
+	// TODO: tunable on global max cached connections
+	// TODO: tunable on timeout on cached connections
 }
 
 // ProxyFromEnvironment returns the URL of the proxy to use for a
@@ -125,6 +143,9 @@
 }
 
 // RoundTrip implements the RoundTripper interface.
+//
+// For higher-level HTTP client support (such as handling of cookies
+// and redirects), see Get, Post, and the Client type.
 func (t *Transport) RoundTrip(req *Request) (resp *Response, err error) {
 	if req.URL == nil {
 		return nil, errors.New("http: nil Request.URL")
@@ -133,12 +154,12 @@
 		return nil, errors.New("http: nil Request.Header")
 	}
 	if req.URL.Scheme != "http" && req.URL.Scheme != "https" {
-		t.altLk.RLock()
+		t.altMu.RLock()
 		var rt RoundTripper
 		if t.altProto != nil {
 			rt = t.altProto[req.URL.Scheme]
 		}
-		t.altLk.RUnlock()
+		t.altMu.RUnlock()
 		if rt == nil {
 			return nil, &badStringError{"unsupported protocol scheme", req.URL.Scheme}
 		}
@@ -175,8 +196,8 @@
 	if scheme == "http" || scheme == "https" {
 		panic("protocol " + scheme + " already registered")
 	}
-	t.altLk.Lock()
-	defer t.altLk.Unlock()
+	t.altMu.Lock()
+	defer t.altMu.Unlock()
 	if t.altProto == nil {
 		t.altProto = make(map[string]RoundTripper)
 	}
@@ -191,10 +212,10 @@
 // a "keep-alive" state. It does not interrupt any connections currently
 // in use.
 func (t *Transport) CloseIdleConnections() {
-	t.idleLk.Lock()
+	t.idleMu.Lock()
 	m := t.idleConn
 	t.idleConn = nil
-	t.idleLk.Unlock()
+	t.idleMu.Unlock()
 	if m == nil {
 		return
 	}
@@ -205,6 +226,17 @@
 	}
 }
 
+// CancelRequest cancels an in-flight request by closing its
+// connection.
+func (t *Transport) CancelRequest(req *Request) {
+	t.reqMu.Lock()
+	pc := t.reqConn[req]
+	t.reqMu.Unlock()
+	if pc != nil {
+		pc.conn.Close()
+	}
+}
+
 //
 // Private implementation past this point.
 //
@@ -260,12 +292,23 @@
 	if max == 0 {
 		max = DefaultMaxIdleConnsPerHost
 	}
-	t.idleLk.Lock()
+	t.idleMu.Lock()
+	select {
+	case t.idleConnCh[key] <- pconn:
+		// We're done with this pconn and somebody else is
+		// currently waiting for a conn of this type (they're
+		// actively dialing, but this conn is ready
+		// first). Chrome calls this socket late binding.  See
+		// https://insouciant.org/tech/connection-management-in-chromium/
+		t.idleMu.Unlock()
+		return true
+	default:
+	}
 	if t.idleConn == nil {
 		t.idleConn = make(map[string][]*persistConn)
 	}
 	if len(t.idleConn[key]) >= max {
-		t.idleLk.Unlock()
+		t.idleMu.Unlock()
 		pconn.close()
 		return false
 	}
@@ -275,14 +318,29 @@
 		}
 	}
 	t.idleConn[key] = append(t.idleConn[key], pconn)
-	t.idleLk.Unlock()
+	t.idleMu.Unlock()
 	return true
 }
 
+func (t *Transport) getIdleConnCh(cm *connectMethod) chan *persistConn {
+	key := cm.key()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
+	if t.idleConnCh == nil {
+		t.idleConnCh = make(map[string]chan *persistConn)
+	}
+	ch, ok := t.idleConnCh[key]
+	if !ok {
+		ch = make(chan *persistConn)
+		t.idleConnCh[key] = ch
+	}
+	return ch
+}
+
 func (t *Transport) getIdleConn(cm *connectMethod) (pconn *persistConn) {
-	key := cm.String()
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	key := cm.key()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return nil
 	}
@@ -304,7 +362,19 @@
 			return
 		}
 	}
-	panic("unreachable")
+}
+
+func (t *Transport) setReqConn(r *Request, pc *persistConn) {
+	t.reqMu.Lock()
+	defer t.reqMu.Unlock()
+	if t.reqConn == nil {
+		t.reqConn = make(map[*Request]*persistConn)
+	}
+	if pc != nil {
+		t.reqConn[r] = pc
+	} else {
+		delete(t.reqConn, r)
+	}
 }
 
 func (t *Transport) dial(network, addr string) (c net.Conn, err error) {
@@ -323,6 +393,37 @@
 		return pc, nil
 	}
 
+	type dialRes struct {
+		pc  *persistConn
+		err error
+	}
+	dialc := make(chan dialRes)
+	go func() {
+		pc, err := t.dialConn(cm)
+		dialc <- dialRes{pc, err}
+	}()
+
+	idleConnCh := t.getIdleConnCh(cm)
+	select {
+	case v := <-dialc:
+		// Our dial finished.
+		return v.pc, v.err
+	case pc := <-idleConnCh:
+		// Another request finished first and its net.Conn
+		// became available before our dial. Or somebody
+		// else's dial that they didn't use.
+		// But our dial is still going, so give it away
+		// when it finishes:
+		go func() {
+			if v := <-dialc; v.err == nil {
+				t.putIdleConn(v.pc)
+			}
+		}()
+		return pc, nil
+	}
+}
+
+func (t *Transport) dialConn(cm *connectMethod) (*persistConn, error) {
 	conn, err := t.dial("tcp", cm.addr())
 	if err != nil {
 		if cm.proxyURL != nil {
@@ -335,7 +436,7 @@
 
 	pconn := &persistConn{
 		t:        t,
-		cacheKey: cm.String(),
+		cacheKey: cm.key(),
 		conn:     conn,
 		reqch:    make(chan requestAndChan, 50),
 		writech:  make(chan writeRequest, 50),
@@ -485,6 +586,10 @@
 	targetAddr   string   // Not used if proxy + http targetScheme (4th example in table)
 }
 
+func (ck *connectMethod) key() string {
+	return ck.String() // TODO: use a struct type instead
+}
+
 func (ck *connectMethod) String() string {
 	proxyStr := ""
 	targetAddr := ck.targetAddr
@@ -529,14 +634,13 @@
 	closech  chan struct{}       // broadcast close when readLoop (TCP connection) closes
 	isProxy  bool
 
+	lk                   sync.Mutex // guards following 3 fields
+	numExpectedResponses int
+	broken               bool // an error has happened on this connection; marked broken so it's not reused.
 	// mutateHeaderFunc is an optional func to modify extra
 	// headers on each outbound request before it's written. (the
 	// original Request given to RoundTrip is not modified)
 	mutateHeaderFunc func(Header)
-
-	lk                   sync.Mutex // guards numExpectedResponses and broken
-	numExpectedResponses int
-	broken               bool // an error has happened on this connection; marked broken so it's not reused.
 }
 
 func (pc *persistConn) isBroken() bool {
@@ -561,7 +665,6 @@
 func (pc *persistConn) readLoop() {
 	defer close(pc.closech)
 	alive := true
-	var lastbody io.ReadCloser // last response body, if any, read on this connection
 
 	for alive {
 		pb, err := pc.br.Peek(1)
@@ -580,22 +683,23 @@
 
 		rc := <-pc.reqch
 
-		// Advance past the previous response's body, if the
-		// caller hasn't done so.
-		if lastbody != nil {
-			lastbody.Close() // assumed idempotent
-			lastbody = nil
-		}
-
 		var resp *Response
 		if err == nil {
 			resp, err = ReadResponse(pc.br, rc.req)
+			if err == nil && resp.StatusCode == 100 {
+				// Skip any 100-continue for now.
+				// TODO(bradfitz): if rc.req had "Expect: 100-continue",
+				// actually block the request body write and signal the
+				// writeLoop now to begin sending it. (Issue 2184) For now we
+				// eat it, since we're never expecting one.
+				resp, err = ReadResponse(pc.br, rc.req)
+			}
 		}
+		hasBody := resp != nil && rc.req.Method != "HEAD" && resp.ContentLength != 0
 
 		if err != nil {
 			pc.close()
 		} else {
-			hasBody := rc.req.Method != "HEAD" && resp.ContentLength != 0
 			if rc.addedGzip && hasBody && resp.Header.Get("Content-Encoding") == "gzip" {
 				resp.Header.Del("Content-Encoding")
 				resp.Header.Del("Content-Length")
@@ -605,21 +709,29 @@
 					pc.close()
 					err = zerr
 				} else {
-					resp.Body = &readFirstCloseBoth{&discardOnCloseReadCloser{gzReader}, resp.Body}
+					resp.Body = &readerAndCloser{gzReader, resp.Body}
 				}
 			}
 			resp.Body = &bodyEOFSignal{body: resp.Body}
 		}
 
-		if err != nil || resp.Close || rc.req.Close {
+		if err != nil || resp.Close || rc.req.Close || resp.StatusCode <= 199 {
+			// Don't do keep-alive on error if either party requested a close
+			// or we get an unexpected informational (1xx) response.
+			// StatusCode 100 is already handled above.
 			alive = false
 		}
 
-		hasBody := resp != nil && rc.req.Method != "HEAD" && resp.ContentLength != 0
 		var waitForBodyRead chan bool
 		if hasBody {
-			lastbody = resp.Body
-			waitForBodyRead = make(chan bool, 1)
+			waitForBodyRead = make(chan bool, 2)
+			resp.Body.(*bodyEOFSignal).earlyCloseFn = func() error {
+				// Sending false here sets alive to
+				// false and closes the connection
+				// below.
+				waitForBodyRead <- false
+				return nil
+			}
 			resp.Body.(*bodyEOFSignal).fn = func(err error) {
 				alive1 := alive
 				if err != nil {
@@ -636,15 +748,6 @@
 		}
 
 		if alive && !hasBody {
-			// When there's no response body, we immediately
-			// reuse the TCP connection (putIdleConn), but
-			// we need to prevent ClientConn.Read from
-			// closing the Response.Body on the next
-			// loop, otherwise it might close the body
-			// before the client code has had a chance to
-			// read it (even though it'll just be 0, EOF).
-			lastbody = nil
-
 			if !pc.t.putIdleConn(pc) {
 				alive = false
 			}
@@ -658,6 +761,8 @@
 			alive = <-waitForBodyRead
 		}
 
+		pc.t.setReqConn(rc.req, nil)
+
 		if !alive {
 			pc.close()
 		}
@@ -711,8 +816,14 @@
 }
 
 func (pc *persistConn) roundTrip(req *transportRequest) (resp *Response, err error) {
-	if pc.mutateHeaderFunc != nil {
-		pc.mutateHeaderFunc(req.extraHeaders())
+	pc.t.setReqConn(req.Request, pc)
+	pc.lk.Lock()
+	pc.numExpectedResponses++
+	headerFn := pc.mutateHeaderFunc
+	pc.lk.Unlock()
+
+	if headerFn != nil {
+		headerFn(req.extraHeaders())
 	}
 
 	// Ask for a compressed version if the caller didn't set their
@@ -728,10 +839,6 @@
 		req.extraHeaders().Set("Accept-Encoding", "gzip")
 	}
 
-	pc.lk.Lock()
-	pc.numExpectedResponses++
-	pc.lk.Unlock()
-
 	// Write the request concurrently with waiting for a response,
 	// in case the server decides to reply before reading our full
 	// request body.
@@ -744,6 +851,7 @@
 	var re responseAndError
 	var pconnDeadCh = pc.closech
 	var failTicker <-chan time.Time
+	var respHeaderTimer <-chan time.Time
 WaitResponse:
 	for {
 		select {
@@ -753,6 +861,9 @@
 				pc.close()
 				break WaitResponse
 			}
+			if d := pc.t.ResponseHeaderTimeout; d > 0 {
+				respHeaderTimer = time.After(d)
+			}
 		case <-pconnDeadCh:
 			// The persist connection is dead. This shouldn't
 			// usually happen (only with Connection: close responses
@@ -769,7 +880,11 @@
 			pconnDeadCh = nil                               // avoid spinning
 			failTicker = time.After(100 * time.Millisecond) // arbitrary time to wait for resc
 		case <-failTicker:
-			re = responseAndError{nil, errors.New("net/http: transport closed before response was received")}
+			re = responseAndError{err: errors.New("net/http: transport closed before response was received")}
+			break WaitResponse
+		case <-respHeaderTimer:
+			pc.close()
+			re = responseAndError{err: errors.New("net/http: timeout awaiting response headers")}
 			break WaitResponse
 		case re = <-resc:
 			break WaitResponse
@@ -780,6 +895,9 @@
 	pc.numExpectedResponses--
 	pc.lk.Unlock()
 
+	if re.err != nil {
+		pc.t.setReqConn(req.Request, nil)
+	}
 	return re.res, re.err
 }
 
@@ -823,13 +941,16 @@
 
 // bodyEOFSignal wraps a ReadCloser but runs fn (if non-nil) at most
 // once, right before its final (error-producing) Read or Close call
-// returns.
+// returns. If earlyCloseFn is non-nil and Close is called before
+// io.EOF is seen, earlyCloseFn is called instead of fn, and its
+// return value is the return value from Close.
 type bodyEOFSignal struct {
-	body   io.ReadCloser
-	mu     sync.Mutex  // guards closed, rerr and fn
-	closed bool        // whether Close has been called
-	rerr   error       // sticky Read error
-	fn     func(error) // error will be nil on Read io.EOF
+	body         io.ReadCloser
+	mu           sync.Mutex   // guards following 4 fields
+	closed       bool         // whether Close has been called
+	rerr         error        // sticky Read error
+	fn           func(error)  // error will be nil on Read io.EOF
+	earlyCloseFn func() error // optional alt Close func used if io.EOF not seen
 }
 
 func (es *bodyEOFSignal) Read(p []byte) (n int, err error) {
@@ -862,6 +983,9 @@
 		return nil
 	}
 	es.closed = true
+	if es.earlyCloseFn != nil && es.rerr != io.EOF {
+		return es.earlyCloseFn()
+	}
 	err := es.body.Close()
 	es.condfn(err)
 	return err
@@ -879,28 +1003,7 @@
 	es.fn = nil
 }
 
-type readFirstCloseBoth struct {
-	io.ReadCloser
+type readerAndCloser struct {
+	io.Reader
 	io.Closer
 }
-
-func (r *readFirstCloseBoth) Close() error {
-	if err := r.ReadCloser.Close(); err != nil {
-		r.Closer.Close()
-		return err
-	}
-	if err := r.Closer.Close(); err != nil {
-		return err
-	}
-	return nil
-}
-
-// discardOnCloseReadCloser consumes all its input on Close.
-type discardOnCloseReadCloser struct {
-	io.ReadCloser
-}
-
-func (d *discardOnCloseReadCloser) Close() error {
-	io.Copy(ioutil.Discard, d.ReadCloser) // ignore errors; likely invalid or already closed
-	return d.ReadCloser.Close()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport_test.go gcc-4.8.1/libgo/go/net/http/transport_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/transport_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/transport_test.go	2013-10-01 16:06:44.180554280 +0000
@@ -7,6 +7,7 @@
 package http_test
 
 import (
+	"bufio"
 	"bytes"
 	"compress/gzip"
 	"crypto/rand"
@@ -102,11 +103,13 @@
 // Two subsequent requests and verify their response is the same.
 // The response from the server is our own IP:port
 func TestTransportKeepAlives(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
 	for _, disableKeepAlive := range []bool{false, true} {
 		tr := &Transport{DisableKeepAlives: disableKeepAlive}
+		defer tr.CloseIdleConnections()
 		c := &Client{Transport: tr}
 
 		fetch := func(n int) string {
@@ -133,6 +136,7 @@
 }
 
 func TestTransportConnectionCloseOnResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -183,6 +187,7 @@
 }
 
 func TestTransportConnectionCloseOnRequest(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -233,6 +238,7 @@
 }
 
 func TestTransportIdleCacheKeys(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -265,6 +271,7 @@
 }
 
 func TestTransportMaxPerHostIdleConns(t *testing.T) {
+	defer afterTest(t)
 	resch := make(chan string)
 	gotReq := make(chan bool)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -333,6 +340,7 @@
 }
 
 func TestTransportServerClosingUnexpectedly(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -389,6 +397,7 @@
 // Test for http://golang.org/issue/2616 (appropriate issue number)
 // This fails pretty reliably with GOMAXPROCS=100 or something high.
 func TestStressSurpriseServerCloses(t *testing.T) {
+	defer afterTest(t)
 	if testing.Short() {
 		t.Skip("skipping test in short mode")
 	}
@@ -444,6 +453,7 @@
 // TestTransportHeadResponses verifies that we deal with Content-Lengths
 // with no bodies properly
 func TestTransportHeadResponses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "HEAD" {
 			panic("expected HEAD; got " + r.Method)
@@ -472,6 +482,7 @@
 // TestTransportHeadChunkedResponse verifies that we ignore chunked transfer-encoding
 // on responses to HEAD requests.
 func TestTransportHeadChunkedResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "HEAD" {
 			panic("expected HEAD; got " + r.Method)
@@ -513,6 +524,7 @@
 
 // Test that the modification made to the Request by the RoundTripper is cleaned up
 func TestRoundTripGzip(t *testing.T) {
+	defer afterTest(t)
 	const responseBody = "test response body"
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
 		accept := req.Header.Get("Accept-Encoding")
@@ -569,6 +581,7 @@
 }
 
 func TestTransportGzip(t *testing.T) {
+	defer afterTest(t)
 	const testString = "The test string aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 	const nRandBytes = 1024 * 1024
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
@@ -661,6 +674,7 @@
 }
 
 func TestTransportProxy(t *testing.T) {
+	defer afterTest(t)
 	ch := make(chan string, 1)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ch <- "real server"
@@ -689,6 +703,7 @@
 // but checks that we don't recurse forever, and checks that
 // Content-Encoding is removed.
 func TestTransportGzipRecursive(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Content-Encoding", "gzip")
 		w.Write(rgz)
@@ -715,6 +730,7 @@
 
 // tests that persistent goroutine connections shut down when no longer desired.
 func TestTransportPersistConnLeak(t *testing.T) {
+	defer afterTest(t)
 	gotReqCh := make(chan bool)
 	unblockCh := make(chan bool)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -780,6 +796,7 @@
 // golang.org/issue/4531: Transport leaks goroutines when
 // request.ContentLength is explicitly short
 func TestTransportPersistConnLeakShortBody(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 	}))
 	defer ts.Close()
@@ -818,6 +835,7 @@
 
 // This used to crash; http://golang.org/issue/3266
 func TestTransportIdleConnCrash(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	c := &Client{Transport: tr}
 
@@ -847,6 +865,7 @@
 // which sadly lacked a triggering test.  The large response body made
 // the old race easier to trigger.
 func TestIssue3644(t *testing.T) {
+	defer afterTest(t)
 	const numFoos = 5000
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Connection", "close")
@@ -874,6 +893,7 @@
 // Test that a client receives a server's reply, even if the server doesn't read
 // the entire request body.
 func TestIssue3595(t *testing.T) {
+	defer afterTest(t)
 	const deniedMsg = "sorry, denied."
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		Error(w, deniedMsg, StatusUnauthorized)
@@ -898,6 +918,7 @@
 // From http://golang.org/issue/4454 ,
 // "client fails to handle requests with no body and chunked encoding"
 func TestChunkedNoContent(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.WriteHeader(StatusNoContent)
 	}))
@@ -920,20 +941,38 @@
 }
 
 func TestTransportConcurrency(t *testing.T) {
-	const maxProcs = 16
-	const numReqs = 500
+	defer afterTest(t)
+	maxProcs, numReqs := 16, 500
+	if testing.Short() {
+		maxProcs, numReqs = 4, 50
+	}
 	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		fmt.Fprintf(w, "%v", r.FormValue("echo"))
 	}))
 	defer ts.Close()
-	tr := &Transport{}
+
+	var wg sync.WaitGroup
+	wg.Add(numReqs)
+
+	tr := &Transport{
+		Dial: func(netw, addr string) (c net.Conn, err error) {
+			// Due to the Transport's "socket late
+			// binding" (see idleConnCh in transport.go),
+			// the numReqs HTTP requests below can finish
+			// with a dial still outstanding.  So count
+			// our dials as work too so the leak checker
+			// doesn't complain at us.
+			wg.Add(1)
+			defer wg.Done()
+			return net.Dial(netw, addr)
+		},
+	}
+	defer tr.CloseIdleConnections()
 	c := &Client{Transport: tr}
 	reqs := make(chan string)
 	defer close(reqs)
 
-	var wg sync.WaitGroup
-	wg.Add(numReqs)
 	for i := 0; i < maxProcs*2; i++ {
 		go func() {
 			for req := range reqs {
@@ -952,8 +991,8 @@
 				if string(all) != req {
 					t.Errorf("body of req %s = %q; want %q", req, all, req)
 				}
-				wg.Done()
 				res.Body.Close()
+				wg.Done()
 			}
 		}()
 	}
@@ -964,12 +1003,14 @@
 }
 
 func TestIssue4191_InfiniteGetTimeout(t *testing.T) {
+	defer afterTest(t)
 	const debug = false
 	mux := NewServeMux()
 	mux.HandleFunc("/get", func(w ResponseWriter, r *Request) {
 		io.Copy(w, neverEnding('a'))
 	})
 	ts := httptest.NewServer(mux)
+	timeout := 100 * time.Millisecond
 
 	client := &Client{
 		Transport: &Transport{
@@ -978,7 +1019,7 @@
 				if err != nil {
 					return nil, err
 				}
-				conn.SetDeadline(time.Now().Add(100 * time.Millisecond))
+				conn.SetDeadline(time.Now().Add(timeout))
 				if debug {
 					conn = NewLoggingConn("client", conn)
 				}
@@ -988,6 +1029,7 @@
 		},
 	}
 
+	getFailed := false
 	nRuns := 5
 	if testing.Short() {
 		nRuns = 1
@@ -998,6 +1040,14 @@
 		}
 		sres, err := client.Get(ts.URL + "/get")
 		if err != nil {
+			if !getFailed {
+				// Make the timeout longer, once.
+				getFailed = true
+				t.Logf("increasing timeout")
+				i--
+				timeout *= 10
+				continue
+			}
 			t.Errorf("Error issuing GET: %v", err)
 			break
 		}
@@ -1014,6 +1064,7 @@
 }
 
 func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) {
+	defer afterTest(t)
 	const debug = false
 	mux := NewServeMux()
 	mux.HandleFunc("/get", func(w ResponseWriter, r *Request) {
@@ -1024,6 +1075,7 @@
 		io.Copy(ioutil.Discard, r.Body)
 	})
 	ts := httptest.NewServer(mux)
+	timeout := 100 * time.Millisecond
 
 	client := &Client{
 		Transport: &Transport{
@@ -1032,7 +1084,7 @@
 				if err != nil {
 					return nil, err
 				}
-				conn.SetDeadline(time.Now().Add(100 * time.Millisecond))
+				conn.SetDeadline(time.Now().Add(timeout))
 				if debug {
 					conn = NewLoggingConn("client", conn)
 				}
@@ -1042,6 +1094,7 @@
 		},
 	}
 
+	getFailed := false
 	nRuns := 5
 	if testing.Short() {
 		nRuns = 1
@@ -1052,6 +1105,14 @@
 		}
 		sres, err := client.Get(ts.URL + "/get")
 		if err != nil {
+			if !getFailed {
+				// Make the timeout longer, once.
+				getFailed = true
+				t.Logf("increasing timeout")
+				i--
+				timeout *= 10
+				continue
+			}
 			t.Errorf("Error issuing GET: %v", err)
 			break
 		}
@@ -1070,6 +1131,171 @@
 	ts.Close()
 }
 
+func TestTransportResponseHeaderTimeout(t *testing.T) {
+	defer afterTest(t)
+	if testing.Short() {
+		t.Skip("skipping timeout test in -short mode")
+	}
+	mux := NewServeMux()
+	mux.HandleFunc("/fast", func(w ResponseWriter, r *Request) {})
+	mux.HandleFunc("/slow", func(w ResponseWriter, r *Request) {
+		time.Sleep(2 * time.Second)
+	})
+	ts := httptest.NewServer(mux)
+	defer ts.Close()
+
+	tr := &Transport{
+		ResponseHeaderTimeout: 500 * time.Millisecond,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	tests := []struct {
+		path    string
+		want    int
+		wantErr string
+	}{
+		{path: "/fast", want: 200},
+		{path: "/slow", wantErr: "timeout awaiting response headers"},
+		{path: "/fast", want: 200},
+	}
+	for i, tt := range tests {
+		res, err := c.Get(ts.URL + tt.path)
+		if err != nil {
+			if strings.Contains(err.Error(), tt.wantErr) {
+				continue
+			}
+			t.Errorf("%d. unexpected error: %v", i, err)
+			continue
+		}
+		if tt.wantErr != "" {
+			t.Errorf("%d. no error. expected error: %v", i, tt.wantErr)
+			continue
+		}
+		if res.StatusCode != tt.want {
+			t.Errorf("%d for path %q status = %d; want %d", i, tt.path, res.StatusCode, tt.want)
+		}
+	}
+}
+
+func TestTransportCancelRequest(t *testing.T) {
+	defer afterTest(t)
+	if testing.Short() {
+		t.Skip("skipping test in -short mode")
+	}
+	unblockc := make(chan bool)
+	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		fmt.Fprintf(w, "Hello")
+		w.(Flusher).Flush() // send headers and some body
+		<-unblockc
+	}))
+	defer ts.Close()
+	defer close(unblockc)
+
+	tr := &Transport{}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	req, _ := NewRequest("GET", ts.URL, nil)
+	res, err := c.Do(req)
+	if err != nil {
+		t.Fatal(err)
+	}
+	go func() {
+		time.Sleep(1 * time.Second)
+		tr.CancelRequest(req)
+	}()
+	t0 := time.Now()
+	body, err := ioutil.ReadAll(res.Body)
+	d := time.Since(t0)
+
+	if err == nil {
+		t.Error("expected an error reading the body")
+	}
+	if string(body) != "Hello" {
+		t.Errorf("Body = %q; want Hello", body)
+	}
+	if d < 500*time.Millisecond {
+		t.Errorf("expected ~1 second delay; got %v", d)
+	}
+	// Verify no outstanding requests after readLoop/writeLoop
+	// goroutines shut down.
+	for tries := 3; tries > 0; tries-- {
+		n := tr.NumPendingRequestsForTesting()
+		if n == 0 {
+			break
+		}
+		time.Sleep(100 * time.Millisecond)
+		if tries == 1 {
+			t.Errorf("pending requests = %d; want 0", n)
+		}
+	}
+}
+
+// golang.org/issue/3672 -- Client can't close HTTP stream
+// Calling Close on a Response.Body used to just read until EOF.
+// Now it actually closes the TCP connection.
+func TestTransportCloseResponseBody(t *testing.T) {
+	defer afterTest(t)
+	writeErr := make(chan error, 1)
+	msg := []byte("young\n")
+	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		for {
+			_, err := w.Write(msg)
+			if err != nil {
+				writeErr <- err
+				return
+			}
+			w.(Flusher).Flush()
+		}
+	}))
+	defer ts.Close()
+
+	tr := &Transport{}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	req, _ := NewRequest("GET", ts.URL, nil)
+	defer tr.CancelRequest(req)
+
+	res, err := c.Do(req)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	const repeats = 3
+	buf := make([]byte, len(msg)*repeats)
+	want := bytes.Repeat(msg, repeats)
+
+	_, err = io.ReadFull(res.Body, buf)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if !bytes.Equal(buf, want) {
+		t.Errorf("read %q; want %q", buf, want)
+	}
+	didClose := make(chan error, 1)
+	go func() {
+		didClose <- res.Body.Close()
+	}()
+	select {
+	case err := <-didClose:
+		if err != nil {
+			t.Errorf("Close = %v", err)
+		}
+	case <-time.After(10 * time.Second):
+		t.Fatal("too long waiting for close")
+	}
+	select {
+	case err := <-writeErr:
+		if err == nil {
+			t.Errorf("expected non-nil write error")
+		}
+	case <-time.After(10 * time.Second):
+		t.Fatal("too long waiting for write error")
+	}
+}
+
 type fooProto struct{}
 
 func (fooProto) RoundTrip(req *Request) (*Response, error) {
@@ -1083,6 +1309,7 @@
 }
 
 func TestTransportAltProto(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	c := &Client{Transport: tr}
 	tr.RegisterProtocol("foo", fooProto{})
@@ -1101,6 +1328,7 @@
 }
 
 func TestTransportNoHost(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	_, err := tr.RoundTrip(&Request{
 		Header: make(Header),
@@ -1114,6 +1342,172 @@
 	}
 }
 
+func TestTransportSocketLateBinding(t *testing.T) {
+	defer afterTest(t)
+
+	mux := NewServeMux()
+	fooGate := make(chan bool, 1)
+	mux.HandleFunc("/foo", func(w ResponseWriter, r *Request) {
+		w.Header().Set("foo-ipport", r.RemoteAddr)
+		w.(Flusher).Flush()
+		<-fooGate
+	})
+	mux.HandleFunc("/bar", func(w ResponseWriter, r *Request) {
+		w.Header().Set("bar-ipport", r.RemoteAddr)
+	})
+	ts := httptest.NewServer(mux)
+	defer ts.Close()
+
+	dialGate := make(chan bool, 1)
+	tr := &Transport{
+		Dial: func(n, addr string) (net.Conn, error) {
+			<-dialGate
+			return net.Dial(n, addr)
+		},
+		DisableKeepAlives: false,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{
+		Transport: tr,
+	}
+
+	dialGate <- true // only allow one dial
+	fooRes, err := c.Get(ts.URL + "/foo")
+	if err != nil {
+		t.Fatal(err)
+	}
+	fooAddr := fooRes.Header.Get("foo-ipport")
+	if fooAddr == "" {
+		t.Fatal("No addr on /foo request")
+	}
+	time.AfterFunc(200*time.Millisecond, func() {
+		// let the foo response finish so we can use its
+		// connection for /bar
+		fooGate <- true
+		io.Copy(ioutil.Discard, fooRes.Body)
+		fooRes.Body.Close()
+	})
+
+	barRes, err := c.Get(ts.URL + "/bar")
+	if err != nil {
+		t.Fatal(err)
+	}
+	barAddr := barRes.Header.Get("bar-ipport")
+	if barAddr != fooAddr {
+		t.Fatalf("/foo came from conn %q; /bar came from %q instead", fooAddr, barAddr)
+	}
+	barRes.Body.Close()
+	dialGate <- true
+}
+
+// Issue 2184
+func TestTransportReading100Continue(t *testing.T) {
+	defer afterTest(t)
+
+	const numReqs = 5
+	reqBody := func(n int) string { return fmt.Sprintf("request body %d", n) }
+	reqID := func(n int) string { return fmt.Sprintf("REQ-ID-%d", n) }
+
+	send100Response := func(w *io.PipeWriter, r *io.PipeReader) {
+		defer w.Close()
+		defer r.Close()
+		br := bufio.NewReader(r)
+		n := 0
+		for {
+			n++
+			req, err := ReadRequest(br)
+			if err == io.EOF {
+				return
+			}
+			if err != nil {
+				t.Error(err)
+				return
+			}
+			slurp, err := ioutil.ReadAll(req.Body)
+			if err != nil {
+				t.Errorf("Server request body slurp: %v", err)
+				return
+			}
+			id := req.Header.Get("Request-Id")
+			resCode := req.Header.Get("X-Want-Response-Code")
+			if resCode == "" {
+				resCode = "100 Continue"
+				if string(slurp) != reqBody(n) {
+					t.Errorf("Server got %q, %v; want %q", slurp, err, reqBody(n))
+				}
+			}
+			body := fmt.Sprintf("Response number %d", n)
+			v := []byte(strings.Replace(fmt.Sprintf(`HTTP/1.1 %s
+Date: Thu, 28 Feb 2013 17:55:41 GMT
+
+HTTP/1.1 200 OK
+Content-Type: text/html
+Echo-Request-Id: %s
+Content-Length: %d
+
+%s`, resCode, id, len(body), body), "\n", "\r\n", -1))
+			w.Write(v)
+			if id == reqID(numReqs) {
+				return
+			}
+		}
+
+	}
+
+	tr := &Transport{
+		Dial: func(n, addr string) (net.Conn, error) {
+			sr, sw := io.Pipe() // server read/write
+			cr, cw := io.Pipe() // client read/write
+			conn := &rwTestConn{
+				Reader: cr,
+				Writer: sw,
+				closeFunc: func() error {
+					sw.Close()
+					cw.Close()
+					return nil
+				},
+			}
+			go send100Response(cw, sr)
+			return conn, nil
+		},
+		DisableKeepAlives: false,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	testResponse := func(req *Request, name string, wantCode int) {
+		res, err := c.Do(req)
+		if err != nil {
+			t.Fatalf("%s: Do: %v", name, err)
+		}
+		if res.StatusCode != wantCode {
+			t.Fatalf("%s: Response Statuscode=%d; want %d", name, res.StatusCode, wantCode)
+		}
+		if id, idBack := req.Header.Get("Request-Id"), res.Header.Get("Echo-Request-Id"); id != "" && id != idBack {
+			t.Errorf("%s: response id %q != request id %q", name, idBack, id)
+		}
+		_, err = ioutil.ReadAll(res.Body)
+		if err != nil {
+			t.Fatalf("%s: Slurp error: %v", name, err)
+		}
+	}
+
+	// Few 100 responses, making sure we're not off-by-one.
+	for i := 1; i <= numReqs; i++ {
+		req, _ := NewRequest("POST", "http://dummy.tld/", strings.NewReader(reqBody(i)))
+		req.Header.Set("Request-Id", reqID(i))
+		testResponse(req, fmt.Sprintf("100, %d/%d", i, numReqs), 200)
+	}
+
+	// And some other informational 1xx but non-100 responses, to test
+	// we return them but don't re-use the connection.
+	for i := 1; i <= numReqs; i++ {
+		req, _ := NewRequest("POST", "http://other.tld/", strings.NewReader(reqBody(i)))
+		req.Header.Set("X-Want-Response-Code", "123 Sesame Street")
+		testResponse(req, fmt.Sprintf("123, %d/%d", i, numReqs), 123)
+	}
+}
+
 type proxyFromEnvTest struct {
 	req     string // URL to fetch; blank means "http://example.com"
 	env     string
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go gcc-4.8.1/libgo/go/net/http/z_last_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/http/z_last_test.go	2013-10-01 16:06:44.180554280 +0000
@@ -0,0 +1,98 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http_test
+
+import (
+	"net/http"
+	"runtime"
+	"sort"
+	"strings"
+	"testing"
+	"time"
+)
+
+func interestingGoroutines() (gs []string) {
+	buf := make([]byte, 2<<20)
+	buf = buf[:runtime.Stack(buf, true)]
+	for _, g := range strings.Split(string(buf), "\n\n") {
+		sl := strings.SplitN(g, "\n", 2)
+		if len(sl) != 2 {
+			continue
+		}
+		stack := strings.TrimSpace(sl[1])
+		if stack == "" ||
+			strings.Contains(stack, "created by net.newPollServer") ||
+			strings.Contains(stack, "created by net.startServer") ||
+			strings.Contains(stack, "created by testing.RunTests") ||
+			strings.Contains(stack, "closeWriteAndWait") ||
+			strings.Contains(stack, "testing.Main(") ||
+			// These only show up with GOTRACEBACK=2; Issue 5005 (comment 28)
+			strings.Contains(stack, "runtime.goexit") ||
+			strings.Contains(stack, "created by runtime.gc") ||
+			strings.Contains(stack, "runtime.MHeap_Scavenger") {
+			continue
+		}
+		gs = append(gs, stack)
+	}
+	sort.Strings(gs)
+	return
+}
+
+// Verify the other tests didn't leave any goroutines running.
+// This is in a file named z_last_test.go so it sorts at the end.
+func TestGoroutinesRunning(t *testing.T) {
+	if testing.Short() {
+		t.Skip("not counting goroutines for leakage in -short mode")
+	}
+	gs := interestingGoroutines()
+
+	n := 0
+	stackCount := make(map[string]int)
+	for _, g := range gs {
+		stackCount[g]++
+		n++
+	}
+
+	t.Logf("num goroutines = %d", n)
+	if n > 0 {
+		t.Error("Too many goroutines.")
+		for stack, count := range stackCount {
+			t.Logf("%d instances of:\n%s", count, stack)
+		}
+	}
+}
+
+func afterTest(t *testing.T) {
+	http.DefaultTransport.(*http.Transport).CloseIdleConnections()
+	if testing.Short() {
+		return
+	}
+	var bad string
+	badSubstring := map[string]string{
+		").readLoop(":                                  "a Transport",
+		").writeLoop(":                                 "a Transport",
+		"created by net/http/httptest.(*Server).Start": "an httptest.Server",
+		"timeoutHandler":                               "a TimeoutHandler",
+		"net.(*netFD).connect(":                        "a timing out dial",
+		").noteClientGone(":                            "a closenotifier sender",
+	}
+	var stacks string
+	for i := 0; i < 4; i++ {
+		bad = ""
+		stacks = strings.Join(interestingGoroutines(), "\n\n")
+		for substr, what := range badSubstring {
+			if strings.Contains(stacks, substr) {
+				bad = what
+			}
+		}
+		if bad == "" {
+			return
+		}
+		// Bad stuff found, but goroutines might just still be
+		// shutting down, so give it some time.
+		time.Sleep(250 * time.Millisecond)
+	}
+	t.Errorf("Test appears to have leaked %s:\n%s", bad, stacks)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface.go gcc-4.8.1/libgo/go/net/interface.go
--- gcc-4.8.1.orig/libgo/go/net/interface.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification
-
 package net
 
 import "errors"
@@ -66,7 +64,7 @@
 	if ifi == nil {
 		return nil, errInvalidInterface
 	}
-	return interfaceAddrTable(ifi.Index)
+	return interfaceAddrTable(ifi)
 }
 
 // MulticastAddrs returns multicast, joined group addresses for
@@ -75,7 +73,7 @@
 	if ifi == nil {
 		return nil, errInvalidInterface
 	}
-	return interfaceMulticastAddrTable(ifi.Index)
+	return interfaceMulticastAddrTable(ifi)
 }
 
 // Interfaces returns a list of the system's network interfaces.
@@ -86,7 +84,7 @@
 // InterfaceAddrs returns a list of the system's network interface
 // addresses.
 func InterfaceAddrs() ([]Addr, error) {
-	return interfaceAddrTable(0)
+	return interfaceAddrTable(nil)
 }
 
 // InterfaceByIndex returns the interface specified by index.
@@ -98,8 +96,14 @@
 	if err != nil {
 		return nil, err
 	}
+	return interfaceByIndex(ift, index)
+}
+
+func interfaceByIndex(ift []Interface, index int) (*Interface, error) {
 	for _, ifi := range ift {
-		return &ifi, nil
+		if index == ifi.Index {
+			return &ifi, nil
+		}
 	}
 	return nil, errNoSuchInterface
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_bsd.go gcc-4.8.1/libgo/go/net/interface_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_bsd.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_bsd.go	2013-10-01 16:06:44.180554280 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd netbsd openbsd
 
-// Network interface identification for BSD variants
-
 package net
 
 import (
@@ -22,57 +20,60 @@
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
+	return parseInterfaceTable(ifindex, msgs)
+}
 
+func parseInterfaceTable(ifindex int, msgs []syscall.RoutingMessage) ([]Interface, error) {
 	var ift []Interface
+loop:
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifi, err := newLink(v)
+			if ifindex == 0 || ifindex == int(m.Header.Index) {
+				ifi, err := newLink(m)
 				if err != nil {
 					return nil, err
 				}
-				ift = append(ift, ifi...)
+				ift = append(ift, *ifi)
+				if ifindex == int(m.Header.Index) {
+					break loop
+				}
 			}
 		}
 	}
 	return ift, nil
 }
 
-func newLink(m *syscall.InterfaceMessage) ([]Interface, error) {
+func newLink(m *syscall.InterfaceMessage) (*Interface, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
-	var ift []Interface
-	for _, s := range sas {
-		switch v := s.(type) {
+	ifi := &Interface{Index: int(m.Header.Index), Flags: linkFlags(m.Header.Flags)}
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrDatalink:
 			// NOTE: SockaddrDatalink.Data is minimum work area,
 			// can be larger.
-			m.Data = m.Data[unsafe.Offsetof(v.Data):]
-			ifi := Interface{Index: int(m.Header.Index), Flags: linkFlags(m.Header.Flags)}
+			m.Data = m.Data[unsafe.Offsetof(sa.Data):]
 			var name [syscall.IFNAMSIZ]byte
-			for i := 0; i < int(v.Nlen); i++ {
+			for i := 0; i < int(sa.Nlen); i++ {
 				name[i] = byte(m.Data[i])
 			}
-			ifi.Name = string(name[:v.Nlen])
+			ifi.Name = string(name[:sa.Nlen])
 			ifi.MTU = int(m.Header.Data.Mtu)
-			addr := make([]byte, v.Alen)
-			for i := 0; i < int(v.Alen); i++ {
-				addr[i] = byte(m.Data[int(v.Nlen)+i])
+			addr := make([]byte, sa.Alen)
+			for i := 0; i < int(sa.Alen); i++ {
+				addr[i] = byte(m.Data[int(sa.Nlen)+i])
 			}
-			ifi.HardwareAddr = addr[:v.Alen]
-			ift = append(ift, ifi)
+			ifi.HardwareAddr = addr[:sa.Alen]
 		}
 	}
-	return ift, nil
+	return ifi, nil
 }
 
 func linkFlags(rawFlags int32) Flags {
@@ -95,26 +96,42 @@
 	return f
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST, ifindex)
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
+	index := 0
+	if ifi != nil {
+		index = ifi.Index
+	}
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST, index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
+	var ift []Interface
+	if index == 0 {
+		ift, err = parseInterfaceTable(index, msgs)
+		if err != nil {
+			return nil, err
+		}
+	}
 	var ifat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifa, err := newAddr(v)
+			if index == 0 || index == int(m.Header.Index) {
+				if index == 0 {
+					var err error
+					ifi, err = interfaceByIndex(ift, int(m.Header.Index))
+					if err != nil {
+						return nil, err
+					}
+				}
+				ifa, err := newAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -127,35 +144,33 @@
 	return ifat, nil
 }
 
-func newAddr(m *syscall.InterfaceAddrMessage) (Addr, error) {
+func newAddr(ifi *Interface, m *syscall.InterfaceAddrMessage) (Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	ifa := &IPNet{}
-	for i, s := range sas {
-		switch v := s.(type) {
+	for i, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
 			switch i {
 			case 0:
-				ifa.Mask = IPv4Mask(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])
+				ifa.Mask = IPv4Mask(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])
 			case 1:
-				ifa.IP = IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])
+				ifa.IP = IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])
 			}
 		case *syscall.SockaddrInet6:
 			switch i {
 			case 0:
 				ifa.Mask = make(IPMask, IPv6len)
-				copy(ifa.Mask, v.Addr[:])
+				copy(ifa.Mask, sa.Addr[:])
 			case 1:
 				ifa.IP = make(IP, IPv6len)
-				copy(ifa.IP, v.Addr[:])
+				copy(ifa.IP, sa.Addr[:])
 				// NOTE: KAME based IPv6 protcol stack usually embeds
 				// the interface index in the interface-local or link-
 				// local address as the kernel-internal form.
 				if ifa.IP.IsLinkLocalUnicast() {
-					// remove embedded scope zone ID
 					ifa.IP[2], ifa.IP[3] = 0, 0
 				}
 			}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_darwin.go gcc-4.8.1/libgo/go/net/interface_darwin.go
--- gcc-4.8.1.orig/libgo/go/net/interface_darwin.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_darwin.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Darwin
-
 package net
 
 import (
@@ -11,26 +9,23 @@
 	"syscall"
 )
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST2, ifindex)
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST2, ifi.Index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
 	var ifmat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMulticastAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifma, err := newMulticastAddr(v)
+			if ifi.Index == int(m.Header.Index) {
+				ifma, err := newMulticastAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -41,27 +36,24 @@
 	return ifmat, nil
 }
 
-func newMulticastAddr(m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
+func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	var ifmat []Addr
-	for _, s := range sas {
-		switch v := s.(type) {
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
-			ifma := &IPAddr{IP: IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])}
+			ifma := &IPAddr{IP: IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])}
 			ifmat = append(ifmat, ifma.toAddr())
 		case *syscall.SockaddrInet6:
 			ifma := &IPAddr{IP: make(IP, IPv6len)}
-			copy(ifma.IP, v.Addr[:])
-			// NOTE: KAME based IPv6 protcol stack usually embeds
+			copy(ifma.IP, sa.Addr[:])
+			// NOTE: KAME based IPv6 protocol stack usually embeds
 			// the interface index in the interface-local or link-
 			// local address as the kernel-internal form.
-			if ifma.IP.IsInterfaceLocalMulticast() ||
-				ifma.IP.IsLinkLocalMulticast() {
-				// remove embedded scope zone ID
+			if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() {
 				ifma.IP[2], ifma.IP[3] = 0, 0
 			}
 			ifmat = append(ifmat, ifma.toAddr())
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go gcc-4.8.1/libgo/go/net/interface_freebsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go	2012-02-09 08:19:58.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_freebsd.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for FreeBSD
-
 package net
 
 import (
@@ -11,26 +9,23 @@
 	"syscall"
 )
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFMALIST, ifindex)
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFMALIST, ifi.Index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
 	var ifmat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMulticastAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifma, err := newMulticastAddr(v)
+			if ifi.Index == int(m.Header.Index) {
+				ifma, err := newMulticastAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -41,27 +36,24 @@
 	return ifmat, nil
 }
 
-func newMulticastAddr(m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
+func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	var ifmat []Addr
-	for _, s := range sas {
-		switch v := s.(type) {
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
-			ifma := &IPAddr{IP: IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])}
+			ifma := &IPAddr{IP: IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])}
 			ifmat = append(ifmat, ifma.toAddr())
 		case *syscall.SockaddrInet6:
 			ifma := &IPAddr{IP: make(IP, IPv6len)}
-			copy(ifma.IP, v.Addr[:])
-			// NOTE: KAME based IPv6 protcol stack usually embeds
+			copy(ifma.IP, sa.Addr[:])
+			// NOTE: KAME based IPv6 protocol stack usually embeds
 			// the interface index in the interface-local or link-
 			// local address as the kernel-internal form.
-			if ifma.IP.IsInterfaceLocalMulticast() ||
-				ifma.IP.IsLinkLocalMulticast() {
-				// remove embedded scope zone ID
+			if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() {
 				ifma.IP[2], ifma.IP[3] = 0, 0
 			}
 			ifmat = append(ifmat, ifma.toAddr())
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_linux.go gcc-4.8.1/libgo/go/net/interface_linux.go
--- gcc-4.8.1.orig/libgo/go/net/interface_linux.go	2012-04-20 20:11:28.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_linux.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Linux
-
 package net
 
 import (
@@ -20,17 +18,16 @@
 	if err != nil {
 		return nil, os.NewSyscallError("netlink rib", err)
 	}
-
 	msgs, err := syscall.ParseNetlinkMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink message", err)
 	}
-
 	var ift []Interface
+loop:
 	for _, m := range msgs {
 		switch m.Header.Type {
 		case syscall.NLMSG_DONE:
-			goto done
+			break loop
 		case syscall.RTM_NEWLINK:
 			ifim := (*syscall.IfInfomsg)(unsafe.Pointer(&m.Data[0]))
 			if ifindex == 0 || ifindex == int(ifim.Index) {
@@ -38,17 +35,18 @@
 				if err != nil {
 					return nil, os.NewSyscallError("netlink routeattr", err)
 				}
-				ifi := newLink(ifim, attrs)
-				ift = append(ift, ifi)
+				ift = append(ift, *newLink(ifim, attrs))
+				if ifindex == int(ifim.Index) {
+					break loop
+				}
 			}
 		}
 	}
-done:
 	return ift, nil
 }
 
-func newLink(ifim *syscall.IfInfomsg, attrs []syscall.NetlinkRouteAttr) Interface {
-	ifi := Interface{Index: int(ifim.Index), Flags: linkFlags(ifim.Flags)}
+func newLink(ifim *syscall.IfInfomsg, attrs []syscall.NetlinkRouteAttr) *Interface {
+	ifi := &Interface{Index: int(ifim.Index), Flags: linkFlags(ifim.Flags)}
 	for _, a := range attrs {
 		switch a.Attr.Type {
 		case syscall.IFLA_ADDRESS:
@@ -90,81 +88,84 @@
 	return f
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	tab, err := syscall.NetlinkRIB(syscall.RTM_GETADDR, syscall.AF_UNSPEC)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink rib", err)
 	}
-
 	msgs, err := syscall.ParseNetlinkMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink message", err)
 	}
-
-	ifat, err := addrTable(msgs, ifindex)
+	var ift []Interface
+	if ifi == nil {
+		var err error
+		ift, err = interfaceTable(0)
+		if err != nil {
+			return nil, err
+		}
+	}
+	ifat, err := addrTable(ift, ifi, msgs)
 	if err != nil {
 		return nil, err
 	}
 	return ifat, nil
 }
 
-func addrTable(msgs []syscall.NetlinkMessage, ifindex int) ([]Addr, error) {
+func addrTable(ift []Interface, ifi *Interface, msgs []syscall.NetlinkMessage) ([]Addr, error) {
 	var ifat []Addr
+loop:
 	for _, m := range msgs {
 		switch m.Header.Type {
 		case syscall.NLMSG_DONE:
-			goto done
+			break loop
 		case syscall.RTM_NEWADDR:
 			ifam := (*syscall.IfAddrmsg)(unsafe.Pointer(&m.Data[0]))
-			if ifindex == 0 || ifindex == int(ifam.Index) {
+			if len(ift) != 0 || ifi.Index == int(ifam.Index) {
+				if len(ift) != 0 {
+					var err error
+					ifi, err = interfaceByIndex(ift, int(ifam.Index))
+					if err != nil {
+						return nil, err
+					}
+				}
 				attrs, err := syscall.ParseNetlinkRouteAttr(&m)
 				if err != nil {
 					return nil, os.NewSyscallError("netlink routeattr", err)
 				}
-				ifat = append(ifat, newAddr(attrs, int(ifam.Family), int(ifam.Prefixlen)))
+				ifa := newAddr(ifi, ifam, attrs)
+				if ifa != nil {
+					ifat = append(ifat, ifa)
+				}
 			}
 		}
 	}
-done:
 	return ifat, nil
 }
 
-func newAddr(attrs []syscall.NetlinkRouteAttr, family, pfxlen int) Addr {
-	ifa := &IPNet{}
+func newAddr(ifi *Interface, ifam *syscall.IfAddrmsg, attrs []syscall.NetlinkRouteAttr) Addr {
 	for _, a := range attrs {
-		switch a.Attr.Type {
-		case syscall.IFA_ADDRESS:
-			switch family {
+		if ifi.Flags&FlagPointToPoint != 0 && a.Attr.Type == syscall.IFA_LOCAL ||
+			ifi.Flags&FlagPointToPoint == 0 && a.Attr.Type == syscall.IFA_ADDRESS {
+			switch ifam.Family {
 			case syscall.AF_INET:
-				ifa.IP = IPv4(a.Value[0], a.Value[1], a.Value[2], a.Value[3])
-				ifa.Mask = CIDRMask(pfxlen, 8*IPv4len)
+				return &IPNet{IP: IPv4(a.Value[0], a.Value[1], a.Value[2], a.Value[3]), Mask: CIDRMask(int(ifam.Prefixlen), 8*IPv4len)}
 			case syscall.AF_INET6:
-				ifa.IP = make(IP, IPv6len)
+				ifa := &IPNet{IP: make(IP, IPv6len), Mask: CIDRMask(int(ifam.Prefixlen), 8*IPv6len)}
 				copy(ifa.IP, a.Value[:])
-				ifa.Mask = CIDRMask(pfxlen, 8*IPv6len)
+				return ifa
 			}
 		}
 	}
-	return ifa
+	return nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	var (
-		err error
-		ifi *Interface
-	)
-	if ifindex > 0 {
-		ifi, err = InterfaceByIndex(ifindex)
-		if err != nil {
-			return nil, err
-		}
-	}
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
 	ifmat4 := parseProcNetIGMP("/proc/net/igmp", ifi)
 	ifmat6 := parseProcNetIGMP6("/proc/net/igmp6", ifi)
 	return append(ifmat4, ifmat6...), nil
@@ -176,7 +177,6 @@
 		return nil
 	}
 	defer fd.close()
-
 	var (
 		ifmat []Addr
 		name  string
@@ -214,7 +214,6 @@
 		return nil
 	}
 	defer fd.close()
-
 	var ifmat []Addr
 	b := make([]byte, IPv6len)
 	for l, ok := fd.readLine(); ok; l, ok = fd.readLine() {
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go gcc-4.8.1/libgo/go/net/interface_netbsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go	2012-01-13 05:11:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_netbsd.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,13 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for NetBSD
-
 package net
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go gcc-4.8.1/libgo/go/net/interface_openbsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_openbsd.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,13 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for OpenBSD
-
 package net
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_stub.go gcc-4.8.1/libgo/go/net/interface_stub.go
--- gcc-4.8.1.orig/libgo/go/net/interface_stub.go	2012-03-30 22:09:55.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_stub.go	2013-10-01 16:06:44.180554280 +0000
@@ -4,8 +4,6 @@
 
 // +build plan9
 
-// Network interface identification
-
 package net
 
 // If the ifindex is zero, interfaceTable returns mappings of all
@@ -15,16 +13,15 @@
 	return nil, nil
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	return nil, nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_test.go gcc-4.8.1/libgo/go/net/interface_test.go
--- gcc-4.8.1.orig/libgo/go/net/interface_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_test.go	2013-10-01 16:06:44.180554280 +0000
@@ -5,18 +5,50 @@
 package net
 
 import (
-	"bytes"
+	"reflect"
 	"testing"
 )
 
-func sameInterface(i, j *Interface) bool {
-	if i == nil || j == nil {
-		return false
+// loopbackInterface returns an available logical network interface
+// for loopback tests.  It returns nil if no suitable interface is
+// found.
+func loopbackInterface() *Interface {
+	ift, err := Interfaces()
+	if err != nil {
+		return nil
+	}
+	for _, ifi := range ift {
+		if ifi.Flags&FlagLoopback != 0 && ifi.Flags&FlagUp != 0 {
+			return &ifi
+		}
+	}
+	return nil
+}
+
+// ipv6LinkLocalUnicastAddr returns an IPv6 link-local unicast address
+// on the given network interface for tests. It returns "" if no
+// suitable address is found.
+func ipv6LinkLocalUnicastAddr(ifi *Interface) string {
+	if ifi == nil {
+		return ""
+	}
+	ifat, err := ifi.Addrs()
+	if err != nil {
+		return ""
 	}
-	if i.Index == j.Index && i.Name == j.Name && bytes.Equal(i.HardwareAddr, j.HardwareAddr) {
-		return true
+	for _, ifa := range ifat {
+		switch ifa := ifa.(type) {
+		case *IPAddr:
+			if ifa.IP.To4() == nil && ifa.IP.IsLinkLocalUnicast() {
+				return ifa.IP.String()
+			}
+		case *IPNet:
+			if ifa.IP.To4() == nil && ifa.IP.IsLinkLocalUnicast() {
+				return ifa.IP.String()
+			}
+		}
 	}
-	return false
+	return ""
 }
 
 func TestInterfaces(t *testing.T) {
@@ -29,17 +61,17 @@
 	for _, ifi := range ift {
 		ifxi, err := InterfaceByIndex(ifi.Index)
 		if err != nil {
-			t.Fatalf("InterfaceByIndex(%q) failed: %v", ifi.Index, err)
+			t.Fatalf("InterfaceByIndex(%v) failed: %v", ifi.Index, err)
 		}
-		if !sameInterface(ifxi, &ifi) {
-			t.Fatalf("InterfaceByIndex(%q) = %v, want %v", ifi.Index, *ifxi, ifi)
+		if !reflect.DeepEqual(ifxi, &ifi) {
+			t.Fatalf("InterfaceByIndex(%v) = %v, want %v", ifi.Index, ifxi, ifi)
 		}
 		ifxn, err := InterfaceByName(ifi.Name)
 		if err != nil {
 			t.Fatalf("InterfaceByName(%q) failed: %v", ifi.Name, err)
 		}
-		if !sameInterface(ifxn, &ifi) {
-			t.Fatalf("InterfaceByName(%q) = %v, want %v", ifi.Name, *ifxn, ifi)
+		if !reflect.DeepEqual(ifxn, &ifi) {
+			t.Fatalf("InterfaceByName(%q) = %v, want %v", ifi.Name, ifxn, ifi)
 		}
 		t.Logf("%q: flags %q, ifindex %v, mtu %v", ifi.Name, ifi.Flags.String(), ifi.Index, ifi.MTU)
 		t.Logf("\thardware address %q", ifi.HardwareAddr.String())
@@ -75,9 +107,9 @@
 
 func testAddrs(t *testing.T, ifat []Addr) {
 	for _, ifa := range ifat {
-		switch v := ifa.(type) {
+		switch ifa := ifa.(type) {
 		case *IPAddr, *IPNet:
-			if v == nil {
+			if ifa == nil {
 				t.Errorf("\tunexpected value: %v", ifa)
 			} else {
 				t.Logf("\tinterface address %q", ifa.String())
@@ -90,9 +122,9 @@
 
 func testMulticastAddrs(t *testing.T, ifmat []Addr) {
 	for _, ifma := range ifmat {
-		switch v := ifma.(type) {
+		switch ifma := ifma.(type) {
 		case *IPAddr:
-			if v == nil {
+			if ifma == nil {
 				t.Errorf("\tunexpected value: %v", ifma)
 			} else {
 				t.Logf("\tjoined group address %q", ifma.String())
@@ -102,3 +134,67 @@
 		}
 	}
 }
+
+func BenchmarkInterfaces(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		if _, err := Interfaces(); err != nil {
+			b.Fatalf("Interfaces failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceByIndex(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceByIndex(ifi.Index); err != nil {
+			b.Fatalf("InterfaceByIndex failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceByName(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceByName(ifi.Name); err != nil {
+			b.Fatalf("InterfaceByName failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceAddrs(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceAddrs(); err != nil {
+			b.Fatalf("InterfaceAddrs failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfacesAndAddrs(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := ifi.Addrs(); err != nil {
+			b.Fatalf("Interface.Addrs failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfacesAndMulticastAddrs(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := ifi.MulticastAddrs(); err != nil {
+			b.Fatalf("Interface.MulticastAddrs failed: %v", err)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_windows.go gcc-4.8.1/libgo/go/net/interface_windows.go
--- gcc-4.8.1.orig/libgo/go/net/interface_windows.go	2012-03-30 22:09:55.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/interface_windows.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Windows
-
 package net
 
 import (
@@ -25,6 +23,9 @@
 	b := make([]byte, 1000)
 	l := uint32(len(b))
 	a := (*syscall.IpAdapterInfo)(unsafe.Pointer(&b[0]))
+	// TODO(mikio): GetAdaptersInfo returns IP_ADAPTER_INFO that
+	// contains IPv4 address list only. We should use another API
+	// for fetching IPv6 stuff from the kernel.
 	err := syscall.GetAdaptersInfo(a, &l)
 	if err == syscall.ERROR_BUFFER_OVERFLOW {
 		b = make([]byte, l)
@@ -38,7 +39,7 @@
 }
 
 func getInterfaceList() ([]syscall.InterfaceInfo, error) {
-	s, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
+	s, err := sysSocket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
 	if err != nil {
 		return nil, os.NewSyscallError("Socket", err)
 	}
@@ -126,10 +127,10 @@
 	return ift, nil
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	ai, err := getAdapterList()
 	if err != nil {
 		return nil, err
@@ -138,11 +139,10 @@
 	var ifat []Addr
 	for ; ai != nil; ai = ai.Next {
 		index := ai.Index
-		if ifindex == 0 || ifindex == int(index) {
+		if ifi == nil || ifi.Index == int(index) {
 			ipl := &ai.IpAddressList
 			for ; ipl != nil; ipl = ipl.Next {
-				ifa := IPAddr{}
-				ifa.IP = parseIPv4(bytePtrToString(&ipl.IpAddress.String[0]))
+				ifa := IPAddr{IP: parseIPv4(bytePtrToString(&ipl.IpAddress.String[0]))}
 				ifat = append(ifat, ifa.toAddr())
 			}
 		}
@@ -150,9 +150,9 @@
 	return ifat, nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/ip.go gcc-4.8.1/libgo/go/net/ip.go
--- gcc-4.8.1.orig/libgo/go/net/ip.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/ip.go	2013-10-01 16:06:44.180554280 +0000
@@ -36,7 +36,6 @@
 type IPNet struct {
 	IP   IP     // network number
 	Mask IPMask // network mask
-	Zone string // IPv6 scoped addressing zone
 }
 
 // IPv4 returns the IP address (in 16-byte form) of the
@@ -223,7 +222,6 @@
 	default:
 		return classCMask
 	}
-	return nil // not reached
 }
 
 func allFF(b []byte) bool {
@@ -433,6 +431,9 @@
 	return true
 }
 
+// Network returns the address's network name, "ip+net".
+func (n *IPNet) Network() string { return "ip+net" }
+
 // String returns the CIDR notation of n like "192.168.100.1/24"
 // or "2001:DB8::/48" as defined in RFC 4632 and RFC 4291.
 // If the mask is not in the canonical form, it returns the
@@ -451,9 +452,6 @@
 	return nn.String() + "/" + itod(uint(l))
 }
 
-// Network returns the address's network name, "ip+net".
-func (n *IPNet) Network() string { return "ip+net" }
-
 // Parse IPv4 address (d.d.d.d).
 func parseIPv4(s string) IP {
 	var p [IPv4len]byte
@@ -485,26 +483,26 @@
 	return IPv4(p[0], p[1], p[2], p[3])
 }
 
-// Parse IPv6 address.  Many forms.
-// The basic form is a sequence of eight colon-separated
-// 16-bit hex numbers separated by colons,
-// as in 0123:4567:89ab:cdef:0123:4567:89ab:cdef.
-// Two exceptions:
-//	* A run of zeros can be replaced with "::".
-//	* The last 32 bits can be in IPv4 form.
-// Thus, ::ffff:1.2.3.4 is the IPv4 address 1.2.3.4.
-func parseIPv6(s string) IP {
-	p := make(IP, IPv6len)
+// parseIPv6 parses s as a literal IPv6 address described in RFC 4291
+// and RFC 5952.  It can also parse a literal scoped IPv6 address with
+// zone identifier which is described in RFC 4007 when zoneAllowed is
+// true.
+func parseIPv6(s string, zoneAllowed bool) (ip IP, zone string) {
+	ip = make(IP, IPv6len)
 	ellipsis := -1 // position of ellipsis in p
 	i := 0         // index in string s
 
+	if zoneAllowed {
+		s, zone = splitHostZone(s)
+	}
+
 	// Might have leading ellipsis
 	if len(s) >= 2 && s[0] == ':' && s[1] == ':' {
 		ellipsis = 0
 		i = 2
 		// Might be only ellipsis
 		if i == len(s) {
-			return p
+			return ip, zone
 		}
 	}
 
@@ -514,35 +512,35 @@
 		// Hex number.
 		n, i1, ok := xtoi(s, i)
 		if !ok || n > 0xFFFF {
-			return nil
+			return nil, zone
 		}
 
 		// If followed by dot, might be in trailing IPv4.
 		if i1 < len(s) && s[i1] == '.' {
 			if ellipsis < 0 && j != IPv6len-IPv4len {
 				// Not the right place.
-				return nil
+				return nil, zone
 			}
 			if j+IPv4len > IPv6len {
 				// Not enough room.
-				return nil
+				return nil, zone
 			}
-			p4 := parseIPv4(s[i:])
-			if p4 == nil {
-				return nil
+			ip4 := parseIPv4(s[i:])
+			if ip4 == nil {
+				return nil, zone
 			}
-			p[j] = p4[12]
-			p[j+1] = p4[13]
-			p[j+2] = p4[14]
-			p[j+3] = p4[15]
+			ip[j] = ip4[12]
+			ip[j+1] = ip4[13]
+			ip[j+2] = ip4[14]
+			ip[j+3] = ip4[15]
 			i = len(s)
 			j += IPv4len
 			break
 		}
 
 		// Save this 16-bit chunk.
-		p[j] = byte(n >> 8)
-		p[j+1] = byte(n)
+		ip[j] = byte(n >> 8)
+		ip[j+1] = byte(n)
 		j += 2
 
 		// Stop at end of string.
@@ -553,14 +551,14 @@
 
 		// Otherwise must be followed by colon and more.
 		if s[i] != ':' || i+1 == len(s) {
-			return nil
+			return nil, zone
 		}
 		i++
 
 		// Look for ellipsis.
 		if s[i] == ':' {
 			if ellipsis >= 0 { // already have one
-				return nil
+				return nil, zone
 			}
 			ellipsis = j
 			if i++; i == len(s) { // can be at end
@@ -571,23 +569,23 @@
 
 	// Must have used entire string.
 	if i != len(s) {
-		return nil
+		return nil, zone
 	}
 
 	// If didn't parse enough, expand ellipsis.
 	if j < IPv6len {
 		if ellipsis < 0 {
-			return nil
+			return nil, zone
 		}
 		n := IPv6len - j
 		for k := j - 1; k >= ellipsis; k-- {
-			p[k+n] = p[k]
+			ip[k+n] = ip[k]
 		}
 		for k := ellipsis + n - 1; k >= ellipsis; k-- {
-			p[k] = 0
+			ip[k] = 0
 		}
 	}
-	return p
+	return ip, zone
 }
 
 // A ParseError represents a malformed text string and the type of string that was expected.
@@ -600,26 +598,17 @@
 	return "invalid " + e.Type + ": " + e.Text
 }
 
-func parseIP(s string) IP {
-	if p := parseIPv4(s); p != nil {
-		return p
-	}
-	if p := parseIPv6(s); p != nil {
-		return p
-	}
-	return nil
-}
-
 // ParseIP parses s as an IP address, returning the result.
 // The string s can be in dotted decimal ("74.125.19.99")
 // or IPv6 ("2001:4860:0:2001::68") form.
 // If s is not a valid textual representation of an IP address,
 // ParseIP returns nil.
 func ParseIP(s string) IP {
-	if p := parseIPv4(s); p != nil {
-		return p
+	if ip := parseIPv4(s); ip != nil {
+		return ip
 	}
-	return parseIPv6(s)
+	ip, _ := parseIPv6(s, false)
+	return ip
 }
 
 // ParseCIDR parses s as a CIDR notation IP address and mask,
@@ -634,15 +623,15 @@
 	if i < 0 {
 		return nil, nil, &ParseError{"CIDR address", s}
 	}
-	ipstr, maskstr := s[:i], s[i+1:]
+	addr, mask := s[:i], s[i+1:]
 	iplen := IPv4len
-	ip := parseIPv4(ipstr)
+	ip := parseIPv4(addr)
 	if ip == nil {
 		iplen = IPv6len
-		ip = parseIPv6(ipstr)
+		ip, _ = parseIPv6(addr, false)
 	}
-	n, i, ok := dtoi(maskstr, 0)
-	if ip == nil || !ok || i != len(maskstr) || n < 0 || n > 8*iplen {
+	n, i, ok := dtoi(mask, 0)
+	if ip == nil || !ok || i != len(mask) || n < 0 || n > 8*iplen {
 		return nil, nil, &ParseError{"CIDR address", s}
 	}
 	m := CIDRMask(n, 8*iplen)
diff -Naur gcc-4.8.1.orig/libgo/go/net/ip_test.go gcc-4.8.1/libgo/go/net/ip_test.go
--- gcc-4.8.1.orig/libgo/go/net/ip_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/ip_test.go	2013-10-01 16:06:44.180554280 +0000
@@ -5,23 +5,12 @@
 package net
 
 import (
-	"bytes"
 	"reflect"
 	"runtime"
 	"testing"
 )
 
-func isEqual(a, b []byte) bool {
-	if a == nil && b == nil {
-		return true
-	}
-	if a == nil || b == nil {
-		return false
-	}
-	return bytes.Equal(a, b)
-}
-
-var parseiptests = []struct {
+var parseIPTests = []struct {
 	in  string
 	out IP
 }{
@@ -33,22 +22,23 @@
 	{"::ffff:127.0.0.1", IPv4(127, 0, 0, 1)},
 	{"2001:4860:0:2001::68", IP{0x20, 0x01, 0x48, 0x60, 0, 0, 0x20, 0x01, 0, 0, 0, 0, 0, 0, 0x00, 0x68}},
 	{"::ffff:4a7d:1363", IPv4(74, 125, 19, 99)},
+	{"fe80::1%lo0", nil},
+	{"fe80::1%911", nil},
 	{"", nil},
 }
 
 func TestParseIP(t *testing.T) {
-	for _, tt := range parseiptests {
-		if out := ParseIP(tt.in); !isEqual(out, tt.out) {
+	for _, tt := range parseIPTests {
+		if out := ParseIP(tt.in); !reflect.DeepEqual(out, tt.out) {
 			t.Errorf("ParseIP(%q) = %v, want %v", tt.in, out, tt.out)
 		}
 	}
 }
 
-var ipstringtests = []struct {
+var ipStringTests = []struct {
 	in  IP
-	out string
+	out string // see RFC 5952
 }{
-	// cf. RFC 5952 (A Recommendation for IPv6 Address Text Representation)
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0x1, 0x23, 0, 0x12, 0, 0x1}, "2001:db8::123:12:1"},
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1}, "2001:db8::1"},
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0x1, 0, 0, 0, 0x1, 0, 0, 0, 0x1}, "2001:db8:0:1:0:1:0:1"},
@@ -61,14 +51,14 @@
 }
 
 func TestIPString(t *testing.T) {
-	for _, tt := range ipstringtests {
+	for _, tt := range ipStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IP.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var ipmasktests = []struct {
+var ipMaskTests = []struct {
 	in   IP
 	mask IPMask
 	out  IP
@@ -82,14 +72,14 @@
 }
 
 func TestIPMask(t *testing.T) {
-	for _, tt := range ipmasktests {
+	for _, tt := range ipMaskTests {
 		if out := tt.in.Mask(tt.mask); out == nil || !tt.out.Equal(out) {
 			t.Errorf("IP(%v).Mask(%v) = %v, want %v", tt.in, tt.mask, out, tt.out)
 		}
 	}
 }
 
-var ipmaskstringtests = []struct {
+var ipMaskStringTests = []struct {
 	in  IPMask
 	out string
 }{
@@ -101,14 +91,14 @@
 }
 
 func TestIPMaskString(t *testing.T) {
-	for _, tt := range ipmaskstringtests {
+	for _, tt := range ipMaskStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IPMask.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var parsecidrtests = []struct {
+var parseCIDRTests = []struct {
 	in  string
 	ip  IP
 	net *IPNet
@@ -138,18 +128,18 @@
 }
 
 func TestParseCIDR(t *testing.T) {
-	for _, tt := range parsecidrtests {
+	for _, tt := range parseCIDRTests {
 		ip, net, err := ParseCIDR(tt.in)
 		if !reflect.DeepEqual(err, tt.err) {
 			t.Errorf("ParseCIDR(%q) = %v, %v; want %v, %v", tt.in, ip, net, tt.ip, tt.net)
 		}
-		if err == nil && (!tt.ip.Equal(ip) || !tt.net.IP.Equal(net.IP) || !isEqual(net.Mask, tt.net.Mask)) {
-			t.Errorf("ParseCIDR(%q) = %v, {%v, %v}; want %v {%v, %v}", tt.in, ip, net.IP, net.Mask, tt.ip, tt.net.IP, tt.net.Mask)
+		if err == nil && (!tt.ip.Equal(ip) || !tt.net.IP.Equal(net.IP) || !reflect.DeepEqual(net.Mask, tt.net.Mask)) {
+			t.Errorf("ParseCIDR(%q) = %v, {%v, %v}; want %v, {%v, %v}", tt.in, ip, net.IP, net.Mask, tt.ip, tt.net.IP, tt.net.Mask)
 		}
 	}
 }
 
-var ipnetcontainstests = []struct {
+var ipNetContainsTests = []struct {
 	ip  IP
 	net *IPNet
 	ok  bool
@@ -165,14 +155,14 @@
 }
 
 func TestIPNetContains(t *testing.T) {
-	for _, tt := range ipnetcontainstests {
+	for _, tt := range ipNetContainsTests {
 		if ok := tt.net.Contains(tt.ip); ok != tt.ok {
 			t.Errorf("IPNet(%v).Contains(%v) = %v, want %v", tt.net, tt.ip, ok, tt.ok)
 		}
 	}
 }
 
-var ipnetstringtests = []struct {
+var ipNetStringTests = []struct {
 	in  *IPNet
 	out string
 }{
@@ -183,14 +173,14 @@
 }
 
 func TestIPNetString(t *testing.T) {
-	for _, tt := range ipnetstringtests {
+	for _, tt := range ipNetStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IPNet.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var cidrmasktests = []struct {
+var cidrMaskTests = []struct {
 	ones int
 	bits int
 	out  IPMask
@@ -210,8 +200,8 @@
 }
 
 func TestCIDRMask(t *testing.T) {
-	for _, tt := range cidrmasktests {
-		if out := CIDRMask(tt.ones, tt.bits); !isEqual(out, tt.out) {
+	for _, tt := range cidrMaskTests {
+		if out := CIDRMask(tt.ones, tt.bits); !reflect.DeepEqual(out, tt.out) {
 			t.Errorf("CIDRMask(%v, %v) = %v, want %v", tt.ones, tt.bits, out, tt.out)
 		}
 	}
@@ -229,7 +219,7 @@
 	v4maskzero     = IPMask{0, 0, 0, 0}
 )
 
-var networknumberandmasktests = []struct {
+var networkNumberAndMaskTests = []struct {
 	in  IPNet
 	out IPNet
 }{
@@ -251,43 +241,90 @@
 }
 
 func TestNetworkNumberAndMask(t *testing.T) {
-	for _, tt := range networknumberandmasktests {
+	for _, tt := range networkNumberAndMaskTests {
 		ip, m := networkNumberAndMask(&tt.in)
 		out := &IPNet{IP: ip, Mask: m}
 		if !reflect.DeepEqual(&tt.out, out) {
-			t.Errorf("networkNumberAndMask(%v) = %v; want %v", tt.in, out, &tt.out)
+			t.Errorf("networkNumberAndMask(%v) = %v, want %v", tt.in, out, &tt.out)
 		}
 	}
 }
 
-var splitjointests = []struct {
-	Host string
-	Port string
-	Join string
+var splitJoinTests = []struct {
+	host string
+	port string
+	join string
 }{
 	{"www.google.com", "80", "www.google.com:80"},
 	{"127.0.0.1", "1234", "127.0.0.1:1234"},
 	{"::1", "80", "[::1]:80"},
+	{"fe80::1%lo0", "80", "[fe80::1%lo0]:80"},
+	{"localhost%lo0", "80", "[localhost%lo0]:80"},
+	{"", "0", ":0"},
+
 	{"google.com", "https%foo", "google.com:https%foo"}, // Go 1.0 behavior
+	{"127.0.0.1", "", "127.0.0.1:"},                     // Go 1.0 behaviour
+	{"www.google.com", "", "www.google.com:"},           // Go 1.0 behaviour
+}
+
+var splitFailureTests = []struct {
+	hostPort string
+	err      string
+}{
+	{"www.google.com", "missing port in address"},
+	{"127.0.0.1", "missing port in address"},
+	{"[::1]", "missing port in address"},
+	{"[fe80::1%lo0]", "missing port in address"},
+	{"[localhost%lo0]", "missing port in address"},
+	{"localhost%lo0", "missing port in address"},
+
+	{"::1", "too many colons in address"},
+	{"fe80::1%lo0", "too many colons in address"},
+	{"fe80::1%lo0:80", "too many colons in address"},
+
+	{"localhost%lo0:80", "missing brackets in address"},
+
+	// Test cases that didn't fail in Go 1.0
+
+	{"[foo:bar]", "missing port in address"},
+	{"[foo:bar]baz", "missing port in address"},
+	{"[foo]bar:baz", "missing port in address"},
+
+	{"[foo]:[bar]:baz", "too many colons in address"},
+
+	{"[foo]:[bar]baz", "unexpected '[' in address"},
+	{"foo[bar]:baz", "unexpected '[' in address"},
+
+	{"foo]bar:baz", "unexpected ']' in address"},
 }
 
 func TestSplitHostPort(t *testing.T) {
-	for _, tt := range splitjointests {
-		if host, port, err := SplitHostPort(tt.Join); host != tt.Host || port != tt.Port || err != nil {
-			t.Errorf("SplitHostPort(%q) = %q, %q, %v; want %q, %q, nil", tt.Join, host, port, err, tt.Host, tt.Port)
+	for _, tt := range splitJoinTests {
+		if host, port, err := SplitHostPort(tt.join); host != tt.host || port != tt.port || err != nil {
+			t.Errorf("SplitHostPort(%q) = %q, %q, %v; want %q, %q, nil", tt.join, host, port, err, tt.host, tt.port)
+		}
+	}
+	for _, tt := range splitFailureTests {
+		if _, _, err := SplitHostPort(tt.hostPort); err == nil {
+			t.Errorf("SplitHostPort(%q) should have failed", tt.hostPort)
+		} else {
+			e := err.(*AddrError)
+			if e.Err != tt.err {
+				t.Errorf("SplitHostPort(%q) = _, _, %q; want %q", tt.hostPort, e.Err, tt.err)
+			}
 		}
 	}
 }
 
 func TestJoinHostPort(t *testing.T) {
-	for _, tt := range splitjointests {
-		if join := JoinHostPort(tt.Host, tt.Port); join != tt.Join {
-			t.Errorf("JoinHostPort(%q, %q) = %q; want %q", tt.Host, tt.Port, join, tt.Join)
+	for _, tt := range splitJoinTests {
+		if join := JoinHostPort(tt.host, tt.port); join != tt.join {
+			t.Errorf("JoinHostPort(%q, %q) = %q; want %q", tt.host, tt.port, join, tt.join)
 		}
 	}
 }
 
-var ipaftests = []struct {
+var ipAddrFamilyTests = []struct {
 	in  IP
 	af4 bool
 	af6 bool
@@ -310,7 +347,7 @@
 }
 
 func TestIPAddrFamily(t *testing.T) {
-	for _, tt := range ipaftests {
+	for _, tt := range ipAddrFamilyTests {
 		if af := tt.in.To4() != nil; af != tt.af4 {
 			t.Errorf("verifying IPv4 address family for %q = %v, want %v", tt.in, af, tt.af4)
 		}
@@ -320,7 +357,7 @@
 	}
 }
 
-var ipscopetests = []struct {
+var ipAddrScopeTests = []struct {
 	scope func(IP) bool
 	in    IP
 	ok    bool
@@ -361,7 +398,7 @@
 }
 
 func TestIPAddrScope(t *testing.T) {
-	for _, tt := range ipscopetests {
+	for _, tt := range ipAddrScopeTests {
 		if ok := tt.scope(tt.in); ok != tt.ok {
 			t.Errorf("%s(%q) = %v, want %v", name(tt.scope), tt.in, ok, tt.ok)
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipraw_test.go gcc-4.8.1/libgo/go/net/ipraw_test.go
--- gcc-4.8.1.orig/libgo/go/net/ipraw_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/ipraw_test.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,32 +2,36 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !plan9
-
 package net
 
 import (
 	"bytes"
+	"errors"
+	"fmt"
 	"os"
 	"reflect"
-	"syscall"
 	"testing"
 	"time"
 )
 
-var resolveIPAddrTests = []struct {
+type resolveIPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *IPAddr
 	err     error
-}{
+}
+
+var resolveIPAddrTests = []resolveIPAddrTest{
 	{"ip", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 	{"ip4", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 	{"ip4:icmp", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 
 	{"ip", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
 	{"ip6", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
-	{"ip6:icmp", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
+	{"ip6:ipv6-icmp", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
+
+	{"ip", "::1%en0", &IPAddr{IP: ParseIP("::1"), Zone: "en0"}, nil},
+	{"ip6", "::1%911", &IPAddr{IP: ParseIP("::1"), Zone: "911"}, nil},
 
 	{"", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil}, // Go 1.0 behavior
 	{"", "::1", &IPAddr{IP: ParseIP("::1")}, nil},           // Go 1.0 behavior
@@ -37,208 +41,290 @@
 	{"tcp", "1.2.3.4:123", nil, UnknownNetworkError("tcp")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveIPAddrTests = append(resolveIPAddrTests, []resolveIPAddrTest{
+			{"ip6", "fe80::1%" + ifi.Name, &IPAddr{IP: ParseIP("fe80::1"), Zone: zoneToString(ifi.Index)}, nil},
+			{"ip6", "fe80::1%" + index, &IPAddr{IP: ParseIP("fe80::1"), Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveIPAddr(t *testing.T) {
 	for _, tt := range resolveIPAddrTests {
 		addr, err := ResolveIPAddr(tt.net, tt.litAddr)
 		if err != tt.err {
-			t.Fatalf("ResolveIPAddr(%v, %v) failed: %v", tt.net, tt.litAddr, err)
-		}
-		if !reflect.DeepEqual(addr, tt.addr) {
+			condFatalf(t, "ResolveIPAddr(%v, %v) failed: %v", tt.net, tt.litAddr, err)
+		} else if !reflect.DeepEqual(addr, tt.addr) {
 			t.Fatalf("got %#v; expected %#v", addr, tt.addr)
 		}
 	}
 }
 
-var icmpTests = []struct {
+var icmpEchoTests = []struct {
 	net   string
 	laddr string
 	raddr string
-	ipv6  bool // test with underlying AF_INET6 socket
 }{
-	{"ip4:icmp", "", "127.0.0.1", false},
-	{"ip6:ipv6-icmp", "", "::1", true},
+	{"ip4:icmp", "0.0.0.0", "127.0.0.1"},
+	{"ip6:ipv6-icmp", "::", "::1"},
 }
 
-func TestICMP(t *testing.T) {
+func TestConnICMPEcho(t *testing.T) {
 	if os.Getuid() != 0 {
 		t.Skip("skipping test; must be root")
 	}
 
-	seqnum := 61455
-	for _, tt := range icmpTests {
-		if tt.ipv6 && !supportsIPv6 {
+	for i, tt := range icmpEchoTests {
+		net, _, err := parseNetwork(tt.net)
+		if err != nil {
+			t.Fatalf("parseNetwork failed: %v", err)
+		}
+		if net == "ip6" && !supportsIPv6 {
 			continue
 		}
-		id := os.Getpid() & 0xffff
-		seqnum++
-		echo := newICMPEchoRequest(tt.net, id, seqnum, 128, []byte("Go Go Gadget Ping!!!"))
-		exchangeICMPEcho(t, tt.net, tt.laddr, tt.raddr, echo)
-	}
-}
-
-func exchangeICMPEcho(t *testing.T, net, laddr, raddr string, echo []byte) {
-	c, err := ListenPacket(net, laddr)
-	if err != nil {
-		t.Errorf("ListenPacket(%q, %q) failed: %v", net, laddr, err)
-		return
-	}
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
 
-	ra, err := ResolveIPAddr(net, raddr)
-	if err != nil {
-		t.Errorf("ResolveIPAddr(%q, %q) failed: %v", net, raddr, err)
-		return
-	}
-
-	waitForReady := make(chan bool)
-	go icmpEchoTransponder(t, net, raddr, waitForReady)
-	<-waitForReady
-
-	_, err = c.WriteTo(echo, ra)
-	if err != nil {
-		t.Errorf("WriteTo failed: %v", err)
-		return
-	}
+		c, err := Dial(tt.net, tt.raddr)
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+		defer c.Close()
 
-	reply := make([]byte, 256)
-	for {
-		_, _, err := c.ReadFrom(reply)
+		typ := icmpv4EchoRequest
+		if net == "ip6" {
+			typ = icmpv6EchoRequest
+		}
+		xid, xseq := os.Getpid()&0xffff, i+1
+		b, err := (&icmpMessage{
+			Type: typ, Code: 0,
+			Body: &icmpEcho{
+				ID: xid, Seq: xseq,
+				Data: bytes.Repeat([]byte("Go Go Gadget Ping!!!"), 3),
+			},
+		}).Marshal()
 		if err != nil {
-			t.Errorf("ReadFrom failed: %v", err)
-			return
+			t.Fatalf("icmpMessage.Marshal failed: %v", err)
 		}
-		switch c.(*IPConn).fd.family {
-		case syscall.AF_INET:
-			if reply[0] != ICMP4_ECHO_REPLY {
-				continue
+		if _, err := c.Write(b); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		var m *icmpMessage
+		for {
+			if _, err := c.Read(b); err != nil {
+				t.Fatalf("Conn.Read failed: %v", err)
+			}
+			if net == "ip4" {
+				b = ipv4Payload(b)
+			}
+			if m, err = parseICMPMessage(b); err != nil {
+				t.Fatalf("parseICMPMessage failed: %v", err)
 			}
-		case syscall.AF_INET6:
-			if reply[0] != ICMP6_ECHO_REPLY {
+			switch m.Type {
+			case icmpv4EchoRequest, icmpv6EchoRequest:
 				continue
 			}
+			break
 		}
-		xid, xseqnum := parseICMPEchoReply(echo)
-		rid, rseqnum := parseICMPEchoReply(reply)
-		if rid != xid || rseqnum != xseqnum {
-			t.Errorf("ID = %v, Seqnum = %v, want ID = %v, Seqnum = %v", rid, rseqnum, xid, xseqnum)
-			return
+		switch p := m.Body.(type) {
+		case *icmpEcho:
+			if p.ID != xid || p.Seq != xseq {
+				t.Fatalf("got id=%v, seqnum=%v; expected id=%v, seqnum=%v", p.ID, p.Seq, xid, xseq)
+			}
+		default:
+			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, typ, 0)
 		}
-		break
 	}
 }
 
-func icmpEchoTransponder(t *testing.T, net, raddr string, waitForReady chan bool) {
-	c, err := Dial(net, raddr)
-	if err != nil {
-		waitForReady <- true
-		t.Errorf("Dial(%q, %q) failed: %v", net, raddr, err)
-		return
+func TestPacketConnICMPEcho(t *testing.T) {
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
 	}
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
-	waitForReady <- true
 
-	echo := make([]byte, 256)
-	var nr int
-	for {
-		nr, err = c.Read(echo)
+	for i, tt := range icmpEchoTests {
+		net, _, err := parseNetwork(tt.net)
 		if err != nil {
-			t.Errorf("Read failed: %v", err)
-			return
+			t.Fatalf("parseNetwork failed: %v", err)
 		}
-		switch c.(*IPConn).fd.family {
-		case syscall.AF_INET:
-			if echo[0] != ICMP4_ECHO_REQUEST {
-				continue
+		if net == "ip6" && !supportsIPv6 {
+			continue
+		}
+
+		c, err := ListenPacket(tt.net, tt.laddr)
+		if err != nil {
+			t.Fatalf("ListenPacket failed: %v", err)
+		}
+		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+		defer c.Close()
+
+		ra, err := ResolveIPAddr(tt.net, tt.raddr)
+		if err != nil {
+			t.Fatalf("ResolveIPAddr failed: %v", err)
+		}
+		typ := icmpv4EchoRequest
+		if net == "ip6" {
+			typ = icmpv6EchoRequest
+		}
+		xid, xseq := os.Getpid()&0xffff, i+1
+		b, err := (&icmpMessage{
+			Type: typ, Code: 0,
+			Body: &icmpEcho{
+				ID: xid, Seq: xseq,
+				Data: bytes.Repeat([]byte("Go Go Gadget Ping!!!"), 3),
+			},
+		}).Marshal()
+		if err != nil {
+			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+		}
+		if _, err := c.WriteTo(b, ra); err != nil {
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
+		}
+		var m *icmpMessage
+		for {
+			if _, _, err := c.ReadFrom(b); err != nil {
+				t.Fatalf("PacketConn.ReadFrom failed: %v", err)
+			}
+			// TODO: fix issue 3944
+			//if net == "ip4" {
+			//	b = ipv4Payload(b)
+			//}
+			if m, err = parseICMPMessage(b); err != nil {
+				t.Fatalf("parseICMPMessage failed: %v", err)
 			}
-		case syscall.AF_INET6:
-			if echo[0] != ICMP6_ECHO_REQUEST {
+			switch m.Type {
+			case icmpv4EchoRequest, icmpv6EchoRequest:
 				continue
 			}
+			break
+		}
+		switch p := m.Body.(type) {
+		case *icmpEcho:
+			if p.ID != xid || p.Seq != xseq {
+				t.Fatalf("got id=%v, seqnum=%v; expected id=%v, seqnum=%v", p.ID, p.Seq, xid, xseq)
+			}
+		default:
+			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, typ, 0)
 		}
-		break
-	}
-
-	switch c.(*IPConn).fd.family {
-	case syscall.AF_INET:
-		echo[0] = ICMP4_ECHO_REPLY
-	case syscall.AF_INET6:
-		echo[0] = ICMP6_ECHO_REPLY
 	}
+}
 
-	_, err = c.Write(echo[:nr])
-	if err != nil {
-		t.Errorf("Write failed: %v", err)
-		return
+func ipv4Payload(b []byte) []byte {
+	if len(b) < 20 {
+		return b
 	}
+	hdrlen := int(b[0]&0x0f) << 2
+	return b[hdrlen:]
 }
 
 const (
-	ICMP4_ECHO_REQUEST = 8
-	ICMP4_ECHO_REPLY   = 0
-	ICMP6_ECHO_REQUEST = 128
-	ICMP6_ECHO_REPLY   = 129
+	icmpv4EchoRequest = 8
+	icmpv4EchoReply   = 0
+	icmpv6EchoRequest = 128
+	icmpv6EchoReply   = 129
 )
 
-func newICMPEchoRequest(net string, id, seqnum, msglen int, filler []byte) []byte {
-	afnet, _, _ := parseDialNetwork(net)
-	switch afnet {
-	case "ip4":
-		return newICMPv4EchoRequest(id, seqnum, msglen, filler)
-	case "ip6":
-		return newICMPv6EchoRequest(id, seqnum, msglen, filler)
-	}
-	return nil
-}
-
-func newICMPv4EchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = ICMP4_ECHO_REQUEST
-
-	// calculate ICMP checksum
-	cklen := len(b)
+// icmpMessage represents an ICMP message.
+type icmpMessage struct {
+	Type     int             // type
+	Code     int             // code
+	Checksum int             // checksum
+	Body     icmpMessageBody // body
+}
+
+// icmpMessageBody represents an ICMP message body.
+type icmpMessageBody interface {
+	Len() int
+	Marshal() ([]byte, error)
+}
+
+// Marshal returns the binary enconding of the ICMP echo request or
+// reply message m.
+func (m *icmpMessage) Marshal() ([]byte, error) {
+	b := []byte{byte(m.Type), byte(m.Code), 0, 0}
+	if m.Body != nil && m.Body.Len() != 0 {
+		mb, err := m.Body.Marshal()
+		if err != nil {
+			return nil, err
+		}
+		b = append(b, mb...)
+	}
+	switch m.Type {
+	case icmpv6EchoRequest, icmpv6EchoReply:
+		return b, nil
+	}
+	csumcv := len(b) - 1 // checksum coverage
 	s := uint32(0)
-	for i := 0; i < cklen-1; i += 2 {
+	for i := 0; i < csumcv; i += 2 {
 		s += uint32(b[i+1])<<8 | uint32(b[i])
 	}
-	if cklen&1 == 1 {
-		s += uint32(b[cklen-1])
+	if csumcv&1 == 0 {
+		s += uint32(b[csumcv])
+	}
+	s = s>>16 + s&0xffff
+	s = s + s>>16
+	// Place checksum back in header; using ^= avoids the
+	// assumption the checksum bytes are zero.
+	b[2] ^= byte(^s & 0xff)
+	b[3] ^= byte(^s >> 8)
+	return b, nil
+}
+
+// parseICMPMessage parses b as an ICMP message.
+func parseICMPMessage(b []byte) (*icmpMessage, error) {
+	msglen := len(b)
+	if msglen < 4 {
+		return nil, errors.New("message too short")
+	}
+	m := &icmpMessage{Type: int(b[0]), Code: int(b[1]), Checksum: int(b[2])<<8 | int(b[3])}
+	if msglen > 4 {
+		var err error
+		switch m.Type {
+		case icmpv4EchoRequest, icmpv4EchoReply, icmpv6EchoRequest, icmpv6EchoReply:
+			m.Body, err = parseICMPEcho(b[4:])
+			if err != nil {
+				return nil, err
+			}
+		}
+	}
+	return m, nil
+}
+
+// imcpEcho represenets an ICMP echo request or reply message body.
+type icmpEcho struct {
+	ID   int    // identifier
+	Seq  int    // sequence number
+	Data []byte // data
+}
+
+func (p *icmpEcho) Len() int {
+	if p == nil {
+		return 0
+	}
+	return 4 + len(p.Data)
+}
+
+// Marshal returns the binary enconding of the ICMP echo request or
+// reply message body p.
+func (p *icmpEcho) Marshal() ([]byte, error) {
+	b := make([]byte, 4+len(p.Data))
+	b[0], b[1] = byte(p.ID>>8), byte(p.ID&0xff)
+	b[2], b[3] = byte(p.Seq>>8), byte(p.Seq&0xff)
+	copy(b[4:], p.Data)
+	return b, nil
+}
+
+// parseICMPEcho parses b as an ICMP echo request or reply message
+// body.
+func parseICMPEcho(b []byte) (*icmpEcho, error) {
+	bodylen := len(b)
+	p := &icmpEcho{ID: int(b[0])<<8 | int(b[1]), Seq: int(b[2])<<8 | int(b[3])}
+	if bodylen > 4 {
+		p.Data = make([]byte, bodylen-4)
+		copy(p.Data, b[4:])
 	}
-	s = (s >> 16) + (s & 0xffff)
-	s = s + (s >> 16)
-	// place checksum back in header; using ^= avoids the
-	// assumption the checksum bytes are zero
-	b[2] ^= uint8(^s & 0xff)
-	b[3] ^= uint8(^s >> 8)
-
-	return b
-}
-
-func newICMPv6EchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = ICMP6_ECHO_REQUEST
-	return b
-}
-
-func newICMPInfoMessage(id, seqnum, msglen int, filler []byte) []byte {
-	b := make([]byte, msglen)
-	copy(b[8:], bytes.Repeat(filler, (msglen-8)/len(filler)+1))
-	b[0] = 0                    // type
-	b[1] = 0                    // code
-	b[2] = 0                    // checksum
-	b[3] = 0                    // checksum
-	b[4] = uint8(id >> 8)       // identifier
-	b[5] = uint8(id & 0xff)     // identifier
-	b[6] = uint8(seqnum >> 8)   // sequence number
-	b[7] = uint8(seqnum & 0xff) // sequence number
-	return b
-}
-
-func parseICMPEchoReply(b []byte) (id, seqnum int) {
-	id = int(b[4])<<8 | int(b[5])
-	seqnum = int(b[6])<<8 | int(b[7])
-	return
+	return p, nil
 }
 
 var ipConnLocalNameTests = []struct {
@@ -258,14 +344,27 @@
 	for _, tt := range ipConnLocalNameTests {
 		c, err := ListenIP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenIP failed: %v", err)
-			return
+			t.Fatalf("ListenIP failed: %v", err)
 		}
 		defer c.Close()
-		la := c.LocalAddr()
-		if la == nil {
-			t.Error("IPConn.LocalAddr failed")
-			return
+		if la := c.LocalAddr(); la == nil {
+			t.Fatal("IPConn.LocalAddr failed")
 		}
 	}
 }
+
+func TestIPConnRemoteName(t *testing.T) {
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
+	}
+
+	raddr := &IPAddr{IP: IPv4(127, 0, 0, 10).To4()}
+	c, err := DialIP("ip:tcp", &IPAddr{IP: IPv4(127, 0, 0, 1)}, raddr)
+	if err != nil {
+		t.Fatalf("DialIP failed: %v", err)
+	}
+	defer c.Close()
+	if !reflect.DeepEqual(raddr, c.RemoteAddr()) {
+		t.Fatalf("got %#v, expected %#v", c.RemoteAddr(), raddr)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock.go gcc-4.8.1/libgo/go/net/iprawsock.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/iprawsock.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Raw IP sockets
-
 package net
 
 // IPAddr represents the address of an IP end point.
@@ -19,17 +17,20 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return a.IP.String() + "%" + a.Zone
+	}
 	return a.IP.String()
 }
 
-// ResolveIPAddr parses addr as an IP address and resolves domain
-// names to numeric addresses on the network net, which must be
-// "ip", "ip4" or "ip6".
+// ResolveIPAddr parses addr as an IP address of the form "host" or
+// "ipv6-host%zone" and resolves the domain name on the network net,
+// which must be "ip", "ip4" or "ip6".
 func ResolveIPAddr(net, addr string) (*IPAddr, error) {
 	if net == "" { // a hint wildcard for Go 1.0 undocumented behavior
 		net = "ip"
 	}
-	afnet, _, err := parseDialNetwork(net)
+	afnet, _, err := parseNetwork(net)
 	if err != nil {
 		return nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go gcc-4.8.1/libgo/go/net/iprawsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/iprawsock_plan9.go	2013-10-01 16:06:44.180554280 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Raw IP sockets for Plan 9
-
 package net
 
 import (
@@ -34,7 +32,7 @@
 }
 
 // ReadMsgIP reads a packet from c, copying the payload into b and the
-// associdated out-of-band data into oob.  It returns the number of
+// associated out-of-band data into oob.  It returns the number of
 // bytes copied into b, the number of bytes copied into oob, the flags
 // that were set on the packet and the source address of the packet.
 func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error) {
@@ -76,7 +74,7 @@
 }
 
 // ListenIP listens for incoming IP packets addressed to the local
-// address laddr.  The returned connection c's ReadFrom and WriteTo
+// address laddr.  The returned connection's ReadFrom and WriteTo
 // methods can be used to receive and send IP packets with per-packet
 // addressing.
 func ListenIP(netProto string, laddr *IPAddr) (*IPConn, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go gcc-4.8.1/libgo/go/net/iprawsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/iprawsock_posix.go	2013-10-01 16:06:44.180554280 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Raw IP sockets for POSIX
-
 package net
 
 import (
@@ -51,8 +49,8 @@
 	return a
 }
 
-// IPConn is the implementation of the Conn and PacketConn
-// interfaces for IP network connections.
+// IPConn is the implementation of the Conn and PacketConn interfaces
+// for IP network connections.
 type IPConn struct {
 	conn
 }
@@ -98,7 +96,7 @@
 }
 
 // ReadMsgIP reads a packet from c, copying the payload into b and the
-// associdated out-of-band data into oob.  It returns the number of
+// associated out-of-band data into oob.  It returns the number of
 // bytes copied into b, the number of bytes copied into oob, the flags
 // that were set on the packet and the source address of the packet.
 func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error) {
@@ -116,12 +114,13 @@
 	return
 }
 
-// WriteToIP writes an IP packet to addr via c, copying the payload from b.
+// WriteToIP writes an IP packet to addr via c, copying the payload
+// from b.
 //
-// WriteToIP can be made to time out and return
-// an error with Timeout() == true after a fixed time limit;
-// see SetDeadline and SetWriteDeadline.
-// On packet-oriented connections, write timeouts are rare.
+// WriteToIP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetWriteDeadline.  On packet-oriented connections, write timeouts
+// are rare.
 func (c *IPConn) WriteToIP(b []byte, addr *IPAddr) (int, error) {
 	if !c.ok() {
 		return 0, syscall.EINVAL
@@ -159,14 +158,15 @@
 	return c.fd.WriteMsg(b, oob, sa)
 }
 
-// DialIP connects to the remote address raddr on the network protocol netProto,
-// which must be "ip", "ip4", or "ip6" followed by a colon and a protocol number or name.
+// DialIP connects to the remote address raddr on the network protocol
+// netProto, which must be "ip", "ip4", or "ip6" followed by a colon
+// and a protocol number or name.
 func DialIP(netProto string, laddr, raddr *IPAddr) (*IPConn, error) {
 	return dialIP(netProto, laddr, raddr, noDeadline)
 }
 
 func dialIP(netProto string, laddr, raddr *IPAddr, deadline time.Time) (*IPConn, error) {
-	net, proto, err := parseDialNetwork(netProto)
+	net, proto, err := parseNetwork(netProto)
 	if err != nil {
 		return nil, err
 	}
@@ -185,12 +185,12 @@
 	return newIPConn(fd), nil
 }
 
-// ListenIP listens for incoming IP packets addressed to the
-// local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send IP
-// packets with per-packet addressing.
+// ListenIP listens for incoming IP packets addressed to the local
+// address laddr.  The returned connection's ReadFrom and WriteTo
+// methods can be used to receive and send IP packets with per-packet
+// addressing.
 func ListenIP(netProto string, laddr *IPAddr) (*IPConn, error) {
-	net, proto, err := parseDialNetwork(netProto)
+	net, proto, err := parseNetwork(netProto)
 	if err != nil {
 		return nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock.go gcc-4.8.1/libgo/go/net/ipsock.go
--- gcc-4.8.1.orig/libgo/go/net/ipsock.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/ipsock.go	2013-10-01 16:06:44.180554280 +0000
@@ -68,40 +68,94 @@
 func (e InvalidAddrError) Timeout() bool   { return false }
 func (e InvalidAddrError) Temporary() bool { return false }
 
-// SplitHostPort splits a network address of the form
-// "host:port" or "[host]:port" into host and port.
-// The latter form must be used when host contains a colon.
+// SplitHostPort splits a network address of the form "host:port",
+// "[host]:port" or "[ipv6-host%zone]:port" into host or
+// ipv6-host%zone and port.  A literal address or host name for IPv6
+// must be enclosed in square brackets, as in "[::1]:80",
+// "[ipv6-host]:http" or "[ipv6-host%zone]:80".
 func SplitHostPort(hostport string) (host, port string, err error) {
-	host, port, _, err = splitHostPort(hostport)
-	return
-}
+	j, k := 0, 0
 
-func splitHostPort(hostport string) (host, port, zone string, err error) {
 	// The port starts after the last colon.
 	i := last(hostport, ':')
 	if i < 0 {
-		err = &AddrError{"missing port in address", hostport}
-		return
+		goto missingPort
 	}
-	host, port = hostport[:i], hostport[i+1:]
-	// Can put brackets around host ...
-	if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' {
-		host = host[1 : len(host)-1]
+
+	if hostport[0] == '[' {
+		// Expect the first ']' just before the last ':'.
+		end := byteIndex(hostport, ']')
+		if end < 0 {
+			err = &AddrError{"missing ']' in address", hostport}
+			return
+		}
+		switch end + 1 {
+		case len(hostport):
+			// There can't be a ':' behind the ']' now.
+			goto missingPort
+		case i:
+			// The expected result.
+		default:
+			// Either ']' isn't followed by a colon, or it is
+			// followed by a colon that is not the last one.
+			if hostport[end+1] == ':' {
+				goto tooManyColons
+			}
+			goto missingPort
+		}
+		host = hostport[1:end]
+		j, k = 1, end+1 // there can't be a '[' resp. ']' before these positions
 	} else {
-		// ... but if there are no brackets, no colons.
+		host = hostport[:i]
 		if byteIndex(host, ':') >= 0 {
-			err = &AddrError{"too many colons in address", hostport}
-			return
+			goto tooManyColons
 		}
+		if byteIndex(host, '%') >= 0 {
+			goto missingBrackets
+		}
+	}
+	if byteIndex(hostport[j:], '[') >= 0 {
+		err = &AddrError{"unexpected '[' in address", hostport}
+		return
+	}
+	if byteIndex(hostport[k:], ']') >= 0 {
+		err = &AddrError{"unexpected ']' in address", hostport}
+		return
+	}
+
+	port = hostport[i+1:]
+	return
+
+missingPort:
+	err = &AddrError{"missing port in address", hostport}
+	return
+
+tooManyColons:
+	err = &AddrError{"too many colons in address", hostport}
+	return
+
+missingBrackets:
+	err = &AddrError{"missing brackets in address", hostport}
+	return
+}
+
+func splitHostZone(s string) (host, zone string) {
+	// The IPv6 scoped addressing zone identifer starts after the
+	// last percent sign.
+	if i := last(s, '%'); i > 0 {
+		host, zone = s[:i], s[i+1:]
+	} else {
+		host = s
 	}
 	return
 }
 
-// JoinHostPort combines host and port into a network address
-// of the form "host:port" or, if host contains a colon, "[host]:port".
+// JoinHostPort combines host and port into a network address of the
+// form "host:port" or, if host contains a colon or a percent sign,
+// "[host]:port".
 func JoinHostPort(host, port string) string {
-	// If host has colons, have to bracket it.
-	if byteIndex(host, ':') >= 0 {
+	// If host has colons or a percent sign, have to bracket it.
+	if byteIndex(host, ':') >= 0 || byteIndex(host, '%') >= 0 {
 		return "[" + host + "]:" + port
 	}
 	return host + ":" + port
@@ -116,7 +170,7 @@
 	switch net {
 	case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6":
 		if addr != "" {
-			if host, port, zone, err = splitHostPort(addr); err != nil {
+			if host, port, err = SplitHostPort(addr); err != nil {
 				return nil, err
 			}
 			if portnum, err = parsePort(net, port); err != nil {
@@ -145,21 +199,25 @@
 		return inetaddr(net, nil, portnum, zone), nil
 	}
 	// Try as an IP address.
-	if ip := ParseIP(host); ip != nil {
+	if ip := parseIPv4(host); ip != nil {
+		return inetaddr(net, ip, portnum, zone), nil
+	}
+	if ip, zone := parseIPv6(host, true); ip != nil {
 		return inetaddr(net, ip, portnum, zone), nil
 	}
+	// Try as a domain name.
+	host, zone = splitHostZone(host)
+	addrs, err := lookupHostDeadline(host, deadline)
+	if err != nil {
+		return nil, err
+	}
 	var filter func(IP) IP
 	if net != "" && net[len(net)-1] == '4' {
 		filter = ipv4only
 	}
-	if net != "" && net[len(net)-1] == '6' {
+	if net != "" && net[len(net)-1] == '6' || zone != "" {
 		filter = ipv6only
 	}
-	// Try as a DNS name.
-	addrs, err := lookupHostDeadline(host, deadline)
-	if err != nil {
-		return nil, err
-	}
 	ip := firstFavoriteAddr(filter, addrs)
 	if ip == nil {
 		// should not happen
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go gcc-4.8.1/libgo/go/net/ipsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/ipsock_plan9.go	2013-10-01 16:06:44.180554280 +0000
@@ -9,6 +9,7 @@
 import (
 	"errors"
 	"os"
+	"syscall"
 )
 
 // /sys/include/ape/sys/socket.h:/SOMAXCONN
@@ -104,72 +105,89 @@
 	return f, dest, proto, string(buf[:n]), nil
 }
 
-func dialPlan9(net string, laddr, raddr Addr) (*netFD, error) {
+func netErr(e error) {
+	oe, ok := e.(*OpError)
+	if !ok {
+		return
+	}
+	if pe, ok := oe.Err.(*os.PathError); ok {
+		if _, ok = pe.Err.(syscall.ErrorString); ok {
+			oe.Err = pe.Err
+		}
+	}
+}
+
+func dialPlan9(net string, laddr, raddr Addr) (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, dest, proto, name, err := startPlan9(net, raddr)
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"dial", net, raddr, err}
 	}
 	_, err = f.WriteString("connect " + dest)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", f.Name(), raddr, err}
 	}
-	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
+	data, err := os.OpenFile("/net/"+proto+"/"+name+"/data", os.O_RDWR, 0)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", net, raddr, err}
 	}
-	raddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/remote")
+	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
 	if err != nil {
+		data.Close()
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", proto, raddr, err}
 	}
-	return newFD(proto, name, f, laddr, raddr), nil
+	return newFD(proto, name, f, data, laddr, raddr), nil
 }
 
-func listenPlan9(net string, laddr Addr) (*netFD, error) {
+func listenPlan9(net string, laddr Addr) (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, dest, proto, name, err := startPlan9(net, laddr)
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"listen", net, laddr, err}
 	}
 	_, err = f.WriteString("announce " + dest)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"announce", proto, laddr, err}
 	}
 	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{Op: "listen", Net: net, Err: err}
 	}
-	return &netFD{proto: proto, name: name, dir: "/net/" + proto + "/" + name, ctl: f, laddr: laddr}, nil
+	return newFD(proto, name, f, nil, laddr, nil), nil
 }
 
 func (l *netFD) netFD() *netFD {
-	return newFD(l.proto, l.name, l.ctl, l.laddr, nil)
+	return newFD(l.proto, l.name, l.ctl, l.data, l.laddr, l.raddr)
 }
 
-func (l *netFD) acceptPlan9() (*netFD, error) {
+func (l *netFD) acceptPlan9() (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, err := os.Open(l.dir + "/listen")
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"accept", l.dir + "/listen", l.laddr, err}
 	}
 	var buf [16]byte
 	n, err := f.Read(buf[:])
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.dir + "/listen", l.laddr, err}
 	}
 	name := string(buf[:n])
-	laddr, err := readPlan9Addr(l.proto, l.dir+"/local")
+	data, err := os.OpenFile("/net/"+l.proto+"/"+name+"/data", os.O_RDWR, 0)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.proto, l.laddr, err}
 	}
-	raddr, err := readPlan9Addr(l.proto, l.dir+"/remote")
+	raddr, err := readPlan9Addr(l.proto, "/net/"+l.proto+"/"+name+"/remote")
 	if err != nil {
+		data.Close()
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.proto, l.laddr, err}
 	}
-	return newFD(l.proto, name, f, laddr, raddr), nil
+	return newFD(l.proto, name, f, data, l.laddr, raddr), nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go gcc-4.8.1/libgo/go/net/lookup_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/lookup_plan9.go	2013-10-01 16:06:44.184554280 +0000
@@ -7,7 +7,6 @@
 import (
 	"errors"
 	"os"
-	"syscall"
 )
 
 func query(filename, query string, bufSize int) (res []string, err error) {
@@ -70,9 +69,26 @@
 	return query("/net/dns", addr+" "+typ, 1024)
 }
 
+// lookupProtocol looks up IP protocol name and returns
+// the corresponding protocol number.
 func lookupProtocol(name string) (proto int, err error) {
-	// TODO: Implement this
-	return 0, syscall.EPLAN9
+	lines, err := query("/net/cs", "!protocol="+name, 128)
+	if err != nil {
+		return 0, err
+	}
+	unknownProtoError := errors.New("unknown IP protocol specified: " + name)
+	if len(lines) == 0 {
+		return 0, unknownProtoError
+	}
+	f := getFields(lines[0])
+	if len(f) < 2 {
+		return 0, unknownProtoError
+	}
+	s := f[1]
+	if n, _, ok := dtoi(s, byteIndex(s, '=')+1); ok {
+		return n, nil
+	}
+	return 0, unknownProtoError
 }
 
 func lookupHost(host string) (addrs []string, err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_windows.go gcc-4.8.1/libgo/go/net/lookup_windows.go
--- gcc-4.8.1.orig/libgo/go/net/lookup_windows.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/lookup_windows.go	2013-10-01 16:06:44.184554280 +0000
@@ -6,21 +6,17 @@
 
 import (
 	"os"
-	"sync"
+	"runtime"
 	"syscall"
 	"unsafe"
 )
 
 var (
-	protoentLock sync.Mutex
-	hostentLock  sync.Mutex
-	serventLock  sync.Mutex
+	lookupPort = oldLookupPort
+	lookupIP   = oldLookupIP
 )
 
-// lookupProtocol looks up IP protocol name and returns correspondent protocol number.
-func lookupProtocol(name string) (proto int, err error) {
-	protoentLock.Lock()
-	defer protoentLock.Unlock()
+func getprotobyname(name string) (proto int, err error) {
 	p, err := syscall.GetProtoByName(name)
 	if err != nil {
 		return 0, os.NewSyscallError("GetProtoByName", err)
@@ -28,6 +24,25 @@
 	return int(p.Proto), nil
 }
 
+// lookupProtocol looks up IP protocol name and returns correspondent protocol number.
+func lookupProtocol(name string) (proto int, err error) {
+	// GetProtoByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		proto int
+		err   error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		proto, err := getprotobyname(name)
+		ch <- result{proto: proto, err: err}
+	}()
+	r := <-ch
+	return r.proto, r.err
+}
+
 func lookupHost(name string) (addrs []string, err error) {
 	ips, err := LookupIP(name)
 	if err != nil {
@@ -40,11 +55,7 @@
 	return
 }
 
-var lookupIP = oldLookupIP
-
-func oldLookupIP(name string) (addrs []IP, err error) {
-	hostentLock.Lock()
-	defer hostentLock.Unlock()
+func gethostbyname(name string) (addrs []IP, err error) {
 	h, err := syscall.GetHostByName(name)
 	if err != nil {
 		return nil, os.NewSyscallError("GetHostByName", err)
@@ -63,6 +74,24 @@
 	return addrs, nil
 }
 
+func oldLookupIP(name string) (addrs []IP, err error) {
+	// GetHostByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		addrs []IP
+		err   error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		addrs, err := gethostbyname(name)
+		ch <- result{addrs: addrs, err: err}
+	}()
+	r := <-ch
+	return r.addrs, r.err
+}
+
 func newLookupIP(name string) (addrs []IP, err error) {
 	hints := syscall.AddrinfoW{
 		Family:   syscall.AF_UNSPEC,
@@ -92,15 +121,13 @@
 	return addrs, nil
 }
 
-func lookupPort(network, service string) (port int, err error) {
+func getservbyname(network, service string) (port int, err error) {
 	switch network {
 	case "tcp4", "tcp6":
 		network = "tcp"
 	case "udp4", "udp6":
 		network = "udp"
 	}
-	serventLock.Lock()
-	defer serventLock.Unlock()
 	s, err := syscall.GetServByName(service, network)
 	if err != nil {
 		return 0, os.NewSyscallError("GetServByName", err)
@@ -108,6 +135,58 @@
 	return int(syscall.Ntohs(s.Port)), nil
 }
 
+func oldLookupPort(network, service string) (port int, err error) {
+	// GetServByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		port int
+		err  error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		port, err := getservbyname(network, service)
+		ch <- result{port: port, err: err}
+	}()
+	r := <-ch
+	return r.port, r.err
+}
+
+func newLookupPort(network, service string) (port int, err error) {
+	var stype int32
+	switch network {
+	case "tcp4", "tcp6":
+		stype = syscall.SOCK_STREAM
+	case "udp4", "udp6":
+		stype = syscall.SOCK_DGRAM
+	}
+	hints := syscall.AddrinfoW{
+		Family:   syscall.AF_UNSPEC,
+		Socktype: stype,
+		Protocol: syscall.IPPROTO_IP,
+	}
+	var result *syscall.AddrinfoW
+	e := syscall.GetAddrInfoW(nil, syscall.StringToUTF16Ptr(service), &hints, &result)
+	if e != nil {
+		return 0, os.NewSyscallError("GetAddrInfoW", e)
+	}
+	defer syscall.FreeAddrInfoW(result)
+	if result == nil {
+		return 0, os.NewSyscallError("LookupPort", syscall.EINVAL)
+	}
+	addr := unsafe.Pointer(result.Addr)
+	switch result.Family {
+	case syscall.AF_INET:
+		a := (*syscall.RawSockaddrInet4)(addr)
+		return int(syscall.Ntohs(a.Port)), nil
+	case syscall.AF_INET6:
+		a := (*syscall.RawSockaddrInet6)(addr)
+		return int(syscall.Ntohs(a.Port)), nil
+	}
+	return 0, os.NewSyscallError("LookupPort", syscall.EINVAL)
+}
+
 func lookupCNAME(name string) (cname string, err error) {
 	var r *syscall.DNSRecord
 	e := syscall.DnsQuery(name, syscall.DNS_TYPE_CNAME, 0, nil, &r, nil)
diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_posix_test.go gcc-4.8.1/libgo/go/net/multicast_posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/multicast_posix_test.go	2013-02-07 17:04:24.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/multicast_posix_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,180 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !plan9
-
-package net
-
-import (
-	"errors"
-	"os"
-	"runtime"
-	"testing"
-)
-
-var multicastListenerTests = []struct {
-	net   string
-	gaddr *UDPAddr
-	flags Flags
-	ipv6  bool // test with underlying AF_INET6 socket
-}{
-	// cf. RFC 4727: Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers
-
-	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, FlagUp | FlagLoopback, false},
-	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, 0, false},
-	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, 0, true},
-
-	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, FlagUp | FlagLoopback, false},
-	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, 0, false},
-
-	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, 0, true},
-}
-
-// TestMulticastListener tests both single and double listen to a test
-// listener with same address family, same group address and same port.
-func TestMulticastListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "netbsd", "openbsd", "plan9", "solaris", "windows":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	case "linux":
-		if runtime.GOARCH == "arm" || runtime.GOARCH == "alpha" {
-			t.Skipf("skipping test on %q/%q", runtime.GOOS, runtime.GOARCH)
-		}
-	}
-
-	for _, tt := range multicastListenerTests {
-		if tt.ipv6 && (!*testIPv6 || !supportsIPv6 || os.Getuid() != 0) {
-			continue
-		}
-		ifi, err := availMulticastInterface(t, tt.flags)
-		if err != nil {
-			continue
-		}
-		c1, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("First ListenMulticastUDP failed: %v", err)
-		}
-		checkMulticastListener(t, err, c1, tt.gaddr)
-		c2, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("Second ListenMulticastUDP failed: %v", err)
-		}
-		checkMulticastListener(t, err, c2, tt.gaddr)
-		c2.Close()
-		c1.Close()
-	}
-}
-
-func TestSimpleMulticastListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "plan9":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	case "windows":
-		if testing.Short() || !*testExternal {
-			t.Skip("skipping test on windows to avoid firewall")
-		}
-	}
-
-	for _, tt := range multicastListenerTests {
-		if tt.ipv6 {
-			continue
-		}
-		tt.flags = FlagUp | FlagMulticast // for windows testing
-		ifi, err := availMulticastInterface(t, tt.flags)
-		if err != nil {
-			continue
-		}
-		c1, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("First ListenMulticastUDP failed: %v", err)
-		}
-		checkSimpleMulticastListener(t, err, c1, tt.gaddr)
-		c2, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("Second ListenMulticastUDP failed: %v", err)
-		}
-		checkSimpleMulticastListener(t, err, c2, tt.gaddr)
-		c2.Close()
-		c1.Close()
-	}
-}
-
-func checkMulticastListener(t *testing.T, err error, c *UDPConn, gaddr *UDPAddr) {
-	if !multicastRIBContains(t, gaddr.IP) {
-		t.Errorf("%q not found in RIB", gaddr.String())
-		return
-	}
-	la := c.LocalAddr()
-	if la == nil {
-		t.Error("LocalAddr failed")
-		return
-	}
-	if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-		t.Errorf("got %v; expected a proper address with non-zero port number", la)
-		return
-	}
-}
-
-func checkSimpleMulticastListener(t *testing.T, err error, c *UDPConn, gaddr *UDPAddr) {
-	la := c.LocalAddr()
-	if la == nil {
-		t.Error("LocalAddr failed")
-		return
-	}
-	if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-		t.Errorf("got %v; expected a proper address with non-zero port number", la)
-		return
-	}
-}
-
-func availMulticastInterface(t *testing.T, flags Flags) (*Interface, error) {
-	var ifi *Interface
-	if flags != Flags(0) {
-		ift, err := Interfaces()
-		if err != nil {
-			t.Fatalf("Interfaces failed: %v", err)
-		}
-		for _, x := range ift {
-			if x.Flags&flags == flags {
-				ifi = &x
-				break
-			}
-		}
-		if ifi == nil {
-			return nil, errors.New("an appropriate multicast interface not found")
-		}
-	}
-	return ifi, nil
-}
-
-func multicastRIBContains(t *testing.T, ip IP) bool {
-	ift, err := Interfaces()
-	if err != nil {
-		t.Fatalf("Interfaces failed: %v", err)
-	}
-	for _, ifi := range ift {
-		ifmat, err := ifi.MulticastAddrs()
-		if err != nil {
-			t.Fatalf("MulticastAddrs failed: %v", err)
-		}
-		for _, ifma := range ifmat {
-			if ifma.(*IPAddr).IP.Equal(ip) {
-				return true
-			}
-		}
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_test.go gcc-4.8.1/libgo/go/net/multicast_test.go
--- gcc-4.8.1.orig/libgo/go/net/multicast_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/multicast_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -0,0 +1,184 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package net
+
+import (
+	"fmt"
+	"os"
+	"runtime"
+	"testing"
+)
+
+var ipv4MulticastListenerTests = []struct {
+	net   string
+	gaddr *UDPAddr // see RFC 4727
+}{
+	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}},
+
+	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}},
+}
+
+// TestIPv4MulticastListener tests both single and double listen to a
+// test listener with same address family, same group address and same
+// port.
+func TestIPv4MulticastListener(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	closer := func(cs []*UDPConn) {
+		for _, c := range cs {
+			if c != nil {
+				c.Close()
+			}
+		}
+	}
+
+	for _, ifi := range []*Interface{loopbackInterface(), nil} {
+		// Note that multicast interface assignment by system
+		// is not recommended because it usually relies on
+		// routing stuff for finding out an appropriate
+		// nexthop containing both network and link layer
+		// adjacencies.
+		if ifi == nil && !*testExternal {
+			continue
+		}
+		for _, tt := range ipv4MulticastListenerTests {
+			var err error
+			cs := make([]*UDPConn, 2)
+			if cs[0], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				t.Fatalf("First ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[0], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			if cs[1], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				closer(cs)
+				t.Fatalf("Second ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[1], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			closer(cs)
+		}
+	}
+}
+
+var ipv6MulticastListenerTests = []struct {
+	net   string
+	gaddr *UDPAddr // see RFC 4727
+}{
+	{"udp", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}},
+
+	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}},
+}
+
+// TestIPv6MulticastListener tests both single and double listen to a
+// test listener with same address family, same group address and same
+// port.
+func TestIPv6MulticastListener(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9", "solaris":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
+	}
+
+	closer := func(cs []*UDPConn) {
+		for _, c := range cs {
+			if c != nil {
+				c.Close()
+			}
+		}
+	}
+
+	for _, ifi := range []*Interface{loopbackInterface(), nil} {
+		// Note that multicast interface assignment by system
+		// is not recommended because it usually relies on
+		// routing stuff for finding out an appropriate
+		// nexthop containing both network and link layer
+		// adjacencies.
+		if ifi == nil && (!*testExternal || !*testIPv6) {
+			continue
+		}
+		for _, tt := range ipv6MulticastListenerTests {
+			var err error
+			cs := make([]*UDPConn, 2)
+			if cs[0], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				t.Fatalf("First ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[0], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			if cs[1], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				closer(cs)
+				t.Fatalf("Second ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[1], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			closer(cs)
+		}
+	}
+}
+
+func checkMulticastListener(c *UDPConn, ip IP) error {
+	if ok, err := multicastRIBContains(ip); err != nil {
+		return err
+	} else if !ok {
+		return fmt.Errorf("%q not found in multicast RIB", ip.String())
+	}
+	la := c.LocalAddr()
+	if la, ok := la.(*UDPAddr); !ok || la.Port == 0 {
+		return fmt.Errorf("got %v; expected a proper address with non-zero port number", la)
+	}
+	return nil
+}
+
+func multicastRIBContains(ip IP) (bool, error) {
+	switch runtime.GOOS {
+	case "netbsd", "openbsd", "plan9", "solaris", "windows":
+		return true, nil // not implemented yet
+	case "linux":
+		if runtime.GOARCH == "arm" || runtime.GOARCH == "alpha" {
+			return true, nil // not implemented yet
+		}
+	}
+	ift, err := Interfaces()
+	if err != nil {
+		return false, err
+	}
+	for _, ifi := range ift {
+		ifmat, err := ifi.MulticastAddrs()
+		if err != nil {
+			return false, err
+		}
+		for _, ifma := range ifmat {
+			if ifma.(*IPAddr).IP.Equal(ip) {
+				return true, nil
+			}
+		}
+	}
+	return false, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/net.go gcc-4.8.1/libgo/go/net/net.go
--- gcc-4.8.1.orig/libgo/go/net/net.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/net.go	2013-10-01 16:06:44.184554280 +0000
@@ -276,11 +276,23 @@
 
 var errMissingAddress = errors.New("missing address")
 
+// OpError is the error type usually returned by functions in the net
+// package. It describes the operation, network type, and address of
+// an error.
 type OpError struct {
-	Op   string
-	Net  string
+	// Op is the operation which caused the error, such as
+	// "read" or "write".
+	Op string
+
+	// Net is the network type on which this error occurred,
+	// such as "tcp" or "udp6".
+	Net string
+
+	// Addr is the network address on which this error occurred.
 	Addr Addr
-	Err  error
+
+	// Err is the error that occurred during the operation.
+	Err error
 }
 
 func (e *OpError) Error() string {
diff -Naur gcc-4.8.1.orig/libgo/go/net/net_test.go gcc-4.8.1/libgo/go/net/net_test.go
--- gcc-4.8.1.orig/libgo/go/net/net_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/net_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -173,6 +173,10 @@
 }
 
 func TestTCPClose(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
 	l, err := Listen("tcp", "127.0.0.1:0")
 	if err != nil {
 		t.Fatal(err)
diff -Naur gcc-4.8.1.orig/libgo/go/net/newpollserver_unix.go gcc-4.8.1/libgo/go/net/newpollserver_unix.go
--- gcc-4.8.1.orig/libgo/go/net/newpollserver_unix.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/newpollserver_unix.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build darwin freebsd linux netbsd openbsd
-
-package net
-
-import (
-	"os"
-	"syscall"
-)
-
-func newPollServer() (s *pollServer, err error) {
-	s = new(pollServer)
-	if s.pr, s.pw, err = os.Pipe(); err != nil {
-		return nil, err
-	}
-	if err = syscall.SetNonblock(int(s.pr.Fd()), true); err != nil {
-		goto Errno
-	}
-	if err = syscall.SetNonblock(int(s.pw.Fd()), true); err != nil {
-		goto Errno
-	}
-	if s.poll, err = newpollster(); err != nil {
-		goto Error
-	}
-	if _, err = s.poll.AddFD(int(s.pr.Fd()), 'r', true); err != nil {
-		s.poll.Close()
-		goto Error
-	}
-	s.pending = make(map[int]*netFD)
-	go s.Run()
-	return s, nil
-
-Errno:
-	err = &os.PathError{
-		Op:   "setnonblock",
-		Path: s.pr.Name(),
-		Err:  err,
-	}
-Error:
-	s.pr.Close()
-	s.pw.Close()
-	return nil, err
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/packetconn_test.go gcc-4.8.1/libgo/go/net/packetconn_test.go
--- gcc-4.8.1.orig/libgo/go/net/packetconn_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/packetconn_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"net"
 	"os"
 	"runtime"
 	"strings"
@@ -13,18 +15,24 @@
 	"time"
 )
 
+func strfunc(s string) func() string {
+	return func() string {
+		return s
+	}
+}
+
 var packetConnTests = []struct {
 	net   string
-	addr1 string
-	addr2 string
+	addr1 func() string
+	addr2 func() string
 }{
-	{"udp", "127.0.0.1:0", "127.0.0.1:0"},
-	{"ip:icmp", "127.0.0.1", "127.0.0.1"},
-	{"unixgram", "/tmp/gotest.net1", "/tmp/gotest.net2"},
+	{"udp", strfunc("127.0.0.1:0"), strfunc("127.0.0.1:0")},
+	{"ip:icmp", strfunc("127.0.0.1"), strfunc("127.0.0.1")},
+	{"unixgram", testUnixAddr, testUnixAddr},
 }
 
 func TestPacketConn(t *testing.T) {
-	closer := func(c net.PacketConn, net, addr1, addr2 string) {
+	closer := func(c PacketConn, net, addr1, addr2 string) {
 		c.Close()
 		switch net {
 		case "unixgram":
@@ -33,7 +41,7 @@
 		}
 	}
 
-	for _, tt := range packetConnTests {
+	for i, tt := range packetConnTests {
 		var wb []byte
 		netstr := strings.Split(tt.net, ":")
 		switch netstr[0] {
@@ -47,59 +55,76 @@
 			if os.Getuid() != 0 {
 				continue
 			}
-			id := os.Getpid() & 0xffff
-			wb = newICMPEchoRequest(id, 1, 128, []byte("IP PACKETCONN TEST"))
+			var err error
+			wb, err = (&icmpMessage{
+				Type: icmpv4EchoRequest, Code: 0,
+				Body: &icmpEcho{
+					ID: os.Getpid() & 0xffff, Seq: i + 1,
+					Data: []byte("IP PACKETCONN TEST"),
+				},
+			}).Marshal()
+			if err != nil {
+				t.Fatalf("icmpMessage.Marshal failed: %v", err)
+			}
 		case "unixgram":
 			switch runtime.GOOS {
 			case "plan9", "windows":
 				continue
 			}
-			os.Remove(tt.addr1)
-			os.Remove(tt.addr2)
 			wb = []byte("UNIXGRAM PACKETCONN TEST")
 		default:
 			continue
 		}
 
-		c1, err := net.ListenPacket(tt.net, tt.addr1)
+		addr1, addr2 := tt.addr1(), tt.addr2()
+		c1, err := ListenPacket(tt.net, addr1)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c1, netstr[0], addr1, addr2)
 		c1.LocalAddr()
 		c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer closer(c1, netstr[0], tt.addr1, tt.addr2)
 
-		c2, err := net.ListenPacket(tt.net, tt.addr2)
+		c2, err := ListenPacket(tt.net, addr2)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c2, netstr[0], addr1, addr2)
 		c2.LocalAddr()
 		c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer closer(c2, netstr[0], tt.addr1, tt.addr2)
 
 		if _, err := c1.WriteTo(wb, c2.LocalAddr()); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb2 := make([]byte, 128)
 		if _, _, err := c2.ReadFrom(rb2); err != nil {
-			t.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
 		}
 		if _, err := c2.WriteTo(wb, c1.LocalAddr()); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb1 := make([]byte, 128)
 		if _, _, err := c1.ReadFrom(rb1); err != nil {
-			t.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
 		}
 	}
 }
 
 func TestConnAndPacketConn(t *testing.T) {
-	for _, tt := range packetConnTests {
+	closer := func(c PacketConn, net, addr1, addr2 string) {
+		c.Close()
+		switch net {
+		case "unixgram":
+			os.Remove(addr1)
+			os.Remove(addr2)
+		}
+	}
+
+	for i, tt := range packetConnTests {
 		var wb []byte
 		netstr := strings.Split(tt.net, ":")
 		switch netstr[0] {
@@ -113,52 +138,71 @@
 			if os.Getuid() != 0 {
 				continue
 			}
-			id := os.Getpid() & 0xffff
-			wb = newICMPEchoRequest(id, 1, 128, []byte("IP PACKETCONN TEST"))
+			var err error
+			wb, err = (&icmpMessage{
+				Type: icmpv4EchoRequest, Code: 0,
+				Body: &icmpEcho{
+					ID: os.Getpid() & 0xffff, Seq: i + 1,
+					Data: []byte("IP PACKETCONN TEST"),
+				},
+			}).Marshal()
+			if err != nil {
+				t.Fatalf("icmpMessage.Marshal failed: %v", err)
+			}
+		case "unixgram":
+			switch runtime.GOOS {
+			case "plan9", "windows":
+				continue
+			}
+			wb = []byte("UNIXGRAM PACKETCONN TEST")
 		default:
 			continue
 		}
 
-		c1, err := net.ListenPacket(tt.net, tt.addr1)
+		addr1, addr2 := tt.addr1(), tt.addr2()
+		c1, err := ListenPacket(tt.net, addr1)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c1, netstr[0], addr1, addr2)
 		c1.LocalAddr()
 		c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c1.Close()
 
-		c2, err := net.Dial(tt.net, c1.LocalAddr().String())
+		c2, err := Dial(tt.net, c1.LocalAddr().String())
 		if err != nil {
-			t.Fatalf("net.Dial failed: %v", err)
+			t.Fatalf("Dial failed: %v", err)
 		}
+		defer c2.Close()
 		c2.LocalAddr()
 		c2.RemoteAddr()
 		c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c2.Close()
 
 		if _, err := c2.Write(wb); err != nil {
-			t.Fatalf("net.Conn.Write failed: %v", err)
+			t.Fatalf("Conn.Write failed: %v", err)
 		}
 		rb1 := make([]byte, 128)
 		if _, _, err := c1.ReadFrom(rb1); err != nil {
-			t.Fatalf("net.PacetConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacetConn.ReadFrom failed: %v", err)
 		}
-		var dst net.Addr
-		if netstr[0] == "ip" {
-			dst = &net.IPAddr{IP: net.IPv4(127, 0, 0, 1)}
-		} else {
+		var dst Addr
+		switch netstr[0] {
+		case "ip":
+			dst = &IPAddr{IP: IPv4(127, 0, 0, 1)}
+		case "unixgram":
+			continue
+		default:
 			dst = c2.LocalAddr()
 		}
 		if _, err := c1.WriteTo(wb, dst); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb2 := make([]byte, 128)
 		if _, err := c2.Read(rb2); err != nil {
-			t.Fatalf("net.Conn.Read failed: %v", err)
+			t.Fatalf("Conn.Read failed: %v", err)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/port_test.go gcc-4.8.1/libgo/go/net/port_test.go
--- gcc-4.8.1.orig/libgo/go/net/port_test.go	2011-03-07 23:37:12.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/port_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -46,7 +46,7 @@
 	for i := 0; i < len(porttests); i++ {
 		tt := porttests[i]
 		if port, err := LookupPort(tt.netw, tt.name); port != tt.port || (err == nil) != tt.ok {
-			t.Errorf("LookupPort(%q, %q) = %v, %s; want %v",
+			t.Errorf("LookupPort(%q, %q) = %v, %v; want %v",
 				tt.netw, tt.name, port, err, tt.port)
 		}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/protoconn_test.go gcc-4.8.1/libgo/go/net/protoconn_test.go
--- gcc-4.8.1.orig/libgo/go/net/protoconn_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/protoconn_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -2,152 +2,161 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"bytes"
-	"net"
+	"io/ioutil"
 	"os"
 	"runtime"
 	"testing"
 	"time"
 )
 
-var condErrorf = func() func(*testing.T, string, ...interface{}) {
+// testUnixAddr uses ioutil.TempFile to get a name that is unique. It
+// also uses /tmp directory in case it is prohibited to create UNIX
+// sockets in TMPDIR.
+func testUnixAddr() string {
+	f, err := ioutil.TempFile("/tmp", "nettest")
+	if err != nil {
+		panic(err)
+	}
+	addr := f.Name()
+	f.Close()
+	os.Remove(addr)
+	return addr
+}
+
+var condFatalf = func() func(*testing.T, string, ...interface{}) {
 	// A few APIs are not implemented yet on both Plan 9 and Windows.
 	switch runtime.GOOS {
 	case "plan9", "windows":
 		return (*testing.T).Logf
 	}
-	return (*testing.T).Errorf
+	return (*testing.T).Fatalf
 }()
 
 func TestTCPListenerSpecificMethods(t *testing.T) {
-	la, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	la, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveTCPAddr failed: %v", err)
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	ln, err := net.ListenTCP("tcp4", la)
+	ln, err := ListenTCP("tcp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenTCP failed: %v", err)
+		t.Fatalf("ListenTCP failed: %v", err)
 	}
+	defer ln.Close()
 	ln.Addr()
 	ln.SetDeadline(time.Now().Add(30 * time.Nanosecond))
-	defer ln.Close()
 
 	if c, err := ln.Accept(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.Accept failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("TCPListener.Accept failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 	if c, err := ln.AcceptTCP(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("TCPListener.AcceptTCP failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 
 	if f, err := ln.File(); err != nil {
-		condErrorf(t, "net.TCPListener.File failed: %v", err)
-		return
+		condFatalf(t, "TCPListener.File failed: %v", err)
 	} else {
 		f.Close()
 	}
 }
 
 func TestTCPConnSpecificMethods(t *testing.T) {
-	la, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	la, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveTCPAddr failed: %v", err)
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	ln, err := net.ListenTCP("tcp4", la)
+	ln, err := ListenTCP("tcp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenTCP failed: %v", err)
+		t.Fatalf("ListenTCP failed: %v", err)
 	}
-	ln.Addr()
 	defer ln.Close()
+	ln.Addr()
 
 	done := make(chan int)
 	go transponder(t, ln, done)
 
-	ra, err := net.ResolveTCPAddr("tcp4", ln.Addr().String())
+	ra, err := ResolveTCPAddr("tcp4", ln.Addr().String())
 	if err != nil {
-		t.Errorf("net.ResolveTCPAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	c, err := net.DialTCP("tcp4", nil, ra)
+	c, err := DialTCP("tcp4", nil, ra)
 	if err != nil {
-		t.Errorf("net.DialTCP failed: %v", err)
-		return
+		t.Fatalf("DialTCP failed: %v", err)
 	}
+	defer c.Close()
 	c.SetKeepAlive(false)
 	c.SetLinger(0)
 	c.SetNoDelay(false)
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 	if _, err := c.Write([]byte("TCPCONN TEST")); err != nil {
-		t.Errorf("net.TCPConn.Write failed: %v", err)
-		return
+		t.Fatalf("TCPConn.Write failed: %v", err)
 	}
 	rb := make([]byte, 128)
 	if _, err := c.Read(rb); err != nil {
-		t.Errorf("net.TCPConn.Read failed: %v", err)
-		return
+		t.Fatalf("TCPConn.Read failed: %v", err)
 	}
 
 	<-done
 }
 
 func TestUDPConnSpecificMethods(t *testing.T) {
-	la, err := net.ResolveUDPAddr("udp4", "127.0.0.1:0")
+	la, err := ResolveUDPAddr("udp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+		t.Fatalf("ResolveUDPAddr failed: %v", err)
 	}
-	c, err := net.ListenUDP("udp4", la)
+	c, err := ListenUDP("udp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenUDP failed: %v", err)
+		t.Fatalf("ListenUDP failed: %v", err)
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 	c.SetReadBuffer(2048)
 	c.SetWriteBuffer(2048)
-	defer c.Close()
 
 	wb := []byte("UDPCONN TEST")
 	rb := make([]byte, 128)
-	if _, err := c.WriteToUDP(wb, c.LocalAddr().(*net.UDPAddr)); err != nil {
-		t.Errorf("net.UDPConn.WriteToUDP failed: %v", err)
-		return
+	if _, err := c.WriteToUDP(wb, c.LocalAddr().(*UDPAddr)); err != nil {
+		t.Fatalf("UDPConn.WriteToUDP failed: %v", err)
 	}
 	if _, _, err := c.ReadFromUDP(rb); err != nil {
-		t.Errorf("net.UDPConn.ReadFromUDP failed: %v", err)
-		return
+		t.Fatalf("UDPConn.ReadFromUDP failed: %v", err)
 	}
-	if _, _, err := c.WriteMsgUDP(wb, nil, c.LocalAddr().(*net.UDPAddr)); err != nil {
-		condErrorf(t, "net.UDPConn.WriteMsgUDP failed: %v", err)
-		return
+	if _, _, err := c.WriteMsgUDP(wb, nil, c.LocalAddr().(*UDPAddr)); err != nil {
+		condFatalf(t, "UDPConn.WriteMsgUDP failed: %v", err)
 	}
 	if _, _, _, _, err := c.ReadMsgUDP(rb, nil); err != nil {
-		condErrorf(t, "net.UDPConn.ReadMsgUDP failed: %v", err)
-		return
+		condFatalf(t, "UDPConn.ReadMsgUDP failed: %v", err)
 	}
 
 	if f, err := c.File(); err != nil {
-		condErrorf(t, "net.UDPConn.File failed: %v", err)
-		return
+		condFatalf(t, "UDPConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -156,52 +165,55 @@
 func TestIPConnSpecificMethods(t *testing.T) {
 	switch runtime.GOOS {
 	case "plan9":
-		t.Skipf("skipping read test on %q", runtime.GOOS)
+		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if os.Getuid() != 0 {
 		t.Skipf("skipping test; must be root")
 	}
 
-	la, err := net.ResolveIPAddr("ip4", "127.0.0.1")
+	la, err := ResolveIPAddr("ip4", "127.0.0.1")
 	if err != nil {
-		t.Fatalf("net.ResolveIPAddr failed: %v", err)
+		t.Fatalf("ResolveIPAddr failed: %v", err)
 	}
-	c, err := net.ListenIP("ip4:icmp", la)
+	c, err := ListenIP("ip4:icmp", la)
 	if err != nil {
-		t.Fatalf("net.ListenIP failed: %v", err)
+		t.Fatalf("ListenIP failed: %v", err)
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 	c.SetReadBuffer(2048)
 	c.SetWriteBuffer(2048)
-	defer c.Close()
 
-	id := os.Getpid() & 0xffff
-	wb := newICMPEchoRequest(id, 1, 128, []byte("IPCONN TEST "))
+	wb, err := (&icmpMessage{
+		Type: icmpv4EchoRequest, Code: 0,
+		Body: &icmpEcho{
+			ID: os.Getpid() & 0xffff, Seq: 1,
+			Data: []byte("IPCONN TEST "),
+		},
+	}).Marshal()
+	if err != nil {
+		t.Fatalf("icmpMessage.Marshal failed: %v", err)
+	}
 	rb := make([]byte, 20+128)
-	if _, err := c.WriteToIP(wb, c.LocalAddr().(*net.IPAddr)); err != nil {
-		t.Errorf("net.IPConn.WriteToIP failed: %v", err)
-		return
+	if _, err := c.WriteToIP(wb, c.LocalAddr().(*IPAddr)); err != nil {
+		t.Fatalf("IPConn.WriteToIP failed: %v", err)
 	}
 	if _, _, err := c.ReadFromIP(rb); err != nil {
-		t.Errorf("net.IPConn.ReadFromIP failed: %v", err)
-		return
+		t.Fatalf("IPConn.ReadFromIP failed: %v", err)
 	}
-	if _, _, err := c.WriteMsgIP(wb, nil, c.LocalAddr().(*net.IPAddr)); err != nil {
-		condErrorf(t, "net.UDPConn.WriteMsgIP failed: %v", err)
-		return
+	if _, _, err := c.WriteMsgIP(wb, nil, c.LocalAddr().(*IPAddr)); err != nil {
+		condFatalf(t, "IPConn.WriteMsgIP failed: %v", err)
 	}
 	if _, _, _, _, err := c.ReadMsgIP(rb, nil); err != nil {
-		condErrorf(t, "net.UDPConn.ReadMsgIP failed: %v", err)
-		return
+		condFatalf(t, "IPConn.ReadMsgIP failed: %v", err)
 	}
 
 	if f, err := c.File(); err != nil {
-		condErrorf(t, "net.IPConn.File failed: %v", err)
-		return
+		condFatalf(t, "IPConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -210,44 +222,40 @@
 func TestUnixListenerSpecificMethods(t *testing.T) {
 	switch runtime.GOOS {
 	case "plan9", "windows":
-		t.Skipf("skipping read test on %q", runtime.GOOS)
+		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	p := "/tmp/gotest.net"
-	os.Remove(p)
-	la, err := net.ResolveUnixAddr("unix", p)
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unix", addr)
 	if err != nil {
-		t.Fatalf("net.ResolveUnixAddr failed: %v", err)
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	ln, err := net.ListenUnix("unix", la)
+	ln, err := ListenUnix("unix", la)
 	if err != nil {
-		t.Fatalf("net.ListenUnix failed: %v", err)
+		t.Fatalf("ListenUnix failed: %v", err)
 	}
+	defer ln.Close()
+	defer os.Remove(addr)
 	ln.Addr()
 	ln.SetDeadline(time.Now().Add(30 * time.Nanosecond))
-	defer ln.Close()
-	defer os.Remove(p)
 
 	if c, err := ln.Accept(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("UnixListener.Accept failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 	if c, err := ln.AcceptUnix(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("UnixListener.AcceptUnix failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 
 	if f, err := ln.File(); err != nil {
-		t.Errorf("net.UnixListener.File failed: %v", err)
-		return
+		t.Fatalf("UnixListener.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -259,145 +267,94 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	p1, p2, p3 := "/tmp/gotest.net1", "/tmp/gotest.net2", "/tmp/gotest.net3"
-	os.Remove(p1)
-	os.Remove(p2)
-	os.Remove(p3)
+	addr1, addr2, addr3 := testUnixAddr(), testUnixAddr(), testUnixAddr()
 
-	a1, err := net.ResolveUnixAddr("unixgram", p1)
+	a1, err := ResolveUnixAddr("unixgram", addr1)
 	if err != nil {
-		t.Fatalf("net.ResolveUnixAddr failed: %v", err)
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c1, err := net.DialUnix("unixgram", a1, nil)
+	c1, err := DialUnix("unixgram", a1, nil)
 	if err != nil {
-		t.Fatalf("net.DialUnix failed: %v", err)
+		t.Fatalf("DialUnix failed: %v", err)
 	}
+	defer c1.Close()
+	defer os.Remove(addr1)
 	c1.LocalAddr()
 	c1.RemoteAddr()
-	c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c1.SetDeadline(time.Now().Add(someTimeout))
+	c1.SetReadDeadline(time.Now().Add(someTimeout))
+	c1.SetWriteDeadline(time.Now().Add(someTimeout))
 	c1.SetReadBuffer(2048)
 	c1.SetWriteBuffer(2048)
-	defer c1.Close()
-	defer os.Remove(p1)
 
-	a2, err := net.ResolveUnixAddr("unixgram", p2)
+	a2, err := ResolveUnixAddr("unixgram", addr2)
 	if err != nil {
-		t.Errorf("net.ResolveUnixAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c2, err := net.DialUnix("unixgram", a2, nil)
+	c2, err := DialUnix("unixgram", a2, nil)
 	if err != nil {
-		t.Errorf("net.DialUnix failed: %v", err)
-		return
+		t.Fatalf("DialUnix failed: %v", err)
 	}
+	defer c2.Close()
+	defer os.Remove(addr2)
 	c2.LocalAddr()
 	c2.RemoteAddr()
-	c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c2.SetDeadline(time.Now().Add(someTimeout))
+	c2.SetReadDeadline(time.Now().Add(someTimeout))
+	c2.SetWriteDeadline(time.Now().Add(someTimeout))
 	c2.SetReadBuffer(2048)
 	c2.SetWriteBuffer(2048)
-	defer c2.Close()
-	defer os.Remove(p2)
 
-	a3, err := net.ResolveUnixAddr("unixgram", p3)
+	a3, err := ResolveUnixAddr("unixgram", addr3)
 	if err != nil {
-		t.Errorf("net.ResolveUnixAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c3, err := net.ListenUnixgram("unixgram", a3)
+	c3, err := ListenUnixgram("unixgram", a3)
 	if err != nil {
-		t.Errorf("net.ListenUnixgram failed: %v", err)
-		return
+		t.Fatalf("ListenUnixgram failed: %v", err)
 	}
+	defer c3.Close()
+	defer os.Remove(addr3)
 	c3.LocalAddr()
 	c3.RemoteAddr()
-	c3.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c3.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c3.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c3.SetDeadline(time.Now().Add(someTimeout))
+	c3.SetReadDeadline(time.Now().Add(someTimeout))
+	c3.SetWriteDeadline(time.Now().Add(someTimeout))
 	c3.SetReadBuffer(2048)
 	c3.SetWriteBuffer(2048)
-	defer c3.Close()
-	defer os.Remove(p3)
 
 	wb := []byte("UNIXCONN TEST")
 	rb1 := make([]byte, 128)
 	rb2 := make([]byte, 128)
 	rb3 := make([]byte, 128)
 	if _, _, err := c1.WriteMsgUnix(wb, nil, a2); err != nil {
-		t.Errorf("net.UnixConn.WriteMsgUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteMsgUnix failed: %v", err)
 	}
 	if _, _, _, _, err := c2.ReadMsgUnix(rb2, nil); err != nil {
-		t.Errorf("net.UnixConn.ReadMsgUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadMsgUnix failed: %v", err)
 	}
 	if _, err := c2.WriteToUnix(wb, a1); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c1.ReadFromUnix(rb1); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 	if _, err := c3.WriteToUnix(wb, a1); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c1.ReadFromUnix(rb1); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 	if _, err := c2.WriteToUnix(wb, a3); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c3.ReadFromUnix(rb3); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 
 	if f, err := c1.File(); err != nil {
-		t.Errorf("net.UnixConn.File failed: %v", err)
-		return
+		t.Fatalf("UnixConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
 }
-
-func newICMPEchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = 8
-	// calculate ICMP checksum
-	cklen := len(b)
-	s := uint32(0)
-	for i := 0; i < cklen-1; i += 2 {
-		s += uint32(b[i+1])<<8 | uint32(b[i])
-	}
-	if cklen&1 == 1 {
-		s += uint32(b[cklen-1])
-	}
-	s = (s >> 16) + (s & 0xffff)
-	s = s + (s >> 16)
-	// place checksum back in header; using ^= avoids the
-	// assumption the checksum bytes are zero
-	b[2] ^= byte(^s & 0xff)
-	b[3] ^= byte(^s >> 8)
-	return b
-}
-
-func newICMPInfoMessage(id, seqnum, msglen int, filler []byte) []byte {
-	b := make([]byte, msglen)
-	copy(b[8:], bytes.Repeat(filler, (msglen-8)/len(filler)+1))
-	b[0] = 0                   // type
-	b[1] = 0                   // code
-	b[2] = 0                   // checksum
-	b[3] = 0                   // checksum
-	b[4] = byte(id >> 8)       // identifier
-	b[5] = byte(id & 0xff)     // identifier
-	b[6] = byte(seqnum >> 8)   // sequence number
-	b[7] = byte(seqnum & 0xff) // sequence number
-	return b
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/client.go gcc-4.8.1/libgo/go/net/rpc/client.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/client.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/rpc/client.go	2013-10-01 16:06:44.184554280 +0000
@@ -71,7 +71,7 @@
 
 	// Register this call.
 	client.mutex.Lock()
-	if client.shutdown {
+	if client.shutdown || client.closing {
 		call.Error = ErrShutdown
 		client.mutex.Unlock()
 		call.done()
@@ -105,9 +105,6 @@
 		response = Response{}
 		err = client.codec.ReadResponseHeader(&response)
 		if err != nil {
-			if err == io.EOF && !client.closing {
-				err = io.ErrUnexpectedEOF
-			}
 			break
 		}
 		seq := response.Seq
@@ -150,6 +147,13 @@
 	client.mutex.Lock()
 	client.shutdown = true
 	closing := client.closing
+	if err == io.EOF {
+		if closing {
+			err = ErrShutdown
+		} else {
+			err = io.ErrUnexpectedEOF
+		}
+	}
 	for _, call := range client.pending {
 		call.Error = err
 		call.done()
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -9,6 +9,7 @@
 	"errors"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"net"
 	"net/rpc"
 	"testing"
@@ -185,6 +186,22 @@
 	ServeConn(srv)                 // must return, not loop
 }
 
+func TestMalformedOutput(t *testing.T) {
+	cli, srv := net.Pipe()
+	go srv.Write([]byte(`{"id":0,"result":null,"error":null}`))
+	go ioutil.ReadAll(srv)
+
+	client := NewClient(cli)
+	defer client.Close()
+
+	args := &Args{7, 8}
+	reply := new(Reply)
+	err := client.Call("Arith.Add", args, reply)
+	if err == nil {
+		t.Error("expected error")
+	}
+}
+
 func TestUnexpectedError(t *testing.T) {
 	cli, srv := myPipe()
 	go cli.PipeWriter.CloseWithError(errors.New("unexpected error!")) // reader will get this error
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go	2013-10-01 16:06:44.184554280 +0000
@@ -83,7 +83,7 @@
 
 	r.Error = ""
 	r.Seq = c.resp.Id
-	if c.resp.Error != nil {
+	if c.resp.Error != nil || c.resp.Result == nil {
 		x, ok := c.resp.Error.(string)
 		if !ok {
 			return fmt.Errorf("invalid error %v", c.resp.Error)
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go gcc-4.8.1/libgo/go/net/rpc/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/rpc/server_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -399,12 +399,10 @@
 
 func (WriteFailCodec) ReadResponseHeader(*Response) error {
 	select {}
-	panic("unreachable")
 }
 
 func (WriteFailCodec) ReadResponseBody(interface{}) error {
 	select {}
-	panic("unreachable")
 }
 
 func (WriteFailCodec) Close() error {
@@ -445,8 +443,7 @@
 	return DialHTTP("tcp", httpServerAddr)
 }
 
-func countMallocs(dial func() (*Client, error), t *testing.T) uint64 {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+func countMallocs(dial func() (*Client, error), t *testing.T) float64 {
 	once.Do(startServer)
 	client, err := dial()
 	if err != nil {
@@ -454,11 +451,7 @@
 	}
 	args := &Args{7, 8}
 	reply := new(Reply)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	const count = 100
-	for i := 0; i < count; i++ {
+	return testing.AllocsPerRun(100, func() {
 		err := client.Call("Arith.Add", args, reply)
 		if err != nil {
 			t.Errorf("Add: expected no error but got string %q", err.Error())
@@ -466,18 +459,21 @@
 		if reply.C != args.A+args.B {
 			t.Errorf("Add: expected %d got %d", reply.C, args.A+args.B)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	return mallocs / count
+	})
 }
 
 func TestCountMallocs(t *testing.T) {
-	fmt.Printf("mallocs per rpc round trip: %d\n", countMallocs(dialDirect, t))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	fmt.Printf("mallocs per rpc round trip: %v\n", countMallocs(dialDirect, t))
 }
 
 func TestCountMallocsOverHTTP(t *testing.T) {
-	fmt.Printf("mallocs per HTTP rpc round trip: %d\n", countMallocs(dialHTTP, t))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	fmt.Printf("mallocs per HTTP rpc round trip: %v\n", countMallocs(dialHTTP, t))
 }
 
 type writeCrasher struct {
@@ -532,6 +528,23 @@
 	}
 }
 
+func TestErrorAfterClientClose(t *testing.T) {
+	once.Do(startServer)
+
+	client, err := dialHTTP()
+	if err != nil {
+		t.Fatalf("dialing: %v", err)
+	}
+	err = client.Close()
+	if err != nil {
+		t.Fatal("close error:", err)
+	}
+	err = client.Call("Arith.Add", &Args{7, 9}, new(Reply))
+	if err != ErrShutdown {
+		t.Errorf("Forever: expected ErrShutdown got %v", err)
+	}
+}
+
 func benchmarkEndToEnd(dial func() (*Client, error), b *testing.B) {
 	b.StopTimer()
 	once.Do(startServer)
diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go gcc-4.8.1/libgo/go/net/sendfile_freebsd.go
--- gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sendfile_freebsd.go	2013-10-01 16:06:44.184554280 +0000
@@ -83,7 +83,7 @@
 			break
 		}
 		if err1 == syscall.EAGAIN {
-			if err1 = c.pollServer.WaitWrite(c); err1 == nil {
+			if err1 = c.pd.WaitWrite(); err1 == nil {
 				continue
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go gcc-4.8.1/libgo/go/net/sendfile_linux.go
--- gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sendfile_linux.go	2013-10-01 16:06:44.184554280 +0000
@@ -59,7 +59,7 @@
 			break
 		}
 		if err1 == syscall.EAGAIN {
-			if err1 = c.pollServer.WaitWrite(c); err1 == nil {
+			if err1 = c.pd.WaitWrite(); err1 == nil {
 				continue
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/server_test.go gcc-4.8.1/libgo/go/net/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/server_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/server_test.go	2013-10-01 16:06:44.184554280 +0000
@@ -9,6 +9,7 @@
 	"io"
 	"os"
 	"runtime"
+	"strconv"
 	"testing"
 	"time"
 )
@@ -41,6 +42,12 @@
 	return false
 }
 
+func tempfile(filename string) string {
+	// use /tmp in case it is prohibited to create
+	// UNIX sockets in TMPDIR
+	return "/tmp/" + filename + "." + strconv.Itoa(os.Getpid())
+}
+
 var streamConnServerTests = []struct {
 	snet    string // server side
 	saddr   string
@@ -86,7 +93,7 @@
 
 	{snet: "tcp6", saddr: "[::1]", cnet: "tcp6", caddr: "[::1]", ipv6: true},
 
-	{snet: "unix", saddr: "/tmp/gotest1.net", cnet: "unix", caddr: "/tmp/gotest1.net.local"},
+	{snet: "unix", saddr: tempfile("gotest1.net"), cnet: "unix", caddr: tempfile("gotest1.net.local")},
 	{snet: "unix", saddr: "@gotest2/net", cnet: "unix", caddr: "@gotest2/net.local", linux: true},
 }
 
@@ -113,8 +120,7 @@
 		case "tcp", "tcp4", "tcp6":
 			_, port, err := SplitHostPort(taddr)
 			if err != nil {
-				t.Errorf("SplitHostPort(%q) failed: %v", taddr, err)
-				return
+				t.Fatalf("SplitHostPort(%q) failed: %v", taddr, err)
 			}
 			taddr = tt.caddr + ":" + port
 		}
@@ -136,7 +142,7 @@
 	caddr string // client address
 	empty bool   // test with empty data
 }{
-	{net: "unixpacket", saddr: "/tmp/gotest3.net", caddr: "/tmp/gotest3.net.local"},
+	{net: "unixpacket", saddr: tempfile("/gotest3.net"), caddr: tempfile("gotest3.net.local")},
 	{net: "unixpacket", saddr: "@gotest4/net", caddr: "@gotest4/net.local"},
 }
 
@@ -169,11 +175,11 @@
 }
 
 func runStreamConnServer(t *testing.T, net, laddr string, listening chan<- string, done chan<- int) {
+	defer close(done)
 	l, err := Listen(net, laddr)
 	if err != nil {
 		t.Errorf("Listen(%q, %q) failed: %v", net, laddr, err)
 		listening <- "<nil>"
-		done <- 1
 		return
 	}
 	defer l.Close()
@@ -188,13 +194,14 @@
 			}
 			rw.Write(buf[0:n])
 		}
-		done <- 1
+		close(done)
 	}
 
 run:
 	for {
 		c, err := l.Accept()
 		if err != nil {
+			t.Logf("Accept failed: %v", err)
 			continue run
 		}
 		echodone := make(chan int)
@@ -203,14 +210,12 @@
 		c.Close()
 		break run
 	}
-	done <- 1
 }
 
 func runStreamConnClient(t *testing.T, net, taddr string, isEmpty bool) {
 	c, err := Dial(net, taddr)
 	if err != nil {
-		t.Errorf("Dial(%q, %q) failed: %v", net, taddr, err)
-		return
+		t.Fatalf("Dial(%q, %q) failed: %v", net, taddr, err)
 	}
 	defer c.Close()
 	c.SetReadDeadline(time.Now().Add(1 * time.Second))
@@ -220,14 +225,12 @@
 		wb = []byte("StreamConnClient by Dial\n")
 	}
 	if n, err := c.Write(wb); err != nil || n != len(wb) {
-		t.Errorf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, err := c.Read(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	// Send explicit ending for unixpacket.
@@ -298,10 +301,10 @@
 	{snet: "udp", saddr: "[::1]", cnet: "udp", caddr: "[::1]", ipv6: true, empty: true},
 	{snet: "udp", saddr: "[::1]", cnet: "udp", caddr: "[::1]", ipv6: true, dial: true, empty: true},
 
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local"},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", dial: true},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", empty: true},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", dial: true, empty: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local")},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), dial: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), empty: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), dial: true, empty: true},
 
 	{snet: "unixgram", saddr: "@gotest6/net", cnet: "unixgram", caddr: "@gotest6/net.local", linux: true},
 }
@@ -333,8 +336,7 @@
 		case "udp", "udp4", "udp6":
 			_, port, err := SplitHostPort(taddr)
 			if err != nil {
-				t.Errorf("SplitHostPort(%q) failed: %v", taddr, err)
-				return
+				t.Fatalf("SplitHostPort(%q) failed: %v", taddr, err)
 			}
 			taddr = tt.caddr + ":" + port
 			tt.caddr += ":0"
@@ -397,14 +399,12 @@
 	case "udp", "udp4", "udp6":
 		c, err = Dial(net, taddr)
 		if err != nil {
-			t.Errorf("Dial(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("Dial(%q, %q) failed: %v", net, taddr, err)
 		}
 	case "unixgram":
-		c, err = DialUnix(net, &UnixAddr{laddr, net}, &UnixAddr{taddr, net})
+		c, err = DialUnix(net, &UnixAddr{Name: laddr, Net: net}, &UnixAddr{Name: taddr, Net: net})
 		if err != nil {
-			t.Errorf("DialUnix(%q, {%q, %q}) failed: %v", net, laddr, taddr, err)
-			return
+			t.Fatalf("DialUnix(%q, {%q, %q}) failed: %v", net, laddr, taddr, err)
 		}
 	}
 	defer c.Close()
@@ -415,14 +415,12 @@
 		wb = []byte("DatagramConnClient by Dial\n")
 	}
 	if n, err := c.Write(wb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, err := c.Read(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 }
 
@@ -433,20 +431,17 @@
 	case "udp", "udp4", "udp6":
 		ra, err = ResolveUDPAddr(net, taddr)
 		if err != nil {
-			t.Errorf("ResolveUDPAddr(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("ResolveUDPAddr(%q, %q) failed: %v", net, taddr, err)
 		}
 	case "unixgram":
 		ra, err = ResolveUnixAddr(net, taddr)
 		if err != nil {
-			t.Errorf("ResolveUxixAddr(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("ResolveUxixAddr(%q, %q) failed: %v", net, taddr, err)
 		}
 	}
 	c, err := ListenPacket(net, laddr)
 	if err != nil {
-		t.Errorf("ListenPacket(%q, %q) faild: %v", net, laddr, err)
-		return
+		t.Fatalf("ListenPacket(%q, %q) faild: %v", net, laddr, err)
 	}
 	defer c.Close()
 	c.SetReadDeadline(time.Now().Add(1 * time.Second))
@@ -456,13 +451,11 @@
 		wb = []byte("DatagramPacketConnClient by ListenPacket\n")
 	}
 	if n, err := c.WriteTo(wb[0:], ra); err != nil || n != len(wb) {
-		t.Errorf("WriteTo(%v) failed: %v, %v; want %v, <nil>", ra, n, err, len(wb))
-		return
+		t.Fatalf("WriteTo(%v) failed: %v, %v; want %v, <nil>", ra, n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, _, err := c.ReadFrom(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("ReadFrom failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("ReadFrom failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/auth.go gcc-4.8.1/libgo/go/net/smtp/auth.go
--- gcc-4.8.1.orig/libgo/go/net/smtp/auth.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/smtp/auth.go	2013-10-01 16:06:44.188554279 +0000
@@ -54,7 +54,16 @@
 
 func (a *plainAuth) Start(server *ServerInfo) (string, []byte, error) {
 	if !server.TLS {
-		return "", nil, errors.New("unencrypted connection")
+		advertised := false
+		for _, mechanism := range server.Auth {
+			if mechanism == "PLAIN" {
+				advertised = true
+				break
+			}
+		}
+		if !advertised {
+			return "", nil, errors.New("unencrypted connection")
+		}
 	}
 	if server.Name != a.host {
 		return "", nil, errors.New("wrong host name")
diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go gcc-4.8.1/libgo/go/net/smtp/smtp_test.go
--- gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/smtp/smtp_test.go	2013-10-01 16:06:44.188554279 +0000
@@ -57,6 +57,41 @@
 	}
 }
 
+func TestAuthPlain(t *testing.T) {
+	auth := PlainAuth("foo", "bar", "baz", "servername")
+
+	tests := []struct {
+		server *ServerInfo
+		err    string
+	}{
+		{
+			server: &ServerInfo{Name: "servername", TLS: true},
+		},
+		{
+			// Okay; explicitly advertised by server.
+			server: &ServerInfo{Name: "servername", Auth: []string{"PLAIN"}},
+		},
+		{
+			server: &ServerInfo{Name: "servername", Auth: []string{"CRAM-MD5"}},
+			err:    "unencrypted connection",
+		},
+		{
+			server: &ServerInfo{Name: "attacker", TLS: true},
+			err:    "wrong host name",
+		},
+	}
+	for i, tt := range tests {
+		_, _, err := auth.Start(tt.server)
+		got := ""
+		if err != nil {
+			got = err.Error()
+		}
+		if got != tt.err {
+			t.Errorf("%d. got error = %q; want %q", i, got, tt.err)
+		}
+	}
+}
+
 type faker struct {
 	io.ReadWriter
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_bsd.go gcc-4.8.1/libgo/go/net/sock_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/sock_bsd.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_bsd.go	2013-10-01 16:06:44.188554279 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd netbsd openbsd
 
-// Sockets for BSD variants
-
 package net
 
 import (
@@ -29,34 +27,11 @@
 	if n == 0 || err != nil {
 		return syscall.SOMAXCONN
 	}
-	return int(n)
-}
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
+	// FreeBSD stores the backlog in a uint16, as does Linux.
+	// Assume the other BSDs do too. Truncate number to avoid wrapping.
+	// See issue 5030.
+	if n > 1<<16-1 {
+		n = 1<<16 - 1
 	}
-	return la, nil
+	return int(n)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go gcc-4.8.1/libgo/go/net/sock_cloexec.go
--- gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_cloexec.go	2013-10-01 16:06:44.188554279 +0000
@@ -44,20 +44,20 @@
 func accept(fd int) (int, syscall.Sockaddr, error) {
 	nfd, sa, err := syscall.Accept4(fd, syscall.SOCK_NONBLOCK|syscall.SOCK_CLOEXEC)
 	// The accept4 system call was introduced in Linux 2.6.28.  If
-	// we get an ENOSYS error, fall back to using accept.
-	if err == nil || err != syscall.ENOSYS {
+	// we get an ENOSYS or EINVAL error, fall back to using accept.
+	if err == nil || (err != syscall.ENOSYS && err != syscall.EINVAL) {
 		return nfd, sa, err
 	}
 
 	// See ../syscall/exec_unix.go for description of ForkLock.
-	// It is okay to hold the lock across syscall.Accept
+	// It is probably okay to hold the lock across syscall.Accept
 	// because we have put fd.sysfd into non-blocking mode.
-	syscall.ForkLock.RLock()
+	// However, a call to the File method will put it back into
+	// blocking mode. We can't take that risk, so no use of ForkLock here.
 	nfd, sa, err = syscall.Accept(fd)
 	if err == nil {
 		syscall.CloseOnExec(nfd)
 	}
-	syscall.ForkLock.RUnlock()
 	if err != nil {
 		return -1, nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_linux.go gcc-4.8.1/libgo/go/net/sock_linux.go
--- gcc-4.8.1.orig/libgo/go/net/sock_linux.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_linux.go	2013-10-01 16:06:44.188554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Sockets for Linux
-
 package net
 
 import "syscall"
@@ -23,34 +21,11 @@
 	if n == 0 || !ok {
 		return syscall.SOMAXCONN
 	}
-	return n
-}
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
+	// Linux stores the backlog in a uint16.
+	// Truncate number to avoid wrapping.
+	// See issue 5030.
+	if n > 1<<16-1 {
+		n = 1<<16 - 1
 	}
-	return la, nil
+	return n
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_posix.go gcc-4.8.1/libgo/go/net/sock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/sock_posix.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_posix.go	2013-10-01 16:06:44.188554279 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Sockets
-
 package net
 
 import (
@@ -15,7 +13,7 @@
 
 var listenerBacklog = maxListenerBacklog()
 
-// Generic socket creation.
+// Generic POSIX socket creation.
 func socket(net string, f, t, p int, ipv6only bool, ulsa, ursa syscall.Sockaddr, deadline time.Time, toAddr func(syscall.Sockaddr) Addr) (fd *netFD, err error) {
 	s, err := sysSocket(f, t, p)
 	if err != nil {
@@ -27,7 +25,8 @@
 		return nil, err
 	}
 
-	if ulsa != nil {
+	// This socket is used by a listener.
+	if ulsa != nil && ursa == nil {
 		// We provide a socket that listens to a wildcard
 		// address with reusable UDP port when the given ulsa
 		// is an appropriate UDP multicast address prefix.
@@ -39,6 +38,9 @@
 			closesocket(s)
 			return nil, err
 		}
+	}
+
+	if ulsa != nil {
 		if err = syscall.Bind(s, ulsa); err != nil {
 			closesocket(s)
 			return nil, err
@@ -50,19 +52,27 @@
 		return nil, err
 	}
 
+	// This socket is used by a dialer.
 	if ursa != nil {
-		fd.wdeadline.setTime(deadline)
-		if err = fd.connect(ursa); err != nil {
-			closesocket(s)
+		if !deadline.IsZero() {
+			setWriteDeadline(fd, deadline)
+		}
+		if err = fd.connect(ulsa, ursa); err != nil {
+			fd.Close()
 			return nil, err
 		}
 		fd.isConnected = true
-		fd.wdeadline.set(0)
+		if !deadline.IsZero() {
+			setWriteDeadline(fd, time.Time{})
+		}
 	}
 
 	lsa, _ := syscall.Getsockname(s)
 	laddr := toAddr(lsa)
 	rsa, _ := syscall.Getpeername(s)
+	if rsa == nil {
+		rsa = ursa
+	}
 	raddr := toAddr(rsa)
 	fd.setAddr(laddr, raddr)
 	return fd, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_solaris.go gcc-4.8.1/libgo/go/net/sock_solaris.go
--- gcc-4.8.1.orig/libgo/go/net/sock_solaris.go	2012-04-25 04:26:12.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_solaris.go	2013-10-01 16:06:44.188554279 +0000
@@ -16,32 +16,3 @@
 	// The kernel does not track the limit.
 	return syscall.SOMAXCONN
 }
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
-	}
-	return la, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_unix.go gcc-4.8.1/libgo/go/net/sock_unix.go
--- gcc-4.8.1.orig/libgo/go/net/sock_unix.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_unix.go	2013-10-01 16:06:44.188554279 +0000
@@ -0,0 +1,36 @@
+// Copyright 2009 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package net
+
+import "syscall"
+
+func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
+	a := toAddr(la)
+	if a == nil {
+		return la, nil
+	}
+	switch a := a.(type) {
+	case *TCPAddr, *UnixAddr:
+		if err := setDefaultListenerSockopts(s); err != nil {
+			return nil, err
+		}
+	case *UDPAddr:
+		if a.IP.IsMulticast() {
+			if err := setDefaultMulticastSockopts(s); err != nil {
+				return nil, err
+			}
+			switch f {
+			case syscall.AF_INET:
+				a.IP = IPv4zero
+			case syscall.AF_INET6:
+				a.IP = IPv6unspecified
+			}
+			return a.sockaddr(f)
+		}
+	}
+	return la, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_windows.go gcc-4.8.1/libgo/go/net/sock_windows.go
--- gcc-4.8.1.orig/libgo/go/net/sock_windows.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sock_windows.go	2013-10-01 16:06:44.188554279 +0000
@@ -2,14 +2,13 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Sockets for Windows
-
 package net
 
 import "syscall"
 
 func maxListenerBacklog() int {
 	// TODO: Implement this
+	// NOTE: Never return a number bigger than 1<<16 - 1. See issue 5030.
 	return syscall.SOMAXCONN
 }
 
@@ -18,25 +17,23 @@
 	if a == nil {
 		return la, nil
 	}
-	switch v := a.(type) {
+	switch a := a.(type) {
 	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
+		if err := setDefaultListenerSockopts(s); err != nil {
 			return nil, err
 		}
 	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
+		if a.IP.IsMulticast() {
+			if err := setDefaultMulticastSockopts(s); err != nil {
 				return nil, err
 			}
 			switch f {
 			case syscall.AF_INET:
-				v.IP = IPv4zero
+				a.IP = IPv4zero
 			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
+				a.IP = IPv6unspecified
 			}
-			return v.sockaddr(f)
+			return a.sockaddr(f)
 		}
 	}
 	return la, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go gcc-4.8.1/libgo/go/net/sockopt_posix.go
--- gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sockopt_posix.go	2013-10-01 16:06:44.188554279 +0000
@@ -11,7 +11,6 @@
 import (
 	"os"
 	"syscall"
-	"time"
 )
 
 // Boolean to int.
@@ -119,24 +118,6 @@
 	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes))
 }
 
-// TODO(dfc) these unused error returns could be removed
-
-func setReadDeadline(fd *netFD, t time.Time) error {
-	fd.rdeadline.setTime(t)
-	return nil
-}
-
-func setWriteDeadline(fd *netFD, t time.Time) error {
-	fd.wdeadline.setTime(t)
-	return nil
-}
-
-func setDeadline(fd *netFD, t time.Time) error {
-	setReadDeadline(fd, t)
-	setWriteDeadline(fd, t)
-	return nil
-}
-
 func setKeepAlive(fd *netFD, keepalive bool) error {
 	if err := fd.incref(false); err != nil {
 		return err
diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go gcc-4.8.1/libgo/go/net/sockopt_windows.go
--- gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sockopt_windows.go	2013-10-01 16:06:44.188554279 +0000
@@ -9,6 +9,7 @@
 import (
 	"os"
 	"syscall"
+	"time"
 )
 
 func setDefaultSockopts(s syscall.Handle, f, t int, ipv6only bool) error {
@@ -47,3 +48,21 @@
 	}
 	return nil
 }
+
+// TODO(dfc) these unused error returns could be removed
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	fd.rdeadline.setTime(t)
+	return nil
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	fd.wdeadline.setTime(t)
+	return nil
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	setReadDeadline(fd, t)
+	setWriteDeadline(fd, t)
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go gcc-4.8.1/libgo/go/net/sys_cloexec.go
--- gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/sys_cloexec.go	2013-10-01 16:06:44.188554279 +0000
@@ -35,14 +35,14 @@
 // descriptor as nonblocking and close-on-exec.
 func accept(fd int) (int, syscall.Sockaddr, error) {
 	// See ../syscall/exec_unix.go for description of ForkLock.
-	// It is okay to hold the lock across syscall.Accept
+	// It is probably okay to hold the lock across syscall.Accept
 	// because we have put fd.sysfd into non-blocking mode.
-	syscall.ForkLock.RLock()
+	// However, a call to the File method will put it back into
+	// blocking mode. We can't take that risk, so no use of ForkLock here.
 	nfd, sa, err := syscall.Accept(fd)
 	if err == nil {
 		syscall.CloseOnExec(nfd)
 	}
-	syscall.ForkLock.RUnlock()
 	if err != nil {
 		return -1, nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcp_test.go gcc-4.8.1/libgo/go/net/tcp_test.go
--- gcc-4.8.1.orig/libgo/go/net/tcp_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/tcp_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -5,29 +5,58 @@
 package net
 
 import (
+	"fmt"
 	"reflect"
 	"runtime"
 	"testing"
 	"time"
 )
 
-func BenchmarkTCPOneShot(b *testing.B) {
-	benchmarkTCP(b, false, false)
+func BenchmarkTCP4OneShot(b *testing.B) {
+	benchmarkTCP(b, false, false, "127.0.0.1:0")
 }
 
-func BenchmarkTCPOneShotTimeout(b *testing.B) {
-	benchmarkTCP(b, false, true)
+func BenchmarkTCP4OneShotTimeout(b *testing.B) {
+	benchmarkTCP(b, false, true, "127.0.0.1:0")
 }
 
-func BenchmarkTCPPersistent(b *testing.B) {
-	benchmarkTCP(b, true, false)
+func BenchmarkTCP4Persistent(b *testing.B) {
+	benchmarkTCP(b, true, false, "127.0.0.1:0")
 }
 
-func BenchmarkTCPPersistentTimeout(b *testing.B) {
-	benchmarkTCP(b, true, true)
+func BenchmarkTCP4PersistentTimeout(b *testing.B) {
+	benchmarkTCP(b, true, true, "127.0.0.1:0")
 }
 
-func benchmarkTCP(b *testing.B, persistent, timeout bool) {
+func BenchmarkTCP6OneShot(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, false, false, "[::1]:0")
+}
+
+func BenchmarkTCP6OneShotTimeout(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, false, true, "[::1]:0")
+}
+
+func BenchmarkTCP6Persistent(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, true, false, "[::1]:0")
+}
+
+func BenchmarkTCP6PersistentTimeout(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, true, true, "[::1]:0")
+}
+
+func benchmarkTCP(b *testing.B, persistent, timeout bool, laddr string) {
 	const msgLen = 512
 	conns := b.N
 	numConcurrent := runtime.GOMAXPROCS(-1) * 16
@@ -61,7 +90,7 @@
 		}
 		return true
 	}
-	ln, err := Listen("tcp", "127.0.0.1:0")
+	ln, err := Listen("tcp", laddr)
 	if err != nil {
 		b.Fatalf("Listen failed: %v", err)
 	}
@@ -118,24 +147,39 @@
 	}
 }
 
-var resolveTCPAddrTests = []struct {
+type resolveTCPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *TCPAddr
 	err     error
-}{
+}
+
+var resolveTCPAddrTests = []resolveTCPAddrTest{
 	{"tcp", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil},
 	{"tcp4", "127.0.0.1:65535", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 65535}, nil},
 
 	{"tcp", "[::1]:1", &TCPAddr{IP: ParseIP("::1"), Port: 1}, nil},
 	{"tcp6", "[::1]:65534", &TCPAddr{IP: ParseIP("::1"), Port: 65534}, nil},
 
+	{"tcp", "[::1%en0]:1", &TCPAddr{IP: ParseIP("::1"), Port: 1, Zone: "en0"}, nil},
+	{"tcp6", "[::1%911]:2", &TCPAddr{IP: ParseIP("::1"), Port: 2, Zone: "911"}, nil},
+
 	{"", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, // Go 1.0 behavior
 	{"", "[::1]:0", &TCPAddr{IP: ParseIP("::1"), Port: 0}, nil},         // Go 1.0 behavior
 
 	{"http", "127.0.0.1:0", nil, UnknownNetworkError("http")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveTCPAddrTests = append(resolveTCPAddrTests, []resolveTCPAddrTest{
+			{"tcp6", "[fe80::1%" + ifi.Name + "]:3", &TCPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone: zoneToString(ifi.Index)}, nil},
+			{"tcp6", "[fe80::1%" + index + "]:4", &TCPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveTCPAddr(t *testing.T) {
 	for _, tt := range resolveTCPAddrTests {
 		addr, err := ResolveTCPAddr(tt.net, tt.litAddr)
@@ -165,14 +209,88 @@
 	for _, tt := range tcpListenerNameTests {
 		ln, err := ListenTCP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenTCP failed: %v", err)
-			return
+			t.Fatalf("ListenTCP failed: %v", err)
 		}
 		defer ln.Close()
 		la := ln.Addr()
 		if a, ok := la.(*TCPAddr); !ok || a.Port == 0 {
-			t.Errorf("got %v; expected a proper address with non-zero port number", la)
-			return
+			t.Fatalf("got %v; expected a proper address with non-zero port number", la)
+		}
+	}
+}
+
+func TestIPv6LinkLocalUnicastTCP(t *testing.T) {
+	if testing.Short() || !*testExternal {
+		t.Skip("skipping test to avoid external network")
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	ifi := loopbackInterface()
+	if ifi == nil {
+		t.Skip("loopback interface not found")
+	}
+	laddr := ipv6LinkLocalUnicastAddr(ifi)
+	if laddr == "" {
+		t.Skip("ipv6 unicast address on loopback not found")
+	}
+
+	type test struct {
+		net, addr  string
+		nameLookup bool
+	}
+	var tests = []test{
+		{"tcp", "[" + laddr + "%" + ifi.Name + "]:0", false},
+		{"tcp6", "[" + laddr + "%" + ifi.Name + "]:0", false},
+	}
+	switch runtime.GOOS {
+	case "darwin", "freebsd", "opensbd", "netbsd":
+		tests = append(tests, []test{
+			{"tcp", "[localhost%" + ifi.Name + "]:0", true},
+			{"tcp6", "[localhost%" + ifi.Name + "]:0", true},
+		}...)
+	case "linux":
+		tests = append(tests, []test{
+			{"tcp", "[ip6-localhost%" + ifi.Name + "]:0", true},
+			{"tcp6", "[ip6-localhost%" + ifi.Name + "]:0", true},
+		}...)
+	}
+	for _, tt := range tests {
+		ln, err := Listen(tt.net, tt.addr)
+		if err != nil {
+			// It might return "LookupHost returned no
+			// suitable address" error on some platforms.
+			t.Logf("Listen failed: %v", err)
+			continue
 		}
+		defer ln.Close()
+		if la, ok := ln.Addr().(*TCPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+
+		done := make(chan int)
+		go transponder(t, ln, done)
+
+		c, err := Dial(tt.net, ln.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		defer c.Close()
+		if la, ok := c.LocalAddr().(*TCPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+		if ra, ok := c.RemoteAddr().(*TCPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+		}
+
+		if _, err := c.Write([]byte("TCP OVER IPV6 LINKLOCAL TEST")); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		b := make([]byte, 32)
+		if _, err := c.Read(b); err != nil {
+			t.Fatalf("Conn.Read failed: %v", err)
+		}
+
+		<-done
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock.go gcc-4.8.1/libgo/go/net/tcpsock.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/tcpsock.go	2013-10-01 16:06:44.188554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// TCP sockets
-
 package net
 
 // TCPAddr represents the address of a TCP end point.
@@ -20,14 +18,18 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return JoinHostPort(a.IP.String()+"%"+a.Zone, itoa(a.Port))
+	}
 	return JoinHostPort(a.IP.String(), itoa(a.Port))
 }
 
-// ResolveTCPAddr parses addr as a TCP address of the form
-// host:port and resolves domain names or port names to
-// numeric addresses on the network net, which must be "tcp",
-// "tcp4" or "tcp6".  A literal IPv6 host address must be
-// enclosed in square brackets, as in "[::]:80".
+// ResolveTCPAddr parses addr as a TCP address of the form "host:port"
+// or "[ipv6-host%zone]:port" and resolves a pair of domain name and
+// port name on the network net, which must be "tcp", "tcp4" or
+// "tcp6".  A literal address or host name for IPv6 must be enclosed
+// in square brackets, as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
 func ResolveTCPAddr(net, addr string) (*TCPAddr, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go gcc-4.8.1/libgo/go/net/tcpsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/tcpsock_plan9.go	2013-10-01 16:06:44.188554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// TCP sockets for Plan 9
-
 package net
 
 import (
@@ -89,7 +87,7 @@
 	switch net {
 	case "tcp", "tcp4", "tcp6":
 	default:
-		return nil, UnknownNetworkError(net)
+		return nil, &OpError{"dial", net, raddr, UnknownNetworkError(net)}
 	}
 	if raddr == nil {
 		return nil, &OpError{"dial", net, nil, errMissingAddress}
@@ -98,7 +96,7 @@
 	if err != nil {
 		return nil, err
 	}
-	return &TCPConn{conn{fd}}, nil
+	return newTCPConn(fd), nil
 }
 
 // TCPListener is a TCP network listener.  Clients should typically
@@ -141,7 +139,7 @@
 	}
 	if _, err := l.fd.ctl.WriteString("hangup"); err != nil {
 		l.fd.ctl.Close()
-		return err
+		return &OpError{"close", l.fd.ctl.Name(), l.fd.laddr, err}
 	}
 	return l.fd.ctl.Close()
 }
@@ -161,17 +159,21 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
-func (l *TCPListener) File() (f *os.File, err error) { return l.fd.dup() }
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
+func (l *TCPListener) File() (f *os.File, err error) { return l.dup() }
 
 // ListenTCP announces on the TCP address laddr and returns a TCP
 // listener.  Net must be "tcp", "tcp4", or "tcp6".  If laddr has a
-// port of 0, it means to listen on some available port.  The caller
-// can use l.Addr() to retrieve the chosen address.
+// port of 0, ListenTCP will choose an available port.  The caller can
+// use the Addr method of TCPListener to retrieve the chosen address.
 func ListenTCP(net string, laddr *TCPAddr) (*TCPListener, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
 	default:
-		return nil, UnknownNetworkError(net)
+		return nil, &OpError{"listen", net, laddr, UnknownNetworkError(net)}
 	}
 	if laddr == nil {
 		laddr = &TCPAddr{}
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go gcc-4.8.1/libgo/go/net/tcpsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/tcpsock_posix.go	2013-10-01 16:06:44.188554279 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// TCP sockets
-
 package net
 
 import (
@@ -58,8 +56,8 @@
 	return a
 }
 
-// TCPConn is an implementation of the Conn interface
-// for TCP network connections.
+// TCPConn is an implementation of the Conn interface for TCP network
+// connections.
 type TCPConn struct {
 	conn
 }
@@ -96,17 +94,17 @@
 	return c.fd.CloseWrite()
 }
 
-// SetLinger sets the behavior of Close() on a connection
-// which still has data waiting to be sent or to be acknowledged.
+// SetLinger sets the behavior of Close() on a connection which still
+// has data waiting to be sent or to be acknowledged.
 //
-// If sec < 0 (the default), Close returns immediately and
-// the operating system finishes sending the data in the background.
+// If sec < 0 (the default), Close returns immediately and the
+// operating system finishes sending the data in the background.
 //
 // If sec == 0, Close returns immediately and the operating system
 // discards any unsent or unacknowledged data.
 //
-// If sec > 0, Close blocks for at most sec seconds waiting for
-// data to be sent and acknowledged.
+// If sec > 0, Close blocks for at most sec seconds waiting for data
+// to be sent and acknowledged.
 func (c *TCPConn) SetLinger(sec int) error {
 	if !c.ok() {
 		return syscall.EINVAL
@@ -124,9 +122,9 @@
 }
 
 // SetNoDelay controls whether the operating system should delay
-// packet transmission in hopes of sending fewer packets
-// (Nagle's algorithm).  The default is true (no delay), meaning
-// that data is sent as soon as possible after a Write.
+// packet transmission in hopes of sending fewer packets (Nagle's
+// algorithm).  The default is true (no delay), meaning that data is
+// sent as soon as possible after a Write.
 func (c *TCPConn) SetNoDelay(noDelay bool) error {
 	if !c.ok() {
 		return syscall.EINVAL
@@ -135,8 +133,8 @@
 }
 
 // DialTCP connects to the remote address raddr on the network net,
-// which must be "tcp", "tcp4", or "tcp6".  If laddr is not nil, it is used
-// as the local address for the connection.
+// which must be "tcp", "tcp4", or "tcp6".  If laddr is not nil, it is
+// used as the local address for the connection.
 func DialTCP(net string, laddr, raddr *TCPAddr) (*TCPConn, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
@@ -216,16 +214,15 @@
 	return ok && e.Err == syscall.EADDRNOTAVAIL
 }
 
-// TCPListener is a TCP network listener.
-// Clients should typically use variables of type Listener
-// instead of assuming TCP.
+// TCPListener is a TCP network listener.  Clients should typically
+// use variables of type Listener instead of assuming TCP.
 type TCPListener struct {
 	fd *netFD
 }
 
-// AcceptTCP accepts the next incoming call and returns the new connection
-// and the remote address.
-func (l *TCPListener) AcceptTCP() (c *TCPConn, err error) {
+// AcceptTCP accepts the next incoming call and returns the new
+// connection and the remote address.
+func (l *TCPListener) AcceptTCP() (*TCPConn, error) {
 	if l == nil || l.fd == nil {
 		return nil, syscall.EINVAL
 	}
@@ -236,14 +233,14 @@
 	return newTCPConn(fd), nil
 }
 
-// Accept implements the Accept method in the Listener interface;
-// it waits for the next call and returns a generic Conn.
-func (l *TCPListener) Accept() (c Conn, err error) {
-	c1, err := l.AcceptTCP()
+// Accept implements the Accept method in the Listener interface; it
+// waits for the next call and returns a generic Conn.
+func (l *TCPListener) Accept() (Conn, error) {
+	c, err := l.AcceptTCP()
 	if err != nil {
 		return nil, err
 	}
-	return c1, nil
+	return c, nil
 }
 
 // Close stops listening on the TCP address.
@@ -267,15 +264,19 @@
 	return setDeadline(l.fd, t)
 }
 
-// File returns a copy of the underlying os.File, set to blocking mode.
-// It is the caller's responsibility to close f when finished.
+// File returns a copy of the underlying os.File, set to blocking
+// mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *TCPListener) File() (f *os.File, err error) { return l.fd.dup() }
 
-// ListenTCP announces on the TCP address laddr and returns a TCP listener.
-// Net must be "tcp", "tcp4", or "tcp6".
-// If laddr has a port of 0, it means to listen on some available port.
-// The caller can use l.Addr() to retrieve the chosen address.
+// ListenTCP announces on the TCP address laddr and returns a TCP
+// listener.  Net must be "tcp", "tcp4", or "tcp6".  If laddr has a
+// port of 0, ListenTCP will choose an available port.  The caller can
+// use the Addr method of TCPListener to retrieve the chosen address.
 func ListenTCP(net string, laddr *TCPAddr) (*TCPListener, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
@@ -291,7 +292,7 @@
 	}
 	err = syscall.Listen(fd.sysfd, listenerBacklog)
 	if err != nil {
-		closesocket(fd.sysfd)
+		fd.Close()
 		return nil, &OpError{"listen", net, laddr, err}
 	}
 	return &TCPListener{fd}, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader.go gcc-4.8.1/libgo/go/net/textproto/reader.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/reader.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/textproto/reader.go	2013-10-01 16:06:44.192554279 +0000
@@ -128,6 +128,17 @@
 		return line, nil
 	}
 
+	// Optimistically assume that we have started to buffer the next line
+	// and it starts with an ASCII letter (the next header key), so we can
+	// avoid copying that buffered data around in memory and skipping over
+	// non-existent whitespace.
+	if r.R.Buffered() > 1 {
+		peek, err := r.R.Peek(1)
+		if err == nil && isASCIILetter(peek[0]) {
+			return trim(line), nil
+		}
+	}
+
 	// ReadByte or the next readLineSlice will flush the read buffer;
 	// copy the slice into buf.
 	r.buf = append(r.buf[:0], trim(line)...)
@@ -445,7 +456,7 @@
 //	}
 //
 func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) {
-	m := make(MIMEHeader)
+	m := make(MIMEHeader, 4)
 	for {
 		kv, err := r.readContinuedLineSlice()
 		if len(kv) == 0 {
@@ -478,7 +489,6 @@
 			return m, err
 		}
 	}
-	panic("unreachable")
 }
 
 // CanonicalMIMEHeaderKey returns the canonical format of the
@@ -564,6 +574,7 @@
 	"Content-Length",
 	"Content-Transfer-Encoding",
 	"Content-Type",
+	"Cookie",
 	"Date",
 	"Dkim-Signature",
 	"Etag",
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go gcc-4.8.1/libgo/go/net/textproto/reader_test.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/textproto/reader_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -290,6 +290,7 @@
 `, "\n", "\r\n", -1)
 
 func BenchmarkReadMIMEHeader(b *testing.B) {
+	b.ReportAllocs()
 	var buf bytes.Buffer
 	br := bufio.NewReader(&buf)
 	r := NewReader(br)
@@ -319,6 +320,7 @@
 }
 
 func BenchmarkUncommon(b *testing.B) {
+	b.ReportAllocs()
 	var buf bytes.Buffer
 	br := bufio.NewReader(&buf)
 	r := NewReader(br)
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go gcc-4.8.1/libgo/go/net/textproto/textproto.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/textproto/textproto.go	2013-10-01 16:06:44.192554279 +0000
@@ -147,3 +147,8 @@
 func isASCIISpace(b byte) bool {
 	return b == ' ' || b == '\t' || b == '\n' || b == '\r'
 }
+
+func isASCIILetter(b byte) bool {
+	b |= 0x20 // make lower case
+	return 'a' <= b && b <= 'z'
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/timeout_test.go gcc-4.8.1/libgo/go/net/timeout_test.go
--- gcc-4.8.1.orig/libgo/go/net/timeout_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/timeout_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -420,6 +420,11 @@
 }
 
 func testVariousDeadlines(t *testing.T, maxProcs int) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
 	ln := newLocalListener(t)
 	defer ln.Close()
@@ -518,11 +523,16 @@
 // TestReadDeadlineDataAvailable tests that read deadlines work, even
 // if there's data ready to be read.
 func TestReadDeadlineDataAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
 	servec := make(chan copyRes)
-	const msg = "data client shouldn't read, even though it it'll be waiting"
+	const msg = "data client shouldn't read, even though it'll be waiting"
 	go func() {
 		c, err := ln.Accept()
 		if err != nil {
@@ -552,6 +562,11 @@
 // TestWriteDeadlineBufferAvailable tests that write deadlines work, even
 // if there's buffer space available to write.
 func TestWriteDeadlineBufferAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
@@ -581,6 +596,64 @@
 	}
 }
 
+// TestAcceptDeadlineConnectionAvailable tests that accept deadlines work, even
+// if there's incoming connections available.
+func TestAcceptDeadlineConnectionAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	ln := newLocalListener(t).(*TCPListener)
+	defer ln.Close()
+
+	go func() {
+		c, err := Dial("tcp", ln.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial: %v", err)
+		}
+		defer c.Close()
+		var buf [1]byte
+		c.Read(buf[:]) // block until the connection or listener is closed
+	}()
+	time.Sleep(10 * time.Millisecond)
+	ln.SetDeadline(time.Now().Add(-5 * time.Second)) // in the past
+	c, err := ln.Accept()
+	if err == nil {
+		defer c.Close()
+	}
+	if !isTimeout(err) {
+		t.Fatalf("Accept: got %v; want timeout", err)
+	}
+}
+
+// TestConnectDeadlineInThePast tests that connect deadlines work, even
+// if the connection can be established w/o blocking.
+func TestConnectDeadlineInThePast(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	ln := newLocalListener(t).(*TCPListener)
+	defer ln.Close()
+
+	go func() {
+		c, err := ln.Accept()
+		if err == nil {
+			defer c.Close()
+		}
+	}()
+	time.Sleep(10 * time.Millisecond)
+	c, err := DialTimeout("tcp", ln.Addr().String(), -5*time.Second) // in the past
+	if err == nil {
+		defer c.Close()
+	}
+	if !isTimeout(err) {
+		t.Fatalf("DialTimeout: got %v; want timeout", err)
+	}
+}
+
 // TestProlongTimeout tests concurrent deadline modification.
 // Known to cause data races in the past.
 func TestProlongTimeout(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/udp_test.go gcc-4.8.1/libgo/go/net/udp_test.go
--- gcc-4.8.1.orig/libgo/go/net/udp_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/udp_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -5,29 +5,45 @@
 package net
 
 import (
+	"fmt"
 	"reflect"
 	"runtime"
 	"testing"
 )
 
-var resolveUDPAddrTests = []struct {
+type resolveUDPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *UDPAddr
 	err     error
-}{
+}
+
+var resolveUDPAddrTests = []resolveUDPAddrTest{
 	{"udp", "127.0.0.1:0", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil},
 	{"udp4", "127.0.0.1:65535", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 65535}, nil},
 
 	{"udp", "[::1]:1", &UDPAddr{IP: ParseIP("::1"), Port: 1}, nil},
 	{"udp6", "[::1]:65534", &UDPAddr{IP: ParseIP("::1"), Port: 65534}, nil},
 
+	{"udp", "[::1%en0]:1", &UDPAddr{IP: ParseIP("::1"), Port: 1, Zone: "en0"}, nil},
+	{"udp6", "[::1%911]:2", &UDPAddr{IP: ParseIP("::1"), Port: 2, Zone: "911"}, nil},
+
 	{"", "127.0.0.1:0", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, // Go 1.0 behavior
 	{"", "[::1]:0", &UDPAddr{IP: ParseIP("::1"), Port: 0}, nil},         // Go 1.0 behavior
 
 	{"sip", "127.0.0.1:0", nil, UnknownNetworkError("sip")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveUDPAddrTests = append(resolveUDPAddrTests, []resolveUDPAddrTest{
+			{"udp6", "[fe80::1%" + ifi.Name + "]:3", &UDPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone: zoneToString(ifi.Index)}, nil},
+			{"udp6", "[fe80::1%" + index + "]:4", &UDPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveUDPAddr(t *testing.T) {
 	for _, tt := range resolveUDPAddrTests {
 		addr, err := ResolveUDPAddr(tt.net, tt.litAddr)
@@ -135,14 +151,125 @@
 	for _, tt := range udpConnLocalNameTests {
 		c, err := ListenUDP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenUDP failed: %v", err)
-			return
+			t.Fatalf("ListenUDP failed: %v", err)
 		}
 		defer c.Close()
 		la := c.LocalAddr()
 		if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-			t.Errorf("got %v; expected a proper address with non-zero port number", la)
-			return
+			t.Fatalf("got %v; expected a proper address with non-zero port number", la)
+		}
+	}
+}
+
+func TestUDPConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", "127.0.0.1:0"} {
+		c1, err := ListenPacket("udp", "127.0.0.1:0")
+		if err != nil {
+			t.Fatalf("ListenUDP failed: %v", err)
+		}
+		defer c1.Close()
+
+		var la *UDPAddr
+		if laddr != "" {
+			var err error
+			if la, err = ResolveUDPAddr("udp", laddr); err != nil {
+				t.Fatalf("ResolveUDPAddr failed: %v", err)
+			}
+		}
+		c2, err := DialUDP("udp", la, c1.LocalAddr().(*UDPAddr))
+		if err != nil {
+			t.Fatalf("DialUDP failed: %v", err)
+		}
+		defer c2.Close()
+
+		var connAddrs = [4]struct {
+			got Addr
+			ok  bool
+		}{
+			{c1.LocalAddr(), true},
+			{c1.(*UDPConn).RemoteAddr(), false},
+			{c2.LocalAddr(), true},
+			{c2.RemoteAddr(), true},
+		}
+		for _, ca := range connAddrs {
+			if a, ok := ca.got.(*UDPAddr); ok != ca.ok || ok && a.Port == 0 {
+				t.Fatalf("got %v; expected a proper address with non-zero port number", ca.got)
+			}
+		}
+	}
+}
+
+func TestIPv6LinkLocalUnicastUDP(t *testing.T) {
+	if testing.Short() || !*testExternal {
+		t.Skip("skipping test to avoid external network")
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	ifi := loopbackInterface()
+	if ifi == nil {
+		t.Skip("loopback interface not found")
+	}
+	laddr := ipv6LinkLocalUnicastAddr(ifi)
+	if laddr == "" {
+		t.Skip("ipv6 unicast address on loopback not found")
+	}
+
+	type test struct {
+		net, addr  string
+		nameLookup bool
+	}
+	var tests = []test{
+		{"udp", "[" + laddr + "%" + ifi.Name + "]:0", false},
+		{"udp6", "[" + laddr + "%" + ifi.Name + "]:0", false},
+	}
+	switch runtime.GOOS {
+	case "darwin", "freebsd", "openbsd", "netbsd":
+		tests = append(tests, []test{
+			{"udp", "[localhost%" + ifi.Name + "]:0", true},
+			{"udp6", "[localhost%" + ifi.Name + "]:0", true},
+		}...)
+	case "linux":
+		tests = append(tests, []test{
+			{"udp", "[ip6-localhost%" + ifi.Name + "]:0", true},
+			{"udp6", "[ip6-localhost%" + ifi.Name + "]:0", true},
+		}...)
+	}
+	for _, tt := range tests {
+		c1, err := ListenPacket(tt.net, tt.addr)
+		if err != nil {
+			// It might return "LookupHost returned no
+			// suitable address" error on some platforms.
+			t.Logf("ListenPacket failed: %v", err)
+			continue
+		}
+		defer c1.Close()
+		if la, ok := c1.LocalAddr().(*UDPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+
+		c2, err := Dial(tt.net, c1.LocalAddr().String())
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		defer c2.Close()
+		if la, ok := c2.LocalAddr().(*UDPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+		if ra, ok := c2.RemoteAddr().(*UDPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+		}
+
+		if _, err := c2.Write([]byte("UDP OVER IPV6 LINKLOCAL TEST")); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		b := make([]byte, 32)
+		if _, from, err := c1.ReadFrom(b); err != nil {
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
+		} else {
+			if ra, ok := from.(*UDPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+				t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+			}
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock.go gcc-4.8.1/libgo/go/net/udpsock.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/udpsock.go	2013-10-01 16:06:44.192554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// UDP sockets
-
 package net
 
 import "errors"
@@ -24,14 +22,18 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return JoinHostPort(a.IP.String()+"%"+a.Zone, itoa(a.Port))
+	}
 	return JoinHostPort(a.IP.String(), itoa(a.Port))
 }
 
-// ResolveUDPAddr parses addr as a UDP address of the form
-// host:port and resolves domain names or port names to
-// numeric addresses on the network net, which must be "udp",
-// "udp4" or "udp6".  A literal IPv6 host address must be
-// enclosed in square brackets, as in "[::]:80".
+// ResolveUDPAddr parses addr as a UDP address of the form "host:port"
+// or "[ipv6-host%zone]:port" and resolves a pair of domain name and
+// port name on the network net, which must be "udp", "udp4" or
+// "udp6".  A literal address or host name for IPv6 must be enclosed
+// in square brackets, as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
 func ResolveUDPAddr(net, addr string) (*UDPAddr, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go gcc-4.8.1/libgo/go/net/udpsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/udpsock_plan9.go	2013-10-01 16:06:44.192554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// UDP sockets for Plan 9
-
 package net
 
 import (
@@ -13,12 +11,14 @@
 	"time"
 )
 
-// UDPConn is the implementation of the Conn and PacketConn
-// interfaces for UDP network connections.
+// UDPConn is the implementation of the Conn and PacketConn interfaces
+// for UDP network connections.
 type UDPConn struct {
 	conn
 }
 
+func newUDPConn(fd *netFD) *UDPConn { return &UDPConn{conn{fd}} }
+
 // ReadFromUDP reads a UDP packet from c, copying the payload into b.
 // It returns the number of bytes copied into b and the return address
 // that was on the packet.
@@ -27,15 +27,9 @@
 // Timeout() == true after a fixed time limit; see SetDeadline and
 // SetReadDeadline.
 func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err error) {
-	if !c.ok() {
+	if !c.ok() || c.fd.data == nil {
 		return 0, nil, syscall.EINVAL
 	}
-	if c.fd.data == nil {
-		c.fd.data, err = os.OpenFile(c.fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, nil, err
-		}
-	}
 	buf := make([]byte, udpHeaderSize+len(b))
 	m, err := c.fd.data.Read(buf)
 	if err != nil {
@@ -60,7 +54,7 @@
 }
 
 // ReadMsgUDP reads a packet from c, copying the payload into b and
-// the associdated out-of-band data into oob.  It returns the number
+// the associated out-of-band data into oob.  It returns the number
 // of bytes copied into b, the number of bytes copied into oob, the
 // flags that were set on the packet and the source address of the
 // packet.
@@ -76,16 +70,9 @@
 // SetWriteDeadline.  On packet-oriented connections, write timeouts
 // are rare.
 func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error) {
-	if !c.ok() {
+	if !c.ok() || c.fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if c.fd.data == nil {
-		f, err := os.OpenFile(c.fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-		c.fd.data = f
-	}
 	h := new(udpHeader)
 	h.raddr = addr.IP.To16()
 	h.laddr = c.fd.laddr.(*UDPAddr).IP.To16()
@@ -141,7 +128,7 @@
 	if err != nil {
 		return nil, err
 	}
-	return &UDPConn{conn{fd}}, nil
+	return newUDPConn(fd), nil
 }
 
 const udpHeaderSize = 16*3 + 2*2
@@ -173,7 +160,10 @@
 }
 
 // ListenUDP listens for incoming UDP packets addressed to the local
-// address laddr.  The returned connection c's ReadFrom and WriteTo
+// address laddr.  Net must be "udp", "udp4", or "udp6".  If laddr has
+// a port of 0, ListenUDP will choose an available port.
+// The LocalAddr method of the returned UDPConn can be used to
+// discover the port.  The returned connection's ReadFrom and WriteTo
 // methods can be used to receive and send UDP packets with per-packet
 // addressing.
 func ListenUDP(net string, laddr *UDPAddr) (*UDPConn, error) {
@@ -193,7 +183,11 @@
 	if err != nil {
 		return nil, err
 	}
-	return &UDPConn{conn{l.netFD()}}, nil
+	l.data, err = os.OpenFile(l.dir+"/data", os.O_RDWR, 0)
+	if err != nil {
+		return nil, err
+	}
+	return newUDPConn(l.netFD()), nil
 }
 
 // ListenMulticastUDP listens for incoming multicast UDP packets
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go gcc-4.8.1/libgo/go/net/udpsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/udpsock_posix.go	2013-10-01 16:06:44.192554279 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// UDP sockets for POSIX
-
 package net
 
 import (
@@ -51,8 +49,8 @@
 	return a
 }
 
-// UDPConn is the implementation of the Conn and PacketConn
-// interfaces for UDP network connections.
+// UDPConn is the implementation of the Conn and PacketConn interfaces
+// for UDP network connections.
 type UDPConn struct {
 	conn
 }
@@ -63,8 +61,9 @@
 // It returns the number of bytes copied into b and the return address
 // that was on the packet.
 //
-// ReadFromUDP can be made to time out and return an error with Timeout() == true
-// after a fixed time limit; see SetDeadline and SetReadDeadline.
+// ReadFromUDP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetReadDeadline.
 func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err error) {
 	if !c.ok() {
 		return 0, nil, syscall.EINVAL
@@ -89,7 +88,7 @@
 }
 
 // ReadMsgUDP reads a packet from c, copying the payload into b and
-// the associdated out-of-band data into oob.  It returns the number
+// the associated out-of-band data into oob.  It returns the number
 // of bytes copied into b, the number of bytes copied into oob, the
 // flags that were set on the packet and the source address of the
 // packet.
@@ -108,12 +107,13 @@
 	return
 }
 
-// WriteToUDP writes a UDP packet to addr via c, copying the payload from b.
+// WriteToUDP writes a UDP packet to addr via c, copying the payload
+// from b.
 //
-// WriteToUDP can be made to time out and return
-// an error with Timeout() == true after a fixed time limit;
-// see SetDeadline and SetWriteDeadline.
-// On packet-oriented connections, write timeouts are rare.
+// WriteToUDP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetWriteDeadline.  On packet-oriented connections, write timeouts
+// are rare.
 func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error) {
 	if !c.ok() {
 		return 0, syscall.EINVAL
@@ -158,8 +158,8 @@
 }
 
 // DialUDP connects to the remote address raddr on the network net,
-// which must be "udp", "udp4", or "udp6".  If laddr is not nil, it is used
-// as the local address for the connection.
+// which must be "udp", "udp4", or "udp6".  If laddr is not nil, it is
+// used as the local address for the connection.
 func DialUDP(net string, laddr, raddr *UDPAddr) (*UDPConn, error) {
 	return dialUDP(net, laddr, raddr, noDeadline)
 }
@@ -180,10 +180,13 @@
 	return newUDPConn(fd), nil
 }
 
-// ListenUDP listens for incoming UDP packets addressed to the
-// local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send UDP
-// packets with per-packet addressing.
+// ListenUDP listens for incoming UDP packets addressed to the local
+// address laddr.  Net must be "udp", "udp4", or "udp6".  If laddr has
+// a port of 0, ListenUDP will choose an available port.
+// The LocalAddr method of the returned UDPConn can be used to
+// discover the port.  The returned connection's ReadFrom and WriteTo
+// methods can be used to receive and send UDP packets with per-packet
+// addressing.
 func ListenUDP(net string, laddr *UDPAddr) (*UDPConn, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
@@ -201,9 +204,9 @@
 }
 
 // ListenMulticastUDP listens for incoming multicast UDP packets
-// addressed to the group address gaddr on ifi, which specifies
-// the interface to join.  ListenMulticastUDP uses default
-// multicast interface if ifi is nil.
+// addressed to the group address gaddr on ifi, which specifies the
+// interface to join.  ListenMulticastUDP uses default multicast
+// interface if ifi is nil.
 func ListenMulticastUDP(net string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go gcc-4.8.1/libgo/go/net/unicast_posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/unicast_posix_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -45,7 +45,7 @@
 // same port.
 func TestTCPListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
+	case "plan9":
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
@@ -69,65 +69,8 @@
 // same port.
 func TestUDPListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	}
-
-	toudpnet := func(net string) string {
-		switch net {
-		case "tcp":
-			return "udp"
-		case "tcp4":
-			return "udp4"
-		case "tcp6":
-			return "udp6"
-		}
-		return "<nil>"
-	}
-
-	for _, tt := range listenerTests {
-		if tt.wildcard && (testing.Short() || !*testExternal) {
-			continue
-		}
-		if tt.ipv6 && !supportsIPv6 {
-			continue
-		}
-		tt.net = toudpnet(tt.net)
-		l1, port := usableListenPacketPort(t, tt.net, tt.laddr)
-		checkFirstListener(t, tt.net, tt.laddr+":"+port, l1)
-		l2, err := ListenPacket(tt.net, tt.laddr+":"+port)
-		checkSecondListener(t, tt.net, tt.laddr+":"+port, err, l2)
-		l1.Close()
-	}
-}
-
-func TestSimpleTCPListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "plan9":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-		return
-	}
-
-	for _, tt := range listenerTests {
-		if tt.wildcard && (testing.Short() || !*testExternal) {
-			continue
-		}
-		if tt.ipv6 {
-			continue
-		}
-		l1, port := usableListenPort(t, tt.net, tt.laddr)
-		checkFirstListener(t, tt.net, tt.laddr+":"+port, l1)
-		l2, err := Listen(tt.net, tt.laddr+":"+port)
-		checkSecondListener(t, tt.net, tt.laddr+":"+port, err, l2)
-		l1.Close()
-	}
-}
-
-func TestSimpleUDPListener(t *testing.T) {
-	switch runtime.GOOS {
 	case "plan9":
 		t.Skipf("skipping test on %q", runtime.GOOS)
-		return
 	}
 
 	toudpnet := func(net string) string {
@@ -146,7 +89,7 @@
 		if tt.wildcard && (testing.Short() || !*testExternal) {
 			continue
 		}
-		if tt.ipv6 {
+		if tt.ipv6 && !supportsIPv6 {
 			continue
 		}
 		tt.net = toudpnet(tt.net)
@@ -231,7 +174,7 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if !supportsIPv6 {
-		return
+		t.Skip("ipv6 is not supported")
 	}
 
 	for _, tt := range dualStackListenerTests {
@@ -263,7 +206,7 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if !supportsIPv6 {
-		return
+		t.Skip("ipv6 is not supported")
 	}
 
 	toudpnet := func(net string) string {
diff -Naur gcc-4.8.1.orig/libgo/go/net/unix_test.go gcc-4.8.1/libgo/go/net/unix_test.go
--- gcc-4.8.1.orig/libgo/go/net/unix_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/unix_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -0,0 +1,246 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !plan9,!windows
+
+package net
+
+import (
+	"bytes"
+	"os"
+	"reflect"
+	"runtime"
+	"syscall"
+	"testing"
+	"time"
+)
+
+func TestReadUnixgramWithUnnamedSocket(t *testing.T) {
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unixgram", addr)
+	if err != nil {
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
+	}
+	c, err := ListenUnixgram("unixgram", la)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer func() {
+		c.Close()
+		os.Remove(addr)
+	}()
+
+	off := make(chan bool)
+	data := [5]byte{1, 2, 3, 4, 5}
+	go func() {
+		defer func() { off <- true }()
+		s, err := syscall.Socket(syscall.AF_UNIX, syscall.SOCK_DGRAM, 0)
+		if err != nil {
+			t.Errorf("syscall.Socket failed: %v", err)
+			return
+		}
+		defer syscall.Close(s)
+		rsa := &syscall.SockaddrUnix{Name: addr}
+		if err := syscall.Sendto(s, data[:], 0, rsa); err != nil {
+			t.Errorf("syscall.Sendto failed: %v", err)
+			return
+		}
+	}()
+
+	<-off
+	b := make([]byte, 64)
+	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
+	n, from, err := c.ReadFrom(b)
+	if err != nil {
+		t.Fatalf("UnixConn.ReadFrom failed: %v", err)
+	}
+	if from != nil {
+		t.Fatalf("neighbor address is %v", from)
+	}
+	if !bytes.Equal(b[:n], data[:]) {
+		t.Fatalf("got %v, want %v", b[:n], data[:])
+	}
+}
+
+func TestReadUnixgramWithZeroBytesBuffer(t *testing.T) {
+	// issue 4352: Recvfrom failed with "address family not
+	// supported by protocol family" if zero-length buffer provided
+
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unixgram", addr)
+	if err != nil {
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
+	}
+	c, err := ListenUnixgram("unixgram", la)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer func() {
+		c.Close()
+		os.Remove(addr)
+	}()
+
+	off := make(chan bool)
+	go func() {
+		defer func() { off <- true }()
+		c, err := DialUnix("unixgram", nil, la)
+		if err != nil {
+			t.Errorf("DialUnix failed: %v", err)
+			return
+		}
+		defer c.Close()
+		if _, err := c.Write([]byte{1, 2, 3, 4, 5}); err != nil {
+			t.Errorf("UnixConn.Write failed: %v", err)
+			return
+		}
+	}()
+
+	<-off
+	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
+	_, from, err := c.ReadFrom(nil)
+	if err != nil {
+		t.Fatalf("UnixConn.ReadFrom failed: %v", err)
+	}
+	if from != nil {
+		t.Fatalf("neighbor address is %v", from)
+	}
+}
+
+func TestUnixAutobind(t *testing.T) {
+	if runtime.GOOS != "linux" {
+		t.Skip("skipping: autobind is linux only")
+	}
+
+	laddr := &UnixAddr{Name: "", Net: "unixgram"}
+	c1, err := ListenUnixgram("unixgram", laddr)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer c1.Close()
+
+	// retrieve the autobind address
+	autoAddr := c1.LocalAddr().(*UnixAddr)
+	if len(autoAddr.Name) <= 1 {
+		t.Fatalf("invalid autobind address: %v", autoAddr)
+	}
+	if autoAddr.Name[0] != '@' {
+		t.Fatalf("invalid autobind address: %v", autoAddr)
+	}
+
+	c2, err := DialUnix("unixgram", nil, autoAddr)
+	if err != nil {
+		t.Fatalf("DialUnix failed: %v", err)
+	}
+	defer c2.Close()
+
+	if !reflect.DeepEqual(c1.LocalAddr(), c2.RemoteAddr()) {
+		t.Fatalf("expected autobind address %v, got %v", c1.LocalAddr(), c2.RemoteAddr())
+	}
+}
+
+func TestUnixConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", testUnixAddr()} {
+		taddr := testUnixAddr()
+		ta, err := ResolveUnixAddr("unix", taddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		ln, err := ListenUnix("unix", ta)
+		if err != nil {
+			t.Fatalf("ListenUnix failed: %v", err)
+		}
+		defer func() {
+			ln.Close()
+			os.Remove(taddr)
+		}()
+
+		done := make(chan int)
+		go transponder(t, ln, done)
+
+		la, err := ResolveUnixAddr("unix", laddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		c, err := DialUnix("unix", la, ta)
+		if err != nil {
+			t.Fatalf("DialUnix failed: %v", err)
+		}
+		defer func() {
+			c.Close()
+			if la != nil {
+				defer os.Remove(laddr)
+			}
+		}()
+		if _, err := c.Write([]byte("UNIXCONN LOCAL AND REMOTE NAME TEST")); err != nil {
+			t.Fatalf("UnixConn.Write failed: %v", err)
+		}
+
+		if runtime.GOOS == "linux" && laddr == "" {
+			laddr = "@" // autobind feature
+		}
+		var connAddrs = [3]struct{ got, want Addr }{
+			{ln.Addr(), ta},
+			{c.LocalAddr(), &UnixAddr{Name: laddr, Net: "unix"}},
+			{c.RemoteAddr(), ta},
+		}
+		for _, ca := range connAddrs {
+			if !reflect.DeepEqual(ca.got, ca.want) {
+				t.Fatalf("got %#v, expected %#v", ca.got, ca.want)
+			}
+		}
+
+		<-done
+	}
+}
+
+func TestUnixgramConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", testUnixAddr()} {
+		taddr := testUnixAddr()
+		ta, err := ResolveUnixAddr("unixgram", taddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		c1, err := ListenUnixgram("unixgram", ta)
+		if err != nil {
+			t.Fatalf("ListenUnixgram failed: %v", err)
+		}
+		defer func() {
+			c1.Close()
+			os.Remove(taddr)
+		}()
+
+		var la *UnixAddr
+		if laddr != "" {
+			var err error
+			if la, err = ResolveUnixAddr("unixgram", laddr); err != nil {
+				t.Fatalf("ResolveUnixAddr failed: %v", err)
+			}
+		}
+		c2, err := DialUnix("unixgram", la, ta)
+		if err != nil {
+			t.Fatalf("DialUnix failed: %v", err)
+		}
+		defer func() {
+			c2.Close()
+			if la != nil {
+				defer os.Remove(laddr)
+			}
+		}()
+
+		if runtime.GOOS == "linux" && laddr == "" {
+			laddr = "@" // autobind feature
+		}
+		var connAddrs = [4]struct{ got, want Addr }{
+			{c1.LocalAddr(), ta},
+			{c1.RemoteAddr(), nil},
+			{c2.LocalAddr(), &UnixAddr{Name: laddr, Net: "unixgram"}},
+			{c2.RemoteAddr(), ta},
+		}
+		for _, ca := range connAddrs {
+			if !reflect.DeepEqual(ca.got, ca.want) {
+				t.Fatalf("got %#v, expected %#v", ca.got, ca.want)
+			}
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock.go gcc-4.8.1/libgo/go/net/unixsock.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock.go	2011-12-03 02:17:34.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/unixsock.go	2013-10-01 16:06:44.192554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Unix domain sockets
-
 package net
 
 // UnixAddr represents the address of a Unix domain socket end point.
@@ -12,7 +10,8 @@
 	Net  string
 }
 
-// Network returns the address's network name, "unix" or "unixgram".
+// Network returns the address's network name, "unix", "unixgram" or
+// "unixpacket".
 func (a *UnixAddr) Network() string {
 	return a.Net
 }
@@ -36,11 +35,9 @@
 // "unixpacket".
 func ResolveUnixAddr(net, addr string) (*UnixAddr, error) {
 	switch net {
-	case "unix":
-	case "unixpacket":
-	case "unixgram":
+	case "unix", "unixgram", "unixpacket":
+		return &UnixAddr{Name: addr, Net: net}, nil
 	default:
 		return nil, UnknownNetworkError(net)
 	}
-	return &UnixAddr{addr, net}, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go gcc-4.8.1/libgo/go/net/unixsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/unixsock_plan9.go	2013-10-01 16:06:44.192554279 +0000
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Unix domain sockets stubs for Plan 9
-
 package net
 
 import (
@@ -93,8 +91,7 @@
 type UnixListener struct{}
 
 // ListenUnix announces on the Unix domain socket laddr and returns a
-// Unix listener.  The network net must be "unix", "unixgram" or
-// "unixpacket".
+// Unix listener.  The network net must be "unix" or "unixpacket".
 func ListenUnix(net string, laddr *UnixAddr) (*UnixListener, error) {
 	return nil, syscall.EPLAN9
 }
@@ -129,14 +126,18 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *UnixListener) File() (*os.File, error) {
 	return nil, syscall.EPLAN9
 }
 
 // ListenUnixgram listens for incoming Unix datagram packets addressed
-// to the local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send packets with
-// per-packet addressing.  The network net must be "unixgram".
+// to the local address laddr.  The network net must be "unixgram".
+// The returned connection's ReadFrom and WriteTo methods can be used
+// to receive and send packets with per-packet addressing.
 func ListenUnixgram(net string, laddr *UnixAddr) (*UnixConn, error) {
 	return nil, syscall.EPLAN9
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go gcc-4.8.1/libgo/go/net/unixsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/unixsock_posix.go	2013-10-01 16:06:44.192554279 +0000
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Unix domain sockets
-
 package net
 
 import (
@@ -15,6 +13,13 @@
 	"time"
 )
 
+func (a *UnixAddr) isUnnamed() bool {
+	if a == nil || a.Name == "" {
+		return true
+	}
+	return false
+}
+
 func unixSocket(net string, laddr, raddr *UnixAddr, mode string, deadline time.Time) (*netFD, error) {
 	var sotype int
 	switch net {
@@ -31,12 +36,12 @@
 	var la, ra syscall.Sockaddr
 	switch mode {
 	case "dial":
-		if laddr != nil {
+		if !laddr.isUnnamed() {
 			la = &syscall.SockaddrUnix{Name: laddr.Name}
 		}
 		if raddr != nil {
 			ra = &syscall.SockaddrUnix{Name: raddr.Name}
-		} else if sotype != syscall.SOCK_DGRAM || laddr == nil {
+		} else if sotype != syscall.SOCK_DGRAM || laddr.isUnnamed() {
 			return nil, &OpError{Op: mode, Net: net, Err: errMissingAddress}
 		}
 	case "listen":
@@ -69,21 +74,21 @@
 
 func sockaddrToUnix(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unix"}
+		return &UnixAddr{Name: s.Name, Net: "unix"}
 	}
 	return nil
 }
 
 func sockaddrToUnixgram(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unixgram"}
+		return &UnixAddr{Name: s.Name, Net: "unixgram"}
 	}
 	return nil
 }
 
 func sockaddrToUnixpacket(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unixpacket"}
+		return &UnixAddr{Name: s.Name, Net: "unixpacket"}
 	}
 	return nil
 }
@@ -92,14 +97,13 @@
 	switch sotype {
 	case syscall.SOCK_STREAM:
 		return "unix"
-	case syscall.SOCK_SEQPACKET:
-		return "unixpacket"
 	case syscall.SOCK_DGRAM:
 		return "unixgram"
+	case syscall.SOCK_SEQPACKET:
+		return "unixpacket"
 	default:
 		panic("sotypeToNet unknown socket type")
 	}
-	return ""
 }
 
 // UnixConn is an implementation of the Conn interface for connections
@@ -124,18 +128,20 @@
 	n, sa, err := c.fd.ReadFrom(b)
 	switch sa := sa.(type) {
 	case *syscall.SockaddrUnix:
-		addr = &UnixAddr{sa.Name, sotypeToNet(c.fd.sotype)}
+		if sa.Name != "" {
+			addr = &UnixAddr{Name: sa.Name, Net: sotypeToNet(c.fd.sotype)}
+		}
 	}
 	return
 }
 
 // ReadFrom implements the PacketConn ReadFrom method.
-func (c *UnixConn) ReadFrom(b []byte) (n int, addr Addr, err error) {
+func (c *UnixConn) ReadFrom(b []byte) (int, Addr, error) {
 	if !c.ok() {
 		return 0, nil, syscall.EINVAL
 	}
-	n, uaddr, err := c.ReadFromUnix(b)
-	return n, uaddr.toAddr(), err
+	n, addr, err := c.ReadFromUnix(b)
+	return n, addr.toAddr(), err
 }
 
 // ReadMsgUnix reads a packet from c, copying the payload into b and
@@ -149,7 +155,9 @@
 	n, oobn, flags, sa, err := c.fd.ReadMsg(b, oob)
 	switch sa := sa.(type) {
 	case *syscall.SockaddrUnix:
-		addr = &UnixAddr{sa.Name, sotypeToNet(c.fd.sotype)}
+		if sa.Name != "" {
+			addr = &UnixAddr{Name: sa.Name, Net: sotypeToNet(c.fd.sotype)}
+		}
 	}
 	return
 }
@@ -247,11 +255,10 @@
 }
 
 // ListenUnix announces on the Unix domain socket laddr and returns a
-// Unix listener.  The network net must be "unix", "unixgram" or
-// "unixpacket".
+// Unix listener.  The network net must be "unix" or "unixpacket".
 func ListenUnix(net string, laddr *UnixAddr) (*UnixListener, error) {
 	switch net {
-	case "unix", "unixgram", "unixpacket":
+	case "unix", "unixpacket":
 	default:
 		return nil, UnknownNetworkError(net)
 	}
@@ -264,7 +271,7 @@
 	}
 	err = syscall.Listen(fd.sysfd, listenerBacklog)
 	if err != nil {
-		closesocket(fd.sysfd)
+		fd.Close()
 		return nil, &OpError{Op: "listen", Net: net, Addr: laddr, Err: err}
 	}
 	return &UnixListener{fd, laddr.Name}, nil
@@ -332,12 +339,16 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *UnixListener) File() (f *os.File, err error) { return l.fd.dup() }
 
 // ListenUnixgram listens for incoming Unix datagram packets addressed
-// to the local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send packets with
-// per-packet addressing.  The network net must be "unixgram".
+// to the local address laddr.  The network net must be "unixgram".
+// The returned connection's ReadFrom and WriteTo methods can be used
+// to receive and send packets with per-packet addressing.
 func ListenUnixgram(net string, laddr *UnixAddr) (*UnixConn, error) {
 	switch net {
 	case "unixgram":
diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url.go gcc-4.8.1/libgo/go/net/url/url.go
--- gcc-4.8.1.orig/libgo/go/net/url/url.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/url/url.go	2013-10-01 16:06:44.192554279 +0000
@@ -220,6 +220,13 @@
 //
 //	scheme:opaque[?query][#fragment]
 //
+// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
+// A consequence is that it is impossible to tell which slashes in the Path were
+// slashes in the raw URL and which were %2f. This distinction is rarely important,
+// but when it is a client must use other routines to parse the raw URL or construct
+// the parsed URL. For example, an HTTP server can consult req.RequestURI, and
+// an HTTP client can use URL{Host: "example.com", Opaque: "//example.com/Go%2f"}
+// instead of URL{Host: "example.com", Path: "/Go/"}.
 type URL struct {
 	Scheme   string
 	Opaque   string    // encoded opaque data
@@ -310,23 +317,22 @@
 // Maybe s is of the form t c u.
 // If so, return t, c u (or t, u if cutc == true).
 // If not, return s, "".
-func split(s string, c byte, cutc bool) (string, string) {
-	for i := 0; i < len(s); i++ {
-		if s[i] == c {
-			if cutc {
-				return s[0:i], s[i+1:]
-			}
-			return s[0:i], s[i:]
-		}
+func split(s string, c string, cutc bool) (string, string) {
+	i := strings.Index(s, c)
+	if i < 0 {
+		return s, ""
 	}
-	return s, ""
+	if cutc {
+		return s[0:i], s[i+len(c):]
+	}
+	return s[0:i], s[i:]
 }
 
 // Parse parses rawurl into a URL structure.
 // The rawurl may be relative or absolute.
 func Parse(rawurl string) (url *URL, err error) {
 	// Cut off #frag
-	u, frag := split(rawurl, '#', true)
+	u, frag := split(rawurl, "#", true)
 	if url, err = parse(u, false); err != nil {
 		return nil, err
 	}
@@ -355,7 +361,7 @@
 func parse(rawurl string, viaRequest bool) (url *URL, err error) {
 	var rest string
 
-	if rawurl == "" {
+	if rawurl == "" && viaRequest {
 		err = errors.New("empty url")
 		goto Error
 	}
@@ -371,8 +377,9 @@
 	if url.Scheme, rest, err = getscheme(rawurl); err != nil {
 		goto Error
 	}
+	url.Scheme = strings.ToLower(url.Scheme)
 
-	rest, url.RawQuery = split(rest, '?', true)
+	rest, url.RawQuery = split(rest, "?", true)
 
 	if !strings.HasPrefix(rest, "/") {
 		if url.Scheme != "" {
@@ -388,7 +395,7 @@
 
 	if (url.Scheme != "" || !viaRequest && !strings.HasPrefix(rest, "///")) && strings.HasPrefix(rest, "//") {
 		var authority string
-		authority, rest = split(rest[2:], '/', false)
+		authority, rest = split(rest[2:], "/", false)
 		url.User, url.Host, err = parseAuthority(authority)
 		if err != nil {
 			goto Error
@@ -420,7 +427,7 @@
 		}
 		user = User(userinfo)
 	} else {
-		username, password := split(userinfo, ':', true)
+		username, password := split(userinfo, ":", true)
 		if username, err = unescape(username, encodeUserPassword); err != nil {
 			return
 		}
@@ -575,43 +582,39 @@
 }
 
 // resolvePath applies special path segments from refs and applies
-// them to base, per RFC 2396.
-func resolvePath(basepath string, refpath string) string {
-	base := strings.Split(basepath, "/")
-	refs := strings.Split(refpath, "/")
-	if len(base) == 0 {
-		base = []string{""}
+// them to base, per RFC 3986.
+func resolvePath(base, ref string) string {
+	var full string
+	if ref == "" {
+		full = base
+	} else if ref[0] != '/' {
+		i := strings.LastIndex(base, "/")
+		full = base[:i+1] + ref
+	} else {
+		full = ref
 	}
-
-	rm := true
-	for idx, ref := range refs {
-		switch {
-		case ref == ".":
-			if idx == 0 {
-				base[len(base)-1] = ""
-				rm = true
-			} else {
-				rm = false
-			}
-		case ref == "..":
-			newLen := len(base) - 1
-			if newLen < 1 {
-				newLen = 1
-			}
-			base = base[0:newLen]
-			if rm {
-				base[len(base)-1] = ""
+	if full == "" {
+		return ""
+	}
+	var dst []string
+	src := strings.Split(full, "/")
+	for _, elem := range src {
+		switch elem {
+		case ".":
+			// drop
+		case "..":
+			if len(dst) > 0 {
+				dst = dst[:len(dst)-1]
 			}
 		default:
-			if idx == 0 || base[len(base)-1] == "" {
-				base[len(base)-1] = ref
-			} else {
-				base = append(base, ref)
-			}
-			rm = false
+			dst = append(dst, elem)
 		}
 	}
-	return strings.Join(base, "/")
+	if last := src[len(src)-1]; last == "." || last == ".." {
+		// Add final slash to the joined path.
+		dst = append(dst, "")
+	}
+	return "/" + strings.TrimLeft(strings.Join(dst, "/"), "/")
 }
 
 // IsAbs returns true if the URL is absolute.
@@ -631,43 +634,39 @@
 }
 
 // ResolveReference resolves a URI reference to an absolute URI from
-// an absolute base URI, per RFC 2396 Section 5.2.  The URI reference
+// an absolute base URI, per RFC 3986 Section 5.2.  The URI reference
 // may be relative or absolute.  ResolveReference always returns a new
 // URL instance, even if the returned URL is identical to either the
 // base or reference. If ref is an absolute URL, then ResolveReference
 // ignores base and returns a copy of ref.
 func (u *URL) ResolveReference(ref *URL) *URL {
-	if ref.IsAbs() {
-		url := *ref
+	url := *ref
+	if ref.Scheme == "" {
+		url.Scheme = u.Scheme
+	}
+	if ref.Scheme != "" || ref.Host != "" || ref.User != nil {
+		// The "absoluteURI" or "net_path" cases.
+		url.Path = resolvePath(ref.Path, "")
 		return &url
 	}
-	// relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ]
-	url := *u
-	url.RawQuery = ref.RawQuery
-	url.Fragment = ref.Fragment
 	if ref.Opaque != "" {
-		url.Opaque = ref.Opaque
 		url.User = nil
 		url.Host = ""
 		url.Path = ""
 		return &url
 	}
-	if ref.Host != "" || ref.User != nil {
-		// The "net_path" case.
-		url.Host = ref.Host
-		url.User = ref.User
-	}
-	if strings.HasPrefix(ref.Path, "/") {
-		// The "abs_path" case.
-		url.Path = ref.Path
-	} else {
-		// The "rel_path" case.
-		path := resolvePath(u.Path, ref.Path)
-		if !strings.HasPrefix(path, "/") {
-			path = "/" + path
+	if ref.Path == "" {
+		if ref.RawQuery == "" {
+			url.RawQuery = u.RawQuery
+			if ref.Fragment == "" {
+				url.Fragment = u.Fragment
+			}
 		}
-		url.Path = path
 	}
+	// The "abs_path" or "rel_path" cases.
+	url.Host = u.Host
+	url.User = u.User
+	url.Path = resolvePath(u.Path, ref.Path)
 	return &url
 }
 
@@ -686,6 +685,10 @@
 		if result == "" {
 			result = "/"
 		}
+	} else {
+		if strings.HasPrefix(result, "//") {
+			result = u.Scheme + ":" + result
+		}
 	}
 	if u.RawQuery != "" {
 		result += "?" + u.RawQuery
diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url_test.go gcc-4.8.1/libgo/go/net/url/url_test.go
--- gcc-4.8.1.orig/libgo/go/net/url/url_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/net/url/url_test.go	2013-10-01 16:06:44.192554279 +0000
@@ -251,6 +251,15 @@
 		},
 		"file:///home/adg/rabbits",
 	},
+	// case-insensitive scheme
+	{
+		"MaIlTo:webmaster@golang.org",
+		&URL{
+			Scheme: "mailto",
+			Opaque: "webmaster@golang.org",
+		},
+		"mailto:webmaster@golang.org",
+	},
 }
 
 // more useful string for debugging than fmt's struct printer
@@ -514,18 +523,18 @@
 var resolvePathTests = []struct {
 	base, ref, expected string
 }{
-	{"a/b", ".", "a/"},
-	{"a/b", "c", "a/c"},
-	{"a/b", "..", ""},
-	{"a/", "..", ""},
-	{"a/", "../..", ""},
-	{"a/b/c", "..", "a/"},
-	{"a/b/c", "../d", "a/d"},
-	{"a/b/c", ".././d", "a/d"},
-	{"a/b", "./..", ""},
-	{"a/./b", ".", "a/./"},
-	{"a/../", ".", "a/../"},
-	{"a/.././b", "c", "a/.././c"},
+	{"a/b", ".", "/a/"},
+	{"a/b", "c", "/a/c"},
+	{"a/b", "..", "/"},
+	{"a/", "..", "/"},
+	{"a/", "../..", "/"},
+	{"a/b/c", "..", "/a/"},
+	{"a/b/c", "../d", "/a/d"},
+	{"a/b/c", ".././d", "/a/d"},
+	{"a/b", "./..", "/"},
+	{"a/./b", ".", "/a/"},
+	{"a/../", ".", "/"},
+	{"a/.././b", "c", "/c"},
 }
 
 func TestResolvePath(t *testing.T) {
@@ -578,16 +587,71 @@
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/././../../tail", "http://foo.com/bar/quux/tail"},
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/./.././../tail", "http://foo.com/bar/quux/tail"},
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/dotdot/./../../.././././tail", "http://foo.com/bar/quux/tail"},
-	{"http://foo.com/bar/baz", "quux/./dotdot/../dotdot/../dot/./tail/..", "http://foo.com/bar/quux/dot"},
+	{"http://foo.com/bar/baz", "quux/./dotdot/../dotdot/../dot/./tail/..", "http://foo.com/bar/quux/dot/"},
 
-	// "." and ".." in the base aren't special
-	{"http://foo.com/dot/./dotdot/../foo/bar", "../baz", "http://foo.com/dot/./dotdot/../baz"},
+	// Remove any dot-segments prior to forming the target URI.
+	// http://tools.ietf.org/html/rfc3986#section-5.2.4
+	{"http://foo.com/dot/./dotdot/../foo/bar", "../baz", "http://foo.com/dot/baz"},
 
 	// Triple dot isn't special
 	{"http://foo.com/bar", "...", "http://foo.com/..."},
 
 	// Fragment
 	{"http://foo.com/bar", ".#frag", "http://foo.com/#frag"},
+
+	// RFC 3986: Normal Examples
+	// http://tools.ietf.org/html/rfc3986#section-5.4.1
+	{"http://a/b/c/d;p?q", "g:h", "g:h"},
+	{"http://a/b/c/d;p?q", "g", "http://a/b/c/g"},
+	{"http://a/b/c/d;p?q", "./g", "http://a/b/c/g"},
+	{"http://a/b/c/d;p?q", "g/", "http://a/b/c/g/"},
+	{"http://a/b/c/d;p?q", "/g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "//g", "http://g"},
+	{"http://a/b/c/d;p?q", "?y", "http://a/b/c/d;p?y"},
+	{"http://a/b/c/d;p?q", "g?y", "http://a/b/c/g?y"},
+	{"http://a/b/c/d;p?q", "#s", "http://a/b/c/d;p?q#s"},
+	{"http://a/b/c/d;p?q", "g#s", "http://a/b/c/g#s"},
+	{"http://a/b/c/d;p?q", "g?y#s", "http://a/b/c/g?y#s"},
+	{"http://a/b/c/d;p?q", ";x", "http://a/b/c/;x"},
+	{"http://a/b/c/d;p?q", "g;x", "http://a/b/c/g;x"},
+	{"http://a/b/c/d;p?q", "g;x?y#s", "http://a/b/c/g;x?y#s"},
+	{"http://a/b/c/d;p?q", "", "http://a/b/c/d;p?q"},
+	{"http://a/b/c/d;p?q", ".", "http://a/b/c/"},
+	{"http://a/b/c/d;p?q", "./", "http://a/b/c/"},
+	{"http://a/b/c/d;p?q", "..", "http://a/b/"},
+	{"http://a/b/c/d;p?q", "../", "http://a/b/"},
+	{"http://a/b/c/d;p?q", "../g", "http://a/b/g"},
+	{"http://a/b/c/d;p?q", "../..", "http://a/"},
+	{"http://a/b/c/d;p?q", "../../", "http://a/"},
+	{"http://a/b/c/d;p?q", "../../g", "http://a/g"},
+
+	// RFC 3986: Abnormal Examples
+	// http://tools.ietf.org/html/rfc3986#section-5.4.2
+	{"http://a/b/c/d;p?q", "../../../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "../../../../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "/./g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "/../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "g.", "http://a/b/c/g."},
+	{"http://a/b/c/d;p?q", ".g", "http://a/b/c/.g"},
+	{"http://a/b/c/d;p?q", "g..", "http://a/b/c/g.."},
+	{"http://a/b/c/d;p?q", "..g", "http://a/b/c/..g"},
+	{"http://a/b/c/d;p?q", "./../g", "http://a/b/g"},
+	{"http://a/b/c/d;p?q", "./g/.", "http://a/b/c/g/"},
+	{"http://a/b/c/d;p?q", "g/./h", "http://a/b/c/g/h"},
+	{"http://a/b/c/d;p?q", "g/../h", "http://a/b/c/h"},
+	{"http://a/b/c/d;p?q", "g;x=1/./y", "http://a/b/c/g;x=1/y"},
+	{"http://a/b/c/d;p?q", "g;x=1/../y", "http://a/b/c/y"},
+	{"http://a/b/c/d;p?q", "g?y/./x", "http://a/b/c/g?y/./x"},
+	{"http://a/b/c/d;p?q", "g?y/../x", "http://a/b/c/g?y/../x"},
+	{"http://a/b/c/d;p?q", "g#s/./x", "http://a/b/c/g#s/./x"},
+	{"http://a/b/c/d;p?q", "g#s/../x", "http://a/b/c/g#s/../x"},
+
+	// Extras.
+	{"https://a/b/c/d;p?q", "//g?q", "https://g?q"},
+	{"https://a/b/c/d;p?q", "//g#s", "https://g#s"},
+	{"https://a/b/c/d;p?q", "//g/d/e/f?y#s", "https://g/d/e/f?y#s"},
+	{"https://a/b/c/d;p#s", "?y", "https://a/b/c/d;p?y"},
+	{"https://a/b/c/d;p?q#s", "?y", "https://a/b/c/d;p?y"},
 }
 
 func TestResolveReference(t *testing.T) {
@@ -598,91 +662,44 @@
 		}
 		return u
 	}
+	opaque := &URL{Scheme: "scheme", Opaque: "opaque"}
 	for _, test := range resolveReferenceTests {
 		base := mustParse(test.base)
 		rel := mustParse(test.rel)
 		url := base.ResolveReference(rel)
-		urlStr := url.String()
-		if urlStr != test.expected {
-			t.Errorf("Resolving %q + %q != %q; got %q", test.base, test.rel, test.expected, urlStr)
+		if url.String() != test.expected {
+			t.Errorf("URL(%q).ResolveReference(%q) == %q, got %q", test.base, test.rel, test.expected, url.String())
 		}
-	}
-
-	// Test that new instances are returned.
-	base := mustParse("http://foo.com/")
-	abs := base.ResolveReference(mustParse("."))
-	if base == abs {
-		t.Errorf("Expected no-op reference to return new URL instance.")
-	}
-	barRef := mustParse("http://bar.com/")
-	abs = base.ResolveReference(barRef)
-	if abs == barRef {
-		t.Errorf("Expected resolution of absolute reference to return new URL instance.")
-	}
-
-	// Test the convenience wrapper too
-	base = mustParse("http://foo.com/path/one/")
-	abs, _ = base.Parse("../two")
-	expected := "http://foo.com/path/two"
-	if abs.String() != expected {
-		t.Errorf("Parse wrapper got %q; expected %q", abs.String(), expected)
-	}
-	_, err := base.Parse("")
-	if err == nil {
-		t.Errorf("Expected an error from Parse wrapper parsing an empty string.")
-	}
-
-	// Ensure Opaque resets the URL.
-	base = mustParse("scheme://user@foo.com/bar")
-	abs = base.ResolveReference(&URL{Opaque: "opaque"})
-	want := mustParse("scheme:opaque")
-	if *abs != *want {
-		t.Errorf("ResolveReference failed to resolve opaque URL: want %#v, got %#v", abs, want)
-	}
-}
-
-func TestResolveReferenceOpaque(t *testing.T) {
-	mustParse := func(url string) *URL {
-		u, err := Parse(url)
+		// Ensure that new instances are returned.
+		if base == url {
+			t.Errorf("Expected URL.ResolveReference to return new URL instance.")
+		}
+		// Test the convenience wrapper too.
+		url, err := base.Parse(test.rel)
 		if err != nil {
-			t.Fatalf("Expected URL to parse: %q, got error: %v", url, err)
+			t.Errorf("URL(%q).Parse(%q) failed: %v", test.base, test.rel, err)
+		} else if url.String() != test.expected {
+			t.Errorf("URL(%q).Parse(%q) == %q, got %q", test.base, test.rel, test.expected, url.String())
+		} else if base == url {
+			// Ensure that new instances are returned for the wrapper too.
+			t.Errorf("Expected URL.Parse to return new URL instance.")
+		}
+		// Ensure Opaque resets the URL.
+		url = base.ResolveReference(opaque)
+		if *url != *opaque {
+			t.Errorf("ResolveReference failed to resolve opaque URL: want %#v, got %#v", url, opaque)
 		}
-		return u
-	}
-	for _, test := range resolveReferenceTests {
-		base := mustParse(test.base)
-		rel := mustParse(test.rel)
-		url := base.ResolveReference(rel)
-		urlStr := url.String()
-		if urlStr != test.expected {
-			t.Errorf("Resolving %q + %q != %q; got %q", test.base, test.rel, test.expected, urlStr)
+		// Test the convenience wrapper with an opaque URL too.
+		url, err = base.Parse("scheme:opaque")
+		if err != nil {
+			t.Errorf(`URL(%q).Parse("scheme:opaque") failed: %v`, test.base, err)
+		} else if *url != *opaque {
+			t.Errorf("Parse failed to resolve opaque URL: want %#v, got %#v", url, opaque)
+		} else if base == url {
+			// Ensure that new instances are returned, again.
+			t.Errorf("Expected URL.Parse to return new URL instance.")
 		}
 	}
-
-	// Test that new instances are returned.
-	base := mustParse("http://foo.com/")
-	abs := base.ResolveReference(mustParse("."))
-	if base == abs {
-		t.Errorf("Expected no-op reference to return new URL instance.")
-	}
-	barRef := mustParse("http://bar.com/")
-	abs = base.ResolveReference(barRef)
-	if abs == barRef {
-		t.Errorf("Expected resolution of absolute reference to return new URL instance.")
-	}
-
-	// Test the convenience wrapper too
-	base = mustParse("http://foo.com/path/one/")
-	abs, _ = base.Parse("../two")
-	expected := "http://foo.com/path/two"
-	if abs.String() != expected {
-		t.Errorf("Parse wrapper got %q; expected %q", abs.String(), expected)
-	}
-	_, err := base.Parse("")
-	if err == nil {
-		t.Errorf("Expected an error from Parse wrapper parsing an empty string.")
-	}
-
 }
 
 func TestQueryValues(t *testing.T) {
@@ -789,6 +806,24 @@
 		},
 		"/a%20b",
 	},
+	// golang.org/issue/4860 variant 1
+	{
+		&URL{
+			Scheme: "http",
+			Host:   "example.com",
+			Opaque: "/%2F/%2F/",
+		},
+		"/%2F/%2F/",
+	},
+	// golang.org/issue/4860 variant 2
+	{
+		&URL{
+			Scheme: "http",
+			Host:   "example.com",
+			Opaque: "//other.example.com/%2F/%2F/",
+		},
+		"http://other.example.com/%2F/%2F/",
+	},
 	{
 		&URL{
 			Scheme:   "http",
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/common.go gcc-4.8.1/libgo/go/old/netchan/common.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/common.go	2012-01-25 21:54:22.000000000 +0000
+++ gcc-4.8.1/libgo/go/old/netchan/common.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,338 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"encoding/gob"
-	"errors"
-	"io"
-	"reflect"
-	"sync"
-	"time"
-)
-
-// The direction of a connection from the client's perspective.
-type Dir int
-
-const (
-	Recv Dir = iota
-	Send
-)
-
-func (dir Dir) String() string {
-	switch dir {
-	case Recv:
-		return "Recv"
-	case Send:
-		return "Send"
-	}
-	return "???"
-}
-
-// Payload types
-const (
-	payRequest = iota // request structure follows
-	payError          // error structure follows
-	payData           // user payload follows
-	payAck            // acknowledgement; no payload
-	payClosed         // channel is now closed
-	payAckSend        // payload has been delivered.
-)
-
-// A header is sent as a prefix to every transmission.  It will be followed by
-// a request structure, an error structure, or an arbitrary user payload structure.
-type header struct {
-	Id          int
-	PayloadType int
-	SeqNum      int64
-}
-
-// Sent with a header once per channel from importer to exporter to report
-// that it wants to bind to a channel with the specified direction for count
-// messages, with space for size buffered values. If count is -1, it means unlimited.
-type request struct {
-	Name  string
-	Count int64
-	Size  int
-	Dir   Dir
-}
-
-// Sent with a header to report an error.
-type error_ struct {
-	Error string
-}
-
-// Used to unify management of acknowledgements for import and export.
-type unackedCounter interface {
-	unackedCount() int64
-	ack() int64
-	seq() int64
-}
-
-// A channel and its direction.
-type chanDir struct {
-	ch  reflect.Value
-	dir Dir
-}
-
-// clientSet contains the objects and methods needed for tracking
-// clients of an exporter and draining outstanding messages.
-type clientSet struct {
-	mu      sync.Mutex // protects access to channel and client maps
-	names   map[string]*chanDir
-	clients map[unackedCounter]bool
-}
-
-// Mutex-protected encoder and decoder pair.
-type encDec struct {
-	decLock sync.Mutex
-	dec     *gob.Decoder
-	encLock sync.Mutex
-	enc     *gob.Encoder
-}
-
-func newEncDec(conn io.ReadWriter) *encDec {
-	return &encDec{
-		dec: gob.NewDecoder(conn),
-		enc: gob.NewEncoder(conn),
-	}
-}
-
-// Decode an item from the connection.
-func (ed *encDec) decode(value reflect.Value) error {
-	ed.decLock.Lock()
-	err := ed.dec.DecodeValue(value)
-	if err != nil {
-		// TODO: tear down connection?
-	}
-	ed.decLock.Unlock()
-	return err
-}
-
-// Encode a header and payload onto the connection.
-func (ed *encDec) encode(hdr *header, payloadType int, payload interface{}) error {
-	ed.encLock.Lock()
-	hdr.PayloadType = payloadType
-	err := ed.enc.Encode(hdr)
-	if err == nil {
-		if payload != nil {
-			err = ed.enc.Encode(payload)
-		}
-	}
-	if err != nil {
-		// TODO: tear down connection if there is an error?
-	}
-	ed.encLock.Unlock()
-	return err
-}
-
-// See the comment for Exporter.Drain.
-func (cs *clientSet) drain(timeout time.Duration) error {
-	deadline := time.Now().Add(timeout)
-	for {
-		pending := false
-		cs.mu.Lock()
-		// Any messages waiting for a client?
-		for _, chDir := range cs.names {
-			if chDir.ch.Len() > 0 {
-				pending = true
-			}
-		}
-		// Any unacknowledged messages?
-		for client := range cs.clients {
-			n := client.unackedCount()
-			if n > 0 { // Check for > rather than != just to be safe.
-				pending = true
-				break
-			}
-		}
-		cs.mu.Unlock()
-		if !pending {
-			break
-		}
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
-
-// See the comment for Exporter.Sync.
-func (cs *clientSet) sync(timeout time.Duration) error {
-	deadline := time.Now().Add(timeout)
-	// seq remembers the clients and their seqNum at point of entry.
-	seq := make(map[unackedCounter]int64)
-	cs.mu.Lock()
-	for client := range cs.clients {
-		seq[client] = client.seq()
-	}
-	cs.mu.Unlock()
-	for {
-		pending := false
-		cs.mu.Lock()
-		// Any unacknowledged messages?  Look only at clients that existed
-		// when we started and are still in this client set.
-		for client := range seq {
-			if _, ok := cs.clients[client]; ok {
-				if client.ack() < seq[client] {
-					pending = true
-					break
-				}
-			}
-		}
-		cs.mu.Unlock()
-		if !pending {
-			break
-		}
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
-
-// A netChan represents a channel imported or exported
-// on a single connection. Flow is controlled by the receiving
-// side by sending payAckSend messages when values
-// are delivered into the local channel.
-type netChan struct {
-	*chanDir
-	name   string
-	id     int
-	size   int // buffer size of channel.
-	closed bool
-
-	// sender-specific state
-	ackCh chan bool // buffered with space for all the acks we need
-	space int       // available space.
-
-	// receiver-specific state
-	sendCh chan reflect.Value // buffered channel of values received from other end.
-	ed     *encDec            // so that we can send acks.
-	count  int64              // number of values still to receive.
-}
-
-// Create a new netChan with the given name (only used for
-// messages), id, direction, buffer size, and count.
-// The connection to the other side is represented by ed.
-func newNetChan(name string, id int, ch *chanDir, ed *encDec, size int, count int64) *netChan {
-	c := &netChan{chanDir: ch, name: name, id: id, size: size, ed: ed, count: count}
-	if c.dir == Send {
-		c.ackCh = make(chan bool, size)
-		c.space = size
-	}
-	return c
-}
-
-// Close the channel.
-func (nch *netChan) close() {
-	if nch.closed {
-		return
-	}
-	if nch.dir == Recv {
-		if nch.sendCh != nil {
-			// If the sender goroutine is active, close the channel to it.
-			// It will close nch.ch when it can.
-			close(nch.sendCh)
-		} else {
-			nch.ch.Close()
-		}
-	} else {
-		nch.ch.Close()
-		close(nch.ackCh)
-	}
-	nch.closed = true
-}
-
-// Send message from remote side to local receiver.
-func (nch *netChan) send(val reflect.Value) {
-	if nch.dir != Recv {
-		panic("send on wrong direction of channel")
-	}
-	if nch.sendCh == nil {
-		// If possible, do local send directly and ack immediately.
-		if nch.ch.TrySend(val) {
-			nch.sendAck()
-			return
-		}
-		// Start sender goroutine to manage delayed delivery of values.
-		nch.sendCh = make(chan reflect.Value, nch.size)
-		go nch.sender()
-	}
-	select {
-	case nch.sendCh <- val:
-		// ok
-	default:
-		// TODO: should this be more resilient?
-		panic("netchan: remote sender sent more values than allowed")
-	}
-}
-
-// sendAck sends an acknowledgment that a message has left
-// the channel's buffer. If the messages remaining to be sent
-// will fit in the channel's buffer, then we don't
-// need to send an ack.
-func (nch *netChan) sendAck() {
-	if nch.count < 0 || nch.count > int64(nch.size) {
-		nch.ed.encode(&header{Id: nch.id}, payAckSend, nil)
-	}
-	if nch.count > 0 {
-		nch.count--
-	}
-}
-
-// The sender process forwards items from the sending queue
-// to the destination channel, acknowledging each item.
-func (nch *netChan) sender() {
-	if nch.dir != Recv {
-		panic("sender on wrong direction of channel")
-	}
-	// When Exporter.Hangup is called, the underlying channel is closed,
-	// and so we may get a "too many operations on closed channel" error
-	// if there are outstanding messages in sendCh.
-	// Make sure that this doesn't panic the whole program.
-	defer func() {
-		if r := recover(); r != nil {
-			// TODO check that r is "too many operations", otherwise re-panic.
-		}
-	}()
-	for v := range nch.sendCh {
-		nch.ch.Send(v)
-		nch.sendAck()
-	}
-	nch.ch.Close()
-}
-
-// Receive value from local side for sending to remote side.
-func (nch *netChan) recv() (val reflect.Value, ok bool) {
-	if nch.dir != Send {
-		panic("recv on wrong direction of channel")
-	}
-
-	if nch.space == 0 {
-		// Wait for buffer space.
-		<-nch.ackCh
-		nch.space++
-	}
-	nch.space--
-	return nch.ch.Recv()
-}
-
-// acked is called when the remote side indicates that
-// a value has been delivered.
-func (nch *netChan) acked() {
-	if nch.dir != Send {
-		panic("recv on wrong direction of channel")
-	}
-	select {
-	case nch.ackCh <- true:
-		// ok
-	default:
-		// TODO: should this be more resilient?
-		panic("netchan: remote receiver sent too many acks")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/export.go gcc-4.8.1/libgo/go/old/netchan/export.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/export.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/old/netchan/export.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,400 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-	Package netchan implements type-safe networked channels:
-	it allows the two ends of a channel to appear on different
-	computers connected by a network.  It does this by transporting
-	data sent to a channel on one machine so it can be recovered
-	by a receive of a channel of the same type on the other.
-
-	An exporter publishes a set of channels by name.  An importer
-	connects to the exporting machine and imports the channels
-	by name. After importing the channels, the two machines can
-	use the channels in the usual way.
-
-	Networked channels are not synchronized; they always behave
-	as if they are buffered channels of at least one element.
-*/
-package netchan
-
-// BUG: can't use range clause to receive when using ImportNValues to limit the count.
-
-import (
-	"errors"
-	"io"
-	"log"
-	"net"
-	"reflect"
-	"strconv"
-	"sync"
-	"time"
-)
-
-// Export
-
-// expLog is a logging convenience function.  The first argument must be a string.
-func expLog(args ...interface{}) {
-	args[0] = "netchan export: " + args[0].(string)
-	log.Print(args...)
-}
-
-// An Exporter allows a set of channels to be published on a single
-// network port.  A single machine may have multiple Exporters
-// but they must use different ports.
-type Exporter struct {
-	*clientSet
-}
-
-type expClient struct {
-	*encDec
-	exp     *Exporter
-	chans   map[int]*netChan // channels in use by client
-	mu      sync.Mutex       // protects remaining fields
-	errored bool             // client has been sent an error
-	seqNum  int64            // sequences messages sent to client; has value of highest sent
-	ackNum  int64            // highest sequence number acknowledged
-	seqLock sync.Mutex       // guarantees messages are in sequence, only locked under mu
-}
-
-func newClient(exp *Exporter, conn io.ReadWriter) *expClient {
-	client := new(expClient)
-	client.exp = exp
-	client.encDec = newEncDec(conn)
-	client.seqNum = 0
-	client.ackNum = 0
-	client.chans = make(map[int]*netChan)
-	return client
-}
-
-func (client *expClient) sendError(hdr *header, err string) {
-	error := &error_{err}
-	expLog("sending error to client:", error.Error)
-	client.encode(hdr, payError, error) // ignore any encode error, hope client gets it
-	client.mu.Lock()
-	client.errored = true
-	client.mu.Unlock()
-}
-
-func (client *expClient) newChan(hdr *header, dir Dir, name string, size int, count int64) *netChan {
-	exp := client.exp
-	exp.mu.Lock()
-	ech, ok := exp.names[name]
-	exp.mu.Unlock()
-	if !ok {
-		client.sendError(hdr, "no such channel: "+name)
-		return nil
-	}
-	if ech.dir != dir {
-		client.sendError(hdr, "wrong direction for channel: "+name)
-		return nil
-	}
-	nch := newNetChan(name, hdr.Id, ech, client.encDec, size, count)
-	client.chans[hdr.Id] = nch
-	return nch
-}
-
-func (client *expClient) getChan(hdr *header, dir Dir) *netChan {
-	nch := client.chans[hdr.Id]
-	if nch == nil {
-		return nil
-	}
-	if nch.dir != dir {
-		client.sendError(hdr, "wrong direction for channel: "+nch.name)
-	}
-	return nch
-}
-
-// The function run manages sends and receives for a single client.  For each
-// (client Recv) request, this will launch a serveRecv goroutine to deliver
-// the data for that channel, while (client Send) requests are handled as
-// data arrives from the client.
-func (client *expClient) run() {
-	hdr := new(header)
-	hdrValue := reflect.ValueOf(hdr)
-	req := new(request)
-	reqValue := reflect.ValueOf(req)
-	error := new(error_)
-	for {
-		*hdr = header{}
-		if err := client.decode(hdrValue); err != nil {
-			if err != io.EOF {
-				expLog("error decoding client header:", err)
-			}
-			break
-		}
-		switch hdr.PayloadType {
-		case payRequest:
-			*req = request{}
-			if err := client.decode(reqValue); err != nil {
-				expLog("error decoding client request:", err)
-				break
-			}
-			if req.Size < 1 {
-				panic("netchan: remote requested " + strconv.Itoa(req.Size) + " values")
-			}
-			switch req.Dir {
-			case Recv:
-				// look up channel before calling serveRecv to
-				// avoid a lock around client.chans.
-				if nch := client.newChan(hdr, Send, req.Name, req.Size, req.Count); nch != nil {
-					go client.serveRecv(nch, *hdr, req.Count)
-				}
-			case Send:
-				client.newChan(hdr, Recv, req.Name, req.Size, req.Count)
-				// The actual sends will have payload type payData.
-				// TODO: manage the count?
-			default:
-				error.Error = "request: can't handle channel direction"
-				expLog(error.Error, req.Dir)
-				client.encode(hdr, payError, error)
-			}
-		case payData:
-			client.serveSend(*hdr)
-		case payClosed:
-			client.serveClosed(*hdr)
-		case payAck:
-			client.mu.Lock()
-			if client.ackNum != hdr.SeqNum-1 {
-				// Since the sequence number is incremented and the message is sent
-				// in a single instance of locking client.mu, the messages are guaranteed
-				// to be sent in order.  Therefore receipt of acknowledgement N means
-				// all messages <=N have been seen by the recipient.  We check anyway.
-				expLog("sequence out of order:", client.ackNum, hdr.SeqNum)
-			}
-			if client.ackNum < hdr.SeqNum { // If there has been an error, don't back up the count.
-				client.ackNum = hdr.SeqNum
-			}
-			client.mu.Unlock()
-		case payAckSend:
-			if nch := client.getChan(hdr, Send); nch != nil {
-				nch.acked()
-			}
-		default:
-			log.Fatal("netchan export: unknown payload type", hdr.PayloadType)
-		}
-	}
-	client.exp.delClient(client)
-}
-
-// Send all the data on a single channel to a client asking for a Recv.
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveRecv(nch *netChan, hdr header, count int64) {
-	for {
-		val, ok := nch.recv()
-		if !ok {
-			if err := client.encode(&hdr, payClosed, nil); err != nil {
-				expLog("error encoding server closed message:", err)
-			}
-			break
-		}
-		// We hold the lock during transmission to guarantee messages are
-		// sent in sequence number order.  Also, we increment first so the
-		// value of client.SeqNum is the value of the highest used sequence
-		// number, not one beyond.
-		client.mu.Lock()
-		client.seqNum++
-		hdr.SeqNum = client.seqNum
-		client.seqLock.Lock() // guarantee ordering of messages
-		client.mu.Unlock()
-		err := client.encode(&hdr, payData, val.Interface())
-		client.seqLock.Unlock()
-		if err != nil {
-			expLog("error encoding client response:", err)
-			client.sendError(&hdr, err.Error())
-			break
-		}
-		// Negative count means run forever.
-		if count >= 0 {
-			if count--; count <= 0 {
-				break
-			}
-		}
-	}
-}
-
-// Receive and deliver locally one item from a client asking for a Send
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveSend(hdr header) {
-	nch := client.getChan(&hdr, Recv)
-	if nch == nil {
-		return
-	}
-	// Create a new value for each received item.
-	val := reflect.New(nch.ch.Type().Elem()).Elem()
-	if err := client.decode(val); err != nil {
-		expLog("value decode:", err, "; type ", nch.ch.Type())
-		return
-	}
-	nch.send(val)
-}
-
-// Report that client has closed the channel that is sending to us.
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveClosed(hdr header) {
-	nch := client.getChan(&hdr, Recv)
-	if nch == nil {
-		return
-	}
-	nch.close()
-}
-
-func (client *expClient) unackedCount() int64 {
-	client.mu.Lock()
-	n := client.seqNum - client.ackNum
-	client.mu.Unlock()
-	return n
-}
-
-func (client *expClient) seq() int64 {
-	client.mu.Lock()
-	n := client.seqNum
-	client.mu.Unlock()
-	return n
-}
-
-func (client *expClient) ack() int64 {
-	client.mu.Lock()
-	n := client.seqNum
-	client.mu.Unlock()
-	return n
-}
-
-// Serve waits for incoming connections on the listener
-// and serves the Exporter's channels on each.
-// It blocks until the listener is closed.
-func (exp *Exporter) Serve(listener net.Listener) {
-	for {
-		conn, err := listener.Accept()
-		if err != nil {
-			expLog("listen:", err)
-			break
-		}
-		go exp.ServeConn(conn)
-	}
-}
-
-// ServeConn exports the Exporter's channels on conn.
-// It blocks until the connection is terminated.
-func (exp *Exporter) ServeConn(conn io.ReadWriter) {
-	exp.addClient(conn).run()
-}
-
-// NewExporter creates a new Exporter that exports a set of channels.
-func NewExporter() *Exporter {
-	e := &Exporter{
-		clientSet: &clientSet{
-			names:   make(map[string]*chanDir),
-			clients: make(map[unackedCounter]bool),
-		},
-	}
-	return e
-}
-
-// ListenAndServe exports the exporter's channels through the
-// given network and local address defined as in net.Listen.
-func (exp *Exporter) ListenAndServe(network, localaddr string) error {
-	listener, err := net.Listen(network, localaddr)
-	if err != nil {
-		return err
-	}
-	go exp.Serve(listener)
-	return nil
-}
-
-// addClient creates a new expClient and records its existence
-func (exp *Exporter) addClient(conn io.ReadWriter) *expClient {
-	client := newClient(exp, conn)
-	exp.mu.Lock()
-	exp.clients[client] = true
-	exp.mu.Unlock()
-	return client
-}
-
-// delClient forgets the client existed
-func (exp *Exporter) delClient(client *expClient) {
-	exp.mu.Lock()
-	delete(exp.clients, client)
-	exp.mu.Unlock()
-}
-
-// Drain waits until all messages sent from this exporter/importer, including
-// those not yet sent to any client and possibly including those sent while
-// Drain was executing, have been received by the importer.  In short, it
-// waits until all the exporter's messages have been received by a client.
-// If the timeout is positive and Drain takes longer than that to complete,
-// an error is returned.
-func (exp *Exporter) Drain(timeout time.Duration) error {
-	// This wrapper function is here so the method's comment will appear in godoc.
-	return exp.clientSet.drain(timeout)
-}
-
-// Sync waits until all clients of the exporter have received the messages
-// that were sent at the time Sync was invoked.  Unlike Drain, it does not
-// wait for messages sent while it is running or messages that have not been
-// dispatched to any client.  If the timeout is positive and Sync takes longer
-// than that to complete, an error is returned.
-func (exp *Exporter) Sync(timeout time.Duration) error {
-	// This wrapper function is here so the method's comment will appear in godoc.
-	return exp.clientSet.sync(timeout)
-}
-
-func checkChan(chT interface{}, dir Dir) (reflect.Value, error) {
-	chanType := reflect.TypeOf(chT)
-	if chanType.Kind() != reflect.Chan {
-		return reflect.Value{}, errors.New("not a channel")
-	}
-	if dir != Send && dir != Recv {
-		return reflect.Value{}, errors.New("unknown channel direction")
-	}
-	switch chanType.ChanDir() {
-	case reflect.BothDir:
-	case reflect.SendDir:
-		if dir != Recv {
-			return reflect.Value{}, errors.New("to import/export with Send, must provide <-chan")
-		}
-	case reflect.RecvDir:
-		if dir != Send {
-			return reflect.Value{}, errors.New("to import/export with Recv, must provide chan<-")
-		}
-	}
-	return reflect.ValueOf(chT), nil
-}
-
-// Export exports a channel of a given type and specified direction.  The
-// channel to be exported is provided in the call and may be of arbitrary
-// channel type.
-// Despite the literal signature, the effective signature is
-//	Export(name string, chT chan T, dir Dir)
-func (exp *Exporter) Export(name string, chT interface{}, dir Dir) error {
-	ch, err := checkChan(chT, dir)
-	if err != nil {
-		return err
-	}
-	exp.mu.Lock()
-	defer exp.mu.Unlock()
-	_, present := exp.names[name]
-	if present {
-		return errors.New("channel name already being exported:" + name)
-	}
-	exp.names[name] = &chanDir{ch, dir}
-	return nil
-}
-
-// Hangup disassociates the named channel from the Exporter and closes
-// the channel.  Messages in flight for the channel may be dropped.
-func (exp *Exporter) Hangup(name string) error {
-	exp.mu.Lock()
-	chDir, ok := exp.names[name]
-	if ok {
-		delete(exp.names, name)
-	}
-	// TODO drop all instances of channel from client sets
-	exp.mu.Unlock()
-	if !ok {
-		return errors.New("netchan export: hangup: no such channel: " + name)
-	}
-	chDir.ch.Close()
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/import.go gcc-4.8.1/libgo/go/old/netchan/import.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/import.go	2012-01-12 01:31:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/old/netchan/import.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,287 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"errors"
-	"io"
-	"log"
-	"net"
-	"reflect"
-	"sync"
-	"time"
-)
-
-// Import
-
-// impLog is a logging convenience function.  The first argument must be a string.
-func impLog(args ...interface{}) {
-	args[0] = "netchan import: " + args[0].(string)
-	log.Print(args...)
-}
-
-// An Importer allows a set of channels to be imported from a single
-// remote machine/network port.  A machine may have multiple
-// importers, even from the same machine/network port.
-type Importer struct {
-	*encDec
-	chanLock sync.Mutex // protects access to channel map
-	names    map[string]*netChan
-	chans    map[int]*netChan
-	errors   chan error
-	maxId    int
-	mu       sync.Mutex // protects remaining fields
-	unacked  int64      // number of unacknowledged sends.
-	seqLock  sync.Mutex // guarantees messages are in sequence, only locked under mu
-}
-
-// NewImporter creates a new Importer object to import a set of channels
-// from the given connection. The Exporter must be available and serving when
-// the Importer is created.
-func NewImporter(conn io.ReadWriter) *Importer {
-	imp := new(Importer)
-	imp.encDec = newEncDec(conn)
-	imp.chans = make(map[int]*netChan)
-	imp.names = make(map[string]*netChan)
-	imp.errors = make(chan error, 10)
-	imp.unacked = 0
-	go imp.run()
-	return imp
-}
-
-// Import imports a set of channels from the given network and address.
-func Import(network, remoteaddr string) (*Importer, error) {
-	conn, err := net.Dial(network, remoteaddr)
-	if err != nil {
-		return nil, err
-	}
-	return NewImporter(conn), nil
-}
-
-// shutdown closes all channels for which we are receiving data from the remote side.
-func (imp *Importer) shutdown() {
-	imp.chanLock.Lock()
-	for _, ich := range imp.chans {
-		if ich.dir == Recv {
-			ich.close()
-		}
-	}
-	imp.chanLock.Unlock()
-}
-
-// Handle the data from a single imported data stream, which will
-// have the form
-//	(response, data)*
-// The response identifies by name which channel is transmitting data.
-func (imp *Importer) run() {
-	// Loop on responses; requests are sent by ImportNValues()
-	hdr := new(header)
-	hdrValue := reflect.ValueOf(hdr)
-	ackHdr := new(header)
-	err := new(error_)
-	errValue := reflect.ValueOf(err)
-	for {
-		*hdr = header{}
-		if e := imp.decode(hdrValue); e != nil {
-			if e != io.EOF {
-				impLog("header:", e)
-				imp.shutdown()
-			}
-			return
-		}
-		switch hdr.PayloadType {
-		case payData:
-			// done lower in loop
-		case payError:
-			if e := imp.decode(errValue); e != nil {
-				impLog("error:", e)
-				return
-			}
-			if err.Error != "" {
-				impLog("response error:", err.Error)
-				select {
-				case imp.errors <- errors.New(err.Error):
-					continue // errors are not acknowledged
-				default:
-					imp.shutdown()
-					return
-				}
-			}
-		case payClosed:
-			nch := imp.getChan(hdr.Id, false)
-			if nch != nil {
-				nch.close()
-			}
-			continue // closes are not acknowledged.
-		case payAckSend:
-			// we can receive spurious acks if the channel is
-			// hung up, so we ask getChan to ignore any errors.
-			nch := imp.getChan(hdr.Id, true)
-			if nch != nil {
-				nch.acked()
-				imp.mu.Lock()
-				imp.unacked--
-				imp.mu.Unlock()
-			}
-			continue
-		default:
-			impLog("unexpected payload type:", hdr.PayloadType)
-			return
-		}
-		nch := imp.getChan(hdr.Id, false)
-		if nch == nil {
-			continue
-		}
-		if nch.dir != Recv {
-			impLog("cannot happen: receive from non-Recv channel")
-			return
-		}
-		// Acknowledge receipt
-		ackHdr.Id = hdr.Id
-		ackHdr.SeqNum = hdr.SeqNum
-		imp.encode(ackHdr, payAck, nil)
-		// Create a new value for each received item.
-		value := reflect.New(nch.ch.Type().Elem()).Elem()
-		if e := imp.decode(value); e != nil {
-			impLog("importer value decode:", e)
-			return
-		}
-		nch.send(value)
-	}
-}
-
-func (imp *Importer) getChan(id int, errOk bool) *netChan {
-	imp.chanLock.Lock()
-	ich := imp.chans[id]
-	imp.chanLock.Unlock()
-	if ich == nil {
-		if !errOk {
-			impLog("unknown id in netchan request: ", id)
-		}
-		return nil
-	}
-	return ich
-}
-
-// Errors returns a channel from which transmission and protocol errors
-// can be read. Clients of the importer are not required to read the error
-// channel for correct execution. However, if too many errors occur
-// without being read from the error channel, the importer will shut down.
-func (imp *Importer) Errors() chan error {
-	return imp.errors
-}
-
-// Import imports a channel of the given type, size and specified direction.
-// It is equivalent to ImportNValues with a count of -1, meaning unbounded.
-func (imp *Importer) Import(name string, chT interface{}, dir Dir, size int) error {
-	return imp.ImportNValues(name, chT, dir, size, -1)
-}
-
-// ImportNValues imports a channel of the given type and specified
-// direction and then receives or transmits up to n values on that
-// channel.  A value of n==-1 implies an unbounded number of values.  The
-// channel will have buffer space for size values, or 1 value if size < 1.
-// The channel to be bound to the remote site's channel is provided
-// in the call and may be of arbitrary channel type.
-// Despite the literal signature, the effective signature is
-//	ImportNValues(name string, chT chan T, dir Dir, size, n int) error
-// Example usage:
-//	imp, err := NewImporter("tcp", "netchanserver.mydomain.com:1234")
-//	if err != nil { log.Fatal(err) }
-//	ch := make(chan myType)
-//	err = imp.ImportNValues("name", ch, Recv, 1, 1)
-//	if err != nil { log.Fatal(err) }
-//	fmt.Printf("%+v\n", <-ch)
-func (imp *Importer) ImportNValues(name string, chT interface{}, dir Dir, size, n int) error {
-	ch, err := checkChan(chT, dir)
-	if err != nil {
-		return err
-	}
-	imp.chanLock.Lock()
-	defer imp.chanLock.Unlock()
-	_, present := imp.names[name]
-	if present {
-		return errors.New("channel name already being imported:" + name)
-	}
-	if size < 1 {
-		size = 1
-	}
-	id := imp.maxId
-	imp.maxId++
-	nch := newNetChan(name, id, &chanDir{ch, dir}, imp.encDec, size, int64(n))
-	imp.names[name] = nch
-	imp.chans[id] = nch
-	// Tell the other side about this channel.
-	hdr := &header{Id: id}
-	req := &request{Name: name, Count: int64(n), Dir: dir, Size: size}
-	if err = imp.encode(hdr, payRequest, req); err != nil {
-		impLog("request encode:", err)
-		return err
-	}
-	if dir == Send {
-		go func() {
-			for i := 0; n == -1 || i < n; i++ {
-				val, ok := nch.recv()
-				if !ok {
-					if err = imp.encode(hdr, payClosed, nil); err != nil {
-						impLog("error encoding client closed message:", err)
-					}
-					return
-				}
-				// We hold the lock during transmission to guarantee messages are
-				// sent in order.
-				imp.mu.Lock()
-				imp.unacked++
-				imp.seqLock.Lock()
-				imp.mu.Unlock()
-				if err = imp.encode(hdr, payData, val.Interface()); err != nil {
-					impLog("error encoding client send:", err)
-					return
-				}
-				imp.seqLock.Unlock()
-			}
-		}()
-	}
-	return nil
-}
-
-// Hangup disassociates the named channel from the Importer and closes
-// the channel.  Messages in flight for the channel may be dropped.
-func (imp *Importer) Hangup(name string) error {
-	imp.chanLock.Lock()
-	defer imp.chanLock.Unlock()
-	nc := imp.names[name]
-	if nc == nil {
-		return errors.New("netchan import: hangup: no such channel: " + name)
-	}
-	delete(imp.names, name)
-	delete(imp.chans, nc.id)
-	nc.close()
-	return nil
-}
-
-func (imp *Importer) unackedCount() int64 {
-	imp.mu.Lock()
-	n := imp.unacked
-	imp.mu.Unlock()
-	return n
-}
-
-// Drain waits until all messages sent from this exporter/importer, including
-// those not yet sent to any server and possibly including those sent while
-// Drain was executing, have been received by the exporter.  In short, it
-// waits until all the importer's messages have been received.
-// If the timeout (measured in nanoseconds) is positive and Drain takes
-// longer than that to complete, an error is returned.
-func (imp *Importer) Drain(timeout int64) error {
-	deadline := time.Now().Add(time.Duration(timeout))
-	for imp.unackedCount() > 0 {
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/netchan_test.go gcc-4.8.1/libgo/go/old/netchan/netchan_test.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/netchan_test.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/old/netchan/netchan_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,447 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"net"
-	"strings"
-	"testing"
-	"time"
-)
-
-const count = 10     // number of items in most tests
-const closeCount = 5 // number of items when sender closes early
-
-const base = 23
-
-func exportSend(exp *Exporter, n int, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := exp.Export("exportedSend", ch, Send)
-	if err != nil {
-		t.Fatal("exportSend:", err)
-	}
-	go func() {
-		for i := 0; i < n; i++ {
-			ch <- base + i
-		}
-		close(ch)
-		if done != nil {
-			done <- true
-		}
-	}()
-}
-
-func exportReceive(exp *Exporter, t *testing.T, expDone chan bool) {
-	ch := make(chan int)
-	err := exp.Export("exportedRecv", ch, Recv)
-	expDone <- true
-	if err != nil {
-		t.Fatal("exportReceive:", err)
-	}
-	for i := 0; i < count; i++ {
-		v, ok := <-ch
-		if !ok {
-			if i != closeCount {
-				t.Errorf("exportReceive expected close at %d; got one at %d", closeCount, i)
-			}
-			break
-		}
-		if v != base+i {
-			t.Errorf("export Receive: bad value: expected %d+%d=%d; got %d", base, i, base+i, v)
-		}
-	}
-}
-
-func importSend(imp *Importer, n int, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedRecv", ch, Send, 3, -1)
-	if err != nil {
-		t.Fatal("importSend:", err)
-	}
-	go func() {
-		for i := 0; i < n; i++ {
-			ch <- base + i
-		}
-		close(ch)
-		if done != nil {
-			done <- true
-		}
-	}()
-}
-
-func importReceive(imp *Importer, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedSend", ch, Recv, 3, count)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-	for i := 0; i < count; i++ {
-		v, ok := <-ch
-		if !ok {
-			if i != closeCount {
-				t.Errorf("importReceive expected close at %d; got one at %d", closeCount, i)
-			}
-			break
-		}
-		if v != base+i {
-			t.Errorf("importReceive: bad value: expected %d+%d=%d; got %+d", base, i, base+i, v)
-		}
-	}
-	if done != nil {
-		done <- true
-	}
-}
-
-func TestExportSendImportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	exportSend(exp, count, t, nil)
-	importReceive(imp, t, nil)
-}
-
-func TestExportReceiveImportSend(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	done := make(chan bool)
-	go func() {
-		exportReceive(exp, t, expDone)
-		done <- true
-	}()
-	<-expDone
-	importSend(imp, count, t, nil)
-	<-done
-}
-
-func TestClosingExportSendImportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	exportSend(exp, closeCount, t, nil)
-	importReceive(imp, t, nil)
-}
-
-func TestClosingImportSendExportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	done := make(chan bool)
-	go func() {
-		exportReceive(exp, t, expDone)
-		done <- true
-	}()
-	<-expDone
-	importSend(imp, closeCount, t, nil)
-	<-done
-}
-
-func TestErrorForIllegalChannel(t *testing.T) {
-	exp, imp := pair(t)
-	// Now export a channel.
-	ch := make(chan int, 1)
-	err := exp.Export("aChannel", ch, Send)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	ch <- 1234
-	close(ch)
-	// Now try to import a different channel.
-	ch = make(chan int)
-	err = imp.Import("notAChannel", ch, Recv, 1)
-	if err != nil {
-		t.Fatal("import:", err)
-	}
-	// Expect an error now.  Start a timeout.
-	timeout := make(chan bool, 1) // buffered so closure will not hang around.
-	go func() {
-		time.Sleep(10 * time.Second) // very long, to give even really slow machines a chance.
-		timeout <- true
-	}()
-	select {
-	case err = <-imp.Errors():
-		if strings.Index(err.Error(), "no such channel") < 0 {
-			t.Error("wrong error for nonexistent channel:", err)
-		}
-	case <-timeout:
-		t.Error("import of nonexistent channel did not receive an error")
-	}
-}
-
-// Not a great test but it does at least invoke Drain.
-func TestExportDrain(t *testing.T) {
-	exp, imp := pair(t)
-	done := make(chan bool)
-	go func() {
-		exportSend(exp, closeCount, t, nil)
-		done <- true
-	}()
-	<-done
-	go importReceive(imp, t, done)
-	exp.Drain(0)
-	<-done
-}
-
-// Not a great test but it does at least invoke Drain.
-func TestImportDrain(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	go exportReceive(exp, t, expDone)
-	<-expDone
-	importSend(imp, closeCount, t, nil)
-	imp.Drain(0)
-}
-
-// Not a great test but it does at least invoke Sync.
-func TestExportSync(t *testing.T) {
-	exp, imp := pair(t)
-	done := make(chan bool)
-	exportSend(exp, closeCount, t, nil)
-	go importReceive(imp, t, done)
-	exp.Sync(0)
-	<-done
-}
-
-// Test hanging up the send side of an export.
-// TODO: test hanging up the receive side of an export.
-func TestExportHangup(t *testing.T) {
-	exp, imp := pair(t)
-	ech := make(chan int)
-	err := exp.Export("exportedSend", ech, Send)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	// Prepare to receive two values. We'll actually deliver only one.
-	ich := make(chan int)
-	err = imp.ImportNValues("exportedSend", ich, Recv, 1, 2)
-	if err != nil {
-		t.Fatal("import exportedSend:", err)
-	}
-	// Send one value, receive it.
-	const Value = 1234
-	ech <- Value
-	v := <-ich
-	if v != Value {
-		t.Fatal("expected", Value, "got", v)
-	}
-	// Now hang up the channel.  Importer should see it close.
-	exp.Hangup("exportedSend")
-	v, ok := <-ich
-	if ok {
-		t.Fatal("expected channel to be closed; got value", v)
-	}
-}
-
-// Test hanging up the send side of an import.
-// TODO: test hanging up the receive side of an import.
-func TestImportHangup(t *testing.T) {
-	exp, imp := pair(t)
-	ech := make(chan int)
-	err := exp.Export("exportedRecv", ech, Recv)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	// Prepare to Send two values. We'll actually deliver only one.
-	ich := make(chan int)
-	err = imp.ImportNValues("exportedRecv", ich, Send, 1, 2)
-	if err != nil {
-		t.Fatal("import exportedRecv:", err)
-	}
-	// Send one value, receive it.
-	const Value = 1234
-	ich <- Value
-	v := <-ech
-	if v != Value {
-		t.Fatal("expected", Value, "got", v)
-	}
-	// Now hang up the channel.  Exporter should see it close.
-	imp.Hangup("exportedRecv")
-	v, ok := <-ech
-	if ok {
-		t.Fatal("expected channel to be closed; got value", v)
-	}
-}
-
-// loop back exportedRecv to exportedSend,
-// but receive a value from ctlch before starting the loop.
-func exportLoopback(exp *Exporter, t *testing.T) {
-	inch := make(chan int)
-	if err := exp.Export("exportedRecv", inch, Recv); err != nil {
-		t.Fatal("exportRecv")
-	}
-
-	outch := make(chan int)
-	if err := exp.Export("exportedSend", outch, Send); err != nil {
-		t.Fatal("exportSend")
-	}
-
-	ctlch := make(chan int)
-	if err := exp.Export("exportedCtl", ctlch, Recv); err != nil {
-		t.Fatal("exportRecv")
-	}
-
-	go func() {
-		<-ctlch
-		for i := 0; i < count; i++ {
-			x := <-inch
-			if x != base+i {
-				t.Errorf("exportLoopback expected %d; got %d", i, x)
-			}
-			outch <- x
-		}
-	}()
-}
-
-// This test checks that channel operations can proceed
-// even when other concurrent operations are blocked.
-func TestIndependentSends(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	exportLoopback(exp, t)
-
-	importSend(imp, count, t, nil)
-	done := make(chan bool)
-	go importReceive(imp, t, done)
-
-	// wait for export side to try to deliver some values.
-	time.Sleep(250 * time.Millisecond)
-
-	ctlch := make(chan int)
-	if err := imp.ImportNValues("exportedCtl", ctlch, Send, 1, 1); err != nil {
-		t.Fatal("importSend:", err)
-	}
-	ctlch <- 0
-
-	<-done
-}
-
-// This test cross-connects a pair of exporter/importer pairs.
-type value struct {
-	I      int
-	Source string
-}
-
-func TestCrossConnect(t *testing.T) {
-	e1, i1 := pair(t)
-	e2, i2 := pair(t)
-
-	crossExport(e1, e2, t)
-	crossImport(i1, i2, t)
-}
-
-// Export side of cross-traffic.
-func crossExport(e1, e2 *Exporter, t *testing.T) {
-	s := make(chan value)
-	err := e1.Export("exportedSend", s, Send)
-	if err != nil {
-		t.Fatal("exportSend:", err)
-	}
-
-	r := make(chan value)
-	err = e2.Export("exportedReceive", r, Recv)
-	if err != nil {
-		t.Fatal("exportReceive:", err)
-	}
-
-	go crossLoop("export", s, r, t)
-}
-
-// Import side of cross-traffic.
-func crossImport(i1, i2 *Importer, t *testing.T) {
-	s := make(chan value)
-	err := i2.Import("exportedReceive", s, Send, 2)
-	if err != nil {
-		t.Fatal("import of exportedReceive:", err)
-	}
-
-	r := make(chan value)
-	err = i1.Import("exportedSend", r, Recv, 2)
-	if err != nil {
-		t.Fatal("import of exported Send:", err)
-	}
-
-	crossLoop("import", s, r, t)
-}
-
-// Cross-traffic: send and receive 'count' numbers.
-func crossLoop(name string, s, r chan value, t *testing.T) {
-	for si, ri := 0, 0; si < count && ri < count; {
-		select {
-		case s <- value{si, name}:
-			si++
-		case v := <-r:
-			if v.I != ri {
-				t.Errorf("loop: bad value: expected %d, hello; got %+v", ri, v)
-			}
-			ri++
-		}
-	}
-}
-
-const flowCount = 100
-
-// test flow control from exporter to importer.
-func TestExportFlowControl(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	sendDone := make(chan bool, 1)
-	exportSend(exp, flowCount, t, sendDone)
-
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedSend", ch, Recv, 20, -1)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-
-	testFlow(sendDone, ch, flowCount, t)
-}
-
-// test flow control from importer to exporter.
-func TestImportFlowControl(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	ch := make(chan int)
-	err := exp.Export("exportedRecv", ch, Recv)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-
-	sendDone := make(chan bool, 1)
-	importSend(imp, flowCount, t, sendDone)
-	testFlow(sendDone, ch, flowCount, t)
-}
-
-func testFlow(sendDone chan bool, ch <-chan int, N int, t *testing.T) {
-	go func() {
-		time.Sleep(500 * time.Millisecond)
-		sendDone <- false
-	}()
-
-	if <-sendDone {
-		t.Fatal("send did not block")
-	}
-	n := 0
-	for i := range ch {
-		t.Log("after blocking, got value ", i)
-		n++
-	}
-	if n != N {
-		t.Fatalf("expected %d values; got %d", N, n)
-	}
-}
-
-func pair(t *testing.T) (*Exporter, *Importer) {
-	c0, c1 := net.Pipe()
-	exp := NewExporter()
-	go exp.ServeConn(c0)
-	imp := NewImporter(c1)
-	return exp, imp
-}
diff -Naur gcc-4.8.1.orig/libgo/go/os/doc.go gcc-4.8.1/libgo/go/os/doc.go
--- gcc-4.8.1.orig/libgo/go/os/doc.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/doc.go	2013-10-01 16:06:44.196554279 +0000
@@ -79,6 +79,8 @@
 // SysUsage returns system-dependent resource usage information about
 // the exited process.  Convert it to the appropriate underlying
 // type, such as *syscall.Rusage on Unix, to access its contents.
+// (On Unix, *syscall.Rusage matches struct rusage as defined in the
+// getrusage(2) manual page.)
 func (p *ProcessState) SysUsage() interface{} {
 	return p.sysUsage()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/env_unix_test.go gcc-4.8.1/libgo/go/os/env_unix_test.go
--- gcc-4.8.1.orig/libgo/go/os/env_unix_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/env_unix_test.go	2013-10-01 16:06:44.196554279 +0000
@@ -0,0 +1,30 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package os_test
+
+import (
+	. "os"
+	"testing"
+)
+
+var setenvEinvalTests = []struct {
+	k, v string
+}{
+	{"", ""},      // empty key
+	{"k=v", ""},   // '=' in key
+	{"\x00", ""},  // '\x00' in key
+	{"k", "\x00"}, // '\x00' in value
+}
+
+func TestSetenvUnixEinval(t *testing.T) {
+	for _, tt := range setenvEinvalTests {
+		err := Setenv(tt.k, tt.v)
+		if err == nil {
+			t.Errorf(`Setenv(%q, %q) == nil, want error`, tt.k, tt.v)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec.go gcc-4.8.1/libgo/go/os/exec/exec.go
--- gcc-4.8.1.orig/libgo/go/os/exec/exec.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/exec.go	2013-10-01 16:06:44.196554279 +0000
@@ -235,6 +235,8 @@
 // Start starts the specified command but does not wait for it to complete.
 func (c *Cmd) Start() error {
 	if c.err != nil {
+		c.closeDescriptors(c.closeAfterStart)
+		c.closeDescriptors(c.closeAfterWait)
 		return c.err
 	}
 	if c.Process != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go gcc-4.8.1/libgo/go/os/exec/exec_test.go
--- gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/exec_test.go	2013-10-01 16:06:44.196554279 +0000
@@ -14,17 +14,23 @@
 	"net/http"
 	"net/http/httptest"
 	"os"
+	"path/filepath"
 	"runtime"
 	"strconv"
 	"strings"
 	"testing"
+	"time"
 )
 
 func helperCommand(s ...string) *Cmd {
 	cs := []string{"-test.run=TestHelperProcess", "--"}
 	cs = append(cs, s...)
 	cmd := Command(os.Args[0], cs...)
-	cmd.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
+	cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"}
+	path := os.Getenv("LD_LIBRARY_PATH")
+	if path != "" {
+		cmd.Env = append(cmd.Env, "LD_LIBRARY_PATH="+path)
+	}
 	return cmd
 }
 
@@ -83,10 +89,16 @@
 
 func TestExitStatus(t *testing.T) {
 	// Test that exit values are returned correctly
-	err := helperCommand("exit", "42").Run()
+	cmd := helperCommand("exit", "42")
+	err := cmd.Run()
+	want := "exit status 42"
+	switch runtime.GOOS {
+	case "plan9":
+		want = fmt.Sprintf("exit status: '%s %d: 42'", filepath.Base(cmd.Path), cmd.ProcessState.Pid())
+	}
 	if werr, ok := err.(*ExitError); ok {
-		if s, e := werr.Error(), "exit status 42"; s != e {
-			t.Errorf("from exit 42 got exit %q, want %q", s, e)
+		if s := werr.Error(); s != want {
+			t.Errorf("from exit 42 got exit %q, want %q", s, want)
 		}
 	} else {
 		t.Fatalf("expected *ExitError from exit 42; got %T: %v", err, err)
@@ -144,8 +156,141 @@
 	check("Wait", err)
 }
 
+// Issue 5071
+func TestPipeLookPathLeak(t *testing.T) {
+	fd0 := numOpenFDS(t)
+	for i := 0; i < 4; i++ {
+		cmd := Command("something-that-does-not-exist-binary")
+		cmd.StdoutPipe()
+		cmd.StderrPipe()
+		cmd.StdinPipe()
+		if err := cmd.Run(); err == nil {
+			t.Fatal("unexpected success")
+		}
+	}
+	fdGrowth := numOpenFDS(t) - fd0
+	if fdGrowth > 2 {
+		t.Errorf("leaked %d fds; want ~0", fdGrowth)
+	}
+}
+
+func numOpenFDS(t *testing.T) int {
+	lsof, err := Command("lsof", "-n", "-p", strconv.Itoa(os.Getpid())).Output()
+	if err != nil {
+		t.Skip("skipping test; error finding or running lsof")
+		return 0
+	}
+	return bytes.Count(lsof, []byte("\n"))
+}
+
 var testedAlreadyLeaked = false
 
+// basefds returns the number of expected file descriptors
+// to be present in a process at start.
+func basefds() uintptr {
+	n := os.Stderr.Fd() + 1
+
+	// Go runtime for 32-bit Plan 9 requires that /dev/bintime
+	// be kept open.
+	// See ../../runtime/time_plan9_386.c:/^runtimeÂ·nanotime
+	if runtime.GOOS == "plan9" && runtime.GOARCH == "386" {
+		n++
+	}
+	return n
+}
+
+func TestExtraFilesFDShuffle(t *testing.T) {
+	t.Skip("TODO: TestExtraFilesFDShuffle is too non-portable; skipping")
+
+	// syscall.StartProcess maps all the FDs passed to it in
+	// ProcAttr.Files (the concatenation of stdin,stdout,stderr and
+	// ExtraFiles) into consecutive FDs in the child, that is:
+	// Files{11, 12, 6, 7, 9, 3} should result in the file
+	// represented by FD 11 in the parent being made available as 0
+	// in the child, 12 as 1, etc.
+	//
+	// We want to test that FDs in the child do not get overwritten
+	// by one another as this shuffle occurs. The original implementation
+	// was buggy in that in some data dependent cases it would ovewrite
+	// stderr in the child with one of the ExtraFile members.
+	// Testing for this case is difficult because it relies on using
+	// the same FD values as that case. In particular, an FD of 3
+	// must be at an index of 4 or higher in ProcAttr.Files and
+	// the FD of the write end of the Stderr pipe (as obtained by
+	// StderrPipe()) must be the same as the size of ProcAttr.Files;
+	// therefore we test that the read end of this pipe (which is what
+	// is returned to the parent by StderrPipe() being one less than
+	// the size of ProcAttr.Files, i.e. 3+len(cmd.ExtraFiles).
+	//
+	// Moving this test case around within the overall tests may
+	// affect the FDs obtained and hence the checks to catch these cases.
+	npipes := 2
+	c := helperCommand("extraFilesAndPipes", strconv.Itoa(npipes+1))
+	rd, wr, _ := os.Pipe()
+	defer rd.Close()
+	if rd.Fd() != 3 {
+		t.Errorf("bad test value for test pipe: fd %d", rd.Fd())
+	}
+	stderr, _ := c.StderrPipe()
+	wr.WriteString("_LAST")
+	wr.Close()
+
+	pipes := make([]struct {
+		r, w *os.File
+	}, npipes)
+	data := []string{"a", "b"}
+
+	for i := 0; i < npipes; i++ {
+		r, w, err := os.Pipe()
+		if err != nil {
+			t.Fatalf("unexpected error creating pipe: %s", err)
+		}
+		pipes[i].r = r
+		pipes[i].w = w
+		w.WriteString(data[i])
+		c.ExtraFiles = append(c.ExtraFiles, pipes[i].r)
+		defer func() {
+			r.Close()
+			w.Close()
+		}()
+	}
+	// Put fd 3 at the end.
+	c.ExtraFiles = append(c.ExtraFiles, rd)
+
+	stderrFd := int(stderr.(*os.File).Fd())
+	if stderrFd != ((len(c.ExtraFiles) + 3) - 1) {
+		t.Errorf("bad test value for stderr pipe")
+	}
+
+	expected := "child: " + strings.Join(data, "") + "_LAST"
+
+	err := c.Start()
+	if err != nil {
+		t.Fatalf("Run: %v", err)
+	}
+	ch := make(chan string, 1)
+	go func(ch chan string) {
+		buf := make([]byte, 512)
+		n, err := stderr.Read(buf)
+		if err != nil {
+			t.Fatalf("Read: %s", err)
+			ch <- err.Error()
+		} else {
+			ch <- string(buf[:n])
+		}
+		close(ch)
+	}(ch)
+	select {
+	case m := <-ch:
+		if m != expected {
+			t.Errorf("Read: '%s' not '%s'", m, expected)
+		}
+	case <-time.After(5 * time.Second):
+		t.Errorf("Read timedout")
+	}
+	c.Wait()
+}
+
 func TestExtraFiles(t *testing.T) {
 	if runtime.GOOS == "windows" {
 		t.Skip("no operating system support; skipping")
@@ -155,7 +300,7 @@
 	// our environment.
 	if !testedAlreadyLeaked {
 		testedAlreadyLeaked = true
-		for fd := os.Stderr.Fd() + 1; fd <= 101; fd++ {
+		for fd := basefds(); fd <= 101; fd++ {
 			err := os.NewFile(fd, "").Close()
 			if err == nil {
 				t.Logf("Something already leaked - closed fd %d", fd)
@@ -209,13 +354,16 @@
 	}
 
 	c := helperCommand("read3")
+	var stdout, stderr bytes.Buffer
+	c.Stdout = &stdout
+	c.Stderr = &stderr
 	c.ExtraFiles = []*os.File{tf}
-	bs, err := c.CombinedOutput()
+	err = c.Run()
 	if err != nil {
-		t.Fatalf("CombinedOutput: %v; output %q", err, bs)
+		t.Fatalf("Run: %v; stdout %q, stderr %q", err, stdout.Bytes(), stderr.Bytes())
 	}
-	if string(bs) != text {
-		t.Errorf("got %q; want %q", string(bs), text)
+	if stdout.String() != text {
+		t.Errorf("got stdout %q, stderr %q; want %q on stdout", stdout.String(), stderr.String(), text)
 	}
 }
 
@@ -265,6 +413,13 @@
 		}
 		la.Close()
 		lb.Close()
+		for _, f := range ca.ExtraFiles {
+			f.Close()
+		}
+		for _, f := range cb.ExtraFiles {
+			f.Close()
+		}
+
 	}
 }
 
@@ -360,7 +515,7 @@
 		default:
 			// Now verify that there are no other open fds.
 			var files []*os.File
-			for wantfd := os.Stderr.Fd() + 2; wantfd <= 100; wantfd++ {
+			for wantfd := basefds() + 1; wantfd <= 100; wantfd++ {
 				f, err := os.Open(os.Args[0])
 				if err != nil {
 					fmt.Printf("error opening file with expected fd %d: %v", wantfd, err)
@@ -384,7 +539,7 @@
 		// what we do with fd3 as long as we refer to it;
 		// closing it is the easy choice.
 		fd3.Close()
-		os.Stderr.Write(bs)
+		os.Stdout.Write(bs)
 	case "exit":
 		n, _ := strconv.Atoi(args[0])
 		os.Exit(n)
@@ -398,6 +553,35 @@
 			}
 		}
 		os.Exit(0)
+	case "extraFilesAndPipes":
+		n, _ := strconv.Atoi(args[0])
+		pipes := make([]*os.File, n)
+		for i := 0; i < n; i++ {
+			pipes[i] = os.NewFile(uintptr(3+i), strconv.Itoa(i))
+		}
+		response := ""
+		for i, r := range pipes {
+			ch := make(chan string, 1)
+			go func(c chan string) {
+				buf := make([]byte, 10)
+				n, err := r.Read(buf)
+				if err != nil {
+					fmt.Fprintf(os.Stderr, "Child: read error: %v on pipe %d\n", err, i)
+					os.Exit(1)
+				}
+				c <- string(buf[:n])
+				close(c)
+			}(ch)
+			select {
+			case m := <-ch:
+				response = response + m
+			case <-time.After(5 * time.Second):
+				fmt.Fprintf(os.Stderr, "Child: Timeout reading from pipe: %d\n", i)
+				os.Exit(1)
+			}
+		}
+		fmt.Fprintf(os.Stderr, "child: %s", response)
+		os.Exit(0)
 	default:
 		fmt.Fprintf(os.Stderr, "Unknown command %q\n", cmd)
 		os.Exit(2)
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go gcc-4.8.1/libgo/go/os/exec/lp_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/lp_plan9.go	2013-10-01 16:06:44.196554279 +0000
@@ -8,7 +8,6 @@
 	"errors"
 	"os"
 	"strings"
-	"syscall"
 )
 
 // ErrNotFound is the error resulting if a path search failed to find an executable file.
@@ -22,7 +21,7 @@
 	if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
 		return nil
 	}
-	return syscall.EPERM
+	return os.ErrPermission
 }
 
 // LookPath searches for an executable binary named file
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go gcc-4.8.1/libgo/go/os/exec/lp_unix.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/lp_unix.go	2013-10-01 16:06:44.196554279 +0000
@@ -42,6 +42,9 @@
 		return "", &Error{file, err}
 	}
 	pathenv := os.Getenv("PATH")
+	if pathenv == "" {
+		return "", &Error{file, ErrNotFound}
+	}
 	for _, dir := range strings.Split(pathenv, ":") {
 		if dir == "" {
 			// Unix shell semantics: path element "" means "."
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go	2013-10-01 16:06:44.196554279 +0000
@@ -0,0 +1,55 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package exec
+
+import (
+	"io/ioutil"
+	"os"
+	"testing"
+)
+
+func TestLookPathUnixEmptyPath(t *testing.T) {
+	tmp, err := ioutil.TempDir("", "TestLookPathUnixEmptyPath")
+	if err != nil {
+		t.Fatal("TempDir failed: ", err)
+	}
+	defer os.RemoveAll(tmp)
+	wd, err := os.Getwd()
+	if err != nil {
+		t.Fatal("Getwd failed: ", err)
+	}
+	err = os.Chdir(tmp)
+	if err != nil {
+		t.Fatal("Chdir failed: ", err)
+	}
+	defer os.Chdir(wd)
+
+	f, err := os.OpenFile("exec_me", os.O_CREATE|os.O_EXCL, 0700)
+	if err != nil {
+		t.Fatal("OpenFile failed: ", err)
+	}
+	err = f.Close()
+	if err != nil {
+		t.Fatal("Close failed: ", err)
+	}
+
+	pathenv := os.Getenv("PATH")
+	defer os.Setenv("PATH", pathenv)
+
+	err = os.Setenv("PATH", "")
+	if err != nil {
+		t.Fatal("Setenv failed: ", err)
+	}
+
+	path, err := LookPath("exec_me")
+	if err == nil {
+		t.Fatal("LookPath found exec_me in empty $PATH")
+	}
+	if path != "" {
+		t.Fatalf("LookPath path == %q when err != nil", path)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go gcc-4.8.1/libgo/go/os/exec/lp_windows.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec/lp_windows.go	2013-10-01 16:06:44.196554279 +0000
@@ -72,7 +72,7 @@
 		return
 	}
 	if pathenv := os.Getenv(`PATH`); pathenv != `` {
-		for _, dir := range strings.Split(pathenv, `;`) {
+		for _, dir := range splitList(pathenv) {
 			if f, err = findExecutable(dir+`\`+file, exts); err == nil {
 				return
 			}
@@ -80,3 +80,36 @@
 	}
 	return ``, &Error{file, ErrNotFound}
 }
+
+func splitList(path string) []string {
+	// The same implementation is used in SplitList in path/filepath;
+	// consider changing path/filepath when changing this.
+
+	if path == "" {
+		return []string{}
+	}
+
+	// Split path, respecting but preserving quotes.
+	list := []string{}
+	start := 0
+	quo := false
+	for i := 0; i < len(path); i++ {
+		switch c := path[i]; {
+		case c == '"':
+			quo = !quo
+		case c == os.PathListSeparator && !quo:
+			list = append(list, path[start:i])
+			start = i + 1
+		}
+	}
+	list = append(list, path[start:])
+
+	// Remove quotes.
+	for i, s := range list {
+		if strings.Contains(s, `"`) {
+			list[i] = strings.Replace(s, `"`, ``, -1)
+		}
+	}
+
+	return list
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec_posix.go gcc-4.8.1/libgo/go/os/exec_posix.go
--- gcc-4.8.1.orig/libgo/go/os/exec_posix.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/exec_posix.go	2013-10-01 16:06:44.196554279 +0000
@@ -118,9 +118,9 @@
 	case status.Exited():
 		res = "exit status " + itod(status.ExitStatus())
 	case status.Signaled():
-		res = "signal " + itod(int(status.Signal()))
+		res = "signal: " + status.Signal().String()
 	case status.Stopped():
-		res = "stop signal " + itod(int(status.StopSignal()))
+		res = "stop signal: " + status.StopSignal().String()
 		if status.StopSignal() == syscall.SIGTRAP && status.TrapCause() != 0 {
 			res += " (trap " + itod(status.TrapCause()) + ")"
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_plan9.go gcc-4.8.1/libgo/go/os/file_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/file_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/file_plan9.go	2013-10-01 16:06:44.196554279 +0000
@@ -104,7 +104,6 @@
 		append = true
 	}
 
-	syscall.ForkLock.RLock()
 	if (create && trunc) || excl {
 		fd, e = syscall.Create(name, flag, syscallMode(perm))
 	} else {
@@ -117,7 +116,6 @@
 			}
 		}
 	}
-	syscall.ForkLock.RUnlock()
 
 	if e != nil {
 		return nil, &PathError{"open", name, e}
@@ -246,13 +244,23 @@
 
 // write writes len(b) bytes to the File.
 // It returns the number of bytes written and an error, if any.
+// Since Plan 9 preserves message boundaries, never allow
+// a zero-byte write.
 func (f *File) write(b []byte) (n int, err error) {
+	if len(b) == 0 {
+		return 0, nil
+	}
 	return syscall.Write(f.fd, b)
 }
 
 // pwrite writes len(b) bytes to the File starting at byte offset off.
 // It returns the number of bytes written and an error, if any.
+// Since Plan 9 preserves message boundaries, never allow
+// a zero-byte write.
 func (f *File) pwrite(b []byte, off int64) (n int, err error) {
+	if len(b) == 0 {
+		return 0, nil
+	}
 	return syscall.Pwrite(f.fd, b, off)
 }
 
@@ -300,7 +308,7 @@
 	d.Null()
 	d.Name = newname
 
-	var buf [syscall.STATFIXLEN]byte
+	buf := make([]byte, syscall.STATFIXLEN+len(d.Name))
 	n, err := d.Marshal(buf[:])
 	if err != nil {
 		return &PathError{"rename", oldname, err}
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_posix.go gcc-4.8.1/libgo/go/os/file_posix.go
--- gcc-4.8.1.orig/libgo/go/os/file_posix.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/file_posix.go	2013-10-01 16:06:44.196554279 +0000
@@ -46,8 +46,6 @@
 			return string(b[0:n]), nil
 		}
 	}
-	// Silence 6g.
-	return "", nil
 }
 
 // Rename renames a file.
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_unix.go gcc-4.8.1/libgo/go/os/file_unix.go
--- gcc-4.8.1.orig/libgo/go/os/file_unix.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/file_unix.go	2013-10-01 16:06:44.196554279 +0000
@@ -209,7 +209,6 @@
 
 		return n, err
 	}
-	panic("not reached")
 }
 
 // pwrite writes len(b) bytes to the File starting at byte offset off.
diff -Naur gcc-4.8.1.orig/libgo/go/os/getwd.go gcc-4.8.1/libgo/go/os/getwd.go
--- gcc-4.8.1.orig/libgo/go/os/getwd.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/getwd.go	2013-10-01 16:06:44.196554279 +0000
@@ -5,9 +5,15 @@
 package os
 
 import (
+	"sync"
 	"syscall"
 )
 
+var getwdCache struct {
+	sync.Mutex
+	dir string
+}
+
 // Getwd returns a rooted path name corresponding to the
 // current directory.  If the current directory can be
 // reached via multiple paths (due to symbolic links),
@@ -35,6 +41,17 @@
 		}
 	}
 
+	// Apply same kludge but to cached dir instead of $PWD.
+	getwdCache.Lock()
+	pwd = getwdCache.dir
+	getwdCache.Unlock()
+	if len(pwd) > 0 {
+		d, err := Stat(pwd)
+		if err == nil && SameFile(dot, d) {
+			return pwd, nil
+		}
+	}
+
 	// Root is a special case because it has no parent
 	// and ends in a slash.
 	root, err := Stat("/")
@@ -73,8 +90,6 @@
 				}
 			}
 		}
-		fd.Close()
-		return "", ErrNotExist
 
 	Found:
 		pd, err := fd.Stat()
@@ -88,5 +103,11 @@
 		// Set up for next round.
 		dot = pd
 	}
+
+	// Save answer as hint to avoid the expensive path next time.
+	getwdCache.Lock()
+	getwdCache.dir = pwd
+	getwdCache.Unlock()
+
 	return pwd, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/os_test.go gcc-4.8.1/libgo/go/os/os_test.go
--- gcc-4.8.1.orig/libgo/go/os/os_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/os_test.go	2013-10-01 16:06:44.196554279 +0000
@@ -39,7 +39,6 @@
 		sd = &sysDir{
 			Getenv("SystemRoot") + "\\system32\\drivers\\etc",
 			[]string{
-				"hosts",
 				"networks",
 				"protocol",
 				"services",
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal.go gcc-4.8.1/libgo/go/os/signal/signal.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/signal/signal.go	2013-10-01 16:06:44.196554279 +0000
@@ -5,7 +5,7 @@
 // Package signal implements access to incoming signals.
 package signal
 
-// BUG(rsc): This package is not yet implemented on Plan 9 and Windows.
+// BUG(rsc): This package is not yet implemented on Plan 9.
 
 import (
 	"os"
@@ -14,13 +14,20 @@
 
 var handlers struct {
 	sync.Mutex
-	list []handler
+	m   map[chan<- os.Signal]*handler
+	ref [numSig]int64
 }
 
 type handler struct {
-	c   chan<- os.Signal
-	sig os.Signal
-	all bool
+	mask [(numSig + 31) / 32]uint32
+}
+
+func (h *handler) want(sig int) bool {
+	return (h.mask[sig/32]>>uint(sig&31))&1 != 0
+}
+
+func (h *handler) set(sig int) {
+	h.mask[sig/32] |= 1 << uint(sig&31)
 }
 
 // Notify causes package signal to relay incoming signals to c.
@@ -32,6 +39,13 @@
 // signal rate.  For a channel used for notification of just one signal value,
 // a buffer of size 1 is sufficient.
 //
+// It is allowed to call Notify multiple times with the same channel:
+// each call expands the set of signals sent to that channel.
+// The only way to remove signals from the set is to call Stop.
+//
+// It is allowed to call Notify multiple times with different channels
+// and the same signals: each channel receives copies of incoming
+// signals independently.
 func Notify(c chan<- os.Signal, sig ...os.Signal) {
 	if c == nil {
 		panic("os/signal: Notify using nil channel")
@@ -39,32 +53,77 @@
 
 	handlers.Lock()
 	defer handlers.Unlock()
+
+	h := handlers.m[c]
+	if h == nil {
+		if handlers.m == nil {
+			handlers.m = make(map[chan<- os.Signal]*handler)
+		}
+		h = new(handler)
+		handlers.m[c] = h
+	}
+
+	add := func(n int) {
+		if n < 0 {
+			return
+		}
+		if !h.want(n) {
+			h.set(n)
+			if handlers.ref[n] == 0 {
+				enableSignal(n)
+			}
+			handlers.ref[n]++
+		}
+	}
+
 	if len(sig) == 0 {
-		enableSignal(nil)
-		handlers.list = append(handlers.list, handler{c: c, all: true})
+		for n := 0; n < numSig; n++ {
+			add(n)
+		}
 	} else {
 		for _, s := range sig {
-			// We use nil as a special wildcard value for enableSignal,
-			// so filter it out of the list of arguments.  This is safe because
-			// we will never get an incoming nil signal, so discarding the
-			// registration cannot affect the observed behavior.
-			if s != nil {
-				enableSignal(s)
-				handlers.list = append(handlers.list, handler{c: c, sig: s})
+			add(signum(s))
+		}
+	}
+}
+
+// Stop causes package signal to stop relaying incoming signals to c.
+// It undoes the effect of all prior calls to Notify using c.
+// When Stop returns, it is guaranteed that c will receive no more signals.
+func Stop(c chan<- os.Signal) {
+	handlers.Lock()
+	defer handlers.Unlock()
+
+	h := handlers.m[c]
+	if h == nil {
+		return
+	}
+	delete(handlers.m, c)
+
+	for n := 0; n < numSig; n++ {
+		if h.want(n) {
+			handlers.ref[n]--
+			if handlers.ref[n] == 0 {
+				disableSignal(n)
 			}
 		}
 	}
 }
 
 func process(sig os.Signal) {
+	n := signum(sig)
+	if n < 0 {
+		return
+	}
+
 	handlers.Lock()
 	defer handlers.Unlock()
 
-	for _, h := range handlers.list {
-		if h.all || h.sig == sig {
+	for c, h := range handlers.m {
+		if h.want(n) {
 			// send but do not block for it
 			select {
-			case h.c <- sig:
+			case c <- sig:
 			default:
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go gcc-4.8.1/libgo/go/os/signal/signal_stub.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/signal/signal_stub.go	2013-10-01 16:06:44.196554279 +0000
@@ -8,4 +8,10 @@
 
 import "os"
 
-func enableSignal(sig os.Signal) {}
+const numSig = 0
+
+func signum(sig os.Signal) int { return -1 }
+
+func disableSignal(int) {}
+
+func enableSignal(int) {}
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go gcc-4.8.1/libgo/go/os/signal/signal_test.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/signal/signal_test.go	2013-10-01 16:06:44.196554279 +0000
@@ -7,15 +7,17 @@
 package signal
 
 import (
+	"flag"
+	"io/ioutil"
 	"os"
+	"os/exec"
 	"runtime"
+	"strconv"
 	"syscall"
 	"testing"
 	"time"
 )
 
-const sighup = syscall.SIGHUP
-
 func waitSig(t *testing.T, c <-chan os.Signal, sig os.Signal) {
 	select {
 	case s := <-c:
@@ -27,15 +29,17 @@
 	}
 }
 
+// Test that basic signal handling works.
 func TestSignal(t *testing.T) {
 	// Ask for SIGHUP
 	c := make(chan os.Signal, 1)
-	Notify(c, sighup)
+	Notify(c, syscall.SIGHUP)
+	defer Stop(c)
 
 	t.Logf("sighup...")
 	// Send this process a SIGHUP
-	syscall.Kill(syscall.Getpid(), sighup)
-	waitSig(t, c, sighup)
+	syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
+	waitSig(t, c, syscall.SIGHUP)
 
 	// Ask for everything we can get.
 	c1 := make(chan os.Signal, 1)
@@ -71,6 +75,7 @@
 	go func() {
 		sig := make(chan os.Signal, 1)
 		Notify(sig, syscall.SIGUSR1)
+		defer Stop(sig)
 	Loop:
 		for {
 			select {
@@ -98,4 +103,106 @@
 	close(done)
 	<-finished
 	<-finished
+	// When run with 'go test -cpu=1,2,4' SIGUSR1 from this test can slip
+	// into subsequent TestSignal() causing failure.
+	// Sleep for a while to reduce the possibility of the failure.
+	time.Sleep(10 * time.Millisecond)
+}
+
+var sendUncaughtSighup = flag.Int("send_uncaught_sighup", 0, "send uncaught SIGHUP during TestStop")
+
+// Test that Stop cancels the channel's registrations.
+func TestStop(t *testing.T) {
+	sigs := []syscall.Signal{
+		syscall.SIGWINCH,
+		syscall.SIGHUP,
+	}
+
+	for _, sig := range sigs {
+		// Send the signal.
+		// If it's SIGWINCH, we should not see it.
+		// If it's SIGHUP, maybe we'll die. Let the flag tell us what to do.
+		if sig != syscall.SIGHUP || *sendUncaughtSighup == 1 {
+			syscall.Kill(syscall.Getpid(), sig)
+		}
+		time.Sleep(10 * time.Millisecond)
+
+		// Ask for signal
+		c := make(chan os.Signal, 1)
+		Notify(c, sig)
+		defer Stop(c)
+
+		// Send this process that signal
+		syscall.Kill(syscall.Getpid(), sig)
+		waitSig(t, c, sig)
+
+		Stop(c)
+		select {
+		case s := <-c:
+			t.Fatalf("unexpected signal %v", s)
+		case <-time.After(10 * time.Millisecond):
+			// nothing to read - good
+		}
+
+		// Send the signal.
+		// If it's SIGWINCH, we should not see it.
+		// If it's SIGHUP, maybe we'll die. Let the flag tell us what to do.
+		if sig != syscall.SIGHUP || *sendUncaughtSighup == 2 {
+			syscall.Kill(syscall.Getpid(), sig)
+		}
+
+		select {
+		case s := <-c:
+			t.Fatalf("unexpected signal %v", s)
+		case <-time.After(10 * time.Millisecond):
+			// nothing to read - good
+		}
+	}
+}
+
+// Test that when run under nohup, an uncaught SIGHUP does not kill the program,
+// but a
+func TestNohup(t *testing.T) {
+	// Ugly: ask for SIGHUP so that child will not have no-hup set
+	// even if test is running under nohup environment.
+	// We have no intention of reading from c.
+	c := make(chan os.Signal, 1)
+	Notify(c, syscall.SIGHUP)
+
+	// When run without nohup, the test should crash on an uncaught SIGHUP.
+	// When run under nohup, the test should ignore uncaught SIGHUPs,
+	// because the runtime is not supposed to be listening for them.
+	// Either way, TestStop should still be able to catch them when it wants them
+	// and then when it stops wanting them, the original behavior should resume.
+	//
+	// send_uncaught_sighup=1 sends the SIGHUP before starting to listen for SIGHUPs.
+	// send_uncaught_sighup=2 sends the SIGHUP after no longer listening for SIGHUPs.
+	//
+	// Both should fail without nohup and succeed with nohup.
+
+	for i := 1; i <= 2; i++ {
+		out, err := exec.Command(os.Args[0], "-test.run=TestStop", "-send_uncaught_sighup="+strconv.Itoa(i)).CombinedOutput()
+		if err == nil {
+			t.Fatalf("ran test with -send_uncaught_sighup=%d and it succeeded: expected failure.\nOutput:\n%s", i, out)
+		}
+	}
+
+	Stop(c)
+
+	// Again, this time with nohup, assuming we can find it.
+	_, err := os.Stat("/usr/bin/nohup")
+	if err != nil {
+		t.Skip("cannot find nohup; skipping second half of test")
+	}
+
+	for i := 1; i <= 2; i++ {
+		os.Remove("nohup.out")
+		out, err := exec.Command("/usr/bin/nohup", os.Args[0], "-test.run=TestStop", "-send_uncaught_sighup="+strconv.Itoa(i)).CombinedOutput()
+
+		data, _ := ioutil.ReadFile("nohup.out")
+		os.Remove("nohup.out")
+		if err != nil {
+			t.Fatalf("ran test with -send_uncaught_sighup=%d under nohup and it failed: expected success.\nError: %v\nOutput:\n%s%s", i, err, out, data)
+		}
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go gcc-4.8.1/libgo/go/os/signal/signal_unix.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/signal/signal_unix.go	2013-10-01 16:06:44.196554279 +0000
@@ -12,6 +12,7 @@
 )
 
 // In assembly.
+func signal_disable(uint32)
 func signal_enable(uint32)
 func signal_recv() uint32
 
@@ -26,13 +27,27 @@
 	go loop()
 }
 
-func enableSignal(sig os.Signal) {
+const (
+	numSig = 65 // max across all systems
+)
+
+func signum(sig os.Signal) int {
 	switch sig := sig.(type) {
-	case nil:
-		signal_enable(^uint32(0))
 	case syscall.Signal:
-		signal_enable(uint32(sig))
+		i := int(sig)
+		if i < 0 || i >= numSig {
+			return -1
+		}
+		return i
 	default:
-		// Can ignore: this signal (whatever it is) will never come in.
+		return -1
 	}
 }
+
+func enableSignal(sig int) {
+	signal_enable(uint32(sig))
+}
+
+func disableSignal(sig int) {
+	signal_disable(uint32(sig))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat.go gcc-4.8.1/libgo/go/os/stat.go
--- gcc-4.8.1.orig/libgo/go/os/stat.go	2012-04-22 20:07:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/stat.go	2013-10-01 16:06:44.200554279 +0000
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atim.go gcc-4.8.1/libgo/go/os/stat_atim.go
--- gcc-4.8.1.orig/libgo/go/os/stat_atim.go	2012-11-05 17:36:40.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/stat_atim.go	2013-10-01 16:06:44.196554279 +0000
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go gcc-4.8.1/libgo/go/os/stat_atimespec.go
--- gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go	2013-01-24 18:12:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/stat_atimespec.go	2013-10-01 16:06:44.196554279 +0000
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_plan9.go gcc-4.8.1/libgo/go/os/stat_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/stat_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/stat_plan9.go	2013-10-01 16:06:44.200554279 +0000
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	a := sys1.(*syscall.Dir)
-	b := sys2.(*syscall.Dir)
+func sameFile(fs1, fs2 *fileStat) bool {
+	a := fs1.sys.(*syscall.Dir)
+	b := fs2.sys.(*syscall.Dir)
 	return a.Qid.Path == b.Qid.Path && a.Type == b.Type && a.Dev == b.Dev
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_solaris.go gcc-4.8.1/libgo/go/os/stat_solaris.go
--- gcc-4.8.1.orig/libgo/go/os/stat_solaris.go	2012-04-22 20:07:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/stat_solaris.go	2013-10-01 16:06:44.200554279 +0000
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/types.go gcc-4.8.1/libgo/go/os/types.go
--- gcc-4.8.1.orig/libgo/go/os/types.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/types.go	2013-10-01 16:06:44.200554279 +0000
@@ -99,21 +99,8 @@
 	return m & ModePerm
 }
 
-// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
-type fileStat struct {
-	name    string
-	size    int64
-	mode    FileMode
-	modTime time.Time
-	sys     interface{}
-}
-
-func (fs *fileStat) Name() string       { return fs.name }
-func (fs *fileStat) Size() int64        { return fs.size }
-func (fs *fileStat) Mode() FileMode     { return fs.mode }
-func (fs *fileStat) ModTime() time.Time { return fs.modTime }
-func (fs *fileStat) IsDir() bool        { return fs.mode.IsDir() }
-func (fs *fileStat) Sys() interface{}   { return fs.sys }
+func (fs *fileStat) Name() string { return fs.name }
+func (fs *fileStat) IsDir() bool  { return fs.Mode().IsDir() }
 
 // SameFile reports whether fi1 and fi2 describe the same file.
 // For example, on Unix this means that the device and inode fields
@@ -127,5 +114,5 @@
 	if !ok1 || !ok2 {
 		return false
 	}
-	return sameFile(fs1.sys, fs2.sys)
+	return sameFile(fs1, fs2)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/types_notwin.go gcc-4.8.1/libgo/go/os/types_notwin.go
--- gcc-4.8.1.orig/libgo/go/os/types_notwin.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/types_notwin.go	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,25 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !windows
+
+package os
+
+import (
+	"time"
+)
+
+// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
+type fileStat struct {
+	name    string
+	size    int64
+	mode    FileMode
+	modTime time.Time
+	sys     interface{}
+}
+
+func (fs *fileStat) Size() int64        { return fs.size }
+func (fs *fileStat) Mode() FileMode     { return fs.mode }
+func (fs *fileStat) ModTime() time.Time { return fs.modTime }
+func (fs *fileStat) Sys() interface{}   { return fs.sys }
diff -Naur gcc-4.8.1.orig/libgo/go/os/types_windows.go gcc-4.8.1/libgo/go/os/types_windows.go
--- gcc-4.8.1.orig/libgo/go/os/types_windows.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/os/types_windows.go	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,104 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package os
+
+import (
+	"sync"
+	"syscall"
+	"time"
+)
+
+// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
+type fileStat struct {
+	name string
+	sys  syscall.Win32FileAttributeData
+
+	// used to implement SameFile
+	sync.Mutex
+	path  string
+	vol   uint32
+	idxhi uint32
+	idxlo uint32
+}
+
+func (fs *fileStat) Size() int64 {
+	return int64(fs.sys.FileSizeHigh)<<32 + int64(fs.sys.FileSizeLow)
+}
+
+func (fs *fileStat) Mode() (m FileMode) {
+	if fs == &devNullStat {
+		return ModeDevice | ModeCharDevice | 0666
+	}
+	if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
+		m |= ModeDir | 0111
+	}
+	if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_READONLY != 0 {
+		m |= 0444
+	} else {
+		m |= 0666
+	}
+	return m
+}
+
+func (fs *fileStat) ModTime() time.Time {
+	return time.Unix(0, fs.sys.LastWriteTime.Nanoseconds())
+}
+
+// Sys returns syscall.Win32FileAttributeData for file fs.
+func (fs *fileStat) Sys() interface{} { return &fs.sys }
+
+func (fs *fileStat) loadFileId() error {
+	fs.Lock()
+	defer fs.Unlock()
+	if fs.path == "" {
+		// already done
+		return nil
+	}
+	pathp, err := syscall.UTF16PtrFromString(fs.path)
+	if err != nil {
+		return err
+	}
+	h, err := syscall.CreateFile(pathp, 0, 0, nil, syscall.OPEN_EXISTING, syscall.FILE_FLAG_BACKUP_SEMANTICS, 0)
+	if err != nil {
+		return err
+	}
+	defer syscall.CloseHandle(h)
+	var i syscall.ByHandleFileInformation
+	err = syscall.GetFileInformationByHandle(syscall.Handle(h), &i)
+	if err != nil {
+		return err
+	}
+	fs.path = ""
+	fs.vol = i.VolumeSerialNumber
+	fs.idxhi = i.FileIndexHigh
+	fs.idxlo = i.FileIndexLow
+	return nil
+}
+
+// devNullStat is fileStat structure describing DevNull file ("NUL").
+var devNullStat = fileStat{
+	name: DevNull,
+	// hopefully this will work for SameFile
+	vol:   0,
+	idxhi: 0,
+	idxlo: 0,
+}
+
+func sameFile(fs1, fs2 *fileStat) bool {
+	e := fs1.loadFileId()
+	if e != nil {
+		return false
+	}
+	e = fs2.loadFileId()
+	if e != nil {
+		return false
+	}
+	return fs1.vol == fs2.vol && fs1.idxhi == fs2.idxhi && fs1.idxlo == fs2.idxlo
+}
+
+// For testing.
+func atime(fi FileInfo) time.Time {
+	return time.Unix(0, fi.Sys().(*syscall.Win32FileAttributeData).LastAccessTime.Nanoseconds())
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,39 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !windows,!plan9
+
+package filepath_test
+
+import (
+	"fmt"
+	"path/filepath"
+)
+
+func ExampleSplitList() {
+	fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
+	// Output:
+	// On Unix: [/a/b/c /usr/bin]
+}
+
+func ExampleRel() {
+	paths := []string{
+		"/a/b/c",
+		"/b/c",
+		"./b/c",
+	}
+	base := "/a"
+
+	fmt.Println("On Unix:")
+	for _, p := range paths {
+		rel, err := filepath.Rel(base, p)
+		fmt.Printf("%q: %q %v\n", p, rel, err)
+	}
+
+	// Output:
+	// On Unix:
+	// "/a/b/c": "b/c" <nil>
+	// "/b/c": "../b/c" <nil>
+	// "./b/c": "" Rel: can't make b/c relative to /a
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go gcc-4.8.1/libgo/go/path/filepath/match_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go	2012-03-30 22:09:55.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/match_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package filepath_test
+package filepath
 
 import (
-	. "path/filepath"
 	"runtime"
 	"strings"
 	"testing"
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path.go gcc-4.8.1/libgo/go/path/filepath/path.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/path.go	2013-10-01 16:06:44.200554279 +0000
@@ -176,10 +176,7 @@
 // usually found in PATH or GOPATH environment variables.
 // Unlike strings.Split, SplitList returns an empty slice when passed an empty string.
 func SplitList(path string) []string {
-	if path == "" {
-		return []string{}
-	}
-	return strings.Split(path, string(ListSeparator))
+	return splitList(path)
 }
 
 // Split splits path immediately following the final Separator,
@@ -374,6 +371,7 @@
 // and directories are filtered by walkFn. The files are walked in lexical
 // order, which makes the output deterministic but means that for very
 // large directories Walk can be inefficient.
+// Walk does not follow symbolic links.
 func Walk(root string, walkFn WalkFunc) error {
 	info, err := os.Lstat(root)
 	if err != nil {
@@ -436,7 +434,8 @@
 }
 
 // Dir returns all but the last element of path, typically the path's directory.
-// Trailing path separators are removed before processing.
+// After dropping the final element, the path is Cleaned and trailing
+// slashes are removed.
 // If the path is empty, Dir returns ".".
 // If the path consists entirely of separators, Dir returns a single separator.
 // The returned path does not end in a separator unless it is the root directory.
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go gcc-4.8.1/libgo/go/path/filepath/path_plan9.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/path_plan9.go	2013-10-01 16:06:44.200554279 +0000
@@ -21,3 +21,10 @@
 func HasPrefix(p, prefix string) bool {
 	return strings.HasPrefix(p, prefix)
 }
+
+func splitList(path string) []string {
+	if path == "" {
+		return []string{}
+	}
+	return strings.Split(path, string(ListSeparator))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go gcc-4.8.1/libgo/go/path/filepath/path_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/path_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -91,7 +91,6 @@
 }
 
 func TestClean(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
 	tests := cleantests
 	if runtime.GOOS == "windows" {
 		for i := range tests {
@@ -108,22 +107,20 @@
 		}
 	}
 
-	var ms runtime.MemStats
-	runtime.ReadMemStats(&ms)
-	allocs := -ms.Mallocs
-	const rounds = 100
-	for i := 0; i < rounds; i++ {
-		for _, test := range tests {
-			filepath.Clean(test.result)
-		}
-	}
-	runtime.ReadMemStats(&ms)
-	allocs += ms.Mallocs
-	/* Fails with gccgo, which has no escape analysis.
-	if allocs >= rounds {
-		t.Errorf("Clean cleaned paths: %d allocations per test round, want zero", allocs/rounds)
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Log("skipping AllocsPerRun checks; GOMAXPROCS>1")
+		return
+	}
+
+	t.Log("Skipping AllocsPerRun for gccgo")
+	return
+
+	for _, test := range tests {
+		allocs := testing.AllocsPerRun(100, func() { filepath.Clean(test.result) })
+		if allocs > 0 {
+			t.Errorf("Clean(%q): %v allocs, want zero", test.result, allocs)
+		}
 	}
-	*/
 }
 
 const sep = filepath.Separator
@@ -159,10 +156,36 @@
 	{string([]byte{lsep, 'a', lsep, 'b'}), []string{"", "a", "b"}},
 }
 
+var winsplitlisttests = []SplitListTest{
+	// quoted
+	{`"a"`, []string{`a`}},
+
+	// semicolon
+	{`";"`, []string{`;`}},
+	{`"a;b"`, []string{`a;b`}},
+	{`";";`, []string{`;`, ``}},
+	{`;";"`, []string{``, `;`}},
+
+	// partially quoted
+	{`a";"b`, []string{`a;b`}},
+	{`a; ""b`, []string{`a`, ` b`}},
+	{`"a;b`, []string{`a;b`}},
+	{`""a;b`, []string{`a`, `b`}},
+	{`"""a;b`, []string{`a;b`}},
+	{`""""a;b`, []string{`a`, `b`}},
+	{`a";b`, []string{`a;b`}},
+	{`a;b";c`, []string{`a`, `b;c`}},
+	{`"a";b";c`, []string{`a`, `b;c`}},
+}
+
 func TestSplitList(t *testing.T) {
-	for _, test := range splitlisttests {
+	tests := splitlisttests
+	if runtime.GOOS == "windows" {
+		tests = append(tests, winsplitlisttests...)
+	}
+	for _, test := range tests {
 		if l := filepath.SplitList(test.list); !reflect.DeepEqual(l, test.result) {
-			t.Errorf("SplitList(%q) = %s, want %s", test.list, l, test.result)
+			t.Errorf("SplitList(%#q) = %#q, want %#q", test.list, l, test.result)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go gcc-4.8.1/libgo/go/path/filepath/path_unix.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/path_unix.go	2013-10-01 16:06:44.200554279 +0000
@@ -23,3 +23,10 @@
 func HasPrefix(p, prefix string) bool {
 	return strings.HasPrefix(p, prefix)
 }
+
+func splitList(path string) []string {
+	if path == "" {
+		return []string{}
+	}
+	return strings.Split(path, string(ListSeparator))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go gcc-4.8.1/libgo/go/path/filepath/path_windows.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/filepath/path_windows.go	2013-10-01 16:06:44.200554279 +0000
@@ -70,3 +70,36 @@
 	}
 	return strings.HasPrefix(strings.ToLower(p), strings.ToLower(prefix))
 }
+
+func splitList(path string) []string {
+	// The same implementation is used in LookPath in os/exec;
+	// consider changing os/exec when changing this.
+
+	if path == "" {
+		return []string{}
+	}
+
+	// Split path, respecting but preserving quotes.
+	list := []string{}
+	start := 0
+	quo := false
+	for i := 0; i < len(path); i++ {
+		switch c := path[i]; {
+		case c == '"':
+			quo = !quo
+		case c == ListSeparator && !quo:
+			list = append(list, path[start:i])
+			start = i + 1
+		}
+	}
+	list = append(list, path[start:])
+
+	// Remove quotes.
+	for i, s := range list {
+		if strings.Contains(s, `"`) {
+			list[i] = strings.Replace(s, `"`, ``, -1)
+		}
+	}
+
+	return list
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/path_test.go gcc-4.8.1/libgo/go/path/path_test.go
--- gcc-4.8.1.orig/libgo/go/path/path_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/path/path_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -64,7 +64,6 @@
 }
 
 func TestClean(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
 	for _, test := range cleantests {
 		if s := Clean(test.path); s != test.result {
 			t.Errorf("Clean(%q) = %q, want %q", test.path, s, test.result)
@@ -74,22 +73,20 @@
 		}
 	}
 
-	var ms runtime.MemStats
-	runtime.ReadMemStats(&ms)
-	allocs := -ms.Mallocs
-	const rounds = 100
-	for i := 0; i < rounds; i++ {
-		for _, test := range cleantests {
-			Clean(test.result)
-		}
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Log("skipping AllocsPerRun checks; GOMAXPROCS>1")
+		return
 	}
-	runtime.ReadMemStats(&ms)
-	allocs += ms.Mallocs
-	/* Fails with gccgo, which has no escape analysis.
-	if allocs >= rounds {
-		t.Errorf("Clean cleaned paths: %d allocations per test round, want zero", allocs/rounds)
+
+	t.Log("Skipping AllocsPerRun for gccgo")
+	return
+
+	for _, test := range cleantests {
+		allocs := testing.AllocsPerRun(100, func() { Clean(test.result) })
+		if allocs > 0 {
+			t.Errorf("Clean(%q): %v allocs, want zero", test.result, allocs)
+		}
 	}
-	*/
 }
 
 type SplitTest struct {
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/all_test.go gcc-4.8.1/libgo/go/reflect/all_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/all_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/all_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -13,7 +13,8 @@
 	"math/rand"
 	"os"
 	. "reflect"
-	/*	"runtime" */
+	"runtime"
+	"sort"
 	"sync"
 	"testing"
 	"time"
@@ -1429,11 +1430,13 @@
 	}
 }
 
-/*
-
-Not yet implemented for gccgo.
-
 func TestMakeFunc(t *testing.T) {
+	switch runtime.GOARCH {
+	case "amd64", "386":
+	default:
+		t.Skip("MakeFunc not implemented for " + runtime.GOARCH)
+	}
+
 	f := dummy
 	fv := MakeFunc(TypeOf(f), func(in []Value) []Value { return in })
 	ValueOf(&f).Elem().Set(fv)
@@ -1451,8 +1454,6 @@
 	}
 }
 
-*/
-
 type Point struct {
 	x, y int
 }
@@ -1464,7 +1465,7 @@
 
 // This will be index 1.
 func (p Point) Dist(scale int) int {
-	//	println("Point.Dist", p.x, p.y, scale)
+	//println("Point.Dist", p.x, p.y, scale)
 	return p.x*p.x*scale + p.y*p.y*scale
 }
 
@@ -1480,24 +1481,93 @@
 	if !ok {
 		t.Fatalf("method by name failed")
 	}
-	m.Func.Call([]Value{ValueOf(p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Type MethodByName returned %d; want 250", i)
+	i = m.Func.Call([]Value{ValueOf(p), ValueOf(11)})[0].Int()
+	if i != 275 {
+		t.Errorf("Type MethodByName returned %d; want 275", i)
 	}
 
-	i = TypeOf(&p).Method(1).Func.Call([]Value{ValueOf(&p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Type Method returned %d; want 250", i)
+	i = TypeOf(&p).Method(1).Func.Call([]Value{ValueOf(&p), ValueOf(12)})[0].Int()
+	if i != 300 {
+		t.Errorf("Pointer Type Method returned %d; want 300", i)
 	}
 
 	m, ok = TypeOf(&p).MethodByName("Dist")
 	if !ok {
 		t.Fatalf("ptr method by name failed")
 	}
-	i = m.Func.Call([]Value{ValueOf(&p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Type MethodByName returned %d; want 250", i)
+	i = m.Func.Call([]Value{ValueOf(&p), ValueOf(13)})[0].Int()
+	if i != 325 {
+		t.Errorf("Pointer Type MethodByName returned %d; want 325", i)
+	}
+
+	// Curried method of value.
+	tfunc := TypeOf((func(int) int)(nil))
+	v := ValueOf(p).Method(1)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(14)})[0].Int()
+	if i != 350 {
+		t.Errorf("Value Method returned %d; want 350", i)
+	}
+	v = ValueOf(p).MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Value MethodByName Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(15)})[0].Int()
+	if i != 375 {
+		t.Errorf("Value MethodByName returned %d; want 375", i)
+	}
+
+	// Curried method of pointer.
+	v = ValueOf(&p).Method(1)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Pointer Value Method Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(16)})[0].Int()
+	if i != 400 {
+		t.Errorf("Pointer Value Method returned %d; want 400", i)
+	}
+	v = ValueOf(&p).MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Pointer Value MethodByName Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(17)})[0].Int()
+	if i != 425 {
+		t.Errorf("Pointer Value MethodByName returned %d; want 425", i)
+	}
+
+	// Curried method of interface value.
+	// Have to wrap interface value in a struct to get at it.
+	// Passing it to ValueOf directly would
+	// access the underlying Point, not the interface.
+	var x interface {
+		Dist(int) int
+	} = p
+	pv := ValueOf(&x).Elem()
+	v = pv.Method(0)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Interface Method Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(18)})[0].Int()
+	if i != 450 {
+		t.Errorf("Interface Method returned %d; want 450", i)
+	}
+	v = pv.MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc)
 	}
+	i = v.Call([]Value{ValueOf(19)})[0].Int()
+	if i != 475 {
+		t.Errorf("Interface MethodByName returned %d; want 475", i)
+	}
+}
+
+/* Not yet implemented for gccgo
+
+func TestMethodValue(t *testing.T) {
+	p := Point{3, 4}
+	var i int64
 
 	// Curried method of value.
 	tfunc := TypeOf((func(int) int)(nil))
@@ -1505,7 +1575,7 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(10)})[0].Int()
 	if i != 250 {
 		t.Errorf("Value Method returned %d; want 250", i)
 	}
@@ -1513,9 +1583,9 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Value MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Value MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(11)})[0].Int()
+	if i != 275 {
+		t.Errorf("Value MethodByName returned %d; want 275", i)
 	}
 
 	// Curried method of pointer.
@@ -1523,17 +1593,17 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Pointer Value Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Value Method returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(12)})[0].Int()
+	if i != 300 {
+		t.Errorf("Pointer Value Method returned %d; want 300", i)
 	}
 	v = ValueOf(&p).MethodByName("Dist")
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Pointer Value MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Value MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(13)})[0].Int()
+	if i != 325 {
+		t.Errorf("Pointer Value MethodByName returned %d; want 325", i)
 	}
 
 	// Curried method of interface value.
@@ -1550,20 +1620,209 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Interface Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Interface Method returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(14)})[0].Int()
+	if i != 350 {
+		t.Errorf("Interface Method returned %d; want 350", i)
 	}
 	v = pv.MethodByName("Dist")
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Interface MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(15)})[0].Int()
+	if i != 375 {
+		t.Errorf("Interface MethodByName returned %d; want 375", i)
 	}
 }
 
+*/
+
+// Reflect version of $GOROOT/test/method5.go
+
+// Concrete types implementing M method.
+// Smaller than a word, word-sized, larger than a word.
+// Value and pointer receivers.
+
+type Tinter interface {
+	M(int, byte) (byte, int)
+}
+
+type Tsmallv byte
+
+func (v Tsmallv) M(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type Tsmallp byte
+
+func (p *Tsmallp) M(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type Twordv uintptr
+
+func (v Twordv) M(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type Twordp uintptr
+
+func (p *Twordp) M(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type Tbigv [2]uintptr
+
+func (v Tbigv) M(x int, b byte) (byte, int) { return b, x + int(v[0]) + int(v[1]) }
+
+type Tbigp [2]uintptr
+
+func (p *Tbigp) M(x int, b byte) (byte, int) { return b, x + int(p[0]) + int(p[1]) }
+
+// Again, with an unexported method.
+
+type tsmallv byte
+
+func (v tsmallv) m(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type tsmallp byte
+
+func (p *tsmallp) m(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type twordv uintptr
+
+func (v twordv) m(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type twordp uintptr
+
+func (p *twordp) m(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type tbigv [2]uintptr
+
+func (v tbigv) m(x int, b byte) (byte, int) { return b, x + int(v[0]) + int(v[1]) }
+
+type tbigp [2]uintptr
+
+func (p *tbigp) m(x int, b byte) (byte, int) { return b, x + int(p[0]) + int(p[1]) }
+
+type tinter interface {
+	m(int, byte) (byte, int)
+}
+
+// Embedding via pointer.
+
+type Tm1 struct {
+	Tm2
+}
+
+type Tm2 struct {
+	*Tm3
+}
+
+type Tm3 struct {
+	*Tm4
+}
+
+type Tm4 struct {
+}
+
+func (t4 Tm4) M(x int, b byte) (byte, int) { return b, x + 40 }
+
+func TestMethod5(t *testing.T) {
+	/* Not yet used for gccgo
+	CheckF := func(name string, f func(int, byte) (byte, int), inc int) {
+		b, x := f(1000, 99)
+		if b != 99 || x != 1000+inc {
+			t.Errorf("%s(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
+		}
+	}
+	*/
+
+	CheckV := func(name string, i Value, inc int) {
+		bx := i.Method(0).Call([]Value{ValueOf(1000), ValueOf(byte(99))})
+		b := bx[0].Interface()
+		x := bx[1].Interface()
+		if b != byte(99) || x != 1000+inc {
+			t.Errorf("direct %s.M(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
+		}
+
+		/* Not yet implemented for gccgo
+		CheckF(name+".M", i.Method(0).Interface().(func(int, byte) (byte, int)), inc)
+		*/
+	}
+
+	var TinterType = TypeOf(new(Tinter)).Elem()
+	var tinterType = TypeOf(new(tinter)).Elem()
+
+	CheckI := func(name string, i interface{}, inc int) {
+		v := ValueOf(i)
+		CheckV(name, v, inc)
+		CheckV("(i="+name+")", v.Convert(TinterType), inc)
+	}
+
+	sv := Tsmallv(1)
+	CheckI("sv", sv, 1)
+	CheckI("&sv", &sv, 1)
+
+	sp := Tsmallp(2)
+	CheckI("&sp", &sp, 2)
+
+	wv := Twordv(3)
+	CheckI("wv", wv, 3)
+	CheckI("&wv", &wv, 3)
+
+	wp := Twordp(4)
+	CheckI("&wp", &wp, 4)
+
+	bv := Tbigv([2]uintptr{5, 6})
+	CheckI("bv", bv, 11)
+	CheckI("&bv", &bv, 11)
+
+	bp := Tbigp([2]uintptr{7, 8})
+	CheckI("&bp", &bp, 15)
+
+	t4 := Tm4{}
+	t3 := Tm3{&t4}
+	t2 := Tm2{&t3}
+	t1 := Tm1{t2}
+	CheckI("t4", t4, 40)
+	CheckI("&t4", &t4, 40)
+	CheckI("t3", t3, 40)
+	CheckI("&t3", &t3, 40)
+	CheckI("t2", t2, 40)
+	CheckI("&t2", &t2, 40)
+	CheckI("t1", t1, 40)
+	CheckI("&t1", &t1, 40)
+
+	methodShouldPanic := func(name string, i interface{}) {
+		v := ValueOf(i)
+		m := v.Method(0)
+		shouldPanic(func() { m.Call([]Value{ValueOf(1000), ValueOf(byte(99))}) })
+		shouldPanic(func() { m.Interface() })
+
+		v = v.Convert(tinterType)
+		m = v.Method(0)
+		shouldPanic(func() { m.Call([]Value{ValueOf(1000), ValueOf(byte(99))}) })
+		shouldPanic(func() { m.Interface() })
+	}
+
+	_sv := tsmallv(1)
+	methodShouldPanic("_sv", _sv)
+	methodShouldPanic("&_sv", &_sv)
+
+	_sp := tsmallp(2)
+	methodShouldPanic("&_sp", &_sp)
+
+	_wv := twordv(3)
+	methodShouldPanic("_wv", _wv)
+	methodShouldPanic("&_wv", &_wv)
+
+	_wp := twordp(4)
+	methodShouldPanic("&_wp", &_wp)
+
+	_bv := tbigv([2]uintptr{5, 6})
+	methodShouldPanic("_bv", _bv)
+	methodShouldPanic("&_bv", &_bv)
+
+	_bp := tbigp([2]uintptr{7, 8})
+	methodShouldPanic("&_bp", &_bp)
+
+	var tnil Tinter
+	vnil := ValueOf(&tnil).Elem()
+	shouldPanic(func() { vnil.Method(0) })
+}
+
 func TestInterfaceSet(t *testing.T) {
 	p := &Point{3, 4}
 
@@ -1891,6 +2150,7 @@
 func (*outer) m() {}
 
 func TestNestedMethods(t *testing.T) {
+	t.Skip("fails on gccgo due to function wrappers")
 	typ := TypeOf((*outer)(nil))
 	if typ.NumMethod() != 1 || typ.Method(0).Func.Pointer() != ValueOf((*outer).m).Pointer() {
 		t.Errorf("Wrong method table for outer: (m=%p)", (*outer).m)
@@ -1915,6 +2175,7 @@
 }
 
 func TestEmbeddedMethods(t *testing.T) {
+	/* This part of the test fails on gccgo due to function wrappers.
 	typ := TypeOf((*OuterInt)(nil))
 	if typ.NumMethod() != 1 || typ.Method(0).Func.Pointer() != ValueOf((*OuterInt).M).Pointer() {
 		t.Errorf("Wrong method table for OuterInt: (m=%p)", (*OuterInt).M)
@@ -1923,6 +2184,7 @@
 			t.Errorf("\t%d: %s %#x\n", i, m.Name, m.Func.Pointer())
 		}
 	}
+	*/
 
 	i := &InnerInt{3}
 	if v := ValueOf(i).Method(0).Call(nil)[0].Int(); v != 3 {
@@ -1955,6 +2217,30 @@
 	}
 }
 
+func TestPtrToGC(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	pt := PtrTo(tt)
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := New(pt)
+		p := new(*uintptr)
+		*p = new(uintptr)
+		**p = uintptr(i)
+		v.Elem().Set(ValueOf(p).Convert(pt))
+		x = append(x, v.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		k := ValueOf(xi).Elem().Elem().Elem().Interface().(uintptr)
+		if k != uintptr(i) {
+			t.Errorf("lost x[%d] = %d, want %d", i, k, i)
+		}
+	}
+}
+
 func TestAddr(t *testing.T) {
 	var p struct {
 		X, Y int
@@ -2020,20 +2306,16 @@
 /* gccgo does do allocations here.
 
 func noAlloc(t *testing.T, n int, f func(int)) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
-	// once to prime everything
-	f(-1)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	oldmallocs := memstats.Mallocs
-
-	for j := 0; j < n; j++ {
-		f(j)
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs := memstats.Mallocs - oldmallocs
-	if mallocs > 0 {
-		t.Fatalf("%d mallocs after %d iterations", mallocs, n)
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	i := -1
+	allocs := testing.AllocsPerRun(n, func() {
+		f(i)
+		i++
+	})
+	if allocs > 0 {
+		t.Errorf("%d iterations: got %v mallocs, want 0", n, allocs)
 	}
 }
 
@@ -2124,6 +2406,15 @@
 	}
 }
 
+func TestFuncArg(t *testing.T) {
+	f1 := func(i int, f func(int) int) int { return f(i) }
+	f2 := func(i int) int { return i + 1 }
+	r := ValueOf(f1).Call([]Value{ValueOf(100), ValueOf(f2)})
+	if r[0].Int() != 101 {
+		t.Errorf("function returned %d, want 101", r[0].Int())
+	}
+}
+
 var tagGetTests = []struct {
 	Tag   StructTag
 	Key   string
@@ -2755,8 +3046,10 @@
 	type T int
 	st := SliceOf(TypeOf(T(1)))
 	v := MakeSlice(st, 10, 10)
+	runtime.GC()
 	for i := 0; i < v.Len(); i++ {
 		v.Index(i).Set(ValueOf(T(i)))
+		runtime.GC()
 	}
 	s := fmt.Sprint(v.Interface())
 	want := "[0 1 2 3 4 5 6 7 8 9]"
@@ -2769,13 +3062,63 @@
 	checkSameType(t, Zero(SliceOf(TypeOf(T1(1)))).Interface(), []T1{})
 }
 
+func TestSliceOverflow(t *testing.T) {
+	// check that MakeSlice panics when size of slice overflows uint
+	const S = 1e6
+	s := uint(S)
+	l := (1<<(unsafe.Sizeof((*byte)(nil))*8)-1)/s + 1
+	if l*s >= s {
+		t.Fatal("slice size does not overflow")
+	}
+	var x [S]byte
+	st := SliceOf(TypeOf(x))
+	defer func() {
+		err := recover()
+		if err == nil {
+			t.Fatal("slice overflow does not panic")
+		}
+	}()
+	MakeSlice(st, int(l), int(l))
+}
+
+func TestSliceOfGC(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	st := SliceOf(tt)
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeSlice(st, n, n)
+		for j := 0; j < v.Len(); j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.Index(j).Set(ValueOf(p).Convert(tt))
+		}
+		x = append(x, v.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi)
+		for j := 0; j < v.Len(); j++ {
+			k := v.Index(j).Elem().Interface()
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
 func TestChanOf(t *testing.T) {
 	// check construction and use of type not in binary
 	type T string
 	ct := ChanOf(BothDir, TypeOf(T("")))
 	v := MakeChan(ct, 2)
+	runtime.GC()
 	v.Send(ValueOf(T("hello")))
+	runtime.GC()
 	v.Send(ValueOf(T("world")))
+	runtime.GC()
 
 	sv1, _ := v.Recv()
 	sv2, _ := v.Recv()
@@ -2790,13 +3133,63 @@
 	checkSameType(t, Zero(ChanOf(BothDir, TypeOf(T1(1)))).Interface(), (chan T1)(nil))
 }
 
+func TestChanOfGC(t *testing.T) {
+	done := make(chan bool, 1)
+	go func() {
+		select {
+		case <-done:
+		case <-time.After(5 * time.Second):
+			panic("deadlock in TestChanOfGC")
+		}
+	}()
+
+	defer func() {
+		done <- true
+	}()
+
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	ct := ChanOf(BothDir, tt)
+
+	// NOTE: The garbage collector handles allocated channels specially,
+	// so we have to save pointers to channels in x; the pointer code will
+	// use the gc info in the newly constructed chan type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeChan(ct, n)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.Send(ValueOf(p).Convert(tt))
+		}
+		pv := New(ct)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		for j := 0; j < n; j++ {
+			pv, _ := v.Recv()
+			k := pv.Elem().Interface()
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
 func TestMapOf(t *testing.T) {
 	// check construction and use of type not in binary
 	type K string
 	type V float64
 
 	v := MakeMap(MapOf(TypeOf(K("")), TypeOf(V(0))))
+	runtime.GC()
 	v.SetMapIndex(ValueOf(K("a")), ValueOf(V(1)))
+	runtime.GC()
 
 	s := fmt.Sprint(v.Interface())
 	want := "map[a:1]"
@@ -2806,6 +3199,81 @@
 
 	// check that type already in binary is found
 	checkSameType(t, Zero(MapOf(TypeOf(V(0)), TypeOf(K("")))).Interface(), map[V]K(nil))
+
+	// check that invalid key type panics
+	shouldPanic(func() { MapOf(TypeOf((func())(nil)), TypeOf(false)) })
+}
+
+func TestMapOfGCKeys(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	mt := MapOf(tt, TypeOf(false))
+
+	// NOTE: The garbage collector handles allocated maps specially,
+	// so we have to save pointers to maps in x; the pointer code will
+	// use the gc info in the newly constructed map type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeMap(mt)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.SetMapIndex(ValueOf(p).Convert(tt), ValueOf(true))
+		}
+		pv := New(mt)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		var out []int
+		for _, kv := range v.MapKeys() {
+			out = append(out, int(kv.Elem().Interface().(uintptr)))
+		}
+		sort.Ints(out)
+		for j, k := range out {
+			if k != i*n+j {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
+func TestMapOfGCValues(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	mt := MapOf(TypeOf(1), tt)
+
+	// NOTE: The garbage collector handles allocated maps specially,
+	// so we have to save pointers to maps in x; the pointer code will
+	// use the gc info in the newly constructed map type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeMap(mt)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.SetMapIndex(ValueOf(j), ValueOf(p).Convert(tt))
+		}
+		pv := New(mt)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		for j := 0; j < n; j++ {
+			k := v.MapIndex(ValueOf(j)).Elem().Interface().(uintptr)
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
 }
 
 type B1 struct {
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/deepequal.go gcc-4.8.1/libgo/go/reflect/deepequal.go
--- gcc-4.8.1.orig/libgo/go/reflect/deepequal.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/deepequal.go	2013-10-01 16:06:44.200554279 +0000
@@ -118,8 +118,6 @@
 		// Normal equality suffices
 		return valueInterface(v1, false) == valueInterface(v2, false)
 	}
-
-	panic("Not reached")
 }
 
 // DeepEqual tests for deep equality. It uses normal == equality where
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc.go gcc-4.8.1/libgo/go/reflect/makefunc.go
--- gcc-4.8.1.orig/libgo/go/reflect/makefunc.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefunc.go	2013-10-01 16:06:44.200554279 +0000
@@ -7,9 +7,18 @@
 package reflect
 
 import (
+	"runtime"
 	"unsafe"
 )
 
+// makeFuncImpl is the closure value implementing the function
+// returned by MakeFunc.
+type makeFuncImpl struct {
+	code uintptr
+	typ  *funcType
+	fn   func([]Value) []Value
+}
+
 // MakeFunc returns a new function of the given Type
 // that wraps the function fn. When called, that new function
 // does the following:
@@ -37,45 +46,54 @@
 		panic("reflect: call of MakeFunc with non-Func type")
 	}
 
-	ft := (*funcType)(unsafe.Pointer(typ.common()))
-
-	// We will build a function that uses the C stdarg routines to
-	// pull out the arguments.  Since the stdarg routines require
-	// the first parameter to be available, we need to switch on
-	// the possible first parameter types.  Note that this assumes
-	// that the calling ABI for a stdarg function is the same as
-	// that for a non-stdarg function.  The C standard does not
-	// require this, but it is true for most implementations in
-	// practice.
-
-	// Handling result types is a different problem.  There are a
-	// few cases to handle:
-	//   * No results.
-	//   * One result.
-	//   * More than one result, which is returned in a struct.
-	//     + Struct returned in registers.
-	//     + Struct returned in memory.
-
-	var result Kind
-	var resultSize uintptr
-	switch len(ft.out) {
-	case 0:
-		result = Invalid
-	case 1:
-		result = Kind(ft.out[0].kind)
-		resultSize = ft.out[0].size
+	switch runtime.GOARCH {
+	case "amd64", "386":
 	default:
-		result = Struct
+		panic("reflect.MakeFunc not implemented for " + runtime.GOARCH)
 	}
 
-	panic("reflect MakeFunc not implemented")
+	t := typ.common()
+	ftyp := (*funcType)(unsafe.Pointer(t))
+
+	// Indirect Go func value (dummy) to obtain
+	// actual code address. (A Go func value is a pointer
+	// to a C function pointer. http://golang.org/s/go11func.)
+	dummy := makeFuncStub
+	code := **(**uintptr)(unsafe.Pointer(&dummy))
+
+	impl := &makeFuncImpl{code: code, typ: ftyp, fn: fn}
+
+	return Value{t, unsafe.Pointer(impl), flag(Func) << flagKindShift}
+}
+
+// makeFuncStub is an assembly function that is the code half of
+// the function returned from MakeFunc. It expects a *callReflectFunc
+// as its context register, and its job is to invoke callReflect(ctxt, frame)
+// where ctxt is the context register and frame is a pointer to the first
+// word in the passed-in argument frame.
+func makeFuncStub()
+
+// makeMethodValue converts v from the rcvr+method index representation
+// of a method value to an actual method func value, which is
+// basically the receiver value with a special bit set, into a true
+// func value - a value holding an actual func. The output is
+// semantically equivalent to the input as far as the user of package
+// reflect can tell, but the true func representation can be handled
+// by code like Convert and Interface and Assign.
+func makeMethodValue(op string, v Value) Value {
+	if v.flag&flagMethod == 0 {
+		panic("reflect: internal error: invalid use of makePartialFunc")
+	}
 
-	// stub := func(i int) {
-	// 	var args __gnuc_va_list
-	// 	__builtin_va_start(args, i)
-	// 	v := makeInt(0, uint64(i), ft.in[0])
-	// 	return callReflect(ft, fn, v, args)
-	// }
+	// Ignoring the flagMethod bit, v describes the receiver, not the method type.
+	fl := v.flag & (flagRO | flagAddr | flagIndir)
+	fl |= flag(v.typ.Kind()) << flagKindShift
+	rcvr := Value{v.typ, v.val, fl}
+
+	// Cause panic if method is not appropriate.
+	// The panic would still happen during the call if we omit this,
+	// but we want Interface() and other operations to fail early.
+	methodReceiver(op, rcvr, int(v.flag)>>flagMethodShift)
 
-	// return Value{t, unsafe.Pointer(&impl.code[0]), flag(Func) << flagKindShift}
+	panic("reflect makeMethodValue not implemented")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_386.S gcc-4.8.1/libgo/go/reflect/makefunc_386.S
--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_386.S	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefunc_386.S	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,111 @@
+# Copyright 2013 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+# MakeFunc 386 assembly code.
+
+	.global reflect.makeFuncStub
+
+#ifdef __ELF__
+	.type reflect.makeFuncStub,@function
+#endif
+
+reflect.makeFuncStub:
+	.cfi_startproc
+
+	# Go does not provide any equivalent to the regparm function
+	# attribute, so on Go we do not need to worry about passing
+	# parameters in registers.  We just pass a pointer to the
+	# arguments on the stack.
+	#
+	# We do need to pick up the return values, though, so we pass
+	# a pointer to a struct that looks like this.
+	# struct {
+	#   esp uint32		// 0x0
+	#   eax uint32		// 0x4
+	#   st0 uint64		// 0x8
+	# }
+
+	pushl	%ebp
+	.cfi_def_cfa_offset 8
+	.cfi_offset %ebp, -8
+	movl	%esp, %ebp
+	.cfi_def_cfa_register %ebp
+
+	pushl	%ebx		# In case this is PIC.
+
+	subl	$36, %esp	# Enough for args and to align stack.
+	.cfi_offset %ebx, -12
+
+#ifdef __PIC__
+	call	__x86.get_pc_thunk.bx
+	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
+#endif
+
+	leal	8(%ebp), %eax	# Set esp field in struct.
+	movl	%eax, -24(%ebp)
+
+#ifdef __PIC__
+	call	__go_get_closure@PLT
+#else
+	call	__go_get_closure
+#endif
+
+	movl	%eax, 4(%esp)
+
+	leal	-24(%ebp), %eax
+	movl	%eax, (%esp)
+
+#ifdef __PIC__
+	call	reflect.MakeFuncStubGo@PLT
+#else
+	call	reflect.MakeFuncStubGo
+#endif
+
+	# Set return registers.
+
+	movl	-20(%ebp), %eax
+	fldl	-16(%ebp)
+
+#ifdef __SSE2__
+	# In case we are compiling with -msseregparm.  This won't work
+	# correctly if only SSE1 is supported, but that seems unlikely.
+	movsd	-16(%ebp), %xmm0
+#endif
+
+	addl	$36, %esp
+	popl	%ebx
+	.cfi_restore %ebx
+	popl	%ebp
+	.cfi_restore %ebp
+	.cfi_def_cfa %esp, 4
+
+	ret
+	.cfi_endproc
+
+#ifdef __ELF__
+	.size	reflect.makeFuncStub, . - reflect.makeFuncStub
+#endif
+
+#ifdef __PIC__
+	.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+	.globl	__x86.get_pc_thunk.bx
+	.hidden	__x86.get_pc_thunk.bx
+#ifdef __ELF__
+	.type	__x86.get_pc_thunk.bx, @function
+#endif
+__x86.get_pc_thunk.bx:
+	.cfi_startproc
+	movl	(%esp), %ebx
+	ret
+	.cfi_endproc
+#ifdef __ELF__
+	.size	__x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx
+#endif
+#endif
+
+#ifdef __ELF__
+	.section	.note.GNU-stack,"",@progbits
+	.section	.note.GNU-split-stack,"",@progbits
+	.section	.note.GNU-no-split-stack,"",@progbits
+#endif
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_amd64.S gcc-4.8.1/libgo/go/reflect/makefunc_amd64.S
--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_amd64.S	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefunc_amd64.S	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,107 @@
+# Copyright 2013 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+# MakeFunc amd64 assembly code.
+
+	.global	reflect.makeFuncStub
+
+#ifdef __ELF__
+	.type	reflect.makeFuncStub,@function
+#endif
+
+reflect.makeFuncStub:
+	.cfi_startproc
+
+	# Store all the parameter registers in a struct that looks
+	# like:
+	# struct {
+	#   rax uint64		// 0x0
+	#   rdi uint64		// 0x8
+	#   rsi uint64		// 0x10
+	#   rdx uint64		// 0x18
+	#   rcx uint64		// 0x20
+	#   r8 uint64		// 0x28
+	#   r9 uint64		// 0x30
+	#   rsp uint64		// 0x38 Pointer to arguments on stack.
+	#   xmm0 [2]uint64	// 0x40
+	#   xmm1 [2]uint64	// 0x50
+	#   xmm2 [2]uint64	// 0x60
+	#   xmm3 [2]uint64	// 0x70
+	#   xmm4 [2]uint64	// 0x80
+	#   xmm5 [2]uint64	// 0x90
+	#   xmm6 [2]uint64	// 0xa0
+	#   xmm7 [2]uint64	// 0xb0
+	# };
+
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+
+	subq	$0xc0, %rsp		# Space for struct on stack.
+
+	movq	%rax, 0x0(%rsp)
+	movq	%rdi, 0x8(%rsp)
+	movq	%rsi, 0x10(%rsp)
+	movq	%rdx, 0x18(%rsp)
+	movq	%rcx, 0x20(%rsp)
+	movq	%r8, 0x28(%rsp)
+	movq	%r9, 0x30(%rsp)
+	leaq	16(%rbp), %rax
+	movq	%rax, 0x38(%rsp)
+	movdqa	%xmm0, 0x40(%rsp)
+	movdqa	%xmm1, 0x50(%rsp)
+	movdqa	%xmm2, 0x60(%rsp)
+	movdqa	%xmm3, 0x70(%rsp)
+	movdqa	%xmm4, 0x80(%rsp)
+	movdqa	%xmm5, 0x90(%rsp)
+	movdqa	%xmm6, 0xa0(%rsp)
+	movdqa	%xmm7, 0xb0(%rsp)
+
+	# Get function type.
+#ifdef __PIC__
+	call	__go_get_closure@PLT
+#else
+	call	__go_get_closure
+#endif
+	movq	%rax, %rsi
+
+	movq	%rsp, %rdi
+
+#ifdef __PIC__
+	call	reflect.MakeFuncStubGo@PLT
+#else
+	call	reflect.MakeFuncStubGo
+#endif
+
+	# The structure will be updated with any return values.  Load
+	# all possible return registers before returning to the caller.
+
+	movq	0x0(%rsp), %rax
+	movq	0x18(%rsp), %rdx
+	movq	0x8(%rsp), %rdi
+	movq	0x10(%rsp), %rsi
+	movdqa	0x40(%rsp), %xmm0
+	movdqa	0x50(%rsp), %xmm1
+
+	# long double values are returned on the floating point stack,
+	# but we don't worry about that since Go doesn't have a long
+	# double type.
+
+	leave
+	.cfi_def_cfa %rsp, 8
+
+	ret
+
+	.cfi_endproc
+#ifdef __ELF__
+	.size	reflect.makeFuncStub, . - reflect.makeFuncStub
+#endif
+
+#ifdef __ELF__
+	.section	.note.GNU-stack,"",@progbits
+	.section	.note.GNU-split-stack,"",@progbits
+	.section	.note.GNU-no-split-stack,"",@progbits
+#endif
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc_dummy.c gcc-4.8.1/libgo/go/reflect/makefunc_dummy.c
--- gcc-4.8.1.orig/libgo/go/reflect/makefunc_dummy.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefunc_dummy.c	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,12 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !amd64
+
+// Dummy function for processors without makefunc support.
+
+void makeFuncStub () __asm__ ("reflect.makeFuncStub");
+void makeFuncStub ()
+{
+}
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_386.go gcc-4.8.1/libgo/go/reflect/makefuncgo_386.go
--- gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_386.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefuncgo_386.go	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,135 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// MakeFunc 386 implementation.
+
+package reflect
+
+import "unsafe"
+
+// The assembler stub will pass a pointer to this structure.  We
+// assume that no parameters are passed in registers--that is, we do
+// not support the -mregparm option.  On return we will set the
+// registers that might hold result values.
+type i386Regs struct {
+	esp uint32
+	eax uint32 // Value to return in %eax.
+	st0 uint64 // Value to return in %st(0).
+}
+
+// MakeFuncStubGo implements the 386 calling convention for MakeFunc.
+// This should not be called.  It is exported so that assembly code
+// can call it.
+
+func MakeFuncStubGo(regs *i386Regs, c *makeFuncImpl) {
+	ftyp := c.typ
+
+	// See if the result requires a struct.  If it does, the first
+	// parameter is a pointer to the struct.
+	retStruct := false
+	retEmpty := false
+	switch len(ftyp.out) {
+	case 0:
+		retEmpty = true
+	case 1:
+		if ftyp.out[0].size == 0 {
+			retEmpty = true
+		} else {
+			switch ftyp.out[0].Kind() {
+			case Complex64, Complex128, Array, Interface, Slice, String, Struct:
+				retStruct = true
+			}
+		}
+	default:
+		size := uintptr(0)
+		for _, typ := range ftyp.out {
+			size += typ.size
+		}
+		if size == 0 {
+			retEmpty = true
+		} else {
+			retStruct = true
+		}
+	}
+
+	in := make([]Value, 0, len(ftyp.in))
+	ap := uintptr(regs.esp)
+
+	var retPtr unsafe.Pointer
+	if retStruct {
+		retPtr = *(*unsafe.Pointer)(unsafe.Pointer(ap))
+		ap += ptrSize
+	}
+
+	for _, rt := range ftyp.in {
+		ap = align(ap, ptrSize)
+
+		// We have to copy the argument onto the heap in case
+		// the function hangs on the reflect.Value we pass it.
+		p := unsafe_New(rt)
+		memmove(p, unsafe.Pointer(ap), rt.size)
+
+		v := Value{rt, p, flag(rt.Kind()<<flagKindShift) | flagIndir}
+		in = append(in, v)
+		ap += rt.size
+	}
+
+	// Call the real function.
+
+	out := c.fn(in)
+
+	if len(out) != len(ftyp.out) {
+		panic("reflect: wrong return count from function created by MakeFunc")
+	}
+
+	for i, typ := range ftyp.out {
+		v := out[i]
+		if v.typ != typ {
+			panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
+				" returned wrong type: have " +
+				out[i].typ.String() + " for " + typ.String())
+		}
+		if v.flag&flagRO != 0 {
+			panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
+				" returned value obtained from unexported field")
+		}
+	}
+
+	if retEmpty {
+		return
+	}
+
+	if retStruct {
+		off := uintptr(0)
+		for i, typ := range ftyp.out {
+			v := out[i]
+			off = align(off, uintptr(typ.fieldAlign))
+			addr := unsafe.Pointer(uintptr(retPtr) + off)
+			if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
+				storeIword(addr, iword(v.val), typ.size)
+			} else {
+				memmove(addr, v.val, typ.size)
+			}
+			off += typ.size
+		}
+		regs.eax = uint32(uintptr(retPtr))
+		return
+	}
+
+	if len(ftyp.out) != 1 {
+		panic("inconsistency")
+	}
+
+	v := out[0]
+	w := v.iword()
+	if v.Kind() != Ptr && v.Kind() != UnsafePointer {
+		w = loadIword(unsafe.Pointer(w), v.typ.size)
+	}
+	switch v.Kind() {
+	case Float32, Float64:
+		regs.st0 = uint64(uintptr(w))
+	default:
+		regs.eax = uint32(uintptr(w))
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_amd64.go gcc-4.8.1/libgo/go/reflect/makefuncgo_amd64.go
--- gcc-4.8.1.orig/libgo/go/reflect/makefuncgo_amd64.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/makefuncgo_amd64.go	2013-10-01 16:06:44.200554279 +0000
@@ -0,0 +1,493 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// MakeFunc amd64 implementation.
+
+package reflect
+
+import "unsafe"
+
+// The assembler stub will pass a pointer to this structure.
+// This will come in holding all the registers that might hold
+// function parameters.  On return we will set the registers that
+// might hold result values.
+type amd64Regs struct {
+	rax  uint64
+	rdi  uint64
+	rsi  uint64
+	rdx  uint64
+	rcx  uint64
+	r8   uint64
+	r9   uint64
+	rsp  uint64
+	xmm0 [2]uint64
+	xmm1 [2]uint64
+	xmm2 [2]uint64
+	xmm3 [2]uint64
+	xmm4 [2]uint64
+	xmm5 [2]uint64
+	xmm6 [2]uint64
+	xmm7 [2]uint64
+}
+
+// Argument classifications.  The amd64 ELF ABI uses several more, but
+// these are the only ones that arise for Go types.
+type amd64Class int
+
+const (
+	amd64Integer amd64Class = iota
+	amd64SSE
+	amd64NoClass
+	amd64Memory
+)
+
+// amd64Classify returns the one or two register classes needed to
+// pass the value of type.  Go types never need more than two
+// registers.  amd64Memory means the value is stored in memory.
+// amd64NoClass means the register is not used.
+func amd64Classify(typ *rtype) (amd64Class, amd64Class) {
+	switch typ.Kind() {
+	default:
+		panic("internal error--unknown kind in amd64Classify")
+
+	case Bool, Int, Int8, Int16, Int32, Int64,
+		Uint, Uint8, Uint16, Uint32, Uint64,
+		Uintptr, Chan, Func, Map, Ptr, UnsafePointer:
+
+		return amd64Integer, amd64NoClass
+
+	case Float32, Float64, Complex64:
+		return amd64SSE, amd64NoClass
+
+	case Complex128:
+		return amd64SSE, amd64SSE
+
+	case Array:
+		if typ.size == 0 {
+			return amd64NoClass, amd64NoClass
+		} else if typ.size > 16 {
+			return amd64Memory, amd64NoClass
+		}
+		atyp := (*arrayType)(unsafe.Pointer(typ))
+		eclass1, eclass2 := amd64Classify(atyp.elem)
+		if eclass1 == amd64Memory {
+			return amd64Memory, amd64NoClass
+		}
+		if eclass2 == amd64NoClass && typ.size > 8 {
+			eclass2 = eclass1
+		}
+		return eclass1, eclass2
+
+	case Interface:
+		return amd64Integer, amd64Integer
+
+	case Slice:
+		return amd64Memory, amd64NoClass
+
+	case String:
+		return amd64Integer, amd64Integer
+
+	case Struct:
+		if typ.size == 0 {
+			return amd64NoClass, amd64NoClass
+		} else if typ.size > 16 {
+			return amd64Memory, amd64NoClass
+		}
+		var first, second amd64Class
+		f := amd64NoClass
+		onFirst := true
+		styp := (*structType)(unsafe.Pointer(typ))
+		for _, field := range styp.fields {
+			if onFirst && field.offset >= 8 {
+				first = f
+				f = amd64NoClass
+				onFirst = false
+			}
+			fclass1, fclass2 := amd64Classify(field.typ)
+			f = amd64MergeClasses(f, fclass1)
+			if fclass2 != amd64NoClass {
+				if !onFirst {
+					panic("amd64Classify inconsistent")
+				}
+				first = f
+				f = fclass2
+				onFirst = false
+			}
+		}
+		if onFirst {
+			first = f
+			second = amd64NoClass
+		} else {
+			second = f
+		}
+		if first == amd64Memory || second == amd64Memory {
+			return amd64Memory, amd64NoClass
+		}
+		return first, second
+	}
+}
+
+// amd64MergeClasses merges two register classes as described in the
+// amd64 ELF ABI.
+func amd64MergeClasses(c1, c2 amd64Class) amd64Class {
+	switch {
+	case c1 == c2:
+		return c1
+	case c1 == amd64NoClass:
+		return c2
+	case c2 == amd64NoClass:
+		return c1
+	case c1 == amd64Memory || c2 == amd64Memory:
+		return amd64Memory
+	case c1 == amd64Integer || c2 == amd64Integer:
+		return amd64Integer
+	default:
+		return amd64SSE
+	}
+}
+
+// MakeFuncStubGo implements the amd64 calling convention for
+// MakeFunc.  This should not be called.  It is exported so that
+// assembly code can call it.
+
+func MakeFuncStubGo(regs *amd64Regs, c *makeFuncImpl) {
+	ftyp := c.typ
+
+	// See if the result requires a struct.  If it does, the first
+	// parameter is a pointer to the struct.
+	var ret1, ret2 amd64Class
+	switch len(ftyp.out) {
+	case 0:
+		ret1, ret2 = amd64NoClass, amd64NoClass
+	case 1:
+		ret1, ret2 = amd64Classify(ftyp.out[0])
+	default:
+		off := uintptr(0)
+		f := amd64NoClass
+		onFirst := true
+		for _, rt := range ftyp.out {
+			off = align(off, uintptr(rt.fieldAlign))
+
+			if onFirst && off >= 8 {
+				ret1 = f
+				f = amd64NoClass
+				onFirst = false
+			}
+
+			off += rt.size
+			if off > 16 {
+				break
+			}
+
+			fclass1, fclass2 := amd64Classify(rt)
+			f = amd64MergeClasses(f, fclass1)
+			if fclass2 != amd64NoClass {
+				if !onFirst {
+					panic("amd64Classify inconsistent")
+				}
+				ret1 = f
+				f = fclass2
+				onFirst = false
+			}
+		}
+		if off > 16 {
+			ret1, ret2 = amd64Memory, amd64NoClass
+		} else {
+			if onFirst {
+				ret1, ret2 = f, amd64NoClass
+			} else {
+				ret2 = f
+			}
+		}
+		if ret1 == amd64Memory || ret2 == amd64Memory {
+			ret1, ret2 = amd64Memory, amd64NoClass
+		}
+	}
+
+	in := make([]Value, 0, len(ftyp.in))
+	intreg := 0
+	ssereg := 0
+	ap := uintptr(regs.rsp)
+
+	maxIntregs := 6 // When we support Windows, this would be 4.
+	maxSSEregs := 8
+
+	if ret1 == amd64Memory {
+		// We are returning a value in memory, which means
+		// that the first argument is a hidden parameter
+		// pointing to that return area.
+		intreg++
+	}
+
+argloop:
+	for _, rt := range ftyp.in {
+		c1, c2 := amd64Classify(rt)
+
+		fl := flag(rt.Kind()) << flagKindShift
+		if c2 == amd64NoClass {
+
+			// Argument is passed in a single register or
+			// in memory.
+
+			switch c1 {
+			case amd64NoClass:
+				v := Value{rt, nil, fl | flagIndir}
+				in = append(in, v)
+				continue argloop
+			case amd64Integer:
+				if intreg < maxIntregs {
+					reg := amd64IntregVal(regs, intreg)
+					iw := unsafe.Pointer(reg)
+					if k := rt.Kind(); k != Ptr && k != UnsafePointer {
+						iw = unsafe.Pointer(&reg)
+						fl |= flagIndir
+					}
+					v := Value{rt, iw, fl}
+					in = append(in, v)
+					intreg++
+					continue argloop
+				}
+			case amd64SSE:
+				if ssereg < maxSSEregs {
+					reg := amd64SSEregVal(regs, ssereg)
+					v := Value{rt, unsafe.Pointer(&reg), fl | flagIndir}
+					in = append(in, v)
+					ssereg++
+					continue argloop
+				}
+			}
+
+			in, ap = amd64Memarg(in, ap, rt)
+			continue argloop
+		}
+
+		// Argument is passed in two registers.
+
+		nintregs := 0
+		nsseregs := 0
+		switch c1 {
+		case amd64Integer:
+			nintregs++
+		case amd64SSE:
+			nsseregs++
+		default:
+			panic("inconsistent")
+		}
+		switch c2 {
+		case amd64Integer:
+			nintregs++
+		case amd64SSE:
+			nsseregs++
+		default:
+			panic("inconsistent")
+		}
+
+		// If the whole argument does not fit in registers, it
+		// is passed in memory.
+
+		if intreg+nintregs > maxIntregs || ssereg+nsseregs > maxSSEregs {
+			in, ap = amd64Memarg(in, ap, rt)
+			continue argloop
+		}
+
+		var word1, word2 uintptr
+		switch c1 {
+		case amd64Integer:
+			word1 = amd64IntregVal(regs, intreg)
+			intreg++
+		case amd64SSE:
+			word1 = amd64SSEregVal(regs, ssereg)
+			ssereg++
+		}
+		switch c2 {
+		case amd64Integer:
+			word2 = amd64IntregVal(regs, intreg)
+			intreg++
+		case amd64SSE:
+			word2 = amd64SSEregVal(regs, ssereg)
+			ssereg++
+		}
+
+		p := unsafe_New(rt)
+		*(*uintptr)(p) = word1
+		*(*uintptr)(unsafe.Pointer(uintptr(p) + ptrSize)) = word2
+		v := Value{rt, p, fl | flagIndir}
+		in = append(in, v)
+	}
+
+	// All the real arguments have been found and turned into
+	// Value's.  Call the real function.
+
+	out := c.fn(in)
+
+	if len(out) != len(ftyp.out) {
+		panic("reflect: wrong return count from function created by MakeFunc")
+	}
+
+	for i, typ := range ftyp.out {
+		v := out[i]
+		if v.typ != typ {
+			panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
+				" returned wrong type: have " +
+				out[i].typ.String() + " for " + typ.String())
+		}
+		if v.flag&flagRO != 0 {
+			panic("reflect: function created by MakeFunc using " + funcName(c.fn) +
+				" returned value obtained from unexported field")
+		}
+	}
+
+	if ret1 == amd64NoClass {
+		return
+	}
+
+	if ret1 == amd64Memory {
+		// The address of the memory area was passed as a
+		// hidden parameter in %rdi.
+		ptr := unsafe.Pointer(uintptr(regs.rdi))
+		off := uintptr(0)
+		for i, typ := range ftyp.out {
+			v := out[i]
+			off = align(off, uintptr(typ.fieldAlign))
+			addr := unsafe.Pointer(uintptr(ptr) + off)
+			if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
+				storeIword(addr, iword(v.val), typ.size)
+			} else {
+				memmove(addr, v.val, typ.size)
+			}
+			off += typ.size
+		}
+		return
+	}
+
+	if len(out) == 1 && ret2 == amd64NoClass {
+		v := out[0]
+		w := v.iword()
+		if v.Kind() != Ptr && v.Kind() != UnsafePointer {
+			w = loadIword(unsafe.Pointer(w), v.typ.size)
+		}
+		switch ret1 {
+		case amd64Integer:
+			regs.rax = uint64(uintptr(w))
+		case amd64SSE:
+			regs.xmm0[0] = uint64(uintptr(w))
+			regs.xmm0[1] = 0
+		default:
+			panic("inconsistency")
+		}
+		return
+	}
+
+	var buf [2]unsafe.Pointer
+	ptr := unsafe.Pointer(&buf[0])
+	off := uintptr(0)
+	for i, typ := range ftyp.out {
+		v := out[i]
+		off = align(off, uintptr(typ.fieldAlign))
+		addr := unsafe.Pointer(uintptr(ptr) + off)
+		if v.flag&flagIndir == 0 && (v.kind() == Ptr || v.kind() == UnsafePointer) {
+			storeIword(addr, iword(v.val), typ.size)
+		} else {
+			memmove(addr, v.val, typ.size)
+		}
+		off += uintptr(typ.size)
+	}
+
+	switch ret1 {
+	case amd64Integer:
+		regs.rax = *(*uint64)(unsafe.Pointer(&buf[0]))
+	case amd64SSE:
+		regs.xmm0[0] = *(*uint64)(unsafe.Pointer(&buf[0]))
+		regs.xmm0[1] = 0
+	default:
+		panic("inconsistency")
+	}
+
+	switch ret2 {
+	case amd64Integer:
+		reg := *(*uint64)(unsafe.Pointer(&buf[1]))
+		if ret1 == amd64Integer {
+			regs.rdx = reg
+		} else {
+			regs.rax = reg
+		}
+	case amd64SSE:
+		reg := *(*uint64)(unsafe.Pointer(&buf[1]))
+		if ret1 == amd64Integer {
+			regs.xmm0[0] = reg
+			regs.xmm0[1] = 0
+		} else {
+			regs.xmm1[0] = reg
+			regs.xmm1[1] = 0
+		}
+	case amd64NoClass:
+	default:
+		panic("inconsistency")
+	}
+}
+
+// The amd64Memarg function adds an argument passed in memory.
+func amd64Memarg(in []Value, ap uintptr, rt *rtype) ([]Value, uintptr) {
+	ap = align(ap, ptrSize)
+	ap = align(ap, uintptr(rt.align))
+
+	// We have to copy the argument onto the heap in case the
+	// function hangs onto the reflect.Value we pass it.
+	p := unsafe_New(rt)
+	memmove(p, unsafe.Pointer(ap), rt.size)
+
+	v := Value{rt, p, flag(rt.Kind()<<flagKindShift) | flagIndir}
+	in = append(in, v)
+	ap += rt.size
+	return in, ap
+}
+
+// The amd64IntregVal function returns the value of integer register i.
+func amd64IntregVal(regs *amd64Regs, i int) uintptr {
+	var r uint64
+	switch i {
+	case 0:
+		r = regs.rdi
+	case 1:
+		r = regs.rsi
+	case 2:
+		r = regs.rdx
+	case 3:
+		r = regs.rcx
+	case 4:
+		r = regs.r8
+	case 5:
+		r = regs.r9
+	default:
+		panic("amd64IntregVal: bad index")
+	}
+	return uintptr(r)
+}
+
+// The amd64SSEregVal function returns the value of SSE register i.
+// Note that although SSE registers can hold two uinptr's, for the
+// types we use in Go we only ever use the least significant one.  The
+// most significant one would only be used for 128 bit types.
+func amd64SSEregVal(regs *amd64Regs, i int) uintptr {
+	var r uint64
+	switch i {
+	case 0:
+		r = regs.xmm0[0]
+	case 1:
+		r = regs.xmm1[0]
+	case 2:
+		r = regs.xmm2[0]
+	case 3:
+		r = regs.xmm3[0]
+	case 4:
+		r = regs.xmm4[0]
+	case 5:
+		r = regs.xmm5[0]
+	case 6:
+		r = regs.xmm6[0]
+	case 7:
+		r = regs.xmm7[0]
+	}
+	return uintptr(r)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/set_test.go gcc-4.8.1/libgo/go/reflect/set_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/set_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/set_test.go	2013-10-01 16:06:44.200554279 +0000
@@ -81,7 +81,7 @@
 			t.Errorf("#5 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(b1)).Elem().Pointer(); p != uintptr(unsafe.Pointer(b2)) {
-			t.Errorf("#5 MapIndex(b1) = %p want %p", p, b2)
+			t.Errorf("#5 MapIndex(b1) = %#x want %p", p, b2)
 		}
 	}
 	{
@@ -96,7 +96,7 @@
 			t.Errorf("#6 after SetMapIndex(c1, c2): %p (!= %p), %t (map=%v)", x, c2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(c1)).Pointer(); p != ValueOf(c2).Pointer() {
-			t.Errorf("#6 MapIndex(c1) = %p want %p", p, c2)
+			t.Errorf("#6 MapIndex(c1) = %#x want %p", p, c2)
 		}
 	}
 	{
@@ -115,7 +115,7 @@
 			t.Errorf("#7 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(b1)).Pointer(); p != uintptr(unsafe.Pointer(b2)) {
-			t.Errorf("#7 MapIndex(b1) = %p want %p", p, b2)
+			t.Errorf("#7 MapIndex(b1) = %#x want %p", p, b2)
 		}
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go gcc-4.8.1/libgo/go/reflect/tostring_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go	2011-12-14 15:41:54.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/tostring_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -92,5 +92,4 @@
 	default:
 		panic("valueToString: can't print type " + typ.String())
 	}
-	return "valueToString: can't happen"
 }
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/type.go gcc-4.8.1/libgo/go/reflect/type.go
--- gcc-4.8.1.orig/libgo/go/reflect/type.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/type.go	2013-10-01 16:06:44.204554279 +0000
@@ -243,8 +243,8 @@
 	size       uintptr // size in bytes
 	hash       uint32  // hash of type; avoids computation in hash tables
 
-	hashfn  func(unsafe.Pointer, uintptr)                 // hash function
-	equalfn func(unsafe.Pointer, unsafe.Pointer, uintptr) // equality function
+	hashfn  uintptr // hash function code
+	equalfn uintptr // equality function code
 
 	string        *string // string form; unnecessary  but undeniably useful
 	*uncommonType         // (relatively) uncommon fields
@@ -349,6 +349,25 @@
 	fields []structField // sorted by offset
 }
 
+// NOTE: These are copied from ../runtime/mgc0.h.
+// They must be kept in sync.
+const (
+	_GC_END = iota
+	_GC_PTR
+	_GC_APTR
+	_GC_ARRAY_START
+	_GC_ARRAY_NEXT
+	_GC_CALL
+	_GC_MAP_PTR
+	_GC_CHAN_PTR
+	_GC_STRING
+	_GC_EFACE
+	_GC_IFACE
+	_GC_SLICE
+	_GC_REGION
+	_GC_NUM_INSTR
+)
+
 /*
  * The compiler knows the exact layout of all the data structures above.
  * The compiler does not know about the data structures and methods below.
@@ -372,7 +391,10 @@
 
 // High bit says whether type has
 // embedded pointers,to help garbage collector.
-const kindMask = 0x7f
+const (
+	kindMask       = 0x7f
+	kindNoPointers = 0x80
+)
 
 func (k Kind) String() string {
 	if int(k) < len(kindNames) {
@@ -485,7 +507,7 @@
 	mt := p.typ
 	m.Type = toType(mt)
 	x := new(unsafe.Pointer)
-	*x = p.tfn
+	*x = unsafe.Pointer(&p.tfn)
 	m.Func = Value{mt, unsafe.Pointer(x), fl | flagIndir}
 	m.Index = i
 	return
@@ -730,7 +752,7 @@
 	Tag       StructTag // field tag string
 	Offset    uintptr   // offset within struct, in bytes
 	Index     []int     // index sequence for Type.FieldByIndex
-	Anonymous bool      // is an anonymous field
+	Anonymous bool      // is an embedded field
 }
 
 // A StructTag is the tag string in a struct field.
@@ -1001,6 +1023,32 @@
 	m map[*rtype]*ptrType
 }
 
+// garbage collection bytecode program for pointer to memory without pointers.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type ptrDataGC struct {
+	width uintptr // sizeof(ptr)
+	op    uintptr // _GC_APTR
+	off   uintptr // 0
+	end   uintptr // _GC_END
+}
+
+var ptrDataGCProg = ptrDataGC{
+	width: unsafe.Sizeof((*byte)(nil)),
+	op:    _GC_APTR,
+	off:   0,
+	end:   _GC_END,
+}
+
+// garbage collection bytecode program for pointer to memory with pointers.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type ptrGC struct {
+	width  uintptr        // sizeof(ptr)
+	op     uintptr        // _GC_PTR
+	off    uintptr        // 0
+	elemgc unsafe.Pointer // element gc type
+	end    uintptr        // _GC_END
+}
+
 // PtrTo returns the pointer type with element t.
 // For example, if t represents type Foo, PtrTo(t) represents *Foo.
 func PtrTo(t Type) Type {
@@ -1334,6 +1382,21 @@
 	return t
 }
 
+// garbage collection bytecode program for chan or map.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type chanMapGC struct {
+	width uintptr // sizeof(map)
+	op    uintptr // _GC_MAP_PTR or _GC_CHAN_PTR
+	off   uintptr // 0
+	typ   *rtype  // map type
+	end   uintptr // _GC_END
+}
+
+type badGC struct {
+	width uintptr
+	end   uintptr
+}
+
 // ChanOf returns the channel type with the given direction and element type.
 // For example, if t represents int, ChanOf(RecvDir, t) represents <-chan int.
 //
@@ -1393,20 +1456,27 @@
 	ch.uncommonType = nil
 	ch.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestChanOfGC fails when ch.gc is wrong.
+	//ch.gc = unsafe.Pointer(&badGC{width: ch.size, end: _GC_END})
+
 	return cachePut(ckey, &ch.rtype)
 }
 
+func ismapkey(*rtype) bool // implemented in runtime
+
 // MapOf returns the map type with the given key and element types.
 // For example, if k represents int and e represents string,
 // MapOf(k, e) represents map[int]string.
 //
 // If the key type is not a valid map key type (that is, if it does
-// not implement Go's == operator), MapOf panics. TODO(rsc).
+// not implement Go's == operator), MapOf panics.
 func MapOf(key, elem Type) Type {
 	ktyp := key.(*rtype)
 	etyp := elem.(*rtype)
 
-	// TODO: Check for invalid key types.
+	if !ismapkey(ktyp) {
+		panic("reflect.MapOf: invalid key type " + ktyp.String())
+	}
 
 	// Look in cache.
 	ckey := cacheKey{Map, ktyp, etyp, 0}
@@ -1433,9 +1503,39 @@
 	mt.uncommonType = nil
 	mt.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestMapOfGC and TestMapOfGCValues
+	// fail when mt.gc is wrong.
+	//mt.gc = unsafe.Pointer(&badGC{width: mt.size, end: _GC_END})
+
 	return cachePut(ckey, &mt.rtype)
 }
 
+// garbage collection bytecode program for slice of non-zero-length values.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type sliceGC struct {
+	width  uintptr        // sizeof(slice)
+	op     uintptr        // _GC_SLICE
+	off    uintptr        // 0
+	elemgc unsafe.Pointer // element gc program
+	end    uintptr        // _GC_END
+}
+
+// garbage collection bytecode program for slice of zero-length values.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type sliceEmptyGC struct {
+	width uintptr // sizeof(slice)
+	op    uintptr // _GC_APTR
+	off   uintptr // 0
+	end   uintptr // _GC_END
+}
+
+var sliceEmptyGCProg = sliceEmptyGC{
+	width: unsafe.Sizeof([]byte(nil)),
+	op:    _GC_APTR,
+	off:   0,
+	end:   _GC_END,
+}
+
 // SliceOf returns the slice type with element type t.
 // For example, if t represents int, SliceOf(t) represents []int.
 func SliceOf(t Type) Type {
@@ -1465,6 +1565,9 @@
 	slice.uncommonType = nil
 	slice.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestSliceOfOfGC fails when slice.gc is wrong.
+	//slice.gc = unsafe.Pointer(&badGC{width: slice.size, end: _GC_END})
+
 	return cachePut(ckey, &slice.rtype)
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/value.go gcc-4.8.1/libgo/go/reflect/value.go
--- gcc-4.8.1.orig/libgo/go/reflect/value.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/reflect/value.go	2013-10-01 16:06:44.204554279 +0000
@@ -245,7 +245,7 @@
 		panic(&ValueError{methodName(), 0})
 	}
 	if f&flagRO != 0 {
-		panic(methodName() + " using value obtained using unexported field")
+		panic("reflect: " + methodName() + " using value obtained using unexported field")
 	}
 }
 
@@ -258,10 +258,10 @@
 	}
 	// Assignable if addressable and not read-only.
 	if f&flagRO != 0 {
-		panic(methodName() + " using value obtained using unexported field")
+		panic("reflect: " + methodName() + " using value obtained using unexported field")
 	}
 	if f&flagAddr == 0 {
-		panic(methodName() + " using unaddressable value")
+		panic("reflect: " + methodName() + " using unaddressable value")
 	}
 }
 
@@ -354,7 +354,7 @@
 	return v.call("CallSlice", in)
 }
 
-func (v Value) call(method string, in []Value) []Value {
+func (v Value) call(op string, in []Value) []Value {
 	// Get function pointer, type.
 	t := v.typ
 	var (
@@ -362,36 +362,7 @@
 		rcvr iword
 	)
 	if v.flag&flagMethod != 0 {
-		i := int(v.flag) >> flagMethodShift
-		if v.typ.Kind() == Interface {
-			tt := (*interfaceType)(unsafe.Pointer(v.typ))
-			if i < 0 || i >= len(tt.methods) {
-				panic("reflect: broken Value")
-			}
-			m := &tt.methods[i]
-			if m.pkgPath != nil {
-				panic(method + " of unexported method")
-			}
-			t = m.typ
-			iface := (*nonEmptyInterface)(v.val)
-			if iface.itab == nil {
-				panic(method + " of method on nil interface value")
-			}
-			fn = iface.itab.fun[i]
-			rcvr = iface.word
-		} else {
-			ut := v.typ.uncommon()
-			if ut == nil || i < 0 || i >= len(ut.methods) {
-				panic("reflect: broken Value")
-			}
-			m := &ut.methods[i]
-			if m.pkgPath != nil {
-				panic(method + " of unexported method")
-			}
-			fn = m.tfn
-			t = m.mtyp
-			rcvr = v.iword()
-		}
+		t, fn, rcvr = methodReceiver(op, v, int(v.flag)>>flagMethodShift)
 	} else if v.flag&flagIndir != 0 {
 		fn = *(*unsafe.Pointer)(v.val)
 	} else {
@@ -402,7 +373,7 @@
 		panic("reflect.Value.Call: call of nil function")
 	}
 
-	isSlice := method == "CallSlice"
+	isSlice := op == "CallSlice"
 	n := t.NumIn()
 	if isSlice {
 		if !t.IsVariadic() {
@@ -427,12 +398,12 @@
 	}
 	for _, x := range in {
 		if x.Kind() == Invalid {
-			panic("reflect: " + method + " using zero Value argument")
+			panic("reflect: " + op + " using zero Value argument")
 		}
 	}
 	for i := 0; i < n; i++ {
 		if xt, targ := in[i].Type(), t.In(i); !xt.AssignableTo(targ) {
-			panic("reflect: " + method + " using " + xt.String() + " as type " + targ.String())
+			panic("reflect: " + op + " using " + xt.String() + " as type " + targ.String())
 		}
 	}
 	if !isSlice && t.IsVariadic() {
@@ -443,7 +414,7 @@
 		for i := 0; i < m; i++ {
 			x := in[n+i]
 			if xt := x.Type(); !xt.AssignableTo(elem) {
-				panic("reflect: cannot use " + xt.String() + " as type " + elem.String() + " in " + method)
+				panic("reflect: cannot use " + xt.String() + " as type " + elem.String() + " in " + op)
 			}
 			slice.Index(i).Set(x)
 		}
@@ -462,6 +433,7 @@
 	if v.flag&flagMethod != 0 {
 		nin++
 	}
+	firstPointer := len(in) > 0 && t.In(0).Kind() != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ)
 	params := make([]unsafe.Pointer, nin)
 	off := 0
 	if v.flag&flagMethod != 0 {
@@ -471,7 +443,6 @@
 		params[0] = unsafe.Pointer(p)
 		off = 1
 	}
-	first_pointer := false
 	for i, pv := range in {
 		pv.mustBeExported()
 		targ := t.In(i).(*rtype)
@@ -483,11 +454,10 @@
 		} else {
 			params[off] = pv.val
 		}
-		if i == 0 && Kind(targ.kind) != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ) {
+		if i == 0 && firstPointer {
 			p := new(unsafe.Pointer)
 			*p = params[off]
 			params[off] = unsafe.Pointer(p)
-			first_pointer = true
 		}
 		off++
 	}
@@ -509,7 +479,7 @@
 		pr = &results[0]
 	}
 
-	call(t, fn, v.flag&flagMethod != 0, first_pointer, pp, pr)
+	call(t, fn, v.flag&flagMethod != 0, firstPointer, pp, pr)
 
 	return ret
 }
@@ -527,8 +497,10 @@
 	sawRet := false
 	for i, c := range s {
 		if c == '(' {
+			if parens == 0 {
+				params++
+			}
 			parens++
-			params++
 		} else if c == ')' {
 			parens--
 		} else if parens == 0 && c == ' ' && s[i+1] != '(' && !sawRet {
@@ -539,70 +511,95 @@
 	return params > 2
 }
 
-// callReflect is the call implementation used by a function
-// returned by MakeFunc. In many ways it is the opposite of the
-// method Value.call above. The method above converts a call using Values
-// into a call of a function with a concrete argument frame, while
-// callReflect converts a call of a function with a concrete argument
-// frame into a call using Values.
-// It is in this file so that it can be next to the call method above.
-// The remainder of the MakeFunc implementation is in makefunc.go.
-func callReflect(ftyp *funcType, f func([]Value) []Value, frame unsafe.Pointer) {
-	// Copy argument frame into Values.
-	ptr := frame
-	off := uintptr(0)
-	in := make([]Value, 0, len(ftyp.in))
-	for _, arg := range ftyp.in {
-		typ := arg
-		off += -off & uintptr(typ.align-1)
-		v := Value{typ, nil, flag(typ.Kind()) << flagKindShift}
-		if typ.size <= ptrSize {
-			// value fits in word.
-			v.val = unsafe.Pointer(loadIword(unsafe.Pointer(uintptr(ptr)+off), typ.size))
+// methodReceiver returns information about the receiver
+// described by v. The Value v may or may not have the
+// flagMethod bit set, so the kind cached in v.flag should
+// not be used.
+func methodReceiver(op string, v Value, methodIndex int) (t *rtype, fn unsafe.Pointer, rcvr iword) {
+	i := methodIndex
+	if v.typ.Kind() == Interface {
+		tt := (*interfaceType)(unsafe.Pointer(v.typ))
+		if i < 0 || i >= len(tt.methods) {
+			panic("reflect: internal error: invalid method index")
+		}
+		m := &tt.methods[i]
+		if m.pkgPath != nil {
+			panic("reflect: " + op + " of unexported method")
+		}
+		t = m.typ
+		iface := (*nonEmptyInterface)(v.val)
+		if iface.itab == nil {
+			panic("reflect: " + op + " of method on nil interface value")
+		}
+		fn = unsafe.Pointer(&iface.itab.fun[i])
+		rcvr = iface.word
+	} else {
+		ut := v.typ.uncommon()
+		if ut == nil || i < 0 || i >= len(ut.methods) {
+			panic("reflect: internal error: invalid method index")
+		}
+		m := &ut.methods[i]
+		if m.pkgPath != nil {
+			panic("reflect: " + op + " of unexported method")
+		}
+		fn = unsafe.Pointer(&m.tfn)
+		t = m.mtyp
+		// Can't call iword here, because it checks v.kind,
+		// and that is always Func.
+		if v.flag&flagIndir != 0 && (v.typ.Kind() == Ptr || v.typ.Kind() == UnsafePointer) {
+			rcvr = loadIword(v.val, v.typ.size)
 		} else {
-			// value does not fit in word.
-			// Must make a copy, because f might keep a reference to it,
-			// and we cannot let f keep a reference to the stack frame
-			// after this function returns, not even a read-only reference.
-			v.val = unsafe_New(typ)
-			memmove(v.val, unsafe.Pointer(uintptr(ptr)+off), typ.size)
-			v.flag |= flagIndir
-		}
-		in = append(in, v)
-		off += typ.size
-	}
-
-	// Call underlying function.
-	out := f(in)
-	if len(out) != len(ftyp.out) {
-		panic("reflect: wrong return count from function created by MakeFunc")
-	}
-
-	// Copy results back into argument frame.
-	if len(ftyp.out) > 0 {
-		off += -off & (ptrSize - 1)
-		for i, arg := range ftyp.out {
-			typ := arg
-			v := out[i]
-			if v.typ != typ {
-				panic("reflect: function created by MakeFunc using " + funcName(f) +
-					" returned wrong type: have " +
-					out[i].typ.String() + " for " + typ.String())
-			}
-			if v.flag&flagRO != 0 {
-				panic("reflect: function created by MakeFunc using " + funcName(f) +
-					" returned value obtained from unexported field")
-			}
-			off += -off & uintptr(typ.align-1)
-			addr := unsafe.Pointer(uintptr(ptr) + off)
-			if v.flag&flagIndir == 0 {
-				storeIword(addr, iword(v.val), typ.size)
-			} else {
-				memmove(addr, v.val, typ.size)
-			}
-			off += typ.size
+			rcvr = iword(v.val)
 		}
 	}
+	return
+}
+
+// align returns the result of rounding x up to a multiple of n.
+// n must be a power of two.
+func align(x, n uintptr) uintptr {
+	return (x + n - 1) &^ (n - 1)
+}
+
+// frameSize returns the sizes of the argument and result frame
+// for a function of the given type. The rcvr bool specifies whether
+// a one-word receiver should be included in the total.
+func frameSize(t *rtype, rcvr bool) (total, in, outOffset, out uintptr) {
+	if rcvr {
+		// extra word for receiver interface word
+		total += ptrSize
+	}
+
+	nin := t.NumIn()
+	in = -total
+	for i := 0; i < nin; i++ {
+		tv := t.In(i)
+		total = align(total, uintptr(tv.Align()))
+		total += tv.Size()
+	}
+	in += total
+	total = align(total, ptrSize)
+	nout := t.NumOut()
+	outOffset = total
+	out = -total
+	for i := 0; i < nout; i++ {
+		tv := t.Out(i)
+		total = align(total, uintptr(tv.Align()))
+		total += tv.Size()
+	}
+	out += total
+
+	// total must be > 0 in order for &args[0] to be valid.
+	// the argument copying is going to round it up to
+	// a multiple of ptrSize anyway, so make it ptrSize to begin with.
+	if total < ptrSize {
+		total = ptrSize
+	}
+
+	// round to pointer
+	total = align(total, ptrSize)
+
+	return
 }
 
 // funcName returns the name of f, for use in error messages.
@@ -891,7 +888,7 @@
 	if v.flag == 0 {
 		panic(&ValueError{"reflect.Value.CanInterface", Invalid})
 	}
-	return v.flag&(flagMethod|flagRO) == 0
+	return v.flag&flagRO == 0
 }
 
 // Interface returns v's current value as an interface{}.
@@ -910,16 +907,15 @@
 	if v.flag == 0 {
 		panic(&ValueError{"reflect.Value.Interface", 0})
 	}
-	if v.flag&flagMethod != 0 {
-		panic("reflect.Value.Interface: cannot create interface value for method with bound receiver")
-	}
-
 	if safe && v.flag&flagRO != 0 {
 		// Do not allow access to unexported values via Interface,
 		// because they might be pointers that should not be
 		// writable or methods or function that should not be callable.
 		panic("reflect.Value.Interface: cannot return value obtained from unexported field or method")
 	}
+	if v.flag&flagMethod != 0 {
+		v = makeMethodValue("Interface", v)
+	}
 
 	k := v.kind()
 	if k == Interface {
@@ -974,7 +970,7 @@
 	switch k {
 	case Chan, Func, Map, Ptr:
 		if v.flag&flagMethod != 0 {
-			panic("reflect: IsNil of method Value")
+			return false
 		}
 		ptr := v.val
 		if v.flag&flagIndir != 0 {
@@ -1093,7 +1089,7 @@
 // Method returns a function value corresponding to v's i'th method.
 // The arguments to a Call on the returned function should not include
 // a receiver; the returned function will always use v as the receiver.
-// Method panics if i is out of range.
+// Method panics if i is out of range or if v is a nil interface value.
 func (v Value) Method(i int) Value {
 	if v.typ == nil {
 		panic(&ValueError{"reflect.Value.Method", Invalid})
@@ -1101,7 +1097,10 @@
 	if v.flag&flagMethod != 0 || i < 0 || i >= v.typ.NumMethod() {
 		panic("reflect: Method index out of range")
 	}
-	fl := v.flag & (flagRO | flagAddr | flagIndir)
+	if v.typ.Kind() == Interface && v.IsNil() {
+		panic("reflect: Method on nil interface value")
+	}
+	fl := v.flag & (flagRO | flagIndir)
 	fl |= flag(Func) << flagKindShift
 	fl |= flag(i)<<flagMethodShift | flagMethod
 	return Value{v.typ, v.val, fl}
@@ -1209,18 +1208,43 @@
 // code using reflect cannot obtain unsafe.Pointers
 // without importing the unsafe package explicitly.
 // It panics if v's Kind is not Chan, Func, Map, Ptr, Slice, or UnsafePointer.
+//
+// If v's Kind is Func, the returned pointer is an underlying
+// code pointer, but not necessarily enough to identify a
+// single function uniquely. The only guarantee is that the
+// result is zero if and only if v is a nil func Value.
 func (v Value) Pointer() uintptr {
 	k := v.kind()
 	switch k {
-	case Chan, Func, Map, Ptr, UnsafePointer:
-		if k == Func && v.flag&flagMethod != 0 {
-			panic("reflect.Value.Pointer of method Value")
+	case Chan, Map, Ptr, UnsafePointer:
+		p := v.val
+		if v.flag&flagIndir != 0 {
+			p = *(*unsafe.Pointer)(p)
+		}
+		return uintptr(p)
+	case Func:
+		if v.flag&flagMethod != 0 {
+			// As the doc comment says, the returned pointer is an
+			// underlying code pointer but not necessarily enough to
+			// identify a single function uniquely. All method expressions
+			// created via reflect have the same underlying code pointer,
+			// so their Pointers are equal. The function used here must
+			// match the one used in makeMethodValue.
+			// This is not properly implemented for gccgo.
+			f := Zero
+			return **(**uintptr)(unsafe.Pointer(&f))
 		}
 		p := v.val
 		if v.flag&flagIndir != 0 {
 			p = *(*unsafe.Pointer)(p)
 		}
+		// Non-nil func value points at data block.
+		// First word of data block is actual code.
+		if p != nil {
+			p = *(*unsafe.Pointer)(p)
+		}
 		return uintptr(p)
+
 	case Slice:
 		return (*SliceHeader)(v.val).Data
 	}
@@ -1243,7 +1267,7 @@
 func (v Value) recv(nb bool) (val Value, ok bool) {
 	tt := (*chanType)(unsafe.Pointer(v.typ))
 	if ChanDir(tt.dir)&RecvDir == 0 {
-		panic("recv on send-only channel")
+		panic("reflect: recv on send-only channel")
 	}
 	word, selected, ok := chanrecv(v.typ, *(*iword)(v.iword()), nb)
 	if selected {
@@ -1271,7 +1295,7 @@
 func (v Value) send(x Value, nb bool) (selected bool) {
 	tt := (*chanType)(unsafe.Pointer(v.typ))
 	if ChanDir(tt.dir)&SendDir == 0 {
-		panic("send on recv-only channel")
+		panic("reflect: send on recv-only channel")
 	}
 	x.mustBeExported()
 	x = x.assignTo("reflect.Value.Send", tt.elem, nil)
@@ -1444,7 +1468,7 @@
 }
 
 // Slice returns a slice of v.
-// It panics if v's Kind is not Array, Slice, or String.
+// It panics if v's Kind is not Array, Slice or String, or if v is an unaddressable array.
 func (v Value) Slice(beg, end int) Value {
 	var (
 		cap  int
@@ -1554,7 +1578,7 @@
 		// Method on interface.
 		tt := (*interfaceType)(unsafe.Pointer(v.typ))
 		if i < 0 || i >= len(tt.methods) {
-			panic("reflect: broken Value")
+			panic("reflect: internal error: invalid method index")
 		}
 		m := &tt.methods[i]
 		return toType(m.typ)
@@ -1562,7 +1586,7 @@
 	// Method on concrete type.
 	ut := v.typ.uncommon()
 	if ut == nil || i < 0 || i >= len(ut.methods) {
-		panic("reflect: broken Value")
+		panic("reflect: internal error: invalid method index")
 	}
 	m := &ut.methods[i]
 	return toType(m.mtyp)
@@ -1611,14 +1635,22 @@
 }
 
 // StringHeader is the runtime representation of a string.
-// It cannot be used safely or portably.
+// It cannot be used safely or portably and its representation may
+// change in a later release.
+// Moreover, the Data field is not sufficient to guarantee the data
+// it references will not be garbage collected, so programs must keep
+// a separate, correctly typed pointer to the underlying data.
 type StringHeader struct {
 	Data uintptr
 	Len  int
 }
 
 // SliceHeader is the runtime representation of a slice.
-// It cannot be used safely or portably.
+// It cannot be used safely or portably and its representation may
+// change in a later release.
+// Moreover, the Data field is not sufficient to guarantee the data
+// it references will not be garbage collected, so programs must keep
+// a separate, correctly typed pointer to the underlying data.
 type SliceHeader struct {
 	Data uintptr
 	Len  int
@@ -1787,8 +1819,9 @@
 }
 
 // Select executes a select operation described by the list of cases.
-// Like the Go select statement, it blocks until one of the cases can
-// proceed and then executes that case. It returns the index of the chosen case
+// Like the Go select statement, it blocks until at least one of the cases
+// can proceed, makes a uniform pseudo-random choice,
+// and then executes that case. It returns the index of the chosen case
 // and, if that case was a receive operation, the value received and a
 // boolean indicating whether the value corresponds to a send on the channel
 // (as opposed to a zero value received because the channel is closed).
@@ -2005,7 +2038,7 @@
 // For a conversion to an interface type, target is a suggested scratch space to use.
 func (v Value) assignTo(context string, dst *rtype, target *interface{}) Value {
 	if v.flag&flagMethod != 0 {
-		panic(context + ": cannot assign method value to type " + dst.String())
+		v = makeMethodValue(context, v)
 	}
 
 	switch {
@@ -2039,7 +2072,7 @@
 // of the value v to type t, Convert panics.
 func (v Value) Convert(t Type) Value {
 	if v.flag&flagMethod != 0 {
-		panic("reflect.Value.Convert: cannot convert method values")
+		v = makeMethodValue("Convert", v)
 	}
 	op := convertOp(t.common(), v.typ)
 	if op == nil {
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/exec_test.go gcc-4.8.1/libgo/go/regexp/exec_test.go
--- gcc-4.8.1.orig/libgo/go/regexp/exec_test.go	2013-02-10 06:02:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/regexp/exec_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -89,7 +89,7 @@
 		txt = f
 	}
 	lineno := 0
-	r := bufio.NewReader(txt)
+	scanner := bufio.NewScanner(txt)
 	var (
 		str       []string
 		input     []string
@@ -99,16 +99,8 @@
 		nfail     int
 		ncase     int
 	)
-	for {
-		line, err := r.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			t.Fatalf("%s:%d: %v", file, lineno, err)
-		}
-		line = line[:len(line)-1] // chop \n
-		lineno++
+	for lineno := 1; scanner.Scan(); lineno++ {
+		line := scanner.Text()
 		switch {
 		case line == "":
 			t.Fatalf("%s:%d: unexpected blank line", file, lineno)
@@ -204,6 +196,9 @@
 			t.Fatalf("%s:%d: out of sync: %s\n", file, lineno, line)
 		}
 	}
+	if err := scanner.Err(); err != nil {
+		t.Fatalf("%s:%d: %v", file, lineno, err)
+	}
 	if len(input) != 0 {
 		t.Fatalf("%s:%d: out of sync: have %d strings left at EOF", file, lineno, len(input))
 	}
@@ -706,3 +701,17 @@
 func BenchmarkMatchHard_32K(b *testing.B)   { benchmark(b, hard, 32<<10) }
 func BenchmarkMatchHard_1M(b *testing.B)    { benchmark(b, hard, 1<<20) }
 func BenchmarkMatchHard_32M(b *testing.B)   { benchmark(b, hard, 32<<20) }
+
+func TestLongest(t *testing.T) {
+	re, err := Compile(`a(|b)`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if g, w := re.FindString("ab"), "a"; g != w {
+		t.Errorf("first match was %q, want %q", g, w)
+	}
+	re.Longest()
+	if g, w := re.FindString("ab"), "ab"; g != w {
+		t.Errorf("longest match was %q, want %q", g, w)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/regexp.go gcc-4.8.1/libgo/go/regexp/regexp.go
--- gcc-4.8.1.orig/libgo/go/regexp/regexp.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/regexp/regexp.go	2013-10-01 16:06:44.204554279 +0000
@@ -8,6 +8,8 @@
 // general syntax used by Perl, Python, and other languages.
 // More precisely, it is the syntax accepted by RE2 and described at
 // http://code.google.com/p/re2/wiki/Syntax, except for \C.
+// For an overview of the syntax, run
+//   godoc regexp/syntax
 //
 // All characters are UTF-8-encoded code points.
 //
@@ -27,11 +29,11 @@
 // of bytes; return values are adjusted as appropriate.
 //
 // If 'Submatch' is present, the return value is a slice identifying the
-// successive submatches of the expression.  Submatches are matches of
-// parenthesized subexpressions within the regular expression, numbered from
-// left to right in order of opening parenthesis.  Submatch 0 is the match of
-// the entire expression, submatch 1 the match of the first parenthesized
-// subexpression, and so on.
+// successive submatches of the expression. Submatches are matches of
+// parenthesized subexpressions (also known as capturing groups) within the
+// regular expression, numbered from left to right in order of opening
+// parenthesis. Submatch 0 is the match of the entire expression, submatch 1
+// the match of the first parenthesized subexpression, and so on.
 //
 // If 'Index' is present, matches and submatches are identified by byte index
 // pairs within the input string: result[2*n:2*n+1] identifies the indexes of
@@ -130,6 +132,14 @@
 	return compile(expr, syntax.POSIX, true)
 }
 
+// Longest makes future searches prefer the leftmost-longest match.
+// That is, when matching against text, the regexp returns a match that
+// begins as early as possible in the input (leftmost), and among those
+// it chooses a match that is as long as possible.
+func (re *Regexp) Longest() {
+	re.longest = true
+}
+
 func compile(expr string, mode syntax.Flags, longest bool) (*Regexp, error) {
 	re, err := syntax.Parse(expr, mode)
 	if err != nil {
@@ -387,7 +397,7 @@
 // MatchReader checks whether a textual regular expression matches the text
 // read by the RuneReader.  More complicated queries need to use Compile and
 // the full Regexp interface.
-func MatchReader(pattern string, r io.RuneReader) (matched bool, error error) {
+func MatchReader(pattern string, r io.RuneReader) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
@@ -398,7 +408,7 @@
 // MatchString checks whether a textual regular expression
 // matches a string.  More complicated queries need
 // to use Compile and the full Regexp interface.
-func MatchString(pattern string, s string) (matched bool, error error) {
+func MatchString(pattern string, s string) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
@@ -409,7 +419,7 @@
 // Match checks whether a textual regular expression
 // matches a byte slice.  More complicated queries need
 // to use Compile and the full Regexp interface.
-func Match(pattern string, b []byte) (matched bool, error error) {
+func Match(pattern string, b []byte) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go gcc-4.8.1/libgo/go/regexp/syntax/doc.go
--- gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/regexp/syntax/doc.go	2013-10-01 16:06:44.204554279 +0000
@@ -47,9 +47,9 @@
   x{n}?          exactly n x
 
 Grouping:
-  (re)           numbered capturing group
-  (?P<name>re)   named & numbered capturing group
-  (?:re)         non-capturing group
+  (re)           numbered capturing group (submatch)
+  (?P<name>re)   named & numbered capturing group (submatch)
+  (?:re)         non-capturing group (submatch)
   (?flags)       set flags within current group; non-capturing
   (?flags:re)    set flags during re; non-capturing
 
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/append_test.go gcc-4.8.1/libgo/go/runtime/append_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/append_test.go	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/append_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -19,6 +19,67 @@
 	}
 }
 
+func benchmarkAppendBytes(b *testing.B, length int) {
+	b.StopTimer()
+	x := make([]byte, 0, N)
+	y := make([]byte, length)
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		x = x[0:0]
+		x = append(x, y...)
+	}
+}
+
+func BenchmarkAppend1Byte(b *testing.B) {
+	benchmarkAppendBytes(b, 1)
+}
+
+func BenchmarkAppend4Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 4)
+}
+
+func BenchmarkAppend8Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 8)
+}
+
+func BenchmarkAppend16Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 16)
+}
+
+func BenchmarkAppend32Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 32)
+}
+
+func benchmarkAppendStr(b *testing.B, str string) {
+	b.StopTimer()
+	x := make([]byte, 0, N)
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		x = x[0:0]
+		x = append(x, str...)
+	}
+}
+
+func BenchmarkAppendStr1Byte(b *testing.B) {
+	benchmarkAppendStr(b, "1")
+}
+
+func BenchmarkAppendStr4Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "1234")
+}
+
+func BenchmarkAppendStr8Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "12345678")
+}
+
+func BenchmarkAppendStr16Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "1234567890123456")
+}
+
+func BenchmarkAppendStr32Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "12345678901234567890123456789012")
+}
+
 func BenchmarkAppendSpecialCase(b *testing.B) {
 	b.StopTimer()
 	x := make([]int, 0, N)
@@ -50,3 +111,13 @@
 		t.Error("append failed: ", x[0], x[1])
 	}
 }
+
+func TestAppendOverlap(t *testing.T) {
+	x := []byte("1234")
+	x = append(x[1:], x...) // p > q in runtimeÂ·appendslice.
+	got := string(x)
+	want := "2341234"
+	if got != want {
+		t.Errorf("overlap failed: got %q want %q", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -11,5 +11,80 @@
 )
 
 func TestCgoCrashHandler(t *testing.T) {
-	testCrashHandler(t, &crashTest{Cgo: true})
+	testCrashHandler(t, true)
 }
+
+func TestCgoSignalDeadlock(t *testing.T) {
+	/* gccgo does not have a go command
+	got := executeTest(t, cgoSignalDeadlockSource, nil)
+	want := "OK\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+const cgoSignalDeadlockSource = `
+package main
+
+import "C"
+
+import (
+	"fmt"
+	"runtime"
+	"time"
+)
+
+func main() {
+	runtime.GOMAXPROCS(100)
+	ping := make(chan bool)
+	go func() {
+		for i := 0; ; i++ {
+			runtime.Gosched()
+			select {
+			case done := <-ping:
+				if done {
+					ping <- true
+					return
+				}
+				ping <- true
+			default:
+			}
+			func() {
+				defer func() {
+					recover()
+				}()
+				var s *string
+				*s = ""
+			}()
+		}
+	}()
+	time.Sleep(time.Millisecond)
+	for i := 0; i < 64; i++ {
+		go func() {
+			runtime.LockOSThread()
+			select {}
+		}()
+		go func() {
+			runtime.LockOSThread()
+			select {}
+		}()
+		time.Sleep(time.Millisecond)
+		ping <- false
+		select {
+		case <-ping:
+		case <-time.After(time.Second):
+			fmt.Printf("HANG\n")
+			return
+		}
+	}
+	ping <- true
+	select {
+	case <-ping:
+	case <-time.After(time.Second):
+		fmt.Printf("HANG\n")
+		return
+	}
+	fmt.Printf("OK\n")
+}
+`
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_test.go gcc-4.8.1/libgo/go/runtime/crash_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/crash_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/crash_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -7,21 +7,33 @@
 import (
 	"io/ioutil"
 	"os"
-	// "os/exec"
+	"os/exec"
 	"path/filepath"
+	"strings"
 	"testing"
 	"text/template"
 )
 
-type crashTest struct {
-	Cgo bool
+// testEnv excludes GOGCTRACE from the environment
+// to prevent its output from breaking tests that
+// are trying to parse other command output.
+func testEnv(cmd *exec.Cmd) *exec.Cmd {
+	if cmd.Env != nil {
+		panic("environment already set")
+	}
+	for _, env := range os.Environ() {
+		if strings.HasPrefix(env, "GOGCTRACE=") {
+			continue
+		}
+		cmd.Env = append(cmd.Env, env)
+	}
+	return cmd
 }
 
-// This test is a separate program, because it is testing
-// both main (m0) and non-main threads (m).
+func executeTest(t *testing.T, templ string, data interface{}) string {
+	checkStaleRuntime(t)
 
-func testCrashHandler(t *testing.T, ct *crashTest) {
-	st := template.Must(template.New("crashSource").Parse(crashSource))
+	st := template.Must(template.New("crashSource").Parse(templ))
 
 	dir, err := ioutil.TempDir("", "go-build")
 	if err != nil {
@@ -34,30 +46,79 @@
 	if err != nil {
 		t.Fatalf("failed to create %v: %v", src, err)
 	}
-	err = st.Execute(f, ct)
+	err = st.Execute(f, data)
 	if err != nil {
 		f.Close()
 		t.Fatalf("failed to execute template: %v", err)
 	}
 	f.Close()
 
-	/*
-		 gccgo does not have a go command.
+	got, _ := testEnv(exec.Command("go", "run", src)).CombinedOutput()
+	return string(got)
+}
 
-		got, err := exec.Command("go", "run", src).CombinedOutput()
-		if err != nil {
-			t.Fatalf("program exited with error: %v\n%v", err, string(got))
-		}
-		want := "main: recovered done\nnew-thread: recovered done\nsecond-new-thread: recovered done\nmain-again: recovered done\n"
-		if string(got) != string(want) {
-			t.Fatalf("expected %q, but got %q", string(want), string(got))
-		}
+func checkStaleRuntime(t *testing.T) {
+	// 'go run' uses the installed copy of runtime.a, which may be out of date.
+	out, err := testEnv(exec.Command("go", "list", "-f", "{{.Stale}}", "runtime")).CombinedOutput()
+	if err != nil {
+		t.Fatalf("failed to execute 'go list': %v\n%v", err, string(out))
+	}
+	if string(out) != "false\n" {
+		t.Fatalf("Stale runtime.a. Run 'go install runtime'.")
+	}
+}
 
+func testCrashHandler(t *testing.T, cgo bool) {
+	/* gccgo does not have a go command
+	type crashTest struct {
+		Cgo bool
+	}
+	got := executeTest(t, crashSource, &crashTest{Cgo: cgo})
+	want := "main: recovered done\nnew-thread: recovered done\nsecond-new-thread: recovered done\nmain-again: recovered done\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
 	*/
 }
 
 func TestCrashHandler(t *testing.T) {
-	testCrashHandler(t, &crashTest{Cgo: false})
+	testCrashHandler(t, false)
+}
+
+func testDeadlock(t *testing.T, source string) {
+	/* gccgo does not have a go command.
+	got := executeTest(t, source, nil)
+	want := "fatal error: all goroutines are asleep - deadlock!\n"
+	if !strings.HasPrefix(got, want) {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+func TestSimpleDeadlock(t *testing.T) {
+	testDeadlock(t, simpleDeadlockSource)
+}
+
+func TestInitDeadlock(t *testing.T) {
+	testDeadlock(t, initDeadlockSource)
+}
+
+func TestLockedDeadlock(t *testing.T) {
+	testDeadlock(t, lockedDeadlockSource)
+}
+
+func TestLockedDeadlock2(t *testing.T) {
+	testDeadlock(t, lockedDeadlockSource2)
+}
+
+func TestGoexitDeadlock(t *testing.T) {
+	/* gccgo does not have a go command
+	got := executeTest(t, goexitDeadlockSource, nil)
+	want := ""
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
 }
 
 const crashSource = `
@@ -103,3 +164,62 @@
 	test("main-again")
 }
 `
+
+const simpleDeadlockSource = `
+package main
+func main() {
+	select {}
+}
+`
+
+const initDeadlockSource = `
+package main
+func init() {
+	select {}
+}
+func main() {
+}
+`
+
+const lockedDeadlockSource = `
+package main
+import "runtime"
+func main() {
+	runtime.LockOSThread()
+	select {}
+}
+`
+
+const lockedDeadlockSource2 = `
+package main
+import (
+	"runtime"
+	"time"
+)
+func main() {
+	go func() {
+		runtime.LockOSThread()
+		select {}
+	}()
+	time.Sleep(time.Millisecond)
+	select {}
+}
+`
+
+const goexitDeadlockSource = `
+package main
+import (
+      "runtime"
+)
+
+func F() {
+      for i := 0; i < 10; i++ {
+      }
+}
+
+func main() {
+      go F()
+      go F()
+      runtime.Goexit()
+}
+`
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go gcc-4.8.1/libgo/go/runtime/debug/garbage.go
--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/debug/garbage.go	2013-10-01 16:06:44.204554279 +0000
@@ -0,0 +1,101 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package debug
+
+import (
+	"runtime"
+	"sort"
+	"time"
+)
+
+// GCStats collect information about recent garbage collections.
+type GCStats struct {
+	LastGC         time.Time       // time of last collection
+	NumGC          int64           // number of garbage collections
+	PauseTotal     time.Duration   // total pause for all collections
+	Pause          []time.Duration // pause history, most recent first
+	PauseQuantiles []time.Duration
+}
+
+// Implemented in package runtime.
+func readGCStats(*[]time.Duration)
+func enableGC(bool) bool
+func setGCPercent(int) int
+func freeOSMemory()
+
+// ReadGCStats reads statistics about garbage collection into stats.
+// The number of entries in the pause history is system-dependent;
+// stats.Pause slice will be reused if large enough, reallocated otherwise.
+// ReadGCStats may use the full capacity of the stats.Pause slice.
+// If stats.PauseQuantiles is non-empty, ReadGCStats fills it with quantiles
+// summarizing the distribution of pause time. For example, if
+// len(stats.PauseQuantiles) is 5, it will be filled with the minimum,
+// 25%, 50%, 75%, and maximum pause times.
+func ReadGCStats(stats *GCStats) {
+	// Create a buffer with space for at least two copies of the
+	// pause history tracked by the runtime. One will be returned
+	// to the caller and the other will be used as a temporary buffer
+	// for computing quantiles.
+	const maxPause = len(((*runtime.MemStats)(nil)).PauseNs)
+	if cap(stats.Pause) < 2*maxPause {
+		stats.Pause = make([]time.Duration, 2*maxPause)
+	}
+
+	// readGCStats fills in the pause history (up to maxPause entries)
+	// and then three more: Unix ns time of last GC, number of GC,
+	// and total pause time in nanoseconds. Here we depend on the
+	// fact that time.Duration's native unit is nanoseconds, so the
+	// pauses and the total pause time do not need any conversion.
+	readGCStats(&stats.Pause)
+	n := len(stats.Pause) - 3
+	stats.LastGC = time.Unix(0, int64(stats.Pause[n]))
+	stats.NumGC = int64(stats.Pause[n+1])
+	stats.PauseTotal = stats.Pause[n+2]
+	stats.Pause = stats.Pause[:n]
+
+	if len(stats.PauseQuantiles) > 0 {
+		if n == 0 {
+			for i := range stats.PauseQuantiles {
+				stats.PauseQuantiles[i] = 0
+			}
+		} else {
+			// There's room for a second copy of the data in stats.Pause.
+			// See the allocation at the top of the function.
+			sorted := stats.Pause[n : n+n]
+			copy(sorted, stats.Pause)
+			sort.Sort(byDuration(sorted))
+			nq := len(stats.PauseQuantiles) - 1
+			for i := 0; i < nq; i++ {
+				stats.PauseQuantiles[i] = sorted[len(sorted)*i/nq]
+			}
+			stats.PauseQuantiles[nq] = sorted[len(sorted)-1]
+		}
+	}
+}
+
+type byDuration []time.Duration
+
+func (x byDuration) Len() int           { return len(x) }
+func (x byDuration) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
+func (x byDuration) Less(i, j int) bool { return x[i] < x[j] }
+
+// SetGCPercent sets the garbage collection target percentage:
+// a collection is triggered when the ratio of freshly allocated data
+// to live data remaining after the previous collection reaches this percentage.
+// SetGCPercent returns the previous setting.
+// The initial setting is the value of the GOGC environment variable
+// at startup, or 100 if the variable is not set.
+// A negative percentage disables garbage collection.
+func SetGCPercent(percent int) int {
+	return setGCPercent(percent)
+}
+
+// FreeOSMemory forces a garbage collection followed by an
+// attempt to return as much memory to the operating system
+// as possible. (Even if this is not called, the runtime gradually
+// returns memory to the operating system in a background task.)
+func FreeOSMemory() {
+	freeOSMemory()
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -0,0 +1,102 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package debug
+
+import (
+	"runtime"
+	"testing"
+	"time"
+)
+
+func TestReadGCStats(t *testing.T) {
+	defer SetGCPercent(SetGCPercent(-1))
+
+	var stats GCStats
+	var mstats runtime.MemStats
+	var min, max time.Duration
+
+	// First ReadGCStats will allocate, second should not,
+	// especially if we follow up with an explicit garbage collection.
+	stats.PauseQuantiles = make([]time.Duration, 10)
+	ReadGCStats(&stats)
+	runtime.GC()
+
+	// Assume these will return same data: no GC during ReadGCStats.
+	ReadGCStats(&stats)
+	runtime.ReadMemStats(&mstats)
+
+	if stats.NumGC != int64(mstats.NumGC) {
+		t.Errorf("stats.NumGC = %d, but mstats.NumGC = %d", stats.NumGC, mstats.NumGC)
+	}
+	if stats.PauseTotal != time.Duration(mstats.PauseTotalNs) {
+		t.Errorf("stats.PauseTotal = %d, but mstats.PauseTotalNs = %d", stats.PauseTotal, mstats.PauseTotalNs)
+	}
+	if stats.LastGC.UnixNano() != int64(mstats.LastGC) {
+		t.Errorf("stats.LastGC.UnixNano = %d, but mstats.LastGC = %d", stats.LastGC.UnixNano(), mstats.LastGC)
+	}
+	n := int(mstats.NumGC)
+	if n > len(mstats.PauseNs) {
+		n = len(mstats.PauseNs)
+	}
+	if len(stats.Pause) != n {
+		t.Errorf("len(stats.Pause) = %d, want %d", len(stats.Pause), n)
+	} else {
+		off := (int(mstats.NumGC) + len(mstats.PauseNs) - 1) % len(mstats.PauseNs)
+		for i := 0; i < n; i++ {
+			dt := stats.Pause[i]
+			if dt != time.Duration(mstats.PauseNs[off]) {
+				t.Errorf("stats.Pause[%d] = %d, want %d", i, dt, mstats.PauseNs[off])
+			}
+			if max < dt {
+				max = dt
+			}
+			if min > dt || i == 0 {
+				min = dt
+			}
+			off = (off + len(mstats.PauseNs) - 1) % len(mstats.PauseNs)
+		}
+	}
+
+	q := stats.PauseQuantiles
+	nq := len(q)
+	if q[0] != min || q[nq-1] != max {
+		t.Errorf("stats.PauseQuantiles = [%d, ..., %d], want [%d, ..., %d]", q[0], q[nq-1], min, max)
+	}
+
+	for i := 0; i < nq-1; i++ {
+		if q[i] > q[i+1] {
+			t.Errorf("stats.PauseQuantiles[%d]=%d > stats.PauseQuantiles[%d]=%d", i, q[i], i+1, q[i+1])
+		}
+	}
+}
+
+var big = make([]byte, 1<<20)
+
+func TestFreeOSMemory(t *testing.T) {
+	var ms1, ms2 runtime.MemStats
+
+	if big == nil {
+		t.Skip("test is not reliable when run multiple times")
+	}
+	big = nil
+	runtime.GC()
+	runtime.ReadMemStats(&ms1)
+	FreeOSMemory()
+	runtime.ReadMemStats(&ms2)
+	if ms1.HeapReleased >= ms2.HeapReleased {
+		t.Errorf("released before=%d; released after=%d; did not go up", ms1.HeapReleased, ms2.HeapReleased)
+	}
+}
+
+func TestSetGCPercent(t *testing.T) {
+	// Test that the variable is being set and returned correctly.
+	// Assume the percentage itself is implemented fine during GC,
+	// which is harder to test.
+	old := SetGCPercent(123)
+	new := SetGCPercent(old)
+	if new != 123 {
+		t.Errorf("SetGCPercent(123); SetGCPercent(x) = %d, want 123", new)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/export_test.go gcc-4.8.1/libgo/go/runtime/export_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/export_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/export_test.go	2013-10-01 16:06:44.204554279 +0000
@@ -59,3 +59,9 @@
 	begin, end := parforiters(desc, uintptr(tid))
 	return uint32(begin), uint32(end)
 }
+
+func testSchedLocalQueue()
+func testSchedLocalQueueSteal()
+
+var TestSchedLocalQueue1 = testSchedLocalQueue
+var TestSchedLocalQueueSteal1 = testSchedLocalQueueSteal
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/extern.go gcc-4.8.1/libgo/go/runtime/extern.go
--- gcc-4.8.1.orig/libgo/go/runtime/extern.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/extern.go	2013-10-01 16:06:44.204554279 +0000
@@ -3,10 +3,54 @@
 // license that can be found in the LICENSE file.
 
 /*
-	Package runtime contains operations that interact with Go's runtime system,
-	such as functions to control goroutines. It also includes the low-level type information
-	used by the reflect package; see reflect's documentation for the programmable
-	interface to the run-time type system.
+Package runtime contains operations that interact with Go's runtime system,
+such as functions to control goroutines. It also includes the low-level type information
+used by the reflect package; see reflect's documentation for the programmable
+interface to the run-time type system.
+
+Environment Variables
+
+The following environment variables ($name or %name%, depending on the host
+operating system) control the run-time behavior of Go programs. The meanings
+and use may change from release to release.
+
+The GOGC variable sets the initial garbage collection target percentage.
+A collection is triggered when the ratio of freshly allocated data to live data
+remaining after the previous collection reaches this percentage. The default
+is GOGC=100. Setting GOGC=off disables the garbage collector entirely.
+The runtime/debug package's SetGCPercent function allows changing this
+percentage at run time. See http://golang.org/pkg/runtime/debug/#SetGCPercent.
+
+The GOGCTRACE variable controls debug output from the garbage collector.
+Setting GOGCTRACE=1 causes the garbage collector to emit a single line to standard
+error at each collection, summarizing the amount of memory collected and the
+length of the pause. Setting GOGCTRACE=2 emits the same summary but also
+repeats each collection.
+
+The GOMAXPROCS variable limits the number of operating system threads that
+can execute user-level Go code simultaneously. There is no limit to the number of threads
+that can be blocked in system calls on behalf of Go code; those do not count against
+the GOMAXPROCS limit. This package's GOMAXPROCS function queries and changes
+the limit.
+
+The GOTRACEBACK variable controls the amount of output generated when a Go
+program fails due to an unrecovered panic or an unexpected runtime condition.
+By default, a failure prints a stack trace for every extant goroutine, eliding functions
+internal to the run-time system, and then exits with exit code 2.
+If GOTRACEBACK=0, the per-goroutine stack traces are omitted entirely.
+If GOTRACEBACK=1, the default behavior is used.
+If GOTRACEBACK=2, the per-goroutine stack traces include run-time functions.
+If GOTRACEBACK=crash, the per-goroutine stack traces include run-time functions,
+and if possible the program crashes in an operating-specific manner instead of
+exiting. For example, on Unix systems, the program raises SIGABRT to trigger a
+core dump.
+
+The GOARCH, GOOS, GOPATH, and GOROOT environment variables complete
+the set of Go environment variables. They influence the building of Go programs
+(see http://golang.org/cmd/go and http://golang.org/pkg/go/build).
+GOARCH, GOOS, and GOROOT are recorded at compile time and made available by
+constants or functions in this package, but they do not influence the execution
+of the run-time system.
 */
 package runtime
 
@@ -59,9 +103,6 @@
 // implemented in symtab.c
 func funcline_go(*Func, uintptr) (string, int)
 
-// mid returns the current OS thread (m) id.
-func mid() uint32
-
 // SetFinalizer sets the finalizer associated with x to f.
 // When the garbage collector finds an unreachable block
 // with an associated finalizer, it clears the association and runs
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/gc_test.go gcc-4.8.1/libgo/go/runtime/gc_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/gc_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/gc_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -5,12 +5,36 @@
 package runtime_test
 
 import (
+	// "os"
 	"runtime"
+	"runtime/debug"
 	"testing"
 )
 
 func TestGcSys(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	/* gccgo does not have a go command
+	if os.Getenv("GOGC") == "off" {
+		t.Skip("skipping test; GOGC=off in environment")
+	}
+	data := struct{ Short bool }{testing.Short()}
+	got := executeTest(t, testGCSysSource, &data)
+	want := "OK\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+const testGCSysSource = `
+package main
+
+import (
+	"fmt"
+	"runtime"
+)
+
+func main() {
+	runtime.GOMAXPROCS(1)
 	memstats := new(runtime.MemStats)
 	runtime.GC()
 	runtime.ReadMemStats(memstats)
@@ -19,9 +43,9 @@
 	runtime.MemProfileRate = 0 // disable profiler
 
 	itercount := 1000000
-	if testing.Short() {
-		itercount = 100000
-	}
+{{if .Short}}
+	itercount = 100000
+{{end}}
 	for i := 0; i < itercount; i++ {
 		workthegc()
 	}
@@ -34,15 +58,17 @@
 	} else {
 		sys = memstats.Sys - sys
 	}
-	t.Logf("used %d extra bytes", sys)
 	if sys > 16<<20 {
-		t.Fatalf("using too much memory: %d bytes", sys)
+		fmt.Printf("using too much memory: %d bytes\n", sys)
+		return
 	}
+	fmt.Printf("OK\n")
 }
 
 func workthegc() []byte {
 	return make([]byte, 1029)
 }
+`
 
 func TestGcDeepNesting(t *testing.T) {
 	type T [2][2][2][2][2][2][2][2][2][2]*int
@@ -59,3 +85,69 @@
 		t.Fail()
 	}
 }
+
+func TestGcHashmapIndirection(t *testing.T) {
+	defer debug.SetGCPercent(debug.SetGCPercent(1))
+	runtime.GC()
+	type T struct {
+		a [256]int
+	}
+	m := make(map[T]T)
+	for i := 0; i < 2000; i++ {
+		var a T
+		a.a[0] = i
+		m[a] = T{}
+	}
+}
+
+func TestGcArraySlice(t *testing.T) {
+	type X struct {
+		buf     [1]byte
+		nextbuf []byte
+		next    *X
+	}
+	var head *X
+	for i := 0; i < 10; i++ {
+		p := &X{}
+		p.buf[0] = 42
+		p.next = head
+		if head != nil {
+			p.nextbuf = head.buf[:]
+		}
+		head = p
+		runtime.GC()
+	}
+	for p := head; p != nil; p = p.next {
+		if p.buf[0] != 42 {
+			t.Fatal("corrupted heap")
+		}
+	}
+}
+
+func TestGcRescan(t *testing.T) {
+	type X struct {
+		c     chan error
+		nextx *X
+	}
+	type Y struct {
+		X
+		nexty *Y
+		p     *int
+	}
+	var head *Y
+	for i := 0; i < 10; i++ {
+		p := &Y{}
+		p.c = make(chan error)
+		p.nextx = &head.X
+		p.nexty = head
+		p.p = new(int)
+		*p.p = 42
+		head = p
+		runtime.GC()
+	}
+	for p := head; p != nil; p = p.nexty {
+		if *p.p != 42 {
+			t.Fatal("corrupted heap")
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/map_test.go gcc-4.8.1/libgo/go/runtime/map_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/map_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/map_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -0,0 +1,380 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package runtime_test
+
+import (
+	"fmt"
+	"math"
+	"reflect"
+	"runtime"
+	"sort"
+	"strings"
+	"sync"
+	"testing"
+)
+
+// negative zero is a good test because:
+//  1) 0 and -0 are equal, yet have distinct representations.
+//  2) 0 is represented as all zeros, -0 isn't.
+// I'm not sure the language spec actually requires this behavior,
+// but it's what the current map implementation does.
+func TestNegativeZero(t *testing.T) {
+	m := make(map[float64]bool, 0)
+
+	m[+0.0] = true
+	m[math.Copysign(0.0, -1.0)] = true // should overwrite +0 entry
+
+	if len(m) != 1 {
+		t.Error("length wrong")
+	}
+
+	/* gccgo fails this test; this is not required by the spec.
+	for k := range m {
+		if math.Copysign(1.0, k) > 0 {
+			t.Error("wrong sign")
+		}
+	}
+	*/
+
+	m = make(map[float64]bool, 0)
+	m[math.Copysign(0.0, -1.0)] = true
+	m[+0.0] = true // should overwrite -0.0 entry
+
+	if len(m) != 1 {
+		t.Error("length wrong")
+	}
+
+	/* gccgo fails this test; this is not required by the spec.
+	for k := range m {
+		if math.Copysign(1.0, k) < 0 {
+			t.Error("wrong sign")
+		}
+	}
+	*/
+}
+
+// nan is a good test because nan != nan, and nan has
+// a randomized hash value.
+func TestNan(t *testing.T) {
+	m := make(map[float64]int, 0)
+	nan := math.NaN()
+	m[nan] = 1
+	m[nan] = 2
+	m[nan] = 4
+	if len(m) != 3 {
+		t.Error("length wrong")
+	}
+	s := 0
+	for k, v := range m {
+		if k == k {
+			t.Error("nan disappeared")
+		}
+		if (v & (v - 1)) != 0 {
+			t.Error("value wrong")
+		}
+		s |= v
+	}
+	if s != 7 {
+		t.Error("values wrong")
+	}
+}
+
+// Maps aren't actually copied on assignment.
+func TestAlias(t *testing.T) {
+	m := make(map[int]int, 0)
+	m[0] = 5
+	n := m
+	n[0] = 6
+	if m[0] != 6 {
+		t.Error("alias didn't work")
+	}
+}
+
+func TestGrowWithNaN(t *testing.T) {
+	t.Skip("fails with gccgo")
+	m := make(map[float64]int, 4)
+	nan := math.NaN()
+	m[nan] = 1
+	m[nan] = 2
+	m[nan] = 4
+	cnt := 0
+	s := 0
+	growflag := true
+	for k, v := range m {
+		if growflag {
+			// force a hashtable resize
+			for i := 0; i < 100; i++ {
+				m[float64(i)] = i
+			}
+			growflag = false
+		}
+		if k != k {
+			cnt++
+			s |= v
+		}
+	}
+	t.Log("cnt:", cnt, "s:", s)
+	if cnt != 3 {
+		t.Error("NaN keys lost during grow")
+	}
+	if s != 7 {
+		t.Error("NaN values lost during grow")
+	}
+}
+
+type FloatInt struct {
+	x float64
+	y int
+}
+
+func TestGrowWithNegativeZero(t *testing.T) {
+	t.Skip("fails with gccgo")
+	negzero := math.Copysign(0.0, -1.0)
+	m := make(map[FloatInt]int, 4)
+	m[FloatInt{0.0, 0}] = 1
+	m[FloatInt{0.0, 1}] = 2
+	m[FloatInt{0.0, 2}] = 4
+	m[FloatInt{0.0, 3}] = 8
+	growflag := true
+	s := 0
+	cnt := 0
+	negcnt := 0
+	// The first iteration should return the +0 key.
+	// The subsequent iterations should return the -0 key.
+	// I'm not really sure this is required by the spec,
+	// but it makes sense.
+	// TODO: are we allowed to get the first entry returned again???
+	for k, v := range m {
+		if v == 0 {
+			continue
+		} // ignore entries added to grow table
+		cnt++
+		if math.Copysign(1.0, k.x) < 0 {
+			if v&16 == 0 {
+				t.Error("key/value not updated together 1")
+			}
+			negcnt++
+			s |= v & 15
+		} else {
+			if v&16 == 16 {
+				t.Error("key/value not updated together 2", k, v)
+			}
+			s |= v
+		}
+		if growflag {
+			// force a hashtable resize
+			for i := 0; i < 100; i++ {
+				m[FloatInt{3.0, i}] = 0
+			}
+			// then change all the entries
+			// to negative zero
+			m[FloatInt{negzero, 0}] = 1 | 16
+			m[FloatInt{negzero, 1}] = 2 | 16
+			m[FloatInt{negzero, 2}] = 4 | 16
+			m[FloatInt{negzero, 3}] = 8 | 16
+			growflag = false
+		}
+	}
+	if s != 15 {
+		t.Error("entry missing", s)
+	}
+	if cnt != 4 {
+		t.Error("wrong number of entries returned by iterator", cnt)
+	}
+	if negcnt != 3 {
+		t.Error("update to negzero missed by iteration", negcnt)
+	}
+}
+
+func TestIterGrowAndDelete(t *testing.T) {
+	m := make(map[int]int, 4)
+	for i := 0; i < 100; i++ {
+		m[i] = i
+	}
+	growflag := true
+	for k := range m {
+		if growflag {
+			// grow the table
+			for i := 100; i < 1000; i++ {
+				m[i] = i
+			}
+			// delete all odd keys
+			for i := 1; i < 1000; i += 2 {
+				delete(m, i)
+			}
+			growflag = false
+		} else {
+			if k&1 == 1 {
+				t.Error("odd value returned")
+			}
+		}
+	}
+}
+
+// make sure old bucket arrays don't get GCd while
+// an iterator is still using them.
+func TestIterGrowWithGC(t *testing.T) {
+	m := make(map[int]int, 4)
+	for i := 0; i < 16; i++ {
+		m[i] = i
+	}
+	growflag := true
+	bitmask := 0
+	for k := range m {
+		if k < 16 {
+			bitmask |= 1 << uint(k)
+		}
+		if growflag {
+			// grow the table
+			for i := 100; i < 1000; i++ {
+				m[i] = i
+			}
+			// trigger a gc
+			runtime.GC()
+			growflag = false
+		}
+	}
+	if bitmask != 1<<16-1 {
+		t.Error("missing key", bitmask)
+	}
+}
+
+func testConcurrentReadsAfterGrowth(t *testing.T, useReflect bool) {
+	if runtime.GOMAXPROCS(-1) == 1 {
+		defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(16))
+	}
+	numLoop := 10
+	numGrowStep := 250
+	numReader := 16
+	if testing.Short() {
+		numLoop, numGrowStep = 2, 500
+	}
+	for i := 0; i < numLoop; i++ {
+		m := make(map[int]int, 0)
+		for gs := 0; gs < numGrowStep; gs++ {
+			m[gs] = gs
+			var wg sync.WaitGroup
+			wg.Add(numReader * 2)
+			for nr := 0; nr < numReader; nr++ {
+				go func() {
+					defer wg.Done()
+					for _ = range m {
+					}
+				}()
+				go func() {
+					defer wg.Done()
+					for key := 0; key < gs; key++ {
+						_ = m[key]
+					}
+				}()
+				if useReflect {
+					wg.Add(1)
+					go func() {
+						defer wg.Done()
+						mv := reflect.ValueOf(m)
+						keys := mv.MapKeys()
+						for _, k := range keys {
+							mv.MapIndex(k)
+						}
+					}()
+				}
+			}
+			wg.Wait()
+		}
+	}
+}
+
+func TestConcurrentReadsAfterGrowth(t *testing.T) {
+	testConcurrentReadsAfterGrowth(t, false)
+}
+
+func TestConcurrentReadsAfterGrowthReflect(t *testing.T) {
+	testConcurrentReadsAfterGrowth(t, true)
+}
+
+func TestBigItems(t *testing.T) {
+	var key [256]string
+	for i := 0; i < 256; i++ {
+		key[i] = "foo"
+	}
+	m := make(map[[256]string][256]string, 4)
+	for i := 0; i < 100; i++ {
+		key[37] = fmt.Sprintf("string%02d", i)
+		m[key] = key
+	}
+	var keys [100]string
+	var values [100]string
+	i := 0
+	for k, v := range m {
+		keys[i] = k[37]
+		values[i] = v[37]
+		i++
+	}
+	sort.Strings(keys[:])
+	sort.Strings(values[:])
+	for i := 0; i < 100; i++ {
+		if keys[i] != fmt.Sprintf("string%02d", i) {
+			t.Errorf("#%d: missing key: %v", i, keys[i])
+		}
+		if values[i] != fmt.Sprintf("string%02d", i) {
+			t.Errorf("#%d: missing value: %v", i, values[i])
+		}
+	}
+}
+
+type empty struct {
+}
+
+func TestEmptyKeyAndValue(t *testing.T) {
+	a := make(map[int]empty, 4)
+	b := make(map[empty]int, 4)
+	c := make(map[empty]empty, 4)
+	a[0] = empty{}
+	b[empty{}] = 0
+	b[empty{}] = 1
+	c[empty{}] = empty{}
+
+	if len(a) != 1 {
+		t.Errorf("empty value insert problem")
+	}
+	if b[empty{}] != 1 {
+		t.Errorf("empty key returned wrong value")
+	}
+}
+
+// Tests a map with a single bucket, with same-lengthed short keys
+// ("quick keys") as well as long keys.
+func TestSingleBucketMapStringKeys_DupLen(t *testing.T) {
+	testMapLookups(t, map[string]string{
+		"x":    "x1val",
+		"xx":   "x2val",
+		"foo":  "fooval",
+		"bar":  "barval", // same key length as "foo"
+		"xxxx": "x4val",
+		strings.Repeat("x", 128): "longval1",
+		strings.Repeat("y", 128): "longval2",
+	})
+}
+
+// Tests a map with a single bucket, with all keys having different lengths.
+func TestSingleBucketMapStringKeys_NoDupLen(t *testing.T) {
+	testMapLookups(t, map[string]string{
+		"x":                      "x1val",
+		"xx":                     "x2val",
+		"foo":                    "fooval",
+		"xxxx":                   "x4val",
+		"xxxxx":                  "x5val",
+		"xxxxxx":                 "x6val",
+		strings.Repeat("x", 128): "longval",
+	})
+}
+
+func testMapLookups(t *testing.T, m map[string]string) {
+	for k, v := range m {
+		if m[k] != v {
+			t.Fatalf("m[%q] = %q; want %q", k, m[k], v)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go gcc-4.8.1/libgo/go/runtime/mapspeed_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/mapspeed_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -0,0 +1,208 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+package runtime_test
+
+import (
+	"fmt"
+	"strings"
+	"testing"
+)
+
+const size = 10
+
+func BenchmarkHashStringSpeed(b *testing.B) {
+	strings := make([]string, size)
+	for i := 0; i < size; i++ {
+		strings[i] = fmt.Sprintf("string#%d", i)
+	}
+	sum := 0
+	m := make(map[string]int, size)
+	for i := 0; i < size; i++ {
+		m[strings[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[strings[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkHashInt32Speed(b *testing.B) {
+	ints := make([]int32, size)
+	for i := 0; i < size; i++ {
+		ints[i] = int32(i)
+	}
+	sum := 0
+	m := make(map[int32]int, size)
+	for i := 0; i < size; i++ {
+		m[ints[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[ints[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkHashInt64Speed(b *testing.B) {
+	ints := make([]int64, size)
+	for i := 0; i < size; i++ {
+		ints[i] = int64(i)
+	}
+	sum := 0
+	m := make(map[int64]int, size)
+	for i := 0; i < size; i++ {
+		m[ints[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[ints[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+func BenchmarkHashStringArraySpeed(b *testing.B) {
+	stringpairs := make([][2]string, size)
+	for i := 0; i < size; i++ {
+		for j := 0; j < 2; j++ {
+			stringpairs[i][j] = fmt.Sprintf("string#%d/%d", i, j)
+		}
+	}
+	sum := 0
+	m := make(map[[2]string]int, size)
+	for i := 0; i < size; i++ {
+		m[stringpairs[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[stringpairs[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkMegMap(b *testing.B) {
+	m := make(map[string]bool)
+	for suffix := 'A'; suffix <= 'G'; suffix++ {
+		m[strings.Repeat("X", 1<<20-1)+fmt.Sprint(suffix)] = true
+	}
+	key := strings.Repeat("X", 1<<20-1) + "k"
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMegOneMap(b *testing.B) {
+	m := make(map[string]bool)
+	m[strings.Repeat("X", 1<<20)] = true
+	key := strings.Repeat("Y", 1<<20)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMegEqMap(b *testing.B) {
+	m := make(map[string]bool)
+	key1 := strings.Repeat("X", 1<<20)
+	key2 := strings.Repeat("X", 1<<20) // equal but different instance
+	m[key1] = true
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key2]
+	}
+}
+
+func BenchmarkMegEmptyMap(b *testing.B) {
+	m := make(map[string]bool)
+	key := strings.Repeat("X", 1<<20)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkSmallStrMap(b *testing.B) {
+	m := make(map[string]bool)
+	for suffix := 'A'; suffix <= 'G'; suffix++ {
+		m[fmt.Sprint(suffix)] = true
+	}
+	key := "k"
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMapStringKeysEight_16(b *testing.B) { benchmarkMapStringKeysEight(b, 16) }
+func BenchmarkMapStringKeysEight_32(b *testing.B) { benchmarkMapStringKeysEight(b, 32) }
+func BenchmarkMapStringKeysEight_64(b *testing.B) { benchmarkMapStringKeysEight(b, 64) }
+func BenchmarkMapStringKeysEight_1M(b *testing.B) { benchmarkMapStringKeysEight(b, 1<<20) }
+
+func benchmarkMapStringKeysEight(b *testing.B, keySize int) {
+	m := make(map[string]bool)
+	for i := 0; i < 8; i++ {
+		m[strings.Repeat("K", i+1)] = true
+	}
+	key := strings.Repeat("K", keySize)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_ = m[key]
+	}
+}
+
+func BenchmarkIntMap(b *testing.B) {
+	m := make(map[int]bool)
+	for i := 0; i < 8; i++ {
+		m[i] = true
+	}
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[7]
+	}
+}
+
+// Accessing the same keys in a row.
+func benchmarkRepeatedLookup(b *testing.B, lookupKeySize int) {
+	m := make(map[string]bool)
+	// At least bigger than a single bucket:
+	for i := 0; i < 64; i++ {
+		m[fmt.Sprintf("some key %d", i)] = true
+	}
+	base := strings.Repeat("x", lookupKeySize-1)
+	key1 := base + "1"
+	key2 := base + "2"
+	b.ResetTimer()
+	for i := 0; i < b.N/4; i++ {
+		_ = m[key1]
+		_ = m[key1]
+		_ = m[key2]
+		_ = m[key2]
+	}
+}
+
+func BenchmarkRepeatedLookupStrMapKey32(b *testing.B) { benchmarkRepeatedLookup(b, 32) }
+func BenchmarkRepeatedLookupStrMapKey1M(b *testing.B) { benchmarkRepeatedLookup(b, 1<<20) }
+
+func BenchmarkNewEmptyMap(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		_ = make(map[int]int)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go gcc-4.8.1/libgo/go/runtime/parfor_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/parfor_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -13,6 +13,8 @@
 	"unsafe"
 )
 
+var gdata []uint64
+
 // Simple serial sanity test for parallelfor.
 func TestParFor(t *testing.T) {
 	const P = 1
@@ -22,7 +24,12 @@
 		data[i] = i
 	}
 	desc := NewParFor(P)
+	// Avoid making func a closure: parfor cannot invoke them.
+	// Since it doesn't happen in the C code, it's not worth doing
+	// just for the test.
+	gdata = data
 	ParForSetup(desc, P, N, nil, true, func(desc *ParFor, i uint32) {
+		data := gdata
 		data[i] = data[i]*data[i] + 1
 	})
 	ParForDo(desc)
@@ -111,7 +118,9 @@
 	P := GOMAXPROCS(-1)
 	c := make(chan bool, P)
 	desc := NewParFor(uint32(P))
+	gdata = data
 	ParForSetup(desc, uint32(P), uint32(N), nil, false, func(desc *ParFor, i uint32) {
+		data := gdata
 		data[i] = data[i]*data[i] + 1
 	})
 	for p := 1; p < P; p++ {
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go gcc-4.8.1/libgo/go/runtime/pprof/pprof.go
--- gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/pprof/pprof.go	2013-10-01 16:06:44.208554279 +0000
@@ -318,21 +318,33 @@
 // for a single stack trace.
 func printStackRecord(w io.Writer, stk []uintptr, allFrames bool) {
 	show := allFrames
-	for _, pc := range stk {
+	wasPanic := false
+	for i, pc := range stk {
 		f := runtime.FuncForPC(pc)
 		if f == nil {
 			show = true
 			fmt.Fprintf(w, "#\t%#x\n", pc)
+			wasPanic = false
 		} else {
-			file, line := f.FileLine(pc)
+			tracepc := pc
+			// Back up to call instruction.
+			if i > 0 && pc > f.Entry() && !wasPanic {
+				if runtime.GOARCH == "386" || runtime.GOARCH == "amd64" {
+					tracepc--
+				} else {
+					tracepc -= 4 // arm, etc
+				}
+			}
+			file, line := f.FileLine(tracepc)
 			name := f.Name()
 			// Hide runtime.goexit and any runtime functions at the beginning.
 			// This is useful mainly for allocation traces.
+			wasPanic = name == "runtime.panic"
 			if name == "runtime.goexit" || !show && strings.HasPrefix(name, "runtime.") {
 				continue
 			}
 			show = true
-			fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", pc, f.Name(), pc-f.Entry(), file, line)
+			fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", pc, name, pc-f.Entry(), file, line)
 		}
 	}
 	if !show {
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/proc_test.go gcc-4.8.1/libgo/go/runtime/proc_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/proc_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/proc_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -5,9 +5,11 @@
 package runtime_test
 
 import (
+	"math"
 	"runtime"
 	"sync/atomic"
 	"testing"
+	"time"
 )
 
 var stop = make(chan bool, 1)
@@ -45,6 +47,66 @@
 	runtime.GOMAXPROCS(maxprocs)
 }
 
+func TestYieldProgress(t *testing.T) {
+	testYieldProgress(t, false)
+}
+
+func TestYieldLockedProgress(t *testing.T) {
+	testYieldProgress(t, true)
+}
+
+func testYieldProgress(t *testing.T, locked bool) {
+	c := make(chan bool)
+	cack := make(chan bool)
+	go func() {
+		if locked {
+			runtime.LockOSThread()
+		}
+		for {
+			select {
+			case <-c:
+				cack <- true
+				return
+			default:
+				runtime.Gosched()
+			}
+		}
+	}()
+	time.Sleep(10 * time.Millisecond)
+	c <- true
+	<-cack
+}
+
+func TestYieldLocked(t *testing.T) {
+	const N = 10
+	c := make(chan bool)
+	go func() {
+		runtime.LockOSThread()
+		for i := 0; i < N; i++ {
+			runtime.Gosched()
+			time.Sleep(time.Millisecond)
+		}
+		c <- true
+		// runtime.UnlockOSThread() is deliberately omitted
+	}()
+	<-c
+}
+
+func TestBlockLocked(t *testing.T) {
+	const N = 10
+	c := make(chan bool)
+	go func() {
+		runtime.LockOSThread()
+		for i := 0; i < N; i++ {
+			c <- true
+		}
+		runtime.UnlockOSThread()
+	}()
+	for i := 0; i < N; i++ {
+		<-c
+	}
+}
+
 func stackGrowthRecursive(i int) {
 	var pad [128]uint64
 	if i != 0 && pad[0] == 0 {
@@ -52,6 +114,14 @@
 	}
 }
 
+func TestSchedLocalQueue(t *testing.T) {
+	runtime.TestSchedLocalQueue1()
+}
+
+func TestSchedLocalQueueSteal(t *testing.T) {
+	runtime.TestSchedLocalQueueSteal1()
+}
+
 func benchmarkStackGrowth(b *testing.B, rec int) {
 	const CallsPerSched = 1000
 	procs := runtime.GOMAXPROCS(-1)
@@ -82,31 +152,24 @@
 }
 
 func BenchmarkSyscall(b *testing.B) {
-	const CallsPerSched = 1000
-	procs := runtime.GOMAXPROCS(-1)
-	N := int32(b.N / CallsPerSched)
-	c := make(chan bool, procs)
-	for p := 0; p < procs; p++ {
-		go func() {
-			for atomic.AddInt32(&N, -1) >= 0 {
-				runtime.Gosched()
-				for g := 0; g < CallsPerSched; g++ {
-					runtime.Entersyscall()
-					runtime.Exitsyscall()
-				}
-			}
-			c <- true
-		}()
-	}
-	for p := 0; p < procs; p++ {
-		<-c
-	}
+	benchmarkSyscall(b, 0, 1)
 }
 
 func BenchmarkSyscallWork(b *testing.B) {
+	benchmarkSyscall(b, 100, 1)
+}
+
+func BenchmarkSyscallExcess(b *testing.B) {
+	benchmarkSyscall(b, 0, 4)
+}
+
+func BenchmarkSyscallExcessWork(b *testing.B) {
+	benchmarkSyscall(b, 100, 4)
+}
+
+func benchmarkSyscall(b *testing.B, work, excess int) {
 	const CallsPerSched = 1000
-	const LocalWork = 100
-	procs := runtime.GOMAXPROCS(-1)
+	procs := runtime.GOMAXPROCS(-1) * excess
 	N := int32(b.N / CallsPerSched)
 	c := make(chan bool, procs)
 	for p := 0; p < procs; p++ {
@@ -116,7 +179,7 @@
 				runtime.Gosched()
 				for g := 0; g < CallsPerSched; g++ {
 					runtime.Entersyscall()
-					for i := 0; i < LocalWork; i++ {
+					for i := 0; i < work; i++ {
 						foo *= 2
 						foo /= 2
 					}
@@ -156,3 +219,67 @@
 		<-c
 	}
 }
+
+type Matrix [][]float64
+
+func BenchmarkMatmult(b *testing.B) {
+	b.StopTimer()
+	// matmult is O(N**3) but testing expects O(b.N),
+	// so we need to take cube root of b.N
+	n := int(math.Cbrt(float64(b.N))) + 1
+	A := makeMatrix(n)
+	B := makeMatrix(n)
+	C := makeMatrix(n)
+	b.StartTimer()
+	matmult(nil, A, B, C, 0, n, 0, n, 0, n, 8)
+}
+
+func makeMatrix(n int) Matrix {
+	m := make(Matrix, n)
+	for i := 0; i < n; i++ {
+		m[i] = make([]float64, n)
+		for j := 0; j < n; j++ {
+			m[i][j] = float64(i*n + j)
+		}
+	}
+	return m
+}
+
+func matmult(done chan<- struct{}, A, B, C Matrix, i0, i1, j0, j1, k0, k1, threshold int) {
+	di := i1 - i0
+	dj := j1 - j0
+	dk := k1 - k0
+	if di >= dj && di >= dk && di >= threshold {
+		// divide in two by y axis
+		mi := i0 + di/2
+		done1 := make(chan struct{}, 1)
+		go matmult(done1, A, B, C, i0, mi, j0, j1, k0, k1, threshold)
+		matmult(nil, A, B, C, mi, i1, j0, j1, k0, k1, threshold)
+		<-done1
+	} else if dj >= dk && dj >= threshold {
+		// divide in two by x axis
+		mj := j0 + dj/2
+		done1 := make(chan struct{}, 1)
+		go matmult(done1, A, B, C, i0, i1, j0, mj, k0, k1, threshold)
+		matmult(nil, A, B, C, i0, i1, mj, j1, k0, k1, threshold)
+		<-done1
+	} else if dk >= threshold {
+		// divide in two by "k" axis
+		// deliberately not parallel because of data races
+		mk := k0 + dk/2
+		matmult(nil, A, B, C, i0, i1, j0, j1, k0, mk, threshold)
+		matmult(nil, A, B, C, i0, i1, j0, j1, mk, k1, threshold)
+	} else {
+		// the matrices are small enough, compute directly
+		for i := i0; i < i1; i++ {
+			for j := j0; j < j1; j++ {
+				for k := k0; k < k1; k++ {
+					C[i][j] += A[i][k] * B[k][j]
+				}
+			}
+		}
+	}
+	if done != nil {
+		done <- struct{}{}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/string_test.go gcc-4.8.1/libgo/go/runtime/string_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/string_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/runtime/string_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -1,3 +1,7 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
 package runtime_test
 
 import (
@@ -43,3 +47,31 @@
 		}
 	}
 }
+
+func BenchmarkCompareStringBigUnaligned(b *testing.B) {
+	bytes := make([]byte, 0, 1<<20)
+	for len(bytes) < 1<<20 {
+		bytes = append(bytes, "Hello Gophers!"...)
+	}
+	s1, s2 := string(bytes), "hello"+string(bytes)
+	for i := 0; i < b.N; i++ {
+		if s1 != s2[len("hello"):] {
+			b.Fatal("s1 != s2")
+		}
+	}
+	b.SetBytes(int64(len(s1)))
+}
+
+func BenchmarkCompareStringBig(b *testing.B) {
+	bytes := make([]byte, 0, 1<<20)
+	for len(bytes) < 1<<20 {
+		bytes = append(bytes, "Hello Gophers!"...)
+	}
+	s1, s2 := string(bytes), string(bytes)
+	for i := 0; i < b.N; i++ {
+		if s1 != s2 {
+			b.Fatal("s1 != s2")
+		}
+	}
+	b.SetBytes(int64(len(s1)))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go gcc-4.8.1/libgo/go/sort/example_keys_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/example_keys_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -0,0 +1,96 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sort_test
+
+import (
+	"fmt"
+	"sort"
+)
+
+// A couple of type definitions to make the units clear.
+type earthMass float64
+type au float64
+
+// A Planet defines the properties of a solar system object.
+type Planet struct {
+	name     string
+	mass     earthMass
+	distance au
+}
+
+// By is the type of a "less" function that defines the ordering of its Planet arguments.
+type By func(p1, p2 *Planet) bool
+
+// Sort is a method on the function type, By, that sorts the argument slice according to the function.
+func (by By) Sort(planets []Planet) {
+	ps := &planetSorter{
+		planets: planets,
+		by:      by, // The Sort method's receiver is the function (closure) that defines the sort order.
+	}
+	sort.Sort(ps)
+}
+
+// planetSorter joins a By function and a slice of Planets to be sorted.
+type planetSorter struct {
+	planets []Planet
+	by      func(p1, p2 *Planet) bool // Closure used in the Less method.
+}
+
+// Len is part of sort.Interface.
+func (s *planetSorter) Len() int {
+	return len(s.planets)
+}
+
+// Swap is part of sort.Interface.
+func (s *planetSorter) Swap(i, j int) {
+	s.planets[i], s.planets[j] = s.planets[j], s.planets[i]
+}
+
+// Less is part of sort.Interface. It is implemented by calling the "by" closure in the sorter.
+func (s *planetSorter) Less(i, j int) bool {
+	return s.by(&s.planets[i], &s.planets[j])
+}
+
+var planets = []Planet{
+	{"Mercury", 0.055, 0.4},
+	{"Venus", 0.815, 0.7},
+	{"Earth", 1.0, 1.0},
+	{"Mars", 0.107, 1.5},
+}
+
+// ExampleSortKeys demonstrates a technique for sorting a struct type using programmable sort criteria.
+func Example_sortKeys() {
+	// Closures that order the Planet structure.
+	name := func(p1, p2 *Planet) bool {
+		return p1.name < p2.name
+	}
+	mass := func(p1, p2 *Planet) bool {
+		return p1.mass < p2.mass
+	}
+	distance := func(p1, p2 *Planet) bool {
+		return p1.distance < p2.distance
+	}
+	decreasingDistance := func(p1, p2 *Planet) bool {
+		return !distance(p1, p2)
+	}
+
+	// Sort the planets by the various criteria.
+	By(name).Sort(planets)
+	fmt.Println("By name:", planets)
+
+	By(mass).Sort(planets)
+	fmt.Println("By mass:", planets)
+
+	By(distance).Sort(planets)
+	fmt.Println("By distance:", planets)
+
+	By(decreasingDistance).Sort(planets)
+	fmt.Println("By decreasing distance:", planets)
+
+	// Output: By name: [{Earth 1 1} {Mars 0.107 1.5} {Mercury 0.055 0.4} {Venus 0.815 0.7}]
+	// By mass: [{Mercury 0.055 0.4} {Mars 0.107 1.5} {Venus 0.815 0.7} {Earth 1 1}]
+	// By distance: [{Mercury 0.055 0.4} {Venus 0.815 0.7} {Earth 1 1} {Mars 0.107 1.5}]
+	// By decreasing distance: [{Mars 0.107 1.5} {Earth 1 1} {Venus 0.815 0.7} {Mercury 0.055 0.4}]
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go gcc-4.8.1/libgo/go/sort/example_multi_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/example_multi_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -0,0 +1,132 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sort_test
+
+import (
+	"fmt"
+	"sort"
+)
+
+// A Change is a record of source code changes, recording user, language, and delta size.
+type Change struct {
+	user     string
+	language string
+	lines    int
+}
+
+type lessFunc func(p1, p2 *Change) bool
+
+// multiSorter implements the Sort interface, sorting the changes within.
+type multiSorter struct {
+	changes []Change
+	less    []lessFunc
+}
+
+// Sort sorts the argument slice according to the less functions passed to OrderedBy.
+func (ms *multiSorter) Sort(changes []Change) {
+	sort.Sort(ms)
+}
+
+// OrderedBy returns a Sorter that sorts using the less functions, in order.
+// Call its Sort method to sort the data.
+func OrderedBy(less ...lessFunc) *multiSorter {
+	return &multiSorter{
+		changes: changes,
+		less:    less,
+	}
+}
+
+// Len is part of sort.Interface.
+func (ms *multiSorter) Len() int {
+	return len(ms.changes)
+}
+
+// Swap is part of sort.Interface.
+func (ms *multiSorter) Swap(i, j int) {
+	ms.changes[i], ms.changes[j] = ms.changes[j], ms.changes[i]
+}
+
+// Less is part of sort.Interface. It is implemented by looping along the
+// less functions until it finds a comparison that is either Less or
+// !Less. Note that it can call the less functions twice per call. We
+// could change the functions to return -1, 0, 1 and reduce the
+// number of calls for greater efficiency: an exercise for the reader.
+func (ms *multiSorter) Less(i, j int) bool {
+	p, q := &ms.changes[i], &ms.changes[j]
+	// Try all but the last comparison.
+	var k int
+	for k = 0; k < len(ms.less)-1; k++ {
+		less := ms.less[k]
+		switch {
+		case less(p, q):
+			// p < q, so we have a decision.
+			return true
+		case less(q, p):
+			// p > q, so we have a decision.
+			return false
+		}
+		// p == q; try the next comparison.
+	}
+	// All comparisons to here said "equal", so just return whatever
+	// the final comparison reports.
+	return ms.less[k](p, q)
+}
+
+var changes = []Change{
+	{"gri", "Go", 100},
+	{"ken", "C", 150},
+	{"glenda", "Go", 200},
+	{"rsc", "Go", 200},
+	{"r", "Go", 100},
+	{"ken", "Go", 200},
+	{"dmr", "C", 100},
+	{"r", "C", 150},
+	{"gri", "Smalltalk", 80},
+}
+
+// ExampleMultiKeys demonstrates a technique for sorting a struct type using different
+// sets of multiple fields in the comparison. We chain together "Less" functions, each of
+// which compares a single field.
+func Example_sortMultiKeys() {
+	// Closures that order the Change structure.
+	user := func(c1, c2 *Change) bool {
+		return c1.user < c2.user
+	}
+	language := func(c1, c2 *Change) bool {
+		return c1.language < c2.language
+	}
+	increasingLines := func(c1, c2 *Change) bool {
+		return c1.lines < c2.lines
+	}
+	decreasingLines := func(c1, c2 *Change) bool {
+		return c1.lines > c2.lines // Note: > orders downwards.
+	}
+
+	// Simple use: Sort by user.
+	OrderedBy(user).Sort(changes)
+	fmt.Println("By user:", changes)
+
+	// multiSorter implements the Sort interface, so we can also do this.
+	sort.Sort(OrderedBy(user, increasingLines))
+	fmt.Println("By user,<lines:", changes)
+
+	// More examples.
+	OrderedBy(user, decreasingLines).Sort(changes)
+	fmt.Println("By user,>lines:", changes)
+
+	OrderedBy(language, increasingLines).Sort(changes)
+	fmt.Println("By language,<lines:", changes)
+
+	OrderedBy(language, increasingLines, user).Sort(changes)
+	fmt.Println("By language,<lines,user:", changes)
+
+	// Output:
+	//By user: [{dmr C 100} {glenda Go 200} {gri Smalltalk 80} {gri Go 100} {ken Go 200} {ken C 150} {r Go 100} {r C 150} {rsc Go 200}]
+	//By user,<lines: [{dmr C 100} {glenda Go 200} {gri Smalltalk 80} {gri Go 100} {ken C 150} {ken Go 200} {r Go 100} {r C 150} {rsc Go 200}]
+	//By user,>lines: [{dmr C 100} {glenda Go 200} {gri Go 100} {gri Smalltalk 80} {ken Go 200} {ken C 150} {r C 150} {r Go 100} {rsc Go 200}]
+	//By language,<lines: [{dmr C 100} {ken C 150} {r C 150} {gri Go 100} {r Go 100} {ken Go 200} {glenda Go 200} {rsc Go 200} {gri Smalltalk 80}]
+	//By language,<lines,user: [{dmr C 100} {ken C 150} {r C 150} {gri Go 100} {r Go 100} {glenda Go 200} {ken Go 200} {rsc Go 200} {gri Smalltalk 80}]
+
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_reverse_test.go gcc-4.8.1/libgo/go/sort/example_reverse_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_reverse_test.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/example_reverse_test.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,30 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sort_test
-
-import (
-	"fmt"
-	"sort"
-)
-
-// Reverse embeds a sort.Interface value and implements a reverse sort over
-// that value.
-type Reverse struct {
-	// This embedded Interface permits Reverse to use the methods of
-	// another Interface implementation.
-	sort.Interface
-}
-
-// Less returns the opposite of the embedded implementation's Less method.
-func (r Reverse) Less(i, j int) bool {
-	return r.Interface.Less(j, i)
-}
-
-func ExampleInterface_reverse() {
-	s := []int{5, 2, 6, 3, 1, 4} // unsorted
-	sort.Sort(Reverse{sort.IntSlice(s)})
-	fmt.Println(s)
-	// Output: [6 5 4 3 2 1]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_test.go gcc-4.8.1/libgo/go/sort/example_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_test.go	2012-03-02 20:01:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/example_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -15,3 +15,10 @@
 	fmt.Println(s)
 	// Output: [1 2 3 4 5 6]
 }
+
+func ExampleReverse() {
+	s := []int{5, 2, 6, 3, 1, 4} // unsorted
+	sort.Sort(sort.Reverse(sort.IntSlice(s)))
+	fmt.Println(s)
+	// Output: [6 5 4 3 2 1]
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/search_test.go gcc-4.8.1/libgo/go/sort/search_test.go
--- gcc-4.8.1.orig/libgo/go/sort/search_test.go	2011-09-16 15:47:21.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/search_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -5,6 +5,7 @@
 package sort_test
 
 import (
+	"runtime"
 	. "sort"
 	"testing"
 )
@@ -117,6 +118,32 @@
 	}
 }
 
+func runSearchWrappers() {
+	SearchInts(data, 11)
+	SearchFloat64s(fdata, 2.1)
+	SearchStrings(sdata, "")
+	IntSlice(data).Search(0)
+	Float64Slice(fdata).Search(2.0)
+	StringSlice(sdata).Search("x")
+}
+
+func TestSearchWrappersDontAlloc(t *testing.T) {
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	t.Skip("skipping alloc test for gccgo")
+	allocs := testing.AllocsPerRun(100, runSearchWrappers)
+	if allocs != 0 {
+		t.Errorf("expected no allocs for runSearchWrappers, got %v", allocs)
+	}
+}
+
+func BenchmarkSearchWrappers(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		runSearchWrappers()
+	}
+}
+
 // Abstract exhaustive test: all sizes up to 100,
 // all possible return values.  If there are any small
 // corner cases, this test exercises them.
diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort.go gcc-4.8.1/libgo/go/sort/sort.go
--- gcc-4.8.1.orig/libgo/go/sort/sort.go	2012-03-30 22:09:55.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/sort.go	2013-10-01 16:06:44.208554279 +0000
@@ -6,8 +6,6 @@
 // collections.
 package sort
 
-import "math"
-
 // A type, typically a collection, that satisfies sort.Interface can be
 // sorted by the routines in this package.  The methods require that the
 // elements of the collection be enumerated by an integer index.
@@ -124,26 +122,31 @@
 	// into the middle of the slice.
 	pivot := lo
 	a, b, c, d := lo+1, lo+1, hi, hi
-	for b < c {
-		if data.Less(b, pivot) { // data[b] < pivot
-			b++
-			continue
-		}
-		if !data.Less(pivot, b) { // data[b] = pivot
-			data.Swap(a, b)
-			a++
-			b++
-			continue
-		}
-		if data.Less(pivot, c-1) { // data[c-1] > pivot
-			c--
-			continue
-		}
-		if !data.Less(c-1, pivot) { // data[c-1] = pivot
-			data.Swap(c-1, d-1)
-			c--
-			d--
-			continue
+	for {
+		for b < c {
+			if data.Less(b, pivot) { // data[b] < pivot
+				b++
+			} else if !data.Less(pivot, b) { // data[b] = pivot
+				data.Swap(a, b)
+				a++
+				b++
+			} else {
+				break
+			}
+		}
+		for b < c {
+			if data.Less(pivot, c-1) { // data[c-1] > pivot
+				c--
+			} else if !data.Less(c-1, pivot) { // data[c-1] = pivot
+				data.Swap(c-1, d-1)
+				c--
+				d--
+			} else {
+				break
+			}
+		}
+		if b >= c {
+			break
 		}
 		// data[b] > pivot; data[c-1] < pivot
 		data.Swap(b, c-1)
@@ -197,6 +200,22 @@
 	quickSort(data, 0, n, maxDepth)
 }
 
+type reverse struct {
+	// This embedded Interface permits Reverse to use the methods of
+	// another Interface implementation.
+	Interface
+}
+
+// Less returns the opposite of the embedded implementation's Less method.
+func (r reverse) Less(i, j int) bool {
+	return r.Interface.Less(j, i)
+}
+
+// Reverse returns the reverse order for data.
+func Reverse(data Interface) Interface {
+	return &reverse{data}
+}
+
 // IsSorted reports whether data is sorted.
 func IsSorted(data Interface) bool {
 	n := data.Len()
@@ -224,9 +243,14 @@
 type Float64Slice []float64
 
 func (p Float64Slice) Len() int           { return len(p) }
-func (p Float64Slice) Less(i, j int) bool { return p[i] < p[j] || math.IsNaN(p[i]) && !math.IsNaN(p[j]) }
+func (p Float64Slice) Less(i, j int) bool { return p[i] < p[j] || isNaN(p[i]) && !isNaN(p[j]) }
 func (p Float64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
 
+// isNaN is a copy of math.IsNaN to avoid a dependency on the math package.
+func isNaN(f float64) bool {
+	return f != f
+}
+
 // Sort is a convenience method.
 func (p Float64Slice) Sort() { Sort(p) }
 
diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort_test.go gcc-4.8.1/libgo/go/sort/sort_test.go
--- gcc-4.8.1.orig/libgo/go/sort/sort_test.go	2011-12-07 01:11:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/sort/sort_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -92,6 +92,23 @@
 	}
 }
 
+func TestReverseSortIntSlice(t *testing.T) {
+	data := ints
+	data1 := ints
+	a := IntSlice(data[0:])
+	Sort(a)
+	r := IntSlice(data1[0:])
+	Sort(Reverse(r))
+	for i := 0; i < len(data); i++ {
+		if a[i] != r[len(data)-1-i] {
+			t.Errorf("reverse sort didn't sort")
+		}
+		if i > len(data)/2 {
+			break
+		}
+	}
+}
+
 func BenchmarkSortString1K(b *testing.B) {
 	b.StopTimer()
 	for i := 0; i < b.N; i++ {
@@ -151,15 +168,18 @@
 )
 
 type testingData struct {
-	desc    string
-	t       *testing.T
-	data    []int
-	maxswap int // number of swaps allowed
-	nswap   int
+	desc        string
+	t           *testing.T
+	data        []int
+	maxswap     int // number of swaps allowed
+	ncmp, nswap int
 }
 
-func (d *testingData) Len() int           { return len(d.data) }
-func (d *testingData) Less(i, j int) bool { return d.data[i] < d.data[j] }
+func (d *testingData) Len() int { return len(d.data) }
+func (d *testingData) Less(i, j int) bool {
+	d.ncmp++
+	return d.data[i] < d.data[j]
+}
 func (d *testingData) Swap(i, j int) {
 	if d.nswap >= d.maxswap {
 		d.t.Errorf("%s: used %d swaps sorting slice of %d", d.desc, d.nswap, len(d.data))
@@ -192,8 +212,7 @@
 	dists := []string{"sawtooth", "rand", "stagger", "plateau", "shuffle"}
 	modes := []string{"copy", "reverse", "reverse1", "reverse2", "sort", "dither"}
 	var tmp1, tmp2 [1025]int
-	for ni := 0; ni < len(sizes); ni++ {
-		n := sizes[ni]
+	for _, n := range sizes {
 		for m := 1; m < 2*n; m *= 2 {
 			for dist := 0; dist < _NDist; dist++ {
 				j := 0
@@ -259,8 +278,10 @@
 					}
 
 					desc := fmt.Sprintf("n=%d m=%d dist=%s mode=%s", n, m, dists[dist], modes[mode])
-					d := &testingData{desc, t, mdata[0:n], n * lg(n) * 12 / 10, 0}
+					d := &testingData{desc: desc, t: t, data: mdata[0:n], maxswap: n * lg(n) * 12 / 10}
 					sort(d)
+					// Uncomment if you are trying to improve the number of compares/swaps.
+					//t.Logf("%s: ncmp=%d, nswp=%d", desc, d.ncmp, d.nswap)
 
 					// If we were testing C qsort, we'd have to make a copy
 					// of the slice and sort it ourselves and then compare
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atof_test.go gcc-4.8.1/libgo/go/strconv/atof_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/atof_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/atof_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -110,6 +110,7 @@
 	{"1e", "0", ErrSyntax},
 	{"1e-", "0", ErrSyntax},
 	{".e-1", "0", ErrSyntax},
+	{"1\x00.2", "0", ErrSyntax},
 
 	// http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
 	{"2.2250738585072012e-308", "2.2250738585072014e-308", nil},
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi.go gcc-4.8.1/libgo/go/strconv/atoi.go
--- gcc-4.8.1.orig/libgo/go/strconv/atoi.go	2012-10-03 05:27:36.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/atoi.go	2013-10-01 16:06:44.208554279 +0000
@@ -20,7 +20,7 @@
 }
 
 func (e *NumError) Error() string {
-	return "strconv." + e.Func + ": " + `parsing "` + e.Num + `": ` + e.Err.Error()
+	return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + e.Err.Error()
 }
 
 func syntaxError(fn, str string) *NumError {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go gcc-4.8.1/libgo/go/strconv/atoi_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go	2012-01-12 01:31:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/atoi_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -5,6 +5,7 @@
 package strconv_test
 
 import (
+	"errors"
 	"reflect"
 	. "strconv"
 	"testing"
@@ -146,6 +147,16 @@
 	{"-2147483649", -1 << 31, ErrRange},
 }
 
+type numErrorTest struct {
+	num, want string
+}
+
+var numErrorTests = []numErrorTest{
+	{"0", `strconv.ParseFloat: parsing "0": failed`},
+	{"`", "strconv.ParseFloat: parsing \"`\": failed"},
+	{"1\x00.2", `strconv.ParseFloat: parsing "1\x00.2": failed`},
+}
+
 func init() {
 	// The atoi routines return NumErrors wrapping
 	// the error and the string.  Convert the tables above.
@@ -276,6 +287,19 @@
 		}
 	}
 }
+
+func TestNumError(t *testing.T) {
+	for _, test := range numErrorTests {
+		err := &NumError{
+			Func: "ParseFloat",
+			Num:  test.num,
+			Err:  errors.New("failed"),
+		}
+		if got := err.Error(); got != test.want {
+			t.Errorf(`(&NumError{"ParseFloat", %q, "failed"}).Error() = %v, want %v`, test.num, got, test.want)
+		}
+	}
+}
 
 func BenchmarkAtoi(b *testing.B) {
 	for i := 0; i < b.N; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/extfloat.go gcc-4.8.1/libgo/go/strconv/extfloat.go
--- gcc-4.8.1.orig/libgo/go/strconv/extfloat.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/extfloat.go	2013-10-01 16:06:44.208554279 +0000
@@ -636,7 +636,6 @@
 				1<<shift, multiplier*2)
 		}
 	}
-	return false
 }
 
 // adjustLastDigit modifies d = x-currentDiff*Îµ, to get closest to
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/fp_test.go gcc-4.8.1/libgo/go/strconv/fp_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/fp_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/fp_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -7,7 +7,6 @@
 import (
 	"bufio"
 	"fmt"
-	"io"
 	"os"
 	"strconv"
 	"strings"
@@ -102,19 +101,10 @@
 	}
 	defer f.Close()
 
-	b := bufio.NewReader(f)
+	s := bufio.NewScanner(f)
 
-	lineno := 0
-	for {
-		line, err2 := b.ReadString('\n')
-		if err2 == io.EOF {
-			break
-		}
-		if err2 != nil {
-			t.Fatal("testfp: read testdata/testfp.txt: " + err2.Error())
-		}
-		line = line[0 : len(line)-1]
-		lineno++
+	for lineno := 1; s.Scan(); lineno++ {
+		line := s.Text()
 		if len(line) == 0 || line[0] == '#' {
 			continue
 		}
@@ -148,4 +138,7 @@
 				"want ", a[3], " got ", s)
 		}
 	}
+	if s.Err() != nil {
+		t.Fatal("testfp: read testdata/testfp.txt: ", s.Err())
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/quote.go gcc-4.8.1/libgo/go/strconv/quote.go
--- gcc-4.8.1.orig/libgo/go/strconv/quote.go	2012-03-30 21:27:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/quote.go	2013-10-01 16:06:44.208554279 +0000
@@ -139,8 +139,9 @@
 	return append(dst, QuoteRuneToASCII(r)...)
 }
 
-// CanBackquote returns whether the string s would be
-// a valid Go string literal if enclosed in backquotes.
+// CanBackquote reports whether the string s can be represented
+// unchanged as a single-line backquoted string without control
+// characters other than space and tab.
 func CanBackquote(s string) bool {
 	for i := 0; i < len(s); i++ {
 		if (s[i] < ' ' && s[i] != '\t') || s[i] == '`' {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go gcc-4.8.1/libgo/go/strconv/strconv_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/strconv/strconv_test.go	2013-10-01 16:06:44.208554279 +0000
@@ -24,14 +24,12 @@
 		desc  string
 		fn    func()
 	}{
-		// TODO(bradfitz): this might be 0, once escape analysis is better
-		{1, `AppendInt(localBuf[:0], 123, 10)`, func() {
+		{0, `AppendInt(localBuf[:0], 123, 10)`, func() {
 			var localBuf [64]byte
 			AppendInt(localBuf[:0], 123, 10)
 		}},
 		{0, `AppendInt(globalBuf[:0], 123, 10)`, func() { AppendInt(globalBuf[:0], 123, 10) }},
-		// TODO(bradfitz): this might be 0, once escape analysis is better
-		{1, `AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)`, func() {
+		{0, `AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)`, func() {
 			var localBuf [64]byte
 			AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)
 		}},
@@ -48,19 +46,13 @@
 )
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		allocs := testing.AllocsPerRun(100, mt.fn)
+		if max := float64(mt.count); allocs > max {
+			t.Errorf("%s: %v allocs, want <=%v", mt.desc, allocs, max)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/strings/example_test.go gcc-4.8.1/libgo/go/strings/example_test.go
--- gcc-4.8.1.orig/libgo/go/strings/example_test.go	2012-06-25 16:20:03.000000000 +0000
+++ gcc-4.8.1/libgo/go/strings/example_test.go	2013-10-01 16:06:44.212554279 +0000
@@ -179,3 +179,19 @@
 	fmt.Println(strings.ToLower("Gopher"))
 	// Output: gopher
 }
+
+func ExampleTrimSuffix() {
+	var s = "Hello, goodbye, etc!"
+	s = strings.TrimSuffix(s, "goodbye, etc!")
+	s = strings.TrimSuffix(s, "planet")
+	fmt.Print(s, "world!")
+	// Output: Hello, world!
+}
+
+func ExampleTrimPrefix() {
+	var s = "Goodbye,, world!"
+	s = strings.TrimPrefix(s, "Goodbye,")
+	s = strings.TrimPrefix(s, "Howdy,")
+	fmt.Print("Hello" + s)
+	// Output: Hello, world!
+}
diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings.go gcc-4.8.1/libgo/go/strings/strings.go
--- gcc-4.8.1.orig/libgo/go/strings/strings.go	2012-01-12 01:31:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/strings/strings.go	2013-10-01 16:06:44.212554279 +0000
@@ -26,7 +26,11 @@
 	i, cur := 0, 0
 	for ; i+1 < n; i++ {
 		ch, size = utf8.DecodeRuneInString(s[cur:])
-		a[i] = string(ch)
+		if ch == utf8.RuneError {
+			a[i] = string(utf8.RuneError)
+		} else {
+			a[i] = s[cur : cur+size]
+		}
 		cur += size
 	}
 	// add the rest, if there is any
@@ -36,27 +40,69 @@
 	return a
 }
 
+// primeRK is the prime base used in Rabin-Karp algorithm.
+const primeRK = 16777619
+
+// hashstr returns the hash and the appropriate multiplicative
+// factor for use in Rabin-Karp algorithm.
+func hashstr(sep string) (uint32, uint32) {
+	hash := uint32(0)
+	for i := 0; i < len(sep); i++ {
+		hash = hash*primeRK + uint32(sep[i])
+
+	}
+	var pow, sq uint32 = 1, primeRK
+	for i := len(sep); i > 0; i >>= 1 {
+		if i&1 != 0 {
+			pow *= sq
+		}
+		sq *= sq
+	}
+	return hash, pow
+}
+
 // Count counts the number of non-overlapping instances of sep in s.
 func Count(s, sep string) int {
-	if sep == "" {
-		return utf8.RuneCountInString(s) + 1
-	}
-	c := sep[0]
-	l := len(sep)
 	n := 0
-	if l == 1 {
+	// special cases
+	switch {
+	case len(sep) == 0:
+		return utf8.RuneCountInString(s) + 1
+	case len(sep) == 1:
 		// special case worth making fast
+		c := sep[0]
 		for i := 0; i < len(s); i++ {
 			if s[i] == c {
 				n++
 			}
 		}
 		return n
+	case len(sep) > len(s):
+		return 0
+	case len(sep) == len(s):
+		if sep == s {
+			return 1
+		}
+		return 0
 	}
-	for i := 0; i+l <= len(s); i++ {
-		if s[i] == c && s[i:i+l] == sep {
+	hashsep, pow := hashstr(sep)
+	h := uint32(0)
+	for i := 0; i < len(sep); i++ {
+		h = h*primeRK + uint32(s[i])
+	}
+	lastmatch := 0
+	if h == hashsep && s[:len(sep)] == sep {
+		n++
+		lastmatch = len(sep)
+	}
+	for i := len(sep); i < len(s); {
+		h *= primeRK
+		h += uint32(s[i])
+		h -= pow * uint32(s[i-len(sep)])
+		i++
+		if h == hashsep && lastmatch <= i-len(sep) && s[i-len(sep):i] == sep {
 			n++
-			i += l - 1
+			lastmatch = i
 		}
 	}
 	return n
@@ -80,11 +126,11 @@
 // Index returns the index of the first instance of sep in s, or -1 if sep is not present in s.
 func Index(s, sep string) int {
 	n := len(sep)
-	if n == 0 {
+	switch {
+	case n == 0:
 		return 0
-	}
-	c := sep[0]
-	if n == 1 {
+	case n == 1:
+		c := sep[0]
 		// special case worth making fast
 		for i := 0; i < len(s); i++ {
 			if s[i] == c {
@@ -92,11 +138,30 @@
 			}
 		}
 		return -1
+	case n == len(s):
+		if sep == s {
+			return 0
+		}
+		return -1
+	case n > len(s):
+		return -1
 	}
-	// n > 1
-	for i := 0; i+n <= len(s); i++ {
-		if s[i] == c && s[i:i+n] == sep {
-			return i
+	// Hash sep.
+	hashsep, pow := hashstr(sep)
+	var h uint32
+	for i := 0; i < n; i++ {
+		h = h*primeRK + uint32(s[i])
+	}
+	if h == hashsep && s[:n] == sep {
+		return 0
+	}
+	for i := n; i < len(s); {
+		h *= primeRK
+		h += uint32(s[i])
+		h -= pow * uint32(s[i-n])
+		i++
+		if h == hashsep && s[i-n:i] == sep {
+			return i - n
 		}
 	}
 	return -1
@@ -244,7 +309,8 @@
 }
 
 // Fields splits the string s around each instance of one or more consecutive white space
-// characters, returning an array of substrings of s or an empty list if s contains only white space.
+// characters, as defined by unicode.IsSpace, returning an array of substrings of s or an
+// empty list if s contains only white space.
 func Fields(s string) []string {
 	return FieldsFunc(s, unicode.IsSpace)
 }
@@ -426,10 +492,10 @@
 	return unicode.IsSpace(r)
 }
 
-// BUG(r): The rule Title uses for word boundaries does not handle Unicode punctuation properly.
-
 // Title returns a copy of the string s with all Unicode letters that begin words
 // mapped to their title case.
+//
+// BUG: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
 func Title(s string) string {
 	// Use a closure here to remember state.
 	// Hackish but effective. Depends on Map scanning in order and calling
@@ -558,6 +624,24 @@
 	return TrimFunc(s, unicode.IsSpace)
 }
 
+// TrimPrefix returns s without the provided leading prefix string.
+// If s doesn't start with prefix, s is returned unchanged.
+func TrimPrefix(s, prefix string) string {
+	if HasPrefix(s, prefix) {
+		return s[len(prefix):]
+	}
+	return s
+}
+
+// TrimSuffix returns s without the provided trailing suffix string.
+// If s doesn't end with suffix, s is returned unchanged.
+func TrimSuffix(s, suffix string) string {
+	if HasSuffix(s, suffix) {
+		return s[:len(s)-len(suffix)]
+	}
+	return s
+}
+
 // Replace returns a copy of the string s with the first n
 // non-overlapping instances of old replaced by new.
 // If n < 0, there is no limit on the number of replacements.
diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings_test.go gcc-4.8.1/libgo/go/strings/strings_test.go
--- gcc-4.8.1.orig/libgo/go/strings/strings_test.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/strings/strings_test.go	2013-10-01 16:06:44.212554279 +0000
@@ -496,8 +496,8 @@
 func TestTrimSpace(t *testing.T) { runStringTests(t, TrimSpace, "TrimSpace", trimSpaceTests) }
 
 var trimTests = []struct {
-	f               string
-	in, cutset, out string
+	f            string
+	in, arg, out string
 }{
 	{"Trim", "abba", "a", "bb"},
 	{"Trim", "abba", "ab", ""},
@@ -520,6 +520,10 @@
 	{"TrimRight", "", "123", ""},
 	{"TrimRight", "", "", ""},
 	{"TrimRight", "â˜º\xc0", "â˜º", "â˜º\xc0"},
+	{"TrimPrefix", "aabb", "a", "abb"},
+	{"TrimPrefix", "aabb", "b", "aabb"},
+	{"TrimSuffix", "aabb", "a", "aabb"},
+	{"TrimSuffix", "aabb", "b", "aab"},
 }
 
 func TestTrim(t *testing.T) {
@@ -533,12 +537,16 @@
 			f = TrimLeft
 		case "TrimRight":
 			f = TrimRight
+		case "TrimPrefix":
+			f = TrimPrefix
+		case "TrimSuffix":
+			f = TrimSuffix
 		default:
 			t.Errorf("Undefined trim function %s", name)
 		}
-		actual := f(tc.in, tc.cutset)
+		actual := f(tc.in, tc.arg)
 		if actual != tc.out {
-			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.cutset, actual, tc.out)
+			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.arg, actual, tc.out)
 		}
 	}
 }
@@ -959,7 +967,7 @@
 func TestContainsRune(t *testing.T) {
 	for _, ct := range ContainsRuneTests {
 		if ContainsRune(ct.str, ct.r) != ct.expected {
-			t.Errorf("ContainsRune(%s, %s) = %v, want %v",
+			t.Errorf("ContainsRune(%q, %q) = %v, want %v",
 				ct.str, ct.r, !ct.expected, ct.expected)
 		}
 	}
@@ -993,6 +1001,65 @@
 	}
 }
 
+func makeBenchInputHard() string {
+	tokens := [...]string{
+		"<a>", "<p>", "<b>", "<strong>",
+		"</a>", "</p>", "</b>", "</strong>",
+		"hello", "world",
+	}
+	x := make([]byte, 0, 1<<20)
+	for len(x) < 1<<20 {
+		i := rand.Intn(len(tokens))
+		x = append(x, tokens[i]...)
+	}
+	return string(x)
+}
+
+var benchInputHard = makeBenchInputHard()
+
+func benchmarkIndexHard(b *testing.B, sep string) {
+	for i := 0; i < b.N; i++ {
+		Index(benchInputHard, sep)
+	}
+}
+
+func benchmarkCountHard(b *testing.B, sep string) {
+	for i := 0; i < b.N; i++ {
+		Count(benchInputHard, sep)
+	}
+}
+
+func BenchmarkIndexHard1(b *testing.B) { benchmarkIndexHard(b, "<>") }
+func BenchmarkIndexHard2(b *testing.B) { benchmarkIndexHard(b, "</pre>") }
+func BenchmarkIndexHard3(b *testing.B) { benchmarkIndexHard(b, "<b>hello world</b>") }
+
+func BenchmarkCountHard1(b *testing.B) { benchmarkCountHard(b, "<>") }
+func BenchmarkCountHard2(b *testing.B) { benchmarkCountHard(b, "</pre>") }
+func BenchmarkCountHard3(b *testing.B) { benchmarkCountHard(b, "<b>hello world</b>") }
+
+var benchInputTorture = Repeat("ABC", 1<<10) + "123" + Repeat("ABC", 1<<10)
+var benchNeedleTorture = Repeat("ABC", 1<<10+1)
+
+func BenchmarkIndexTorture(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Index(benchInputTorture, benchNeedleTorture)
+	}
+}
+
+func BenchmarkCountTorture(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Count(benchInputTorture, benchNeedleTorture)
+	}
+}
+
+func BenchmarkCountTortureOverlapping(b *testing.B) {
+	A := Repeat("ABC", 1<<20)
+	B := Repeat("ABC", 1<<10)
+	for i := 0; i < b.N; i++ {
+		Count(A, B)
+	}
+}
+
 var makeFieldsInput = func() string {
 	x := make([]byte, 1<<20)
 	// Input is ~10% space, ~10% 2-byte UTF-8, rest ASCII non-space.
@@ -1028,3 +1095,21 @@
 		FieldsFunc(fieldsInput, unicode.IsSpace)
 	}
 }
+
+func BenchmarkSplit1(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "")
+	}
+}
+
+func BenchmarkSplit2(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "/")
+	}
+}
+
+func BenchmarkSplit3(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "hello")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go
--- gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go	2013-10-01 16:06:44.212554279 +0000
@@ -1119,7 +1119,7 @@
 					d1 := X.data1
 					d2 := X.data2
 					if d1 != i || d2 != float32(i) {
-						t.Fatalf("incorrect data: %d/%d (%d)", d1, d2, i)
+						t.Fatalf("incorrect data: %d/%g (%d)", d1, d2, i)
 					}
 				}
 			}
@@ -1167,7 +1167,7 @@
 					d1 := X.data1
 					d2 := X.data2
 					if d1 != i || d2 != float64(i) {
-						t.Fatalf("incorrect data: %d/%d (%d)", d1, d2, i)
+						t.Fatalf("incorrect data: %d/%g (%d)", d1, d2, i)
 					}
 				}
 			}
@@ -1177,3 +1177,31 @@
 	<-c
 	<-c
 }
+
+func shouldPanic(t *testing.T, name string, f func()) {
+	defer func() {
+		if recover() == nil {
+			t.Errorf("%s did not panic", name)
+		}
+	}()
+	f()
+}
+
+func TestUnaligned64(t *testing.T) {
+	// Unaligned 64-bit atomics on 32-bit systems are
+	// a continual source of pain. Test that on 32-bit systems they crash
+	// instead of failing silently.
+	if unsafe.Sizeof(int(0)) != 4 {
+		t.Skip("test only runs on 32-bit systems")
+	}
+
+	t.Skip("skipping test for gccgo")
+
+	x := make([]uint32, 4)
+	p := (*uint64)(unsafe.Pointer(&x[1])) // misaligned
+
+	shouldPanic(t, "LoadUint64", func() { LoadUint64(p) })
+	shouldPanic(t, "StoreUint64", func() { StoreUint64(p, 1) })
+	shouldPanic(t, "CompareAndSwapUint64", func() { CompareAndSwapUint64(p, 1, 2) })
+	shouldPanic(t, "AddUint64", func() { AddUint64(p, 3) })
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/race.go gcc-4.8.1/libgo/go/sync/atomic/race.go
--- gcc-4.8.1.orig/libgo/go/sync/atomic/race.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/atomic/race.go	2013-10-01 16:06:44.212554279 +0000
@@ -25,6 +25,7 @@
 }
 
 func CompareAndSwapUint32(val *uint32, old, new uint32) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -43,6 +44,7 @@
 }
 
 func CompareAndSwapUint64(val *uint64, old, new uint64) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -57,6 +59,7 @@
 }
 
 func CompareAndSwapPointer(val *unsafe.Pointer, old, new unsafe.Pointer) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -71,6 +74,7 @@
 }
 
 func CompareAndSwapUintptr(val *uintptr, old, new uintptr) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -89,6 +93,7 @@
 }
 
 func AddUint32(val *uint32, delta uint32) (new uint32) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -105,6 +110,7 @@
 }
 
 func AddUint64(val *uint64, delta uint64) (new uint64) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -117,6 +123,7 @@
 }
 
 func AddUintptr(val *uintptr, delta uintptr) (new uintptr) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -133,6 +140,7 @@
 }
 
 func LoadUint32(addr *uint32) (val uint32) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -146,6 +154,7 @@
 }
 
 func LoadUint64(addr *uint64) (val uint64) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -155,6 +164,7 @@
 }
 
 func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -164,6 +174,7 @@
 }
 
 func LoadUintptr(addr *uintptr) (val uintptr) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -177,6 +188,7 @@
 }
 
 func StoreUint32(addr *uint32, val uint32) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -189,6 +201,7 @@
 }
 
 func StoreUint64(addr *uint64, val uint64) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -197,6 +210,7 @@
 }
 
 func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -205,6 +219,7 @@
 }
 
 func StoreUintptr(addr *uintptr, val uintptr) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
diff -Naur gcc-4.8.1.orig/libgo/go/sync/cond.go gcc-4.8.1/libgo/go/sync/cond.go
--- gcc-4.8.1.orig/libgo/go/sync/cond.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/cond.go	2013-10-01 16:06:44.212554279 +0000
@@ -57,6 +57,7 @@
 //
 func (c *Cond) Wait() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
@@ -80,6 +81,7 @@
 // during the call.
 func (c *Cond) Signal() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
@@ -106,6 +108,7 @@
 // during the call.
 func (c *Cond) Broadcast() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
diff -Naur gcc-4.8.1.orig/libgo/go/sync/example_test.go gcc-4.8.1/libgo/go/sync/example_test.go
--- gcc-4.8.1.orig/libgo/go/sync/example_test.go	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/example_test.go	2013-10-01 16:06:44.212554279 +0000
@@ -24,10 +24,10 @@
 		wg.Add(1)
 		// Launch a goroutine to fetch the URL.
 		go func(url string) {
+			// Decrement the counter when the goroutine completes.
+			defer wg.Done()
 			// Fetch the URL.
 			http.Get(url)
-			// Decrement the counter.
-			wg.Done()
 		}(url)
 	}
 	// Wait for all HTTP fetches to complete.
@@ -37,7 +37,7 @@
 func ExampleOnce() {
 	var once sync.Once
 	onceBody := func() {
-		fmt.Printf("Only once\n")
+		fmt.Println("Only once")
 	}
 	done := make(chan bool)
 	for i := 0; i < 10; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/sync/mutex.go gcc-4.8.1/libgo/go/sync/mutex.go
--- gcc-4.8.1.orig/libgo/go/sync/mutex.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/mutex.go	2013-10-01 16:06:44.212554279 +0000
@@ -81,6 +81,7 @@
 // arrange for another goroutine to unlock it.
 func (m *Mutex) Unlock() {
 	if raceenabled {
+		_ = m.state
 		raceRelease(unsafe.Pointer(m))
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/sync/rwmutex.go gcc-4.8.1/libgo/go/sync/rwmutex.go
--- gcc-4.8.1.orig/libgo/go/sync/rwmutex.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/rwmutex.go	2013-10-01 16:06:44.212554279 +0000
@@ -28,6 +28,7 @@
 // RLock locks rw for reading.
 func (rw *RWMutex) RLock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceDisable()
 	}
 	if atomic.AddInt32(&rw.readerCount, 1) < 0 {
@@ -46,6 +47,7 @@
 // on entry to RUnlock.
 func (rw *RWMutex) RUnlock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceReleaseMerge(unsafe.Pointer(&rw.writerSem))
 		raceDisable()
 	}
@@ -69,6 +71,7 @@
 // the lock.
 func (rw *RWMutex) Lock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceDisable()
 	}
 	// First, resolve competition with other writers.
@@ -94,6 +97,7 @@
 // arrange for another goroutine to RUnlock (Unlock) it.
 func (rw *RWMutex) Unlock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceRelease(unsafe.Pointer(&rw.readerSem))
 		raceRelease(unsafe.Pointer(&rw.writerSem))
 		raceDisable()
diff -Naur gcc-4.8.1.orig/libgo/go/sync/waitgroup.go gcc-4.8.1/libgo/go/sync/waitgroup.go
--- gcc-4.8.1.orig/libgo/go/sync/waitgroup.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/sync/waitgroup.go	2013-10-01 16:06:44.212554279 +0000
@@ -34,10 +34,16 @@
 // G3: Wait() // G1 still hasn't run, G3 finds sema == 1, unblocked! Bug.
 
 // Add adds delta, which may be negative, to the WaitGroup counter.
-// If the counter becomes zero, all goroutines blocked on Wait() are released.
+// If the counter becomes zero, all goroutines blocked on Wait are released.
 // If the counter goes negative, Add panics.
+//
+// Note that calls with positive delta must happen before the call to Wait,
+// or else Wait may wait for too small a group. Typically this means the calls
+// to Add should execute before the statement creating the goroutine or
+// other event to be waited for. See the WaitGroup example.
 func (wg *WaitGroup) Add(delta int) {
 	if raceenabled {
+		_ = wg.m.state
 		raceReleaseMerge(unsafe.Pointer(wg))
 		raceDisable()
 		defer raceEnable()
@@ -66,6 +72,7 @@
 // Wait blocks until the WaitGroup counter is zero.
 func (wg *WaitGroup) Wait() {
 	if raceenabled {
+		_ = wg.m.state
 		raceDisable()
 	}
 	if atomic.LoadInt32(&wg.counter) == 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go gcc-4.8.1/libgo/go/syscall/dir_plan9.go
--- gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/dir_plan9.go	2013-10-01 16:06:44.212554279 +0000
@@ -68,9 +68,9 @@
 	b = pbit16(b, uint16(n)-2)
 	b = pbit16(b, d.Type)
 	b = pbit32(b, d.Dev)
-	b = pbit64(b, d.Qid.Path)
-	b = pbit32(b, d.Qid.Vers)
 	b = pbit8(b, d.Qid.Type)
+	b = pbit32(b, d.Qid.Vers)
+	b = pbit64(b, d.Qid.Path)
 	b = pbit32(b, d.Mode)
 	b = pbit32(b, d.Atime)
 	b = pbit32(b, d.Mtime)
@@ -101,9 +101,9 @@
 	var d Dir
 	d.Type, b = gbit16(b)
 	d.Dev, b = gbit32(b)
-	d.Qid.Path, b = gbit64(b)
-	d.Qid.Vers, b = gbit32(b)
 	d.Qid.Type, b = gbit8(b)
+	d.Qid.Vers, b = gbit32(b)
+	d.Qid.Path, b = gbit64(b)
 	d.Mode, b = gbit32(b)
 	d.Atime, b = gbit32(b)
 	d.Mtime, b = gbit32(b)
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go gcc-4.8.1/libgo/go/syscall/env_plan9.go
--- gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/env_plan9.go	2013-10-01 16:06:44.212554279 +0000
@@ -15,12 +15,15 @@
 	// envOnce guards copyenv, which populates env.
 	envOnce sync.Once
 
-	// envLock guards env.
+	// envLock guards env and envs.
 	envLock sync.RWMutex
 
 	// env maps from an environment variable to its value.
 	env = make(map[string]string)
 
+	// envs contains elements of env in the form "key=value".
+	envs []string
+
 	errZeroLengthKey = errors.New("zero length key")
 	errShortWrite    = errors.New("i/o count too small")
 )
@@ -71,12 +74,16 @@
 	if err != nil {
 		return
 	}
+	envs = make([]string, len(files))
+	i := 0
 	for _, key := range files {
 		v, err := readenv(key)
 		if err != nil {
 			continue
 		}
 		env[key] = v
+		envs[i] = key + "=" + v
+		i++
 	}
 }
 
@@ -96,6 +103,7 @@
 		return "", false
 	}
 	env[key] = v
+	envs = append(envs, key+"="+v)
 	return v, true
 }
 
@@ -112,6 +120,7 @@
 		return err
 	}
 	env[key] = value
+	envs = append(envs, key+"="+value)
 	return nil
 }
 
@@ -120,6 +129,7 @@
 	defer envLock.Unlock()
 
 	env = make(map[string]string)
+	envs = []string{}
 	RawSyscall(SYS_RFORK, RFCENVG, 0, 0)
 }
 
@@ -128,11 +138,5 @@
 	defer envLock.RUnlock()
 
 	envOnce.Do(copyenv)
-	a := make([]string, len(env))
-	i := 0
-	for k, v := range env {
-		a[i] = k + "=" + v
-		i++
-	}
-	return a
+	return append([]string(nil), envs...)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_unix.go gcc-4.8.1/libgo/go/syscall/env_unix.go
--- gcc-4.8.1.orig/libgo/go/syscall/env_unix.go	2012-01-25 20:56:26.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/env_unix.go	2013-10-01 16:06:44.212554279 +0000
@@ -71,6 +71,16 @@
 	if len(key) == 0 {
 		return EINVAL
 	}
+	for i := 0; i < len(key); i++ {
+		if key[i] == '=' || key[i] == 0 {
+			return EINVAL
+		}
+	}
+	for i := 0; i < len(value); i++ {
+		if value[i] == 0 {
+			return EINVAL
+		}
+	}
 
 	envLock.Lock()
 	defer envLock.Unlock()
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go gcc-4.8.1/libgo/go/syscall/exec_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/exec_bsd.go	2013-10-01 16:06:44.212554279 +0000
@@ -38,10 +38,18 @@
 		i      int
 	)
 
+	// guard against side effects of shuffling fds below.
+	// Make sure that nextfd is beyond any currently open files so
+	// that we can't run the risk of overwriting any of them.
 	fd := make([]int, len(attr.Files))
+	nextfd = len(attr.Files)
 	for i, ufd := range attr.Files {
+		if nextfd < int(ufd) {
+			nextfd = int(ufd)
+		}
 		fd[i] = int(ufd)
 	}
+	nextfd++
 
 	// About to call fork.
 	// No more allocation or calls of non-assembly functions.
@@ -136,7 +144,6 @@
 
 	// Pass 1: look for fd[i] < i and move those up above len(fd)
 	// so that pass 2 won't stomp on an fd it needs later.
-	nextfd = int(len(fd))
 	if pipe < nextfd {
 		err1 = raw_dup2(pipe, nextfd)
 		if err1 != 0 {
@@ -217,11 +224,6 @@
 	for {
 		raw_exit(253)
 	}
-
-	// Calling panic is not actually safe,
-	// but the for loop above won't break
-	// and this shuts up the compiler.
-	panic("unreached")
 }
 
 // Try to open a pipe with O_CLOEXEC set on both file descriptors.
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go gcc-4.8.1/libgo/go/syscall/exec_linux.go
--- gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/exec_linux.go	2013-10-01 16:06:44.212554279 +0000
@@ -43,11 +43,18 @@
 		i      int
 	)
 
-	// guard against side effects of shuffling fds below.
+	// Guard against side effects of shuffling fds below.
+	// Make sure that nextfd is beyond any currently open files so
+	// that we can't run the risk of overwriting any of them.
 	fd := make([]int, len(attr.Files))
+	nextfd = len(attr.Files)
 	for i, ufd := range attr.Files {
+		if nextfd < int(ufd) {
+			nextfd = int(ufd)
+		}
 		fd[i] = int(ufd)
 	}
+	nextfd++
 
 	// About to call fork.
 	// No more allocation or calls of non-assembly functions.
@@ -163,7 +170,6 @@
 
 	// Pass 1: look for fd[i] < i and move those up above len(fd)
 	// so that pass 2 won't stomp on an fd it needs later.
-	nextfd = int(len(fd))
 	if pipe < nextfd {
 		err1 = raw_dup2(pipe, nextfd)
 		if err1 != 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk gcc-4.8.1/libgo/go/syscall/mksyscall.awk
--- gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/mksyscall.awk	2013-10-01 16:06:44.212554279 +0000
@@ -53,7 +53,7 @@
     }
 
     # Sets a[1] = //sysnb, a[2] == function name.
-    split(line, a, "[ 	(]*")
+    split(line, a, "[ 	(]+")
     gofnname = a[2]
 
     off = match(line, "\\([^()]*\\)")
@@ -78,7 +78,7 @@
 	next
     }
 
-    split(line, a, "[ 	(]*")
+    split(line, a, "[ 	(]+")
     cfnname = substr(a[1], 3, length(a[1]) - 2)
 
     off = match(line, "\\([^()]*\\)")
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go gcc-4.8.1/libgo/go/syscall/passfd_test.go
--- gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/passfd_test.go	2013-10-01 16:06:44.212554279 +0000
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build linux darwin
+// +build linux darwin freebsd netbsd openbsd
 
 package syscall_test
 
@@ -49,7 +49,11 @@
 	defer readFile.Close()
 
 	cmd := exec.Command(os.Args[0], "-test.run=^TestPassFD$", "--", tempDir)
-	cmd.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
+	cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"}
+	path := os.Getenv("LD_LIBRARY_PATH")
+	if path != "" {
+		cmd.Env = append(cmd.Env, "LD_LIBRARY_PATH="+path)
+	}
 	cmd.ExtraFiles = []*os.File{writeFile}
 
 	out, err := cmd.CombinedOutput()
@@ -149,3 +153,49 @@
 		return
 	}
 }
+
+// TestUnixRightsRoundtrip tests that UnixRights, ParseSocketControlMessage,
+// and ParseUnixRights are able to successfully round-trip lists of file descriptors.
+func TestUnixRightsRoundtrip(t *testing.T) {
+	testCases := [...][][]int{
+		{{42}},
+		{{1, 2}},
+		{{3, 4, 5}},
+		{{}},
+		{{1, 2}, {3, 4, 5}, {}, {7}},
+	}
+	for _, testCase := range testCases {
+		b := []byte{}
+		var n int
+		for _, fds := range testCase {
+			// Last assignment to n wins
+			n = len(b) + syscall.CmsgLen(4*len(fds))
+			b = append(b, syscall.UnixRights(fds...)...)
+		}
+		// Truncate b
+		b = b[:n]
+
+		scms, err := syscall.ParseSocketControlMessage(b)
+		if err != nil {
+			t.Fatalf("ParseSocketControlMessage: %v", err)
+		}
+		if len(scms) != len(testCase) {
+			t.Fatalf("expected %v SocketControlMessage; got scms = %#v", len(testCase), scms)
+		}
+		for i, scm := range scms {
+			gotFds, err := syscall.ParseUnixRights(&scm)
+			if err != nil {
+				t.Fatalf("ParseUnixRights: %v", err)
+			}
+			wantFds := testCase[i]
+			if len(gotFds) != len(wantFds) {
+				t.Fatalf("expected %v fds, got %#v", len(wantFds), gotFds)
+			}
+			for j, fd := range gotFds {
+				if fd != wantFds[j] {
+					t.Fatalf("expected fd %v, got %v", wantFds[j], fd)
+				}
+			}
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go gcc-4.8.1/libgo/go/syscall/route_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go	2012-01-13 05:11:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/route_bsd.go	2013-10-01 16:06:44.212554279 +0000
@@ -8,9 +8,7 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
 // Round the length of a raw sockaddr up to align it properly.
 func rsaAlignOf(salen int) int {
@@ -31,7 +29,6 @@
 // parameters.
 func RouteRIB(facility, param int) ([]byte, error) {
 	mib := []_C_int{CTL_NET, AF_ROUTE, 0, 0, _C_int(facility), _C_int(param)}
-
 	// Find size.
 	n := uintptr(0)
 	if err := sysctl(mib, nil, &n, nil, 0); err != nil {
@@ -40,12 +37,10 @@
 	if n == 0 {
 		return nil, nil
 	}
-
 	tab := make([]byte, n)
 	if err := sysctl(mib, &tab[0], &n, nil, 0); err != nil {
 		return nil, err
 	}
-
 	return tab[:n], nil
 }
 
@@ -76,13 +71,12 @@
 		af  int
 		sas [4]Sockaddr
 	)
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaRtMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_DST, RTAX_GATEWAY:
 			sa, err := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -96,14 +90,14 @@
 		case RTAX_NETMASK, RTAX_GENMASK:
 			switch af {
 			case AF_INET:
-				rsa4 := (*RawSockaddrInet4)(unsafe.Pointer(&buf[0]))
+				rsa4 := (*RawSockaddrInet4)(unsafe.Pointer(&b[0]))
 				sa := new(SockaddrInet4)
 				for j := 0; rsa4.Len > 0 && j < int(rsa4.Len)-int(unsafe.Offsetof(rsa4.Addr)); j++ {
 					sa.Addr[j] = rsa4.Addr[j]
 				}
 				sas[i] = sa
 			case AF_INET6:
-				rsa6 := (*RawSockaddrInet6)(unsafe.Pointer(&buf[0]))
+				rsa6 := (*RawSockaddrInet6)(unsafe.Pointer(&b[0]))
 				sa := new(SockaddrInet6)
 				for j := 0; rsa6.Len > 0 && j < int(rsa6.Len)-int(unsafe.Offsetof(rsa6.Addr)); j++ {
 					sa.Addr[j] = rsa6.Addr[j]
@@ -111,9 +105,8 @@
 				sas[i] = sa
 			}
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas[:]
 }
 
@@ -148,13 +141,12 @@
 	if m.Header.Addrs&rtaIfaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, err := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -174,22 +166,21 @@
 		case RTAX_BRD:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
 
-// ParseRoutingMessage parses buf as routing messages and returns
-// the slice containing the RoutingMessage interfaces.
-func ParseRoutingMessage(buf []byte) (msgs []RoutingMessage, err error) {
-	for len(buf) >= anyMessageLen {
-		any := (*anyMessage)(unsafe.Pointer(&buf[0]))
+// ParseRoutingMessage parses b as routing messages and returns the
+// slice containing the RoutingMessage interfaces.
+func ParseRoutingMessage(b []byte) (msgs []RoutingMessage, err error) {
+	for len(b) >= anyMessageLen {
+		any := (*anyMessage)(unsafe.Pointer(&b[0]))
 		if any.Version != RTM_VERSION {
 			return nil, EINVAL
 		}
-		msgs = append(msgs, any.toRoutingMessage(buf))
-		buf = buf[any.Msglen:]
+		msgs = append(msgs, any.toRoutingMessage(b))
+		b = b[any.Msglen:]
 	}
 	return msgs, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go gcc-4.8.1/libgo/go/syscall/route_darwin.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go	2011-12-12 23:40:51.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/route_darwin.go	2013-10-01 16:06:44.212554279 +0000
@@ -6,36 +6,22 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	case RTM_NEWMADDR2, RTM_DELMADDR:
 		p := (*InterfaceMulticastAddrMessage)(unsafe.Pointer(any))
-		ifmam := &InterfaceMulticastAddrMessage{}
-		ifmam.Header = p.Header
-		ifmam.Data = buf[SizeofIfmaMsghdr2:any.Msglen]
-		return ifmam
+		return &InterfaceMulticastAddrMessage{Header: p.Header, Data: b[SizeofIfmaMsghdr2:any.Msglen]}
 	}
 	return nil
 }
@@ -53,13 +39,12 @@
 	if m.Header.Addrs&rtaIfmaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfmaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, e := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -70,8 +55,7 @@
 		case RTAX_GATEWAY, RTAX_IFP:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go gcc-4.8.1/libgo/go/syscall/route_freebsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go	2011-12-12 23:40:51.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/route_freebsd.go	2013-10-01 16:06:44.212554279 +0000
@@ -6,40 +6,37 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	case RTM_NEWMADDR, RTM_DELMADDR:
 		p := (*InterfaceMulticastAddrMessage)(unsafe.Pointer(any))
-		ifmam := &InterfaceMulticastAddrMessage{}
-		ifmam.Header = p.Header
-		ifmam.Data = buf[SizeofIfmaMsghdr:any.Msglen]
-		return ifmam
+		return &InterfaceMulticastAddrMessage{Header: p.Header, Data: b[SizeofIfmaMsghdr:any.Msglen]}
 	}
 	return nil
 }
 
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
+
 // InterfaceMulticastAddrMessage represents a routing message
 // containing network interface address entries.
 type InterfaceMulticastAddrMessage struct {
@@ -53,13 +50,12 @@
 	if m.Header.Addrs&rtaIfmaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfmaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, e := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -70,8 +66,7 @@
 		case RTAX_GATEWAY, RTAX_IFP:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go gcc-4.8.1/libgo/go/syscall/route_netbsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go	2012-01-13 05:11:45.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/route_netbsd.go	2013-10-01 16:06:44.212554279 +0000
@@ -6,30 +6,30 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	}
 	return nil
 }
+
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go gcc-4.8.1/libgo/go/syscall/route_openbsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go	2011-10-23 19:04:37.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/route_openbsd.go	2013-10-01 16:06:44.212554279 +0000
@@ -6,30 +6,30 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	}
 	return nil
 }
+
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/security_windows.go gcc-4.8.1/libgo/go/syscall/security_windows.go
--- gcc-4.8.1.orig/libgo/go/syscall/security_windows.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/security_windows.go	2013-10-01 16:06:44.212554279 +0000
@@ -70,7 +70,7 @@
 
 const (
 	// do not reorder
-	SidTypeUser = 1 << iota
+	SidTypeUser = 1 + iota
 	SidTypeGroup
 	SidTypeDomain
 	SidTypeAlias
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go
--- gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go	2013-02-20 20:04:36.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go	2013-10-01 16:06:44.216554279 +0000
@@ -13,7 +13,7 @@
 	"unsafe"
 )
 
-// Round the length of a raw sockaddr up to align it propery.
+// Round the length of a raw sockaddr up to align it properly.
 func cmsgAlignOf(salen int) int {
 	salign := int(sizeofPtr)
 	// NOTE: It seems like 64-bit Darwin kernel still requires 32-bit
@@ -26,9 +26,6 @@
 	if runtime.GOOS == "solaris" {
 		salign = 4
 	}
-	if salen == 0 {
-		return salign
-	}
 	return (salen + salign - 1) & ^(salign - 1)
 }
 
@@ -45,7 +42,7 @@
 }
 
 func cmsgData(h *Cmsghdr) unsafe.Pointer {
-	return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + SizeofCmsghdr)
+	return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))
 }
 
 // SocketControlMessage represents a socket control message.
@@ -58,14 +55,15 @@
 // messages.
 func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {
 	var msgs []SocketControlMessage
-	for len(b) >= CmsgLen(0) {
-		h, dbuf, err := socketControlMessageHeaderAndData(b)
+	i := 0
+	for i+CmsgLen(0) <= len(b) {
+		h, dbuf, err := socketControlMessageHeaderAndData(b[i:])
 		if err != nil {
 			return nil, err
 		}
-		m := SocketControlMessage{Header: *h, Data: dbuf[:int(h.Len)-cmsgAlignOf(SizeofCmsghdr)]}
+		m := SocketControlMessage{Header: *h, Data: dbuf}
 		msgs = append(msgs, m)
-		b = b[cmsgAlignOf(int(h.Len)):]
+		i += cmsgAlignOf(int(h.Len))
 	}
 	return msgs, nil
 }
@@ -75,7 +73,7 @@
 	if h.Len < SizeofCmsghdr || int(h.Len) > len(b) {
 		return nil, nil, EINVAL
 	}
-	return h, b[cmsgAlignOf(SizeofCmsghdr):], nil
+	return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil
 }
 
 // UnixRights encodes a set of open file descriptors into a socket
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket.go gcc-4.8.1/libgo/go/syscall/socket.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket.go	2013-02-20 20:04:36.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/socket.go	2013-10-01 16:06:44.216554279 +0000
@@ -79,7 +79,7 @@
 func (sa *SockaddrUnix) sockaddr() (*RawSockaddrAny, Socklen_t, error) {
 	name := sa.Name
 	n := len(name)
-	if n >= len(sa.raw.Path) || n == 0 {
+	if n >= len(sa.raw.Path) {
 		return nil, 0, EINVAL
 	}
 	sa.raw.Family = AF_UNIX
@@ -88,12 +88,11 @@
 		sa.raw.Path[i] = int8(name[i])
 	}
 	// length is family (uint16), name, NUL.
-	sl := 2 + Socklen_t(n) + 1
-	if sa.raw.Path[0] == '@' {
-		sa.raw.Path[0] = 0
-		// Don't count trailing NUL for abstract address.
-		sl--
+	sl := Socklen_t(2)
+	if n > 0 {
+		sl += Socklen_t(n) + 1
 	}
+	sl = sa.raw.adjustAbstract(sl)
 
 	// length is family (uint16), name, NUL.
 	return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), sl, nil
@@ -307,7 +306,9 @@
 	if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {
 		return
 	}
-	from, err = anyToSockaddr(&rsa)
+	if rsa.Addr.Family != AF_UNSPEC {
+		from, err = anyToSockaddr(&rsa)
+	}
 	return
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go gcc-4.8.1/libgo/go/syscall/socket_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go	2011-12-12 23:40:51.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/socket_bsd.go	2013-10-01 16:06:44.216554279 +0000
@@ -11,11 +11,11 @@
 const SizeofSockaddrUnix = 110
 
 type RawSockaddrInet4 struct {
-	Len uint8;
-	Family uint8;
-	Port uint16;
-	Addr [4]byte /* in_addr */;
-	Zero [8]uint8;
+	Len    uint8
+	Family uint8
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	Zero   [8]uint8
 }
 
 func (sa *RawSockaddrInet4) setLen() Socklen_t {
@@ -24,12 +24,12 @@
 }
 
 type RawSockaddrInet6 struct {
-	Len uint8;
-	Family uint8;
-	Port uint16;
-	Flowinfo uint32;
-	Addr [16]byte /* in6_addr */;
-	Scope_id uint32;
+	Len      uint8
+	Family   uint8
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
 }
 
 func (sa *RawSockaddrInet6) setLen() Socklen_t {
@@ -38,9 +38,9 @@
 }
 
 type RawSockaddrUnix struct {
-	Len uint8;
-	Family uint8;
-	Path [108]int8;
+	Len    uint8
+	Family uint8
+	Path   [108]int8
 }
 
 func (sa *RawSockaddrUnix) setLen(n int) {
@@ -62,10 +62,14 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
-	Len uint8;
-	Family uint8;
-	Data [14]int8;
+	Len    uint8
+	Family uint8
+	Data   [14]int8
 }
 
 // BindToDevice binds the socket associated with fd to device.
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go gcc-4.8.1/libgo/go/syscall/socket_irix.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go	2012-01-27 22:37:14.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/socket_irix.go	2013-10-01 16:06:44.216554279 +0000
@@ -64,6 +64,10 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go gcc-4.8.1/libgo/go/syscall/socket_linux.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go	2012-11-24 20:46:59.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/socket_linux.go	2013-10-01 16:06:44.216554279 +0000
@@ -110,6 +110,15 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	if sa.Path[0] == '@' {
+		sa.Path[0] = 0
+		// Don't count trailing NUL for abstract address.
+		sl--
+	}
+	return sl
+}
+
 type RawSockaddrLinklayer struct {
 	Family   uint16
 	Protocol uint16
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go gcc-4.8.1/libgo/go/syscall/socket_solaris.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go	2011-12-12 23:40:51.000000000 +0000
+++ gcc-4.8.1/libgo/go/syscall/socket_solaris.go	2013-10-01 16:06:44.216554279 +0000
@@ -12,9 +12,9 @@
 
 type RawSockaddrInet4 struct {
 	Family uint16
-	Port uint16
-	Addr [4]byte /* in_addr */
-	Zero [8]uint8
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	Zero   [8]uint8
 }
 
 func (sa *RawSockaddrInet4) setLen() Socklen_t {
@@ -22,12 +22,12 @@
 }
 
 type RawSockaddrInet6 struct {
-	Family uint16
-	Port uint16
+	Family   uint16
+	Port     uint16
 	Flowinfo uint32
-	Addr [16]byte /* in6_addr */
+	Addr     [16]byte /* in6_addr */
 	Scope_id uint32
-	Src_id uint32
+	Src_id   uint32
 }
 
 func (sa *RawSockaddrInet6) setLen() Socklen_t {
@@ -36,38 +36,27 @@
 
 type RawSockaddrUnix struct {
 	Family uint16
-	Path [108]int8
+	Path   [108]int8
 }
 
 func (sa *RawSockaddrUnix) setLen(int) {
 }
 
 func (sa *RawSockaddrUnix) getLen() (int, error) {
-	if sa.Path[0] == 0 {
-		// "Abstract" Unix domain socket.
-		// Rewrite leading NUL as @ for textual display.
-		// (This is the standard convention.)
-		// Not friendly to overwrite in place,
-		// but the callers below don't care.
-		sa.Path[0] = '@'
-	}
-
-	// Assume path ends at NUL.
-	// This is not technically the GNU/Linux semantics for
-	// abstract Unix domain sockets--they are supposed
-	// to be uninterpreted fixed-size binary blobs--but
-	// everyone uses this convention.
 	n := 0
-	for n < len(sa.Path) - 3 && sa.Path[n] != 0 {
+	for n < len(sa.Path) && sa.Path[n] != 0 {
 		n++
 	}
-
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
 	Family uint16
-	Data [14]int8
+	Data   [14]int8
 }
 
 // BindToDevice binds the socket associated with fd to device.
diff -Naur gcc-4.8.1.orig/libgo/go/testing/allocs.go gcc-4.8.1/libgo/go/testing/allocs.go
--- gcc-4.8.1.orig/libgo/go/testing/allocs.go	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/go/testing/allocs.go	2013-10-01 16:06:44.216554279 +0000
@@ -0,0 +1,41 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package testing
+
+import (
+	"runtime"
+)
+
+// AllocsPerRun returns the average number of allocations during calls to f.
+//
+// To compute the number of allocations, the function will first be run once as
+// a warm-up.  The average number of allocations over the specified number of
+// runs will then be measured and returned.
+//
+// AllocsPerRun sets GOMAXPROCS to 1 during its measurement and will restore
+// it before returning.
+func AllocsPerRun(runs int, f func()) (avg float64) {
+	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+
+	// Warm up the function
+	f()
+
+	// Measure the starting statistics
+	var memstats runtime.MemStats
+	runtime.ReadMemStats(&memstats)
+	mallocs := 0 - memstats.Mallocs
+
+	// Run the function the specified number of times
+	for i := 0; i < runs; i++ {
+		f()
+	}
+
+	// Read the final statistics
+	runtime.ReadMemStats(&memstats)
+	mallocs += memstats.Mallocs
+
+	// Average the mallocs over the runs (not counting the warm-up)
+	return float64(mallocs) / float64(runs)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go gcc-4.8.1/libgo/go/testing/iotest/reader.go
--- gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/testing/iotest/reader.go	2013-10-01 16:06:44.216554279 +0000
@@ -37,9 +37,11 @@
 	return r.r.Read(p[0 : (len(p)+1)/2])
 }
 
-// DataErrReader returns a Reader that returns the final
-// error with the last data read, instead of by itself with
-// zero bytes of data.
+// DataErrReader changes the way errors are handled by a Reader. Normally, a
+// Reader returns an error (typically EOF) from the first Read call after the
+// last piece of data is read. DataErrReader wraps a Reader and changes its
+// behavior so the final error is returned along with the final data, instead
+// of in the first call after the final data.
 func DataErrReader(r io.Reader) io.Reader { return &dataErrReader{r, nil, make([]byte, 1024)} }
 
 type dataErrReader struct {
diff -Naur gcc-4.8.1.orig/libgo/go/testing/quick/quick.go gcc-4.8.1/libgo/go/testing/quick/quick.go
--- gcc-4.8.1.orig/libgo/go/testing/quick/quick.go	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/testing/quick/quick.go	2013-10-01 16:06:44.216554279 +0000
@@ -140,8 +140,6 @@
 	default:
 		return reflect.Value{}, false
 	}
-
-	return
 }
 
 // A Config structure contains options for running a test.
diff -Naur gcc-4.8.1.orig/libgo/go/testing/testing.go gcc-4.8.1/libgo/go/testing/testing.go
--- gcc-4.8.1.orig/libgo/go/testing/testing.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/testing/testing.go	2013-10-01 16:06:44.216554279 +0000
@@ -10,7 +10,7 @@
 // [a-z]) and serves to identify the test routine.
 // These TestXxx routines should be declared within the package they are testing.
 //
-// Tests may be skipped if not applicable like this:
+// Tests and benchmarks may be skipped if not applicable like this:
 //     func TestTimeConsuming(t *testing.T) {
 //         if testing.Short() {
 //             t.Skip("skipping test in short mode.")
@@ -18,6 +18,8 @@
 //         ...
 //     }
 //
+// Benchmarks
+//
 // Functions of the form
 //     func BenchmarkXxx(*testing.B)
 // are considered benchmarks, and are executed by the "go test" command when
@@ -33,6 +35,7 @@
 //         }
 //     }
 //
+// The benchmark function must run the target code b.N times.
 // The benchmark package will vary b.N until the benchmark function lasts
 // long enough to be timed reliably.  The output
 //     BenchmarkHello    10000000    282 ns/op
@@ -48,8 +51,10 @@
 //         }
 //     }
 //
+// Examples
+//
 // The package also runs and verifies example code. Example functions may
-// include a concluding comment that begins with "Output:" and is compared with
+// include a concluding line comment that begins with "Output:" and is compared with
 // the standard output of the function when the tests are run. (The comparison
 // ignores leading and trailing space.) These are examples of an example:
 //
@@ -129,9 +134,10 @@
 // common holds the elements common between T and B and
 // captures common methods such as Errorf.
 type common struct {
-	mu     sync.RWMutex // guards output and failed
-	output []byte       // Output generated by test or benchmark.
-	failed bool         // Test or benchmark has failed.
+	mu      sync.RWMutex // guards output and failed
+	output  []byte       // Output generated by test or benchmark.
+	failed  bool         // Test or benchmark has failed.
+	skipped bool         // Test of benchmark has been skipped.
 
 	start    time.Time // Time test or benchmark started
 	duration time.Duration
@@ -165,21 +171,17 @@
 		line = 1
 	}
 	buf := new(bytes.Buffer)
+	// Every line is indented at least one tab.
+	buf.WriteByte('\t')
 	fmt.Fprintf(buf, "%s:%d: ", file, line)
-
 	lines := strings.Split(s, "\n")
 	if l := len(lines); l > 1 && lines[l-1] == "" {
 		lines = lines[:l-1]
 	}
 	for i, line := range lines {
 		if i > 0 {
-			buf.WriteByte('\n')
-		}
-		// Every line is indented at least one tab.
-		buf.WriteByte('\t')
-		if i > 0 {
 			// Second and subsequent lines are indented an extra tab.
-			buf.WriteByte('\t')
+			buf.WriteString("\n\t\t")
 		}
 		buf.WriteString(line)
 	}
@@ -193,7 +195,6 @@
 	common
 	name          string    // Name of test.
 	startParallel chan bool // Parallel tests will wait on this.
-	skipped       bool      // Test has been skipped.
 }
 
 // Fail marks the function as having failed but continues execution.
@@ -212,6 +213,10 @@
 
 // FailNow marks the function as having failed and stops its execution.
 // Execution will continue at the next test or benchmark.
+// FailNow must be called from the goroutine running the
+// test or benchmark function, not from other goroutines
+// created during the test. Calling FailNow does not stop
+// those other goroutines.
 func (c *common) FailNow() {
 	c.Fail()
 
@@ -244,40 +249,77 @@
 	c.output = append(c.output, decorate(s)...)
 }
 
-// Log formats its arguments using default formatting, analogous to Println(),
-// and records the text in the error log.
+// Log formats its arguments using default formatting, analogous to Println,
+// and records the text in the error log. The text will be printed only if
+// the test fails or the -test.v flag is set.
 func (c *common) Log(args ...interface{}) { c.log(fmt.Sprintln(args...)) }
 
-// Logf formats its arguments according to the format, analogous to Printf(),
-// and records the text in the error log.
+// Logf formats its arguments according to the format, analogous to Printf,
+// and records the text in the error log. The text will be printed only if
+// the test fails or the -test.v flag is set.
 func (c *common) Logf(format string, args ...interface{}) { c.log(fmt.Sprintf(format, args...)) }
 
-// Error is equivalent to Log() followed by Fail().
+// Error is equivalent to Log followed by Fail.
 func (c *common) Error(args ...interface{}) {
 	c.log(fmt.Sprintln(args...))
 	c.Fail()
 }
 
-// Errorf is equivalent to Logf() followed by Fail().
+// Errorf is equivalent to Logf followed by Fail.
 func (c *common) Errorf(format string, args ...interface{}) {
 	c.log(fmt.Sprintf(format, args...))
 	c.Fail()
 }
 
-// Fatal is equivalent to Log() followed by FailNow().
+// Fatal is equivalent to Log followed by FailNow.
 func (c *common) Fatal(args ...interface{}) {
 	c.log(fmt.Sprintln(args...))
 	c.FailNow()
 }
 
-// Fatalf is equivalent to Logf() followed by FailNow().
+// Fatalf is equivalent to Logf followed by FailNow.
 func (c *common) Fatalf(format string, args ...interface{}) {
 	c.log(fmt.Sprintf(format, args...))
 	c.FailNow()
 }
 
+// Skip is equivalent to Log followed by SkipNow.
+func (c *common) Skip(args ...interface{}) {
+	c.log(fmt.Sprintln(args...))
+	c.SkipNow()
+}
+
+// Skipf is equivalent to Logf followed by SkipNow.
+func (c *common) Skipf(format string, args ...interface{}) {
+	c.log(fmt.Sprintf(format, args...))
+	c.SkipNow()
+}
+
+// SkipNow marks the test as having been skipped and stops its execution.
+// Execution will continue at the next test or benchmark. See also FailNow.
+// SkipNow must be called from the goroutine running the test, not from
+// other goroutines created during the test. Calling SkipNow does not stop
+// those other goroutines.
+func (c *common) SkipNow() {
+	c.skip()
+	runtime.Goexit()
+}
+
+func (c *common) skip() {
+	c.mu.Lock()
+	defer c.mu.Unlock()
+	c.skipped = true
+}
+
+// Skipped reports whether the test was skipped.
+func (c *common) Skipped() bool {
+	c.mu.RLock()
+	defer c.mu.RUnlock()
+	return c.skipped
+}
+
 // Parallel signals that this test is to be run in parallel with (and only with)
-// other parallel tests in this CPU group.
+// other parallel tests.
 func (t *T) Parallel() {
 	t.signal <- (*T)(nil) // Release main testing loop
 	<-t.startParallel     // Wait for serial tests to finish
@@ -301,6 +343,7 @@
 		t.duration = time.Now().Sub(t.start)
 		// If the test panicked, print any test output before dying.
 		if err := recover(); err != nil {
+			t.Fail()
 			t.report()
 			panic(err)
 		}
@@ -345,38 +388,6 @@
 	}
 }
 
-// Skip is equivalent to Log() followed by SkipNow().
-func (t *T) Skip(args ...interface{}) {
-	t.log(fmt.Sprintln(args...))
-	t.SkipNow()
-}
-
-// Skipf is equivalent to Logf() followed by SkipNow().
-func (t *T) Skipf(format string, args ...interface{}) {
-	t.log(fmt.Sprintf(format, args...))
-	t.SkipNow()
-}
-
-// SkipNow marks the function as having been skipped and stops its execution.
-// Execution will continue at the next test or benchmark. See also, t.FailNow.
-func (t *T) SkipNow() {
-	t.skip()
-	runtime.Goexit()
-}
-
-func (t *T) skip() {
-	t.mu.Lock()
-	defer t.mu.Unlock()
-	t.skipped = true
-}
-
-// Skipped reports whether the function was skipped.
-func (t *T) Skipped() bool {
-	t.mu.RLock()
-	defer t.mu.RUnlock()
-	return t.skipped
-}
-
 func RunTests(matchString func(pat, str string) (bool, error), tests []InternalTest) (ok bool) {
 	ok = true
 	if len(tests) == 0 && !haveExamples {
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec.go gcc-4.8.1/libgo/go/text/template/exec.go
--- gcc-4.8.1.orig/libgo/go/text/template/exec.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/text/template/exec.go	2013-10-01 16:06:44.216554279 +0000
@@ -5,6 +5,7 @@
 package template
 
 import (
+	"bytes"
 	"fmt"
 	"io"
 	"reflect"
@@ -125,8 +126,23 @@
 		wr:   wr,
 		vars: []variable{{"$", value}},
 	}
+	t.init()
 	if t.Tree == nil || t.Root == nil {
-		state.errorf("%q is an incomplete or empty template", t.name)
+		var b bytes.Buffer
+		for name, tmpl := range t.tmpl {
+			if tmpl.Tree == nil || tmpl.Root == nil {
+				continue
+			}
+			if b.Len() > 0 {
+				b.WriteString(", ")
+			}
+			fmt.Fprintf(&b, "%q", name)
+		}
+		var s string
+		if b.Len() > 0 {
+			s = "; defined templates are: " + b.String()
+		}
+		state.errorf("%q is an incomplete or empty template%s", t.Name(), s)
 	}
 	state.walk(value, t.Root)
 	return
@@ -603,6 +619,8 @@
 		return s.validateType(s.evalVariableNode(dot, arg, nil, zero), typ)
 	case *parse.PipeNode:
 		return s.validateType(s.evalPipeline(dot, arg), typ)
+	case *parse.IdentifierNode:
+		return s.evalFunction(dot, arg, arg, nil, zero)
 	}
 	switch typ.Kind() {
 	case reflect.Bool:
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec_test.go gcc-4.8.1/libgo/go/text/template/exec_test.go
--- gcc-4.8.1.orig/libgo/go/text/template/exec_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/text/template/exec_test.go	2013-10-01 16:06:44.216554279 +0000
@@ -499,6 +499,8 @@
 	{"bug8b", "{{4|dddArg 3}}", "", tVal, false},
 	// A bug was introduced that broke map lookups for lower-case names.
 	{"bug9", "{{.cause}}", "neglect", map[string]string{"cause": "neglect"}, true},
+	// Field chain starting with function did not work.
+	{"bug10", "{{mapOfThree.three}}-{{(mapOfThree).three}}", "3-3", 0, true},
 }
 
 func zeroArgs() string {
@@ -560,19 +562,24 @@
 	return s.String()
 }
 
+func mapOfThree() interface{} {
+	return map[string]int{"three": 3}
+}
+
 func testExecute(execTests []execTest, template *Template, t *testing.T) {
 	b := new(bytes.Buffer)
 	funcs := FuncMap{
-		"add":      add,
-		"count":    count,
-		"dddArg":   dddArg,
-		"echo":     echo,
-		"makemap":  makemap,
-		"oneArg":   oneArg,
-		"typeOf":   typeOf,
-		"vfunc":    vfunc,
-		"zeroArgs": zeroArgs,
-		"stringer": stringer,
+		"add":        add,
+		"count":      count,
+		"dddArg":     dddArg,
+		"echo":       echo,
+		"makemap":    makemap,
+		"mapOfThree": mapOfThree,
+		"oneArg":     oneArg,
+		"stringer":   stringer,
+		"typeOf":     typeOf,
+		"vfunc":      vfunc,
+		"zeroArgs":   zeroArgs,
 	}
 	for _, test := range execTests {
 		var tmpl *Template
@@ -816,3 +823,40 @@
 	// This is issue 3872.
 	_ = New("Name").Templates()
 }
+
+const testTemplates = `{{define "one"}}one{{end}}{{define "two"}}two{{end}}`
+
+func TestMessageForExecuteEmpty(t *testing.T) {
+	// Test a truly empty template.
+	tmpl := New("empty")
+	var b bytes.Buffer
+	err := tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected initial error")
+	}
+	got := err.Error()
+	want := `template: empty: "empty" is an incomplete or empty template`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Add a non-empty template to check that the error is helpful.
+	tests, err := New("").Parse(testTemplates)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl.AddParseTree("secondary", tests.Tree)
+	err = tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected second error")
+	}
+	got = err.Error()
+	want = `template: empty: "empty" is an incomplete or empty template; defined templates are: "secondary"`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Make sure we can execute the secondary.
+	err = tmpl.ExecuteTemplate(&b, "secondary", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/funcs.go gcc-4.8.1/libgo/go/text/template/funcs.go
--- gcc-4.8.1.orig/libgo/go/text/template/funcs.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/text/template/funcs.go	2013-10-01 16:06:44.216554279 +0000
@@ -18,7 +18,7 @@
 // FuncMap is the type of the map defining the mapping from names to functions.
 // Each function must have either a single return value, or two return values of
 // which the second has type error. In that case, if the second (error)
-// argument evaluates to non-nil during execution, execution terminates and
+// return value evaluates to non-nil during execution, execution terminates and
 // Execute returns that error.
 type FuncMap map[string]interface{}
 
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go gcc-4.8.1/libgo/go/text/template/parse/parse.go
--- gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/text/template/parse/parse.go	2013-10-01 16:06:44.216554279 +0000
@@ -429,7 +429,6 @@
 			t.unexpected(token, context)
 		}
 	}
-	return
 }
 
 func (t *Tree) parseControl(context string) (pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) {
@@ -445,7 +444,6 @@
 		if next.Type() != nodeEnd {
 			t.errorf("expected end; found %s", next)
 		}
-		elseList = elseList
 	}
 	return pipe.Position(), line, pipe, list, elseList
 }
diff -Naur gcc-4.8.1.orig/libgo/go/time/example_test.go gcc-4.8.1/libgo/go/time/example_test.go
--- gcc-4.8.1.orig/libgo/go/time/example_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/example_test.go	2013-10-01 16:06:44.216554279 +0000
@@ -58,15 +58,52 @@
 }
 
 func ExampleTime_Format() {
-	const format = "Jan 2, 2006 at 3:04pm (MST)"
+	// layout shows by example how the reference time should be represented.
+	const layout = "Jan 2, 2006 at 3:04pm (MST)"
 	t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
-	fmt.Println(t.Format(format))
-	fmt.Println(t.UTC().Format(format))
+	fmt.Println(t.Format(layout))
+	fmt.Println(t.UTC().Format(layout))
 	// Output:
 	// Nov 10, 2009 at 3:00pm (PST)
 	// Nov 10, 2009 at 11:00pm (UTC)
 }
 
+func ExampleParse() {
+	// longForm shows by example how the reference time would be represented in
+	// the desired layout.
+	const longForm = "Jan 2, 2006 at 3:04pm (MST)"
+	t, _ := time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)")
+	fmt.Println(t)
+
+	// shortForm is another way the reference time would be represented
+	// in the desired layout; it has no time zone present.
+	// Note: without explicit zone, returns time in UTC.
+	const shortForm = "2006-Jan-02"
+	t, _ = time.Parse(shortForm, "2013-Feb-03")
+	fmt.Println(t)
+
+	// Output:
+	// 2013-02-03 19:54:00 -0800 PST
+	// 2013-02-03 00:00:00 +0000 UTC
+}
+
+func ExampleParseInLocation() {
+	loc, _ := time.LoadLocation("Europe/Berlin")
+
+	const longForm = "Jan 2, 2006 at 3:04pm (MST)"
+	t, _ := time.ParseInLocation(longForm, "Jul 9, 2012 at 5:02am (CEST)", loc)
+	fmt.Println(t)
+
+	// Note: without explicit zone, returns time in given location.
+	const shortForm = "2006-Jan-02"
+	t, _ = time.ParseInLocation(shortForm, "2012-Jul-09", loc)
+	fmt.Println(t)
+
+	// Output:
+	// 2012-07-09 05:02:00 +0200 CEST
+	// 2012-07-09 00:00:00 +0200 CEST
+}
+
 func ExampleTime_Round() {
 	t := time.Date(0, 0, 0, 12, 15, 30, 918273645, time.UTC)
 	round := []time.Duration{
diff -Naur gcc-4.8.1.orig/libgo/go/time/format.go gcc-4.8.1/libgo/go/time/format.go
--- gcc-4.8.1.orig/libgo/go/time/format.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/format.go	2013-10-01 16:06:44.216554279 +0000
@@ -6,15 +6,17 @@
 
 import "errors"
 
-// These are predefined layouts for use in Time.Format.
-// The standard time used in the layouts is:
+// These are predefined layouts for use in Time.Format and Time.Parse.
+// The reference time used in the layouts is:
 //	Mon Jan 2 15:04:05 MST 2006
 // which is Unix time 1136239445. Since MST is GMT-0700,
-// the standard time can be thought of as
+// the reference time can be thought of as
 //	01/02 03:04:05PM '06 -0700
-// To define your own format, write down what the standard time would look
+// To define your own format, write down what the reference time would look
 // like formatted your way; see the values of constants like ANSIC,
-// StampMicro or Kitchen for examples.
+// StampMicro or Kitchen for examples. The model is to demonstrate what the
+// reference time looks like so that the Format and Parse methods can apply
+// the same transformation to a general time value.
 //
 // Within the format string, an underscore _ represents a space that may be
 // replaced by a digit if the following number (a day) has two digits; for
@@ -367,13 +369,16 @@
 }
 
 // Format returns a textual representation of the time value formatted
-// according to layout.  The layout defines the format by showing the
-// representation of the standard time,
+// according to layout, which defines the format by showing how the reference
+// time,
 //	Mon Jan 2 15:04:05 -0700 MST 2006
-// which is then used to describe the time to be formatted. Predefined
-// layouts ANSIC, UnixDate, RFC3339 and others describe standard
-// representations. For more information about the formats and the
-// definition of the standard time, see the documentation for ANSIC.
+// would be displayed if it were the value; it serves as an example of the
+// desired output. The same display rules will then be applied to the time
+// value.
+// Predefined layouts ANSIC, UnixDate, RFC3339 and others describe standard
+// and convenient representations of the reference time. For more information
+// about the formats and the definition of the reference time, see the
+// documentation for ANSIC and the other constants defined by this package.
 func (t Time) Format(layout string) string {
 	var (
 		name, offset, abs = t.locabs()
@@ -611,14 +616,14 @@
 	for len(prefix) > 0 {
 		if prefix[0] == ' ' {
 			if len(value) > 0 && value[0] != ' ' {
-				return "", errBad
+				return value, errBad
 			}
 			prefix = cutspace(prefix)
 			value = cutspace(value)
 			continue
 		}
 		if len(value) == 0 || value[0] != prefix[0] {
-			return "", errBad
+			return value, errBad
 		}
 		prefix = prefix[1:]
 		value = value[1:]
@@ -627,13 +632,15 @@
 }
 
 // Parse parses a formatted string and returns the time value it represents.
-// The layout defines the format by showing the representation of the
-// standard time,
+// The layout  defines the format by showing how the reference time,
 //	Mon Jan 2 15:04:05 -0700 MST 2006
-// which is then used to describe the string to be parsed. Predefined layouts
-// ANSIC, UnixDate, RFC3339 and others describe standard representations. For
-// more information about the formats and the definition of the standard
-// time, see the documentation for ANSIC.
+// would be interpreted if it were the value; it serves as an example of
+// the input format. The same interpretation will then be made to the
+// input string.
+// Predefined layouts ANSIC, UnixDate, RFC3339 and others describe standard
+// and convenient representations of the reference time. For more information
+// about the formats and the definition of the reference time, see the
+// documentation for ANSIC and the other constants defined by this package.
 //
 // Elements omitted from the value are assumed to be zero or, when
 // zero is impossible, one, so parsing "3:04pm" returns the time
@@ -641,7 +648,37 @@
 // 0, this time is before the zero Time).
 // Years must be in the range 0000..9999. The day of the week is checked
 // for syntax but it is otherwise ignored.
+//
+// In the absence of a time zone indicator, Parse returns a time in UTC.
+//
+// When parsing a time with a zone offset like -0700, if the offset corresponds
+// to a time zone used by the current location (Local), then Parse uses that
+// location and zone in the returned time. Otherwise it records the time as
+// being in a fabricated location with time fixed at the given zone offset.
+//
+// When parsing a time with a zone abbreviation like MST, if the zone abbreviation
+// has a defined offset in the current location, then that offset is used.
+// The zone abbreviation "UTC" is recognized as UTC regardless of location.
+// If the zone abbreviation is unknown, Parse records the time as being
+// in a fabricated location with the given zone abbreviation and a zero offset.
+// This choice means that such a time can be parse and reformatted with the
+// same layout losslessly, but the exact instant used in the representation will
+// differ by the actual zone offset. To avoid such problems, prefer time layouts
+// that use a numeric zone offset, or use ParseInLocation.
 func Parse(layout, value string) (Time, error) {
+	return parse(layout, value, UTC, Local)
+}
+
+// ParseInLocation is like Parse but differs in two important ways.
+// First, in the absence of time zone information, Parse interprets a time as UTC;
+// ParseInLocation interprets the time as in the given location.
+// Second, when given a zone offset or abbreviation, Parse tries to match it
+// against the Local location; ParseInLocation uses the given location.
+func ParseInLocation(layout, value string, loc *Location) (Time, error) {
+	return parse(layout, value, loc, loc)
+}
+
+func parse(layout, value string, defaultLocation, local *Location) (Time, error) {
 	alayout, avalue := layout, value
 	rangeErrString := "" // set if a value is out of range
 	amSet := false       // do we need to subtract 12 from the hour for midnight?
@@ -892,20 +929,19 @@
 		hour = 0
 	}
 
-	// TODO: be more aggressive checking day?
 	if z != nil {
 		return Date(year, Month(month), day, hour, min, sec, nsec, z), nil
 	}
 
-	t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 	if zoneOffset != -1 {
+		t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 		t.sec -= int64(zoneOffset)
 
 		// Look for local zone with the given offset.
 		// If that zone was in effect at the given time, use it.
-		name, offset, _, _, _ := Local.lookup(t.sec + internalToUnix)
+		name, offset, _, _, _ := local.lookup(t.sec + internalToUnix)
 		if offset == zoneOffset && (zoneName == "" || name == zoneName) {
-			t.loc = Local
+			t.loc = local
 			return t, nil
 		}
 
@@ -915,16 +951,14 @@
 	}
 
 	if zoneName != "" {
+		t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 		// Look for local zone with the given offset.
 		// If that zone was in effect at the given time, use it.
-		offset, _, ok := Local.lookupName(zoneName)
+		offset, _, ok := local.lookupName(zoneName, t.sec+internalToUnix)
 		if ok {
-			name, off, _, _, _ := Local.lookup(t.sec + internalToUnix - int64(offset))
-			if name == zoneName && off == offset {
-				t.sec -= int64(offset)
-				t.loc = Local
-				return t, nil
-			}
+			t.sec -= int64(offset)
+			t.loc = local
+			return t, nil
 		}
 
 		// Otherwise, create fake zone with unknown offset.
@@ -932,8 +966,8 @@
 		return t, nil
 	}
 
-	// Otherwise, fall back to UTC.
-	return t, nil
+	// Otherwise, fall back to default.
+	return Date(year, Month(month), day, hour, min, sec, nsec, defaultLocation), nil
 }
 
 func parseNanoseconds(value string, nbytes int) (ns int, rangeErrString string, err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep.go gcc-4.8.1/libgo/go/time/sleep.go
--- gcc-4.8.1.orig/libgo/go/time/sleep.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/sleep.go	2013-10-01 16:06:44.216554279 +0000
@@ -18,10 +18,25 @@
 	i      int32
 	when   int64
 	period int64
-	f      func(int64, interface{})
+	f      func(int64, interface{}) // NOTE: must not be closure
 	arg    interface{}
 }
 
+// when is a helper function for setting the 'when' field of a runtimeTimer.
+// It returns what the time will be, in nanoseconds, Duration d in the future.
+// If d is negative, it is ignored.  If the returned value would be less than
+// zero because of an overflow, MaxInt64 is returned.
+func when(d Duration) int64 {
+	if d <= 0 {
+		return nano()
+	}
+	t := nano() + int64(d)
+	if t < 0 {
+		t = 1<<63 - 1 // math.MaxInt64
+	}
+	return t
+}
+
 func startTimer(*runtimeTimer)
 func stopTimer(*runtimeTimer) bool
 
@@ -49,7 +64,7 @@
 	t := &Timer{
 		C: c,
 		r: runtimeTimer{
-			when: nano() + int64(d),
+			when: when(d),
 			f:    sendTime,
 			arg:  c,
 		},
@@ -62,9 +77,9 @@
 // It returns true if the timer had been active, false if the timer had
 // expired or been stopped.
 func (t *Timer) Reset(d Duration) bool {
-	when := nano() + int64(d)
+	w := when(d)
 	active := stopTimer(&t.r)
-	t.r.when = when
+	t.r.when = w
 	startTimer(&t.r)
 	return active
 }
@@ -94,7 +109,7 @@
 func AfterFunc(d Duration, f func()) *Timer {
 	t := &Timer{
 		r: runtimeTimer{
-			when: nano() + int64(d),
+			when: when(d),
 			f:    goFunc,
 			arg:  f,
 		},
diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep_test.go gcc-4.8.1/libgo/go/time/sleep_test.go
--- gcc-4.8.1.orig/libgo/go/time/sleep_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/sleep_test.go	2013-10-01 16:06:44.216554279 +0000
@@ -60,10 +60,11 @@
 			Sleep(Nanosecond)
 		}
 	}()
-	c := Tick(1)
+	ticker := NewTicker(1)
 	for i := 0; i < 100; i++ {
-		<-c
+		<-ticker.C
 	}
+	ticker.Stop()
 	atomic.StoreUint32(&stop, 1)
 }
 
@@ -294,3 +295,23 @@
 	}
 	t.Error(err)
 }
+
+// Test that sleeping for an interval so large it overflows does not
+// result in a short sleep duration.
+func TestOverflowSleep(t *testing.T) {
+	const timeout = 25 * Millisecond
+	const big = Duration(int64(1<<63 - 1))
+	select {
+	case <-After(big):
+		t.Fatalf("big timeout fired")
+	case <-After(timeout):
+		// OK
+	}
+	const neg = Duration(-1 << 63)
+	select {
+	case <-After(neg):
+		// OK
+	case <-After(timeout):
+		t.Fatalf("negative timeout didn't fire")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/time/time_test.go gcc-4.8.1/libgo/go/time/time_test.go
--- gcc-4.8.1.orig/libgo/go/time/time_test.go	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/time_test.go	2013-10-01 16:06:44.216554279 +0000
@@ -479,6 +479,7 @@
 	{"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0},
 	{"RFC850", RFC850, "Thursday, 04-Feb-10 21:00:57 PST", true, true, 1, 0},
 	{"RFC1123", RFC1123, "Thu, 04 Feb 2010 21:00:57 PST", true, true, 1, 0},
+	{"RFC1123", RFC1123, "Thu, 04 Feb 2010 22:00:57 PDT", true, true, 1, 0},
 	{"RFC1123Z", RFC1123Z, "Thu, 04 Feb 2010 21:00:57 -0800", true, true, 1, 0},
 	{"RFC3339", RFC3339, "2010-02-04T21:00:57-08:00", true, false, 1, 0},
 	{"custom: \"2006-01-02 15:04:05-07\"", "2006-01-02 15:04:05-07", "2010-02-04 21:00:57-08", true, false, 1, 0},
@@ -534,6 +535,42 @@
 	}
 }
 
+func TestParseInSydney(t *testing.T) {
+	loc, err := LoadLocation("Australia/Sydney")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// Check that Parse (and ParseInLocation) understand
+	// that Feb EST and Aug EST are different time zones in Sydney
+	// even though both are called EST.
+	t1, err := ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 EST", loc)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t2 := Date(2013, February, 1, 00, 00, 00, 0, loc)
+	if t1 != t2 {
+		t.Fatalf("ParseInLocation(Feb 01 2013 EST, Sydney) = %v, want %v", t1, t2)
+	}
+	_, offset := t1.Zone()
+	if offset != 11*60*60 {
+		t.Fatalf("ParseInLocation(Feb 01 2013 EST, Sydney).Zone = _, %d, want _, %d", offset, 11*60*60)
+	}
+
+	t1, err = ParseInLocation("Jan 02 2006 MST", "Aug 01 2013 EST", loc)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t2 = Date(2013, August, 1, 00, 00, 00, 0, loc)
+	if t1 != t2 {
+		t.Fatalf("ParseInLocation(Aug 01 2013 EST, Sydney) = %v, want %v", t1, t2)
+	}
+	_, offset = t1.Zone()
+	if offset != 10*60*60 {
+		t.Fatalf("ParseInLocation(Aug 01 2013 EST, Sydney).Zone = _, %d, want _, %d", offset, 10*60*60)
+	}
+}
+
 var rubyTests = []ParseTest{
 	{"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0},
 	// Ignore the time zone in the test. If it parses, it'll be OK.
@@ -640,6 +677,11 @@
 	// issue 4502. StampNano requires exactly 9 digits of precision.
 	{StampNano, "Dec  7 11:22:01.000000", `cannot parse ".000000" as ".000000000"`},
 	{StampNano, "Dec  7 11:22:01.0000000000", "extra text: 0"},
+	// issue 4493. Helpful errors.
+	{RFC3339, "2006-01-02T15:04:05Z07:00", `parsing time "2006-01-02T15:04:05Z07:00": extra text: 07:00`},
+	{RFC3339, "2006-01-02T15:04_abc", `parsing time "2006-01-02T15:04_abc" as "2006-01-02T15:04:05Z07:00": cannot parse "_abc" as ":"`},
+	{RFC3339, "2006-01-02T15:04:05_abc", `parsing time "2006-01-02T15:04:05_abc" as "2006-01-02T15:04:05Z07:00": cannot parse "_abc" as "Z07:00"`},
+	{RFC3339, "2006-01-02T15:04:05Z_abc", `parsing time "2006-01-02T15:04:05Z_abc": extra text: _abc`},
 }
 
 func TestParseErrors(t *testing.T) {
@@ -1258,23 +1300,33 @@
 }
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		allocs := int(testing.AllocsPerRun(100, mt.fn))
+		if allocs > mt.count {
+			t.Errorf("%s: %d allocs, want %d", mt.desc, allocs, mt.count)
 		}
 	}
 }
 
+func TestLoadFixed(t *testing.T) {
+	// Issue 4064: handle locations without any zone transitions.
+	loc, err := LoadLocation("Etc/GMT+1")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// The tzdata name Etc/GMT+1 uses "east is negative",
+	// but Go and most other systems use "east is positive".
+	// So GMT+1 corresponds to -3600 in the Go zone, not +3600.
+	name, offset := Now().In(loc).Zone()
+	if name != "GMT+1" || offset != -1*60*60 {
+		t.Errorf("Now().In(loc).Zone() = %q, %d, want %q, %d", name, offset, "GMT+1", -1*60*60)
+	}
+}
+
 func BenchmarkNow(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		t = Now()
diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo.go gcc-4.8.1/libgo/go/time/zoneinfo.go
--- gcc-4.8.1.orig/libgo/go/time/zoneinfo.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/zoneinfo.go	2013-10-01 16:06:44.220554279 +0000
@@ -145,15 +145,36 @@
 }
 
 // lookupName returns information about the time zone with
-// the given name (such as "EST").
-func (l *Location) lookupName(name string) (offset int, isDST bool, ok bool) {
+// the given name (such as "EST") at the given pseudo-Unix time
+// (what the given time of day would be in UTC).
+func (l *Location) lookupName(name string, unix int64) (offset int, isDST bool, ok bool) {
 	l = l.get()
+
+	// First try for a zone with the right name that was actually
+	// in effect at the given time. (In Sydney, Australia, both standard
+	// and daylight-savings time are abbreviated "EST". Using the
+	// offset helps us pick the right one for the given time.
+	// It's not perfect: during the backward transition we might pick
+	// either one.)
+	for i := range l.zone {
+		zone := &l.zone[i]
+		if zone.name == name {
+			nam, offset, isDST, _, _ := l.lookup(unix - int64(zone.offset))
+			if nam == zone.name {
+				return offset, isDST, true
+			}
+		}
+	}
+
+	// Otherwise fall back to an ordinary name match.
 	for i := range l.zone {
 		zone := &l.zone[i]
 		if zone.name == name {
 			return zone.offset, zone.isDST, true
 		}
 	}
+
+	// Otherwise, give up.
 	return
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go gcc-4.8.1/libgo/go/time/zoneinfo_read.go
--- gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/go/time/zoneinfo_read.go	2013-10-01 16:06:44.220554279 +0000
@@ -174,6 +174,12 @@
 		}
 	}
 
+	if len(tx) == 0 {
+		// Build fake transition to cover all time.
+		// This happens in fixed locations like "Etc/GMT0".
+		tx = append(tx, zoneTrans{when: -1 << 63, index: 0})
+	}
+
 	// Committed to succeed.
 	l = &Location{zone: zone, tx: tx}
 
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/letter.go gcc-4.8.1/libgo/go/unicode/letter.go
--- gcc-4.8.1.orig/libgo/go/unicode/letter.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/unicode/letter.go	2013-10-01 16:06:44.220554279 +0000
@@ -151,7 +151,7 @@
 	return false
 }
 
-// Is tests whether rune is in the specified table of ranges.
+// Is reports whether the rune is in the specified table of ranges.
 func Is(rangeTab *RangeTable, r rune) bool {
 	r16 := rangeTab.R16
 	if len(r16) > 0 && r <= rune(r16[len(r16)-1].Hi) {
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/tables.go gcc-4.8.1/libgo/go/unicode/tables.go
--- gcc-4.8.1.orig/libgo/go/unicode/tables.go	2012-11-21 07:03:38.000000000 +0000
+++ gcc-4.8.1/libgo/go/unicode/tables.go	2013-10-01 16:06:44.220554279 +0000
@@ -2864,7 +2864,7 @@
 	Lo     = _Lo // Lo is the set of Unicode characters in category Lo.
 	Lower  = _Ll // Lower is the set of Unicode lower case letters.
 	Ll     = _Ll // Ll is the set of Unicode characters in category Ll.
-	Mark   = _M  // Mark/M is the set of Unicode mark characters, category  M.
+	Mark   = _M  // Mark/M is the set of Unicode mark characters, category M.
 	M      = _M
 	Mc     = _Mc // Mc is the set of Unicode characters in category Mc.
 	Me     = _Me // Me is the set of Unicode characters in category Me.
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go
--- gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go	2013-10-01 16:06:44.220554279 +0000
@@ -124,7 +124,7 @@
 		s := m.str
 		r, size = DecodeRuneInString(s)
 		if r != m.r || size != len(b) {
-			t.Errorf("DecodeRune(%q) = %#04x, %d want %#04x, %d", s, r, size, m.r, len(b))
+			t.Errorf("DecodeRuneInString(%q) = %#04x, %d want %#04x, %d", s, r, size, m.r, len(b))
 		}
 
 		// there's an extra byte that bytes left behind - make sure trailing byte works
@@ -164,7 +164,7 @@
 			t.Errorf("DecodeRune(%q) = %#04x, %d want %#04x, %d", b, r, size, RuneError, 1)
 		}
 		s = string(b)
-		r, size = DecodeRune(b)
+		r, size = DecodeRuneInString(s)
 		if r != RuneError || size != 1 {
 			t.Errorf("DecodeRuneInString(%q) = %#04x, %d want %#04x, %d", s, r, size, RuneError, 1)
 		}
@@ -182,7 +182,7 @@
 		s := m.str
 		r, size = DecodeRuneInString(s)
 		if r != RuneError || size != 1 {
-			t.Errorf("DecodeRune(%q) = %x, %d want %x, %d", b, r, size, RuneError, 1)
+			t.Errorf("DecodeRuneInString(%q) = %x, %d want %x, %d", b, r, size, RuneError, 1)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/merge.sh gcc-4.8.1/libgo/merge.sh
--- gcc-4.8.1.orig/libgo/merge.sh	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/merge.sh	2013-10-01 16:06:44.220554279 +0000
@@ -163,12 +163,12 @@
   done
 done
 
-runtime="chan.c cpuprof.c env_posix.c lock_futex.c lock_sema.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mgc0.h mheap.c msize.c panic.c print.c proc.c race.h runtime.c runtime.h signal_unix.c malloc.h malloc.goc mprof.goc parfor.c runtime1.goc sema.goc sigqueue.goc string.goc time.goc"
+runtime="chan.c cpuprof.c env_posix.c lock_futex.c lock_sema.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mgc0.h mheap.c msize.c netpoll.goc netpoll_epoll.c netpoll_kqueue.c netpoll_stub.c panic.c print.c proc.c race.h runtime.c runtime.h signal_unix.c signal_unix.h malloc.h malloc.goc mprof.goc parfor.c runtime1.goc sema.goc sigqueue.goc string.goc time.goc"
 for f in $runtime; do
   merge_c $f $f
 done
 
-merge_c thread_linux.c thread-linux.c
+merge_c os_linux.c thread-linux.c
 merge_c mem_linux.c mem.c
 
 (cd ${OLDDIR}/src/pkg && find . -name '*.go' -print) | while read f; do
diff -Naur gcc-4.8.1.orig/libgo/runtime/chan.c gcc-4.8.1/libgo/runtime/chan.c
--- gcc-4.8.1.orig/libgo/runtime/chan.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/chan.c	2013-10-01 16:06:44.220554279 +0000
@@ -35,6 +35,8 @@
 	SudoG*	last;
 };
 
+// The garbage collector is assuming that Hchan can only contain pointers into the stack
+// and cannot contain pointers into the heap.
 struct	Hchan
 {
 	uintgo	qcount;			// total data in the q
@@ -49,6 +51,8 @@
 	Lock;
 };
 
+uint32 runtime_Hchansize = sizeof(Hchan);
+
 // Buffer follows Hchan immediately in memory.
 // chanbuf(c, i) is pointer to the i'th slot in the buffer.
 #define chanbuf(c, i) ((byte*)((c)+1)+(uintptr)(c)->elemsize*(i))
@@ -107,6 +111,7 @@
 	c->elemsize = elem->__size;
 	c->elemalign = elem->__align;
 	c->dataqsiz = hint;
+	runtime_settype(c, (uintptr)t | TypeInfo_Chan);
 
 	if(debug)
 		runtime_printf("makechan: chan=%p; elemsize=%D; elemalign=%d; dataqsiz=%D\n",
@@ -875,16 +880,27 @@
 static void
 selunlock(Select *sel)
 {
-	uint32 i;
-	Hchan *c, *c0;
+	int32 i, n, r;
+	Hchan *c;
 
-	c = nil;
-	for(i=sel->ncase; i-->0;) {
-		c0 = sel->lockorder[i];
-		if(c0 && c0 != c) {
-			c = c0;
-			runtime_unlock(c);
-		}
+	// We must be very careful here to not touch sel after we have unlocked
+	// the last lock, because sel can be freed right after the last unlock.
+	// Consider the following situation.
+	// First M calls runtime_park() in runtime_selectgo() passing the sel.
+	// Once runtime_park() has unlocked the last lock, another M makes
+	// the G that calls select runnable again and schedules it for execution.
+	// When the G runs on another M, it locks all the locks and frees sel.
+	// Now if the first M touches sel, it will access freed memory.
+	n = (int32)sel->ncase;
+	r = 0;
+	// skip the default case
+	if(n>0 && sel->lockorder[0] == nil)
+		r = 1;
+	for(i = n-1; i >= r; i--) {
+		c = sel->lockorder[i];
+		if(i>0 && sel->lockorder[i-1] == c)
+			continue;  // will unlock it on the next iteration
+		runtime_unlock(c);
 	}
 }
 
@@ -910,7 +926,7 @@
 selectgo(Select **selp)
 {
 	Select *sel;
-	uint32 o, i, j;
+	uint32 o, i, j, k;
 	Scase *cas, *dfl;
 	Hchan *c;
 	SudoG *sg;
@@ -946,12 +962,42 @@
 	}
 
 	// sort the cases by Hchan address to get the locking order.
+	// simple heap sort, to guarantee n log n time and constant stack footprint.
 	for(i=0; i<sel->ncase; i++) {
-		c = sel->scase[i].chan;
-		for(j=i; j>0 && sel->lockorder[j-1] >= c; j--)
-			sel->lockorder[j] = sel->lockorder[j-1];
+		j = i;
+		c = sel->scase[j].chan;
+		while(j > 0 && sel->lockorder[k=(j-1)/2] < c) {
+			sel->lockorder[j] = sel->lockorder[k];
+			j = k;
+		}
+		sel->lockorder[j] = c;
+	}
+	for(i=sel->ncase; i-->0; ) {
+		c = sel->lockorder[i];
+		sel->lockorder[i] = sel->lockorder[0];
+		j = 0;
+		for(;;) {
+			k = j*2+1;
+			if(k >= i)
+				break;
+			if(k+1 < i && sel->lockorder[k] < sel->lockorder[k+1])
+				k++;
+			if(c < sel->lockorder[k]) {
+				sel->lockorder[j] = sel->lockorder[k];
+				j = k;
+				continue;
+			}
+			break;
+		}
 		sel->lockorder[j] = c;
 	}
+	/*
+	for(i=0; i+1<sel->ncase; i++)
+		if(sel->lockorder[i] > sel->lockorder[i+1]) {
+			runtime_printf("i=%d %p %p\n", i, sel->lockorder[i], sel->lockorder[i+1]);
+			runtime_throw("select: broken sort");
+		}
+	*/
 	sellock(sel);
 
 loop:
@@ -1048,7 +1094,7 @@
 	c = cas->chan;
 
 	if(c->dataqsiz > 0)
-		runtime_throw("selectgo: shouldnt happen");
+		runtime_throw("selectgo: shouldn't happen");
 
 	if(debug)
 		runtime_printf("wait-return: sel=%p c=%p cas=%p kind=%d\n",
diff -Naur gcc-4.8.1.orig/libgo/runtime/cpuprof.c gcc-4.8.1/libgo/runtime/cpuprof.c
--- gcc-4.8.1.orig/libgo/runtime/cpuprof.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/cpuprof.c	2013-10-01 16:06:44.224554278 +0000
@@ -121,7 +121,9 @@
 // LostProfileData is a no-op function used in profiles
 // to mark the number of profiling stack traces that were
 // discarded due to slow data writers.
-static void LostProfileData(void) {
+static void
+LostProfileData(void)
+{
 }
 
 extern void runtime_SetCPUProfileRate(intgo)
@@ -365,7 +367,7 @@
 		return ret;
 
 	// Wait for new log.
-	runtime_entersyscall();
+	runtime_entersyscallblock();
 	runtime_notesleep(&p->wait);
 	runtime_exitsyscall();
 	runtime_noteclear(&p->wait);
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-cgo.c gcc-4.8.1/libgo/runtime/go-cgo.c
--- gcc-4.8.1.orig/libgo/runtime/go-cgo.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-cgo.c	2013-10-01 16:06:44.224554278 +0000
@@ -35,6 +35,9 @@
   M* m;
   G* g;
 
+  if (runtime_needextram && runtime_cas (&runtime_needextram, 1, 0))
+    runtime_newextram ();
+
   m = runtime_m ();
   ++m->ncgocall;
   g = runtime_g ();
@@ -71,7 +74,24 @@
 void
 syscall_cgocallback ()
 {
+  M *mp;
+
+  mp = runtime_m ();
+  if (mp == NULL)
+    {
+      runtime_needm ();
+      mp = runtime_m ();
+      mp->dropextram = true;
+    }
+
   runtime_exitsyscall ();
+
+  mp = runtime_m ();
+  if (mp->needextram)
+    {
+      mp->needextram = 0;
+      runtime_newextram ();
+    }
 }
 
 /* Prepare to return to C/C++ code from a callback to Go code.  */
@@ -79,7 +99,15 @@
 void
 syscall_cgocallbackdone ()
 {
+  M *mp;
+
   runtime_entersyscall ();
+  mp = runtime_m ();
+  if (mp->dropextram && runtime_g ()->ncgo == 0)
+    {
+      mp->dropextram = false;
+      runtime_dropm ();
+    }
 }
 
 /* Allocate memory and save it in a list visible to the Go garbage
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-defer.c gcc-4.8.1/libgo/runtime/go-defer.c
--- gcc-4.8.1.orig/libgo/runtime/go-defer.c	2011-11-28 05:45:49.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-defer.c	2013-10-01 16:06:44.224554278 +0000
@@ -42,6 +42,7 @@
     {
       struct __go_defer_stack *d;
       void (*pfn) (void *);
+      M *m;
 
       d = g->defer;
       pfn = d->__pfn;
@@ -51,7 +52,14 @@
 	(*pfn) (d->__arg);
 
       g->defer = d->__next;
-      __go_free (d);
+
+      /* This may be called by a cgo callback routine to defer the
+	 call to syscall.CgocallBackDone, in which case we will not
+	 have a memory context.  Don't try to free anything in that
+	 case--the GC will release it later.  */
+      m = runtime_m ();
+      if (m != NULL && m->mcache != NULL)
+	__go_free (d);
 
       /* Since we are executing a defer function here, we know we are
 	 returning from the calling function.  If the calling
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-main.c gcc-4.8.1/libgo/runtime/go-main.c
--- gcc-4.8.1.orig/libgo/runtime/go-main.c	2012-11-01 03:02:13.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-main.c	2013-10-01 16:06:44.224554278 +0000
@@ -30,9 +30,6 @@
 
 extern char **environ;
 
-extern void runtime_main (void);
-static void mainstart (void *);
-
 /* The main function.  */
 
 int
@@ -42,13 +39,7 @@
   runtime_args (argc, (byte **) argv);
   runtime_osinit ();
   runtime_schedinit ();
-  __go_go (mainstart, NULL);
+  __go_go (runtime_main, NULL);
   runtime_mstart (runtime_m ());
   abort ();
 }
-
-static void
-mainstart (void *arg __attribute__ ((unused)))
-{
-  runtime_main ();
-}
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-map-index.c gcc-4.8.1/libgo/runtime/go-map-index.c
--- gcc-4.8.1.orig/libgo/runtime/go-map-index.c	2012-01-17 14:18:39.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-map-index.c	2013-10-01 16:06:44.224554278 +0000
@@ -98,7 +98,7 @@
   key_descriptor = descriptor->__map_descriptor->__key_type;
   key_offset = descriptor->__key_offset;
   key_size = key_descriptor->__size;
-  __go_assert (key_size != 0 && key_size != -1UL);
+  __go_assert (key_size != -1UL);
   equalfn = key_descriptor->__equalfn;
 
   key_hash = key_descriptor->__hashfn (key, key_size);
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-panic.c gcc-4.8.1/libgo/runtime/go-panic.c
--- gcc-4.8.1.orig/libgo/runtime/go-panic.c	2012-11-01 03:02:13.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-panic.c	2013-10-01 16:06:44.224554278 +0000
@@ -54,6 +54,7 @@
     {
       struct __go_defer_stack *d;
       void (*pfn) (void *);
+      M *m;
 
       d = g->defer;
       if (d == NULL)
@@ -95,7 +96,14 @@
 	}
 
       g->defer = d->__next;
-      __go_free (d);
+
+      /* This may be called by a cgo callback routine to defer the
+	 call to syscall.CgocallBackDone, in which case we will not
+	 have a memory context.  Don't try to free anything in that
+	 case--the GC will release it later.  */
+      m = runtime_m ();
+      if (m != NULL && m->mcache != NULL)
+	__go_free (d);
     }
 
   /* The panic was not recovered.  */
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c gcc-4.8.1/libgo/runtime/go-reflect-call.c
--- gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c	2013-03-01 19:26:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-reflect-call.c	2013-10-01 16:06:44.224554278 +0000
@@ -491,11 +491,23 @@
 }
 
 /* Call a function.  The type of the function is FUNC_TYPE, and the
-   address is FUNC_ADDR.  PARAMS is an array of parameter addresses.
-   RESULTS is an array of result addresses.  */
+   closure is FUNC_VAL.  PARAMS is an array of parameter addresses.
+   RESULTS is an array of result addresses.
+
+   If IS_INTERFACE is true this is a call to an interface method and
+   the first argument is the receiver, which is always a pointer.
+   This argument, the receiver, is not described in FUNC_TYPE.
+
+   If IS_METHOD is true this is a call to a method expression.  The
+   first argument is the receiver.  It is described in FUNC_TYPE, but
+   regardless of FUNC_TYPE, it is passed as a pointer.
+
+   If neither IS_INTERFACE nor IS_METHOD is true then we are calling a
+   function indirectly, and we must pass a closure pointer via
+   __go_set_closure.  The pointer to pass is simply FUNC_VAL.  */
 
 void
-reflect_call (const struct __go_func_type *func_type, const void *func_addr,
+reflect_call (const struct __go_func_type *func_type, FuncVal *func_val,
 	      _Bool is_interface, _Bool is_method, void **params,
 	      void **results)
 {
@@ -507,7 +519,9 @@
 
   call_result = (unsigned char *) malloc (go_results_size (func_type));
 
-  ffi_call (&cif, func_addr, call_result, params);
+  if (!is_interface && !is_method)
+    __go_set_closure (func_val);
+  ffi_call (&cif, func_val->fn, call_result, params);
 
   /* Some day we may need to free result values if RESULTS is
      NULL.  */
@@ -521,7 +535,7 @@
 
 void
 reflect_call (const struct __go_func_type *func_type __attribute__ ((unused)),
-	      const void *func_addr __attribute__ ((unused)),
+	      FuncVal *func_val __attribute__ ((unused)),
 	      _Bool is_interface __attribute__ ((unused)),
 	      _Bool is_method __attribute__ ((unused)),
 	      void **params __attribute__ ((unused)),
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c gcc-4.8.1/libgo/runtime/go-reflect-map.c
--- gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-reflect-map.c	2013-10-01 16:06:44.224554278 +0000
@@ -238,3 +238,12 @@
   __builtin_memcpy (ret, &map, sizeof (void *));
   return (uintptr_t) ret;
 }
+
+extern _Bool ismapkey (const struct __go_type_descriptor *)
+  __asm__ (GOSYM_PREFIX "reflect.ismapkey");
+
+_Bool
+ismapkey (const struct __go_type_descriptor *typ)
+{
+  return typ != NULL && typ->__hashfn != __go_type_hash_error;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-signal.c gcc-4.8.1/libgo/runtime/go-signal.c
--- gcc-4.8.1.orig/libgo/runtime/go-signal.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-signal.c	2013-10-01 16:06:44.224554278 +0000
@@ -12,6 +12,7 @@
 #include "runtime.h"
 #include "go-assert.h"
 #include "go-panic.h"
+#include "signal_unix.h"
 
 #ifndef SA_RESTART
   #define SA_RESTART 0
@@ -157,35 +158,45 @@
 /* Handle a signal, for cases where we don't panic.  We can split the
    stack here.  */
 
-static void
-sig_handler (int sig)
+void
+runtime_sighandler (int sig, Siginfo *info,
+		    void *context __attribute__ ((unused)), G *gp)
 {
+  M *m;
   int i;
 
-  if (runtime_m () == NULL)
-    {
-      runtime_badsignal (sig);
-      return;
-    }
+  m = runtime_m ();
 
 #ifdef SIGPROF
   if (sig == SIGPROF)
     {
-      runtime_sigprof ();
+      if (m != NULL && gp != m->g0 && gp != m->gsignal)
+	runtime_sigprof ();
       return;
     }
 #endif
 
+  if (m == NULL)
+    {
+      runtime_badsignal (sig);
+      return;
+    }
+
   for (i = 0; runtime_sigtab[i].sig != -1; ++i)
     {
       SigTab *t;
+      bool notify, crash;
 
       t = &runtime_sigtab[i];
 
       if (t->sig != sig)
 	continue;
 
-      if ((t->flags & SigNotify) != 0)
+      notify = false;
+#ifdef SA_SIGINFO
+      notify = info != NULL && info->si_code == SI_USER;
+#endif
+      if (notify || (t->flags & SigNotify) != 0)
 	{
 	  if (__go_sigsend (sig))
 	    return;
@@ -210,9 +221,15 @@
 	  runtime_printf ("%s\n", name);
       }
 
+      if (m->lockedg != NULL && m->ncgo > 0 && gp == m->g0)
+	{
+	  runtime_printf("signal arrived during cgo execution\n");
+	  gp = m->lockedg;
+	}
+
       runtime_printf ("\n");
 
-      if (runtime_gotraceback ())
+      if (runtime_gotraceback (&crash))
 	{
 	  G *g;
 
@@ -225,6 +242,9 @@
 	     a readable form.  */
 	}
 
+      if (crash)
+	runtime_crash ();
+
       runtime_exit (2);
     }
 
@@ -259,15 +279,14 @@
    permitted to split the stack.  */
 
 static void
-sig_panic_info_handler (int sig, siginfo_t *info,
-			void *context __attribute__ ((unused)))
+sig_panic_info_handler (int sig, Siginfo *info, void *context)
 {
   G *g;
 
   g = runtime_g ();
   if (g == NULL || info->si_code == SI_USER)
     {
-      sig_handler (sig);
+      runtime_sighandler (sig, info, context, g);
       return;
     }
 
@@ -331,7 +350,7 @@
   g = runtime_g ();
   if (g == NULL)
     {
-      sig_handler (sig);
+      runtime_sighandler (sig, NULL, NULL, g);
       return;
     }
 
@@ -373,10 +392,10 @@
    the stack.  */
 
 static void
-sig_tramp (int) __attribute__ ((no_split_stack));
+sig_tramp_info (int, Siginfo *, void *) __attribute__ ((no_split_stack));
 
 static void
-sig_tramp (int sig)
+sig_tramp_info (int sig, Siginfo *info, void *context)
 {
   G *gp;
   M *mp;
@@ -403,7 +422,7 @@
 #endif
     }
 
-  sig_handler (sig);
+  runtime_sighandler (sig, info, context, gp);
 
   /* We are going to return back to the signal trampoline and then to
      whatever we were doing before we got the signal.  Restore the
@@ -418,8 +437,20 @@
     }
 }
 
+#ifndef SA_SIGINFO
+
+static void sig_tramp (int sig) __attribute__ ((no_split_stack));
+
+static void
+sig_tramp (int sig)
+{
+  sig_tramp_info (sig, NULL, NULL);
+}
+
+#endif
+
 void
-runtime_setsig (int32 i, bool def __attribute__ ((unused)), bool restart)
+runtime_setsig (int32 i, GoSighandler *fn, bool restart)
 {
   struct sigaction sa;
   int r;
@@ -434,17 +465,30 @@
 
   if ((t->flags & SigPanic) == 0)
     {
+#ifdef SA_SIGINFO
+      sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_tramp_info;
+      sa.sa_sigaction = (void *) fn;
+#else
       sa.sa_flags = SA_ONSTACK;
-      sa.sa_handler = sig_tramp;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_tramp;
+      sa.sa_handler = (void *) fn;
+#endif
     }
   else
     {
 #ifdef SA_SIGINFO
       sa.sa_flags = SA_SIGINFO;
-      sa.sa_sigaction = sig_panic_info_handler;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_panic_info_handler;
+      sa.sa_sigaction = (void *) fn;
 #else
       sa.sa_flags = 0;
-      sa.sa_handler = sig_panic_handler;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_panic_handler;
+      sa.sa_handler = (void *) fn;
 #endif
     }
 
@@ -455,6 +499,37 @@
     __go_assert (0);
 }
 
+GoSighandler*
+runtime_getsig (int32 i)
+{
+  struct sigaction sa;
+  int r;
+  SigTab *t;
+
+  memset (&sa, 0, sizeof sa);
+
+  r = sigemptyset (&sa.sa_mask);
+  __go_assert (r == 0);
+
+  t = &runtime_sigtab[i];
+
+  if (sigaction (t->sig, NULL, &sa) != 0)
+    runtime_throw ("sigaction read failure");
+
+  if ((void *) sa.sa_handler == sig_tramp_info)
+    return runtime_sighandler;
+#ifdef SA_SIGINFO
+  if ((void *) sa.sa_handler == sig_panic_info_handler)
+    return runtime_sighandler;
+#else
+  if ((void *) sa.sa_handler == sig_tramp
+      || (void *) sa.sa_handler == sig_panic_handler)
+    return runtime_sighandler;
+#endif
+
+  return (void *) sa.sa_handler;
+}
+
 /* Used by the os package to raise SIGPIPE.  */
 
 void os_sigpipe (void) __asm__ (GOSYM_PREFIX "os.sigpipe");
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c gcc-4.8.1/libgo/runtime/go-unsafe-new.c
--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-unsafe-new.c	2013-10-01 16:06:44.224554278 +0000
@@ -21,14 +21,5 @@
 void *
 unsafe_New (const struct __go_type_descriptor *descriptor)
 {
-  uint32 flag;
-  void *ret;
-
-  flag = (descriptor->__code & GO_NO_POINTERS) != 0 ? FlagNoPointers : 0;
-  ret = runtime_mallocgc (descriptor->__size, flag, 1, 1);
-
-  if (UseSpanType && flag == 0)
-    runtime_settype (ret, (uintptr) descriptor | TypeInfo_SingleObject);
-
-  return ret;
+  return runtime_cnew (descriptor);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c
--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c	2013-10-01 16:06:44.224554278 +0000
@@ -21,21 +21,5 @@
 void *
 unsafe_NewArray (const struct __go_type_descriptor *descriptor, intgo n)
 {
-  uint64 size;
-  void *ret;
-
-  size = n * descriptor->__size;
-  if (size == 0)
-    ret = &runtime_zerobase;
-  else if ((descriptor->__code & GO_NO_POINTERS) != 0)
-    ret = runtime_mallocgc (size, FlagNoPointers, 1, 1);
-  else
-    {
-      ret = runtime_mallocgc (size, 0, 1, 1);
-
-      if (UseSpanType)
-	runtime_settype (ret, (uintptr) descriptor | TypeInfo_Array);
-    }
-
-  return ret;
+  return runtime_cnewarray (descriptor, n);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_futex.c gcc-4.8.1/libgo/runtime/lock_futex.c
--- gcc-4.8.1.orig/libgo/runtime/lock_futex.c	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/lock_futex.c	2013-10-01 16:06:44.224554278 +0000
@@ -41,7 +41,7 @@
 		runtime_throw("runtime_lock: lock count");
 
 	// Speculative grab for lock.
-	v = runtime_xchg(&l->key, MUTEX_LOCKED);
+	v = runtime_xchg((uint32*)&l->key, MUTEX_LOCKED);
 	if(v == MUTEX_UNLOCKED)
 		return;
 
@@ -64,7 +64,7 @@
 		// Try for lock, spinning.
 		for(i = 0; i < spin; i++) {
 			while(l->key == MUTEX_UNLOCKED)
-				if(runtime_cas(&l->key, MUTEX_UNLOCKED, wait))
+				if(runtime_cas((uint32*)&l->key, MUTEX_UNLOCKED, wait))
 					return;
 			runtime_procyield(ACTIVE_SPIN_CNT);
 		}
@@ -72,17 +72,17 @@
 		// Try for lock, rescheduling.
 		for(i=0; i < PASSIVE_SPIN; i++) {
 			while(l->key == MUTEX_UNLOCKED)
-				if(runtime_cas(&l->key, MUTEX_UNLOCKED, wait))
+				if(runtime_cas((uint32*)&l->key, MUTEX_UNLOCKED, wait))
 					return;
 			runtime_osyield();
 		}
 
 		// Sleep.
-		v = runtime_xchg(&l->key, MUTEX_SLEEPING);
+		v = runtime_xchg((uint32*)&l->key, MUTEX_SLEEPING);
 		if(v == MUTEX_UNLOCKED)
 			return;
 		wait = MUTEX_SLEEPING;
-		runtime_futexsleep(&l->key, MUTEX_SLEEPING, -1);
+		runtime_futexsleep((uint32*)&l->key, MUTEX_SLEEPING, -1);
 	}
 }
 
@@ -94,11 +94,11 @@
 	if(--runtime_m()->locks < 0)
 		runtime_throw("runtime_unlock: lock count");
 
-	v = runtime_xchg(&l->key, MUTEX_UNLOCKED);
+	v = runtime_xchg((uint32*)&l->key, MUTEX_UNLOCKED);
 	if(v == MUTEX_UNLOCKED)
 		runtime_throw("unlock of unlocked lock");
 	if(v == MUTEX_SLEEPING)
-		runtime_futexwakeup(&l->key, 1);
+		runtime_futexwakeup((uint32*)&l->key, 1);
 }
 
 // One-time notifications.
@@ -111,9 +111,9 @@
 void
 runtime_notewakeup(Note *n)
 {
-	if(runtime_xchg(&n->key, 1))
+	if(runtime_xchg((uint32*)&n->key, 1))
 		runtime_throw("notewakeup - double wakeup");
-	runtime_futexwakeup(&n->key, 1);
+	runtime_futexwakeup((uint32*)&n->key, 1);
 }
 
 void
@@ -121,8 +121,8 @@
 {
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(false);
-	while(runtime_atomicload(&n->key) == 0)
-		runtime_futexsleep(&n->key, 0, -1);
+	while(runtime_atomicload((uint32*)&n->key) == 0)
+		runtime_futexsleep((uint32*)&n->key, 0, -1);
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(true);
 }
@@ -137,15 +137,15 @@
 		return;
 	}
 
-	if(runtime_atomicload(&n->key) != 0)
+	if(runtime_atomicload((uint32*)&n->key) != 0)
 		return;
 
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(false);
 	deadline = runtime_nanotime() + ns;
 	for(;;) {
-		runtime_futexsleep(&n->key, 0, ns);
-		if(runtime_atomicload(&n->key) != 0)
+		runtime_futexsleep((uint32*)&n->key, 0, ns);
+		if(runtime_atomicload((uint32*)&n->key) != 0)
 			break;
 		now = runtime_nanotime();
 		if(now >= deadline)
diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_sema.c gcc-4.8.1/libgo/runtime/lock_sema.c
--- gcc-4.8.1.orig/libgo/runtime/lock_sema.c	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/lock_sema.c	2013-10-01 16:06:44.224554278 +0000
@@ -43,7 +43,7 @@
 		runtime_throw("runtime_lock: lock count");
 
 	// Speculative grab for lock.
-	if(runtime_casp(&l->waitm, nil, (void*)LOCKED))
+	if(runtime_casp((void**)&l->key, nil, (void*)LOCKED))
 		return;
 
 	if(m->waitsema == 0)
@@ -56,10 +56,10 @@
 		spin = ACTIVE_SPIN;
 
 	for(i=0;; i++) {
-		v = (uintptr)runtime_atomicloadp(&l->waitm);
+		v = (uintptr)runtime_atomicloadp((void**)&l->key);
 		if((v&LOCKED) == 0) {
 unlocked:
-			if(runtime_casp(&l->waitm, (void*)v, (void*)(v|LOCKED)))
+			if(runtime_casp((void**)&l->key, (void*)v, (void*)(v|LOCKED)))
 				return;
 			i = 0;
 		}
@@ -74,9 +74,9 @@
 			// Queue this M.
 			for(;;) {
 				m->nextwaitm = (void*)(v&~LOCKED);
-				if(runtime_casp(&l->waitm, (void*)v, (void*)((uintptr)m|LOCKED)))
+				if(runtime_casp((void**)&l->key, (void*)v, (void*)((uintptr)m|LOCKED)))
 					break;
-				v = (uintptr)runtime_atomicloadp(&l->waitm);
+				v = (uintptr)runtime_atomicloadp((void**)&l->key);
 				if((v&LOCKED) == 0)
 					goto unlocked;
 			}
@@ -99,15 +99,15 @@
 		runtime_throw("runtime_unlock: lock count");
 
 	for(;;) {
-		v = (uintptr)runtime_atomicloadp(&l->waitm);
+		v = (uintptr)runtime_atomicloadp((void**)&l->key);
 		if(v == LOCKED) {
-			if(runtime_casp(&l->waitm, (void*)LOCKED, nil))
+			if(runtime_casp((void**)&l->key, (void*)LOCKED, nil))
 				break;
 		} else {
 			// Other M's are waiting for the lock.
 			// Dequeue an M.
 			mp = (void*)(v&~LOCKED);
-			if(runtime_casp(&l->waitm, (void*)v, mp->nextwaitm)) {
+			if(runtime_casp((void**)&l->key, (void*)v, mp->nextwaitm)) {
 				// Dequeued an M.  Wake it.
 				runtime_semawakeup(mp);
 				break;
@@ -120,7 +120,7 @@
 void
 runtime_noteclear(Note *n)
 {
-	n->waitm = nil;
+	n->key = 0;
 }
 
 void
@@ -129,8 +129,8 @@
 	M *mp;
 
 	do
-		mp = runtime_atomicloadp(&n->waitm);
-	while(!runtime_casp(&n->waitm, mp, (void*)LOCKED));
+		mp = runtime_atomicloadp((void**)&n->key);
+	while(!runtime_casp((void**)&n->key, mp, (void*)LOCKED));
 
 	// Successfully set waitm to LOCKED.
 	// What was it before?
@@ -153,8 +153,8 @@
 	m = runtime_m();
 	if(m->waitsema == 0)
 		m->waitsema = runtime_semacreate();
-	if(!runtime_casp(&n->waitm, nil, m)) {  // must be LOCKED (got wakeup)
-		if(n->waitm != (void*)LOCKED)
+	if(!runtime_casp((void**)&n->key, nil, m)) {  // must be LOCKED (got wakeup)
+		if(n->key != LOCKED)
 			runtime_throw("notesleep - waitm out of sync");
 		return;
 	}
@@ -183,8 +183,8 @@
 		m->waitsema = runtime_semacreate();
 
 	// Register for wakeup on n->waitm.
-	if(!runtime_casp(&n->waitm, nil, m)) {  // must be LOCKED (got wakeup already)
-		if(n->waitm != (void*)LOCKED)
+	if(!runtime_casp((void**)&n->key, nil, m)) {  // must be LOCKED (got wakeup already)
+		if(n->key != LOCKED)
 			runtime_throw("notetsleep - waitm out of sync");
 		return;
 	}
@@ -219,10 +219,10 @@
 	// so that any notewakeup racing with the return does not
 	// try to grant us the semaphore when we don't expect it.
 	for(;;) {
-		mp = runtime_atomicloadp(&n->waitm);
+		mp = runtime_atomicloadp((void**)&n->key);
 		if(mp == m) {
 			// No wakeup yet; unregister if possible.
-			if(runtime_casp(&n->waitm, mp, nil))
+			if(runtime_casp((void**)&n->key, mp, nil))
 				return;
 		} else if(mp == (M*)LOCKED) {
 			// Wakeup happened so semaphore is available.
diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.goc gcc-4.8.1/libgo/runtime/malloc.goc
--- gcc-4.8.1.orig/libgo/runtime/malloc.goc	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/malloc.goc	2013-10-01 16:06:44.224554278 +0000
@@ -18,7 +18,7 @@
 #include "go-type.h"
 #include "race.h"
 
-MHeap runtime_mheap;
+MHeap *runtime_mheap;
 
 int32	runtime_checking;
 
@@ -41,12 +41,25 @@
 	uintptr npages;
 	MSpan *s;
 	void *v;
+	bool incallback;
 
 	m = runtime_m();
 	g = runtime_g();
-	if(g->status == Gsyscall)
-		dogc = 0;
-	if(runtime_gcwaiting && g != m->g0 && m->locks == 0 && g->status != Gsyscall) {
+
+	incallback = false;
+	if(m->mcache == nil && g->ncgo > 0) {
+		// For gccgo this case can occur when a cgo or SWIG function
+		// has an interface return type and the function
+		// returns a non-pointer, so memory allocation occurs
+		// after syscall.Cgocall but before syscall.CgocallDone.
+		// We treat it as a callback.
+		runtime_exitsyscall();
+		m = runtime_m();
+		incallback = true;
+		dogc = false;
+	}
+
+	if(runtime_gcwaiting && g != m->g0 && m->locks == 0 && dogc) {
 		runtime_gosched();
 		m = runtime_m();
 	}
@@ -78,7 +91,7 @@
 		npages = size >> PageShift;
 		if((size & PageMask) != 0)
 			npages++;
-		s = runtime_MHeap_Alloc(&runtime_mheap, npages, 0, 1, zeroed);
+		s = runtime_MHeap_Alloc(runtime_mheap, npages, 0, 1, zeroed);
 		if(s == nil)
 			runtime_throw("out of memory");
 		size = npages<<PageShift;
@@ -92,9 +105,9 @@
 
 	if (sizeof(void*) == 4 && c->local_total_alloc >= (1<<30)) {
 		// purge cache stats to prevent overflow
-		runtime_lock(&runtime_mheap);
+		runtime_lock(runtime_mheap);
 		runtime_purgecachedstats(c);
-		runtime_unlock(&runtime_mheap);
+		runtime_unlock(runtime_mheap);
 	}
 
 	if(!(flag & FlagNoGC))
@@ -129,6 +142,10 @@
 		runtime_racemalloc(v, size, m->racepc);
 		m->racepc = nil;
 	}
+
+	if(incallback)
+		runtime_entersyscall();
+
 	return v;
 }
 
@@ -175,17 +192,17 @@
 	if(sizeclass == 0) {
 		// Large object.
 		size = s->npages<<PageShift;
-		*(uintptr*)(s->start<<PageShift) = 1;	// mark as "needs to be zeroed"
+		*(uintptr*)(s->start<<PageShift) = (uintptr)0xfeedfeedfeedfeedll;	// mark as "needs to be zeroed"
 		// Must mark v freed before calling unmarkspan and MHeap_Free:
 		// they might coalesce v into other spans and change the bitmap further.
 		runtime_markfreed(v, size);
 		runtime_unmarkspan(v, 1<<PageShift);
-		runtime_MHeap_Free(&runtime_mheap, s, 1);
+		runtime_MHeap_Free(runtime_mheap, s, 1);
 	} else {
 		// Small object.
 		size = runtime_class_to_size[sizeclass];
 		if(size > sizeof(uintptr))
-			((uintptr*)v)[1] = 1;	// mark as "needs to be zeroed"
+			((uintptr*)v)[1] = (uintptr)0xfeedfeedfeedfeedll;	// mark as "needs to be zeroed"
 		// Must mark v freed before calling MCache_Free:
 		// it might coalesce v and other blocks into a bigger span
 		// and change the bitmap further.
@@ -213,12 +230,12 @@
 	m->mcache->local_nlookup++;
 	if (sizeof(void*) == 4 && m->mcache->local_nlookup >= (1<<30)) {
 		// purge cache stats to prevent overflow
-		runtime_lock(&runtime_mheap);
+		runtime_lock(runtime_mheap);
 		runtime_purgecachedstats(m->mcache);
-		runtime_unlock(&runtime_mheap);
+		runtime_unlock(runtime_mheap);
 	}
 
-	s = runtime_MHeap_LookupMaybe(&runtime_mheap, v);
+	s = runtime_MHeap_LookupMaybe(runtime_mheap, v);
 	if(sp)
 		*sp = s;
 	if(s == nil) {
@@ -262,11 +279,11 @@
 	intgo rate;
 	MCache *c;
 
-	runtime_lock(&runtime_mheap);
-	c = runtime_FixAlloc_Alloc(&runtime_mheap.cachealloc);
-	mstats.mcache_inuse = runtime_mheap.cachealloc.inuse;
-	mstats.mcache_sys = runtime_mheap.cachealloc.sys;
-	runtime_unlock(&runtime_mheap);
+	runtime_lock(runtime_mheap);
+	c = runtime_FixAlloc_Alloc(&runtime_mheap->cachealloc);
+	mstats.mcache_inuse = runtime_mheap->cachealloc.inuse;
+	mstats.mcache_sys = runtime_mheap->cachealloc.sys;
+	runtime_unlock(runtime_mheap);
 	runtime_memclr((byte*)c, sizeof(*c));
 
 	// Set first allocation sample size.
@@ -283,10 +300,10 @@
 runtime_freemcache(MCache *c)
 {
 	runtime_MCache_ReleaseAll(c);
-	runtime_lock(&runtime_mheap);
+	runtime_lock(runtime_mheap);
 	runtime_purgecachedstats(c);
-	runtime_FixAlloc_Free(&runtime_mheap.cachealloc, c);
-	runtime_unlock(&runtime_mheap);
+	runtime_FixAlloc_Free(&runtime_mheap->cachealloc, c);
+	runtime_unlock(runtime_mheap);
 }
 
 void
@@ -319,7 +336,7 @@
 {
 	byte *p;
 	uintptr arena_size, bitmap_size;
-	extern byte end[];
+	extern byte _end[];
 	byte *want;
 	uintptr limit;
 
@@ -334,9 +351,15 @@
 	USED(arena_size);
 	USED(bitmap_size);
 
+	if((runtime_mheap = runtime_SysAlloc(sizeof(*runtime_mheap))) == nil)
+		runtime_throw("runtime: cannot allocate heap metadata");
+
 	runtime_InitSizes();
 
-	limit = runtime_memlimit();
+	// limit = runtime_memlimit();
+	// See https://code.google.com/p/go/issues/detail?id=5049
+	// TODO(rsc): Fix after 1.1.
+	limit = 0;
 
 	// Set up the allocation arena, a contiguous area of memory where
 	// allocated data will be found.  The arena begins with a bitmap large
@@ -402,7 +425,7 @@
 		// So adjust it upward a little bit ourselves: 1/4 MB to get
 		// away from the running binary image and then round up
 		// to a MB boundary.
-		want = (byte*)(((uintptr)end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
+		want = (byte*)(((uintptr)_end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
 		if(0xffffffff - (uintptr)want <= bitmap_size + arena_size)
 		  want = 0;
 		p = runtime_SysReserve(want, bitmap_size + arena_size);
@@ -414,13 +437,13 @@
 	if((uintptr)p & (((uintptr)1<<PageShift)-1))
 		runtime_throw("runtime: SysReserve returned unaligned address");
 
-	runtime_mheap.bitmap = p;
-	runtime_mheap.arena_start = p + bitmap_size;
-	runtime_mheap.arena_used = runtime_mheap.arena_start;
-	runtime_mheap.arena_end = runtime_mheap.arena_start + arena_size;
+	runtime_mheap->bitmap = p;
+	runtime_mheap->arena_start = p + bitmap_size;
+	runtime_mheap->arena_used = runtime_mheap->arena_start;
+	runtime_mheap->arena_end = runtime_mheap->arena_start + arena_size;
 
 	// Initialize the rest of the allocator.	
-	runtime_MHeap_Init(&runtime_mheap, runtime_SysAlloc);
+	runtime_MHeap_Init(runtime_mheap, runtime_SysAlloc);
 	runtime_m()->mcache = runtime_allocmcache();
 
 	// See if it works.
@@ -519,8 +542,8 @@
 		// (Manually inlined copy of runtime_MHeap_Lookup)
 		p = (uintptr)v>>PageShift;
 		if(sizeof(void*) == 8)
-			p -= (uintptr)runtime_mheap.arena_start >> PageShift;
-		s = runtime_mheap.map[p];
+			p -= (uintptr)runtime_mheap->arena_start >> PageShift;
+		s = runtime_mheap->map[p];
 
 		if(s->sizeclass == 0) {
 			s->types.compression = MTypes_Single;
@@ -537,9 +560,11 @@
 			nbytes3 = 8*sizeof(uintptr) + 1*ntypes;
 
 			if(!sysalloc) {
-				data3 = runtime_mallocgc(nbytes3, FlagNoPointers, 0, 1);
+				data3 = runtime_mallocgc(nbytes3, FlagNoProfiling|FlagNoPointers, 0, 1);
 			} else {
 				data3 = runtime_SysAlloc(nbytes3);
+				if(data3 == nil)
+					runtime_throw("runtime: cannot allocate memory");
 				if(0) runtime_printf("settype(0->3): SysAlloc(%x) --> %p\n", (uint32)nbytes3, data3);
 			}
 
@@ -573,9 +598,11 @@
 				nbytes2 = ntypes * sizeof(uintptr);
 
 				if(!sysalloc) {
-					data2 = runtime_mallocgc(nbytes2, FlagNoPointers, 0, 1);
+					data2 = runtime_mallocgc(nbytes2, FlagNoProfiling|FlagNoPointers, 0, 1);
 				} else {
 					data2 = runtime_SysAlloc(nbytes2);
+					if(data2 == nil)
+						runtime_throw("runtime: cannot allocate memory");
 					if(0) runtime_printf("settype.(3->2): SysAlloc(%x) --> %p\n", (uint32)nbytes2, data2);
 				}
 
@@ -633,7 +660,7 @@
 	}
 
 	if(DebugTypeAtBlockEnd) {
-		s = runtime_MHeap_Lookup(&runtime_mheap, v);
+		s = runtime_MHeap_Lookup(runtime_mheap, v);
 		*(uintptr*)((uintptr)v+s->elemsize-sizeof(uintptr)) = t;
 	}
 }
@@ -672,7 +699,7 @@
 	uintptr t, ofs;
 	byte *data;
 
-	s = runtime_MHeap_LookupMaybe(&runtime_mheap, v);
+	s = runtime_MHeap_LookupMaybe(runtime_mheap, v);
 	if(s != nil) {
 		t = 0;
 		switch(s->types.compression) {
@@ -731,9 +758,8 @@
 		ret = runtime_mallocgc(typ->__size, flag, 1, 1);
 
 		if(UseSpanType && !flag) {
-			if(false) {
+			if(false)
 				runtime_printf("new %S: %p\n", *typ->__reflection, ret);
-			}
 			runtime_settype(ret, (uintptr)typ | TypeInfo_SingleObject);
 		}
 	}
@@ -741,6 +767,45 @@
 	return ret;
 }
 
+static void*
+cnew(const Type *typ, intgo n, int32 objtyp)
+{
+	uint32 flag;
+	void *ret;
+
+	if((objtyp&(PtrSize-1)) != objtyp)
+		runtime_throw("runtime: invalid objtyp");
+	if(n < 0 || (typ->__size > 0 && (uintptr)n > (MaxMem/typ->__size)))
+		runtime_panicstring("runtime: allocation size out of range");
+	if(typ->__size == 0 || n == 0) {
+		// All 0-length allocations use this pointer.
+		// The language does not require the allocations to
+		// have distinct values.
+		return &runtime_zerobase;
+	}
+	flag = typ->__code&GO_NO_POINTERS ? FlagNoPointers : 0;
+	ret = runtime_mallocgc(typ->__size*n, flag, 1, 1);
+	if(UseSpanType && !flag) {
+		if(false)
+			runtime_printf("cnew [%D]%S: %p\n", (int64)n, *typ->__reflection, ret);
+		runtime_settype(ret, (uintptr)typ | TypeInfo_SingleObject);
+	}
+	return ret;
+}
+
+// same as runtime_new, but callable from C
+void*
+runtime_cnew(const Type *typ)
+{
+	return cnew(typ, 1, TypeInfo_SingleObject);
+}
+
+void*
+runtime_cnewarray(const Type *typ, intgo n)
+{
+	return cnew(typ, n, TypeInfo_Array);
+}
+
 func GC() {
 	runtime_gc(1);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.h gcc-4.8.1/libgo/runtime/malloc.h
--- gcc-4.8.1.orig/libgo/runtime/malloc.h	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/malloc.h	2013-10-01 16:06:44.224554278 +0000
@@ -86,6 +86,7 @@
 typedef struct MStats	MStats;
 typedef struct MLink	MLink;
 typedef struct MTypes	MTypes;
+typedef struct GCStats	GCStats;
 
 enum
 {
@@ -114,10 +115,18 @@
 	HeapAllocChunk = 1<<20,		// Chunk size for heap growth
 
 	// Number of bits in page to span calculations (4k pages).
-	// On 64-bit, we limit the arena to 128GB, or 37 bits.
+	// On Windows 64-bit we limit the arena to 32GB or 35 bits (see below for reason).
+	// On other 64-bit platforms, we limit the arena to 128GB, or 37 bits.
 	// On 32-bit, we don't bother limiting anything, so we use the full 32-bit address.
 #if __SIZEOF_POINTER__ == 8
+#ifdef GOOS_windows
+	// Windows counts memory used by page table into committed memory
+	// of the process, so we can't reserve too much memory.
+	// See http://golang.org/issue/5402 and http://golang.org/issue/5236.
+	MHeapMap_Bits = 35 - PageShift,
+#else
 	MHeapMap_Bits = 37 - PageShift,
+#endif
 #else
 	MHeapMap_Bits = 32 - PageShift,
 #endif
@@ -133,7 +142,7 @@
 // This must be a #define instead of an enum because it
 // is so large.
 #if __SIZEOF_POINTER__ == 8
-#define	MaxMem	(1ULL<<(MHeapMap_Bits+PageShift))	/* 128 GB */
+#define	MaxMem	(1ULL<<(MHeapMap_Bits+PageShift))	/* 128 GB or 32 GB */
 #else
 #define	MaxMem	((uintptr)-1)
 #endif
@@ -229,7 +238,7 @@
 	uint64	buckhash_sys;	// profiling bucket hash table
 
 	// Statistics about garbage collector.
-	// Protected by stopping the world during GC.
+	// Protected by mheap or stopping the world during GC.
 	uint64	next_gc;	// next GC (in heap_alloc time)
 	uint64  last_gc;	// last GC (in absolute time)
 	uint64	pause_total_ns;
@@ -249,7 +258,6 @@
 extern MStats mstats
   __asm__ (GOSYM_PREFIX "runtime.VmemStats");
 
-
 // Size classes.  Computed and initialized by InitSizes.
 //
 // SizeToClass(0 <= n <= MaxSmallSize) returns the size class,
@@ -416,18 +424,18 @@
 	byte *arena_end;
 
 	// central free lists for small size classes.
-	// the union makes sure that the MCentrals are
+	// the padding makes sure that the MCentrals are
 	// spaced CacheLineSize bytes apart, so that each MCentral.Lock
 	// gets its own cache line.
-	union {
+	struct {
 		MCentral;
-		byte pad[CacheLineSize];
+		byte pad[64];
 	} central[NumSizeClasses];
 
 	FixAlloc spanalloc;	// allocator for Span*
 	FixAlloc cachealloc;	// allocator for MCache*
 };
-extern MHeap runtime_mheap;
+extern MHeap *runtime_mheap;
 
 void	runtime_MHeap_Init(MHeap *h, void *(*allocator)(uintptr));
 MSpan*	runtime_MHeap_Alloc(MHeap *h, uintptr npage, int32 sizeclass, int32 acct, int32 zeroed);
@@ -452,8 +460,8 @@
 bool	runtime_blockspecial(void*);
 void	runtime_setblockspecial(void*, bool);
 void	runtime_purgecachedstats(MCache*);
-void*	runtime_new(const Type *);
-#define runtime_cnew(T) runtime_new(T)
+void*	runtime_cnew(const Type*);
+void*	runtime_cnewarray(const Type*, intgo);
 
 void	runtime_settype(void*, uintptr);
 void	runtime_settype_flush(M*, bool);
@@ -485,7 +493,7 @@
 void	runtime_gchelper(void);
 
 struct __go_func_type;
-bool	runtime_getfinalizer(void *p, bool del, void (**fn)(void*), const struct __go_func_type **ft);
+bool	runtime_getfinalizer(void *p, bool del, FuncVal **fn, const struct __go_func_type **ft);
 void	runtime_walkfintab(void (*fn)(void*), void (*scan)(Obj));
 
 enum
@@ -493,6 +501,7 @@
 	TypeInfo_SingleObject = 0,
 	TypeInfo_Array = 1,
 	TypeInfo_Map = 2,
+	TypeInfo_Chan = 3,
 
 	// Enables type information at the end of blocks allocated from heap	
 	DebugTypeAtBlockEnd = 0,
@@ -504,5 +513,5 @@
 
 void	runtime_memorydump(void);
 
+void	runtime_proc_scan(void (*)(Obj));
 void	runtime_time_scan(void (*)(Obj));
-void	runtime_trampoline_scan(void (*)(Obj));
diff -Naur gcc-4.8.1.orig/libgo/runtime/mcache.c gcc-4.8.1/libgo/runtime/mcache.c
--- gcc-4.8.1.orig/libgo/runtime/mcache.c	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mcache.c	2013-10-01 16:06:44.224554278 +0000
@@ -21,7 +21,7 @@
 	l = &c->list[sizeclass];
 	if(l->list == nil) {
 		// Replenish using central lists.
-		n = runtime_MCentral_AllocList(&runtime_mheap.central[sizeclass],
+		n = runtime_MCentral_AllocList(&runtime_mheap->central[sizeclass],
 			runtime_class_to_transfercount[sizeclass], &first);
 		if(n == 0)
 			runtime_throw("out of memory");
@@ -69,7 +69,7 @@
 	c->size -= n*runtime_class_to_size[sizeclass];
 
 	// Return them to central free list.
-	runtime_MCentral_FreeList(&runtime_mheap.central[sizeclass], n, first);
+	runtime_MCentral_FreeList(&runtime_mheap->central[sizeclass], n, first);
 }
 
 void
diff -Naur gcc-4.8.1.orig/libgo/runtime/mcentral.c gcc-4.8.1/libgo/runtime/mcentral.c
--- gcc-4.8.1.orig/libgo/runtime/mcentral.c	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mcentral.c	2013-10-01 16:06:44.224554278 +0000
@@ -108,7 +108,7 @@
 	int32 size;
 
 	// Find span for v.
-	s = runtime_MHeap_Lookup(&runtime_mheap, v);
+	s = runtime_MHeap_Lookup(runtime_mheap, v);
 	if(s == nil || s->ref == 0)
 		runtime_throw("invalid free");
 
@@ -133,7 +133,7 @@
 		s->freelist = nil;
 		c->nfree -= (s->npages << PageShift) / size;
 		runtime_unlock(c);
-		runtime_MHeap_Free(&runtime_mheap, s, 0);
+		runtime_MHeap_Free(runtime_mheap, s, 0);
 		runtime_lock(c);
 	}
 }
@@ -168,7 +168,7 @@
 		c->nfree -= (s->npages << PageShift) / size;
 		runtime_unlock(c);
 		runtime_unmarkspan((byte*)(s->start<<PageShift), s->npages<<PageShift);
-		runtime_MHeap_Free(&runtime_mheap, s, 0);
+		runtime_MHeap_Free(runtime_mheap, s, 0);
 	} else {
 		runtime_unlock(c);
 	}
@@ -200,7 +200,7 @@
 
 	runtime_unlock(c);
 	runtime_MGetSizeClassInfo(c->sizeclass, &size, &npages, &n);
-	s = runtime_MHeap_Alloc(&runtime_mheap, npages, c->sizeclass, 0, 1);
+	s = runtime_MHeap_Alloc(runtime_mheap, npages, c->sizeclass, 0, 1);
 	if(s == nil) {
 		// TODO(rsc): Log out of memory
 		runtime_lock(c);
diff -Naur gcc-4.8.1.orig/libgo/runtime/mem.c gcc-4.8.1/libgo/runtime/mem.c
--- gcc-4.8.1.orig/libgo/runtime/mem.c	2013-02-15 18:55:09.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mem.c	2013-10-01 16:06:44.224554278 +0000
@@ -78,7 +78,7 @@
 	fd = dev_zero;
 #endif
 
-	p = runtime_mmap(nil, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, fd, 0);
+	p = runtime_mmap(nil, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, fd, 0);
 	if (p == MAP_FAILED) {
 		if(errno == EACCES) {
 			runtime_printf("runtime: mmap: access denied\n");
@@ -169,7 +169,7 @@
 
 	// On 64-bit, we don't actually have v reserved, so tread carefully.
 	if(sizeof(void*) == 8 && (uintptr)v >= 0xffffffffU) {
-		p = mmap_fixed(v, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, fd, 0);
+		p = mmap_fixed(v, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, fd, 0);
 		if(p == MAP_FAILED && errno == ENOMEM)
 			runtime_throw("runtime: out of memory");
 		if(p != v) {
@@ -179,7 +179,9 @@
 		return;
 	}
 
-	p = runtime_mmap(v, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_FIXED|MAP_PRIVATE, fd, 0);
+	p = runtime_mmap(v, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_FIXED|MAP_PRIVATE, fd, 0);
+	if(p == MAP_FAILED && errno == ENOMEM)
+		runtime_throw("runtime: out of memory");
 	if(p != v)
 		runtime_throw("runtime: cannot map pages in arena address space");
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/mfinal.c gcc-4.8.1/libgo/runtime/mfinal.c
--- gcc-4.8.1.orig/libgo/runtime/mfinal.c	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mfinal.c	2013-10-01 16:06:44.224554278 +0000
@@ -11,7 +11,7 @@
 typedef struct Fin Fin;
 struct Fin
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	const struct __go_func_type *ft;
 };
 
@@ -42,7 +42,7 @@
 } fintab[TABSZ];
 
 static void
-addfintab(Fintab *t, void *k, void (*fn)(void*), const struct __go_func_type *ft)
+addfintab(Fintab *t, void *k, FuncVal *fn, const struct __go_func_type *ft)
 {
 	int32 i, j;
 
@@ -137,7 +137,7 @@
 }
 
 bool
-runtime_addfinalizer(void *p, void (*f)(void*), const struct __go_func_type *ft)
+runtime_addfinalizer(void *p, FuncVal *f, const struct __go_func_type *ft)
 {
 	Fintab *tab;
 	byte *base;
@@ -175,7 +175,7 @@
 // get finalizer; if del, delete finalizer.
 // caller is responsible for updating RefHasFinalizer (special) bit.
 bool
-runtime_getfinalizer(void *p, bool del, void (**fn)(void*), const struct __go_func_type **ft)
+runtime_getfinalizer(void *p, bool del, FuncVal **fn, const struct __go_func_type **ft)
 {
 	Fintab *tab;
 	bool res;
diff -Naur gcc-4.8.1.orig/libgo/runtime/mfixalloc.c gcc-4.8.1/libgo/runtime/mfixalloc.c
--- gcc-4.8.1.orig/libgo/runtime/mfixalloc.c	2011-10-26 23:57:58.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mfixalloc.c	2013-10-01 16:06:44.224554278 +0000
@@ -30,6 +30,11 @@
 runtime_FixAlloc_Alloc(FixAlloc *f)
 {
 	void *v;
+	
+	if(f->size == 0) {
+		runtime_printf("runtime: use of FixAlloc_Alloc before FixAlloc_Init\n");
+		runtime_throw("runtime: internal error");
+	}
 
 	if(f->list) {
 		v = f->list;
diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.c gcc-4.8.1/libgo/runtime/mgc0.c
--- gcc-4.8.1.orig/libgo/runtime/mgc0.c	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mgc0.c	2013-10-01 16:06:44.228554278 +0000
@@ -21,8 +21,11 @@
 #define tab __methods
 // Eface aka __go_empty_interface.
 #define type __type_descriptor
+// Hmap aka __go_map
+typedef struct __go_map Hmap;
 // Type aka __go_type_descriptor
 #define kind __code
+#define string __reflection
 #define KindPtr GO_PTR
 #define KindNoPointers GO_NO_POINTERS
 // PtrType aka __go_ptr_type
@@ -41,6 +44,9 @@
 enum {
 	Debug = 0,
 	DebugMark = 0,  // run second pass to check mark
+	CollectStats = 0,
+	ScanStackByFrames = 0,
+	IgnorePreciseGC = 0,
 
 	// Four bits per word (see #defines below).
 	wordsPerBitmapWord = sizeof(void*)*8/4,
@@ -120,7 +126,7 @@
 typedef struct Finalizer Finalizer;
 struct Finalizer
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	void *arg;
 	const struct __go_func_type *ft;
 };
@@ -147,6 +153,7 @@
 static Workbuf* getfull(Workbuf*);
 static void	putempty(Workbuf*);
 static Workbuf* handoff(Workbuf*);
+static void	gchelperstart(void);
 
 static struct {
 	uint64	full;  // lock-free list of full blocks
@@ -170,11 +177,114 @@
 } work;
 
 enum {
-	// TODO(atom): to be expanded in a next CL
 	GC_DEFAULT_PTR = GC_NUM_INSTR,
+	GC_MAP_NEXT,
+	GC_CHAN,
+
+	GC_NUM_INSTR2
 };
 
-// PtrTarget and BitTarget are structures used by intermediate buffers.
+static struct {
+	struct {
+		uint64 sum;
+		uint64 cnt;
+	} ptr;
+	uint64 nbytes;
+	struct {
+		uint64 sum;
+		uint64 cnt;
+		uint64 notype;
+		uint64 typelookup;
+	} obj;
+	uint64 rescan;
+	uint64 rescanbytes;
+	uint64 instr[GC_NUM_INSTR2];
+	uint64 putempty;
+	uint64 getfull;
+} gcstats;
+
+// markonly marks an object. It returns true if the object
+// has been marked by this function, false otherwise.
+// This function doesn't append the object to any buffer.
+static bool
+markonly(void *obj)
+{
+	byte *p;
+	uintptr *bitp, bits, shift, x, xbits, off;
+	MSpan *s;
+	PageID k;
+
+	// Words outside the arena cannot be pointers.
+	if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
+		return false;
+
+	// obj may be a pointer to a live object.
+	// Try to find the beginning of the object.
+
+	// Round down to word boundary.
+	obj = (void*)((uintptr)obj & ~((uintptr)PtrSize-1));
+
+	// Find bits for this word.
+	off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+	bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
+	shift = off % wordsPerBitmapWord;
+	xbits = *bitp;
+	bits = xbits >> shift;
+
+	// Pointing at the beginning of a block?
+	if((bits & (bitAllocated|bitBlockBoundary)) != 0)
+		goto found;
+
+	// Otherwise consult span table to find beginning.
+	// (Manually inlined copy of MHeap_LookupMaybe.)
+	k = (uintptr)obj>>PageShift;
+	x = k;
+	if(sizeof(void*) == 8)
+		x -= (uintptr)runtime_mheap->arena_start>>PageShift;
+	s = runtime_mheap->map[x];
+	if(s == nil || k < s->start || k - s->start >= s->npages || s->state != MSpanInUse)
+		return false;
+	p = (byte*)((uintptr)s->start<<PageShift);
+	if(s->sizeclass == 0) {
+		obj = p;
+	} else {
+		if((byte*)obj >= (byte*)s->limit)
+			return false;
+		uintptr size = s->elemsize;
+		int32 i = ((byte*)obj - p)/size;
+		obj = p+i*size;
+	}
+
+	// Now that we know the object header, reload bits.
+	off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+	bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
+	shift = off % wordsPerBitmapWord;
+	xbits = *bitp;
+	bits = xbits >> shift;
+
+found:
+	// Now we have bits, bitp, and shift correct for
+	// obj pointing at the base of the object.
+	// Only care about allocated and not marked.
+	if((bits & (bitAllocated|bitMarked)) != bitAllocated)
+		return false;
+	if(work.nproc == 1)
+		*bitp |= bitMarked<<shift;
+	else {
+		for(;;) {
+			x = *bitp;
+			if(x & (bitMarked<<shift))
+				return false;
+			if(runtime_casp((void**)bitp, (void*)x, (void*)(x|(bitMarked<<shift))))
+				break;
+		}
+	}
+
+	// The object is now marked
+	return true;
+}
+
+// PtrTarget is a structure used by intermediate buffers.
 // The intermediate buffers hold GC data before it
 // is moved/flushed to the work buffer (Workbuf).
 // The size of an intermediate buffer is very small,
@@ -186,24 +296,16 @@
 	uintptr ti;
 };
 
-typedef struct BitTarget BitTarget;
-struct BitTarget
-{
-	void *p;
-	uintptr ti;
-	uintptr *bitp, shift;
-};
-
 typedef struct BufferList BufferList;
 struct BufferList
 {
 	PtrTarget ptrtarget[IntermediateBufferCapacity];
-	BitTarget bittarget[IntermediateBufferCapacity];
-	BufferList *next;
+	Obj obj[IntermediateBufferCapacity];
+	uint32 busy;
+	byte pad[CacheLineSize];
 };
-static BufferList *bufferList;
+static BufferList bufferList[MaxGcproc];
 
-static Lock lock;
 static Type *itabtype;
 
 static void enqueue(Obj obj, Workbuf **_wbuf, Obj **_wp, uintptr *_nobj);
@@ -214,7 +316,6 @@
 // and are prepared to be scanned by the garbage collector.
 //
 // _wp, _wbuf, _nobj are input/output parameters and are specifying the work buffer.
-// bitbuf holds temporary data generated by this function.
 //
 // A simplified drawing explaining how the todo-list moves from a structure to another:
 //
@@ -222,14 +323,12 @@
 //  (find pointers)
 //    Obj ------> PtrTarget (pointer targets)
 //     â†‘          |
-//     |          | flushptrbuf (1st part,
-//     |          | find block start)
-//     |          â†“
-//     `--------- BitTarget (pointer targets and the corresponding locations in bitmap)
-//  flushptrbuf
-//  (2nd part, mark and enqueue)
+//     |          |
+//     `----------'
+//     flushptrbuf
+//  (find block start, mark and enqueue)
 static void
-flushptrbuf(PtrTarget *ptrbuf, PtrTarget **ptrbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj, BitTarget *bitbuf)
+flushptrbuf(PtrTarget *ptrbuf, PtrTarget **ptrbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj)
 {
 	byte *p, *arena_start, *obj;
 	uintptr size, *bitp, bits, shift, j, x, xbits, off, nobj, ti, n;
@@ -238,9 +337,8 @@
 	Obj *wp;
 	Workbuf *wbuf;
 	PtrTarget *ptrbuf_end;
-	BitTarget *bitbufpos, *bt;
 
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 
 	wp = *_wp;
 	wbuf = *_wbuf;
@@ -250,6 +348,11 @@
 	n = ptrbuf_end - ptrbuf;
 	*ptrbufpos = ptrbuf;
 
+	if(CollectStats) {
+		runtime_xadd64(&gcstats.ptr.sum, n);
+		runtime_xadd64(&gcstats.ptr.cnt, 1);
+	}
+
 	// If buffer is nearly full, get a new one.
 	if(wbuf == nil || nobj+n >= nelem(wbuf->obj)) {
 		if(wbuf != nil)
@@ -267,8 +370,6 @@
 	{
 		// Multi-threaded version.
 
-		bitbufpos = bitbuf;
-
 		while(ptrbuf < ptrbuf_end) {
 			obj = ptrbuf->p;
 			ti = ptrbuf->ti;
@@ -276,7 +377,7 @@
 
 			// obj belongs to interval [mheap.arena_start, mheap.arena_used).
 			if(Debug > 1) {
-				if(obj < runtime_mheap.arena_start || obj >= runtime_mheap.arena_used)
+				if(obj < runtime_mheap->arena_start || obj >= runtime_mheap->arena_used)
 					runtime_throw("object is outside of mheap");
 			}
 
@@ -319,7 +420,7 @@
 			x = k;
 			if(sizeof(void*) == 8)
 				x -= (uintptr)arena_start>>PageShift;
-			s = runtime_mheap.map[x];
+			s = runtime_mheap->map[x];
 			if(s == nil || k < s->start || k - s->start >= s->npages || s->state != MSpanInUse)
 				continue;
 			p = (byte*)((uintptr)s->start<<PageShift);
@@ -346,40 +447,36 @@
 			// Only care about allocated and not marked.
 			if((bits & (bitAllocated|bitMarked)) != bitAllocated)
 				continue;
-
-			*bitbufpos++ = (BitTarget){obj, ti, bitp, shift};
-		}
-
-		runtime_lock(&lock);
-		for(bt=bitbuf; bt<bitbufpos; bt++){
-			xbits = *bt->bitp;
-			bits = xbits >> bt->shift;
-			if((bits & bitMarked) != 0)
-				continue;
-
-			// Mark the block
-			*bt->bitp = xbits | (bitMarked << bt->shift);
+			if(work.nproc == 1)
+				*bitp |= bitMarked<<shift;
+			else {
+				for(;;) {
+					x = *bitp;
+					if(x & (bitMarked<<shift))
+						goto continue_obj;
+					if(runtime_casp((void**)bitp, (void*)x, (void*)(x|(bitMarked<<shift))))
+						break;
+				}
+			}
 
 			// If object has no pointers, don't need to scan further.
 			if((bits & bitNoPointers) != 0)
 				continue;
 
-			obj = bt->p;
-
 			// Ask span about size class.
 			// (Manually inlined copy of MHeap_Lookup.)
 			x = (uintptr)obj >> PageShift;
 			if(sizeof(void*) == 8)
 				x -= (uintptr)arena_start>>PageShift;
-			s = runtime_mheap.map[x];
+			s = runtime_mheap->map[x];
 
 			PREFETCH(obj);
 
-			*wp = (Obj){obj, s->elemsize, bt->ti};
+			*wp = (Obj){obj, s->elemsize, ti};
 			wp++;
 			nobj++;
+		continue_obj:;
 		}
-		runtime_unlock(&lock);
 
 		// If another proc wants a pointer, give it some.
 		if(work.nwait > 0 && nobj > handoffThreshold && work.full == 0) {
@@ -395,9 +492,73 @@
 	*_nobj = nobj;
 }
 
+static void
+flushobjbuf(Obj *objbuf, Obj **objbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj)
+{
+	uintptr nobj, off;
+	Obj *wp, obj;
+	Workbuf *wbuf;
+	Obj *objbuf_end;
+
+	wp = *_wp;
+	wbuf = *_wbuf;
+	nobj = *_nobj;
+
+	objbuf_end = *objbufpos;
+	*objbufpos = objbuf;
+
+	while(objbuf < objbuf_end) {
+		obj = *objbuf++;
+
+		// Align obj.b to a word boundary.
+		off = (uintptr)obj.p & (PtrSize-1);
+		if(off != 0) {
+			obj.p += PtrSize - off;
+			obj.n -= PtrSize - off;
+			obj.ti = 0;
+		}
+
+		if(obj.p == nil || obj.n == 0)
+			continue;
+
+		// If buffer is full, get a new one.
+		if(wbuf == nil || nobj >= nelem(wbuf->obj)) {
+			if(wbuf != nil)
+				wbuf->nobj = nobj;
+			wbuf = getempty(wbuf);
+			wp = wbuf->obj;
+			nobj = 0;
+		}
+
+		*wp = obj;
+		wp++;
+		nobj++;
+	}
+
+	// If another proc wants a pointer, give it some.
+	if(work.nwait > 0 && nobj > handoffThreshold && work.full == 0) {
+		wbuf->nobj = nobj;
+		wbuf = handoff(wbuf);
+		nobj = wbuf->nobj;
+		wp = wbuf->obj + nobj;
+	}
+
+	*_wp = wp;
+	*_wbuf = wbuf;
+	*_nobj = nobj;
+}
+
 // Program that scans the whole block and treats every block element as a potential pointer
 static uintptr defaultProg[2] = {PtrSize, GC_DEFAULT_PTR};
 
+#if 0
+// Hashmap iterator program
+static uintptr mapProg[2] = {0, GC_MAP_NEXT};
+
+// Hchan program
+static uintptr chanProg[2] = {0, GC_CHAN};
+#endif
+
 // Local variables of a program fragment or loop
 typedef struct Frame Frame;
 struct Frame {
@@ -405,6 +566,61 @@
 	uintptr *loop_or_ret;
 };
 
+// Sanity check for the derived type info objti.
+static void
+checkptr(void *obj, uintptr objti)
+{
+	uintptr type, tisize, i, x;
+	byte *objstart;
+	Type *t;
+	MSpan *s;
+
+	if(!Debug)
+		runtime_throw("checkptr is debug only");
+
+	if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
+		return;
+	type = runtime_gettype(obj);
+	t = (Type*)(type & ~(uintptr)(PtrSize-1));
+	if(t == nil)
+		return;
+	x = (uintptr)obj >> PageShift;
+	if(sizeof(void*) == 8)
+		x -= (uintptr)(runtime_mheap->arena_start)>>PageShift;
+	s = runtime_mheap->map[x];
+	objstart = (byte*)((uintptr)s->start<<PageShift);
+	if(s->sizeclass != 0) {
+		i = ((byte*)obj - objstart)/s->elemsize;
+		objstart += i*s->elemsize;
+	}
+	tisize = *(uintptr*)objti;
+	// Sanity check for object size: it should fit into the memory block.
+	if((byte*)obj + tisize > objstart + s->elemsize)
+		runtime_throw("invalid gc type info");
+	if(obj != objstart)
+		return;
+	// If obj points to the beginning of the memory block,
+	// check type info as well.
+	if(t->string == nil ||
+		// Gob allocates unsafe pointers for indirection.
+		(runtime_strcmp((const char *)t->string->str, (const char*)"unsafe.Pointer") &&
+		// Runtime and gc think differently about closures.
+		 runtime_strstr((const char *)t->string->str, (const char*)"struct { F uintptr") != (const char *)t->string->str)) {
+#if 0
+		pc1 = (uintptr*)objti;
+		pc2 = (uintptr*)t->gc;
+		// A simple best-effort check until first GC_END.
+		for(j = 1; pc1[j] != GC_END && pc2[j] != GC_END; j++) {
+			if(pc1[j] != pc2[j]) {
+				runtime_printf("invalid gc type info for '%s' at %p, type info %p, block info %p\n",
+					t->string ? (const int8*)t->string->str : (const int8*)"?", j, pc1[j], pc2[j]);
+				runtime_throw("invalid gc type info");
+			}
+		}
+#endif
+	}
+}					
+
 // scanblock scans a block of n bytes starting at pointer b for references
 // to other objects, scanning any it finds recursively until there are no
 // unscanned objects left.  Instead of using an explicit recursion, it keeps
@@ -419,49 +635,64 @@
 scanblock(Workbuf *wbuf, Obj *wp, uintptr nobj, bool keepworking)
 {
 	byte *b, *arena_start, *arena_used;
-	uintptr n, i, end_b, elemsize, ti, objti, count /* , type */;
+	uintptr n, i, end_b, elemsize, size, ti, objti, count /* , type */;
 	uintptr *pc, precise_type, nominal_size;
+#if 0
+	uintptr *map_ret, mapkey_size, mapval_size, mapkey_ti, mapval_ti, *chan_ret, chancap;
+#endif
 	void *obj;
 	const Type *t;
 	Slice *sliceptr;
 	Frame *stack_ptr, stack_top, stack[GC_STACK_CAPACITY+4];
 	BufferList *scanbuffers;
 	PtrTarget *ptrbuf, *ptrbuf_end, *ptrbufpos;
-	BitTarget *bitbuf;
+	Obj *objbuf, *objbuf_end, *objbufpos;
 	Eface *eface;
 	Iface *iface;
+#if 0
+	Hmap *hmap;
+	MapType *maptype;
+	bool mapkey_kind, mapval_kind;
+	struct hash_gciter map_iter;
+	struct hash_gciter_data d;
+	Hchan *chan;
+	ChanType *chantype;
+#endif
 
 	if(sizeof(Workbuf) % PageSize != 0)
 		runtime_throw("scanblock: size of Workbuf is suboptimal");
 
 	// Memory arena parameters.
-	arena_start = runtime_mheap.arena_start;
-	arena_used = runtime_mheap.arena_used;
+	arena_start = runtime_mheap->arena_start;
+	arena_used = runtime_mheap->arena_used;
 
 	stack_ptr = stack+nelem(stack)-1;
 	
 	precise_type = false;
 	nominal_size = 0;
 
-	// Allocate ptrbuf, bitbuf
+	// Allocate ptrbuf
 	{
-		runtime_lock(&lock);
-
-		if(bufferList == nil) {
-			bufferList = runtime_SysAlloc(sizeof(*bufferList));
-			bufferList->next = nil;
-		}
-		scanbuffers = bufferList;
-		bufferList = bufferList->next;
-
+		scanbuffers = &bufferList[runtime_m()->helpgc];
 		ptrbuf = &scanbuffers->ptrtarget[0];
 		ptrbuf_end = &scanbuffers->ptrtarget[0] + nelem(scanbuffers->ptrtarget);
-		bitbuf = &scanbuffers->bittarget[0];
-
-		runtime_unlock(&lock);
+		objbuf = &scanbuffers->obj[0];
+		objbuf_end = &scanbuffers->obj[0] + nelem(scanbuffers->obj);
 	}
 
 	ptrbufpos = ptrbuf;
+	objbufpos = objbuf;
+
+	// (Silence the compiler)
+#if 0
+	map_ret = nil;
+	mapkey_size = mapval_size = 0;
+	mapkey_kind = mapval_kind = false;
+	mapkey_ti = mapval_ti = 0;
+	chan = nil;
+	chantype = nil;
+	chan_ret = nil;
+#endif
 
 	goto next_block;
 
@@ -472,7 +703,13 @@
 			runtime_printf("scanblock %p %D\n", b, (int64)n);
 		}
 
-		if(ti != 0 && 0) {
+		if(CollectStats) {
+			runtime_xadd64(&gcstats.nbytes, n);
+			runtime_xadd64(&gcstats.obj.sum, nobj);
+			runtime_xadd64(&gcstats.obj.cnt, 1);
+		}
+
+		if(ti != 0 && false) {
 			pc = (uintptr*)(ti & ~(uintptr)PC_BITS);
 			precise_type = (ti & PRECISE);
 			stack_top.elemsize = pc[0];
@@ -484,10 +721,27 @@
 			} else {
 				stack_top.count = 1;
 			}
-		} else if(UseSpanType && 0) {
+			if(Debug) {
+				// Simple sanity check for provided type info ti:
+				// The declared size of the object must be not larger than the actual size
+				// (it can be smaller due to inferior pointers).
+				// It's difficult to make a comprehensive check due to inferior pointers,
+				// reflection, gob, etc.
+				if(pc[0] > n) {
+					runtime_printf("invalid gc type info: type info size %p, block size %p\n", pc[0], n);
+					runtime_throw("invalid gc type info");
+				}
+			}
+		} else if(UseSpanType && false) {
+			if(CollectStats)
+				runtime_xadd64(&gcstats.obj.notype, 1);
+
 #if 0
 			type = runtime_gettype(b);
 			if(type != 0) {
+				if(CollectStats)
+					runtime_xadd64(&gcstats.obj.typelookup, 1);
+
 				t = (Type*)(type & ~(uintptr)(PtrSize-1));
 				switch(type & (PtrSize-1)) {
 				case TypeInfo_SingleObject:
@@ -506,8 +760,27 @@
 					stack_top.loop_or_ret = pc+1;
 					break;
 				case TypeInfo_Map:
-					// TODO(atom): to be expanded in a next CL
-					pc = defaultProg;
+					hmap = (Hmap*)b;
+					maptype = (MapType*)t;
+					if(hash_gciter_init(hmap, &map_iter)) {
+						mapkey_size = maptype->key->size;
+						mapkey_kind = maptype->key->kind;
+						mapkey_ti   = (uintptr)maptype->key->gc | PRECISE;
+						mapval_size = maptype->elem->size;
+						mapval_kind = maptype->elem->kind;
+						mapval_ti   = (uintptr)maptype->elem->gc | PRECISE;
+
+						map_ret = nil;
+						pc = mapProg;
+					} else {
+						goto next_block;
+					}
+					break;
+				case TypeInfo_Chan:
+					chan = (Hchan*)b;
+					chantype = (ChanType*)t;
+					chan_ret = nil;
+					pc = chanProg;
 					break;
 				default:
 					runtime_throw("scanblock: invalid type");
@@ -521,12 +794,18 @@
 			pc = defaultProg;
 		}
 
+		if(IgnorePreciseGC)
+			pc = defaultProg;
+
 		pc++;
 		stack_top.b = (uintptr)b;
 
 		end_b = (uintptr)b + n - PtrSize;
 
 	for(;;) {
+		if(CollectStats)
+			runtime_xadd64(&gcstats.instr[pc[0]], 1);
+
 		obj = nil;
 		objti = 0;
 		switch(pc[0]) {
@@ -534,13 +813,19 @@
 			obj = *(void**)(stack_top.b + pc[1]);
 			objti = pc[2];
 			pc += 3;
+			if(Debug)
+				checkptr(obj, objti);
 			break;
 
 		case GC_SLICE:
 			sliceptr = (Slice*)(stack_top.b + pc[1]);
 			if(sliceptr->cap != 0) {
 				obj = sliceptr->array;
-				objti = pc[2] | PRECISE | LOOP;
+				// Can't use slice element type for scanning,
+				// because if it points to an array embedded
+				// in the beginning of a struct,
+				// we will scan the whole struct as the slice.
+				// So just obtain type info from heap.
 			}
 			pc += 3;
 			break;
@@ -552,17 +837,31 @@
 
 		case GC_STRING:
 			obj = *(void**)(stack_top.b + pc[1]);
+			markonly(obj);
 			pc += 2;
-			break;
+			continue;
 
 		case GC_EFACE:
 			eface = (Eface*)(stack_top.b + pc[1]);
 			pc += 2;
-			if(eface->type != nil && ((byte*)eface->__object >= arena_start && (byte*)eface->__object < arena_used)) {
-				t = eface->type;
+			if(eface->type == nil)
+				continue;
+
+			// eface->type
+			t = eface->type;
+			if((const byte*)t >= arena_start && (const byte*)t < arena_used) {
+				union { const Type *tc; Type *tr; } u;
+				u.tc = t;
+				*ptrbufpos++ = (struct PtrTarget){(void*)u.tr, 0};
+				if(ptrbufpos == ptrbuf_end)
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+			}
+
+			// eface->__object
+			if((byte*)eface->__object >= arena_start && (byte*)eface->__object < arena_used) {
 				if(t->__size <= sizeof(void*)) {
 					if((t->kind & KindNoPointers))
-						break;
+						continue;
 
 					obj = eface->__object;
 					if((t->kind & ~KindNoPointers) == KindPtr)
@@ -580,14 +879,14 @@
 			iface = (Iface*)(stack_top.b + pc[1]);
 			pc += 2;
 			if(iface->tab == nil)
-				break;
+				continue;
 			
 			// iface->tab
 			if((byte*)iface->tab >= arena_start && (byte*)iface->tab < arena_used) {
 				// *ptrbufpos++ = (struct PtrTarget){iface->tab, (uintptr)itabtype->gc};
 				*ptrbufpos++ = (struct PtrTarget){iface->tab, 0};
 				if(ptrbufpos == ptrbuf_end)
-					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 			}
 
 			// iface->data
@@ -596,7 +895,7 @@
 				t = nil;
 				if(t->__size <= sizeof(void*)) {
 					if((t->kind & KindNoPointers))
-						break;
+						continue;
 
 					obj = iface->__object;
 					if((t->kind & ~KindNoPointers) == KindPtr)
@@ -611,13 +910,13 @@
 			break;
 
 		case GC_DEFAULT_PTR:
-			while((i = stack_top.b) <= end_b) {
+			while(stack_top.b <= end_b) {
+				obj = *(byte**)stack_top.b;
 				stack_top.b += PtrSize;
-				obj = *(byte**)i;
 				if((byte*)obj >= arena_start && (byte*)obj < arena_used) {
 					*ptrbufpos++ = (struct PtrTarget){obj, 0};
 					if(ptrbufpos == ptrbuf_end)
-						flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+						flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 				}
 			}
 			goto next_block;
@@ -625,9 +924,8 @@
 		case GC_END:
 			if(--stack_top.count != 0) {
 				// Next iteration of a loop if possible.
-				elemsize = stack_top.elemsize;
-				stack_top.b += elemsize;
-				if(stack_top.b + elemsize <= end_b+PtrSize) {
+				stack_top.b += stack_top.elemsize;
+				if(stack_top.b + stack_top.elemsize <= end_b+PtrSize) {
 					pc = stack_top.loop_or_ret;
 					continue;
 				}
@@ -648,6 +946,10 @@
 						// Found a value that may be a pointer.
 						// Do a rescan of the entire block.
 						enqueue((Obj){b, n, 0}, &wbuf, &wp, &nobj);
+						if(CollectStats) {
+							runtime_xadd64(&gcstats.rescan, 1);
+							runtime_xadd64(&gcstats.rescanbytes, n);
+						}
 						break;
 					}
 				}
@@ -680,20 +982,136 @@
 			// Stack push.
 			*stack_ptr-- = stack_top;
 			stack_top = (Frame){1, 0, stack_top.b + pc[1], pc+3 /*return address*/};
-			pc = (uintptr*)pc[2];  // target of the CALL instruction
+			pc = (uintptr*)((byte*)pc + *(int32*)(pc+2));  // target of the CALL instruction
 			continue;
 
+#if 0
 		case GC_MAP_PTR:
-			// TODO(atom): to be expanded in a next CL. Same as GC_APTR for now.
-			obj = *(void**)(stack_top.b + pc[1]);
-			pc += 3;
-			break;
+			hmap = *(Hmap**)(stack_top.b + pc[1]);
+			if(hmap == nil) {
+				pc += 3;
+				continue;
+			}
+			if(markonly(hmap)) {
+				maptype = (MapType*)pc[2];
+				if(hash_gciter_init(hmap, &map_iter)) {
+					mapkey_size = maptype->key->size;
+					mapkey_kind = maptype->key->kind;
+					mapkey_ti   = (uintptr)maptype->key->gc | PRECISE;
+					mapval_size = maptype->elem->size;
+					mapval_kind = maptype->elem->kind;
+					mapval_ti   = (uintptr)maptype->elem->gc | PRECISE;
+
+					// Start mapProg.
+					map_ret = pc+3;
+					pc = mapProg+1;
+				} else {
+					pc += 3;
+				}
+			} else {
+				pc += 3;
+			}
+			continue;
+
+		case GC_MAP_NEXT:
+			// Add all keys and values to buffers, mark all subtables.
+			while(hash_gciter_next(&map_iter, &d)) {
+				// buffers: reserve space for 2 objects.
+				if(ptrbufpos+2 >= ptrbuf_end)
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+				if(objbufpos+2 >= objbuf_end)
+					flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+
+				if(d.st != nil)
+					markonly(d.st);
+
+				if(d.key_data != nil) {
+					if(!(mapkey_kind & KindNoPointers) || d.indirectkey) {
+						if(!d.indirectkey)
+							*objbufpos++ = (Obj){d.key_data, mapkey_size, mapkey_ti};
+						else {
+							if(Debug) {
+								obj = *(void**)d.key_data;
+								if(!(arena_start <= obj && obj < arena_used))
+									runtime_throw("scanblock: inconsistent hashmap");
+							}
+							*ptrbufpos++ = (struct PtrTarget){*(void**)d.key_data, mapkey_ti};
+						}
+					}
+					if(!(mapval_kind & KindNoPointers) || d.indirectval) {
+						if(!d.indirectval)
+							*objbufpos++ = (Obj){d.val_data, mapval_size, mapval_ti};
+						else {
+							if(Debug) {
+								obj = *(void**)d.val_data;
+								if(!(arena_start <= obj && obj < arena_used))
+									runtime_throw("scanblock: inconsistent hashmap");
+							}
+							*ptrbufpos++ = (struct PtrTarget){*(void**)d.val_data, mapval_ti};
+						}
+					}
+				}
+			}
+			if(map_ret == nil)
+				goto next_block;
+			pc = map_ret;
+			continue;
+#endif
 
 		case GC_REGION:
-			// TODO(atom): to be expanded in a next CL. Same as GC_APTR for now.
 			obj = (void*)(stack_top.b + pc[1]);
+			size = pc[2];
+			objti = pc[3];
 			pc += 4;
-			break;
+
+			*objbufpos++ = (Obj){obj, size, objti};
+			if(objbufpos == objbuf_end)
+				flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+			continue;
+
+#if 0
+		case GC_CHAN_PTR:
+			// Similar to GC_MAP_PTR
+			chan = *(Hchan**)(stack_top.b + pc[1]);
+			if(chan == nil) {
+				pc += 3;
+				continue;
+			}
+			if(markonly(chan)) {
+				chantype = (ChanType*)pc[2];
+				if(!(chantype->elem->kind & KindNoPointers)) {
+					// Start chanProg.
+					chan_ret = pc+3;
+					pc = chanProg+1;
+					continue;
+				}
+			}
+			pc += 3;
+			continue;
+
+		case GC_CHAN:
+			// There are no heap pointers in struct Hchan,
+			// so we can ignore the leading sizeof(Hchan) bytes.
+			if(!(chantype->elem->kind & KindNoPointers)) {
+				// Channel's buffer follows Hchan immediately in memory.
+				// Size of buffer (cap(c)) is second int in the chan struct.
+				chancap = ((uintgo*)chan)[1];
+				if(chancap > 0) {
+					// TODO(atom): split into two chunks so that only the
+					// in-use part of the circular buffer is scanned.
+					// (Channel routines zero the unused part, so the current
+					// code does not lead to leaks, it's just a little inefficient.)
+					*objbufpos++ = (Obj){(byte*)chan+runtime_Hchansize, chancap*chantype->elem->size,
+						(uintptr)chantype->elem->gc | PRECISE | LOOP};
+					if(objbufpos == objbuf_end)
+						flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+				}
+			}
+			if(chan_ret == nil)
+				goto next_block;
+			pc = chan_ret;
+			continue;
+#endif
 
 		default:
 			runtime_throw("scanblock: invalid GC instruction");
@@ -701,9 +1119,9 @@
 		}
 
 		if((byte*)obj >= arena_start && (byte*)obj < arena_used) {
-			*ptrbufpos++ = (PtrTarget){obj, objti};
+			*ptrbufpos++ = (struct PtrTarget){obj, objti};
 			if(ptrbufpos == ptrbuf_end)
-				flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+				flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 		}
 	}
 
@@ -712,7 +1130,8 @@
 		// the loop by setting b, n, ti to the parameters for the next block.
 
 		if(nobj == 0) {
-			flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+			flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+			flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
 
 			if(nobj == 0) {
 				if(!keepworking) {
@@ -737,11 +1156,7 @@
 		nobj--;
 	}
 
-endscan:
-	runtime_lock(&lock);
-	scanbuffers->next = bufferList;
-	bufferList = scanbuffers;
-	runtime_unlock(&lock);
+endscan:;
 }
 
 // debug_scanblock is the debug copy of scanblock.
@@ -776,14 +1191,14 @@
 		obj = (byte*)vp[i];
 
 		// Words outside the arena cannot be pointers.
-		if((byte*)obj < runtime_mheap.arena_start || (byte*)obj >= runtime_mheap.arena_used)
+		if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
 			continue;
 
 		// Round down to word boundary.
 		obj = (void*)((uintptr)obj & ~((uintptr)PtrSize-1));
 
 		// Consult span table to find beginning.
-		s = runtime_MHeap_LookupMaybe(&runtime_mheap, obj);
+		s = runtime_MHeap_LookupMaybe(runtime_mheap, obj);
 		if(s == nil)
 			continue;
 
@@ -799,8 +1214,8 @@
 		}
 
 		// Now that we know the object header, reload bits.
-		off = (uintptr*)obj - (uintptr*)runtime_mheap.arena_start;
-		bitp = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+		off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+		bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 		shift = off % wordsPerBitmapWord;
 		xbits = *bitp;
 		bits = xbits >> shift;
@@ -906,6 +1321,8 @@
 		if(work.nchunk < sizeof *b) {
 			work.nchunk = 1<<20;
 			work.chunk = runtime_SysAlloc(work.nchunk);
+			if(work.chunk == nil)
+				runtime_throw("runtime: cannot allocate memory");
 		}
 		b = (Workbuf*)work.chunk;
 		work.chunk += sizeof *b;
@@ -919,6 +1336,9 @@
 static void
 putempty(Workbuf *b)
 {
+	if(CollectStats)
+		runtime_xadd64(&gcstats.putempty, 1);
+
 	runtime_lfstackpush(&work.empty, &b->node);
 }
 
@@ -929,6 +1349,9 @@
 	M *m;
 	int32 i;
 
+	if(CollectStats)
+		runtime_xadd64(&gcstats.getfull, 1);
+
 	if(b != nil)
 		runtime_lfstackpush(&work.empty, &b->node);
 	b = (Workbuf*)runtime_lfstackpop(&work.full);
@@ -994,6 +1417,8 @@
 		if(cap < 2*work.rootcap)
 			cap = 2*work.rootcap;
 		new = (Obj*)runtime_SysAlloc(cap*sizeof(Obj));
+		if(new == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		if(work.roots != nil) {
 			runtime_memmove(new, work.roots, work.rootcap*sizeof(Obj));
 			runtime_SysFree(work.roots, work.rootcap*sizeof(Obj));
@@ -1081,13 +1506,14 @@
 addfinroots(void *v)
 {
 	uintptr size;
+	void *base;
 
 	size = 0;
-	if(!runtime_mlookup(v, (byte**)&v, &size, nil) || !runtime_blockspecial(v))
+	if(!runtime_mlookup(v, (byte**)&base, &size, nil) || !runtime_blockspecial(base))
 		runtime_throw("mark - finalizer inconsistency");
 
 	// do not mark the finalizer block itself.  just mark the things it points at.
-	addroot((Obj){v, size, 0});
+	addroot((Obj){base, size, 0});
 }
 
 static struct root_list* roots;
@@ -1128,23 +1554,27 @@
 	addroot((Obj){(byte*)&runtime_g0, sizeof runtime_g0, 0});
 	addroot((Obj){(byte*)&runtime_allg, sizeof runtime_allg, 0});
 	addroot((Obj){(byte*)&runtime_allm, sizeof runtime_allm, 0});
+	addroot((Obj){(byte*)&runtime_allp, sizeof runtime_allp, 0});
+	runtime_proc_scan(addroot);
 	runtime_MProf_Mark(addroot);
 	runtime_time_scan(addroot);
-	runtime_trampoline_scan(addroot);
 
 	// MSpan.types
-	allspans = runtime_mheap.allspans;
-	for(spanidx=0; spanidx<runtime_mheap.nspan; spanidx++) {
+	allspans = runtime_mheap->allspans;
+	for(spanidx=0; spanidx<runtime_mheap->nspan; spanidx++) {
 		s = allspans[spanidx];
 		if(s->state == MSpanInUse) {
+			// The garbage collector ignores type pointers stored in MSpan.types:
+			//  - Compiler-generated types are stored outside of heap.
+			//  - The reflect package has runtime-generated types cached in its data structures.
+			//    The garbage collector relies on finding the references via that cache.
 			switch(s->types.compression) {
 			case MTypes_Empty:
 			case MTypes_Single:
 				break;
 			case MTypes_Words:
 			case MTypes_Bytes:
-				// TODO(atom): consider using defaultProg instead of 0
-				addroot((Obj){(byte*)&s->types.data, sizeof(void*), 0});
+				markonly((byte*)s->types.data);
 				break;
 			}
 		}
@@ -1182,7 +1612,7 @@
 static bool
 handlespecial(byte *p, uintptr size)
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	const struct __go_func_type *ft;
 	FinBlock *block;
 	Finalizer *f;
@@ -1197,6 +1627,8 @@
 	if(finq == nil || finq->cnt == finq->cap) {
 		if(finc == nil) {
 			finc = runtime_SysAlloc(PageSize);
+			if(finc == nil)
+				runtime_throw("runtime: cannot allocate memory");
 			finc->cap = (PageSize - sizeof(FinBlock)) / sizeof(Finalizer) + 1;
 			finc->alllink = allfin;
 			allfin = finc;
@@ -1236,10 +1668,10 @@
 	m = runtime_m();
 
 	USED(&desc);
-	s = runtime_mheap.allspans[idx];
+	s = runtime_mheap->allspans[idx];
 	if(s->state != MSpanInUse)
 		return;
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 	p = (byte*)(s->start << PageShift);
 	cl = s->sizeclass;
 	size = s->elemsize;
@@ -1302,8 +1734,8 @@
 		if(cl == 0) {
 			// Free large span.
 			runtime_unmarkspan(p, 1<<PageShift);
-			*(uintptr*)p = 1;	// needs zeroing
-			runtime_MHeap_Free(&runtime_mheap, s, 1);
+			*(uintptr*)p = (uintptr)0xdeaddeaddeaddeadll;	// needs zeroing
+			runtime_MHeap_Free(runtime_mheap, s, 1);
 			c->local_alloc -= size;
 			c->local_nfree++;
 		} else {
@@ -1317,7 +1749,7 @@
 				break;
 			}
 			if(size > sizeof(uintptr))
-				((uintptr*)p)[1] = 1;	// mark as "needs to be zeroed"
+				((uintptr*)p)[1] = (uintptr)0xdeaddeaddeaddeadll;	// mark as "needs to be zeroed"
 			
 			end->next = (MLink*)p;
 			end = (MLink*)p;
@@ -1331,7 +1763,7 @@
 		c->local_nfree += nfree;
 		c->local_cachealloc -= nfree * size;
 		c->local_objects -= nfree;
-		runtime_MCentral_FreeSpan(&runtime_mheap.central[cl], s, nfree, head.next, end);
+		runtime_MCentral_FreeSpan(&runtime_mheap->central[cl], s, nfree, head.next, end);
 	}
 }
 
@@ -1345,10 +1777,10 @@
 	MSpan *s;
 	bool allocated, special;
 
-	s = runtime_mheap.allspans[idx];
+	s = runtime_mheap->allspans[idx];
 	if(s->state != MSpanInUse)
 		return;
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 	p = (byte*)(s->start << PageShift);
 	sizeclass = s->sizeclass;
 	size = s->elemsize;
@@ -1406,7 +1838,7 @@
 {
 	uint32 spanidx;
 
-	for(spanidx=0; spanidx<runtime_mheap.nspan; spanidx++) {
+	for(spanidx=0; spanidx<runtime_mheap->nspan; spanidx++) {
 		dumpspan(spanidx);
 	}
 }
@@ -1414,6 +1846,8 @@
 void
 runtime_gchelper(void)
 {
+	gchelperstart();
+
 	// parallel mark for over gc roots
 	runtime_parfordo(work.markfor);
 
@@ -1427,10 +1861,13 @@
 	}
 
 	runtime_parfordo(work.sweepfor);
+	bufferList[runtime_m()->helpgc].busy = 0;
 	if(runtime_xadd(&work.ndone, +1) == work.nproc-1)
 		runtime_notewakeup(&work.alldone);
 }
 
+#define GcpercentUnknown (-2)
+
 // Initialized from $GOGC.  GOGC=off means no gc.
 //
 // Next gc is after we've allocated an extra amount of
@@ -1440,22 +1877,14 @@
 // proportion to the allocation cost.  Adjusting gcpercent
 // just changes the linear constant (and also the amount of
 // extra memory used).
-static int32 gcpercent = -2;
-
-static void
-stealcache(void)
-{
-	M *mp;
-
-	for(mp=runtime_allm; mp; mp=mp->alllink)
-		runtime_MCache_ReleaseAll(mp->mcache);
-}
+static int32 gcpercent = GcpercentUnknown;
 
 static void
 cachestats(GCStats *stats)
 {
 	M *mp;
 	MCache *c;
+	P *p, **pp;
 	uint32 i;
 	uint64 stacks_inuse;
 	uint64 *src, *dst;
@@ -1464,9 +1893,7 @@
 		runtime_memclr((byte*)stats, sizeof(*stats));
 	stacks_inuse = 0;
 	for(mp=runtime_allm; mp; mp=mp->alllink) {
-		c = mp->mcache;
-		runtime_purgecachedstats(c);
-		// stacks_inuse += mp->stackinuse*FixedStack;
+		//stacks_inuse += mp->stackinuse*FixedStack;
 		if(stats) {
 			src = (uint64*)&mp->gcstats;
 			dst = (uint64*)stats;
@@ -1474,6 +1901,12 @@
 				dst[i] += src[i];
 			runtime_memclr((byte*)&mp->gcstats, sizeof(mp->gcstats));
 		}
+	}
+	for(pp=runtime_allp; (p=*pp) != nil; pp++) {
+		c = p->mcache;
+		if(c==nil)
+			continue;
+		runtime_purgecachedstats(c);
 		for(i=0; i<nelem(c->local_by_size); i++) {
 			mstats.by_size[i].nmalloc += c->local_by_size[i].nmalloc;
 			c->local_by_size[i].nmalloc = 0;
@@ -1493,6 +1926,19 @@
 
 static void gc(struct gc_args *args);
 
+static int32
+readgogc(void)
+{
+	const byte *p;
+
+	p = runtime_getenv("GOGC");
+	if(p == nil || p[0] == '\0')
+		return 100;
+	if(runtime_strcmp((const char *)p, "off") == 0)
+		return -1;
+	return runtime_atoi(p);
+}
+
 void
 runtime_gc(int32 force)
 {
@@ -1505,6 +1951,8 @@
 	// a problem in the past.
 	if((((uintptr)&work.empty) & 7) != 0)
 		runtime_throw("runtime: gc work buffer is misaligned");
+	if((((uintptr)&work.full) & 7) != 0)
+		runtime_throw("runtime: gc work buffer is misaligned");
 
 	// Make sure all registers are saved on stack so that
 	// scanstack sees them.
@@ -1522,14 +1970,8 @@
 	if(!mstats.enablegc || m->locks > 0 || runtime_panicking)
 		return;
 
-	if(gcpercent == -2) {	// first time through
-		p = runtime_getenv("GOGC");
-		if(p == nil || p[0] == '\0')
-			gcpercent = 100;
-		else if(runtime_strcmp((const char*)p, "off") == 0)
-			gcpercent = -1;
-		else
-			gcpercent = runtime_atoi(p);
+	if(gcpercent == GcpercentUnknown) {	// first time through
+		gcpercent = readgogc();
 
 		p = runtime_getenv("GOGCTRACE");
 		if(p != nil)
@@ -1556,7 +1998,7 @@
 {
 	M *m;
 	int64 t0, t1, t2, t3, t4;
-	uint64 heap0, heap1, obj0, obj1;
+	uint64 heap0, heap1, obj0, obj1, ninstr;
 	GCStats stats;
 	M *mp;
 	uint32 i;
@@ -1575,6 +2017,9 @@
 	m->gcing = 1;
 	runtime_stoptheworld();
 
+	if(CollectStats)
+		runtime_memclr((byte*)&gcstats, sizeof(gcstats));
+
 	for(mp=runtime_allm; mp; mp=mp->alllink)
 		runtime_settype_flush(mp, false);
 
@@ -1605,7 +2050,7 @@
 	work.nproc = runtime_gcprocs();
 	addroots();
 	runtime_parforsetup(work.markfor, work.nproc, work.nroot, nil, false, markroot);
-	runtime_parforsetup(work.sweepfor, work.nproc, runtime_mheap.nspan, nil, true, sweepspan);
+	runtime_parforsetup(work.sweepfor, work.nproc, runtime_mheap->nspan, nil, true, sweepspan);
 	if(work.nproc > 1) {
 		runtime_noteclear(&work.alldone);
 		runtime_helpgc(work.nproc);
@@ -1613,6 +2058,7 @@
 
 	t1 = runtime_nanotime();
 
+	gchelperstart();
 	runtime_parfordo(work.markfor);
 	scanblock(nil, nil, 0, true);
 
@@ -1624,14 +2070,14 @@
 	t2 = runtime_nanotime();
 
 	runtime_parfordo(work.sweepfor);
+	bufferList[m->helpgc].busy = 0;
 	t3 = runtime_nanotime();
 
-	stealcache();
-	cachestats(&stats);
-
 	if(work.nproc > 1)
 		runtime_notesleep(&work.alldone);
 
+	cachestats(&stats);
+
 	stats.nprocyield += work.sweepfor->nprocyield;
 	stats.nosyield += work.sweepfor->nosyield;
 	stats.nsleep += work.sweepfor->nsleep;
@@ -1671,6 +2117,27 @@
 			stats.nhandoff, stats.nhandoffcnt,
 			work.sweepfor->nsteal, work.sweepfor->nstealcnt,
 			stats.nprocyield, stats.nosyield, stats.nsleep);
+		if(CollectStats) {
+			runtime_printf("scan: %D bytes, %D objects, %D untyped, %D types from MSpan\n",
+				gcstats.nbytes, gcstats.obj.cnt, gcstats.obj.notype, gcstats.obj.typelookup);
+			if(gcstats.ptr.cnt != 0)
+				runtime_printf("avg ptrbufsize: %D (%D/%D)\n",
+					gcstats.ptr.sum/gcstats.ptr.cnt, gcstats.ptr.sum, gcstats.ptr.cnt);
+			if(gcstats.obj.cnt != 0)
+				runtime_printf("avg nobj: %D (%D/%D)\n",
+					gcstats.obj.sum/gcstats.obj.cnt, gcstats.obj.sum, gcstats.obj.cnt);
+			runtime_printf("rescans: %D, %D bytes\n", gcstats.rescan, gcstats.rescanbytes);
+
+			runtime_printf("instruction counts:\n");
+			ninstr = 0;
+			for(i=0; i<nelem(gcstats.instr); i++) {
+				runtime_printf("\t%d:\t%D\n", i, gcstats.instr[i]);
+				ninstr += gcstats.instr[i];
+			}
+			runtime_printf("\ttotal:\t%D\n", ninstr);
+
+			runtime_printf("putempty: %D, getfull: %D\n", gcstats.putempty, gcstats.getfull);
+		}
 	}
 
 	runtime_MProf_GC();
@@ -1705,6 +2172,71 @@
 	runtime_starttheworld();
 }
 
+void runtime_debug_readGCStats(Slice*)
+  __asm__("runtime_debug.readGCStats");
+
+void
+runtime_debug_readGCStats(Slice *pauses)
+{
+	uint64 *p;
+	uint32 i, n;
+
+	// Calling code in runtime/debug should make the slice large enough.
+	if((size_t)pauses->cap < nelem(mstats.pause_ns)+3)
+		runtime_throw("runtime: short slice passed to readGCStats");
+
+	// Pass back: pauses, last gc (absolute time), number of gc, total pause ns.
+	p = (uint64*)pauses->array;
+	runtime_lock(runtime_mheap);
+	n = mstats.numgc;
+	if(n > nelem(mstats.pause_ns))
+		n = nelem(mstats.pause_ns);
+	
+	// The pause buffer is circular. The most recent pause is at
+	// pause_ns[(numgc-1)%nelem(pause_ns)], and then backward
+	// from there to go back farther in time. We deliver the times
+	// most recent first (in p[0]).
+	for(i=0; i<n; i++)
+		p[i] = mstats.pause_ns[(mstats.numgc-1-i)%nelem(mstats.pause_ns)];
+
+	p[n] = mstats.last_gc;
+	p[n+1] = mstats.numgc;
+	p[n+2] = mstats.pause_total_ns;	
+	runtime_unlock(runtime_mheap);
+	pauses->__count = n+3;
+}
+
+intgo runtime_debug_setGCPercent(intgo)
+  __asm__("runtime_debug.setGCPercent");
+
+intgo
+runtime_debug_setGCPercent(intgo in)
+{
+	intgo out;
+
+	runtime_lock(runtime_mheap);
+	if(gcpercent == GcpercentUnknown)
+		gcpercent = readgogc();
+	out = gcpercent;
+	if(in < 0)
+		in = -1;
+	gcpercent = in;
+	runtime_unlock(runtime_mheap);
+	return out;
+}
+
+static void
+gchelperstart(void)
+{
+	M *m;
+
+	m = runtime_m();
+	if(m->helpgc < 0 || m->helpgc >= MaxGcproc)
+		runtime_throw("gchelperstart: bad m->helpgc");
+	if(runtime_xchg(&bufferList[m->helpgc].busy, 1))
+		runtime_throw("gchelperstart: already busy");
+}
+
 static void
 runfinq(void* dummy __attribute__ ((unused)))
 {
@@ -1731,11 +2263,11 @@
 		for(; fb; fb=next) {
 			next = fb->next;
 			for(i=0; i<(uint32)fb->cnt; i++) {
-				void *params[1];
+				void *param;
 
 				f = &fb->fin[i];
-				params[0] = &f->arg;
-				reflect_call(f->ft, (void*)f->fn, 0, 0, params, nil);
+				param = &f->arg;
+				reflect_call(f->ft, f->fn, 0, 0, &param, nil);
 				f->fn = nil;
 				f->arg = nil;
 			}
@@ -1757,11 +2289,11 @@
 	if(0)
 		runtime_printf("markallocated %p+%p\n", v, n);
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markallocated: bad pointer");
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
@@ -1789,11 +2321,11 @@
 	if(0)
 		runtime_printf("markallocated %p+%p\n", v, n);
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markallocated: bad pointer");
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
@@ -1819,11 +2351,11 @@
 	if(!runtime_checking)
 		return;
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		return;	// not allocated, so okay
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	bits = *b>>shift;
@@ -1842,7 +2374,7 @@
 	uintptr *b, off, shift;
 	byte *p;
 
-	if((byte*)v+size*n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+size*n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markspan: bad pointer");
 
 	p = v;
@@ -1853,8 +2385,8 @@
 		// the entire span, and each bitmap word has bits for only
 		// one span, so no other goroutines are changing these
 		// bitmap words.
-		off = (uintptr*)p - (uintptr*)runtime_mheap.arena_start;  // word offset
-		b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+		off = (uintptr*)p - (uintptr*)runtime_mheap->arena_start;  // word offset
+		b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 		shift = off % wordsPerBitmapWord;
 		*b = (*b & ~(bitMask<<shift)) | (bitBlockBoundary<<shift);
 	}
@@ -1866,14 +2398,14 @@
 {
 	uintptr *p, *b, off;
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markspan: bad pointer");
 
 	p = v;
-	off = p - (uintptr*)runtime_mheap.arena_start;  // word offset
+	off = p - (uintptr*)runtime_mheap->arena_start;  // word offset
 	if(off % wordsPerBitmapWord != 0)
 		runtime_throw("markspan: unaligned pointer");
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	n /= PtrSize;
 	if(n%wordsPerBitmapWord != 0)
 		runtime_throw("unmarkspan: unaligned length");
@@ -1894,8 +2426,8 @@
 	if(DebugMark)
 		return true;
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	return (*b & (bitSpecial<<shift)) != 0;
@@ -1909,8 +2441,8 @@
 	if(DebugMark)
 		return;
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.h gcc-4.8.1/libgo/runtime/mgc0.h
--- gcc-4.8.1.orig/libgo/runtime/mgc0.h	2012-12-22 01:15:33.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mgc0.h	2013-10-01 16:06:44.228554278 +0000
@@ -12,17 +12,22 @@
 // Meaning of arguments:
 //   off      Offset (in bytes) from the start of the current object
 //   objgc    Pointer to GC info of an object
+//   objgcrel Offset to GC info of an object
 //   len      Length of an array
 //   elemsize Size (in bytes) of an element
 //   size     Size (in bytes)
+//
+// NOTE: There is a copy of these in ../reflect/type.go.
+// They must be kept in sync.
 enum {
 	GC_END,         // End of object, loop or subroutine. Args: none
 	GC_PTR,         // A typed pointer. Args: (off, objgc)
 	GC_APTR,        // Pointer to an arbitrary object. Args: (off)
 	GC_ARRAY_START, // Start an array with a fixed length. Args: (off, len, elemsize)
 	GC_ARRAY_NEXT,  // The next element of an array. Args: none
-	GC_CALL,        // Call a subroutine. Args: (off, objgc)
+	GC_CALL,        // Call a subroutine. Args: (off, objgcrel)
 	GC_MAP_PTR,     // Go map. Args: (off, MapType*)
+	GC_CHAN_PTR,    // Go channel. Args: (off, ChanType*)
 	GC_STRING,      // Go string. Args: (off)
 	GC_EFACE,       // interface{}. Args: (off)
 	GC_IFACE,       // interface{...}. Args: (off)
diff -Naur gcc-4.8.1.orig/libgo/runtime/mheap.c gcc-4.8.1/libgo/runtime/mheap.c
--- gcc-4.8.1.orig/libgo/runtime/mheap.c	2013-02-05 23:59:24.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mheap.c	2013-10-01 16:06:44.228554278 +0000
@@ -37,6 +37,8 @@
 		if(cap < h->nspancap*3/2)
 			cap = h->nspancap*3/2;
 		all = (MSpan**)runtime_SysAlloc(cap*sizeof(all[0]));
+		if(all == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		if(h->allspans) {
 			runtime_memmove(all, h->allspans, h->nspancap*sizeof(all[0]));
 			runtime_SysFree(h->allspans, h->nspancap*sizeof(all[0]));
@@ -119,6 +121,25 @@
 	s->state = MSpanInUse;
 	mstats.heap_idle -= s->npages<<PageShift;
 	mstats.heap_released -= s->npreleased<<PageShift;
+	if(s->npreleased > 0) {
+		// We have called runtime_SysUnused with these pages, and on
+		// Unix systems it called madvise.  At this point at least
+		// some BSD-based kernels will return these pages either as
+		// zeros or with the old data.  For our caller, the first word
+		// in the page indicates whether the span contains zeros or
+		// not (this word was set when the span was freed by
+		// MCentral_Free or runtime_MCentral_FreeSpan).  If the first
+		// page in the span is returned as zeros, and some subsequent
+		// page is returned with the old data, then we will be
+		// returning a span that is assumed to be all zeros, but the
+		// actual data will not be all zeros.  Avoid that problem by
+		// explicitly marking the span as not being zeroed, just in
+		// case.  The beadbead constant we use here means nothing, it
+		// is just a unique constant not seen elsewhere in the
+		// runtime, as a clue in case it turns up unexpectedly in
+		// memory or in a stack trace.
+		*(uintptr*)(s->start<<PageShift) = (uintptr)0xbeadbeadbeadbeadULL;
+	}
 	s->npreleased = 0;
 
 	if(s->npages > npage) {
@@ -356,23 +377,64 @@
 	runtime_notewakeup(note);
 }
 
+static uintptr
+scavengelist(MSpan *list, uint64 now, uint64 limit)
+{
+	uintptr released, sumreleased;
+	MSpan *s;
+
+	if(runtime_MSpanList_IsEmpty(list))
+		return 0;
+
+	sumreleased = 0;
+	for(s=list->next; s != list; s=s->next) {
+		if((now - s->unusedsince) > limit) {
+			released = (s->npages - s->npreleased) << PageShift;
+			mstats.heap_released += released;
+			sumreleased += released;
+			s->npreleased = s->npages;
+			runtime_SysUnused((void*)(s->start << PageShift), s->npages << PageShift);
+		}
+	}
+	return sumreleased;
+}
+
+static uintptr
+scavenge(uint64 now, uint64 limit)
+{
+	uint32 i;
+	uintptr sumreleased;
+	MHeap *h;
+	
+	h = runtime_mheap;
+	sumreleased = 0;
+	for(i=0; i < nelem(h->free); i++)
+		sumreleased += scavengelist(&h->free[i], now, limit);
+	sumreleased += scavengelist(&h->large, now, limit);
+	return sumreleased;
+}
+
 // Release (part of) unused memory to OS.
 // Goroutine created at startup.
 // Loop forever.
 void
 runtime_MHeap_Scavenger(void* dummy)
 {
+	G *g;
 	MHeap *h;
-	MSpan *s, *list;
 	uint64 tick, now, forcegc, limit;
-	uint32 k, i;
-	uintptr released, sumreleased;
+	uint32 k;
+	uintptr sumreleased;
 	const byte *env;
 	bool trace;
 	Note note, *notep;
 
 	USED(dummy);
 
+	g = runtime_g();
+	g->issystem = true;
+	g->isbackground = true;
+
 	// If we go two minutes without a garbage collection, force one to run.
 	forcegc = 2*60*1e9;
 	// If a span goes unused for 5 minutes after a garbage collection,
@@ -389,10 +451,10 @@
 	if(env != nil)
 		trace = runtime_atoi(env) > 0;
 
-	h = &runtime_mheap;
+	h = runtime_mheap;
 	for(k=0;; k++) {
 		runtime_noteclear(&note);
-		runtime_entersyscall();
+		runtime_entersyscallblock();
 		runtime_notetsleep(&note, tick);
 		runtime_exitsyscall();
 
@@ -406,7 +468,7 @@
 			runtime_noteclear(&note);
 			notep = &note;
 			__go_go(forcegchelper, (void*)notep);
-			runtime_entersyscall();
+			runtime_entersyscallblock();
 			runtime_notesleep(&note);
 			runtime_exitsyscall();
 			if(trace)
@@ -414,24 +476,7 @@
 			runtime_lock(h);
 			now = runtime_nanotime();
 		}
-		sumreleased = 0;
-		for(i=0; i < nelem(h->free)+1; i++) {
-			if(i < nelem(h->free))
-				list = &h->free[i];
-			else
-				list = &h->large;
-			if(runtime_MSpanList_IsEmpty(list))
-				continue;
-			for(s=list->next; s != list; s=s->next) {
-				if((now - s->unusedsince) > limit) {
-					released = (s->npages - s->npreleased) << PageShift;
-					mstats.heap_released += released;
-					sumreleased += released;
-					s->npreleased = s->npages;
-					runtime_SysUnused((void*)(s->start << PageShift), s->npages << PageShift);
-				}
-			}
-		}
+		sumreleased = scavenge(now, limit);
 		runtime_unlock(h);
 
 		if(trace) {
@@ -444,6 +489,17 @@
 	}
 }
 
+void runtime_debug_freeOSMemory(void) __asm__("runtime_debug.freeOSMemory");
+
+void
+runtime_debug_freeOSMemory(void)
+{
+	runtime_gc(1);
+	runtime_lock(runtime_mheap);
+	scavenge(~(uintptr)0, 0);
+	runtime_unlock(runtime_mheap);
+}
+
 // Initialize a new span with the given start and npages.
 void
 runtime_MSpan_Init(MSpan *span, PageID start, uintptr npages)
diff -Naur gcc-4.8.1.orig/libgo/runtime/mprof.goc gcc-4.8.1/libgo/runtime/mprof.goc
--- gcc-4.8.1.orig/libgo/runtime/mprof.goc	2013-01-30 22:24:40.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/mprof.goc	2013-10-01 16:06:44.228554278 +0000
@@ -14,7 +14,43 @@
 #include "go-string.h"
 
 // NOTE(rsc): Everything here could use cas if contention became an issue.
-static Lock proflock;
+static Lock proflock, alloclock;
+
+// All memory allocations are local and do not escape outside of the profiler.
+// The profiler is forbidden from referring to garbage-collected memory.
+
+static byte *pool;        // memory allocation pool
+static uintptr poolfree;  // number of bytes left in the pool
+enum {
+	Chunk = 32*PageSize,  // initial size of the pool
+};
+
+// Memory allocation local to this file.
+// There is no way to return the allocated memory back to the OS.
+static void*
+allocate(uintptr size)
+{
+	void *v;
+
+	if(size == 0)
+		return nil;
+
+	if(size >= Chunk/2)
+		return runtime_SysAlloc(size);
+
+	runtime_lock(&alloclock);
+	if(size > poolfree) {
+		pool = runtime_SysAlloc(Chunk);
+		if(pool == nil)
+			runtime_throw("runtime: cannot allocate memory");
+		poolfree = Chunk;
+	}
+	v = pool;
+	pool += size;
+	poolfree -= size;
+	runtime_unlock(&alloclock);
+	return v;
+}
 
 enum { MProf, BProf };  // profile types
 
@@ -26,6 +62,8 @@
 	Bucket	*next;	// next in hash list
 	Bucket	*allnext;	// next in list of all mbuckets/bbuckets
 	int32	typ;
+	// Generally unions can break precise GC,
+	// this one is fine because it does not contain pointers.
 	union
 	{
 		struct  // typ == MProf
@@ -67,6 +105,8 @@
 
 	if(buckhash == nil) {
 		buckhash = runtime_SysAlloc(BuckHashSize*sizeof buckhash[0]);
+		if(buckhash == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		mstats.buckhash_sys += BuckHashSize*sizeof buckhash[0];
 	}
 
@@ -97,7 +137,9 @@
 	if(!alloc)
 		return nil;
 
-	b = runtime_mallocgc(sizeof *b + nstk*sizeof stk[0], FlagNoProfiling, 0, 1);
+	b = allocate(sizeof *b + nstk*sizeof stk[0]);
+	if(b == nil)
+		runtime_throw("runtime: cannot allocate memory");
 	bucketmem += sizeof *b + nstk*sizeof stk[0];
 	runtime_memmove(b->stk, stk, nstk*sizeof stk[0]);
 	b->typ = typ;
@@ -115,13 +157,11 @@
 	return b;
 }
 
-// Record that a gc just happened: all the 'recent' statistics are now real.
-void
-runtime_MProf_GC(void)
+static void
+MProf_GC(void)
 {
 	Bucket *b;
-	
-	runtime_lock(&proflock);
+
 	for(b=mbuckets; b; b=b->allnext) {
 		b->allocs += b->recent_allocs;
 		b->frees += b->recent_frees;
@@ -132,6 +172,14 @@
 		b->recent_alloc_bytes = 0;
 		b->recent_free_bytes = 0;
 	}
+}
+
+// Record that a gc just happened: all the 'recent' statistics are now real.
+void
+runtime_MProf_GC(void)
+{
+	runtime_lock(&proflock);
+	MProf_GC();
 	runtime_unlock(&proflock);
 }
 
@@ -166,7 +214,7 @@
 	Bucket *b;
 };
 
-static AddrHash *addrhash[1<<AddrHashBits];
+static AddrHash **addrhash;	// points to (AddrHash*)[1<<AddrHashBits]
 static AddrEntry *addrfree;
 static uintptr addrmem;
 
@@ -193,7 +241,7 @@
 		if(ah->addr == (addr>>AddrHashShift))
 			goto found;
 
-	ah = runtime_mallocgc(sizeof *ah, FlagNoProfiling, 0, 1);
+	ah = allocate(sizeof *ah);
 	addrmem += sizeof *ah;
 	ah->next = addrhash[h];
 	ah->addr = addr>>AddrHashShift;
@@ -201,7 +249,7 @@
 
 found:
 	if((e = addrfree) == nil) {
-		e = runtime_mallocgc(64*sizeof *e, FlagNoProfiling, 0, 0);
+		e = allocate(64*sizeof *e);
 		addrmem += 64*sizeof *e;
 		for(i=0; i+1<64; i++)
 			e[i].next = &e[i+1];
@@ -353,12 +401,28 @@
 func MemProfile(p Slice, include_inuse_zero bool) (n int, ok bool) {
 	Bucket *b;
 	Record *r;
+	bool clear;
 
 	runtime_lock(&proflock);
 	n = 0;
-	for(b=mbuckets; b; b=b->allnext)
+	clear = true;
+	for(b=mbuckets; b; b=b->allnext) {
 		if(include_inuse_zero || b->alloc_bytes != b->free_bytes)
 			n++;
+		if(b->allocs != 0 || b->frees != 0)
+			clear = false;
+	}
+	if(clear) {
+		// Absolutely no data, suggesting that a garbage collection
+		// has not yet happened. In order to allow profiling when
+		// garbage collection is disabled from the beginning of execution,
+		// accumulate stats as if a GC just happened, and recount buckets.
+		MProf_GC();
+		n = 0;
+		for(b=mbuckets; b; b=b->allnext)
+			if(include_inuse_zero || b->alloc_bytes != b->free_bytes)
+				n++;
+	}
 	ok = false;
 	if(n <= p.__count) {
 		ok = true;
@@ -531,3 +595,8 @@
 	}
 }
 
+void
+runtime_mprofinit(void)
+{
+	addrhash = allocate((1<<AddrHashBits)*sizeof *addrhash);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll.goc gcc-4.8.1/libgo/runtime/netpoll.goc
--- gcc-4.8.1.orig/libgo/runtime/netpoll.goc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/netpoll.goc	2013-10-01 16:06:44.228554278 +0000
@@ -0,0 +1,356 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin linux
+
+package net
+
+#include "runtime.h"
+#include "defs.h"
+#include "arch.h"
+#include "malloc.h"
+
+// Map gccgo field names to gc field names.
+// Eface aka __go_empty_interface.
+#define type __type_descriptor
+#define data __object
+
+// Integrated network poller (platform-independent part).
+// A particular implementation (epoll/kqueue) must define the following functions:
+// void runtime_netpollinit(void);			// to initialize the poller
+// int32 runtime_netpollopen(int32 fd, PollDesc *pd);	// to arm edge-triggered notifications
+							// and associate fd with pd.
+// An implementation must call the following function to denote that the pd is ready.
+// void runtime_netpollready(G **gpp, PollDesc *pd, int32 mode);
+
+#define READY ((G*)1)
+
+struct PollDesc
+{
+	PollDesc* link;	// in pollcache, protected by pollcache.Lock
+	Lock;		// protectes the following fields
+	int32	fd;
+	bool	closing;
+	uintptr	seq;	// protects from stale timers and ready notifications
+	G*	rg;	// G waiting for read or READY (binary semaphore)
+	Timer	rt;	// read deadline timer (set if rt.fv != nil)
+	int64	rd;	// read deadline
+	G*	wg;	// the same for writes
+	Timer	wt;
+	int64	wd;
+};
+
+static struct
+{
+	Lock;
+	PollDesc*	first;
+	// PollDesc objects must be type-stable,
+	// because we can get ready notification from epoll/kqueue
+	// after the descriptor is closed/reused.
+	// Stale notifications are detected using seq variable,
+	// seq is incremented when deadlines are changed or descriptor is reused.
+} pollcache;
+
+static void	netpollblock(PollDesc*, int32);
+static G*	netpollunblock(PollDesc*, int32);
+static void	deadline(int64, Eface);
+static void	readDeadline(int64, Eface);
+static void	writeDeadline(int64, Eface);
+static PollDesc*	allocPollDesc(void);
+static intgo	checkerr(PollDesc *pd, int32 mode);
+
+static FuncVal deadlineFn	= {(void(*)(void))deadline};
+static FuncVal readDeadlineFn	= {(void(*)(void))readDeadline};
+static FuncVal writeDeadlineFn	= {(void(*)(void))writeDeadline};
+
+func runtime_pollServerInit() {
+	runtime_netpollinit();
+}
+
+func runtime_pollOpen(fd int) (pd *PollDesc, errno int) {
+	pd = allocPollDesc();
+	runtime_lock(pd);
+	if(pd->wg != nil && pd->wg != READY)
+		runtime_throw("runtime_pollOpen: blocked write on free descriptor");
+	if(pd->rg != nil && pd->rg != READY)
+		runtime_throw("runtime_pollOpen: blocked read on free descriptor");
+	pd->fd = fd;
+	pd->closing = false;
+	pd->seq++;
+	pd->rg = nil;
+	pd->rd = 0;
+	pd->wg = nil;
+	pd->wd = 0;
+	runtime_unlock(pd);
+
+	errno = runtime_netpollopen(fd, pd);
+}
+
+func runtime_pollClose(pd *PollDesc) {
+	if(!pd->closing)
+		runtime_throw("runtime_pollClose: close w/o unblock");
+	if(pd->wg != nil && pd->wg != READY)
+		runtime_throw("runtime_pollClose: blocked write on closing descriptor");
+	if(pd->rg != nil && pd->rg != READY)
+		runtime_throw("runtime_pollClose: blocked read on closing descriptor");
+	runtime_netpollclose(pd->fd);
+	runtime_lock(&pollcache);
+	pd->link = pollcache.first;
+	pollcache.first = pd;
+	runtime_unlock(&pollcache);
+}
+
+func runtime_pollReset(pd *PollDesc, mode int) (err int) {
+	runtime_lock(pd);
+	err = checkerr(pd, mode);
+	if(err)
+		goto ret;
+	if(mode == 'r')
+		pd->rg = nil;
+	else if(mode == 'w')
+		pd->wg = nil;
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollWait(pd *PollDesc, mode int) (err int) {
+	runtime_lock(pd);
+	err = checkerr(pd, mode);
+	if(err)
+		goto ret;
+	netpollblock(pd, mode);
+	err = checkerr(pd, mode);
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollSetDeadline(pd *PollDesc, d int64, mode int) {
+	runtime_lock(pd);
+	if(pd->closing)
+		goto ret;
+	pd->seq++;  // invalidate current timers
+	// Reset current timers.
+	if(pd->rt.fv) {
+		runtime_deltimer(&pd->rt);
+		pd->rt.fv = nil;
+	}
+	if(pd->wt.fv) {
+		runtime_deltimer(&pd->wt);
+		pd->wt.fv = nil;
+	}
+	// Setup new timers.
+	if(d != 0 && d <= runtime_nanotime()) {
+		d = -1;
+	}
+	if(mode == 'r' || mode == 'r'+'w')
+		pd->rd = d;
+	if(mode == 'w' || mode == 'r'+'w')
+		pd->wd = d;
+	if(pd->rd > 0 && pd->rd == pd->wd) {
+		pd->rt.fv = &deadlineFn;
+		pd->rt.when = pd->rd;
+		// Copy current seq into the timer arg.
+		// Timer func will check the seq against current descriptor seq,
+		// if they differ the descriptor was reused or timers were reset.
+		pd->rt.arg.type = (Type*)pd->seq;
+		pd->rt.arg.data = pd;
+		runtime_addtimer(&pd->rt);
+	} else {
+		if(pd->rd > 0) {
+			pd->rt.fv = &readDeadlineFn;
+			pd->rt.when = pd->rd;
+			pd->rt.arg.type = (Type*)pd->seq;
+			pd->rt.arg.data = pd;
+			runtime_addtimer(&pd->rt);
+		}
+		if(pd->wd > 0) {
+			pd->wt.fv = &writeDeadlineFn;
+			pd->wt.when = pd->wd;
+			pd->wt.arg.type = (Type*)pd->seq;
+			pd->wt.arg.data = pd;
+			runtime_addtimer(&pd->wt);
+		}
+	}
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollUnblock(pd *PollDesc) {
+	G *rg, *wg;
+
+	runtime_lock(pd);
+	if(pd->closing)
+		runtime_throw("runtime_pollUnblock: already closing");
+	pd->closing = true;
+	pd->seq++;
+	rg = netpollunblock(pd, 'r');
+	wg = netpollunblock(pd, 'w');
+	if(pd->rt.fv) {
+		runtime_deltimer(&pd->rt);
+		pd->rt.fv = nil;
+	}
+	if(pd->wt.fv) {
+		runtime_deltimer(&pd->wt);
+		pd->wt.fv = nil;
+	}
+	runtime_unlock(pd);
+	if(rg)
+		runtime_ready(rg);
+	if(wg)
+		runtime_ready(wg);
+}
+
+// make pd ready, newly runnable goroutines (if any) are enqueued info gpp list
+void
+runtime_netpollready(G **gpp, PollDesc *pd, int32 mode)
+{
+	G *rg, *wg;
+
+	rg = wg = nil;
+	runtime_lock(pd);
+	if(mode == 'r' || mode == 'r'+'w')
+		rg = netpollunblock(pd, 'r');
+	if(mode == 'w' || mode == 'r'+'w')
+		wg = netpollunblock(pd, 'w');
+	runtime_unlock(pd);
+	if(rg) {
+		rg->schedlink = *gpp;
+		*gpp = rg;
+	}
+	if(wg) {
+		wg->schedlink = *gpp;
+		*gpp = wg;
+	}
+}
+
+static intgo
+checkerr(PollDesc *pd, int32 mode)
+{
+	if(pd->closing)
+		return 1;  // errClosing
+	if((mode == 'r' && pd->rd < 0) || (mode == 'w' && pd->wd < 0))
+		return 2;  // errTimeout
+	return 0;
+}
+
+static void
+netpollblock(PollDesc *pd, int32 mode)
+{
+	G **gpp;
+
+	gpp = &pd->rg;
+	if(mode == 'w')
+		gpp = &pd->wg;
+	if(*gpp == READY) {
+		*gpp = nil;
+		return;
+	}
+	if(*gpp != nil)
+		runtime_throw("epoll: double wait");
+	*gpp = runtime_g();
+	runtime_park(runtime_unlock, &pd->Lock, "IO wait");
+	runtime_lock(pd);
+}
+
+static G*
+netpollunblock(PollDesc *pd, int32 mode)
+{
+	G **gpp, *old;
+
+	gpp = &pd->rg;
+	if(mode == 'w')
+		gpp = &pd->wg;
+	if(*gpp == READY)
+		return nil;
+	if(*gpp == nil) {
+		*gpp = READY;
+		return nil;
+	}
+	old = *gpp;
+	*gpp = nil;
+	return old;
+}
+
+static void
+deadlineimpl(int64 now, Eface arg, bool read, bool write)
+{
+	PollDesc *pd;
+	uint32 seq;
+	G *rg, *wg;
+
+	USED(now);
+	pd = (PollDesc*)arg.data;
+	// This is the seq when the timer was set.
+	// If it's stale, ignore the timer event.
+	seq = (uintptr)arg.type;
+	rg = wg = nil;
+	runtime_lock(pd);
+	if(seq != pd->seq) {
+		// The descriptor was reused or timers were reset.
+		runtime_unlock(pd);
+		return;
+	}
+	if(read) {
+		if(pd->rd <= 0 || pd->rt.fv == nil)
+			runtime_throw("deadlineimpl: inconsistent read deadline");
+		pd->rd = -1;
+		pd->rt.fv = nil;
+		rg = netpollunblock(pd, 'r');
+	}
+	if(write) {
+		if(pd->wd <= 0 || (pd->wt.fv == nil && !read))
+			runtime_throw("deadlineimpl: inconsistent write deadline");
+		pd->wd = -1;
+		pd->wt.fv = nil;
+		wg = netpollunblock(pd, 'w');
+	}
+	runtime_unlock(pd);
+	if(rg)
+		runtime_ready(rg);
+	if(wg)
+		runtime_ready(wg);
+}
+
+static void
+deadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, true, true);
+}
+
+static void
+readDeadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, true, false);
+}
+
+static void
+writeDeadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, false, true);
+}
+
+static PollDesc*
+allocPollDesc(void)
+{
+	PollDesc *pd;
+	uint32 i, n;
+
+	runtime_lock(&pollcache);
+	if(pollcache.first == nil) {
+		n = PageSize/sizeof(*pd);
+		if(n == 0)
+			n = 1;
+		// Must be in non-GC memory because can be referenced
+		// only from epoll/kqueue internals.
+		pd = runtime_SysAlloc(n*sizeof(*pd));
+		for(i = 0; i < n; i++) {
+			pd[i].link = pollcache.first;
+			pollcache.first = &pd[i];
+		}
+	}
+	pd = pollcache.first;
+	pollcache.first = pd->link;
+	runtime_unlock(&pollcache);
+	return pd;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c gcc-4.8.1/libgo/runtime/netpoll_epoll.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/netpoll_epoll.c	2013-10-01 16:06:44.228554278 +0000
@@ -0,0 +1,158 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/epoll.h>
+
+#include "runtime.h"
+#include "defs.h"
+
+#ifndef EPOLLRDHUP
+#define EPOLLRDHUP 0x2000
+#endif
+
+#ifndef EPOLL_CLOEXEC
+#define EPOLL_CLOEXEC 02000000
+#endif
+
+#ifndef HAVE_EPOLL_CREATE1
+extern int epoll_create1(int __flags);
+#endif
+
+typedef struct epoll_event EpollEvent;
+
+static int32
+runtime_epollcreate(int32 size)
+{
+	int r;
+
+	r = epoll_create(size);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollcreate1(int32 flags)
+{
+	int r;
+
+	r = epoll_create1(flags);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollctl(int32 epfd, int32 op, int32 fd, EpollEvent *ev)
+{
+	int r;
+
+	r = epoll_ctl(epfd, op, fd, ev);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout)
+{
+	int r;
+
+	r = epoll_wait(epfd, ev, nev, timeout);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static void
+runtime_closeonexec(int32 fd)
+{
+	fcntl(fd, F_SETFD, FD_CLOEXEC);
+}
+
+static int32 epfd = -1;  // epoll descriptor
+
+void
+runtime_netpollinit(void)
+{
+	epfd = runtime_epollcreate1(EPOLL_CLOEXEC);
+	if(epfd >= 0)
+		return;
+	epfd = runtime_epollcreate(1024);
+	if(epfd >= 0) {
+		runtime_closeonexec(epfd);
+		return;
+	}
+	runtime_printf("netpollinit: failed to create descriptor (%d)\n", -epfd);
+	runtime_throw("netpollinit: failed to create descriptor");
+}
+
+int32
+runtime_netpollopen(int32 fd, PollDesc *pd)
+{
+	EpollEvent ev;
+	int32 res;
+
+	ev.events = EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET;
+	ev.data.ptr = (void*)pd;
+	res = runtime_epollctl(epfd, EPOLL_CTL_ADD, fd, &ev);
+	return -res;
+}
+
+int32
+runtime_netpollclose(int32 fd)
+{
+	EpollEvent ev;
+	int32 res;
+
+	res = runtime_epollctl(epfd, EPOLL_CTL_DEL, fd, &ev);
+	return -res;
+}
+
+// polls for ready network connections
+// returns list of goroutines that become runnable
+G*
+runtime_netpoll(bool block)
+{
+	static int32 lasterr;
+	EpollEvent events[128], *ev;
+	int32 n, i, waitms, mode;
+	G *gp;
+
+	if(epfd == -1)
+		return nil;
+	waitms = -1;
+	if(!block)
+		waitms = 0;
+retry:
+	n = runtime_epollwait(epfd, events, nelem(events), waitms);
+	if(n < 0) {
+		if(n != -EINTR && n != lasterr) {
+			lasterr = n;
+			runtime_printf("runtime: epollwait on fd %d failed with %d\n", epfd, -n);
+		}
+		goto retry;
+	}
+	gp = nil;
+	for(i = 0; i < n; i++) {
+		ev = &events[i];
+		if(ev->events == 0)
+			continue;
+		mode = 0;
+		if(ev->events & (EPOLLIN|EPOLLRDHUP|EPOLLHUP|EPOLLERR))
+			mode += 'r';
+		if(ev->events & (EPOLLOUT|EPOLLHUP|EPOLLERR))
+			mode += 'w';
+		if(mode)
+			runtime_netpollready(&gp, (void*)ev->data.ptr, mode);
+	}
+	if(block && gp == nil)
+		goto retry;
+	return gp;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c gcc-4.8.1/libgo/runtime/netpoll_kqueue.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/netpoll_kqueue.c	2013-10-01 16:06:44.228554278 +0000
@@ -0,0 +1,108 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin
+
+#include "runtime.h"
+#include "defs_GOOS_GOARCH.h"
+
+// Integrated network poller (kqueue-based implementation).
+
+int32	runtime_kqueue(void);
+int32	runtime_kevent(int32, Kevent*, int32, Kevent*, int32, Timespec*);
+void	runtime_closeonexec(int32);
+
+static int32 kq = -1;
+
+void
+runtime_netpollinit(void)
+{
+	kq = runtime_kqueue();
+	if(kq < 0) {
+		runtime_printf("netpollinit: kqueue failed with %d\n", -kq);
+		runtime_throw("netpollinit: kqueue failed");
+	}
+	runtime_closeonexec(kq);
+}
+
+int32
+runtime_netpollopen(int32 fd, PollDesc *pd)
+{
+	Kevent ev[2];
+	int32 n;
+
+	// Arm both EVFILT_READ and EVFILT_WRITE in edge-triggered mode (EV_CLEAR)
+	// for the whole fd lifetime.  The notifications are automatically unregistered
+	// when fd is closed.
+	ev[0].ident = fd;
+	ev[0].filter = EVFILT_READ;
+	ev[0].flags = EV_ADD|EV_RECEIPT|EV_CLEAR;
+	ev[0].fflags = 0;
+	ev[0].data = 0;
+	ev[0].udata = (byte*)pd;
+	ev[1] = ev[0];
+	ev[1].filter = EVFILT_WRITE;
+	n = runtime_kevent(kq, ev, 2, ev, 2, nil);
+	if(n < 0)
+		return -n;
+	if(n != 2 ||
+		(ev[0].flags&EV_ERROR) == 0 || ev[0].ident != fd || ev[0].filter != EVFILT_READ ||
+		(ev[1].flags&EV_ERROR) == 0 || ev[1].ident != fd || ev[1].filter != EVFILT_WRITE)
+		return EFAULT;  // just to mark out from other errors
+	if(ev[0].data != 0)
+		return ev[0].data;
+	if(ev[1].data != 0)
+		return ev[1].data;
+	return 0;
+}
+
+int32
+runtime_netpollclose(int32 fd)
+{
+	// Don't need to unregister because calling close()
+	// on fd will remove any kevents that reference the descriptor.
+	USED(fd);
+	return 0;
+}
+
+// Polls for ready network connections.
+// Returns list of goroutines that become runnable.
+G*
+runtime_netpoll(bool block)
+{
+	static int32 lasterr;
+	Kevent events[64], *ev;
+	Timespec ts, *tp;
+	int32 n, i;
+	G *gp;
+
+	if(kq == -1)
+		return nil;
+	tp = nil;
+	if(!block) {
+		ts.tv_sec = 0;
+		ts.tv_nsec = 0;
+		tp = &ts;
+	}
+	gp = nil;
+retry:
+	n = runtime_kevent(kq, nil, 0, events, nelem(events), tp);
+	if(n < 0) {
+		if(n != -EINTR && n != lasterr) {
+			lasterr = n;
+			runtime_printf("runtime: kevent on fd %d failed with %d\n", kq, -n);
+		}
+		goto retry;
+	}
+	for(i = 0; i < n; i++) {
+		ev = &events[i];
+		if(ev->filter == EVFILT_READ)
+			runtime_netpollready(&gp, (PollDesc*)ev->udata, 'r');
+		if(ev->filter == EVFILT_WRITE)
+			runtime_netpollready(&gp, (PollDesc*)ev->udata, 'w');
+	}
+	if(block && gp == nil)
+		goto retry;
+	return gp;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c gcc-4.8.1/libgo/runtime/netpoll_stub.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/netpoll_stub.c	2013-10-01 16:06:44.228554278 +0000
@@ -0,0 +1,18 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build freebsd netbsd openbsd plan9 windows
+
+#include "runtime.h"
+
+// Polls for ready network connections.
+// Returns list of goroutines that become runnable.
+G*
+runtime_netpoll(bool block)
+{
+	// Implementation for platforms that do not support
+	// integrated network poller.
+	USED(block);
+	return nil;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/panic.c gcc-4.8.1/libgo/runtime/panic.c
--- gcc-4.8.1.orig/libgo/runtime/panic.c	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/panic.c	2013-10-01 16:06:44.228554278 +0000
@@ -3,6 +3,7 @@
 // license that can be found in the LICENSE file.
 
 #include "runtime.h"
+#include "malloc.h"
 #include "go-defer.h"
 #include "go-panic.h"
 
@@ -37,6 +38,11 @@
 	M *m;
 
 	m = runtime_m();
+	if(runtime_mheap == 0 || runtime_mheap->cachealloc.size == 0) { // very early
+		runtime_printf("runtime: panic before malloc heap initialized\n");
+		m->mallocing = 1; // tell rest of panic not to try to malloc
+	} else if(m->mcache == nil) // can happen if called from signal handler or throw
+		m->mcache = runtime_allocmcache();
 	if(m->dying) {
 		runtime_printf("panic during panic\n");
 		runtime_exit(3);
@@ -51,13 +57,14 @@
 {
 	G *g;
 	static bool didothers;
+	bool crash;
 
 	g = runtime_g();
 	if(g->sig != 0)
 		runtime_printf("[signal %x code=%p addr=%p]\n",
 			       g->sig, (void*)g->sigcode0, (void*)g->sigcode1);
 
-	if(runtime_gotraceback()){
+	if(runtime_gotraceback(&crash)){
 		if(g != runtime_m()->g0) {
 			runtime_printf("\n");
 			runtime_goroutineheader(g);
@@ -79,6 +86,9 @@
 		runtime_lock(&deadlock);
 		runtime_lock(&deadlock);
 	}
+	
+	if(crash)
+		runtime_crash();
 
 	runtime_exit(2);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/parfor.c gcc-4.8.1/libgo/runtime/parfor.c
--- gcc-4.8.1.orig/libgo/runtime/parfor.c	2013-01-24 19:44:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/parfor.c	2013-10-01 16:06:44.228554278 +0000
@@ -49,6 +49,7 @@
 runtime_parforsetup(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void (*body)(ParFor*, uint32))
 {
 	uint32 i, begin, end;
+	uint64 *pos;
 
 	if(desc == nil || nthr == 0 || nthr > desc->nthrmax || body == nil) {
 		runtime_printf("desc=%p nthr=%d count=%d body=%p\n", desc, nthr, n, body);
@@ -70,7 +71,10 @@
 	for(i=0; i<nthr; i++) {
 		begin = (uint64)n*i / nthr;
 		end = (uint64)n*(i+1) / nthr;
-		desc->thr[i].pos = (uint64)begin | (((uint64)end)<<32);
+		pos = &desc->thr[i].pos;
+		if(((uintptr)pos & 7) != 0)
+			runtime_throw("parforsetup: pos is not aligned");
+		*pos = (uint64)begin | (((uint64)end)<<32);
 	}
 }
 
@@ -83,7 +87,7 @@
 void
 runtime_parforsetup2(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void *body)
 {
-	runtime_parforsetup(desc, nthr, n, ctx, wait, (void(*)(ParFor*, uint32))body);
+	runtime_parforsetup(desc, nthr, n, ctx, wait, *(void(**)(ParFor*, uint32))body);
 }
 
 void
@@ -152,7 +156,7 @@
 				// See if it has any work.
 				begin = (uint32)pos;
 				end = (uint32)(pos>>32);
-				if(begin >= end-1) {
+				if(begin+1 >= end) {
 					begin = end = 0;
 					break;
 				}
diff -Naur gcc-4.8.1.orig/libgo/runtime/print.c gcc-4.8.1/libgo/runtime/print.c
--- gcc-4.8.1.orig/libgo/runtime/print.c	2012-12-04 06:18:07.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/print.c	2013-10-01 16:06:44.228554278 +0000
@@ -88,6 +88,9 @@
 		case 'a':
 			runtime_printslice(va_arg(va, Slice));
 			break;
+		case 'c':
+			runtime_printbyte(va_arg(va, int32));
+			break;
 		case 'd':
 			runtime_printint(va_arg(va, int32));
 			break;
@@ -154,6 +157,12 @@
 }
 
 void
+runtime_printbyte(int8 c)
+{
+	gwrite(&c, 1);
+}
+
+void
 runtime_printfloat(double v)
 {
 	byte buf[20];
diff -Naur gcc-4.8.1.orig/libgo/runtime/proc.c gcc-4.8.1/libgo/runtime/proc.c
--- gcc-4.8.1.orig/libgo/runtime/proc.c	2013-02-28 21:56:14.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/proc.c	2013-10-01 16:06:44.232554278 +0000
@@ -56,15 +56,8 @@
 
 uintptr runtime_stacks_sys;
 
-static void schedule(G*);
-
 static void gtraceback(G*);
 
-typedef struct Sched Sched;
-
-M	runtime_m0;
-G	runtime_g0;	// idle goroutine for m0
-
 #ifdef __rtems__
 #define __thread
 #endif
@@ -166,194 +159,61 @@
 	return m;
 }
 
-int32	runtime_gcwaiting;
-
-G*	runtime_allg;
-G*	runtime_lastg;
-M*	runtime_allm;
-
-int8*	runtime_goos;
-int32	runtime_ncpu;
-
-// The static TLS size.  See runtime_newm.
-static int tlssize;
-
-#ifdef HAVE_DL_ITERATE_PHDR
-
-// Called via dl_iterate_phdr.
-
-static int
-addtls(struct dl_phdr_info* info, size_t size __attribute__ ((unused)), void *data)
-{
-	size_t *total = (size_t *)data;
-	unsigned int i;
-
-	for(i = 0; i < info->dlpi_phnum; ++i) {
-		if(info->dlpi_phdr[i].p_type == PT_TLS)
-			*total += info->dlpi_phdr[i].p_memsz;
-	}
-	return 0;
-}
-
-// Set the total TLS size.
-
-static void
-inittlssize()
+// Set m and g.
+void
+runtime_setmg(M* mp, G* gp)
 {
-	size_t total = 0;
-
-	dl_iterate_phdr(addtls, (void *)&total);
-	tlssize = total;
+	m = mp;
+	g = gp;
 }
 
-#else
+// The static TLS size.  See runtime_newm.
+static int tlssize;
 
+// Start a new thread.
 static void
-inittlssize()
+runtime_newosproc(M *mp)
 {
-}
-
-#endif
-
-// Go scheduler
-//
-// The go scheduler's job is to match ready-to-run goroutines (`g's)
-// with waiting-for-work schedulers (`m's).  If there are ready g's
-// and no waiting m's, ready() will start a new m running in a new
-// OS thread, so that all ready g's can run simultaneously, up to a limit.
-// For now, m's never go away.
-//
-// By default, Go keeps only one kernel thread (m) running user code
-// at a single time; other threads may be blocked in the operating system.
-// Setting the environment variable $GOMAXPROCS or calling
-// runtime.GOMAXPROCS() will change the number of user threads
-// allowed to execute simultaneously.  $GOMAXPROCS is thus an
-// approximation of the maximum number of cores to use.
-//
-// Even a program that can run without deadlock in a single process
-// might use more m's if given the chance.  For example, the prime
-// sieve will use as many m's as there are primes (up to runtime_sched.mmax),
-// allowing different stages of the pipeline to execute in parallel.
-// We could revisit this choice, only kicking off new m's for blocking
-// system calls, but that would limit the amount of parallel computation
-// that go would try to do.
-//
-// In general, one could imagine all sorts of refinements to the
-// scheduler, but the goal now is just to get something working on
-// Linux and OS X.
-
-struct Sched {
-	Lock;
-
-	G *gfree;	// available g's (status == Gdead)
-	int64 goidgen;
-
-	G *ghead;	// g's waiting to run
-	G *gtail;
-	int32 gwait;	// number of g's waiting to run
-	int32 gcount;	// number of g's that are alive
-	int32 grunning;	// number of g's running on cpu or in syscall
-
-	M *mhead;	// m's waiting for work
-	int32 mwait;	// number of m's waiting for work
-	int32 mcount;	// number of m's that have been created
+	pthread_attr_t attr;
+	size_t stacksize;
+	sigset_t clear, old;
+	pthread_t tid;
+	int ret;
 
-	volatile uint32 atomic;	// atomic scheduling word (see below)
+	if(pthread_attr_init(&attr) != 0)
+		runtime_throw("pthread_attr_init");
+	if(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0)
+		runtime_throw("pthread_attr_setdetachstate");
 
-	int32 profilehz;	// cpu profiling rate
+	stacksize = PTHREAD_STACK_MIN;
 
-	bool init;  // running initialization
-	bool lockmain;  // init called runtime.LockOSThread
+	// With glibc before version 2.16 the static TLS size is taken
+	// out of the stack size, and we get an error or a crash if
+	// there is not enough stack space left.  Add it back in if we
+	// can, in case the program uses a lot of TLS space.  FIXME:
+	// This can be disabled in glibc 2.16 and later, if the bug is
+	// indeed fixed then.
+	stacksize += tlssize;
 
-	Note	stopped;	// one g can set waitstop and wait here for m's to stop
-};
+	if(pthread_attr_setstacksize(&attr, stacksize) != 0)
+		runtime_throw("pthread_attr_setstacksize");
 
-// The atomic word in sched is an atomic uint32 that
-// holds these fields.
-//
-//	[15 bits] mcpu		number of m's executing on cpu
-//	[15 bits] mcpumax	max number of m's allowed on cpu
-//	[1 bit] waitstop	some g is waiting on stopped
-//	[1 bit] gwaiting	gwait != 0
-//
-// These fields are the information needed by entersyscall
-// and exitsyscall to decide whether to coordinate with the
-// scheduler.  Packing them into a single machine word lets
-// them use a fast path with a single atomic read/write and
-// no lock/unlock.  This greatly reduces contention in
-// syscall- or cgo-heavy multithreaded programs.
-//
-// Except for entersyscall and exitsyscall, the manipulations
-// to these fields only happen while holding the schedlock,
-// so the routines holding schedlock only need to worry about
-// what entersyscall and exitsyscall do, not the other routines
-// (which also use the schedlock).
-//
-// In particular, entersyscall and exitsyscall only read mcpumax,
-// waitstop, and gwaiting.  They never write them.  Thus, writes to those
-// fields can be done (holding schedlock) without fear of write conflicts.
-// There may still be logic conflicts: for example, the set of waitstop must
-// be conditioned on mcpu >= mcpumax or else the wait may be a
-// spurious sleep.  The Promela model in proc.p verifies these accesses.
-enum {
-	mcpuWidth = 15,
-	mcpuMask = (1<<mcpuWidth) - 1,
-	mcpuShift = 0,
-	mcpumaxShift = mcpuShift + mcpuWidth,
-	waitstopShift = mcpumaxShift + mcpuWidth,
-	gwaitingShift = waitstopShift+1,
-
-	// The max value of GOMAXPROCS is constrained
-	// by the max value we can store in the bit fields
-	// of the atomic word.  Reserve a few high values
-	// so that we can detect accidental decrement
-	// beyond zero.
-	maxgomaxprocs = mcpuMask - 10,
-};
+	// Block signals during pthread_create so that the new thread
+	// starts with signals disabled.  It will enable them in minit.
+	sigfillset(&clear);
 
-#define atomic_mcpu(v)		(((v)>>mcpuShift)&mcpuMask)
-#define atomic_mcpumax(v)	(((v)>>mcpumaxShift)&mcpuMask)
-#define atomic_waitstop(v)	(((v)>>waitstopShift)&1)
-#define atomic_gwaiting(v)	(((v)>>gwaitingShift)&1)
-
-Sched runtime_sched;
-int32 runtime_gomaxprocs;
-bool runtime_singleproc;
-
-static bool canaddmcpu(void);
-
-// An m that is waiting for notewakeup(&m->havenextg).  This may
-// only be accessed while the scheduler lock is held.  This is used to
-// minimize the number of times we call notewakeup while the scheduler
-// lock is held, since the m will normally move quickly to lock the
-// scheduler itself, producing lock contention.
-static M* mwakeup;
-
-// Scheduling helpers.  Sched must be locked.
-static void gput(G*);	// put/get on ghead/gtail
-static G* gget(void);
-static void mput(M*);	// put/get on mhead
-static M* mget(G*);
-static void gfput(G*);	// put/get on gfree
-static G* gfget(void);
-static void matchmg(void);	// match m's to g's
-static void readylocked(G*);	// ready, but sched is locked
-static void mnextg(M*, G*);
-static void mcommoninit(M*);
+#ifdef SIGTRAP
+	// Blocking SIGTRAP reportedly breaks gdb on Alpha GNU/Linux.
+	sigdelset(&clear, SIGTRAP);
+#endif
 
-void
-setmcpumax(uint32 n)
-{
-	uint32 v, w;
+	sigemptyset(&old);
+	sigprocmask(SIG_BLOCK, &clear, &old);
+	ret = pthread_create(&tid, &attr, runtime_mstart, mp);
+	sigprocmask(SIG_SETMASK, &old, nil);
 
-	for(;;) {
-		v = runtime_sched.atomic;
-		w = v;
-		w &= ~(mcpuMask<<mcpumaxShift);
-		w |= n<<mcpumaxShift;
-		if(runtime_cas(&runtime_sched.atomic, v, w))
-			break;
-	}
+	if (ret != 0)
+		runtime_throw("pthread_create");
 }
 
 // First function run by a new goroutine.  This replaces gogocall.
@@ -449,8 +309,143 @@
 	}
 }
 
-// Keep trace of scavenger's goroutine for deadlock detection.
-static G *scvg;
+#ifdef HAVE_DL_ITERATE_PHDR
+
+// Called via dl_iterate_phdr.
+
+static int
+addtls(struct dl_phdr_info* info, size_t size __attribute__ ((unused)), void *data)
+{
+	size_t *total = (size_t *)data;
+	unsigned int i;
+
+	for(i = 0; i < info->dlpi_phnum; ++i) {
+		if(info->dlpi_phdr[i].p_type == PT_TLS)
+			*total += info->dlpi_phdr[i].p_memsz;
+	}
+	return 0;
+}
+
+// Set the total TLS size.
+
+static void
+inittlssize()
+{
+	size_t total = 0;
+
+	dl_iterate_phdr(addtls, (void *)&total);
+	tlssize = total;
+}
+
+#else
+
+static void
+inittlssize()
+{
+}
+
+#endif
+
+// Goroutine scheduler
+// The scheduler's job is to distribute ready-to-run goroutines over worker threads.
+//
+// The main concepts are:
+// G - goroutine.
+// M - worker thread, or machine.
+// P - processor, a resource that is required to execute Go code.
+//     M must have an associated P to execute Go code, however it can be
+//     blocked or in a syscall w/o an associated P.
+//
+// Design doc at http://golang.org/s/go11sched.
+
+typedef struct Sched Sched;
+struct Sched {
+	Lock;
+
+	uint64	goidgen;
+	M*	midle;	 // idle m's waiting for work
+	int32	nmidle;	 // number of idle m's waiting for work
+	int32	mlocked; // number of locked m's waiting for work
+	int32	mcount;	 // number of m's that have been created
+
+	P*	pidle;  // idle P's
+	uint32	npidle;
+	uint32	nmspinning;
+
+	// Global runnable queue.
+	G*	runqhead;
+	G*	runqtail;
+	int32	runqsize;
+
+	// Global cache of dead G's.
+	Lock	gflock;
+	G*	gfree;
+
+	int32	stopwait;
+	Note	stopnote;
+	uint32	sysmonwait;
+	Note	sysmonnote;
+	uint64	lastpoll;
+
+	int32	profilehz;	// cpu profiling rate
+};
+
+// The max value of GOMAXPROCS.
+// There are no fundamental restrictions on the value.
+enum { MaxGomaxprocs = 1<<8 };
+
+Sched	runtime_sched;
+int32	runtime_gomaxprocs;
+bool	runtime_singleproc;
+bool	runtime_iscgo = true;
+uint32	runtime_needextram = 1;
+uint32	runtime_gcwaiting;
+M	runtime_m0;
+G	runtime_g0;	 // idle goroutine for m0
+G*	runtime_allg;
+G*	runtime_lastg;
+M*	runtime_allm;
+P**	runtime_allp;
+M*	runtime_extram;
+int8*	runtime_goos;
+int32	runtime_ncpu;
+static int32	newprocs;
+
+void* runtime_mstart(void*);
+static void runqput(P*, G*);
+static G* runqget(P*);
+static void runqgrow(P*);
+static G* runqsteal(P*, P*);
+static void mput(M*);
+static M* mget(void);
+static void mcommoninit(M*);
+static void schedule(void);
+static void procresize(int32);
+static void acquirep(P*);
+static P* releasep(void);
+static void newm(void(*)(void), P*);
+static void stopm(void);
+static void startm(P*, bool);
+static void handoffp(P*);
+static void wakep(void);
+static void stoplockedm(void);
+static void startlockedm(G*);
+static void sysmon(void);
+static uint32 retake(uint32*);
+static void inclocked(int32);
+static void checkdead(void);
+static void exitsyscall0(G*);
+static void park0(G*);
+static void gosched0(G*);
+static void goexit0(G*);
+static void gfput(P*, G*);
+static G* gfget(P*);
+static void gfpurge(P*);
+static void globrunqput(G*);
+static G* globrunqget(P*);
+static P* pidleget(void);
+static void pidleput(P*);
+static void injectglist(G*);
 
 // The bootstrap sequence is:
 //
@@ -463,7 +458,7 @@
 void
 runtime_schedinit(void)
 {
-	int32 n;
+	int32 n, procs;
 	const byte *p;
 
 	m = &runtime_m0;
@@ -476,6 +471,7 @@
 	inittlssize();
 
 	m->nomemprof++;
+	runtime_mprofinit();
 	runtime_mallocinit();
 	mcommoninit(m);
 
@@ -487,28 +483,20 @@
 	// so that we don't need to call malloc when we crash.
 	// runtime_findfunc(0);
 
-	runtime_gomaxprocs = 1;
+	runtime_sched.lastpoll = runtime_nanotime();
+	procs = 1;
 	p = runtime_getenv("GOMAXPROCS");
-	if(p != nil && (n = runtime_atoi(p)) != 0) {
-		if(n > maxgomaxprocs)
-			n = maxgomaxprocs;
-		runtime_gomaxprocs = n;
-	}
-	// wait for the main goroutine to start before taking
-	// GOMAXPROCS into account.
-	setmcpumax(1);
-	runtime_singleproc = runtime_gomaxprocs == 1;
-
-	canaddmcpu();	// mcpu++ to account for bootstrap m
-	m->helpgc = 1;	// flag to tell schedule() to mcpu--
-	runtime_sched.grunning++;
+	if(p != nil && (n = runtime_atoi(p)) > 0) {
+		if(n > MaxGomaxprocs)
+			n = MaxGomaxprocs;
+		procs = n;
+	}
+	runtime_allp = runtime_malloc((MaxGomaxprocs+1)*sizeof(runtime_allp[0]));
+	procresize(procs);
 
 	// Can not enable GC until all roots are registered.
 	// mstats.enablegc = 1;
 	m->nomemprof--;
-
-	if(raceenabled)
-		runtime_raceinit();
 }
 
 extern void main_init(void) __asm__ (GOSYM_PREFIX "__go_init_main");
@@ -516,70 +504,44 @@
 
 // The main goroutine.
 void
-runtime_main(void)
+runtime_main(void* dummy __attribute__((unused)))
 {
+	newm(sysmon, nil);
+
 	// Lock the main goroutine onto this, the main OS thread,
 	// during initialization.  Most programs won't care, but a few
 	// do require certain calls to be made by the main thread.
 	// Those can arrange for main.main to run in the main thread
 	// by calling runtime.LockOSThread during initialization
 	// to preserve the lock.
-	runtime_LockOSThread();
-	// From now on, newgoroutines may use non-main threads.
-	setmcpumax(runtime_gomaxprocs);
-	runtime_sched.init = true;
-	scvg = __go_go(runtime_MHeap_Scavenger, nil);
-	scvg->issystem = true;
+	runtime_lockOSThread();
+	if(m != &runtime_m0)
+		runtime_throw("runtime_main not on m0");
+	__go_go(runtime_MHeap_Scavenger, nil);
 	main_init();
-	runtime_sched.init = false;
-	if(!runtime_sched.lockmain)
-		runtime_UnlockOSThread();
+	runtime_unlockOSThread();
 
 	// For gccgo we have to wait until after main is initialized
 	// to enable GC, because initializing main registers the GC
 	// roots.
 	mstats.enablegc = 1;
 
-	// The deadlock detection has false negatives.
-	// Let scvg start up, to eliminate the false negative
-	// for the trivial program func main() { select{} }.
-	runtime_gosched();
-
 	main_main();
 	if(raceenabled)
 		runtime_racefini();
+
+	// Make racy client program work: if panicking on
+	// another goroutine at the same time as main returns,
+	// let the other goroutine finish printing the panic trace.
+	// Once it does, it will exit. See issue 3934.
+	if(runtime_panicking)
+		runtime_park(nil, nil, "panicwait");
+
 	runtime_exit(0);
 	for(;;)
 		*(int32*)0 = 0;
 }
 
-// Lock the scheduler.
-static void
-schedlock(void)
-{
-	runtime_lock(&runtime_sched);
-}
-
-// Unlock the scheduler.
-static void
-schedunlock(void)
-{
-	M *mp;
-
-	mp = mwakeup;
-	mwakeup = nil;
-	runtime_unlock(&runtime_sched);
-	if(mp != nil)
-		runtime_notewakeup(&mp->havenextg);
-}
-
-void
-runtime_goexit(void)
-{
-	g->status = Gmoribund;
-	runtime_gosched();
-}
-
 void
 runtime_goroutineheader(G *gp)
 {
@@ -604,9 +566,6 @@
 		else
 			status = "waiting";
 		break;
-	case Gmoribund:
-		status = "moribund";
-		break;
 	default:
 		status = "???";
 		break;
@@ -644,7 +603,7 @@
 	int32 traceback;
 
 	tb.gp = me;
-	traceback = runtime_gotraceback();
+	traceback = runtime_gotraceback(nil);
 	for(gp = runtime_allg; gp != nil; gp = gp->alllink) {
 		if(gp == me || gp->status == Gdead)
 			continue;
@@ -698,28 +657,20 @@
 	runtime_gogo(traceback->gp);
 }
 
-// Mark this g as m's idle goroutine.
-// This functionality might be used in environments where programs
-// are limited to a single thread, to simulate a select-driven
-// network server.  It is not exposed via the standard runtime API.
-void
-runtime_idlegoroutine(void)
-{
-	if(g->idlem != nil)
-		runtime_throw("g is already an idle goroutine");
-	g->idlem = m;
-}
-
 static void
 mcommoninit(M *mp)
 {
-	mp->id = runtime_sched.mcount++;
+	// If there is no mcache runtime_callers() will crash,
+	// and we are most likely in sysmon thread so the stack is senseless anyway.
+	if(m->mcache)
+		runtime_callers(1, mp->createstack, nelem(mp->createstack));
+
 	mp->fastrand = 0x49f6428aUL + mp->id + runtime_cputicks();
 
-	if(mp->mcache == nil)
-		mp->mcache = runtime_allocmcache();
+	runtime_lock(&runtime_sched);
+	mp->id = runtime_sched.mcount++;
 
-	runtime_callers(1, mp->createstack, nelem(mp->createstack));
+	runtime_mpreinit(mp);
 
 	// Add to runtime_allm so garbage collector doesn't free m
 	// when it is just in a register or thread-local storage.
@@ -727,382 +678,182 @@
 	// runtime_NumCgoCall() iterates over allm w/o schedlock,
 	// so we need to publish it safely.
 	runtime_atomicstorep(&runtime_allm, mp);
+	runtime_unlock(&runtime_sched);
 }
 
-// Try to increment mcpu.  Report whether succeeded.
-static bool
-canaddmcpu(void)
+// Mark gp ready to run.
+void
+runtime_ready(G *gp)
 {
-	uint32 v;
-
-	for(;;) {
-		v = runtime_sched.atomic;
-		if(atomic_mcpu(v) >= atomic_mcpumax(v))
-			return 0;
-		if(runtime_cas(&runtime_sched.atomic, v, v+(1<<mcpuShift)))
-			return 1;
+	// Mark runnable.
+	if(gp->status != Gwaiting) {
+		runtime_printf("goroutine %D has status %d\n", gp->goid, gp->status);
+		runtime_throw("bad g->status in ready");
 	}
+	gp->status = Grunnable;
+	runqput(m->p, gp);
+	if(runtime_atomicload(&runtime_sched.npidle) != 0 && runtime_atomicload(&runtime_sched.nmspinning) == 0)  // TODO: fast atomic
+		wakep();
 }
 
-// Put on `g' queue.  Sched must be locked.
-static void
-gput(G *gp)
+int32
+runtime_gcprocs(void)
 {
-	M *mp;
-
-	// If g is wired, hand it off directly.
-	if((mp = gp->lockedm) != nil && canaddmcpu()) {
-		mnextg(mp, gp);
-		return;
-	}
+	int32 n;
 
-	// If g is the idle goroutine for an m, hand it off.
-	if(gp->idlem != nil) {
-		if(gp->idlem->idleg != nil) {
-			runtime_printf("m%d idle out of sync: g%D g%D\n",
-				gp->idlem->id,
-				gp->idlem->idleg->goid, gp->goid);
-			runtime_throw("runtime: double idle");
-		}
-		gp->idlem->idleg = gp;
-		return;
-	}
+	// Figure out how many CPUs to use during GC.
+	// Limited by gomaxprocs, number of actual CPUs, and MaxGcproc.
+	runtime_lock(&runtime_sched);
+	n = runtime_gomaxprocs;
+	if(n > runtime_ncpu)
+		n = runtime_ncpu > 0 ? runtime_ncpu : 1;
+	if(n > MaxGcproc)
+		n = MaxGcproc;
+	if(n > runtime_sched.nmidle+1) // one M is currently running
+		n = runtime_sched.nmidle+1;
+	runtime_unlock(&runtime_sched);
+	return n;
+}
 
-	gp->schedlink = nil;
-	if(runtime_sched.ghead == nil)
-		runtime_sched.ghead = gp;
-	else
-		runtime_sched.gtail->schedlink = gp;
-	runtime_sched.gtail = gp;
+static bool
+needaddgcproc(void)
+{
+	int32 n;
 
-	// increment gwait.
-	// if it transitions to nonzero, set atomic gwaiting bit.
-	if(runtime_sched.gwait++ == 0)
-		runtime_xadd(&runtime_sched.atomic, 1<<gwaitingShift);
+	runtime_lock(&runtime_sched);
+	n = runtime_gomaxprocs;
+	if(n > runtime_ncpu)
+		n = runtime_ncpu;
+	if(n > MaxGcproc)
+		n = MaxGcproc;
+	n -= runtime_sched.nmidle+1; // one M is currently running
+	runtime_unlock(&runtime_sched);
+	return n > 0;
 }
 
-// Report whether gget would return something.
-static bool
-haveg(void)
+void
+runtime_helpgc(int32 nproc)
 {
-	return runtime_sched.ghead != nil || m->idleg != nil;
+	M *mp;
+	int32 n, pos;
+
+	runtime_lock(&runtime_sched);
+	pos = 0;
+	for(n = 1; n < nproc; n++) {  // one M is currently running
+		if(runtime_allp[pos]->mcache == m->mcache)
+			pos++;
+		mp = mget();
+		if(mp == nil)
+			runtime_throw("runtime_gcprocs inconsistency");
+		mp->helpgc = n;
+		mp->mcache = runtime_allp[pos]->mcache;
+		pos++;
+		runtime_notewakeup(&mp->park);
+	}
+	runtime_unlock(&runtime_sched);
 }
 
-// Get from `g' queue.  Sched must be locked.
-static G*
-gget(void)
+void
+runtime_stoptheworld(void)
 {
-	G *gp;
+	int32 i;
+	uint32 s;
+	P *p;
+	bool wait;
 
-	gp = runtime_sched.ghead;
-	if(gp) {
-		runtime_sched.ghead = gp->schedlink;
-		if(runtime_sched.ghead == nil)
-			runtime_sched.gtail = nil;
-		// decrement gwait.
-		// if it transitions to zero, clear atomic gwaiting bit.
-		if(--runtime_sched.gwait == 0)
-			runtime_xadd(&runtime_sched.atomic, -1<<gwaitingShift);
-	} else if(m->idleg != nil) {
-		gp = m->idleg;
-		m->idleg = nil;
+	runtime_lock(&runtime_sched);
+	runtime_sched.stopwait = runtime_gomaxprocs;
+	runtime_atomicstore((uint32*)&runtime_gcwaiting, 1);
+	// stop current P
+	m->p->status = Pgcstop;
+	runtime_sched.stopwait--;
+	// try to retake all P's in Psyscall status
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		s = p->status;
+		if(s == Psyscall && runtime_cas(&p->status, s, Pgcstop))
+			runtime_sched.stopwait--;
+	}
+	// stop idle P's
+	while((p = pidleget()) != nil) {
+		p->status = Pgcstop;
+		runtime_sched.stopwait--;
+	}
+	wait = runtime_sched.stopwait > 0;
+	runtime_unlock(&runtime_sched);
+
+	// wait for remaining P's to stop voluntary
+	if(wait) {
+		runtime_notesleep(&runtime_sched.stopnote);
+		runtime_noteclear(&runtime_sched.stopnote);
+	}
+	if(runtime_sched.stopwait)
+		runtime_throw("stoptheworld: not stopped");
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p->status != Pgcstop)
+			runtime_throw("stoptheworld: not stopped");
 	}
-	return gp;
 }
 
-// Put on `m' list.  Sched must be locked.
 static void
-mput(M *mp)
+mhelpgc(void)
 {
-	mp->schedlink = runtime_sched.mhead;
-	runtime_sched.mhead = mp;
-	runtime_sched.mwait++;
+	m->helpgc = -1;
 }
 
-// Get an `m' to run `g'.  Sched must be locked.
-static M*
-mget(G *gp)
-{
-	M *mp;
-
-	// if g has its own m, use it.
-	if(gp && (mp = gp->lockedm) != nil)
-		return mp;
-
-	// otherwise use general m pool.
-	if((mp = runtime_sched.mhead) != nil) {
-		runtime_sched.mhead = mp->schedlink;
-		runtime_sched.mwait--;
-	}
-	return mp;
-}
-
-// Mark g ready to run.
 void
-runtime_ready(G *gp)
-{
-	schedlock();
-	readylocked(gp);
-	schedunlock();
-}
-
-// Mark g ready to run.  Sched is already locked.
-// G might be running already and about to stop.
-// The sched lock protects g->status from changing underfoot.
-static void
-readylocked(G *gp)
-{
-	if(gp->m) {
-		// Running on another machine.
-		// Ready it when it stops.
-		gp->readyonstop = 1;
-		return;
-	}
-
-	// Mark runnable.
-	if(gp->status == Grunnable || gp->status == Grunning) {
-		runtime_printf("goroutine %D has status %d\n", gp->goid, gp->status);
-		runtime_throw("bad g->status in ready");
-	}
-	gp->status = Grunnable;
-
-	gput(gp);
-	matchmg();
-}
-
-// Same as readylocked but a different symbol so that
-// debuggers can set a breakpoint here and catch all
-// new goroutines.
-static void
-newprocreadylocked(G *gp)
-{
-	readylocked(gp);
-}
-
-// Pass g to m for running.
-// Caller has already incremented mcpu.
-static void
-mnextg(M *mp, G *gp)
-{
-	runtime_sched.grunning++;
-	mp->nextg = gp;
-	if(mp->waitnextg) {
-		mp->waitnextg = 0;
-		if(mwakeup != nil)
-			runtime_notewakeup(&mwakeup->havenextg);
-		mwakeup = mp;
-	}
-}
-
-// Get the next goroutine that m should run.
-// Sched must be locked on entry, is unlocked on exit.
-// Makes sure that at most $GOMAXPROCS g's are
-// running on cpus (not in system calls) at any given time.
-static G*
-nextgandunlock(void)
+runtime_starttheworld(void)
 {
+	P *p, *p1;
+	M *mp;
 	G *gp;
-	uint32 v;
-
-top:
-	if(atomic_mcpu(runtime_sched.atomic) >= maxgomaxprocs)
-		runtime_throw("negative mcpu");
+	bool add;
 
-	// If there is a g waiting as m->nextg, the mcpu++
-	// happened before it was passed to mnextg.
-	if(m->nextg != nil) {
-		gp = m->nextg;
-		m->nextg = nil;
-		schedunlock();
-		return gp;
-	}
+	gp = runtime_netpoll(false);  // non-blocking
+	injectglist(gp);
+	add = needaddgcproc();
+	runtime_lock(&runtime_sched);
+	if(newprocs) {
+		procresize(newprocs);
+		newprocs = 0;
+	} else
+		procresize(runtime_gomaxprocs);
+	runtime_gcwaiting = 0;
 
-	if(m->lockedg != nil) {
-		// We can only run one g, and it's not available.
-		// Make sure some other cpu is running to handle
-		// the ordinary run queue.
-		if(runtime_sched.gwait != 0) {
-			matchmg();
-			// m->lockedg might have been on the queue.
-			if(m->nextg != nil) {
-				gp = m->nextg;
-				m->nextg = nil;
-				schedunlock();
-				return gp;
-			}
+	p1 = nil;
+	while((p = pidleget()) != nil) {
+		// procresize() puts p's with work at the beginning of the list.
+		// Once we reach a p without a run queue, the rest don't have one either.
+		if(p->runqhead == p->runqtail) {
+			pidleput(p);
+			break;
 		}
-	} else {
-		// Look for work on global queue.
-		while(haveg() && canaddmcpu()) {
-			gp = gget();
-			if(gp == nil)
-				runtime_throw("gget inconsistency");
-
-			if(gp->lockedm) {
-				mnextg(gp->lockedm, gp);
-				continue;
-			}
-			runtime_sched.grunning++;
-			schedunlock();
-			return gp;
+		mp = mget();
+		if(mp == nil) {
+			p->link = p1;
+			p1 = p;
+			continue;
 		}
-
-		// The while loop ended either because the g queue is empty
-		// or because we have maxed out our m procs running go
-		// code (mcpu >= mcpumax).  We need to check that
-		// concurrent actions by entersyscall/exitsyscall cannot
-		// invalidate the decision to end the loop.
-		//
-		// We hold the sched lock, so no one else is manipulating the
-		// g queue or changing mcpumax.  Entersyscall can decrement
-		// mcpu, but if does so when there is something on the g queue,
-		// the gwait bit will be set, so entersyscall will take the slow path
-		// and use the sched lock.  So it cannot invalidate our decision.
-		//
-		// Wait on global m queue.
-		mput(m);
-	}
-
-	// Look for deadlock situation.
-	// There is a race with the scavenger that causes false negatives:
-	// if the scavenger is just starting, then we have
-	//	scvg != nil && grunning == 0 && gwait == 0
-	// and we do not detect a deadlock.  It is possible that we should
-	// add that case to the if statement here, but it is too close to Go 1
-	// to make such a subtle change.  Instead, we work around the
-	// false negative in trivial programs by calling runtime.gosched
-	// from the main goroutine just before main.main.
-	// See runtime_main above.
-	//
-	// On a related note, it is also possible that the scvg == nil case is
-	// wrong and should include gwait, but that does not happen in
-	// standard Go programs, which all start the scavenger.
-	//
-	if((scvg == nil && runtime_sched.grunning == 0) ||
-	   (scvg != nil && runtime_sched.grunning == 1 && runtime_sched.gwait == 0 &&
-	    (scvg->status == Grunning || scvg->status == Gsyscall))) {
-		m->throwing = -1;  // do not dump full stacks
-		runtime_throw("all goroutines are asleep - deadlock!");
-	}
-
-	m->nextg = nil;
-	m->waitnextg = 1;
-	runtime_noteclear(&m->havenextg);
-
-	// Stoptheworld is waiting for all but its cpu to go to stop.
-	// Entersyscall might have decremented mcpu too, but if so
-	// it will see the waitstop and take the slow path.
-	// Exitsyscall never increments mcpu beyond mcpumax.
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if(atomic_waitstop(v) && atomic_mcpu(v) <= atomic_mcpumax(v)) {
-		// set waitstop = 0 (known to be 1)
-		runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift);
-		runtime_notewakeup(&runtime_sched.stopped);
-	}
-	schedunlock();
-
-	runtime_notesleep(&m->havenextg);
-	if(m->helpgc) {
-		runtime_gchelper();
-		m->helpgc = 0;
-		runtime_lock(&runtime_sched);
-		goto top;
-	}
-	if((gp = m->nextg) == nil)
-		runtime_throw("bad m->nextg in nextgoroutine");
-	m->nextg = nil;
-	return gp;
-}
-
-int32
-runtime_gcprocs(void)
-{
-	int32 n;
-	
-	// Figure out how many CPUs to use during GC.
-	// Limited by gomaxprocs, number of actual CPUs, and MaxGcproc.
-	n = runtime_gomaxprocs;
-	if(n > runtime_ncpu)
-		n = runtime_ncpu > 0 ? runtime_ncpu : 1;
-	if(n > MaxGcproc)
-		n = MaxGcproc;
-	if(n > runtime_sched.mwait+1) // one M is currently running
-		n = runtime_sched.mwait+1;
-	return n;
-}
-
-void
-runtime_helpgc(int32 nproc)
-{
-	M *mp;
-	int32 n;
-
-	runtime_lock(&runtime_sched);
-	for(n = 1; n < nproc; n++) { // one M is currently running
-		mp = mget(nil);
-		if(mp == nil)
-			runtime_throw("runtime_gcprocs inconsistency");
-		mp->helpgc = 1;
-		mp->waitnextg = 0;
-		runtime_notewakeup(&mp->havenextg);
+		if(mp->nextp)
+			runtime_throw("starttheworld: inconsistent mp->nextp");
+		mp->nextp = p;
+		runtime_notewakeup(&mp->park);
+	}
+	if(runtime_sched.sysmonwait) {
+		runtime_sched.sysmonwait = false;
+		runtime_notewakeup(&runtime_sched.sysmonnote);
 	}
 	runtime_unlock(&runtime_sched);
-}
-
-void
-runtime_stoptheworld(void)
-{
-	uint32 v;
-
-	schedlock();
-	runtime_gcwaiting = 1;
-
-	setmcpumax(1);
-
-	// while mcpu > 1
-	for(;;) {
-		v = runtime_sched.atomic;
-		if(atomic_mcpu(v) <= 1)
-			break;
-
-		// It would be unsafe for multiple threads to be using
-		// the stopped note at once, but there is only
-		// ever one thread doing garbage collection.
-		runtime_noteclear(&runtime_sched.stopped);
-		if(atomic_waitstop(v))
-			runtime_throw("invalid waitstop");
-
-		// atomic { waitstop = 1 }, predicated on mcpu <= 1 check above
-		// still being true.
-		if(!runtime_cas(&runtime_sched.atomic, v, v+(1<<waitstopShift)))
-			continue;
 
-		schedunlock();
-		runtime_notesleep(&runtime_sched.stopped);
-		schedlock();
+	while(p1) {
+		p = p1;
+		p1 = p1->link;
+		add = false;
+		newm(nil, p);
 	}
-	runtime_singleproc = runtime_gomaxprocs == 1;
-	schedunlock();
-}
-
-void
-runtime_starttheworld(void)
-{
-	M *mp;
-	int32 max;
-	
-	// Figure out how many CPUs GC could possibly use.
-	max = runtime_gomaxprocs;
-	if(max > runtime_ncpu)
-		max = runtime_ncpu > 0 ? runtime_ncpu : 1;
-	if(max > MaxGcproc)
-		max = MaxGcproc;
 
-	schedlock();
-	runtime_gcwaiting = 0;
-	setmcpumax(runtime_gomaxprocs);
-	matchmg();
-	if(runtime_gcprocs() < max && canaddmcpu()) {
+	if(add) {
 		// If GC could have used another helper proc, start one now,
 		// in the hope that it will be available next time.
 		// It would have been even better to start it before the collection,
@@ -1110,17 +861,8 @@
 		// coordinate.  This lazy approach works out in practice:
 		// we don't mind if the first couple gc rounds don't have quite
 		// the maximum number of procs.
-		// canaddmcpu above did mcpu++
-		// (necessary, because m will be doing various
-		// initialization work so is definitely running),
-		// but m is not running a specific goroutine,
-		// so set the helpgc flag as a signal to m's
-		// first schedule(nil) to mcpu-- and grunning--.
-		mp = runtime_newm();
-		mp->helpgc = 1;
-		runtime_sched.grunning++;
+		newm(mhelpgc, nil);
 	}
-	schedunlock();
 }
 
 // Called to start an M.
@@ -1160,17 +902,30 @@
 
 #ifdef USING_SPLIT_STACK
 	{
-	  int dont_block_signals = 0;
-	  __splitstack_block_signals(&dont_block_signals, nil);
+		int dont_block_signals = 0;
+		__splitstack_block_signals(&dont_block_signals, nil);
 	}
 #endif
 
 	// Install signal handlers; after minit so that minit can
 	// prepare the thread to be able to handle the signals.
-	if(m == &runtime_m0)
+	if(m == &runtime_m0) {
 		runtime_initsig();
+		if(runtime_iscgo)
+			runtime_newextram();
+	}
+	
+	if(m->mstartfn)
+		m->mstartfn();
 
-	schedule(nil);
+	if(m->helpgc) {
+		m->helpgc = 0;
+		stopm();
+	} else if(m != &runtime_m0) {
+		acquirep(m->nextp);
+		m->nextp = nil;
+	}
+	schedule();
 
 	// TODO(brainman): This point is never reached, because scheduler
 	// does not release os threads at the moment. But once this path
@@ -1187,43 +942,17 @@
 	void (*fn)(void);
 };
 
-// Kick off new m's as needed (up to mcpumax).
-// Sched is locked.
-static void
-matchmg(void)
-{
-	G *gp;
-	M *mp;
-
-	if(m->mallocing || m->gcing)
-		return;
-
-	while(haveg() && canaddmcpu()) {
-		gp = gget();
-		if(gp == nil)
-			runtime_throw("gget inconsistency");
-
-		// Find the m that will run gp.
-		if((mp = mget(gp)) == nil)
-			mp = runtime_newm();
-		mnextg(mp, gp);
-	}
-}
-
-// Create a new m.  It will start off with a call to runtime_mstart.
+// Allocate a new m unassociated with any thread.
+// Can use p for allocation context if needed.
 M*
-runtime_newm(void)
+runtime_allocm(P *p, int32 stacksize, byte** ret_g0_stack, size_t* ret_g0_stacksize)
 {
 	M *mp;
-	pthread_attr_t attr;
-	pthread_t tid;
-	size_t stacksize;
-	sigset_t clear;
-	sigset_t old;
-	int ret;
 
+	m->locks++;  // disable GC because it can be called from sysmon
+	if(m->p == nil)
+		acquirep(p);  // temporarily borrow p for mallocs in this function
 #if 0
-	static const Type *mtype;  // The Go type M
 	if(mtype == nil) {
 		Eface e;
 		runtime_gc_m_ptr(&e);
@@ -1233,114 +962,482 @@
 
 	mp = runtime_mal(sizeof *mp);
 	mcommoninit(mp);
-	mp->g0 = runtime_malg(-1, nil, nil);
+	mp->g0 = runtime_malg(stacksize, ret_g0_stack, ret_g0_stacksize);
 
-	if(pthread_attr_init(&attr) != 0)
-		runtime_throw("pthread_attr_init");
-	if(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0)
-		runtime_throw("pthread_attr_setdetachstate");
+	if(p == m->p)
+		releasep();
+	m->locks--;
 
-	stacksize = PTHREAD_STACK_MIN;
+	return mp;
+}
 
-	// With glibc before version 2.16 the static TLS size is taken
-	// out of the stack size, and we get an error or a crash if
-	// there is not enough stack space left.  Add it back in if we
-	// can, in case the program uses a lot of TLS space.  FIXME:
-	// This can be disabled in glibc 2.16 and later, if the bug is
-	// indeed fixed then.
-	stacksize += tlssize;
+static M* lockextra(bool nilokay);
+static void unlockextra(M*);
 
-	if(pthread_attr_setstacksize(&attr, stacksize) != 0)
-		runtime_throw("pthread_attr_setstacksize");
+// needm is called when a cgo callback happens on a
+// thread without an m (a thread not created by Go).
+// In this case, needm is expected to find an m to use
+// and return with m, g initialized correctly.
+// Since m and g are not set now (likely nil, but see below)
+// needm is limited in what routines it can call. In particular
+// it can only call nosplit functions (textflag 7) and cannot
+// do any scheduling that requires an m.
+//
+// In order to avoid needing heavy lifting here, we adopt
+// the following strategy: there is a stack of available m's
+// that can be stolen. Using compare-and-swap
+// to pop from the stack has ABA races, so we simulate
+// a lock by doing an exchange (via casp) to steal the stack
+// head and replace the top pointer with MLOCKED (1).
+// This serves as a simple spin lock that we can use even
+// without an m. The thread that locks the stack in this way
+// unlocks the stack by storing a valid stack head pointer.
+//
+// In order to make sure that there is always an m structure
+// available to be stolen, we maintain the invariant that there
+// is always one more than needed. At the beginning of the
+// program (if cgo is in use) the list is seeded with a single m.
+// If needm finds that it has taken the last m off the list, its job
+// is - once it has installed its own m so that it can do things like
+// allocate memory - to create a spare m and put it on the list.
+//
+// Each of these extra m's also has a g0 and a curg that are
+// pressed into service as the scheduling stack and current
+// goroutine for the duration of the cgo callback.
+//
+// When the callback is done with the m, it calls dropm to
+// put the m back on the list.
+//
+// Unlike the gc toolchain, we start running on curg, since we are
+// just going to return and let the caller continue.
+void
+runtime_needm(void)
+{
+	M *mp;
 
-	// Block signals during pthread_create so that the new thread
-	// starts with signals disabled.  It will enable them in minit.
-	sigfillset(&clear);
+	// Lock extra list, take head, unlock popped list.
+	// nilokay=false is safe here because of the invariant above,
+	// that the extra list always contains or will soon contain
+	// at least one m.
+	mp = lockextra(false);
+
+	// Set needextram when we've just emptied the list,
+	// so that the eventual call into cgocallbackg will
+	// allocate a new m for the extra list. We delay the
+	// allocation until then so that it can be done
+	// after exitsyscall makes sure it is okay to be
+	// running at all (that is, there's no garbage collection
+	// running right now).
+	mp->needextram = mp->schedlink == nil;
+	unlockextra(mp->schedlink);
 
-#ifdef SIGTRAP
-	// Blocking SIGTRAP reportedly breaks gdb on Alpha GNU/Linux.
-	sigdelset(&clear, SIGTRAP);
+	// Install m and g (= m->curg).
+	runtime_setmg(mp, mp->curg);
+
+	// Initialize g's context as in mstart.
+	initcontext();
+	g->status = Gsyscall;
+	g->entry = nil;
+	g->param = nil;
+#ifdef USING_SPLIT_STACK
+	__splitstack_getcontext(&g->stack_context[0]);
+#else
+	g->gcinitial_sp = &mp;
+	g->gcstack_size = 0;
+	g->gcnext_sp = &mp;
 #endif
+	getcontext(&g->context);
 
-	sigemptyset(&old);
-	sigprocmask(SIG_BLOCK, &clear, &old);
-	ret = pthread_create(&tid, &attr, runtime_mstart, mp);
-	sigprocmask(SIG_SETMASK, &old, nil);
+	if(g->entry != nil) {
+		// Got here from mcall.
+		void (*pfn)(G*) = (void (*)(G*))g->entry;
+		G* gp = (G*)g->param;
+		pfn(gp);
+		*(int*)0x22 = 0x22;
+	}
 
-	if (ret != 0)
-		runtime_throw("pthread_create");
+	// Initialize this thread to use the m.
+	runtime_minit();
+
+#ifdef USING_SPLIT_STACK
+	{
+		int dont_block_signals = 0;
+		__splitstack_block_signals(&dont_block_signals, nil);
+	}
+#endif
+}
 
+// newextram allocates an m and puts it on the extra list.
+// It is called with a working local m, so that it can do things
+// like call schedlock and allocate.
+void
+runtime_newextram(void)
+{
+	M *mp, *mnext;
+	G *gp;
+	byte *g0_sp, *sp;
+	size_t g0_spsize, spsize;
+
+	// Create extra goroutine locked to extra m.
+	// The goroutine is the context in which the cgo callback will run.
+	// The sched.pc will never be returned to, but setting it to
+	// runtime.goexit makes clear to the traceback routines where
+	// the goroutine stack ends.
+	mp = runtime_allocm(nil, StackMin, &g0_sp, &g0_spsize);
+	gp = runtime_malg(StackMin, &sp, &spsize);
+	gp->status = Gdead;
+	mp->curg = gp;
+	mp->locked = LockInternal;
+	mp->lockedg = gp;
+	gp->lockedm = mp;
+	// put on allg for garbage collector
+	runtime_lock(&runtime_sched);
+	if(runtime_lastg == nil)
+		runtime_allg = gp;
+	else
+		runtime_lastg->alllink = gp;
+	runtime_lastg = gp;
+	runtime_unlock(&runtime_sched);
+	gp->goid = runtime_xadd64(&runtime_sched.goidgen, 1);
+
+	// The context for gp will be set up in runtime_needm.  But
+	// here we need to set up the context for g0.
+	getcontext(&mp->g0->context);
+	mp->g0->context.uc_stack.ss_sp = g0_sp;
+#ifdef MAKECONTEXT_STACK_TOP
+	mp->g0->context.uc_stack.ss_sp += g0_spsize;
+#endif
+	mp->g0->context.uc_stack.ss_size = g0_spsize;
+	makecontext(&mp->g0->context, kickoff, 0);
+
+	// Add m to the extra list.
+	mnext = lockextra(true);
+	mp->schedlink = mnext;
+	unlockextra(mp);
+}
+
+// dropm is called when a cgo callback has called needm but is now
+// done with the callback and returning back into the non-Go thread.
+// It puts the current m back onto the extra list.
+//
+// The main expense here is the call to signalstack to release the
+// m's signal stack, and then the call to needm on the next callback
+// from this thread. It is tempting to try to save the m for next time,
+// which would eliminate both these costs, but there might not be
+// a next time: the current thread (which Go does not control) might exit.
+// If we saved the m for that thread, there would be an m leak each time
+// such a thread exited. Instead, we acquire and release an m on each
+// call. These should typically not be scheduling operations, just a few
+// atomics, so the cost should be small.
+//
+// TODO(rsc): An alternative would be to allocate a dummy pthread per-thread
+// variable using pthread_key_create. Unlike the pthread keys we already use
+// on OS X, this dummy key would never be read by Go code. It would exist
+// only so that we could register at thread-exit-time destructor.
+// That destructor would put the m back onto the extra list.
+// This is purely a performance optimization. The current version,
+// in which dropm happens on each cgo call, is still correct too.
+// We may have to keep the current version on systems with cgo
+// but without pthreads, like Windows.
+void
+runtime_dropm(void)
+{
+	M *mp, *mnext;
+
+	// Undo whatever initialization minit did during needm.
+	runtime_unminit();
+
+	// Clear m and g, and return m to the extra list.
+	// After the call to setmg we can only call nosplit functions.
+	mp = m;
+	runtime_setmg(nil, nil);
+
+	mp->curg->status = Gdead;
+
+	mnext = lockextra(true);
+	mp->schedlink = mnext;
+	unlockextra(mp);
+}
+
+#define MLOCKED ((M*)1)
+
+// lockextra locks the extra list and returns the list head.
+// The caller must unlock the list by storing a new list head
+// to runtime.extram. If nilokay is true, then lockextra will
+// return a nil list head if that's what it finds. If nilokay is false,
+// lockextra will keep waiting until the list head is no longer nil.
+static M*
+lockextra(bool nilokay)
+{
+	M *mp;
+	void (*yield)(void);
+
+	for(;;) {
+		mp = runtime_atomicloadp(&runtime_extram);
+		if(mp == MLOCKED) {
+			yield = runtime_osyield;
+			yield();
+			continue;
+		}
+		if(mp == nil && !nilokay) {
+			runtime_usleep(1);
+			continue;
+		}
+		if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
+			yield = runtime_osyield;
+			yield();
+			continue;
+		}
+		break;
+	}
 	return mp;
 }
 
-// One round of scheduler: find a goroutine and run it.
-// The argument is the goroutine that was running before
-// schedule was called, or nil if this is the first call.
-// Never returns.
 static void
-schedule(G *gp)
+unlockextra(M *mp)
 {
-	int32 hz;
-	uint32 v;
+	runtime_atomicstorep(&runtime_extram, mp);
+}
 
-	schedlock();
-	if(gp != nil) {
-		// Just finished running gp.
-		gp->m = nil;
-		runtime_sched.grunning--;
-
-		// atomic { mcpu-- }
-		v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-		if(atomic_mcpu(v) > maxgomaxprocs)
-			runtime_throw("negative mcpu in scheduler");
-
-		switch(gp->status) {
-		case Grunnable:
-		case Gdead:
-			// Shouldn't have been running!
-			runtime_throw("bad gp->status in sched");
-		case Grunning:
-			gp->status = Grunnable;
-			gput(gp);
-			break;
-		case Gmoribund:
-			if(raceenabled)
-				runtime_racegoend(gp->goid);
-			gp->status = Gdead;
-			if(gp->lockedm) {
-				gp->lockedm = nil;
-				m->lockedg = nil;
-			}
-			gp->idlem = nil;
-			runtime_memclr(&gp->context, sizeof gp->context);
-			gfput(gp);
-			if(--runtime_sched.gcount == 0)
-				runtime_exit(0);
-			break;
+static int32
+countextra()
+{
+	M *mp, *mc;
+	int32 c;
+
+	for(;;) {
+		mp = runtime_atomicloadp(&runtime_extram);
+		if(mp == MLOCKED) {
+			runtime_osyield();
+			continue;
 		}
-		if(gp->readyonstop) {
-			gp->readyonstop = 0;
-			readylocked(gp);
-		}
-	} else if(m->helpgc) {
-		// Bootstrap m or new m started by starttheworld.
-		// atomic { mcpu-- }
-		v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-		if(atomic_mcpu(v) > maxgomaxprocs)
-			runtime_throw("negative mcpu in scheduler");
-		// Compensate for increment in starttheworld().
-		runtime_sched.grunning--;
+		if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
+			runtime_osyield();
+			continue;
+		}
+		c = 0;
+		for(mc = mp; mc != nil; mc = mc->schedlink)
+			c++;
+		runtime_atomicstorep(&runtime_extram, mp);
+		return c;
+	}
+}
+
+// Create a new m.  It will start off with a call to fn, or else the scheduler.
+static void
+newm(void(*fn)(void), P *p)
+{
+	M *mp;
+
+	mp = runtime_allocm(p, -1, nil, nil);
+	mp->nextp = p;
+	mp->mstartfn = fn;
+
+	runtime_newosproc(mp);
+}
+
+// Stops execution of the current m until new work is available.
+// Returns with acquired P.
+static void
+stopm(void)
+{
+	if(m->locks)
+		runtime_throw("stopm holding locks");
+	if(m->p)
+		runtime_throw("stopm holding p");
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+
+retry:
+	runtime_lock(&runtime_sched);
+	mput(m);
+	runtime_unlock(&runtime_sched);
+	runtime_notesleep(&m->park);
+	runtime_noteclear(&m->park);
+	if(m->helpgc) {
+		runtime_gchelper();
 		m->helpgc = 0;
-	} else if(m->nextg != nil) {
-		// New m started by matchmg.
-	} else {
-		runtime_throw("invalid m state in scheduler");
+		m->mcache = nil;
+		goto retry;
 	}
+	acquirep(m->nextp);
+	m->nextp = nil;
+}
+
+static void
+mspinning(void)
+{
+	m->spinning = true;
+}
 
-	// Find (or wait for) g to run.  Unlocks runtime_sched.
-	gp = nextgandunlock();
-	gp->readyonstop = 0;
+// Schedules some M to run the p (creates an M if necessary).
+// If p==nil, tries to get an idle P, if no idle P's returns false.
+static void
+startm(P *p, bool spinning)
+{
+	M *mp;
+	void (*fn)(void);
+
+	runtime_lock(&runtime_sched);
+	if(p == nil) {
+		p = pidleget();
+		if(p == nil) {
+			runtime_unlock(&runtime_sched);
+			if(spinning)
+				runtime_xadd(&runtime_sched.nmspinning, -1);
+			return;
+		}
+	}
+	mp = mget();
+	runtime_unlock(&runtime_sched);
+	if(mp == nil) {
+		fn = nil;
+		if(spinning)
+			fn = mspinning;
+		newm(fn, p);
+		return;
+	}
+	if(mp->spinning)
+		runtime_throw("startm: m is spinning");
+	if(mp->nextp)
+		runtime_throw("startm: m has p");
+	mp->spinning = spinning;
+	mp->nextp = p;
+	runtime_notewakeup(&mp->park);
+}
+
+// Hands off P from syscall or locked M.
+static void
+handoffp(P *p)
+{
+	// if it has local work, start it straight away
+	if(p->runqhead != p->runqtail || runtime_sched.runqsize) {
+		startm(p, false);
+		return;
+	}
+	// no local work, check that there are no spinning/idle M's,
+	// otherwise our help is not required
+	if(runtime_atomicload(&runtime_sched.nmspinning) + runtime_atomicload(&runtime_sched.npidle) == 0 &&  // TODO: fast atomic
+		runtime_cas(&runtime_sched.nmspinning, 0, 1)) {
+		startm(p, true);
+		return;
+	}
+	runtime_lock(&runtime_sched);
+	if(runtime_gcwaiting) {
+		p->status = Pgcstop;
+		if(--runtime_sched.stopwait == 0)
+			runtime_notewakeup(&runtime_sched.stopnote);
+		runtime_unlock(&runtime_sched);
+		return;
+	}
+	if(runtime_sched.runqsize) {
+		runtime_unlock(&runtime_sched);
+		startm(p, false);
+		return;
+	}
+	// If this is the last running P and nobody is polling network,
+	// need to wakeup another M to poll network.
+	if(runtime_sched.npidle == (uint32)runtime_gomaxprocs-1 && runtime_atomicload64(&runtime_sched.lastpoll) != 0) {
+		runtime_unlock(&runtime_sched);
+		startm(p, false);
+		return;
+	}
+	pidleput(p);
+	runtime_unlock(&runtime_sched);
+}
+
+// Tries to add one more P to execute G's.
+// Called when a G is made runnable (newproc, ready).
+static void
+wakep(void)
+{
+	// be conservative about spinning threads
+	if(!runtime_cas(&runtime_sched.nmspinning, 0, 1))
+		return;
+	startm(nil, true);
+}
+
+// Stops execution of the current m that is locked to a g until the g is runnable again.
+// Returns with acquired P.
+static void
+stoplockedm(void)
+{
+	P *p;
+
+	if(m->lockedg == nil || m->lockedg->lockedm != m)
+		runtime_throw("stoplockedm: inconsistent locking");
+	if(m->p) {
+		// Schedule another M to run this p.
+		p = releasep();
+		handoffp(p);
+	}
+	inclocked(1);
+	// Wait until another thread schedules lockedg again.
+	runtime_notesleep(&m->park);
+	runtime_noteclear(&m->park);
+	if(m->lockedg->status != Grunnable)
+		runtime_throw("stoplockedm: not runnable");
+	acquirep(m->nextp);
+	m->nextp = nil;
+}
+
+// Schedules the locked m to run the locked gp.
+static void
+startlockedm(G *gp)
+{
+	M *mp;
+	P *p;
+
+	mp = gp->lockedm;
+	if(mp == m)
+		runtime_throw("startlockedm: locked to me");
+	if(mp->nextp)
+		runtime_throw("startlockedm: m has p");
+	// directly handoff current P to the locked m
+	inclocked(-1);
+	p = releasep();
+	mp->nextp = p;
+	runtime_notewakeup(&mp->park);
+	stopm();
+}
+
+// Stops the current m for stoptheworld.
+// Returns when the world is restarted.
+static void
+gcstopm(void)
+{
+	P *p;
+
+	if(!runtime_gcwaiting)
+		runtime_throw("gcstopm: not waiting for gc");
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+	p = releasep();
+	runtime_lock(&runtime_sched);
+	p->status = Pgcstop;
+	if(--runtime_sched.stopwait == 0)
+		runtime_notewakeup(&runtime_sched.stopnote);
+	runtime_unlock(&runtime_sched);
+	stopm();
+}
+
+// Schedules gp to run on the current M.
+// Never returns.
+static void
+execute(G *gp)
+{
+	int32 hz;
+
+	if(gp->status != Grunnable) {
+		runtime_printf("execute: bad g status %d\n", gp->status);
+		runtime_throw("execute: bad g status");
+	}
 	gp->status = Grunning;
+	m->p->tick++;
 	m->curg = gp;
 	gp->m = m;
 
@@ -1352,50 +1449,327 @@
 	runtime_gogo(gp);
 }
 
-// Enter scheduler.  If g->status is Grunning,
-// re-queues g and runs everyone else who is waiting
-// before running g again.  If g->status is Gmoribund,
-// kills off g.
-void
-runtime_gosched(void)
+// Finds a runnable goroutine to execute.
+// Tries to steal from other P's, get g from global queue, poll network.
+static G*
+findrunnable(void)
 {
-	if(m->locks != 0)
-		runtime_throw("gosched holding locks");
-	if(g == m->g0)
-		runtime_throw("gosched of g0");
-	runtime_mcall(schedule);
+	G *gp;
+	P *p;
+	int32 i;
+
+top:
+	if(runtime_gcwaiting) {
+		gcstopm();
+		goto top;
+	}
+	// local runq
+	gp = runqget(m->p);
+	if(gp)
+		return gp;
+	// global runq
+	if(runtime_sched.runqsize) {
+		runtime_lock(&runtime_sched);
+		gp = globrunqget(m->p);
+		runtime_unlock(&runtime_sched);
+		if(gp)
+			return gp;
+	}
+	// poll network
+	gp = runtime_netpoll(false);  // non-blocking
+	if(gp) {
+		injectglist(gp->schedlink);
+		gp->status = Grunnable;
+		return gp;
+	}
+	// If number of spinning M's >= number of busy P's, block.
+	// This is necessary to prevent excessive CPU consumption
+	// when GOMAXPROCS>>1 but the program parallelism is low.
+	if(!m->spinning && 2 * runtime_atomicload(&runtime_sched.nmspinning) >= runtime_gomaxprocs - runtime_atomicload(&runtime_sched.npidle))  // TODO: fast atomic
+		goto stop;
+	if(!m->spinning) {
+		m->spinning = true;
+		runtime_xadd(&runtime_sched.nmspinning, 1);
+	}
+	// random steal from other P's
+	for(i = 0; i < 2*runtime_gomaxprocs; i++) {
+		if(runtime_gcwaiting)
+			goto top;
+		p = runtime_allp[runtime_fastrand1()%runtime_gomaxprocs];
+		if(p == m->p)
+			gp = runqget(p);
+		else
+			gp = runqsteal(m->p, p);
+		if(gp)
+			return gp;
+	}
+stop:
+	// return P and block
+	runtime_lock(&runtime_sched);
+	if(runtime_gcwaiting) {
+		runtime_unlock(&runtime_sched);
+		goto top;
+	}
+	if(runtime_sched.runqsize) {
+		gp = globrunqget(m->p);
+		runtime_unlock(&runtime_sched);
+		return gp;
+	}
+	p = releasep();
+	pidleput(p);
+	runtime_unlock(&runtime_sched);
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+	// check all runqueues once again
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p && p->runqhead != p->runqtail) {
+			runtime_lock(&runtime_sched);
+			p = pidleget();
+			runtime_unlock(&runtime_sched);
+			if(p) {
+				acquirep(p);
+				goto top;
+			}
+			break;
+		}
+	}
+	// poll network
+	if(runtime_xchg64(&runtime_sched.lastpoll, 0) != 0) {
+		if(m->p)
+			runtime_throw("findrunnable: netpoll with p");
+		if(m->spinning)
+			runtime_throw("findrunnable: netpoll with spinning");
+		gp = runtime_netpoll(true);  // block until new work is available
+		runtime_atomicstore64(&runtime_sched.lastpoll, runtime_nanotime());
+		if(gp) {
+			runtime_lock(&runtime_sched);
+			p = pidleget();
+			runtime_unlock(&runtime_sched);
+			if(p) {
+				acquirep(p);
+				injectglist(gp->schedlink);
+				gp->status = Grunnable;
+				return gp;
+			}
+			injectglist(gp);
+		}
+	}
+	stopm();
+	goto top;
+}
+
+// Injects the list of runnable G's into the scheduler.
+// Can run concurrently with GC.
+static void
+injectglist(G *glist)
+{
+	int32 n;
+	G *gp;
+
+	if(glist == nil)
+		return;
+	runtime_lock(&runtime_sched);
+	for(n = 0; glist; n++) {
+		gp = glist;
+		glist = gp->schedlink;
+		gp->status = Grunnable;
+		globrunqput(gp);
+	}
+	runtime_unlock(&runtime_sched);
+
+	for(; n && runtime_sched.npidle; n--)
+		startm(nil, false);
+}
+
+// One round of scheduler: find a runnable goroutine and execute it.
+// Never returns.
+static void
+schedule(void)
+{
+	G *gp;
+
+	if(m->locks)
+		runtime_throw("schedule: holding locks");
+
+top:
+	if(runtime_gcwaiting) {
+		gcstopm();
+		goto top;
+	}
+
+	gp = runqget(m->p);
+	if(gp == nil)
+		gp = findrunnable();
+
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+
+	// M wakeup policy is deliberately somewhat conservative (see nmspinning handling),
+	// so see if we need to wakeup another M here.
+	if (m->p->runqhead != m->p->runqtail &&
+		runtime_atomicload(&runtime_sched.nmspinning) == 0 &&
+		runtime_atomicload(&runtime_sched.npidle) > 0)  // TODO: fast atomic
+		wakep();
+
+	if(gp->lockedm) {
+		startlockedm(gp);
+		goto top;
+	}
+
+	execute(gp);
 }
 
 // Puts the current goroutine into a waiting state and unlocks the lock.
 // The goroutine can be made runnable again by calling runtime_ready(gp).
 void
-runtime_park(void (*unlockf)(Lock*), Lock *lock, const char *reason)
+runtime_park(void(*unlockf)(Lock*), Lock *lock, const char *reason)
 {
-	g->status = Gwaiting;
+	m->waitlock = lock;
+	m->waitunlockf = unlockf;
 	g->waitreason = reason;
-	if(unlockf)
-		unlockf(lock);
-	runtime_gosched();
+	runtime_mcall(park0);
+}
+
+// runtime_park continuation on g0.
+static void
+park0(G *gp)
+{
+	gp->status = Gwaiting;
+	gp->m = nil;
+	m->curg = nil;
+	if(m->waitunlockf) {
+		m->waitunlockf(m->waitlock);
+		m->waitunlockf = nil;
+		m->waitlock = nil;
+	}
+	if(m->lockedg) {
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	schedule();
+}
+
+// Scheduler yield.
+void
+runtime_gosched(void)
+{
+	runtime_mcall(gosched0);
+}
+
+// runtime_gosched continuation on g0.
+static void
+gosched0(G *gp)
+{
+	gp->status = Grunnable;
+	gp->m = nil;
+	m->curg = nil;
+	runtime_lock(&runtime_sched);
+	globrunqput(gp);
+	runtime_unlock(&runtime_sched);
+	if(m->lockedg) {
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	schedule();
+}
+
+// Finishes execution of the current goroutine.
+void
+runtime_goexit(void)
+{
+	if(raceenabled)
+		runtime_racegoend();
+	runtime_mcall(goexit0);
 }
 
-// The goroutine g is about to enter a system call.
-// Record that it's not using the cpu anymore.
-// This is called only from the go syscall library and cgocall,
-// not from the low-level system calls used by the runtime.
-//
-// Entersyscall cannot split the stack: the runtime_gosave must
-// make g->sched refer to the caller's stack segment, because
-// entersyscall is going to return immediately after.
-// It's okay to call matchmg and notewakeup even after
-// decrementing mcpu, because we haven't released the
-// sched lock yet, so the garbage collector cannot be running.
+// runtime_goexit continuation on g0.
+static void
+goexit0(G *gp)
+{
+	gp->status = Gdead;
+	gp->entry = nil;
+	gp->m = nil;
+	gp->lockedm = nil;
+	m->curg = nil;
+	m->lockedg = nil;
+	if(m->locked & ~LockExternal) {
+		runtime_printf("invalid m->locked = %d", m->locked);
+		runtime_throw("internal lockOSThread error");
+	}	
+	m->locked = 0;
+	gfput(m->p, gp);
+	schedule();
+}
+
+// The goroutine g is about to enter a system call.
+// Record that it's not using the cpu anymore.
+// This is called only from the go syscall library and cgocall,
+// not from the low-level system calls used by the runtime.
+//
+// Entersyscall cannot split the stack: the runtime_gosave must
+// make g->sched refer to the caller's stack segment, because
+// entersyscall is going to return immediately after.
+
+void runtime_entersyscall(void) __attribute__ ((no_split_stack));
+
+void
+runtime_entersyscall()
+{
+	if(m->profilehz > 0)
+		runtime_setprof(false);
+
+	// Leave SP around for gc and traceback.
+#ifdef USING_SPLIT_STACK
+	g->gcstack = __splitstack_find(nil, nil, &g->gcstack_size,
+				       &g->gcnext_segment, &g->gcnext_sp,
+				       &g->gcinitial_sp);
+#else
+	{
+		uint32 v;
+
+		g->gcnext_sp = (byte *) &v;
+	}
+#endif
+
+	// Save the registers in the g structure so that any pointers
+	// held in registers will be seen by the garbage collector.
+	getcontext(&g->gcregs);
 
-void runtime_entersyscall(void) __attribute__ ((no_split_stack));
+	g->status = Gsyscall;
+
+	if(runtime_atomicload(&runtime_sched.sysmonwait)) {  // TODO: fast atomic
+		runtime_lock(&runtime_sched);
+		if(runtime_atomicload(&runtime_sched.sysmonwait)) {
+			runtime_atomicstore(&runtime_sched.sysmonwait, 0);
+			runtime_notewakeup(&runtime_sched.sysmonnote);
+		}
+		runtime_unlock(&runtime_sched);
+	}
+
+	m->mcache = nil;
+	m->p->tick++;
+	m->p->m = nil;
+	runtime_atomicstore(&m->p->status, Psyscall);
+	if(runtime_gcwaiting) {
+		runtime_lock(&runtime_sched);
+		if (runtime_sched.stopwait > 0 && runtime_cas(&m->p->status, Psyscall, Pgcstop)) {
+			if(--runtime_sched.stopwait == 0)
+				runtime_notewakeup(&runtime_sched.stopnote);
+		}
+		runtime_unlock(&runtime_sched);
+	}
+}
 
+// The same as runtime_entersyscall(), but with a hint that the syscall is blocking.
 void
-runtime_entersyscall(void)
+runtime_entersyscallblock(void)
 {
-	uint32 v;
+	P *p;
 
 	if(m->profilehz > 0)
 		runtime_setprof(false);
@@ -1406,7 +1780,7 @@
 				       &g->gcnext_segment, &g->gcnext_sp,
 				       &g->gcinitial_sp);
 #else
-	g->gcnext_sp = (byte *) &v;
+	g->gcnext_sp = (byte *) &p;
 #endif
 
 	// Save the registers in the g structure so that any pointers
@@ -1415,30 +1789,10 @@
 
 	g->status = Gsyscall;
 
-	// Fast path.
-	// The slow path inside the schedlock/schedunlock will get
-	// through without stopping if it does:
-	//	mcpu--
-	//	gwait not true
-	//	waitstop && mcpu <= mcpumax not true
-	// If we can do the same with a single atomic add,
-	// then we can skip the locks.
-	v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-	if(!atomic_gwaiting(v) && (!atomic_waitstop(v) || atomic_mcpu(v) > atomic_mcpumax(v)))
-		return;
-
-	schedlock();
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if(atomic_gwaiting(v)) {
-		matchmg();
-		v = runtime_atomicload(&runtime_sched.atomic);
-	}
-	if(atomic_waitstop(v) && atomic_mcpu(v) <= atomic_mcpumax(v)) {
-		runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift);
-		runtime_notewakeup(&runtime_sched.stopped);
-	}
-
-	schedunlock();
+	p = releasep();
+	handoffp(p);
+	if(g->isbackground)  // do not consider blocked scavenger for deadlock detection
+		inclocked(1);
 }
 
 // The goroutine g exited its system call.
@@ -1449,46 +1803,53 @@
 runtime_exitsyscall(void)
 {
 	G *gp;
-	uint32 v;
+	P *p;
+
+	// Check whether the profiler needs to be turned on.
+	if(m->profilehz > 0)
+		runtime_setprof(true);
 
-	// Fast path.
-	// If we can do the mcpu++ bookkeeping and
-	// find that we still have mcpu <= mcpumax, then we can
-	// start executing Go code immediately, without having to
-	// schedlock/schedunlock.
-	// Also do fast return if any locks are held, so that
-	// panic code can use syscalls to open a file.
 	gp = g;
-	v = runtime_xadd(&runtime_sched.atomic, (1<<mcpuShift));
-	if((m->profilehz == runtime_sched.profilehz && atomic_mcpu(v) <= atomic_mcpumax(v)) || m->locks > 0) {
+	// Try to re-acquire the last P.
+	if(m->p && m->p->status == Psyscall && runtime_cas(&m->p->status, Psyscall, Prunning)) {
 		// There's a cpu for us, so we can run.
+		m->mcache = m->p->mcache;
+		m->p->m = m;
+		m->p->tick++;
 		gp->status = Grunning;
 		// Garbage collector isn't running (since we are),
-		// so okay to clear gcstack.
+		// so okay to clear gcstack and gcsp.
 #ifdef USING_SPLIT_STACK
 		gp->gcstack = nil;
 #endif
 		gp->gcnext_sp = nil;
 		runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
-
-		if(m->profilehz > 0)
-			runtime_setprof(true);
 		return;
 	}
 
-	// Tell scheduler to put g back on the run queue:
-	// mostly equivalent to g->status = Grunning,
-	// but keeps the garbage collector from thinking
-	// that g is running right now, which it's not.
-	gp->readyonstop = 1;
-
-	// All the cpus are taken.
-	// The scheduler will ready g and put this m to sleep.
-	// When the scheduler takes g away from m,
-	// it will undo the runtime_sched.mcpu++ above.
-	runtime_gosched();
+	if(gp->isbackground)  // do not consider blocked scavenger for deadlock detection
+		inclocked(-1);
+	// Try to get any other idle P.
+	m->p = nil;
+	if(runtime_sched.pidle) {
+		runtime_lock(&runtime_sched);
+		p = pidleget();
+		runtime_unlock(&runtime_sched);
+		if(p) {
+			acquirep(p);
+#ifdef USING_SPLIT_STACK
+			gp->gcstack = nil;
+#endif
+			gp->gcnext_sp = nil;
+			runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
+			return;
+		}
+	}
 
-	// Gosched returned, so we're allowed to run now.
+	// Call the scheduler.
+	runtime_mcall(exitsyscall0);
+
+	// Scheduler returned, so we're allowed to run now.
 	// Delete the gcstack information that we left for
 	// the garbage collector during the system call.
 	// Must wait until now because until gosched returns
@@ -1501,6 +1862,34 @@
 	runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
 }
 
+// runtime_exitsyscall slow path on g0.
+// Failed to acquire P, enqueue gp as runnable.
+static void
+exitsyscall0(G *gp)
+{
+	P *p;
+
+	gp->status = Grunnable;
+	gp->m = nil;
+	m->curg = nil;
+	runtime_lock(&runtime_sched);
+	p = pidleget();
+	if(p == nil)
+		globrunqput(gp);
+	runtime_unlock(&runtime_sched);
+	if(p) {
+		acquirep(p);
+		execute(gp);  // Never returns.
+	}
+	if(m->lockedg) {
+		// Wait until another thread schedules gp and so m again.
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	stopm();
+	schedule();  // Never returns.
+}
+
 // Allocate a new g, with a stack big enough for stacksize bytes.
 G*
 runtime_malg(int32 stacksize, byte** ret_stack, size_t* ret_stacksize)
@@ -1554,15 +1943,10 @@
 	byte *sp;
 	size_t spsize;
 	G *newg;
-	int64 goid;
-
-	goid = runtime_xadd64((uint64*)&runtime_sched.goidgen, 1);
-	if(raceenabled)
-		runtime_racegostart(goid, runtime_getcallerpc(&fn));
 
-	schedlock();
+	m->locks++;  // disable preemption because it can be holding p in a local var
 
-	if((newg = gfget()) != nil) {
+	if((newg = gfget(m->p)) != nil) {
 #ifdef USING_SPLIT_STACK
 		int dont_block_signals = 0;
 
@@ -1579,24 +1963,20 @@
 #endif
 	} else {
 		newg = runtime_malg(StackMin, &sp, &spsize);
+		runtime_lock(&runtime_sched);
 		if(runtime_lastg == nil)
 			runtime_allg = newg;
 		else
 			runtime_lastg->alllink = newg;
 		runtime_lastg = newg;
+		runtime_unlock(&runtime_sched);
 	}
-	newg->status = Gwaiting;
-	newg->waitreason = "new goroutine";
 
 	newg->entry = (byte*)fn;
 	newg->param = arg;
 	newg->gopc = (uintptr)__builtin_return_address(0);
-
-	runtime_sched.gcount++;
-	newg->goid = goid;
-
-	if(sp == nil)
-		runtime_throw("nil g->stack0");
+	newg->status = Grunnable;
+	newg->goid = runtime_xadd64(&runtime_sched.goidgen, 1);
 
 	{
 		// Avoid warnings about variables clobbered by
@@ -1613,33 +1993,87 @@
 		vnewg->context.uc_stack.ss_size = vspsize;
 		makecontext(&vnewg->context, kickoff, 0);
 
-		newprocreadylocked(vnewg);
-		schedunlock();
+		runqput(m->p, vnewg);
 
+		if(runtime_atomicload(&runtime_sched.npidle) != 0 && runtime_atomicload(&runtime_sched.nmspinning) == 0 && fn != runtime_main)  // TODO: fast atomic
+			wakep();
+		m->locks--;
 		return vnewg;
 	}
 }
 
-// Put on gfree list.  Sched must be locked.
+// Put on gfree list.
+// If local list is too long, transfer a batch to the global list.
 static void
-gfput(G *gp)
+gfput(P *p, G *gp)
 {
-	gp->schedlink = runtime_sched.gfree;
-	runtime_sched.gfree = gp;
+	gp->schedlink = p->gfree;
+	p->gfree = gp;
+	p->gfreecnt++;
+	if(p->gfreecnt >= 64) {
+		runtime_lock(&runtime_sched.gflock);
+		while(p->gfreecnt >= 32) {
+			p->gfreecnt--;
+			gp = p->gfree;
+			p->gfree = gp->schedlink;
+			gp->schedlink = runtime_sched.gfree;
+			runtime_sched.gfree = gp;
+		}
+		runtime_unlock(&runtime_sched.gflock);
+	}
 }
 
-// Get from gfree list.  Sched must be locked.
+// Get from gfree list.
+// If local list is empty, grab a batch from global list.
 static G*
-gfget(void)
+gfget(P *p)
 {
 	G *gp;
 
-	gp = runtime_sched.gfree;
-	if(gp)
-		runtime_sched.gfree = gp->schedlink;
+retry:
+	gp = p->gfree;
+	if(gp == nil && runtime_sched.gfree) {
+		runtime_lock(&runtime_sched.gflock);
+		while(p->gfreecnt < 32 && runtime_sched.gfree) {
+			p->gfreecnt++;
+			gp = runtime_sched.gfree;
+			runtime_sched.gfree = gp->schedlink;
+			gp->schedlink = p->gfree;
+			p->gfree = gp;
+		}
+		runtime_unlock(&runtime_sched.gflock);
+		goto retry;
+	}
+	if(gp) {
+		p->gfree = gp->schedlink;
+		p->gfreecnt--;
+	}
 	return gp;
 }
 
+// Purge all cached G's from gfree list to the global list.
+static void
+gfpurge(P *p)
+{
+	G *gp;
+
+	runtime_lock(&runtime_sched.gflock);
+	while(p->gfreecnt) {
+		p->gfreecnt--;
+		gp = p->gfree;
+		p->gfree = gp->schedlink;
+		gp->schedlink = runtime_sched.gfree;
+		runtime_sched.gfree = gp;
+	}
+	runtime_unlock(&runtime_sched.gflock);
+}
+
+void
+runtime_Breakpoint(void)
+{
+	runtime_breakpoint();
+}
+
 void runtime_Gosched (void) __asm__ (GOSYM_PREFIX "runtime.Gosched");
 
 void
@@ -1649,67 +2083,82 @@
 }
 
 // Implementation of runtime.GOMAXPROCS.
-// delete when scheduler is stronger
+// delete when scheduler is even stronger
 int32
 runtime_gomaxprocsfunc(int32 n)
 {
 	int32 ret;
-	uint32 v;
 
-	schedlock();
+	if(n > MaxGomaxprocs)
+		n = MaxGomaxprocs;
+	runtime_lock(&runtime_sched);
 	ret = runtime_gomaxprocs;
-	if(n <= 0)
-		n = ret;
-	if(n > maxgomaxprocs)
-		n = maxgomaxprocs;
-	runtime_gomaxprocs = n;
-	if(runtime_gomaxprocs > 1)
-		runtime_singleproc = false;
- 	if(runtime_gcwaiting != 0) {
- 		if(atomic_mcpumax(runtime_sched.atomic) != 1)
- 			runtime_throw("invalid mcpumax during gc");
-		schedunlock();
+	if(n <= 0 || n == ret) {
+		runtime_unlock(&runtime_sched);
 		return ret;
 	}
+	runtime_unlock(&runtime_sched);
 
-	setmcpumax(n);
+	runtime_semacquire(&runtime_worldsema);
+	m->gcing = 1;
+	runtime_stoptheworld();
+	newprocs = n;
+	m->gcing = 0;
+	runtime_semrelease(&runtime_worldsema);
+	runtime_starttheworld();
 
-	// If there are now fewer allowed procs
-	// than procs running, stop.
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if((int32)atomic_mcpu(v) > n) {
-		schedunlock();
-		runtime_gosched();
-		return ret;
-	}
-	// handle more procs
-	matchmg();
-	schedunlock();
 	return ret;
 }
 
-void
-runtime_LockOSThread(void)
+static void
+LockOSThread(void)
 {
-	if(m == &runtime_m0 && runtime_sched.init) {
-		runtime_sched.lockmain = true;
-		return;
-	}
 	m->lockedg = g;
 	g->lockedm = m;
 }
 
+void	runtime_LockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.LockOSThread");
 void
-runtime_UnlockOSThread(void)
+runtime_LockOSThread(void)
 {
-	if(m == &runtime_m0 && runtime_sched.init) {
-		runtime_sched.lockmain = false;
+	m->locked |= LockExternal;
+	LockOSThread();
+}
+
+void
+runtime_lockOSThread(void)
+{
+	m->locked += LockInternal;
+	LockOSThread();
+}
+
+static void
+UnlockOSThread(void)
+{
+	if(m->locked != 0)
 		return;
-	}
 	m->lockedg = nil;
 	g->lockedm = nil;
 }
 
+void	runtime_UnlockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.UnlockOSThread");
+
+void
+runtime_UnlockOSThread(void)
+{
+	m->locked &= ~LockExternal;
+	UnlockOSThread();
+}
+
+void
+runtime_unlockOSThread(void)
+{
+	if(m->locked < LockInternal)
+		runtime_throw("runtime: internal error: misuse of lockOSThread/unlockOSThread");
+	m->locked -= LockInternal;
+	UnlockOSThread();
+}
+
 bool
 runtime_lockedOSThread(void)
 {
@@ -1740,13 +2189,28 @@
 intgo
 runtime_NumGoroutine()
 {
-	return runtime_sched.gcount;
+	return runtime_gcount();
 }
 
 int32
 runtime_gcount(void)
 {
-	return runtime_sched.gcount;
+	G *gp;
+	int32 n, s;
+
+	n = 0;
+	runtime_lock(&runtime_sched);
+	// TODO(dvyukov): runtime.NumGoroutine() is O(N).
+	// We do not want to increment/decrement centralized counter in newproc/goexit,
+	// just to make runtime.NumGoroutine() faster.
+	// Compromise solution is to introduce per-P counters of active goroutines.
+	for(gp = runtime_allg; gp; gp = gp->alllink) {
+		s = gp->status;
+		if(s == Grunnable || s == Grunning || s == Gsyscall || s == Gwaiting)
+			n++;
+	}
+	runtime_unlock(&runtime_sched);
+	return n;
 }
 
 int32
@@ -1769,6 +2233,9 @@
 {
 	int32 n, i;
 
+	// Windows does profiling in a dedicated thread w/o m.
+	if(!Windows && (m == nil || m->mcache == nil))
+		return;
 	if(prof.fn == nil || prof.hz == 0)
 		return;
 
@@ -1813,3 +2280,575 @@
 	if(hz != 0)
 		runtime_resetcpuprofiler(hz);
 }
+
+// Change number of processors.  The world is stopped, sched is locked.
+static void
+procresize(int32 new)
+{
+	int32 i, old;
+	G *gp;
+	P *p;
+
+	old = runtime_gomaxprocs;
+	if(old < 0 || old > MaxGomaxprocs || new <= 0 || new >MaxGomaxprocs)
+		runtime_throw("procresize: invalid arg");
+	// initialize new P's
+	for(i = 0; i < new; i++) {
+		p = runtime_allp[i];
+		if(p == nil) {
+			p = (P*)runtime_mallocgc(sizeof(*p), 0, 0, 1);
+			p->status = Pgcstop;
+			runtime_atomicstorep(&runtime_allp[i], p);
+		}
+		if(p->mcache == nil) {
+			if(old==0 && i==0)
+				p->mcache = m->mcache;  // bootstrap
+			else
+				p->mcache = runtime_allocmcache();
+		}
+		if(p->runq == nil) {
+			p->runqsize = 128;
+			p->runq = (G**)runtime_mallocgc(p->runqsize*sizeof(G*), 0, 0, 1);
+		}
+	}
+
+	// redistribute runnable G's evenly
+	for(i = 0; i < old; i++) {
+		p = runtime_allp[i];
+		while((gp = runqget(p)) != nil)
+			globrunqput(gp);
+	}
+	// start at 1 because current M already executes some G and will acquire allp[0] below,
+	// so if we have a spare G we want to put it into allp[1].
+	for(i = 1; runtime_sched.runqhead; i++) {
+		gp = runtime_sched.runqhead;
+		runtime_sched.runqhead = gp->schedlink;
+		runqput(runtime_allp[i%new], gp);
+	}
+	runtime_sched.runqtail = nil;
+	runtime_sched.runqsize = 0;
+
+	// free unused P's
+	for(i = new; i < old; i++) {
+		p = runtime_allp[i];
+		runtime_freemcache(p->mcache);
+		p->mcache = nil;
+		gfpurge(p);
+		p->status = Pdead;
+		// can't free P itself because it can be referenced by an M in syscall
+	}
+
+	if(m->p)
+		m->p->m = nil;
+	m->p = nil;
+	m->mcache = nil;
+	p = runtime_allp[0];
+	p->m = nil;
+	p->status = Pidle;
+	acquirep(p);
+	for(i = new-1; i > 0; i--) {
+		p = runtime_allp[i];
+		p->status = Pidle;
+		pidleput(p);
+	}
+	runtime_singleproc = new == 1;
+	runtime_atomicstore((uint32*)&runtime_gomaxprocs, new);
+}
+
+// Associate p and the current m.
+static void
+acquirep(P *p)
+{
+	if(m->p || m->mcache)
+		runtime_throw("acquirep: already in go");
+	if(p->m || p->status != Pidle) {
+		runtime_printf("acquirep: p->m=%p(%d) p->status=%d\n", p->m, p->m ? p->m->id : 0, p->status);
+		runtime_throw("acquirep: invalid p state");
+	}
+	m->mcache = p->mcache;
+	m->p = p;
+	p->m = m;
+	p->status = Prunning;
+}
+
+// Disassociate p and the current m.
+static P*
+releasep(void)
+{
+	P *p;
+
+	if(m->p == nil || m->mcache == nil)
+		runtime_throw("releasep: invalid arg");
+	p = m->p;
+	if(p->m != m || p->mcache != m->mcache || p->status != Prunning) {
+		runtime_printf("releasep: m=%p m->p=%p p->m=%p m->mcache=%p p->mcache=%p p->status=%d\n",
+			m, m->p, p->m, m->mcache, p->mcache, p->status);
+		runtime_throw("releasep: invalid p state");
+	}
+	m->p = nil;
+	m->mcache = nil;
+	p->m = nil;
+	p->status = Pidle;
+	return p;
+}
+
+static void
+inclocked(int32 v)
+{
+	runtime_lock(&runtime_sched);
+	runtime_sched.mlocked += v;
+	if(v > 0)
+		checkdead();
+	runtime_unlock(&runtime_sched);
+}
+
+// Check for deadlock situation.
+// The check is based on number of running M's, if 0 -> deadlock.
+static void
+checkdead(void)
+{
+	G *gp;
+	int32 run, grunning, s;
+
+	// -1 for sysmon
+	run = runtime_sched.mcount - runtime_sched.nmidle - runtime_sched.mlocked - 1 - countextra();
+	if(run > 0)
+		return;
+	if(run < 0) {
+		runtime_printf("checkdead: nmidle=%d mlocked=%d mcount=%d\n",
+			runtime_sched.nmidle, runtime_sched.mlocked, runtime_sched.mcount);
+		runtime_throw("checkdead: inconsistent counts");
+	}
+	grunning = 0;
+	for(gp = runtime_allg; gp; gp = gp->alllink) {
+		if(gp->isbackground)
+			continue;
+		s = gp->status;
+		if(s == Gwaiting)
+			grunning++;
+		else if(s == Grunnable || s == Grunning || s == Gsyscall) {
+			runtime_printf("checkdead: find g %D in status %d\n", gp->goid, s);
+			runtime_throw("checkdead: runnable g");
+		}
+	}
+	if(grunning == 0)  // possible if main goroutine calls runtime_Goexit()
+		runtime_exit(0);
+	m->throwing = -1;  // do not dump full stacks
+	runtime_throw("all goroutines are asleep - deadlock!");
+}
+
+static void
+sysmon(void)
+{
+	uint32 idle, delay;
+	int64 now, lastpoll;
+	G *gp;
+	uint32 ticks[MaxGomaxprocs];
+
+	idle = 0;  // how many cycles in succession we had not wokeup somebody
+	delay = 0;
+	for(;;) {
+		if(idle == 0)  // start with 20us sleep...
+			delay = 20;
+		else if(idle > 50)  // start doubling the sleep after 1ms...
+			delay *= 2;
+		if(delay > 10*1000)  // up to 10ms
+			delay = 10*1000;
+		runtime_usleep(delay);
+		if(runtime_gcwaiting || runtime_atomicload(&runtime_sched.npidle) == (uint32)runtime_gomaxprocs) {  // TODO: fast atomic
+			runtime_lock(&runtime_sched);
+			if(runtime_atomicload(&runtime_gcwaiting) || runtime_atomicload(&runtime_sched.npidle) == (uint32)runtime_gomaxprocs) {
+				runtime_atomicstore(&runtime_sched.sysmonwait, 1);
+				runtime_unlock(&runtime_sched);
+				runtime_notesleep(&runtime_sched.sysmonnote);
+				runtime_noteclear(&runtime_sched.sysmonnote);
+				idle = 0;
+				delay = 20;
+			} else
+				runtime_unlock(&runtime_sched);
+		}
+		// poll network if not polled for more than 10ms
+		lastpoll = runtime_atomicload64(&runtime_sched.lastpoll);
+		now = runtime_nanotime();
+		if(lastpoll != 0 && lastpoll + 10*1000*1000 > now) {
+			gp = runtime_netpoll(false);  // non-blocking
+			injectglist(gp);
+		}
+		// retake P's blocked in syscalls
+		if(retake(ticks))
+			idle = 0;
+		else
+			idle++;
+	}
+}
+
+static uint32
+retake(uint32 *ticks)
+{
+	uint32 i, s, n;
+	int64 t;
+	P *p;
+
+	n = 0;
+	for(i = 0; i < (uint32)runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p==nil)
+			continue;
+		t = p->tick;
+		if(ticks[i] != t) {
+			ticks[i] = t;
+			continue;
+		}
+		s = p->status;
+		if(s != Psyscall)
+			continue;
+		if(p->runqhead == p->runqtail && runtime_atomicload(&runtime_sched.nmspinning) + runtime_atomicload(&runtime_sched.npidle) > 0)  // TODO: fast atomic
+			continue;
+		// Need to increment number of locked M's before the CAS.
+		// Otherwise the M from which we retake can exit the syscall,
+		// increment nmidle and report deadlock.
+		inclocked(-1);
+		if(runtime_cas(&p->status, s, Pidle)) {
+			n++;
+			handoffp(p);
+		}
+		inclocked(1);
+	}
+	return n;
+}
+
+// Put mp on midle list.
+// Sched must be locked.
+static void
+mput(M *mp)
+{
+	mp->schedlink = runtime_sched.midle;
+	runtime_sched.midle = mp;
+	runtime_sched.nmidle++;
+	checkdead();
+}
+
+// Try to get an m from midle list.
+// Sched must be locked.
+static M*
+mget(void)
+{
+	M *mp;
+
+	if((mp = runtime_sched.midle) != nil){
+		runtime_sched.midle = mp->schedlink;
+		runtime_sched.nmidle--;
+	}
+	return mp;
+}
+
+// Put gp on the global runnable queue.
+// Sched must be locked.
+static void
+globrunqput(G *gp)
+{
+	gp->schedlink = nil;
+	if(runtime_sched.runqtail)
+		runtime_sched.runqtail->schedlink = gp;
+	else
+		runtime_sched.runqhead = gp;
+	runtime_sched.runqtail = gp;
+	runtime_sched.runqsize++;
+}
+
+// Try get a batch of G's from the global runnable queue.
+// Sched must be locked.
+static G*
+globrunqget(P *p)
+{
+	G *gp, *gp1;
+	int32 n;
+
+	if(runtime_sched.runqsize == 0)
+		return nil;
+	n = runtime_sched.runqsize/runtime_gomaxprocs+1;
+	if(n > runtime_sched.runqsize)
+		n = runtime_sched.runqsize;
+	runtime_sched.runqsize -= n;
+	if(runtime_sched.runqsize == 0)
+		runtime_sched.runqtail = nil;
+	gp = runtime_sched.runqhead;
+	runtime_sched.runqhead = gp->schedlink;
+	n--;
+	while(n--) {
+		gp1 = runtime_sched.runqhead;
+		runtime_sched.runqhead = gp1->schedlink;
+		runqput(p, gp1);
+	}
+	return gp;
+}
+
+// Put p to on pidle list.
+// Sched must be locked.
+static void
+pidleput(P *p)
+{
+	p->link = runtime_sched.pidle;
+	runtime_sched.pidle = p;
+	runtime_xadd(&runtime_sched.npidle, 1);  // TODO: fast atomic
+}
+
+// Try get a p from pidle list.
+// Sched must be locked.
+static P*
+pidleget(void)
+{
+	P *p;
+
+	p = runtime_sched.pidle;
+	if(p) {
+		runtime_sched.pidle = p->link;
+		runtime_xadd(&runtime_sched.npidle, -1);  // TODO: fast atomic
+	}
+	return p;
+}
+
+// Put g on local runnable queue.
+// TODO(dvyukov): consider using lock-free queue.
+static void
+runqput(P *p, G *gp)
+{
+	int32 h, t, s;
+
+	runtime_lock(p);
+retry:
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	if(t == h-1 || (h == 0 && t == s-1)) {
+		runqgrow(p);
+		goto retry;
+	}
+	p->runq[t++] = gp;
+	if(t == s)
+		t = 0;
+	p->runqtail = t;
+	runtime_unlock(p);
+}
+
+// Get g from local runnable queue.
+static G*
+runqget(P *p)
+{
+	G *gp;
+	int32 t, h, s;
+
+	if(p->runqhead == p->runqtail)
+		return nil;
+	runtime_lock(p);
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	if(t == h) {
+		runtime_unlock(p);
+		return nil;
+	}
+	gp = p->runq[h++];
+	if(h == s)
+		h = 0;
+	p->runqhead = h;
+	runtime_unlock(p);
+	return gp;
+}
+
+// Grow local runnable queue.
+// TODO(dvyukov): consider using fixed-size array
+// and transfer excess to the global list (local queue can grow way too big).
+static void
+runqgrow(P *p)
+{
+	G **q;
+	int32 s, t, h, t2;
+
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	t2 = 0;
+	q = runtime_malloc(2*s*sizeof(*q));
+	while(t != h) {
+		q[t2++] = p->runq[h++];
+		if(h == s)
+			h = 0;
+	}
+	runtime_free(p->runq);
+	p->runq = q;
+	p->runqhead = 0;
+	p->runqtail = t2;
+	p->runqsize = 2*s;
+}
+
+// Steal half of elements from local runnable queue of p2
+// and put onto local runnable queue of p.
+// Returns one of the stolen elements (or nil if failed).
+static G*
+runqsteal(P *p, P *p2)
+{
+	G *gp, *gp1;
+	int32 t, h, s, t2, h2, s2, c, i;
+
+	if(p2->runqhead == p2->runqtail)
+		return nil;
+	// sort locks to prevent deadlocks
+	if(p < p2)
+		runtime_lock(p);
+	runtime_lock(p2);
+	if(p2->runqhead == p2->runqtail) {
+		runtime_unlock(p2);
+		if(p < p2)
+			runtime_unlock(p);
+		return nil;
+	}
+	if(p >= p2)
+		runtime_lock(p);
+	// now we've locked both queues and know the victim is not empty
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	h2 = p2->runqhead;
+	t2 = p2->runqtail;
+	s2 = p2->runqsize;
+	gp = p2->runq[h2++];  // return value
+	if(h2 == s2)
+		h2 = 0;
+	// steal roughly half
+	if(t2 > h2)
+		c = (t2 - h2) / 2;
+	else
+		c = (s2 - h2 + t2) / 2;
+	// copy
+	for(i = 0; i != c; i++) {
+		// the target queue is full?
+		if(t == h-1 || (h == 0 && t == s-1))
+			break;
+		// the victim queue is empty?
+		if(t2 == h2)
+			break;
+		gp1 = p2->runq[h2++];
+		if(h2 == s2)
+			h2 = 0;
+		p->runq[t++] = gp1;
+		if(t == s)
+			t = 0;
+	}
+	p->runqtail = t;
+	p2->runqhead = h2;
+	runtime_unlock(p2);
+	runtime_unlock(p);
+	return gp;
+}
+
+void runtime_testSchedLocalQueue(void)
+  __asm__("runtime.testSchedLocalQueue");
+
+void
+runtime_testSchedLocalQueue(void)
+{
+	P p;
+	G gs[1000];
+	int32 i, j;
+
+	runtime_memclr((byte*)&p, sizeof(p));
+	p.runqsize = 1;
+	p.runqhead = 0;
+	p.runqtail = 0;
+	p.runq = runtime_malloc(p.runqsize*sizeof(*p.runq));
+
+	for(i = 0; i < (int32)nelem(gs); i++) {
+		if(runqget(&p) != nil)
+			runtime_throw("runq is not empty initially");
+		for(j = 0; j < i; j++)
+			runqput(&p, &gs[i]);
+		for(j = 0; j < i; j++) {
+			if(runqget(&p) != &gs[i]) {
+				runtime_printf("bad element at iter %d/%d\n", i, j);
+				runtime_throw("bad element");
+			}
+		}
+		if(runqget(&p) != nil)
+			runtime_throw("runq is not empty afterwards");
+	}
+}
+
+void runtime_testSchedLocalQueueSteal(void)
+  __asm__("runtime.testSchedLocalQueueSteal");
+
+void
+runtime_testSchedLocalQueueSteal(void)
+{
+	P p1, p2;
+	G gs[1000], *gp;
+	int32 i, j, s;
+
+	runtime_memclr((byte*)&p1, sizeof(p1));
+	p1.runqsize = 1;
+	p1.runqhead = 0;
+	p1.runqtail = 0;
+	p1.runq = runtime_malloc(p1.runqsize*sizeof(*p1.runq));
+
+	runtime_memclr((byte*)&p2, sizeof(p2));
+	p2.runqsize = nelem(gs);
+	p2.runqhead = 0;
+	p2.runqtail = 0;
+	p2.runq = runtime_malloc(p2.runqsize*sizeof(*p2.runq));
+
+	for(i = 0; i < (int32)nelem(gs); i++) {
+		for(j = 0; j < i; j++) {
+			gs[j].sig = 0;
+			runqput(&p1, &gs[j]);
+		}
+		gp = runqsteal(&p2, &p1);
+		s = 0;
+		if(gp) {
+			s++;
+			gp->sig++;
+		}
+		while((gp = runqget(&p2)) != nil) {
+			s++;
+			gp->sig++;
+		}
+		while((gp = runqget(&p1)) != nil)
+			gp->sig++;
+		for(j = 0; j < i; j++) {
+			if(gs[j].sig != 1) {
+				runtime_printf("bad element %d(%d) at iter %d\n", j, gs[j].sig, i);
+				runtime_throw("bad element");
+			}
+		}
+		if(s != i/2 && s != i/2+1) {
+			runtime_printf("bad steal %d, want %d or %d, iter %d\n",
+				s, i/2, i/2+1, i);
+			runtime_throw("bad steal");
+		}
+	}
+}
+
+void
+runtime_proc_scan(void (*addroot)(Obj))
+{
+	addroot((Obj){(byte*)&runtime_sched, sizeof runtime_sched, 0});
+}
+
+// When a function calls a closure, it passes the closure value to
+// __go_set_closure immediately before the function call.  When a
+// function uses a closure, it calls __go_get_closure immediately on
+// function entry.  This is a hack, but it will work on any system.
+// It would be better to use the static chain register when there is
+// one.  It is also worth considering expanding these functions
+// directly in the compiler.
+
+void
+__go_set_closure(void* v)
+{
+	g->closure = v;
+}
+
+void *
+__go_get_closure(void)
+{
+	return g->closure;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/race.h gcc-4.8.1/libgo/runtime/race.h
--- gcc-4.8.1.orig/libgo/runtime/race.h	2012-12-12 23:13:29.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/race.h	2013-10-01 16:06:44.232554278 +0000
@@ -11,17 +11,19 @@
 #endif
 
 // Initialize race detection subsystem.
-void	runtime_raceinit(void);
+uintptr	runtime_raceinit(void);
 // Finalize race detection subsystem, does not return.
 void	runtime_racefini(void);
 
 void	runtime_racemapshadow(void *addr, uintptr size);
 void	runtime_racemalloc(void *p, uintptr sz, void *pc);
 void	runtime_racefree(void *p);
-void	runtime_racegostart(int32 goid, void *pc);
-void	runtime_racegoend(int32 goid);
+uintptr	runtime_racegostart(void *pc);
+void	runtime_racegoend(void);
 void	runtime_racewritepc(void *addr, void *callpc, void *pc);
 void	runtime_racereadpc(void *addr, void *callpc, void *pc);
+void	runtime_racewriterangepc(void *addr, uintptr sz, uintptr step, void *callpc, void *pc);
+void	runtime_racereadrangepc(void *addr, uintptr sz, uintptr step, void *callpc, void *pc);
 void	runtime_racefingo(void);
 void	runtime_raceacquire(void *addr);
 void	runtime_raceacquireg(G *gp, void *addr);
diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.c gcc-4.8.1/libgo/runtime/runtime.c
--- gcc-4.8.1.orig/libgo/runtime/runtime.c	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/runtime.c	2013-10-01 16:06:44.232554278 +0000
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+#include <signal.h>
 #include <unistd.h>
 
 #include "config.h"
@@ -10,14 +11,27 @@
 #include "array.h"
 #include "go-panic.h"
 
+// The GOTRACEBACK environment variable controls the
+// behavior of a Go program that is crashing and exiting.
+//	GOTRACEBACK=0   suppress all tracebacks
+//	GOTRACEBACK=1   default behavior - show tracebacks but exclude runtime frames
+//	GOTRACEBACK=2   show tracebacks including runtime frames
+//	GOTRACEBACK=crash   show tracebacks including runtime frames, then crash (core dump etc)
 int32
-runtime_gotraceback(void)
+runtime_gotraceback(bool *crash)
 {
 	const byte *p;
 
+	if(crash != nil)
+		*crash = false;
 	p = runtime_getenv("GOTRACEBACK");
 	if(p == nil || p[0] == '\0')
 		return 1;	// default is on
+	if(runtime_strcmp((const char *)p, "crash") == 0) {
+		if(crash != nil)
+			*crash = true;
+		return 2;	// extra information
+	}
 	return runtime_atoi(p);
 }
 
@@ -44,6 +58,11 @@
   return argc == 0 ? nil : argv[0];
 }
 
+// Information about what cpu features are available.
+// Set on startup in asm_{x86/amd64}.s.
+uint32 runtime_cpuid_ecx;
+uint32 runtime_cpuid_edx;
+
 void
 runtime_goargs(void)
 {
@@ -90,6 +109,52 @@
 	return n;
 }
 
+static struct root_list runtime_roots =
+{ nil,
+  { { &syscall_Envs, sizeof syscall_Envs },
+    { &os_Args, sizeof os_Args },
+    { nil, 0 } },
+};
+
+static void
+TestAtomic64(void)
+{
+	uint64 z64, x64;
+
+	z64 = 42;
+	x64 = 0;
+	PREFETCH(&z64);
+	if(runtime_cas64(&z64, &x64, 1))
+		runtime_throw("cas64 failed");
+	if(x64 != 42)
+		runtime_throw("cas64 failed");
+	if(!runtime_cas64(&z64, &x64, 1))
+		runtime_throw("cas64 failed");
+	if(x64 != 42 || z64 != 1)
+		runtime_throw("cas64 failed");
+	if(runtime_atomicload64(&z64) != 1)
+		runtime_throw("load64 failed");
+	runtime_atomicstore64(&z64, (1ull<<40)+1);
+	if(runtime_atomicload64(&z64) != (1ull<<40)+1)
+		runtime_throw("store64 failed");
+	if(runtime_xadd64(&z64, (1ull<<40)+1) != (2ull<<40)+2)
+		runtime_throw("xadd64 failed");
+	if(runtime_atomicload64(&z64) != (2ull<<40)+2)
+		runtime_throw("xadd64 failed");
+	if(runtime_xchg64(&z64, (3ull<<40)+3) != (2ull<<40)+2)
+		runtime_throw("xchg64 failed");
+	if(runtime_atomicload64(&z64) != (3ull<<40)+3)
+		runtime_throw("xchg64 failed");
+}
+
+void
+runtime_check(void)
+{
+	__go_register_gc_roots(&runtime_roots);
+
+	TestAtomic64();
+}
+
 uint32
 runtime_fastrand1(void)
 {
@@ -105,19 +170,6 @@
 	return x;
 }
 
-static struct root_list runtime_roots =
-{ nil,
-  { { &syscall_Envs, sizeof syscall_Envs },
-    { &os_Args, sizeof os_Args },
-    { nil, 0 } },
-};
-
-void
-runtime_check(void)
-{
-	__go_register_gc_roots(&runtime_roots);
-}
-
 int64
 runtime_cputicks(void)
 {
@@ -139,7 +191,7 @@
 	if(current && runtime_m()->throwing > 0)
 		return 1;
 	if(traceback < 0)
-		traceback = runtime_gotraceback();
+		traceback = runtime_gotraceback(nil);
 	return traceback > 1 || (__builtin_memchr(s.str, '.', s.len) != nil && __builtin_memcmp(s.str, "runtime.", 7) != 0);
 }
 
@@ -181,3 +233,49 @@
 {
 	return runtime_tickspersecond();
 }
+
+// Called to initialize a new m (including the bootstrap m).
+// Called on the parent thread (main thread in case of bootstrap), can allocate memory.
+void
+runtime_mpreinit(M *mp)
+{
+	mp->gsignal = runtime_malg(32*1024, &mp->gsignalstack, &mp->gsignalstacksize);	// OS X wants >=8K, Linux >=2K
+}
+
+// Called to initialize a new m (including the bootstrap m).
+// Called on the new thread, can not allocate memory.
+void
+runtime_minit(void)
+{
+	M* m;
+	sigset_t sigs;
+
+	// Initialize signal handling.
+	m = runtime_m();
+	runtime_signalstack(m->gsignalstack, m->gsignalstacksize);
+	if (sigemptyset(&sigs) != 0)
+		runtime_throw("sigemptyset");
+	sigprocmask(SIG_SETMASK, &sigs, nil);
+}
+
+// Called from dropm to undo the effect of an minit.
+void
+runtime_unminit(void)
+{
+	runtime_signalstack(nil, 0);
+}
+
+
+void
+runtime_signalstack(byte *p, int32 n)
+{
+	stack_t st;
+
+	st.ss_sp = p;
+	st.ss_size = n;
+	st.ss_flags = 0;
+	if(p == nil)
+		st.ss_flags = SS_DISABLE;
+	if(sigaltstack(&st, nil) < 0)
+		*(int *)0xf1 = 0xf1;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.h gcc-4.8.1/libgo/runtime/runtime.h
--- gcc-4.8.1.orig/libgo/runtime/runtime.h	2013-01-30 22:24:40.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/runtime.h	2013-10-01 16:06:44.232554278 +0000
@@ -54,23 +54,26 @@
 typedef	uint8			byte;
 typedef	struct	Func		Func;
 typedef	struct	G		G;
-typedef	union	Lock		Lock;
+typedef	struct	Lock		Lock;
 typedef	struct	M		M;
-typedef	union	Note		Note;
+typedef	struct	P		P;
+typedef	struct	Note		Note;
+typedef	struct	String		String;
+typedef	struct	FuncVal		FuncVal;
 typedef	struct	SigTab		SigTab;
 typedef	struct	MCache		MCache;
 typedef struct	FixAlloc	FixAlloc;
 typedef	struct	Hchan		Hchan;
 typedef	struct	Timers		Timers;
 typedef	struct	Timer		Timer;
-typedef struct	GCStats		GCStats;
-typedef struct	LFNode		LFNode;
-typedef struct	ParFor		ParFor;
-typedef struct	ParForThread	ParForThread;
-typedef struct	CgoMal		CgoMal;
+typedef	struct	GCStats		GCStats;
+typedef	struct	LFNode		LFNode;
+typedef	struct	ParFor		ParFor;
+typedef	struct	ParForThread	ParForThread;
+typedef	struct	CgoMal		CgoMal;
+typedef	struct	PollDesc	PollDesc;
 
 typedef	struct	__go_open_array		Slice;
-typedef	struct	String			String;
 typedef struct	__go_interface		Iface;
 typedef	struct	__go_empty_interface	Eface;
 typedef	struct	__go_type_descriptor	Type;
@@ -80,6 +83,7 @@
 typedef struct	__go_ptr_type		PtrType;
 typedef struct	__go_func_type		FuncType;
 typedef struct	__go_map_type		MapType;
+typedef struct	__go_channel_type	ChanType;
 
 typedef struct  Traceback	Traceback;
 
@@ -109,11 +113,20 @@
 	Grunning,
 	Gsyscall,
 	Gwaiting,
-	Gmoribund,
+	Gmoribund_unused,  // currently unused, but hardcoded in gdb scripts
 	Gdead,
 };
 enum
 {
+	// P status
+	Pidle,
+	Prunning,
+	Psyscall,
+	Pgcstop,
+	Pdead,
+};
+enum
+{
 	true	= 1,
 	false	= 0,
 };
@@ -128,25 +141,33 @@
 	// Global <-> per-M stack segment cache transfer batch size.
 	StackCacheBatch = 16,
 };
-
 /*
  * structures
  */
-union	Lock
+struct	Lock
 {
-	uint32	key;	// futex-based impl
-	M*	waitm;	// linked list of waiting M's (sema-based impl)
-};
-union	Note
-{
-	uint32	key;	// futex-based impl
-	M*	waitm;	// waiting M (sema-based impl)
+	// Futex-based impl treats it as uint32 key,
+	// while sema-based impl as M* waitm.
+	// Used to be a union, but unions break precise GC.
+	uintptr	key;
+};
+struct	Note
+{
+	// Futex-based impl treats it as uint32 key,
+	// while sema-based impl as M* waitm.
+	// Used to be a union, but unions break precise GC.
+	uintptr	key;
 };
 struct String
 {
 	const byte*	str;
 	intgo		len;
 };
+struct FuncVal
+{
+	void	(*fn)(void);
+	// variable-size, fn-specific data here
+};
 struct	GCStats
 {
 	// the struct must consist of only uint64's,
@@ -169,6 +190,7 @@
 
 struct	G
 {
+	void*	closure;	// Closure value.
 	Defer*	defer;
 	Panic*	panic;
 	void*	exception;	// current exception being thrown
@@ -188,13 +210,12 @@
 	uint32	selgen;		// valid sudog pointer
 	const char*	waitreason;	// if status==Gwaiting
 	G*	schedlink;
-	bool	readyonstop;
 	bool	ispanic;
-	bool	issystem;
-	int8	raceignore; // ignore race detection events
+	bool	issystem;	// do not output in stack dump
+	bool	isbackground;	// ignore in deadlock detector
+	bool	blockingsyscall;	// hint that the next syscall will block
 	M*	m;		// for debuggers, but offset not hard-coded
 	M*	lockedm;
-	M*	idlem;
 	int32	sig;
 	int32	writenbuf;
 	byte*	writebuf;
@@ -218,34 +239,45 @@
 {
 	G*	g0;		// goroutine with scheduling stack
 	G*	gsignal;	// signal-handling G
+	byte*	gsignalstack;
+	size_t	gsignalstacksize;
+	void	(*mstartfn)(void);
 	G*	curg;		// current running goroutine
+	P*	p;		// attached P for executing Go code (nil if not executing Go code)
+	P*	nextp;
 	int32	id;
 	int32	mallocing;
 	int32	throwing;
 	int32	gcing;
 	int32	locks;
 	int32	nomemprof;
-	int32	waitnextg;
 	int32	dying;
 	int32	profilehz;
 	int32	helpgc;
+	bool	blockingsyscall;
+	bool	spinning;
 	uint32	fastrand;
 	uint64	ncgocall;	// number of cgo calls in total
-	Note	havenextg;
-	G*	nextg;
+	int32	ncgo;		// number of cgo calls currently in progress
+	CgoMal*	cgomal;
+	Note	park;
 	M*	alllink;	// on allm
 	M*	schedlink;
 	MCache	*mcache;
 	G*	lockedg;
-	G*	idleg;
 	Location createstack[32];	// Stack that created this thread.
+	uint32	locked;	// tracking for LockOSThread
 	M*	nextwaitm;	// next M waiting for lock
 	uintptr	waitsema;	// semaphore for parking on locks
 	uint32	waitsemacount;
 	uint32	waitsemalock;
 	GCStats	gcstats;
 	bool	racecall;
+	bool	needextram;
+	bool	dropextram;	// for gccgo: drop after call is done.
 	void*	racepc;
+	void	(*waitunlockf)(Lock*);
+	void*	waitlock;
 
 	uintptr	settype_buf[1024];
 	uintptr	settype_bufsize;
@@ -253,6 +285,38 @@
 	uintptr	end[];
 };
 
+struct P
+{
+	Lock;
+
+	uint32	status;  // one of Pidle/Prunning/...
+	P*	link;
+	uint32	tick;   // incremented on every scheduler or system call
+	M*	m;	// back-link to associated M (nil if idle)
+	MCache*	mcache;
+
+	// Queue of runnable goroutines.
+	G**	runq;
+	int32	runqhead;
+	int32	runqtail;
+	int32	runqsize;
+
+	// Available G's (status == Gdead)
+	G*	gfree;
+	int32	gfreecnt;
+
+	byte	pad[64];
+};
+
+// The m->locked word holds a single bit saying whether
+// external calls to LockOSThread are in effect, and then a counter
+// of the internal nesting depth of lockOSThread / unlockOSThread.
+enum
+{
+	LockExternal = 1,
+	LockInternal = 2,
+};
+
 struct	SigTab
 {
 	int32	sig;
@@ -265,6 +329,8 @@
 	SigThrow = 1<<2,	// if signal.Notify doesn't take it, exit loudly
 	SigPanic = 1<<3,	// if the signal is from the kernel, panic
 	SigDefault = 1<<4,	// if the signal isn't explicitly requested, don't monitor it
+	SigHandling = 1<<5,	// our signal handler is registered
+	SigIgnored = 1<<6,	// the signal was ignored before we registered for it
 };
 
 #ifndef NSIG
@@ -313,7 +379,7 @@
 	// a well-behaved function and not block.
 	int64	when;
 	int64	period;
-	void	(*f)(int64, Eface);
+	FuncVal	*fv;
 	Eface	arg;
 };
 
@@ -337,6 +403,7 @@
 	bool wait;			// if true, wait while all threads finish processing,
 					// otherwise parfor may return while other threads are still working
 	ParForThread *thr;		// array of thread descriptors
+	uint32 pad;			// to align ParForThread.pos for 64-bit atomic operations
 	// stats
 	uint64 nsteal;
 	uint64 nstealcnt;
@@ -350,7 +417,7 @@
 struct CgoMal
 {
 	CgoMal	*next;
-	byte	*alloc;
+	void	*alloc;
 };
 
 /*
@@ -363,6 +430,19 @@
 #define USED(v)		((void) v)
 #define	ROUND(x, n)	(((x)+(n)-1)&~((n)-1)) /* all-caps to mark as macro: it evaluates n twice */
 
+byte*	runtime_startup_random_data;
+uint32	runtime_startup_random_data_len;
+void	runtime_get_random_data(byte**, int32*);
+
+enum {
+	// hashinit wants this many random bytes
+	HashRandomBytes = 32
+};
+void	runtime_hashinit(void);
+
+void	runtime_traceback();
+void	runtime_tracebackothers(G*);
+
 /*
  * external data
  */
@@ -370,21 +450,28 @@
 extern	G*	runtime_allg;
 extern	G*	runtime_lastg;
 extern	M*	runtime_allm;
+extern	P**	runtime_allp;
 extern	int32	runtime_gomaxprocs;
+extern	uint32	runtime_needextram;
 extern	bool	runtime_singleproc;
 extern	uint32	runtime_panicking;
-extern	int32	runtime_gcwaiting;		// gc is waiting to run
+extern	uint32	runtime_gcwaiting;		// gc is waiting to run
+extern	int8*	runtime_goos;
 extern	int32	runtime_ncpu;
+extern 	void	(*runtime_sysargs)(int32, uint8**);
 
 /*
  * common functions and data
  */
+#define runtime_strcmp(s1, s2) __builtin_strcmp((s1), (s2))
+#define runtime_strstr(s1, s2) __builtin_strstr((s1), (s2))
 intgo	runtime_findnull(const byte*);
 void	runtime_dump(byte*, int32);
 
 /*
  * very low level c-called
  */
+struct __go_func_type;
 void	runtime_args(int32, byte**);
 void	runtime_osinit();
 void	runtime_goargs(void);
@@ -394,42 +481,100 @@
 void	runtime_panicstring(const char*) __attribute__ ((noreturn));
 void	runtime_prints(const char*);
 void	runtime_printf(const char*, ...);
+#define runtime_mcmp(a, b, s) __builtin_memcmp((a), (b), (s))
+#define runtime_memmove(a, b, s) __builtin_memmove((a), (b), (s))
 void*	runtime_mal(uintptr);
+String	runtime_gostring(const byte*);
+String	runtime_gostringnocopy(const byte*);
 void	runtime_schedinit(void);
 void	runtime_initsig(void);
 void	runtime_sigenable(uint32 sig);
-int32	runtime_gotraceback(void);
+void	runtime_sigdisable(uint32 sig);
+int32	runtime_gotraceback(bool *crash);
 void	runtime_goroutineheader(G*);
 void	runtime_goroutinetrailer(G*);
-void	runtime_traceback();
-void	runtime_tracebackothers(G*);
 void	runtime_printtrace(Location*, int32, bool);
-String	runtime_gostring(const byte*);
-String	runtime_gostringnocopy(const byte*);
+#define runtime_open(p, f, m) open((p), (f), (m))
+#define runtime_read(d, v, n) read((d), (v), (n))
+#define runtime_write(d, v, n) write((d), (v), (n))
+#define runtime_close(d) close(d)
+#define runtime_cas(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
+#define runtime_cas64(pval, pold, new) __atomic_compare_exchange_n (pval, pold, new, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
+#define runtime_casp(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
+// Don't confuse with XADD x86 instruction,
+// this one is actually 'addx', that is, add-and-fetch.
+#define runtime_xadd(p, v) __sync_add_and_fetch (p, v)
+#define runtime_xadd64(p, v) __sync_add_and_fetch (p, v)
+#define runtime_xchg(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_xchg64(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicload(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicstore(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicstore64(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicload64(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicloadp(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicstorep(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+void	runtime_ready(G*);
+const byte*	runtime_getenv(const char*);
+int32	runtime_atoi(const byte*);
 void*	runtime_mstart(void*);
 G*	runtime_malg(int32, byte**, size_t*);
+void	runtime_mpreinit(M*);
 void	runtime_minit(void);
+void	runtime_unminit(void);
+void	runtime_needm(void);
+void	runtime_dropm(void);
+void	runtime_signalstack(byte*, int32);
+MCache*	runtime_allocmcache(void);
+void	runtime_freemcache(MCache*);
 void	runtime_mallocinit(void);
+void	runtime_mprofinit(void);
+#define runtime_malloc(s) __go_alloc(s)
+#define runtime_free(p) __go_free(p)
+bool	runtime_addfinalizer(void*, FuncVal *fn, const struct __go_func_type *);
+#define runtime_getcallersp(p) __builtin_frame_address(1)
+int32	runtime_mcount(void);
+int32	runtime_gcount(void);
+uint32	runtime_fastrand1(void);
+
+void runtime_setmg(M*, G*);
+void runtime_newextram(void);
+#define runtime_exit(s) exit(s)
+#define runtime_breakpoint() __builtin_trap()
 void	runtime_gosched(void);
 void	runtime_park(void(*)(Lock*), Lock*, const char*);
 void	runtime_tsleep(int64, const char*);
 M*	runtime_newm(void);
 void	runtime_goexit(void);
 void	runtime_entersyscall(void) __asm__ (GOSYM_PREFIX "syscall.Entersyscall");
+void	runtime_entersyscallblock(void);
 void	runtime_exitsyscall(void) __asm__ (GOSYM_PREFIX "syscall.Exitsyscall");
+G*	__go_go(void (*pfn)(void*), void*);
 void	siginit(void);
 bool	__go_sigsend(int32 sig);
 int32	runtime_callers(int32, Location*, int32);
 int64	runtime_nanotime(void);
+void	runtime_dopanic(int32) __attribute__ ((noreturn));
+void	runtime_startpanic(void);
+void	runtime_sigprof();
+void	runtime_resetcpuprofiler(int32);
+void	runtime_setcpuprofilerate(void(*)(uintptr*, int32), int32);
+void	runtime_usleep(uint32);
 int64	runtime_cputicks(void);
 int64	runtime_tickspersecond(void);
 void	runtime_blockevent(int64, int32);
 extern int64 runtime_blockprofilerate;
+void	runtime_addtimer(Timer*);
+bool	runtime_deltimer(Timer*);
+G*	runtime_netpoll(bool);
+void	runtime_netpollinit(void);
+int32	runtime_netpollopen(int32, PollDesc*);
+int32   runtime_netpollclose(int32);
+void	runtime_netpollready(G**, PollDesc*, int32);
+void	runtime_crash(void);
 
 void	runtime_stoptheworld(void);
 void	runtime_starttheworld(void);
 extern uint32 runtime_worldsema;
-G*	__go_go(void (*pfn)(void*), void*);
 
 /*
  * mutual exclusion locks.  in the uncontended case,
@@ -527,6 +672,7 @@
  * runtime go-called
  */
 void	runtime_printbool(_Bool);
+void	runtime_printbyte(int8);
 void	runtime_printfloat(double);
 void	runtime_printint(int64);
 void	runtime_printiface(Iface);
@@ -538,53 +684,10 @@
 void	runtime_printhex(uint64);
 void	runtime_printslice(Slice);
 void	runtime_printcomplex(__complex double);
-
-struct __go_func_type;
-void reflect_call(const struct __go_func_type *, const void *, _Bool, _Bool,
+void reflect_call(const struct __go_func_type *, FuncVal *, _Bool, _Bool,
 		  void **, void **)
   __asm__ (GOSYM_PREFIX "reflect.call");
-
-/* Functions.  */
 #define runtime_panic __go_panic
-#define runtime_write(d, v, n) write((d), (v), (n))
-#define runtime_malloc(s) __go_alloc(s)
-#define runtime_free(p) __go_free(p)
-#define runtime_strcmp(s1, s2) __builtin_strcmp((s1), (s2))
-#define runtime_mcmp(a, b, s) __builtin_memcmp((a), (b), (s))
-#define runtime_memmove(a, b, s) __builtin_memmove((a), (b), (s))
-#define runtime_exit(s) exit(s)
-MCache*	runtime_allocmcache(void);
-void	free(void *v);
-#define runtime_cas(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
-#define runtime_casp(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
-#define runtime_cas64(pval, pold, new) __atomic_compare_exchange_n (pval, pold, new, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
-#define runtime_xadd(p, v) __sync_add_and_fetch (p, v)
-#define runtime_xadd64(p, v) __sync_add_and_fetch (p, v)
-#define runtime_xchg(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicload(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstore(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicloadp(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstorep(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicload64(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstore64(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define PREFETCH(p) __builtin_prefetch(p)
-
-struct __go_func_type;
-bool	runtime_addfinalizer(void*, void(*fn)(void*), const struct __go_func_type *);
-#define runtime_getcallersp(p) __builtin_frame_address(1)
-int32	runtime_mcount(void);
-int32	runtime_gcount(void);
-void	runtime_dopanic(int32) __attribute__ ((noreturn));
-void	runtime_startpanic(void);
-void	runtime_ready(G*);
-const byte*	runtime_getenv(const char*);
-int32	runtime_atoi(const byte*);
-uint32	runtime_fastrand1(void);
-
-void	runtime_sigprof();
-void	runtime_resetcpuprofiler(int32);
-void	runtime_setcpuprofilerate(void(*)(uintptr*, int32), int32);
-void	runtime_usleep(uint32);
 
 /*
  * runtime c-called (but written in Go)
@@ -599,14 +702,13 @@
 /*
  * wrapped for go users
  */
-#define ISNAN(f) __builtin_isnan(f)
 void	runtime_semacquire(uint32 volatile *);
 void	runtime_semrelease(uint32 volatile *);
 int32	runtime_gomaxprocsfunc(int32 n);
 void	runtime_procyield(uint32);
 void	runtime_osyield(void);
-void	runtime_LockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.LockOSThread");
-void	runtime_UnlockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.UnlockOSThread");
+void	runtime_lockOSThread(void);
+void	runtime_unlockOSThread(void);
 
 bool	runtime_showframe(String, bool);
 
@@ -622,12 +724,13 @@
 // This is a no-op on other systems.
 void	runtime_setprof(bool);
 
+#define ISNAN(f) __builtin_isnan(f)
+
 enum
 {
-	UseSpanType = 1,
+	UseSpanType = 0,
 };
 
-void	runtime_setsig(int32, bool, bool);
 #define runtime_setitimer setitimer
 
 void	runtime_check(void);
@@ -652,5 +755,11 @@
 extern struct backtrace_state *__go_get_backtrace_state(void);
 extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
 extern byte* runtime_progname();
+extern void runtime_main(void*);
 
 int32 getproccount(void);
+
+#define PREFETCH(p) __builtin_prefetch(p)
+
+void	__go_set_closure(void*);
+void*	__go_get_closure(void);
diff -Naur gcc-4.8.1.orig/libgo/runtime/sema.goc gcc-4.8.1/libgo/runtime/sema.goc
--- gcc-4.8.1.orig/libgo/runtime/sema.goc	2012-10-23 04:31:11.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/sema.goc	2013-10-01 16:06:44.232554278 +0000
@@ -44,12 +44,12 @@
 // Prime to not correlate with any user patterns.
 #define SEMTABLESZ 251
 
-union semtable
+struct semtable
 {
 	SemaRoot;
-	uint8 pad[CacheLineSize];
+	uint8 pad[CacheLineSize-sizeof(SemaRoot)];
 };
-static union semtable semtable[SEMTABLESZ];
+static struct semtable semtable[SEMTABLESZ];
 
 static SemaRoot*
 semroot(uint32 volatile *addr)
diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.c gcc-4.8.1/libgo/runtime/signal_unix.c
--- gcc-4.8.1.orig/libgo/runtime/signal_unix.c	2012-03-02 16:38:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/signal_unix.c	2013-10-01 16:06:44.232554278 +0000
@@ -8,6 +8,7 @@
 
 #include "runtime.h"
 #include "defs.h"
+#include "signal_unix.h"
 
 extern SigTab runtime_sigtab[];
 
@@ -22,7 +23,21 @@
 		t = &runtime_sigtab[i];
 		if((t->flags == 0) || (t->flags & SigDefault))
 			continue;
-		runtime_setsig(i, false, true);
+
+		// For some signals, we respect an inherited SIG_IGN handler
+		// rather than insist on installing our own default handler.
+		// Even these signals can be fetched using the os/signal package.
+		switch(t->sig) {
+		case SIGHUP:
+		case SIGINT:
+			if(runtime_getsig(i) == GO_SIG_IGN) {
+				t->flags = SigNotify | SigIgnored;
+				continue;
+			}
+		}
+
+		t->flags |= SigHandling;
+		runtime_setsig(i, runtime_sighandler, true);
 	}
 }
 
@@ -32,16 +47,49 @@
 	int32 i;
 	SigTab *t;
 
+	t = nil;
 	for(i = 0; runtime_sigtab[i].sig != -1; i++) {
-		// ~0 means all signals.
-		if(~sig == 0 || runtime_sigtab[i].sig == (int32)sig) {
+		if(runtime_sigtab[i].sig == (int32)sig) {
 			t = &runtime_sigtab[i];
-			if(t->flags & SigDefault) {
-				runtime_setsig(i, false, true);
-				t->flags &= ~SigDefault;  // make this idempotent
-			}
+			break;
+		}
+	}
+
+	if(t == nil)
+		return;
+
+	if((t->flags & SigNotify) && !(t->flags & SigHandling)) {
+		t->flags |= SigHandling;
+		if(runtime_getsig(i) == GO_SIG_IGN)
+			t->flags |= SigIgnored;
+		runtime_setsig(i, runtime_sighandler, true);
+	}
+}
+
+void
+runtime_sigdisable(uint32 sig)
+{
+	int32 i;
+	SigTab *t;
+
+	t = nil;
+	for(i = 0; runtime_sigtab[i].sig != -1; i++) {
+		if(runtime_sigtab[i].sig == (int32)sig) {
+			t = &runtime_sigtab[i];
+			break;
 		}
 	}
+
+	if(t == nil)
+		return;
+
+	if((t->flags & SigNotify) && (t->flags & SigHandling)) {
+		t->flags &= ~SigHandling;
+		if(t->flags & SigIgnored)
+			runtime_setsig(i, GO_SIG_IGN, true);
+		else
+			runtime_setsig(i, GO_SIG_DFL, true);
+	}
 }
 
 void
@@ -62,3 +110,44 @@
 	}
 	runtime_m()->profilehz = hz;
 }
+
+void
+os_sigpipe(void)
+{
+	int32 i;
+
+	for(i = 0; runtime_sigtab[i].sig != -1; i++)
+		if(runtime_sigtab[i].sig == SIGPIPE)
+			break;
+	runtime_setsig(i, GO_SIG_DFL, false);
+	runtime_raise(SIGPIPE);
+}
+
+void
+runtime_crash(void)
+{
+	int32 i;
+
+#ifdef GOOS_darwin
+	// OS X core dumps are linear dumps of the mapped memory,
+	// from the first virtual byte to the last, with zeros in the gaps.
+	// Because of the way we arrange the address space on 64-bit systems,
+	// this means the OS X core file will be >128 GB and even on a zippy
+	// workstation can take OS X well over an hour to write (uninterruptible).
+	// Save users from making that mistake.
+	if(sizeof(void*) == 8)
+		return;
+#endif
+
+	for(i = 0; runtime_sigtab[i].sig != -1; i++)
+		if(runtime_sigtab[i].sig == SIGABRT)
+			break;
+	runtime_setsig(i, GO_SIG_DFL, false);
+	runtime_raise(SIGABRT);
+}
+
+void
+runtime_raise(int32 sig)
+{
+	raise(sig);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.h gcc-4.8.1/libgo/runtime/signal_unix.h
--- gcc-4.8.1.orig/libgo/runtime/signal_unix.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/signal_unix.h	2013-10-01 16:06:44.232554278 +0000
@@ -0,0 +1,22 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include <signal.h>
+
+#define GO_SIG_DFL ((void*)SIG_DFL)
+#define GO_SIG_IGN ((void*)SIG_IGN)
+
+#ifdef SA_SIGINFO
+typedef siginfo_t Siginfo;
+#else
+typedef void *Siginfo;
+#endif
+
+typedef void GoSighandler(int32, Siginfo*, void*, G*);
+void	runtime_setsig(int32, GoSighandler*, bool);
+GoSighandler* runtime_getsig(int32);
+
+void	runtime_sighandler(int32 sig, Siginfo *info, void *context, G *gp);
+void	runtime_raise(int32);
+
diff -Naur gcc-4.8.1.orig/libgo/runtime/sigqueue.goc gcc-4.8.1/libgo/runtime/sigqueue.goc
--- gcc-4.8.1.orig/libgo/runtime/sigqueue.goc	2013-01-29 20:52:43.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/sigqueue.goc	2013-10-01 16:06:44.232554278 +0000
@@ -107,7 +107,7 @@
 				new = HASWAITER;
 			if(runtime_cas(&sig.state, old, new)) {
 				if (new == HASWAITER) {
-					runtime_entersyscall();
+					runtime_entersyscallblock();
 					runtime_notesleep(&sig);
 					runtime_exitsyscall();
 					runtime_noteclear(&sig);
@@ -135,8 +135,6 @@
 
 // Must only be called from a single goroutine at a time.
 func signal_enable(s uint32) {
-	int32 i;
-
 	if(!sig.inuse) {
 		// The first call to signal_enable is for us
 		// to use for initialization.  It does not pass
@@ -146,16 +144,16 @@
 		return;
 	}
 	
-	if(~s == 0) {
-		// Special case: want everything.
-		for(i=0; (size_t)i<nelem(sig.wanted); i++)
-			sig.wanted[i] = ~(uint32)0;
-		runtime_sigenable(s);
-		return;
-	}
-
 	if(s >= nelem(sig.wanted)*32)
 		return;
 	sig.wanted[s/32] |= 1U<<(s&31);
 	runtime_sigenable(s);
 }
+
+// Must only be called from a single goroutine at a time.
+func signal_disable(s uint32) {
+	if(s >= nelem(sig.wanted)*32)
+		return;
+	sig.wanted[s/32] &= ~(1U<<(s&31));
+	runtime_sigdisable(s);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/string.goc gcc-4.8.1/libgo/runtime/string.goc
--- gcc-4.8.1.orig/libgo/runtime/string.goc	2013-01-30 22:24:40.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/string.goc	2013-10-01 16:06:44.232554278 +0000
@@ -7,6 +7,7 @@
 #include "arch.h"
 #include "malloc.h"
 #include "go-string.h"
+#include "race.h"
 
 #define charntorune(pv, str, len) __go_get_rune(str, len, pv)
 
diff -Naur gcc-4.8.1.orig/libgo/runtime/thread.c gcc-4.8.1/libgo/runtime/thread.c
--- gcc-4.8.1.orig/libgo/runtime/thread.c	2012-03-06 17:57:23.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/thread.c	2013-10-01 16:06:44.232554278 +0000
@@ -133,27 +133,6 @@
 
 #endif
 
-// Called to initialize a new m (including the bootstrap m).
-void
-runtime_minit(void)
-{
-	byte* stack;
-	size_t stacksize;
-	stack_t ss;
-	sigset_t sigs;
-
-	// Initialize signal handling.
-	runtime_m()->gsignal = runtime_malg(32*1024, &stack, &stacksize);	// OS X wants >=8K, Linux >=2K
-	ss.ss_sp = stack;
-	ss.ss_flags = 0;
-	ss.ss_size = stacksize;
-	if(sigaltstack(&ss, nil) < 0)
-		*(int *)0xf1 = 0xf1;
-	if (sigemptyset(&sigs) != 0)
-		runtime_throw("sigemptyset");
-	sigprocmask(SIG_SETMASK, &sigs, nil);
-}
-
 uintptr
 runtime_memlimit(void)
 {
diff -Naur gcc-4.8.1.orig/libgo/runtime/time.goc gcc-4.8.1/libgo/runtime/time.goc
--- gcc-4.8.1.orig/libgo/runtime/time.goc	2013-01-30 01:37:13.000000000 +0000
+++ gcc-4.8.1/libgo/runtime/time.goc	2013-10-01 16:06:44.232554278 +0000
@@ -14,7 +14,6 @@
 
 static Timers timers;
 static void addtimer(Timer*);
-static bool deltimer(Timer*);
 
 // Package time APIs.
 // Godoc uses the comments in package time, not these.
@@ -30,15 +29,13 @@
 func startTimer(t *Timer) {
 	if(raceenabled)
 		runtime_racerelease(t);
-	runtime_lock(&timers);
-	addtimer(t);
-	runtime_unlock(&timers);
+	runtime_addtimer(t);
 }
 
 // stopTimer removes t from the timer heap if it is there.
 // It returns true if t was removed, false if t wasn't even there.
 func stopTimer(t *Timer) (stopped bool) {
-	stopped = deltimer(t);
+	stopped = runtime_deltimer(t);
 }
 
 // C runtime.
@@ -56,6 +53,8 @@
 	runtime_ready(e.__object);
 }
 
+static FuncVal readyv = {(void(*)(void))ready};
+
 // Put the current goroutine to sleep for ns nanoseconds.
 void
 runtime_tsleep(int64 ns, const char *reason)
@@ -70,13 +69,21 @@
 
 	t.when = runtime_nanotime() + ns;
 	t.period = 0;
-	t.f = ready;
+	t.fv = &readyv;
 	t.arg.__object = g;
 	runtime_lock(&timers);
 	addtimer(&t);
 	runtime_park(runtime_unlock, &timers, reason);
 }
 
+void
+runtime_addtimer(Timer *t)
+{
+	runtime_lock(&timers);
+	addtimer(t);
+	runtime_unlock(&timers);
+}
+
 // Add a timer to the heap and start or kick the timer proc
 // if the new timer is earlier than any of the others.
 static void
@@ -119,8 +126,8 @@
 // Delete timer t from the heap.
 // Do not need to update the timerproc:
 // if it wakes up early, no big deal.
-static bool
-deltimer(Timer *t)
+bool
+runtime_deltimer(Timer *t)
 {
 	int32 i;
 
@@ -184,11 +191,12 @@
 				siftdown(0);
 				t->i = -1;  // mark as removed
 			}
-			f = t->f;
+			f = (void*)t->fv->fn;
 			arg = t->arg;
 			runtime_unlock(&timers);
 			if(raceenabled)
 				runtime_raceacquire(t);
+			__go_set_closure(t->fv);
 			f(now, arg);
 			runtime_lock(&timers);
 		}
@@ -202,7 +210,7 @@
 		timers.sleeping = true;
 		runtime_noteclear(&timers.waitnote);
 		runtime_unlock(&timers);
-		runtime_entersyscall();
+		runtime_entersyscallblock();
 		runtime_notetsleep(&timers.waitnote, delta);
 		runtime_exitsyscall();
 	}
diff -Naur gcc-4.8.1.orig/libgomp/testsuite/libgomp.c/sections-2.c gcc-4.8.1/libgomp/testsuite/libgomp.c/sections-2.c
--- gcc-4.8.1.orig/libgomp/testsuite/libgomp.c/sections-2.c	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libgomp/testsuite/libgomp.c/sections-2.c	2013-10-01 16:06:44.232554278 +0000
@@ -0,0 +1,29 @@
+/* { dg-do run } */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+__attribute__((noinline, noclone, noreturn))
+void
+foo ()
+{
+  sleep (4);
+  exit (0);
+}
+
+int
+main ()
+{
+  #pragma omp parallel
+  {
+    #pragma omp sections
+      {
+        foo ();
+      #pragma omp section
+        foo ();
+      #pragma omp section
+        foo ();
+      }
+  }
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libitm/acinclude.m4 gcc-4.8.1/libitm/acinclude.m4
--- gcc-4.8.1.orig/libitm/acinclude.m4	2012-10-31 04:46:20.000000000 +0000
+++ gcc-4.8.1/libitm/acinclude.m4	2013-10-01 16:06:44.232554278 +0000
@@ -121,6 +121,17 @@
     AC_DEFINE(HAVE_AS_RTM, 1, [Define to 1 if the assembler supports RTM.])
   fi
   ;;
+s390*)
+  AC_CACHE_CHECK([if the assembler supports HTM], libitm_cv_as_htm, [
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -march=zEC12"
+    AC_TRY_COMPILE([], [asm("tbegin 0,0; tend");],
+		   [libitm_cv_as_htm=yes], [libitm_cv_as_htm=no])
+    CFLAGS="$save_CFLAGS"])
+  if test x$libitm_cv_as_htm = xyes; then
+    AC_DEFINE(HAVE_AS_HTM, 1, [Define to 1 if the assembler supports HTM.])
+  fi
+  ;;
 esac])
 
 sinclude(../libtool.m4)
diff -Naur gcc-4.8.1.orig/libitm/config/s390/sjlj.S gcc-4.8.1/libitm/config/s390/sjlj.S
--- gcc-4.8.1.orig/libitm/config/s390/sjlj.S	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libitm/config/s390/sjlj.S	2013-10-01 16:06:44.232554278 +0000
@@ -0,0 +1,108 @@
+/* Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+   This file is part of the GNU Transactional Memory Library (libitm).
+
+   Libitm is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   Libitm is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+#include "asmcfi.h"
+
+.text
+	.align 4
+.globl	_ITM_beginTransaction
+	.type _ITM_beginTransaction, @function
+
+	/* _ITM_beginTransaction (int props); props -> r2 */
+_ITM_beginTransaction:
+	cfi_startproc
+#ifdef __s390x__
+	lgr	%r3,%r15	/* backup stack pointer */
+	aghi	%r15,-304	/* jump buffer (144) + reg save area (160) */
+	cfi_adjust_cfa_offset(304)
+	stmg	%r6,%r14,160(%r15)
+	stg	%r3,72+160(%r15) /* store the old stack pointer */
+	std	%f8,80+160(%r15)
+	std	%f9,88+160(%r15)
+	std	%f10,96+160(%r15)
+	std	%f11,104+160(%r15)
+	std	%f12,112+160(%r15)
+	std	%f13,120+160(%r15)
+	std	%f14,128+160(%r15)
+	std	%f15,136+160(%r15)
+	la	%r3,160(%r15)	/* second argument to GTM_begin_transaction */
+	brasl	%r14,GTM_begin_transaction
+	lg	%r1,64+160(%r15)
+	aghi	%r15,304
+	cfi_adjust_cfa_offset(-304)
+	br	%r1
+#else
+	lr	%r3,%r15	/* backup stack pointer */
+	ahi	%r15,-152	/* jump buffer (56) + reg save area (96) */
+	cfi_adjust_cfa_offset(152)
+	stm	%r6,%r14,96(%r15)
+	st	%r3,36+96(%r15)	/* store the old stack pointer */
+	std	%f4,40+96(%r15)
+	std	%f6,48+96(%r15)
+	la	%r3,96(%r15)	/* second argument to GTM_begin_transaction */
+	/* begin_transaction (uint32_t prop, const gtm_jmpbuf *jb) */
+	brasl	%r14,GTM_begin_transaction /* requires mzarch */
+	l	%r1,32+96(%r15)
+	ahi	%r15,152
+	cfi_adjust_cfa_offset(-152)
+	br	%r1
+#endif
+	cfi_endproc
+
+	.size _ITM_beginTransaction, .-_ITM_beginTransaction
+
+	.align 4
+.globl	GTM_longjmp
+	.type GTM_longjmp, @function
+	.hidden GTM_longjmp
+
+	/* uint32_t GTM_longjmp (uint32_t, const gtm_jmpbuf *, uint32_t) */
+GTM_longjmp:
+	/* First parameter becomes the return value of
+	   _ITM_beginTransaction (r2).
+	   Third parameter is ignored for now.  */
+	cfi_startproc
+#ifdef __s390x__
+	ld	%f8,80(%r3)
+	ld	%f9,88(%r3)
+	ld	%f10,96(%r3)
+	ld	%f11,104(%r3)
+	ld	%f12,112(%r3)
+	ld	%f13,120(%r3)
+	ld	%f14,128(%r3)
+	ld	%f15,136(%r3)
+	lmg	%r6,%r15,0(%r3)
+	br	%r14
+#else
+	ld	%f4,40(%r3)
+	ld	%f6,48(%r3)
+	lm	%r6,%r15,0(%r3)
+	br	%r14
+#endif
+	cfi_endproc
+
+	.size GTM_longjmp, .-GTM_longjmp
+
+	.section .note.GNU-stack, "", @progbits
diff -Naur gcc-4.8.1.orig/libitm/config/s390/target.h gcc-4.8.1/libitm/config/s390/target.h
--- gcc-4.8.1.orig/libitm/config/s390/target.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libitm/config/s390/target.h	2013-10-01 16:06:44.236554278 +0000
@@ -0,0 +1,127 @@
+/* Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel <krebbel@linux.vnet.ibm.com>.
+
+   This file is part of the GNU Transactional Memory Library (libitm).
+
+   Libitm is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   Libitm is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_SYS_AUXV_H
+#include <sys/auxv.h>
+#endif
+
+namespace GTM HIDDEN {
+
+#define HW_CACHELINE_SIZE 256
+
+typedef struct gtm_jmpbuf
+{
+  /* We save registers r6-r14.  */
+  long int __gregs[9];
+  /* r15 is stored into cfa field.  It needs to be named that way
+     since tls.h is accessing the field by name.  Be aware that this
+     is not actually what we consider the CFA on s390 (since there is
+     a fix offset between sp and CFA).  It is merely the saved stack
+     pointer.  */
+  void *cfa;
+
+#ifdef __s390x__
+  /* We save fpu registers f8 - f15.  */
+  long __fpregs[8];
+#else
+  /* We save fpu registers f4 and f6.  */
+  long __fpregs[4];
+#endif
+} gtm_jmpbuf;
+
+static inline void
+cpu_relax (void)
+{
+  __asm volatile ("" : : : "memory");
+}
+
+
+// Use HTM if it is supported by the system.
+// See gtm_thread::begin_transaction for how these functions are used.
+#if defined (__linux__) \
+    && defined (HAVE_AS_HTM) \
+    && defined (HAVE_GETAUXVAL) \
+    && defined (HWCAP_S390_TE)
+
+#include <htmintrin.h>
+
+/* Number of retries for transient failures.  */
+#define _HTM_ITM_RETRIES 10
+#define USE_HTM_FASTPATH
+
+static inline bool
+htm_available ()
+{
+  return (getauxval (AT_HWCAP) & HWCAP_S390_TE) ? true : false;
+}
+
+static inline uint32_t
+htm_init ()
+{
+  return htm_available () ? _HTM_ITM_RETRIES : 0;
+}
+
+static inline uint32_t
+htm_begin ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  return __builtin_tbegin_nofloat (NULL);
+}
+
+static inline bool
+htm_begin_success (uint32_t begin_ret)
+{
+  return begin_ret == _HTM_TBEGIN_STARTED;
+}
+
+static inline void
+htm_commit ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  __builtin_tend ();
+}
+
+static inline void
+htm_abort ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE);
+}
+
+static inline bool
+htm_abort_should_retry (uint32_t begin_ret)
+{
+  return begin_ret == _HTM_TBEGIN_TRANSIENT;
+}
+
+static inline bool
+htm_transaction_active ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  return __builtin_tx_nesting_depth() != 0;
+}
+
+#endif
+
+} // namespace GTM
diff -Naur gcc-4.8.1.orig/libitm/config.h.in gcc-4.8.1/libitm/config.h.in
--- gcc-4.8.1.orig/libitm/config.h.in	2013-05-31 09:09:26.000000000 +0000
+++ gcc-4.8.1/libitm/config.h.in	2013-10-01 16:06:44.236554278 +0000
@@ -12,6 +12,9 @@
 /* Define if your assembler supports .cfi_* directives. */
 #undef HAVE_AS_CFI_PSEUDO_OP
 
+/* Define to 1 if the assembler supports HTM. */
+#undef HAVE_AS_HTM
+
 /* Define to 1 if the assembler supports RTM. */
 #undef HAVE_AS_RTM
 
@@ -36,6 +39,9 @@
 /* Define to 1 if target has a weakref that works like the ELF one. */
 #undef HAVE_ELF_STYLE_WEAKREF
 
+/* Define to 1 if you have the `getauxval' function. */
+#undef HAVE_GETAUXVAL
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -81,6 +87,9 @@
 /* Define to 1 if the target supports __sync_*_compare_and_swap */
 #undef HAVE_SYNC_BUILTINS
 
+/* Define to 1 if you have the <sys/auxv.h> header file. */
+#undef HAVE_SYS_AUXV_H
+
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
diff -Naur gcc-4.8.1.orig/libitm/configure gcc-4.8.1/libitm/configure
--- gcc-4.8.1.orig/libitm/configure	2013-05-31 09:09:26.000000000 +0000
+++ gcc-4.8.1/libitm/configure	2013-10-01 16:06:44.236554278 +0000
@@ -15349,7 +15349,7 @@
 
 fi
 
-for ac_header in unistd.h semaphore.h sys/time.h malloc.h
+for ac_header in unistd.h semaphore.h sys/time.h sys/auxv.h malloc.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -16184,7 +16184,7 @@
     conftest$ac_exeext conftest.$ac_ext
 
 # Check for functions needed.
-for ac_func in strtoull memalign posix_memalign
+for ac_func in strtoull memalign posix_memalign getauxval
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -17362,7 +17362,44 @@
 
   fi
   ;;
+s390*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the assembler supports HTM" >&5
+$as_echo_n "checking if the assembler supports HTM... " >&6; }
+if test "${libitm_cv_as_htm+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -march=zEC12"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+asm("tbegin 0,0; tend");
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libitm_cv_as_htm=yes
+else
+  libitm_cv_as_htm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libitm_cv_as_htm" >&5
+$as_echo "$libitm_cv_as_htm" >&6; }
+  if test x$libitm_cv_as_htm = xyes; then
+
+$as_echo "#define HAVE_AS_HTM 1" >>confdefs.h
+
+  fi
+  ;;
 esac
+LIBITM_CHECK_AS_HTM
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether weak refs work like ELF" >&5
diff -Naur gcc-4.8.1.orig/libitm/configure.ac gcc-4.8.1/libitm/configure.ac
--- gcc-4.8.1.orig/libitm/configure.ac	2013-02-03 17:46:11.000000000 +0000
+++ gcc-4.8.1/libitm/configure.ac	2013-10-01 16:06:44.236554278 +0000
@@ -160,7 +160,7 @@
 AC_STDC_HEADERS
 AC_HEADER_TIME
 ACX_HEADER_STRING
-AC_CHECK_HEADERS(unistd.h semaphore.h sys/time.h malloc.h)
+AC_CHECK_HEADERS(unistd.h semaphore.h sys/time.h sys/auxv.h malloc.h)
 
 GCC_HEADER_STDINT(gstdint.h)
 
@@ -193,7 +193,7 @@
    [AC_MSG_ERROR([Pthreads are required to build libitm])])])
 
 # Check for functions needed.
-AC_CHECK_FUNCS(strtoull memalign posix_memalign)
+AC_CHECK_FUNCS(strtoull memalign posix_memalign getauxval)
 
 # Check for broken semaphore implementation on darwin.
 # sem_init returns: sem_init error: Function not implemented.
@@ -245,6 +245,7 @@
 LIBITM_CHECK_64BIT_SYNC_BUILTINS
 LIBITM_CHECK_AS_AVX
 LIBITM_CHECK_AS_RTM
+LIBITM_CHECK_AS_HTM
 
 GCC_CHECK_ELF_STYLE_WEAKREF
 
diff -Naur gcc-4.8.1.orig/libitm/configure.tgt gcc-4.8.1/libitm/configure.tgt
--- gcc-4.8.1.orig/libitm/configure.tgt	2013-02-03 17:46:11.000000000 +0000
+++ gcc-4.8.1/libitm/configure.tgt	2013-10-01 16:06:44.236554278 +0000
@@ -105,6 +105,10 @@
 	XCFLAGS="${XCFLAGS} -mrtm"
 	ARCH=x86
 	;;
+  s390|s390x)
+	XCFLAGS="${XCFLAGS} -mzarch -mhtm"
+	ARCH=s390
+	;;
 
   *)
 	ARCH="${target_cpu}"
diff -Naur gcc-4.8.1.orig/libitm/libitm.info gcc-4.8.1/libitm/libitm.info
--- gcc-4.8.1.orig/libitm/libitm.info	2013-05-31 10:12:52.000000000 +0000
+++ gcc-4.8.1/libitm/libitm.info	1970-01-01 00:00:00.000000000 +0000
@@ -1,1307 +0,0 @@
-This is libitm.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libitm/libitm.texi.
-
-Copyright (C) 2011-2013 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
-copy of the license is included in the section entitled "GNU Free
-Documentation License".
-
-INFO-DIR-SECTION GNU Libraries
-START-INFO-DIR-ENTRY
-* libitm: (libitm).                    GNU Transactional Memory Library
-END-INFO-DIR-ENTRY
-
-   This manual documents the GNU Transactional Memory Library.
-
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
-copy of the license is included in the section entitled "GNU Free
-Documentation License".
-
-
-File: libitm.info,  Node: Top,  Next: Enabling libitm,  Up: (dir)
-
-Introduction
-************
-
-This manual documents the usage and internals of libitm, the GNU
-Transactional Memory Library. It provides transaction support for
-accesses to a process' memory, enabling easy-to-use synchronization of
-accesses to shared memory by several threads.
-
-* Menu:
-
-* Enabling libitm::            How to enable libitm for your applications.
-* C/C++ Language Constructs for TM::
-                               Notes on the language-level interface supported
-                               by gcc.
-* The libitm ABI::             Notes on the external ABI provided by libitm.
-* Internals::                  Notes on libitm's internal synchronization.
-* GNU Free Documentation License::
-                               How you can copy and share this manual.
-* Index::                      Index of this documentation.
-
-
-File: libitm.info,  Node: Enabling libitm,  Next: C/C++ Language Constructs for TM,  Prev: Top,  Up: Top
-
-1 Enabling libitm
-*****************
-
-To activate support for TM in C/C++, the compile-time flag `-fgnu-tm'
-must be specified. This enables TM language-level constructs such as
-transaction statements (e.g., `__transaction_atomic', *note C/C++
-Language Constructs for TM:: for details).
-
-
-File: libitm.info,  Node: C/C++ Language Constructs for TM,  Next: The libitm ABI,  Prev: Enabling libitm,  Up: Top
-
-2 C/C++ Language Constructs for TM
-**********************************
-
-Transactions are supported in C++ and C in the form of transaction
-statements, transaction expressions, and function transactions. In the
-following example, both `a' and `b' will be read and the difference
-will be written to `c', all atomically and isolated from other
-transactions:
-
-     __transaction_atomic { c = a - b; }
-
-   Therefore, another thread can use the following code to concurrently
-update `b' without ever causing `c' to hold a negative value (and
-without having to use other synchronization constructs such as locks or
-C++11 atomics):
-
-     __transaction_atomic { if (a > b) b++; }
-
-   GCC follows the Draft Specification of Transactional Language
-Constructs for C++ (v1.1)
-(https://sites.google.com/site/tmforcplusplus/) in its implementation
-of transactions.
-
-   The precise semantics of transactions are defined in terms of the
-C++11/C11 memory model (see the specification). Roughly, transactions
-provide synchronization guarantees that are similar to what would be
-guaranteed when using a single global lock as a guard for all
-transactions. Note that like other synchronization constructs in C/C++,
-transactions rely on a data-race-free program (e.g., a nontransactional
-write that is concurrent with a transactional read to the same memory
-location is a data race).
-
-
-File: libitm.info,  Node: The libitm ABI,  Next: Internals,  Prev: C/C++ Language Constructs for TM,  Up: Top
-
-3 The libitm ABI
-****************
-
-The ABI provided by libitm is basically equal to the Linux variant of
-Intel's current TM ABI specification document (Revision 1.1, May 6
-2009) but with the differences listed in this chapter. It would be good
-if these changes would eventually be merged into a future version of
-this specification. To ease look-up, the following subsections mirror
-the structure of this specification.
-
-3.1 [No changes] Objectives
-===========================
-
-3.2 [No changes] Non-objectives
-===============================
-
-3.3 Library design principles
-=============================
-
-3.3.1 [No changes] Calling conventions
---------------------------------------
-
-3.3.2 [No changes] TM library algorithms
-----------------------------------------
-
-3.3.3 [No changes] Optimized load and store routines
-----------------------------------------------------
-
-3.3.4 [No changes] Aligned load and store routines
---------------------------------------------------
-
-3.3.5 Data logging functions
-----------------------------
-
-The memory locations accessed with transactional loads and stores and
-the memory locations whose values are logged must not overlap. This
-required separation only extends to the scope of the execution of one
-transaction including all the executions of all nested transactions.
-
-   The compiler must be consistent (within the scope of a single
-transaction) about which memory locations are shared and which are not
-shared with other threads (i.e., data must be accessed either
-transactionally or nontransactionally). Otherwise, non-write-through TM
-algorithms would not work.
-
-   For memory locations on the stack, this requirement extends to only
-the lifetime of the stack frame that the memory location belongs to (or
-the lifetime of the transaction, whichever is shorter).  Thus, memory
-that is reused for several stack frames could be target of both data
-logging and transactional accesses; however, this is harmless because
-these stack frames' lifetimes will end before the transaction finishes.
-
-3.3.6 [No changes] Scatter/gather calls
----------------------------------------
-
-3.3.7 [No changes] Serial and irrevocable mode
-----------------------------------------------
-
-3.3.8 [No changes] Transaction descriptor
------------------------------------------
-
-3.3.9 Store allocation
-----------------------
-
-There is no `getTransaction' function.
-
-3.3.10 [No changes] Naming conventions
---------------------------------------
-
-3.3.11 Function pointer encryption
-----------------------------------
-
-Currently, this is not implemented.
-
-3.4 Types and macros list
-=========================
-
-`_ITM_codeProperties' has changed, *note Starting a transaction:
-txn-code-properties.  `_ITM_srcLocation' is not used.
-
-3.5 Function list
-=================
-
-3.5.1 Initialization and finalization functions
------------------------------------------------
-
-These functions are not part of the ABI.
-
-3.5.2 [No changes] Version checking
------------------------------------
-
-3.5.3 [No changes] Error reporting
-----------------------------------
-
-3.5.4 [No changes] inTransaction call
--------------------------------------
-
-3.5.5 State manipulation functions
-----------------------------------
-
-There is no `getTransaction' function. Transaction identifiers for
-nested transactions will be ordered but not necessarily sequential
-(i.e., for a nested transaction's identifier IN and its enclosing
-transaction's identifier IE, it is guaranteed that IN >= IE).
-
-3.5.6 [No changes] Source locations
------------------------------------
-
-3.5.7 Starting a transaction
-----------------------------
-
-3.5.7.1 Transaction code properties
-...................................
-
-The bit `hasNoXMMUpdate' is instead called `hasNoVectorUpdate'.  Iff it
-is set, vector register save/restore is not necessary for any target
-machine.
-
-   The `hasNoFloatUpdate' bit (`0x0010') is new. Iff it is set, floating
-point register save/restore is not necessary for any target machine.
-
-   `undoLogCode' is not supported and a fatal runtime error will be
-raised if this bit is set. It is not properly defined in the ABI why
-barriers other than undo logging are not present; Are they not
-necessary (e.g., a transaction operating purely on thread-local data)
-or have they been omitted by the compiler because it thinks that some
-kind of global synchronization (e.g., serial mode) might perform
-better? The specification suggests that the latter might be the case,
-but the former seems to be more useful.
-
-   The `readOnly' bit (`0x4000') is new. *TODO* Lexical or dynamic
-scope?
-
-   `hasNoRetry' is not supported. If this bit is not set, but
-`hasNoAbort' is set, the library can assume that transaction rollback
-will not be requested.
-
-   It would be useful if the absence of externally-triggered rollbacks
-would be reported for the dynamic scope as well, not just for the
-lexical scope (`hasNoAbort'). Without this, a library cannot exploit
-this together with flat nesting.
-
-   `exceptionBlock' is not supported because exception blocks are not
-used.
-
-3.5.7.2 [No changes] Windows exception state
-............................................
-
-3.5.7.3 [No changes] Other machine state
-........................................
-
-3.5.7.4 [No changes] Results from beginTransaction
-..................................................
-
-3.5.8 Aborting a transaction
-----------------------------
-
-`_ITM_rollbackTransaction' is not supported. `_ITM_abortTransaction' is
-supported but the abort reasons `exceptionBlockAbort', `TMConflict',
-and `userRetry' are not supported. There are no exception blocks in
-general, so the related cases also do not have to be considered. To
-encode `__transaction_cancel [[outer]]', compilers must set the new
-`outerAbort' bit (`0x10') additionally to the `userAbort' bit in the
-abort reason.
-
-3.5.9 Committing a transaction
-------------------------------
-
-The exception handling (EH) scheme is different. The Intel ABI requires
-the `_ITM_tryCommitTransaction' function that will return even when the
-commit failed and will have to be matched with calls to either
-`_ITM_abortTransaction' or `_ITM_commitTransaction'. In contrast, gcc
-relies on transactional wrappers for the functions of the Exception
-Handling ABI and on one additional commit function (shown below). This
-allows the TM to keep track of EH internally and thus it does not have
-to embed the cleanup of EH state into the existing EH code in the
-program.  `_ITM_tryCommitTransaction' is not supported.
-`_ITM_commitTransactionToId' is also not supported because the
-propagation of thrown exceptions will not bypass commits of nested
-transactions.
-
-     void _ITM_commitTransactionEH(void *exc_ptr) ITM_REGPARM;
-     void *_ITM_cxa_allocate_exception (size_t);
-     void _ITM_cxa_throw (void *obj, void *tinfo, void *dest);
-     void *_ITM_cxa_begin_catch (void *exc_ptr);
-     void _ITM_cxa_end_catch (void);
-
-   `_ITM_commitTransactionEH' must be called to commit a transaction if
-an exception could be in flight at this position in the code. `exc_ptr'
-is the current exception or zero if there is no current exception.  The
-`_ITM_cxa...' functions are transactional wrappers for the respective
-`__cxa...' functions and must be called instead of these in
-transactional code.
-
-   To support this EH scheme, libstdc++ needs to provide one additional
-function (`_cxa_tm_cleanup'), which is used by the TM to clean up the
-exception handling state while rolling back a transaction:
-
-     void __cxa_tm_cleanup (void *unthrown_obj, void *cleanup_exc,
-                            unsigned int caught_count);
-
-   `unthrown_obj' is non-null if the program called
-`__cxa_allocate_exception' for this exception but did not yet called
-`__cxa_throw' for it. `cleanup_exc' is non-null if the program is
-currently processing a cleanup along an exception path but has not
-caught this exception yet. `caught_count' is the nesting depth of
-`__cxa_begin_catch' within the transaction (which can be counted by the
-TM using `_ITM_cxa_begin_catch' and `_ITM_cxa_end_catch');
-`__cxa_tm_cleanup' then performs rollback by essentially performing
-`__cxa_end_catch' that many times.
-
-3.5.10 Exception handling support
----------------------------------
-
-Currently, there is no support for functionality like
-`__transaction_cancel throw' as described in the C++ TM specification.
-Supporting this should be possible with the EH scheme explained
-previously because via the transactional wrappers for the EH ABI, the
-TM is able to observe and intercept EH.
-
-3.5.11 [No changes] Transition to serial-irrevocable mode
----------------------------------------------------------
-
-3.5.12 [No changes] Data transfer functions
--------------------------------------------
-
-3.5.13 [No changes] Transactional memory copies
------------------------------------------------
-
-3.5.14 Transactional versions of memmove
-----------------------------------------
-
-If either the source or destination memory region is to be accessed
-nontransactionally, then source and destination regions must not be
-overlapping. The respective `_ITM_memmove' functions are still
-available but a fatal runtime error will be raised if such regions do
-overlap.  To support this functionality, the ABI would have to specify
-how the intersection of the regions has to be accessed (i.e.,
-transactionally or nontransactionally).
-
-3.5.15 [No changes] Transactional versions of memset
-----------------------------------------------------
-
-3.5.16 [No changes] Logging functions
--------------------------------------
-
-3.5.17 User-registered commit and undo actions
-----------------------------------------------
-
-Commit actions will get executed in the same order in which the
-respective calls to `_ITM_addUserCommitAction' happened. Only
-`_ITM_noTransactionId' is allowed as value for the
-`resumingTransactionId' argument. Commit actions get executed after
-privatization safety has been ensured.
-
-   Undo actions will get executed in reverse order compared to the
-order in which the respective calls to `_ITM_addUserUndoAction'
-happened. The ordering of undo actions w.r.t. the roll-back of other
-actions (e.g., data transfers or memory allocations) is undefined.
-
-   `_ITM_getThreadnum' is not supported currently because its only
-purpose is to provide a thread ID that matches some assumed performance
-tuning output, but this output is not part of the ABI nor further
-defined by it.
-
-   `_ITM_dropReferences' is not supported currently because its
-semantics and the intention behind it is not entirely clear. The
-specification suggests that this function is necessary because of
-certain orderings of data transfer undos and the releasing of memory
-regions (i.e., privatization). However, this ordering is never defined,
-nor is the ordering of dropping references w.r.t. other events.
-
-3.5.18 [New] Transactional indirect calls
------------------------------------------
-
-Indirect calls (i.e., calls through a function pointer) within
-transactions should execute the transactional clone of the original
-function (i.e., a clone of the original that has been fully
-instrumented to use the TM runtime), if such a clone is available. The
-runtime provides two functions to register/deregister clone tables:
-
-     struct clone_entry
-     {
-       void *orig, *clone;
-     };
-
-     void _ITM_registerTMCloneTable (clone_entry *table, size_t entries);
-     void _ITM_deregisterTMCloneTable (clone_entry *table);
-
-   Registered tables must be writable by the TM runtime, and must be
-live throughout the life-time of the TM runtime.
-
-   *TODO* The intention was always to drop the registration functions
-entirely, and create a new ELF Phdr describing the linker-sorted table.
-Much like what currently happens for `PT_GNU_EH_FRAME'.  This work kept
-getting bogged down in how to represent the N different code generation
-variants.  We clearly needed at least two--SW and HW transactional
-clones--but there was always a suggestion of more variants for
-different TM assumptions/invariants.
-
-   The compiler can then use two TM runtime functions to perform
-indirect calls in transactions:
-     void *_ITM_getTMCloneOrIrrevocable (void *function) ITM_REGPARM;
-     void *_ITM_getTMCloneSafe (void *function) ITM_REGPARM;
-
-   If there is a registered clone for supplied function, both will
-return a pointer to the clone. If not, the first runtime function will
-attempt to switch to serial-irrevocable mode and return the original
-pointer, whereas the second will raise a fatal runtime error.
-
-3.5.19 [New] Transactional dynamic memory management
-----------------------------------------------------
-
-     void *_ITM_malloc (size_t)
-            __attribute__((__malloc__)) ITM_PURE;
-     void *_ITM_calloc (size_t, size_t)
-            __attribute__((__malloc__)) ITM_PURE;
-     void _ITM_free (void *) ITM_PURE;
-
-   These functions are essentially transactional wrappers for `malloc',
-`calloc', and `free'. Within transactions, the compiler should replace
-calls to the original functions with calls to the wrapper functions.
-
-3.6 [No changes] Future Enhancements to the ABI
-===============================================
-
-3.7 Sample code
-===============
-
-The code examples might not be correct w.r.t. the current version of
-the ABI, especially everything related to exception handling.
-
-3.8 [New] Memory model
-======================
-
-The ABI should define a memory model and the ordering that is
-guaranteed for data transfers and commit/undo actions, or at least
-refer to another memory model that needs to be preserved. Without that,
-the compiler cannot ensure the memory model specified on the level of
-the programming language (e.g., by the C++ TM specification).
-
-   For example, if a transactional load is ordered before another
-load/store, then the TM runtime must also ensure this ordering when
-accessing shared state. If not, this might break the kind of
-publication safety used in the C++ TM specification. Likewise, the TM
-runtime must ensure privatization safety.
-
-
-File: libitm.info,  Node: Internals,  Next: GNU Free Documentation License,  Prev: The libitm ABI,  Up: Top
-
-4 Internals
-***********
-
-4.1 TM methods and method groups
-================================
-
-libitm supports several ways of synchronizing transactions with each
-other.  These TM methods (or TM algorithms) are implemented in the form
-of subclasses of `abi_dispatch', which provide methods for
-transactional loads and stores as well as callbacks for rollback and
-commit.  All methods that are compatible with each other (i.e., that
-let concurrently running transactions still synchronize correctly even
-if different methods are used) belong to the same TM method group.
-Pointers to TM methods can be obtained using the factory methods
-prefixed with `dispatch_' in `libitm_i.h'. There are two special
-methods, `dispatch_serial' and `dispatch_serialirr', that are
-compatible with all methods because they run transactions completely in
-serial mode.
-
-4.1.1 TM method life cycle
---------------------------
-
-The state of TM methods does not change after construction, but they do
-alter the state of transactions that use this method. However, because
-per-transaction data gets used by several methods, `gtm_thread' is
-responsible for setting an initial state that is useful for all methods.
-After that, methods are responsible for resetting/clearing this state
-on each rollback or commit (of outermost transactions), so that the
-transaction executed next is not affected by the previous transaction.
-
-   There is also global state associated with each method group, which
-is initialized and shut down (`method_group::init()' and `fini()') when
-switching between method groups (see `retry.cc').
-
-4.1.2 Selecting the default method
-----------------------------------
-
-The default method that libitm uses for freshly started transactions
-(but not necessarily for restarted transactions) can be set via an
-environment variable (`ITM_DEFAULT_METHOD'), whose value should be
-equal to the name of one of the factory methods returning abi_dispatch
-subclasses but without the "dispatch_" prefix (e.g., "serialirr"
-instead of `GTM::dispatch_serialirr()').
-
-   Note that this environment variable is only a hint for libitm and
-might not be supported in the future.
-
-4.2 Nesting: flat vs. closed
-============================
-
-We support two different kinds of nesting of transactions. In the case
-of _flat nesting_, the nesting structure is flattened and all nested
-transactions are subsumed by the enclosing transaction. In contrast,
-with _closed nesting_, nested transactions that have not yet committed
-can be rolled back separately from the enclosing transactions; when they
-commit, they are subsumed by the enclosing transaction, and their
-effects will be finally committed when the outermost transaction
-commits.  _Open nesting_ (where nested transactions can commit
-independently of the enclosing transactions) are not supported.
-
-   Flat nesting is the default nesting mode, but closed nesting is
-supported and used when transactions contain user-controlled aborts
-(`__transaction_cancel' statements). We assume that user-controlled
-aborts are rare in typical code and used mostly in exceptional
-situations.  Thus, it makes more sense to use flat nesting by default
-to avoid the performance overhead of the additional checkpoints
-required for closed nesting. User-controlled aborts will correctly
-abort the innermost enclosing transaction, whereas the whole (i.e.,
-outermost) transaction will be restarted otherwise (e.g., when a
-transaction encounters data conflicts during optimistic execution).
-
-4.3 Locking conventions
-=======================
-
-This section documents the locking scheme and rules for all uses of
-locking in libitm. We have to support serial(-irrevocable) mode, which
-is implemented using a global lock as explained next (called the
-_serial lock_). To simplify the overall design, we use the same lock as
-catch-all locking mechanism for other infrequent tasks such as
-(de)registering clone tables or threads. Besides the serial lock, there
-are _per-method-group locks_ that are managed by specific method groups
-(i.e., groups of similar TM concurrency control algorithms), and
-lock-like constructs for quiescence-based operations such as ensuring
-privatization safety.
-
-   Thus, the actions that participate in the libitm-internal locking
-are either _active transactions_ that do not run in serial mode, _serial
-transactions_ (which (are about to) run in serial mode), and management
-tasks that do not execute within a transaction but have acquired the
-serial mode like a serial transaction would do (e.g., to be able to
-register threads with libitm). Transactions become active as soon as
-they have successfully used the serial lock to announce this globally
-(*note Serial lock implementation: serial-lock-impl.). Likewise,
-transactions become serial transactions as soon as they have acquired
-the exclusive rights provided by the serial lock (i.e., serial mode,
-which also means that there are no other concurrent active or serial
-transactions). Note that active transactions can become serial
-transactions when they enter serial mode during the runtime of the
-transaction.
-
-4.3.1 State-to-lock mapping
----------------------------
-
-Application data is protected by the serial lock if there is a serial
-transaction and no concurrently running active transaction (i.e.,
-non-serial).  Otherwise, application data is protected by the currently
-selected method group, which might use per-method-group locks or other
-mechanisms. Also note that application data that is about to be
-privatized might not be allowed to be accessed by nontransactional code
-until privatization safety has been ensured; the details of this are
-handled by the current method group.
-
-   libitm-internal state is either protected by the serial lock or
-accessed through custom concurrent code. The latter applies to the
-public/shared part of a transaction object and most typical
-method-group-specific state.
-
-   The former category (protected by the serial lock) includes:
-   * The list of active threads that have used transactions.
-
-   * The tables that map functions to their transactional clones.
-
-   * The current selection of which method group to use.
-
-   * Some method-group-specific data, or invariants of this data. For
-     example, resetting a method group to its initial state is handled
-     by switching to the same method group, so the serial lock protects
-     such resetting as well.
-   In general, such state is immutable whenever there exists an active
-(non-serial) transaction. If there is no active transaction, a serial
-transaction (or a thread that is not currently executing a transaction
-but has acquired the serial lock) is allowed to modify this state (but
-must of course be careful to not surprise the current method group's
-implementation with such modifications).
-
-4.3.2 Lock acquisition order
-----------------------------
-
-To prevent deadlocks, locks acquisition must happen in a globally
-agreed-upon order. Note that this applies to other forms of blocking
-too, but does not necessarily apply to lock acquisitions that do not
-block (e.g., trylock() calls that do not get retried forever). Note
-that serial transactions are never return back to active transactions
-until the transaction has committed.  Likewise, active transactions
-stay active until they have committed.  Per-method-group locks are
-typically also not released before commit.
-
-   Lock acquisition / blocking rules:
-   * Transactions must become active or serial before they are allowed
-     to use method-group-specific locks or blocking (i.e., the serial
-     lock must be acquired before those other locks, either in serial
-     or nonserial mode).
-
-   * Any number of threads that do not currently run active
-     transactions can block while trying to get the serial lock in
-     exclusive mode. Note that active transactions must not block when
-     trying to upgrade to serial mode unless there is no other
-     transaction that is trying that (the latter is ensured by the
-     serial lock implementation.
-
-   * Method groups must prevent deadlocks on their locks. In
-     particular, they must also be prepared for another active
-     transaction that has acquired method-group-specific locks but is
-     blocked during an attempt to upgrade to being a serial
-     transaction. See below for details.
-
-   * Serial transactions can acquire method-group-specific locks
-     because there will be no other active nor serial transaction.
-
-
-   There is no single rule for per-method-group blocking because this
-depends on when a TM method might acquire locks. If no active
-transaction can upgrade to being a serial transaction after it has
-acquired per-method-group locks (e.g., when those locks are only
-acquired during an attempt to commit), then the TM method does not need
-to consider a potential deadlock due to serial mode.
-
-   If there can be upgrades to serial mode after the acquisition of
-per-method-group locks, then TM methods need to avoid those deadlocks:
-   * When upgrading to a serial transaction, after acquiring exclusive
-     rights to the serial lock but before waiting for concurrent active
-     transactions to finish (*note Serial lock implementation:
-     serial-lock-impl. for details), we have to wake up all active
-     transactions waiting on the upgrader's per-method-group locks.
-
-   * Active transactions blocking on per-method-group locks need to
-     check the serial lock and abort if there is a pending serial
-     transaction.
-
-   * Lost wake-ups have to be prevented (e.g., by changing a bit in each
-     per-method-group lock before doing the wake-up, and only blocking
-     on this lock using a futex if this bit is not group).
-
-   *TODO*: Can reuse serial lock for gl-*? And if we can, does it make
-sense to introduce further complexity in the serial lock? For gl-*, we
-can really only avoid an abort if we do -wb and -vbv.
-
-4.3.3 Serial lock implementation
---------------------------------
-
-The serial lock implementation is optimized towards assuming that serial
-transactions are infrequent and not the common case. However, the
-performance of entering serial mode can matter because when only few
-transactions are run concurrently or if there are few threads, then it
-can be efficient to run transactions serially.
-
-   The serial lock is similar to a multi-reader-single-writer lock in
-that there can be several active transactions but only one serial
-transaction. However, we do want to avoid contention (in the lock
-implementation) between active transactions, so we split up the reader
-side of the lock into per-transaction flags that are true iff the
-transaction is active. The exclusive writer side remains a shared
-single flag, which is acquired using a CAS, for example.  On the
-fast-path, the serial lock then works similar to Dekker's algorithm but
-with several reader flags that a serial transaction would have to check.
-A serial transaction thus requires a list of all threads with
-potentially active transactions; we can use the serial lock itself to
-protect this list (i.e., only threads that have acquired the serial
-lock can modify this list).
-
-   We want starvation-freedom for the serial lock to allow for using it
-to ensure progress for potentially starved transactions (*note Progress
-Guarantees: progress-guarantees. for details). However, this is
-currently not enforced by the implementation of the serial lock.
-
-   Here is pseudo-code for the read/write fast paths of acquiring the
-serial lock (read-to-write upgrade is similar to write_lock:
-     // read_lock:
-     tx->shared_state |= active;
-     __sync_synchronize(); // or STLD membar, or C++0x seq-cst fence
-     while (!serial_lock.exclusive)
-       if (spinning_for_too_long) goto slowpath;
-
-     // write_lock:
-     if (CAS(&serial_lock.exclusive, 0, this) != 0)
-       goto slowpath; // writer-writer contention
-     // need a membar here, but CAS already has full membar semantics
-     bool need_blocking = false;
-     for (t: all txns)
-       {
-         for (;t->shared_state & active;)
-           if (spinning_for_too_long) { need_blocking = true; break; }
-       }
-     if (need_blocking) goto slowpath;
-
-   Releasing a lock in this spin-lock version then just consists of
-resetting `tx->shared_state' to inactive or clearing
-`serial_lock.exclusive'.
-
-   However, we can't rely on a pure spinlock because we need to get the
-OS involved at some time (e.g., when there are more threads than CPUs
-to run on).  Therefore, the real implementation falls back to a
-blocking slow path, either based on pthread mutexes or Linux futexes.
-
-4.3.4 Reentrancy
-----------------
-
-libitm has to consider the following cases of reentrancy:
-   * Transaction calls unsafe code that starts a new transaction: The
-     outer transaction will become a serial transaction before
-     executing unsafe code.  Therefore, nesting within serial
-     transactions must work, even if the nested transaction is called
-     from within uninstrumented code.
-
-   * Transaction calls either a transactional wrapper or safe code,
-     which in turn starts a new transaction: It is not yet defined in
-     the specification whether this is allowed. Thus, it is undefined
-     whether libitm supports this.
-
-   * Code that starts new transactions might be called from within any
-     part of libitm: This kind of reentrancy would likely be rather
-     complex and can probably be avoided. Therefore, it is not
-     supported.
-
-
-4.3.5 Privatization safety
---------------------------
-
-Privatization safety is ensured by libitm using a quiescence-based
-approach.  Basically, a privatizing transaction waits until all
-concurrent active transactions will either have finished (are not
-active anymore) or operate on a sufficiently recent snapshot to not
-access the privatized data anymore. This happens after the privatizing
-transaction has stopped being an active transaction, so waiting for
-quiescence does not contribute to deadlocks.
-
-   In method groups that need to ensure publication safety explicitly,
-active transactions maintain a flag or timestamp in the public/shared
-part of the transaction descriptor. Before blocking, privatizers need
-to let the other transactions know that they should wake up the
-privatizer.
-
-   *TODO* Ho to implement the waiters? Should those flags be
-per-transaction or at a central place? We want to avoid one wake/wait
-call per active transactions, so we might want to use either a tree or
-combining to reduce the syscall overhead, or rather spin for a long
-amount of time instead of doing blocking. Also, it would be good if
-only the last transaction that the privatizer waits for would do the
-wake-up.
-
-4.3.6 Progress guarantees
--------------------------
-
-Transactions that do not make progress when using the current TM method
-will eventually try to execute in serial mode. Thus, the serial lock's
-progress guarantees determine the progress guarantees of the whole TM.
-Obviously, we at least need deadlock-freedom for the serial lock, but
-it would also be good to provide starvation-freedom (informally, all
-threads will finish executing a transaction eventually iff they get
-enough cycles).
-
-   However, the scheduling of transactions (e.g., thread scheduling by
-the OS) also affects the handling of progress guarantees by the TM.
-First, the TM can only guarantee deadlock-freedom if threads do not get
-stopped. Likewise, low-priority threads can starve if they do not get
-scheduled when other high-priority threads get those cycles instead.
-
-   If all threads get scheduled eventually, correct lock
-implementations will provide deadlock-freedom, but might not provide
-starvation-freedom. We can either enforce the latter in the TM's lock
-implementation, or assume that the scheduling is sufficiently random to
-yield a probabilistic guarantee that no thread will starve (because
-eventually, a transaction will encounter a scheduling that will allow
-it to run). This can indeed work well in practice but is not
-necessarily guaranteed to work (e.g., simple spin locks can be pretty
-efficient).
-
-   Because enforcing stronger progress guarantees in the TM has a
-higher runtime overhead, we focus on deadlock-freedom right now and
-assume that the threads will get scheduled eventually by the OS (but
-don't consider threads with different priorities). We should support
-starvation-freedom for serial transactions in the future. Everything
-beyond that is highly related to proper contention management across
-all of the TM (including with TM method to choose), and is future work.
-
-   *TODO* Handling thread priorities: We want to avoid priority
-inversion but it's unclear how often that actually matters in practice.
-Workloads that have threads with different priorities will likely also
-require lower latency or higher throughput for high-priority threads.
-Therefore, it probably makes not that much sense (except for eventual
-progress guarantees) to use priority inheritance until the TM has
-priority-aware contention management.
-
-
-File: libitm.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Internals,  Up: Top
-
-GNU Free Documentation License
-******************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: libitm.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* FDL, GNU Free Documentation License:   GNU Free Documentation License.
-                                                                (line 6)
-* Introduction:                          Top.                   (line 6)
-
-
-
-Tag Table:
-Node: Top1173
-Node: Enabling libitm2076
-Node: C/C++ Language Constructs for TM2470
-Node: The libitm ABI3950
-Ref: txn-code-properties7743
-Node: Internals18018
-Ref: serial-lock-impl28043
-Ref: progress-guarantees32793
-Node: GNU Free Documentation License35067
-Node: Index60208
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libjava/classpath/configure gcc-4.8.1/libjava/classpath/configure
--- gcc-4.8.1.orig/libjava/classpath/configure	2012-12-19 17:03:15.000000000 +0000
+++ gcc-4.8.1/libjava/classpath/configure	2013-10-01 16:06:44.240554278 +0000
@@ -18779,8 +18779,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -18806,7 +18807,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -18820,6 +18820,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -18876,8 +18933,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -18903,7 +18961,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -18917,6 +18974,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19751,8 +19865,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19778,7 +19893,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19792,6 +19906,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19848,8 +20019,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19875,7 +20047,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19889,6 +20060,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19945,8 +20173,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19972,7 +20201,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19986,6 +20214,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20042,8 +20327,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20069,7 +20355,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20083,13 +20368,70 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+  done
+IFS=$as_save_IFS
 
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
   else
      PKG_CONFIG_MIN_VERSION=0.9.0
      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
@@ -20245,8 +20587,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20272,7 +20615,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20286,6 +20628,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20344,8 +20743,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20371,7 +20771,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20385,6 +20784,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20453,8 +20909,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20480,7 +20937,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20494,6 +20950,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20553,8 +21066,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20580,7 +21094,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20594,6 +21107,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20653,8 +21223,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20680,7 +21251,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20694,6 +21264,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20756,8 +21383,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20783,7 +21411,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20797,22 +21424,79 @@
 fi
 
 
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-2.0 >= 2.8" >&5
-$as_echo_n "checking for gdk-2.0 >= 2.8... " >&6; }
-
-        if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-2.0 >= 2.8" >&5
+$as_echo_n "checking for gdk-2.0 >= 2.8... " >&6; }
+
+        if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
             succeeded=yes
 
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_CFLAGS" >&5
@@ -20863,8 +21547,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20890,7 +21575,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20904,6 +21588,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21242,8 +21983,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21269,7 +22011,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21283,6 +22024,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21340,8 +22138,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21367,7 +22166,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21381,6 +22179,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21439,8 +22294,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21466,7 +22322,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21480,6 +22335,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21538,8 +22450,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21565,7 +22478,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21579,6 +22491,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21637,8 +22606,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21664,7 +22634,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21678,6 +22647,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21736,8 +22762,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21763,7 +22790,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21777,6 +22803,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21835,8 +22918,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21862,7 +22946,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21876,6 +22959,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21937,8 +23077,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21964,7 +23105,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21978,6 +23118,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -22034,8 +23231,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22061,7 +23259,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22075,6 +23272,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -24046,7 +25300,7 @@
 JAVA_TEST=Object.java
 CLASS_TEST=Object.class
 cat << \EOF > $JAVA_TEST
-/* #line 24049 "configure" */
+/* #line 25303 "configure" */
 package java.lang;
 
 public class Object
@@ -24139,7 +25393,7 @@
 if uudecode$EXEEXT Test.uue; then
         ac_cv_prog_uudecode_base64=yes
 else
-        echo "configure: 24142: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+        echo "configure: 25396: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
         echo "configure: failed file was:" >&5
         cat Test.uue >&5
         ac_cv_prog_uudecode_base64=no
@@ -24167,7 +25421,7 @@
 CLASS_TEST=Test.class
 TEST=Test
 cat << \EOF > $JAVA_TEST
-/* [#]line 24170 "configure" */
+/* [#]line 25424 "configure" */
 public class Test {
 public static void main (String args[]) {
         System.exit (0);
@@ -24375,7 +25629,7 @@
   JAVA_TEST=Test.java
   CLASS_TEST=Test.class
   cat << \EOF > $JAVA_TEST
-  /* #line 24378 "configure" */
+  /* #line 25632 "configure" */
   public class Test
   {
     public static void main(String args)
diff -Naur gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4 gcc-4.8.1/libjava/classpath/m4/pkg.m4
--- gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4	2005-09-23 17:31:48.000000000 +0000
+++ gcc-4.8.1/libjava/classpath/m4/pkg.m4	2013-10-01 16:06:44.240554278 +0000
@@ -6,7 +6,7 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libjava/configure gcc-4.8.1/libjava/configure
--- gcc-4.8.1.orig/libjava/configure	2012-12-12 13:40:15.000000000 +0000
+++ gcc-4.8.1/libjava/configure	2013-10-01 16:06:44.244554278 +0000
@@ -3206,7 +3206,7 @@
     -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
     -I\$(top_srcdir)/../libstdc++-v3/libsupc++"
   LIBSTDCXX_RAW_CXX_LDFLAGS="\
-    -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
+    \$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
 
 
 
@@ -22806,8 +22806,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22833,7 +22834,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22847,6 +22847,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -22906,8 +22963,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22933,7 +22991,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22947,6 +23004,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -23006,8 +23120,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -23033,7 +23148,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -23047,6 +23161,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libjava/pkg.m4 gcc-4.8.1/libjava/pkg.m4
--- gcc-4.8.1.orig/libjava/pkg.m4	2004-01-30 22:01:11.000000000 +0000
+++ gcc-4.8.1/libjava/pkg.m4	2013-10-01 16:06:44.244554278 +0000
@@ -6,7 +6,7 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libobjc/exception.c gcc-4.8.1/libobjc/exception.c
--- gcc-4.8.1.orig/libobjc/exception.c	2013-02-03 11:16:21.000000000 +0000
+++ gcc-4.8.1/libobjc/exception.c	2013-10-01 16:06:44.244554278 +0000
@@ -202,7 +202,7 @@
 #ifdef SJLJ_EXCEPTIONS
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_sj0
 #define __builtin_eh_return_data_regno(x) x
-#elif defined(__SEH__)
+#elif defined(__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_imp
 #else
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_v0
@@ -227,7 +227,7 @@
 
 #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
 
-#ifdef __SEH__
+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 static
 #endif
 _Unwind_Reason_Code
@@ -524,7 +524,7 @@
   abort ();
 }
 
-#ifdef __SEH__
+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 EXCEPTION_DISPOSITION
 __gnu_objc_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame,
 			     PCONTEXT ms_orig_context,
@@ -533,4 +533,4 @@
   return _GCC_specific_handler (ms_exc, this_frame, ms_orig_context,
 				ms_disp, __gnu_objc_personality_imp);
 }
-#endif /* SEH */
+#endif
diff -Naur gcc-4.8.1.orig/libquadmath/libquadmath.info gcc-4.8.1/libquadmath/libquadmath.info
--- gcc-4.8.1.orig/libquadmath/libquadmath.info	2013-05-31 10:01:34.000000000 +0000
+++ gcc-4.8.1/libquadmath/libquadmath.info	1970-01-01 00:00:00.000000000 +0000
@@ -1,924 +0,0 @@
-This is libquadmath.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libquadmath/libquadmath.texi.
-
-Copyright (C) 2010-2013 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.
-
-INFO-DIR-SECTION GNU Libraries
-START-INFO-DIR-ENTRY
-* libquadmath: (libquadmath).                  GCC Quad-Precision Math Library
-END-INFO-DIR-ENTRY
-
-   This manual documents the GCC Quad-Precision Math Library API.
-
-   Published by the Free Software Foundation 51 Franklin Street, Fifth
-Floor Boston, MA 02110-1301 USA
-
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.
-
-
-File: libquadmath.info,  Node: Top,  Next: Typedef and constants,  Up: (dir)
-
-Introduction
-************
-
-This manual documents the usage of libquadmath, the GCC Quad-Precision
-Math Library Application Programming Interface (API).
-
-* Menu:
-
-* Typedef and constants::      Defined data types and constants
-* Math Library Routines::      The Libquadmath math runtime application
-                               programming interface.
-* I/O Library Routines::       The Libquadmath I/O runtime application
-                               programming interface.
-* GNU Free Documentation License::
-                               How you can copy and share this manual.
-* Reporting Bugs::             How to report bugs in GCC Libquadmath.
-
-
-File: libquadmath.info,  Node: Typedef and constants,  Next: Math Library Routines,  Prev: Top,  Up: Top
-
-1 Typedef and constants
-***********************
-
-The following data type has been defined via `typedef'.
-
-`__complex128': `__float128'-based complex number
-
-   The following macros are defined, which give the numeric limits of
-the `__float128' data type.
-
-`FLT128_MAX': largest finite number
-
-`FLT128_MIN': smallest positive number with full precision
-
-`FLT128_EPSILON': difference between 1 and the next larger
-     representable number
-
-`FLT128_DENORM_MIN': smallest positive denormalized number
-
-`FLT128_MANT_DIG': number of digits in the mantissa (bit precision)
-
-`FLT128_MIN_EXP': maximal negative exponent
-
-`FLT128_MAX_EXP': maximal positive exponent
-
-`FLT128_DIG': number of decimal digits in the mantissa
-
-`FLT128_MIN_10_EXP': maximal negative decimal exponent
-
-`FLT128_MAX_10_EXP': maximal positive decimal exponent
-
-   The following mathematical constants of type `__float128' are
-defined.
-
-`M_Eq': the constant e (Euler's number)
-
-`M_LOG2Eq': binary logarithm of 2
-
-`M_LOG10Eq': common, decimal logarithm of 2
-
-`M_LN2q': natural logarithm of 2
-
-`M_LN10q': natural logarithm of 10
-
-`M_PIq': pi
-
-`M_PI_2q': pi divided by two
-
-`M_PI_4q': pi divided by four
-
-`M_1_PIq': one over pi
-
-`M_2_PIq': one over two pi
-
-`M_2_SQRTPIq': two over square root of pi
-
-`M_SQRT2q': square root of 2
-
-`M_SQRT1_2q': one over square root of 2
-
-
-File: libquadmath.info,  Node: Math Library Routines,  Next: I/O Library Routines,  Prev: Typedef and constants,  Up: Top
-
-2 Math Library Routines
-***********************
-
-The following mathematical functions are available:
-
-`acosq': arc cosine function
-
-`acoshq': inverse hyperbolic cosine function
-
-`asinq': arc sine function
-
-`asinhq': inverse hyperbolic sine function
-
-`atanq': arc tangent function
-
-`atanhq': inverse hyperbolic tangent function
-
-`atan2q': arc tangent function
-
-`cbrtq': cube root function
-
-`ceilq': ceiling value function
-
-`copysignq': copy sign of a number
-
-`coshq': hyperbolic cosine function
-
-`cosq': cosine function
-
-`erfq': error function
-
-`erfcq': complementary error function
-
-`expq': exponential function
-
-`expm1q': exponential minus 1 function
-
-`fabsq': absolute value function
-
-`fdimq': positive difference function
-
-`finiteq': check finiteness of value
-
-`floorq': floor value function
-
-`fmaq': fused multiply and add
-
-`fmaxq': determine maximum of two values
-
-`fminq': determine minimum of two values
-
-`fmodq': remainder value function
-
-`frexpq': extract mantissa and exponent
-
-`hypotq': Eucledian distance function
-
-`ilogbq': get exponent of the value
-
-`isinfq': check for infinity
-
-`isnanq': check for not a number
-
-`j0q': Bessel function of the first kind, first order
-
-`j1q': Bessel function of the first kind, second order
-
-`jnq': Bessel function of the first kind, N-th order
-
-`ldexpq': load exponent of the value
-
-`lgammaq': logarithmic gamma function
-
-`llrintq': round to nearest integer value
-
-`llroundq': round to nearest integer value away from zero
-
-`logq': natural logarithm function
-
-`log10q': base 10 logarithm function
-
-`log1pq': compute natural logarithm of the value plus one
-
-`log2q': base 2 logarithm function
-
-`lrintq': round to nearest integer value
-
-`lroundq': round to nearest integer value away from zero
-
-`modfq': decompose the floating-point number
-
-`nanq': return quiet NaN
-
-`nearbyintq': round to nearest integer
-
-`nextafterq': next representable floating-point number
-
-`powq': power function
-
-`remainderq': remainder function
-
-`remquoq': remainder and part of quotient
-
-`rintq': round-to-nearest integral value
-
-`roundq': round-to-nearest integral value, return `__float128'
-
-`scalblnq': compute exponent using `FLT_RADIX'
-
-`scalbnq': compute exponent using `FLT_RADIX'
-
-`signbitq': return sign bit
-
-`sincosq': calculate sine and cosine simulataneously
-
-`sinhq': hyperbolic sine function
-
-`sinq': sine function
-
-`sqrtq': square root function
-
-`tanq': tangent function
-
-`tanhq': hyperbolic tangent function
-
-`tgammaq': true gamma function
-
-`truncq': round to integer, towards zero
-
-`y0q': Bessel function of the second kind, first order
-
-`y1q': Bessel function of the second kind, second order
-
-`ynq': Bessel function of the second kind, N-th order
-
-`cabsq' complex absolute value function
-
-`cargq': calculate the argument
-
-`cimagq' imaginary part of complex number
-
-`crealq': real part of complex number
-
-`cacoshq': complex arc hyperbolic cosine function
-
-`cacosq': complex arc cosine function
-
-`casinhq': complex arc hyperbolic sine function
-
-`casinq': complex arc sine function
-
-`catanhq': complex arc hyperbolic tangent function
-
-`catanq': complex arc tangent function
-
-`ccosq' complex cosine function:
-
-`ccoshq': complex hyperbolic cosine function
-
-`cexpq': complex exponential function
-
-`cexpiq': computes the exponential function of "i" times a
-     real value
-
-`clogq': complex natural logarithm
-
-`clog10q': complex base 10 logarithm
-
-`conjq': complex conjugate function
-
-`cpowq': complex power function
-
-`cprojq': project into Riemann Sphere
-
-`csinq': complex sine function
-
-`csinhq': complex hyperbolic sine function
-
-`csqrtq': complex square root
-
-`ctanq': complex tangent function
-
-`ctanhq': complex hyperbolic tangent function
-
-
-File: libquadmath.info,  Node: I/O Library Routines,  Next: GNU Free Documentation License,  Prev: Math Library Routines,  Up: Top
-
-3 I/O Library Routines
-**********************
-
-* Menu:
-
-* `strtoflt128':          strtoflt128,          Convert from string
-* `quadmath_snprintf':    quadmath_snprintf,    Convert to string
-
-
-File: libquadmath.info,  Node: strtoflt128,  Next: quadmath_snprintf,  Up: I/O Library Routines
-
-3.1 `strtoflt128' -- Convert from string
-========================================
-
-The function `strtoflt128' converts a string into a `__float128' number.
-
-Syntax
-     `__float128 strtoflt128 (const char *s, char **sp)'
-
-_Arguments_:
-     S          input string
-     SP         the address of the next character in the string
-
-     The argument SP contains, if not `NULL', the address of the next
-     character following the parts of the string, which have been read.
-
-Example
-          #include <quadmath.h>
-
-          int main ()
-          {
-            __float128 r;
-
-            r = strtoflt128 ("1.2345678", NULL);
-
-            return 0;
-          }
-
-
-File: libquadmath.info,  Node: quadmath_snprintf,  Prev: strtoflt128,  Up: I/O Library Routines
-
-3.2 `quadmath_snprintf' -- Convert to string
-============================================
-
-The function `quadmath_snprintf' converts a `__float128' floating-point
-number into a string.  It is a specialized alternative to `snprintf',
-where the format string is restricted to a single conversion specifier
-with `Q' modifier and conversion specifier `e', `E', `f', `F', `g',
-`G', `a' or `A', with no extra characters before or after the
-conversion specifier.  The `%m$' or `*m$' style must not be used in the
-format.
-
-Syntax
-     `int quadmath_snprintf (char *s, size_t size, const char *format,
-     ...)'
-
-_Arguments_:
-     S          output string
-     SIZE       byte size of the string, including tailing NUL
-     FORMAT     conversion specifier string
-
-Note
-     On some targets when supported by the C library hooks are installed
-     for `printf' family of functions, so that `printf ("%Qe", 1.2Q);'
-     etc. works too.
-
-Example
-          #include <quadmath.h>
-          #include <stdlib.h>
-          #include <stdio.h>
-
-          int main ()
-          {
-            __float128 r;
-            int prec = 20;
-            int width = 46;
-            char buf[128];
-
-            r = 2.0q;
-            r = sqrtq (r);
-            int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
-            if ((size_t) n < sizeof buf)
-              printf ("%s\n", buf);
-              /* Prints: +1.41421356237309504880e+00 */
-            quadmath_snprintf (buf, sizeof buf, "%Qa", r);
-            if ((size_t) n < sizeof buf)
-              printf ("%s\n", buf);
-              /* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */
-            n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
-            if (n > -1)
-              {
-                char *str = malloc (n + 1);
-                if (str)
-                  {
-                    quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
-                    printf ("%s\n", str);
-                    /* Prints: +1.41421356237309504880e+00 */
-                  }
-                free (str);
-              }
-            return 0;
-          }
-
-
-
-File: libquadmath.info,  Node: GNU Free Documentation License,  Next: Reporting Bugs,  Prev: I/O Library Routines,  Up: Top
-
-GNU Free Documentation License
-******************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: libquadmath.info,  Node: Reporting Bugs,  Prev: GNU Free Documentation License,  Up: Top
-
-4 Reporting Bugs
-****************
-
-Bugs in the GCC Quad-Precision Math Library implementation should be
-reported via `http://gcc.gnu.org/bugs.html'.
-
-
-
-Tag Table:
-Node: Top1670
-Node: Typedef and constants2404
-Node: Math Library Routines3844
-Node: I/O Library Routines7649
-Node: strtoflt1287974
-Node: quadmath_snprintf8732
-Node: GNU Free Documentation License10940
-Node: Reporting Bugs36106
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
--- gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt	2012-02-10 08:15:37.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt	2013-10-01 16:06:44.244554278 +0000
@@ -543,6 +543,7 @@
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@@GLIBCXX_LDBL_3.4
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@@GLIBCXX_LDBL_3.4
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@@GLIBCXX_LDBL_3.4
+FUNC:_ZNKSt17bad_function_call4whatEv@@GLIBCXX_3.4.18
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
 FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
@@ -732,6 +733,8 @@
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm@@GLIBCXX_3.4.18
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm@@GLIBCXX_3.4.18
 FUNC:_ZNKSt8bad_cast4whatEv@@GLIBCXX_3.4.9
 FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
 FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
@@ -1353,6 +1356,7 @@
 FUNC:_ZNSt11regex_errorD0Ev@@GLIBCXX_3.4.15
 FUNC:_ZNSt11regex_errorD1Ev@@GLIBCXX_3.4.15
 FUNC:_ZNSt11regex_errorD2Ev@@GLIBCXX_3.4.15
+FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIlSt5ratioILl1ELl1EEEENS1_IlS2_ILl1ELl1000000000EEEE@@GLIBCXX_3.4.18
 FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
 FUNC:_ZNSt12__basic_fileIcE4fileEv@@GLIBCXX_3.4.1
 FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
@@ -1635,6 +1639,11 @@
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
+FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device16_M_getval_pretr1Ev@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device7_M_finiEv@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device7_M_initERKSs@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device9_M_getvalEv@@GLIBCXX_3.4.18
 FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
 FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
 FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
@@ -2119,6 +2128,8 @@
 FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
 FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
 FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
 FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
 FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
 FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2678,6 +2689,7 @@
 FUNC:__cxa_guard_release@@CXXABI_1.3
 FUNC:__cxa_pure_virtual@@CXXABI_1.3
 FUNC:__cxa_rethrow@@CXXABI_1.3
+FUNC:__cxa_thread_atexit@@CXXABI_1.3.7
 FUNC:__cxa_throw@@CXXABI_1.3
 FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
 FUNC:__cxa_vec_cctor@@CXXABI_1.3
@@ -2724,6 +2736,7 @@
 OBJECT:0:CXXABI_1.3.4
 OBJECT:0:CXXABI_1.3.5
 OBJECT:0:CXXABI_1.3.6
+OBJECT:0:CXXABI_1.3.7
 OBJECT:0:CXXABI_LDBL_1.3
 OBJECT:0:CXXABI_TM_1
 OBJECT:0:GLIBCXX_3.4
@@ -2736,6 +2749,8 @@
 OBJECT:0:GLIBCXX_3.4.15
 OBJECT:0:GLIBCXX_3.4.16
 OBJECT:0:GLIBCXX_3.4.17
+OBJECT:0:GLIBCXX_3.4.18
+OBJECT:0:GLIBCXX_3.4.19
 OBJECT:0:GLIBCXX_3.4.2
 OBJECT:0:GLIBCXX_3.4.3
 OBJECT:0:GLIBCXX_3.4.4
@@ -3193,6 +3208,8 @@
 OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
 OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
 OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
 OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
 OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
 OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff -Naur gcc-4.8.1.orig/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver gcc-4.8.1/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
--- gcc-4.8.1.orig/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver	2013-10-01 16:06:44.248554278 +0000
@@ -63,6 +63,7 @@
     _ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw]EEEE;
 
     # thunk
+    _ZTv0_n12_NS*;
     _ZTv0_n24_NS*;
 
     # typeinfo structure
diff -Naur gcc-4.8.1.orig/libstdc++-v3/configure.host gcc-4.8.1/libstdc++-v3/configure.host
--- gcc-4.8.1.orig/libstdc++-v3/configure.host	2012-10-15 21:12:23.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/configure.host	2013-10-01 16:06:44.248554278 +0000
@@ -330,7 +330,7 @@
       mips64*)
 	abi_baseline_pair=mips64-linux-gnu
 	;;
-      powerpc64)
+      powerpc64*)
         abi_baseline_pair=powerpc64-linux-gnu
         ;;
       s390)
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am gcc-4.8.1/libstdc++-v3/include/Makefile.am
--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am	2013-05-08 19:10:42.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/Makefile.am	2013-10-01 16:06:44.252554278 +0000
@@ -172,8 +172,7 @@
 	${bits_srcdir}/valarray_array.tcc \
 	${bits_srcdir}/valarray_before.h \
 	${bits_srcdir}/valarray_after.h \
-	${bits_srcdir}/vector.tcc \
-	${bits_host_headers}
+	${bits_srcdir}/vector.tcc
 
 bits_host_headers = \
 	${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM}
@@ -535,8 +534,7 @@
 	${ext_srcdir}/vstring.tcc \
 	${ext_srcdir}/vstring_fwd.h \
 	${ext_srcdir}/vstring_util.h \
-	${ext_compat_headers} \
-	${ext_host_headers}
+	${ext_compat_headers}
 
 ext_compat_headers = \
 	${backward_srcdir}/hash_set \
@@ -787,6 +785,7 @@
 profile_headers = \
 	${profile_srcdir}/array \
 	${profile_srcdir}/base.h \
+	${profile_srcdir}/unordered_base.h \
 	${profile_srcdir}/unordered_map \
 	${profile_srcdir}/unordered_set \
 	${profile_srcdir}/vector \
@@ -1048,13 +1047,14 @@
 
 stamp-${host_alias}:
 	@-mkdir -p ${host_builddir}
+	@-mkdir -p ${host_builddir}/../ext
 	@$(STAMP) stamp-${host_alias}
 
 # Host includes static.
 # XXX Missing dependency info for {host_headers_extra}
-stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
+stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_headers_noinst} stamp-${host_alias}
 	@cd ${host_builddir} && {\
-	  $(LN_S) ${host_headers} . || true ;\
+	  $(LN_S) ${host_headers} ${bits_host_headers} . || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
@@ -1064,6 +1064,9 @@
 	  $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
 	} 2>/dev/null
+	@cd ${host_builddir}/../ext && {\
+	  $(LN_S) ${ext_host_headers} . || true ;\
+	} 2>/dev/null
 	$(STAMP) stamp-host
 
 # Host includes dynamic.
@@ -1290,9 +1293,12 @@
 	for file in ${profile_impl_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir}; done
 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
-	for file in ${host_headers} ${host_headers_extra} \
+	for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \
 	 ${thread_host_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+	$(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext
+	for file in ${ext_host_headers}; do \
+	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done
 
 # By adding these files here, automake will remove them for 'make clean'
 CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in gcc-4.8.1/libstdc++-v3/include/Makefile.in
--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in	2013-05-08 19:10:42.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/Makefile.in	2013-10-01 16:06:44.252554278 +0000
@@ -434,8 +434,7 @@
 	${bits_srcdir}/valarray_array.tcc \
 	${bits_srcdir}/valarray_before.h \
 	${bits_srcdir}/valarray_after.h \
-	${bits_srcdir}/vector.tcc \
-	${bits_host_headers}
+	${bits_srcdir}/vector.tcc
 
 bits_host_headers = \
 	${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM}
@@ -795,8 +794,7 @@
 	${ext_srcdir}/vstring.tcc \
 	${ext_srcdir}/vstring_fwd.h \
 	${ext_srcdir}/vstring_util.h \
-	${ext_compat_headers} \
-	${ext_host_headers}
+	${ext_compat_headers}
 
 ext_compat_headers = \
 	${backward_srcdir}/hash_set \
@@ -1044,6 +1042,7 @@
 profile_headers = \
 	${profile_srcdir}/array \
 	${profile_srcdir}/base.h \
+	${profile_srcdir}/unordered_base.h \
 	${profile_srcdir}/unordered_map \
 	${profile_srcdir}/unordered_set \
 	${profile_srcdir}/vector \
@@ -1461,13 +1460,14 @@
 
 stamp-${host_alias}:
 	@-mkdir -p ${host_builddir}
+	@-mkdir -p ${host_builddir}/../ext
 	@$(STAMP) stamp-${host_alias}
 
 # Host includes static.
 # XXX Missing dependency info for {host_headers_extra}
-stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
+stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_headers_noinst} stamp-${host_alias}
 	@cd ${host_builddir} && {\
-	  $(LN_S) ${host_headers} . || true ;\
+	  $(LN_S) ${host_headers} ${bits_host_headers} . || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
@@ -1477,6 +1477,9 @@
 	  $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
 	} 2>/dev/null
+	@cd ${host_builddir}/../ext && {\
+	  $(LN_S) ${ext_host_headers} . || true ;\
+	} 2>/dev/null
 	$(STAMP) stamp-host
 
 # Host includes dynamic.
@@ -1688,9 +1691,12 @@
 	for file in ${profile_impl_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir}; done
 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
-	for file in ${host_headers} ${host_headers_extra} \
+	for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \
 	 ${thread_host_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+	$(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext
+	for file in ${ext_host_headers}; do \
+	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done
 
 # To remove directories.
 clean-local:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config gcc-4.8.1/libstdc++-v3/include/bits/c++config
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/c++config	2013-10-01 16:06:44.248554278 +0000
@@ -84,6 +84,12 @@
 # define _GLIBCXX_DEPRECATED
 #endif
 
+// Macros for ABI tag attributes.
+#ifndef _GLIBCXX_ABI_TAG_CXX11
+# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))
+#endif
+
+
 #if __cplusplus
 
 // Macro for constexpr, to support in mixed 03/0x mode.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h gcc-4.8.1/libstdc++-v3/include/bits/random.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h	2013-02-04 19:28:40.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/random.h	2013-10-01 16:06:44.248554278 +0000
@@ -2178,7 +2178,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3011,7 +3011,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3428,7 +3428,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3978,7 +3978,8 @@
 
       template<typename _UniformRandomNumberGenerator>
 	result_type
-	_M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t);
+	_M_waiting(_UniformRandomNumberGenerator& __urng,
+		   _IntType __t, double __q);
 
       param_type _M_param;
 
@@ -5135,7 +5136,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc gcc-4.8.1/libstdc++-v3/include/bits/random.tcc
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc	2013-02-12 10:26:54.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/random.tcc	2013-10-01 16:06:44.248554278 +0000
@@ -1291,7 +1291,7 @@
       operator()(_UniformRandomNumberGenerator& __urng,
 		 const param_type& __p)
       {
-	typedef typename std::gamma_distribution<result_type>::param_type
+	typedef typename std::gamma_distribution<double>::param_type
 	  param_type;
 	
 	const double __y =
@@ -1648,7 +1648,8 @@
     template<typename _UniformRandomNumberGenerator>
       typename binomial_distribution<_IntType>::result_type
       binomial_distribution<_IntType>::
-      _M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t)
+      _M_waiting(_UniformRandomNumberGenerator& __urng,
+		 _IntType __t, double __q)
       {
 	_IntType __x = 0;
 	double __sum = 0.0;
@@ -1663,7 +1664,7 @@
 	    __sum += __e / (__t - __x);
 	    __x += 1;
 	  }
-	while (__sum <= _M_param._M_q);
+	while (__sum <= __q);
 
 	return __x - 1;
       }
@@ -1784,12 +1785,13 @@
 
 	    __x += __np + __naf;
 
-	    const _IntType __z = _M_waiting(__urng, __t - _IntType(__x));
+	    const _IntType __z = _M_waiting(__urng, __t - _IntType(__x),
+					    __param._M_q);
 	    __ret = _IntType(__x) + __z;
 	  }
 	else
 #endif
-	  __ret = _M_waiting(__urng, __t);
+	  __ret = _M_waiting(__urng, __t, __param._M_q);
 
 	if (__p12 != __p)
 	  __ret = __t - __ret;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algo.h gcc-4.8.1/libstdc++-v3/include/bits/stl_algo.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algo.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_algo.h	2013-10-01 16:06:44.248554278 +0000
@@ -72,10 +72,11 @@
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-  /// Swaps the median value of *__a, *__b and *__c to *__a
+  /// Swaps the median value of *__a, *__b and *__c to *__result
   template<typename _Iterator>
     void
-    __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c)
+    __move_median_to_first(_Iterator __result, _Iterator __a,
+			   _Iterator __b, _Iterator __c)
     {
       // concept requirements
       __glibcxx_function_requires(_LessThanComparableConcept<
@@ -84,23 +85,26 @@
       if (*__a < *__b)
 	{
 	  if (*__b < *__c)
-	    std::iter_swap(__a, __b);
+	    std::iter_swap(__result, __b);
 	  else if (*__a < *__c)
-	    std::iter_swap(__a, __c);
+	    std::iter_swap(__result, __c);
+	  else
+	    std::iter_swap(__result, __a);
 	}
       else if (*__a < *__c)
-	return;
+      	std::iter_swap(__result, __a);
       else if (*__b < *__c)
-	std::iter_swap(__a, __c);
+	std::iter_swap(__result, __c);
       else
-	std::iter_swap(__a, __b);
+	std::iter_swap(__result, __b);
     }
 
-  /// Swaps the median value of *__a, *__b and *__c under __comp to *__a
+  /// Swaps the median value of *__a, *__b and *__c under __comp to *__result
   template<typename _Iterator, typename _Compare>
     void
-    __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c,
-			_Compare __comp)
+    __move_median_to_first(_Iterator __result, _Iterator __a,
+			   _Iterator __b, _Iterator __c,
+			   _Compare __comp)
     {
       // concept requirements
       __glibcxx_function_requires(_BinaryFunctionConcept<_Compare, bool,
@@ -110,16 +114,18 @@
       if (__comp(*__a, *__b))
 	{
 	  if (__comp(*__b, *__c))
-	    std::iter_swap(__a, __b);
+	    std::iter_swap(__result, __b);
 	  else if (__comp(*__a, *__c))
-	    std::iter_swap(__a, __c);
+	    std::iter_swap(__result, __c);
+	  else
+	    std::iter_swap(__result, __a);
 	}
       else if (__comp(*__a, *__c))
-	return;
+	std::iter_swap(__result, __a);
       else if (__comp(*__b, *__c))
-	std::iter_swap(__a, __c);
+	std::iter_swap(__result, __c);
       else
-	std::iter_swap(__a, __b);
+	std::iter_swap(__result, __b);
     }
 
   // for_each
@@ -385,38 +391,23 @@
 	_DistanceType;
 
       _DistanceType __tailSize = __last - __first;
-      const _DistanceType __pattSize = __count;
+      _DistanceType __remainder = __count;
 
-      if (__tailSize < __pattSize)
-        return __last;
-
-      const _DistanceType __skipOffset = __pattSize - 1;
-      _RandomAccessIter __lookAhead = __first + __skipOffset;
-      __tailSize -= __pattSize;
-
-      while (1) // the main loop...
+      while (__remainder <= __tailSize) // the main loop...
 	{
-	  // __lookAhead here is always pointing to the last element of next 
-	  // possible match.
-	  while (!(*__lookAhead == __val)) // the skip loop...
-	    {
-	      if (__tailSize < __pattSize)
-		return __last;  // Failure
-	      __lookAhead += __pattSize;
-	      __tailSize -= __pattSize;
-	    }
-	  _DistanceType __remainder = __skipOffset;
-	  for (_RandomAccessIter __backTrack = __lookAhead - 1; 
-	       *__backTrack == __val; --__backTrack)
+	  __first += __remainder;
+	  __tailSize -= __remainder;
+	  // __first here is always pointing to one past the last element of
+	  // next possible match.
+	  _RandomAccessIter __backTrack = __first; 
+	  while (*--__backTrack == __val)
 	    {
 	      if (--__remainder == 0)
-		return (__lookAhead - __skipOffset); // Success
+	        return (__first - __count); // Success
 	    }
-	  if (__remainder > __tailSize)
-	    return __last; // Failure
-	  __lookAhead += __remainder;
-	  __tailSize -= __remainder;
+	  __remainder = __count + 1 - (__first - __backTrack);
 	}
+      return __last; // Failure
     }
 
   // search_n
@@ -478,38 +469,23 @@
 	_DistanceType;
 
       _DistanceType __tailSize = __last - __first;
-      const _DistanceType __pattSize = __count;
-
-      if (__tailSize < __pattSize)
-        return __last;
-
-      const _DistanceType __skipOffset = __pattSize - 1;
-      _RandomAccessIter __lookAhead = __first + __skipOffset;
-      __tailSize -= __pattSize;
+      _DistanceType __remainder = __count;
 
-      while (1) // the main loop...
+      while (__remainder <= __tailSize) // the main loop...
 	{
-	  // __lookAhead here is always pointing to the last element of next 
-	  // possible match.
-	  while (!bool(__binary_pred(*__lookAhead, __val))) // the skip loop...
-	    {
-	      if (__tailSize < __pattSize)
-		return __last;  // Failure
-	      __lookAhead += __pattSize;
-	      __tailSize -= __pattSize;
-	    }
-	  _DistanceType __remainder = __skipOffset;
-	  for (_RandomAccessIter __backTrack = __lookAhead - 1; 
-	       __binary_pred(*__backTrack, __val); --__backTrack)
+	  __first += __remainder;
+	  __tailSize -= __remainder;
+	  // __first here is always pointing to one past the last element of
+	  // next possible match.
+	  _RandomAccessIter __backTrack = __first; 
+	  while (__binary_pred(*--__backTrack, __val))
 	    {
 	      if (--__remainder == 0)
-		return (__lookAhead - __skipOffset); // Success
+	        return (__first - __count); // Success
 	    }
-	  if (__remainder > __tailSize)
-	    return __last; // Failure
-	  __lookAhead += __remainder;
-	  __tailSize -= __remainder;
+	  __remainder = __count + 1 - (__first - __backTrack);
 	}
+      return __last; // Failure
     }
 
   // find_end for forward iterators.
@@ -2303,7 +2279,7 @@
 				_RandomAccessIterator __last)
     {
       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
-      std::__move_median_first(__first, __mid, (__last - 1));
+      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
       return std::__unguarded_partition(__first + 1, __last, *__first);
     }
 
@@ -2315,7 +2291,8 @@
 				_RandomAccessIterator __last, _Compare __comp)
     {
       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
-      std::__move_median_first(__first, __mid, (__last - 1), __comp);
+      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
+				  __comp);
       return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
     }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algobase.h gcc-4.8.1/libstdc++-v3/include/bits/stl_algobase.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_algobase.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_algobase.h	2013-10-01 16:06:44.248554278 +0000
@@ -611,7 +611,7 @@
    *  loop count will be known (and therefore a candidate for compiler
    *  optimizations such as unrolling).
    *
-   *  Result may not be in the range [first,last).  Use copy instead.  Note
+   *  Result may not be in the range (first,last].  Use copy instead.  Note
    *  that the start of the output range may overlap [first,last).
   */
   template<typename _BI1, typename _BI2>
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h	2013-10-01 16:06:44.248554278 +0000
@@ -520,7 +520,7 @@
     typedef _Bvector_base<_Alloc>			 _Base;
 
 #if __cplusplus >= 201103L
-    template<typename> friend class hash;
+    template<typename> friend struct hash;
 #endif
 
   public:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h	2013-10-01 16:06:44.248554278 +0000
@@ -690,7 +690,8 @@
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
 
-      // LWG 2059.
+      // LWG 2059
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return _M_t.erase(__position); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h	2013-10-01 16:06:44.248554278 +0000
@@ -596,6 +596,7 @@
       { return _M_t.erase(__position); }
 
       // LWG 2059.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return _M_t.erase(__position); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h	2013-10-01 16:06:44.252554278 +0000
@@ -532,6 +532,7 @@
        *  not touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
@@ -583,6 +584,7 @@
        *  touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       { return _M_t.erase(__first, __last); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h	2013-10-01 16:06:44.252554278 +0000
@@ -546,6 +546,7 @@
        *  touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
@@ -597,6 +598,7 @@
        *  the element is itself a pointer, the pointed-to memory is not touched
        *  in any way.  Managing the pointer is the user's responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       { return _M_t.erase(__first, __last); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h	2013-03-14 23:28:11.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h	2013-10-01 16:06:44.252554278 +0000
@@ -336,21 +336,21 @@
               _Node_allocator;
 
     protected:
-      typedef _Rb_tree_node_base* _Base_ptr;
-      typedef const _Rb_tree_node_base* _Const_Base_ptr;
+      typedef _Rb_tree_node_base* 		_Base_ptr;
+      typedef const _Rb_tree_node_base* 	_Const_Base_ptr;
 
     public:
-      typedef _Key key_type;
-      typedef _Val value_type;
-      typedef value_type* pointer;
-      typedef const value_type* const_pointer;
-      typedef value_type& reference;
-      typedef const value_type& const_reference;
-      typedef _Rb_tree_node<_Val>* _Link_type;
-      typedef const _Rb_tree_node<_Val>* _Const_Link_type;
-      typedef size_t size_type;
-      typedef ptrdiff_t difference_type;
-      typedef _Alloc allocator_type;
+      typedef _Key 				key_type;
+      typedef _Val 				value_type;
+      typedef value_type* 			pointer;
+      typedef const value_type* 		const_pointer;
+      typedef value_type& 			reference;
+      typedef const value_type& 		const_reference;
+      typedef _Rb_tree_node<_Val>* 		_Link_type;
+      typedef const _Rb_tree_node<_Val>*	_Const_Link_type;
+      typedef size_t 				size_type;
+      typedef ptrdiff_t 			difference_type;
+      typedef _Alloc 				allocator_type;
 
       _Node_allocator&
       _M_get_Node_allocator() _GLIBCXX_NOEXCEPT
@@ -800,6 +800,7 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 130. Associative erase should return an iterator.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       {
@@ -810,6 +811,7 @@
       }
 
       // LWG 2059.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       {
@@ -833,6 +835,7 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 130. Associative erase should return an iterator.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       {
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h	2013-01-16 23:56:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h	2013-10-01 16:06:44.252554278 +0000
@@ -367,7 +367,7 @@
 						    _Pair&&>::value>::type>
 	std::pair<iterator, bool>
 	insert(_Pair&& __x)
-	{ return _M_h.insert(std::move(__x)); }
+        { return _M_h.insert(std::forward<_Pair>(__x)); }
       //@}
 
       //@{
@@ -401,7 +401,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(const_iterator __hint, _Pair&& __x)
-	{ return _M_h.insert(__hint, std::move(__x)); }
+	{ return _M_h.insert(__hint, std::forward<_Pair>(__x)); }
       //@}
 
       /**
@@ -1032,7 +1032,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(_Pair&& __x)
-	{ return _M_h.insert(std::move(__x)); }
+        { return _M_h.insert(std::forward<_Pair>(__x)); }
       //@}
 
       //@{
@@ -1064,7 +1064,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(const_iterator __hint, _Pair&& __x)
-	{ return _M_h.insert(__hint, std::move(__x)); }
+        { return _M_h.insert(__hint, std::forward<_Pair>(__x)); }
       //@}
 
       /**
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h
--- gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h	2013-10-01 16:06:44.252554278 +0000
@@ -29,6 +29,8 @@
 #ifndef _GLIBCXX_ATOMICITY_H
 #define _GLIBCXX_ATOMICITY_H	1
 
+#pragma GCC system_header
+
 #include <bits/c++config.h>
 #include <bits/gthr.h>
 #include <bits/atomic_word.h>
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/random gcc-4.8.1/libstdc++-v3/include/ext/random
--- gcc-4.8.1.orig/libstdc++-v3/include/ext/random	2013-03-04 16:24:58.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/ext/random	2013-10-01 16:06:44.252554278 +0000
@@ -791,7 +791,7 @@
       result_type
       min() const
       { result_type __res;
-	__res.fill(std::numeric_limits<_RealType>::min());
+	__res.fill(std::numeric_limits<_RealType>::lowest());
 	return __res; }
 
       /**
@@ -2848,7 +2848,7 @@
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace __gnu_cxx
 
-#include "opt_random.h"
+#include "ext/opt_random.h"
 #include "random.tcc"
 
 #endif // _GLIBCXX_USE_C99_STDINT_TR1
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/sso_string_base.h gcc-4.8.1/libstdc++-v3/include/ext/sso_string_base.h
--- gcc-4.8.1.orig/libstdc++-v3/include/ext/sso_string_base.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/ext/sso_string_base.h	2013-10-01 16:06:44.252554278 +0000
@@ -361,9 +361,9 @@
 	  _M_capacity(__rcs._M_allocated_capacity);
 	}
 
-      _M_length(__rcs._M_length());
-      __rcs._M_length(0);
+      _M_set_length(__rcs._M_length());
       __rcs._M_data(__rcs._M_local_data);
+      __rcs._M_set_length(0);
     }
 #endif
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h	2013-10-01 16:06:44.252554278 +0000
@@ -188,7 +188,7 @@
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_invalid())
 #define __profcxx_is_on() \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_on())
-#define __profcxx__is_off() \
+#define __profcxx_is_off() \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_off())
 #else
 #define __profcxx_report()
@@ -237,6 +237,8 @@
 
 // Turn on/off instrumentation for INEFFICIENT_HASH.
 #if defined(_GLIBCXX_PROFILE_INEFFICIENT_HASH)
+#define __profcxx_inefficient_hash_is_on() \
+  __gnu_profile::__is_on()
 #define __profcxx_hashtable_construct2(__x...) \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD( \
       __gnu_profile::__trace_hash_func_construct(__x))
@@ -244,8 +246,9 @@
   _GLIBCXX_PROFILE_REENTRANCE_GUARD( \
       __gnu_profile::__trace_hash_func_destruct(__x))
 #else
-#define __profcxx_hashtable_destruct2(__x...) 
-#define __profcxx_hashtable_construct2(__x...)  
+#define __profcxx_inefficient_hash_is_on() false
+#define __profcxx_hashtable_destruct2(__x...)
+#define __profcxx_hashtable_construct2(__x...)
 #endif
 
 // Turn on/off instrumentation for VECTOR_TO_LIST.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h	2013-10-01 16:06:44.252554278 +0000
@@ -0,0 +1,262 @@
+// Profiling unordered containers implementation details -*- C++ -*-
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+/** @file profile/unordered_base.h
+ *  This file is a GNU profile extension to the Standard C++ Library.
+ */
+
+#ifndef _GLIBCXX_PROFILE_UNORDERED
+#define _GLIBCXX_PROFILE_UNORDERED 1
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+namespace __profile
+{
+  template<typename _UnorderedCont,
+	   typename _Value, bool _Cache_hash_code>
+    struct _Bucket_index_helper;
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Bucket_index_helper<_UnorderedCont, _Value, true>
+    {
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, true>* __node)
+      { return __node->_M_hash_code % __uc.bucket_count(); }
+    };
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Bucket_index_helper<_UnorderedCont, _Value, false>
+    {
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, false>* __node)
+      { return __uc.bucket(__node->_M_v); }
+    };
+
+  template<typename _UnorderedCont, typename _Key, typename _Mapped>
+    struct _Bucket_index_helper<_UnorderedCont,
+				std::pair<const _Key, _Mapped>, false>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, false>* __node)
+      { return __uc.bucket(__node->_M_v.first); }
+    };
+
+  template<typename _UnorderedCont, typename _Value, bool _Cache_hash_code>
+    std::size_t
+    __get_bucket_index(const _UnorderedCont& __uc,
+		       const __detail::_Hash_node<_Value, _Cache_hash_code>* __node)
+    {
+      using __bucket_index_helper
+	= _Bucket_index_helper<_UnorderedCont, _Value, _Cache_hash_code>;
+      return __bucket_index_helper::bucket(__uc, __node);
+    }
+
+  template<typename _UnorderedCont,
+	   typename _Value, bool _Cache_hash_code>
+    struct _Equal_helper;
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Equal_helper<_UnorderedCont, _Value, true>
+    {
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, true>* __lhs,
+		const __detail::_Hash_node<_Value, true>* __rhs)
+      {
+	return __lhs->_M_hash_code == __rhs->_M_hash_code
+	  && __uc.key_eq()(__lhs->_M_v, __rhs->_M_v);
+      }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Value>
+    struct _Equal_helper<_UnorderedCont, _Value, false>
+    {
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, false>* __lhs,
+		const __detail::_Hash_node<_Value, false>* __rhs)
+      { return __uc.key_eq()(__lhs->_M_v, __rhs->_M_v); }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Key, typename _Mapped>
+    struct _Equal_helper<_UnorderedCont, std::pair<const _Key, _Mapped>, true>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, true>* __lhs,
+		const __detail::_Hash_node<_Value, true>* __rhs)
+      {
+	return __lhs->_M_hash_code == __rhs->_M_hash_code
+	  && __uc.key_eq()(__lhs->_M_v.first, __rhs->_M_v.first);
+      }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Key, typename _Mapped>
+    struct _Equal_helper<_UnorderedCont, std::pair<const _Key, _Mapped>, false>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, false>* __lhs,
+		const __detail::_Hash_node<_Value, false>* __rhs)
+      { return __uc.key_eq()(__lhs->_M_v.first, __rhs->_M_v.first); }
+    };
+
+  template<typename _UnorderedCont, typename _Value, bool _Cache_hash_code>
+    bool
+    __are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, _Cache_hash_code>* __lhs,
+		const __detail::_Hash_node<_Value, _Cache_hash_code>* __rhs)
+  {
+    using __equal_helper
+      = _Equal_helper<_UnorderedCont, _Value, _Cache_hash_code>;
+    return __equal_helper::are_equal(__uc, __lhs, __rhs);
+  }
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    class _Unordered_profile
+    {
+      _UnorderedCont&
+      _M_conjure()
+      { return *(static_cast<_UnorderedCont*>(this)); }
+
+      using __unique_keys = std::integral_constant<bool, _Unique_keys>;
+
+    protected:
+      _Unordered_profile()
+      {
+	auto& __uc = _M_conjure();
+        __profcxx_hashtable_construct(&__uc, __uc.bucket_count());
+	__profcxx_hashtable_construct2(&__uc);
+      }
+      _Unordered_profile(const _Unordered_profile&)
+	: _Unordered_profile() { }
+      _Unordered_profile(_Unordered_profile&&)
+	: _Unordered_profile() { }
+
+      ~_Unordered_profile() noexcept
+      {
+	auto& __uc = _M_conjure();
+        __profcxx_hashtable_destruct(&__uc, __uc.bucket_count(), __uc.size());
+        _M_profile_destruct();
+      }
+
+      _Unordered_profile&
+      operator=(const _Unordered_profile&) = default;
+
+      _Unordered_profile&
+      operator=(_Unordered_profile&&) = default;
+
+      void
+      _M_profile_destruct()
+      {
+	if (!__profcxx_inefficient_hash_is_on())
+	  return;
+
+	_M_profile_destruct(__unique_keys());
+      }
+
+    private:
+      void
+      _M_profile_destruct(std::true_type);
+
+      void
+      _M_profile_destruct(std::false_type);
+    };
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    void
+    _Unordered_profile<_UnorderedCont, _Unique_keys>::
+    _M_profile_destruct(std::true_type)
+    {
+      auto& __uc = _M_conjure();
+      std::size_t __hops = 0, __lc = 0, __chain = 0;
+      auto __it = __uc.begin();
+      while (__it != __uc.end())
+	{
+	  auto __bkt = __get_bucket_index(__uc, __it._M_cur);
+	  auto __lit = __uc.begin(__bkt);
+	  auto __lend = __uc.end(__bkt);
+	  for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
+	    ++__chain;
+	  if (__chain)
+	    {
+	      ++__chain;
+	      __lc = __lc > __chain ? __lc : __chain;
+	      __hops += __chain * (__chain - 1) / 2;
+	      __chain = 0;
+	    }
+	}
+      __profcxx_hashtable_destruct2(&__uc, __lc, __uc.size(), __hops);
+    }
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    void
+    _Unordered_profile<_UnorderedCont, _Unique_keys>::
+    _M_profile_destruct(std::false_type)
+    {
+      auto& __uc = _M_conjure();
+      std::size_t __hops = 0, __lc = 0, __chain = 0, __unique_size = 0;
+      auto __it = __uc.begin();
+      while (__it != __uc.end())
+	{
+	  auto __bkt = __get_bucket_index(__uc, __it._M_cur);
+	  auto __lit = __uc.begin(__bkt);
+	  auto __lend = __uc.end(__bkt);
+	  auto __pit = __it;
+	  ++__unique_size;
+	  for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
+	    {
+	      if (!__are_equal(__uc, __pit._M_cur, __it._M_cur))
+		{
+		  ++__chain;
+		  ++__unique_size;
+		  __pit = __it;
+		}
+	    }
+	  if (__chain)
+	    {
+	      ++__chain;
+	      __lc = __lc > __chain ? __lc : __chain;
+	      __hops += __chain * (__chain - 1) / 2;
+	      __chain = 0;
+	    }
+	}
+      __profcxx_hashtable_destruct2(&__uc, __lc, __unique_size, __hops);
+    }
+
+} // namespace __profile
+} // namespace std
+
+#endif
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map gcc-4.8.1/libstdc++-v3/include/profile/unordered_map
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map	2013-01-16 23:56:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_map	2013-10-01 16:06:44.252554278 +0000
@@ -34,6 +34,7 @@
 # include <unordered_map>
 
 #include <profile/base.h>
+#include <profile/unordered_base.h>
 
 #define _GLIBCXX_BASE unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>
 #define _GLIBCXX_STD_BASE _GLIBCXX_STD_C::_GLIBCXX_BASE
@@ -44,14 +45,22 @@
 {
   /// Class std::unordered_map wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>,
+				true>
     {
       typedef typename _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -72,11 +81,8 @@
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_map(_InputIterator __f, _InputIterator __l,
@@ -84,85 +90,45 @@
 		      const hasher& __hf = hasher(),
 		      const key_equal& __eql = key_equal(),
 		      const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+        { }
 
-      unordered_map(const unordered_map& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_map(const unordered_map&) = default;
 
       unordered_map(const _Base& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__x)
+      { }
 
-      unordered_map(unordered_map&& __x)
-      : _Base(std::move(__x)) 
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_map(unordered_map&&) = default;
 
       unordered_map(initializer_list<value_type> __l,
 		    size_type __n = 0,
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+	: _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_map&
-      operator=(const unordered_map& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_map&) = default;
 
       unordered_map&
-      operator=(unordered_map&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_map&&) = default;
 
       unordered_map&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_map() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(),
-				     _Base::size());
-        _M_profile_destruct();
-      }
-
-      _Base&
-      _M_base() noexcept       { return *this; }
-
-      const _Base&
-      _M_base() const noexcept { return *this; }
-
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(),
 				     _Base::size());
-        _M_profile_destruct();
-        _Base::clear();
+        this->_M_profile_destruct();
+	_Base::clear();
       }
 
       template<typename... _Args>
@@ -247,14 +213,6 @@
 	  _M_profile_resize(__old_size); 
 	}
 
-      void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-
       // operator[]
       mapped_type&
       operator[](const _Key& __k)
@@ -276,7 +234,7 @@
 
       void
       swap(unordered_map& __x)
-      { _Base::swap(__x); }
+      { _Base::swap(__x._M_base()); }
 
       void rehash(size_type __n)
       {
@@ -293,29 +251,6 @@
 	if (__old_size != __new_size)
 	  __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(__it->first);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-	__profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Tp, typename _Hash,
@@ -346,14 +281,23 @@
 
   /// Class std::unordered_multimap wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_multimap<_Key, _Tp,
+						   _Hash, _Pred, _Alloc>,
+				false>
     {      
       typedef typename _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -373,85 +317,54 @@
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
+
       template<typename _InputIterator>
         unordered_multimap(_InputIterator __f, _InputIterator __l,
 			   size_type __n = 0,
 			   const hasher& __hf = hasher(),
 			   const key_equal& __eql = key_equal(),
 			   const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_multimap(const unordered_multimap& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multimap(const unordered_multimap&) = default;
 
       unordered_multimap(const _Base& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__x)
+      { }
 
-      unordered_multimap(unordered_multimap&& __x)
-      : _Base(std::move(__x))
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multimap(unordered_multimap&&) = default;
 
       unordered_multimap(initializer_list<value_type> __l,
 			 size_type __n = 0,
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+      : _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_multimap&
-      operator=(const unordered_multimap& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_multimap&) = default;
 
       unordered_multimap&
-      operator=(unordered_multimap&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_multimap&&) = default;
 
       unordered_multimap&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_multimap() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-				     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       clear() noexcept
       {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
+	__profcxx_hashtable_destruct(this, _Base::bucket_count(), 
 				     _Base::size());
-        _M_profile_destruct();
-        _Base::clear();
+	this->_M_profile_destruct();
+	_Base::clear();
       }
 
       template<typename... _Args>
@@ -536,18 +449,11 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-
-      void
       swap(unordered_multimap& __x)
-      { _Base::swap(__x); }
+      { _Base::swap(__x._M_base()); }
 
-      void rehash(size_type __n)
+      void
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -562,29 +468,6 @@
         if (__old_size != __new_size)
           __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(__it->first);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-	__profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Tp, typename _Hash,
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set gcc-4.8.1/libstdc++-v3/include/profile/unordered_set
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set	2013-01-16 23:56:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_set	2013-10-01 16:06:44.252554278 +0000
@@ -34,6 +34,7 @@
 # include <unordered_set>
 
 #include <profile/base.h>
+#include <profile/unordered_base.h>
 
 #define _GLIBCXX_BASE unordered_set<_Key, _Hash, _Pred, _Alloc>
 #define _GLIBCXX_STD_BASE _GLIBCXX_STD_C::_GLIBCXX_BASE
@@ -44,14 +45,22 @@
 {
   /** @brief Unordered_set wrapper with performance instrumentation.  */
   template<typename _Key, 
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
 	   typename _Alloc =  std::allocator<_Key> >
     class unordered_set
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_set<_Key, _Hash, _Pred, _Alloc>,
+				true>
     {
       typedef _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -71,11 +80,8 @@
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_set(_InputIterator __f, _InputIterator __l,
@@ -83,84 +89,48 @@
 		      const hasher& __hf = hasher(),
 		      const key_equal& __eql = key_equal(),
 		      const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_set(const unordered_set& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_set(const unordered_set&) = default;
 
       unordered_set(const _Base& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__x)
+      { }
 
-      unordered_set(unordered_set&& __x)
-      : _Base(std::move(__x)) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_set(unordered_set&&) = default;
 
       unordered_set(initializer_list<value_type> __l,
 		    size_type __n = 0,
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+      : _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_set&
-      operator=(const unordered_set& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_set&) = default;
 
       unordered_set&
-      operator=(unordered_set&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_set&&) = default;
 
       unordered_set&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_set() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-                                     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       swap(unordered_set& __x)
-      {
-        _Base::swap(__x);
-      }
+      { _Base::swap(__x); }
 
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
                                      _Base::size());
-        _M_profile_destruct();
+        this->_M_profile_destruct();
         _Base::clear();
       }
 
@@ -240,14 +210,7 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-     
-      void rehash(size_type __n)
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -262,29 +225,6 @@
 	if (__old_size != __new_size)
 	  __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(*__it);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-        __profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Hash, typename _Pred, typename _Alloc>
@@ -312,14 +252,23 @@
 
   /** @brief Unordered_multiset wrapper with performance instrumentation.  */
   template<typename _Value,
-       typename _Hash  = std::hash<_Value>,
-       typename _Pred = std::equal_to<_Value>,
-       typename _Alloc =  std::allocator<_Value> >
+	   typename _Hash = std::hash<_Value>,
+	   typename _Pred = std::equal_to<_Value>,
+	   typename _Alloc =  std::allocator<_Value> >
     class unordered_multiset
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_multiset<_Value,
+						   _Hash, _Pred, _Alloc>,
+				false>
     {
       typedef _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -339,10 +288,8 @@
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_multiset(_InputIterator __f, _InputIterator __l,
@@ -350,80 +297,48 @@
 			   const hasher& __hf = hasher(),
 			   const key_equal& __eql = key_equal(),
 			   const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_multiset(const unordered_multiset& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multiset(const unordered_multiset&) = default;
 
       unordered_multiset(const _Base& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__x)
+      { }
 
-      unordered_multiset(unordered_multiset&& __x)
-      : _Base(std::move(__x))
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multiset(unordered_multiset&&) = default;
 
       unordered_multiset(initializer_list<value_type> __l,
 			 size_type __n = 0,
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+	: _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_multiset&
-      operator=(const unordered_multiset& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_multiset&) = default;
 
       unordered_multiset&
-      operator=(unordered_multiset&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_multiset&&) = default;
 
       unordered_multiset&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_multiset() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-                                     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       swap(unordered_multiset& __x)
-      {
-        _Base::swap(__x);
-      }
+      { _Base::swap(__x); }
 
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
                                      _Base::size());
-        _M_profile_destruct();
+        this->_M_profile_destruct();
         _Base::clear();
       }
 
@@ -502,14 +417,7 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-     
-      void rehash(size_type __n)
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -524,29 +432,6 @@
         if (__old_size != __new_size)
           __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(*__it);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-        __profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
    };
 
   template<typename _Value, typename _Hash, typename _Pred, typename _Alloc>
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/vector gcc-4.8.1/libstdc++-v3/include/profile/vector
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/vector	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/profile/vector	2013-10-01 16:06:44.256554278 +0000
@@ -374,6 +374,16 @@
 	return iterator(__res, this);
       }
 
+      template<typename... _Args>
+        iterator
+        emplace(iterator __position, _Args&&... __args)
+        {
+	  typename _Base::iterator __res
+	    = _Base::emplace(__position.base(),
+			     std::forward<_Args>(__args)...);
+	  return iterator(__res, this);
+	}
+
       void
       insert(iterator __position, initializer_list<value_type> __l)
       { this->insert(__position, __l.begin(), __l.end()); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/bitset gcc-4.8.1/libstdc++-v3/include/std/bitset
--- gcc-4.8.1.orig/libstdc++-v3/include/std/bitset	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/std/bitset	2013-10-01 16:06:44.256554278 +0000
@@ -760,7 +760,7 @@
       }
 
 #if __cplusplus >= 201103L
-      template<typename> friend class hash;
+      template<typename> friend struct hash;
 #endif
 
     public:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/complex gcc-4.8.1/libstdc++-v3/include/std/complex
--- gcc-4.8.1.orig/libstdc++-v3/include/std/complex	2013-02-13 21:58:53.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/std/complex	2013-10-01 16:06:44.256554278 +0000
@@ -142,11 +142,11 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 387. std::complex over-encapsulated.
-      __attribute ((__abi_tag__ ("cxx11")))
+      _GLIBCXX_ABI_TAG_CXX11
       constexpr _Tp 
       real() { return _M_real; }
 
-      __attribute ((__abi_tag__ ("cxx11")))
+      _GLIBCXX_ABI_TAG_CXX11
       constexpr _Tp 
       imag() { return _M_imag; }
 #else
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/valarray gcc-4.8.1/libstdc++-v3/include/std/valarray
--- gcc-4.8.1.orig/libstdc++-v3/include/std/valarray	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/include/std/valarray	2013-10-01 16:06:44.256554278 +0000
@@ -819,8 +819,21 @@
     inline valarray<_Tp>&
     valarray<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e)
     {
-      _GLIBCXX_DEBUG_ASSERT(_M_size == __e.size());
-      std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data));
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 630. arrays of valarray.
+      if (_M_size == __e.size())
+	std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data));
+      else
+	{
+	  if (_M_data)
+	    {
+	      std::__valarray_destroy_elements(_M_data, _M_data + _M_size);
+	      std::__valarray_release_memory(_M_data);
+	    }
+	  _M_size = __e.size();
+	  _M_data = __valarray_get_storage<_Tp>(_M_size);
+	  std::__valarray_copy_construct(__e, _M_size, _Array<_Tp>(_M_data));
+	}
       return *this;
     }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc
--- gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc	2013-02-26 04:39:04.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc	2013-10-01 16:06:44.256554278 +0000
@@ -58,8 +58,13 @@
   void run (void *p)
   {
     elt *e = static_cast<elt*>(p);
-    for (; e; e = e->next)
-      e->destructor (e->object);
+    while (e)
+      {
+	elt *old_e = e;
+	e->destructor (e->object);
+	e = e->next;
+	delete (old_e);
+      }
   }
 
   // Run the stack of cleanups for the current thread.
@@ -67,9 +72,15 @@
   {
     void *e;
     if (__gthread_active_p ())
-      e = __gthread_getspecific (key);
+      {
+	e = __gthread_getspecific (key);
+	__gthread_setspecific (key, NULL);
+      }
     else
-      e = single_thread;
+      {
+	e = single_thread;
+	single_thread = NULL;
+      }
     run (e);
   }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc
--- gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc	2013-10-01 16:06:44.256554278 +0000
@@ -517,14 +517,21 @@
 extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
 extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe";
 extern __attribute__((used, weak)) const void * const _ZTIe[2]
-  = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2],
-      (void *) _ZTSe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv123__fundamental_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSe) };
 extern __attribute__((used, weak)) const void * const _ZTIPe[4]
-  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
-      (void *) _ZTSPe, (void *) 0L, (void *) _ZTIe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSPe),
+      reinterpret_cast<const void *>(0L),
+      reinterpret_cast<const void *>(_ZTIe) };
 extern __attribute__((used, weak)) const void * const _ZTIPKe[4]
-  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
-      (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSPKe),
+      reinterpret_cast<const void *>(1L),
+      reinterpret_cast<const void *>(_ZTIe) };
 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
 
 #ifdef _GLIBCXX_SYMVER_DARWIN
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/dr130.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/dr130.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,77 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
-//
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <map>
-#include <testsuite_hooks.h>
-
-//  DR 130. Associative erase should return an iterator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  map<int, int> m0;
-  typedef map<int, int>::iterator iterator;
-  typedef map<int, int>::const_iterator const_iterator;
-  typedef map<int, int>::value_type value_type;
-  typedef pair<iterator, bool> insert_return_type;
-
-  m0.insert(value_type(1, 1));
-  insert_return_type irt1 = m0.insert(value_type(2, 2));
-  insert_return_type irt2 = m0.insert(value_type(3, 3));
-
-  iterator pos1 = m0.erase(irt1.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = m0.erase(irt2.first);
-  VERIFY( pos2 == m0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  map<int, int> m0;
-  typedef map<int, int>::iterator iterator;
-  typedef map<int, int>::const_iterator const_iterator;
-  typedef map<int, int>::value_type value_type;
-  typedef pair<iterator, bool> insert_return_type;
-
-  insert_return_type irt0 = m0.insert(value_type(1, 1));
-  m0.insert(value_type(2, 2));
-  insert_return_type irt2 = m0.insert(value_type(3, 3));
-  insert_return_type irt3 = m0.insert(value_type(4, 4));
-
-  iterator pos1 = m0.erase(irt0.first, irt2.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = m0.erase(irt2.first, ++irt3.first);
-  VERIFY( pos2 == m0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,77 @@
+// { dg-options "-std=gnu++0x" }
+// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
+//
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <map>
+#include <testsuite_hooks.h>
+
+//  DR 130. Associative erase should return an iterator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  map<int, int> m0;
+  typedef map<int, int>::iterator iterator;
+  typedef map<int, int>::const_iterator const_iterator;
+  typedef map<int, int>::value_type value_type;
+  typedef pair<iterator, bool> insert_return_type;
+
+  m0.insert(value_type(1, 1));
+  insert_return_type irt1 = m0.insert(value_type(2, 2));
+  insert_return_type irt2 = m0.insert(value_type(3, 3));
+
+  iterator pos1 = m0.erase(irt1.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = m0.erase(irt2.first);
+  VERIFY( pos2 == m0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  map<int, int> m0;
+  typedef map<int, int>::iterator iterator;
+  typedef map<int, int>::const_iterator const_iterator;
+  typedef map<int, int>::value_type value_type;
+  typedef pair<iterator, bool> insert_return_type;
+
+  insert_return_type irt0 = m0.insert(value_type(1, 1));
+  m0.insert(value_type(2, 2));
+  insert_return_type irt2 = m0.insert(value_type(3, 3));
+  insert_return_type irt3 = m0.insert(value_type(4, 4));
+
+  iterator pos1 = m0.erase(irt0.first, irt2.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = m0.erase(irt2.first, ++irt3.first);
+  VERIFY( pos2 == m0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <map>
+
+using container = std::map<int, int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS4_E" } }
+iterator (container::*p1)(iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::map<int, int>		container_type;
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,87 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-
-// NOTE: This makes use of the fact that we know how moveable
-// is implemented on multiset (via swap). If the implementation changed
-// this test may begin to fail.
-
-#include <map>
-#include <vector>
-#include <testsuite_hooks.h>
-
-using namespace std;
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multimap<int, int> mm0;
-  typedef multimap<int, int>::iterator iterator;
-  typedef multimap<int, int>::const_iterator const_iterator;
-  typedef multimap<int, int>::value_type value_type;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for (int i = 1; i <= 4; ++i)
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( mm0.insert( value_type( i, i ) ) );
-
-  iterator pos1 = mm0.erase(irt[1]);
-  VERIFY( pos1 == irt[2] );
-
-  iterator pos2 = mm0.erase(irt[2]);
-  VERIFY( pos2 == irt[3] );
-
-  iterator pos3 = mm0.erase(irt[9]);
-  VERIFY( pos3 == mm0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multimap<int, int> mm0;
-  typedef multimap<int, int>::iterator iterator;
-  typedef multimap<int, int>::const_iterator const_iterator;
-  typedef multimap<int, int>::value_type value_type;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for (int i = 1; i <= 4; ++i)
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( mm0.insert( value_type( i, i ) ) );
-
-  iterator pos1 = mm0.erase(irt[3], irt[6]);
-  VERIFY( pos1 == irt[6] );
-
-  iterator pos2 = mm0.erase(irt[6], ++irt[9]);
-  VERIFY( pos2 == mm0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,87 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on multiset (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <map>
+#include <vector>
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multimap<int, int> mm0;
+  typedef multimap<int, int>::iterator iterator;
+  typedef multimap<int, int>::const_iterator const_iterator;
+  typedef multimap<int, int>::value_type value_type;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for (int i = 1; i <= 4; ++i)
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( mm0.insert( value_type( i, i ) ) );
+
+  iterator pos1 = mm0.erase(irt[1]);
+  VERIFY( pos1 == irt[2] );
+
+  iterator pos2 = mm0.erase(irt[2]);
+  VERIFY( pos2 == irt[3] );
+
+  iterator pos3 = mm0.erase(irt[9]);
+  VERIFY( pos3 == mm0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multimap<int, int> mm0;
+  typedef multimap<int, int>::iterator iterator;
+  typedef multimap<int, int>::const_iterator const_iterator;
+  typedef multimap<int, int>::value_type value_type;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for (int i = 1; i <= 4; ++i)
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( mm0.insert( value_type( i, i ) ) );
+
+  iterator pos1 = mm0.erase(irt[3], irt[6]);
+  VERIFY( pos1 == irt[6] );
+
+  iterator pos2 = mm0.erase(irt[6], ++irt[9]);
+  VERIFY( pos2 == mm0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <map>
+
+using container = std::multimap<int, int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt8multimapIiiSt4lessIiESaISt4pairIKiiEEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS4_E" } }
+iterator (container::*p1)(iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::multimap<int, int>		container_type;
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,85 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-
-// NOTE: This makes use of the fact that we know how moveable
-// is implemented on multiset (via swap). If the implementation changed
-// this test may begin to fail.
-
-#include <set>
-#include <vector>
-#include <testsuite_hooks.h>
-
-using namespace std;
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multiset<int> ms0;
-  typedef multiset<int>::iterator iterator;
-  typedef multiset<int>::const_iterator const_iterator;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for ( int i = 1; i <= 4; ++i )
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( ms0.insert( i ) );
-
-  iterator pos1 = ms0.erase(irt[1]);
-  VERIFY( pos1 == irt[2] );
-
-  iterator pos2 = ms0.erase(irt[2]);
-  VERIFY( pos2 == irt[3] );
-
-  iterator pos3 = ms0.erase(irt[9]);
-  VERIFY( pos3 == ms0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multiset<int> ms0;
-  typedef multiset<int>::iterator iterator;
-  typedef multiset<int>::const_iterator const_iterator;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for ( int i = 1; i <= 4; ++i )
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( ms0.insert( i ) );
-
-  iterator pos1 = ms0.erase(irt[3], irt[6]);
-  VERIFY( pos1 == irt[6] );
-
-  iterator pos2 = ms0.erase(irt[6], ++irt[9]);
-  VERIFY( pos2 == ms0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,85 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on multiset (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <set>
+#include <vector>
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multiset<int> ms0;
+  typedef multiset<int>::iterator iterator;
+  typedef multiset<int>::const_iterator const_iterator;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for ( int i = 1; i <= 4; ++i )
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( ms0.insert( i ) );
+
+  iterator pos1 = ms0.erase(irt[1]);
+  VERIFY( pos1 == irt[2] );
+
+  iterator pos2 = ms0.erase(irt[2]);
+  VERIFY( pos2 == irt[3] );
+
+  iterator pos3 = ms0.erase(irt[9]);
+  VERIFY( pos3 == ms0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multiset<int> ms0;
+  typedef multiset<int>::iterator iterator;
+  typedef multiset<int>::const_iterator const_iterator;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for ( int i = 1; i <= 4; ++i )
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( ms0.insert( i ) );
+
+  iterator pos1 = ms0.erase(irt[3], irt[6]);
+  VERIFY( pos1 == irt[6] );
+
+  iterator pos2 = ms0.erase(irt[6], ++irt[9]);
+  VERIFY( pos2 == ms0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <set>
+
+using container = std::multiset<int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt8multisetIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiE" } }
+iterator (container::*p1)(const_iterator) = &container::erase;
+
+// { dg-final { scan-assembler "_ZNSt8multisetIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiES5_" } }
+iterator (container::*p2)(const_iterator, const_iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::multiset<int>			container_type;
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/dr130.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/dr130.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,75 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
-//
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <set>
-#include <testsuite_hooks.h>
-
-//  DR 130. Associative erase should return an iterator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  set<int> s0;
-  typedef set<int>::iterator iterator;
-  typedef set<int>::const_iterator const_iterator;
-  typedef pair<iterator, bool> insert_return_type;
-
-  s0.insert(1);
-  insert_return_type irt1 = s0.insert(2);
-  insert_return_type irt2 = s0.insert(3);
-
-  iterator pos1 = s0.erase(irt1.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = s0.erase(irt2.first);
-  VERIFY( pos2 == s0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  set<int> s0;
-  typedef set<int>::iterator iterator;
-  typedef set<int>::const_iterator const_iterator;
-  typedef pair<iterator, bool> insert_return_type;
-
-  insert_return_type irt0 = s0.insert(1);
-  s0.insert(2);
-  insert_return_type irt2 = s0.insert(3);
-  insert_return_type irt3 = s0.insert(4);
-
-  iterator pos1 = s0.erase(irt0.first, irt2.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = s0.erase(irt2.first, ++irt3.first);
-  VERIFY( pos2 == s0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,75 @@
+// { dg-options "-std=gnu++0x" }
+// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
+//
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <set>
+#include <testsuite_hooks.h>
+
+//  DR 130. Associative erase should return an iterator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  set<int> s0;
+  typedef set<int>::iterator iterator;
+  typedef set<int>::const_iterator const_iterator;
+  typedef pair<iterator, bool> insert_return_type;
+
+  s0.insert(1);
+  insert_return_type irt1 = s0.insert(2);
+  insert_return_type irt2 = s0.insert(3);
+
+  iterator pos1 = s0.erase(irt1.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = s0.erase(irt2.first);
+  VERIFY( pos2 == s0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  set<int> s0;
+  typedef set<int>::iterator iterator;
+  typedef set<int>::const_iterator const_iterator;
+  typedef pair<iterator, bool> insert_return_type;
+
+  insert_return_type irt0 = s0.insert(1);
+  s0.insert(2);
+  insert_return_type irt2 = s0.insert(3);
+  insert_return_type irt3 = s0.insert(4);
+
+  iterator pos1 = s0.erase(irt0.first, irt2.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = s0.erase(irt2.first, ++irt3.first);
+  VERIFY( pos2 == s0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <set>
+
+using container = std::set<int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt3setIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiE" } }
+iterator (container::*p1)(const_iterator) = &container::erase;
+
+// { dg-final { scan-assembler "_ZNSt3setIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiES5_" } }
+iterator (container::*p2)(const_iterator, const_iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::set<int>			container_type;
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C	2013-10-01 16:06:44.256554278 +0000
@@ -0,0 +1,51 @@
+// { dg-options "-std=gnu++11" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  {
+    std::unordered_map<std::string, std::string> mymap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymap.insert(mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+
+  {
+    std::unordered_map<std::string, std::string> mymap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymap.insert(mymap.begin(), mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C	2013-10-01 16:06:44.260554277 +0000
@@ -0,0 +1,51 @@
+// { dg-options "-std=gnu++11" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  {
+    std::unordered_multimap<std::string, std::string> mymmap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymmap.insert(mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+
+  {
+    std::unordered_multimap<std::string, std::string> mymmap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymmap.insert(mymmap.begin(), mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc	2013-02-20 21:23:44.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc	2013-10-01 16:06:44.260554277 +0000
@@ -30,7 +30,7 @@
 };
 
 struct equal {
-  bool operator()(const MoveOnly&, const MoveOnly) const { return true; }
+  bool operator()(const MoveOnly&, const MoveOnly&) const { return true; }
 };
 struct hash {
   std::size_t operator()(const MoveOnly&) const { return 0; }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc	2013-10-01 16:06:44.260554277 +0000
@@ -0,0 +1,41 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-options "-std=gnu++11" }
+
+// 25.1.9 [lib.alg.search]
+
+#include <algorithm>
+#include <vector>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::vector<int> a{2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
+  int count = 0;
+  std::search_n(a.begin(), a.end(), 10, 1,
+		[&count](int t, int u) { ++count; return t == u; });
+  VERIFY( count <= 11 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc	2013-10-01 16:06:44.260554277 +0000
@@ -31,9 +31,11 @@
 int array1[11] = {0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0};
 int array2[TEST_DEPTH];
 
+int pred_count;
 bool 
 pred(int i, int j)
 {
+  ++pred_count;
   return i == j;
 }
 
@@ -90,16 +92,22 @@
 
 	    int* t1 = search_n(forwardcon.begin(),
 			       forwardcon.end(), j, 1).ptr;
+	    pred_count = 0;
 	    int* t2 = search_n(forwardcon.begin(),
 			       forwardcon.end(), j, 1, pred).ptr;
+	    VERIFY(pred_count <= i);
 	    int* t3 = search_n(bidircon.begin(),
 			       bidircon.end(), j, 1).ptr;
+	    pred_count = 0;
 	    int* t4 = search_n(bidircon.begin(),
 			       bidircon.end(), j, 1, pred).ptr;
+	    VERIFY(pred_count <= i);
 	    int* t5 = search_n(randomcon.begin(),
 			       randomcon.end(), j, 1).ptr;
+	    pred_count = 0;
 	    int* t6 = search_n(randomcon.begin(),
 			       randomcon.end(), j, 1, pred).ptr;
+	    VERIFY(pred_count <= i);
 	    VERIFY((t1 == t2) && (t2 == t3) && (t3 == t4) &&
 		   (t4 == t5) && (t5 == t6));
 	  }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc	2013-10-01 16:06:44.260554277 +0000
@@ -43,6 +43,17 @@
   std::binomial_distribution<> bd3(10, 0.75);
   auto bbd3 = std::bind(bd3, eng);
   testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } );
+
+  // libstdc++/57674
+  std::binomial_distribution<> bd4(1, 0.8);
+  const std::binomial_distribution<>::param_type pm4(1, 0.3);
+  auto bbd4 = std::bind(bd4, eng, pm4);
+  testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } );
+
+  std::binomial_distribution<> bd5(100, 0.3);
+  const std::binomial_distribution<>::param_type pm5(100, 0.8);
+  auto bbd5 = std::bind(bd5, eng, pm5);
+  testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } );
 }
 
 int main()
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 0.0 );
   VERIFY( u.b() == 1.0 );
   typedef std::cauchy_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 5.0 );
   VERIFY( u.b() == 2.0 );
   typedef std::cauchy_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc	2013-10-01 16:06:44.260554277 +0000
@@ -34,7 +34,7 @@
   std::exponential_distribution<> u;
   VERIFY( u.lambda() == 1.0 );
   typedef std::exponential_distribution<>::result_type result_type;
-  VERIFY( u.min() == 0 );
+  VERIFY( u.min() == 0.0 );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc	2013-10-01 16:06:44.260554277 +0000
@@ -34,7 +34,7 @@
   std::exponential_distribution<> u(0.5);
   VERIFY( u.lambda() == 0.5 );
   typedef std::exponential_distribution<>::result_type result_type;
-  VERIFY( u.min() == 0 );
+  VERIFY( u.min() == 0.0 );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 0.0 );
   VERIFY( u.b() == 1.0 );
   typedef std::extreme_value_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 5.0 );
   VERIFY( u.b() == 2.0 );
   typedef std::extreme_value_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc	2013-10-01 16:06:44.260554277 +0000
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void test01()
+{
+  typedef std::negative_binomial_distribution<> dist_type;
+
+  std::default_random_engine engine;
+
+  dist_type dist;
+  dist_type::param_type param(3, 0.5);
+
+  dist(engine, param); // compile error!
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.mean() == 0.0 );
   VERIFY( u.stddev() == 1.0 );
   typedef std::normal_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc	2013-10-01 16:06:44.260554277 +0000
@@ -35,7 +35,7 @@
   VERIFY( u.mean() == 5.0 );
   VERIFY( u.stddev() == 2.0 );
   typedef std::normal_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc	2013-10-01 16:06:44.260554277 +0000
@@ -34,7 +34,7 @@
   std::student_t_distribution<> u;
   VERIFY( u.n() == 1.0 );
   typedef std::student_t_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc	2013-10-01 16:06:44.264554277 +0000
@@ -34,7 +34,7 @@
   std::student_t_distribution<> u(1.5);
   VERIFY( u.n() == 1.5 );
   typedef std::student_t_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,37 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/57666
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::valarray<int> a(3), b(3), d1, d2;
+  d1 = a;
+  VERIFY( d1.size() == 3 );
+  d2 = a + b;
+  VERIFY( d2.size() == 3 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2013-10-01 16:06:44.264554277 +0000
@@ -25,4 +25,4 @@
 
 #include <vector>
 
-// { dg-error "multiple inlined namespaces" "" { target *-*-* } 269 }
+// { dg-error "multiple inlined namespaces" "" { target *-*-* } 275 }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc	2013-10-01 16:06:44.264554277 +0000
@@ -36,9 +36,9 @@
   VERIFY( u.varcov()[1] == 0.0 );
   VERIFY( u.varcov()[2] == 1.0 );
   typedef __gnu_cxx::normal_mv_distribution<2>::result_type result_type;
-  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[0] == std::numeric_limits<result_type::value_type>::max() );
-  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[1] == std::numeric_limits<result_type::value_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc	2013-10-01 16:06:44.264554277 +0000
@@ -36,9 +36,9 @@
   VERIFY( u.varcov()[1] == 0.0 );
   VERIFY( u.varcov()[2] == 3.0 );
   typedef __gnu_cxx::normal_mv_distribution<2>::result_type result_type;
-  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[0] == std::numeric_limits<result_type::value_type>::max() );
-  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[1] == std::numeric_limits<result_type::value_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<> u;
+  VERIFY( u.a() == 0.0 );
+  VERIFY( u.b() == 0.5 );
+  VERIFY( u.c() == 1.0 );
+  VERIFY( u.min() == 0.0 );
+  VERIFY( u.max() == 1.0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<> u(1.5, 3.0, 3.5);
+  VERIFY( u.a() == 1.5 );
+  VERIFY( u.b() == 3.0 );
+  VERIFY( u.c() == 3.5 );
+  VERIFY( u.min() == 1.5 );
+  VERIFY( u.max() == 3.5 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.0), v, w;
+
+  VERIFY( v == w );
+  VERIFY( !(u == v) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 5.0), v, w;
+
+  VERIFY( u != v );
+  VERIFY( !(v != w) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <sstream>
+
+void
+test01()
+{
+  std::stringstream str;
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.5), v;
+  std::minstd_rand0 rng;
+
+  u(rng); // advance
+  str << u;
+
+  str >> v;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::triangular_distribution<float>;
+template class __gnu_cxx::triangular_distribution<double>;
+template class __gnu_cxx::triangular_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+void
+test01()
+{
+  typedef __gnu_cxx::triangular_distribution<double> test_type;
+
+  typedef test_type::result_type result_type;
+  typedef test_type::param_type param_type;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,43 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<> u;
+  VERIFY( u.mu() == 0.0 );
+  VERIFY( u.kappa() == 1.0 );
+  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
+  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,43 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<> u(1.5, 3.0);
+  VERIFY( u.mu() == 1.5 );
+  VERIFY( u.kappa() == 3.0 );
+  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
+  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
+
+  VERIFY( v == w );
+  VERIFY( !(u == v) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
+
+  VERIFY( u != v );
+  VERIFY( !(v != w) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <sstream>
+
+void
+test01()
+{
+  std::stringstream str;
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v;
+  std::minstd_rand0 rng;
+
+  u(rng); // advance
+  str << u;
+
+  str >> v;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::von_mises_distribution<float>;
+template class __gnu_cxx::von_mises_distribution<double>;
+template class __gnu_cxx::von_mises_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc	2013-10-01 16:06:44.264554277 +0000
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+void
+test01()
+{
+  typedef __gnu_cxx::von_mises_distribution<double> test_type;
+
+  typedef test_type::result_type result_type;
+  typedef test_type::param_type param_type;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<> u;
-  VERIFY( u.a() == 0.0 );
-  VERIFY( u.b() == 0.5 );
-  VERIFY( u.c() == 1.0 );
-  VERIFY( u.min() == 0.0 );
-  VERIFY( u.max() == 1.0 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<> u(1.5, 3.0, 3.5);
-  VERIFY( u.a() == 1.5 );
-  VERIFY( u.b() == 3.0 );
-  VERIFY( u.c() == 3.5 );
-  VERIFY( u.min() == 1.5 );
-  VERIFY( u.max() == 3.5 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.0), v, w;
-
-  VERIFY( v == w );
-  VERIFY( !(u == v) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 5.0), v, w;
-
-  VERIFY( u != v );
-  VERIFY( !(v != w) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <sstream>
-
-void
-test01()
-{
-  std::stringstream str;
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.5), v;
-  std::minstd_rand0 rng;
-
-  u(rng); // advance
-  str << u;
-
-  str >> v;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,26 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++11" }
-// { dg-require-cstdint "" }
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-template class __gnu_cxx::triangular_distribution<float>;
-template class __gnu_cxx::triangular_distribution<double>;
-template class __gnu_cxx::triangular_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-void
-test01()
-{
-  typedef __gnu_cxx::triangular_distribution<double> test_type;
-
-  typedef test_type::result_type result_type;
-  typedef test_type::param_type param_type;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,43 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<> u;
-  VERIFY( u.mu() == 0.0 );
-  VERIFY( u.kappa() == 1.0 );
-  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
-  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,43 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<> u(1.5, 3.0);
-  VERIFY( u.mu() == 1.5 );
-  VERIFY( u.kappa() == 3.0 );
-  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
-  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
-
-  VERIFY( v == w );
-  VERIFY( !(u == v) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
-
-  VERIFY( u != v );
-  VERIFY( !(v != w) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <sstream>
-
-void
-test01()
-{
-  std::stringstream str;
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v;
-  std::minstd_rand0 rng;
-
-  u(rng); // advance
-  str << u;
-
-  str >> v;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,26 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++11" }
-// { dg-require-cstdint "" }
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-template class __gnu_cxx::von_mises_distribution<float>;
-template class __gnu_cxx::von_mises_distribution<double>;
-template class __gnu_cxx::von_mises_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc	2013-03-03 00:12:28.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-void
-test01()
-{
-  typedef __gnu_cxx::von_mises_distribution<double> test_type;
-
-  typedef test_type::result_type result_type;
-  typedef test_type::param_type param_type;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc	2013-10-01 16:06:44.268554277 +0000
@@ -0,0 +1,41 @@
+// { dg-options "-std=gnu++11" }
+// { dg-require-string-conversions "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/vstring.h>
+#include <testsuite_hooks.h>
+
+typedef __gnu_cxx::__versa_string<char> string;
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  string s1("string");
+  string s2("");
+  std::swap(s1, s2);
+
+  VERIFY( s1.c_str()[0] == '\0' );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc	2013-10-01 16:06:44.268554277 +0000
@@ -0,0 +1,38 @@
+// { dg-options "-std=gnu++11" }
+// { dg-require-string-conversions "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/vstring.h>
+#include <testsuite_hooks.h>
+
+typedef __gnu_cxx::__versa_string<char> string;
+
+void test01()
+{
+  string s1;
+  string s2 = std::move(s1);
+
+  VERIFY( s2.c_str()[0] == '\0' );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp	2013-10-01 16:06:44.268554277 +0000
@@ -626,7 +626,7 @@
 	    # Compile with "-w" so that warnings issued by the compiler
 	    # do not prevent compilation.
 	    if { [v3_target_compile $srcdir/util/$f $object_file "sharedlib" \
-	     [list "incdir=$srcdir" "additional_flags=-w -shared -fPIC -DPIC"]]
+	     [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC"]]
 		 != "" } {
 		error "could not compile $f"
 	    }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc	2013-10-01 16:06:44.268554277 +0000
@@ -0,0 +1,65 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <vector>
+#include <algorithm>
+#include <testsuite_performance.h>
+
+int main()
+{
+  using namespace __gnu_test;
+
+  time_counter time;
+  resource_counter resource;
+
+  const int max_size = 10000000;
+
+  std::vector<int> v(max_size);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = -i;
+
+  start_counters(time, resource);
+  std::sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "reverse", time, resource);
+  clear_counters(time, resource);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = i;
+
+  start_counters(time, resource);
+  std::sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "forwards", time, resource);
+  clear_counters(time, resource);
+
+  // a simple psuedo-random series which does not rely on rand() and friends
+  v[0] = 0;
+  for (int i = 1; i < max_size; ++i)
+    v[i] = (v[i-1] + 110211473) * 745988807;
+
+  start_counters(time, resource);
+  std::sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "random", time, resource);
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc	2013-10-01 16:06:44.268554277 +0000
@@ -0,0 +1,73 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <vector>
+#include <algorithm>
+#include <testsuite_performance.h>
+
+int main()
+{
+  using namespace __gnu_test;
+
+  time_counter time;
+  resource_counter resource;
+
+  const int max_size = 10000000;
+
+  std::vector<int> v(max_size);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = -i;
+
+  start_counters(time, resource);
+  std::make_heap(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "make_heap_reverse", time, resource);
+  clear_counters(time, resource);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = i;
+
+  start_counters(time, resource);
+  std::make_heap(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "make_heap_forwards", time, resource);
+  clear_counters(time, resource);
+
+  // a simple psuedo-random series which does not rely on rand() and friends
+  v[0] = 0;
+  for (int i = 1; i < max_size; ++i)
+    v[i] = (v[i-1] + 110211473) * 745988807;
+
+  start_counters(time, resource);
+  std::make_heap(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "make_heap_random", time, resource);
+
+
+  start_counters(time, resource);
+  std::sort_heap(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "sort_heap", time, resource);
+  clear_counters(time, resource);
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc	1970-01-01 00:00:00.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc	2013-10-01 16:06:44.268554277 +0000
@@ -0,0 +1,65 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <vector>
+#include <algorithm>
+#include <testsuite_performance.h>
+
+int main()
+{
+  using namespace __gnu_test;
+
+  time_counter time;
+  resource_counter resource;
+
+  const int max_size = 10000000;
+
+  std::vector<int> v(max_size);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = -i;
+
+  start_counters(time, resource);
+  std::stable_sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "reverse", time, resource);
+  clear_counters(time, resource);
+
+  for (int i = 0; i < max_size; ++i)
+    v[i] = i;
+
+  start_counters(time, resource);
+  std::stable_sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "forwards", time, resource);
+  clear_counters(time, resource);
+
+  // a simple psuedo-random series which does not rely on rand() and friends
+  v[0] = 0;
+  for (int i = 1; i < max_size; ++i)
+    v[i] = (v[i-1] + 110211473) * 745988807;
+
+  start_counters(time, resource);
+  std::stable_sort(v.begin(), v.end());
+  stop_counters(time, resource);
+
+  report_performance(__FILE__, "random", time, resource);
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h	2013-10-01 16:06:44.268554277 +0000
@@ -223,6 +223,58 @@
   template<typename _Tp>
   _Tp citerator<_Tp>::_S_container;
 
+  // DR 130 vs. C++98 vs. C++11.
+  // Defined in testsuite_shared.cc.
+  void 
+  erase_external(std::set<int>& s);
+
+  void 
+  erase_external(std::multiset<int>& s);
+
+  void 
+  erase_external(std::map<int, int>& s);
+
+  void 
+  erase_external(std::multimap<int, int>& s);
+
+  void 
+  erase_external_iterators(std::set<int>& s);
+
+  void 
+  erase_external_iterators(std::multiset<int>& s);
+
+  void 
+  erase_external_iterators(std::map<int, int>& s);
+
+  void 
+  erase_external_iterators(std::multimap<int, int>& s);
+
+// NB: "must be compiled with C++11"
+#if __cplusplus >= 201103L
+template<typename _Tp>
+  void 
+  linkage_check_cxx98_cxx11_erase(_Tp& container)
+  {
+    // Crashing when exteral reference and internal reference symbols are
+    // equivalently mangled but have different size return types in C++98
+    // and C++11 signatures.
+    erase_external(container); 		// C++98
+    container.erase(container.begin());	// C++11
+  }
+
+template<typename _Tp>
+  void 
+  linkage_check_cxx98_cxx11_erase_iterators(_Tp& container)
+  {
+    // Crashing when exteral reference and internal reference symbols are
+    // equivalently mangled but have different size return types in C++98
+    // and C++11 signatures.
+    erase_external_iterators(container);// C++98
+
+    auto iter = container.begin();
+    container.erase(iter, ++iter);	// C++11
+  }
+#endif
 
 } // namespace __gnu_test
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc	2013-02-03 17:54:05.000000000 +0000
+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc	2013-10-01 16:06:44.268554277 +0000
@@ -19,9 +19,13 @@
 #include <stdexcept>
 #include <iostream>
 #include <sstream>
+#include <set>
+#include <map>
 #include <ext/mt_allocator.h>
 #include <bits/functexcept.h>
 
+namespace __gnu_test
+{
 // libstdc++/22309
 extern "C" void
 try_allocation()
@@ -70,3 +74,57 @@
   // Randomly throw. See if other threads cleanup.
   std::__throw_bad_exception();
 }
+
+#if __cplusplus < 201103L
+// "must be compiled with C++98"
+  void 
+  erase_external(std::set<int>& s)
+  { s.erase(s.begin()); }
+
+  void 
+  erase_external(std::multiset<int>& s)
+  { s.erase(s.begin()); }
+  
+  void 
+  erase_external(std::map<int, int>& s)
+  { s.erase(s.begin()); }
+  
+  void 
+  erase_external(std::multimap<int, int>& s)
+  { s.erase(s.begin()); }
+
+  void 
+  erase_external_iterators(std::set<int>& s)
+  {
+    typedef typename std::set<int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  void 
+  erase_external_iterators(std::multiset<int>& s)
+  {
+    typedef typename std::multiset<int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  void 
+  erase_external_iterators(std::map<int, int>& s)
+  {
+    typedef typename std::map<int, int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  
+  void 
+  erase_external_iterators(std::multimap<int, int>& s)
+  {
+    typedef typename std::multimap<int, int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+#endif
+
+} // end namepace __gnu_test
